/*
 Theme Name:   BodyLife Global - Astra Child
 Theme URI:    https://bodylifeglobal.com
 Description:  B2B OEM/ODM Beauty Manufacturing - Custom Astra Child Theme
 Author:       BodyLife Global
 Template:     astra
 Version:      1.0.0
 Text Domain:  bodylife
*/

:root {
  --bl-navy: #1A1A1A;
  --bl-navy-light: #2A2A2A;
  --bl-navy-dark: #111111;
  --bl-teal: #1F5F4B;
  --bl-teal-light: #2E7D66;
  --bl-teal-dark: #174A38;
  --bl-accent: #1F5F4B;
  --bl-accent-hover: #174A38;
  --bl-gold: #5B9BD5;
  --bl-blue-accent: #5B9BD5;
  --bl-white: #FFFFFF;
  --bl-gray-50: #F8F9FA;
  --bl-gray-100: #F1F3F5;
  --bl-gray-200: #E9ECEF;
  --bl-gray-300: #DEE2E6;
  --bl-gray-500: #868E96;
  --bl-gray-700: #495057;
  --bl-text: #2D3436;
  --bl-text-light: #636E72;
  --bl-font-heading: 'Montserrat', sans-serif;
  --bl-font-body: 'Open Sans', sans-serif;
  --bl-section-padding: 80px 0;
  --bl-container-width: 1200px;
  --bl-transition: all 0.3s ease;
  --bl-shadow-sm: 0 2px 8px rgba(27, 42, 74, 0.08);
  --bl-shadow-md: 0 4px 16px rgba(27, 42, 74, 0.12);
  --bl-shadow-lg: 0 8px 32px rgba(27, 42, 74, 0.16);
  --bl-radius-sm: 4px;
  --bl-radius-md: 8px;
  --bl-radius-lg: 16px;
}

