:root{--bg:#171917;--ivory:#f1ede2;--muted:#bab9ac;--bronze:#b69b75;--line:#42433a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ivory);font-family:Arial,Helvetica,sans-serif;font-weight:400}.hero{position:relative;min-height:680px;height:92svh;max-height:1100px;background:#252924;overflow:hidden}.hero-image,.hero-shade{position:absolute;width:100%;height:100%;inset:0}.hero-image{object-fit:cover;object-position:center}.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.54),rgba(0,0,0,.08) 50%,rgba(0,0,0,.6))}.brand{position:relative;text-align:center;padding:68px 24px 0}.brand h1{font-size:clamp(38px,7.4vw,112px);font-weight:400;letter-spacing:.07em;margin:0;line-height:1.1}.brand p{font-size:clamp(10px,1.2vw,17px);letter-spacing:.32em;margin-top:20px}.hero-link{position:absolute;right:5%;top:240px;font-size:12px;text-transform:uppercase;letter-spacing:.13em;border-bottom:1px solid var(--bronze);padding-bottom:12px}.hero-link span{margin-left:24px}a{color:inherit;text-underline-offset:5px}.hero-link,.hero-bottom a{text-decoration:none}.hero-bottom{position:absolute;bottom:35px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:14px;letter-spacing:.15em}.hero-bottom a{font-size:28px}.image-note{position:absolute;top:52%;width:100%;padding:24px;text-align:center;font-size:13px;color:var(--muted)}.wrap{width:min(1180px,88%);margin:auto}.intro{padding:100px 0 96px}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze);line-height:1.7;margin:0 0 28px}h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(36px,4.7vw,64px);line-height:1.12;letter-spacing:-.035em;margin:0 0 38px}.manifesto{max-width:660px;margin-left:auto;margin-top:55px}p{font-size:17px;line-height:1.85;margin:0 0 24px}.manifesto p{color:var(--muted)}.manifesto .closing{color:var(--ivory);font-family:Georgia,serif;font-size:27px;margin-top:38px}.destination{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:62px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 60px}.destination .eyebrow{grid-column:1/-1}.destination h2{font-size:clamp(65px,9vw,120px);margin:0}.destination>p:last-child{max-width:410px;align-self:center;margin:0;color:var(--muted)}.interest{padding:100px 0;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.invitation p:not(.eyebrow){color:var(--muted)}.small{font-size:13px;line-height:1.7}.demo{font-size:12px;line-height:1.6;border-left:2px solid var(--bronze);padding:10px 14px;background:#22251f;color:var(--muted)}label,legend{font-size:13px;line-height:1.6}label{display:block;margin-bottom:24px}label>span,legend>span{color:var(--muted);font-size:11px}input:not([type=checkbox]):not([type=radio]),textarea{display:block;width:100%;border:0;border-bottom:1px solid #777769;background:#20231f;color:var(--ivory);font:inherit;font-size:15px;padding:13px 12px;margin-top:9px;border-radius:0}input::placeholder,textarea::placeholder{color:#929588;font-size:12px}textarea{resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}fieldset{padding:0;border:0;margin:0 0 25px}legend{margin-bottom:13px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choices label{margin:0;display:flex;align-items:start;gap:9px;font-size:12px;color:var(--muted)}input[type=checkbox],input[type=radio]{accent-color:var(--bronze);width:16px;height:16px;flex-shrink:0;margin:2px 0}.inline{display:flex;flex-wrap:wrap;gap:20px}.consent{display:flex;gap:10px;margin-top:28px}.consent span{font-size:11px}button{width:100%;border:1px solid var(--bronze);background:var(--bronze);color:#171917;padding:18px 22px;font:inherit;font-size:13px;text-align:left;cursor:pointer}button span{float:right}button:hover{background:#cab28f}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--ivory);outline-offset:5px}.status{font-size:13px;line-height:1.6;margin-top:16px;color:var(--bronze)}details{border-top:1px solid var(--line);padding-top:18px;font-size:12px;color:var(--muted)}summary{cursor:pointer}details p{font-size:12px;margin-top:15px}footer{border-top:1px solid var(--line);padding:30px 0 40px;display:flex;justify-content:space-between;gap:24px;font-size:10px;letter-spacing:.14em;color:var(--muted)}@media(max-width:760px){.hero{min-height:550px;height:80svh}.brand{padding-top:48px}.brand h1{font-size:clamp(32px,9vw,68px)}.brand p{letter-spacing:.22em}.hero-link{top:165px}.intro{padding:65px 0}.manifesto{margin-top:35px}.destination{display:block;padding:45px 0}.destination h2{margin-bottom:25px}.interest{grid-template-columns:1fr;gap:30px;padding:65px 0}.invitation h2{font-size:44px}footer{flex-direction:column;gap:15px}.choices{grid-template-columns:1fr 1fr}}@media(max-width:420px){.field-grid,.choices{grid-template-columns:1fr}.field-grid{gap:0}.inline{display:flex}.brand p{font-size:9px}.hero-link{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Interior photograph beside the manifesto. */
.intro-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start;margin-top:55px}.intro-image{display:block;width:100%;height:auto}.intro-layout .manifesto{margin:0;max-width:none}@media(max-width:760px){.intro-layout{grid-template-columns:1fr;gap:35px;margin-top:35px}.intro-image{max-width:540px}}

