#booking { padding: clamp(3rem, 8vw, 8rem) var(--gutter); background: radial-gradient(ellipse at top right,#301a14,#100d0a 66%); }
#booking h2 { font-size: clamp(3.7rem,8vw,8rem); }
.booking-grid { display:grid; gap:1rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 2rem 0; }
.booking-card, .booking-form, .booking-faq details { border: 1px solid #e7ac8345; background: #110d0bd9; padding: clamp(1rem,3vw,2rem); border-radius: 1rem; }
#booking h3 { margin-top:0; font: 400 clamp(1.8rem,3vw,3rem)/1 var(--display); }
#booking p, #booking li { line-height: 1.55; }
#booking strong, #price-summary { color: var(--accent); }
.booking-form fieldset { border:0; padding:0; margin:0 0 1rem; min-inline-size:0; }
.booking-form legend { font-weight:700; margin-bottom:.65rem; }
.booking-options { display:flex; gap: .6rem; flex-wrap:wrap; }
.booking-options label { display:flex; align-items:center; gap:.4rem; border:1px solid #e7ac8360; border-radius:2rem; padding:.55rem .85rem; cursor:pointer; }
.booking-options label:has(:checked) { background:#533022; }
.booking-form input[type=radio] { accent-color:var(--accent); }
.booking-form label.field { display:grid; gap:.4rem; margin-bottom:.9rem; font-size:.9rem; }
.booking-form :is(input:not([type=radio]),select,textarea) { width:100%; padding:.65rem; background:#1d1410; border:1px solid #e7ac8360; border-radius:.4rem; color:var(--ink); font:inherit; }
.booking-form textarea { min-height:6rem; resize:vertical; }
.booking-form .action { cursor:pointer; font-family:inherit; }
#booking-result { margin-top:1rem; }
.enquiry-review { display:grid; grid-template-columns: auto minmax(0,1fr); gap:.65rem 1rem; padding:1rem 0; border-block:1px solid #e7ac8345; }
.enquiry-review dt { color:var(--accent); font-weight:600; }
.enquiry-review dd { margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.booking-faq details { margin-bottom:.65rem; }
.booking-faq summary { cursor:pointer; font-weight:700; }
@media(max-width:700px) { .booking-grid { grid-template-columns:1fr; } }
.infrastructure-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.infrastructure-card { position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: end; min-height: clamp(19rem, 31vw, 30rem); border-radius: .75rem; background: #332019; }
.infrastructure-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.22, 1, .36, 1); }
.infrastructure-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 12%, #130b08f2 94%); pointer-events: none; }
.infrastructure-card > div { position: relative; z-index: 1; padding: clamp(1rem, 3vw, 2.5rem); }
.infrastructure-card h4 { margin: 0; font: 400 clamp(2.5rem, 5vw, 5rem)/.95 var(--display); }
.infrastructure-card:is(:hover,:focus-within) img { transform: scale(1.04); }
.maintenance-note, #booking-description-hint { color: var(--muted); }
@media (max-width: 700px) { .infrastructure-grid { grid-template-columns: 1fr; } }