body { font-family: var(--bl-font-body); font-size: 16px; line-height: 1.7; color: var(--bl-text); }
h1, h2, h3, h4, h5, h6 { font-family: var(--bl-font-heading); font-weight: 700; color: var(--bl-navy); line-height: 1.3; }
h1 { font-size: 2.75rem; }
h2 { font-size: 2.125rem; }
h3 { font-size: 1.625rem; }
a { color: var(--bl-teal); text-decoration: none; transition: var(--bl-transition); }
a:hover { color: var(--bl-teal-dark); }
.bl-container { max-width: var(--bl-container-width); margin: 0 auto; padding: 0 20px; }
.bl-section { padding: var(--bl-section-padding); }
.bl-section--gray { background: var(--bl-gray-50); }
.bl-section--navy { background: var(--bl-navy); color: var(--bl-white); }
.bl-btn { display: inline-block; padding: 14px 32px; font-family: var(--bl-font-heading); font-size: 0.9375rem; font-weight: 600; border-radius: var(--bl-radius-sm); cursor: pointer; transition: var(--bl-transition); text-decoration: none; border: 2px solid transparent; }
.bl-btn--primary { background: var(--bl-accent); color: var(--bl-white); border-color: var(--bl-accent); }
.bl-btn--primary:hover { background: var(--bl-accent-hover); transform: translateY(-2px); box-shadow: var(--bl-shadow-md); }
.bl-btn--secondary { background: transparent; color: var(--bl-white); border-color: var(--bl-white); }
.bl-btn--secondary:hover { background: var(--bl-white); color: var(--bl-navy); }
.bl-hero { position: relative; min-height: 600px; display: flex; align-items: center; background: linear-gradient(135deg, var(--bl-navy) 0%, var(--bl-navy-light) 100%); overflow: hidden; }
.bl-hero__content { position: relative; z-index: 2; max-width: 650px; color: var(--bl-white); }
.bl-hero__overline { font-size: 0.8125rem; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--bl-teal-light); margin-bottom: 20px; }
.bl-hero__title { font-size: 3rem; font-weight: 800; color: var(--bl-white); line-height: 1.15; margin-bottom: 24px; }
.bl-hero__subtitle { font-size: 1.2rem; line-height: 1.7; color: rgba(255,255,255,0.8); margin-bottom: 36px; }
.bl-hero__buttons { display: flex; gap: 16px; flex-wrap: wrap; }
.bl-stats { display: grid; grid-template-columns: repeat(4,1fr); background: var(--bl-white); box-shadow: var(--bl-shadow-lg); border-radius: var(--bl-radius-md); margin-top: -50px; position: relative; z-index: 10; }
.bl-stats__item { padding: 36px 24px; text-align: center; border-right: 1px solid var(--bl-gray-200); }
.bl-stats__item:last-child { border-right: none; }
.bl-stats__number { font-family: var(--bl-font-heading); font-size: 2.5rem; font-weight: 800; color: var(--bl-teal); }
.bl-stats__label { font-size: 0.875rem; color: var(--bl-text-light); }
.bl-services-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.bl-service-card { background: var(--bl-white); border-radius: var(--bl-radius-md); padding: 40px 28px; text-align: center; box-shadow: var(--bl-shadow-sm); transition: var(--bl-transition); border: 1px solid var(--bl-gray-200); }
.bl-service-card:hover { transform: translateY(-6px); box-shadow: var(--bl-shadow-lg); border-color: var(--bl-teal); }
.bl-industries-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 20px; }
.bl-industry-card { background: var(--bl-white); border-radius: var(--bl-radius-md); padding: 32px 20px; text-align: center; box-shadow: var(--bl-shadow-sm); transition: var(--bl-transition); border-bottom: 3px solid transparent; }
.bl-industry-card:hover { transform: translateY(-4px); border-bottom-color: var(--bl-blue-accent); }
.bl-posts-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.bl-post-card { background: var(--bl-white); border-radius: var(--bl-radius-md); overflow: hidden; box-shadow: var(--bl-shadow-sm); transition: var(--bl-transition); }
.bl-post-card:hover { transform: translateY(-4px); box-shadow: var(--bl-shadow-md); }
.bl-cta-banner { background: linear-gradient(135deg, var(--bl-navy) 0%, var(--bl-navy-light) 100%); padding: 64px 0; text-align: center; }
.bl-cta-banner h2 { color: var(--bl-white); font-size: 2rem; margin-bottom: 16px; }
.bl-cta-banner p { color: rgba(255,255,255,0.75); margin-bottom: 32px; }
.bl-faq-item { border-bottom: 1px solid var(--bl-gray-200); padding: 20px 0; }
.bl-faq-item__question { font-family: var(--bl-font-heading); font-weight: 600; cursor: pointer; display: flex; justify-content: space-between; }
.bl-faq-item__answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.bl-faq-item.active .bl-faq-item__answer { max-height: 500px; padding-top: 12px; }
@media (max-width: 992px) { .bl-services-grid { grid-template-columns: repeat(2,1fr); } .bl-industries-grid { grid-template-columns: repeat(3,1fr); } .bl-posts-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 768px) { .bl-hero { min-height: 500px; } .bl-hero__title { font-size: 2.125rem; } .bl-stats { grid-template-columns: repeat(2,1fr); } h1 { font-size: 2rem; } h2 { font-size: 1.625rem; } }
@media (max-width: 576px) { .bl-services-grid { grid-template-columns: 1fr; } .bl-industries-grid { grid-template-columns: repeat(2,1fr); } .bl-posts-grid { grid-template-columns: 1fr; } }
/* ===== HOME PAGE FULL WIDTH FIXES ===== */

.page-template-page-home .site-content > .ast-container,
.page-template-page-home .site-content .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-template-page-home #primary,
.page-template-page-home #primary .entry-content,
.page-template-page-home .ast-article-single {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.page-template-page-home .entry-header {
  display: none !important;
}

/* Hero - full viewport width */
.page-template-page-home .bl-hero {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: auto !important;
  right: auto !important;
}

/* Stats bar */
.page-template-page-home .bl-stats {
  max-width: 1200px;
  margin: -50px auto 0;
}

/* Full-width sections */
.page-template-page-home .bl-section--gray,
.page-template-page-home .bl-section--navy,
.page-template-page-home .bl-cta-banner {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: auto !important;
  right: auto !important;
}

/* Remove any overflow hidden that might clip */
.page-template-page-home .site-content,
.page-template-page-home #primary {
  overflow: visible !important;
}

/* Astra content area should not constrain our sections */
.page-template-page-home .ast-separate-container .ast-article-single {
  background: transparent !important;
  padding: 0 !important;
}

/* Navigation - Get a Quote button style */
.main-header-menu .menu-item:last-child > a {
  background: #1F5F4B !important;
  color: #fff !important;
  padding: 8px 20px !important;
  border-radius: 4px !important;
}
.main-header-menu .menu-item:last-child > a:hover {
  background: #174A38 !important;
}

/* Hide Astra footer credit */
.ast-small-footer, .site-below-footer-wrap {
  display: none !important;
}

/* ===== CRITICAL FIX: Force vertical stacking ===== */
.page-template-page-home #primary .entry-content {
  display: block !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
}