.interest-image{display:block;width:100%;height:auto;margin-top:40px}@media(max-width:760px){.interest-image{max-width:480px;margin-top:30px}}

/* Landscape image follows invitation without the portrait overflow. */
.interest-image{width:100%;max-width:none;height:auto;margin-top:24px}.invitation{align-self:start}@media(max-width:760px){.interest-image{max-width:none;margin-top:24px}}

/* Keep the photograph flush with the bottom of the adjacent form column. */
@media(min-width:761px){
 .invitation{align-self:stretch;display:flex;flex-direction:column}
 .interest-image{margin-top:auto;padding-top:24px;flex-shrink:0}
}

/* Crop the reader to the remaining height beside the form. */
@media(min-width:761px){
 .invitation{align-self:stretch;display:flex;flex-direction:column;min-height:0}
 .interest-image{display:block;flex:1 1 0;height:0;min-height:240px;width:100%;object-fit:cover;object-position:center 52%;margin-top:24px;padding:0}
}
@media(max-width:760px){
 .interest-image{height:auto;min-height:0;object-fit:contain;padding:0}
}

.destination{align-items:center}.destination-photo{position:relative;overflow:hidden;min-height:300px;aspect-ratio:16/10}.destination-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.destination-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.05) 80%)}.destination-photo p{position:relative;z-index:1;color:var(--ivory);font-family:Georgia,serif;font-size:clamp(21px,2.1vw,29px);line-height:1.4;margin:0;padding:28px;max-width:480px;text-shadow:0 1px 8px #0006}@media(max-width:760px){.destination-photo{min-height:280px;margin-top:28px}.destination-photo p{padding:24px;font-size:24px}}

/* Lisbon becomes a broad photographic panel with quiet editorial type. */
.destination{position:relative;display:block;padding:0;min-height:0;border:0;isolation:isolate}
.destination-photo{position:relative;width:100%;aspect-ratio:16/9;min-height:480px;margin:0}
.destination-photo img{object-position:center}
.destination-photo::after{background:linear-gradient(90deg,rgba(0,0,0,.63),rgba(0,0,0,.12) 55%),linear-gradient(180deg,rgba(0,0,0,.38),transparent 40%)}
.destination>.eyebrow{position:absolute;z-index:3;top:32px;left:36px;margin:0;color:var(--ivory);font-size:10px}
.destination>h2{position:absolute;z-index:3;left:36px;bottom:35px;margin:0;font-size:clamp(65px,8vw,110px)}
.destination-photo p{position:absolute;top:66px;left:36px;padding:0;max-width:330px;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65;letter-spacing:0}
@media(max-width:760px){.destination-photo{min-height:410px;aspect-ratio:4/3}.destination>.eyebrow{left:24px;top:24px;font-size:9px}.destination>h2{left:24px;bottom:24px;font-size:70px}.destination-photo p{left:24px;top:58px;right:24px;max-width:285px;font-size:14px;padding:0}.destination-photo img{object-position:55% center}}

.interest-photo{position:relative;margin:24px 0 0;isolation:isolate}.interest-photo .interest-image{display:block;margin:0;padding:0;width:100%;height:auto}.interest-photo figcaption{position:absolute;z-index:2;top:24px;left:24px;right:24px;color:var(--ivory);font-family:Georgia,serif;font-size:24px;line-height:1.25;text-shadow:0 2px 12px #000}.interest-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 35%)}@media(min-width:761px){.interest-photo{flex:1 1 0;min-height:240px}.interest-photo .interest-image{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center 52%;min-height:0}}

.hero-link{top:210px;left:50%;right:auto;transform:translateX(-50%);display:inline-block;white-space:nowrap;background:var(--bronze);color:var(--bg);border:0;padding:17px 24px;font-size:12px;letter-spacing:.08em}.hero-link:hover{background:#cab28f}@media(max-width:760px){.hero-link{top:155px;padding:16px 20px}}

/* Primary invitation button. */
.hero-link{z-index:4;top:230px;left:50%;right:auto;transform:translateX(-50%);min-height:52px;padding:18px 28px;background:#b69b75;color:#171917;border:1px solid #b69b75;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:none;text-align:center;box-shadow:0 3px 18px #0003}
.hero-link:hover{background:#d0b58f;border-color:#d0b58f}
@media(min-width:1400px){.hero-link{top:260px}}
@media(max-width:760px){.hero-link{top:160px;font-size:14px;min-height:50px;padding:17px 22px}}

/* Place the invitation below the central figure's knee. */
.hero-link{top:auto;bottom:13%;left:50%;transform:translateX(-50%)}
@media(min-width:1400px){.hero-link{top:auto;bottom:13%}}
@media(max-width:760px){.hero-link{top:auto;bottom:13%}}

/* Readable phone controls and comfortable touch targets. */
@media(max-width:760px){
 input:not([type=checkbox]):not([type=radio]),textarea{font-size:16px}
 label,legend{font-size:14px}
 .choices{grid-template-columns:1fr;gap:4px}
 .choices label{min-height:44px;align-items:center;font-size:14px}
 .choices input[type=checkbox],.choices input[type=radio]{width:20px;height:20px}
 .consent span{font-size:13px;line-height:1.7}
 .inline{gap:4px 20px}
}

select{display:block;width:100%;max-width:100%;margin-top:9px;padding:13px 12px;border:0;border-bottom:1px solid #777769;border-radius:0;background:#20231f;color:var(--ivory);font-family:inherit;font-size:15px;min-height:48px;color-scheme:dark}select:focus-visible{outline:2px solid var(--ivory);outline-offset:5px}@media(max-width:760px){select{font-size:16px}}

/* Spacious bronze location selector. */
select[name="preferred_location"]{display:block;box-sizing:border-box;width:100%;margin-top:12px;min-height:58px;padding:17px 48px 17px 18px;border:1px solid var(--bronze);border-radius:0;background-color:var(--bronze);color:#171917;font-family:inherit;font-size:15px;line-height:1.5;appearance:none;-webkit-appearance:none;color-scheme:light;background-image:linear-gradient(45deg,transparent 50%,#171917 50%),linear-gradient(135deg,#171917 50%,transparent 50%);background-position:calc(100% - 23px) 26px,calc(100% - 17px) 26px;background-size:6px 6px;background-repeat:no-repeat}
select[name="preferred_location"] option{background:#f1ede2;color:#171917}
@media(max-width:760px){select[name="preferred_location"]{font-size:16px}}

/* Accessible language control, kept clear of the brand. */
.language-switch{position:absolute;z-index:6;right:5%;top:18px;display:flex;align-items:center;gap:6px;padding:3px 8px;background:#171917b3;color:var(--ivory);border:1px solid #f1ede24d}
.language-switch button{width:auto;min-width:44px;min-height:44px;padding:8px;background:transparent;color:var(--ivory);border:0;font-size:12px;letter-spacing:.1em;text-align:center}
.language-switch button[aria-pressed="true"]{color:var(--bronze);text-decoration:underline;text-underline-offset:6px}
.language-switch button:hover{background:#ffffff12}.language-switch>span{opacity:.55}
button .submit-label{float:none}
@media(max-width:760px){.language-switch{top:8px;right:4%;padding:0 3px;gap:0}.brand{padding-top:68px}}

/* Keep the brand together in the invitation heading. */
.brand-nowrap{display:inline-block;white-space:nowrap;font-size:min(1em,10.5vw)}

/* Photographic moments from the revised dossier. */
.salon-moments{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-top:64px}
.salon-moments figure{margin:0;position:relative;align-self:start}
.salon-moments img{display:block;width:100%;height:auto}
.salon-moments figcaption{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(23px,2.5vw,34px);line-height:1.25;padding:20px 0;color:var(--ivory)}
@media(max-width:760px){.salon-moments{grid-template-columns:1fr;gap:24px;padding-top:40px}.brand p{letter-spacing:.15em}}

/* Align introductory copy and photograph without changing image proportions. */
@media(min-width:761px){
 .intro-layout{align-items:stretch}
 .intro-layout .manifesto{display:flex;flex-direction:column;justify-content:space-between;gap:16px}
 .intro-layout .manifesto p{margin:0;font-size:clamp(15px,1.3vw,17px);line-height:1.65}
 .intro-layout .manifesto .closing{font-size:clamp(23px,2vw,27px);line-height:1.25;margin:0}
 .intro-image{align-self:stretch;min-height:100%;height:100%;object-fit:cover;object-position:center}
}
/* Both photographs use the dinner photograph's proportions. */
.salon-moments img{aspect-ratio:1182/1330;height:auto;object-fit:cover;object-position:center}
.salon-moments figure:nth-child(2) img{object-position:center 50%}

/* Subtitle size: desktop 20px, phone 13px. */
.brand p{font-size:20px}
@media(max-width:760px){.brand p{font-size:13px}}
/* Keep photo captions on one line */
@media (min-width: 761px) {
    .salon-moments figcaption {
        white-space: nowrap;
        font-size: clamp(20px, 2vw, 28px);
    }

/* Move subtitle closer to headline */
.brand p {
    margin-top: 8px;
}

