:root{
 --plum:#321a2c;--plum-deep:#241320;--gold:#e0c185;--gold-dark:#7b5a28;--rose:#bd86a5;--ivory:#f7f1e6;
 --color-bg:oklch(96% .017 83);--color-surface:oklch(98% .013 83);--color-text:#342533;--color-muted:#6d5c63;--color-border:#34253330;--input-bg:#fffaf1;--selected:#321a2c;--selected-text:#fff7e9;
 --font-display:'Boska',Georgia,serif;--font-body:'General Sans',Arial,sans-serif;
 --text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:clamp(1.75rem,2.5vw,2.25rem);--text-section:clamp(2.5rem,4.2vw,4rem);--text-hero:clamp(3.8rem,7.2vw,7.2rem);
 --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
 --gutter:clamp(1.25rem,5vw,5rem);--radius-sm:3px;--transition:180ms ease;
}
[data-theme="dark"]{--color-bg:#241b24;--color-surface:#30232e;--color-text:#f3eadc;--color-muted:#c3b5b9;--color-border:#f0e6d530;--input-bg:#392d37;--gold-dark:#e0c185;--selected:#e0c185;--selected-text:#321a2c}
body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6}
.preview-bar{min-height:32px;background:var(--plum-deep);color:#e0cdbd;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);font-size:var(--text-xs);letter-spacing:.04em;text-align:center}
.preview-dot{width:5px;height:5px;flex:none;border-radius:50%;background:var(--gold)}
.site-header{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-3) var(--gutter);background:var(--ivory);color:var(--plum)}
.brands{display:flex;align-items:center;gap:var(--space-6)}
.lotus-logo{width:69px;height:81px;object-fit:contain}
.finca-logo{width:70px;height:70px;object-fit:contain}
.brand-times{font-family:var(--font-display);font-size:var(--text-xl);color:#8a6d56}
.brand-caption{padding-left:var(--space-3);border-left:1px solid #321a2c30;font-size:var(--text-xs);line-height:1.7;letter-spacing:.14em}
nav{display:flex;align-items:center;gap:var(--space-8);font-size:var(--text-sm)}
.nav-link{padding-block:var(--space-3);border-bottom:1px solid transparent}
.nav-link:hover{border-color:var(--plum)}
.languages{display:flex;gap:0}
.languages button,.theme-button{min-height:44px;min-width:44px;border:0;background:transparent;font-size:var(--text-xs)}
.languages button{position:relative}
.languages button[aria-pressed="true"]::after{content:"";position:absolute;height:2px;background:var(--plum);bottom:7px;left:12px;right:12px}
.theme-button{font-size:var(--text-lg);border:1px solid #321a2c35;border-radius:50%}
.hero{background:var(--plum);color:var(--ivory);overflow:hidden}
.hero-inner{max-width:1500px;margin-inline:auto;padding:var(--space-16) var(--gutter) var(--space-12);display:grid;grid-template-columns:1.16fr 1fr;gap:var(--space-12);align-items:center}
.eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.17em;line-height:1.6;text-transform:uppercase}
.hero-eyebrow{color:var(--gold);display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}
.tiny-rule{height:1px;width:32px;background:var(--gold)}
h1,h2,.date-card strong,.date-medallion strong,.photo-label>span:last-child,.footer-names{font-family:var(--font-display);font-weight:400}
h1{font-size:var(--text-hero);line-height:.98;letter-spacing:-.045em;margin-left:-.03em}
h1 em{font-weight:400;color:var(--gold);white-space:nowrap}
.hero-description{max-width:400px;margin-top:var(--space-8);color:#e0d1d8;line-height:1.8}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-10);min-height:56px;padding:var(--space-4) var(--space-6);border:1px solid transparent;font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;transition:background var(--transition),transform var(--transition);border-radius:var(--radius-sm)}
.gold{background:var(--gold);color:var(--plum)}
.gold:hover{background:#f2dbaa}
.plum{background:var(--selected);color:var(--selected-text)}
.plum:hover{filter:brightness(1.14)}
.hero .button{margin-top:var(--space-8)}
.hero-location{margin-top:var(--space-8);display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);letter-spacing:.14em;color:#d5c3cc}
.hero-visual{position:relative;padding:var(--space-4) var(--space-4) 0;min-width:0}
.photo-arch{position:relative;height:530px;max-height:60vw;border-radius:50% 50% 0 0;overflow:hidden;background:#6d442c;outline:1px solid #e0c18580;outline-offset:12px}
.photo-arch img{width:100%;height:100%;object-fit:cover;object-position:center 55%;filter:brightness(.88) saturate(.86)}
.date-medallion{position:absolute;right:-12px;top:var(--space-16);height:150px;width:150px;border-radius:50%;background:var(--gold);color:var(--plum);display:flex;align-items:center;justify-content:center;flex-direction:column;outline:1px solid #e0c185;outline-offset:6px;transform:rotate(8deg)}
.date-medallion strong{font-size:3.25rem;line-height:1.15;letter-spacing:-.05em}
.date-medallion strong span{font-size:2rem;padding-inline:3px}
.date-medallion>span:last-child{font-size:var(--text-xs);letter-spacing:.035em;text-align:center;padding-inline:8px}
.photo-footnote{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);letter-spacing:.06em;padding-top:var(--space-6);color:#ddc8bb}
.photo-footnote>span:last-child{font-size:var(--text-xs);text-align:right}
.hero-bottom{max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-6) var(--gutter);border-top:1px solid #e0c18530}
.hero-bottom>span{font-family:var(--font-display);font-size:var(--text-lg);color:#e1c5aa}
.hero-bottom>a{font-size:var(--text-xs);letter-spacing:.1em;min-height:44px;display:flex;align-items:center}
.section-wrap{max-width:1400px;margin-inline:auto;padding-inline:var(--gutter)}
.opening-note{padding-block:var(--space-24);text-align:center;position:relative}
.event-mark{width:54px;height:54px;color:var(--gold-dark);margin-bottom:var(--space-5)}
.opening-note .eyebrow{color:var(--gold-dark)}
h2{font-size:var(--text-section);line-height:1.12;letter-spacing:-.035em;margin-top:var(--space-4)}
.intro-text{max-width:580px;margin:var(--space-6) auto;color:var(--color-muted)}
.host-signature{font-family:var(--font-display);font-size:var(--text-xl);margin-top:var(--space-6)}
.host-signature span{margin-inline:var(--space-4);color:var(--gold-dark);font-size:var(--text-lg)}
.evening{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,7rem);padding-top:var(--space-2);padding-bottom:var(--space-24);align-items:center}
.editorial-photo{height:650px;position:relative;background:#171610;overflow:hidden}
.editorial-photo>img{width:100%;height:100%;object-fit:cover;object-position:45% center;opacity:.86}
.image-caption{position:absolute;top:var(--space-4);left:var(--space-4);right:var(--space-4);font-size:var(--text-xs);color:#fff;background:#000a;padding:var(--space-2) var(--space-3);width:fit-content}
.photo-label{position:absolute;bottom:var(--space-8);left:var(--space-8);color:var(--ivory);text-shadow:0 2px 10px #000}
.photo-label>span{display:block}
.photo-label>span:last-child{font-size:var(--text-section)}
.evening-copy>.eyebrow{color:var(--gold-dark)}
.evening-copy h2{margin-bottom:var(--space-8)}
.programme-item{display:grid;grid-template-columns:32px 1fr;gap:var(--space-4);padding:var(--space-6) 0;border-top:1px solid var(--color-border)}
.programme-number{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;color:var(--gold-dark);padding-top:var(--space-1)}
h3{font-size:var(--text-lg);font-weight:500;line-height:1.4}
.programme-item p{color:var(--color-muted);margin-top:var(--space-2)}
.programme-meta{display:block;margin-top:var(--space-4);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em}
.quiet-note{font-size:var(--text-sm);color:var(--color-muted);line-height:1.6}
.invitation-section{background:var(--color-surface);border-block:1px solid var(--color-border);padding:var(--space-20) var(--gutter)}
.invitation-inner{max-width:1200px;margin-inline:auto}
.invitation-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-12);margin-bottom:var(--space-12)}
.invitation-heading .eyebrow{color:var(--gold-dark)}
.invitation-heading>p{max-width:370px;color:var(--color-muted);padding-bottom:var(--space-2)}
.dates{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}
.date-card{min-height:198px;position:relative;display:flex;align-items:flex-start;flex-direction:column;background:transparent;color:var(--color-text);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background var(--transition),color var(--transition)}
.date-card:hover{background:var(--color-bg)}
.date-card.selected{background:var(--selected);color:var(--selected-text);border-color:var(--selected)}
.date-month{font-size:var(--text-xs);font-weight:700;letter-spacing:.16em}
.date-card strong{font-size:4.5rem;line-height:1.2;margin-top:var(--space-2)}
.date-status{font-size:var(--text-xs);margin-top:var(--space-2)}
.date-arrow{position:absolute;right:var(--space-6);bottom:var(--space-6);font-size:var(--text-lg)}
.selected-invitation{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-8) 0;border-bottom:1px solid var(--color-border)}
.selected-invitation h3{font-family:var(--font-display);font-size:var(--text-xl);margin-top:var(--space-2)}
.selected-invitation .eyebrow{color:var(--gold-dark)}
.selected-invitation p{color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-2)}
.invitation-notes{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);padding-top:var(--space-8);font-size:var(--text-sm)}
.invitation-notes strong{display:block;margin-bottom:var(--space-2);font-weight:700}
.invitation-notes span{color:var(--color-muted)}
.venue{display:grid;grid-template-columns:.85fr 1.3fr;gap:var(--space-16);align-items:center;padding-block:var(--space-24)}
.venue-copy .eyebrow{color:var(--gold-dark)}
.venue-copy>p:not(.eyebrow){margin-top:var(--space-6);max-width:340px;color:var(--color-muted)}
.text-link{display:inline-flex;gap:var(--space-6);align-items:center;font-size:var(--text-sm);font-weight:700;min-height:44px;border:0;border-bottom:1px solid var(--color-border);background:transparent}
.venue .text-link{margin-top:var(--space-6)}
.venue figure img{width:100%;aspect-ratio:1.55;object-fit:cover}
figcaption{font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-3)}
footer{padding:var(--space-16) var(--gutter) var(--space-6);background:var(--plum);color:var(--ivory);text-align:center}
.footer-names{font-size:var(--text-xl)}
.footer-names span{color:var(--gold);margin-inline:var(--space-4)}
footer>p:not(.footer-names){font-size:var(--text-sm);margin-top:var(--space-4);color:#d7bfca}
.footer-bottom{border-top:1px solid #e0c18530;display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-12);padding-top:var(--space-6);font-size:var(--text-xs);color:#d6bfc9}
dialog{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);max-width:min(720px,calc(100vw - 32px));width:720px;max-height:90dvh;padding:0;box-shadow:0 20px 100px #16061560}
dialog::backdrop{background:#1b0c1fc9;backdrop-filter:blur(5px)}
body:has(dialog[open]){overflow:hidden}
.dialog-top{position:sticky;top:0;z-index:2;padding:var(--space-3) var(--space-6);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);background:var(--color-bg)}
.close-button{border:1px solid var(--color-border);background:transparent;width:44px;height:44px;flex:none;font-size:var(--text-xl);line-height:1}
.dialog-content{padding:var(--space-6) var(--space-8) var(--space-10)}
.dialog-content h2{margin-top:0}
.dialog-date{font-size:var(--text-sm);color:var(--gold-dark);font-weight:700;margin-top:var(--space-3)}
.preview-warning{padding:var(--space-4);border:1px solid var(--color-border);font-size:var(--text-sm);margin-block:var(--space-6);background:var(--color-surface)}
.field-label,label>span{display:block;font-size:var(--text-sm);margin-bottom:var(--space-2)}
.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--color-border)}
.segmented button{border:0;background:transparent;min-height:48px;padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}
.segmented button[aria-pressed="true"]{background:var(--selected);color:var(--selected-text)}
.offer-note{font-size:var(--text-sm);margin-block:var(--space-4);color:var(--color-muted)}
.booking-fields{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-4);margin-top:var(--space-6)}
select,input{min-width:0;width:100%;min-height:48px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--color-text);padding:var(--space-3);font-size:var(--text-base)}
select:disabled{opacity:.7}
#attendance-note{margin-top:var(--space-3)}
.guest{border:0;border-top:1px solid var(--color-border);padding:var(--space-6) 0 0;margin:var(--space-6) 0 0}
.guest legend{font-size:var(--text-sm);font-weight:700;padding-right:var(--space-3)}
.guest-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.guest-fields label:first-child{grid-column:1/-1}
.remove-person{font-size:var(--text-sm);border:0;background:transparent;text-decoration:underline;min-height:44px;display:block;margin-left:auto;margin-top:var(--space-2)}
.add-person{margin-top:var(--space-6)}
.form-note{font-size:var(--text-sm);margin-top:var(--space-3);color:var(--color-muted)}
.full-width{width:100%;margin-top:var(--space-6)}
.summary-mark{font-size:var(--text-section);font-family:var(--font-display);color:var(--gold-dark)}
#summary-area h3{font-family:var(--font-display);font-size:var(--text-xl)}
#summary-area>p{margin-top:var(--space-4);color:var(--color-muted)}
#summary-details{border-block:1px solid var(--color-border);margin-block:var(--space-6);padding-block:var(--space-4);font-size:var(--text-sm)}
#summary-details p+p{margin-top:var(--space-2)}
@media(min-width:1500px){.hero-inner{gap:var(--space-20)}}
@media(max-width:1100px){
 .brand-caption{display:none}nav{gap:var(--space-4)}
 .hero-inner{gap:var(--space-8)}.photo-arch{height:480px}.date-medallion{width:126px;height:126px;right:-4px}
 .date-medallion strong{font-size:2.75rem}.date-medallion .eyebrow{letter-spacing:.1em}
 .date-medallion>span:last-child{font-size:var(--text-xs);letter-spacing:0}
 .photo-footnote>span:last-child{display:none}.editorial-photo{height:600px}.evening{gap:var(--space-10)}
}
@media(max-width:760px){
 :root{--text-hero:clamp(3.6rem,10vw,5.5rem);--text-section:clamp(2.5rem,6vw,3.5rem)}
 .preview-bar{font-size:var(--text-xs);letter-spacing:0;min-height:36px;line-height:1.4}
 .site-header{min-height:92px;padding:var(--space-2) var(--space-5);gap:var(--space-2)}
 .brands{gap:var(--space-3)}.lotus-logo{width:52px;height:65px}.finca-logo{width:52px;height:52px}.brand-times{font-size:var(--text-lg)}
 .nav-link{display:none}nav{gap:var(--space-1)}.languages button{min-width:38px}.theme-button{min-width:36px;width:36px;height:44px;border:0}
 .hero-inner{grid-template-columns:1fr;padding:var(--space-10) var(--gutter) var(--space-6);gap:var(--space-10)}
 .hero-copy{position:relative;z-index:1}.hero-eyebrow{margin-bottom:var(--space-5);font-size:var(--text-xs);letter-spacing:.12em}
 .hero-description{margin-top:var(--space-5);max-width:480px;font-size:var(--text-base);line-height:1.7}
 .hero .button{margin-top:var(--space-6)}.hero-location{margin-top:var(--space-5);letter-spacing:.08em}
 .hero-visual{width:100%;padding:var(--space-3) var(--space-3) 0}
 .photo-arch{height:390px;max-height:none;border-radius:46% 46% 0 0;outline-offset:7px}
 .photo-arch img{object-position:center 58%}
 .date-medallion{top:var(--space-8);right:var(--space-1);width:116px;height:116px}
 .date-medallion strong{font-size:2.75rem}
 .photo-footnote{font-size:var(--text-xs);padding-top:var(--space-5)}.photo-footnote>span:last-child{display:block}
 .hero-bottom{padding:var(--space-5) var(--gutter)}.hero-bottom>span{font-size:var(--text-base);font-family:var(--font-body);max-width:260px}.hero-bottom>a{display:none}
 .opening-note{padding-block:var(--space-16)}.intro-text{margin-top:var(--space-5)}
 .host-signature{font-size:var(--text-lg);font-family:var(--font-body)}.host-signature span{margin-inline:var(--space-2)}
 .evening{grid-template-columns:1fr;gap:var(--space-10);padding-bottom:var(--space-16)}
 .editorial-photo{height:420px}.evening-copy h2{margin-bottom:var(--space-6)}.programme-item{padding-block:var(--space-5)}
 .invitation-section{padding-block:var(--space-16)}
 .invitation-heading{display:block;margin-bottom:var(--space-8)}.invitation-heading>p{margin-top:var(--space-5);max-width:100%}
 .dates{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.date-card{min-height:170px;padding:var(--space-5)}
 .date-card strong{font-size:3.75rem}.date-arrow{bottom:var(--space-5);right:var(--space-5)}
 .selected-invitation{display:block;padding-block:var(--space-6)}.selected-invitation .button{width:100%;margin-top:var(--space-6)}
 .invitation-notes{grid-template-columns:1fr;gap:var(--space-6);padding-top:var(--space-6)}
 .venue{grid-template-columns:1fr;gap:var(--space-8);padding-block:var(--space-16)}
 .venue-copy>p:not(.eyebrow){max-width:none}.venue figure img{aspect-ratio:1.3}
 footer{padding-top:var(--space-12)}.footer-names{font-size:var(--text-xl)}.footer-names span{margin-inline:var(--space-1)}
 .footer-bottom{flex-direction:column;gap:var(--space-3);margin-top:var(--space-8)}
 dialog{max-width:calc(100vw - 16px);max-height:94dvh}
 .dialog-content{padding:var(--space-5) var(--space-5) var(--space-8)}.dialog-top{padding:var(--space-2) var(--space-4)}
 .dialog-top .eyebrow{font-size:var(--text-xs);letter-spacing:.08em}
 .booking-fields,.guest-fields{grid-template-columns:1fr}.guest-fields label:first-child{grid-column:auto}
}
@media(max-width:374px){.site-header{padding-inline:var(--space-3)}.brands{gap:var(--space-2)}.lotus-logo{width:46px}.finca-logo{width:46px}.languages button{min-width:34px}.theme-button{min-width:32px;width:32px}h1{font-size:3.45rem}.hero-location{letter-spacing:0}}
