:root {
    --navy: #101820;
    --red: #b6282f;
    --red-dark: #8f1f25;
    --cream: #f7f4ee;
    --muted: #69747c;
    --border: #dfe4e7;
    --white: #fff;
    --shadow: 0 20px 55px rgba(16, 24, 32, 0.12);
}
* { box-sizing: border-box; }
body { margin:0; color:var(--navy); font-family:Arial,Helvetica,sans-serif; background:#fff; }
.site-header { border-bottom:1px solid var(--border); background:#fff; }
.navbar { min-height:80px; }
.navbar-brand img { width:auto; max-height:56px; }
.nav-link { font-weight:700; }
.btn { border-radius:.7rem; font-weight:800; }
.btn-brand { color:#fff; background:var(--red); border-color:var(--red); }
.btn-brand:hover,.btn-brand:focus { color:#fff; background:var(--red-dark); border-color:var(--red-dark); }
.page-hero { padding:5rem 0; color:#fff; background:linear-gradient(135deg,var(--navy),#263746); }
.page-hero.compact { padding:3.5rem 0; }
.page-hero h1 { margin:0 0 .7rem; font-size:clamp(2.4rem,5vw,4rem); font-weight:800; }
.page-hero p { margin:0; color:rgba(255,255,255,.75); font-size:1.1rem; }
.eyebrow { display:inline-block; margin-bottom:.8rem; color:#dc8f93; font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.section-padding { padding:5rem 0; }
.session-card,.form-panel,.booking-summary,.table-panel,.admin-login { border:1px solid var(--border); border-radius:1rem; background:#fff; box-shadow:var(--shadow); }
.session-card { display:flex; overflow:hidden; }
.session-date { display:flex; flex:0 0 100px; flex-direction:column; align-items:center; justify-content:center; padding:1rem; color:#fff; background:var(--red); text-align:center; }
.session-date strong { font-size:2.5rem; line-height:1; }
.session-date span { font-size:.8rem; font-weight:800; text-transform:uppercase; }
.session-content { flex:1; padding:1.5rem; }
.session-region { margin-bottom:.2rem; color:var(--red); font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.session-content h2 { font-size:1.5rem; font-weight:800; }
.venue { font-weight:700; }
.session-meta,.booking-summary dl { display:grid; gap:.7rem; margin:1.4rem 0; }
.session-meta div,.booking-summary dl div { display:flex; justify-content:space-between; gap:1rem; padding-bottom:.55rem; border-bottom:1px solid var(--border); }
.session-meta dt,.booking-summary dt { color:var(--muted); }
.session-meta dd,.booking-summary dd { margin:0; font-weight:800; text-align:right; }
.form-panel,.booking-summary { padding:clamp(1.5rem,4vw,2.5rem); }
.form-panel h2,.booking-summary h2 { font-weight:800; }
.form-control,.form-select { min-height:50px; border-radius:.65rem; }
textarea.form-control { min-height:auto; }
.consent-box { padding:1rem; border-radius:.7rem; background:var(--cream); }
.booking-summary { position:sticky; top:100px; color:#fff; background:var(--navy); }
.booking-summary .eyebrow { color:#ef9da1; }
.booking-summary dl div { border-color:rgba(255,255,255,.15); }
.booking-summary dt,.summary-note { color:rgba(255,255,255,.68); }
.reminder-section { display:grid; min-height:calc(100vh - 150px); padding:4rem 0; place-items:center; background:var(--cream); }
.reminder-card { max-width:760px; margin:0 auto; padding:clamp(2rem,6vw,4rem); border-radius:1.4rem; background:#fff; box-shadow:var(--shadow); text-align:center; }
.reminder-icon { display:grid; width:76px; height:76px; margin:0 auto 1.5rem; border-radius:50%; place-items:center; color:#fff; background:var(--red); font-size:2rem; }
.reminder-card h1 { font-weight:800; }
.reminder-message { font-size:1.25rem; }
.booking-reference { padding:1rem; border-radius:.7rem; background:var(--cream); }
.reminder-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin:1.5rem 0; }
.redirect-note { color:var(--muted); }
.empty-state { padding:4rem; border-radius:1rem; background:var(--cream); text-align:center; }
.empty-state i { font-size:3rem; color:var(--red); }
.site-footer { padding:1.5rem 0; color:rgba(255,255,255,.7); background:#0b1117; }
.footer-row { display:flex; justify-content:space-between; gap:1rem; }
.site-footer p { margin:0; }
.site-footer a { color:#fff; text-decoration:none; }
.admin-login { max-width:460px; margin:0 auto; padding:2rem; }
.admin-title-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.admin-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.stat-card { padding:1.5rem; border-radius:1rem; color:#fff; background:var(--navy); box-shadow:var(--shadow); }
.stat-card strong,.stat-card span { display:block; }
.stat-card strong { font-size:2.2rem; }
.table-panel { overflow:hidden; }
.table-heading { padding:1.25rem 1.5rem; border-bottom:1px solid var(--border); }
.table-heading h2 { margin:0; font-size:1.35rem; font-weight:800; }
.table { margin:0; }
.table th,.table td { padding:1rem; }
@media(max-width:767.98px){
    .session-card{flex-direction:column;}
    .session-date{flex-basis:auto; flex-direction:row; gap:.5rem;}
    .booking-summary{position:static;}
    .reminder-actions,.reminder-actions .btn{width:100%;}
    .admin-title-row,.footer-row{align-items:flex-start; flex-direction:column;}
}
