/* v801 canonical Customer shell; semantic class names intentionally remain v800 DOM contract. */
/* v800 Customer Mobile-First Responsive + Hero Contrast Authority
   Scope: public Customer storefront only.
   Architecture: mobile baseline -> tablet enhancement -> desktop enhancement.
   This file is deliberately loaded after all historical storefront layers so the
   Customer shell has one final geometry/contrast contract instead of breakpoint patches. */

body#customer-public-shell-v736.customer-public-shell-v736{
  --customer-shell-max-v800:1480px;
  --customer-shell-gutter-v800:clamp(10px,3.2vw,18px);
  --customer-shell-gap-v800:clamp(10px,2vw,24px);
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  overflow-x:clip!important;
}

/* Shared shell geometry: every major Home surface follows the same horizontal contract. */
body#customer-public-shell-v736.customer-public-shell-v736 :is(.shop-header,.premium-hero,.customer-benefits-v212,.shop-shell){
  width:calc(100% - (2 * var(--customer-shell-gutter-v800)))!important;
  max-width:var(--customer-shell-max-v800)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  min-width:0!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .store-status-inner-v290{
  width:min(var(--customer-shell-max-v800),100%)!important;
  max-width:var(--customer-shell-max-v800)!important;
  margin-inline:auto!important;
  min-width:0!important;
}

