:root{font-family:"Segoe UI","Noto Sans Thai",Tahoma,Arial,sans-serif;color:#fff;background:#1d1d1d;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow:hidden}button,input,select,textarea{font:inherit}
.public-nav{position:fixed;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 32px}
.public-nav--bottom{inset:auto 0 0;height:64px;background:rgba(20,20,24,.78);backdrop-filter:blur(24px) grayscale(.6) brightness(.7);-webkit-backdrop-filter:blur(24px) grayscale(.6) brightness(.7);border-top:1px solid rgba(255,255,255,.2);box-shadow:0 -6px 24px rgba(0,0,0,.4)}
.public-nav--top{inset:0 0 auto;height:52px;background:rgba(15,23,42,.65);border-bottom:1px solid rgba(255,255,255,.14)}
.public-nav__brand{color:#fff;text-decoration:none;font-size:14.5px;opacity:.92;font-weight:600;letter-spacing:.3px}
.public-nav nav{height:100%;display:flex;align-items:stretch}
.nav-tab{min-width:210px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 24px;color:rgba(255,255,255,.85);text-decoration:none;background:transparent;border:0;border-inline:1px solid rgba(255,255,255,.07);font-size:13.5px;font-weight:600;line-height:1.35;cursor:pointer;transition:all .2s ease}
.nav-tab:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-tab.is-active{background:rgba(255,255,255,.15);box-shadow:inset 0 -3px 0 #fff,0 0 20px rgba(255,255,255,.15);color:#fff;font-weight:700}
.language{justify-self:end;color:#fff;background:none;border:0;opacity:.8;font-size:13px;font-weight:600;letter-spacing:.5px}

.campaign--goodness .public-nav--bottom,[data-campaign="goodness"] .public-nav--bottom{background:rgba(255,255,255,.6)!important;backdrop-filter:blur(16px) saturate(160%)!important;-webkit-backdrop-filter:blur(16px) saturate(160%)!important;border-top:1px solid rgba(255,255,255,.8)!important;box-shadow:0 -4px 20px rgba(0,0,0,.08)!important}
.campaign--goodness .public-nav__brand,[data-campaign="goodness"] .public-nav__brand{color:#0f172a!important}
.campaign--goodness .language,[data-campaign="goodness"] .language{color:#0f172a!important}
.campaign--goodness .nav-tab,[data-campaign="goodness"] .nav-tab{color:#334155!important;border-inline-color:rgba(0,0,0,.08)!important}
.campaign--goodness .nav-tab:hover,[data-campaign="goodness"] .nav-tab:hover{background:rgba(0,0,0,.05)!important;color:#0f172a!important}
.campaign--goodness .nav-tab.is-active,[data-campaign="goodness"] .nav-tab.is-active{background:rgba(37,99,235,.08)!important;box-shadow:inset 0 -3px 0 #1d4ed8!important;color:#1d4ed8!important;font-weight:700!important}



.ceremony-stage{position:relative;min-height:100svh;overflow:hidden;background:radial-gradient(circle at 50% 28%,#f7f7f7 0 13%,#bfc0c1 35%,#5b5d5f 66%,#1f2021 100%)}
.stage-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.42) 100%),linear-gradient(to top,rgba(255,255,255,.18),transparent 34%)}
.ceremony-stage:after{content:"";position:absolute;z-index:3;inset:auto -5% -18% -5%;height:50%;background:radial-gradient(ellipse at 50% 0,rgba(255,255,255,.78),rgba(217,219,221,.48) 32%,rgba(63,65,67,.7) 74%);filter:blur(24px);pointer-events:none}
.ceremony-portrait{position:absolute;z-index:2;left:50%;bottom:7%;transform:translateX(-50%);width:min(70vw,1120px);height:min(82vh,870px);object-fit:contain;object-position:center bottom;filter:grayscale(1);pointer-events:none}
.ceremony-copy{position:absolute;z-index:8;left:50%;bottom:6%;transform:translateX(-50%);width:min(760px,90vw);text-align:center;text-shadow:0 2px 18px rgba(255,255,255,.9);color:#151515}
.ceremony-copy h1{margin:0 auto 18px;max-width:720px;font-family:"Noto Serif Thai","Tahoma",serif;font-size:clamp(30px,3.1vw,52px);line-height:1.25;font-weight:500}
.tribute-button{padding:14px 28px;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(31,31,31,.92);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 8px 30px rgba(0,0,0,.22)}
.tribute-button span{margin-left:14px}

.message-stage{position:absolute;z-index:7;inset:80px 24px 100px;pointer-events:none}

/* ── Minimal Testimonial Floating Card ─────────────────────── */
.floating-message{
  position:absolute;
  width:min(340px,32vw);
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,255,255,0.58);
  border:1px solid rgba(255,255,255,0.8);
  box-shadow:0 4px 24px rgba(0,0,0,0.07);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  animation:float-message var(--duration,16s) linear forwards;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.floating-message[data-lane="left"]{left:3%}
.floating-message[data-lane="right"]{right:3%}

/* Header row: avatar + name/role */
.fm-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding-top:10px;
  border-top:1px solid rgba(0,0,0,0.07);
  margin-top:2px;
}

/* Avatar circle — flower container */
.fm-avatar{
  flex-shrink:0;
  width:36px;height:36px;
  border-radius:50%;
  background:rgba(180,150,210,0.15);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  box-shadow:0 2px 6px rgba(120,80,160,0.15);
}
.fm-flower{width:100%;height:100%;object-fit:cover;display:block}

/* Name + role stacked */
.fm-info{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center}
.fm-name{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.fm-meta{font-size:11px;font-weight:500;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Message text — with subtle left-border quote accent */
.fm-text{
  margin:0;
  padding-left:0;
  border-left:0;
  font-size:13.5px;
  line-height:1.6;
  color:#334155;
  font-weight:400;
  text-align:center;
  word-break:break-word;
  display:-webkit-box;
  -webkit-line-clamp:4;
  line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ── Mourning (dark) overrides ─────────────────────────────── */
.campaign--mourning .floating-message{
  background:linear-gradient(135deg,rgba(38,38,40,.34),rgba(12,13,16,.24));
  border-color:rgba(255,255,255,.16);
  box-shadow:0 8px 28px rgba(0,0,0,.16);
  backdrop-filter:blur(12px) grayscale(.35);
  -webkit-backdrop-filter:blur(12px) grayscale(.35);
}
.campaign--mourning .fm-footer{border-top-color:rgba(255,255,255,.08)}
.campaign--mourning .fm-avatar{background:rgba(255,255,255,.1);box-shadow:0 2px 8px rgba(0,0,0,.1)}
.campaign--mourning .fm-avatar svg{stroke:rgba(255,255,255,0.8)}
.campaign--mourning .fm-name{color:rgba(255,255,255,.9)}
.campaign--mourning .fm-meta{color:rgba(255,255,255,.58)}
.campaign--mourning .fm-text{color:rgba(255,255,255,.8)}

@keyframes float-message{
  0%{transform:translateY(70vh);opacity:0}
  8%{opacity:1}
  74%{opacity:0.9}
  100%{transform:translateY(-26vh);opacity:0}
}

/* Modern Floating Menu Docks (Mourning 2 Menus / Goodness 5 Menus) */
.ceremony-nav-bar,.goodness-nav-bar{position:fixed;z-index:25;bottom:76px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:6px 10px;backdrop-filter:blur(24px) saturate(190%);-webkit-backdrop-filter:blur(24px) saturate(190%);border-radius:999px;box-shadow:0 12px 32px rgba(0,0,0,.12);pointer-events:auto}
.ceremony-nav-bar{background:rgba(20,20,24,.55);border:1px solid rgba(255,255,255,.24)}
.goodness-nav-bar{background:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.7)}

.ceremony-nav-tab,.goodness-nav-tab{height:44px;padding:0 22px;border-radius:999px;border:0;font-size:14.5px;font-weight:700;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:8px;letter-spacing:.2px;transition:all .2s cubic-bezier(.4, 0, .2, 1);user-select:none;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,.1);white-space:nowrap;flex-shrink:0}
.ceremony-nav-tab:hover,.goodness-nav-tab:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 6px 18px rgba(0,0,0,.2)}
.ceremony-nav-tab:active,.goodness-nav-tab:active{transform:translateY(0);filter:brightness(.96)}
.nav-tab-icon{flex-shrink:0;color:#fff}

.ceremony-nav-tab--mourning{background:linear-gradient(135deg,#38383e 0%,#18181c 100%);border:1px solid rgba(255,255,255,.25)}
.ceremony-nav-tab--goodness{background:linear-gradient(135deg,#356bb3 0%,#1d4ed8 100%);border:1px solid rgba(255,255,255,.2)}
.goodness-nav-tab{height:42px;padding:0 20px;border-radius:999px;border:0;font-size:14.5px;font-weight:700;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:7px;letter-spacing:.2px;transition:all .2s ease;user-select:none;box-shadow:0 2px 6px rgba(0,0,0,.08);white-space:nowrap;flex-shrink:0}
.goodness-nav-tab:hover{transform:translateY(-2px);filter:brightness(1.07);box-shadow:0 6px 16px rgba(0,0,0,.15)}
.goodness-nav-tab:active{transform:translateY(0);filter:brightness(.96)}
.nav-tab-icon{flex-shrink:0;color:#fff}

.goodness-nav-tab--tribute{background:#356bb3}
.goodness-nav-tab--all{background:#5b9e4d}
.goodness-nav-tab--gallery{background:#dc7d3b}
.goodness-nav-tab--news{background:#8e4277}
.goodness-nav-tab--ecard{background:#2c98bf}
.goodness-nav-tab--mourning{display:none;background:linear-gradient(135deg,#4b4b50,#242428)}

/* Modal Dialogs General */
.tribute-dialog,.goodness-modal{color-scheme:light!important;width:min(900px,calc(100vw - 32px));max-height:calc(100svh - 48px);padding:0!important;border:1px solid #d9dde2;border-radius:18px;background:#fff!important;color:#25282c!important;box-shadow:0 28px 90px rgba(0,0,0,.38);overflow:hidden!important}
.tribute-dialog::-webkit-scrollbar,.goodness-modal::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.tribute-dialog::backdrop,.goodness-modal::backdrop{background:rgba(12,13,14,.72);backdrop-filter:blur(7px)}
.tribute-dialog form,.goodness-modal form{display:flex;flex-direction:column;max-height:calc(100svh - 48px);height:100%;overflow:hidden!important}
.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 28px 16px;border-bottom:1px solid #e4e6e9;flex-shrink:0;background:#fff}
.dialog-header h2{margin:0 0 4px;font-size:23px;color:#1e293b}
.dialog-header p{margin:0;color:#64748b;font-size:14px}
.dialog-close{width:38px;height:38px;border:0;border-radius:10px;background:#f1f5f9;color:#475569;font-size:24px;cursor:pointer;display:grid;place-items:center;transition:background .15s ease}
.dialog-close:hover{background:#e2e8f0;color:#0f172a}
.form-body{overflow-y:auto!important;overflow-x:hidden!important;padding:22px 28px;flex:1 1 auto;background:#fff;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.form-body::-webkit-scrollbar{width:6px}
.form-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
.form-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}

.form-badge-header{text-align:center;margin-bottom:20px}
.form-badge-header h3{margin:0 0 8px;font-size:22px;color:#184b7a;font-weight:700}
.form-badge-pill{display:inline-block;padding:7px 24px;background:#0d47a1;color:#fff;border-radius:999px;font-size:14px;font-weight:600;box-shadow:0 4px 14px rgba(13,71,161,.28)}

.field{display:grid;gap:7px;margin-bottom:18px}
.field span,.field-label,legend{font-weight:650;font-size:14px;color:#334155}
.field b,legend b{color:#dc2626}
.field input:not([type="radio"]):not([type="checkbox"]),.field select,.field textarea,#custom-message-input,.tribute-dialog textarea{display:block!important;width:100%!important;box-sizing:border-box!important;padding:11px 14px;border:1px solid #cfd4da;border-radius:8px;background:#fff!important;color:#1e293b!important;outline:none;font:inherit}
.field select{cursor:pointer}
.tribute-dialog textarea,#custom-message-input,#ecard-custom-message{min-height:110px!important;padding:13px 15px!important;font-size:14.5px!important;line-height:1.6!important;resize:vertical!important}
.field input:focus,.field select:focus,.field textarea:focus,#custom-message-input:focus,.tribute-dialog textarea:focus{border-color:#185cb0!important;box-shadow:0 0 0 3px rgba(24,92,176,.15)!important}
.field--highlight select{border-color:#185cb0;background:#f8fbfe;font-weight:600}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.message-selection-section{margin:12px 0 18px;width:100%}
.message-tabs{display:flex;gap:8px;margin:8px 0 12px}
.message-tab{padding:8px 18px;border:1px solid #d0d7de;border-radius:8px;background:#f6f8fa;color:#333;font-weight:600;cursor:pointer;font-size:14px;transition:all .15s ease}
.message-tab:hover{background:#eef2f6}
.message-tab.is-active{background:#0d47a1;color:#fff;border-color:#0d47a1}
.tab-pane{display:none;width:100%!important}
.tab-pane.is-active{display:block!important;width:100%!important}
.char-count-row{display:flex;justify-content:flex-end;margin-top:4px;color:#6b7280;font-size:12px}

.preset-list{display:grid;grid-template-columns:1fr;gap:10px;margin:0 0 16px;padding:0;border:0;width:100%}
.preset-option{display:flex;align-items:flex-start;justify-content:flex-start;gap:12px;width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid #e1e4e7;border-radius:10px;background:#fff;cursor:pointer;line-height:1.55;text-align:left;transition:all .15s ease}
.preset-option:hover,.preset-option:has(input:checked){border-color:#185cb0;background:#f4f8fd}
.preset-option input[type="radio"]{appearance:auto;-webkit-appearance:auto;width:18px!important;min-width:18px!important;height:18px!important;margin:3px 0 0 0!important;padding:0!important;flex:0 0 18px!important;cursor:pointer;accent-color:#0d47a1}
.preset-option span{flex:1 1 auto;margin:0;padding:0;text-align:left;color:#25282c;font-size:14.5px;line-height:1.5}

.captcha-section{display:grid;gap:8px;margin:16px 0 18px}
.captcha-box-row{display:flex;align-items:flex-start;gap:16px}
.captcha-image-wrapper{display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.captcha-refresh{display:inline-block;padding:0;border:1.5px solid #cfd8e0;border-radius:10px;background:#f8fafc;cursor:pointer;overflow:hidden;box-shadow:0 2px 5px rgba(0,0,0,.04);transition:all .15s ease}
.captcha-refresh:hover{border-color:#185cb0;box-shadow:0 3px 10px rgba(24,92,176,.15)}
.captcha-refresh img{display:block;width:150px;height:50px;object-fit:contain}
.captcha-hint{font-size:11.5px;color:#64748b;font-weight:500}
.captcha-input-wrapper{flex:1;display:flex;align-items:flex-start}
.captcha-input-wrapper input{height:50px!important;font-size:20px!important;font-weight:700!important;letter-spacing:6px!important;text-align:center!important;padding:0 16px!important;border:1.5px solid #cfd8e0!important;border-radius:10px!important;background:#fff!important;color:#0f172a!important}
.captcha-input-wrapper input:focus{border-color:#185cb0!important;box-shadow:0 0 0 3px rgba(24,92,176,.15)!important}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:18px}
.consent input{margin-top:4px;accent-color:#0d47a1}
.consent span{font-size:14px;color:#334155}
.honeypot{position:absolute!important;left:-9999px!important}
.form-status{min-height:22px;margin:12px 0 0;color:#235d38;font-weight:600}
.form-status.is-error{color:#a12e2e}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;border-top:1px solid #e4e6e9;flex-shrink:0;background:#fff}
.button{padding:11px 22px;border-radius:8px;border:1px solid #cdd2d7;font-weight:700;cursor:pointer;transition:all .15s ease}
.button--quiet{background:#fff;color:#30353a}
.button--quiet:hover{background:#f1f5f9}
.button--primary{border-color:#0d47a1;background:#0d47a1;color:#fff}
.button--primary:hover{background:#09367c}

/* Filter Bar & Pills */
.modal-filter-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 28px;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0}
.filter-pills{display:flex;flex-wrap:wrap;gap:6px}
.filter-pill{padding:7px 16px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s ease}
.filter-pill:hover{background:#eef2f6;color:#1e293b}
.filter-pill.is-active{background:#0d47a1;color:#fff;border-color:#0d47a1;box-shadow:0 2px 8px rgba(13,71,161,.25)}
.filter-search input{padding:8px 16px;border-radius:999px;border:1px solid #cbd5e1;font-size:13.5px;width:260px;background:#fff;outline:none}
.filter-search input:focus{border-color:#0d47a1;box-shadow:0 0 0 3px rgba(13,71,161,.12)}

/* Archive / All Messages Modal */
.modal-scrollable-body{background:#f8fafc!important;max-height:calc(100svh - 180px)}
.messages-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
.archive-card{padding:16px 18px;border-radius:12px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 2px 6px rgba(0,0,0,.03);display:flex;flex-direction:column;justify-content:space-between;gap:12px;transition:transform .15s ease,box-shadow .15s ease}
.archive-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.06);border-color:#cbd5e1}
.archive-card__text{margin:0;font-size:15px;line-height:1.6;color:#1e293b;word-break:break-word}
.archive-card__footer{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;border-top:1px solid #f1f5f9;padding-top:10px}
.archive-card__name{font-size:13.5px;font-weight:700;color:#0f172a;display:block}
.archive-card__meta{font-size:12px;font-weight:500;color:#0284c7;display:block;margin-top:2px}
.archive-card__time{font-size:11px;color:#94a3b8;white-space:nowrap}
.empty-state{text-align:center;padding:48px 16px;color:#64748b;font-size:15px}

/* Gallery Modal */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.gallery-card{border-radius:12px;overflow:hidden;background:#fff;border:1px solid #e2e8f0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .25s ease}
.gallery-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.gallery-card.is-hidden{display:none}
.gallery-card__thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e2e8f0}
.gallery-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.gallery-card:hover .gallery-card__thumb img{transform:scale(1.06)}
.gallery-card__overlay{position:absolute;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;color:#fff;font-size:13.5px;font-weight:600;opacity:0;transition:opacity .2s ease}
.gallery-card:hover .gallery-card__overlay{opacity:1}
.gallery-card__title{padding:10px 14px;font-size:13.5px;font-weight:600;color:#334155;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-empty-filter{text-align:center;padding:48px 16px;color:#94a3b8;font-size:15px;font-weight:500;display:none}

/* Gallery Device Type Tabs */
.gallery-tabs{display:flex;align-items:center;gap:4px;padding:10px 24px 0;background:transparent;flex-shrink:0;overflow-x:auto;scrollbar-width:none}
.gallery-tabs::-webkit-scrollbar{display:none}
.gallery-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:1.5px solid rgba(0,0,0,.1);background:rgba(248,250,252,1);color:#64748b;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;letter-spacing:.1px;flex-shrink:0}
.gallery-tab:hover{background:rgba(226,232,240,1);color:#334155;border-color:rgba(0,0,0,.15)}
.gallery-tab--active,.gallery-tab[aria-selected="true"]{background:#003b71;color:#fff;border-color:#003b71;box-shadow:0 3px 12px rgba(0,59,113,.28)}
.gallery-tab--active svg,.gallery-tab[aria-selected="true"] svg{stroke:#fff}
.gallery-tab__badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:rgba(0,0,0,.1);color:inherit;font-size:11px;font-weight:700;line-height:1;margin-left:2px;transition:background .2s ease}
.gallery-tab--active .gallery-tab__badge,.gallery-tab[aria-selected="true"] .gallery-tab__badge{background:rgba(255,255,255,.25);color:#fff}

/* Lightbox */
.lightbox-dialog{padding:0!important;border:0!important;background:transparent!important;max-width:92vw;max-height:92vh;overflow:visible!important;box-shadow:none!important}
.lightbox-dialog::backdrop{background:rgba(0,0,0,.88);backdrop-filter:blur(8px)}
.lightbox-content{position:relative;display:flex;flex-direction:column;align-items:center;max-width:92vw;max-height:92vh}
.lightbox-content img{max-width:88vw;max-height:80vh;object-fit:contain;border-radius:10px;box-shadow:0 16px 48px rgba(0,0,0,.7)}
.lightbox-close{position:absolute;top:-16px;right:-16px;width:40px;height:40px;border-radius:50%;background:#fff;color:#000;border:0;font-size:24px;font-weight:bold;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.4);display:grid;place-items:center;transition:transform .15s ease}
.lightbox-close:hover{transform:scale(1.1)}
.lightbox-caption{color:#fff;margin-top:12px;font-size:15px;font-weight:600;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.9)}

/* News Modal */
.news-list{display:grid;gap:16px}
.news-card{display:grid;grid-template-columns:220px 1fr;gap:18px;padding:16px;border-radius:12px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 2px 6px rgba(0,0,0,.03);transition:transform .15s ease}
.news-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.06)}
.news-card__image{aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:#e2e8f0}
.news-card__image img{width:100%;height:100%;object-fit:cover}
.news-card__content{display:flex;flex-direction:column;justify-content:center}
.news-card__date{font-size:12px;color:#8b1351;font-weight:700;text-transform:uppercase;margin-bottom:4px}
.news-card__title{margin:0 0 8px;font-size:17px;font-weight:700;color:#1e293b;line-height:1.4}
.news-card__excerpt{margin:0 0 12px;font-size:13.5px;color:#64748b;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-card__link{font-size:13.5px;font-weight:700;color:#0d47a1;text-decoration:none;align-self:flex-start}
.news-card__link:hover{text-decoration:underline}

/* E-Card Modal & Interactive Canvas */
.ecard-canvas-wrapper{margin-bottom:20px;padding:16px;background:#f8fafc;border-radius:14px;border:1px solid #e2e8f0;text-align:center}
.ecard-stage-container{display:flex;justify-content:center;align-items:center;margin-top:10px}
.ecard-canvas-card{position:relative;width:min(100%,520px);aspect-ratio:4/3;border-radius:12px;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.16);background:#1e293b}
.ecard-canvas-card img{width:100%;height:100%;object-fit:cover;display:block}
.ecard-canvas-overlay{position:absolute;top:25%;bottom:12%;left:46%;right:6%;display:flex;flex-direction:column;justify-content:space-between;padding:6px 8px;box-sizing:border-box;text-align:left;color:#1e293b;pointer-events:none}
.ecard-card-to{font-size:12px;color:#1e3a8a;font-weight:600;line-height:1.2}
.ecard-card-to strong{font-size:13px;color:#0f172a;font-weight:700;margin-left:4px}
.ecard-card-body{font-size:11.5px;line-height:1.45;color:#1e293b;font-weight:500;word-break:break-word;flex:1 1 auto;display:flex;align-items:center;padding:4px 0}
.ecard-card-from{font-size:12px;color:#1e3a8a;font-weight:600;text-align:right;line-height:1.2}
.ecard-card-from strong{font-size:13px;color:#0f172a;font-weight:700;margin-left:4px}

.ecard-section{margin-bottom:20px;padding-bottom:18px;border-bottom:1px dashed #e2e8f0}
.ecard-section:last-child{border-bottom:0}
.ecard-categories-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ecard-templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;max-height:190px;overflow-y:auto;padding:6px 2px;margin-top:8px}
.ecard-template-item{position:relative;border-radius:10px;overflow:hidden;border:2px solid #e2e8f0;cursor:pointer;transition:all .15s ease;background:#fff;display:flex;flex-direction:column}
.ecard-template-item input{position:absolute;opacity:0}
.ecard-template-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ecard-template-item.is-selected,.ecard-template-item:has(input:checked){border-color:#1db2e8;box-shadow:0 0 0 3px rgba(29,178,232,.35)}
.ecard-check-badge{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#1db2e8;color:#fff;font-size:13px;font-weight:bold;display:none;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.ecard-template-item.is-selected .ecard-check-badge,.ecard-template-item:has(input:checked) .ecard-check-badge{display:grid}
.ecard-template-name{display:block;font-size:11px;padding:4px 6px;text-align:center;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f8fafc}

.ecard-preset-box{margin-top:8px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;overflow:hidden}
.ecard-preset-title{display:block;padding:8px 14px;background:#f8fafc;font-size:12.5px;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}
.ecard-preset-list{list-style:none;margin:0;padding:0;max-height:160px;overflow-y:auto}
.ecard-preset-item{padding:10px 14px;border-bottom:1px solid #f1f5f9;font-size:13.5px;color:#334155;cursor:pointer;transition:all .15s ease;line-height:1.5}
.ecard-preset-item:hover{background:#f0fdf4;color:#166534}
.ecard-preset-item.is-active{background:#e0f2fe;color:#0369a1;font-weight:600}

.button--download{background:#0284c7;color:#fff;border-color:#0284c7}
.button--download:hover{background:#0369a1}

/* Goodness Campaign Scenery & Backgrounds */
.campaign--default.has-background .ceremony-stage{background-color:#1b6bc0;background-image:var(--background-image);background-position:center top;background-size:cover;background-repeat:no-repeat}
.campaign--default .ceremony-stage{background:#1b6bc0 url('../images/goodness-background.png') center top/cover no-repeat}
.campaign--default .ceremony-stage:after{display:none}
.campaign--default.has-background .stage-atmosphere{z-index:5;background:linear-gradient(to top,rgba(4,42,23,.18),transparent 28%);pointer-events:none}
.goodness-scene{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.goodness-time-sky{position:absolute;z-index:0;inset:0;background:linear-gradient(180deg,rgba(75,172,225,.04),rgba(255,219,151,.02));transition:background 1.2s ease,opacity 1.2s ease}
.goodness-stars{position:absolute;z-index:1;inset:0 0 25%;background:url('../images/goodness-stars.png') center bottom/auto repeat;opacity:0;transition:opacity 1.2s ease;filter:drop-shadow(0 0 4px rgba(255,255,255,.55))}
.goodness-sun,.goodness-moon{position:absolute;z-index:1;display:block;object-fit:contain;transform:translate(-50%,-50%);transition:left 1.2s ease,top 1.2s ease,opacity 1.2s ease;will-change:left,top,opacity}
.goodness-sun{left:20%;top:50%;width:clamp(130px,18vw,300px);height:clamp(130px,18vw,300px);opacity:0;filter:drop-shadow(0 0 30px rgba(255,220,94,.42))}
.goodness-moon{left:20%;top:10%;width:clamp(64px,7vw,100px);height:clamp(64px,7vw,100px);opacity:0;filter:drop-shadow(0 0 22px rgba(225,240,255,.58))}
.goodness-ground{position:absolute;z-index:2;inset:0;background:url('../images/goodness-ground.png') center bottom/cover no-repeat}
.goodness-clouds{position:absolute;z-index:1;top:0;left:-20%;width:140%;height:52%;background:url('../images/goodness-cloud.png') center top/auto 100% repeat-x;opacity:.36;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 12%,rgba(0,0,0,1) 28%,rgba(0,0,0,.7) 70%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 12%,rgba(0,0,0,1) 28%,rgba(0,0,0,.7) 70%,transparent 100%);animation:goodness-cloud-drift 70s linear infinite}
.goodness-hero-header{position:absolute;z-index:6;top:max(95px,12.5vh);left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;width:min(90vw,860px);user-select:none}
.goodness-hero-title{margin:0 0 14px;font-family:"Kanit","Noto Sans Thai",sans-serif;font-size:clamp(32px,3.8vw,50px);font-weight:700;line-height:1.25;color:#fff;text-shadow:0 2px 12px rgba(10,37,77,.5),0 1px 3px rgba(0,0,0,.25);letter-spacing:.3px}
.goodness-hero-sub1{margin:0 auto 10px;max-width:820px;font-family:"Prompt","Sarabun","Noto Sans Thai",sans-serif;font-size:clamp(14px,1.35vw,18px);font-weight:500;color:#fff;text-shadow:0 2px 8px rgba(0,30,70,.5);line-height:1.6}
.goodness-hero-quote{margin:0 auto;font-family:"Noto Serif Thai","Prompt",serif;font-size:clamp(16px,1.6vw,22px);font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,30,70,.6);letter-spacing:.3px;line-height:1.5}

.goodness-tree{position:absolute;z-index:3;left:50%;top:53%;transform:translate(-50%,-50%);width:min(48vw,780px);height:min(64vh,600px);object-fit:contain;object-position:center center;filter:drop-shadow(0 14px 28px rgba(14,55,28,.25));pointer-events:none}
.campaign--goodness[data-time-theme="dawn"] .goodness-time-sky{background:linear-gradient(180deg,rgba(53,88,151,.42) 0%,rgba(244,156,103,.34) 47%,rgba(255,226,170,.16) 100%)}
.campaign--goodness[data-time-theme="dawn"] .goodness-sun{opacity:.72}
.campaign--goodness[data-time-theme="dawn"] .goodness-stars{opacity:.32}
.campaign--goodness[data-time-theme="dawn"] .goodness-clouds{opacity:.32}
.campaign--goodness[data-time-theme="day"] .goodness-time-sky{background:linear-gradient(180deg,rgba(72,172,226,.15),rgba(180,225,244,.04) 64%)}
.campaign--goodness[data-time-theme="day"] .goodness-sun{opacity:.68}
.campaign--goodness[data-time-theme="day"] .goodness-clouds{opacity:.4}
.campaign--goodness[data-time-theme="sunset"] .goodness-time-sky{background:linear-gradient(180deg,rgba(43,82,145,.35) 0%,rgba(234,115,78,.46) 56%,rgba(247,184,104,.2) 100%)}
.campaign--goodness[data-time-theme="sunset"] .goodness-sun{opacity:.72;filter:sepia(.45) saturate(1.35) hue-rotate(335deg) drop-shadow(0 0 34px rgba(255,119,54,.5))}
.campaign--goodness[data-time-theme="sunset"] .goodness-stars{opacity:.18}
.campaign--goodness[data-time-theme="sunset"] .goodness-clouds{opacity:.25}
.campaign--goodness[data-time-theme="night"] .goodness-time-sky{background:linear-gradient(180deg,rgba(3,16,52,.76) 0%,rgba(15,41,79,.67) 58%,rgba(12,35,56,.48) 100%)}
.campaign--goodness[data-time-theme="night"] .goodness-stars{opacity:.9}
.campaign--goodness[data-time-theme="night"] .goodness-moon{opacity:.94}
.campaign--goodness[data-time-theme="night"] .goodness-clouds{opacity:.1;filter:brightness(.72) saturate(.7)}
.campaign--goodness[data-time-theme="night"] .goodness-tree{filter:brightness(.66) saturate(.72) drop-shadow(0 14px 30px rgba(0,0,0,.38))}
.campaign--goodness[data-time-theme="night"] .goodness-hero-title,.campaign--goodness[data-time-theme="night"] .goodness-hero-sub1,.campaign--goodness[data-time-theme="night"] .goodness-hero-quote{text-shadow:0 2px 14px rgba(0,0,0,.76)}
.campaign--goodness[data-time-theme="night"] .public-nav--bottom{background:rgba(9,22,43,.68)!important;border-top-color:rgba(255,255,255,.2)!important}
.campaign--goodness[data-time-theme="night"] .public-nav__brand,.campaign--goodness[data-time-theme="night"] .language,.campaign--goodness[data-time-theme="night"] .nav-tab{color:#fff!important}
.campaign--goodness[data-time-theme="night"] .nav-tab{border-inline-color:rgba(255,255,255,.12)!important}
.campaign--goodness[data-time-theme="night"] .nav-tab.is-active{background:rgba(255,255,255,.12)!important;box-shadow:inset 0 -3px 0 #8acbff!important;color:#fff!important}
.campaign--default.has-background .ceremony-copy{bottom:84px}
.ceremony-copy--goodness{display:none}
@keyframes goodness-cloud-drift{from{transform:translateX(-5%)}to{transform:translateX(5%)}}

/* Mourning Campaign */
.campaign--mourning .ceremony-stage:after{display:none}
.campaign--mourning .ceremony-portrait{inset:0;left:0;bottom:auto;transform:none;width:100%;height:100%;object-fit:cover;object-position:center center;filter:grayscale(1)}
.campaign--mourning .stage-atmosphere{z-index:3;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.18) 100%)}
.mourning-fireflies{position:absolute;z-index:4;inset:0;overflow:hidden;pointer-events:none}
.mourning-fireflies span{position:absolute;left:var(--x);top:var(--y);width:calc(var(--size) * .72);height:calc(var(--size) * .72);animation-duration:var(--duration);animation-delay:var(--delay);animation-timing-function:ease-in-out;animation-iteration-count:infinite;will-change:transform}
.mourning-fireflies span:after{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;box-shadow:0 0 4px 1px rgba(255,255,255,.92),0 0 9px 3px rgba(255,255,255,.3);animation:mourning-firefly-glow calc(var(--pulse) * 1.8) ease-in-out var(--delay) infinite;will-change:opacity,transform}
.mourning-fireflies span:nth-child(3n+1){animation-name:mourning-firefly-path-a}
.mourning-fireflies span:nth-child(3n+2){animation-name:mourning-firefly-path-b}
.mourning-fireflies span:nth-child(3n){animation-name:mourning-firefly-path-c}
.mourning-title{position:absolute;z-index:9;top:18px;left:50%;width:min(580px,72vw);height:auto;transform:translateX(-50%);object-fit:contain;filter:brightness(0) drop-shadow(0 2px 9px rgba(255,255,255,.75));opacity:.86;animation:mourning-title-rise 1.1s ease-out both}
.campaign--mourning .ceremony-copy{bottom:88px}
.campaign--mourning .message-stage{inset:150px 24px 145px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes mourning-title-rise{from{opacity:0;transform:translate(-50%,45px)}to{opacity:.86;transform:translate(-50%,0)}}
@keyframes mourning-firefly-path-a{0%,100%{transform:translate3d(0,0,0)}22%{transform:translate3d(28px,-19px,0)}48%{transform:translate3d(9px,-48px,0)}72%{transform:translate3d(-25px,-27px,0)}}
@keyframes mourning-firefly-path-b{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(-22px,-34px,0)}51%{transform:translate3d(18px,-51px,0)}76%{transform:translate3d(31px,-16px,0)}}
@keyframes mourning-firefly-path-c{0%,100%{transform:translate3d(0,0,0)}19%{transform:translate3d(17px,22px,0)}44%{transform:translate3d(-19px,7px,0)}69%{transform:translate3d(-8px,-37px,0)}86%{transform:translate3d(25px,-21px,0)}}
@keyframes mourning-firefly-glow{0%,100%{opacity:.12;transform:scale(.55)}18%{opacity:.95;transform:scale(1.18)}31%{opacity:.28;transform:scale(.72)}58%{opacity:.82;transform:scale(1)}74%{opacity:.18;transform:scale(.62)}88%{opacity:.7;transform:scale(.9)}}

/* Responsive Queries */
@media(max-width:800px){
  .public-nav{height:52px;padding:0 12px;grid-template-columns:1fr auto}
  .public-nav__brand,.language{display:none}
  .public-nav nav{width:100%}
  .nav-tab{min-width:0;flex:1;padding:0 12px;font-size:13px}
  .ceremony-portrait{content:var(--hero-mobile);width:100%;height:78vh;bottom:7%;object-fit:contain}
  .mourning-title{top:12px;width:90vw}
  .goodness-hero-header{top:62px;width:94vw}
  .goodness-hero-title{font-size:clamp(23px,6.5vw,32px);margin:0 0 8px}
  .goodness-hero-sub1{font-size:12.5px;margin:0 auto 6px;line-height:1.5}
  .goodness-hero-quote{font-size:13.5px;line-height:1.45}
  .goodness-tree{top:56%;transform:translate(-50%,-35%);width:min(86vw,540px);height:min(52vh,420px)}
  .goodness-nav-bar{bottom:8px;width:calc(100% - 16px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:18px}
  .goodness-nav-tab{width:100%;height:38px;padding:0 7px;font-size:11.5px;min-width:0;border-radius:12px;gap:4px}
  .goodness-nav-tab--mourning{display:inline-flex}
  .nav-tab-icon{width:14px;height:14px}
  .message-stage{inset:60px 10px 108px}
  .floating-message{width:min(82vw,310px);padding:12px 14px}
  .floating-message[data-lane="left"]{left:2%}
  .floating-message[data-lane="right"]{right:2%}
  .captcha-row{grid-template-columns:1fr}
  .form-grid-2{grid-template-columns:1fr;gap:0}
  .dialog-header,.form-body,.dialog-actions{padding-inline:16px}
  .modal-filter-bar{padding:10px 16px;flex-direction:column;align-items:stretch}
  .filter-search input{width:100%}
  .messages-archive-grid{grid-template-columns:1fr}
  .news-card{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .floating-message{animation:none;top:auto!important;bottom:120px;opacity:1}
  .floating-message:not(:last-child){display:none}
  .goodness-clouds{animation:none}
  .goodness-sun,.goodness-moon,.goodness-time-sky,.goodness-stars{transition:none}
  .mourning-fireflies{display:none}
}

/* Testimonial Card Styles for Messages Archive */
.messages-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;padding:6px 2px}
.archive-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 4px 18px rgba(0,0,0,.03);transition:all .22s cubic-bezier(.4,0,.2,1);overflow:hidden}
.archive-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.09);border-color:#cbd5e1}

.testimonial-quote-mark{position:absolute;top:2px;right:14px;font-family:Georgia,serif;font-size:68px;line-height:1;color:#cbd5e1;opacity:.4;user-select:none;pointer-events:none}
.archive-card__text{font-size:15px;line-height:1.68;color:#334155;margin:0 0 18px;font-weight:450;position:relative;z-index:1;word-break:break-word}

.archive-card__footer{border-top:1px solid #f1f5f9;padding-top:14px;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.archive-card__profile{display:flex;align-items:center;gap:10px;min-width:0}
.archive-card__avatar{width:38px;height:38px;border-radius:50%;background:rgba(180,150,210,.15);display:grid;place-items:center;overflow:hidden;flex-shrink:0;box-shadow:0 3px 10px rgba(120,80,160,.18)}
.archive-card__flower{width:100%;height:100%;object-fit:cover;display:block}
.archive-card__author{display:flex;flex-direction:column;gap:2px;min-width:0}
.archive-card__name{font-size:14px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.archive-card__meta{font-size:12px;color:#2563eb;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.archive-card__time{font-size:11.5px;color:#94a3b8;font-weight:500;white-space:nowrap;flex-shrink:0}

/* Gallery Card & Action Buttons (Light & Airy Glass Icons) */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;padding:6px 2px}
.gallery-card{position:relative;border-radius:14px;overflow:hidden;border:1px solid #e2e8f0;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.04);transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;cursor:pointer}
.gallery-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.12);border-color:#cbd5e1}

.gallery-card__thumb{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:#0f172a}
.gallery-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.gallery-card:hover .gallery-card__thumb img{transform:scale(1.04)}

.gallery-card__actions{position:absolute;bottom:10px;right:10px;z-index:10;display:flex;align-items:center;gap:7px;pointer-events:auto}
.gallery-btn{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);color:#1e293b;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px rgba(0,0,0,.12);text-decoration:none}
.gallery-btn:hover{background:#ffffff;border-color:#93c5fd;color:#1d4ed8;transform:scale(1.12);box-shadow:0 6px 16px rgba(0,0,0,.2)}

.gallery-card__title{padding:10px 14px;font-size:13px;font-weight:600;color:#334155;background:#fff;border-top:1px solid #f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Modern Spacious Image Lightbox Modal */
.lightbox-modal{width:min(1100px,calc(100vw - 32px))!important;max-height:calc(100svh - 32px)!important;background:rgba(12,16,26,.95)!important;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);color:#fff!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:20px!important;padding:0!important;overflow:hidden!important;box-shadow:0 30px 90px rgba(0,0,0,.6)!important}
.lightbox-modal::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(12px)}
.lightbox-close-btn{position:absolute;top:14px;right:16px;z-index:30;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;transition:all .2s ease}
.lightbox-close-btn:hover{background:rgba(255,255,255,.3);transform:scale(1.08)}

.lightbox-stage{display:flex;flex-direction:column;max-height:calc(100svh - 32px);padding:24px 24px 18px}
.lightbox-img-wrapper{flex:1 1 auto;display:grid;place-items:center;min-height:0;overflow:hidden;margin-bottom:14px}
.lightbox-img-wrapper img{max-width:100%;max-height:calc(78vh - 70px);object-fit:contain;border-radius:12px;box-shadow:0 16px 45px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.1)}

.lightbox-footer-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12);flex-shrink:0}
.lightbox-caption-text{font-size:15px;font-weight:600;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lightbox-dl-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:999px;background:#003b71;border:1px solid #2563eb;color:#fff;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s ease;box-shadow:0 4px 14px rgba(0,59,113,.3)}
.lightbox-dl-btn:hover{background:#1d4ed8;transform:translateY(-2px);box-shadow:0 6px 18px rgba(37,99,235,.4)}

/* Softer E-Card actions that blend with the card composer. */
.ecard-modal .dialog-actions{align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(180deg,rgba(248,250,252,.9),#fff);border-top-color:#e8edf3;box-shadow:0 -8px 24px rgba(15,23,42,.035)}
.ecard-modal .dialog-actions .button{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:9px 17px;border-radius:999px;font-size:14px;box-shadow:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.ecard-modal .dialog-actions .button:hover{transform:translateY(-1px)}
.ecard-modal .button--quiet{border-color:transparent;background:transparent;color:#64748b}
.ecard-modal .button--quiet:hover{background:#eef2f6;color:#334155}
.ecard-modal .button--download{border-color:#c8e2f2;background:#eef8fd;color:#076b9c}
.ecard-modal .button--download:hover{border-color:#abd5ea;background:#e2f3fb;box-shadow:0 5px 14px rgba(2,132,199,.12)}
.ecard-modal .button--primary{border-color:#2d5f9d;background:linear-gradient(135deg,#396da8,#234f8d);color:#fff;box-shadow:0 5px 14px rgba(35,79,141,.18)}
.ecard-modal .button--primary:hover{background:linear-gradient(135deg,#32649e,#1f477f);box-shadow:0 7px 18px rgba(35,79,141,.24)}
.ecard-action-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
@media(max-width:620px){.ecard-modal .dialog-actions{padding:10px 12px}.ecard-modal .dialog-actions .button{padding:9px 12px;font-size:12.5px}.ecard-modal .button--quiet span{display:none}.ecard-modal .button--quiet{width:42px;padding:0;justify-content:center}}
