/* =====================================================================
   R10.27.0 — FULL-WIDTH PUBLIC CANVAS + TYPOGRAPHY ALIGNMENT
   Final public layout layer: wide desktop canvas, larger readable type,
   balanced section geometry, image/card alignment, responsive preservation.
   ===================================================================== */
:root{
  --r10270-wide:1760px;
  --r10270-gutter:clamp(24px,3vw,56px);
  --r10270-text:#20312a;
  --r10270-muted:#66716b;
  --r10270-line:rgba(32,49,42,.10);
}

@media (min-width:961px){
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) > main.container{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0 var(--r10270-gutter) 72px!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) > main.container > :where(
    .sf-shell,.home-section,.page-hero,.storefront-page,.page-shell,.sf-product-detail,.checkout-shell,.account-shell,
    .reservation-layout,.contact-layout,.order-track-layout,.feature-quick-grid,.section,.menu-page-hero,.menu-intro-row
  ){
    width:min(var(--r10270-wide),100%)!important;
    max-width:var(--r10270-wide)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .sf-shell{
    width:min(var(--r10270-wide),100%)!important;
    max-width:var(--r10270-wide)!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .sf-section,
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .sf-section.compact{
    padding-top:54px!important;
    padding-bottom:54px!important;
  }
}

/* Stronger global type scale. */
body:not(.admin-app-body):not(.staff-auth-body):not(.install-body){font-size:17px!important;color:var(--r10270-text)!important;}
body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) :where(p,li,label,input,select,textarea,button,a){line-height:1.55;}
body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) :where(p,li){font-size:17px;}
body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) :where(h1,h2,h3,strong,b){color:var(--r10270-text);}

/* Home section headings: aligned, readable, no tiny supporting copy. */
@media (min-width:961px){
  body.sf-home-page .sf-section-head{
    width:100%!important;
    max-width:none!important;
    margin:0 0 28px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)!important;
    align-items:end!important;
    gap:48px!important;
  }
  body.sf-home-page .sf-section-head>div{min-width:0!important;}
  body.sf-home-page .sf-section-head .sf-kicker{
    display:block!important;
    margin:0 0 9px!important;
    font-size:13px!important;
    letter-spacing:.14em!important;
    font-weight:900!important;
  }
  body.sf-home-page .sf-section-title{
    font-size:clamp(52px,4.35vw,78px)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
  }
  body.sf-home-page .sf-section-head>p{
    display:block!important;
    max-width:620px!important;
    margin:0 0 6px auto!important;
    font-size:16px!important;
    line-height:1.6!important;
    color:var(--r10270-muted)!important;
    text-align:left!important;
  }
  body.sf-home-page .sf-section-head>.sf-text-link{
    justify-self:end!important;
    align-self:end!important;
    margin-bottom:7px!important;
    font-size:15px!important;
  }
}

/* Find your favourite: image top, text below, consistent card geometry. */
@media (min-width:961px){
  body.sf-home-page .sf-category-grid{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:16px!important;
    overflow:visible!important;
    padding:0!important;
  }
  body.sf-home-page .sf-category-card{
    min-height:238px!important;
    padding:0 0 20px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    text-align:left!important;
    overflow:hidden!important;
    border-radius:24px!important;
  }
  body.sf-home-page .sf-category-card img{
    width:100%!important;
    height:148px!important;
    margin:0 0 16px!important;
    border-radius:0!important;
    object-fit:cover!important;
  }
  body.sf-home-page .sf-category-card strong,
  body.sf-home-page .sf-category-card small{
    padding-left:18px!important;
    padding-right:18px!important;
  }
  body.sf-home-page .sf-category-card strong{font-size:17px!important;line-height:1.25!important;}
  body.sf-home-page .sf-category-card small{font-size:13px!important;line-height:1.45!important;margin-top:5px!important;color:var(--r10270-muted)!important;}
}