.page-template-page-home .entry-content > section,
.page-template-page-home .entry-content > div,
.page-template-page-home .entry-content > .bl-cta-banner {
  display: block !important;
  width: 100% !important;
  float: none !important;
  flex: none !important;
}

.page-template-page-home .ast-article-single,
.page-template-page-home .ast-separate-container .ast-article-single {
  display: block !important;
}

/* Fix Astra site-content flex behavior */
.page-template-page-home .site-main > article {
  display: block !important;
  width: 100% !important;
}

.page-template-page-home .site-main > article > .entry-content {
  display: block !important;
  width: 100% !important;
}

/* Ensure body and html don't overflow horizontally */
body.page-template-page-home {
  overflow-x: hidden !important;
}
/* ===== FULLWIDTH HOME WRAPPER ===== */
.bl-home-fullwidth {
  width: 100%;
  overflow: hidden;
}

.bl-home-fullwidth > section,
.bl-home-fullwidth > div {
  display: block;
  width: 100%;
}

.bl-section-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 50px;
}

.bl-section-header p {
  color: var(--bl-text-light);
}
/* ===== NAVIGATION ACTIVE STATE + HOVER ===== */

/* All nav items - subtle hover */
.main-header-menu > .menu-item > a {
  position: relative;
  transition: color 0.2s ease;
}

.main-header-menu > .menu-item > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: #1F5F4B;
  transition: width 0.25s ease;
}

/* Hover - green underline slides in */
.main-header-menu > .menu-item:not(:last-child) > a:hover {
  color: #1F5F4B !important;
}

.main-header-menu > .menu-item:not(:last-child) > a:hover::after {
  width: 100%;
}

/* Current page - persistent green underline */
.main-header-menu > .menu-item.current-menu-item:not(:last-child) > a,
.main-header-menu > .menu-item.current-menu-parent:not(:last-child) > a,
.main-header-menu > .menu-item.current-menu-ancestor:not(:last-child) > a {
  color: #1F5F4B !important;
}

.main-header-menu > .menu-item.current-menu-item:not(:last-child) > a::after,
.main-header-menu > .menu-item.current-menu-parent:not(:last-child) > a::after,
.main-header-menu > .menu-item.current-menu-ancestor:not(:last-child) > a::after {
  width: 100%;
}

/* Get a Quote button - exclude from underline behavior */
.main-header-menu > .menu-item:last-child > a::after {
  display: none !important;
}

.main-header-menu > .menu-item:last-child > a:hover {
  background: #174A38 !important;
  color: #fff !important;
}
/* ===== NAV ACTIVE + HOVER — HIGH SPECIFICITY OVERRIDE ===== */

/* Position context for all Astra header variants */
.ast-primary-header .main-header-menu > .menu-item > a {
  position: relative !important;
  transition: color 0.2s ease !important;
  padding-bottom: 8px !important;
}

/* Underline base — hidden by default */
.ast-primary-header .main-header-menu > .menu-item:not(:last-child) > a::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 0 !important;
  height: 2px !important;
  background: #1F5F4B !important;
  transition: width 0.25s ease !important;
  display: block !important;
}

/* Hover — underline slides in, text goes green */
.ast-primary-header .main-header-menu > .menu-item:not(:last-child) > a:hover {
  color: #1F5F4B !important;
}
.ast-primary-header .main-header-menu > .menu-item:not(:last-child) > a:hover::after {
  width: 100% !important;
}

/* Current page / active ancestor — persistent underline */
.ast-primary-header .main-header-menu > .menu-item.current-menu-item:not(:last-child) > a,
.ast-primary-header .main-header-menu > .menu-item.current-menu-parent:not(:last-child) > a,
.ast-primary-header .main-header-menu > .menu-item.current-menu-ancestor:not(:last-child) > a,
.ast-primary-header .main-header-menu > .menu-item.current_page_item:not(:last-child) > a,
.ast-primary-header .main-header-menu > .menu-item.current_page_parent:not(:last-child) > a {
  color: #1F5F4B !important;
}
.ast-primary-header .main-header-menu > .menu-item.current-menu-item:not(:last-child) > a::after,
.ast-primary-header .main-header-menu > .menu-item.current-menu-parent:not(:last-child) > a::after,
.ast-primary-header .main-header-menu > .menu-item.current-menu-ancestor:not(:last-child) > a::after,
.ast-primary-header .main-header-menu > .menu-item.current_page_item:not(:last-child) > a::after,
.ast-primary-header .main-header-menu > .menu-item.current_page_parent:not(:last-child) > a::after {
  width: 100% !important;
}

