/* Herbinn storefront — production parity (herbinnwellness.com) */

/* ============================================================
   CMS HEADER — in document flow (match production navbar)
   CMS builder may set position:fixed on bar; that collapses layout
   and tucks the hero under the header.
   ============================================================ */
html.has-cms-layout-header {
  --hb-header-height: 108px;
  --hb-content-max: 1200px;
  --hb-home-pad: 1.5rem;
  scroll-padding-top: calc(var(--hb-header-height) + 16px);
}

/* Site layout — 1200px .container on page content (not hero / CTA band / footer chrome) */
html.has-cms-layout-header .container,
html.has-cms-layout-header .home-cms-body .container,
html.has-cms-layout-header .gp-body-content .container,
html.has-cms-layout-header .cms-html-block .container,
html.has-cms-layout-header .gp-html-block .container {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  box-sizing: border-box;
}

/* Category carousel / grid + "View All Formulas" block — same 1200px container */
html.has-cms-layout-header .home-cms-section--category_carousel,
html.has-cms-layout-header .home-cms-section--category_grid,
html.has-cms-layout-header .home-cms-section--category_carousel + .home-cms-section--html_block,
html.has-cms-layout-header .home-cms-section--category_grid + .home-cms-section--html_block,
html.has-cms-layout-header .section.section--categories {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  box-sizing: border-box;
}

/* Products page — 1200px container + 3 products per row */
html.has-cms-layout-header .home-cms-section--product_grid,
html.has-cms-layout-header .dynamic-product-grid,
.cp-inner,
.cp-breadcrumb {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  box-sizing: border-box;
}

html.has-cms-layout-header .gp-product-grid,
html.has-cms-layout-header .gp-product-grid.gp-product-grid-4col,
html.has-cms-layout-header .gp-product-grid.gp-product-grid-5col,
.cp-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}

@media (max-width: 768px) {
  html.has-cms-layout-header .gp-product-grid,
  .cp-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  html.has-cms-layout-header .gp-product-grid,
  .cp-grid {
    grid-template-columns: 1fr !important;
  }
}

/* About Us — leadership portraits (undo components.css .gp-html-block img 25rem stretch) */
html.has-cms-layout-header .gp-html-block img.leader-photo,
html.has-cms-layout-header .cms-html-block img.leader-photo,
html.has-cms-layout-header .gp-body-content img.leader-photo {
  width: 100px !important;
  height: 100px !important;
  max-width: 100px !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  margin: 0 auto 1rem !important;
}

/* About Us — Quality Assurance image only (natural height) */
html.has-cms-layout-header .gp-html-block img.img-cover-shadow[alt="Modern Quality Control Facility"],
html.has-cms-layout-header .cms-html-block img.img-cover-shadow[alt="Modern Quality Control Facility"],
html.has-cms-layout-header .gp-body-content img.img-cover-shadow[alt="Modern Quality Control Facility"] {
  height: auto !important;
}

html.has-cms-layout-header .gp-html-block .leader-card,
html.has-cms-layout-header .cms-html-block .leader-card,
html.has-cms-layout-header .gp-body-content .leader-card {
  padding: 2rem;
  text-align: center;
}

html.has-cms-layout-header .gp-html-block .leader-card p,
html.has-cms-layout-header .cms-html-block .leader-card p,
html.has-cms-layout-header .gp-body-content .leader-card p {
  font-size: 0.875rem;
}

/* Wrapper stays full width — inner .container handles 1200px gutters */
html.has-cms-layout-header .home-container {
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
  box-sizing: border-box !important;
}

html.has-cms-layout-header .cms-ws-header__bar {
  padding-block: 12px !important;
  padding-inline: 0 !important;
}

html.has-cms-layout-header .cms-ws-header__inner,
html.has-cms-layout-header .cms-ws-header__inner--zones,
html.has-cms-layout-header .cms-ws-header__bar .cms-ws-header__inner--zones {
  max-width: 1200px !important;
  width: 100% !important;
  margin-inline: auto !important;
  padding-inline: 1.5rem !important;
  box-sizing: border-box !important;
}