/* Mobile baseline. Header stays app-like and predictable in browser and installed PWA. */
body#customer-public-shell-v736.customer-public-shell-v736 .shop-header{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:"brand" "nav" "mode"!important;
  gap:8px!important;
  align-items:center!important;
  padding:10px 12px!important;
  margin-top:0!important;
  border-radius:0 0 20px 20px!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup{
  grid-area:brand!important;
  min-width:0!important;
  max-width:100%!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup>div{min-width:0!important}
body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup strong{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup span{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .customer-nav-v306{
  grid-area:nav!important;
  min-width:0!important;
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(116px,1fr))!important;
  gap:7px!important;
  margin:0!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .customer-nav-v306>.reserve-link-v306,
body#customer-public-shell-v736.customer-public-shell-v736 .customer-header-account-v306 .customer-account-pill-v115{
  min-height:40px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  padding:8px 10px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .customer-header-account-v306{
  min-width:0!important;
  display:none!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .mode-switch{
  grid-area:mode!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:5px!important;
  padding:4px!important;
  overflow:hidden!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .mode-btn{
  width:100%!important;
  min-width:0!important;
  min-height:42px!important;
  padding:8px 9px!important;
  white-space:normal!important;
  line-height:1.1!important;
  text-align:center!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .mode-btn.service-paused-v796{
  cursor:not-allowed!important;
  pointer-events:none!important;
  box-shadow:none!important;
}

/* Hero mobile baseline: compact, readable, and never dependent on a desktop composition. */
body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero{
  display:block!important;
  min-height:0!important;
  margin-top:10px!important;
  margin-bottom:14px!important;
  padding:20px 18px!important;
  border-radius:22px!important;
  overflow:hidden!important;
  background-position:center!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero[style*="--tt-customer-hero-image"]{
  background-image:
    linear-gradient(100deg,color-mix(in srgb,var(--tt-hero-surface-safe) 97%,transparent) 0%,color-mix(in srgb,var(--tt-hero-surface-safe) 91%,transparent) 58%,color-mix(in srgb,var(--tt-hero-surface-safe) 72%,transparent) 100%),
    var(--tt-customer-hero-image)!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy{
  min-width:0!important;
  max-width:none!important;
  padding:0!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-badge{
  display:inline-flex!important;
  min-width:0!important;
  max-width:100%!important;
  padding:7px 11px!important;
  background:color-mix(in srgb,var(--tt-hero-surface-safe) 90%,transparent)!important;
  color:var(--tt-hero-text-safe)!important;
  -webkit-text-fill-color:currentColor!important;
  border:1px solid color-mix(in srgb,var(--tt-hero-text-safe) 34%,transparent)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.12)!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-badge{
  opacity:1!important;
  visibility:visible!important;
  mix-blend-mode:normal!important;
  text-shadow:0 1px 2px rgba(0,0,0,.22)!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-kicker-v800{
  color:var(--tt-hero-text-safe)!important;
  -webkit-text-fill-color:var(--tt-hero-text-safe)!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy h1{
  width:auto!important;
  max-width:12ch!important;
  margin:12px 0 10px!important;
  font-size:clamp(32px,9.5vw,42px)!important;
  line-height:1!important;
  letter-spacing:-.045em!important;
  text-wrap:balance;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy p{
  width:auto!important;
  max-width:46rem!important;
  margin:0!important;
  font-size:14px!important;
  line-height:1.4!important;
  text-wrap:pretty;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:12px 0 0!important;
  padding:10px!important;
  display:grid!important;
  grid-template-columns:40px minmax(0,1fr)!important;
  gap:8px 10px!important;
  background:color-mix(in srgb,var(--tt-hero-surface-safe) 94%,transparent)!important;
  color:var(--tt-hero-text-safe)!important;
  border:1px solid color-mix(in srgb,var(--tt-hero-text-safe) 24%,transparent)!important;
  border-radius:17px!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306 :is(span,strong,small){
  color:var(--tt-hero-text-safe)!important;
  -webkit-text-fill-color:currentColor!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306__text{
  min-width:0!important;
  overflow:hidden!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306__text small{
  display:block!important;
  overflow-wrap:anywhere!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306__map{
  grid-column:1/-1!important;
  width:100%!important;
  min-height:40px!important;
  background:var(--tt-secondary)!important;
  color:var(--tt-on-secondary-safe)!important;
  -webkit-text-fill-color:currentColor!important;
  border:1px solid color-mix(in srgb,var(--tt-on-secondary-safe) 20%,transparent)!important;
  box-shadow:none!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  margin-top:12px!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-actions a{
  width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:9px 10px!important;
  text-align:center!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-card{
  display:none!important;
  min-width:0!important;
  /* v798: this is a semantic CARD surface, not part of the dark hero overlay.
     Keep it opaque so arbitrary photography cannot change foreground contrast. */
  background:var(--tt-card-bg)!important;
  color:var(--tt-card-text-safe)!important;
  border:1px solid color-mix(in srgb,var(--tt-border) 58%,var(--tt-card-bg))!important;
  box-shadow:0 18px 42px color-mix(in srgb,var(--tt-card-text-safe) 18%,transparent)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-card>:is(span,strong,small){
  opacity:1!important;
  visibility:visible!important;
  mix-blend-mode:normal!important;
  text-shadow:none!important;
  filter:none!important;
  -webkit-text-fill-color:currentColor!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-card>span{
  /* v800: status labels are semantic headings/labels, never generic body text. */
  color:var(--tt-card-heading-safe)!important;
  font-weight:850!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-card>strong{
  color:var(--tt-card-heading-safe)!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-card>small{
  color:var(--tt-card-muted-safe,var(--tt-card-heading-safe))!important;
}
/* v800 explicit semantic children. These class contracts are intentionally independent
   of generic span/strong rules from historical branding layers. */
body#customer-public-shell-v736.customer-public-shell-v736 .hero-status-card-v800{
  background:var(--tt-card-bg)!important;
  color:var(--tt-card-text-safe)!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-status-label-v800,
body#customer-public-shell-v736.customer-public-shell-v736 .hero-status-title-v800{
  color:var(--tt-card-heading-safe)!important;
  -webkit-text-fill-color:var(--tt-card-heading-safe)!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
body#customer-public-shell-v736.customer-public-shell-v736 .hero-status-summary-v800{
  color:var(--tt-card-muted-safe,var(--tt-card-text-safe))!important;
  -webkit-text-fill-color:var(--tt-card-muted-safe,var(--tt-card-text-safe))!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}

/* Tablet: preserve mobile hierarchy while using horizontal room. */
@media (min-width:768px){
  body#customer-public-shell-v736.customer-public-shell-v736{
    --customer-shell-gutter-v800:clamp(18px,2.4vw,30px);
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .shop-header{
    grid-template-columns:minmax(220px,1fr) minmax(320px,auto)!important;
    grid-template-areas:"brand nav" "mode mode"!important;
    gap:10px 18px!important;
    padding:12px 16px!important;
    border-radius:0 0 24px 24px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .customer-nav-v306{
    display:flex!important;
    justify-content:flex-end!important;
    align-items:center!important;
    width:auto!important;
    flex-wrap:nowrap!important;
    gap:8px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .customer-header-account-v306{
    display:flex!important;
    gap:8px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup strong{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .mode-switch{
    width:min(520px,100%)!important;
    justify-self:start!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero{
    margin-top:16px!important;
    margin-bottom:18px!important;
    padding:30px!important;
    border-radius:28px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy h1{
    max-width:15ch!important;
    font-size:clamp(44px,6.2vw,64px)!important;
    line-height:.96!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy p{
    font-size:16px!important;
    line-height:1.45!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306{
    max-width:680px!important;
    grid-template-columns:44px minmax(0,1fr) auto!important;
    align-items:center!important;
    padding:10px 12px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306__map{
    grid-column:auto!important;
    width:auto!important;
    min-width:112px!important;
  }
}

/* Wide tablet / compact desktop: stop treating common laptop widths like a stretched phone. */
@media (min-width:900px){
  body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero{
    display:grid!important;
    grid-template-columns:minmax(0,1.55fr) minmax(240px,.58fr)!important;
    align-items:end!important;
    gap:clamp(22px,3vw,42px)!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-card{
    display:block!important;
    width:100%!important;
    max-width:330px!important;
    justify-self:end!important;
    margin:0!important;
    padding:20px!important;
    border-radius:22px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-card strong{
    font-size:clamp(22px,2.1vw,30px)!important;
    line-height:1.05!important;
  }
}

/* Desktop/laptop: one balanced header row and materially wider content. */
@media (min-width:1024px){
  body#customer-public-shell-v736.customer-public-shell-v736{
    --customer-shell-gutter-v800:clamp(24px,3vw,48px);
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .shop-header{
    grid-template-columns:minmax(250px,1fr) minmax(250px,330px) minmax(390px,1.35fr)!important;
    grid-template-areas:"brand mode nav"!important;
    gap:16px!important;
    padding:12px 18px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup{
    width:auto!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup strong{
    font-size:clamp(17px,1.35vw,21px)!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .brand-lockup span{
    font-size:clamp(11px,.9vw,13px)!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .mode-switch{
    width:100%!important;
    max-width:330px!important;
    justify-self:center!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .mode-btn{
    min-height:42px!important;
    padding:9px 12px!important;
    font-size:14px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .customer-nav-v306{
    justify-self:end!important;
    min-width:0!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .customer-nav-v306>.reserve-link-v306,
  body#customer-public-shell-v736.customer-public-shell-v736 .customer-header-account-v306 .customer-account-pill-v115{
    min-height:42px!important;
    padding:9px 12px!important;
    font-size:13px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero{
    min-height:clamp(410px,48vw,620px)!important;
    padding:clamp(38px,4.2vw,64px)!important;
    border-radius:32px!important;
    grid-template-columns:minmax(0,1.7fr) minmax(270px,.55fr)!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy{
    width:100%!important;
    max-width:900px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy h1{
    max-width:18ch!important;
    font-size:clamp(54px,5.2vw,82px)!important;
    line-height:.94!important;
    margin:16px 0 14px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-copy p{
    max-width:720px!important;
    font-size:clamp(16px,1.35vw,20px)!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-location-v306{
    width:min(720px,100%)!important;
    max-width:720px!important;
    margin-top:18px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-card{
    max-width:360px!important;
    padding:24px!important;
    border-radius:26px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .hero-card small{
    display:block!important;
    margin-top:8px!important;
    font-size:13px!important;
    line-height:1.4!important;
  }
}

/* Large desktop: grow useful content but cap line length and cart width. */
@media (min-width:1360px){
  body#customer-public-shell-v736.customer-public-shell-v736 .shop-header{
    grid-template-columns:minmax(300px,1.05fr) minmax(270px,350px) minmax(430px,1.25fr)!important;
    padding-inline:22px!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero{
    grid-template-columns:minmax(0,1.8fr) minmax(300px,.52fr)!important;
  }
}

/* Installed PWA keeps safe-area geometry without a second layout system. */
@media (display-mode:standalone){
  body#customer-public-shell-v736.customer-public-shell-v736 .shop-header{
    padding-left:max(12px,env(safe-area-inset-left,0px))!important;
    padding-right:max(12px,env(safe-area-inset-right,0px))!important;
  }
  body#customer-public-shell-v736.customer-public-shell-v736 .premium-hero,
  body#customer-public-shell-v736.customer-public-shell-v736 .customer-benefits-v212,
  body#customer-public-shell-v736.customer-public-shell-v736 .shop-shell{
    max-width:min(var(--customer-shell-max-v800),calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)))!important;
  }
}

@media (prefers-reduced-motion:reduce){
  body#customer-public-shell-v736.customer-public-shell-v736 *{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