/* Get a Quote CTA — no underline, hover darkens bg */
.ast-primary-header .main-header-menu > .menu-item:last-child > a::after {
  display: none !important;
}
.ast-primary-header .main-header-menu > .menu-item:last-child > a:hover {
  background: #174A38 !important;
  color: #fff !important;
}
/* ===== BUTTON TEXT FIX ===== */
.bl-btn--primary,
a.bl-btn--primary,
.bl-cta-banner .bl-btn--primary,
.bl-hero__buttons .bl-btn--primary {
  background: #1F5F4B !important;
  color: #FFFFFF !important;
  border-color: #1F5F4B !important;
}

.bl-btn--primary:hover,
a.bl-btn--primary:hover,
.bl-cta-banner .bl-btn--primary:hover,
.bl-hero__buttons .bl-btn--primary:hover {
  background: #174A38 !important;
  color: #FFFFFF !important;
  border-color: #174A38 !important;
}

.bl-btn--secondary,
a.bl-btn--secondary {
  background: transparent !important;
  color: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

.bl-btn--secondary:hover,
a.bl-btn--secondary:hover {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
}

.bl-btn--outline,
a.bl-btn--outline {
  background: transparent !important;
  color: #1A1A1A !important;
  border-color: #1A1A1A !important;
}

.bl-btn--outline:hover,
a.bl-btn--outline:hover {
  background: #1A1A1A !important;
  color: #FFFFFF !important;
}
/* ===== NAV HOVER + ACTIVE — CORRECTED SELECTORS ===== */
/* Desktop nav: #primary-site-navigation-desktop, links use .menu-link class */

/* Position context on all desktop nav links */
#primary-site-navigation-desktop .main-header-menu > .menu-item > a.menu-link {
  position: relative !important;
  transition: color 0.2s ease !important;
  padding-bottom: 6px !important;
}

/* Underline pseudo-element — hidden by default */
#primary-site-navigation-desktop .main-header-menu > .menu-item:not(:last-child) > a.menu-link::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 0 !important;
  height: 2px !important;
  background: #1F5F4B !important;
  transition: width 0.25s ease !important;
  display: block !important;
}

/* Hover: text green + underline slides in */
#primary-site-navigation-desktop .main-header-menu > .menu-item:not(:last-child) > a.menu-link:hover {
  color: #1F5F4B !important;
}
#primary-site-navigation-desktop .main-header-menu > .menu-item:not(:last-child) > a.menu-link:hover::after {
  width: 100% !important;
}

/* Current page / active ancestor: persistent green underline */
#primary-site-navigation-desktop .main-header-menu > .menu-item.current-menu-item:not(:last-child) > a.menu-link,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current-menu-parent:not(:last-child) > a.menu-link,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current-menu-ancestor:not(:last-child) > a.menu-link,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current_page_item:not(:last-child) > a.menu-link,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current_page_parent:not(:last-child) > a.menu-link {
  color: #1F5F4B !important;
}
#primary-site-navigation-desktop .main-header-menu > .menu-item.current-menu-item:not(:last-child) > a.menu-link::after,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current-menu-parent:not(:last-child) > a.menu-link::after,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current-menu-ancestor:not(:last-child) > a.menu-link::after,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current_page_item:not(:last-child) > a.menu-link::after,
#primary-site-navigation-desktop .main-header-menu > .menu-item.current_page_parent:not(:last-child) > a.menu-link::after {
  width: 100% !important;
}

/* Get a Quote CTA — last-child, green bg, WHITE text always, no underline */
#primary-site-navigation-desktop .main-header-menu > .menu-item:last-child > a.menu-link {
  background: #1F5F4B !important;
  color: #ffffff !important;
  border-radius: 4px !important;
  padding: 8px 18px !important;
}
#primary-site-navigation-desktop .main-header-menu > .menu-item:last-child > a.menu-link::after {
  display: none !important;
}
#primary-site-navigation-desktop .main-header-menu > .menu-item:last-child > a.menu-link:hover {
  background: #174A38 !important;
  color: #ffffff !important;
}
/* ===== NAV UNDERLINE POSITION FIX ===== */
#primary-site-navigation-desktop .main-header-menu > .menu-item:not(:last-child) > a.menu-link {
  padding-bottom: 16px !important;
}

#primary-site-navigation-desktop .main-header-menu > .menu-item:not(:last-child) > a.menu-link::after {
  bottom: 8px !important;
}
/* ===== HOMEPAGE SECTION SPACING FIX ===== */