/* Hero + green CTA band — full viewport width (no 1200px box) */
html.has-cms-layout-header .hero-slider,
html.has-cms-layout-header .home-cms-body .hero-slider,
html.has-cms-layout-header .gp-body-content .hero-slider,
html.has-cms-layout-header .hero:not(.hero-slider),
html.has-cms-layout-header .home-cms-body .cta-section,
html.has-cms-layout-header .gp-body-content .cta-section,
html.has-cms-layout-header .cta-section {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  box-sizing: border-box !important;
}

/* Footer chrome — full width background; inner layout from cms-storefront-layout */
html.has-cms-layout-header .gp-cms-page-footer-assigned,
html.has-cms-layout-header .cms-ws-footer {
  width: 100% !important;
  max-width: none !important;
}

html.has-cms-layout-header .cms-ws-footer__inner {
  max-width: var(--hb-content-max, 1200px) !important;
  width: 100% !important;
  margin-inline: auto !important;
  padding-inline: 1.5rem !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px) {
  html.has-cms-layout-header {
    --hb-header-height: 76px;
  }
}

html.has-cms-layout-header .gp-cms-page-header-assigned--primary {
  position: sticky;
  top: 0;
  z-index: 1100 !important;
}

html.has-cms-layout-header .cms-ws-header.gp-cms-ws-header,
html.has-cms-layout-header .gp-cms-page-header-assigned .cms-ws-header,
html.has-cms-layout-header .cms-ws-header__bar {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
}

/* Header CTA: match herbinnwellness.com .btn.btn-primary.btn-sm dimensions */
.gp-cms-page-header-assigned .cms-ws-header__button,
.cms-ws-header.gp-cms-ws-header .cms-ws-header__button,
.cms-ws-header__inner--zones .cms-ws-header__zone--right .cms-ws-header__button {
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  border-radius: 50px !important;
  background: #EA722E !important;
  border: 2px solid #EA722E !important;
  padding: 0.5rem 1.25rem !important;
  padding-top: 0.7rem !important;
  padding-bottom: 0.7rem !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  line-height: normal !important;
  margin-left: 0.5rem !important;
  box-shadow: 0 4px 15px rgba(234, 114, 46, 0.3);
}

.gp-cms-page-header-assigned .cms-ws-header__button *,
.cms-ws-header.gp-cms-ws-header .cms-ws-header__button *,
.cms-ws-header__inner--zones .cms-ws-header__zone--right .cms-ws-header__button * {
  font-weight: 600 !important;
}

.gp-cms-page-header-assigned .cms-ws-header__button:hover,
.gp-cms-page-header-assigned .cms-ws-header__button:focus,
.cms-ws-header.gp-cms-ws-header .cms-ws-header__button:hover,
.cms-ws-header.gp-cms-ws-header .cms-ws-header__button:focus {
  background: #D65A1D !important;
  border-color: #D65A1D !important;
  color: #fff !important;
  opacity: 1 !important;
}