/* Product grids: consistent four-up cards on wide desktops, equal-height bodies. */
@media (min-width:1201px){
  body.sf-home-page .sf-product-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:20px!important;}
}
@media (min-width:961px) and (max-width:1200px){
  body.sf-home-page .sf-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;}
}
@media (min-width:961px){
  body.sf-home-page .sf-product-card{display:flex!important;flex-direction:column!important;min-height:100%!important;border-radius:26px!important;}
  body.sf-home-page .sf-product-card figure{aspect-ratio:1.25/1!important;min-height:260px!important;}
  body.sf-home-page .sf-card-body{display:flex!important;flex-direction:column!important;flex:1!important;padding:22px!important;}
  body.sf-home-page .sf-card-body h3{font-size:23px!important;line-height:1.12!important;margin:0 0 8px!important;}
  body.sf-home-page .sf-card-body p{font-size:14px!important;line-height:1.55!important;min-height:44px!important;margin:0 0 18px!important;color:var(--r10270-muted)!important;}
  body.sf-home-page .sf-card-meta{margin-top:auto!important;}
  body.sf-home-page .sf-card-price{font-size:18px!important;}
  body.sf-home-page .sf-card-plus{width:42px!important;height:42px!important;}
}

/* Promo and content blocks align to the same wide geometry. */
@media (min-width:961px){
  body.sf-home-page .sf-promo-band{
    min-height:430px!important;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)!important;
    border-radius:30px!important;
  }
  body.sf-home-page .sf-promo-band>div{padding:clamp(44px,4vw,74px)!important;}
  body.sf-home-page .sf-promo-band h2{font-size:clamp(48px,4vw,70px)!important;}
  body.sf-home-page .sf-promo-band p{font-size:18px!important;max-width:720px!important;}
  body.sf-home-page .sf-promo-band img{min-height:430px!important;}
  body.sf-home-page .sf-benefits{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;}
  body.sf-home-page .sf-benefit{min-height:220px!important;padding:28px!important;}
  body.sf-home-page .sf-benefit b{font-size:22px!important;}
  body.sf-home-page .sf-benefit p{font-size:15px!important;line-height:1.6!important;}
  body.sf-home-page .sf-testimonials{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;}
  body.sf-home-page .sf-quote{min-height:220px!important;padding:30px!important;}
  body.sf-home-page .sf-quote p{font-size:17px!important;}
  body.sf-home-page .sf-quote strong{font-size:14px!important;}
  body.sf-home-page .sf-social-strip{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:12px!important;}
  body.sf-home-page .sf-social-strip img{aspect-ratio:1.12/1!important;border-radius:18px!important;transform:none!important;}
}

