.term-booking-main{min-height:100vh;padding:96px 0 72px;background:radial-gradient(circle at 15% 4%,rgba(59,130,246,.10),transparent 35%),#101010;color:#fff}
.term-booking-wrap{width:min(1420px,calc(100% - clamp(88px,8vw,160px)));margin:0 auto}
.term-booking-intro{max-width:780px;margin-bottom:24px}
.term-booking-intro>span,.term-booking-label{display:block;color:#82afff;font:800 .7rem/1.2 Montserrat,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.term-booking-intro h1{margin:8px 0 10px;font:900 clamp(2rem,2.6vw,2.5rem)/1.08 Montserrat,Arial,sans-serif;letter-spacing:0}
.term-booking-intro p{max-width:720px;margin:0;color:rgba(255,255,255,.68);font-size:1rem;line-height:1.65}
.term-booking-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}
.term-booking-side{display:grid;gap:18px;min-width:0;align-content:start}
.term-booking-context,.term-booking-panel,.term-booking-unavailable{min-width:0;padding:24px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:linear-gradient(145deg,#1e2025,#17181b);box-shadow:0 20px 54px rgba(0,0,0,.18)}
.term-booking-context{border-color:rgba(99,154,255,.25);background:radial-gradient(circle at 100% 0%,rgba(59,130,246,.17),transparent 52%),linear-gradient(145deg,#1c2028,#17191d)}
.term-booking-context h2{margin:12px 0 20px;overflow-wrap:anywhere;font:850 1.3rem/1.24 Montserrat,Arial,sans-serif}
.term-booking-context dl{margin:0;border-top:1px solid rgba(255,255,255,.11)}
.term-booking-context dl>div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.11)}
.term-booking-context dt{color:rgba(255,255,255,.52);font:800 .7rem/1.5 Montserrat,Arial,sans-serif;text-transform:uppercase}
.term-booking-context dd{margin:0;overflow-wrap:anywhere;color:#f4f7ff;font-size:.94rem;line-height:1.5}
.term-booking-upcoming{display:none;min-width:0;padding:22px 24px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:linear-gradient(145deg,#1b1d21,#151619)}
.term-booking-upcoming h2{margin:8px 0 16px;font:850 1.15rem/1.25 Montserrat,Arial,sans-serif}
.term-booking-upcoming ul{margin:0;padding:0;list-style:none}
.term-booking-upcoming li+li{border-top:1px solid rgba(255,255,255,.09)}
.term-booking-upcoming li>a{display:grid;grid-template-columns:46px minmax(0,1fr) 16px;gap:13px;align-items:center;min-height:76px;padding:10px 0;color:#fff;text-decoration:none}
.term-booking-upcoming li>a:hover .term-booking-upcoming-copy>strong,.term-booking-upcoming li>a:focus-visible .term-booking-upcoming-copy>strong{color:#a9c8ff}
.term-booking-upcoming li>a:focus-visible{outline:2px solid #82afff;outline-offset:3px;border-radius:4px}
.term-booking-upcoming time{display:grid;place-content:center;min-height:50px;border:1px solid rgba(99,154,255,.28);border-radius:8px;background:rgba(59,130,246,.12);text-align:center}
.term-booking-upcoming time strong{font:850 1.12rem/1.1 Montserrat,Arial,sans-serif}
.term-booking-upcoming time span{margin-top:3px;color:#9dbdff;font:800 .61rem/1 Montserrat,Arial,sans-serif;letter-spacing:.05em}
.term-booking-upcoming-copy{display:grid;gap:5px;min-width:0}
.term-booking-upcoming-copy>strong{overflow-wrap:anywhere;font:800 .86rem/1.35 Montserrat,Arial,sans-serif}
.term-booking-upcoming-copy>small{color:rgba(255,255,255,.56);font-size:.77rem;line-height:1.3}
.term-booking-upcoming-arrow{color:#86aff8;font-size:1.05rem}
.term-booking-upcoming-all{display:inline-flex;align-items:center;gap:7px;margin-top:13px;color:#a9c8ff;font:800 .75rem/1.3 Montserrat,Arial,sans-serif;text-decoration:none}
.term-booking-upcoming-all:hover,.term-booking-upcoming-all:focus-visible{color:#fff;text-decoration:underline}
.term-booking-panel-head{margin-bottom:22px}
.term-booking-panel-head h2{margin:8px 0 6px;font:850 1.3rem/1.22 Montserrat,Arial,sans-serif}
.term-booking-panel-head p{margin:0;color:rgba(255,255,255,.62);font-size:.9rem;line-height:1.5}
.term-booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}
.term-booking-field{display:grid;gap:7px;min-width:0}
.term-booking-field--full{grid-column:1/-1}
.term-booking-field label{color:rgba(255,255,255,.78);font:750 .79rem/1.3 Montserrat,Arial,sans-serif}
.term-booking-field label span,.term-booking-consent b{color:#92bcff}
.term-booking-field label small{margin-left:4px;color:rgba(255,255,255,.45);font:600 .73rem/1.3 'Open Sans',Arial,sans-serif}
.term-booking-field input,.term-booking-field select,.term-booking-field textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid rgba(255,255,255,.17);border-radius:8px;background:#121317;color:#fff;font:400 .95rem/1.45 'Open Sans',Arial,sans-serif}
.term-booking-field textarea{min-height:106px;resize:vertical}
.term-booking-field input:focus,.term-booking-field select:focus,.term-booking-field textarea:focus{outline:2px solid rgba(99,154,255,.62);outline-offset:1px;border-color:#6ea5ff}
.term-booking-field input::placeholder,.term-booking-field textarea::placeholder{color:rgba(255,255,255,.34)}
.term-booking-consent{display:flex;align-items:flex-start;gap:10px;margin:20px 0 0;color:rgba(255,255,255,.72);font-size:.82rem;line-height:1.5;cursor:pointer}
.term-booking-consent input{flex:0 0 auto;width:17px;height:17px;margin:2px 0 0;accent-color:#3b82f6}
.term-booking-consent a{color:#a7c5fb;text-decoration:underline}
.term-booking-hint{margin:13px 0 18px;color:rgba(255,255,255,.44);font-size:.76rem}
.term-booking-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid rgba(99,154,255,.48);border-radius:8px;background:linear-gradient(120deg,#3b82f6,#5b5ff0);color:#fff;font:850 .75rem/1.2 Montserrat,Arial,sans-serif;text-decoration:none;text-transform:uppercase;cursor:pointer}
.term-booking-button:hover,.term-booking-button:focus-visible{filter:brightness(1.12);outline:2px solid rgba(147,197,253,.58);outline-offset:2px}
.term-booking-button:disabled{opacity:.58;cursor:wait;filter:none}
.term-booking-status{margin-top:16px;padding:13px 15px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:rgba(255,255,255,.04);color:#dbeafe;font-size:.89rem;line-height:1.5}
.term-booking-status[hidden]{display:none}
.term-booking-status.is-error{border-color:rgba(248,113,113,.42);background:rgba(239,68,68,.11);color:#fecaca}
.term-booking-status.is-success{border-color:rgba(74,222,128,.37);background:rgba(34,197,94,.10);color:#bbf7d0}
.term-booking-status.is-warning{border-color:rgba(251,191,36,.42);background:rgba(245,158,11,.10);color:#fde68a}
.term-booking-fields[hidden],.term-booking-consent[hidden],.term-booking-hint[hidden],.term-booking-button[hidden]{display:none!important}
.term-booking-unavailable{max-width:700px}
.term-booking-unavailable h2{margin:0 0 8px;font:850 1.4rem/1.2 Montserrat,Arial,sans-serif}
.term-booking-unavailable p{margin:0 0 20px;color:rgba(255,255,255,.68);line-height:1.55}
.term-booking-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.term-booking-noscript{margin:0;color:rgba(255,255,255,.72);line-height:1.6}.term-booking-noscript a{color:#a7c5fb}
@media(min-width:901px){.term-booking-upcoming{display:block}}
@media(max-width:900px){.term-booking-wrap{width:calc(100% - 28px)}}
@media(max-width:850px){.term-booking-layout{grid-template-columns:1fr}.term-booking-main{padding-top:80px}}
@media(max-width:560px){.term-booking-main{padding:78px 0 60px}.term-booking-intro{margin-bottom:20px}.term-booking-intro h1{font-size:2rem}.term-booking-intro p{font-size:.92rem}.term-booking-context,.term-booking-panel,.term-booking-unavailable{padding:21px}.term-booking-fields{grid-template-columns:1fr;gap:15px}.term-booking-field--full{grid-column:auto}.term-booking-button{width:100%}}
.term-booking-availability{color:#ffd99a;font-weight:700;line-height:1.5}