/* Reduce hero bottom padding */
.page-template-page-home .bl-hero {
  padding-bottom: 80px !important;
}

/* Stats bar - pull up closer to hero */
.page-template-page-home .bl-stats {
  margin-top: -50px !important;
  margin-bottom: 0 !important;
}

/* Reduce gap between stats and services section */
.page-template-page-home .bl-section:first-of-type {
  padding-bottom: 20px !important;
}

/* Tighten all section padding on homepage */
.page-template-page-home .bl-section {
  padding: 48px 0 !important;
}

.page-template-page-home .bl-section--gray {
  padding: 56px 0 !important;
}

/* CTA banner spacing */
.page-template-page-home .bl-cta-banner {
  padding: 48px 0 !important;
}
/* ===== HERO + STATS OVERLAP FIX ===== */

/* Hero: extra bottom padding creates space for stats card to overlap into */
.bl-home-fullwidth .bl-hero {
  padding-bottom: 100px !important;
  min-height: auto !important;
}

/* Stats section (2nd child): pull up into hero with negative margin */
.bl-home-fullwidth > section:nth-child(2) {
  padding: 0 !important;
  margin-top: -50px !important;
  position: relative !important;
  z-index: 10 !important;
}

/* Stats bar inside: no extra margin */
.bl-home-fullwidth .bl-stats {
  margin-top: 0 !important;
  margin-bottom: 40px !important;
}

/* Uniform section rhythm for remaining sections */
.bl-home-fullwidth > section {
  padding-top: 48px;
  padding-bottom: 48px;
}

/* Hero (1st child): no top padding override needed */
.bl-home-fullwidth > section:first-child {
  padding-top: 0;
  padding-bottom: 0;
}
/* ===== HERO TOP PADDING ===== */
.bl-home-fullwidth .bl-hero {
  padding-top: 64px !important;
}
/* ===== HOMEPAGE SPACIOUSNESS OVERHAUL ===== */

/* Hero - taller, more breathing room */
.bl-home-fullwidth .bl-hero {
  padding-top: 100px !important;
  padding-bottom: 140px !important;
  min-height: 520px !important;
}

.bl-home-fullwidth .bl-hero .bl-hero__title {
  font-size: 3.2rem !important;
  margin-bottom: 28px !important;
}

.bl-home-fullwidth .bl-hero .bl-hero__subtitle {
  font-size: 1.15rem !important;
  margin-bottom: 40px !important;
}

.bl-home-fullwidth .bl-hero .bl-hero__overline {
  margin-bottom: 24px !important;
}

/* Stats - overlap into hero */
.bl-home-fullwidth > section:nth-child(2) {
  margin-top: -70px !important;
  margin-bottom: 32px !important;
}

/* All sections - more vertical breathing room */
.bl-home-fullwidth > section {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}

/* Section headers - more space below */
.bl-home-fullwidth .bl-section-header {
  margin-bottom: 56px !important;
}

.bl-home-fullwidth .bl-section-header h2 {
  font-size: 2rem !important;
  margin-bottom: 12px !important;
}

.bl-home-fullwidth .bl-section-header p {
  font-size: 1.05rem !important;
}

/* Service cards - more padding inside */
.bl-home-fullwidth .bl-service-card {
  padding: 36px 28px !important;
}

.bl-home-fullwidth .bl-service-card h3 {
  font-size: 1.15rem !important;
  margin-bottom: 12px !important;
}

.bl-home-fullwidth .bl-service-card p {
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  color: #666 !important;
}

/* Industry cards - more padding */
.bl-home-fullwidth .bl-industry-card {
  padding: 36px 24px !important;
}

/* CTA banners - taller */
.bl-home-fullwidth .bl-cta-banner {
  padding: 72px 0 !important;
}

.bl-home-fullwidth .bl-cta-banner h2 {
  font-size: 1.75rem !important;
  margin-bottom: 12px !important;
}

/* Gap between service grid and industry section */
.bl-home-fullwidth .bl-services-grid {
  margin-bottom: 0 !important;
}

/* Latest posts section */
.bl-home-fullwidth .bl-posts-grid {
  margin-top: 8px !important;
}
/* ===== ABOUT PAGE FIXES ===== */
body.page-id-6 .entry-header,
body.page-id-6 .entry-title {
  display: none !important;
}
.page-template-default #primary .entry-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
.page-template-default .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.page-template-default .ast-article-single {
  padding: 0 !important;
  max-width: 100% !important;
}
