/*
 * PUBLIC WEBSITE STYLES
 * Covers shared public layout, homepage, forms, tracking, public calendar,
 * confirmation/reservation notices, responsive behavior, and print-safe helpers.
 * Admin-specific styles belong in admin.css. Search by component class/data hook
 * from the matching PHP/JS when debugging visual behavior.
 */

:root{--navy:#071a33;--navy-2:#0d2b50;--green:#2CFF05;--green-dark:#20C900;--white:#fff;--ink:#122033;--muted:#687789;--surface:#f4f7fb;--line:#dfe7ef;--danger:#cc3344;--warning:#e69a00;--success:#16845b;--shadow:0 18px 45px rgba(5,25,50,.12);--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.6}h1,h2,h3,h4{font-family:Montserrat,Inter,sans-serif;line-height:1.18;margin:0 0 1rem;color:var(--navy)}h1{font-size:clamp(2.5rem,6vw,5.4rem)}h2{font-size:clamp(2rem,4vw,3.4rem)}h3{font-size:1.35rem}p{margin:0 0 1rem}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 32px));margin:auto}.section{padding:88px 0}.section-sm{padding:48px 0}.surface{background:var(--surface)}.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}.hidden{display:none!important}.eyebrow{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.13em;font-size:.78rem;font-weight:800;color:var(--green-dark);margin-bottom:14px}.eyebrow:before{content:"";width:28px;height:3px;border-radius:2px;background:var(--green)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(223,231,239,.8)}.nav-wrap{height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:48px;height:48px;display:grid;place-items:center;background:linear-gradient(145deg,var(--navy),var(--navy-2));color:var(--green);border-radius:14px;font-family:Montserrat;font-weight:800;box-shadow:0 8px 20px rgba(7,26,51,.22)}.brand strong{display:block;font-family:Montserrat;color:var(--navy);font-size:1rem}.brand small{display:block;color:var(--muted);font-size:.7rem}.brand-logo{display:block;height:56px;width:auto;max-width:100%}
.footer-logo{height:86px}
.brand-logo-admin{height:46px}
.brand-logo-login{height:66px}
.brand-logo-install{height:96px;margin:0 auto 18px}
.brand-mark{display:block}
.site-nav{display:flex;align-items:center;gap:24px;font-size:.92rem;font-weight:600}.site-nav>a:not(.btn){padding:28px 0;position:relative}.site-nav>a.active:after,.site-nav>a:not(.btn):hover:after{content:"";position:absolute;left:0;right:0;bottom:18px;height:3px;border-radius:4px;background:var(--green)}.nav-toggle{display:none;border:0;background:transparent;font-size:1.7rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:13px 20px;font-weight:800;cursor:pointer;transition:.2s;font:inherit}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--green);color:var(--navy);box-shadow:0 10px 24px rgba(44,255,5,.25)}.btn-dark{background:var(--navy);color:#fff}.btn-outline{border:1px solid var(--line);background:#fff;color:var(--navy)}.btn-danger{background:var(--danger);color:#fff}.btn-block{width:100%}.btn-sm{padding:8px 12px;font-size:.83rem}.nav-cta{padding:11px 18px!important}
.hero{position:relative;overflow:hidden;color:#fff}.hero-photo{min-height:760px;display:flex;align-items:flex-end;padding:108px 0 0;background:var(--navy)}.hero-photo-media{position:absolute;inset:0}.hero-photo-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%;transform:scale(1.01)}.hero-photo-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,15,31,.93) 0%,rgba(5,24,46,.78) 37%,rgba(5,24,46,.32) 68%,rgba(5,24,46,.13) 100%),linear-gradient(0deg,rgba(3,15,31,.78) 0%,transparent 44%)}.hero-photo-content{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.55fr);gap:72px;align-items:end;padding-bottom:128px}.hero-copy{max-width:760px}.hero h1{color:#fff;text-shadow:0 3px 28px rgba(0,0,0,.3)}.hero h1 span{color:var(--green)}.hero p{font-size:1.18rem;color:#e4edf4;max-width:690px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero .btn-outline{background:rgba(7,26,51,.24);border-color:rgba(255,255,255,.5);color:#fff;backdrop-filter:blur(7px)}.hero .btn-outline:hover{background:#fff;color:var(--navy)}.btn-light{background:#fff;color:var(--navy)}.hero-booking-panel{background:rgba(5,22,42,.78);border:1px solid rgba(255,255,255,.26);border-radius:24px;padding:28px;box-shadow:0 24px 60px rgba(0,0,0,.28);backdrop-filter:blur(14px)}.hero-booking-panel h2{font-size:clamp(1.55rem,2.4vw,2.25rem);color:#fff;margin:.45rem 0 .8rem}.hero-booking-panel p{font-size:.98rem;color:#d8e5ee;margin-bottom:20px}.hero-panel-label{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800;color:var(--green)}.hero-panel-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(44,255,5,.16)}.hero-category-bar{position:relative;z-index:3;margin-top:-92px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.75);border-radius:22px 22px 0 0;box-shadow:0 -8px 35px rgba(0,0,0,.15);overflow:hidden}.hero-category{min-height:92px;display:flex;align-items:center;gap:15px;padding:20px 26px;color:var(--navy);transition:.2s}.hero-category+.hero-category{border-left:1px solid var(--line)}.hero-category:hover{background:#f5f9ee}.hero-category-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:rgba(44,255,5,.16);font-size:1.4rem;flex:0 0 auto}.hero-category strong,.hero-category small{display:block}.hero-category strong{font-family:Montserrat;font-size:1rem}.hero-category small{color:var(--muted);font-size:.78rem;margin-top:2px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 10px 28px rgba(10,35,65,.06)}.feature-card{transition:.2s}.feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.icon-box{width:54px;height:54px;border-radius:16px;background:rgba(44,255,5,.18);display:grid;place-items:center;color:var(--navy);font-size:1.5rem;margin-bottom:20px}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.visual-panel{min-height:460px;border-radius:30px;background:radial-gradient(circle at 80% 20%,rgba(44,255,5,.35),transparent 25%),linear-gradient(145deg,var(--navy),#184f78);position:relative;overflow:hidden;box-shadow:var(--shadow)}.visual-panel:after{content:"THE LEISURE HUB";position:absolute;left:28px;bottom:26px;font-family:Montserrat;font-weight:800;color:#fff;font-size:clamp(1.5rem,4vw,3.2rem);max-width:450px;line-height:1}.check-list{display:grid;gap:14px;margin:24px 0}.check-item{display:flex;gap:12px;align-items:flex-start}.check-item b{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:var(--navy);flex:0 0 auto}.cta-band{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;border-radius:30px;padding:48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.cta-band h2{color:#fff;margin-bottom:.5rem}.cta-band p{color:#ccdae6;margin:0}.announcement{display:flex;gap:18px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}.announcement:last-child{border-bottom:0}.date-chip{min-width:58px;text-align:center;border-radius:12px;background:var(--surface);padding:8px;color:var(--navy);font-weight:800}.date-chip small{display:block;color:var(--muted);font-weight:500}.page-hero{padding:88px 0;background:radial-gradient(circle at 85% 20%,rgba(44,255,5,.2),transparent 22%),linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff}.page-hero h1{color:#fff;font-size:clamp(2.3rem,5vw,4rem)}.page-hero p{color:#d8e4ee;max-width:760px;font-size:1.08rem}
.form-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-group{display:grid;gap:8px}.form-group.full{grid-column:1/-1}.schedule-picker{display:grid;grid-template-columns:minmax(180px,1.15fr) repeat(2,minmax(150px,1fr));gap:16px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#f7f9fc}.schedule-picker .form-group{align-content:start}.schedule-picker select{font-weight:700}label{font-weight:700;font-size:.9rem;color:var(--navy)}input,select,textarea{width:100%;border:1px solid #ccd8e4;border-radius:11px;padding:12px 14px;font:inherit;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{outline:3px solid rgba(44,255,5,.2);border-color:var(--green-dark)}textarea{min-height:110px;resize:vertical}.field-help{font-size:.8rem;color:var(--muted)}.reservation-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:28px;align-items:start}.booking-summary{position:sticky;top:110px}.rate-card{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.rate-card:last-child{border-bottom:0}.alert{width:min(1180px,calc(100% - 32px));margin:18px auto;padding:14px 18px;border-radius:12px;font-weight:600}.alert-success{background:#e5f7ef;color:#0c704c;border:1px solid #bce8d4}.alert-danger{background:#fff0f2;color:#a91f32;border:1px solid #f1c2ca}.alert-warning{background:#fff7df;color:#8a5b00;border:1px solid #f0d88d}.alert-info{background:#e9f3ff;color:#1b5b92;border:1px solid #c3ddf8}.status-pill{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:800;text-transform:capitalize}.status-success{background:#dcf7ec;color:#0d7652}.status-warning{background:#fff1c8;color:#926000}.status-danger{background:#ffe1e5;color:#a82337}.status-secondary{background:#e9eef3;color:#536273}.calendar-list{display:grid;gap:14px}.calendar-item{display:grid;grid-template-columns:150px 1fr auto;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:16px}.gallery-grid{columns:3 280px;column-gap:20px}.gallery-card{break-inside:avoid;margin-bottom:20px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#fff}.gallery-placeholder{min-height:220px;background:linear-gradient(135deg,var(--navy),#285f83);display:grid;place-items:center;color:var(--green);font-family:Montserrat;font-weight:800;font-size:1.2rem}.gallery-card .caption{padding:16px}.filter-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:30px}.filter-row button.active{background:var(--navy);color:#fff}.map-placeholder{min-height:360px;border-radius:24px;background:linear-gradient(135deg,#e8eef4,#cfdde8);display:grid;place-items:center;color:var(--navy);font-weight:800;text-align:center;padding:20px}.site-footer{background:#06172e;color:#cbd8e4;padding:64px 0 24px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}.site-footer h4{color:#fff}.site-footer a{display:block;margin:8px 0;color:#cbd8e4}.site-footer a:hover{color:var(--green)}.footer-brand{margin-bottom:18px}.footer-brand strong{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:42px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:.85rem}.footer-bottom a{margin:0}.install-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--navy-2));padding:20px}.install-card{width:min(520px,100%);background:#fff;padding:38px;border-radius:24px;box-shadow:var(--shadow)}code{background:#edf2f7;padding:2px 6px;border-radius:6px}
@media(max-width:950px){.nav-toggle{display:block}.site-nav{position:absolute;top:84px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:20px 24px;display:none;flex-direction:column;align-items:stretch;gap:0}.site-nav.open{display:flex}.site-nav>a:not(.btn){padding:12px 0}.site-nav>a.active:after,.site-nav>a:not(.btn):hover:after{display:none}.hero-photo-content,.split,.reservation-layout{grid-template-columns:1fr}.hero-photo{min-height:760px;padding-top:84px}.hero-photo-content{gap:30px;padding-bottom:132px}.hero-booking-panel{max-width:500px}.booking-summary{position:static}.grid-4{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.section{padding:62px 0}.grid-2,.grid-3,.grid-4,.form-grid,.schedule-picker{grid-template-columns:1fr}.hero-photo{min-height:720px;padding-top:70px}.hero-photo-content{padding-bottom:158px}.hero-copy h1{font-size:clamp(2.5rem,12vw,4rem)}.hero-booking-panel{display:none}.hero-category-bar{grid-template-columns:1fr;margin-top:-142px;border-radius:20px 20px 0 0}.hero-category{min-height:72px;padding:14px 18px}.hero-category+.hero-category{border-left:0;border-top:1px solid var(--line)}.cta-band{padding:32px;display:block}.cta-band .btn{margin-top:18px}.calendar-item{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:block}.gallery-grid{columns:1}.brand small{display:none}.brand-logo{height:44px}.footer-logo{height:64px}.brand-logo-login,.brand-logo-install{height:58px}.form-card{padding:22px}}

/* Home hero refresh — v1.0.4 */
.home-page .site-header{
  position:fixed;
  left:0;
  right:0;
  top:0;
  z-index:80;
  color:#fff;
  background:linear-gradient(180deg,rgba(4,17,33,.72),rgba(4,17,33,.08));
  border-bottom:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(5px);
  transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.home-page .site-header .brand strong,
.home-page .site-header .site-nav>a:not(.btn){color:#fff}
.home-page .site-header .brand small{color:rgba(255,255,255,.7)}
.home-page .site-header .brand-icon{
  color:var(--green);
  background:rgba(6,23,46,.68);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:none;
}
.home-page .site-header .nav-toggle{color:#fff}
.home-page .site-header .site-nav>a.active:after,
.home-page .site-header .site-nav>a:not(.btn):hover:after{background:var(--green)}
.home-page .site-header.scrolled{
  color:var(--navy);
  background:rgba(255,255,255,.96);
  border-bottom-color:rgba(223,231,239,.9);
  box-shadow:0 10px 30px rgba(5,25,50,.08);
  backdrop-filter:blur(18px);
}
.home-page .site-header.scrolled .brand strong,
.home-page .site-header.scrolled .site-nav>a:not(.btn){color:var(--navy)}
.home-page .site-header.scrolled .brand small{color:var(--muted)}
.home-page .site-header.scrolled .brand-icon{
  background:linear-gradient(145deg,var(--navy),var(--navy-2));
  border-color:transparent;
  box-shadow:0 8px 20px rgba(7,26,51,.18);
}
.home-page .site-header.scrolled .nav-toggle{color:var(--navy)}

.hero-photo{
  min-height:max(780px,100svh);
  display:flex;
  align-items:center;
  padding:124px 0 118px;
  isolation:isolate;
  background:#06172e;
}
.hero-photo-media{position:absolute;inset:0;z-index:-3;overflow:hidden}
.hero-photo-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 49%;
  transform:scale(1.015);
  animation:heroReveal 1.1s ease both;
}
.hero-photo-overlay{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(3,15,30,.9) 0%,rgba(3,15,30,.72) 35%,rgba(3,15,30,.18) 66%,rgba(3,15,30,.32) 100%),
    linear-gradient(0deg,rgba(3,15,30,.95) 0%,rgba(3,15,30,.24) 34%,rgba(3,15,30,.12) 72%,rgba(3,15,30,.52) 100%);
}
.hero-photo:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(circle at 55% 43%,transparent 0 24%,rgba(3,15,30,.08) 58%,rgba(3,15,30,.28) 100%);
}
.hero-photo-content{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:clamp(42px,6vw,92px);
  align-items:end;
  padding:30px 0 46px;
}
.hero-copy{max-width:760px;animation:heroContentIn .75s .12s ease both}
.hero-kicker{
  width:max-content;
  max-width:100%;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 13px;
  margin-bottom:22px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:rgba(255,255,255,.9);
  background:rgba(4,20,39,.35);
  backdrop-filter:blur(10px);
  font-size:.72rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hero-kicker-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 5px rgba(44,255,5,.15),0 0 18px rgba(44,255,5,.7);
}
.hero-brand-line{
  margin:0 0 5px;
  color:var(--green)!important;
  font-family:Montserrat,Inter,sans-serif;
  font-size:clamp(.82rem,1.1vw,1rem)!important;
  font-weight:800;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.hero-photo h1{
  max-width:780px;
  margin:0;
  color:#fff;
  font-size:clamp(3.25rem,6.8vw,6.5rem);
  line-height:.94;
  letter-spacing:-.055em;
  text-wrap:balance;
  text-shadow:0 8px 42px rgba(0,0,0,.38);
}
.hero-lead{
  max-width:660px!important;
  margin:24px 0 0!important;
  color:rgba(239,245,250,.88)!important;
  font-size:clamp(1rem,1.35vw,1.2rem)!important;
  line-height:1.75;
  text-shadow:0 2px 18px rgba(0,0,0,.28);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-actions .btn{min-height:52px;padding:14px 22px;border-radius:13px}
.hero-actions svg,
.hero-service-link svg,
.hero-card-footer svg,
.hero-location svg,
.hero-hours svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.hero-primary svg{transition:transform .2s ease}
.hero-primary:hover svg{transform:translateX(4px)}
.hero-secondary{
  color:#fff;
  background:rgba(5,22,42,.42);
  border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(12px);
}
.hero-secondary:hover{color:var(--navy);background:#fff;border-color:#fff}
.hero-assurances{
  display:flex;
  flex-wrap:wrap;
  gap:18px 28px;
  margin-top:34px;
  color:rgba(255,255,255,.72);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.025em;
}
.hero-assurances span{display:flex;align-items:center;gap:9px}
.hero-assurances b{
  color:var(--green);
  font-family:Montserrat,Inter,sans-serif;
  font-size:.67rem;
  letter-spacing:.09em;
}
.hero-reservation-card{
  overflow:hidden;
  border:1px solid rgba(255,255,255,.24);
  border-radius:26px;
  color:#fff;
  background:linear-gradient(155deg,rgba(8,29,54,.88),rgba(5,21,41,.72));
  box-shadow:0 30px 90px rgba(0,0,0,.36);
  backdrop-filter:blur(18px) saturate(125%);
  animation:heroCardIn .8s .22s ease both;
}
.hero-card-head{padding:25px 25px 22px;border-bottom:1px solid rgba(255,255,255,.12)}
.hero-card-head h2{
  margin:7px 0 14px;
  color:#fff;
  font-size:clamp(1.65rem,2.2vw,2.1rem);
  line-height:1.08;
  letter-spacing:-.035em;
}
.hero-card-eyebrow{
  color:var(--green);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hero-card-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.68);
  font-size:.73rem;
  font-weight:700;
}
.hero-card-status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 4px rgba(44,255,5,.12);
}
.hero-service-list{display:grid}
.hero-service-link{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 20px;
  gap:14px;
  align-items:center;
  min-height:82px;
  padding:14px 22px;
  border-bottom:1px solid rgba(255,255,255,.1);
  transition:background .2s ease,padding .2s ease;
}
.hero-service-link:hover{padding-left:26px;background:rgba(255,255,255,.08)}
.hero-service-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(44,255,5,.28);
  border-radius:14px;
  color:var(--green);
  background:rgba(44,255,5,.1);
}
.hero-service-icon svg{width:24px;height:24px}
.hero-service-link strong,
.hero-service-link small{display:block}
.hero-service-link strong{color:#fff;font-family:Montserrat,Inter,sans-serif;font-size:.93rem}
.hero-service-link small{margin-top:2px;color:rgba(255,255,255,.58);font-size:.73rem}
.hero-service-arrow{color:rgba(255,255,255,.5);transition:transform .2s ease,color .2s ease}
.hero-service-link:hover .hero-service-arrow{color:var(--green);transform:translateX(3px)}
.hero-card-footer{
  min-height:57px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 23px;
  color:var(--navy);
  background:var(--green);
  font-size:.82rem;
  font-weight:800;
}
.hero-card-footer svg{width:18px;height:18px;transition:transform .2s ease}
.hero-card-footer:hover svg{transform:translateX(4px)}
.hero-bottom-bar{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:4;
  border-top:1px solid rgba(255,255,255,.13);
  background:rgba(3,15,30,.57);
  backdrop-filter:blur(14px);
}
.hero-bottom-inner{
  min-height:88px;
  display:grid;
  grid-template-columns:1fr 1fr auto;
  align-items:center;
  gap:32px;
}
.hero-location,.hero-hours{display:flex;align-items:center;gap:13px;color:#fff;font-size:.82rem;font-weight:700}
.hero-location svg,.hero-hours svg{width:23px;height:23px;color:var(--green);flex:0 0 auto}
.hero-location small,.hero-hours small{
  display:block;
  margin-bottom:2px;
  color:rgba(255,255,255,.5);
  font-size:.63rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hero-scroll{
  display:flex;
  align-items:center;
  gap:13px;
  color:rgba(255,255,255,.72);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-scroll i{
  position:relative;
  width:24px;
  height:38px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:14px;
}
.hero-scroll i:after{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  width:3px;
  height:7px;
  border-radius:3px;
  background:var(--green);
  transform:translateX(-50%);
  animation:scrollCue 1.6s ease-in-out infinite;
}
@keyframes heroReveal{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1.015)}}
@keyframes heroContentIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes heroCardIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes scrollCue{0%,100%{opacity:.35;transform:translate(-50%,0)}50%{opacity:1;transform:translate(-50%,10px)}}

@media(max-width:1100px){
  .hero-photo-content{grid-template-columns:minmax(0,1fr) 355px;gap:40px}
  .hero-photo h1{font-size:clamp(3.2rem,6.5vw,5.5rem)}
  .hero-assurances{gap:14px}
}
@media(max-width:950px){
  .home-page .site-header .site-nav{
    color:var(--navy);
    background:rgba(255,255,255,.98);
    box-shadow:0 20px 38px rgba(5,25,50,.16);
  }
  .home-page .site-header .site-nav>a:not(.btn){color:var(--navy)}
  .hero-photo{min-height:max(740px,100svh);padding:122px 0 112px}
  .hero-photo-overlay{
    background:
      linear-gradient(90deg,rgba(3,15,30,.9) 0%,rgba(3,15,30,.65) 58%,rgba(3,15,30,.28) 100%),
      linear-gradient(0deg,rgba(3,15,30,.93) 0%,rgba(3,15,30,.2) 52%,rgba(3,15,30,.45) 100%);
  }
  .hero-photo-content{display:block;padding:20px 0 44px}
  .hero-copy{max-width:720px}
  .hero-reservation-card{display:none}
  .hero-bottom-inner{grid-template-columns:1fr 1fr auto;gap:18px}
}
@media(max-width:680px){
  .home-page .nav-wrap{height:74px}
  .home-page .site-nav{top:74px}
  .hero-photo{min-height:max(700px,100svh);padding:108px 0 92px;align-items:flex-end}
  .hero-photo-media img{object-position:57% center}
  .hero-photo-overlay{
    background:
      linear-gradient(90deg,rgba(3,15,30,.68),rgba(3,15,30,.22)),
      linear-gradient(0deg,rgba(3,15,30,.98) 0%,rgba(3,15,30,.72) 42%,rgba(3,15,30,.16) 75%,rgba(3,15,30,.46) 100%);
  }
  .hero-photo-content{padding:0 0 28px}
  .hero-kicker{margin-bottom:17px;font-size:.62rem;letter-spacing:.08em}
  .hero-brand-line{font-size:.72rem!important;letter-spacing:.19em}
  .hero-photo h1{font-size:clamp(3rem,15vw,4.5rem);line-height:.95}
  .hero-lead{margin-top:18px!important;font-size:.96rem!important;line-height:1.6}
  .hero-actions{margin-top:24px}
  .hero-actions .btn{width:100%}
  .hero-assurances{display:none}
  .hero-bottom-inner{min-height:76px;grid-template-columns:1fr auto;gap:12px}
  .hero-hours{display:none}
  .hero-location{font-size:.74rem}
  .hero-location svg{width:20px;height:20px}
  .hero-scroll span{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-photo-media img,.hero-copy,.hero-reservation-card,.hero-scroll i:after{animation:none}
}

/* Homepage carousel, tenant showcase, and commercial leasing — v1.0.7 */
@media(min-width:951px){
  .site-nav{gap:18px;font-size:.86rem}
  .nav-cta{margin-left:2px}
}
.hero-carousel{
  position:relative;
  min-height:max(790px,100svh);
  overflow:hidden;
  isolation:isolate;
  color:#fff;
  background:#06172e;
}
.hero-carousel-stage,.hero-slide{position:absolute;inset:0}
.hero-slide{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .7s ease,visibility .7s ease;
}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:2}
.hero-slide-media{position:absolute;inset:0;overflow:hidden;background:#06172e}
.hero-slide-media img{width:100%;height:100%;object-fit:cover}
.hero-slide-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(3,15,30,.92) 0%,rgba(3,15,30,.76) 38%,rgba(3,15,30,.24) 68%,rgba(3,15,30,.38) 100%),
    linear-gradient(0deg,rgba(3,15,30,.96) 0%,rgba(3,15,30,.25) 39%,rgba(3,15,30,.14) 72%,rgba(3,15,30,.54) 100%);
}
.hero-slide-layout{
  position:relative;
  z-index:3;
  min-height:max(790px,100svh);
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:clamp(42px,6vw,92px);
  align-items:center;
  padding-top:128px;
  padding-bottom:126px;
}
.hero-slide-copy{max-width:770px;opacity:0;transform:translateY(24px);transition:opacity .55s .16s ease,transform .55s .16s ease}
.hero-slide.is-active .hero-slide-copy{opacity:1;transform:none}
.hero-slide h1{
  max-width:800px;
  margin:0;
  color:#fff;
  font-size:clamp(3.35rem,6.7vw,6.45rem);
  line-height:.94;
  letter-spacing:-.055em;
  text-wrap:balance;
  text-shadow:0 8px 42px rgba(0,0,0,.38);
}
.hero-slide .hero-lead{max-width:690px!important}
.hero-hub-card{
  overflow:hidden;
  align-self:center;
  border:1px solid rgba(255,255,255,.24);
  border-radius:26px;
  color:#fff;
  background:linear-gradient(155deg,rgba(8,29,54,.9),rgba(5,21,41,.78));
  box-shadow:0 30px 90px rgba(0,0,0,.36);
  backdrop-filter:blur(18px) saturate(125%);
  opacity:0;
  transform:translateY(22px);
  transition:opacity .55s .24s ease,transform .55s .24s ease;
}
.hero-slide.is-active .hero-hub-card{opacity:1;transform:none}
.hero-hub-card .hero-card-head{padding:26px 25px 23px}
.hero-hub-card .hero-card-head h2{margin:7px 0 10px}
.hero-hub-card .hero-card-head p{margin:0;color:rgba(255,255,255,.65);font-size:.82rem;line-height:1.55}
.hero-carousel-footer{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:8;
  border-top:1px solid rgba(255,255,255,.14);
  background:rgba(3,15,30,.62);
  backdrop-filter:blur(15px);
}
.hero-carousel-footer-inner{
  min-height:90px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:28px;
}
.hero-carousel-footer .hero-hours{justify-self:end}
.hero-carousel-controls{display:flex;align-items:center;gap:16px}
.hero-arrow{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  color:#fff;
  background:rgba(255,255,255,.06);
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.hero-arrow:hover{color:var(--navy);background:var(--green);border-color:var(--green)}
.hero-arrow svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-dots{display:flex;align-items:center;gap:8px}
.hero-dot{
  width:26px;
  height:4px;
  padding:0;
  border:0;
  border-radius:99px;
  background:rgba(255,255,255,.32);
  cursor:pointer;
  transition:width .25s ease,background .25s ease;
}
.hero-dot.is-active{width:52px;background:var(--green)}
.hero-primary svg,.hero-carousel .hero-service-link svg,.hero-carousel-footer svg{
  width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round
}
.destination-heading{max-width:850px}.destination-grid{margin-top:38px}.destination-intro{background:#fff}
.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}
.section-heading-row h2{margin-bottom:.6rem}.section-heading-row p{margin:0;max-width:690px}
.tenant-grid,.tenant-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tenant-card,.tenant-directory-card{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(7,26,51,.08);transition:transform .22s ease,box-shadow .22s ease}
.tenant-card:hover,.tenant-directory-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.tenant-card-image,.tenant-directory-image{position:relative;height:225px;overflow:hidden;background:linear-gradient(140deg,var(--navy),#245d83)}
.tenant-card-image img,.tenant-directory-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.tenant-card:hover img,.tenant-directory-card:hover img{transform:scale(1.035)}
.tenant-image-placeholder{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 75% 20%,rgba(44,255,5,.35),transparent 30%),linear-gradient(145deg,var(--navy),#1d557c)}
.tenant-image-placeholder span{font-family:Montserrat,Inter,sans-serif;font-weight:800;font-size:5rem;color:rgba(255,255,255,.9)}
.tenant-category{position:absolute;left:16px;top:16px;padding:7px 11px;border-radius:999px;color:var(--navy);background:var(--green);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.tenant-card-body,.tenant-directory-body{padding:24px}.tenant-card-body h3,.tenant-directory-body h2{margin-bottom:7px}.tenant-location{color:var(--green-dark);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.leasing-empty-state{grid-column:1/-1;min-height:260px;display:flex;align-items:center;justify-content:space-between;gap:36px;padding:42px;border:1px dashed #b9c8d6;border-radius:26px;background:linear-gradient(120deg,#fff,#f5f9fc)}
.leasing-empty-state>div{max-width:690px}.leasing-empty-state h3{font-size:clamp(1.6rem,3vw,2.35rem)}
.venue-visual-panel{background-image:linear-gradient(0deg,rgba(7,26,51,.62),rgba(7,26,51,.12)),url('../img/leisure-hub-hero.jpg');background-size:cover;background-position:center}
.inline-actions,.cta-actions{display:flex;gap:12px;flex-wrap:wrap}.cta-actions .btn-light{box-shadow:none}.cta-kicker{display:block;margin-bottom:8px;color:var(--green);font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.page-hero-stores{background:linear-gradient(90deg,rgba(3,15,30,.9),rgba(3,15,30,.45)),url('../img/leisure-hub-hero.jpg') center 55%/cover}
.page-hero-leasing{padding:118px 0;background:linear-gradient(90deg,rgba(3,15,30,.93),rgba(3,15,30,.48)),url('../img/leisure-hub-hero.jpg') center 50%/cover}
.leasing-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:center}.leasing-hero-layout h1{max-width:800px}.page-hero-leasing .btn-outline{color:#fff;background:rgba(5,22,42,.35);border-color:rgba(255,255,255,.38)}
.leasing-hero-card{padding:30px;border:1px solid rgba(255,255,255,.24);border-radius:24px;background:rgba(6,23,46,.72);backdrop-filter:blur(14px);box-shadow:0 24px 60px rgba(0,0,0,.24)}
.leasing-hero-card>span{display:block;margin-bottom:15px;color:var(--green);font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.leasing-tags{display:flex;flex-wrap:wrap;gap:10px}.leasing-tags b{padding:9px 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#fff;background:rgba(255,255,255,.07);font-size:.78rem}
.leasing-heading{max-width:850px}.leasing-benefits{margin-top:38px}.leasing-benefits .card{padding:24px}.leasing-benefits .card h3{font-size:1.08rem}
.leasing-form-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}.leasing-contact-card{display:grid;gap:5px;margin-top:26px;padding:23px;border-left:4px solid var(--green);border-radius:0 16px 16px 0;background:#fff;box-shadow:0 12px 30px rgba(7,26,51,.07)}.leasing-contact-card small{color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.leasing-contact-card strong{font-family:Montserrat;color:var(--navy);font-size:1.25rem}.leasing-contact-card a{color:var(--green-dark);font-weight:700}.leasing-contact-card span{color:var(--muted);font-size:.86rem}
.store-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px}.store-filter{padding:9px 15px;border:1px solid var(--line);border-radius:999px;color:var(--navy);background:#fff;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.store-filter:hover,.store-filter.is-active{border-color:var(--navy);color:#fff;background:var(--navy)}
.tenant-directory-card{display:flex;flex-direction:column}.tenant-directory-image{height:250px}.tenant-directory-body{display:flex;flex:1;flex-direction:column}.tenant-directory-body h2{font-size:1.5rem}.tenant-directory-body .tenant-location{display:grid;gap:2px}.tenant-directory-body .tenant-location span{color:var(--muted);font-size:.62rem}.tenant-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:18px}.tenant-links a{padding:8px 11px;border:1px solid var(--line);border-radius:9px;color:var(--navy);font-size:.76rem;font-weight:800}.tenant-links a:hover{border-color:var(--green);background:rgba(44,255,5,.12)}.tenant-directory-empty{margin-top:5px}

@media(max-width:1120px){
  .hero-slide-layout{grid-template-columns:minmax(0,1fr) 350px;gap:42px}
  .hero-slide h1{font-size:clamp(3.2rem,6.3vw,5.55rem)}
  .tenant-grid,.tenant-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:950px){
  .hero-carousel{min-height:max(760px,100svh)}
  .hero-slide-layout{min-height:max(760px,100svh);display:flex;align-items:center;padding-top:120px;padding-bottom:126px}
  .hero-slide-copy{max-width:760px}
  .hero-hub-card{display:none}
  .hero-slide-overlay{background:linear-gradient(90deg,rgba(3,15,30,.91),rgba(3,15,30,.56) 68%,rgba(3,15,30,.3)),linear-gradient(0deg,rgba(3,15,30,.95),rgba(3,15,30,.15) 62%,rgba(3,15,30,.48))}
  .hero-carousel-footer-inner{grid-template-columns:1fr auto}.hero-carousel-footer .hero-hours{display:none}
  .leasing-hero-layout,.leasing-form-layout{grid-template-columns:1fr}.leasing-hero-card{max-width:580px}.leasing-form-layout{gap:32px}
}
@media(max-width:680px){
  .hero-carousel{min-height:max(720px,100svh)}
  .hero-slide-layout{min-height:max(720px,100svh);align-items:flex-end;padding-top:104px;padding-bottom:112px}
  .hero-slide-media img{object-position:57% center!important}
  .hero-slide-overlay{background:linear-gradient(90deg,rgba(3,15,30,.67),rgba(3,15,30,.24)),linear-gradient(0deg,rgba(3,15,30,.98) 0%,rgba(3,15,30,.76) 45%,rgba(3,15,30,.17) 78%,rgba(3,15,30,.46) 100%)}
  .hero-slide h1{font-size:clamp(3rem,14.5vw,4.35rem)}
  .hero-slide .hero-lead{font-size:.94rem!important;line-height:1.6}
  .hero-carousel-footer-inner{min-height:76px;display:flex;justify-content:center}.hero-carousel-footer .hero-location{display:none}.hero-carousel-controls{gap:12px}.hero-arrow{width:38px;height:38px}.hero-dot{width:18px}.hero-dot.is-active{width:38px}
  .section-heading-row{display:block}.section-heading-row .btn{margin-top:16px}
  .tenant-grid,.tenant-directory-grid{grid-template-columns:1fr}.tenant-card-image,.tenant-directory-image{height:220px}
  .leasing-empty-state{display:block;padding:28px}.leasing-empty-state .btn{margin-top:18px}
  .inline-actions,.cta-actions{display:grid}.inline-actions .btn,.cta-actions .btn{width:100%;margin-top:0}
  .page-hero-leasing{padding:90px 0}.leasing-hero-card{padding:22px}.leasing-benefits{grid-template-columns:1fr}
  .store-filters{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.store-filter{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  .hero-slide,.hero-slide-copy,.hero-hub-card,.tenant-card,.tenant-directory-card,.tenant-card-image img,.tenant-directory-image img{transition:none}
}

/* Automatic reservation pricing introduced in v1.0.24 */
.pricing-addons{display:grid;gap:10px}.checkbox-option{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;font-weight:600}.checkbox-option input{width:auto;margin-top:3px}.checkbox-option input:disabled+span{color:var(--green-dark)}.pricing-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.pricing-summary>div{padding:12px;border-radius:11px;background:#fff}.pricing-summary span,.pricing-summary strong{display:block}.pricing-summary span{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.pricing-summary strong{margin-top:4px;color:var(--navy);line-height:1.35}.pricing-summary .pricing-total{background:var(--navy)}.pricing-summary .pricing-total span{color:rgba(255,255,255,.7)}.pricing-summary .pricing-total strong{color:var(--green);font-size:1.2rem}.pricing-summary>.field-help{grid-column:1/-1;margin:0}.pricing-summary.pricing-error{border-color:#e5a7a7;background:#fff5f5}.pricing-summary.pricing-error .pricing-total{background:#7c2020}@media(max-width:760px){.pricing-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-summary>.field-help{grid-column:1/-1}}@media(max-width:480px){.pricing-summary{grid-template-columns:1fr}.pricing-summary>.field-help{grid-column:auto}}

.public-inclusions-list{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:7px}.public-inclusions-list li{position:relative;padding-left:21px;color:var(--navy);font-weight:700;line-height:1.45}.public-inclusions-list li:before{content:'✓';position:absolute;left:0;color:var(--green-dark);font-weight:900}

/* Simplified three-step public reservation form introduced in v1.0.29 */
.reservation-form-section{background:linear-gradient(180deg,#f5f8fb 0%,#fff 100%)}
.reservation-form-container{width:min(920px,calc(100% - 32px))}
.reservation-step-card{padding:38px}
.reservation-form-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:28px}
.reservation-form-heading h2{font-size:clamp(1.8rem,4vw,2.7rem);margin-bottom:0}
.reservation-form-heading p{max-width:320px;margin:0;color:var(--muted);text-align:right}
.reservation-form-alert{width:100%;margin:10px 0}
.reservation-step-form{display:grid;gap:28px;scroll-margin-top:110px}
.reservation-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:7px;border:1px solid var(--line);border-radius:16px;background:#f7f9fc}
.reservation-step-indicator{display:flex;align-items:center;gap:10px;border:0;border-radius:12px;padding:11px 13px;background:transparent;color:var(--muted);font:inherit;text-align:left;cursor:default}
.reservation-step-indicator span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#e5ebf1;color:var(--navy);font-weight:900;flex:0 0 auto}
.reservation-step-indicator strong{font-size:.84rem;line-height:1.2}
.reservation-step-indicator.is-active{background:#fff;color:var(--navy);box-shadow:0 6px 18px rgba(9,31,54,.08)}
.reservation-step-indicator.is-active span{background:var(--navy);color:var(--green)}
.reservation-step-indicator.is-complete{cursor:pointer;color:var(--navy)}
.reservation-step-indicator.is-complete span{background:var(--green);color:var(--navy)}
.reservation-step-panel{display:grid;gap:24px;animation:reservationStepIn .24s ease}
.reservation-step-title{padding-bottom:18px;border-bottom:1px solid var(--line)}
.reservation-step-title>span{display:block;margin-bottom:5px;color:var(--green-dark);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.reservation-step-title h3{font-size:1.55rem;margin-bottom:5px}
.reservation-step-title p{margin:0;color:var(--muted)}
.schedule-picker-duration{grid-template-columns:minmax(180px,1.2fr) repeat(2,minmax(150px,1fr))}
.package-preview{display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:2px;align-items:center;padding:15px 17px;border:1px solid #cfe2a9;border-radius:14px;background:rgba(44,255,5,.08)}
.package-preview>span{grid-row:1/3;color:var(--green-dark);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.package-preview strong{color:var(--navy);font-size:1.05rem}
.package-preview p{margin:0;color:var(--muted);font-size:.82rem}
.package-preview.pricing-error{border-color:#e5a7a7;background:#fff5f5}
.optional-label{color:var(--muted);font-size:.75rem;font-weight:600}
.addon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.checkbox-option span{display:grid;gap:2px}.checkbox-option span strong{color:var(--navy)}.checkbox-option span small{color:var(--muted);font-weight:600}
.reservation-step-actions{display:flex;justify-content:space-between;gap:12px;padding-top:6px}
.payment-required-notice{display:flex;align-items:flex-start;gap:13px;margin:0 0 16px;padding:16px 18px;border:2px solid #d99b00;border-radius:14px;background:#fff7df;color:#6e4700;box-shadow:0 4px 14px rgba(138,91,0,.08)}
.payment-required-icon{flex:0 0 30px;width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#d99b00;color:#fff;font-weight:900;font-size:1.05rem;line-height:1}
.payment-required-notice strong{display:block;color:#6e4700;font-size:.93rem;text-transform:uppercase;letter-spacing:.045em;margin:1px 0 4px}
.payment-required-notice p{margin:0;color:#6e4700;font-weight:700;line-height:1.45}
.payment-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.payment-choice{position:relative;display:block;cursor:pointer}
.payment-choice input{position:absolute;opacity:0;pointer-events:none}
.payment-choice span{height:100%;display:grid;align-content:start;gap:5px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.payment-choice strong{color:var(--navy)}.payment-choice small{color:var(--muted);line-height:1.45}
.payment-choice input:checked+span{border-color:var(--green-dark);background:rgba(44,255,5,.08);box-shadow:0 0 0 3px rgba(44,255,5,.14)}
.payment-choice input:focus-visible+span{outline:3px solid rgba(44,255,5,.25);outline-offset:2px}
.payment-fields{padding:18px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}
.full-payment-note{padding:13px 15px;border-radius:11px;background:#e8f7d1;color:#315a00;font-weight:700}
.reservation-review-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}
.reservation-review-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px 22px;background:var(--navy)}
.reservation-review-heading .eyebrow{margin-bottom:5px}.reservation-review-heading h3{margin:0;color:#fff}.reservation-review-heading>strong{color:var(--green);font-family:Montserrat,Inter,sans-serif;font-size:1.55rem;white-space:nowrap}
.reservation-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:8px 22px}
.reservation-review-grid>div{padding:13px 0;border-bottom:1px solid var(--line)}
.reservation-review-grid>div:nth-child(odd){padding-right:18px}.reservation-review-grid>div:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
.reservation-review-grid span,.review-inclusions>span{display:block;color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.reservation-review-grid strong{display:block;margin-top:3px;color:var(--navy);line-height:1.4}
.reservation-charge-breakdown{margin:18px 22px 8px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.reservation-charge-heading{padding:13px 15px;border-bottom:1px solid var(--line);background:#eef3f7}.reservation-charge-heading span{display:block;color:var(--navy);font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.reservation-charge-heading small{display:block;margin-top:3px;color:var(--muted);font-weight:600}
.reservation-charge-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:13px 15px;background:#fff}.reservation-charge-row+.reservation-charge-row{border-top:1px solid var(--line)}.reservation-charge-row>div{min-width:0}.reservation-charge-row>div>strong{display:block;color:var(--navy);line-height:1.35}.reservation-charge-row>div>small{display:block;margin-top:3px;color:var(--muted);font-weight:600;line-height:1.4}.reservation-charge-row>strong{color:var(--navy);font-family:Montserrat,Inter,sans-serif;white-space:nowrap}.reservation-charge-total{background:rgba(44,255,5,.09)}.reservation-charge-total>div>strong,.reservation-charge-total>strong{color:var(--green-dark)}
.review-inclusions{padding:17px 22px 21px}.review-inclusions ul{margin:9px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;list-style:none}.review-inclusions li{position:relative;padding-left:20px;color:var(--navy);font-size:.86rem;font-weight:700}.review-inclusions li:before{content:'✓';position:absolute;left:0;color:var(--green-dark);font-weight:900}
.terms-check label{display:flex;gap:10px;align-items:flex-start;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}.terms-check input{width:auto;margin-top:5px}
@keyframes reservationStepIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:760px){
  .reservation-step-card{padding:26px}.reservation-form-heading{display:block}.reservation-form-heading p{margin-top:8px;text-align:left}.reservation-steps{gap:5px}.reservation-step-indicator{justify-content:center;padding:9px}.reservation-step-indicator strong{display:none}.schedule-picker-duration,.addon-grid,.payment-choice-grid,.reservation-review-grid,.review-inclusions ul{grid-template-columns:1fr}.reservation-review-grid>div:nth-child(odd),.reservation-review-grid>div:nth-child(even){padding:12px 0;border-left:0}.reservation-review-heading{align-items:flex-start}.reservation-review-heading>strong{font-size:1.25rem}.reservation-step-actions .btn{flex:1}
}
@media(max-width:480px){.reservation-step-card{padding:20px}.reservation-review-heading{display:block}.reservation-review-heading>strong{display:block;margin-top:10px}.reservation-charge-breakdown{margin:14px 14px 6px}.reservation-charge-row{gap:10px;padding:12px}.reservation-charge-row>strong{font-size:.9rem}.reservation-step-actions{display:grid;grid-template-columns:1fr}.reservation-step-actions span{display:none}.reservation-step-actions .btn{width:100%}}
.package-preview>b{grid-column:3;grid-row:1/3;align-self:center;color:var(--navy);font-family:Montserrat,Inter,sans-serif;font-size:1.22rem;white-space:nowrap}.package-preview>p{grid-column:2}
@media(max-width:620px){.package-preview{grid-template-columns:1fr}.package-preview>span,.package-preview>strong,.package-preview>b,.package-preview>p{grid-column:1;grid-row:auto}.package-preview>b{margin-top:5px}}
[hidden]{display:none!important}


/* v1.0.51 pending website requests do not hold calendar slots */
.calendar-booking-hold-note{display:block;margin-top:2px;font-size:.67rem;font-weight:800;line-height:1.15;opacity:.78;text-transform:uppercase;letter-spacing:.03em}

/* Reservation approval notice shown immediately before final submission. */
.reservation-approval-notice{margin:18px 0 14px;padding:16px 18px;border:1px solid #f0d88d;border-left:5px solid #d29a00;border-radius:14px;background:#fff8e6;color:#6f4b00}
.reservation-approval-notice strong{display:block;margin-bottom:5px;color:#5f3f00;font-size:1rem}
.reservation-approval-notice p{margin:0;line-height:1.55;font-size:.9rem}
@media (max-width:640px){.reservation-approval-notice{padding:14px 15px}.reservation-approval-notice p{font-size:.86rem}}

/* Public reservation request notice modal */
.reserve-notice-modal[hidden]{display:none!important}
.reserve-notice-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px}
.reserve-notice-backdrop{position:absolute;inset:0;background:rgba(13,22,34,.62);backdrop-filter:blur(3px)}
.reserve-notice-dialog{position:relative;z-index:1;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:24px;padding:32px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.reserve-notice-dialog h2{margin:4px 0 12px;font-size:clamp(1.55rem,4vw,2.15rem);line-height:1.08}
.reserve-notice-dialog>p:not(.eyebrow){margin:0;color:var(--muted,#5c6570);line-height:1.65}
.reserve-notice-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:18px;background:#fff3cd;color:#7a5700;font-weight:800;font-size:1.65rem;border:1px solid #f1d98a}
.reserve-notice-close{position:absolute;top:14px;right:16px;width:38px;height:38px;border:0;border-radius:50%;background:#f2f4f7;color:#26313d;font-size:1.65rem;line-height:1;cursor:pointer}
.reserve-notice-close:hover{background:#e7ebef}
.reserve-notice-points{display:grid;gap:8px;margin:20px 0;padding:16px 18px;border-radius:14px;background:#f7f9fb;color:#34404d;font-size:.95rem}
.reserve-notice-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;flex-wrap:wrap}
body.reserve-notice-open{overflow:hidden}
@media(max-width:560px){.reserve-notice-modal{padding:12px}.reserve-notice-dialog{padding:26px 20px 20px;border-radius:20px}.reserve-notice-actions{display:grid;grid-template-columns:1fr}.reserve-notice-actions .btn{width:100%}}
/* Client reservation tracking: make the current reservation status instantly visible. */
.tracking-status-hero{margin:-2px -2px 0;padding:24px 26px;border-radius:20px;border:2px solid currentColor;text-align:center;display:grid;justify-items:center;gap:5px}
.tracking-status-label{font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;opacity:.78}
.tracking-status-value{font-family:Montserrat,sans-serif;font-size:clamp(2rem,7vw,3.35rem);line-height:1;font-weight:900;letter-spacing:.03em;text-transform:uppercase;overflow-wrap:anywhere}
.tracking-status-reference{margin-top:4px;font-size:.9rem;font-weight:800;opacity:.8}
.tracking-status-hero.status-success{background:#e6f8ef;color:#087247;border-color:#79c9a7}
.tracking-status-hero.status-warning{background:#fff5d6;color:#805200;border-color:#e4c45b}
.tracking-status-hero.status-danger{background:#ffe8eb;color:#a51d33;border-color:#e59aa5}
.tracking-status-hero.status-secondary{background:#edf2f6;color:#455668;border-color:#bac6d1}
@media(max-width:600px){.tracking-status-hero{padding:20px 14px}.tracking-status-value{font-size:clamp(1.9rem,11vw,2.75rem)}}

/* v1.0.60 public availability calendar */
.public-calendar-section{padding-top:42px}.public-calendar-toolbar{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:18px;margin-bottom:14px}.public-calendar-title{text-align:center}.public-calendar-title span{display:block;color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.public-calendar-title h2{margin:2px 0 0;font-size:clamp(1.8rem,4vw,2.8rem)}.calendar-nav-btn{width:52px;height:52px;border:1px solid var(--line);border-radius:16px;background:#fff;display:grid;place-items:center;font-size:1.4rem;font-weight:900;color:var(--navy);box-shadow:0 6px 18px rgba(6,23,46,.06)}.calendar-nav-btn:hover{border-color:var(--green-dark);transform:translateY(-1px)}.public-calendar-legend{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:0 0 20px;color:var(--muted);font-size:.86rem;font-weight:700}.public-calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.calendar-legend-dot.reserved{background:#cf334f}.calendar-legend-dot.available{background:#78b83a}.public-calendar-shell{border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.public-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--navy);color:#fff}.public-calendar-weekdays div{text-align:center;padding:12px 8px;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.public-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.public-calendar-day{min-height:154px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;position:relative;display:flex;flex-direction:column;gap:8px}.public-calendar-day:nth-child(7n){border-right:0}.public-calendar-day.other-month{background:#f7f9fb;color:#9ba8b6}.public-calendar-day.past{background:#fafbfc}.public-calendar-day.today{box-shadow:inset 0 0 0 2px var(--green-dark)}.public-calendar-day.has-reservation{background:linear-gradient(180deg,#fff 0%,#fff8f9 100%)}.public-calendar-date-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.public-calendar-date-number{font-size:1rem;font-weight:900;color:var(--navy)}.other-month .public-calendar-date-number{color:#9ba8b6}.public-calendar-today-label{font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:var(--green);color:var(--navy);border-radius:999px;padding:3px 7px}.public-calendar-reservations{display:grid;gap:5px}.public-calendar-reserved-slot{display:grid;gap:1px;border-left:3px solid #cf334f;background:#fff0f3;border-radius:8px;padding:6px 7px;color:#941f34;font-size:.68rem;line-height:1.25}.public-calendar-reserved-slot strong{text-transform:uppercase;font-size:.62rem;letter-spacing:.04em}.public-calendar-reserved-slot:hover{background:#ffe3e9}.public-calendar-more{font-size:.67rem;font-weight:800;color:#941f34;padding-left:7px}.public-calendar-open{font-size:.7rem;font-weight:800;color:#4a7b24;background:#eef8e5;border-radius:8px;padding:7px}.public-calendar-day-action{margin-top:auto;font-size:.66rem;font-weight:800;color:var(--navy);text-decoration:underline;text-underline-offset:2px}.public-calendar-day-action:hover{color:var(--green-dark)}.public-calendar-privacy-note{margin-top:20px;display:flex;gap:10px;align-items:flex-start;padding:16px 18px;border:1px solid #c9dceb;border-radius:14px;background:#f0f7fc;color:#294b67;font-size:.88rem}.public-calendar-privacy-note strong{white-space:nowrap;color:var(--navy)}.public-day-schedule{margin-top:34px;padding:28px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow);scroll-margin-top:100px}.public-day-schedule-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.public-day-schedule-heading h2{margin:4px 0 0}.public-day-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.public-day-slot{display:grid;gap:5px;padding:16px;border:1px solid #efc5cd;border-radius:14px;background:#fff6f8}.public-day-slot-status{font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#aa2941}.public-day-slot strong{font-size:1.05rem;color:var(--navy)}.public-day-slot>span:last-child{font-size:.78rem;color:var(--muted)}.public-day-open-card{padding:20px;border-radius:14px;background:#eef8e5;border:1px solid #d4e9c2;color:#37631b}.public-day-open-card p{margin:6px 0 0}.public-day-note{margin:14px 0 0;font-size:.83rem}
@media(max-width:900px){.public-calendar-day{min-height:132px;padding:8px}.public-calendar-reserved-slot span{font-size:.61rem}.public-calendar-day-action{font-size:.61rem}}
@media(max-width:680px){.public-calendar-section{padding-top:28px}.public-calendar-shell{overflow-x:auto;border-radius:18px}.public-calendar-weekdays,.public-calendar-grid{min-width:760px}.public-calendar-day{min-height:126px}.public-calendar-toolbar{grid-template-columns:46px 1fr 46px}.calendar-nav-btn{width:46px;height:46px;border-radius:14px}.public-calendar-legend{justify-content:flex-start;gap:14px}.public-calendar-privacy-note{display:block}.public-calendar-privacy-note strong{display:block;margin-bottom:5px}.public-day-schedule{padding:20px}.public-day-schedule-heading{align-items:flex-start;flex-direction:column}.public-day-schedule-heading .btn{width:100%}}

/* v1.0.63 client-first public homepage */
.home-client-first main{overflow:hidden}.home-hero{position:relative;min-height:720px;color:#fff;background:var(--navy);display:flex;align-items:center}.home-hero-media,.home-hero-overlay{position:absolute;inset:0}.home-hero-media img{width:100%;height:100%;object-fit:cover}.home-hero-overlay{background:linear-gradient(90deg,rgba(3,15,30,.96) 0%,rgba(3,15,30,.82) 48%,rgba(3,15,30,.42) 78%,rgba(3,15,30,.3) 100%),linear-gradient(0deg,rgba(3,15,30,.6),rgba(3,15,30,.05))}.home-hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:clamp(42px,7vw,92px);align-items:center;padding-top:118px;padding-bottom:80px}.home-hero-copy{max-width:780px}.home-hero-kicker{display:inline-flex;margin-bottom:13px;padding:7px 11px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.08);font-size:.67rem;font-weight:900;letter-spacing:.14em}.home-hero-eyebrow{margin:0 0 12px;color:var(--green);font-weight:800;letter-spacing:.04em}.home-hero h1{margin:0;color:#fff;font-size:clamp(3rem,6.2vw,5.75rem);line-height:.98;letter-spacing:-.055em;text-wrap:balance;text-shadow:0 10px 40px rgba(0,0,0,.28)}.home-hero-lead{max-width:690px;margin:22px 0 0;color:rgba(255,255,255,.82);font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.65}.home-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.home-main-cta{min-width:165px}.home-calendar-cta{border:1px solid rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.08)}.home-calendar-cta:hover{background:#fff;color:var(--navy)}.home-approval-note{max-width:680px;margin:20px 0 0;padding:12px 14px;border-left:3px solid var(--green);border-radius:0 10px 10px 0;color:rgba(255,255,255,.75);background:rgba(4,20,39,.5);font-size:.82rem;line-height:1.5}.home-approval-note strong{color:#fff}.home-start-card{padding:28px;border:1px solid rgba(255,255,255,.2);border-radius:26px;background:rgba(5,22,42,.82);box-shadow:0 28px 80px rgba(0,0,0,.28);backdrop-filter:blur(16px)}.home-start-card h2{margin:7px 0 20px;color:#fff;font-size:1.55rem}.home-start-links{display:grid;gap:9px}.home-start-links>a{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:15px;color:#fff;background:rgba(255,255,255,.05);transition:.2s ease}.home-start-links>a:hover{transform:translateX(3px);border-color:rgba(44,255,5,.6);background:rgba(44,255,5,.1)}.home-start-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.1);font-size:1.1rem}.home-start-links strong,.home-start-links small{display:block}.home-start-links small{margin-top:3px;color:rgba(255,255,255,.58);font-size:.72rem}.home-start-links b{color:var(--green);font-size:1.15rem}.home-quick-strip{position:relative;z-index:4;margin-top:-26px}.home-quick-strip-inner{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 18px 46px rgba(7,26,51,.13)}.home-quick-strip a{display:flex;flex-direction:column;gap:3px;padding:21px 26px;border-right:1px solid var(--line);color:var(--navy)}.home-quick-strip a:last-child{border-right:0}.home-quick-strip a:hover{background:#f6faf2}.home-quick-strip strong{font-family:Montserrat,Inter,sans-serif;font-size:.94rem}.home-quick-strip span{color:var(--muted);font-size:.76rem}.home-section-heading{max-width:880px;margin-bottom:34px}.home-section-heading.narrow{margin-left:auto;margin-right:auto}.home-section-heading h2{margin:.35rem 0 .7rem;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05}.home-section-heading p{margin:0;line-height:1.7}.home-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.home-package-card{position:relative;display:flex;flex-direction:column;padding:28px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 12px 35px rgba(7,26,51,.07);transition:.22s ease}.home-package-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.home-package-card.is-featured{border:2px solid var(--green-dark);box-shadow:0 18px 46px rgba(81,129,31,.13)}.home-package-badge{position:absolute;top:0;right:24px;transform:translateY(-50%);padding:7px 11px;border-radius:999px;color:var(--navy);background:var(--green);font-size:.64rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.home-package-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-package-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#f1f6eb;font-size:1.35rem}.home-package-capacity{padding:6px 9px;border-radius:999px;color:#486c25;background:#eef7e7;font-size:.68rem;font-weight:900}.home-package-card h3{margin:18px 0 9px;font-size:1.45rem}.home-package-card>p{min-height:72px;margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}.home-package-price{display:grid;gap:3px;margin:20px 0 16px;padding:16px;border-radius:16px;background:#f7f9fb}.home-package-price small{color:var(--muted);font-size:.72rem;font-weight:700}.home-rate-type{display:inline-block;color:var(--green-dark);font-weight:900;text-transform:uppercase;letter-spacing:.04em}.home-package-price strong{font-family:Montserrat,Inter,sans-serif;color:var(--navy);font-size:1.55rem}.home-package-price strong span{font-size:.73rem;color:var(--muted);font-weight:700}.home-package-card ul{display:grid;gap:8px;margin:0 0 22px;padding:0;list-style:none;color:#475767;font-size:.82rem}.home-package-card li:before{content:'✓';margin-right:8px;color:var(--green-dark);font-weight:900}.home-package-card .btn{margin-top:auto}.home-rates-footnote{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:24px;color:var(--muted);font-size:.85rem}.home-rates-footnote a{color:var(--green-dark);font-weight:800}.home-two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:clamp(40px,7vw,90px);align-items:center}.home-availability-copy h2{margin:.35rem 0 .7rem;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05}.home-availability-copy>p{max-width:680px;line-height:1.7}.home-calendar-explainer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:24px 0}.home-calendar-explainer>div{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.home-calendar-explainer i{margin-top:5px;flex:0 0 auto}.home-calendar-explainer strong,.home-calendar-explainer small{display:block}.home-calendar-explainer small{margin-top:3px;color:var(--muted);font-size:.71rem}.home-upcoming-card{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow)}.home-upcoming-head{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line);background:var(--navy);color:#fff}.home-upcoming-head span{font-weight:800}.home-upcoming-head a{color:var(--green);font-size:.75rem;font-weight:800}.home-upcoming-list{display:grid}.home-upcoming-item{display:flex;gap:12px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line)}.home-upcoming-dot{width:10px;height:10px;border-radius:50%;background:#cf334f;box-shadow:0 0 0 4px #fff0f3}.home-upcoming-item strong,.home-upcoming-item small{display:block}.home-upcoming-item strong{color:#a0293e;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.home-upcoming-item small{margin-top:3px;color:var(--navy);font-size:.8rem;font-weight:700}.home-upcoming-empty{display:grid;gap:5px;padding:28px 20px}.home-upcoming-empty span{color:var(--muted);font-size:.8rem}.home-privacy-mini{margin:0;padding:12px 20px;color:var(--muted);background:#f7f9fb;font-size:.7rem}.home-process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.home-process-grid article{position:relative;padding:25px 22px;border:1px solid var(--line);border-radius:20px;background:#fff}.home-process-grid article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:var(--navy);background:var(--green);font-family:Montserrat,Inter,sans-serif;font-weight:900}.home-process-grid h3{margin:17px 0 8px;font-size:1.08rem}.home-process-grid p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.6}.home-highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.home-highlight-grid article{display:flex;gap:16px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}.home-highlight-grid article>span{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:#f1f6eb;font-size:1.25rem}.home-highlight-grid h3{margin:0 0 6px;font-size:1rem}.home-highlight-grid p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.55}.home-track-card{display:flex;justify-content:space-between;align-items:center;gap:34px;padding:36px 40px;border-radius:26px;color:#fff;background:linear-gradient(120deg,var(--navy),#163f63);box-shadow:0 22px 55px rgba(7,26,51,.18)}.home-track-card .eyebrow{color:var(--green)}.home-track-card h2{margin:.35rem 0 .7rem;color:#fff;font-size:clamp(1.9rem,3vw,2.7rem)}.home-track-card p{max-width:760px;margin:0;color:rgba(255,255,255,.74);line-height:1.6}.home-track-card p strong{color:#fff}.home-track-card>.btn{flex:0 0 auto}.home-announcement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.home-announcement-card{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}.home-announcement-card>span{color:var(--green-dark);font-size:.7rem;font-weight:900;text-transform:uppercase}.home-announcement-card h3{margin:7px 0;font-size:1.05rem}.home-announcement-card p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.6}.home-final-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:38px 42px;border-radius:26px;color:#fff;background:#071a33}.home-final-cta>div:first-child>span{color:var(--green);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.home-final-cta h2{max-width:720px;margin:6px 0 0;color:#fff;font-size:clamp(1.6rem,3vw,2.45rem)}
@media(max-width:1020px){.home-hero-layout{grid-template-columns:1fr}.home-start-card{max-width:650px}.home-package-grid{grid-template-columns:1fr 1fr}.home-package-card:last-child{grid-column:1/-1}.home-two-column{grid-template-columns:1fr}.home-process-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.home-hero{min-height:auto}.home-hero-layout{padding-top:112px;padding-bottom:58px}.home-hero h1{font-size:clamp(2.7rem,12vw,4.35rem)}.home-start-card{padding:20px}.home-quick-strip{margin-top:0}.home-quick-strip-inner{grid-template-columns:1fr;border-radius:0}.home-quick-strip a{border-right:0;border-bottom:1px solid var(--line)}.home-quick-strip a:last-child{border-bottom:0}.home-package-grid{grid-template-columns:1fr}.home-package-card:last-child{grid-column:auto}.home-package-card>p{min-height:0}.home-calendar-explainer{grid-template-columns:1fr}.home-process-grid,.home-highlight-grid,.home-announcement-grid{grid-template-columns:1fr}.home-track-card,.home-final-cta{align-items:flex-start;flex-direction:column;padding:28px 24px}.home-track-card>.btn,.home-final-cta .btn{width:100%}.home-final-cta .cta-actions{width:100%;display:grid}.home-hero-actions{display:grid}.home-hero-actions .btn{width:100%}.home-rates-footnote{justify-content:flex-start}}

/* Global success confirmation modal - v1.0.67 */
.action-success-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px}.action-success-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:rgba(4,20,40,.62);cursor:default}.action-success-dialog{position:relative;z-index:1;width:min(470px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 26px 70px rgba(5,25,50,.28);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}.action-success-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#dcf7ec;color:var(--success);font-size:1.75rem;font-weight:900}.action-success-copy{min-width:0}.action-success-kicker{display:block;margin-bottom:5px;color:var(--success);font-size:.75rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.action-success-copy h2{margin:0 0 8px;color:var(--navy);font-size:1.55rem}.action-success-copy p{margin:0;color:var(--muted);line-height:1.6}.action-success-copy p+p{margin-top:8px}.action-success-ok{grid-column:1/-1;justify-self:end;min-width:110px}.action-success-modal-open{overflow:hidden}@media(max-width:520px){.action-success-modal{padding:14px}.action-success-dialog{grid-template-columns:1fr;padding:24px}.action-success-icon{width:52px;height:52px}.action-success-ok{width:100%;justify-self:stretch}}

/* Polished interface animations - v1.0.68 */
@keyframes tlhBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes tlhDialogIn{0%{opacity:0;transform:translateY(18px) scale(.965)}65%{opacity:1;transform:translateY(-2px) scale(1.006)}100%{opacity:1;transform:none}}
@keyframes tlhCheckIn{0%{opacity:0;transform:scale(.45) rotate(-18deg)}65%{opacity:1;transform:scale(1.12) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes tlhBellPulse{0%,100%{transform:scale(1)}45%{transform:scale(1.08)}70%{transform:scale(.98)}}

.action-success-modal{animation:tlhBackdropIn .18s ease-out both}
.action-success-dialog{animation:tlhDialogIn .34s cubic-bezier(.2,.8,.2,1) both}
.action-success-icon{animation:tlhCheckIn .42s .12s cubic-bezier(.2,.9,.25,1.25) both}
.action-success-modal.is-closing{animation:tlhBackdropIn .18s ease-in reverse both}
.action-success-modal.is-closing .action-success-dialog{animation:tlhDialogIn .18s ease-in reverse both}

.reserve-notice-modal:not([hidden]) .reserve-notice-backdrop{animation:tlhBackdropIn .2s ease-out both}
.reserve-notice-modal:not([hidden]) .reserve-notice-dialog{animation:tlhDialogIn .34s cubic-bezier(.2,.8,.2,1) both}

.btn{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}
.btn:active{transform:translateY(0) scale(.975)}
.site-nav>a:not(.btn):after{transform:scaleX(0);transform-origin:center;transition:transform .2s ease}
.site-nav>a.active:after,.site-nav>a:not(.btn):hover:after{transform:scaleX(1)}

.home-package-card,.home-process-grid article,.home-highlight-grid article,.home-announcement-card,.home-upcoming-card,.card,.form-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.home-process-grid article:hover,.home-highlight-grid article:hover,.home-announcement-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(7,26,51,.09)}

.tlh-reveal{opacity:0;transform:translateY(18px);transition:opacity .48s ease var(--tlh-reveal-delay,0ms),transform .48s cubic-bezier(.2,.75,.25,1) var(--tlh-reveal-delay,0ms)}
.tlh-reveal.is-visible{opacity:1;transform:none}

.admin-notification-count:not(.is-empty){animation:tlhBellPulse 1.8s ease-in-out 2}
.admin-notification-popover:not([hidden]){animation:tlhDialogIn .22s cubic-bezier(.2,.8,.2,1) both;transform-origin:top right}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}
  .tlh-reveal{opacity:1!important;transform:none!important}
}


/* Subtle public-homepage parallax - v1.0.69 */
.home-hero[data-home-parallax]{--home-parallax-y:0px;overflow:hidden}
.home-hero[data-home-parallax] .home-hero-media{overflow:hidden}
.home-hero[data-home-parallax] .home-hero-media img{position:absolute;left:0;top:-6%;width:100%;height:112%;transform:translate3d(0,var(--home-parallax-y),0) scale(1.015);transform-origin:center center;will-change:transform;backface-visibility:hidden}
@media(max-width:900px){.home-hero[data-home-parallax] .home-hero-media img{top:0;height:100%;transform:none;will-change:auto}}
@media(prefers-reduced-motion:reduce){.home-hero[data-home-parallax] .home-hero-media img{top:0;height:100%;transform:none!important;will-change:auto}}

/* Reserve notice calendar call-to-action - balanced modal layout */
.reserve-notice-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);
  gap:10px;
  margin-top:24px;
}
.reserve-notice-actions .reserve-calendar-cta{
  grid-column:1 / -1;
  min-height:48px;
  padding:12px 18px;
  border:1.5px solid #c62828;
  background:#fff7f7;
  color:#b71c1c;
  font-weight:800;
  border-radius:12px;
  box-shadow:0 4px 12px rgba(183,28,28,.08);
  justify-content:center;
}
.reserve-notice-actions .reserve-calendar-cta:hover{
  background:#c62828;
  color:#fff;
  border-color:#c62828;
  box-shadow:0 8px 18px rgba(183,28,28,.16);
}
.reserve-notice-actions .reserve-calendar-cta:focus-visible{
  outline:3px solid rgba(198,40,40,.22);
  outline-offset:3px;
}
.reserve-calendar-cta-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.25em;
  height:1.25em;
  font-size:1em;
  line-height:1;
}
.reserve-notice-actions .reserve-notice-cancel,
.reserve-notice-actions .reserve-notice-continue{
  width:100%;
  min-height:48px;
  justify-content:center;
}
@media(max-width:560px){
  .reserve-notice-actions{grid-template-columns:1fr;}
  .reserve-notice-actions .reserve-calendar-cta{grid-column:auto;}
  .reserve-notice-actions .reserve-notice-continue{order:2;}
  .reserve-notice-actions .reserve-notice-cancel{order:3;}
}


/* Reserve notice heading emphasis - v1.0.75 */
.reserve-notice-dialog .reserve-notice-eyebrow{
  margin:0 48px 16px 0;
  font-size:clamp(1.15rem,2.7vw,1.45rem);
  line-height:1.15;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#4fae20;
  display:flex;
  align-items:center;
  gap:10px;
}
.reserve-notice-dialog .reserve-notice-eyebrow::before{
  content:"";
  width:34px;
  height:4px;
  flex:0 0 34px;
  border-radius:999px;
  background:#67c91d;
}
@media(max-width:560px){
  .reserve-notice-dialog .reserve-notice-eyebrow{font-size:1.1rem;margin-right:42px}
}

/* Live reservation availability check introduced in v1.0.76 */
.schedule-availability{grid-column:1/-1;display:flex;align-items:flex-start;gap:12px;margin-top:2px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;color:var(--muted);transition:border-color .2s ease,background .2s ease,color .2s ease}
.schedule-availability-icon{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#e7edf3;color:var(--navy);font-weight:900;line-height:1}
.schedule-availability strong{display:block;margin-bottom:2px;color:var(--navy);font-size:.88rem}
.schedule-availability p{margin:0;color:inherit;font-size:.82rem;line-height:1.45}
.schedule-availability[data-state="checking"]{border-color:#bdd1e3;background:#f3f8fc;color:#486178}
.schedule-availability[data-state="checking"] .schedule-availability-icon{animation:availabilityPulse .9s ease-in-out infinite}
.schedule-availability[data-state="available"]{border-color:#9bcf61;background:#f2fae8;color:#315f00}
.schedule-availability[data-state="available"] .schedule-availability-icon{background:#dff3bd;color:#315f00}
.schedule-availability[data-state="unavailable"]{border-color:#e3a2a2;background:#fff2f2;color:#8c2020}
.schedule-availability[data-state="unavailable"] .schedule-availability-icon{background:#f7d7d7;color:#8c2020}
.schedule-availability[data-state="warning"]{border-color:#dfc078;background:#fff9e8;color:#765300}
.schedule-availability[data-state="warning"] .schedule-availability-icon{background:#f8e9bc;color:#765300}
@keyframes availabilityPulse{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.schedule-availability,.schedule-availability-icon{transition:none;animation:none!important}}
.schedule-availability[data-state="invalid"]{border-color:#e3a2a2;background:#fff5f5;color:#8c2020}
.schedule-availability[data-state="invalid"] .schedule-availability-icon{background:#f7d7d7;color:#8c2020}
/* v1.0.77 - Cash payment reference disabled state */
input[data-booking-payment-reference]:disabled{background:#eef1f4!important;color:#8a96a3!important;border-color:#d6dce2!important;cursor:not-allowed;box-shadow:none!important;opacity:1}input[data-booking-payment-reference]:disabled::placeholder{color:#a8b0b8}


/* Primary brand tagline - v1.0.94 */
.home-brand-tagline{display:inline-flex;align-items:center;gap:10px;margin:20px 0 0;color:var(--green);font-family:Montserrat,Inter,sans-serif;font-size:clamp(.92rem,1.5vw,1.12rem);font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 5px 20px rgba(0,0,0,.2)}
.home-brand-tagline:before{content:"";width:30px;height:2px;border-radius:999px;background:currentColor;box-shadow:0 0 16px rgba(44,255,5,.28)}
.footer-main-tagline{margin:0 0 10px!important;color:var(--green)!important;font-family:Montserrat,Inter,sans-serif;font-size:.9rem!important;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.footer-brand-copy{margin:0;max-width:390px;color:#cbd8e4;line-height:1.65}
@media(max-width:680px){.home-brand-tagline{font-size:.78rem;letter-spacing:.06em}.home-brand-tagline:before{width:22px}.footer-main-tagline{font-size:.78rem!important}}

/* PWA foundation - v1.0.97
   Install control and non-blocking connection/update notices. */
.pwa-install-button{display:inline-flex;align-items:center;justify-content:center;margin:9px 0 4px;padding:9px 13px;border:1px solid rgba(255,255,255,.26);border-radius:9px;background:rgba(255,255,255,.06);color:#dbe7f1;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.pwa-install-button:hover{border-color:var(--green);background:rgba(44,255,5,.1);color:var(--green);transform:translateY(-1px)}.pwa-install-button:focus-visible{outline:3px solid rgba(44,255,5,.35);outline-offset:2px}.pwa-install-button[hidden]{display:none!important}
.pwa-connection-notice,.pwa-update-notice{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:10050;transform:translateX(-50%);width:min(620px,calc(100% - 28px));border-radius:13px;box-shadow:0 16px 45px rgba(5,25,50,.24);font-size:.78rem;font-weight:800;line-height:1.45}.pwa-connection-notice{padding:12px 16px;text-align:center}.pwa-connection-notice.is-offline{border:1px solid #efc6cd;background:#fff1f3;color:#9c2639}.pwa-connection-notice.is-online{border:1px solid #bce6cf;background:#eaf8f0;color:#176846}.pwa-connection-notice[hidden]{display:none!important}
.pwa-update-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 13px 12px 16px;border:1px solid #d2dce5;background:#fff;color:#41586d}.pwa-update-notice strong{color:var(--navy)}.pwa-update-notice button{flex:0 0 auto;border:0;border-radius:9px;padding:8px 12px;background:var(--navy);color:#fff;font:inherit;font-size:.74rem;font-weight:850;cursor:pointer}.pwa-update-notice button:hover{background:#123b60}
@media(max-width:560px){.pwa-connection-notice,.pwa-update-notice{bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px)}.pwa-update-notice{align-items:flex-start}.pwa-update-notice button{margin-top:1px}}

/* Mobile status-bar safe area + reliable hamburger touch target - v1.1.2
 * iPhone standalone/PWA mode can draw the page beneath the translucent status
 * bar. Keep the public header controls below that OS-owned area instead of using
 * a device-specific hard-coded offset. */
@media(max-width:950px){
  .site-header{
    padding-top:env(safe-area-inset-top);
  }
  .nav-wrap{
    position:relative;
  }
  .nav-toggle{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    padding:0;
    position:relative;
    z-index:4;
    line-height:1;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  .site-nav{
    top:calc(84px + env(safe-area-inset-top));
  }
}
@media(max-width:680px){
  .home-page .site-nav{
    top:calc(74px + env(safe-area-inset-top));
  }
}

/* Branded TLH launch animation.
 * Used by installed mobile PWAs and by desktop/tablet website entries.
 * launch.js controls when the screen is actually created and shown. */
html.tlh-launch-preparing,
html.tlh-launch-running{background:#06172e;overflow:hidden}
html.tlh-launch-preparing body{visibility:hidden}
html.tlh-launch-running body{overflow:hidden}
.tlh-launch-screen{
  position:fixed;
  inset:0;
  z-index:200000;
  display:grid;
  place-items:center;
  min-height:100dvh;
  padding:calc(32px + env(safe-area-inset-top)) 28px calc(32px + env(safe-area-inset-bottom));
  overflow:hidden;
  background:#06172e;
  opacity:1;
  visibility:visible!important;
  isolation:isolate;
  pointer-events:auto;
  -webkit-tap-highlight-color:transparent;
}
.tlh-launch-halo{
  position:absolute;
  left:50%;
  top:48%;
  z-index:-1;
  width:min(78vw,360px);
  aspect-ratio:1;
  border-radius:50%;
  background:rgba(44,255,5,.07);
  filter:blur(22px);
  opacity:0;
  transform:translate(-50%,-50%) scale(.72);
}
.tlh-launch-lockup{
  width:min(74vw,310px);
  display:grid;
  justify-items:center;
  text-align:center;
  transform:translateY(-1.5vh);
}
.tlh-launch-logo-wrap{
  width:min(62vw,260px);
  opacity:0;
  transform:translateY(14px) scale(.9);
  transform-origin:center;
}
.tlh-launch-logo{display:block;width:100%;height:auto;filter:drop-shadow(0 16px 34px rgba(0,0,0,.28))}
.tlh-launch-accent{
  display:block;
  width:64px;
  height:3px;
  margin-top:20px;
  border-radius:999px;
  background:#2CFF05;
  box-shadow:0 0 16px rgba(44,255,5,.3);
  opacity:0;
  transform:scaleX(.18);
}
.tlh-launch-tagline{
  margin:13px 0 0;
  color:rgba(255,255,255,.76);
  font-family:Montserrat,Inter,Arial,sans-serif;
  font-size:clamp(.67rem,2.8vw,.8rem);
  font-weight:800;
  line-height:1.4;
  letter-spacing:.11em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(7px);
}
.tlh-launch-management{
  max-width:260px;
  margin:8px 0 0;
  color:rgba(255,255,255,.54);
  font-family:Inter,Arial,sans-serif;
  font-size:clamp(.58rem,2.35vw,.68rem);
  font-weight:600;
  line-height:1.45;
  letter-spacing:.025em;
  opacity:0;
  transform:translateY(6px);
}
.tlh-launch-screen.is-playing .tlh-launch-halo{animation:tlhLaunchHalo 2.4s cubic-bezier(.2,.75,.25,1) both}
.tlh-launch-screen.is-playing .tlh-launch-logo-wrap{animation:tlhLaunchLogo 1.25s cubic-bezier(.18,.82,.24,1) .2s both}
.tlh-launch-screen.is-playing .tlh-launch-accent{animation:tlhLaunchAccent .8s cubic-bezier(.2,.75,.25,1) 1s both}
.tlh-launch-screen.is-playing .tlh-launch-tagline{animation:tlhLaunchTagline .7s ease 1.35s both}
.tlh-launch-screen.is-playing .tlh-launch-management{animation:tlhLaunchManagement .65s ease 1.7s both}
.tlh-launch-screen.is-leaving{animation:tlhLaunchExit .36s ease both;pointer-events:none}
@keyframes tlhLaunchHalo{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}52%{opacity:1}100%{opacity:.55;transform:translate(-50%,-50%) scale(1.06)}}
@keyframes tlhLaunchLogo{0%{opacity:0;transform:translateY(14px) scale(.9)}55%{opacity:1;transform:translateY(-2px) scale(1.025)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes tlhLaunchAccent{0%{opacity:0;transform:scaleX(.18)}100%{opacity:1;transform:scaleX(1)}}
@keyframes tlhLaunchTagline{0%{opacity:0;transform:translateY(7px)}100%{opacity:1;transform:translateY(0)}}
@keyframes tlhLaunchManagement{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:translateY(0)}}
@keyframes tlhLaunchExit{to{opacity:0;transform:scale(1.012)}}
@media(min-width:951px){
  .tlh-launch-halo{width:min(42vw,440px)}
  .tlh-launch-lockup{width:min(38vw,380px)}
  .tlh-launch-logo-wrap{width:min(30vw,300px)}
  .tlh-launch-tagline{font-size:.78rem}
  .tlh-launch-management{max-width:320px;font-size:.66rem}
}
@media(prefers-reduced-motion:reduce){
  .tlh-launch-screen.is-playing .tlh-launch-halo,
  .tlh-launch-screen.is-playing .tlh-launch-logo-wrap,
  .tlh-launch-screen.is-playing .tlh-launch-accent,
  .tlh-launch-screen.is-playing .tlh-launch-tagline,
  .tlh-launch-screen.is-playing .tlh-launch-management{animation:none!important;opacity:1;transform:none}
  .tlh-launch-screen.is-playing .tlh-launch-halo{transform:translate(-50%,-50%) scale(1)}
  .tlh-launch-screen.is-leaving{animation:tlhLaunchExit .16s linear both!important}
}


/* Flexible administrator discount - v1.2.59 */
.flexible-discount-card{margin:16px 0;padding:15px;border:1px solid var(--line);border-radius:14px;background:rgba(15,42,70,.025)}
.flexible-discount-toggle{margin:0}
.flexible-discount-fields{margin-top:14px}
.flexible-discount-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.flexible-discount-summary span{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:.82rem}
.flexible-discount-summary strong{color:var(--navy);font-size:.98rem}
@media(max-width:640px){.flexible-discount-summary{grid-template-columns:1fr}}

/* Visual booking scheduler - public Reserve + admin New Reservation (v1.2.72) */
.visual-scheduler{border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fbfcfe 0%,#f6f9fc 100%);padding:18px}
.visual-scheduler-shell{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.15fr);gap:18px;align-items:start}
.visual-scheduler-panel{background:#fff;border:1px solid #dbe5ee;border-radius:18px;padding:18px;box-shadow:0 8px 22px rgba(6,23,46,.04)}
.visual-scheduler-panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}.visual-scheduler-panel-head h4{margin:4px 0 0;font-size:1.08rem}.visual-scheduler-panel-head p{margin:0;max-width:320px;color:var(--muted);font-size:.83rem;line-height:1.5}.visual-scheduler-note{margin:14px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}
.visual-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.visual-calendar-header strong{font-family:Montserrat,Inter,sans-serif;font-size:1.05rem;color:var(--navy)}.visual-calendar-nav{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid #d5dfe8;background:#f5f8fb;color:var(--navy);font-size:1.3rem;font-weight:800}.visual-calendar-nav:hover:not(:disabled){background:#eaf0f7}.visual-calendar-nav:disabled{opacity:.45;cursor:not-allowed}
.visual-calendar-weekdays,.visual-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.visual-calendar-weekdays{margin-bottom:10px}.visual-calendar-weekdays span{display:grid;place-items:center;color:#6a7a8a;font-size:.74rem;font-weight:800;letter-spacing:.06em}
.visual-calendar-day{display:grid;place-items:center;min-height:48px;border:1px solid #d7e0e9;border-radius:13px;background:#fff;color:var(--ink);font-weight:700;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.visual-calendar-day:hover:not(:disabled){border-color:#9fb0c2;transform:translateY(-1px)}.visual-calendar-day.is-outside-month{background:#f6f8fb;color:#a2afbc}.visual-calendar-day.is-today{border-color:#8fc12e}.visual-calendar-day.is-selected{background:#2457c5;border-color:#2457c5;color:#fff;box-shadow:0 10px 20px rgba(36,87,197,.22)}.visual-calendar-day.is-disabled{background:#f4f6f8;color:#b5c0cb;cursor:not-allowed}
.visual-choice-group{display:grid;gap:10px;margin-bottom:16px}.visual-choice-group>span,.visual-slot-heading>span{font-weight:800;color:var(--navy);font-size:.88rem}.visual-chip-list{display:flex;gap:10px;flex-wrap:wrap}.visual-chip{border:1px solid #d5deea;background:#fff;border-radius:12px;padding:11px 15px;font-weight:800;color:var(--navy);line-height:1.1}.visual-chip.is-active{background:#122e65;border-color:#122e65;color:#fff;box-shadow:0 10px 20px rgba(18,46,101,.16)}
.visual-slot-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.visual-slot-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.77rem;font-weight:700}.visual-slot-legend span{display:inline-flex;align-items:center;gap:6px}.visual-slot-legend i{display:inline-block;width:10px;height:10px;border-radius:999px;background:#cbd6e1}.visual-slot-legend .is-available{background:#8fc12e}.visual-slot-legend .is-selected{background:#2457c5}.visual-slot-legend .is-unavailable{background:#d46b6b}
.visual-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:420px;overflow:auto;padding-right:4px}.visual-slot-card{display:grid;gap:4px;align-content:center;min-height:72px;text-align:center;padding:12px 10px;border:1px solid #d8e0e8;border-radius:15px;background:#fff;color:var(--ink);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.visual-slot-card strong{font-family:Montserrat,Inter,sans-serif;font-size:1rem}.visual-slot-card small{color:#657688;font-size:.75rem;line-height:1.35}.visual-slot-card:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 22px rgba(6,23,46,.08)}.visual-slot-card.is-available,.visual-slot-card.is-historical{border-color:#d2e7a4;background:#f8fcec}.visual-slot-card.is-selected{border-color:#2457c5;background:#2457c5;color:#fff;box-shadow:0 12px 24px rgba(36,87,197,.24)}.visual-slot-card.is-selected small{color:#dbe6ff}.visual-slot-card.is-unavailable,.visual-slot-card.is-closed,.visual-slot-card.is-past{background:#f4f6f8;color:#8a98a5;border-color:#e0e7ee}.visual-slot-card:disabled{cursor:not-allowed;opacity:.92}.visual-slot-empty{display:grid;place-items:center;min-height:140px;padding:16px;border:1px dashed #d4dde8;border-radius:16px;background:#f8fafc;color:#607183;text-align:center;font-size:.88rem;line-height:1.55}
.visual-selection-summary{display:grid;gap:4px;padding:15px 16px;border:1px solid #d9e3ee;border-radius:15px;background:#f7f9fd}.visual-selection-summary>span{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#5a6a79}.visual-selection-summary strong{color:var(--navy);font-size:.98rem}.visual-selection-summary small{color:var(--muted);font-size:.81rem;line-height:1.45}
.manual-schedule-details{border:1px dashed #c9d4df;border-radius:16px;background:#fff}.manual-schedule-details summary{cursor:pointer;padding:14px 18px;font-weight:800;color:var(--navy);list-style:none}.manual-schedule-details summary::-webkit-details-marker{display:none}.manual-schedule-details[open] summary{border-bottom:1px dashed #d5dfe9}.manual-schedule-details .schedule-picker{margin:0 14px 14px}
@media(max-width:980px){.visual-scheduler-shell{grid-template-columns:1fr}.visual-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.visual-scheduler{padding:14px}.visual-scheduler-panel{padding:15px}.visual-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.visual-calendar-day{min-height:44px}.visual-slot-card{min-height:66px}}
@media(max-width:560px){.visual-slot-grid{grid-template-columns:1fr}.visual-calendar-weekdays,.visual-calendar-grid{gap:6px}.visual-calendar-day{border-radius:11px;min-height:40px}.visual-slot-heading,.visual-scheduler-panel-head{display:grid}}

/* Compact scheduler refinement - v1.2.73 */
.visual-scheduler-compact .visual-scheduler-shell{grid-template-columns:minmax(320px,.95fr) minmax(300px,.8fr);max-width:920px;margin:0 auto}
.visual-scheduler-compact .visual-scheduler-panel{padding:20px}
.visual-scheduler-compact .visual-scheduler-panel-head{margin-bottom:14px}
.visual-scheduler-compact .visual-scheduler-panel-head p{display:none}
.visual-native-date-row{display:grid;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid #e1e8ef}.visual-native-date-row label{font-size:.78rem;color:var(--muted)}
.visual-native-date-row input{padding:10px 12px;background:#f8fafc}
.visual-scheduler-controls{display:grid;gap:16px}.visual-scheduler-controls select{min-height:48px;font-weight:700;background:#fff}
.visual-scheduler-controls-panel{align-self:stretch;display:grid;align-content:start;gap:16px}
.visual-selection-summary-compact{padding:13px 14px}.visual-selection-summary-compact>span{display:none}.visual-selection-summary-compact strong{font-size:.94rem}.visual-selection-summary-compact small{font-size:.78rem}
.schedule-availability-compact{margin-top:0;padding:11px 13px}.schedule-availability-compact .schedule-availability-icon{width:22px;height:22px;flex-basis:22px;font-size:.8rem}.schedule-availability-compact strong{font-size:.82rem}.schedule-availability-compact p{font-size:.77rem}
@media(max-width:880px){.visual-scheduler-compact .visual-scheduler-shell{grid-template-columns:1fr;max-width:620px}}

/* Progressive booking flow - v1.2.74 */
.reservation-steps-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.booking-type-picker{position:relative;max-width:980px;margin:0 auto}.booking-type-native-select{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.booking-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.booking-type-card{display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:4px;align-items:start;min-height:150px;padding:20px;border:1px solid #d9e3ec;border-radius:18px;background:#fff;color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.booking-type-card:hover{border-color:#9eb0c2;transform:translateY(-1px);box-shadow:0 10px 24px rgba(6,23,46,.07)}.booking-type-card.is-selected{border-color:#2457c5;background:#f3f7ff;box-shadow:0 0 0 2px rgba(36,87,197,.10),0 12px 24px rgba(36,87,197,.10)}.booking-type-icon{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eef3f8;color:var(--navy);font-size:1.35rem;font-weight:900}.booking-type-card.is-selected .booking-type-icon{background:#2457c5;color:#fff}.booking-type-card strong{align-self:end;color:var(--navy);font-family:Montserrat,Inter,sans-serif;font-size:1rem}.booking-type-card small{color:var(--muted);font-size:.82rem;line-height:1.5}
.visual-scheduler-focused{max-width:960px;margin:0 auto}.event-schedule-options{max-width:960px;margin:16px auto 0;padding:16px;border:1px solid #e0e7ef;border-radius:16px;background:#fbfcfe}.event-schedule-options .field-help{line-height:1.45}
@media(max-width:900px){.booking-type-grid{grid-template-columns:1fr}.booking-type-card{min-height:auto}.reservation-steps-four{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:680px){.reservation-steps-four{gap:4px}.booking-type-card{padding:17px}.booking-type-icon{width:40px;height:40px}.visual-scheduler-focused{max-width:none}}

/* Public reservation modal presentation - v1.2.75 */
body.public-booking-modal-open{overflow:hidden}
.reservation-modal-page{min-height:62vh;display:grid;align-items:center;background:linear-gradient(180deg,#f8fbfd 0%,#eef4f8 100%)}
.reservation-modal-launcher{display:grid;place-items:center}
.reservation-modal-launcher-card{width:min(720px,100%);text-align:center;padding:48px 34px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--shadow)}
.reservation-modal-launcher-card h1{margin:8px 0 12px;color:var(--navy)}
.reservation-modal-launcher-card p{max-width:580px;margin:0 auto;color:var(--muted);font-size:1rem;line-height:1.65}
.reservation-modal-launcher-card small{display:block;max-width:600px;margin:18px auto 0;color:var(--muted);line-height:1.55}
.reservation-modal-launcher-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.public-booking-modal{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:24px}
.public-booking-modal.is-open{display:flex}
.public-booking-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:rgba(4,15,31,.7);backdrop-filter:blur(6px);cursor:default}
.public-booking-dialog{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1080px,calc(100vw - 48px));max-height:min(92vh,940px);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:24px;background:#f7f9fc;box-shadow:0 28px 80px rgba(0,0,0,.34)}
.public-booking-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid #dce4ec;background:#fff}
.public-booking-dialog-toolbar>div{display:grid;gap:2px}
.public-booking-dialog-toolbar .eyebrow{font-size:.66rem}
.public-booking-dialog-toolbar strong{color:var(--navy);font-family:Montserrat,Inter,sans-serif;font-size:.95rem}
.public-booking-dialog-close{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #d6e0e9;border-radius:12px;background:#f5f7fa;color:var(--navy);font-size:1.5rem;line-height:1;font-weight:700}
.public-booking-dialog-close:hover{background:#eaf0f5}
.public-booking-dialog-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px}
.reservation-step-card-modal{max-width:none;margin:0;box-shadow:none}
.reservation-step-card-modal .reservation-form-alert{width:100%;margin:0 0 14px}
@media(max-width:760px){
  .reservation-modal-page{min-height:52vh}.reservation-modal-launcher-card{padding:34px 22px}.reservation-modal-launcher-actions{display:grid}.reservation-modal-launcher-actions .btn{width:100%}
  .public-booking-modal{align-items:stretch;padding:0}.public-booking-dialog{width:100%;max-height:none;height:100%;border-radius:0;border:0}.public-booking-dialog-scroll{padding:14px}.public-booking-dialog-toolbar{padding:10px 14px}.reservation-step-card-modal{padding:18px}
}

/* Straightforward public availability-first scheduler - v1.2.76 */
.simple-booking-scheduler{display:grid;gap:20px;max-width:640px;margin:0 auto;padding:22px;border:1px solid #dbe4ed;border-radius:20px;background:#fff}
.simple-schedule-field{display:grid;gap:8px}.simple-schedule-field label,.simple-schedule-label strong{color:var(--navy);font-size:.92rem;font-weight:800}.simple-schedule-field select{min-height:50px;font-weight:700;background:#fff}
.simple-schedule-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.simple-schedule-label span{color:var(--muted);font-size:.8rem;text-align:right}
.simple-availability-calendar{padding:16px;border:1px solid #e0e7ee;border-radius:17px;background:#fbfcfe}.simple-availability-calendar .visual-calendar-header{margin-bottom:16px}.simple-availability-calendar .visual-calendar-day.is-unavailable-date{background:#f2f4f6;color:#b1bcc7;border-color:#e6ebf0}.simple-availability-calendar .visual-calendar-day.is-unavailable-date::after{content:'';width:4px;height:4px;margin-top:2px;border-radius:999px;background:#c4ccd4}.simple-availability-calendar .visual-calendar-day.is-disabled{box-shadow:none;transform:none}
.simple-event-schedule-options{margin:0;padding:14px;border:1px solid #e3e9ef;border-radius:15px;background:#fafbfd}.simple-event-schedule-options .form-group{gap:7px}.simple-event-schedule-options label{font-size:.85rem}
.simple-availability-message{margin:0}.simple-availability-message[data-state="available"] strong{color:#315f00}
@media(max-width:680px){.simple-booking-scheduler{padding:15px;gap:16px;border-radius:17px}.simple-schedule-label{display:grid;gap:3px}.simple-schedule-label span{text-align:left}.simple-availability-calendar{padding:12px}.simple-event-schedule-options{grid-template-columns:1fr}}

.booking-type-grid .booking-type-card{min-height:92px;align-items:center}.booking-type-grid .booking-type-card strong{align-self:center}.booking-type-grid .booking-type-icon{grid-row:auto}.booking-type-grid .booking-type-card small{display:none}

/* v1.2.77 - Reference-style minimal public booking modal */
.public-booking-modal-reference{padding:18px}
.public-booking-dialog-reference{position:relative;width:min(960px,calc(100vw - 36px));max-height:min(92vh,760px);border-radius:14px;overflow:hidden;background:#fff;border:1px solid rgba(6,23,46,.12);box-shadow:0 28px 80px rgba(4,15,31,.28)}
.public-booking-dialog-scroll-reference{overflow:auto;max-height:min(92vh,760px);padding:0;background:#fff}
.public-booking-dialog-close-reference{position:absolute;top:12px;right:14px;z-index:8;width:38px;height:38px;border:0;border-radius:999px;background:transparent;color:#7d8791;font-size:1.75rem;line-height:1;cursor:pointer}
.public-booking-dialog-close-reference:hover{background:#f1f3f5;color:#192433}
.reservation-step-card-reference{max-width:none;margin:0;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.reservation-step-card-reference>.reservation-form-alert{margin:16px 56px 0;width:auto}
.public-booking-type-screen{min-height:560px;place-items:center;padding:64px 52px}
.booking-type-picker-reference{width:min(740px,100%);margin:auto}
.booking-type-grid-reference{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.booking-type-card-reference{min-height:170px!important;display:grid!important;grid-template-columns:1fr!important;place-items:center;text-align:center!important;gap:12px!important;padding:26px 18px!important;border-radius:16px!important;box-shadow:none!important}
.booking-type-card-reference .booking-type-icon{grid-row:auto;width:64px;height:64px;border-radius:999px;font-size:1.8rem}
.booking-type-card-reference strong{align-self:auto!important;font-size:1rem!important}
.public-reference-schedule-panel{padding:0!important;gap:0!important;animation:none!important}
.reference-booking-scheduler{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:650px;background:#fff}
.reference-booking-calendar-pane{padding:34px 34px 30px;background:#f7f8fa;border-right:1px solid #edf0f3}
.reference-booking-time-pane{display:flex;flex-direction:column;min-width:0;padding:28px 26px 22px;background:#fff}
.reference-booking-type-summary{display:grid;place-items:center;gap:10px;margin:0 0 22px;text-align:center}
.reference-booking-type-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:999px;background:#e9edf2;font-size:1.7rem;box-shadow:inset 0 0 0 1px #d9e0e7}
.reference-booking-type-summary strong{font-family:Montserrat,Inter,sans-serif;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:#24303d}
.reference-event-schedule-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}.reference-event-schedule-options label{font-size:.76rem}.reference-event-schedule-options select{padding:9px 10px;font-size:.86rem}
.reference-availability-calendar{padding:0!important;border:0!important;background:transparent!important}
.reference-availability-calendar .visual-calendar-header{margin-bottom:14px;padding:0 4px}
.reference-availability-calendar .visual-calendar-header strong{font-family:inherit;font-size:1rem;font-weight:600;color:#202a35}
.reference-availability-calendar .visual-calendar-nav{width:36px;height:36px;border:0;border-radius:999px;background:#dfeafb;color:#2457c5;font-size:1.35rem;box-shadow:none}
.reference-availability-calendar .visual-calendar-nav:hover:not(:disabled){background:#2457c5;color:#fff}
.reference-availability-calendar .visual-calendar-weekdays{gap:4px;margin-bottom:8px}
.reference-availability-calendar .visual-calendar-weekdays span{font-size:.68rem;color:#4f5d6a;font-weight:600}
.reference-availability-calendar .visual-calendar-grid{gap:5px}
.reference-availability-calendar .visual-calendar-day{min-height:42px;height:42px;border:0!important;border-radius:999px;background:transparent;box-shadow:none;color:#26323e;font-weight:500;transform:none!important}
.reference-availability-calendar .visual-calendar-day:hover:not(:disabled){background:#e8edf3;box-shadow:none}
.reference-availability-calendar .visual-calendar-day.is-selected{background:#2457c5!important;color:#fff!important;box-shadow:none!important}
.reference-availability-calendar .visual-calendar-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px #2457c5!important}
.reference-availability-calendar .visual-calendar-day.is-outside-month{color:#b3bbc4}
.reference-availability-calendar .visual-calendar-day.is-disabled{background:transparent!important;color:#adb5bd!important;opacity:.48;cursor:not-allowed}
.reference-availability-calendar .visual-calendar-day.is-disabled:not(.is-unavailable-date){text-decoration:line-through}
.reference-availability-calendar .visual-calendar-day.is-unavailable-date{text-decoration:none;opacity:.28}
.reference-duration-picker{display:grid;gap:10px;margin:0 0 20px;padding-right:34px}
.reference-duration-picker>label{font-size:.82rem;font-weight:700;color:#2d3742}
.reference-duration-native,.reference-time-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.reference-duration-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.reference-duration-buttons button,.reference-duration-buttons select{min-width:0;height:38px;padding:0 8px;border:1px solid #d9dee4;border-radius:9px;background:#f4f5f6;color:#313a44;font:inherit;font-size:.78rem;text-align:center;box-shadow:none}
.reference-duration-buttons button:hover{background:#e9edf1}
.reference-duration-buttons button.is-active{background:#2457c5;border-color:#2457c5;color:#fff}
.reference-duration-buttons select{background:#fff}
.reference-time-list-wrap{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;min-height:0;flex:1}
.reference-time-label{padding-top:11px;color:#7b8794;font-size:.78rem;text-align:center}
.reference-time-list{display:grid;gap:8px;align-content:start;max-height:470px;overflow:auto;padding:0 8px 8px 0;scrollbar-width:thin}
.reference-time-row{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:center}
.reference-time-start{font-size:.73rem;color:#3d4852;text-align:right;white-space:nowrap}
.reference-time-card{display:grid;gap:2px;place-items:center;min-height:58px;padding:9px 12px;border:0;border-radius:9px;background:#eceeef;color:#68727c;cursor:pointer;font:inherit;transition:background .16s ease,color .16s ease}
.reference-time-card:hover{background:#dfe5eb;color:#28333d}
.reference-time-card.is-selected{background:#2457c5;color:#fff}
.reference-time-card strong{font-size:.88rem;font-weight:600}.reference-time-card small{font-size:.68rem;color:inherit;opacity:.86}
.reference-time-empty{grid-column:1/-1;display:grid;place-items:center;min-height:120px;color:#9099a3;font-size:.84rem;text-align:center}
.reference-schedule-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 8px 0 68px;border-top:1px solid #eef1f4}
.reference-schedule-actions .btn{min-width:118px}
.reference-back-button{border:0;background:transparent;color:#5d6874;font:inherit;font-size:.86rem;font-weight:700;cursor:pointer}.reference-back-button:hover{color:#2457c5}
.booking-live-status-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.reservation-step-card-reference [data-form-step="3"],.reservation-step-card-reference [data-form-step="4"]{padding:42px 44px 34px;max-width:900px;margin:0 auto}
.reservation-step-card-reference [data-form-step="3"] .reservation-step-actions,.reservation-step-card-reference [data-form-step="4"] .reservation-step-actions{margin-top:8px}
@media(max-width:840px){
  .public-booking-modal-reference{padding:0}.public-booking-dialog-reference{width:100%;height:100%;max-height:none;border-radius:0;border:0}.public-booking-dialog-scroll-reference{max-height:none;height:100%}
  .reference-booking-scheduler{grid-template-columns:1fr;min-height:0}.reference-booking-calendar-pane{padding:28px 22px 24px;border-right:0;border-bottom:1px solid #edf0f3}.reference-booking-time-pane{padding:22px 18px 24px}.reference-duration-picker{padding-right:42px}.reference-time-list{max-height:none}.reference-time-list-wrap{grid-template-columns:48px minmax(0,1fr)}.reference-schedule-actions{padding-left:58px}
  .booking-type-grid-reference{grid-template-columns:1fr}.public-booking-type-screen{padding:58px 24px 30px}.booking-type-card-reference{min-height:100px!important;grid-template-columns:auto 1fr!important;justify-items:start!important;text-align:left!important}.booking-type-card-reference .booking-type-icon{width:50px;height:50px;font-size:1.4rem}
  .reservation-step-card-reference [data-form-step="3"],.reservation-step-card-reference [data-form-step="4"]{padding:56px 20px 28px}
}
@media(max-width:520px){
  .reference-duration-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-duration-buttons select{grid-column:1/-1}.reference-booking-calendar-pane{padding-inline:14px}.reference-booking-time-pane{padding-inline:14px}.reference-time-list-wrap{grid-template-columns:1fr}.reference-time-label{display:none}.reference-time-row{grid-template-columns:56px minmax(0,1fr)}.reference-schedule-actions{padding-left:0}.reference-booking-type-summary{margin-bottom:14px}.reference-booking-type-icon{width:50px;height:50px}
}

/* ========================================================================== 
   v1.2.80 — Reservation-first landing page
   ========================================================================== */
.home-reservation-gateway{background:#031121;color:#fff}
.home-reservation-gateway main{overflow:hidden;background:#031121}
.home-reservation-gateway .site-header,
.home-reservation-gateway .site-header.scrolled{
  color:#fff;
  background:rgba(2,14,28,.94);
  border-bottom:1px solid rgba(190,238,0,.13);
  box-shadow:none;
  backdrop-filter:blur(16px);
}
.home-reservation-gateway .site-header .site-nav>a:not(.btn),
.home-reservation-gateway .site-header.scrolled .site-nav>a:not(.btn){color:#fff}
.home-reservation-gateway .site-header .nav-toggle,
.home-reservation-gateway .site-header.scrolled .nav-toggle{color:#fff}
.home-reservation-gateway .site-header .site-nav>a.active:after,
.home-reservation-gateway .site-header .site-nav>a:not(.btn):hover:after{background:#2CFF05}
.home-reservation-gateway .reservation-nav-cta{border-radius:10px;background:#2CFF05;color:#06172e;box-shadow:0 10px 30px rgba(44,255,5,.16)}
.home-reservation-gateway .reservation-nav-cta span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:999px;background:#06172e;color:#fff}
.home-reservation-gateway .brand-logo{filter:drop-shadow(0 6px 18px rgba(0,0,0,.22))}

.reservation-gateway-hero{position:relative;isolation:isolate;min-height:860px;padding:132px 0 72px;display:flex;align-items:center;background:#041426}
.reservation-gateway-bg,.reservation-gateway-shade{position:absolute;inset:0;z-index:-2}
.reservation-gateway-bg img{width:100%;height:100%;object-fit:cover;object-position:center 48%}
.reservation-gateway-shade{z-index:-1;background:
  linear-gradient(180deg,rgba(2,13,25,.34) 0%,rgba(2,13,25,.56) 30%,rgba(2,13,25,.84) 74%,rgba(2,13,25,.98) 100%),
  linear-gradient(90deg,rgba(1,10,20,.5),rgba(1,10,20,.12) 50%,rgba(1,10,20,.5))}
.reservation-gateway-inner{display:grid;gap:34px}
.reservation-gateway-heading{text-align:center;max-width:980px;margin:0 auto}
.reservation-gateway-heading>span{display:inline-block;margin-bottom:7px;color:#2CFF05;font-size:.76rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase}
.reservation-gateway-heading h1{margin:0;color:#2CFF05;font-family:Montserrat,Inter,sans-serif;font-size:clamp(3.2rem,7.5vw,7.1rem);font-weight:900;line-height:.9;letter-spacing:-.065em;text-transform:uppercase;text-shadow:0 16px 45px rgba(0,0,0,.34)}
.reservation-gateway-heading h1 strong{color:#fff;font-weight:900}
.reservation-gateway-heading p{margin:18px auto 0;max-width:690px;color:rgba(255,255,255,.84);font-size:clamp(.98rem,1.5vw,1.16rem);line-height:1.6}

.reservation-gateway-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.reservation-gateway-card{position:relative;isolation:isolate;min-height:410px;overflow:hidden;border:1px solid rgba(44,255,5,.72);border-radius:25px;color:#fff;background:#07192d;box-shadow:0 18px 50px rgba(0,0,0,.26);transition:transform .26s ease,border-color .26s ease,box-shadow .26s ease}
.reservation-gateway-card>img{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;transform:scale(1.025);transition:transform .4s ease,filter .3s ease}
.reservation-gateway-card-basketball>img{object-position:35% center}
.reservation-gateway-card-volleyball>img{object-position:48% center}
.reservation-gateway-card-events>img{object-position:50% center}
.reservation-gateway-card-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(2,13,25,.04) 0%,rgba(2,13,25,.24) 34%,rgba(2,13,25,.96) 82%,rgba(2,13,25,1) 100%)}
.reservation-gateway-card:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(180deg,transparent 50%,rgba(44,255,5,.035));pointer-events:none}
.reservation-gateway-card-icon{position:absolute;top:24px;right:24px;width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(44,255,5,.58);border-radius:17px;color:#2CFF05;background:rgba(2,15,29,.74);backdrop-filter:blur(10px);font-size:1.5rem;box-shadow:0 10px 28px rgba(0,0,0,.2)}
.reservation-gateway-card-content{position:absolute;left:0;right:0;bottom:0;display:grid;gap:10px;padding:30px}
.reservation-gateway-card-content>strong{max-width:310px;color:#fff;font-family:Montserrat,Inter,sans-serif;font-size:clamp(1.7rem,2.7vw,2.55rem);font-weight:900;line-height:.96;letter-spacing:-.04em;text-transform:uppercase}
.reservation-gateway-card-content>small{max-width:360px;color:rgba(255,255,255,.73);font-size:.83rem;line-height:1.5}
.reservation-gateway-card-content>b{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px;padding:14px 15px 14px 18px;border-radius:12px;color:#07182d;background:#2CFF05;font-size:.82rem;font-weight:900;letter-spacing:.02em;text-transform:uppercase}
.reservation-gateway-card-content>b i{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#07182d;color:#fff;font-style:normal;font-size:1rem}
.reservation-gateway-card:hover,.reservation-gateway-card:focus-visible{transform:translateY(-7px);border-color:#68FF4C;box-shadow:0 24px 68px rgba(0,0,0,.38),0 0 0 1px rgba(44,255,5,.2),0 0 38px rgba(44,255,5,.1)}
.reservation-gateway-card:hover>img,.reservation-gateway-card:focus-visible>img{transform:scale(1.075);filter:saturate(1.08) brightness(1.06)}

.reservation-gateway-utility{position:relative;z-index:2;border-top:1px solid rgba(44,255,5,.15);border-bottom:1px solid rgba(44,255,5,.12);background:#031121}
.reservation-gateway-utility-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;gap:0;min-height:116px}
.reservation-gateway-benefit{display:flex;align-items:center;gap:13px;min-height:64px;padding:0 26px;border-right:1px solid rgba(255,255,255,.1)}
.reservation-gateway-benefit:first-child{padding-left:0}
.reservation-gateway-benefit>span{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(44,255,5,.5);border-radius:13px;color:#2CFF05;font-weight:900}
.reservation-gateway-benefit strong,.reservation-gateway-benefit small{display:block}
.reservation-gateway-benefit strong{color:#fff;font-size:.82rem}
.reservation-gateway-benefit small{margin-top:4px;color:rgba(255,255,255,.5);font-size:.7rem;line-height:1.4}
.reservation-gateway-utility-actions{display:grid;gap:7px;padding-left:25px}
.reservation-gateway-utility-actions a{color:#2CFF05;font-size:.77rem;font-weight:850;white-space:nowrap}
.reservation-gateway-utility-actions a:hover{color:#fff}

.reservation-gateway-about{color:#fff;background:#041426}
.reservation-gateway-about-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:70px;align-items:end}
.reservation-gateway-about .eyebrow{color:#2CFF05}
.reservation-gateway-about h2{max-width:610px;margin:.4rem 0 0;color:#fff;font-size:clamp(2rem,4.2vw,4rem);line-height:.98;letter-spacing:-.04em}
.reservation-gateway-about p{margin:0;color:rgba(255,255,255,.64);font-size:1rem;line-height:1.75}

.reservation-gateway-updates{border-top:1px solid rgba(255,255,255,.08);color:#fff;background:#031121}
.reservation-gateway-updates-inner{display:grid;grid-template-columns:240px minmax(0,1fr);gap:50px}
.reservation-gateway-updates-title span{color:#2CFF05;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.reservation-gateway-updates-title h2{margin:6px 0 0;color:#fff}
.reservation-gateway-update-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.reservation-gateway-update-list article{display:flex;gap:15px;padding:18px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.035)}
.reservation-gateway-update-list time{color:#2CFF05;font-size:.72rem;font-weight:900;text-transform:uppercase}
.reservation-gateway-update-list h3{margin:0 0 5px;color:#fff;font-size:.96rem}
.reservation-gateway-update-list p{margin:0;color:rgba(255,255,255,.56);font-size:.76rem;line-height:1.5}

.home-reservation-gateway .site-footer{border-top:1px solid rgba(255,255,255,.08);background:#020d19}

@media(max-width:1100px){
  .reservation-gateway-hero{min-height:auto;padding-bottom:58px}
  .reservation-gateway-grid{gap:14px}
  .reservation-gateway-card{min-height:380px}
  .reservation-gateway-card-content{padding:24px}
  .reservation-gateway-utility-inner{grid-template-columns:repeat(3,1fr)}
  .reservation-gateway-utility-actions{grid-column:1/-1;display:flex;justify-content:center;gap:28px;padding:0 0 22px}
}
@media(max-width:950px){
  .home-reservation-gateway .site-header .site-nav,
  .home-reservation-gateway .site-header.scrolled .site-nav{background:rgba(3,17,33,.985);border-bottom:1px solid rgba(44,255,5,.14);box-shadow:0 20px 38px rgba(0,0,0,.3)}
  .home-reservation-gateway .site-header .site-nav>a:not(.btn),
  .home-reservation-gateway .site-header.scrolled .site-nav>a:not(.btn){color:#fff}
  .reservation-gateway-hero{padding-top:118px}
  .reservation-gateway-grid{grid-template-columns:1fr 1fr}
  .reservation-gateway-card-events{grid-column:1/-1;min-height:350px}
  .reservation-gateway-card-events>img{object-position:center 42%}
  .reservation-gateway-about-grid{grid-template-columns:1fr;gap:20px;align-items:start}
}
@media(max-width:700px){
  .reservation-gateway-hero{padding:104px 0 38px}
  .reservation-gateway-bg img{object-position:55% center}
  .reservation-gateway-shade{background:linear-gradient(180deg,rgba(2,13,25,.52),rgba(2,13,25,.85) 30%,rgba(2,13,25,.98) 68%)}
  .reservation-gateway-heading{text-align:left}
  .reservation-gateway-heading h1{font-size:clamp(3.25rem,16vw,5.25rem)}
  .reservation-gateway-heading p{margin-left:0}
  .reservation-gateway-grid{grid-template-columns:1fr;gap:14px}
  .reservation-gateway-card,.reservation-gateway-card-events{grid-column:auto;min-height:390px}
  .reservation-gateway-card-content>strong{font-size:2rem}
  .reservation-gateway-card-content{padding:22px}
  .reservation-gateway-card-icon{top:18px;right:18px;width:50px;height:50px}
  .reservation-gateway-utility-inner{grid-template-columns:1fr;min-height:0;padding:18px 0}
  .reservation-gateway-benefit,.reservation-gateway-benefit:first-child{padding:14px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .reservation-gateway-benefit:nth-child(3){border-bottom:0}
  .reservation-gateway-utility-actions{grid-column:auto;display:grid;justify-content:stretch;gap:4px;padding:14px 0 0}
  .reservation-gateway-utility-actions a{padding:7px 0}
  .reservation-gateway-about-grid{gap:15px}
  .reservation-gateway-updates-inner{grid-template-columns:1fr;gap:22px}
  .reservation-gateway-update-list{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .reservation-gateway-card,.reservation-gateway-card>img{transition:none}
}

/* ============================================================================
   v1.2.81 — Professional reservation-first landing page
   Restrained venue branding: authentic imagery, clean hierarchy, subtle lime.
   ============================================================================ */
.home-reservation-premium{
  --landing-ink:#071522;
  --landing-navy:#061522;
  --landing-navy-2:#0b1d2d;
  --landing-panel:#0d2133;
  --landing-accent:#2CFF05;
  --landing-accent-soft:#68FF4C;
  --landing-line:rgba(255,255,255,.12);
  background:#f4f5f2;
  color:#172333;
}
.home-reservation-premium main{overflow:hidden;background:#f4f5f2}
.home-reservation-premium .site-header,
.home-reservation-premium .site-header.scrolled{
  color:#fff;
  background:rgba(5,18,30,.88);
  border-bottom:1px solid rgba(255,255,255,.1);
  box-shadow:none;
  backdrop-filter:blur(18px);
}
.home-reservation-premium .site-header .site-nav>a:not(.btn),
.home-reservation-premium .site-header.scrolled .site-nav>a:not(.btn){color:rgba(255,255,255,.86)}
.home-reservation-premium .site-header .site-nav>a:not(.btn):hover,
.home-reservation-premium .site-header.scrolled .site-nav>a:not(.btn):hover{color:#fff}
.home-reservation-premium .site-header .site-nav>a.active:after,
.home-reservation-premium .site-header .site-nav>a:not(.btn):hover:after{height:2px;bottom:20px;background:var(--landing-accent)}
.home-reservation-premium .reservation-nav-cta{
  border:1px solid var(--landing-accent);
  border-radius:9px;
  background:var(--landing-accent);
  color:#071522;
  box-shadow:none;
}
.home-reservation-premium .reservation-nav-cta:hover{background:var(--landing-accent-soft)}
.home-reservation-premium .reservation-nav-cta span{background:#071522;color:#fff}
.home-reservation-premium .brand-logo{height:54px;filter:none}

.home-reservation-premium .reservation-gateway-hero{
  min-height:auto;
  padding:148px 0 74px;
  display:block;
  background:var(--landing-navy);
}
.home-reservation-premium .reservation-gateway-bg,
.home-reservation-premium .reservation-gateway-shade{position:absolute;inset:0;z-index:-2}
.home-reservation-premium .reservation-gateway-bg img{width:100%;height:100%;object-fit:cover;object-position:center 47%;filter:saturate(.78) contrast(1.04)}
.home-reservation-premium .reservation-gateway-shade{
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(4,16,27,.62) 0%,rgba(4,16,27,.42) 20%,rgba(4,16,27,.74) 52%,rgba(4,16,27,.97) 100%),
    linear-gradient(90deg,rgba(4,16,27,.46),rgba(4,16,27,.08) 52%,rgba(4,16,27,.32));
}
.home-reservation-premium .reservation-gateway-inner{display:grid;gap:44px}
.home-reservation-premium .reservation-gateway-heading{
  max-width:820px;
  margin:0;
  text-align:left;
}
.home-reservation-premium .reservation-gateway-heading>span{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:17px;
  color:var(--landing-accent);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.home-reservation-premium .reservation-gateway-heading>span:before{content:"";width:34px;height:1px;background:var(--landing-accent)}
.home-reservation-premium .reservation-gateway-heading h1{
  max-width:810px;
  margin:0;
  color:#fff;
  font-family:Montserrat,Inter,sans-serif;
  font-size:clamp(2.85rem,5.5vw,5.7rem);
  font-weight:750;
  line-height:.98;
  letter-spacing:-.055em;
  text-transform:none;
  text-shadow:0 12px 42px rgba(0,0,0,.25);
}
.home-reservation-premium .reservation-gateway-heading h1 strong{color:var(--landing-accent);font-weight:750}
.home-reservation-premium .reservation-gateway-heading p{
  max-width:650px;
  margin:21px 0 0;
  color:rgba(255,255,255,.76);
  font-size:1.02rem;
  line-height:1.7;
}
.home-reservation-premium .reservation-gateway-heading-actions{display:flex;gap:24px;flex-wrap:wrap;margin-top:22px}
.home-reservation-premium .reservation-gateway-heading-actions a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding-bottom:3px;
  border-bottom:1px solid rgba(255,255,255,.4);
  color:rgba(255,255,255,.82);
  font-size:.78rem;
  font-weight:700;
}
.home-reservation-premium .reservation-gateway-heading-actions a:hover{border-color:var(--landing-accent);color:#fff}

.home-reservation-premium .reservation-gateway-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.home-reservation-premium .reservation-gateway-card{
  position:relative;
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  color:#fff;
  background:rgba(8,25,39,.94);
  box-shadow:0 20px 42px rgba(0,0,0,.22);
  transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease;
}
.home-reservation-premium .reservation-gateway-card-media{
  position:relative;
  display:block;
  aspect-ratio:16/8.6;
  overflow:hidden;
  background:#102235;
}
.home-reservation-premium .reservation-gateway-card-media>img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.01);
  transition:transform .38s ease,filter .28s ease;
}
.home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media>img{object-position:45% center}
.home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{object-position:50% center}
.home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media>img{object-position:50% center}
.home-reservation-premium .reservation-gateway-card-media-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,15,25,.02),rgba(4,15,25,.2) 58%,rgba(4,15,25,.56))}
.home-reservation-premium .reservation-gateway-card-icon{
  position:absolute;
  left:20px;
  bottom:18px;
  top:auto;
  right:auto;
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.3);
  border-radius:11px;
  color:var(--landing-accent);
  background:rgba(5,18,30,.72);
  backdrop-filter:blur(10px);
  box-shadow:none;
}
.home-reservation-premium .reservation-gateway-card-icon svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.home-reservation-premium .reservation-gateway-card-content{
  position:static;
  display:grid;
  align-content:start;
  gap:8px;
  padding:23px 24px 24px;
}
.home-reservation-premium .reservation-gateway-card-eyebrow{
  color:var(--landing-accent);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.home-reservation-premium .reservation-gateway-card-content>strong{
  max-width:none;
  margin-top:1px;
  color:#fff;
  font-family:Montserrat,Inter,sans-serif;
  font-size:clamp(1.42rem,2vw,1.85rem);
  font-weight:700;
  line-height:1.1;
  letter-spacing:-.035em;
  text-transform:none;
}
.home-reservation-premium .reservation-gateway-card-content>small{
  min-height:51px;
  max-width:none;
  color:rgba(255,255,255,.62);
  font-size:.79rem;
  line-height:1.55;
}
.home-reservation-premium .reservation-gateway-card-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:10px;
  padding-top:15px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#fff;
  font-size:.76rem;
  font-weight:750;
}
.home-reservation-premium .reservation-gateway-card-link i{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:999px;
  color:#061522;
  background:var(--landing-accent);
  font-style:normal;
  transition:transform .2s ease;
}
.home-reservation-premium .reservation-gateway-card:after{display:none}
.home-reservation-premium .reservation-gateway-card:hover,
.home-reservation-premium .reservation-gateway-card:focus-visible{
  transform:translateY(-4px);
  border-color:rgba(184,216,0,.72);
  box-shadow:0 26px 55px rgba(0,0,0,.28);
}
.home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-media>img,
.home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-media>img{transform:scale(1.045);filter:saturate(1.03)}
.home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-link i,
.home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-link i{transform:translateX(2px)}

.home-reservation-premium .reservation-gateway-process{
  border-bottom:1px solid #e2e5df;
  background:#fff;
}
.home-reservation-premium .reservation-gateway-process-grid{
  min-height:154px;
  display:grid;
  grid-template-columns:minmax(240px,.85fr) minmax(0,2fr);
  gap:56px;
  align-items:center;
}
.home-reservation-premium .reservation-gateway-process-intro{display:grid;gap:7px}
.home-reservation-premium .reservation-gateway-process-intro>span{color:#68715f;font-size:.66rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.home-reservation-premium .reservation-gateway-process-intro>strong{max-width:320px;color:#132130;font-family:Montserrat,Inter,sans-serif;font-size:1.1rem;line-height:1.35}
.home-reservation-premium .reservation-gateway-process ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.home-reservation-premium .reservation-gateway-process li{display:flex;align-items:flex-start;gap:14px;padding:10px 25px;border-left:1px solid #e3e6e0}
.home-reservation-premium .reservation-gateway-process li:first-child{border-left:0}
.home-reservation-premium .reservation-gateway-process li>b{color:#8ca500;font-size:.68rem;letter-spacing:.08em}
.home-reservation-premium .reservation-gateway-process li strong,
.home-reservation-premium .reservation-gateway-process li small{display:block}
.home-reservation-premium .reservation-gateway-process li strong{color:#172333;font-size:.82rem;line-height:1.35}
.home-reservation-premium .reservation-gateway-process li small{margin-top:4px;color:#7a8490;font-size:.7rem;line-height:1.45}

.home-reservation-premium .reservation-gateway-venue{padding:92px 0;background:#f4f5f2}
.home-reservation-premium .reservation-gateway-venue-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:64px;align-items:center}
.home-reservation-premium .reservation-gateway-venue-image{overflow:hidden;border-radius:20px;background:#d8dcd6;box-shadow:0 18px 45px rgba(15,31,45,.12)}
.home-reservation-premium .reservation-gateway-venue-image img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .45s ease}
.home-reservation-premium .reservation-gateway-venue-image:hover img{transform:scale(1.02)}
.home-reservation-premium .reservation-gateway-venue-copy .eyebrow{color:#758700}
.home-reservation-premium .reservation-gateway-venue-copy .eyebrow:before{height:2px;background:var(--landing-accent)}
.home-reservation-premium .reservation-gateway-venue-copy h2{max-width:520px;margin:0;color:#112030;font-size:clamp(2rem,3.6vw,3.4rem);font-weight:700;line-height:1.04;letter-spacing:-.045em}
.home-reservation-premium .reservation-gateway-venue-copy p{max-width:560px;margin:22px 0 0;color:#626f7c;font-size:.98rem;line-height:1.78}
.home-reservation-premium .reservation-gateway-venue-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:26px}
.home-reservation-premium .reservation-gateway-venue-links a{display:inline-flex;align-items:center;gap:8px;color:#142434;font-size:.8rem;font-weight:800}
.home-reservation-premium .reservation-gateway-venue-links a span{color:#819900;transition:transform .18s ease}
.home-reservation-premium .reservation-gateway-venue-links a:hover span{transform:translateX(3px)}

.home-reservation-premium .reservation-gateway-updates{border-top:1px solid #e1e4de;color:#172333;background:#fff}
.home-reservation-premium .reservation-gateway-updates-inner{display:grid;grid-template-columns:220px minmax(0,1fr);gap:45px}
.home-reservation-premium .reservation-gateway-updates-title span{color:#829900}
.home-reservation-premium .reservation-gateway-updates-title h2{color:#172333;font-size:1.8rem}
.home-reservation-premium .reservation-gateway-update-list article{border:1px solid #e2e6e0;border-radius:14px;background:#fafbf8}
.home-reservation-premium .reservation-gateway-update-list time{color:#819900}
.home-reservation-premium .reservation-gateway-update-list h3{color:#172333}
.home-reservation-premium .reservation-gateway-update-list p{color:#68737d}
.home-reservation-premium .site-footer{border-top:0;background:#061522}

@media(max-width:1050px){
  .home-reservation-premium .reservation-gateway-hero{padding-top:128px}
  .home-reservation-premium .reservation-gateway-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-reservation-premium .reservation-gateway-card-events{grid-column:1/-1}
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{aspect-ratio:16/6.5}
  .home-reservation-premium .reservation-gateway-process-grid{grid-template-columns:1fr;gap:14px;padding:28px 0}
  .home-reservation-premium .reservation-gateway-process-intro>strong{max-width:none}
  .home-reservation-premium .reservation-gateway-venue-grid{gap:38px}
}
@media(max-width:950px){
  .home-reservation-premium .site-header .site-nav,
  .home-reservation-premium .site-header.scrolled .site-nav{background:rgba(5,18,30,.985);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 22px 40px rgba(0,0,0,.25)}
  .home-reservation-premium .site-header .site-nav>a:not(.btn),
  .home-reservation-premium .site-header.scrolled .site-nav>a:not(.btn){color:#fff}
  .home-reservation-premium .reservation-gateway-venue-grid{grid-template-columns:1fr}
  .home-reservation-premium .reservation-gateway-venue-copy{max-width:680px}
}
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{padding:112px 0 42px}
  .home-reservation-premium .reservation-gateway-bg img{object-position:56% center}
  .home-reservation-premium .reservation-gateway-shade{background:linear-gradient(180deg,rgba(4,16,27,.6),rgba(4,16,27,.8) 37%,rgba(4,16,27,.98) 70%)}
  .home-reservation-premium .reservation-gateway-inner{gap:30px}
  .home-reservation-premium .reservation-gateway-heading h1{font-size:clamp(2.65rem,13vw,4.4rem)}
  .home-reservation-premium .reservation-gateway-heading p{font-size:.92rem}
  .home-reservation-premium .reservation-gateway-heading-actions{gap:16px}
  .home-reservation-premium .reservation-gateway-grid{grid-template-columns:1fr;gap:13px}
  .home-reservation-premium .reservation-gateway-card-events{grid-column:auto}
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{aspect-ratio:16/8.6}
  .home-reservation-premium .reservation-gateway-card-content{padding:20px}
  .home-reservation-premium .reservation-gateway-card-content>small{min-height:0}
  .home-reservation-premium .reservation-gateway-process ol{grid-template-columns:1fr}
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{padding:13px 0;border-left:0;border-top:1px solid #e3e6e0}
  .home-reservation-premium .reservation-gateway-process li:first-child{border-top:0}
  .home-reservation-premium .reservation-gateway-venue{padding:62px 0}
  .home-reservation-premium .reservation-gateway-venue-grid{gap:26px}
  .home-reservation-premium .reservation-gateway-updates-inner{grid-template-columns:1fr;gap:20px}
}
@media(max-width:500px){
  .home-reservation-premium .reservation-gateway-heading-actions{display:grid;justify-items:start}
  .home-reservation-premium .reservation-gateway-card-media{aspect-ratio:16/9.4}
  .home-reservation-premium .reservation-gateway-venue-links{display:grid;gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-media>img,
  .home-reservation-premium .reservation-gateway-card-link i,
  .home-reservation-premium .reservation-gateway-venue-image img{transition:none!important}
}

/* v1.2.82 — Minimal premium hero copy */
.home-reservation-premium .reservation-gateway-heading-minimal{max-width:920px}
.home-reservation-premium .reservation-gateway-heading-minimal h1{display:grid;gap:8px;max-width:920px}
.home-reservation-premium .reservation-gateway-heading-minimal h1>span{display:block;color:#fff;font-size:.64em;font-weight:760;letter-spacing:.035em;text-transform:uppercase}
.home-reservation-premium .reservation-gateway-heading-minimal h1>strong{display:block;color:var(--landing-accent);font-size:1em;font-weight:760}
@media(max-width:700px){.home-reservation-premium .reservation-gateway-heading-minimal h1>span{font-size:.58em}}

/* v1.2.83 — Compact premium hero hierarchy */
.home-reservation-premium .reservation-gateway-hero{
  padding:132px 0 88px;
}
.home-reservation-premium .reservation-gateway-inner{
  gap:36px;
}
.home-reservation-premium .reservation-gateway-heading-minimal{
  max-width:1120px;
  margin-inline:auto;
  text-align:center;
}
.home-reservation-premium .reservation-gateway-heading-minimal h1{
  display:grid;
  gap:5px;
  max-width:1120px;
  margin-inline:auto;
  font-size:clamp(2.6rem,4.15vw,4.65rem);
  line-height:1;
  letter-spacing:-.045em;
}
.home-reservation-premium .reservation-gateway-heading-minimal h1>span{
  display:block;
  color:#fff;
  font-size:1em;
  font-weight:760;
  letter-spacing:-.025em;
  text-transform:uppercase;
}
.home-reservation-premium .reservation-gateway-heading-minimal h1>strong{
  display:block;
  color:var(--landing-accent);
  font-size:.58em;
  font-weight:680;
  line-height:1.12;
  letter-spacing:-.025em;
}
@media(max-width:1050px){
  .home-reservation-premium .reservation-gateway-hero{padding:118px 0 72px}
  .home-reservation-premium .reservation-gateway-heading-minimal h1{font-size:clamp(2.45rem,5.2vw,4rem)}
  .home-reservation-premium .reservation-gateway-heading-minimal h1>strong{font-size:.64em}
}
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{padding:104px 0 56px}
  .home-reservation-premium .reservation-gateway-inner{gap:28px}
  .home-reservation-premium .reservation-gateway-heading-minimal h1{font-size:clamp(2.05rem,10vw,3.2rem);gap:6px}
  .home-reservation-premium .reservation-gateway-heading-minimal h1>strong{font-size:.7em;line-height:1.16}
}

/* ========================================================================== 
   v1.2.84 — Mobile booking flow refresh inspired by app-style reservation UIs
   ========================================================================== */
.reference-availability-calendar .visual-calendar-day.is-selected,
.reference-duration-buttons button.is-active,
.reference-time-card.is-selected{
  background:var(--brand-green)!important;
  border-color:var(--brand-green)!important;
  color:#071a33!important;
  box-shadow:0 12px 28px rgba(44,255,5,.18)!important;
}
.reference-availability-calendar .visual-calendar-day.is-today:not(.is-selected){
  box-shadow:inset 0 0 0 1px var(--brand-green-strong)!important;
}
.reference-availability-calendar .visual-calendar-nav{
  background:#edf3fb;
  color:#1f3a58;
}
.reference-availability-calendar .visual-calendar-nav:hover:not(:disabled){
  background:var(--brand-green);
  color:#071a33;
}
.reference-booking-type-summary small{
  display:block;
  max-width:28rem;
  color:#6d7580;
  font-size:.87rem;
  line-height:1.5;
}
.reference-back-button:hover{color:var(--brand-green-strong)}

@media(max-width:840px){
  .public-booking-modal-reference,
  .public-booking-dialog-reference,
  .public-booking-dialog-scroll-reference{
    background:#f5f5f7;
  }
  .public-booking-dialog-close-reference{
    top:calc(env(safe-area-inset-top,0px) + 14px);
    right:14px;
    width:42px;
    height:42px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    box-shadow:0 8px 20px rgba(6,23,46,.08);
    color:#8a8f96;
    font-size:2rem;
  }
  .reference-booking-scheduler{
    background:#f5f5f7;
  }
  .reference-booking-calendar-pane,
  .reference-booking-time-pane{
    background:#f5f5f7;
  }
  .reference-booking-calendar-pane{
    padding:calc(env(safe-area-inset-top,0px) + 34px) 22px 22px;
    border-bottom:0;
  }
  .reference-booking-time-pane{
    padding:18px 22px calc(env(safe-area-inset-bottom,0px) + 24px);
  }
  .reference-booking-type-summary{
    gap:12px;
    margin-bottom:20px;
  }
  .reference-booking-type-icon{
    width:72px;
    height:72px;
    font-size:2rem;
    background:#fff;
    box-shadow:0 10px 28px rgba(6,23,46,.08), inset 0 0 0 1px #e5e8ec;
  }
  .reference-booking-type-summary strong{
    font-size:1.9rem;
    letter-spacing:0;
    line-height:1.05;
    text-transform:none;
    color:#222b34;
  }
  .reference-booking-type-summary small{
    max-width:34rem;
    margin-top:-2px;
    font-size:.98rem;
    color:#616771;
  }
  .reference-availability-calendar{
    padding:18px 14px 12px!important;
    border-radius:22px;
    background:#fff!important;
    box-shadow:0 14px 34px rgba(6,23,46,.06);
  }
  .reference-availability-calendar .visual-calendar-header{
    margin-bottom:20px;
    padding:0;
  }
  .reference-availability-calendar .visual-calendar-header strong{
    font-size:1.1rem;
    font-weight:700;
  }
  .reference-availability-calendar .visual-calendar-nav{
    width:48px;
    height:48px;
    font-size:1.7rem;
  }
  .reference-availability-calendar .visual-calendar-weekdays{
    gap:8px;
    margin-bottom:12px;
  }
  .reference-availability-calendar .visual-calendar-weekdays span{
    font-size:.72rem;
    color:#2b3138;
    font-weight:600;
  }
  .reference-availability-calendar .visual-calendar-grid{
    gap:10px;
  }
  .reference-availability-calendar .visual-calendar-day{
    min-height:46px;
    height:46px;
    font-size:1rem;
    font-weight:600;
  }
  .reference-duration-picker{
    gap:12px;
    margin-bottom:18px;
    padding-right:0;
  }
  .reference-duration-picker>label,
  .reference-time-label{
    color:#5d6570;
    font-size:1rem;
    font-weight:700;
  }
  .reference-duration-buttons{
    gap:12px;
  }
  .reference-duration-buttons button,
  .reference-duration-buttons select{
    height:56px;
    border-radius:16px;
    font-size:1rem;
    border-color:#d9dce1;
    background:#f2f3f5;
    color:#555d67;
  }
  .reference-time-list-wrap{
    grid-template-columns:76px minmax(0,1fr);
    gap:12px;
  }
  .reference-time-list{
    gap:12px;
    overflow:visible;
    max-height:none;
    padding:0;
  }
  .reference-time-row{
    grid-template-columns:76px minmax(0,1fr);
    gap:12px;
  }
  .reference-time-start{
    font-size:1rem;
    font-weight:800;
    color:#111822;
    text-align:left;
  }
  .reference-time-card{
    min-height:80px;
    padding:12px 16px;
    border-radius:18px;
    border:1px solid #e0e3e8;
    background:#ececec;
    color:#757b84;
    justify-items:center;
  }
  .reference-time-card strong{
    font-size:1.1rem;
    font-weight:700;
  }
  .reference-time-card small{
    font-size:.9rem;
    opacity:.95;
  }
  .reference-time-empty{
    min-height:84px;
    border-radius:16px;
    background:#fff;
    border:1px dashed #d9dfe6;
    padding:16px;
  }
  .reference-schedule-actions{
    position:sticky;
    bottom:0;
    z-index:3;
    margin-top:18px;
    padding:14px 0 calc(env(safe-area-inset-bottom,0px) + 4px);
    border-top:0;
    background:linear-gradient(180deg,rgba(245,245,247,0),#f5f5f7 22%);
  }
  .reference-schedule-actions .btn,
  .reservation-step-actions .btn{
    min-height:52px;
    border-radius:15px;
  }
  .reference-back-button{
    min-height:48px;
    padding:0 10px;
    color:#325fba;
    font-size:1rem;
    font-weight:700;
  }
  .reservation-step-card-reference [data-form-step="3"],
  .reservation-step-card-reference [data-form-step="4"]{
    padding:calc(env(safe-area-inset-top,0px) + 56px) 20px calc(env(safe-area-inset-bottom,0px) + 28px);
    background:#f5f5f7;
  }
  .reservation-step-card-reference [data-form-step="3"] .form-grid,
  .reservation-step-card-reference [data-form-step="4"] .form-grid,
  .reservation-step-card-reference [data-form-step="4"] .payment-choice-grid{
    grid-template-columns:1fr;
  }
  .reservation-step-card-reference [data-form-step="3"] .form-group,
  .reservation-step-card-reference [data-form-step="4"] .form-group,
  .payment-choice{
    border-radius:18px;
  }
  .reservation-step-card-reference [data-form-step="3"] .form-grid,
  .reservation-step-card-reference [data-form-step="4"] .form-grid{
    gap:16px;
  }
  .reservation-step-actions{
    position:sticky;
    bottom:0;
    padding-top:16px;
    background:linear-gradient(180deg,rgba(245,245,247,0),#f5f5f7 24%);
  }
}

@media(max-width:520px){
  .public-booking-type-screen{
    min-height:100svh;
    padding:calc(env(safe-area-inset-top,0px) + 60px) 18px calc(env(safe-area-inset-bottom,0px) + 24px);
    background:#f5f5f7;
  }
  .booking-type-picker-reference{
    width:100%;
  }
  .booking-type-grid-reference{
    gap:12px;
  }
  .booking-type-card-reference{
    min-height:92px!important;
    padding:18px 16px!important;
    border-radius:18px!important;
    background:#fff!important;
    box-shadow:0 10px 24px rgba(6,23,46,.04)!important;
  }
  .booking-type-card-reference .booking-type-icon{
    width:48px;
    height:48px;
    background:#eff4f8;
  }
  .reference-booking-calendar-pane{
    padding-left:16px;
    padding-right:16px;
  }
  .reference-booking-time-pane{
    padding-left:16px;
    padding-right:16px;
  }
  .reference-booking-type-summary strong{
    font-size:1.65rem;
  }
  .reference-booking-type-summary small{
    font-size:.92rem;
  }
  .reference-duration-buttons{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reference-duration-buttons select{
    grid-column:1/-1;
  }
  .reference-time-list-wrap,
  .reference-time-row{
    grid-template-columns:1fr;
  }
  .reference-time-label{display:none}
  .reference-time-start{
    margin:0 0 -2px 2px;
  }
}

/* ========================================================================== 
   v1.2.85 — Two-screen mobile scheduler: Choose Date -> Choose Time
   ========================================================================== */
.mobile-schedule-duration,.mobile-time-toolbar,.mobile-schedule-date-help{display:none}

@media(max-width:840px){
  .reference-booking-scheduler[data-mobile-schedule-view="date"] .reference-booking-time-pane{display:none}
  .reference-booking-scheduler[data-mobile-schedule-view="time"] .reference-booking-calendar-pane{display:none}

  .reference-booking-calendar-pane,
  .reference-booking-time-pane{
    min-height:100dvh;
    min-height:100svh;
  }
  .reference-booking-calendar-pane{
    display:block;
    padding-top:calc(env(safe-area-inset-top,0px) + 76px);
  }
  .reference-booking-time-pane{
    display:block;
    padding-top:calc(env(safe-area-inset-top,0px) + 74px);
  }
  .mobile-schedule-duration{
    display:grid;
    gap:12px;
    width:min(620px,100%);
    margin:0 auto 24px;
  }
  .mobile-schedule-duration>label{
    color:#252a31;
    font-size:1.05rem;
    font-weight:700;
  }
  .mobile-schedule-duration-buttons{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
  }
  .mobile-schedule-duration-buttons button,
  .mobile-schedule-duration-buttons select{
    min-width:0;
    min-height:50px;
    border:1px solid #d8dbe0;
    border-radius:13px;
    background:#f3f3f4;
    color:#555b64;
    font:inherit;
    font-size:.9rem;
    text-align:center;
  }
  .mobile-schedule-duration-buttons button.is-active{
    border-color:#b7bec7;
    background:#dedfe2;
    color:#11151a;
    font-weight:700;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.03);
  }
  .mobile-schedule-duration-buttons select{display:none}

  .reference-booking-time-pane>.reference-duration-picker{display:none}
  .mobile-schedule-date-help{
    display:block;
    margin:15px auto 0;
    color:#8a8f97;
    font-size:.82rem;
    text-align:center;
  }
  .mobile-time-toolbar{
    display:grid;
    justify-items:center;
    gap:10px;
    margin:0 0 24px;
    text-align:center;
  }
  .mobile-back-to-dates{
    justify-self:start;
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:42px;
    margin-bottom:2px;
    padding:0 6px 0 0;
    border:0;
    background:transparent;
    color:#2f65bc;
    font:inherit;
    font-size:1rem;
    font-weight:650;
    cursor:pointer;
  }
  .mobile-back-to-dates span{
    display:grid;
    place-items:center;
    width:26px;
    height:26px;
    border:2px solid currentColor;
    border-radius:999px;
    font-size:1.25rem;
    line-height:1;
  }
  .mobile-time-toolbar h2{
    margin:0;
    color:#60636a;
    font-family:Inter,Arial,sans-serif;
    font-size:1.35rem;
    font-weight:500;
  }
  .mobile-time-toolbar>p{
    min-height:1.25rem;
    margin:-2px 0 4px;
    color:#999da4;
    font-size:.86rem;
  }
  .mobile-time-type-card{
    display:grid;
    justify-items:center;
    gap:5px;
    width:min(470px,100%);
    padding:20px 18px;
    border:1px solid #d9dce1;
    border-radius:18px;
    background:#f8f8f9;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);
  }
  .mobile-time-type-card>span{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    font-size:1.45rem;
  }
  .mobile-time-type-card>strong{
    color:#12161b;
    font-size:1.15rem;
  }
  .mobile-time-type-card>small{
    color:#868b92;
    font-size:.86rem;
  }

  /* Calendar closer to the iPhone reference: airy, flat, circular selection. */
  .reference-availability-calendar{
    width:min(620px,100%);
    margin:0 auto;
    padding:14px 4px 8px!important;
    border-radius:0;
    background:transparent!important;
    box-shadow:none;
  }
  .reference-availability-calendar .visual-calendar-header{
    grid-template-columns:52px 1fr 52px;
    margin:0 0 18px;
  }
  .reference-availability-calendar .visual-calendar-header strong{
    color:#272b31;
    font-size:1.12rem;
    font-weight:600;
  }
  .reference-availability-calendar .visual-calendar-nav{
    width:48px;
    height:48px;
    border-radius:16px;
    background:#e5ebf4;
    color:#2d67c5;
    box-shadow:none;
  }
  .reference-availability-calendar .visual-calendar-nav:disabled{
    opacity:.36;
  }
  .reference-availability-calendar .visual-calendar-weekdays{
    margin-bottom:8px;
  }
  .reference-availability-calendar .visual-calendar-weekdays span{
    color:#30343a;
    font-size:.72rem;
    font-weight:500;
  }
  .reference-availability-calendar .visual-calendar-grid{
    gap:6px 8px;
  }
  .reference-availability-calendar .visual-calendar-day{
    min-height:48px;
    height:48px;
    border-radius:999px;
    color:#282c32;
    font-size:1rem;
    font-weight:500;
  }
  .reference-availability-calendar .visual-calendar-day.is-selected{
    background:var(--brand-green)!important;
    color:#071a33!important;
    box-shadow:0 7px 18px rgba(44,255,5,.2)!important;
    font-weight:800;
  }
  .reference-availability-calendar .visual-calendar-day.is-disabled{
    color:#a8abb0!important;
    opacity:.5;
  }
  .reference-availability-calendar .visual-calendar-day.is-disabled:not(.is-unavailable-date){
    text-decoration:line-through;
    text-decoration-thickness:1px;
  }

  /* The time screen becomes a simple vertical list like a native booking app. */
  .reference-time-list-wrap{
    width:min(620px,100%);
    margin:0 auto;
    grid-template-columns:92px minmax(0,1fr);
    gap:12px;
  }
  .reference-time-list{
    gap:12px;
  }
  .reference-time-row{
    grid-template-columns:92px minmax(0,1fr);
    gap:12px;
  }
  .reference-time-start{
    align-self:center;
    color:#111419;
    font-size:1rem;
    font-weight:700;
    white-space:normal;
  }
  .reference-time-card{
    min-height:78px;
    border:0;
    border-radius:13px;
    background:#e9e9ea;
    color:#777b81;
    box-shadow:0 4px 11px rgba(0,0,0,.035);
  }
  .reference-time-card:hover{
    background:#dfdfe1;
  }
  .reference-time-card.is-selected{
    background:var(--brand-green)!important;
    color:#071a33!important;
    box-shadow:0 8px 20px rgba(44,255,5,.2)!important;
  }
  .reference-time-card strong{
    font-size:1.08rem;
  }
  .reference-time-card small{
    font-size:.78rem;
  }
  .reference-schedule-actions{
    width:min(620px,100%);
    margin-left:auto;
    margin-right:auto;
    justify-content:flex-end;
  }
  .reference-schedule-actions .reference-back-button{display:none}
  .reference-schedule-actions .btn{
    width:100%;
    min-height:54px;
    color:#071a33;
  }
}

@media(max-width:520px){
  .reference-booking-calendar-pane,
  .reference-booking-time-pane{
    padding-left:18px;
    padding-right:18px;
  }
  .mobile-schedule-duration-buttons{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .mobile-schedule-duration-buttons select{
    display:block;
    grid-column:1/-1;
    width:100%;
  }
  .reference-booking-type-icon{
    width:62px;
    height:62px;
  }
  .reference-booking-type-summary strong{
    font-size:1.55rem;
  }
  .reference-booking-type-summary small{
    font-size:.88rem;
  }
  .reference-availability-calendar .visual-calendar-grid{
    gap:4px;
  }
  .reference-availability-calendar .visual-calendar-day{
    min-height:42px;
    height:42px;
    font-size:.93rem;
  }
  .mobile-time-toolbar h2{
    font-size:1.2rem;
  }
  .reference-time-list-wrap,
  .reference-time-row{
    grid-template-columns:76px minmax(0,1fr);
  }
  .reference-time-start{
    font-size:.92rem;
  }
}

@media(max-width:380px){
  .reference-booking-calendar-pane,
  .reference-booking-time-pane{
    padding-left:14px;
    padding-right:14px;
  }
  .reference-availability-calendar .visual-calendar-grid{
    gap:2px;
  }
  .reference-availability-calendar .visual-calendar-day{
    min-height:39px;
    height:39px;
    font-size:.88rem;
  }
  .reference-time-list-wrap,
  .reference-time-row{
    grid-template-columns:68px minmax(0,1fr);
    gap:9px;
  }
}

/* v1.2.86 - Mobile QA fix: keep the time-slot list full-width on phones.
   The outer Time label is hidden <=520px, so the list must span the full
   wrapper instead of falling into the wrapper's narrow label column. */
@media(max-width:520px){
  .reference-time-list-wrap{
    grid-template-columns:1fr;
  }
  .reference-time-list{
    grid-column:1/-1;
    width:100%;
    min-width:0;
  }
}

/* ========================================================================== 
   v1.2.87 — Compact homepage reservation menus on phones
   Keep the rich desktop/tablet cards, but turn the three primary booking
   choices into short horizontal menu cards so all three are quickly visible.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding:86px 0 calc(var(--mobile-bottom-nav-height) + 26px);
    min-height:calc(100svh - var(--mobile-bottom-nav-height));
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:20px;
  }
  .home-reservation-premium .reservation-gateway-heading-minimal h1{
    font-size:clamp(1.95rem,9vw,2.85rem);
    gap:5px;
    line-height:1.02;
  }
  .home-reservation-premium .reservation-gateway-heading-minimal h1>strong{
    max-width:22ch;
    margin-inline:auto;
    font-size:.66em;
    line-height:1.12;
  }
  .home-reservation-premium .reservation-gateway-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    grid-column:auto;
    grid-template-columns:minmax(112px,38%) minmax(0,1fr);
    grid-template-rows:1fr;
    min-height:122px;
    max-height:138px;
    border-radius:16px;
  }
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    grid-column:1;
    grid-row:1;
    width:100%;
    height:100%;
    min-height:122px;
    aspect-ratio:auto;
  }
  .home-reservation-premium .reservation-gateway-card-media>img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media>img{object-position:48% center}
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{object-position:50% 38%}
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media>img{object-position:50% center}
  .home-reservation-premium .reservation-gateway-card-media-shade{
    background:linear-gradient(90deg,rgba(4,15,25,.02),rgba(4,15,25,.12) 64%,rgba(4,15,25,.36));
  }
  .home-reservation-premium .reservation-gateway-card-icon{
    left:10px;
    bottom:10px;
    width:34px;
    height:34px;
    border-radius:9px;
  }
  .home-reservation-premium .reservation-gateway-card-icon svg{
    width:19px;
    height:19px;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    grid-column:2;
    grid-row:1;
    align-content:center;
    gap:4px;
    min-width:0;
    padding:14px 15px 14px 16px;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    font-size:.56rem;
    letter-spacing:.11em;
    line-height:1.25;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    font-size:clamp(1rem,4.5vw,1.28rem);
    line-height:1.08;
    letter-spacing:-.025em;
  }
  .home-reservation-premium .reservation-gateway-card-content>small{
    display:none;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    margin-top:6px;
    padding-top:8px;
    font-size:.66rem;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:27px;
    height:27px;
    flex:0 0 27px;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:78px;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:17px;
  }
  .home-reservation-premium .reservation-gateway-heading-minimal h1{
    font-size:clamp(1.8rem,9.2vw,2.35rem);
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    grid-template-columns:minmax(102px,36%) minmax(0,1fr);
    min-height:112px;
    max-height:126px;
  }
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    min-height:112px;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    padding:12px 13px 12px 14px;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    font-size:.52rem;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    font-size:.61rem;
  }
}

/* ========================================================================== 
   v1.2.88 — Mobile featured court banner above compact reservation menus
   Reduces empty hero space on phones by using a content-driven hero height
   and introducing a featured basketball-court image above the 3 menu cards.
   ========================================================================== */
.home-reservation-premium .reservation-gateway-mobile-feature{display:none}
.home-reservation-premium .reservation-gateway-mobile-feature img{display:block;width:100%;height:100%;object-fit:cover}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding:86px 0 22px;
    min-height:auto;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:16px;
  }
  .home-reservation-premium .reservation-gateway-heading-minimal{
    max-width:640px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    display:block;
    aspect-ratio:16/8.6;
    overflow:hidden;
    border-radius:20px;
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 18px 44px rgba(0,0,0,.24);
    background:#0a1523;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    object-position:center 52%;
  }
  .home-reservation-premium .reservation-gateway-grid{
    gap:9px;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:78px;
    padding-bottom:18px;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:14px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/9.2;
    border-radius:17px;
  }
}

/* ========================================================================== 
   v1.2.89 — Mobile banner becomes the hero with overlaid brand headline
   ========================================================================== */
.home-reservation-premium .reservation-gateway-mobile-feature{position:relative;isolation:isolate}
.home-reservation-premium .reservation-gateway-mobile-feature-shade,
.home-reservation-premium .reservation-gateway-mobile-feature-copy{display:none}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:86px;
  }
  .home-reservation-premium .reservation-gateway-heading-minimal{
    display:none;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:14px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/11.2;
    border-radius:24px;
    overflow:hidden;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    object-position:center 54%;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    display:block;
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(3,10,20,.18) 0%,rgba(3,10,20,.42) 34%,rgba(3,10,20,.72) 100%);
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    display:grid;
    position:absolute;
    inset:0;
    z-index:2;
    gap:8px;
    align-content:center;
    justify-items:center;
    text-align:center;
    padding:18px 18px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy span{
    display:block;
    color:#fff;
    font-family:Montserrat,Inter,sans-serif;
    font-size:clamp(2rem,10vw,3rem);
    font-weight:900;
    line-height:.96;
    letter-spacing:-.055em;
    text-transform:uppercase;
    text-shadow:0 14px 34px rgba(0,0,0,.38);
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy strong{
    display:block;
    max-width:12ch;
    color:var(--landing-accent);
    font-family:Montserrat,Inter,sans-serif;
    font-size:clamp(1.1rem,5.6vw,1.65rem);
    font-weight:800;
    line-height:1.04;
    letter-spacing:-.03em;
    text-shadow:0 10px 28px rgba(0,0,0,.34);
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:78px;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:12px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/11.8;
    border-radius:20px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    inset:0;
    gap:8px;
    padding:16px 15px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy span{
    font-size:clamp(1.82rem,10.2vw,2.5rem);
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy strong{
    font-size:clamp(1rem,5.8vw,1.38rem);
    max-width:10ch;
  }
}

/* ========================================================================== 
   v1.2.90 — Final homepage hero headline color/order refinement
   ========================================================================== */
.home-reservation-premium .reservation-gateway-heading-minimal h1>span{
  color:var(--landing-accent);
}
.home-reservation-premium .reservation-gateway-heading-minimal h1>strong{
  color:#fff;
  white-space:nowrap;
}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy span{
    color:var(--landing-accent);
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy strong{
    max-width:none;
    color:#fff;
    white-space:nowrap;
    font-size:clamp(.84rem,4.15vw,1.35rem);
    line-height:1.08;
    letter-spacing:-.025em;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy strong{
    max-width:none;
    font-size:clamp(.78rem,4vw,1rem);
    white-space:nowrap;
  }
}

/* ========================================================================== 
   v1.2.91 — Mobile hero logo above centered headline
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:7px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo{
    display:block;
    width:92px;
    height:auto;
    max-height:66px;
    margin:0 auto 3px;
    object-fit:contain;
    object-position:center;
    filter:drop-shadow(0 8px 18px rgba(0,0,0,.34));
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:5px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo{
    width:78px;
    max-height:58px;
    margin-bottom:2px;
  }
}


@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-logo{width:112px;height:auto;margin-bottom:10px}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{gap:8px;padding:18px 18px}
}
@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-logo{width:96px;height:auto;margin-bottom:8px}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{padding:16px 15px}
}

/* ========================================================================== 
   v1.2.92 — Rebalance mobile hero logo proportions
   Make the logo visually proportionate to the hero headline.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:10px;
    padding:16px 18px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo,
  .home-reservation-premium .reservation-gateway-mobile-feature-logo{
    width:min(40vw, 156px)!important;
    max-width:156px;
    max-height:none!important;
    height:auto;
    margin:0 auto 8px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy span{
    font-size:clamp(2.08rem, 10vw, 3.12rem);
    line-height:.94;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy strong{
    max-width:none;
    font-size:clamp(1rem, 4.55vw, 1.42rem);
    line-height:1.06;
    white-space:nowrap;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:8px;
    padding:14px 14px;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo,
  .home-reservation-premium .reservation-gateway-mobile-feature-logo{
    width:min(39vw, 134px)!important;
    max-width:134px;
    margin-bottom:6px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy span{
    font-size:clamp(1.92rem, 10vw, 2.7rem);
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy strong{
    font-size:clamp(.92rem, 4.4vw, 1.18rem);
  }
}

/* ========================================================================== 
   v1.2.93 — Premium motion system
   Purposeful entrance, selection, and interaction motion. No continuous loops.
   ========================================================================== */
@keyframes tlhPremiumHeroImageIn{
  0%{opacity:.72;transform:scale(1.065);filter:saturate(.9) brightness(.84)}
  100%{opacity:1;transform:scale(1);filter:none}
}
@keyframes tlhPremiumLogoIn{
  0%{opacity:0;transform:translateY(10px) scale(.82)}
  70%{opacity:1;transform:translateY(-2px) scale(1.025)}
  100%{opacity:1;transform:none}
}
@keyframes tlhPremiumTitleIn{
  0%{opacity:0;transform:translateY(18px)}
  100%{opacity:1;transform:none}
}
@keyframes tlhPremiumSubtitleIn{
  0%{opacity:0;transform:translateY(12px)}
  100%{opacity:1;transform:none}
}
@keyframes tlhPremiumCardIn{
  0%{opacity:0;transform:translateY(22px) scale(.985)}
  100%{opacity:1;transform:none}
}
@keyframes tlhBookingStepInPremium{
  0%{opacity:0;transform:translateY(10px) scale(.995)}
  100%{opacity:1;transform:none}
}
@keyframes tlhSelectionPop{
  0%{transform:scale(.94)}
  65%{transform:scale(1.035)}
  100%{transform:scale(1)}
}

/* Homepage hero entrance — desktop/tablet heading. */
.home-reservation-premium .reservation-gateway-heading-minimal h1>span{
  animation:tlhPremiumTitleIn .62s .12s cubic-bezier(.2,.78,.2,1) both;
}
.home-reservation-premium .reservation-gateway-heading-minimal h1>strong{
  animation:tlhPremiumSubtitleIn .58s .25s cubic-bezier(.2,.78,.2,1) both;
}

/* Mobile court-banner hero entrance. */
.home-reservation-premium .reservation-gateway-mobile-feature img{
  animation:tlhPremiumHeroImageIn .95s cubic-bezier(.2,.75,.2,1) both;
  transform-origin:center center;
}
.home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo{
  animation:tlhPremiumLogoIn .58s .12s cubic-bezier(.2,.82,.2,1) both;
}
.home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
  animation:tlhPremiumTitleIn .56s .25s cubic-bezier(.2,.78,.2,1) both;
}
.home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
  animation:tlhPremiumSubtitleIn .52s .37s cubic-bezier(.2,.78,.2,1) both;
}

/* Primary reservation choices arrive in a short stagger. */
.home-reservation-premium .reservation-gateway-card{
  animation:tlhPremiumCardIn .54s cubic-bezier(.2,.76,.2,1) both;
  will-change:transform;
}
.home-reservation-premium .reservation-gateway-card:nth-child(1){animation-delay:.34s}
.home-reservation-premium .reservation-gateway-card:nth-child(2){animation-delay:.42s}
.home-reservation-premium .reservation-gateway-card:nth-child(3){animation-delay:.50s}
.home-reservation-premium .reservation-gateway-card:active{
  transform:scale(.985);
  transition-duration:.08s;
}
.home-reservation-premium .reservation-gateway-card-link i{
  transition:transform .2s cubic-bezier(.2,.8,.2,1),background-color .2s ease;
}
.home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-link i,
.home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-link i{
  transform:translateX(4px);
}

/* Slightly richer reveal for sections that enter as the user scrolls. */
.home-reservation-premium .tlh-reveal{
  transform:translateY(24px);
  transition-duration:.58s;
  transition-timing-function:cubic-bezier(.2,.75,.2,1);
}
.home-reservation-premium .tlh-reveal.is-visible{transform:none}

/* Booking flow transitions and selection feedback. */
.reservation-step-panel.is-active{
  animation:tlhBookingStepInPremium .28s cubic-bezier(.2,.78,.2,1) both;
}
.public-reference-schedule-panel.is-active{
  animation:tlhBookingStepInPremium .28s cubic-bezier(.2,.78,.2,1) both!important;
}
.reference-availability-calendar .visual-calendar-day.is-selected,
.reference-time-card.is-selected,
.reference-duration-buttons button.is-active,
.booking-type-card.is-selected{
  animation:tlhSelectionPop .22s cubic-bezier(.2,.85,.25,1) both;
}

/* Button feedback: tactile, but never pulsing. */
.btn-primary{
  transition:transform .16s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;
}
.btn-primary:hover,
.btn-primary:focus-visible{
  box-shadow:0 14px 32px rgba(44,255,5,.25);
}
.btn-primary:active{transform:scale(.975)}

/* Avoid compositing cost after the hero entrance is complete on small devices. */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-card{
    animation-duration:.46s;
  }
  .home-reservation-premium .reservation-gateway-card:nth-child(1){animation-delay:.42s}
  .home-reservation-premium .reservation-gateway-card:nth-child(2){animation-delay:.49s}
  .home-reservation-premium .reservation-gateway-card:nth-child(3){animation-delay:.56s}
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-heading-minimal h1>span,
  .home-reservation-premium .reservation-gateway-heading-minimal h1>strong,
  .home-reservation-premium .reservation-gateway-mobile-feature img,
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo,
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span,
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong,
  .home-reservation-premium .reservation-gateway-card,
  .reservation-step-panel.is-active,
  .public-reference-schedule-panel.is-active,
  .reference-availability-calendar .visual-calendar-day.is-selected,
  .reference-time-card.is-selected,
  .reference-duration-buttons button.is-active,
  .booking-type-card.is-selected{
    animation:none!important;
    transform:none!important;
  }
}

/* ========================================================================== 
   v1.2.94 — Balanced booking-type chooser layout
   ========================================================================== */
.booking-type-intro{display:grid;justify-items:center;gap:7px;margin:0 auto 28px;text-align:center}
.booking-type-intro>span{color:var(--green-dark);font-size:.7rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.booking-type-intro h2{margin:0;color:var(--navy);font-size:clamp(1.8rem,3vw,2.35rem);letter-spacing:-.035em}
.booking-type-intro p{max-width:520px;margin:0;color:var(--muted);font-size:.92rem;line-height:1.55}
.booking-type-footnote{margin:18px 0 0;text-align:center;color:#83909d;font-size:.76rem}
.booking-type-card-reference>i{display:grid;place-items:center;width:30px;height:30px;margin-top:3px;border-radius:999px;background:#eef3f7;color:#617180;font-style:normal;font-weight:900;transition:transform .18s ease,background .18s ease,color .18s ease}
.booking-type-card-reference:hover>i,.booking-type-card-reference:focus-visible>i,.booking-type-card-reference.is-selected>i{transform:translateX(2px);background:var(--green);color:var(--navy)}

@media(min-width:841px){
  .public-booking-dialog-reference{
    width:min(860px,calc(100vw - 48px));
    max-height:min(88vh,620px);
    border-radius:22px;
  }
  .public-booking-dialog-scroll-reference{
    max-height:min(88vh,620px);
  }
  .public-booking-type-screen{
    min-height:0;
    padding:66px 48px 48px;
  }
  .booking-type-picker-reference{
    width:min(720px,100%);
  }
  .booking-type-grid-reference{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
  }
  .booking-type-card-reference{
    position:relative;
    min-height:205px!important;
    align-content:center;
    gap:10px!important;
    padding:26px 20px 22px!important;
    border-radius:20px!important;
    border-color:#d9e2ea!important;
    background:#fff!important;
    box-shadow:0 10px 28px rgba(6,23,46,.045)!important;
  }
  .booking-type-card-reference:hover,
  .booking-type-card-reference:focus-visible{
    transform:translateY(-4px)!important;
    border-color:rgba(44,255,5,.7)!important;
    box-shadow:0 18px 36px rgba(6,23,46,.1)!important;
  }
  .booking-type-card-reference.is-selected{
    border-color:var(--green)!important;
    background:linear-gradient(180deg,rgba(44,255,5,.055),#fff 72%)!important;
    box-shadow:0 0 0 2px rgba(44,255,5,.11),0 16px 34px rgba(6,23,46,.08)!important;
  }
  .booking-type-card-reference .booking-type-icon{
    width:68px;
    height:68px;
    margin-bottom:2px;
    border-radius:20px;
    background:#eef3f7;
    font-size:1.8rem;
    transition:transform .18s ease,background .18s ease;
  }
  .booking-type-card-reference:hover .booking-type-icon,
  .booking-type-card-reference:focus-visible .booking-type-icon{
    transform:scale(1.05);
  }
  .booking-type-card-reference.is-selected .booking-type-icon{
    background:var(--green);
    color:var(--navy);
  }
  .booking-type-card-reference strong{
    font-size:1.04rem!important;
  }
  .booking-type-card-reference small{
    display:block!important;
    color:#7b8793;
    font-size:.76rem;
    line-height:1.35;
  }
}

@media(max-width:840px){
  .booking-type-intro{margin-bottom:22px;padding:0 4px}
  .booking-type-intro h2{font-size:1.65rem}
  .booking-type-intro p{font-size:.88rem}
  .booking-type-card-reference{position:relative}
  .booking-type-card-reference>i{margin-left:auto;margin-top:0;grid-column:3;grid-row:1/3;align-self:center}
  .booking-type-card-reference small{display:block!important;justify-self:start;color:var(--muted);font-size:.75rem}
  .booking-type-footnote{margin-top:16px}
}

@media(max-width:520px){
  .booking-type-intro{margin-bottom:18px}
  .booking-type-intro>span{font-size:.64rem}
  .booking-type-intro h2{font-size:1.5rem}
  .booking-type-intro p{max-width:29ch;font-size:.82rem}
  .booking-type-card-reference{grid-template-columns:auto minmax(0,1fr) auto!important;row-gap:3px!important}
  .booking-type-card-reference strong{grid-column:2;grid-row:1;align-self:end!important}
  .booking-type-card-reference small{grid-column:2;grid-row:2}
  .booking-type-card-reference .booking-type-icon{grid-column:1;grid-row:1/3}
}

/* ========================================================================== 
   v1.2.95 — Hero booking menu heading on desktop + mobile
   ========================================================================== */
.home-reservation-premium .reservation-gateway-menu-heading{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:2px 0 -2px;
  text-align:center;
}
.home-reservation-premium .reservation-gateway-menu-heading::before,
.home-reservation-premium .reservation-gateway-menu-heading::after{
  content:"";
  width:42px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(44,255,5,.72));
}
.home-reservation-premium .reservation-gateway-menu-heading::after{
  background:linear-gradient(90deg,rgba(44,255,5,.72),transparent);
}
.home-reservation-premium .reservation-gateway-menu-heading span{
  color:var(--landing-accent, #2CFF05);
  font-family:Montserrat,Inter,sans-serif;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.15em;
  line-height:1.2;
  text-transform:uppercase;
  text-shadow:0 8px 24px rgba(0,0,0,.28);
}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-menu-heading{
    gap:9px;
    margin:0 0 -1px;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before,
  .home-reservation-premium .reservation-gateway-menu-heading::after{
    width:28px;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:.67rem;
    letter-spacing:.13em;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:.62rem;
    letter-spacing:.11em;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before,
  .home-reservation-premium .reservation-gateway-menu-heading::after{
    width:22px;
  }
}

/* ========================================================================== 
   v1.2.96 — Larger hero booking menu heading
   ========================================================================== */
.home-reservation-premium .reservation-gateway-menu-heading{
  gap:16px;
  margin:8px 0 6px;
}
.home-reservation-premium .reservation-gateway-menu-heading::before,
.home-reservation-premium .reservation-gateway-menu-heading::after{
  width:64px;
  height:2px;
}
.home-reservation-premium .reservation-gateway-menu-heading span{
  font-size:clamp(1.15rem,2vw,1.55rem);
  font-weight:900;
  letter-spacing:.07em;
  line-height:1.08;
}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-menu-heading{
    gap:12px;
    margin:5px 0 4px;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before,
  .home-reservation-premium .reservation-gateway-menu-heading::after{
    width:38px;
    height:2px;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1rem,4.8vw,1.28rem);
    letter-spacing:.055em;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-menu-heading::before,
  .home-reservation-premium .reservation-gateway-menu-heading::after{
    width:28px;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(.98rem,5vw,1.16rem);
    letter-spacing:.045em;
  }
}

/* ========================================================================== 
   v1.2.98 — Mobile homepage UX refinement
   Shorter hero, cleaner brand lockup, calmer booking heading, simplified cards,
   and a softer transition into the informational content below.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding:78px 0 18px!important;
    min-height:auto!important;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:12px!important;
  }

  /* Shorter court hero so booking choices arrive sooner. */
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/8.9!important;
    border-radius:20px!important;
    box-shadow:0 14px 34px rgba(0,0,0,.22)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    object-position:center 52%!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    background:linear-gradient(180deg,rgba(3,10,20,.15),rgba(3,10,20,.34) 42%,rgba(3,10,20,.67))!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:5px!important;
    padding:10px 16px!important;
  }

  /* Show only the J/house mark from the full lockup to avoid repeating the name. */
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo,
  .home-reservation-premium .reservation-gateway-mobile-feature-logo{
    width:min(27vw,104px)!important;
    max-width:104px!important;
    max-height:none!important;
    height:auto!important;
    clip-path:inset(0 0 21% 0);
    margin:0 auto -12px!important;
    filter:drop-shadow(0 7px 16px rgba(0,0,0,.30));
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
    color:#2CFF05!important;
    font-size:clamp(1.95rem,8.8vw,2.72rem)!important;
    line-height:.94!important;
    letter-spacing:-.05em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    color:#fff!important;
    max-width:none!important;
    font-size:clamp(.88rem,3.75vw,1.12rem)!important;
    line-height:1.08!important;
    letter-spacing:-.025em!important;
    white-space:nowrap!important;
  }

  /* Clear section cue without competing with the hero title. */
  .home-reservation-premium .reservation-gateway-menu-heading{
    display:block!important;
    margin:8px 0 5px!important;
    text-align:center;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before,
  .home-reservation-premium .reservation-gateway-menu-heading::after{
    display:none!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.18rem,5.2vw,1.38rem)!important;
    line-height:1.08!important;
    letter-spacing:.035em!important;
    text-shadow:none!important;
  }

  /* Cleaner, tighter menu cards. The whole card is already the tap target. */
  .home-reservation-premium .reservation-gateway-grid{
    gap:10px!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    grid-template-columns:minmax(112px,38%) minmax(0,1fr)!important;
    min-height:112px!important;
    max-height:124px!important;
    border-radius:16px!important;
    border-color:rgba(255,255,255,.12)!important;
    box-shadow:0 12px 28px rgba(0,0,0,.17)!important;
  }
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    min-height:112px!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    position:relative;
    align-content:center!important;
    gap:5px!important;
    padding:12px 54px 12px 15px!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    color:rgba(255,255,255,.62)!important;
    font-size:.55rem!important;
    letter-spacing:.105em!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    font-size:clamp(1.08rem,4.65vw,1.34rem)!important;
    line-height:1.04!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>small{
    display:none!important;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    position:absolute;
    right:14px;
    top:50%;
    margin:0!important;
    padding:0!important;
    border:0!important;
    transform:translateY(-50%);
  }
  .home-reservation-premium .reservation-gateway-card-link-text{
    display:none!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
    box-shadow:0 7px 18px rgba(44,255,5,.16);
  }
  .home-reservation-premium .reservation-gateway-card-icon{
    width:32px!important;
    height:32px!important;
    left:10px!important;
    bottom:10px!important;
    border-radius:9px!important;
  }
  .home-reservation-premium .reservation-gateway-card-icon svg{
    width:18px!important;
    height:18px!important;
  }

  /* Softer hand-off from the dark booking area to the white process section. */
  .home-reservation-premium .reservation-gateway-process{
    position:relative;
    z-index:2;
    margin-top:-1px;
    border-radius:26px 26px 0 0;
    box-shadow:0 -12px 34px rgba(4,16,27,.08);
  }
  .home-reservation-premium .reservation-gateway-process-grid{
    padding-top:34px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:72px!important;
    padding-bottom:16px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/9.15!important;
    border-radius:18px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo,
  .home-reservation-premium .reservation-gateway-mobile-feature-logo{
    width:min(26vw,92px)!important;
    max-width:92px!important;
    margin-bottom:-11px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
    font-size:clamp(1.78rem,8.8vw,2.35rem)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    font-size:clamp(.79rem,3.7vw,.98rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.1rem,5.3vw,1.25rem)!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    grid-template-columns:minmax(104px,36%) minmax(0,1fr)!important;
    min-height:106px!important;
    max-height:116px!important;
    border-radius:15px!important;
  }
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    min-height:106px!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    padding:11px 50px 11px 13px!important;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    right:12px;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:31px!important;
    height:31px!important;
    flex-basis:31px!important;
  }
}

/* ========================================================================== 
   v1.2.100 — Mobile hero mark: show the complete logo artwork
   The previous full-lockup crop is not appropriate for the dedicated J mark.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    clip-path:none!important;
    width:min(27vw,104px)!important;
    max-width:104px!important;
    max-height:none!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0 auto 4px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    clip-path:none!important;
    width:min(26vw,92px)!important;
    max-width:92px!important;
    margin:0 auto 3px!important;
  }
}


/* ==========================================================================
   v1.2.101 — Restore Reservation Calendar in desktop compact navigation
   ========================================================================== */
@media(max-width:950px){
  .site-nav .desktop-reservation-calendar-link{display:none!important}
}

/* ========================================================================== 
   v1.2.102 — Premium homepage visual depth pass
   Deeper hero atmosphere, differentiated booking cards, softer section flow,
   and richer mobile presentation so the homepage feels less flat.
   ========================================================================== */
.home-reservation-premium .reservation-gateway-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 18%, rgba(44,255,5,.16), transparent 26%),
    radial-gradient(circle at 14% 92%, rgba(44,255,5,.08), transparent 24%),
    linear-gradient(180deg, rgba(255,255,255,.03), transparent 34%);
}
.home-reservation-premium .reservation-gateway-inner{position:relative;z-index:1}
.home-reservation-premium .reservation-gateway-heading-minimal h1,
.home-reservation-premium .reservation-gateway-mobile-feature-copy>span,
.home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
  text-shadow:0 14px 36px rgba(0,0,0,.34);
}
.home-reservation-premium .reservation-gateway-menu-heading{
  margin-bottom:0!important;
}
.home-reservation-premium .reservation-gateway-menu-subcopy{
  max-width:640px;
  margin:-2px auto 6px;
  text-align:center;
  color:rgba(255,255,255,.68);
  font-size:.84rem;
  line-height:1.6;
}

.home-reservation-premium .reservation-gateway-grid{
  align-items:stretch;
}
.home-reservation-premium .reservation-gateway-card{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 22px 54px rgba(0,0,0,.25);
}
.home-reservation-premium .reservation-gateway-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0) 26%, rgba(255,255,255,.04) 100%);
  opacity:.8;
}
.home-reservation-premium .reservation-gateway-card-content,
.home-reservation-premium .reservation-gateway-card-media,
.home-reservation-premium .reservation-gateway-card-link,
.home-reservation-premium .reservation-gateway-card-icon{position:relative;z-index:1}
.home-reservation-premium .reservation-gateway-card-media::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
}
.home-reservation-premium .reservation-gateway-card-media-shade{
  background:
    linear-gradient(180deg, rgba(4,15,25,.02), rgba(4,15,25,.18) 58%, rgba(4,15,25,.62)),
    radial-gradient(circle at 18% 82%, rgba(44,255,5,.18), transparent 40%);
}
.home-reservation-premium .reservation-gateway-card-icon{
  background:rgba(4,18,31,.62);
  box-shadow:0 10px 28px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.08);
}
.home-reservation-premium .reservation-gateway-card-link{
  border-top-color:rgba(255,255,255,.10);
}
.home-reservation-premium .reservation-gateway-card-link i{
  box-shadow:0 10px 24px rgba(44,255,5,.16);
}
.home-reservation-premium .reservation-gateway-card:hover,
.home-reservation-premium .reservation-gateway-card:focus-visible{
  transform:translateY(-6px);
  box-shadow:0 30px 68px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.06) inset;
}

.home-reservation-premium .reservation-gateway-card-basketball{--booking-accent:#66d0ff;--booking-accent-rgb:102,208,255}
.home-reservation-premium .reservation-gateway-card-volleyball{--booking-accent:#9c85ff;--booking-accent-rgb:156,133,255}
.home-reservation-premium .reservation-gateway-card-event,
.home-reservation-premium .reservation-gateway-card-events{--booking-accent:#ffd45f;--booking-accent-rgb:255,212,95}
.home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media-shade{
  background:
    linear-gradient(180deg, rgba(4,15,25,.02), rgba(4,15,25,.16) 54%, rgba(4,15,25,.62)),
    radial-gradient(circle at 18% 82%, rgba(102,208,255,.22), transparent 42%);
}
.home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media-shade{
  background:
    linear-gradient(180deg, rgba(4,15,25,.02), rgba(4,15,25,.16) 54%, rgba(4,15,25,.62)),
    radial-gradient(circle at 18% 82%, rgba(156,133,255,.22), transparent 42%);
}
.home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media-shade{
  background:
    linear-gradient(180deg, rgba(4,15,25,.02), rgba(4,15,25,.16) 54%, rgba(4,15,25,.62)),
    radial-gradient(circle at 18% 82%, rgba(255,212,95,.22), transparent 42%);
}
.home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-eyebrow,
.home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-icon{color:var(--booking-accent)}
.home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-eyebrow,
.home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-icon{color:var(--booking-accent)}
.home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-eyebrow,
.home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-icon{color:var(--booking-accent)}
.home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-icon{border-color:rgba(102,208,255,.42);box-shadow:0 10px 28px rgba(0,0,0,.22), 0 0 0 1px rgba(102,208,255,.10) inset}
.home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-icon{border-color:rgba(156,133,255,.40);box-shadow:0 10px 28px rgba(0,0,0,.22), 0 0 0 1px rgba(156,133,255,.10) inset}
.home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-icon{border-color:rgba(255,212,95,.38);box-shadow:0 10px 28px rgba(0,0,0,.22), 0 0 0 1px rgba(255,212,95,.10) inset}
.home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-link i{box-shadow:0 10px 24px rgba(102,208,255,.22)}
.home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-link i{box-shadow:0 10px 24px rgba(156,133,255,.22)}
.home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-link i{box-shadow:0 10px 24px rgba(255,212,95,.22)}

.home-reservation-premium .reservation-gateway-process{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid #e2e5df;
  background:linear-gradient(180deg, #ffffff 0%, #f7f8f3 100%);
}
.home-reservation-premium .reservation-gateway-process::before{
  content:"";
  position:absolute;
  left:14%;
  right:14%;
  top:-66px;
  height:124px;
  border-radius:999px;
  background:radial-gradient(circle at center, rgba(44,255,5,.14) 0%, rgba(44,255,5,.03) 35%, transparent 72%);
  pointer-events:none;
}
.home-reservation-premium .reservation-gateway-process-grid{
  padding:34px 0 42px;
}
.home-reservation-premium .reservation-gateway-process-intro>span{
  color:#7b856f;
}
.home-reservation-premium .reservation-gateway-process-intro>strong{
  font-size:1.16rem;
}
.home-reservation-premium .reservation-gateway-process ol{
  gap:14px;
}
.home-reservation-premium .reservation-gateway-process li,
.home-reservation-premium .reservation-gateway-process li:first-child{
  align-items:center;
  gap:14px;
  padding:18px 18px;
  border:1px solid #e3e7e1;
  border-left:1px solid #e3e7e1;
  border-radius:18px;
  background:rgba(255,255,255,.88);
  box-shadow:0 12px 26px rgba(12,31,45,.05);
}
.home-reservation-premium .reservation-gateway-process li>b{
  width:38px;
  min-width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(44,255,5,.12);
  color:#607500;
  font-size:.72rem;
  font-weight:900;
}
.home-reservation-premium .reservation-gateway-process li strong{font-size:.84rem}
.home-reservation-premium .reservation-gateway-process li small{font-size:.72rem}

.home-reservation-premium .reservation-gateway-mobile-feature{
  animation:tlhHeroLift .72s cubic-bezier(.2,.7,.2,1) both;
}
.home-reservation-premium .reservation-gateway-card:nth-child(1){animation:tlhFadeUp .56s ease .08s both}
.home-reservation-premium .reservation-gateway-card:nth-child(2){animation:tlhFadeUp .56s ease .16s both}
.home-reservation-premium .reservation-gateway-card:nth-child(3){animation:tlhFadeUp .56s ease .24s both}
@keyframes tlhFadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes tlhHeroLift{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:1050px){
  .home-reservation-premium .reservation-gateway-process ol{grid-template-columns:1fr}
}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding:78px 0 22px!important;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:14px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/9.1!important;
    border-radius:22px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 18px 42px rgba(0,0,0,.24)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature::before{
    content:"";
    position:absolute;
    inset:auto 22% 48% 22%;
    height:130px;
    z-index:1;
    border-radius:999px;
    background:radial-gradient(circle at center, rgba(44,255,5,.24) 0%, rgba(44,255,5,.08) 38%, transparent 72%);
    pointer-events:none;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    transform:scale(1.02);
    filter:saturate(.92) contrast(1.04);
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    background:
      radial-gradient(circle at 50% 26%, rgba(44,255,5,.08), transparent 28%),
      linear-gradient(180deg, rgba(3,10,20,.14), rgba(3,10,20,.30) 40%, rgba(3,10,20,.78) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:7px!important;
    padding:16px 18px 18px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    width:min(29vw,112px)!important;
    max-width:112px!important;
    margin:0 auto 2px!important;
    filter:drop-shadow(0 10px 22px rgba(0,0,0,.38));
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
    font-size:clamp(2rem,9vw,2.76rem)!important;
    letter-spacing:-.052em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    font-size:clamp(.88rem,3.7vw,1.1rem)!important;
    letter-spacing:-.018em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading{
    margin:10px 0 0!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.26rem,5.2vw,1.48rem)!important;
    letter-spacing:.04em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    margin:0 auto 4px;
    max-width:33ch;
    font-size:.75rem;
    line-height:1.45;
    color:rgba(255,255,255,.60);
  }
  .home-reservation-premium .reservation-gateway-grid{
    gap:12px!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    min-height:118px!important;
    max-height:132px!important;
    border-radius:18px!important;
    box-shadow:0 16px 34px rgba(0,0,0,.18)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    gap:6px!important;
    padding:14px 58px 14px 15px!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    font-size:.56rem!important;
    letter-spacing:.13em!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    font-size:clamp(1.1rem,4.7vw,1.36rem)!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:36px!important;
    height:36px!important;
    flex-basis:36px!important;
  }
  .home-reservation-premium .reservation-gateway-card-icon{
    width:34px!important;
    height:34px!important;
  }
  .home-reservation-premium .reservation-gateway-process{
    margin-top:4px;
    border-radius:28px 28px 0 0;
    box-shadow:0 -10px 32px rgba(4,16,27,.08);
  }
  .home-reservation-premium .reservation-gateway-process-grid{
    gap:20px;
    padding:32px 0 34px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro{
    gap:10px;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    max-width:17ch;
    font-size:1.28rem;
    line-height:1.28;
  }
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    padding:16px;
    border-top:1px solid #e3e7e1!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/9.35!important;
    border-radius:19px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    width:min(28vw,98px)!important;
    max-width:98px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
    font-size:clamp(1.84rem,8.8vw,2.42rem)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    font-size:clamp(.8rem,3.8vw,.98rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    font-size:.71rem;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    min-height:110px!important;
    max-height:122px!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    padding:12px 52px 12px 13px!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:32px!important;
    height:32px!important;
    flex-basis:32px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-mobile-feature,
  .home-reservation-premium .reservation-gateway-card:nth-child(1),
  .home-reservation-premium .reservation-gateway-card:nth-child(2),
  .home-reservation-premium .reservation-gateway-card:nth-child(3){animation:none!important}
}

/* ========================================================================== 
   v1.2.103 — Mobile booking-card alignment and hierarchy polish
   Restore intentional absolute positioning for card affordances, tighten the
   booking prompt, and add controlled depth to the text side of each card.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-menu-heading{
    margin:7px 0 0!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.18rem,4.9vw,1.4rem)!important;
    letter-spacing:.035em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    max-width:31ch;
    margin:-1px auto 3px!important;
    color:rgba(255,255,255,.52)!important;
    font-size:.70rem!important;
    line-height:1.4!important;
  }

  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    position:relative;
    isolation:isolate;
    grid-template-columns:minmax(112px,38%) minmax(0,1fr)!important;
    min-height:116px!important;
    max-height:128px!important;
    overflow:hidden;
  }
  .home-reservation-premium .reservation-gateway-card::after{
    content:""!important;
    display:block!important;
    position:absolute;
    inset:0 0 0 38%;
    z-index:0;
    pointer-events:none;
    border-radius:0 18px 18px 0;
    background:
      radial-gradient(circle at 100% 50%, rgba(var(--booking-accent-rgb,44,255,5),.09), transparent 48%),
      linear-gradient(90deg, rgba(7,24,40,.86), rgba(7,24,40,.98) 62%);
  }
  .home-reservation-premium .reservation-gateway-card-content{
    position:relative!important;
    z-index:2!important;
    grid-column:2;
    grid-row:1;
    align-content:center!important;
    min-width:0;
    gap:5px!important;
    padding:14px 66px 14px 16px!important;
    background:transparent!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    max-width:100%;
    font-size:clamp(1.08rem,4.55vw,1.34rem)!important;
    line-height:1.05!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    font-size:.54rem!important;
    letter-spacing:.125em!important;
  }

  /* Keep the small category mark fully visible inside the image. */
  .home-reservation-premium .reservation-gateway-card-icon{
    position:absolute!important;
    z-index:3!important;
    left:12px!important;
    bottom:12px!important;
    top:auto!important;
    right:auto!important;
    width:34px!important;
    height:34px!important;
    margin:0!important;
    border-radius:10px!important;
    transform:none!important;
    overflow:visible!important;
  }

  /* Pin the CTA to the far-right edge and vertically center it. */
  .home-reservation-premium .reservation-gateway-card-link{
    position:absolute!important;
    z-index:4!important;
    right:16px!important;
    top:50%!important;
    left:auto!important;
    bottom:auto!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    transform:translateY(-50%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:36px!important;
    height:36px!important;
    flex:0 0 36px!important;
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 7px 16px rgba(44,255,5,.12)!important;
  }
  .home-reservation-premium .reservation-gateway-card:active .reservation-gateway-card-link i{
    transform:translateX(2px) scale(.96)!important;
  }

  .home-reservation-premium .reservation-gateway-process{
    margin-top:8px!important;
    border-top:1px solid rgba(44,255,5,.12);
    border-radius:28px 28px 0 0!important;
    box-shadow:0 -14px 34px rgba(4,16,27,.09)!important;
  }
  .home-reservation-premium .reservation-gateway-process::after{
    content:"";
    position:absolute;
    left:50%;
    top:0;
    width:74px;
    height:3px;
    border-radius:999px;
    transform:translate(-50%,-1px);
    background:linear-gradient(90deg, transparent, rgba(44,255,5,.55), transparent);
    pointer-events:none;
  }
  .home-reservation-premium .reservation-gateway-process-grid{
    padding-top:38px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.08rem,5vw,1.24rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    max-width:29ch;
    font-size:.67rem!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    grid-template-columns:minmax(104px,36%) minmax(0,1fr)!important;
    min-height:108px!important;
    max-height:120px!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    padding:12px 58px 12px 13px!important;
  }
  .home-reservation-premium .reservation-gateway-card-icon{
    left:10px!important;
    bottom:10px!important;
    width:32px!important;
    height:32px!important;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    right:13px!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:32px!important;
    height:32px!important;
    flex-basis:32px!important;
  }
}
@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-card::after{left:36%!important;right:0!important}
}


/* ========================================================================== 
   v1.2.104 — Mobile menu card background refresh
   Give the three booking menus richer, category-specific backgrounds on phones
   so the mobile presentation feels more premium and less flat.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    border:1px solid rgba(255,255,255,.08)!important;
    background:rgba(7,24,40,.94)!important;
    box-shadow:
      0 16px 34px rgba(0,0,0,.18),
      0 0 0 1px rgba(255,255,255,.025) inset!important;
  }

  .home-reservation-premium .reservation-gateway-card::after,
  .home-reservation-premium .reservation-gateway-card-events::after{
    inset:0 0 0 38%;
    border-radius:0 18px 18px 0;
    background:
      linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,0) 34%),
      radial-gradient(circle at 94% 18%, rgba(var(--booking-accent-rgb,44,255,5),.22), transparent 34%),
      linear-gradient(135deg, rgba(8,20,36,.94) 0%, rgba(8,24,40,.98) 52%, rgba(10,30,48,.98) 100%)!important;
  }

  .home-reservation-premium .reservation-gateway-card-basketball::after{
    background:
      linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0) 34%),
      radial-gradient(circle at 90% 18%, rgba(102,208,255,.20), transparent 35%),
      radial-gradient(circle at 72% 88%, rgba(20,128,214,.14), transparent 42%),
      linear-gradient(135deg, rgba(8,21,39,.95) 0%, rgba(9,31,55,.98) 56%, rgba(12,47,76,.98) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball::after{
    background:
      linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0) 34%),
      radial-gradient(circle at 90% 18%, rgba(156,133,255,.20), transparent 35%),
      radial-gradient(circle at 72% 88%, rgba(84,63,172,.16), transparent 42%),
      linear-gradient(135deg, rgba(11,21,41,.95) 0%, rgba(18,27,59,.98) 56%, rgba(36,33,82,.98) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-events::after{
    background:
      linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0) 34%),
      radial-gradient(circle at 90% 18%, rgba(255,212,95,.18), transparent 35%),
      radial-gradient(circle at 72% 88%, rgba(170,129,18,.16), transparent 42%),
      linear-gradient(135deg, rgba(14,22,36,.95) 0%, rgba(24,31,48,.98) 54%, rgba(49,40,18,.96) 100%)!important;
  }

  .home-reservation-premium .reservation-gateway-card-content{
    text-shadow:0 10px 24px rgba(0,0,0,.24);
  }
  .home-reservation-premium .reservation-gateway-card-content::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:2px;
    height:42px;
    border-radius:999px;
    transform:translateY(-50%);
    background:linear-gradient(180deg, rgba(var(--booking-accent-rgb,44,255,5),0), rgba(var(--booking-accent-rgb,44,255,5),.95) 40%, rgba(var(--booking-accent-rgb,44,255,5),.18));
    opacity:.9;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    color:rgba(255,255,255,.58)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    text-shadow:0 10px 24px rgba(0,0,0,.28);
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    background:linear-gradient(180deg, #35ff14, #2cff05)!important;
    box-shadow:0 8px 18px rgba(44,255,5,.16), 0 0 0 1px rgba(255,255,255,.08) inset!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-card::after,
  .home-reservation-premium .reservation-gateway-card-events::after{left:36%!important;right:0!important}
  .home-reservation-premium .reservation-gateway-card-content::before{height:38px}
}

/* ========================================================================== 
   v1.2.105 — Luxury dark mobile booking menus
   Mobile-only refinement: deeper glass surfaces, controlled category glow,
   stronger separation between image and content, and calmer premium details.
   Desktop and tablet remain unchanged.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-grid{
    gap:12px!important;
  }

  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    min-height:118px!important;
    max-height:132px!important;
    border:1px solid rgba(255,255,255,.095)!important;
    border-radius:19px!important;
    background:linear-gradient(135deg,rgba(8,22,36,.98),rgba(5,17,30,.99))!important;
    box-shadow:
      0 18px 42px rgba(0,0,0,.24),
      0 1px 0 rgba(255,255,255,.035) inset!important;
  }

  /* Soft luxury rim. */
  .home-reservation-premium .reservation-gateway-card::before,
  .home-reservation-premium .reservation-gateway-card-events::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:5!important;
    border-radius:inherit!important;
    pointer-events:none!important;
    background:
      linear-gradient(115deg,rgba(255,255,255,.11),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 73%,rgba(255,255,255,.045)),
      linear-gradient(180deg,rgba(255,255,255,.045),transparent 34%)!important;
    opacity:.72!important;
  }

  /* Content panel: dark glass with subtle category tint. */
  .home-reservation-premium .reservation-gateway-card::after,
  .home-reservation-premium .reservation-gateway-card-events::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0 0 0 38%!important;
    z-index:0!important;
    border-radius:0 19px 19px 0!important;
    pointer-events:none!important;
    background:
      radial-gradient(circle at 88% 20%, rgba(var(--booking-accent-rgb,44,255,5),.15), transparent 34%),
      radial-gradient(circle at 72% 105%, rgba(var(--booking-accent-rgb,44,255,5),.075), transparent 48%),
      linear-gradient(135deg,rgba(12,28,44,.94) 0%,rgba(7,22,37,.985) 52%,rgba(5,18,31,.995) 100%)!important;
    box-shadow:
      1px 0 0 rgba(255,255,255,.055) inset,
      18px 0 45px rgba(0,0,0,.11) inset!important;
  }

  .home-reservation-premium .reservation-gateway-card-basketball::after{
    background:
      radial-gradient(circle at 88% 18%, rgba(93,194,255,.18), transparent 34%),
      radial-gradient(circle at 76% 110%, rgba(26,106,164,.10), transparent 48%),
      linear-gradient(135deg,rgba(10,30,49,.95),rgba(7,23,39,.99) 58%,rgba(5,18,31,.995))!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball::after{
    background:
      radial-gradient(circle at 88% 18%, rgba(149,130,255,.17), transparent 34%),
      radial-gradient(circle at 76% 110%, rgba(73,59,139,.10), transparent 48%),
      linear-gradient(135deg,rgba(19,28,52,.95),rgba(10,23,41,.99) 58%,rgba(5,18,31,.995))!important;
  }
  .home-reservation-premium .reservation-gateway-card-events::after{
    background:
      radial-gradient(circle at 88% 18%, rgba(255,209,92,.15), transparent 34%),
      radial-gradient(circle at 76% 110%, rgba(139,102,21,.10), transparent 48%),
      linear-gradient(135deg,rgba(31,30,34,.95),rgba(15,25,37,.99) 58%,rgba(5,18,31,.995))!important;
  }

  /* Image treatment: cleaner contrast and a soft fade into the text panel. */
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    position:relative!important;
    z-index:1!important;
    overflow:hidden!important;
  }
  .home-reservation-premium .reservation-gateway-card-media>img{
    filter:saturate(.92) contrast(1.03) brightness(.96)!important;
    transform:scale(1.015)!important;
  }
  .home-reservation-premium .reservation-gateway-card-media-shade{
    background:
      linear-gradient(90deg,rgba(3,12,22,.02) 0%,rgba(3,12,22,.06) 55%,rgba(3,12,22,.38) 88%,rgba(3,12,22,.62) 100%),
      linear-gradient(180deg,rgba(3,12,22,.02),rgba(3,12,22,.20) 72%,rgba(3,12,22,.48))!important;
  }
  .home-reservation-premium .reservation-gateway-card-media::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    width:18px!important;
    height:auto!important;
    z-index:2!important;
    background:linear-gradient(90deg,transparent,rgba(5,18,31,.56))!important;
  }

  .home-reservation-premium .reservation-gateway-card-content{
    position:relative!important;
    z-index:3!important;
    gap:6px!important;
    padding:14px 66px 14px 17px!important;
    text-shadow:0 8px 20px rgba(0,0,0,.26)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:50%!important;
    width:2px!important;
    height:44px!important;
    border-radius:999px!important;
    transform:translateY(-50%)!important;
    background:linear-gradient(180deg,transparent,rgba(var(--booking-accent-rgb,44,255,5),.82),transparent)!important;
    opacity:.9!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    color:rgba(255,255,255,.56)!important;
    font-size:.54rem!important;
    font-weight:800!important;
    letter-spacing:.145em!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    color:#fff!important;
    font-size:clamp(1.1rem,4.65vw,1.38rem)!important;
    font-weight:750!important;
    line-height:1.04!important;
    letter-spacing:-.03em!important;
  }

  /* Icon becomes a small glass badge rather than a bright ornament. */
  .home-reservation-premium .reservation-gateway-card-icon{
    position:absolute!important;
    z-index:4!important;
    left:11px!important;
    bottom:11px!important;
    width:34px!important;
    height:34px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:11px!important;
    background:rgba(5,18,31,.74)!important;
    box-shadow:0 8px 18px rgba(0,0,0,.22),0 1px 0 rgba(255,255,255,.06) inset!important;
    backdrop-filter:blur(9px)!important;
    -webkit-backdrop-filter:blur(9px)!important;
  }

  /* Branded action: still neon, but more compact and controlled. */
  .home-reservation-premium .reservation-gateway-card-link{
    position:absolute!important;
    z-index:5!important;
    right:15px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:35px!important;
    height:35px!important;
    flex:0 0 35px!important;
    border:1px solid rgba(255,255,255,.14)!important;
    background:linear-gradient(180deg,#3dff17,#2cff05)!important;
    color:#061522!important;
    box-shadow:
      0 8px 18px rgba(44,255,5,.15),
      0 1px 0 rgba(255,255,255,.28) inset!important;
  }
  .home-reservation-premium .reservation-gateway-card:active{
    transform:scale(.992)!important;
  }
  .home-reservation-premium .reservation-gateway-card:active .reservation-gateway-card-link i{
    transform:translateX(2px) scale(.95)!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    min-height:110px!important;
    max-height:122px!important;
    border-radius:17px!important;
  }
  .home-reservation-premium .reservation-gateway-card::after,
  .home-reservation-premium .reservation-gateway-card-events::after{
    inset:0 0 0 36%!important;
    border-radius:0 17px 17px 0!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    padding:12px 58px 12px 14px!important;
  }
  .home-reservation-premium .reservation-gateway-card-content::before{height:38px!important}
  .home-reservation-premium .reservation-gateway-card-link{right:12px!important}
  .home-reservation-premium .reservation-gateway-card-link i{
    width:32px!important;
    height:32px!important;
    flex-basis:32px!important;
  }
  .home-reservation-premium .reservation-gateway-card-icon{
    left:9px!important;
    bottom:9px!important;
    width:31px!important;
    height:31px!important;
  }
}

/* ========================================================================== 
   v1.2.106 — Mobile full-bleed hero refinement
   Make the phone hero read as a wide banner rather than another rounded card.
   Reduce brand-copy scale so the reservation menus remain the primary focus.
   Desktop and tablet are intentionally unchanged.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:72px!important;
  }

  /* Full-bleed banner: escape the page container and span the viewport. */
  .home-reservation-premium .reservation-gateway-mobile-feature{
    width:100vw!important;
    max-width:none!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    aspect-ratio:16/8.15!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#071522!important;
    overflow:hidden!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature::before{
    display:none!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 52%!important;
    transform:scale(1.005)!important;
    filter:saturate(.88) contrast(1.04) brightness(.92)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    background:
      linear-gradient(90deg,rgba(3,11,20,.20),rgba(3,11,20,.04) 50%,rgba(3,11,20,.20)),
      linear-gradient(180deg,rgba(3,10,20,.10),rgba(3,10,20,.24) 48%,rgba(3,10,20,.72) 100%)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:5px!important;
    padding:14px 22px 16px!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    width:min(23vw,88px)!important;
    max-width:88px!important;
    margin:0 auto 0!important;
    filter:drop-shadow(0 8px 16px rgba(0,0,0,.30))!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
    font-size:clamp(1.62rem,7.6vw,2.22rem)!important;
    line-height:.96!important;
    letter-spacing:-.045em!important;
    text-shadow:0 10px 26px rgba(0,0,0,.34)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    font-size:clamp(.72rem,3.15vw,.94rem)!important;
    line-height:1.08!important;
    letter-spacing:-.012em!important;
    text-shadow:0 8px 20px rgba(0,0,0,.34)!important;
  }

  /* Pull the booking cue closer to the banner to emphasize the next action. */
  .home-reservation-premium .reservation-gateway-menu-heading{
    margin:12px 0 0!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.08rem,4.55vw,1.30rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    max-width:30ch!important;
    margin:0 auto 4px!important;
    font-size:.67rem!important;
    line-height:1.38!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:68px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/8.35!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:4px!important;
    padding:12px 18px 14px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    width:min(22vw,78px)!important;
    max-width:78px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>span{
    font-size:clamp(1.48rem,7.4vw,1.96rem)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    font-size:clamp(.66rem,3.08vw,.84rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1rem,4.65vw,1.17rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    max-width:29ch!important;
    font-size:.64rem!important;
  }
}

/* ========================================================================== 
   v1.2.107 — Mobile hero reaches the top edge
   Let the full-bleed court banner begin behind the fixed header so there is no
   separate dark strip above it. The header stays transparent at the top and
   becomes solid once the page is scrolled.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:0!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature{
    margin-top:0!important;
  }

  /* Overlay the navigation on the hero instead of reserving a bar above it. */
  .home-reservation-premium .site-header{
    background:linear-gradient(180deg,rgba(3,12,22,.82) 0%,rgba(3,12,22,.42) 56%,rgba(3,12,22,0) 100%)!important;
    border-bottom-color:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .home-reservation-premium .site-header.scrolled{
    background:rgba(5,18,31,.965)!important;
    border-bottom-color:rgba(255,255,255,.10)!important;
    box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
    backdrop-filter:blur(16px)!important;
    -webkit-backdrop-filter:blur(16px)!important;
  }

  /* The hero copy sits slightly lower so it never fights the overlaid header. */
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    padding-top:calc(18px + var(--mobile-header-height, 64px))!important;
    padding-bottom:16px!important;
  }

  /* Installed/PWA phone mode already hides the top header, so keep the copy
     centered without reserving header height there. */
  html.tlh-standalone-app .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    padding-top:calc(14px + env(safe-area-inset-top))!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-hero{
    padding-top:0!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    padding-top:calc(14px + var(--mobile-header-height, 64px))!important;
    padding-bottom:14px!important;
  }
  html.tlh-standalone-app .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    padding-top:calc(12px + env(safe-area-inset-top))!important;
  }
}

/* ========================================================================== 
   v1.2.108 — Dark mobile process section + brighter full-bleed hero
   Keep the reservation journey visually continuous on phones so the process
   section supports, rather than competes with, the three primary booking menus.
   Desktop and tablet remain unchanged.
   ========================================================================== */
@media(max-width:720px){
  /* Lift the venue image slightly without making the overlaid copy harder to read. */
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    filter:saturate(.94) contrast(1.02) brightness(1.06)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    background:
      linear-gradient(90deg,rgba(3,11,20,.14),rgba(3,11,20,.02) 50%,rgba(3,11,20,.14)),
      linear-gradient(180deg,rgba(3,10,20,.04),rgba(3,10,20,.17) 48%,rgba(3,10,20,.62) 100%)!important;
  }

  /* Continue the dark booking experience instead of introducing a bright white panel. */
  .home-reservation-premium .reservation-gateway-process{
    margin-top:6px!important;
    overflow:hidden!important;
    border:0!important;
    border-top:1px solid rgba(44,255,5,.11)!important;
    border-radius:0!important;
    background:
      radial-gradient(circle at 50% 0%,rgba(44,255,5,.055),transparent 30%),
      linear-gradient(180deg,#071725 0%,#061522 100%)!important;
    box-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-process::before{
    left:18%!important;
    right:18%!important;
    top:-72px!important;
    height:108px!important;
    background:radial-gradient(circle at center,rgba(44,255,5,.08) 0%,rgba(44,255,5,.025) 38%,transparent 72%)!important;
  }
  .home-reservation-premium .reservation-gateway-process::after{
    left:50%!important;
    top:0!important;
    width:82px!important;
    height:1px!important;
    border-radius:999px!important;
    transform:translateX(-50%)!important;
    background:linear-gradient(90deg,transparent,rgba(44,255,5,.42),transparent)!important;
    opacity:.82!important;
  }
  .home-reservation-premium .reservation-gateway-process-grid{
    gap:18px!important;
    padding:30px 0 34px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro{
    gap:7px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>span{
    color:rgba(202,218,193,.62)!important;
    font-size:.62rem!important;
    font-weight:850!important;
    letter-spacing:.15em!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    max-width:21ch!important;
    color:#f4f7f9!important;
    font-size:1.12rem!important;
    font-weight:720!important;
    line-height:1.28!important;
    letter-spacing:-.025em!important;
  }
  .home-reservation-premium .reservation-gateway-process ol{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    position:relative;
    align-items:center!important;
    gap:13px!important;
    padding:14px 15px!important;
    border:1px solid rgba(255,255,255,.075)!important;
    border-top:1px solid rgba(255,255,255,.075)!important;
    border-left:1px solid rgba(255,255,255,.075)!important;
    border-radius:14px!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015)),
      rgba(9,28,45,.72)!important;
    box-shadow:0 10px 24px rgba(0,0,0,.11)!important;
  }
  .home-reservation-premium .reservation-gateway-process li::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  }
  .home-reservation-premium .reservation-gateway-process li>b{
    width:36px!important;
    min-width:36px!important;
    height:36px!important;
    border:1px solid rgba(44,255,5,.18)!important;
    background:rgba(44,255,5,.09)!important;
    color:#2CFF05!important;
    font-size:.66rem!important;
    box-shadow:0 0 18px rgba(44,255,5,.045)!important;
  }
  .home-reservation-premium .reservation-gateway-process li strong{
    color:#f4f7f9!important;
    font-size:.80rem!important;
    font-weight:760!important;
  }
  .home-reservation-premium .reservation-gateway-process li small{
    margin-top:3px!important;
    color:rgba(222,231,237,.55)!important;
    font-size:.68rem!important;
    line-height:1.4!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-process-grid{
    padding-top:27px!important;
    padding-bottom:30px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    max-width:20ch!important;
    font-size:1.04rem!important;
  }
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    padding:13px 14px!important;
    border-radius:13px!important;
  }
  .home-reservation-premium .reservation-gateway-process li>b{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
  }
}

/* ========================================================================== 
   v1.2.109 — Taller full-bleed mobile hero
   Increase the venue image presence without increasing the brand-copy scale.
   The banner remains edge-to-edge and begins at the top of the viewport.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/9.55!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    object-position:center 50%!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature{
    aspect-ratio:16/9.8!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature img{
    object-position:center 50%!important;
  }
}

/* ========================================================================== 
   v1.2.110 — Cinematic sports editorial mobile homepage
   Mobile-only composition shift: asymmetric arena hero, full-photo booking
   tiles with oversized numbering, and a clean vertical reservation timeline.
   Desktop and tablet retain the existing premium layout.
   ========================================================================== */
.reservation-gateway-menu-heading-mobile,
.reservation-gateway-menu-subcopy-mobile,
.reservation-gateway-process-label-mobile,
.reservation-gateway-process-title-mobile{display:none}

@media(max-width:720px){
  .reservation-gateway-menu-heading-desktop,
  .reservation-gateway-menu-subcopy-desktop,
  .reservation-gateway-process-label-desktop,
  .reservation-gateway-process-title-desktop{display:none!important}
  .reservation-gateway-menu-heading-mobile,
  .reservation-gateway-menu-subcopy-mobile,
  .reservation-gateway-process-label-mobile,
  .reservation-gateway-process-title-mobile{display:block!important}

  /* --- Cinematic arena hero --- */
  .home-reservation-premium .reservation-gateway-hero{
    padding:0 0 28px!important;
    background:#061522!important;
  }
  .home-reservation-premium .reservation-gateway-inner{
    gap:0!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature{
    position:relative!important;
    width:100vw!important;
    max-width:none!important;
    aspect-ratio:16/10.8!important;
    margin:0 calc(50% - 50vw)!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    background:#071522!important;
    box-shadow:none!important;
    isolation:isolate!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    width:auto!important;
    height:auto!important;
    border-radius:0!important;
    background:
      linear-gradient(90deg,rgba(2,11,20,.72) 0%,rgba(2,11,20,.38) 38%,rgba(2,11,20,.08) 72%,rgba(2,11,20,.02) 100%),
      linear-gradient(180deg,rgba(2,10,18,.05) 30%,rgba(2,10,18,.16) 55%,rgba(2,10,18,.82) 100%)!important;
    pointer-events:none!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature::after{
    content:""!important;
    position:absolute!important;
    z-index:2!important;
    right:-14vw!important;
    bottom:-7vw!important;
    width:58vw!important;
    height:58vw!important;
    max-width:280px!important;
    max-height:280px!important;
    border:0!important;
    background:url("../img/tlh-logo-mark-mobile-hero.png") center/contain no-repeat!important;
    opacity:.075!important;
    filter:grayscale(1) brightness(2.6)!important;
    pointer-events:none!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature>img{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 49%!important;
    transform:scale(1.015)!important;
    filter:saturate(1.01) contrast(1.03) brightness(1.11)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:linear-gradient(180deg,rgba(3,10,20,0) 0%,rgba(3,10,20,.04) 58%,rgba(3,10,20,.26) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    display:grid!important;
    position:absolute!important;
    inset:0!important;
    z-index:3!important;
    align-content:end!important;
    justify-items:start!important;
    gap:6px!important;
    padding:calc(var(--mobile-header-height,64px) + 22px) 20px 27px!important;
    text-align:left!important;
  }
  html.tlh-standalone-app .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    padding-top:calc(18px + env(safe-area-inset-top))!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    display:block!important;
    width:50px!important;
    max-width:50px!important;
    height:auto!important;
    margin:0 0 7px!important;
    clip-path:none!important;
    object-fit:contain!important;
    filter:drop-shadow(0 8px 16px rgba(0,0,0,.26))!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{
    display:grid!important;
    gap:0!important;
    margin:0!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(2rem,9.7vw,2.8rem)!important;
    font-weight:900!important;
    line-height:.86!important;
    letter-spacing:-.065em!important;
    text-align:left!important;
    text-transform:uppercase!important;
    text-shadow:0 12px 30px rgba(0,0,0,.36)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-title b{
    display:block!important;
    font:inherit!important;
    color:inherit!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-title b:last-child{
    color:#2CFF05!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    margin-top:5px!important;
    color:rgba(255,255,255,.72)!important;
    font-family:Inter,Arial,sans-serif!important;
    font-size:.62rem!important;
    font-weight:750!important;
    line-height:1.2!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
    white-space:normal!important;
    text-shadow:0 7px 18px rgba(0,0,0,.3)!important;
  }

  /* --- Editorial booking intro --- */
  .home-reservation-premium .reservation-gateway-menu-heading{
    position:relative!important;
    z-index:5!important;
    display:grid!important;
    gap:4px!important;
    margin:18px 0 0!important;
    padding:0!important;
    text-align:left!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before{
    content:"RESERVATIONS"!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    background:none!important;
    color:#2CFF05!important;
    font-size:.58rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.19em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::after{display:none!important}
  .home-reservation-premium .reservation-gateway-menu-heading span{
    margin:0!important;
    color:#f6f8fa!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(1.45rem,6.6vw,1.85rem)!important;
    font-weight:850!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
    text-align:left!important;
    text-transform:uppercase!important;
    text-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    max-width:none!important;
    margin:6px 0 14px!important;
    color:rgba(221,230,237,.56)!important;
    font-size:.72rem!important;
    line-height:1.45!important;
    text-align:left!important;
  }

  /* --- Full-photo booking tiles --- */
  .home-reservation-premium .reservation-gateway-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:13px!important;
    margin-top:0!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{
    position:relative!important;
    display:block!important;
    width:100%!important;
    min-height:0!important;
    max-height:none!important;
    height:158px!important;
    overflow:hidden!important;
    border:1px solid rgba(var(--booking-accent-rgb,44,255,5),.19)!important;
    border-radius:17px!important;
    background:#081725!important;
    box-shadow:0 17px 36px rgba(0,0,0,.22)!important;
    isolation:isolate!important;
  }
  .home-reservation-premium .reservation-gateway-card::before{
    content:attr(data-booking-index)!important;
    position:absolute!important;
    inset:10px 14px auto auto!important;
    z-index:4!important;
    width:auto!important;
    height:auto!important;
    border:0!important;
    border-radius:0!important;
    background:none!important;
    color:rgba(var(--booking-accent-rgb,44,255,5),.28)!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:3.55rem!important;
    font-weight:900!important;
    line-height:.82!important;
    letter-spacing:-.08em!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  .home-reservation-premium .reservation-gateway-card::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:2!important;
    border:0!important;
    border-radius:inherit!important;
    background:
      linear-gradient(90deg,rgba(3,13,24,.88) 0%,rgba(3,13,24,.65) 43%,rgba(3,13,24,.20) 74%,rgba(3,13,24,.08) 100%),
      linear-gradient(180deg,rgba(3,13,24,.04) 28%,rgba(3,13,24,.22) 62%,rgba(3,13,24,.78) 100%)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.055),
      inset 0 -2px 0 rgba(var(--booking-accent-rgb,44,255,5),.44)!important;
    pointer-events:none!important;
  }
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    overflow:hidden!important;
    background:#0a1928!important;
  }
  .home-reservation-premium .reservation-gateway-card-media>img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    transform:scale(1.015)!important;
    filter:saturate(1.04) contrast(1.03) brightness(.98)!important;
    transition:transform .36s ease,filter .28s ease!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media>img{object-position:48% 43%!important}
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{object-position:52% 34%!important}
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media>img{object-position:50% 44%!important}
  .home-reservation-premium .reservation-gateway-card-media::after{display:none!important}
  .home-reservation-premium .reservation-gateway-card-media-shade{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:linear-gradient(90deg,rgba(4,14,24,.36),transparent 70%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-icon{display:none!important}
  .home-reservation-premium .reservation-gateway-card-content{
    position:absolute!important;
    inset:auto 0 0 0!important;
    z-index:5!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-content:end!important;
    gap:5px!important;
    min-width:0!important;
    padding:18px 66px 18px 18px!important;
    background:transparent!important;
    text-align:left!important;
    text-shadow:0 8px 24px rgba(0,0,0,.34)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content::before{display:none!important}
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    color:rgba(255,255,255,.67)!important;
    font-size:.55rem!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:.15em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow::before{
    content:"";
    width:18px;
    height:2px;
    flex:0 0 18px;
    border-radius:999px;
    background:rgba(var(--booking-accent-rgb,44,255,5),.95);
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    max-width:18ch!important;
    margin:0!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(1.36rem,6vw,1.62rem)!important;
    font-weight:800!important;
    line-height:1!important;
    letter-spacing:-.045em!important;
    text-transform:none!important;
    text-shadow:0 10px 28px rgba(0,0,0,.42)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>small,
  .home-reservation-premium .reservation-gateway-card-link-text{display:none!important}
  .home-reservation-premium .reservation-gateway-card-link{
    position:absolute!important;
    z-index:6!important;
    right:16px!important;
    bottom:16px!important;
    top:auto!important;
    left:auto!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    transform:none!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:38px!important;
    height:38px!important;
    flex:0 0 38px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:999px!important;
    color:#061522!important;
    background:#2CFF05!important;
    box-shadow:0 8px 20px rgba(44,255,5,.16)!important;
    font-size:.92rem!important;
  }
  .home-reservation-premium .reservation-gateway-card:hover,
  .home-reservation-premium .reservation-gateway-card:focus-visible{
    transform:translateY(-2px)!important;
    border-color:rgba(var(--booking-accent-rgb,44,255,5),.36)!important;
    box-shadow:0 21px 42px rgba(0,0,0,.25)!important;
  }
  .home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-media>img,
  .home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-media>img{
    transform:scale(1.055)!important;
    filter:saturate(1.08) contrast(1.03) brightness(1.01)!important;
  }
  .home-reservation-premium .reservation-gateway-card:active{transform:scale(.992)!important}
  .home-reservation-premium .reservation-gateway-card:active .reservation-gateway-card-link i{transform:translateX(2px) scale(.96)!important}

  /* --- Vertical reservation timeline --- */
  .home-reservation-premium .reservation-gateway-process{
    margin-top:0!important;
    padding:0!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.055)!important;
    border-radius:0!important;
    background:linear-gradient(180deg,#061522 0%,#071725 100%)!important;
    box-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-process::before,
  .home-reservation-premium .reservation-gateway-process::after{display:none!important}
  .home-reservation-premium .reservation-gateway-process-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:22px!important;
    padding:34px 0 38px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro{
    display:grid!important;
    gap:6px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>span{
    color:#2CFF05!important;
    font-size:.58rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.19em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    max-width:none!important;
    color:#f5f7f9!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:1.28rem!important;
    font-weight:790!important;
    line-height:1.05!important;
    letter-spacing:-.04em!important;
  }
  .home-reservation-premium .reservation-gateway-process ol{
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
  }
  .home-reservation-premium .reservation-gateway-process ol::before{
    content:"";
    position:absolute;
    left:17px;
    top:18px;
    bottom:22px;
    width:1px;
    background:linear-gradient(180deg,rgba(44,255,5,.72),rgba(44,255,5,.12));
  }
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    position:relative!important;
    display:block!important;
    min-height:74px!important;
    margin:0!important;
    padding:7px 0 17px 52px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-process li:last-child{padding-bottom:4px!important}
  .home-reservation-premium .reservation-gateway-process li::after{display:none!important}
  .home-reservation-premium .reservation-gateway-process li>b{
    position:absolute!important;
    left:0!important;
    top:1px!important;
    z-index:2!important;
    display:grid!important;
    place-items:center!important;
    width:35px!important;
    min-width:35px!important;
    height:35px!important;
    margin:0!important;
    border:1px solid rgba(44,255,5,.34)!important;
    border-radius:999px!important;
    background:#081b29!important;
    color:#2CFF05!important;
    box-shadow:0 0 0 5px #061522!important;
    font-size:.62rem!important;
    font-weight:900!important;
    letter-spacing:.05em!important;
  }
  .home-reservation-premium .reservation-gateway-process li strong{
    display:block!important;
    color:#f2f5f7!important;
    font-size:.84rem!important;
    font-weight:780!important;
    line-height:1.3!important;
  }
  .home-reservation-premium .reservation-gateway-process li small{
    display:block!important;
    max-width:31ch!important;
    margin-top:4px!important;
    color:rgba(220,229,235,.50)!important;
    font-size:.68rem!important;
    line-height:1.45!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature{aspect-ratio:16/11.15!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{padding-left:17px!important;padding-right:17px!important;padding-bottom:23px!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{width:45px!important;max-width:45px!important;margin-bottom:6px!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{font-size:clamp(1.82rem,9.5vw,2.4rem)!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{font-size:.57rem!important;letter-spacing:.12em!important}
  .home-reservation-premium .reservation-gateway-menu-heading{margin-top:16px!important}
  .home-reservation-premium .reservation-gateway-menu-heading span{font-size:clamp(1.34rem,6.5vw,1.62rem)!important}
  .home-reservation-premium .reservation-gateway-menu-subcopy{margin-bottom:12px!important;font-size:.68rem!important}
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-events{height:148px!important;border-radius:15px!important}
  .home-reservation-premium .reservation-gateway-card::before{right:12px!important;top:9px!important;font-size:3.22rem!important}
  .home-reservation-premium .reservation-gateway-card-content{padding:16px 60px 16px 16px!important}
  .home-reservation-premium .reservation-gateway-card-content>strong{font-size:clamp(1.24rem,5.8vw,1.46rem)!important}
  .home-reservation-premium .reservation-gateway-card-link{right:14px!important;bottom:14px!important}
  .home-reservation-premium .reservation-gateway-card-link i{width:35px!important;height:35px!important;flex-basis:35px!important}
  .home-reservation-premium .reservation-gateway-process-grid{padding-top:30px!important;padding-bottom:34px!important}
  .home-reservation-premium .reservation-gateway-process-intro>strong{font-size:1.18rem!important}
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-card-media>img{transition:none!important}
}

/* ========================================================================== 
   v1.2.111 — Arena Campaign mobile composition
   Break the repetitive card stack with varied editorial compositions, sharpen
   typography, and turn the venue section into a second campaign moment.
   Desktop/tablet retain the v1.2.110 layout.
   ========================================================================== */
.reservation-gateway-venue-title-mobile,
.reservation-gateway-venue-copy-mobile{display:none}

@media(max-width:720px){
  /* Shorter, more confident reservation intro. */
  .home-reservation-premium .reservation-gateway-menu-heading{
    margin:15px 0 0!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before{
    content:"RESERVATIONS"!important;
    color:rgba(44,255,5,.86)!important;
    font-size:.54rem!important;
    letter-spacing:.22em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    max-width:12ch!important;
    font-size:clamp(1.55rem,7.2vw,1.98rem)!important;
    font-weight:900!important;
    line-height:.91!important;
    letter-spacing:-.055em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    margin:8px 0 15px!important;
    color:rgba(221,230,237,.49)!important;
    font-size:.61rem!important;
    font-weight:750!important;
    letter-spacing:.13em!important;
    line-height:1!important;
    text-transform:uppercase!important;
  }

  /* Shared arena-tile foundation: fewer UI-box cues, more photo campaign. */
  .home-reservation-premium .reservation-gateway-grid{
    gap:11px!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    border-radius:12px!important;
    border-color:rgba(255,255,255,.09)!important;
    box-shadow:0 15px 32px rgba(0,0,0,.20)!important;
  }
  .home-reservation-premium .reservation-gateway-card::before{
    z-index:4!important;
    color:rgba(var(--booking-accent-rgb,44,255,5),.20)!important;
    font-size:4.05rem!important;
    line-height:.8!important;
    letter-spacing:-.095em!important;
    text-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-card::after{
    border-radius:inherit!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06), inset 0 -2px 0 rgba(var(--booking-accent-rgb,44,255,5),.32)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content{
    gap:6px!important;
    padding:18px 64px 17px 18px!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    color:rgba(255,255,255,.72)!important;
    font-size:.52rem!important;
    letter-spacing:.17em!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    font-size:clamp(1.48rem,6.6vw,1.78rem)!important;
    font-weight:900!important;
    line-height:.92!important;
    letter-spacing:-.052em!important;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    right:15px!important;
    bottom:15px!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    width:36px!important;
    height:36px!important;
    flex-basis:36px!important;
    border:0!important;
    background:#2CFF05!important;
    box-shadow:0 7px 18px rgba(44,255,5,.12)!important;
  }

  /* 01 — Basketball: low-left, classic arena poster composition. */
  .home-reservation-premium .reservation-gateway-card-basketball{
    height:172px!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball::before{
    top:10px!important;
    right:13px!important;
    bottom:auto!important;
    left:auto!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball::after{
    background:
      linear-gradient(90deg,rgba(2,12,22,.90) 0%,rgba(2,12,22,.63) 42%,rgba(2,12,22,.18) 73%,rgba(2,12,22,.04) 100%),
      linear-gradient(180deg,rgba(2,12,22,.01) 34%,rgba(2,12,22,.72) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media>img{
    object-position:48% 40%!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-content{
    inset:auto 0 0 0!important;
    text-align:left!important;
    justify-items:start!important;
  }

  /* 02 — Volleyball: reverse composition to intentionally break repetition. */
  .home-reservation-premium .reservation-gateway-card-volleyball{
    height:164px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball::before{
    top:auto!important;
    right:auto!important;
    bottom:9px!important;
    left:13px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball::after{
    background:
      linear-gradient(270deg,rgba(3,12,24,.91) 0%,rgba(3,12,24,.68) 43%,rgba(3,12,24,.16) 75%,rgba(3,12,24,.02) 100%),
      linear-gradient(180deg,rgba(3,12,24,.12) 0%,rgba(3,12,24,.03) 48%,rgba(3,12,24,.56) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{
    object-position:42% 32%!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content{
    inset:0 0 auto 31%!important;
    align-content:start!important;
    justify-items:end!important;
    padding:18px 18px 18px 54px!important;
    text-align:right!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-eyebrow{
    flex-direction:row-reverse!important;
    justify-content:flex-start!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong{
    max-width:12ch!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-link{
    top:auto!important;
    right:15px!important;
    bottom:15px!important;
  }

  /* 03 — Events: a taller lifestyle tile gives the stack a final visual beat. */
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    height:186px!important;
  }
  .home-reservation-premium .reservation-gateway-card-event::before,
  .home-reservation-premium .reservation-gateway-card-events::before{
    top:10px!important;
    right:13px!important;
    bottom:auto!important;
    left:auto!important;
  }
  .home-reservation-premium .reservation-gateway-card-event::after,
  .home-reservation-premium .reservation-gateway-card-events::after{
    background:
      linear-gradient(90deg,rgba(4,11,19,.76) 0%,rgba(4,11,19,.40) 45%,rgba(4,11,19,.08) 74%,rgba(4,11,19,.02) 100%),
      linear-gradient(180deg,rgba(4,11,19,.02) 22%,rgba(4,11,19,.18) 54%,rgba(4,11,19,.88) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-media>img,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media>img{
    object-position:50% 46%!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content{
    inset:auto 0 0 0!important;
    padding-bottom:19px!important;
  }

  /* More graphical arena-wayfinding timeline. */
  .home-reservation-premium .reservation-gateway-process{
    border-top:1px solid rgba(255,255,255,.04)!important;
    background:
      radial-gradient(circle at 12% 18%,rgba(44,255,5,.045),transparent 28%),
      linear-gradient(180deg,#061522 0%,#071725 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-process-grid{
    gap:25px!important;
    padding:38px 0 44px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    max-width:15ch!important;
    font-size:1.34rem!important;
    line-height:.98!important;
  }
  .home-reservation-premium .reservation-gateway-process ol{
    gap:0!important;
    padding-left:3px!important;
  }
  .home-reservation-premium .reservation-gateway-process ol::before{
    left:20px!important;
    top:20px!important;
    bottom:20px!important;
    width:1px!important;
    background:linear-gradient(180deg,rgba(44,255,5,.62),rgba(44,255,5,.16))!important;
  }
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    grid-template-columns:42px minmax(0,1fr)!important;
    gap:16px!important;
    padding:0 0 25px!important;
  }
  .home-reservation-premium .reservation-gateway-process li:last-child{
    padding-bottom:0!important;
  }
  .home-reservation-premium .reservation-gateway-process li>b{
    position:relative!important;
    z-index:2!important;
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    border:1px solid rgba(44,255,5,.38)!important;
    background:#071725!important;
    color:#2CFF05!important;
    box-shadow:0 0 0 6px #071725!important;
    font-size:.69rem!important;
  }
  .home-reservation-premium .reservation-gateway-process li strong{
    color:#f4f7f9!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:.98rem!important;
    font-weight:800!important;
    letter-spacing:-.025em!important;
  }
  .home-reservation-premium .reservation-gateway-process li small{
    max-width:27ch!important;
    color:rgba(220,228,235,.50)!important;
    font-size:.70rem!important;
  }

  /* Second campaign moment: make the venue section feel like brand storytelling. */
  .reservation-gateway-venue-title-desktop,
  .reservation-gateway-venue-copy-desktop{display:none!important}
  .reservation-gateway-venue-title-mobile,
  .reservation-gateway-venue-copy-mobile{display:inline!important}
  .home-reservation-premium .reservation-gateway-venue{
    padding:0 0 54px!important;
    background:#071725!important;
  }
  .home-reservation-premium .reservation-gateway-venue-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  .home-reservation-premium .reservation-gateway-venue-image{
    position:relative!important;
    width:100vw!important;
    max-width:none!important;
    margin-left:calc(50% - 50vw)!important;
    overflow:hidden!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#061522!important;
  }
  .home-reservation-premium .reservation-gateway-venue-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(4,14,24,.04) 30%,rgba(4,14,24,.36) 68%,#071725 100%);
    pointer-events:none;
  }
  .home-reservation-premium .reservation-gateway-venue-image img{
    width:100%!important;
    aspect-ratio:16/9.8!important;
    object-fit:cover!important;
    object-position:center 50%!important;
    filter:saturate(.96) contrast(1.04) brightness(.94)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy{
    position:relative!important;
    z-index:2!important;
    margin-top:-34px!important;
    padding:0!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy .eyebrow{
    color:#2CFF05!important;
    font-size:.55rem!important;
    font-weight:900!important;
    letter-spacing:.21em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy h2{
    max-width:12ch!important;
    margin:10px 0 0!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(2rem,9.2vw,2.65rem)!important;
    font-weight:900!important;
    line-height:.88!important;
    letter-spacing:-.065em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy p{
    max-width:31ch!important;
    margin:16px 0 0!important;
    color:rgba(220,229,236,.60)!important;
    font-size:.78rem!important;
    line-height:1.55!important;
  }
  .home-reservation-premium .reservation-gateway-venue-links{
    display:flex!important;
    gap:22px!important;
    margin-top:22px!important;
  }
  .home-reservation-premium .reservation-gateway-venue-links a{
    color:#f3f6f8!important;
    font-size:.69rem!important;
    font-weight:850!important;
    letter-spacing:.03em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-venue-links a span{
    color:#2CFF05!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-card-basketball{height:164px!important}
  .home-reservation-premium .reservation-gateway-card-volleyball{height:158px!important}
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{height:178px!important}
  .home-reservation-premium .reservation-gateway-card::before{font-size:3.65rem!important}
  .home-reservation-premium .reservation-gateway-card-content>strong{font-size:clamp(1.35rem,6.5vw,1.6rem)!important}
  .home-reservation-premium .reservation-gateway-venue-copy h2{font-size:clamp(1.86rem,9vw,2.4rem)!important}
}

/* v1.2.111 QA correction — ensure timeline layout wins over v1.2.110 absolute step markers. */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr)!important;
    align-items:start!important;
    min-height:0!important;
    padding:0 0 25px!important;
  }
  .home-reservation-premium .reservation-gateway-process li:last-child{padding-bottom:0!important}
  .home-reservation-premium .reservation-gateway-process li>b{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    margin:0!important;
  }
}


/* ========================================================================== 
   v1.2.112 — Mobile arena campaign refinement
   Fine-tune the v1.2.111 direction: calm the booking heading, soften the
   oversized step numbers, fix the volleyball composition, and give the
   events tile a safer footer rhythm above the fixed mobile nav.
   ========================================================================== */
@media(max-width:720px){
  /* Reduce the secondary campaign heading so the hero keeps first attention. */
  .home-reservation-premium .reservation-gateway-menu-heading{
    margin:12px 0 0!important;
    gap:3px!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before{
    color:rgba(44,255,5,.78)!important;
    font-size:.5rem!important;
    letter-spacing:.2em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading span{
    max-width:11ch!important;
    font-size:clamp(1.36rem,6.25vw,1.68rem)!important;
    line-height:.94!important;
    letter-spacing:-.048em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    margin:6px 0 13px!important;
    color:rgba(221,230,237,.44)!important;
    font-size:.58rem!important;
    letter-spacing:.12em!important;
  }

  /* Make the big 01/02/03 numerals feel editorial, not dominant. */
  .home-reservation-premium .reservation-gateway-card::before{
    color:rgba(var(--booking-accent-rgb,44,255,5),.11)!important;
    font-size:3.52rem!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball::before,
  .home-reservation-premium .reservation-gateway-card-event::before,
  .home-reservation-premium .reservation-gateway-card-events::before{
    top:8px!important;
    right:10px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball::before{
    left:10px!important;
    bottom:7px!important;
    font-size:3.3rem!important;
  }

  /* Shared content breathing room. */
  .home-reservation-premium .reservation-gateway-card-content{
    padding:18px 72px 18px 18px!important;
  }
  .home-reservation-premium .reservation-gateway-card-link{
    right:14px!important;
    bottom:14px!important;
  }

  /* Basketball remains the reference composition. */
  .home-reservation-premium .reservation-gateway-card-basketball{
    height:174px!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-content>strong{
    max-width:10ch!important;
  }

  /* Volleyball: keep the reverse layout, but give text a safe readable column. */
  .home-reservation-premium .reservation-gateway-card-volleyball{
    height:170px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{
    object-position:40% 30%!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content{
    inset:0 52px 0 39%!important;
    align-content:center!important;
    justify-items:start!important;
    padding:16px 10px 18px 18px!important;
    text-align:left!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-eyebrow{
    flex-direction:row!important;
    justify-content:flex-start!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong{
    max-width:6.9ch!important;
    font-size:clamp(1.28rem,5.7vw,1.5rem)!important;
    line-height:.96!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-link{
    right:14px!important;
    bottom:14px!important;
    top:auto!important;
  }

  /* Events: keep the taller ending beat, but hold content comfortably above the nav. */
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    height:194px!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content{
    padding:18px 72px 24px 18px!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-link,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-link{
    bottom:16px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-menu-heading span{
    font-size:clamp(1.28rem,6.35vw,1.54rem)!important;
  }
  .home-reservation-premium .reservation-gateway-card::before{
    font-size:3.2rem!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball{
    height:166px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball{
    height:162px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content{
    inset:0 50px 0 40%!important;
    padding:14px 8px 16px 16px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong{
    font-size:clamp(1.22rem,5.6vw,1.42rem)!important;
  }
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    height:184px!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content{
    padding-bottom:22px!important;
  }
}

/* ========================================================================== 
   v1.2.113 — Luxury editorial mobile finish
   Refine the Arena Campaign with calmer typography, outline numerals, cleaner
   photographic framing, precision keylines, and understated interaction.
   Desktop/tablet remain unchanged.
   ========================================================================== */
@media(max-width:720px){
  /* Give the reservation area a subtle editorial stage without adding boxes. */
  .home-reservation-premium .reservation-gateway-hero{
    background:
      radial-gradient(circle at 88% 68%,rgba(44,255,5,.035),transparent 24%),
      radial-gradient(circle at 12% 82%,rgba(102,208,255,.03),transparent 22%),
      #061522!important;
  }

  /* Hero stays dominant through photography, not oversized copy. */
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    padding-bottom:30px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{
    width:46px!important;
    max-width:46px!important;
    margin-bottom:8px!important;
    opacity:.96!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{
    font-size:clamp(1.92rem,9vw,2.62rem)!important;
    line-height:.87!important;
    letter-spacing:-.058em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    margin-top:7px!important;
    color:rgba(255,255,255,.67)!important;
    font-size:.58rem!important;
    letter-spacing:.13em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature::after{
    opacity:.052!important;
  }

  /* Two-line editorial booking heading: hierarchy without competing with hero. */
  .home-reservation-premium .reservation-gateway-menu-heading{
    gap:5px!important;
    margin:15px 0 0!important;
    padding-left:2px!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before{
    font-size:.48rem!important;
    letter-spacing:.23em!important;
    color:rgba(44,255,5,.76)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading .reservation-gateway-menu-heading-mobile{
    display:grid!important;
    gap:0!important;
    max-width:none!important;
    width:max-content!important;
    font-size:inherit!important;
    line-height:1!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b{
    display:block!important;
    margin:0!important;
    font:inherit!important;
    color:#f6f8fa!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b:first-child{
    font-size:clamp(1.05rem,4.8vw,1.28rem)!important;
    font-weight:690!important;
    line-height:1!important;
    letter-spacing:-.04em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b:last-child{
    position:relative!important;
    margin-top:1px!important;
    font-size:clamp(1.48rem,6.7vw,1.78rem)!important;
    font-weight:900!important;
    line-height:.9!important;
    letter-spacing:-.06em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b:last-child::after{
    content:"";
    position:absolute;
    left:1px;
    bottom:-7px;
    width:34px;
    height:2px;
    border-radius:999px;
    background:#2CFF05;
    opacity:.72;
  }
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    margin:14px 0 16px!important;
    color:rgba(221,230,237,.40)!important;
    font-size:.55rem!important;
    letter-spacing:.15em!important;
  }

  /* More breathing room gives each campaign tile its own visual beat. */
  .home-reservation-premium .reservation-gateway-grid{
    gap:14px!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    border-radius:10px!important;
    border-color:rgba(255,255,255,.075)!important;
    box-shadow:
      0 18px 38px rgba(0,0,0,.20),
      inset 0 1px 0 rgba(255,255,255,.055)!important;
    transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease,border-color .22s ease!important;
  }

  /* Editorial outline numerals recede into the photography. */
  .home-reservation-premium .reservation-gateway-card::before{
    color:rgba(var(--booking-accent-rgb,44,255,5),.025)!important;
    -webkit-text-stroke:1px rgba(var(--booking-accent-rgb,44,255,5),.17)!important;
    text-stroke:1px rgba(var(--booking-accent-rgb,44,255,5),.17)!important;
    font-size:3.48rem!important;
    font-weight:850!important;
    letter-spacing:-.1em!important;
  }

  /* Refined image treatment: less blanket darkness, more directional contrast. */
  .home-reservation-premium .reservation-gateway-card-media>img{
    transform:scale(1.018)!important;
    filter:saturate(1.02) contrast(1.055) brightness(1.015)!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball::after{
    background:
      linear-gradient(90deg,rgba(2,11,21,.90) 0%,rgba(2,11,21,.60) 38%,rgba(2,11,21,.16) 70%,rgba(2,11,21,.025) 100%),
      linear-gradient(180deg,rgba(2,11,21,.01) 32%,rgba(2,11,21,.67) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball::after{
    background:
      linear-gradient(270deg,rgba(3,11,23,.88) 0%,rgba(3,11,23,.61) 38%,rgba(3,11,23,.14) 68%,rgba(3,11,23,.02) 100%),
      linear-gradient(180deg,rgba(3,11,23,.08) 0%,rgba(3,11,23,.02) 48%,rgba(3,11,23,.54) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-event::after,
  .home-reservation-premium .reservation-gateway-card-events::after{
    background:
      linear-gradient(90deg,rgba(4,11,19,.72) 0%,rgba(4,11,19,.33) 44%,rgba(4,11,19,.06) 74%,rgba(4,11,19,.01) 100%),
      linear-gradient(180deg,rgba(4,11,19,.01) 18%,rgba(4,11,19,.12) 48%,rgba(4,11,19,.88) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card::after{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.07),
      inset 0 -1px 0 rgba(var(--booking-accent-rgb,44,255,5),.38)!important;
  }

  /* Typography: small technical label, strong title, generous safe areas. */
  .home-reservation-premium .reservation-gateway-card-eyebrow{
    color:rgba(255,255,255,.66)!important;
    font-size:.49rem!important;
    font-weight:800!important;
    letter-spacing:.18em!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow::before{
    width:15px!important;
    flex-basis:15px!important;
    height:1px!important;
    opacity:.88!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>strong{
    font-weight:850!important;
    letter-spacing:-.05em!important;
    text-shadow:0 10px 26px rgba(0,0,0,.38)!important;
  }

  /* CTA becomes a precise luminous control, not a loud badge. */
  .home-reservation-premium .reservation-gateway-card-link i{
    width:35px!important;
    height:35px!important;
    flex-basis:35px!important;
    border:1px solid rgba(44,255,5,.65)!important;
    background:rgba(44,255,5,.94)!important;
    box-shadow:
      0 7px 17px rgba(44,255,5,.11),
      inset 0 1px 0 rgba(255,255,255,.28)!important;
    transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease!important;
  }

  /* Card-specific framing and safe typography. */
  .home-reservation-premium .reservation-gateway-card-basketball{
    height:180px!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media>img{
    object-position:47% 39%!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-content{
    padding:20px 68px 20px 19px!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-content>strong{
    font-size:clamp(1.43rem,6.3vw,1.68rem)!important;
  }

  .home-reservation-premium .reservation-gateway-card-volleyball{
    height:178px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{
    object-position:38% 28%!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content{
    inset:0 54px 0 42%!important;
    padding:18px 8px 19px 15px!important;
  }
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong{
    max-width:7.2ch!important;
    font-size:clamp(1.25rem,5.55vw,1.48rem)!important;
    line-height:.94!important;
  }

  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    height:202px!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-media>img,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media>img{
    object-position:50% 43%!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content{
    padding:20px 70px 27px 19px!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content>strong,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content>strong{
    font-size:clamp(1.46rem,6.5vw,1.72rem)!important;
  }

  /* Refined interaction: image and type move as one restrained unit. */
  .home-reservation-premium .reservation-gateway-card:hover,
  .home-reservation-premium .reservation-gateway-card:focus-visible{
    transform:translateY(-3px)!important;
    border-color:rgba(var(--booking-accent-rgb,44,255,5),.24)!important;
    box-shadow:0 23px 46px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.065)!important;
  }
  .home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-media>img,
  .home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-media>img{
    transform:scale(1.045)!important;
    filter:saturate(1.055) contrast(1.055) brightness(1.035)!important;
  }
  .home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-link i,
  .home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-link i{
    transform:translateX(2px)!important;
    box-shadow:0 9px 20px rgba(44,255,5,.15),inset 0 1px 0 rgba(255,255,255,.28)!important;
  }

  /* Timeline becomes more like premium venue wayfinding. */
  .home-reservation-premium .reservation-gateway-process-grid{
    gap:28px!important;
    padding:42px 0 48px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>span{
    font-size:.5rem!important;
    letter-spacing:.22em!important;
    color:rgba(44,255,5,.76)!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    font-size:1.24rem!important;
    font-weight:760!important;
    line-height:1.02!important;
  }
  .home-reservation-premium .reservation-gateway-process ol::before{
    left:19px!important;
    background:linear-gradient(180deg,rgba(44,255,5,.52),rgba(44,255,5,.08))!important;
  }
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    grid-template-columns:40px minmax(0,1fr)!important;
    gap:17px!important;
    padding-bottom:27px!important;
  }
  .home-reservation-premium .reservation-gateway-process li>b{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    border-color:rgba(44,255,5,.30)!important;
    background:#071724!important;
    color:rgba(44,255,5,.92)!important;
    box-shadow:0 0 0 6px #071725!important;
  }
  .home-reservation-premium .reservation-gateway-process li strong{
    font-size:.91rem!important;
    font-weight:770!important;
  }
  .home-reservation-premium .reservation-gateway-process li small{
    margin-top:5px!important;
    color:rgba(220,228,235,.45)!important;
    font-size:.67rem!important;
  }

  /* Second campaign moment gets cleaner luxury spacing. */
  .home-reservation-premium .reservation-gateway-venue-copy{
    margin-top:-28px!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy .eyebrow{
    font-size:.5rem!important;
    letter-spacing:.23em!important;
    color:rgba(44,255,5,.78)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy h2{
    font-size:clamp(1.92rem,8.8vw,2.48rem)!important;
    line-height:.9!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy p{
    max-width:29ch!important;
    color:rgba(220,229,236,.54)!important;
    font-size:.74rem!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{padding-bottom:25px!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{width:43px!important;max-width:43px!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{font-size:clamp(1.76rem,8.9vw,2.28rem)!important}
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b:first-child{font-size:clamp(.98rem,4.6vw,1.14rem)!important}
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b:last-child{font-size:clamp(1.36rem,6.5vw,1.58rem)!important}
  .home-reservation-premium .reservation-gateway-card::before{font-size:3.08rem!important}
  .home-reservation-premium .reservation-gateway-card-basketball{height:171px!important}
  .home-reservation-premium .reservation-gateway-card-volleyball{height:168px!important}
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content{inset:0 50px 0 41%!important;padding-left:14px!important}
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong{font-size:clamp(1.18rem,5.45vw,1.36rem)!important}
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{height:191px!important}
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-link i{transition:none!important}
}

/* ========================================================================== 
   v1.2.114 — Native mobile app homepage
   Reframe the mobile home experience as a dark-mode app dashboard: real app
   bar, compact functional hero, touch-first booking grid, grouped steps, and
   in-app venue card. Desktop/tablet remain unchanged.
   ========================================================================== */
.reservation-gateway-native-appbar,
.reservation-gateway-mobile-kicker{display:none}

@media(max-width:720px){
  .home-reservation-premium{
    --native-bg:#071522;
    --native-surface:#0b1d2c;
    --native-surface-2:#102638;
    --native-line:rgba(255,255,255,.085);
    --native-muted:rgba(229,236,242,.58);
  }
  .home-reservation-premium main{background:var(--native-bg)!important}
  .home-reservation-premium .site-header{display:none!important}

  /* App-style top feature: still photographic, but now functional rather than poster-like. */
  .home-reservation-premium .reservation-gateway-hero{
    padding:0 0 32px!important;
    background:var(--native-bg)!important;
  }
  .home-reservation-premium .reservation-gateway-inner{gap:0!important}
  .home-reservation-premium .reservation-gateway-mobile-feature{
    width:100vw!important;
    max-width:none!important;
    height:clamp(310px,42vh,360px)!important;
    aspect-ratio:auto!important;
    margin:0 calc(50% - 50vw)!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature::after{display:none!important}
  .home-reservation-premium .reservation-gateway-mobile-feature::before{
    background:
      linear-gradient(180deg,rgba(2,10,18,.16) 0%,rgba(2,10,18,.02) 28%,rgba(2,10,18,.16) 58%,rgba(2,10,18,.86) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature>img{
    object-position:center 47%!important;
    transform:scale(1.01)!important;
    filter:saturate(1.02) contrast(1.025) brightness(1.08)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-shade{
    background:linear-gradient(180deg,rgba(3,10,20,.03),rgba(3,10,20,.04) 48%,rgba(3,10,20,.40) 100%)!important;
  }

  .home-reservation-premium .reservation-gateway-native-appbar{
    display:flex!important;
    position:absolute!important;
    z-index:7!important;
    top:0!important;
    left:0!important;
    right:0!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:calc(env(safe-area-inset-top) + 12px) 18px 10px!important;
    pointer-events:auto!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand{
    display:inline-flex!important;
    align-items:center!important;
    gap:9px!important;
    min-height:44px!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:.78rem!important;
    font-weight:800!important;
    letter-spacing:-.02em!important;
    text-shadow:0 4px 16px rgba(0,0,0,.42)!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand img{
    width:40px!important;
    height:40px!important;
    object-fit:contain!important;
    filter:drop-shadow(0 5px 12px rgba(0,0,0,.32))!important;
  }
  .home-reservation-premium .reservation-gateway-native-calendar{
    display:grid!important;
    place-items:center!important;
    width:40px!important;
    height:40px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:13px!important;
    color:#fff!important;
    background:rgba(7,20,32,.38)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
  }
  .home-reservation-premium .reservation-gateway-native-calendar svg{
    width:20px!important;
    height:20px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    display:grid!important;
    position:absolute!important;
    inset:0!important;
    z-index:5!important;
    align-content:end!important;
    justify-items:start!important;
    gap:6px!important;
    padding:calc(env(safe-area-inset-top) + 76px) 20px 23px!important;
    text-align:left!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo,
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-feature-logo-mark{display:none!important}
  .home-reservation-premium .reservation-gateway-mobile-kicker{
    display:inline-flex!important;
    align-items:center!important;
    width:max-content!important;
    min-height:24px!important;
    padding:0 9px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:999px!important;
    color:rgba(255,255,255,.82)!important;
    background:rgba(5,18,29,.32)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
    font-size:.48rem!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{
    display:grid!important;
    gap:0!important;
    margin-top:2px!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(1.82rem,8.3vw,2.42rem)!important;
    font-weight:900!important;
    line-height:.9!important;
    letter-spacing:-.06em!important;
    text-transform:uppercase!important;
    text-shadow:0 10px 28px rgba(0,0,0,.34)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:last-child{color:#2CFF05!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    margin-top:3px!important;
    color:rgba(255,255,255,.65)!important;
    font-size:.62rem!important;
    font-weight:700!important;
    letter-spacing:.04em!important;
    text-transform:none!important;
  }

  /* Native dashboard section header. */
  .home-reservation-premium .reservation-gateway-menu-heading{
    display:block!important;
    margin:22px 0 0!important;
    padding:0!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading::before,
  .home-reservation-premium .reservation-gateway-menu-heading::after{display:none!important}
  .home-reservation-premium .reservation-gateway-menu-heading .reservation-gateway-menu-heading-mobile{
    display:block!important;
    width:auto!important;
    max-width:none!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    text-transform:none!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b{
    display:block!important;
    color:inherit!important;
    font:inherit!important;
    font-size:clamp(1.42rem,6.3vw,1.72rem)!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:-.045em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b::after{display:none!important}
  .home-reservation-premium .reservation-gateway-menu-subcopy{
    margin:6px 0 15px!important;
    color:var(--native-muted)!important;
    font-size:.72rem!important;
    font-weight:560!important;
    letter-spacing:0!important;
    line-height:1.35!important;
    text-transform:none!important;
  }

  /* Two-up booking dashboard: sports side by side, venue full width. */
  .home-reservation-premium .reservation-gateway-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
  .home-reservation-premium .reservation-gateway-card,
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:178px!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    border:1px solid var(--native-line)!important;
    border-radius:21px!important;
    background:var(--native-surface)!important;
    box-shadow:0 12px 26px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.04)!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
    transition:transform .18s cubic-bezier(.2,.7,.2,1),border-color .18s ease!important;
  }
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{
    grid-column:1/-1!important;
    height:118px!important;
  }
  .home-reservation-premium .reservation-gateway-card::before{display:none!important}
  .home-reservation-premium .reservation-gateway-card::after{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:2!important;
    border-radius:inherit!important;
    background:linear-gradient(180deg,rgba(3,12,22,.02) 25%,rgba(3,12,22,.20) 52%,rgba(3,12,22,.88) 100%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.045)!important;
  }
  .home-reservation-premium .reservation-gateway-card-event::after,
  .home-reservation-premium .reservation-gateway-card-events::after{
    background:linear-gradient(90deg,rgba(3,12,22,.76) 0%,rgba(3,12,22,.28) 55%,rgba(3,12,22,.06) 100%),linear-gradient(180deg,transparent 32%,rgba(3,12,22,.58) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-media,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    aspect-ratio:auto!important;
  }
  .home-reservation-premium .reservation-gateway-card-media>img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    transform:scale(1.015)!important;
    filter:saturate(1.02) contrast(1.035) brightness(1.02)!important;
  }
  .home-reservation-premium .reservation-gateway-card-basketball .reservation-gateway-card-media>img{object-position:52% 38%!important}
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-media>img{object-position:44% 30%!important}
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-media>img{object-position:50% 45%!important}
  .home-reservation-premium .reservation-gateway-card-media-shade,
  .home-reservation-premium .reservation-gateway-card-icon{display:none!important}
  .home-reservation-premium .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content{
    position:absolute!important;
    inset:auto 0 0 0!important;
    z-index:4!important;
    display:grid!important;
    justify-items:start!important;
    align-content:end!important;
    gap:6px!important;
    padding:14px 48px 14px 14px!important;
    text-align:left!important;
    background:transparent!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content{
    inset:0 0 0 0!important;
    align-content:center!important;
    padding:14px 58px 14px 16px!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow,
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-eyebrow{
    display:inline-flex!important;
    align-items:center!important;
    width:max-content!important;
    min-height:21px!important;
    padding:0 7px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:999px!important;
    color:rgba(255,255,255,.74)!important;
    background:rgba(3,14,24,.34)!important;
    backdrop-filter:blur(8px)!important;
    -webkit-backdrop-filter:blur(8px)!important;
    font-size:.44rem!important;
    font-weight:800!important;
    letter-spacing:.08em!important;
    line-height:1!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-card-eyebrow::before{display:none!important}
  .home-reservation-premium .reservation-gateway-card-content>strong,
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong,
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content>strong,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content>strong{
    max-width:100%!important;
    margin:0!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(1.02rem,4.6vw,1.2rem)!important;
    font-weight:820!important;
    line-height:1!important;
    letter-spacing:-.04em!important;
    text-transform:none!important;
    text-shadow:0 8px 22px rgba(0,0,0,.35)!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-content>strong,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-content>strong{
    font-size:clamp(1.18rem,5vw,1.38rem)!important;
  }
  .home-reservation-premium .reservation-gateway-card-content>small,
  .home-reservation-premium .reservation-gateway-card-link-text{display:none!important}
  .home-reservation-premium .reservation-gateway-card-link,
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-link,
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-link,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-link{
    position:absolute!important;
    z-index:5!important;
    right:12px!important;
    bottom:12px!important;
    top:auto!important;
    left:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    transform:none!important;
  }
  .home-reservation-premium .reservation-gateway-card-event .reservation-gateway-card-link,
  .home-reservation-premium .reservation-gateway-card-events .reservation-gateway-card-link{
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
  }
  .home-reservation-premium .reservation-gateway-card-link i{
    display:grid!important;
    place-items:center!important;
    width:32px!important;
    height:32px!important;
    flex:0 0 32px!important;
    border:1px solid rgba(255,255,255,.14)!important;
    border-radius:999px!important;
    color:#071522!important;
    background:#2CFF05!important;
    box-shadow:0 5px 13px rgba(44,255,5,.10)!important;
    font-size:.78rem!important;
  }
  .home-reservation-premium .reservation-gateway-card:hover,
  .home-reservation-premium .reservation-gateway-card:focus-visible{transform:none!important}
  .home-reservation-premium .reservation-gateway-card:active{transform:scale(.975)!important;border-color:rgba(44,255,5,.28)!important}
  .home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-media>img,
  .home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-media>img{transform:scale(1.015)!important}

  /* Grouped native-style information section. */
  .home-reservation-premium .reservation-gateway-process{
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:var(--native-bg)!important;
    box-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-process::before,
  .home-reservation-premium .reservation-gateway-process::after{display:none!important}
  .home-reservation-premium .reservation-gateway-process-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
    padding:24px 0 26px!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro{gap:5px!important}
  .home-reservation-premium .reservation-gateway-process-intro>span{
    color:#2CFF05!important;
    font-size:.5rem!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-process-intro>strong{
    max-width:none!important;
    color:#fff!important;
    font-size:1.12rem!important;
    font-weight:780!important;
    line-height:1.15!important;
  }
  .home-reservation-premium .reservation-gateway-process ol{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid var(--native-line)!important;
    border-radius:20px!important;
    background:var(--native-surface)!important;
    box-shadow:0 12px 26px rgba(0,0,0,.10)!important;
  }
  .home-reservation-premium .reservation-gateway-process ol::before{display:none!important}
  .home-reservation-premium .reservation-gateway-process li,
  .home-reservation-premium .reservation-gateway-process li:first-child{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    align-items:center!important;
    gap:12px!important;
    min-height:72px!important;
    padding:13px 15px!important;
    border:0!important;
    border-bottom:1px solid var(--native-line)!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .home-reservation-premium .reservation-gateway-process li:last-child{border-bottom:0!important}
  .home-reservation-premium .reservation-gateway-process li>b{
    position:static!important;
    display:grid!important;
    place-items:center!important;
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    margin:0!important;
    border:0!important;
    border-radius:11px!important;
    color:#2CFF05!important;
    background:rgba(44,255,5,.10)!important;
    box-shadow:none!important;
    font-size:.64rem!important;
    font-weight:900!important;
  }
  .home-reservation-premium .reservation-gateway-process li strong{
    color:#f5f8fa!important;
    font-size:.84rem!important;
    font-weight:760!important;
    line-height:1.2!important;
  }
  .home-reservation-premium .reservation-gateway-process li small{
    margin-top:3px!important;
    color:rgba(225,233,239,.48)!important;
    font-size:.65rem!important;
    line-height:1.4!important;
  }

  /* Venue becomes a native feature card instead of another campaign poster. */
  .home-reservation-premium .reservation-gateway-venue{
    padding:8px 0 94px!important;
    background:var(--native-bg)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  .home-reservation-premium .reservation-gateway-venue-image{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    overflow:hidden!important;
    border:1px solid var(--native-line)!important;
    border-radius:22px!important;
    background:var(--native-surface)!important;
    box-shadow:0 14px 30px rgba(0,0,0,.14)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-image::after{
    background:linear-gradient(180deg,rgba(3,12,22,.02) 36%,rgba(3,12,22,.74) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-image img{
    width:100%!important;
    aspect-ratio:16/9.2!important;
    object-fit:cover!important;
    object-position:center 48%!important;
    filter:saturate(.98) contrast(1.03) brightness(.98)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy{
    position:relative!important;
    z-index:3!important;
    margin:-58px 12px 0!important;
    padding:16px 16px 15px!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:18px!important;
    background:rgba(9,28,43,.90)!important;
    box-shadow:0 12px 28px rgba(0,0,0,.16)!important;
    backdrop-filter:blur(18px)!important;
    -webkit-backdrop-filter:blur(18px)!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy .eyebrow{
    color:#2CFF05!important;
    font-size:.47rem!important;
    letter-spacing:.14em!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy h2{
    max-width:none!important;
    margin:6px 0 0!important;
    color:#fff!important;
    font-size:clamp(1.35rem,6vw,1.62rem)!important;
    font-weight:820!important;
    line-height:1!important;
    letter-spacing:-.045em!important;
  }
  .home-reservation-premium .reservation-gateway-venue-copy p{
    max-width:34ch!important;
    margin:10px 0 0!important;
    color:rgba(226,234,240,.52)!important;
    font-size:.68rem!important;
    line-height:1.45!important;
  }
  .home-reservation-premium .reservation-gateway-venue-links{
    display:flex!important;
    gap:18px!important;
    margin-top:13px!important;
  }
  .home-reservation-premium .reservation-gateway-venue-links a{
    color:#f3f7fa!important;
    font-size:.62rem!important;
    font-weight:760!important;
    letter-spacing:0!important;
    text-transform:none!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature{height:318px!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{font-size:clamp(1.68rem,8.2vw,2.16rem)!important}
  .home-reservation-premium .reservation-gateway-grid{gap:10px!important}
  .home-reservation-premium .reservation-gateway-card{height:164px!important;border-radius:19px!important}
  .home-reservation-premium .reservation-gateway-card-event,
  .home-reservation-premium .reservation-gateway-card-events{height:110px!important}
  .home-reservation-premium .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content{padding:12px 43px 12px 12px!important}
  .home-reservation-premium .reservation-gateway-card-content>strong,
  .home-reservation-premium .reservation-gateway-card-volleyball .reservation-gateway-card-content>strong{font-size:clamp(.96rem,4.55vw,1.1rem)!important}
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-card{transition:none!important}
}


/* ==========================================================================
   v1.2.115 — Native hero brand tagline
   Replace the generic mobile campaign copy with TLH's brand line while
   retaining the native app dashboard structure. Desktop/tablet unchanged.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:7px!important;
    padding-bottom:24px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-kicker{display:none!important}
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{
    display:grid!important;
    gap:1px!important;
    max-width:15ch!important;
    margin-top:0!important;
    color:#fff!important;
    font-size:inherit!important;
    line-height:1!important;
    text-transform:uppercase!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b{
    display:block!important;
    margin:0!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-style:normal!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:first-child{
    color:rgba(255,255,255,.88)!important;
    font-size:clamp(1.08rem,4.9vw,1.34rem)!important;
    font-weight:720!important;
    line-height:1!important;
    letter-spacing:-.035em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:last-child{
    color:#2CFF05!important;
    font-size:clamp(1.6rem,7.25vw,2rem)!important;
    font-weight:900!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy>strong{
    margin-top:4px!important;
    color:rgba(255,255,255,.58)!important;
    font-size:.60rem!important;
    font-weight:650!important;
    letter-spacing:.035em!important;
    text-transform:none!important;
  }
}
@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:first-child{
    font-size:clamp(1rem,4.8vw,1.18rem)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:last-child{
    font-size:clamp(1.48rem,7.1vw,1.82rem)!important;
  }
}


/* ========================================================================== 
   v1.2.116 — Native mobile brand hierarchy refinement
   Slightly enlarge the TLH brand promise and rename the mobile booking section.
   Desktop/tablet remain unchanged.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title{
    max-width:17ch!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:first-child{
    font-size:clamp(1.18rem,5.35vw,1.5rem)!important;
    letter-spacing:-.038em!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:last-child{
    font-size:clamp(1.78rem,7.9vw,2.22rem)!important;
    letter-spacing:-.058em!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile{
    display:block!important;
    max-width:15ch!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b{
    font-size:clamp(1.36rem,5.9vw,1.64rem)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
    text-wrap:balance;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:first-child{
    font-size:clamp(1.08rem,5.1vw,1.28rem)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-title b:last-child{
    font-size:clamp(1.64rem,7.6vw,2rem)!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile{
    max-width:14ch!important;
  }
  .home-reservation-premium .reservation-gateway-menu-heading-mobile b{
    font-size:clamp(1.28rem,5.8vw,1.5rem)!important;
  }
}


/* ========================================================================== 
   v1.2.117 — Mobile schedule back navigation
   Add a visible native-style back control to the initial calendar/date screen.
   ========================================================================== */
.mobile-schedule-step-back{display:none}

@media(max-width:840px){
  .reference-booking-calendar-pane{position:relative}
  .mobile-schedule-step-back{
    display:inline-flex;
    position:absolute;
    top:calc(env(safe-area-inset-top,0px) + 14px);
    left:18px;
    z-index:8;
    align-items:center;
    gap:5px;
    min-height:42px;
    padding:0 12px 0 8px;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:#2d67c5;
    box-shadow:0 8px 20px rgba(6,23,46,.08);
    font:inherit;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-schedule-step-back span{
    display:grid;
    place-items:center;
    width:22px;
    height:22px;
    font-size:1.6rem;
    font-weight:400;
    line-height:1;
    transform:translateY(-1px);
  }
  .mobile-schedule-step-back b{
    font-size:.92rem;
    font-weight:700;
    line-height:1;
  }
  .mobile-schedule-step-back:active{
    transform:scale(.96);
    background:#fff;
  }
}

@media(max-width:390px){
  .mobile-schedule-step-back{left:14px}
}

@media(prefers-reduced-motion:reduce){
  .mobile-schedule-step-back{transition:none!important}
}


/* ========================================================================== 
   v1.2.119 — Short native reservation confirmation sheet
   Replace the long policy-style notice with a fast, three-step explanation.
   ========================================================================== */
.reserve-notice-dialog{
  width:min(500px,100%);
  padding:30px;
  border-radius:24px;
  overflow:auto;
}
.reserve-notice-heading{padding-right:42px}
.reserve-notice-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:9px;
  color:#4d9f2d;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.reserve-notice-kicker::before{
  content:"";
  width:20px;
  height:3px;
  border-radius:999px;
  background:#2CFF05;
}
.reserve-notice-dialog h2{
  margin:0;
  color:#0a1d34;
  font-family:Montserrat,Inter,sans-serif;
  font-size:clamp(1.65rem,4vw,2.05rem);
  font-weight:850;
  line-height:1.04;
  letter-spacing:-.04em;
}
.reserve-notice-heading>p{
  margin:11px 0 0;
  color:#667382;
  font-size:.93rem;
  line-height:1.5;
}
.reserve-notice-heading>p strong{color:#243447;font-weight:800}
.reserve-notice-steps{
  margin-top:22px;
  overflow:hidden;
  border:1px solid #e8edf1;
  border-radius:18px;
  background:#f7f9fa;
}
.reserve-notice-step{
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:14px 15px;
}
.reserve-notice-step+.reserve-notice-step{border-top:1px solid #e5e9ed}
.reserve-notice-step-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(44,255,5,.24);
  border-radius:12px;
  color:#1f8614;
  background:rgba(44,255,5,.09);
}
.reserve-notice-step-icon svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.reserve-notice-step strong,
.reserve-notice-step small{display:block}
.reserve-notice-step strong{
  color:#182a3c;
  font-size:.9rem;
  line-height:1.25;
}
.reserve-notice-step small{
  margin-top:3px;
  color:#75808b;
  font-size:.76rem;
  line-height:1.38;
}
.reserve-notice-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  margin-top:18px;
}
.reserve-notice-actions .reserve-calendar-cta{
  grid-column:auto;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:13px 16px;
  border:1px solid #2CFF05;
  border-radius:14px;
  background:#2CFF05;
  color:#06172e;
  box-shadow:0 9px 22px rgba(44,255,5,.14);
}
.reserve-notice-actions .reserve-calendar-cta:hover{
  border-color:#20df00;
  background:#20df00;
  color:#06172e;
  box-shadow:0 11px 24px rgba(44,255,5,.18);
}
.reserve-notice-actions .reserve-calendar-cta:focus-visible{
  outline:3px solid rgba(44,255,5,.22);
  outline-offset:3px;
}
.reserve-calendar-cta-icon{
  width:20px;
  height:20px;
  flex:0 0 20px;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.reserve-notice-actions .reserve-notice-continue{
  width:100%;
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 16px;
  border:1px solid #d7dee5;
  border-radius:14px;
  color:#233447;
  background:#fff;
  box-shadow:none;
  font-weight:800;
}
.reserve-notice-actions .reserve-notice-continue:hover{
  border-color:#bcc7d1;
  color:#0a1d34;
  background:#f7f9fb;
}
.reserve-notice-close{
  top:17px;
  right:18px;
  width:38px;
  height:38px;
  background:#f2f4f6;
}

@media(max-width:560px){
  .reserve-notice-modal{
    place-items:end center;
    padding:0!important;
  }
  .reserve-notice-backdrop{
    background:rgba(4,15,27,.68);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }
  .reserve-notice-dialog{
    width:100%;
    max-height:calc(100dvh - max(18px,env(safe-area-inset-top)));
    padding:28px 18px calc(18px + env(safe-area-inset-bottom));
    border-radius:28px 28px 0 0;
    box-shadow:0 -22px 56px rgba(0,0,0,.26);
  }
  .reserve-notice-dialog::before{
    content:"";
    position:absolute;
    top:8px;
    left:50%;
    width:38px;
    height:4px;
    border-radius:999px;
    background:#d9dee3;
    transform:translateX(-50%);
  }
  .reserve-notice-heading{padding-right:44px}
  .reserve-notice-kicker{
    margin-bottom:8px;
    font-size:.63rem;
  }
  .reserve-notice-dialog h2{
    font-size:clamp(1.55rem,7.2vw,1.82rem);
  }
  .reserve-notice-heading>p{
    max-width:31ch;
    margin-top:9px;
    font-size:.84rem;
    line-height:1.45;
  }
  .reserve-notice-steps{
    margin-top:18px;
    border-radius:16px;
  }
  .reserve-notice-step{
    grid-template-columns:38px minmax(0,1fr);
    gap:11px;
    padding:12px 13px;
  }
  .reserve-notice-step-icon{
    width:36px;
    height:36px;
    border-radius:11px;
  }
  .reserve-notice-step strong{font-size:.84rem}
  .reserve-notice-step small{font-size:.71rem}
  .reserve-notice-actions{margin-top:15px}
  .reserve-notice-actions .reserve-calendar-cta,
  .reserve-notice-actions .reserve-notice-continue{
    min-height:50px;
    border-radius:14px;
    font-size:.88rem;
  }
  .reserve-notice-close{
    top:20px;
    right:16px;
  }
}

@media(max-width:380px){
  .reserve-notice-dialog{
    padding-left:15px;
    padding-right:15px;
  }
  .reserve-notice-step{padding:11px 12px}
  .reserve-notice-step small{font-size:.68rem}
}


/* ========================================================================== 
   v1.2.120 — Mobile available-time clarity
   Make it explicit that every visible time card is available, while the neon
   green state means the client has selected that slot.
   ========================================================================== */
.mobile-time-availability-note{display:none}
.reference-time-selected-badge{display:none}

@media(max-width:840px){
  .reference-booking-time-pane .mobile-time-toolbar h2{
    margin-bottom:6px!important;
    color:#242a32!important;
    font-size:clamp(1.34rem,5.6vw,1.62rem)!important;
    font-weight:800!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
  }

  .mobile-time-availability-note{
    display:flex;
    align-items:flex-start;
    gap:11px;
    width:min(620px,100%);
    margin:18px auto 14px;
    padding:12px 14px;
    border:1px solid #dfe5e8;
    border-radius:14px;
    background:#fff;
    box-shadow:0 5px 18px rgba(13,31,48,.04);
  }
  .mobile-time-availability-dot{
    width:10px;
    height:10px;
    flex:0 0 10px;
    margin-top:4px;
    border-radius:999px;
    background:var(--brand-green);
    box-shadow:0 0 0 4px rgba(44,255,5,.12);
  }
  .mobile-time-availability-note>div{min-width:0}
  .mobile-time-availability-note strong,
  .mobile-time-availability-note small{display:block}
  .mobile-time-availability-note strong{
    color:#222a33;
    font-size:.83rem;
    font-weight:800;
    line-height:1.25;
  }
  .mobile-time-availability-note small{
    margin-top:3px;
    color:#858c95;
    font-size:.71rem;
    line-height:1.4;
  }

  .reference-time-card{
    position:relative;
  }
  .reference-time-card.is-selected{
    padding-top:12px!important;
    padding-bottom:10px!important;
  }
  .reference-time-selected-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:4px;
    padding:3px 8px;
    border-radius:999px;
    color:#071a33;
    background:rgba(7,26,51,.09);
    font-size:.61rem;
    font-weight:850;
    line-height:1;
    letter-spacing:.01em;
  }
}

@media(max-width:520px){
  .mobile-time-availability-note{
    margin-top:15px;
    margin-bottom:12px;
    padding:11px 12px;
    border-radius:13px;
  }
  .mobile-time-availability-note strong{font-size:.8rem}
  .mobile-time-availability-note small{font-size:.68rem}
}

/* ========================================================================== 
   v1.2.122 — Native experience completion
   Public booking progress, compact selection summary, native calendar,
   confirmation screen, tracking timeline, and loading/submit states.
   ========================================================================== */
.native-booking-progress,
.native-booking-selection-summary{display:none}

.native-success-page{min-height:calc(100vh - 80px);padding:72px 0 96px;background:#f5f6f8}
.native-success-shell{max-width:720px;text-align:center}
.native-success-check{width:68px;height:68px;margin:0 auto 18px;display:grid;place-items:center;border-radius:999px;background:#2CFF05;color:#071a33;font-size:2rem;font-weight:900;box-shadow:0 14px 34px rgba(44,255,5,.18)}
.native-success-kicker{color:#4c7f42;font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.native-success-shell h1{margin:8px 0 10px;color:#0b1d31;font-size:clamp(2rem,6vw,3.4rem);letter-spacing:-.05em}
.native-success-lead{max-width:600px;margin:0 auto;color:#687584;line-height:1.65}
.native-success-reference-card{margin:30px 0 14px;padding:24px;border:1px solid #dfe5e9;border-radius:22px;background:#fff;box-shadow:0 14px 34px rgba(14,32,49,.06)}
.native-success-reference-card span,.native-success-reference-card strong{display:block}
.native-success-reference-card>span{color:#83909b;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.native-success-reference-card>strong{margin:6px 0 13px;color:#071a33;font-family:Montserrat,Inter,sans-serif;font-size:clamp(1.8rem,6vw,2.5rem);letter-spacing:.02em}
.native-success-reference-card button{border:0;background:#eef3f6;color:#314254;border-radius:12px;padding:9px 13px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}
.native-success-status-row{display:flex;align-items:center;gap:12px;padding:15px 17px;border:1px solid #f0d99a;border-radius:16px;background:#fff9e9;text-align:left}
.native-success-status-dot{width:11px;height:11px;flex:0 0 11px;border-radius:999px;background:#e4ad19;box-shadow:0 0 0 5px rgba(228,173,25,.11)}
.native-success-status-row strong,.native-success-status-row small{display:block}.native-success-status-row strong{color:#614711}.native-success-status-row small{margin-top:2px;color:#887651;font-size:.74rem}
.native-success-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px;overflow:hidden;border:1px solid #e1e6ea;border-radius:18px;background:#fff;text-align:left}
.native-success-summary>div{padding:15px 16px;border-bottom:1px solid #edf0f2}.native-success-summary>div:nth-child(odd){border-right:1px solid #edf0f2}.native-success-summary>div:nth-last-child(-n+2){border-bottom:0}
.native-success-summary span,.native-success-summary strong{display:block}.native-success-summary span{color:#87929d;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.native-success-summary strong{margin-top:4px;color:#1b2a3b;font-size:.9rem;line-height:1.35}
.native-success-note{display:grid;gap:3px;margin-top:14px;padding:15px 16px;border-radius:15px;background:#eef4f7;text-align:left}.native-success-note strong{color:#27394c;font-size:.83rem}.native-success-note span{color:#72808e;font-size:.74rem;line-height:1.45}
.native-success-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.native-success-actions form{margin:0}.native-success-actions .btn{width:100%}.native-success-print{grid-column:1/-1}.native-success-print button{border:0;background:none;color:#667788;font:inherit;font-size:.75rem;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

.native-tracking-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:22px 0 4px;padding:0 10px}
.native-tracking-step{position:relative;display:grid;justify-items:center;gap:8px;text-align:center;color:#98a2ac}
.native-tracking-step:not(:last-child)::after{content:"";position:absolute;top:16px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;background:#dce2e6}
.native-tracking-step-dot{position:relative;z-index:2;width:34px;height:34px;display:grid;place-items:center;border:2px solid #d7dee3;border-radius:999px;background:#fff;font-size:.68rem;font-weight:900}
.native-tracking-step strong,.native-tracking-step small{display:block}.native-tracking-step strong{font-size:.72rem;color:#66737f}.native-tracking-step small{margin-top:2px;font-size:.62rem;line-height:1.3;color:#9aa3ab}
.native-tracking-step.is-complete .native-tracking-step-dot{border-color:#2CFF05;background:#2CFF05;color:#071a33}.native-tracking-step.is-complete:not(:last-child)::after{background:#2CFF05}.native-tracking-step.is-complete strong{color:#1f3430}
.native-tracking-step.is-current .native-tracking-step-dot{border-color:#2CFF05;color:#168f0b;box-shadow:0 0 0 5px rgba(44,255,5,.10)}.native-tracking-step.is-current strong{color:#172a3d}.native-tracking-step.is-muted{opacity:.45}

.public-calendar-book-as{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid #e2e7eb;border-radius:16px;background:#fff}
.public-calendar-book-as>div:first-child span,.public-calendar-book-as>div:first-child small{display:block}.public-calendar-book-as>div:first-child span{color:#17283a;font-size:.78rem;font-weight:900}.public-calendar-book-as>div:first-child small{margin-top:2px;color:#87919b;font-size:.67rem}
.public-calendar-type-chips{display:flex;gap:7px;flex-wrap:wrap}.public-calendar-type-chips a{padding:8px 11px;border:1px solid #dbe2e7;border-radius:999px;color:#536270;background:#f7f9fa;font-size:.7rem;font-weight:800}.public-calendar-type-chips a.active{border-color:#2CFF05;background:rgba(44,255,5,.12);color:#176810}
.public-calendar-day-select{display:none}

@media(max-width:840px){
  /* Native booking progress header */
  .reservation-step-form{gap:0!important}
  .native-booking-progress{position:sticky;top:0;z-index:7;display:grid;gap:10px;padding:18px 20px 12px;border-bottom:1px solid #edf0f2;background:rgba(250,251,252,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .native-booking-progress-copy{display:flex;align-items:end;justify-content:space-between;gap:14px;padding-right:44px}
  .native-booking-progress-copy span{color:#8c949c;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
  .native-booking-progress-copy strong{color:#202830;font-size:.88rem;font-weight:850;text-align:right}
  .native-booking-progress-track{height:3px;overflow:hidden;border-radius:999px;background:#e6e9eb}.native-booking-progress-track i{display:block;width:25%;height:100%;border-radius:inherit;background:#2CFF05;transition:width .22s ease}
  .native-booking-progress-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
  .native-booking-progress-tabs button{display:grid;justify-items:center;gap:4px;padding:4px;border:0;background:none;color:#a0a6ac;font:inherit;cursor:default}
  .native-booking-progress-tabs button span{width:25px;height:25px;display:grid;place-items:center;border:1px solid #d8dee2;border-radius:999px;background:#fff;font-size:.61rem;font-weight:900}.native-booking-progress-tabs button b{font-size:.56rem;font-weight:800}
  .native-booking-progress-tabs button.is-active,.native-booking-progress-tabs button.is-complete{color:#263641}.native-booking-progress-tabs button.is-active span{border-color:#2CFF05;box-shadow:0 0 0 4px rgba(44,255,5,.09)}.native-booking-progress-tabs button.is-complete span{border-color:#2CFF05;background:#2CFF05;color:#071a33}.native-booking-progress-tabs button.is-complete{cursor:pointer}

  .native-booking-selection-summary{display:none;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;margin:14px 18px 0;padding:11px 12px;border:1px solid #e2e7ea;border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(15,33,48,.04)}
  .reservation-step-form[data-current-step="3"] .native-booking-selection-summary,.reservation-step-form[data-current-step="4"] .native-booking-selection-summary{display:grid}
  .native-booking-selection-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#f1f4f6;font-size:1.2rem}.native-booking-selection-summary small,.native-booking-selection-summary strong{display:block}.native-booking-selection-summary small{color:#87919a;font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.native-booking-selection-summary strong{margin-top:2px;color:#263543;font-size:.79rem;line-height:1.3}.native-booking-selection-summary button{border:0;background:none;color:#2f67c2;font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}

  .reservation-step-card-reference [data-form-step="3"],.reservation-step-card-reference [data-form-step="4"]{padding-top:24px!important}
  .reservation-step-card-reference [data-form-step="3"] .form-grid,.reservation-step-card-reference [data-form-step="4"] .form-grid{gap:12px!important}
  .reservation-step-card-reference [data-form-step="3"] .form-group,.reservation-step-card-reference [data-form-step="4"] .form-group{padding:14px!important;border:1px solid #e4e8eb;border-radius:15px;background:#fff!important}
  .reservation-step-card-reference [data-form-step="3"] .form-group label,.reservation-step-card-reference [data-form-step="4"] .form-group label{font-size:.72rem!important;color:#526170!important}
  .reservation-step-card-reference [data-form-step="3"] input,.reservation-step-card-reference [data-form-step="3"] select,.reservation-step-card-reference [data-form-step="3"] textarea,.reservation-step-card-reference [data-form-step="4"] input,.reservation-step-card-reference [data-form-step="4"] select{border:0!important;background:#f2f4f6!important;box-shadow:none!important;border-radius:11px!important}
  .reservation-step-actions{position:sticky;bottom:0;z-index:9;margin:8px -20px -28px!important;padding:12px 20px calc(12px + env(safe-area-inset-bottom))!important;border-top:1px solid #e4e8eb;background:rgba(250,251,252,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .reservation-step-actions .btn{min-height:52px!important;border-radius:14px!important}
  .reservation-step-actions button[type="submit"][aria-busy="true"]{opacity:.72;cursor:wait}

  .reference-booking-scheduler.is-loading-slots .reference-time-empty::before{content:"";width:22px;height:22px;margin-bottom:8px;border:2px solid #d9dee2;border-top-color:#2CFF05;border-radius:999px;animation:tlhNativeSpin .7s linear infinite}
  @keyframes tlhNativeSpin{to{transform:rotate(360deg)}}

  /* Native public calendar */
  .public-calendar-section{padding:20px 0 calc(var(--mobile-bottom-nav-height) + 30px)!important;background:#f5f6f8}
  .public-calendar-toolbar{grid-template-columns:44px 1fr 44px;gap:10px;margin-bottom:12px}.public-calendar-title span{font-size:.64rem}.public-calendar-title h2{font-size:1.55rem}.calendar-nav-btn{width:44px;height:44px;border:0;border-radius:13px;background:#fff;box-shadow:none}
  .public-calendar-book-as{display:grid;gap:10px;margin-bottom:12px;padding:13px 14px;border-radius:15px}.public-calendar-book-as>div:first-child small{font-size:.64rem}.public-calendar-type-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.public-calendar-type-chips a{text-align:center;padding:9px 5px;border-radius:11px;font-size:.66rem}
  .public-calendar-legend{justify-content:flex-start;gap:14px;margin:0 0 12px;padding:0 2px;font-size:.68rem}
  .public-calendar-shell{overflow:hidden;border:1px solid #e1e6e9;border-radius:18px;box-shadow:none}.public-calendar-weekdays,.public-calendar-grid{min-width:0!important}.public-calendar-weekdays{background:#fff;color:#6f7b86;border-bottom:1px solid #e8ecef}.public-calendar-weekdays div{padding:10px 2px;font-size:.61rem}
  .public-calendar-day{min-height:58px!important;padding:5px!important;display:grid;place-items:center;border-color:#edf0f2;background:#fff!important;gap:0}.public-calendar-date-row{justify-content:center}.public-calendar-date-number{position:relative;z-index:2;width:34px;height:34px;display:grid;place-items:center;border-radius:999px;font-size:.83rem}.public-calendar-today-label,.public-calendar-reservations,.public-calendar-open,.public-calendar-day-action{display:none!important}.public-calendar-day.has-reservation::after{content:"";position:absolute;bottom:7px;width:5px;height:5px;border-radius:999px;background:#d45465}.public-calendar-day.today .public-calendar-date-number{box-shadow:inset 0 0 0 1.5px #2CFF05}.public-calendar-day.is-selected .public-calendar-date-number{background:#2CFF05;color:#071a33;font-weight:900;box-shadow:none}.public-calendar-day.other-month{opacity:.32}.public-calendar-day.past{opacity:.38}.public-calendar-day-select{display:block;position:absolute;inset:0;z-index:3;border-radius:inherit}
  .public-calendar-privacy-note{margin-top:12px;padding:12px 13px;border-radius:13px;font-size:.7rem}.public-day-schedule{margin-top:16px;padding:16px;border:1px solid #e2e7ea;border-radius:18px;box-shadow:none}.public-day-schedule-heading{gap:13px;margin-bottom:14px}.public-day-schedule-heading .eyebrow{font-size:.62rem}.public-day-schedule-heading h2{font-size:1.35rem}.public-day-schedule-heading .btn{min-height:48px;border-radius:13px}.public-day-slots{grid-template-columns:1fr 1fr;gap:8px}.public-day-slot{padding:12px;border-radius:12px}.public-day-slot strong{font-size:.86rem}.public-day-open-card{padding:14px;border-radius:13px;font-size:.78rem}

  /* Native success */
  .native-success-page{padding:calc(env(safe-area-inset-top) + 30px) 0 calc(var(--mobile-bottom-nav-height) + 30px);background:#f5f6f8}.native-success-shell{padding-inline:18px}.native-success-check{width:58px;height:58px;margin-bottom:14px;font-size:1.65rem}.native-success-kicker{font-size:.61rem}.native-success-shell h1{font-size:1.9rem;line-height:1.02}.native-success-lead{font-size:.82rem;line-height:1.5}.native-success-reference-card{margin-top:22px;padding:18px;border-radius:18px}.native-success-reference-card>strong{font-size:1.75rem}.native-success-summary{grid-template-columns:1fr}.native-success-summary>div,.native-success-summary>div:nth-child(odd){border-right:0;border-bottom:1px solid #edf0f2}.native-success-summary>div:last-child{border-bottom:0}.native-success-actions{grid-template-columns:1fr}.native-success-print{grid-column:auto}.native-success-actions .btn{min-height:50px;border-radius:14px}

  /* Native tracking */
  .page-hero:has(+ .section .native-tracking-card){padding:calc(env(safe-area-inset-top) + 26px) 0 34px}.native-tracking-card{padding:16px!important;border-radius:20px!important;box-shadow:none!important}.native-tracking-timeline{grid-template-columns:1fr;margin:18px 0;padding:0 2px}.native-tracking-step{grid-template-columns:38px minmax(0,1fr);justify-items:start;gap:12px;align-items:start;text-align:left;padding:0 0 18px}.native-tracking-step:not(:last-child)::after{top:34px;left:18px;right:auto;bottom:0;width:2px;height:auto}.native-tracking-step-dot{width:36px;height:36px}.native-tracking-step strong{font-size:.82rem}.native-tracking-step small{font-size:.68rem}.native-tracking-card>.grid-2{grid-template-columns:1fr!important;gap:0!important}.native-tracking-card>.grid-2>div{padding:12px 0;border-bottom:1px solid #edf0f2}.native-tracking-card>.grid-2>div:last-child{border-bottom:0}.native-tracking-card h3{margin:4px 0 0;font-size:.9rem!important;line-height:1.35}.tracking-status-hero{border:0;border-radius:16px;padding:17px 14px}.tracking-status-value{font-size:1.65rem}.tracking-status-reference{font-size:.76rem}
}

@media(max-width:380px){
  .native-booking-progress{padding-inline:15px}.native-booking-progress-copy{padding-right:38px}.native-booking-progress-tabs button b{font-size:.52rem}.native-booking-selection-summary{margin-inline:14px}.public-day-slots{grid-template-columns:1fr}.native-success-shell{padding-inline:15px}
}

@media(prefers-reduced-motion:reduce){.native-booking-progress-track i,.reference-booking-scheduler.is-loading-slots .reference-time-empty::before{transition:none!important;animation:none!important}}

@media(max-width:760px){
  .native-track-page main{background:#f5f6f8}
  .native-track-page .page-hero{padding:calc(env(safe-area-inset-top,0px) + 26px) 0 28px!important;background:#071725!important}
  .native-track-page .page-hero .eyebrow{font-size:.6rem!important;color:#2CFF05!important}.native-track-page .page-hero h1{font-size:1.75rem!important;letter-spacing:-.045em!important}.native-track-page .page-hero p{max-width:31ch;font-size:.78rem!important;line-height:1.45!important}
  .native-track-page>.site-header+main .section,.native-track-page main>.section{padding:16px 0 calc(var(--mobile-bottom-nav-height) + 26px)!important}
  .native-track-page .form-card{padding:15px!important;border:1px solid #e1e6e9!important;border-radius:18px!important;background:#fff!important;box-shadow:none!important}.native-track-page .form-card .form-grid{grid-template-columns:1fr!important;gap:10px!important}.native-track-page .form-card input{min-height:48px!important;border-radius:12px!important;background:#f3f5f7!important}.native-track-page .form-card .btn{width:100%;min-height:48px;border-radius:13px}
  .native-calendar-page main{background:#f5f6f8}
}


/* ========================================================================== 
   v1.2.123 — Installed-app notch / Dynamic Island safe-area correction
   The native booking progress header must reserve the iOS status-bar inset.
   Once that inset is handled by the sticky progress header, remove the older
   duplicate safe-area offset from the Date/Time panes so the flow stays compact.
   ========================================================================== */
@media(max-width:840px){
  html.tlh-installed-app .native-booking-progress{
    padding-top:calc(env(safe-area-inset-top,0px) + 16px)!important;
  }

  html.tlh-installed-app .reference-booking-calendar-pane{
    padding-top:76px!important;
  }
  html.tlh-installed-app .reference-booking-time-pane{
    padding-top:74px!important;
  }
  html.tlh-installed-app .mobile-schedule-step-back{
    top:14px!important;
  }
}

/* CSS fallback for installed PWAs even before/without the JS app-context class. */
@media (display-mode:standalone) and (max-width:840px){
  .native-booking-progress{
    padding-top:calc(env(safe-area-inset-top,0px) + 16px)!important;
  }
  .reference-booking-calendar-pane{padding-top:76px!important}
  .reference-booking-time-pane{padding-top:74px!important}
  .mobile-schedule-step-back{top:14px!important}
}

/* ========================================================================== 
   v1.2.124 — Compact native booking flow spacing
   Remove legacy full-screen centering/spacers from the booking-type and
   available-time screens. The progress header now owns the top safe area,
   so content can begin naturally beneath it without large dead zones.
   ========================================================================== */
@media(max-width:840px){
  /* Step 1: stop vertically centering the chooser inside a full viewport. */
  .public-booking-type-screen{
    min-height:0!important;
    place-items:start stretch!important;
    align-content:start!important;
    padding:28px 20px 30px!important;
  }
  .booking-type-picker-reference{
    width:min(620px,100%)!important;
    margin:0 auto!important;
  }
  .booking-type-intro{
    margin:0 auto 18px!important;
  }
  .booking-type-footnote{
    margin-top:14px!important;
  }

  /* Step 2 / Time: remove the old top spacer below the native progress bar. */
  .reference-booking-time-pane{
    min-height:0!important;
    padding-top:24px!important;
  }
  .mobile-time-toolbar{
    gap:8px!important;
    margin:0 0 16px!important;
  }
  .mobile-back-to-dates{
    min-height:38px!important;
    margin-bottom:0!important;
  }
  .mobile-time-toolbar>p{
    margin:-1px 0 2px!important;
  }
  .mobile-time-type-card{
    padding:16px 18px!important;
  }
  .mobile-time-type-card>span{
    width:36px!important;
    height:36px!important;
    font-size:1.28rem!important;
  }
  .mobile-time-availability-note{
    margin:12px auto 12px!important;
  }

  /* Date screen still needs room for its absolute Back button, but not the
     oversized legacy gap. */
  .reference-booking-calendar-pane{
    padding-top:62px!important;
  }
}

@media(max-width:520px){
  .public-booking-type-screen{
    padding:24px 18px 26px!important;
  }
  .booking-type-intro{
    margin-bottom:16px!important;
  }
  .reference-booking-time-pane{
    padding-top:20px!important;
  }
  .mobile-time-toolbar{
    margin-bottom:14px!important;
  }
  .mobile-time-type-card{
    padding:14px 16px!important;
  }
  .mobile-time-availability-note{
    margin-top:10px!important;
  }
}

/* Installed PWA: the progress header already reserves the notch/Dynamic Island
   safe area. Do not add a second large offset inside these content panes. */
@media(max-width:840px){
  html.tlh-installed-app .public-booking-type-screen{
    padding-top:24px!important;
  }
  html.tlh-installed-app .reference-booking-calendar-pane{
    padding-top:62px!important;
  }
  html.tlh-installed-app .reference-booking-time-pane{
    padding-top:20px!important;
  }
}

@media (display-mode:standalone) and (max-width:840px){
  .public-booking-type-screen{padding-top:24px!important}
  .reference-booking-calendar-pane{padding-top:62px!important}
  .reference-booking-time-pane{padding-top:20px!important}
}

/* ========================================================================== 
   v1.2.125 — Installed-app Reservation Calendar safe-area correction
   Keep the native calendar toolbar below the iPhone status bar / Dynamic
   Island in standalone mode. Mobile browser spacing remains unchanged.
   ========================================================================== */
@media(max-width:760px){
  html.tlh-installed-app .native-calendar-page .public-calendar-section{
    padding-top:calc(env(safe-area-inset-top,0px) + 14px)!important;
  }
}

@media (display-mode:standalone) and (max-width:760px){
  .native-calendar-page .public-calendar-section{
    padding-top:calc(env(safe-area-inset-top,0px) + 14px)!important;
  }
}

/* ========================================================================== 
   v1.2.128 — Premium booking-card light streaks
   One staggered entrance sweep plus interaction-driven hover/tap reflections.
   No continuous looping; Reduce Motion disables the effect completely.
   ========================================================================== */
.home-reservation-premium .reservation-gateway-card-shine{
  --tlh-shine-peak:.62;
  --tlh-shine-tail:.30;
  position:absolute;
  top:-32%;
  bottom:-32%;
  left:-38%;
  z-index:3;
  display:block;
  width:30%;
  pointer-events:none;
  opacity:0;
  border-radius:999px;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.04) 20%,
    rgba(255,255,255,.46) 46%,
    rgba(231,255,226,.28) 57%,
    rgba(44,255,5,.08) 68%,
    rgba(255,255,255,0) 100%
  );
  filter:blur(4px);
  mix-blend-mode:screen;
  transform:translate3d(-120%,0,0) skewX(-18deg);
  will-change:transform,opacity;
}

@keyframes tlhCardShineSweep{
  0%{opacity:0;transform:translate3d(-120%,0,0) skewX(-18deg)}
  16%{opacity:0}
  34%{opacity:var(--tlh-shine-peak,.62)}
  67%{opacity:var(--tlh-shine-tail,.30)}
  100%{opacity:0;transform:translate3d(610%,0,0) skewX(-18deg)}
}

.home-reservation-premium .reservation-gateway-card.is-shine-intro .reservation-gateway-card-shine{
  animation:tlhCardShineSweep .88s cubic-bezier(.22,.65,.28,1) both;
}

/* Keep the reflective layer above card shading but below labels/actions. */
@media(min-width:721px){
  .home-reservation-premium .reservation-gateway-card-content,
  .home-reservation-premium .reservation-gateway-card-link,
  .home-reservation-premium .reservation-gateway-card-icon{
    z-index:4;
  }
}

@media(hover:hover) and (pointer:fine){
  .home-reservation-premium .reservation-gateway-card:hover .reservation-gateway-card-shine,
  .home-reservation-premium .reservation-gateway-card:focus-visible .reservation-gateway-card-shine{
    animation:tlhCardShineSweep .78s cubic-bezier(.2,.7,.25,1) both;
  }
}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-card-shine{
    --tlh-shine-peak:.38;
    --tlh-shine-tail:.18;
    width:34%;
    filter:blur(5px);
    background:linear-gradient(
      90deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.035) 22%,
      rgba(255,255,255,.34) 48%,
      rgba(225,255,219,.18) 58%,
      rgba(44,255,5,.055) 68%,
      rgba(255,255,255,0) 100%
    );
  }
  .home-reservation-premium .reservation-gateway-card.is-shine-tap .reservation-gateway-card-shine{
    animation:tlhCardShineSweep .54s cubic-bezier(.18,.72,.26,1) both;
  }
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-card-shine{
    display:none!important;
    animation:none!important;
  }
}


/* v1.2.129 — Larger mobile native-app logo */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-native-brand img{
    width:40px!important;
    height:40px!important;
  }
}
@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-native-brand img{
    width:37px!important;
    height:37px!important;
  }
}


/* v1.2.130 — 100px mobile native-app logo */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-native-appbar{
    align-items:center!important;
    padding:calc(env(safe-area-inset-top) + 10px) 18px 8px!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand{
    gap:12px!important;
    min-height:100px!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand img{
    width:100px!important;
    height:100px!important;
    flex:0 0 100px!important;
    object-fit:contain!important;
    filter:drop-shadow(0 8px 18px rgba(0,0,0,.34))!important;
  }
  .home-reservation-premium .reservation-gateway-native-calendar{
    flex:0 0 40px!important;
  }
}
@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-native-brand img{
    width:100px!important;
    height:100px!important;
    flex-basis:100px!important;
  }
}

/* v1.2.131 — Balanced mobile app branding: 50px mark + stronger wordmark */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-native-appbar{
    align-items:center!important;
    gap:12px!important;
    padding:calc(env(safe-area-inset-top) + 10px) 16px 8px!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:calc(100% - 52px)!important;
    min-height:50px!important;
    gap:8px!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand img{
    width:50px!important;
    height:50px!important;
    flex:0 0 50px!important;
    object-fit:contain!important;
    filter:drop-shadow(0 6px 14px rgba(0,0,0,.34))!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand span{
    display:block!important;
    min-width:0!important;
    color:#fff!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:clamp(18px,5vw,22px)!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:-.045em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    text-shadow:0 4px 16px rgba(0,0,0,.48)!important;
  }
  .home-reservation-premium .reservation-gateway-native-calendar{
    flex:0 0 40px!important;
  }
}
@media(max-width:350px){
  .home-reservation-premium .reservation-gateway-native-appbar{
    gap:10px!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand{
    gap:7px!important;
  }
  .home-reservation-premium .reservation-gateway-native-brand span{
    font-size:17px!important;
  }
}

/* ========================================================================== 
   v1.2.132 — Experience the Hub visual showcase
   Replaces the instructional reservation/process block on the public homepage
   with a photo-led sports editorial using authentic Leisure Hub photography.
   ========================================================================== */
.home-reservation-premium .reservation-gateway-experience{
  position:relative;
  overflow:hidden;
  padding:88px 0 78px;
  color:#fff;
  background:
    radial-gradient(circle at 86% 16%,rgba(44,255,5,.07),transparent 25%),
    radial-gradient(circle at 12% 86%,rgba(102,208,255,.045),transparent 24%),
    #061522;
}
.home-reservation-premium .reservation-gateway-experience::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 20%,transparent 78%,rgba(0,0,0,.12));
}
.home-reservation-premium .reservation-gateway-experience-inner{position:relative;z-index:1}
.home-reservation-premium .reservation-gateway-experience-heading{
  display:grid;
  grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);
  gap:46px;
  align-items:end;
  margin-bottom:34px;
}
.home-reservation-premium .reservation-gateway-experience-heading>span{
  align-self:start;
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#2CFF05;
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.home-reservation-premium .reservation-gateway-experience-heading>span::before{
  content:"";
  width:28px;
  height:2px;
  border-radius:999px;
  background:#2CFF05;
  box-shadow:0 0 18px rgba(44,255,5,.38);
}
.home-reservation-premium .reservation-gateway-experience-heading h2{
  max-width:800px;
  margin:0;
  color:#fff;
  font-family:Montserrat,Inter,sans-serif;
  font-size:clamp(2.65rem,4.5vw,4.7rem);
  font-weight:820;
  line-height:.93;
  letter-spacing:-.058em;
}
.home-reservation-premium .reservation-gateway-experience-heading p{
  max-width:600px;
  margin:18px 0 0;
  color:rgba(229,237,243,.59);
  font-size:.96rem;
  line-height:1.65;
}
.home-reservation-premium .reservation-gateway-experience-stories{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);
  grid-template-rows:repeat(2,242px);
  gap:18px;
}
.home-reservation-premium .reservation-gateway-experience-card,
.home-reservation-premium .reservation-gateway-experience-panorama{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(255,255,255,.10);
  background:#0a1d2d;
  box-shadow:0 24px 60px rgba(0,0,0,.22);
}
.home-reservation-premium .reservation-gateway-experience-card{border-radius:24px}
.home-reservation-premium .reservation-gateway-experience-card-feature{grid-row:1/3}
.home-reservation-premium .reservation-gateway-experience-card img,
.home-reservation-premium .reservation-gateway-experience-panorama>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.018);
  filter:saturate(.98) contrast(1.04) brightness(.96);
  transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
.home-reservation-premium .reservation-gateway-experience-card-feature img{object-position:center 48%}
.home-reservation-premium .reservation-gateway-experience-card-ready img{object-position:center 46%}
.home-reservation-premium .reservation-gateway-experience-card-training img{object-position:center 48%}
.home-reservation-premium .reservation-gateway-experience-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(2,10,18,.02) 28%,rgba(2,10,18,.18) 56%,rgba(2,10,18,.90) 100%),
    linear-gradient(90deg,rgba(3,13,23,.30),transparent 48%);
}
.home-reservation-premium .reservation-gateway-experience-card-ready .reservation-gateway-experience-shade,
.home-reservation-premium .reservation-gateway-experience-card-training .reservation-gateway-experience-shade{
  background:linear-gradient(180deg,rgba(2,10,18,.01) 18%,rgba(2,10,18,.22) 54%,rgba(2,10,18,.92) 100%);
}
.home-reservation-premium .reservation-gateway-experience-copy{
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  bottom:0;
  display:grid;
  gap:6px;
  padding:28px 30px;
}
.home-reservation-premium .reservation-gateway-experience-copy>span,
.home-reservation-premium .reservation-gateway-experience-panorama-copy>span{
  color:#2CFF05;
  font-size:.6rem;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.home-reservation-premium .reservation-gateway-experience-copy>strong{
  max-width:16ch;
  color:#fff;
  font-family:Montserrat,Inter,sans-serif;
  font-size:1.52rem;
  font-weight:820;
  line-height:1.03;
  letter-spacing:-.04em;
  text-shadow:0 12px 28px rgba(0,0,0,.35);
}
.home-reservation-premium .reservation-gateway-experience-card-feature .reservation-gateway-experience-copy>strong{
  max-width:13ch;
  font-size:clamp(2rem,3.25vw,3.1rem);
}
.home-reservation-premium .reservation-gateway-experience-copy p{
  max-width:43ch;
  margin:3px 0 0;
  color:rgba(236,241,245,.68);
  font-size:.78rem;
  line-height:1.55;
}
.home-reservation-premium .reservation-gateway-experience-card-ready .reservation-gateway-experience-copy,
.home-reservation-premium .reservation-gateway-experience-card-training .reservation-gateway-experience-copy{padding:22px 24px}
.home-reservation-premium .reservation-gateway-experience-card-ready .reservation-gateway-experience-copy p,
.home-reservation-premium .reservation-gateway-experience-card-training .reservation-gateway-experience-copy p{display:none}

.home-reservation-premium .reservation-gateway-experience-card::after{
  content:"";
  position:absolute;
  z-index:2;
  top:-38%;
  bottom:-38%;
  left:-44%;
  width:24%;
  pointer-events:none;
  opacity:0;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),rgba(216,255,210,.11),transparent);
  filter:blur(5px);
}
@keyframes tlhExperienceSweep{
  0%{left:-44%;opacity:0}
  18%{opacity:.72}
  82%{opacity:.50}
  100%{left:124%;opacity:0}
}
@media(hover:hover) and (pointer:fine){
  .home-reservation-premium .reservation-gateway-experience-card:hover img{transform:scale(1.045);filter:saturate(1.03) contrast(1.05) brightness(1)}
  .home-reservation-premium .reservation-gateway-experience-card:hover::after{animation:tlhExperienceSweep .92s cubic-bezier(.25,.6,.2,1) both}
}

.home-reservation-premium .reservation-gateway-experience-panorama{
  min-height:330px;
  margin-top:18px;
  border-radius:24px;
}
.home-reservation-premium .reservation-gateway-experience-panorama>img{object-position:center 50%}
.home-reservation-premium .reservation-gateway-experience-panorama-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(3,12,22,.93) 0%,rgba(3,12,22,.76) 30%,rgba(3,12,22,.28) 60%,rgba(3,12,22,.08) 100%),
    linear-gradient(180deg,rgba(3,12,22,.10),rgba(3,12,22,.40));
}
.home-reservation-premium .reservation-gateway-experience-panorama-copy{
  position:relative;
  z-index:3;
  display:grid;
  align-content:center;
  min-height:330px;
  max-width:610px;
  padding:42px 46px;
}
.home-reservation-premium .reservation-gateway-experience-panorama-copy h3{
  max-width:15ch;
  margin:8px 0 0;
  color:#fff;
  font-family:Montserrat,Inter,sans-serif;
  font-size:clamp(1.8rem,3.2vw,3rem);
  font-weight:820;
  line-height:1;
  letter-spacing:-.05em;
}
.home-reservation-premium .reservation-gateway-experience-panorama-copy p{
  max-width:48ch;
  margin:14px 0 0;
  color:rgba(232,239,244,.65);
  font-size:.82rem;
  line-height:1.6;
}
.home-reservation-premium .reservation-gateway-experience-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}
.home-reservation-premium .reservation-gateway-experience-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:820;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.home-reservation-premium .reservation-gateway-experience-actions a i{font-style:normal;transition:transform .18s ease}
.home-reservation-premium .reservation-gateway-experience-actions a:hover i{transform:translateX(3px)}
.home-reservation-premium .reservation-gateway-experience-primary{
  border:1px solid #2CFF05;
  color:#061522;
  background:#2CFF05;
  box-shadow:0 12px 28px rgba(44,255,5,.14);
}
.home-reservation-premium .reservation-gateway-experience-secondary{
  border:1px solid rgba(255,255,255,.20);
  color:#fff;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.home-reservation-premium .reservation-gateway-experience-actions a:hover{transform:translateY(-2px)}

/* Reveal only when JS enhancement is available, so content never disappears if JS fails. */
html.tlh-experience-motion .home-reservation-premium [data-experience-reveal]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1);
}
html.tlh-experience-motion .home-reservation-premium [data-experience-reveal].is-visible{opacity:1;transform:none}
html.tlh-experience-motion .home-reservation-premium .reservation-gateway-experience-card-ready{transition-delay:.06s}
html.tlh-experience-motion .home-reservation-premium .reservation-gateway-experience-card-training{transition-delay:.12s}
html.tlh-experience-motion .home-reservation-premium .reservation-gateway-experience-panorama{transition-delay:.08s}

@media(max-width:980px) and (min-width:721px){
  .home-reservation-premium .reservation-gateway-experience{padding:70px 0 64px}
  .home-reservation-premium .reservation-gateway-experience-heading{grid-template-columns:1fr;gap:14px}
  .home-reservation-premium .reservation-gateway-experience-heading h2{font-size:clamp(2.7rem,7vw,4.3rem)}
  .home-reservation-premium .reservation-gateway-experience-stories{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:420px 260px}
  .home-reservation-premium .reservation-gateway-experience-card-feature{grid-column:1/-1;grid-row:auto}
  .home-reservation-premium .reservation-gateway-experience-panorama{min-height:310px}
  .home-reservation-premium .reservation-gateway-experience-panorama-copy{min-height:310px}
}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-experience{
    padding:28px 0 22px!important;
    background:
      radial-gradient(circle at 94% 16%,rgba(44,255,5,.055),transparent 23%),
      #061522!important;
  }
  .home-reservation-premium .reservation-gateway-experience-heading{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-bottom:17px!important;
  }
  .home-reservation-premium .reservation-gateway-experience-heading>span{
    gap:7px!important;
    font-size:.48rem!important;
    letter-spacing:.16em!important;
  }
  .home-reservation-premium .reservation-gateway-experience-heading>span::before{width:20px!important}
  .home-reservation-premium .reservation-gateway-experience-heading h2{
    font-size:clamp(1.72rem,8vw,2.18rem)!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
  }
  .home-reservation-premium .reservation-gateway-experience-heading h2 br{display:none}
  .home-reservation-premium .reservation-gateway-experience-heading p{
    max-width:35ch!important;
    margin:8px 0 0!important;
    color:rgba(229,237,243,.49)!important;
    font-size:.66rem!important;
    line-height:1.48!important;
  }
  .home-reservation-premium .reservation-gateway-experience-stories{
    display:flex!important;
    grid-template:none!important;
    gap:11px!important;
    width:calc(100% + 32px)!important;
    margin:0 -16px!important;
    padding:0 16px 5px!important;
    overflow-x:auto!important;
    overscroll-behavior-inline:contain!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-inline:16px!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .home-reservation-premium .reservation-gateway-experience-stories::-webkit-scrollbar{display:none!important}
  .home-reservation-premium .reservation-gateway-experience-card,
  .home-reservation-premium .reservation-gateway-experience-card-feature,
  .home-reservation-premium .reservation-gateway-experience-card-ready,
  .home-reservation-premium .reservation-gateway-experience-card-training{
    flex:0 0 min(82vw,330px)!important;
    width:min(82vw,330px)!important;
    height:290px!important;
    min-height:290px!important;
    grid-row:auto!important;
    grid-column:auto!important;
    border-radius:20px!important;
    scroll-snap-align:start!important;
    box-shadow:0 16px 34px rgba(0,0,0,.17)!important;
  }
  .home-reservation-premium .reservation-gateway-experience-card img{transform:scale(1.012)!important}
  .home-reservation-premium .reservation-gateway-experience-card-feature img{object-position:55% center!important}
  .home-reservation-premium .reservation-gateway-experience-card-ready img{object-position:58% center!important}
  .home-reservation-premium .reservation-gateway-experience-card-training img{object-position:52% center!important}
  .home-reservation-premium .reservation-gateway-experience-copy,
  .home-reservation-premium .reservation-gateway-experience-card-feature .reservation-gateway-experience-copy,
  .home-reservation-premium .reservation-gateway-experience-card-ready .reservation-gateway-experience-copy,
  .home-reservation-premium .reservation-gateway-experience-card-training .reservation-gateway-experience-copy{
    gap:5px!important;
    padding:18px!important;
  }
  .home-reservation-premium .reservation-gateway-experience-copy>span{font-size:.45rem!important;letter-spacing:.14em!important}
  .home-reservation-premium .reservation-gateway-experience-copy>strong,
  .home-reservation-premium .reservation-gateway-experience-card-feature .reservation-gateway-experience-copy>strong{
    max-width:14ch!important;
    font-size:1.34rem!important;
    line-height:.98!important;
  }
  .home-reservation-premium .reservation-gateway-experience-copy p{display:none!important}
  .home-reservation-premium .reservation-gateway-experience-panorama{
    min-height:300px!important;
    margin-top:10px!important;
    border-radius:20px!important;
    box-shadow:0 16px 34px rgba(0,0,0,.16)!important;
  }
  .home-reservation-premium .reservation-gateway-experience-panorama>img{object-position:center 48%!important;transform:scale(1.025)!important}
  .home-reservation-premium .reservation-gateway-experience-panorama-shade{
    background:linear-gradient(180deg,rgba(3,12,22,.08) 14%,rgba(3,12,22,.28) 48%,rgba(3,12,22,.93) 100%)!important;
  }
  .home-reservation-premium .reservation-gateway-experience-panorama-copy{
    align-content:end!important;
    min-height:300px!important;
    max-width:none!important;
    padding:20px!important;
  }
  .home-reservation-premium .reservation-gateway-experience-panorama-copy>span{font-size:.45rem!important;letter-spacing:.13em!important}
  .home-reservation-premium .reservation-gateway-experience-panorama-copy h3{
    max-width:16ch!important;
    margin-top:6px!important;
    font-size:1.45rem!important;
    line-height:.98!important;
  }
  .home-reservation-premium .reservation-gateway-experience-panorama-copy p{
    max-width:32ch!important;
    margin-top:8px!important;
    font-size:.63rem!important;
    line-height:1.45!important;
  }
  .home-reservation-premium .reservation-gateway-experience-actions{gap:8px!important;margin-top:14px!important}
  .home-reservation-premium .reservation-gateway-experience-actions a{
    min-height:40px!important;
    padding:0 13px!important;
    font-size:.61rem!important;
  }
  .home-reservation-premium .reservation-gateway-venue{padding-top:12px!important}
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-experience-stories{width:calc(100% + 30px)!important;margin-inline:-15px!important;padding-inline:15px!important;scroll-padding-inline:15px!important}
  .home-reservation-premium .reservation-gateway-experience-card,
  .home-reservation-premium .reservation-gateway-experience-card-feature,
  .home-reservation-premium .reservation-gateway-experience-card-ready,
  .home-reservation-premium .reservation-gateway-experience-card-training{flex-basis:min(84vw,310px)!important;width:min(84vw,310px)!important;height:272px!important;min-height:272px!important}
  .home-reservation-premium .reservation-gateway-experience-panorama,
  .home-reservation-premium .reservation-gateway-experience-panorama-copy{min-height:286px!important}
}

@media(prefers-reduced-motion:reduce){
  html.tlh-experience-motion .home-reservation-premium [data-experience-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .home-reservation-premium .reservation-gateway-experience-card img,
  .home-reservation-premium .reservation-gateway-experience-panorama>img,
  .home-reservation-premium .reservation-gateway-experience-actions a,
  .home-reservation-premium .reservation-gateway-experience-actions a i{transition:none!important}
  .home-reservation-premium .reservation-gateway-experience-card::after{display:none!important}
}

/* ========================================================================== 
   v1.2.133 — Mobile hero BOOK NOW action
   Add a clear mobile-only CTA inside the photographic hero that jumps directly
   to the booking-type choices. Desktop/tablet remain unchanged.
   ========================================================================== */
.reservation-gateway-mobile-book-now{display:none}

@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:7px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    width:max-content!important;
    min-width:132px!important;
    min-height:44px!important;
    margin-top:8px!important;
    padding:0 18px!important;
    border:1px solid rgba(255,255,255,.14)!important;
    border-radius:999px!important;
    color:#071522!important;
    background:#2CFF05!important;
    box-shadow:
      0 12px 28px rgba(0,0,0,.26),
      0 0 24px rgba(44,255,5,.16),
      inset 0 1px 0 rgba(255,255,255,.38)!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:.72rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    -webkit-tap-highlight-color:transparent!important;
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    display:inline-grid!important;
    place-items:center!important;
    width:20px!important;
    height:20px!important;
    border-radius:50%!important;
    color:#071522!important;
    background:rgba(7,21,34,.10)!important;
    font-size:.85rem!important;
    font-style:normal!important;
    line-height:1!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now:active{
    transform:scale(.97)!important;
    box-shadow:0 7px 18px rgba(0,0,0,.22),0 0 16px rgba(44,255,5,.12)!important;
    filter:brightness(.96)!important;
  }
  .home-reservation-premium #bookExperience{
    scroll-margin-top:14px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    min-width:126px!important;
    min-height:42px!important;
    margin-top:7px!important;
    padding:0 16px!important;
    font-size:.68rem!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    transition:none!important;
  }
}

/* ========================================================================== 
   v1.2.134 — Premium mobile hero BOOK NOW CTA
   Refine the mobile hero action into a deliberate split-action control with
   clearer hierarchy, stronger touch affordance, and restrained brand motion.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
    width:auto!important;
    min-width:168px!important;
    min-height:52px!important;
    margin-top:12px!important;
    padding:6px 7px 6px 20px!important;
    border:1px solid rgba(255,255,255,.52)!important;
    border-radius:17px!important;
    color:#06131f!important;
    background:linear-gradient(135deg,#2CFF05 0%,#69ff4d 100%)!important;
    box-shadow:
      0 14px 32px rgba(0,0,0,.32),
      0 5px 14px rgba(44,255,5,.18),
      inset 0 1px 0 rgba(255,255,255,.66),
      inset 0 -1px 0 rgba(7,21,34,.08)!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:.78rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.075em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    text-shadow:0 1px 0 rgba(255,255,255,.22)!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
    user-select:none!important;
    transition:transform .2s ease,box-shadow .2s ease,filter .2s ease!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now::before{
    content:""!important;
    position:absolute!important;
    z-index:0!important;
    top:-70%!important;
    bottom:-70%!important;
    left:-52%!important;
    width:42%!important;
    transform:skewX(-18deg)!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent)!important;
    opacity:0!important;
    pointer-events:none!important;
    animation:tlhHeroBookNowSheen 1.05s cubic-bezier(.22,.7,.28,1) .8s 1 both!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now::after{
    content:""!important;
    position:absolute!important;
    z-index:0!important;
    inset:1px!important;
    border-radius:15px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    pointer-events:none!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now span{
    position:relative!important;
    z-index:2!important;
    display:block!important;
    white-space:nowrap!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    position:relative!important;
    z-index:2!important;
    display:inline-grid!important;
    place-items:center!important;
    flex:0 0 auto!important;
    width:39px!important;
    height:39px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:13px!important;
    color:#2CFF05!important;
    background:#071522!important;
    box-shadow:
      0 5px 12px rgba(0,0,0,.24),
      inset 0 1px 0 rgba(255,255,255,.10)!important;
    font-family:Inter,Arial,sans-serif!important;
    font-size:1.18rem!important;
    font-style:normal!important;
    font-weight:700!important;
    line-height:1!important;
    transform:translateZ(0)!important;
    transition:transform .2s ease,background-color .2s ease!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now:active{
    transform:translateY(1px) scale(.975)!important;
    filter:brightness(.97)!important;
    box-shadow:
      0 8px 20px rgba(0,0,0,.26),
      0 3px 10px rgba(44,255,5,.13),
      inset 0 1px 0 rgba(255,255,255,.55)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now:active i{
    transform:translateX(2px)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now:focus-visible{
    outline:3px solid rgba(255,255,255,.94)!important;
    outline-offset:4px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    min-width:158px!important;
    min-height:50px!important;
    margin-top:10px!important;
    padding:6px 6px 6px 17px!important;
    border-radius:16px!important;
    font-size:.74rem!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    width:37px!important;
    height:37px!important;
    border-radius:12px!important;
  }
}

@media(hover:hover) and (pointer:fine) and (max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-book-now:hover{
    transform:translateY(-2px)!important;
    box-shadow:
      0 17px 36px rgba(0,0,0,.34),
      0 7px 17px rgba(44,255,5,.22),
      inset 0 1px 0 rgba(255,255,255,.66)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now:hover i{
    transform:translateX(2px)!important;
  }
}

@keyframes tlhHeroBookNowSheen{
  0%{left:-52%;opacity:0}
  18%{opacity:.78}
  100%{left:128%;opacity:0}
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-mobile-book-now::before{
    animation:none!important;
    display:none!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now,
  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    transition:none!important;
  }
}

/* ========================================================================== 
   v1.2.135 — Refined mobile hero BOOK NOW CTA
   Reduce visual weight so the CTA supports the hero headline rather than
   competing with it. Keep the TLH green, simplify the arrow, and restore a
   clean premium hierarchy on phones/PWA.
   ========================================================================== */
@media(max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-feature-copy{
    gap:5px!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:clamp(184px,52vw,208px)!important;
    min-width:0!important;
    height:50px!important;
    min-height:50px!important;
    margin-top:7px!important;
    padding:0 11px 0 18px!important;
    border:1px solid rgba(255,255,255,.30)!important;
    border-radius:15px!important;
    color:#06131f!important;
    background:linear-gradient(135deg,#3cff18 0%,#2CFF05 62%,#24ef05 100%)!important;
    box-shadow:
      0 9px 22px rgba(0,0,0,.24),
      0 2px 8px rgba(44,255,5,.08),
      inset 0 1px 0 rgba(255,255,255,.34)!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:1rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.025em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    text-shadow:none!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
    user-select:none!important;
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
  }

  /* Explicitly reset the generic hero-copy span rule so BOOK NOW does not
     inherit the oversized hero-title typography. */
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-book-now span{
    position:relative!important;
    z-index:2!important;
    display:block!important;
    margin:0!important;
    color:#06131f!important;
    font-family:Montserrat,Inter,sans-serif!important;
    font-size:1rem!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.025em!important;
    white-space:nowrap!important;
    text-transform:uppercase!important;
    text-shadow:none!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    position:relative!important;
    z-index:2!important;
    display:inline-grid!important;
    place-items:center!important;
    flex:0 0 auto!important;
    width:28px!important;
    height:28px!important;
    border:0!important;
    border-radius:50%!important;
    color:#06131f!important;
    background:rgba(6,19,31,.11)!important;
    box-shadow:none!important;
    font-family:Inter,Arial,sans-serif!important;
    font-size:1rem!important;
    font-style:normal!important;
    font-weight:800!important;
    line-height:1!important;
    transform:translateZ(0)!important;
    transition:transform .18s ease,background-color .18s ease!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now::after{
    content:""!important;
    position:absolute!important;
    z-index:0!important;
    inset:1px!important;
    border:0!important;
    border-radius:14px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 46%)!important;
    pointer-events:none!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now::before{
    content:""!important;
    position:absolute!important;
    z-index:1!important;
    top:-65%!important;
    bottom:-65%!important;
    left:-48%!important;
    width:30%!important;
    transform:skewX(-18deg)!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent)!important;
    opacity:0!important;
    pointer-events:none!important;
    animation:tlhHeroBookNowSheen 1s cubic-bezier(.22,.7,.28,1) .9s 1 both!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now:active{
    transform:translateY(1px) scale(.98)!important;
    filter:brightness(.97)!important;
    box-shadow:
      0 6px 15px rgba(0,0,0,.22),
      0 1px 5px rgba(44,255,5,.07),
      inset 0 1px 0 rgba(255,255,255,.28)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now:active i{
    transform:translateX(1px)!important;
    background:rgba(6,19,31,.16)!important;
  }

  .home-reservation-premium .reservation-gateway-mobile-book-now:focus-visible{
    outline:2px solid rgba(255,255,255,.96)!important;
    outline-offset:3px!important;
  }
}

@media(max-width:390px){
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    width:190px!important;
    height:48px!important;
    min-height:48px!important;
    margin-top:6px!important;
    padding-left:16px!important;
    padding-right:10px!important;
    border-radius:14px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-book-now span{
    font-size:.94rem!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    width:27px!important;
    height:27px!important;
    font-size:.96rem!important;
  }
}

@media(max-width:340px){
  .home-reservation-premium .reservation-gateway-mobile-book-now{
    width:180px!important;
    height:46px!important;
    min-height:46px!important;
    padding-left:15px!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-feature-copy .reservation-gateway-mobile-book-now span{
    font-size:.90rem!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    width:25px!important;
    height:25px!important;
    font-size:.90rem!important;
  }
}

@media(hover:hover) and (pointer:fine) and (max-width:720px){
  .home-reservation-premium .reservation-gateway-mobile-book-now:hover{
    transform:translateY(-1px)!important;
    box-shadow:
      0 11px 24px rgba(0,0,0,.26),
      0 3px 9px rgba(44,255,5,.09),
      inset 0 1px 0 rgba(255,255,255,.34)!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now:hover i{
    transform:translateX(1px)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .home-reservation-premium .reservation-gateway-mobile-book-now::before{
    animation:none!important;
    display:none!important;
  }
  .home-reservation-premium .reservation-gateway-mobile-book-now,
  .home-reservation-premium .reservation-gateway-mobile-book-now i{
    transition:none!important;
  }
}
