:root{--blue:#082a52;--blue-light:#1261a4;--orange:#f58220;--cream:#f6f3ed;--ink:#152238;--muted:#647083}
html{scroll-behavior:smooth}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);line-height:1.65}
.navbar{background:rgba(5,29,56,.97);backdrop-filter:blur(12px)}
.navbar-brand{font-size:.95rem;letter-spacing:.04em}
.brand-vector,.eyebrow{color:var(--orange)}
.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.13em}
.section-pad{padding:6rem 0}
.section-soft{background:var(--cream)}
.section-blue{background:var(--blue);color:#fff}
.narrow{max-width:920px}
.section-heading{max-width:760px}
.section-heading h2{font-size:clamp(2rem,4vw,3.4rem);font-weight:800;margin-top:.5rem}
.hero{min-height:88vh;color:#fff;background:radial-gradient(circle at 78% 20%,rgba(245,130,32,.22),transparent 34%),linear-gradient(135deg,#041a33,#0b396c)}
.hero h1{letter-spacing:-.055em;line-height:.88}
.hero-cn{font-size:clamp(1.45rem,3vw,2.5rem);margin:1.5rem 0 .2rem}
.hero-promise span{color:#87c7ff}
.hero-card{padding:1rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);border-radius:1rem}
.placeholder-scene,.gallery-placeholder,.map-placeholder{display:flex;min-height:320px;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #aeb7c1;border-radius:.8rem;background:linear-gradient(135deg,#e9edf1,#f9fafb);color:#536173;font-weight:800;letter-spacing:.08em}
.placeholder-scene small,.gallery-placeholder small,.map-placeholder span{font-weight:500;letter-spacing:0;margin-top:.4rem}
.pain-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.pain-card{padding:1.25rem;border-radius:.75rem;background:#f7f8fa;border:1px solid #e4e8ed;font-weight:650}
.pain-card span{color:var(--orange);margin-right:.5rem}
blockquote{border-left:4px solid var(--orange);padding-left:1.2rem;font-size:1.35rem;font-weight:700}
.feature-card,.price-card,.member-card{border:1px solid #dfe5eb;border-radius:1rem;padding:2rem;background:#fff}
.feature-card .number{display:inline-block;color:var(--orange);font-weight:900;margin-bottom:2rem}
.feature-card h3{font-size:1.5rem;font-weight:800}
.mode-card{padding:2.5rem;border-radius:1rem;min-height:420px;color:#fff}
.mode-card h3{font-size:2rem;font-weight:800;margin:1rem 0}
.mode-technical{background:linear-gradient(150deg,#082a52,#1261a4)}
.mode-workshop{background:linear-gradient(150deg,#6e3215,#da6a16)}
.mode-label{font-size:.75rem;font-weight:800;letter-spacing:.1em}
.tag-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem}
.tag-list span{border:1px solid rgba(255,255,255,.35);border-radius:99px;padding:.4rem .75rem;font-size:.85rem}
.benefit-list article{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:2rem;border-top:1px solid #dfe5eb;padding:1.7rem 0}
.benefit-list h3{font-weight:800}
.palette{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.palette span{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid rgba(255,255,255,.2);border-radius:.6rem}
.palette span:before{content:"";width:2rem;height:2rem;background:var(--swatch);border-radius:50%;border:1px solid rgba(255,255,255,.3)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.gallery-placeholder{min-height:220px}
.price-card{display:flex;flex-direction:column;justify-content:space-between}
.price-card h3{font-size:1.3rem;margin:.3rem 0}
.price-card>strong{font-size:2.2rem;color:var(--blue);margin:1rem 0}
.addon-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dfe5eb;padding:1.2rem 0;gap:1rem}
.addon-row small{display:block;color:var(--muted)}
.addon-row>span{white-space:nowrap;font-weight:800;color:var(--blue)}
.member-card{color:var(--ink)}
.member-card>span{color:var(--orange);font-weight:900;letter-spacing:.1em}
.testimonial-placeholder{border:1px dashed #aeb7c1;border-radius:1rem;padding:3rem;text-align:center}
.accordion-button:not(.collapsed){background:#e8f1fa;color:var(--blue)}
.calendar-shell{border:1px solid #dbe1e8;border-radius:1rem;padding:1.25rem;box-shadow:0 1rem 3rem rgba(8,42,82,.08);background:#fff}
.calendar-head{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}
.calendar-head span{text-align:center;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}
.calendar-day{position:relative;min-height:92px;padding:.65rem;border:1px solid #dbe1e8;border-radius:.65rem;background:#fff;color:var(--ink);text-align:left;transition:.18s ease}
.calendar-day:hover{transform:translateY(-2px);border-color:var(--blue-light);box-shadow:0 .5rem 1rem rgba(8,42,82,.1)}
.calendar-day.is-empty{border-color:transparent;background:transparent;pointer-events:none}
.calendar-day.is-past{opacity:.48;pointer-events:none}
.calendar-day strong{display:block;font-size:1rem}
.calendar-day small{display:block;margin-top:.5rem;font-size:.7rem;font-weight:800;line-height:1.2}
.calendar-day.available{border-left:4px solid #198754}
.calendar-day.limited{border-left:4px solid #ffc107}
.calendar-day.held{border-left:4px solid #fd7e14}
.calendar-day.booked,.calendar-day.blocked,.calendar-day.maintenance,.calendar-day.internal_use,.calendar-day.trainer_reserved{border-left:4px solid #dc3545;background:#fff8f8}
.calendar-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;color:var(--muted);font-size:.8rem}
.calendar-legend span:before{content:"";display:inline-block;width:.7rem;height:.7rem;margin-right:.35rem;border-radius:50%;background:var(--legend)}
.booking-progress,.progress-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem;margin:1.5rem 0}
.booking-progress span,.progress-steps span{padding:.55rem .35rem;border-radius:.45rem;background:#e9edf2;color:#687486;text-align:center;font-size:.75rem;font-weight:800}
.booking-progress .active,.progress-steps .active{background:var(--blue);color:#fff}
.booking-panel{border:1px solid #dbe1e8;border-radius:1rem;padding:clamp(1.2rem,3vw,2.5rem);background:#fff}
.summary-card{position:sticky;top:6rem;border:1px solid #dbe1e8;border-radius:1rem;padding:1.5rem;background:#f8fafc}
.summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid #e3e8ed}
.summary-total{font-size:1.2rem;font-weight:900;color:var(--blue)}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}
.slot-option{position:relative}
.slot-option input{position:absolute;opacity:0}
.slot-option label{display:block;padding:.8rem;border:1px solid #cfd7df;border-radius:.55rem;text-align:center;cursor:pointer}
.slot-option input:checked+label{border-color:var(--orange);background:#fff2e6;color:#8c3e00;font-weight:800}
.slot-option input:disabled+label{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.form-control,.form-select{min-height:48px;border-color:#cfd7df}
.form-control:focus,.form-select:focus{border-color:var(--blue-light);box-shadow:0 0 0 .2rem rgba(18,97,164,.15)}
.btn-primary{--bs-btn-bg:var(--blue);--bs-btn-border-color:var(--blue);--bs-btn-hover-bg:#0b3d72;--bs-btn-hover-border-color:#0b3d72}
.btn-warning{--bs-btn-bg:var(--orange);--bs-btn-border-color:var(--orange);--bs-btn-hover-bg:#db6c0e;--bs-btn-hover-border-color:#db6c0e;color:#111}
.footer{background:#03182e;color:#c8d4df;padding:4rem 0 2rem}
.footer a{color:#fff;text-decoration:none}
.footer a:hover{color:#ffb777}
.table-responsive{border:1px solid #dbe1e8;border-radius:.75rem}
.status-pill{display:inline-block;padding:.3rem .6rem;border-radius:99px;background:#e8edf2;font-size:.72rem;font-weight:900;letter-spacing:.04em}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:1rem;top:1rem;z-index:9999;padding:.7rem 1rem;background:#fff;color:#000}
@media (max-width:991.98px){.section-pad{padding:4.5rem 0}.gallery-grid{grid-template-columns:repeat(2,1fr)}.hero{min-height:auto;padding:7rem 0 4rem}.summary-card{position:static}.slot-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:575.98px){.section-pad{padding:3.5rem 0}.pain-grid,.gallery-grid,.palette{grid-template-columns:1fr}.benefit-list article{grid-template-columns:1fr;gap:.5rem}.calendar-shell{padding:.55rem}.calendar-head,.calendar-grid{gap:.2rem}.calendar-day{min-height:70px;padding:.35rem}.calendar-day small{font-size:.58rem}.booking-progress,.progress-steps{grid-template-columns:repeat(3,1fr)}.addon-row{align-items:flex-start}.slot-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Release-candidate corrections for the rendered booking and admin markup. */
.calendar-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:.75rem;margin-bottom:1rem}
.calendar-toolbar h3{margin:0;text-align:center;font-size:1.2rem;font-weight:800}
.calendar-toolbar button{min-width:44px;min-height:44px;border:1px solid #cfd7df;border-radius:.55rem;background:#fff;color:var(--blue);font-weight:900}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}
.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}
.calendar-day.AVAILABLE{border-left:4px solid #198754}.calendar-day.LIMITED{border-left:4px solid #ffc107}
.calendar-day.HELD,.calendar-day.PENDING_PAYMENT{border-left:4px solid #fd7e14}
.calendar-day.BOOKED,.calendar-day.BLOCKED,.calendar-day.MAINTENANCE,.calendar-day.INTERNAL_USE,.calendar-day.TRAINER_RESERVED{border-left:4px solid #dc3545;background:#fff8f8}
.calendar-day:disabled:hover{transform:none;border-color:#dbe1e8;box-shadow:none}.calendar-day:disabled{cursor:not-allowed}
.calendar-legend i{display:inline-block;width:.7rem;height:.7rem;margin-right:.35rem;border-radius:50%;background:#687486}
.calendar-legend i.available{background:#198754}.calendar-legend i.limited{background:#ffc107}.calendar-legend i.booked{background:#dc3545}
.progress-steps{padding:0;list-style:none}.progress-steps li{padding:.55rem .35rem;border-radius:.45rem;background:#e9edf2;color:#687486;text-align:center;font-size:.75rem;font-weight:800}
.booking-panel,.form-card{border:1px solid #dbe1e8;border-radius:1rem;padding:clamp(1.2rem,3vw,2.5rem);background:#fff;box-shadow:0 .75rem 2rem rgba(8,42,82,.06)}
.footer,.site-footer{background:#03182e;color:#c8d4df;padding:4rem 0 2rem}.footer a,.site-footer a{color:#fff;text-decoration:none}.footer a:hover,.site-footer a:hover{color:#ffb777}
.admin-nav .container-fluid{flex-wrap:wrap;gap:.5rem}.admin-nav .container-fluid>div{display:flex;flex-wrap:wrap;gap:.35rem}.admin-nav .btn{display:inline-flex;align-items:center;min-height:42px}
@media (max-width:575.98px){.calendar-weekdays{gap:.2rem}}
.language-switcher{white-space:nowrap}
@media (min-width:992px) and (max-width:1199.98px){.navbar .container{max-width:100%}.navbar .nav-link{font-size:.82rem}.navbar .btn{font-size:.9rem;padding-left:.7rem;padding-right:.7rem}}
.form-card,.feature-card,.mode-card,.price-card,.member-card{overflow-wrap:anywhere}
/* Media intelligence and controlled public-media presentation. */
.hero-media{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:.65rem;background:#e9edf1}
.media-figure{position:relative;overflow:hidden;border-radius:.65rem}
.media-figure figcaption{position:absolute;right:0;bottom:0;left:0;padding:.7rem 1rem;background:linear-gradient(transparent,rgba(3,24,46,.88));color:#fff;font-size:.82rem}
.gallery-media{position:relative;min-height:220px;margin:0;overflow:hidden;border-radius:.8rem;background:#e9edf1}
.gallery-media img{display:block;width:100%;height:100%;min-height:220px;aspect-ratio:16/10;object-fit:cover}
.gallery-media figcaption{position:absolute;right:0;bottom:0;left:0;padding:2rem .85rem .75rem;background:linear-gradient(transparent,rgba(3,24,46,.9));color:#fff;font-size:.8rem}
.content-subnav{overflow-x:auto;padding-bottom:.25rem}
.content-subnav .nav-link{border:1px solid #cfd7df;color:var(--blue);white-space:nowrap}
.content-subnav .nav-link:hover,.content-subnav .nav-link:focus{background:#e8f1fa}
.media-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:1rem}
.media-admin-card{overflow:hidden;border-color:#dbe1e8}
.media-admin-preview{display:flex;min-height:240px;max-height:360px;align-items:center;justify-content:center;background:#071f3a}
.media-admin-preview img,.media-admin-preview video{display:block;width:100%;height:100%;max-height:360px;object-fit:contain}
.media-score{display:inline-grid;min-width:52px;min-height:52px;place-items:center;border-radius:50%;background:#dff4e8;color:#12643b;font-weight:900}
.media-score.is-low{background:#fde7e7;color:#9d2525}
.filter-bar{padding:1rem;border:1px solid #dbe1e8;border-radius:.8rem;background:#f8fafc}
details>summary{cursor:pointer}
@media (max-width:575.98px){.hero-media{aspect-ratio:4/3}.media-admin-preview{min-height:190px}.content-subnav{flex-wrap:nowrap!important}}
@media (min-width:992px){.media-admin-grid.is-list{grid-template-columns:1fr}.media-admin-grid.is-list .media-admin-card{display:grid;grid-template-columns:minmax(280px,36%) 1fr}.media-admin-grid.is-list .media-admin-preview{max-height:none}.media-admin-grid.is-list .media-admin-preview img,.media-admin-grid.is-list .media-admin-preview video{max-height:100%;object-fit:contain}}
.media-admin-card textarea,.media-admin-card input,.media-admin-card select{scroll-margin-top:6rem}

