/* Booking-specific layout. Brand, navigation, typography and footer use /styles.css. */
:root{color-scheme:dark}
button,input,select{font:inherit}
button{border:1px solid transparent;background:var(--gold);color:#16140f;padding:.85rem 1.7rem;border-radius:50px;cursor:pointer;font-size:.85rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:background .2s}
button:hover{background:var(--gold-soft)}
button:disabled{opacity:.5;cursor:not-allowed}
input,select{width:100%;padding:12px 14px;margin-top:7px;background:var(--bg-alt);color:var(--ink);border:1px solid #ffffff35;border-radius:8px;min-width:0}
label{display:block;font-size:.8rem;font-weight:400;letter-spacing:.03em}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold-soft);outline-offset:4px}
.nav-toggle:hover{background:transparent}
.nav-actions,.brand{flex-shrink:0}
.booking-hero{min-height:400px}
.booking-hero .hero-content{width:100%;max-width:760px;padding-top:60px;padding-bottom:60px}
.booking-hero .lede{margin-bottom:0;max-width:44ch}
.booking-path{display:flex;align-items:center;gap:12px;margin-top:24px;margin-bottom:24px;font-size:.78rem;color:var(--muted)}
.booking-path a:hover{color:var(--gold)}
.booking-path .policy-link{margin-left:auto;color:var(--gold)}
.search{max-width:1112px;margin:0 auto 64px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:grid;grid-template-columns:1fr 1fr .65fr 1.3fr;gap:20px;align-items:end;scroll-margin-top:96px}
.search p{grid-column:1/-1;font-size:.75rem;color:var(--muted)}
.content{max-width:1112px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:32px}
.content h2{margin-bottom:12px}
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}
.card{border:1px solid rgba(255,255,255,.05);border-radius:var(--radius);overflow:hidden;background:var(--surface);transition:border-color .25s}
.card:hover{border-color:var(--line)}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.card>div{padding:24px}
.card h3{margin-bottom:8px}
.card p{font-size:.9rem;color:var(--muted);margin:8px 0}
.card button{width:100%;margin-top:16px;background:transparent;border-color:var(--gold);color:var(--gold)}
.card button:hover:not(:disabled){background:var(--gold);color:#16140f}
.card p.price{font:600 1.9rem/1.2 var(--serif);color:var(--ink);margin:16px 0}
.card p.price.no-quote{font:300 .9rem/1.65 var(--sans);color:var(--muted)}
aside{align-self:start;position:sticky;top:96px;background:var(--surface);border:1px solid var(--line);padding:26px;border-radius:var(--radius);max-height:calc(100dvh - 116px);overflow-y:auto;overscroll-behavior:contain}
aside h2{font-size:2rem}
aside h3{margin:18px 0 12px}
aside p{font-size:.85rem;margin:12px 0}
aside label{margin:14px 0}
.check{display:flex;gap:10px;align-items:start}
.check input{width:18px;flex-shrink:0;margin-top:4px;accent-color:var(--gold)}
#guest button{width:100%}
.muted,#results{color:var(--muted);font-size:.85rem}
.line{display:flex;justify-content:space-between;gap:10px;margin:12px 0;font-size:.85rem}
.line span{flex-shrink:0;max-width:45%}
.line strong{text-align:right;overflow-wrap:anywhere;font-weight:500}
#quote>.line:last-child{border-top:1px solid var(--line);padding-top:15px;font-size:1rem}
.policies{max-width:1112px;margin:72px auto;scroll-margin-top:100px}
.policies h2{margin-bottom:28px}
.policies details{border:1px solid rgba(255,255,255,.06);background:var(--surface);border-radius:var(--radius);padding:22px 26px;margin:12px 0;max-width:770px}
.policies p:not(.eyebrow){color:var(--muted);font-size:.9rem;margin-top:16px;max-width:70ch}
.policies summary{cursor:pointer;list-style:none;font:600 1.45rem/1.3 var(--serif);display:flex;justify-content:space-between;gap:20px}
.policies summary::-webkit-details-marker{display:none}
.policies summary:after{content:'+';color:var(--gold);font-family:var(--sans);font-size:1.2rem;font-weight:300}
.policies details[open] summary:after{content:'−'}
#contact a{color:var(--gold);text-decoration:underline;text-underline-offset:4px}
#error{color:#ffd6a0;max-width:1112px;margin:20px auto}
#error:empty{display:none}
#error:not(:empty){padding:16px;border:1px solid var(--gold);border-radius:var(--radius)}
fieldset{border:0;padding:0;margin:0;min-width:0}
#receipt:not(:empty){padding:18px;border:1px solid var(--gold);border-radius:var(--radius);margin-top:16px}
#receipt p{overflow-wrap:anywhere}
#verification{margin:16px 0}
#guest-fields:disabled{opacity:.65}
#summary{scroll-margin-top:96px}
#refresh-status{margin-top:12px}
.booking-complete #search,.booking-complete .content>div{display:none}
.booking-complete .content{display:block}
.booking-complete #summary{position:static;max-width:720px;margin:0 auto;max-height:none;overflow:visible}
.booking-complete #summary button{margin:12px 8px 0 0}
@media(max-width:1160px){.content,.policies,.search,#error{margin-left:24px;margin-right:24px}}
/* Preserve the main site’s 860px menu breakpoint; tighten tablet spacing. */
@media(min-width:861px) and (max-width:1050px){.nav-inner{gap:1rem}.main-nav{gap:1rem}.main-nav a{font-size:.78rem}.nav-actions{gap:.65rem}.nav-actions .btn{padding:.75rem 1.1rem}}
@media(max-width:860px){.content{grid-template-columns:1fr}aside{position:static;max-height:none;overflow:visible}.search{grid-template-columns:1fr 1fr}.booking-hero{min-height:340px}.booking-hero .hero-content{padding-top:48px;padding-bottom:48px}.main-nav{visibility:hidden}.main-nav.open{visibility:visible;max-height:calc(100dvh - 72px);overflow-y:auto}.nav-actions{gap:12px}.nav-actions .btn{display:none}}
@media(max-width:520px){.rooms{grid-template-columns:1fr}.search{padding:20px;gap:16px}.search button{font-size:.72rem;padding:14px 10px}.content,.policies,.search,#error{margin-left:20px;margin-right:20px}.booking-path{padding:0 20px;gap:9px}.booking-path .policy-link{font-size:.72rem}.booking-hero h1{font-size:2.6rem}.card>div{padding:22px}.policies details{padding:20px}.footer-inner{padding-left:24px}.booking-hero .lede{font-size:1.05rem}}
