@import url('ds/colors_and_type.css');
/* LONGBOW - reserve: reference gallery + 2-step reserve pane */
:root{--cfg-bg:#F5F2E8;--cfg-panel:#FFFFFF;--cfg-line:rgba(48,48,46,.16);--cfg-bone:#30302E;--cfg-brass:#9D895C;--cfg-tan:#8A7850;--cfg-mute:rgba(48,48,46,.55)}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
html{background:var(--cfg-bg)}
body{background:var(--cfg-bg);color:var(--cfg-bone);font-family:var(--font-sans,'Montserrat',system-ui,sans-serif);-webkit-font-smoothing:antialiased;overflow:hidden}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:var(--cfg-brass);text-decoration:none}
a:hover{color:var(--cfg-tan)}
em{font-family:var(--font-display,'Cormorant Garamond',serif);font-style:italic;color:var(--cfg-brass);font-weight:400}
.lbl{font-size:10px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--cfg-mute)}

/* Bar */
.cfg-bar{height:58px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 32px;border-bottom:1px solid var(--cfg-line);background:var(--cfg-bg)}
/* FAQ sits in a box the exact height of the brand mark beside it, borrowing the
   border and fill of the model switch so the bar reads as one row of controls. */
.cfg-bar__back{height:39px;display:inline-flex;align-items:center;padding:0 16px;border:1px solid var(--cfg-line);border-radius:2px;background:#FAF8F1;font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--cfg-mute);transition:color .2s ease,border-color .2s ease}
.cfg-bar__back:hover{color:var(--cfg-brass);border-color:var(--cfg-brass)}
.cfg-bar__brand{display:flex;align-items:center;gap:10px}
.cfg-bar__brand span{font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--cfg-mute);margin-left:6px}
.cfg-swap{display:flex;align-items:center;gap:2px;margin-left:14px;padding:3px;border:1px solid var(--cfg-line);background:#FAF8F1;border-radius:2px}
.cfg-swap a{padding:6px 13px;font-size:9.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cfg-mute);border-radius:1px;transition:background .2s ease,color .2s ease}
.cfg-swap a:hover{color:var(--cfg-bone)}
.cfg-swap a[aria-current="page"]{background:var(--cfg-brass);color:#0E0E0E}
.cfg-bar__right{display:flex;align-items:center;gap:22px}

/* Layout - fills the viewport, no page scroll */
.cfg{height:calc(100vh - 58px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,420px);gap:26px;padding:22px 32px;align-items:stretch}
/* The reference image and its thumbnail strip share one width, so the strip
   is always centred under the image and never wider than it, whatever the
   window does or however many images the gallery holds. */
.car{display:flex;flex-direction:column;min-height:0;gap:8px;--car-w:min(100%,calc((100vh - 340px) * 1.5))}
.car__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex:0 0 auto}
.car__head h1{font-weight:200;font-size:clamp(28px,3.2vw,44px);line-height:1;letter-spacing:-.025em;margin:8px 0 0}
.car__head p{margin:0;max-width:330px;font-size:12px;line-height:1.6;color:var(--cfg-mute)}
.car__from{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.car__from b{font-weight:200;font-size:clamp(20px,2vw,26px);letter-spacing:-.02em;color:var(--cfg-bone)}

/* Gallery */
.car__frame{position:relative;flex:0 0 auto;aspect-ratio:3/2;width:var(--car-w);height:auto;margin-inline:auto;background:#0A0A0A;overflow:hidden;border:1px solid var(--cfg-line)}
.car__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease}
.car__frame img.is-on{opacity:1}
.car__count{position:absolute;left:18px;top:16px;z-index:3;background:rgba(14,14,14,.72);color:#F8F6F1;padding:6px 11px;font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.car__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;display:grid;place-items:center;background:rgba(14,14,14,.6);color:#F8F6F1;border:1px solid rgba(248,246,241,.2);font-size:18px;transition:background .15s,color .15s}
.car__nav:hover{background:var(--cfg-brass);color:#0E0E0E;border-color:var(--cfg-brass)}
.car__nav.prev{left:14px}
.car__nav.next{right:14px}
.car__cap{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:48px 20px 16px;background:linear-gradient(transparent,rgba(10,10,10,.9));color:#F8F6F1;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.car__cap .lbl{color:rgba(248,246,241,.6)}
.car__cap h2{margin:5px 0 0;font-weight:300;font-size:clamp(17px,1.7vw,24px);letter-spacing:-.02em}
.car__cap .stats{display:flex;gap:26px}
.car__cap .stats b{display:block;font-weight:200;font-size:22px;letter-spacing:-.02em;line-height:1}
.car__cap .stats b sup{font-size:10px;color:var(--cfg-brass);margin-left:2px;font-weight:600}
.car__cap .stats span{display:block;margin-top:5px;font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,246,241,.6)}
/* Columns come from the image count, not a hard-coded five: the Roadster
   gallery has four and the Speedster five, and both fill the width evenly. */
.car__thumbs{flex:0 0 auto;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;width:var(--car-w);margin-inline:auto}
.car__thumb{position:relative;aspect-ratio:3/2;height:auto;overflow:hidden;border:1px solid transparent;opacity:.45;transition:opacity .25s,border-color .25s}
.car__thumb img{width:100%;height:100%;object-fit:cover}
.car__thumb:hover{opacity:.85}
.car__thumb.is-on{opacity:1;border-color:var(--cfg-brass)}
.car__note{flex:0 0 auto;margin:0;font-size:10.5px;line-height:1.5;color:rgba(48,48,46,.5)}

/* Right pane */
.spec{background:var(--cfg-panel);border:1px solid var(--cfg-line);display:flex;flex-direction:column;min-height:0}
.spec__steps{flex:0 0 auto;display:flex;gap:20px;padding:16px 26px;border-bottom:1px solid var(--cfg-line)}
.spec__steps [data-step]{padding:0;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(48,48,46,.35);transition:color .15s}
.spec__steps [data-step]:hover{color:var(--cfg-brass)}
.spec__steps [data-step].on{color:var(--cfg-brass)}
.spec__steps [data-step].done{color:var(--cfg-bone)}
.spec__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:22px 26px;display:flex;flex-direction:column}
.spec__body::-webkit-scrollbar{width:5px}
.spec__body::-webkit-scrollbar-thumb{background:rgba(48,48,46,.22);border-radius:3px}
.spec__pane{display:none}
.spec__pane.on{display:block}
.spec__pane.on[data-pane="edition"]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.spec h3{margin:8px 0 4px;font-weight:300;font-size:25px;letter-spacing:-.02em}
.spec__tag{font-family:var(--font-display,'Cormorant Garamond',serif);font-style:italic;font-size:16px;color:var(--cfg-tan);margin:0 0 18px}
.spec__list{list-style:none;margin:0 0 18px;padding:0}
.spec__list li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid rgba(48,48,46,.1);font-size:12.5px}
.spec__list li span:first-child{font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cfg-mute);align-self:center}
/* Bottom padding keeps the primary CTA and its note clear of the fixed chat launcher. */
.spec__foot{flex:0 0 auto;padding:16px 26px 20px;border-top:1px solid var(--cfg-line);background:#FAF8F1}
.spec__total{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:14px}
.spec__total b{font-weight:200;font-size:28px;letter-spacing:-.02em}
.btn-cfg{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 20px;color:#0E0E0E;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;background-color:var(--cfg-brass);background-image:linear-gradient(to right,#FAF8F1 0 50%,var(--cfg-brass) 50% 100%);background-size:200.5% 100%;background-position:100% 0;background-repeat:no-repeat;transition:background-position .5s cubic-bezier(.2,.8,.2,1),color .3s}
.btn-cfg:hover{background-position:0 0;background-color:#FAF8F1;color:#0E0E0E}
.btn-cfg[disabled]{opacity:.45;cursor:progress;background-image:none}
.btn-cfg span{white-space:nowrap}
.btn-cfg.is-locked,.btn-cfg.is-locked:hover{background-image:none;background-color:rgba(157,137,92,.28);color:rgba(48,46,46,.55);cursor:not-allowed}
.btn-ghost{width:100%;display:flex;align-items:center;justify-content:center;padding:13px 20px;border:1px solid var(--cfg-line);font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cfg-mute);transition:border-color .15s,color .15s}
.btn-ghost:hover{border-color:var(--cfg-brass);color:var(--cfg-brass)}
.spec__note{margin:12px 0 0;font-size:10.5px;line-height:1.55;color:rgba(48,48,46,.52)}
.spec__note a{border-bottom:1px solid rgba(157,137,92,.4)}

/* Editions */
.eds__head{margin:0 0 16px}
.eds__title{margin:0;font-weight:300;font-size:clamp(21px,2vw,26px);letter-spacing:-.02em;text-transform:none;color:var(--cfg-bone)}
.eds__hint{margin:7px 0 0;font-size:12.5px;line-height:1.55;color:var(--cfg-mute)}
.eds{display:grid;gap:14px;grid-auto-rows:minmax(min-content,1fr);margin:0;flex:1 1 auto;min-height:min-content}
.ed{position:relative;overflow:visible;display:grid;gap:9px;align-content:center;text-align:left;padding:clamp(16px,2.2vh,24px) 22px;border:1px solid var(--cfg-line);border-radius:3px;background:#FAF8F1;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s}
.ed:hover{border-color:rgba(157,137,92,.55);background:#fff}
.ed.is-on{border-color:var(--cfg-brass);background:linear-gradient(180deg,rgba(157,137,92,.14),rgba(157,137,92,.06));box-shadow:inset 0 0 0 1px var(--cfg-brass),0 14px 34px -22px rgba(48,44,32,.45)}
.ed__head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ed__pick{flex:0 0 auto;position:relative;z-index:2;margin-right:clamp(8px,1.8vw,26px);width:14px;height:14px;border:1px solid rgba(157,137,92,.55);background:#fff;overflow:visible;transition:border-color .2s,background .2s}
.ed.is-on .ed__pick{border-color:var(--cfg-brass);background:rgba(255,255,255,.7)}
.ed__tick{position:absolute;z-index:3;left:50%;top:52%;transform:translate(-50%,-56%) rotate(-17deg) skewX(-13deg) scale(.45);font-family:var(--font-display,'Cormorant Garamond',serif);font-style:italic;font-weight:400;font-size:44px;line-height:1;color:var(--cfg-brass);opacity:0;pointer-events:none;transition:opacity .2s,transform .3s cubic-bezier(.2,.8,.2,1)}
.ed.is-on .ed__tick{opacity:1;transform:translate(-50%,-56%) rotate(-17deg) skewX(-13deg) scale(1) scaleX(1.18)}
.ed__name{font-family:var(--font-display,'Cormorant Garamond',serif);font-style:italic;font-weight:600;font-size:clamp(26px,2.4vw,34px);letter-spacing:0;text-transform:none;line-height:1.05;color:var(--cfg-brass)}
.ed.is-on .ed__name{color:var(--cfg-brass)}
.ed__state{display:none}
.ed__dep{font-weight:200;font-size:13.5px;letter-spacing:-.02em;white-space:nowrap;margin-left:auto}
.ed__dep small{font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cfg-mute);margin-left:6px}
.ed__desc{font-size:10px;line-height:1.55;color:var(--cfg-mute);text-wrap:pretty}
.ed__state{position:absolute;top:14px;right:16px;font-size:9.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cfg-brass);opacity:0;transition:opacity .2s}
.ed.is-on .ed__state{opacity:1}

/* Stripe-style checkout */
.pay__sum{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:#FAF8F1;border:1px solid var(--cfg-line);margin:2px 0 10px}
.pay__sum b{font-weight:200;font-size:22px;letter-spacing:-.02em}
.consent{display:grid;gap:8px;margin-bottom:12px}
.chk{display:grid;grid-template-columns:16px 1fr;gap:10px;align-items:start;cursor:pointer;font-size:10.5px;line-height:1.5;color:rgba(48,48,46,.62)}
.chk input{appearance:none;-webkit-appearance:none;margin:1px 0 0;width:16px;height:16px;border:1px solid var(--cfg-line);background:#fff;border-radius:2px;cursor:pointer}
.chk input:checked{background:var(--cfg-brass);border-color:var(--cfg-brass)}
.chk input:checked::after{content:"✓";display:block;color:#0E0E0E;font-size:11px;line-height:14px;text-align:center}
.chk a{border-bottom:1px solid rgba(157,137,92,.4)}
.fld{display:grid;gap:5px;margin-bottom:9px;min-width:0}
.fld label{font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cfg-mute)}
.fld input,.fld select{width:100%;background:#fff;border:1px solid var(--cfg-line);padding:9px 12px;color:var(--cfg-bone);font-family:inherit;font-size:14px;border-radius:2px}
.fld input::placeholder{color:rgba(48,48,46,.35)}
.fld input:focus,.fld select:focus{outline:none;border-color:var(--cfg-brass);box-shadow:0 0 0 2px rgba(157,137,92,.18)}
.fld-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.stripe{border:1px solid var(--cfg-line);border-radius:3px;padding:13px;background:#FAF8F1;margin:2px 0 10px}
.stripe__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.stripe__head .lbl{letter-spacing:.2em}
.stripe__mark{display:flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(48,48,46,.5)}
.stripe__mark b{font-family:var(--font-sans);font-weight:800;letter-spacing:-.02em;text-transform:none;font-size:13px;color:#635BFF}
.stripe .fld input{background:#fff}
.stripe__card{display:grid;grid-template-columns:minmax(0,1fr) 82px 66px;gap:8px}.stripe__card .fld{margin-bottom:0}
.ref{display:flex;gap:8px;align-items:flex-end;margin-bottom:12px}
.ref .fld{flex:1;margin-bottom:0}
.ref button{padding:10px 14px;border:1px solid var(--cfg-line);font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cfg-mute);border-radius:2px}
.ref button:hover{border-color:var(--cfg-brass);color:var(--cfg-brass)}
.ref__ok{font-size:11px;color:var(--cfg-brass);margin:-6px 0 12px;display:none}
.ref__ok.on{display:block}
.err{color:#A8453A;font-size:11.5px;line-height:1.5;margin:0 0 10px;display:none}
.err.on{display:block}
.shake{animation:shk .45s}
@keyframes shk{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* FAQ drawer */
.faq{position:fixed;inset:0;z-index:70;display:none}
.faq.open{display:block}
.faq__scrim{position:absolute;inset:0;background:rgba(20,20,18,.5);backdrop-filter:blur(3px)}
.faq__panel{position:absolute;right:0;top:0;bottom:0;width:min(560px,100%);background:var(--cfg-panel);border-left:1px solid var(--cfg-line);display:flex;flex-direction:column;animation:slidein .3s ease}
@keyframes slidein{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.faq__head{flex:0 0 auto;display:flex;align-items:flex-end;justify-content:space-between;padding:26px 30px 18px;border-bottom:1px solid var(--cfg-line)}
.faq__head h2{margin:8px 0 0;font-weight:300;font-size:30px;letter-spacing:-.02em}
.faq__close{font-size:24px;line-height:1;color:var(--cfg-mute)}
.faq__close:hover{color:var(--cfg-bone)}
.faq__body{flex:1 1 auto;overflow-y:auto;padding:8px 30px 40px}
.faq__group{margin-top:24px}
.faq__group>.lbl{display:block;margin-bottom:6px}
.faq details{border-bottom:1px solid rgba(48,48,46,.12)}
.faq summary{list-style:none;cursor:pointer;padding:15px 26px 15px 0;position:relative;font-size:13.5px;font-weight:500;line-height:1.5}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:2px;top:14px;color:var(--cfg-brass);font-size:15px}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{color:var(--cfg-brass)}
.faq details p{margin:0 0 16px;font-size:13px;line-height:1.7;color:var(--cfg-mute);max-width:52ch}
.faq details p+p{margin-top:-6px}

@media (max-width:1180px){.cfg{grid-template-columns:minmax(0,1fr) minmax(320px,360px);gap:20px;padding:20px 22px}}
@media (max-width:900px){body{overflow:auto}.cfg{height:auto;grid-template-columns:1fr;padding:22px}.car{--car-w:100%}.car__frame{height:auto;aspect-ratio:3/2}.spec{max-height:none}.spec__body{overflow:visible}}
@media (max-width:700px){.cfg-bar{padding:0 18px;gap:12px}.cfg-bar__right a.hide-sm{display:none}.cfg-swap{margin-left:6px}.cfg-swap a{padding:6px 10px;letter-spacing:.14em}.car__head{flex-direction:column;align-items:flex-start;gap:10px}.car__from{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:10px;text-align:left}.car__cap .stats{display:none}.stripe__card{grid-template-columns:1fr}}

/* Short viewports: keep the checkout inside the frame without scrolling */
@media (max-height:880px){.spec__steps{padding:13px 24px}.spec__body{padding:16px 22px}.fld{margin-bottom:7px}.fld input,.fld select{padding:8px 10px;font-size:13px}.stripe{padding:11px;margin:0 0 9px}.stripe__head{margin-bottom:8px}.pay__sum{padding:9px 12px;margin:0 0 8px}.pay__sum b{font-size:19px}.chk{font-size:10px}.spec__foot{padding:13px 24px 15px}.spec__total{margin-bottom:11px}.spec__total b{font-size:24px}.btn-cfg{padding:13px 18px}.btn-ghost{padding:11px 18px}.car__thumb{height:52px}}

@media (max-height:760px){.spec__body{padding:13px 22px}.fld{margin-bottom:6px}.fld label{font-size:8.5px}.fld input,.fld select{padding:7px 10px;font-size:12.5px}.stripe{padding:10px}.pay__sum b{font-size:18px}.chk{font-size:9.5px;line-height:1.45}.consent{gap:7px;margin-bottom:10px}.spec__note{font-size:10px}}


/* Legibility + touch floor (audit pass) */
.car__cap .stats span,.spec__list li span:first-child,.ed__dep small,.fld label,.stripe__mark,.ref button{font-size:10px}
.faq details p+p{font-size:10.5px}
.cfg-swap a{font-size:10.5px}
@media (max-width:900px){
  .cfg-bar__back,.cfg-swap a,.ref button,.spec__steps [data-step]{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .cfg-bar__brand{min-height:44px}
  .fld input,.fld select,.fld textarea{min-height:48px}
  html,body{overflow-x:hidden}
}

/* 3:2 imagery throughout the configurator */
.car__frame,.car__thumb{aspect-ratio:3/2}
.car__thumb{height:auto}
/* Short viewports: keep both edition cards fully visible without scrolling. */
@media (max-height:760px){.spec__body{padding-top:14px}.eds__title{font-size:12px}.eds__hint{font-size:7.5px;line-height:1.4;margin-top:3px}.eds__head{margin-bottom:8px}.ed{padding:9px 16px;gap:2px}.ed__name{font-size:22px}.ed__desc{font-size:8.5px}.eds{gap:8px}}

/* ==============  PROCESSING  ============== */
.proc{position:absolute;inset:0;z-index:9;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(250,248,241,.94);backdrop-filter:blur(3px);text-align:center;padding:30px}
.proc.on{display:flex}
.proc b{font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--cfg-brass)}
.proc__note{font-size:11px;color:var(--cfg-mute)}
.proc__ring{width:42px;height:42px;border:1px solid rgba(157,137,92,.25);border-top-color:var(--cfg-brass);border-radius:50%;animation:procSpin 1s linear infinite}
@keyframes procSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.proc__ring{animation-duration:3s}}

/* ==============  RESERVED  ============== */
.spec{position:relative}
.spec__steps [data-step][disabled]{opacity:.5;cursor:default}
.cfg[hidden],.cfg-bar[hidden]{display:none}
body.is-reserved,html:has(body.is-reserved){height:auto;overflow:visible}
body.is-reserved{overflow-y:auto}
.done__head{margin:0 0 14px}
.done__title{margin:8px 0 0;font-weight:300;font-size:clamp(23px,2.4vw,30px);letter-spacing:-.02em}
.done__title em{font-family:var(--font-display,'Cormorant Garamond',serif);font-style:italic;color:var(--cfg-brass)}
.done__sub{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--cfg-mute)}
.done__sub b{color:var(--cfg-brass);font-weight:500;letter-spacing:.04em}
.done__facts{display:grid;gap:0;margin:0 0 16px;border-top:1px solid rgba(48,48,46,.12)}
.done__facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(48,48,46,.12)}
.done__facts dt{font-size:9.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cfg-mute);margin:0}
.done__facts dd{margin:0;font-size:13.5px;text-align:right}
.done__mail{margin:0 0 18px;font-size:11.5px;line-height:1.6;color:var(--cfg-mute)}
.done__mail b{color:var(--cfg-bone);font-weight:500}
.jrn__wrap>.lbl{display:block;margin-bottom:12px}
.jrn{list-style:none;margin:0;padding:0 0 4px}
.jrn li{position:relative;padding:0 0 14px 24px;border-left:1px solid rgba(157,137,92,.3);margin-left:5px}
.jrn li:last-child{border-left-color:transparent;padding-bottom:0}
.jrn li::before{content:"";position:absolute;left:-5px;top:4px;width:9px;height:9px;border-radius:50%;background:#FAF8F1;border:1px solid rgba(157,137,92,.5)}
.jrn li.is-done::before{background:var(--cfg-brass);border-color:var(--cfg-brass)}
.jrn li.is-now::before{background:#FAF8F1;border-color:var(--cfg-brass);box-shadow:0 0 0 3px rgba(157,137,92,.18)}
.jrn li b{display:block;font-size:12.5px;font-weight:600;letter-spacing:.01em}
.jrn li.is-now b{color:var(--cfg-brass)}
.jrn li span{display:block;margin-top:3px;font-size:11.5px;line-height:1.55;color:var(--cfg-mute)}

/* ==============  RESERVED (full page)  ============== */
.rsvd{min-height:100vh;min-height:100svh;background:var(--cfg-bg);padding:0 0 clamp(60px,7vw,110px)}
.rsvd__steps{display:flex;gap:26px;padding:18px clamp(20px,4vw,54px);border-bottom:1px solid var(--cfg-line);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(48,48,46,.35)}
.rsvd__steps .on{color:var(--cfg-brass)}
.rsvd__inner{max-width:1180px;margin:0 auto;padding:clamp(38px,5vw,70px) clamp(20px,4vw,54px) 0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:clamp(34px,4.5vw,72px);align-items:start}
.rsvd .lbl{display:block}
.rsvd__title{margin:12px 0 0;font-weight:300;font-size:clamp(38px,5.2vw,68px);line-height:1.03;letter-spacing:-.025em}
.rsvd__title em{font-family:var(--font-display,'Cormorant Garamond',serif);font-style:italic;color:var(--cfg-brass)}
.rsvd__sub{margin:18px 0 26px;max-width:52ch;font-size:15px;line-height:1.65;color:var(--cfg-mute);text-wrap:pretty}
.rsvd__sub b{color:var(--cfg-brass);font-weight:500;letter-spacing:.04em}
.rsvd .done__facts{margin:0 0 18px}
.rsvd .done__facts dd{font-size:15px}
.rsvd .done__mail{margin:0 0 clamp(34px,4vw,52px);font-size:12.5px;max-width:60ch}
.rsvd__card{border:1px solid var(--cfg-line);border-radius:3px;background:#fff;padding:clamp(22px,2.6vw,34px);margin-bottom:18px}
.rsvd__card h2{margin:0;font-weight:300;font-size:clamp(22px,2.2vw,29px);letter-spacing:-.02em}
.rsvd__cardLede{margin:8px 0 20px;font-size:12.5px;line-height:1.6;color:var(--cfg-mute);max-width:56ch}
.rsvd__form{display:grid;gap:14px}
.rsvd__form .btn-cfg{justify-self:start;width:auto;min-width:240px}
.rsvd__form textarea{width:100%;padding:12px 13px;border:1px solid var(--cfg-line);border-radius:2px;background:#FAF8F1;font-family:inherit;font-size:13.5px;line-height:1.6;color:inherit;resize:vertical}
.rsvd__form textarea:focus-visible{outline:none;border-color:var(--cfg-brass)}
.rsvd__sent{margin:0;font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cfg-brass)}
.rsvd__side{position:sticky;top:clamp(20px,3vw,40px);border:1px solid var(--cfg-line);border-radius:3px;background:#fff;padding:clamp(22px,2.4vw,30px)}
.rsvd__actions{display:grid;gap:10px;margin-top:26px;padding-top:22px;border-top:1px solid var(--cfg-line)}
@media (max-width:920px){.rsvd__inner{grid-template-columns:1fr}.rsvd__side{position:static}}
.fld__opt{margin-left:6px;font-size:8.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(48,48,46,.4)}
.rsvd__form .fld--half{max-width:50%}
@media (max-width:560px){.rsvd__form .fld--half{max-width:none}}

/* ----- OPENING SPLASH, ARRIVING FROM THE SITE -----
   Crossing from the dark site into the light reserve pages is a scene change,
   so it gets the same opening the home page uses: one slow breath on the mark,
   then the ground lifts. Only when .lb-splash-on is set, which the inline gate
   in the page head does after a reserve button click on the site, never on a
   reload or on the model swap between the two reserve pages. Same as the home
   page, the animations finish in visibility:hidden, so a script that never
   runs cannot leave the curtain down. Easing is written out here because
   --ease-brand belongs to styles.css, which these pages do not load. */
.lb-splash{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;background:#161614;animation:lbSplashOut .7s cubic-bezier(.16,1,.3,1) 2.2s both}
/* Symmetric easing on the mark, matching the home page: the brand curve is a
   strong expo-out and would turn a slow breath into a flash. */
.lb-splash__mark{width:clamp(44px,4.6vw,62px);height:auto;animation:lbSplashBreath 2.2s cubic-bezier(.45,0,.55,1) both}
html:not(.lb-splash-on) .lb-splash{display:none}
@keyframes lbSplashBreath{
  0%{opacity:0;transform:scale(.97)}
  40%{opacity:1;transform:scale(1)}
  60%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.02)}
}
@keyframes lbSplashOut{0%{opacity:1}99%{opacity:0;visibility:visible}100%{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){
  .lb-splash{animation:lbSplashOut .3s linear both}
  .lb-splash__mark{animation:none}
}