/* Mobile nav drawer CTA (Hamburger menu button) */
html.has-cms-layout-header .cms-ws-mobile-nav-drawer__nav .cms-ws-mobile-nav-drawer__cta-link,
html.has-cms-layout-header .cms-ws-mobile-nav-drawer__nav .cms-ws-mobile-nav-drawer__cta a {
  background: #EA722E !important;
  border-color: #EA722E !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

html.has-cms-layout-header .cms-ws-mobile-nav-drawer__nav .cms-ws-mobile-nav-drawer__cta-link:hover,
html.has-cms-layout-header .cms-ws-mobile-nav-drawer__nav .cms-ws-mobile-nav-drawer__cta a:hover,
html.has-cms-layout-header .cms-ws-mobile-nav-drawer__nav .cms-ws-mobile-nav-drawer__cta-link:focus,
html.has-cms-layout-header .cms-ws-mobile-nav-drawer__nav .cms-ws-mobile-nav-drawer__cta a:focus {
  background: #D65A1D !important;
  border-color: #D65A1D !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

html.has-cms-layout-header .cms-ws-mobile-nav-drawer__close {
  background: #EA722E !important;
  border-color: #EA722E !important;
  color: #fff !important;
}

html.has-cms-layout-header .cms-ws-mobile-nav-drawer__close:hover,
html.has-cms-layout-header .cms-ws-mobile-nav-drawer__close:focus {
  background: #D65A1D !important;
  border-color: #D65A1D !important;
  color: #fff !important;
}

/* Nav links — match production (no forced capitalize; ~15px medium weight) */
.cms-ws-header__nav a,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a {
  text-transform: none;
  border-radius: 8px !important;
  border-bottom: none !important;
  padding: 0.5rem 0.85rem !important;
  font-size: 0.92rem !important;
  font-weight: 500;
  color: #1a1d21 !important;
}

.cms-ws-header__nav a:hover,
.cms-ws-header__nav a:active,
.cms-ws-header__nav a:focus-visible,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a:hover,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a:active,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a:focus-visible {
  background: rgba(45, 90, 39, 0.06) !important;
  border-bottom: none !important;
  opacity: 1 !important;
  color: #2d5a27 !important;
  -webkit-text-fill-color: #2d5a27 !important;
}

.cms-ws-header__nav a.is-current,
.cms-ws-header__nav a[aria-current="page"],
.cms-ws-header__nav a.active,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a.is-current,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a.is-current,
.gp-cms-page-header-assigned nav.cms-ws-header__nav a[aria-current="page"],
.gp-nav-link.is-current,
.gp-nav-link[aria-current="page"] {
  background: rgba(45, 90, 39, 0.06) !important;
  color: #2d5a27 !important;
  -webkit-text-fill-color: #2d5a27 !important;
  border-bottom: none !important;
  border-radius: 8px !important;
  font-weight: 500 !important;
  opacity: 1 !important;
}

/* Header bar spacing + logo size (width-led — Herbinn logo asset is 2:1) */
.cms-ws-header__bar {
  min-height: 88px !important;
}

.cms-ws-header__inner,
.cms-ws-header__inner--zones,
html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header__inner--zones {
  min-height: 88px !important;
  align-items: center !important;
}

html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header .cms-ws-header__zone--left,
html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header .cms-ws-header__brand,
html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header .cms-ws-header__logo-link {
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  overflow: visible !important;
  flex-shrink: 0 !important;
}

html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header img.cms-ws-header__logo,
.cms-ws-header__logo {
  display: block !important;
  width: min(280px, 44vw) !important;
  height: auto !important;
  max-width: none !important;
  max-height: 100px !important;
  min-width: 200px !important;
  object-fit: contain !important;
  object-position: left center !important;
  transition: width 0.25s ease, max-height 0.25s ease, min-width 0.25s ease;
}

html.has-cms-layout-header .cms-ws-header__bar,
html.has-cms-layout-header .cms-ws-header__inner,
html.has-cms-layout-header .cms-ws-header__inner--zones,
html.has-cms-layout-header .cms-ws-header__button {
  transition: min-height 0.25s ease, padding 0.25s ease, font-size 0.25s ease, box-shadow 0.25s ease;
}

/* Compact header on scroll — all CMS pages */
html.has-cms-layout-header.is-header-scrolled {
  --hb-header-height: 72px;
}

html.has-cms-layout-header.is-header-scrolled .cms-ws-header__bar,
html.has-cms-layout-header.is-header-scrolled .cms-ws-header__inner,
html.has-cms-layout-header.is-header-scrolled .cms-ws-header__inner--zones,
html.has-cms-layout-header.is-header-scrolled .gp-cms-page-header-assigned--primary .cms-ws-header__inner--zones {
  min-height: 56px !important;
}

html.has-cms-layout-header.is-header-scrolled .cms-ws-header__bar {
  padding-block: 6px !important;
}

html.has-cms-layout-header.is-header-scrolled .gp-cms-page-header-assigned--primary .cms-ws-header,
html.has-cms-layout-header.is-header-scrolled .cms-ws-header.gp-cms-ws-header {
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.1) !important;
}

html.has-cms-layout-header.is-header-scrolled .gp-cms-page-header-assigned--primary .cms-ws-header img.cms-ws-header__logo,
html.has-cms-layout-header.is-header-scrolled .cms-ws-header__logo {
  width: min(168px, 34vw) !important;
  max-height: 60px !important;
  min-width: 108px !important;
}

html.has-cms-layout-header.is-header-scrolled .gp-cms-page-header-assigned .cms-ws-header__button,
html.has-cms-layout-header.is-header-scrolled .cms-ws-header.gp-cms-ws-header .cms-ws-header__button {
  padding: 0.5rem 1.25rem !important;
  padding-top: 0.7rem !important;
  padding-bottom: 0.7rem !important;
  font-size: 0.88rem !important;
}

html.has-cms-layout-header.is-header-scrolled .cms-ws-header__nav a {
  padding-block: 0.35rem !important;
  font-size: 0.88rem !important;
}

@media (max-width: 991px) {
  html.has-cms-layout-header.is-header-scrolled {
    --hb-header-height: 52px;
  }

  html.has-cms-layout-header.is-header-scrolled .cms-ws-header__bar,
  html.has-cms-layout-header.is-header-scrolled .cms-ws-header__inner,
  html.has-cms-layout-header.is-header-scrolled .cms-ws-header__inner--zones {
    min-height: 48px !important;
  }

  html.has-cms-layout-header.is-header-scrolled .gp-cms-page-header-assigned--primary .cms-ws-header img.cms-ws-header__logo,
  html.has-cms-layout-header.is-header-scrolled .cms-ws-header__logo {
    width: min(132px, 42vw) !important;
    max-height: 40px !important;
    min-width: 0 !important;
  }
}

/* ============================================================
   HERO SLIDER — match production style.css
   ============================================================ */

/* Hero slider height (full width handled above) */
.home-cms-body .hero-slider,
.gp-body-content .hero-slider {
  min-height: 85vh !important;
  box-sizing: border-box;
}

/* Strip swasthe first-section padding on hero wrapper */
.home-cms-body .cms-html-block > section.hero-slider:first-child,
.home-cms-body .gp-html-block > section.hero-slider:first-child,
.gp-body-content .cms-html-block > section.hero-slider:first-child,
.gp-body-content .gp-html-block > section.hero-slider:first-child,
.home-cms-body > section.hero-slider:first-child,
.gp-body-content > section.hero-slider:first-child {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.home-container .section--body:has(.hero-slider),
.home-container .panel--body:has(.hero-slider) {
  overflow: visible;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Production overlay */
.hero-slider .hero-overlay {
  display: block !important;
  background: rgba(0, 0, 0, 0.45) !important;
}

html.has-cms-layout-header .hero-slider .hero-slide {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center;
}

.hero-slider .hero-slide {
  width: 100%;
  align-items: center;
  justify-content: center;
}

.hero-slider .hero-content.container {
  max-width: 850px !important;
  width: 100% !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  float: none !important;
}

.hero-slider .hero-content {
  max-width: 850px !important;
  width: 100% !important;
  padding-inline: 1.5rem !important;
  padding-block: 0 !important;
  box-sizing: border-box !important;
}

.hero-slider .hero-slide h1 {
  max-width: 20ch !important;
  text-wrap: balance;
  margin-bottom: 1.5rem !important;
}

.hero-slider .hero-slide .lead {
  max-width: min(720px, 100%);
  margin-inline: auto;
  margin-bottom: 2rem !important;
  line-height: 1.55 !important;
}

.hero-slider .hero-badge {
  letter-spacing: 0.05em;
  font-size: 0.85rem;
  display: inline-block;
  background: var(--primary-color, #2D5A27) !important;
  color: #fff !important;
  padding: 0.5rem 1.25rem;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}

.hero-slider .hero-btns {
  margin-top: 2rem;
}

.hero-slider .hero-btns .btn-lg {
  padding: 0.95rem 2.1rem;
  border-radius: 50px;
}

.hero-slider .slider-dots {
  bottom: 0.5rem;
  z-index: 120;
}

.hero-slider .slider-dots .dot {
  width: 12px;
  height: 12px;
  background: rgba(255, 255, 255, 0.38);
  border-color: rgba(255, 255, 255, 0.28);
}

.hero-slider .slider-dots .dot.active {
  background: #ffffff;
  border-color: rgba(255, 255, 255, 0.6);
  transform: scale(1.2);
}

/* Certs band flush under hero */
.home-cms-body .hero-slider + .certs-band,
.gp-body-content .hero-slider + .certs-band,
.home-cms-body .hero-slider + .bg-white.certs-band,
.gp-body-content .hero-slider + .bg-white.certs-band {
  margin-top: 0 !important;
  border-top: none;
}

@media (max-width: 991px) {
  .cms-ws-header__bar {
    min-height: 60px !important;
  }

  .cms-ws-header__inner,
  .cms-ws-header__inner--zones {
    min-height: 60px !important;
  }

  html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header img.cms-ws-header__logo,
  .cms-ws-header__logo {
    width: min(220px, 58vw) !important;
    height: auto !important;
    max-height: 68px !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}

@media (max-width: 768px) {
  .home-cms-body .hero-slider,
  .gp-body-content .hero-slider {
    min-height: clamp(420px, 75vh, 640px) !important;
  }

  .hero-slider .hero-slide h1 {
    font-size: clamp(1.65rem, 7.5vw, 2.15rem) !important;
    max-width: 100% !important;
  }

  .hero-slider .hero-badge {
    font-size: 0.72rem;
    padding: 0.4rem 1rem;
    margin-bottom: 1rem;
  }

  html.has-cms-layout-header .gp-cms-page-header-assigned--primary .cms-ws-header img.cms-ws-header__logo,
  .cms-ws-header__logo {
    width: min(190px, 62vw) !important;
    height: auto !important;
    max-height: 56px !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}

@media (max-width: 480px) {
  .hero-slider .hero-btns {
    width: 100%;
  }

  .hero-slider .hero-btns .btn-lg {
    width: 100%;
    max-width: 280px;
  }
}

/* ============================================================
   CMS INNER PAGES — blog, about, services (match herbinnwellness.com)
   ============================================================ */

/* Full-bleed page header below CMS nav */
html.has-cms-layout-header .home-cms-body .page-header,
html.has-cms-layout-header .gp-body-content .page-header,
html.has-cms-layout-header .gp-html-block > header.page-header,
html.has-cms-layout-header .cms-html-block > header.page-header {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
  background: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%) !important;
  border-bottom: none !important;
  box-sizing: border-box;
}

/* Blog listing + inner sections after page header */
html.has-cms-layout-header .gp-html-block > header.page-header + .section,
html.has-cms-layout-header .cms-html-block > header.page-header + .section {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

html.has-cms-layout-header .gp-html-block > header.page-header + .section.bg-light,
html.has-cms-layout-header .cms-html-block > header.page-header + .section.bg-light {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

/* Blog article header — full-bleed band needs inner container gutters */
html.has-cms-layout-header .home-cms-body .page-header .container,
html.has-cms-layout-header .gp-body-content .page-header .container,
html.has-cms-layout-header .gp-html-block > header.page-header .container,
html.has-cms-layout-header .cms-html-block > header.page-header .container {
  max-width: 1200px !important;
  margin-inline: auto !important;
  padding-inline: 1.5rem !important;
  box-sizing: border-box;
}

/* Blog article body — keep copy left-aligned (mobile global centering excludes this) */
html.has-cms-layout-header article.section .post-content,
html.has-cms-layout-header article.section .post-content :is(p, h2, h3, h4, ul, ol, li) {
  text-align: left !important;
}

/* Blog grid — production card layout */
.home-cms-body .blog-grid.grid-3,
.gp-body-content .blog-grid.grid-3 {
  gap: 1.75rem;
}

@media (max-width: 991px) {
  .home-cms-body .blog-grid.grid-3,
  .gp-body-content .blog-grid.grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .home-cms-body .blog-grid.grid-3,
  .gp-body-content .blog-grid.grid-3 {
    grid-template-columns: 1fr;
  }

  html.has-cms-layout-header .home-cms-body .page-header,
  html.has-cms-layout-header .gp-body-content .page-header {
    padding-top: 3.5rem !important;
    padding-bottom: 2.5rem !important;
  }
}

/* ============================================================
   GLOBAL TYPOGRAPHY — CMS pages match herbinnwellness.com
   (overrides components.css .gp-html-block 15px / font-weight 800)
   ============================================================ */
html.has-cms-layout-header .home-cms-body .gp-html-block,
html.has-cms-layout-header .gp-body-content .gp-html-block,
html.has-cms-layout-header .home-cms-body .cms-html-block,
html.has-cms-layout-header .gp-body-content .cms-html-block {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-dark, #1a1d21);
}

html.has-cms-layout-header .home-cms-body .gp-html-block :is(h1, h2, h3, h4, h5, h6),
html.has-cms-layout-header .gp-body-content .gp-html-block :is(h1, h2, h3, h4, h5, h6),
html.has-cms-layout-header .home-cms-body .cms-html-block :is(h1, h2, h3, h4, h5, h6),
html.has-cms-layout-header .gp-body-content .cms-html-block :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 700 !important;
  /* color: var(--text-dark, #1a1d21) !important; */
}

/* Hero slider — white titles (beats global CMS heading color above) */
html.has-cms-layout-header .home-cms-body .gp-html-block .hero-slider :is(h1, h2, h3, h4, h5, h6),
html.has-cms-layout-header .gp-body-content .gp-html-block .hero-slider :is(h1, h2, h3, h4, h5, h6),
html.has-cms-layout-header .home-cms-body .cms-html-block .hero-slider :is(h1, h2, h3, h4, h5, h6),
html.has-cms-layout-header .gp-body-content .cms-html-block .hero-slider :is(h1, h2, h3, h4, h5, h6) {
  color: #fff !important;
}

html.has-cms-layout-header .home-cms-body .section h2,
html.has-cms-layout-header .gp-body-content .section h2,
html.has-cms-layout-header .split-row h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700 !important;
  line-height: 1.2;
  color: var(--text-dark, #1a1d21);
}

html.has-cms-layout-header .cms-page--formats .formats-split-row h2,
html.has-cms-layout-header .home-cms-body .cms-page--formats .formats-split-row h2,
html.has-cms-layout-header .gp-body-content .cms-page--formats .formats-split-row h2 {
  color: #2D5A27 !important;
}

/* Private-label hero — override components.css fixed img height */
html.has-cms-layout-header .cms-page--private-label .pl-hero img,
html.has-cms-layout-header .gp-html-block .cms-page--private-label .pl-hero img,
html.has-cms-layout-header .cms-html-block .cms-page--private-label .pl-hero img {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: clamp(360px, 38vw, 500px) !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover;
  object-position: center;
}

/* Services split rows — push CTA button below paragraph */
html.has-cms-layout-header .split-row a.btn.btn-primary {
  margin-top: 1.5rem;
}

html.has-cms-layout-header .home-cms-body .section-header h2,
html.has-cms-layout-header .gp-body-content .section-header h2 {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 700 !important;
}

html.has-cms-layout-header .page-header h1 {
  font-weight: 700 !important;
}

/* Hero banner — white title & subtitle on dark overlay (production parity) */
html.has-cms-layout-header .hero-slider .hero-content,
html.has-cms-layout-header .hero-slider .hero-slide .hero-content {
  color: #fff !important;
}

html.has-cms-layout-header .hero-slider .hero-content h1,
html.has-cms-layout-header .hero-slider .hero-slide h1,
html.has-cms-layout-header .home-cms-body .gp-html-block .hero-slider .hero-content h1,
html.has-cms-layout-header .gp-body-content .gp-html-block .hero-slider .hero-content h1 {
  color: #fff !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}

html.has-cms-layout-header .hero-slider .hero-content .lead,
html.has-cms-layout-header .hero-slider .hero-slide .lead {
  color: rgba(255, 255, 255, 0.9) !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.25);
}

/* Home content sections — production 80px vertical rhythm */
html.has-cms-layout-header .home-cms-body .section.bg-light,
html.has-cms-layout-header .gp-body-content .section.bg-light {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

/* Certs band flush spacing under page-header or hero */
html.has-cms-layout-header .page-header + .certs-band,
html.has-cms-layout-header .hero-slider + .certs-band {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

/* ============================================================
   OVERFLOW / SCROLL — inner CMS pages (services, about, blog)
   Fix nested scrollbars + horizontal bleed from AOS / full-bleed header
   ============================================================ */
html.has-cms-layout-header,
html.has-cms-layout-header body {
  overflow-x: clip;
  max-width: 100%;
}

html.has-cms-layout-header .home-shell,
html.has-cms-layout-header .home-container,
html.has-cms-layout-header .section.section--body,
html.has-cms-layout-header .panel.panel--body,
html.has-cms-layout-header .home-cms-body,
html.has-cms-layout-header .gp-body-content,
html.has-cms-layout-header .gp-html-block,
html.has-cms-layout-header .cms-html-block {
  overflow-x: clip !important;
  overflow-y: visible !important;
  max-width: 100%;
}

html.has-cms-layout-header .split-row,
html.has-cms-layout-header .section .container,
html.has-cms-layout-header .certs-band {
  overflow-x: clip;
}

/* AOS slide-in must not widen the page */
html.has-cms-layout-header .split-row > [data-aos],
html.has-cms-layout-header .section-header[data-aos],
html.has-cms-layout-header .grid[data-aos] {
  will-change: opacity, transform;
}

html.has-cms-layout-header .cms-ws-header__nav,
html.has-cms-layout-header .cms-ws-header__zone--center,
html.has-cms-layout-header .cms-ws-header__zone--right,
html.has-cms-layout-header .cms-ws-header__bar .cms-ws-header__inner--zones .cms-ws-header__zone--center .cms-ws-header__nav {
  overflow: visible !important;
}

/* Footer copyright — honor CMS center alignment on Herbinn storefront */
html.has-cms-layout-header .cms-ws-footer__bottom--copy-center {
  justify-content: center !important;
}

html.has-cms-layout-header .cms-ws-footer__bottom--copy-center > .cms-ws-footer__copy {
  flex: 1 1 100%;
  width: 100%;
  text-align: center !important;
}

html.has-cms-layout-header .hb-site-footer .footer-bottom,
html.has-cms-layout-header .hb-site-footer .footer-bottom p {
  text-align: center !important;
  width: 100%;
}

/* Footer Certifications column — badge grid + office blocks inside CMS footer */
html.has-cms-layout-header .cms-ws-footer__menu--certifications .footer-certs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  max-width: 19rem;
  margin-top: 0.25rem;
}

html.has-cms-layout-header .cms-ws-footer__menu--certifications .footer-certs .badge-border {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.45rem 0.55rem;
  font-size: 0.68rem;
  line-height: 1.25;
  text-align: center;
  border-radius: 6px;
  letter-spacing: 0.02em;
  font-weight: 600;
}

html.has-cms-layout-header .cms-ws-footer__menu--certifications .hb-footer-offices {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.5rem;
  width: 100%;
}

html.has-cms-layout-header .cms-ws-footer__menu--certifications .hb-footer-office {
  margin-top: 0;
}

html.has-cms-layout-header .cms-ws-footer .hb-footer-office-title {
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  margin: 0 0 0.4rem !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--primary-color) !important;
  line-height: 1.3;
  background: none !important;
  padding: 0 !important;
  border: 0 !important;
}

html.has-cms-layout-header .cms-ws-footer .hb-footer-office-address {
  margin: 0 !important;
  font-size: 0.85rem !important;
  color: var(--text-muted) !important;
  line-height: 1.4 !important;
  font-weight: 400;
  max-width: 22rem;
  background: none !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 768px) {
  html.has-cms-layout-header .cms-ws-footer .hb-footer-offices {
    align-items: center;
  }

  html.has-cms-layout-header .cms-ws-footer .hb-footer-office {
    text-align: center;
    width: 100%;
  }

  html.has-cms-layout-header .cms-ws-footer .hb-footer-office-address {
    margin-inline: auto !important;
    max-width: min(320px, 92vw);
  }
}

/* Contact page — match herbinnwellness.com/contact/ */
.bg-premium-gradient .contact-info-block {
  margin-bottom: 1.5rem;
}

.bg-premium-gradient .contact-info-block h6 {
  font-weight: 700;
  margin-bottom: 0.15rem;
}

.bg-premium-gradient .contact-info-block p {
  color: var(--text-muted);
  font-size: 0.88rem;
  margin: 0;
}

.bg-premium-gradient .split-row {
  align-items: start;
}

.bg-premium-gradient .contact-form-wrap {
  min-width: 0;
}

.bg-premium-gradient .contact-card {
  background: #fff;
  border-radius: var(--radius-md, 12px);
  padding: 2.5rem;
  box-shadow: var(--shadow-md, 0 10px 30px rgba(15, 23, 42, 0.08));
}

.herbinn-contact-page-form .contact-us-layout,
.herbinn-contact-page-form .contact-us-layout__form {
  display: block;
  width: 100%;
}

.herbinn-contact-page-form .contact-us-component {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.herbinn-contact-page-form .contact-us-title,
.herbinn-contact-page-form .contact-us-security {
  display: none;
}

.herbinn-contact-page-form .contact-us-submit {
  width: 100%;
  justify-content: center;
}

.herbinn-contact-page-form .contact-us-submit-chevron {
  display: none;
}

/* ============================================================
   BLOG SINGLE POST — alignment + deep text (herbinnwellness.com)
   ============================================================ */
html.has-cms-layout-header .home-cms-body .page-header .container,
html.has-cms-layout-header .gp-body-content .page-header .container,
html.has-cms-layout-header .gp-html-block > header.page-header .container,
html.has-cms-layout-header .cms-html-block > header.page-header .container,
html.has-cms-layout-header .gp-html-block article.section .container,
html.has-cms-layout-header .cms-html-block article.section .container {
  max-width: 1200px !important;
  margin-inline: auto !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  box-sizing: border-box !important;
}

html.has-cms-layout-header .gp-html-block > header.page-header h1,
html.has-cms-layout-header .cms-html-block > header.page-header h1,
html.has-cms-layout-header .page-header h1 {
  color: #1a1d21 !important;
}

html.has-cms-layout-header .page-header .blog-meta,
html.has-cms-layout-header .page-header .blog-meta span,
html.has-cms-layout-header .page-header .blog-meta a {
  color: #6b7280 !important;
}


html.has-cms-layout-header .page-header a[href*="insights"] {
  color: var(--primary-color, #2D5A27) !important;
  font-weight: 700;
}

html.has-cms-layout-header .gp-html-block article.section .post-content,
html.has-cms-layout-header .cms-html-block article.section .post-content {
  color: #333333 !important;
  font-size: 1.05rem;
  line-height: 1.8;
}

html.has-cms-layout-header .gp-html-block article.section .post-content :is(p, li, blockquote),
html.has-cms-layout-header .cms-html-block article.section .post-content :is(p, li, blockquote) {
  color: #333333 !important;
}

html.has-cms-layout-header .gp-html-block article.section .post-content :is(h2, h3),
html.has-cms-layout-header .cms-html-block article.section .post-content :is(h2, h3) {
  color: var(--primary-color, #2D5A27) !important;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem) !important;
  font-weight: 700 !important;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

html.has-cms-layout-header .gp-html-block article.section .post-content figcaption,
html.has-cms-layout-header .cms-html-block article.section .post-content figcaption,
html.has-cms-layout-header .gp-html-block article.section .post-content .wp-caption-text,
html.has-cms-layout-header .cms-html-block article.section .post-content .wp-caption-text {
  color: #6b7280 !important;
  font-size: 0.9rem;
}

html.has-cms-layout-header .gp-html-block article.section .post-content img,
html.has-cms-layout-header .cms-html-block article.section .post-content img {
  border-radius: var(--radius-md, 16px);
  margin-block: 1.5rem;
}

/* Insights — force visible "Read Article" underline (overrides link resets) */
html.has-cms-layout-header .gp-html-block a.insights-card__cta .insights-card__cta-text,
html.has-cms-layout-header .gp-body-content a.insights-card__cta .insights-card__cta-text,
html.has-cms-layout-header .home-cms-body a.insights-card__cta .insights-card__cta-text {
  color: #000 !important;
  border-bottom: 2px solid #2D5A27 !important;
  padding-bottom: 1px !important;
}
html.has-cms-layout-header .gp-html-block a.insights-card__cta:not(:has(.insights-card__cta-text)),
html.has-cms-layout-header .gp-body-content a.insights-card__cta:not(:has(.insights-card__cta-text)),
html.has-cms-layout-header .home-cms-body a.insights-card__cta:not(:has(.insights-card__cta-text)) {
  color: #000 !important;
  background-image: linear-gradient(#2D5A27, #2D5A27) !important;
  background-size: 5.9em 2px !important;
  background-position: left bottom !important;
  background-repeat: no-repeat !important;
  padding-bottom: 3px !important;
}
