/* CLUBB Visual Recovery R15
   Scope: Global Shell + Home + Product Stage only.
   Does not alter product truth, media ordering, proof-video bindings, pricing, checkout, planner or account contracts. */

:root{
  --clubb-shell-max:1320px;
  --clubb-shell-bg:#f5efe7;
  --clubb-shell-surface:#fffaf3;
  --clubb-shell-surface-strong:#ffffff;
  --clubb-shell-text:#241c17;
  --clubb-shell-muted:rgba(36,28,23,.62);
  --clubb-shell-line:rgba(53,39,29,.10);
  --clubb-shell-gold:#c99a62;
  --clubb-shell-brown:#5e4432;
  --logo-height:52px;
}

html{scroll-padding-top:88px}
body.clubb-theme-heritage{
  background:var(--clubb-shell-bg);
  color:var(--clubb-shell-text);
}

/* Global shell */
.navbar{
  min-height:72px;
  padding:7px 0;
  background:rgba(249,244,236,.92);
  border-bottom:1px solid rgba(53,39,29,.08);
  box-shadow:0 8px 34px rgba(64,46,33,.055);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
.navbar>.container-fluid{
  width:min(100% - 28px,var(--clubb-shell-max));
  max-width:var(--clubb-shell-max);
  margin-inline:auto;
  padding-inline:0!important;
}
.navbar-brand{
  display:inline-flex;
  align-items:center;
  min-height:54px;
  margin:0;
}
.navbar-brand img{
  width:auto!important;
  height:52px!important;
  max-width:172px;
  object-fit:contain;
}
.navbar .nav-link{
  min-width:40px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px!important;
  color:rgba(36,28,23,.64);
  font-size:18px;
  border-radius:999px;
}
.navbar .nav-link:hover{
  color:var(--clubb-shell-text);
  background:rgba(67,47,34,.055);
}
.navbar-toggler{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--clubb-shell-line);
  border-radius:999px;
  background:rgba(255,255,255,.58);
  font-size:16px;
}
.clubb-profile-circle{
  width:34px;
  height:34px;
  background:#f6eadc;
  border-color:rgba(201,154,98,.62);
  box-shadow:none;
}
body.has-navbar .page-content{
  padding-top:72px!important;
}

