:root{--taupe:#9C958B;--gold:#C9A646;--ink:#292723;--cream:#f5f1e9;--paper:#fffdf8;--line:#ded8cc;--deep:#27302d}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--cream);color:var(--ink)}

.hero{height:min(760px,82vh);min-height:580px;position:relative;overflow:hidden}
.hero>img{width:100%;height:100%;object-fit:cover}
.heroShade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,20,18,.75),rgba(17,20,18,.32) 52%,rgba(17,20,18,.08))}
.heroContent{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1200px;margin:auto;padding:56px;color:white}
.brand{position:absolute;top:30px;font-size:14px;letter-spacing:.18em}
.brand span{color:#e9d9a8}
.eyebrow,.kicker,.smallcap{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:var(--gold)}
.hero h1{font-family:Georgia,serif;font-size:clamp(52px,7.2vw,104px);line-height:.92;margin:14px 0 22px;font-weight:500;max-width:800px}
.heroContent>p:not(.eyebrow){font-size:20px;line-height:1.55;max-width:620px}
.heroBtn{margin-top:18px;background:var(--gold);color:#171611;padding:15px 24px;border-radius:999px;text-decoration:none;font-weight:800}

.wrap{max-width:1220px;margin:0 auto;padding:72px 28px 90px}
.intro{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end;margin-bottom:36px}
.intro h2{font-family:Georgia,serif;font-size:44px;font-weight:500;margin:8px 0 0}
.intro p{color:#6d675e;line-height:1.7}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px}
.card,.summaryCard{background:var(--paper);border:1px solid #e3ddd1;border-radius:24px;box-shadow:0 22px 70px rgba(58,51,40,.07)}
.formCard{padding:30px}
.summaryCard{padding:28px;height:max-content}
.sticky{position:sticky;top:24px}
.progress{height:7px;background:#ece6db;border-radius:99px;overflow:hidden}
.progress div{height:100%;width:12.5%;background:var(--gold);transition:.25s}
.stepsLabel{display:flex;justify-content:space-between;font-size:13px;color:#797167;margin:11px 0 32px}
.step{display:none}
.step.active{display:block}
.step h3{font-family:Georgia,serif;font-weight:500;font-size:34px;margin:5px 0 8px}
.muted,.note{color:#766f65;line-height:1.6}
.note{font-size:13px;background:#f5f0e7;border-radius:12px;padding:12px 14px}
.grid2,.extrasGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-size:14px;font-weight:700;margin:16px 0}
input,select,textarea{width:100%;padding:13px 14px;margin-top:7px;border:1px solid var(--line);border-radius:12px;background:white;font:inherit;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(201,166,70,.25);border-color:var(--gold)}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.check input,.option input,.switchRow input{width:auto;margin-top:3px;accent-color:var(--gold)}
.photoStrip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.photoStrip img,.wideImg{width:100%;object-fit:cover;border-radius:16px}
.photoStrip img{height:250px}
.wideImg{height:270px;margin-top:20px}
.options{display:grid;gap:12px;margin-top:20px}
.option,.switchRow{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;margin:0;cursor:pointer;background:#fff}
.option:has(input:checked),.switchRow:has(input:checked){border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,166,70,.12);background:#fffdf6}
.option span,.switchRow span{display:flex;flex-direction:column;gap:3px}
.option small,.switchRow small{font-weight:500;color:#746d63;line-height:1.35}
.option strong,.switchRow strong{white-space:nowrap;color:#6e5b22}
.roomOption{overflow:hidden}
.roomPreview{grid-column:2/-1;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:0;opacity:0;transform:translateY(-6px);transition:max-height .28s ease,opacity .2s ease,transform .28s ease}
.roomPreview img{width:100%;height:150px;object-fit:cover;border-radius:11px}
.roomPreview img:only-of-type{grid-column:1/-1;height:190px}
.roomPreview small{grid-column:1/-1;color:#8a6d20!important;font-weight:800!important}
.roomOption:hover .roomPreview,.roomOption:focus-within .roomPreview{max-height:390px;opacity:1;transform:none}
.roomPlanLink{margin-top:14px}
.roomPlanLink a{color:#755d18;font-weight:800}
.nav{display:flex;justify-content:space-between;margin-top:30px}
.nav button,.sendBtn{border:0;border-radius:999px;padding:14px 22px;font-weight:800;cursor:pointer}
.nav #prev{background:#ebe5da;color:#38342f}
.nav #next,.sendBtn{background:var(--gold);color:#171611}
.bigTotal{font-family:Georgia,serif;font-size:48px;margin:8px 0 4px;color:#4f431f}
.summaryCard p{color:#726b62}
.miniBreak{display:grid;gap:8px;margin-top:18px}
.miniRow{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.miniRow span:last-child{font-weight:800}
.divider{height:1px;background:var(--line);margin:20px 0}
.asideNote{font-size:12px;line-height:1.55}
.summaryHero{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center;background:#f0eadf;border-radius:18px;padding:12px;margin:18px 0}
.summaryHero img{width:160px;height:120px;object-fit:cover;border-radius:12px}
.summaryHero div{display:flex;flex-direction:column}
.summaryHero strong{font-family:Georgia,serif;font-size:38px;color:#4f431f}
.summaryHero small{color:#746d63}
.breakdown{margin:18px 0}
.breakRow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
footer{background:#242724;color:#ddd6ca;padding:32px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;font-size:13px}
footer b{color:#e6cc79}

@media(max-width:900px){.layout{grid-template-columns:1fr}
.summaryCard{order:-1}
.summaryCard .sticky{position:static}
.intro{grid-template-columns:1fr;gap:10px}
.heroContent{padding:30px}
.hero h1{font-size:56px}
.summaryCard{padding:18px}
.bigTotal{font-size:38px}
}
@media(max-width:640px){.wrap{padding:48px 14px}
.formCard{padding:20px}
.grid2,.extrasGrid,.photoStrip{grid-template-columns:1fr}
.photoStrip img{height:220px}
.option,.switchRow{grid-template-columns:auto 1fr}
.option strong,.switchRow strong{grid-column:2}
.summaryHero{grid-template-columns:1fr}
.summaryHero img{width:100%;height:180px}
.hero{min-height:650px}
.heroContent>p:not(.eyebrow){font-size:17px}
}
@media(hover:none),(max-width:640px){.roomPreview{max-height:390px;opacity:1;transform:none}
.roomPreview img{height:130px}
.roomPreview img:only-of-type{height:175px}
}

.hero{height:min(690px,76vh);min-height:540px}
.heroContent{padding-top:90px}
.heroBtn{background:var(--gold);color:#201d15}
.card,.summaryCard{box-shadow:var(--shadow)}
.kicker,.smallcap,.eyebrow{color:var(--gold-deep)}
.nav #next,.sendBtn{background:var(--green);color:white}
.summaryCard{border-top:3px solid var(--gold)}
footer{display:none}
@media(max-width:860px){.hero{min-height:580px}
.heroContent{padding-top:60px}
}

.heroShade{background:linear-gradient(90deg,rgba(3,18,31,.88),rgba(3,18,31,.35) 55%,rgba(3,18,31,.08))}
.card,.summaryCard{border-radius:3px}
.nav button,.sendBtn,.heroBtn{border-radius:0}
.nav #next,.sendBtn{background:#c9a646;color:#071d35}
.summaryCard{background:#071d35;color:#fff;border-top:3px solid #c9a646}
.summaryCard p,.summaryCard .asideNote{color:#c5d0da}
.bigTotal{color:#f2d98f}
.stepNav{display:grid;grid-template-columns:repeat(8,minmax(90px,1fr));margin:0 0 22px;border:1px solid #dcd3c5;background:#fff;overflow:auto}
.stepNav button{border:0;border-right:1px solid #e2dbd0;background:#fff;padding:13px 8px;color:#68737e;font-weight:700;white-space:nowrap;cursor:pointer}
.stepNav button.active{background:#071d35;color:#f2d98f}
.stepNav button.done{color:#81671d}
.successPanel{padding:45px 20px;text-align:center}
.successPanel h3{font:400 46px Georgia,serif;color:#071d35}
.voucherBox{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:20px 0;padding:16px;background:#f5f1e8;border:1px solid #d8cbaa}
.voucherBox label{margin:0}
.voucherBox button{height:46px;padding:0 18px;border:0;background:#071d35;color:#fff;font-weight:700}
.voucherBox small{grid-column:1/-1;color:#705b1a}
@media(max-width:860px){.stepNav{grid-template-columns:repeat(8,minmax(110px,1fr))}
}
@media(max-width:600px){.voucherBox{grid-template-columns:1fr}
.voucherBox small{grid-column:1}
}
