/* SWISS INVITATION — CONTENT, DIALOGS, MOBILE. */
#sw-invitation .sw-main {position:relative;background:#fcfdfb}
#sw-invitation .sw-letter {padding-block:100px 82px;display:grid;grid-template-columns:.6fr 1.4fr;gap:70px;border-bottom:1px solid var(--sw-line);scroll-margin-top:30px}
#sw-invitation .sw-letter-heading h2 {font-size:clamp(34px,4vw,48px);font-weight:400;line-height:1.12;letter-spacing:-.05em;margin-top:20px}
#sw-invitation .sw-rule {width:42px;height:4px;background:var(--sw-yellow);margin-top:26px}
#sw-invitation .sw-letter-body>p {font-size:17px;line-height:1.9;letter-spacing:-.01em}
#sw-invitation .sw-letter-body .sw-letter-closing {font-size:15px;color:var(--sw-muted);margin-top:24px}
#sw-invitation .sw-full-letter {margin-top:22px}
#sw-invitation .sw-full-letter summary {display:flex;align-items:center;gap:12px;width:fit-content;cursor:pointer;font-size:12px;font-weight:600;color:var(--sw-deep);list-style:none;padding:8px 0;border-bottom:1px solid var(--sw-line)}
#sw-invitation .sw-full-letter summary::-webkit-details-marker {display:none}
#sw-invitation .sw-full-letter summary::after {content:"+";font-size:21px;font-weight:400;line-height:1}
#sw-invitation .sw-full-letter[open] summary::after {content:"−"}
#sw-invitation .sw-full-letter p {font-size:14px;line-height:1.95;color:var(--sw-muted);margin-top:20px}
#sw-invitation .sw-signature {margin-top:30px;border-left:2px solid var(--sw-teal);padding-left:20px}
#sw-invitation .sw-signature strong {display:block;font-size:14px;font-weight:600;line-height:1.5}
#sw-invitation .sw-signature-roles {display:grid;gap:2px;margin-top:5px}
#sw-invitation .sw-signature-roles>span {display:block;font-size:11px;font-weight:400;color:var(--sw-muted);line-height:1.55;margin:0}
#sw-invitation .sw-evening {padding-block:76px 84px}
#sw-invitation .sw-section-title {font-size:clamp(32px,4vw,47px);line-height:1.12;font-weight:400;letter-spacing:-.045em;margin-top:16px}
#sw-invitation .sw-evening-grid {display:grid;grid-template-columns:1.06fr 1fr;gap:64px;margin-top:42px}
#sw-invitation .sw-date-panel {background:#eaf8f3;border:1px solid var(--sw-line);padding:34px 34px 32px;position:relative}
#sw-invitation .sw-date-panel::after {content:"";position:absolute;width:30px;height:4px;background:var(--sw-yellow);top:-2px;left:34px}
#sw-invitation .sw-date-heading {display:flex;align-items:center;gap:20px}
#sw-invitation .sw-date-number {font-size:74px;font-weight:300;line-height:1;letter-spacing:-.07em;color:var(--sw-deep)}
#sw-invitation .sw-date-month {font-size:18px;line-height:1.5;letter-spacing:-.02em}
#sw-invitation .sw-date-month small {display:block;font-size:11px;letter-spacing:.08em;color:var(--sw-muted)}
#sw-invitation .sw-time {display:flex;gap:10px;align-items:center;padding-block:24px;font-size:14px;border-bottom:1px solid var(--sw-line)}
#sw-invitation .sw-time small {font-size:10px;color:var(--sw-muted);display:block}
#sw-invitation .sw-countdown {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:26px;text-align:center;gap:8px}
#sw-invitation .sw-countdown>div {border-right:1px solid var(--sw-line)}
#sw-invitation .sw-countdown>div:last-child {border:0}
#sw-invitation .sw-countdown strong {display:block;font-size:28px;line-height:1.2;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
#sw-invitation .sw-countdown span {font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:var(--sw-muted)}
#sw-invitation .sw-countdown-state {margin-top:20px;font-size:13px;color:var(--sw-deep)}
#sw-invitation .sw-button {display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:14px 22px;border:1px solid var(--sw-deep);border-radius:3px;background:var(--sw-deep);color:#fff;font-size:12px;font-weight:600;line-height:1.4;transition:background .2s,transform .2s;text-align:center}
#sw-invitation .sw-button:hover {background:#00564f;transform:translateY(-2px)}
#sw-invitation .sw-button svg {width:19px;height:19px}
#sw-invitation .sw-button-light {background:transparent;color:var(--sw-deep);border-color:var(--sw-line)}
#sw-invitation .sw-button-light:hover {background:#e1f6ef}
#sw-invitation .sw-date-panel .sw-button {width:100%;margin-top:30px}
#sw-invitation .sw-button[data-sw-calendar],#sw-invitation .sw-button[data-sw-calendar]:hover {background:var(--sw-teal);border-color:var(--sw-teal);color:var(--sw-ink)}
#sw-invitation .sw-location {display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0}
#sw-invitation .sw-location-mark {display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--sw-line);border-radius:50%;background:#eff9f5;margin-bottom:22px}
#sw-invitation .sw-location h3 {font-size:28px;line-height:1.25;font-weight:500;letter-spacing:-.04em;margin-top:13px}
#sw-invitation .sw-address {font-size:16px;color:var(--sw-muted);margin-top:9px}
#sw-invitation .sw-location-note {font-size:13px;color:var(--sw-muted);max-width:330px;margin-top:20px;line-height:1.9}
#sw-invitation .sw-location .sw-button {margin-top:25px;min-width:210px}
#sw-invitation .sw-link {font-size:11px;display:inline-flex;align-items:center;gap:9px;border-bottom:1px solid var(--sw-line);padding:5px 0;background:none;border-top:0;border-left:0;border-right:0;color:var(--sw-muted);margin-top:15px}
#sw-invitation .sw-rsvp {padding-block:54px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-top:1px solid var(--sw-line)}
#sw-invitation .sw-rsvp h2 {font-weight:400;font-size:31px;line-height:1.2;letter-spacing:-.035em}
#sw-invitation .sw-rsvp p {font-size:13px;color:var(--sw-muted);margin-top:10px}
#sw-invitation .sw-footer {position:relative;overflow:hidden;padding:76px 24px 38px;text-align:center;background:var(--sw-teal);color:var(--sw-ink)}
#sw-invitation .sw-footer>* {position:relative}
#sw-invitation .sw-footer .sw-kicker {color:var(--sw-ink)}
#sw-invitation .sw-footer h2 {font-size:clamp(32px,4.2vw,52px);line-height:1.2;font-weight:400;letter-spacing:-.045em;max-width:650px;margin:20px auto 30px}
#sw-invitation .sw-footer img {width:113px;height:auto;margin:34px auto}
#sw-invitation .sw-footer small {font-size:10px;color:var(--sw-ink);letter-spacing:.04em}
#sw-invitation .sw-footer-date {display:flex;align-items:center;justify-content:center;gap:15px;font-size:11px;color:var(--sw-ink)}
#sw-invitation .sw-footer-date::before {content:"";width:12px;height:9px;flex:none;background:var(--sw-dot-mark) center/contain no-repeat}
#sw-invitation .sw-dialog {position:fixed;inset:0;width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:38px 30px 30px;border:1px solid var(--sw-line);border-radius:12px;background:#fcfefb;color:var(--sw-ink);box-shadow:0 28px 100px rgba(0,59,48,.25);overflow:auto;text-align:left}
#sw-invitation .sw-dialog:not([open]) {display:none}
#sw-invitation .sw-dialog::backdrop {background:rgba(10,44,38,.5);backdrop-filter:blur(5px)}
#sw-invitation .sw-dialog h2 {font-size:30px;font-weight:400;line-height:1.2;letter-spacing:-.04em;margin:14px 0}
#sw-invitation .sw-dialog-intro {font-size:13px;color:var(--sw-muted);line-height:1.8;margin-bottom:22px}
#sw-invitation .sw-close {position:absolute;top:12px;right:12px;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--sw-line);border-radius:50%;color:var(--sw-deep);background:none}
#sw-invitation .sw-close svg {width:18px;height:18px}
#sw-invitation .sw-calendar-choices {display:grid;gap:10px}
#sw-invitation .sw-calendar-choice {display:flex;gap:15px;align-items:center;padding:16px;border:1px solid var(--sw-line);border-radius:5px;background:#fff;color:var(--sw-ink);text-align:left;width:100%}
#sw-invitation .sw-calendar-choice:hover {background:#eaf8f2}
#sw-invitation .sw-calendar-choice strong {display:block;font-size:14px;font-weight:600}
#sw-invitation .sw-calendar-choice small {font-size:11px;color:var(--sw-muted);display:block;margin-top:2px}
#sw-invitation .sw-calendar-help {font-size:11px;color:var(--sw-muted);margin-top:16px;line-height:1.8}
#sw-invitation .sw-form {display:grid;gap:18px}
#sw-invitation .sw-form label {font-size:12px;font-weight:600;display:grid;gap:8px}
#sw-invitation .sw-form em {font-style:normal;font-weight:400;color:var(--sw-muted)}
#sw-invitation .sw-form :is(input[type="text"],textarea) {width:100%;border:1px solid var(--sw-line);border-radius:4px;padding:13px;background:#fff;color:var(--sw-ink);font-size:16px;line-height:1.5}
#sw-invitation .sw-form textarea {resize:vertical;min-height:90px}
#sw-invitation .sw-attendance {border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
#sw-invitation .sw-attendance legend {font-size:12px;font-weight:600;margin-bottom:8px}
#sw-invitation .sw-attendance label {display:flex;align-items:center;gap:8px;padding:12px 10px;border:1px solid var(--sw-line);border-radius:4px;font-size:11px;cursor:pointer}
#sw-invitation .sw-attendance label:has(:checked) {background:#e4f7ef;border-color:var(--sw-deep)}
#sw-invitation .sw-attendance input {accent-color:var(--sw-deep);width:16px;height:16px;flex:none}
#sw-invitation .sw-error {font-size:12px;color:#a72b31}
#sw-invitation .sw-response-note {padding:14px;background:#e6f8f0;font-size:12px;border-left:2px solid var(--sw-teal);margin-top:18px}
#sw-invitation .sw-nojs {display:block;padding:16px 22px;background:#fff4bb;color:#183d3b;font-size:14px}
@media (min-width:800px) {#sw-invitation .sw-welcome-copy .sw-kicker {white-space:nowrap}}
@media (max-width:799px) {
  #sw-invitation .sw-shell {width:calc(100% - 40px)}
  #sw-invitation .sw-topbar {padding-block:20px}
  #sw-invitation .sw-topbar-logo {width:82px;height:60px}
  #sw-invitation .sw-topbar-right {gap:14px}
  #sw-invitation .sw-top-date {font-size:9px;letter-spacing:.1em}
  #sw-invitation .sw-stage {height:calc(100svh - 116px);min-height:620px;max-height:820px}
  #sw-invitation .sw-closed-copy {top:6%}
  #sw-invitation .sw-envelope {width:min(430px,calc(100% - 34px));top:49%}
  #sw-invitation .sw-open-label {top:calc(49% + min(28vw,230px));font-size:10px}
  #sw-invitation .sw-welcome {width:calc(100% - 24px);min-height:490px;margin:0;display:block}
  #sw-invitation .sw-welcome-copy {padding:28px 28px 30px;min-height:490px}
  #sw-invitation .sw-welcome-logo {width:84px;margin-bottom:28px}
  #sw-invitation .sw-welcome h2 {font-size:clamp(43px,9.6vw,66px);margin:16px 0 21px;letter-spacing:-.06em}
  #sw-invitation .sw-welcome-intro {font-size:13px;max-width:250px}
  #sw-invitation .sw-welcome-art {position:absolute;inset:0;background-position:58% 58%;opacity:.4;pointer-events:none}
  #sw-invitation .sw-welcome-art::before {background:linear-gradient(100deg,#fff 4%,rgba(255,255,255,.95) 42%,rgba(255,255,255,.18) 100%)}
  #sw-invitation .sw-welcome-art::after {display:none}
  #sw-invitation .sw-discover {margin-top:14px;font-size:10px}
  #sw-invitation .sw-letter {grid-template-columns:1fr;gap:30px;padding-block:60px 52px}
  #sw-invitation .sw-letter-heading h2 {font-size:37px;max-width:280px}
  #sw-invitation .sw-letter-body>p {font-size:15px;line-height:1.9}
  #sw-invitation .sw-letter-body .sw-letter-closing {font-size:14px}
  #sw-invitation .sw-evening {padding-block:54px 55px}
  #sw-invitation .sw-evening-grid {grid-template-columns:1fr;gap:45px;margin-top:30px}
  #sw-invitation .sw-date-panel {padding:28px 25px}
  #sw-invitation .sw-date-number {font-size:67px}
  #sw-invitation .sw-rsvp {flex-direction:column;align-items:flex-start;padding-block:42px;gap:22px}
  #sw-invitation .sw-rsvp .sw-button {width:100%}
  #sw-invitation .sw-footer {padding-block:58px 34px}
  #sw-invitation .sw-footer-date {flex-wrap:wrap;font-size:10px;gap:9px}
  #sw-invitation .sw-dialog {padding:40px 22px 24px}
}
@media (max-width:360px) {
  #sw-invitation .sw-top-date {display:none}
  #sw-invitation .sw-welcome-copy {padding-inline:23px}
  #sw-invitation .sw-welcome h2 {font-size:42px}
  #sw-invitation .sw-kicker {font-size:9px;letter-spacing:.17em}
  #sw-invitation .sw-attendance {grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce) {
  #sw-invitation *,#sw-invitation *::before,#sw-invitation *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
/* Native RTL and justified host letter in both languages. */
#sw-invitation,#sw-invitation .sw-dialog,#sw-invitation .sw-calendar-choice {text-align:start}
#sw-invitation .sw-letter-body p {text-align:justify;text-align-last:start;text-justify:inter-word;hyphens:auto}
#sw-invitation .sw-signature {border-left:0;padding-left:0;border-inline-start:2px solid var(--sw-teal);padding-inline-start:20px}
#sw-invitation .sw-response-note {border-left:0;border-inline-start:2px solid var(--sw-teal)}
#sw-invitation .sw-countdown>div {border-right:0;border-inline-end:1px solid var(--sw-line)}
#sw-invitation .sw-countdown>div:last-child {border:0}
#sw-invitation .sw-close {right:auto;inset-inline-end:12px}
#sw-invitation .sw-footer {text-align:center}
#sw-invitation[lang="ar"] {font-family:"Noto Sans Arabic",Tahoma,Arial,sans-serif}
#sw-invitation[lang="ar"] :is(h1,h2,h3,.sw-kicker,.sw-open-label,.sw-env-label,.sw-button,.sw-countdown span) {letter-spacing:0}
#sw-invitation[lang="ar"] :is(h1,h2,h3) {line-height:1.45}
#sw-invitation[lang="ar"] .sw-welcome h2 {font-size:clamp(36px,4.5vw,58px);line-height:1.5;margin-block:12px}
#sw-invitation[lang="ar"] .sw-welcome-copy {padding:30px 42px 30px 0}
#sw-invitation[lang="ar"] .sw-welcome-copy .sw-kicker {white-space:normal}
#sw-invitation[lang="ar"] .sw-welcome-logo {margin-bottom:16px}
#sw-invitation[lang="ar"] .sw-welcome-art::before {background:linear-gradient(270deg,#fff,transparent 45%)}
#sw-invitation[lang="ar"] .sw-welcome-intro {font-size:14px;line-height:1.95}
#sw-invitation[lang="ar"] .sw-kicker {font-size:12px}
#sw-invitation[lang="ar"] .sw-letter-body p {line-height:2.1;letter-spacing:0;hyphens:none}
#sw-invitation[dir="rtl"] :is(.sw-button,.sw-link) svg:has(use[href="#sw-i-arrow"]) {transform:scaleX(-1)}
#sw-invitation .sw-dot {margin-left:0;margin-inline-start:.07em}
@media(max-width:799px) {
 #sw-invitation[lang="ar"] .sw-welcome-copy {padding:24px 26px 28px}
 #sw-invitation[lang="ar"] .sw-welcome-art::before {background:linear-gradient(260deg,#fff 4%,rgba(255,255,255,.95) 42%,rgba(255,255,255,.18) 100%)}
 #sw-invitation[lang="ar"] .sw-welcome h2 {font-size:clamp(36px,9vw,48px)}
 #sw-invitation[lang="ar"] .sw-welcome-intro {font-size:13px}
}

/* RSVP acknowledgement replaces the form after a valid response. */
#sw-invitation .sw-rsvp-thanks {text-align:center;padding-top:12px}
#sw-invitation .sw-thanks-mark {display:grid;place-items:center;width:68px;height:68px;margin:0 auto 20px;border-radius:50%;background:#00c9ba;color:#183d3b}
#sw-invitation .sw-thanks-mark svg {width:30px;height:30px;stroke-width:2}
#sw-invitation .sw-rsvp-thanks>p {font-size:13px;line-height:1.8;color:var(--sw-muted)}
#sw-invitation .sw-rsvp-thanks .sw-button {display:flex;width:100%;margin-top:24px;background:#00c9ba;border-color:#00c9ba;color:#183d3b}
#sw-invitation .sw-rsvp-thanks .sw-link {display:flex;width:fit-content;margin:16px auto 0}

/* Explicitly requested opening animation; ambient effects still respect Reduce Motion. */
@media (prefers-reduced-motion:reduce) {
 #sw-invitation.sw-force-opening .sw-env-flap {transition:transform .65s cubic-bezier(.4,0,.2,1),background .3s!important}
 #sw-invitation.sw-force-opening .sw-env-lining {transition:opacity .4s!important}
 #sw-invitation.sw-force-opening .sw-seal {transition:opacity .28s,scale .28s!important}
 #sw-invitation.sw-force-opening .sw-envelope {transition:top 1.35s cubic-bezier(.22,.75,.17,1)!important}
 #sw-invitation.sw-force-opening .sw-vanishing .sw-envelope {transition:opacity .45s,transform .65s!important}
 #sw-invitation.sw-force-opening .sw-closed-copy {transition:opacity .3s,transform .5s!important}
 #sw-invitation.sw-force-opening .sw-open-label {transition:opacity .25s!important}
}

/* Opening card: supplied artwork alongside date, time, then location.
   Logical layout follows the active language; one card serves the whole animation. */
#sw-invitation .sw-card-event-details {
  display:grid;gap:9px;width:100%;margin-top:24px;padding-top:18px;
  border-top:1px solid var(--sw-line);font-size:12px;line-height:1.55;
}
#sw-invitation .sw-card-event-row {
  display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:11px;
  min-width:0;text-align:start;
}
#sw-invitation .sw-card-event-icon {
  display:block;width:24px;height:24px;max-width:none;margin:0;object-fit:contain;
}
#sw-invitation .sw-card-event-row time {font-weight:600}
#sw-invitation .sw-card-event-row span {
  color: inherit;
  overflow-wrap: break-word;
}
@media(max-width:799px) {
  #sw-invitation .sw-card-event-details {margin-top:auto;padding-top:20px;gap:8px;font-size:11px;border:0}
  #sw-invitation .sw-card-event-row {grid-template-columns:22px minmax(0,1fr);gap:9px}
  #sw-invitation .sw-card-event-icon {width:22px;height:22px}
}
/* Match the date, time and location text */
#sw-invitation .sw-card-event-row time,
#sw-invitation .sw-card-event-row span {
  color: var(--sw-ink);
  font-weight: 600;
}