/* About/story and other interior pages: wider and better balanced. */
@media (min-width:961px){
  body[data-storefront-route='about.php'] .page-hero,
  body[data-storefront-route='contact.php'] .page-hero,
  body[data-storefront-route='locations.php'] .page-hero,
  body[data-storefront-route='blog.php'] .page-hero,
  body[data-storefront-route='offers.php'] .page-hero,
  body[data-storefront-route='track-order.php'] .page-hero{
    width:min(var(--r10270-wide),100%)!important;
    max-width:var(--r10270-wide)!important;
  }
  body[data-storefront-route='about.php'] .story-split{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
    gap:clamp(56px,5vw,96px)!important;
    align-items:center!important;
    padding:clamp(52px,5vw,88px)!important;
    border-radius:34px!important;
  }
  body[data-storefront-route='about.php'] .story-copy h2{
    font-size:clamp(50px,4.5vw,78px)!important;
    line-height:1.02!important;
    letter-spacing:-.04em!important;
    max-width:760px!important;
  }
  body[data-storefront-route='about.php'] .story-copy>p{font-size:18px!important;line-height:1.75!important;max-width:800px!important;}
  body[data-storefront-route='about.php'] .story-points{gap:18px!important;margin-top:30px!important;}
  body[data-storefront-route='about.php'] .story-points b{width:46px!important;height:46px!important;font-size:14px!important;}
  body[data-storefront-route='about.php'] .story-points strong{font-size:18px!important;}
  body[data-storefront-route='about.php'] .story-points small{font-size:15px!important;line-height:1.5!important;}
  body[data-storefront-route='about.php'] .story-image-stack{min-height:620px!important;}
  body[data-storefront-route='about.php'] .story-main-image{inset:0 10% 0 0!important;width:90%!important;border-radius:28px!important;}
  body[data-storefront-route='about.php'] .story-small-image{width:40%!important;height:40%!important;right:0!important;bottom:24px!important;}
  body[data-storefront-route='about.php'] .story-badge{font-size:14px!important;padding:14px 18px!important;}
  body[data-storefront-route='about.php'] .values-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;}
  body[data-storefront-route='about.php'] .values-grid article{padding:32px!important;}
  body[data-storefront-route='about.php'] .values-grid h3{font-size:23px!important;}
  body[data-storefront-route='about.php'] .values-grid p{font-size:16px!important;}
  body[data-storefront-route='about.php'] .centered-cta{padding:64px!important;}
  body[data-storefront-route='about.php'] .centered-cta h2{font-size:clamp(42px,4vw,68px)!important;}
}

/* Generic interior cards/forms need readable supporting type. */
@media (min-width:961px){
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) main.container :where(.card,.panel,.surface,.content-card,.form-card){padding:clamp(24px,2.4vw,40px);}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) main.container :where(.card,.panel,.surface,.content-card,.form-card) :where(p,li,label,small){font-size:15px!important;line-height:1.6!important;}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) main.container :where(input,select,textarea,button,.btn){font-size:15px!important;}
}

/* CTA/footer also use the full width of the viewport, with wide inner content. */
@media (min-width:961px){
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) > .footer-cta-wrap{
    width:100vw!important;max-width:none!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding:28px var(--r10270-gutter) 18px!important;box-sizing:border-box!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .footer-cta{
    width:min(var(--r10270-wide),100%)!important;max-width:var(--r10270-wide)!important;margin:0 auto!important;padding:42px 48px!important;border-radius:28px!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .footer-cta h2{font-size:clamp(36px,3vw,56px)!important;}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .footer-cta p{font-size:17px!important;}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) > .site-footer.modern-footer{
    width:100vw!important;max-width:none!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;border-radius:0!important;padding:64px var(--r10270-gutter) 34px!important;box-sizing:border-box!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-grid,
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-bottom{
    width:min(var(--r10270-wide),100%)!important;max-width:var(--r10270-wide)!important;margin-left:auto!important;margin-right:auto!important;
  }
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-grid{grid-template-columns:1.35fr repeat(3,1fr)!important;gap:56px!important;}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-grid h3{font-size:17px!important;}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-grid>div>a{font-size:15px!important;}
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-brand-col p,
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-hours,
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body) .site-footer.modern-footer .footer-bottom{font-size:14px!important;}
}

/* Keep the successful mobile R10.24 layout intact, only improve type slightly. */
@media (max-width:960px){
  body:not(.admin-app-body):not(.staff-auth-body):not(.install-body){font-size:16px!important;}
  body.sf-home-page .sf-section-title{font-size:clamp(34px,10vw,48px)!important;}
  body.sf-home-page .sf-category-card strong{font-size:16px!important;}
  body.sf-home-page .sf-category-card small{font-size:13px!important;}
  body.sf-home-page .sf-card-body h3{font-size:17px!important;}
  body.sf-home-page .sf-card-price{font-size:17px!important;}
  body[data-storefront-route='about.php'] .story-copy>p{font-size:16px!important;}
  body[data-storefront-route='about.php'] .story-points strong{font-size:16px!important;}
  body[data-storefront-route='about.php'] .story-points small{font-size:14px!important;}
}
