/* Page layout only. Typography, colours, buttons and form treatment come from
   the existing /assets/site.css and /assets/appearance.css stylesheets. */
.lake-booking .booking-layout{align-items:start;min-height:100svh;padding:clamp(3.5rem,6vw,7rem) 7vw;gap:6vw}
.lake-booking .booking-layout:before{display:none}
.booking-intro{position:sticky;top:3rem}
.booking-intro h1{font-size:clamp(3.1rem,5.7vw,6rem);margin:.3em 0}
.booking-intro .service-lead{color:var(--brown);font-size:1.1rem;max-width:32rem}
.booking-facts{padding:1.25rem 0;margin:2rem 0;border-block:1px solid #33282130;display:grid;gap:1.15rem}
.booking-facts div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:.8rem}
.booking-facts dt{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;padding-top:.3rem}
.booking-facts dd{margin:0;font-size:.95rem}
.session-price{border:1px solid #33282130;background:#f8f1e7;padding:1.75rem;margin:2rem 0}
.session-price .fig{display:block;font:600 2.5rem var(--serif);margin-bottom:.5rem}
.session-price p{margin:0;font-size:.95rem}
.booking-arrival{font-size:.85rem}
.booking-panel{min-width:0}
.booking-panel h2{font-size:clamp(2.3rem,3.5vw,3.7rem)}
.lake-booking .booking-form{display:block;margin-top:2rem;padding:clamp(1.25rem,3vw,2.5rem)}
.booking-form fieldset{min-width:0;border:0;border-top:1px solid #33282130;padding:1.2rem 0 0;margin:2rem 0 0}
.booking-form fieldset:first-child{margin-top:0}
.booking-form legend{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;padding:0 .7rem 0 0}
.step{color:var(--clay);font-weight:600;margin-right:.5rem}
.help,.secure{font-size:.75rem;line-height:1.65;color:#332821c4}
.slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:1rem 0}
.slots button{font:500 .8rem var(--sans);color:var(--brown);border:1px solid #33282155;background:transparent;border-radius:999px;padding:.75rem .15rem;cursor:pointer}
.slots button:hover:not(:disabled),.slots button[aria-pressed=true]{background:var(--brown);color:var(--cream);border-color:var(--brown)}
.slots button:disabled{opacity:.38;text-decoration:line-through;cursor:not-allowed}
.selection{font-size:.8rem;min-height:1.5rem}
.booking-form label{margin:1.25rem 0 .4rem}
.booking-form input:not([type=checkbox]),.booking-form textarea{display:block;width:100%;min-width:0;font:400 1rem var(--sans);letter-spacing:0;text-transform:none;box-sizing:border-box}
.booking-form textarea{resize:vertical}
.booking-form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.booking-form .optional{font-size:.65rem;font-weight:400;letter-spacing:0;text-transform:none}
.booking-form .total{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem}
.total strong{font:600 2rem var(--serif)}
.booking-form .consent{display:flex;align-items:flex-start;gap:.7rem;text-transform:none;letter-spacing:0;font-size:.8rem}
.booking-form .consent input{width:17px;height:17px;flex-shrink:0;accent-color:var(--brown);margin:.25rem 0 0}
.booking-form .button{width:100%;margin-top:.75rem;font-family:var(--sans)}
.booking-form .button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.booking-form .secure{text-align:center;margin-bottom:0}
.booking-form details{font-size:.85rem;margin-top:1rem}
.booking-form summary{cursor:pointer}
.notice{padding:1rem;background:#f8f1e7;border-left:3px solid var(--clay);font-size:.85rem;margin:1.5rem 0}
.error{font-size:.85rem}
:focus-visible{outline:2px solid var(--clay);outline-offset:4px}
@media(max-width:1000px){.lake-booking .booking-layout{gap:3vw;padding-inline:4vw}.slots{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.lake-booking .booking-layout{grid-template-columns:1fr;padding:3rem 1.5rem;gap:2.5rem}.booking-intro{position:static}.booking-intro h1{font-size:3.4rem}.booking-facts{margin:1.5rem 0}.slots{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:370px){.slots{grid-template-columns:repeat(4,minmax(0,1fr))}.booking-form .row{grid-template-columns:1fr;gap:0}.booking-facts div{grid-template-columns:1fr;gap:.2rem}}

.booking-recovery main{max-width:720px;margin:0 auto;padding:clamp(3rem,7vw,6rem) 1.5rem}.booking-recovery h1{font-size:clamp(2.5rem,6vw,4rem)}.booking-recovery .button{margin:1rem 0}