/* Consent stays functional but stops owning the viewport. */
.clubb-cookie{
  left:24px;
  right:auto;
  bottom:24px;
  width:min(540px,calc(100vw - 48px));
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(24,19,16,.95);
  box-shadow:0 22px 64px rgba(24,17,13,.28);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.clubb-cookie__inner{
  max-width:none;
  display:block;
}
.clubb-cookie__content{gap:5px}
.clubb-cookie__text{
  font-size:11px;
  line-height:1.45;
  color:rgba(247,242,235,.76);
}
.clubb-cookie__preferences summary{
  min-height:26px;
  font-size:11px;
}
.clubb-cookie__actions{
  display:flex;
  flex-direction:row;
  gap:7px;
  width:100%;
  min-width:0;
  margin-top:10px;
}
.clubb-cookie__btn{
  min-height:34px;
  padding:7px 12px;
  font-size:10.5px;
}
.clubb-cookie__btn--secondary{width:auto;flex:1.1}
.clubb-cookie__btn:not(.clubb-cookie__btn--secondary){flex:1}

/* Home */
.clubb-home-shell-content{
  background:
    radial-gradient(circle at 88% 8%,rgba(201,154,98,.14),transparent 28%),
    linear-gradient(180deg,#fbf7f0 0%,#f3ece3 56%,#f7f2eb 100%);
}
.clubb-hero-new{
  width:min(100% - 48px,var(--clubb-shell-max));
  max-width:var(--clubb-shell-max);
  min-height:auto;
  margin:0 auto;
  padding:112px 0 58px;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);
  gap:52px;
  align-items:center;
  justify-items:stretch;
}
.clubb-hero-new__right{
  order:1;
  max-width:610px;
  gap:20px;
}
.clubb-hero-new__left{
  order:2;
  width:100%;
  justify-content:flex-end;
}
.clubb-hero-phone{
  width:100%;
  max-width:680px;
  height:auto;
  aspect-ratio:16 / 10;
  border:1px solid rgba(64,44,30,.10);
  border-radius:30px;
  background:#d9d0c4;
  box-shadow:0 30px 78px rgba(50,35,25,.16);
  overflow:hidden;
}
.clubb-hero-phone__notch{display:none}
.clubb-hero-phone__video{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  background:#d8cec2;
}
.clubb-hero-phone__sound{
  right:14px;
  bottom:14px;
  width:38px;
  height:38px;
  background:rgba(22,17,14,.62);
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}
.clubb-hero-new__eyebrow{
  margin-bottom:10px;
  color:#9b6c3c;
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}
.clubb-hero-new__title{
  max-width:590px;
  font-size:clamp(48px,5.4vw,72px);
  line-height:.94;
  letter-spacing:-.052em;
  font-weight:620;
  color:var(--clubb-shell-text);
}
.clubb-hero-new__title span{color:#aa7847}
.clubb-hero-new__lead{
  max-width:520px;
  margin:0;
  color:var(--clubb-shell-muted);
  font-size:16px;
  line-height:1.65;
}
.clubb-hero-feature{
  width:min(100%,560px);
  display:grid;
  grid-template-columns:138px minmax(0,1fr);
  gap:15px;
  padding:11px;
  border:1px solid var(--clubb-shell-line);
  border-radius:22px;
  background:rgba(255,252,247,.82);
  color:var(--clubb-shell-text);
  box-shadow:0 16px 44px rgba(61,43,31,.08);
  text-decoration:none;
}
.clubb-hero-feature:hover{
  transform:translateY(-2px);
  border-color:rgba(144,101,61,.26);
  box-shadow:0 22px 54px rgba(61,43,31,.11);
}
.clubb-hero-feature__media{
  width:138px;
  height:112px;
  border-radius:16px;
  overflow:hidden;
  background:#e9dfd3;
}
.clubb-hero-feature__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.clubb-hero-feature__content{
  min-width:0;
  padding:4px 4px 3px 0;
}
.clubb-hero-feature__eyebrow{
  color:#97693d;
  font-size:9px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.clubb-hero-feature__title{
  margin-top:4px;
  font-size:20px;
  line-height:1.05;
  letter-spacing:-.025em;
}
.clubb-hero-feature__description{
  margin-top:4px;
  color:var(--clubb-shell-muted);
  font-size:11px;
  line-height:1.4;
}
.clubb-hero-feature__footer{
  margin-top:8px;
  align-items:end;
}
.clubb-hero-feature__price small{
  color:rgba(36,28,23,.50);
  font-size:9px;
}
.clubb-hero-feature__price b{font-size:16px}
.clubb-hero-feature__cta{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  padding:7px 12px;
  border-radius:999px;
  background:#2a211c;
  color:#fffaf3;
  font-size:10px;
  font-weight:800;
}

/* Product Stage: same shell, dark only as a component rather than a whole page. */
.clubb-route-layer.is-product-stage{
  --journey-bg:#f5efe7;
  --journey-surface:#fffaf3;
  --journey-surface-raised:#ffffff;
  --journey-text:#241c17;
  --journey-muted:rgba(36,28,23,.61);
  --journey-line:rgba(53,39,29,.10);
  --journey-soft:rgba(62,44,31,.045);
  --journey-accent:#8f633d;
  --journey-accent-strong:#2a211c;
  --journey-success:#2f7858;
  --journey-danger:#a64a43;
  --journey-shadow:0 22px 58px rgba(59,40,28,.11);
}
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-route-layer__panel,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-route-layer__content,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-route-layer__loading{
  background:
    radial-gradient(circle at 92% 6%,rgba(201,154,98,.10),transparent 24%),
    var(--journey-bg);
  color:var(--journey-text);
}
.clubb-route-layer.is-product-stage .clubb-route-layer__bar{
  background:rgba(245,239,231,.94);
  border-bottom:1px solid rgba(53,39,29,.07);
  backdrop-filter:blur(18px);
}
.clubb-route-layer.is-product-stage .clubb-route-layer__back,
.clubb-route-layer.is-product-stage .clubb-route-layer__dismiss{
  border-color:var(--journey-line);
  background:rgba(255,255,255,.78);
  color:var(--journey-text);
  box-shadow:none;
}
.clubb-route-layer.is-product-stage .clubb-product-page{
  padding:30px 0 88px;
}
.clubb-route-layer.is-product-stage .clubb-product-page>.container{
  width:min(100% - 48px,1280px);
  max-width:1280px;
}
.clubb-route-layer.is-product-stage .clubb-pdp-heading{
  margin-bottom:14px;
}
.clubb-route-layer.is-product-stage .clubb-product-top__title{
  max-width:780px;
  font-size:clamp(44px,4.5vw,58px);
  line-height:.94;
  color:var(--journey-text);
}
.clubb-route-layer.is-product-stage .clubb-pdp-heading__summary{
  max-width:740px;
  font-size:15px;
  line-height:1.6;
  color:var(--journey-muted);
}
.clubb-route-layer.is-product-stage .clubb-product-meta-row{
  margin:10px 0 22px;
  gap:8px;
}
.clubb-route-layer.is-product-stage .clubb-product-meta-item{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid var(--journey-line);
  border-radius:999px;
  background:rgba(255,255,255,.52);
  color:rgba(36,28,23,.67);
  font-size:11px;
}
.clubb-route-layer.is-product-stage .clubb-pdp-main-grid{
  grid-template-columns:minmax(0,1fr) minmax(330px,360px);
  gap:40px;
}
.clubb-route-layer.is-product-stage .clubb-carousel{
  border-radius:28px;
  background:#1a1512;
  box-shadow:0 26px 70px rgba(53,36,25,.14);
}
.clubb-route-layer.is-product-stage .clubb-carousel__track{
  aspect-ratio:16 / 9.4;
}
.clubb-route-layer.is-product-stage .clubb-carousel__thumb{
  width:72px;
  height:56px;
  border-radius:12px;
  border:2px solid rgba(53,39,29,.10);
  opacity:.64;
  background:#fff;
}
.clubb-route-layer.is-product-stage .clubb-carousel__thumb.active{
  opacity:1;
  border-color:#8f633d;
}
.clubb-route-layer.is-product-stage .clubb-pdp-gallery__all{
  border-radius:999px;
  background:rgba(25,20,17,.72);
  color:#fff;
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px);
}
.clubb-route-layer.is-product-stage .clubb-product-sidebar{
  top:18px;
  border:1px solid rgba(53,39,29,.08);
  border-radius:24px;
  background:rgba(255,252,247,.92);
  box-shadow:0 24px 70px rgba(60,41,29,.12);
}
.clubb-route-layer.is-product-stage .clubb-product-sidebar__header{
  padding:22px 22px 8px;
}
.clubb-route-layer.is-product-stage .clubb-product-sidebar__body{
  padding:12px 22px 22px;
}
.clubb-route-layer.is-product-stage .clubb-product-sidebar__header h2{
  font-size:21px;
  color:var(--journey-text);
}
.clubb-route-layer.is-product-stage .clubb-booking-date-trigger,
.clubb-route-layer.is-product-stage .clubb-product-form-input,
.clubb-route-layer.is-product-stage .clubb-calendar{
  background:#fbf6ef;
  border-color:rgba(53,39,29,.10);
}
.clubb-route-layer.is-product-stage .clubb-product-sidebar__price-value{
  color:#2a211c;
  font-size:34px;
}
.clubb-route-layer.is-product-stage .clubb-product-sidebar__submit{
  min-height:54px;
  border-radius:14px;
  background:#2a211c;
  color:#fffaf3!important;
  font-weight:800;
  box-shadow:0 12px 28px rgba(42,33,28,.15);
}
.clubb-route-layer.is-product-stage .clubb-product-card{
  border-top-color:rgba(53,39,29,.10);
}
.clubb-route-layer.is-product-stage .clubb-product-card__title{
  color:var(--journey-text);
}
.clubb-route-layer.is-product-stage .clubb-product-card p,
.clubb-route-layer.is-product-stage .clubb-product-card li,
.clubb-route-layer.is-product-stage .clubb-product-card .accordion-body{
  color:var(--journey-muted);
}
.clubb-route-layer.is-product-stage .clubb-pdp-option-card,
.clubb-route-layer.is-product-stage .clubb-pdp-addon{
  background:#fffaf4;
  border-color:rgba(53,39,29,.10);
  box-shadow:0 12px 32px rgba(62,44,31,.06);
}

/* Keep proof media semantics untouched. Only the visual frame changes. */
.clubb-route-layer.is-product-stage .clubb-experience-proof{
  margin-top:30px;
  padding:24px;
  border:1px solid rgba(53,39,29,.09);
  border-radius:22px;
  background:rgba(255,252,247,.60);
}
.clubb-route-layer.is-product-stage .clubb-experience-proof__item{
  border-radius:18px;
  overflow:hidden;
}

@media (max-width: 980px){
  .clubb-hero-new{
    grid-template-columns:1fr 1fr;
    gap:30px;
  }
  .clubb-route-layer.is-product-stage .clubb-pdp-main-grid{
    grid-template-columns:1fr;
    gap:26px;
  }
  .clubb-route-layer.is-product-stage .clubb-product-sidebar{
    position:static;
  }
}

@media (max-width: 767px){
  :root{--logo-height:52px;--clubb-route-top:64px}
  .navbar{
    min-height:64px;
    padding:5px 0;
  }
  .navbar>.container-fluid{
    width:calc(100% - 20px);
  }
  .navbar-brand{min-height:52px}
  .navbar-brand img{
    height:46px!important;
    max-width:150px;
  }
  .navbar .nav-link{
    min-width:36px;
    min-height:36px;
    padding:5px 7px!important;
    font-size:16px;
  }
  .navbar-toggler{
    width:36px;
    height:36px;
    font-size:14px;
  }
  body.has-navbar .page-content{padding-top:64px!important}

  .clubb-hero-new{
    width:100%;
    grid-template-columns:1fr;
    gap:24px;
    padding:88px 16px 30px;
  }
  .clubb-hero-new__right{
    order:1;
    width:100%;
    max-width:none;
    padding:0;
    gap:14px;
  }
  .clubb-hero-new__left{
    order:2;
    width:100%;
  }
  .clubb-hero-new__eyebrow{
    margin-bottom:6px;
    font-size:9px;
  }
  .clubb-hero-new__title{
    max-width:350px;
    font-size:clamp(34px,11.6vw,46px);
    line-height:.94;
  }
  .clubb-hero-new__lead{
    max-width:340px;
    font-size:14px;
    line-height:1.55;
  }
  .clubb-hero-feature{
    width:100%;
    grid-template-columns:106px minmax(0,1fr);
    gap:11px;
    padding:9px;
    border-radius:18px;
  }
  .clubb-hero-feature__media{
    width:106px;
    height:96px;
    border-radius:13px;
  }
  .clubb-hero-feature__title{font-size:17px}
  .clubb-hero-feature__description{
    max-height:31px;
    overflow:hidden;
    font-size:10px;
  }
  .clubb-hero-feature__footer{margin-top:6px}
  .clubb-hero-feature__cta{
    min-height:30px;
    padding:6px 9px;
    font-size:9px;
  }
  .clubb-hero-phone{
    max-width:none;
    aspect-ratio:16 / 10;
    max-height:none;
    border:1px solid rgba(64,44,30,.09);
    border-radius:22px;
    box-shadow:0 20px 48px rgba(50,35,25,.13);
  }
  .clubb-hero-phone__sound{
    width:36px;
    height:36px;
    right:12px;
    bottom:12px;
  }

  .clubb-route-layer.is-product-stage .clubb-product-page{
    padding-top:18px;
  }
  .clubb-route-layer.is-product-stage .clubb-product-page>.container{
    width:calc(100% - 24px);
  }
  .clubb-route-layer.is-product-stage .clubb-product-top__title{
    font-size:clamp(34px,10vw,42px);
    line-height:.94;
  }
  .clubb-route-layer.is-product-stage .clubb-pdp-heading__summary{
    margin-top:8px;
    font-size:13px;
    line-height:1.52;
  }
  .clubb-route-layer.is-product-stage .clubb-product-meta-row{
    gap:6px;
    margin:9px 0 16px;
  }
  .clubb-route-layer.is-product-stage .clubb-product-meta-item{
    min-height:27px;
    padding:5px 8px;
    font-size:10px;
  }
  .clubb-route-layer.is-product-stage .clubb-carousel{
    border-radius:20px;
    box-shadow:0 18px 46px rgba(53,36,25,.13);
  }
  .clubb-route-layer.is-product-stage .clubb-carousel__track{
    aspect-ratio:4 / 3;
  }
  .clubb-route-layer.is-product-stage .clubb-carousel__thumb{
    width:58px;
    height:46px;
    border-radius:9px;
  }
  .clubb-route-layer.is-product-stage .clubb-product-sidebar{
    border-radius:20px;
    box-shadow:0 18px 44px rgba(60,41,29,.09);
  }
  .clubb-route-layer.is-product-stage .clubb-experience-proof{
    margin-top:24px;
    padding:16px;
    border-radius:18px;
  }

  .clubb-cookie{
    left:10px;
    right:10px;
    bottom:10px;
    width:auto;
    padding:11px 12px;
    border-radius:16px;
  }
  .clubb-cookie__text{
    font-size:10px;
    line-height:1.35;
  }
  .clubb-cookie__actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    margin-top:7px;
  }
  .clubb-cookie__btn{
    min-height:32px;
    padding:6px 8px;
    font-size:9.5px;
  }
  .clubb-cookie__btn--secondary{
    grid-column:1 / -1;
    width:100%;
  }
}

@media (prefers-reduced-motion: reduce){
  .clubb-hero-feature,
  .navbar .nav-link{transition:none!important}
}

/* R15 product-stage theme fence: stop legacy Heritage page background from leaking into the light Product Stage. */
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-page{
  background:transparent!important;
  color:var(--journey-text)!important;
  margin-bottom:0;
}
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-page>.container,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-sidebar{
  color:var(--journey-text);
}

/* R15 seamless product backdrop: preserve Route Layer behavior without exposing the dark legacy canvas. */
.clubb-route-layer.is-product-stage .clubb-route-layer__backdrop{background:#f5efe7!important;}

/* R15 legacy Heritage text fence: dynamic Product Stage CSS loads after the shell recovery layer. */
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-pdp-heading__summary,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-card__body,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-card__body p,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-card__body li{color:var(--journey-muted)!important;}
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-card__title{color:var(--journey-text)!important;}
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-meta-item{color:rgba(36,28,23,.67)!important;}
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-meta-item i,
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-product-card__title i{color:#9b6c3c!important;}
body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-pdp-shortlist svg path{stroke:#241c17!important;}

/* R15 desktop gallery de-mosaic: one primary media at a time, same order and carousel behavior as mobile. */
@media (min-width: 992px){
  .clubb-route-layer.is-product-stage .clubb-carousel__track{
    display:flex!important;
    grid-template-columns:none!important;
    grid-template-rows:none!important;
    gap:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    aspect-ratio:16 / 10!important;
  }
  .clubb-route-layer.is-product-stage .clubb-carousel__slide,
  .clubb-route-layer.is-product-stage .clubb-carousel__slide:nth-child(1),
  .clubb-route-layer.is-product-stage .clubb-carousel__slide:nth-child(2),
  .clubb-route-layer.is-product-stage .clubb-carousel__slide:nth-child(3){
    display:block!important;
    flex:0 0 100%!important;
    width:100%!important;
    min-width:100%!important;
    height:100%!important;
    grid-row:auto!important;
    scroll-snap-align:start!important;
  }
  .clubb-route-layer.is-product-stage .clubb-carousel__slide img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    object-fit:cover!important;
  }
  .clubb-route-layer.is-product-stage .clubb-carousel__arrow{display:grid!important;}
  .clubb-route-layer.is-product-stage .clubb-carousel__thumbs{display:flex!important;}
}
/* R15 desktop single-stage gallery: active-slide driven, while mobile remains scroll-snap. */
@media (min-width: 992px){
  body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-carousel__track{
    display:block!important;
    overflow:hidden!important;
    scroll-snap-type:none!important;
    aspect-ratio:16 / 10!important;
  }
  body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-carousel__slide{
    display:none!important;
    width:100%!important;
    min-width:100%!important;
    height:100%!important;
    grid-row:auto!important;
  }
  body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-carousel__slide.active{
    display:block!important;
  }
  body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-carousel__slide img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    object-fit:cover!important;
  }
  body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-carousel__arrow{display:grid!important;}
  body.clubb-theme-heritage .clubb-route-layer.is-product-stage .clubb-carousel__thumbs{display:flex!important;}
}
