.rebuild-notice {
  display: grid;
  gap: .35rem;
  margin: 0 0 1.5rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(195, 146, 54, .5);
  background: #fff8e8;
  color: #152433;
  font-size: 1rem;
  line-height: 1.45;
}

.rebuild-notice strong {
  text-transform: uppercase;
  letter-spacing: .08em;
}

.rebuild-notice span {
  max-width: 62rem;
}

[data-recovery-disabled='true'] {
  opacity: .62;
  cursor: not-allowed !important;
}

.admin-placeholder {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: #071925;
  color: white;
  font: 16px/1.6 Arial, sans-serif;
}

.admin-placeholder main {
  width: min(36rem, 100%);
  padding: 2rem;
  border: 1px solid rgba(255,255,255,.2);
  background: #0d2736;
}

.admin-placeholder img { width: 11rem; }
.admin-placeholder h1 { font-size: clamp(2rem, 8vw, 4rem); line-height: 1; }
.admin-placeholder a { color: #f5c96a; }
.booking-contact{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.form-note.success{background:#176758}.declaration-form textarea{width:100%;margin-top:8px;padding:14px;border:1px solid #aebeba;background:#f5f6f2}.admin-shell{min-height:100vh;background:#051f2c;color:#fff;padding:32px 5vw}.admin-shell header{display:flex;align-items:center;justify-content:space-between}.admin-shell header img{width:150px}.admin-panel{background:#0b3945;padding:24px;margin:24px 0}.admin-form{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end}.admin-form label{display:grid;gap:7px}.admin-form input,.admin-form select,.admin-form button{padding:12px;font:inherit}.booking-table{width:100%;border-collapse:collapse;background:#fff;color:#102d35}.booking-table th,.booking-table td{padding:11px;border-bottom:1px solid #cad6d7;text-align:left}.booking-table select{padding:7px}@media(max-width:700px){.booking-contact,.admin-form{grid-template-columns:1fr}.booking-table{font-size:12px}.booking-table th:nth-child(5),.booking-table td:nth-child(5){display:none}}

/* Branded hero and direct phone contact */
.nav-wordmark{min-width:132px;flex-direction:column;align-items:flex-start;gap:2px;color:#fff}
.nav-wordmark strong{color:var(--aqua);font-size:18px;letter-spacing:.08em}
.nav-wordmark small{color:#fff;font-size:8px;letter-spacing:.2em}
.nav-actions{display:flex;align-items:center;gap:12px}
.contact-button{background:#0d5965;box-shadow:4px 4px 0 var(--aqua);gap:10px;white-space:nowrap}
.contact-button span{color:#fff;font-size:13px;letter-spacing:.04em}
.hero-logo{width:min(52vw,380px);height:auto;max-height:210px;object-fit:contain;object-position:left center;margin:0 0 20px;filter:drop-shadow(0 8px 24px #000b)}
.hero-content{padding-top:5vh}
@media(max-width:1100px){.nav-links{gap:18px}.contact-button{font-size:10px}.contact-button span{font-size:11px}}
@media(max-width:900px){.nav-wordmark{display:none}.nav-actions{margin-left:auto}.hero-logo{width:min(68vw,340px)}}
@media(max-width:600px){.nav{padding:0 4vw}.nav .dates-button{display:none}.nav .contact-button{display:inline-flex;padding:11px 13px}.contact-button span{font-size:12px}.hero-content{padding-top:48px}.hero-logo{width:min(82vw,320px);max-height:175px;margin-bottom:14px}.hero-tagline{display:none}}

.mobile-call-bar{display:none}
@media(max-width:700px){
  body{padding-bottom:72px}
  .nav{height:94px;justify-content:center}
  .nav-actions{width:100%;justify-content:center}
  .nav .contact-button{width:min(100%,340px);min-height:50px;justify-content:center;font-size:12px}
  .nav .contact-button span{font-size:14px}
  .mobile-call-bar{display:flex;position:fixed;z-index:1000;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));min-height:54px;align-items:center;justify-content:center;gap:10px;padding:12px 18px;background:#ff5158;color:#fff;border:2px solid #fff;text-decoration:none;text-transform:uppercase;font-family:"Staatliches",sans-serif;font-size:16px;letter-spacing:.08em;box-shadow:5px 5px 0 var(--aqua)}
  .mobile-call-bar strong{font-size:18px;letter-spacing:.04em}
}

/* Complete booking flow */
.booking-next-step{max-width:920px;margin:26px 0 0;padding:22px 24px;background:#082f39;border-left:4px solid #21e1d2;color:#fff}
.booking-next-step .eyebrow{margin:0 0 8px;color:#72eee1}
.booking-next-step>p:last-child{font-size:17px;line-height:1.6}
.booking-flow-nav{padding:20px 5vw;background:#051f2c;color:#fff}
.booking-flow-nav .brand img{width:160px}
.booking-flow{min-height:calc(100vh - 90px);padding-top:48px}
.booking-flow .booking-top{max-width:1120px;margin:0 auto 36px}
.booking-flow .booking-top h1{font-size:clamp(48px,6vw,76px);line-height:.98}
.booking-flow-shell{max-width:1120px;margin:auto}
.booking-date-card{background:#082f39;border:1px solid #347582;padding:22px 24px;margin-bottom:18px}
.booking-date-card .eyebrow{margin:0 0 8px;color:#72eee1}
.booking-date-card h2{font-size:clamp(26px,4vw,40px);line-height:1.15}
.booking-date-card p:not(.eyebrow){color:#c4ddda;line-height:1.6;margin:8px 0}
.booking-date-card>a{color:#72eee1;text-decoration:underline}
.booking-sessions{max-width:none;margin:18px 0;padding:22px 24px;background:#062b37;border:1px solid #347582}
.booking-sessions .calendar-heading{margin-bottom:16px}
.session-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.session-card{padding:18px;background:#0c3e4a;border:1px solid #347582;color:#fff}
.session-card.available{border-color:#21e1d2}
.session-card h4{font-size:22px;margin:0 0 6px}
.session-card p{color:#c4ddda;line-height:1.5;margin:4px 0}
.session-card .session-status{color:#72eee1;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.session-card.unavailable .session-status{color:#ffb0a7}
.session-card button{margin-top:12px}
.booking-form{margin-top:18px}
.booking-form h2{grid-column:1/-1;color:#fff;font-size:clamp(24px,3vw,34px)}
.booking-form select option{color:#082f39;background:#fff}
.booking-form .terms-consent{display:flex;align-items:flex-start;gap:10px;color:#c4ddda;line-height:1.5;text-transform:none;letter-spacing:0}
.booking-form .terms-consent input{width:18px;min-width:18px;height:18px;margin:2px 0 0;accent-color:#21e1d2}
.booking-form .terms-consent a{color:#72eee1;text-decoration:underline}
.booking-form .button{font:inherit;font-weight:800}
.booking-form .form-note{padding:12px 14px;color:#fff;line-height:1.5;background:#56363b}
.booking-form .form-note.success{background:#176758}
.booking-flow-note{max-width:900px;color:#b9ceca;line-height:1.65;margin:22px 0 0}
.booking-flow [hidden]{display:none!important}
@media(max-width:700px){.booking-flow-nav{padding:14px 4vw}.booking-flow-nav .brand img{width:120px}.booking-flow{padding:34px 5vw}.booking-flow .booking-top{display:block}.booking-flow .booking-top>p{margin-top:16px}.session-options{grid-template-columns:1fr}.booking-sessions{padding:16px}.booking-form{grid-template-columns:1fr;padding:16px}.booking-form .wide,.booking-form h2{grid-column:1}}

/* Digital gift voucher purchase and printable certificate */
.gift-page{min-height:100vh;background:#061f2e;color:#fff}.gift-page .legal-nav{position:relative}.gift-purchase{max-width:1180px;margin:auto;padding:76px 5vw 92px;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.gift-purchase-intro h1{font-size:clamp(52px,7vw,88px);line-height:.95;margin:16px 0 28px}.gift-purchase-intro h1 em{color:#72eee1}.gift-purchase-intro>p{font-size:18px;line-height:1.7;color:#c7dbdf}.gift-purchase-intro ul{margin:28px 0 0;padding:0;list-style:none}.gift-purchase-intro li{padding:12px 0;border-top:1px solid #2c5661;color:#e5f1f2}.gift-form{padding:34px;background:#fff;color:#072634;border-top:6px solid #d31d2d;box-shadow:0 24px 70px #0005}.gift-form h2{font-size:32px;margin:0 0 22px}.gift-form label{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:14px 0}.gift-form input,.gift-form select,.gift-form textarea{display:block;width:100%;margin-top:8px;padding:14px;border:1px solid #b6c5ca;background:#f6f8f9;color:#092a39;font:16px/1.3 inherit;box-sizing:border-box}.gift-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.gift-form small{font-weight:400;text-transform:none;letter-spacing:0}.gift-form .button{border:0;margin-top:10px;font:inherit;font-weight:800}.gift-form .form-note{padding:12px 14px;background:#fff0f1;color:#7d1721;line-height:1.5}.gift-fineprint{font-size:12px;line-height:1.6;color:#66777e;margin-top:18px}.voucher-success{min-height:100vh;padding:55px 18px;background:radial-gradient(circle at top,#164e65,#041723 68%);color:#fff}.voucher-status{max-width:720px;margin:15vh auto;text-align:center}.digital-voucher{box-sizing:border-box;width:min(880px,100%);min-height:520px;margin:auto;padding:52px 62px;background:#f7f8f7;color:#092839;border:10px solid #fff;outline:3px solid #d31d2d;box-shadow:0 24px 90px #0007;position:relative;overflow:hidden}.digital-voucher:after{content:"";position:absolute;right:-85px;bottom:-85px;width:260px;height:260px;border-radius:50%;border:45px solid #0b3657;opacity:.08}.voucher-logo img{width:230px;height:auto}.voucher-kicker{margin:30px 0 8px;color:#d31d2d;font-weight:900;letter-spacing:.16em}.digital-voucher h1{font-size:clamp(38px,6vw,66px);line-height:.95;margin:0 0 24px}.voucher-value{display:flex;align-items:baseline;gap:18px;margin:20px 0 26px;padding:16px 0;border-top:1px solid #a9bac0;border-bottom:1px solid #a9bac0}.voucher-value strong{font-size:42px;color:#d31d2d}.voucher-value span{font-weight:800}.digital-voucher dl{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin:0}.digital-voucher dl div{border-bottom:1px solid #d5dddf;padding-bottom:9px}.digital-voucher .voucher-message{grid-column:1/-1}.digital-voucher dt{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#56717b}.digital-voucher dd{margin:4px 0 0;font-size:18px;font-weight:700}.voucher-redeem{font-size:12px;line-height:1.5;margin:25px 0 0;max-width:690px}.voucher-actions{display:flex;justify-content:center;gap:28px;align-items:center;margin:34px auto}.voucher-actions button{border:0;font:inherit;font-weight:800}.voucher-actions .text-link{color:#fff}
@media(max-width:760px){.gift-purchase{grid-template-columns:1fr;gap:35px;padding-top:44px}.gift-form-grid{grid-template-columns:1fr}.digital-voucher{padding:34px 26px}.digital-voucher dl{grid-template-columns:1fr}.voucher-value{display:block}.voucher-value span{display:block;margin-top:5px}.voucher-actions{flex-direction:column}}
@media print{body{background:#fff!important}.voucher-success{padding:0;background:#fff}.digital-voucher{width:100%;min-height:0;box-shadow:none;margin:0;outline:none;page-break-inside:avoid}.voucher-actions{display:none}@page{size:A4 landscape;margin:18mm}}

/* Kelvin-approved master logo: replace the snapper-only hero artwork and keep
   the exact logo visible in the site header at every screen size. */
.nav .nav-wordmark{display:flex;width:140px;min-width:140px;align-items:center;justify-content:flex-start}
.nav .nav-wordmark img{display:block;width:140px;height:74px;object-fit:contain;object-position:left center;filter:drop-shadow(0 3px 10px #0008)}
.hero-photo{background-color:#061b24;background-image:url("/assets/howmany-approved-master-logo.png"),linear-gradient(130deg,#153d49,#0a7080);background-position:center,center;background-repeat:no-repeat,no-repeat;background-size:contain,cover}
.hero-shade{background:linear-gradient(90deg,#01121a99 0%,#03192055 45%,#020f1626 78%),linear-gradient(#0000 50%,#02121966)}
@media(max-width:900px){.nav .nav-wordmark{display:flex}.nav .nav-wordmark img{width:118px;height:68px}.nav-links{gap:14px;font-size:11px}}
@media(max-width:700px){
  .nav{height:auto;min-height:82px;justify-content:space-between;gap:8px;padding:9px 4vw}
  .nav .nav-wordmark{width:104px;min-width:104px}
  .nav .nav-wordmark img{width:104px;height:64px;object-position:center}
  .nav .nav-links{display:none}
  .nav .nav-actions{width:auto;margin-left:auto}
  .nav .contact-button{width:auto;min-height:46px;padding:10px 12px;justify-content:center;font-size:11px}
  .nav .contact-button span{display:none}
  .nav .dates-button{display:none}
  .hero{height:auto;min-height:calc(100svh - 82px)}
  /* The header already displays the full logo; keep the reading area clear. */
  .hero-photo{background-image:linear-gradient(130deg,#153d49,#0a7080);background-size:cover;background-position:center}
  .hero-content{padding-bottom:56px}
}

/* Booking manager: shared phone and desktop controls */
.admin-shell{max-width:1400px;margin:auto}.admin-shell a{color:#f5c96a}.admin-shell button{background:#f5c96a;color:#102d35;border:0;border-radius:6px;padding:12px 18px;font:inherit;min-height:44px;cursor:pointer}.admin-shell button:disabled{opacity:.55;cursor:wait}.admin-shell input,.admin-shell select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;font-size:16px;border:1px solid #aebeba;border-radius:5px;padding:10px}.manager-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.manager-tools label{display:grid;gap:8px;flex:1;min-width:200px}.booking-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:24px}.booking-card{background:#fff;color:#102d35;border-radius:8px;padding:20px;overflow-wrap:anywhere}.booking-card h3{margin-top:0;font-size:18px}.booking-card a{color:#176758}.booking-card label{display:grid;gap:8px}.admin-shell :focus-visible{outline:3px solid #e5a52d;outline-offset:3px}@media(max-width:700px){.admin-shell{padding:20px 4vw}.admin-panel{padding:16px}.admin-shell header{gap:16px}.admin-shell header img{width:120px}.booking-cards{grid-template-columns:1fr}.manager-tools{align-items:stretch;flex-direction:column}.manager-tools label{min-width:0}.manager-tools button{width:100%}}

/* Booking manager sign-in */
.admin-shell [hidden]{display:none!important}.admin-auth-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;background:#f5c96a;border-radius:6px;color:#102d35!important;font-weight:700;text-decoration:none}.admin-shell{box-sizing:border-box;font-family:Arial,sans-serif;line-height:1.5}
.manager-links{display:flex;flex-wrap:wrap;gap:12px}.manager-links a{font-size:14px}.manager-intro{max-width:760px;margin:38px 0 20px}.manager-intro h1{margin:4px 0 10px;font-size:clamp(38px,6vw,64px)}.manager-intro>p:last-child{color:#c6d8d4;font-size:17px}.manager-eyebrow{color:#f5c96a;letter-spacing:.12em;font-size:11px;font-weight:800}.manager-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}.manager-summary article{background:#fff;color:#102d35;border-radius:8px;padding:18px}.manager-summary span{display:block;color:#537078;font-size:13px}.manager-summary strong{display:block;margin-top:8px;font-size:32px}.manager-summary .summary-alert{background:#fff4dc}.panel-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.panel-heading h2{margin-top:0}.panel-heading p{max-width:700px}.booking-card-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.booking-status{border-radius:999px;padding:5px 8px;font-size:12px;font-weight:700;white-space:nowrap}.status-paid{background:#e6f5ec;color:#176758}.status-confirmed{background:#e3eff8;color:#1b5679}.status-pending_payment{background:#fff0cc;color:#805200}.status-cancelled,.status-refunded{background:#f1e4e4;color:#734343}.booking-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #d6e0e1;border-bottom:1px solid #d6e0e1;margin:16px 0;padding:12px 0}.booking-checks dt{color:#5d7478;font-size:12px}.booking-checks dd{margin:3px 0 0;font-weight:700}.email-sent{color:#176758}.email-pending{color:#805200}.email-failed{color:#a12727}.email-none{color:#657d82}@media(max-width:700px){.manager-links{gap:8px;justify-content:flex-end}.manager-links a{font-size:12px}.manager-summary{grid-template-columns:1fr 1fr}.panel-heading{flex-direction:column}.panel-heading button{width:100%}.booking-checks{grid-template-columns:1fr}}
