/* ═══════════════════════════════════════════════════════
   CURATED PT — GLOBAL DESIGN SYSTEM v2.4
   Blue Edition · Matches GHL Landing Page Aesthetic
   Applied via WordPress Customizer Additional CSS
   ═══════════════════════════════════════════════════════ */

/* ── 1. FONT IMPORT ── */
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,75..125,100..900;1,75..125,100..900&family=Inter:wght@400;500;600;700&display=swap');

/* ── 2. CSS VARIABLES ── */
:root {
  --cpt-blue:       #1565FF;
  --cpt-blue-2:     #3B82FF;
  --cpt-blue-glow:  rgba(59,130,255,0.45);
  --cpt-blue-rgb:   56 130 255;
  --cpt-ink:        #05070A;
  --cpt-navy:       #0B1220;
  --cpt-navy-2:     #07101f;
  --cpt-white:      #F5F7FA;
  --cpt-muted:      #8A93A6;
  --cpt-line:       rgba(245,247,250,0.08);
  --cpt-line-2:     rgba(245,247,250,0.14);
}

/* ── 3. GLOBAL RENDERING ── */
html, body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background-color: var(--cpt-navy);
  color: var(--cpt-white);
  overflow-x: hidden;
}
::selection { background: var(--cpt-blue); color: var(--cpt-white); }

/* ── 4. TYPOGRAPHY — Display headings (Archivo Black) ── */
h1, h2, h3, h4,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-heading .elementor-heading-title *,
.entry-title,
.ast-page-title,
.page-title {
  font-family: 'Archivo', 'Inter', system-ui, sans-serif !important;
  font-weight: 900 !important;
  color: var(--cpt-white) !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: var(--cpt-white) !important;
}
h1, .elementor-heading-title.elementor-size-xxl { letter-spacing: -0.03em !important; line-height: 0.95 !important; }
h2, .elementor-heading-title.elementor-size-xl  { letter-spacing: -0.025em !important; line-height: 0.97 !important; }
h3, .elementor-heading-title.elementor-size-large { letter-spacing: -0.02em !important; }

/* ── 4b. LIGHT-BACKGROUND HEADING OVERRIDES ── */
/* curatedSection (no .alt) = transparent/light bg → navy headings */
/* curatedSection.alt = dark blue bg → keeps white from Sec 4 */
/* curatedHero, curatedStep are dark → keep white from Sec 4 */
.curatedSection:not(.alt) h1, .curatedSection:not(.alt) h2,
.curatedSection:not(.alt) h3, .curatedSection:not(.alt) h4,
.curatedFeatSec h1, .curatedFeatSec h2, .curatedFeatSec h3, .curatedFeatSec h4,
.curated-loc-card h1, .curated-loc-card h2, .curated-loc-card h3, .curated-loc-card h4,
.cpt-about-bio h1, .cpt-about-bio h2, .cpt-about-bio h3, .cpt-about-bio h4,
.cpt-about-credentials h1, .cpt-about-credentials h2, .cpt-about-credentials h3, .cpt-about-credentials h4,
.cpt-svc-main h1, .cpt-svc-main h2, .cpt-svc-main h3, .cpt-svc-main h4,
.cpt-svc-conditions h1, .cpt-svc-conditions h2, .cpt-svc-conditions h3, .cpt-svc-conditions h4,
.cpt-cond-card h1, .cpt-cond-card h2, .cpt-cond-card h3, .cpt-cond-card h4,
.cpt-cond-symptoms h1, .cpt-cond-symptoms h2, .cpt-cond-symptoms h3, .cpt-cond-symptoms h4,
.cpt-cond-why h1, .cpt-cond-why h2, .cpt-cond-why h3, .cpt-cond-why h4,
.cpt-cond-why-card h1, .cpt-cond-why-card h2, .cpt-cond-why-card h3, .cpt-cond-why-card h4,
.cpt-guide-section h1, .cpt-guide-section h2, .cpt-guide-section h3, .cpt-guide-section h4,
.cpt-well-intro h1, .cpt-well-intro h2, .cpt-well-intro h3, .cpt-well-intro h4,
.cpt-well-services h1, .cpt-well-services h2, .cpt-well-services h3, .cpt-well-services h4,
.cpt-well-card h1, .cpt-well-card h2, .cpt-well-card h3, .cpt-well-card h4,
.cpt-well-pillar h1, .cpt-well-pillar h2, .cpt-well-pillar h3, .cpt-well-pillar h4,
.cpt-well-who h1, .cpt-well-who h2, .cpt-well-who h3, .cpt-well-who h4,
.cpt-well-who-card h1, .cpt-well-who-card h2, .cpt-well-who-card h3, .cpt-well-who-card h4,
.cpt-well-faq h1, .cpt-well-faq h2, .cpt-well-faq h3, .cpt-well-faq h4,
.cpt-glp-sec-cream h1, .cpt-glp-sec-cream h2, .cpt-glp-sec-cream h3, .cpt-glp-sec-cream h4,
.cpt-glp-sec-white h1, .cpt-glp-sec-white h2, .cpt-glp-sec-white h3, .cpt-glp-sec-white h4,
.cpt-glp-phase h2, .cpt-glp-phase h3, .cpt-glp-phase h4,
.cpt-glp-faq h2, .cpt-glp-faq h3, .cpt-glp-faq h4,
.cpt-pep-sec-cream h1, .cpt-pep-sec-cream h2, .cpt-pep-sec-cream h3, .cpt-pep-sec-cream h4,
.cpt-pep-sec-white h1, .cpt-pep-sec-white h2, .cpt-pep-sec-white h3, .cpt-pep-sec-white h4,
.cpt-pep-card h2, .cpt-pep-card h3, .cpt-pep-card h4,
.cpt-nad-sec-cream h1, .cpt-nad-sec-cream h2, .cpt-nad-sec-cream h3, .cpt-nad-sec-cream h4,
.cpt-nad-sec-white h1, .cpt-nad-sec-white h2, .cpt-nad-sec-white h3, .cpt-nad-sec-white h4,
.cpt-nad-benefit h2, .cpt-nad-benefit h3, .cpt-nad-benefit h4,
.cpt-nad-type h2, .cpt-nad-type h3, .cpt-nad-type h4,
.cpt-nad-stat h2, .cpt-nad-stat h3, .cpt-nad-stat h4,
.cpt-trt-sec-cream h1, .cpt-trt-sec-cream h2, .cpt-trt-sec-cream h3, .cpt-trt-sec-cream h4,
.cpt-trt-sec-white h1, .cpt-trt-sec-white h2, .cpt-trt-sec-white h3, .cpt-trt-sec-white h4,
.cpt-trt-panel h2, .cpt-trt-panel h3, .cpt-trt-panel h4,
.cpt-lon-sec-cream h1, .cpt-lon-sec-cream h2, .cpt-lon-sec-cream h3, .cpt-lon-sec-cream h4,
.cpt-lon-sec-white h1, .cpt-lon-sec-white h2, .cpt-lon-sec-white h3, .cpt-lon-sec-white h4,
.cpt-lon-pillar h2, .cpt-lon-pillar h3, .cpt-lon-pillar h4,
.cpt-lon-service-card h2, .cpt-lon-service-card h3, .cpt-lon-service-card h4 {
  color: var(--cpt-navy) !important;
  -webkit-text-fill-color: var(--cpt-navy) !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
}
.curatedFeatCard h1, .curatedFeatCard h2, .curatedFeatCard h3, .curatedFeatCard h4,
.curatedFeatCard .elementor-heading-title {
  color: var(--cpt-white) !important;
  -webkit-text-fill-color: var(--cpt-white) !important;
}

/* Body text */
body,
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-feature-settings: 'ss01','cv11';
}

/* ── 5. BUTTONS ── */
.elementor-button,
.elementor-button-wrapper a.elementor-button,
.elementor-button-link {
  background: var(--cpt-blue) !important;
  background-image: none !important;
  color: var(--cpt-white) !important;
  border-color: var(--cpt-blue) !important;
  font-family: 'Archivo', sans-serif !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: 4px !important;
  box-shadow: 0 8px 32px rgba(var(--cpt-blue-rgb), 0.38),
              inset 0 1px 0 rgba(255,255,255,0.12) !important;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
}
.elementor-button:hover,
.elementor-button-wrapper a.elementor-button:hover,
.elementor-button-link:hover {
  background: var(--cpt-blue-2) !important;
  background-image: none !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 44px rgba(var(--cpt-blue-rgb), 0.55) !important;
}
a[href*="booking"], a[href*="book"], a[href*="discovery-call"], a[href*="agiletelehealth"] {
  background: var(--cpt-blue) !important;
  background-image: none !important;
  color: var(--cpt-white) !important;
  box-shadow: 0 8px 32px rgba(var(--cpt-blue-rgb), 0.38) !important;
}
a[href*="booking"]:hover, a[href*="book"]:hover, a[href*="discovery-call"]:hover, a[href*="agiletelehealth"]:hover {
  background: var(--cpt-blue-2) !important;
  box-shadow: 0 14px 44px rgba(var(--cpt-blue-rgb), 0.55) !important;
  transform: translateY(-2px) !important;
}

/* ── 6. NAV CTA ── */
.cpt-nav-cta > a, .cpt-nav-cta > a:visited {
  background: var(--cpt-blue) !important;
  background-image: none !important;
  color: var(--cpt-white) !important;
  border-radius: 999px !important;
  padding: 9px 18px !important;
  font-family: 'Archivo', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-shadow: 0 4px 18px rgba(var(--cpt-blue-rgb), 0.45) !important;
  transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease !important;
  text-decoration: none !important;
}
.cpt-nav-cta > a:hover { background: var(--cpt-blue-2) !important; transform: translateY(-1px) !important; box-shadow: 0 8px 28px rgba(var(--cpt-blue-rgb), 0.6) !important; }

/* ── 7. LOGO ── */
.cpt-nav-logo-wrap { display: inline-block; width: 110px; height: 58px; background-image: url('https://curatedpt.com/wp-content/uploads/2026/05/curated-pt-logo-white.svg'); background-repeat: no-repeat; background-size: contain; background-position: left center; }
.cpt-nav-logo-top, .cpt-nav-logo-sub { display: none !important; }

/* ── 8. STICKY MOBILE CTA BAR ── */
.cpt-sticky-bar { position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important; z-index: 9999 !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 12px 20px !important; background: rgba(5,7,10,0.92) !important; backdrop-filter: blur(12px) saturate(140%) !important; -webkit-backdrop-filter: blur(12px) saturate(140%) !important; border-top: 1px solid var(--cpt-line-2) !important; }
.cpt-sticky-bar a, .cpt-sticky-bar .cpt-sticky-cta { display: inline-flex !important; align-items: center !important; gap: 8px !important; background: var(--cpt-blue) !important; background-image: none !important; color: var(--cpt-white) !important; font-family: 'Archivo', sans-serif !important; font-weight: 800 !important; font-size: 13px !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; text-decoration: none !important; padding: 14px 28px !important; border-radius: 4px !important; box-shadow: 0 6px 24px rgba(var(--cpt-blue-rgb), 0.45) !important; transition: background 0.2s ease, transform 0.15s ease !important; }
.cpt-sticky-bar a:hover { background: var(--cpt-blue-2) !important; transform: translateY(-1px) !important; }

/* ── 9. BACKGROUNDS ── */
body { background-color: var(--cpt-navy) !important; }
.elementor-section, .e-con { position: relative; }

/* ── 10. CARD HOVER ── */
.elementor-image-box-wrapper { border: 1px solid var(--cpt-line) !important; border-radius: 6px !important; padding: 24px !important; transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important; background: linear-gradient(180deg, #0a1020 0%, #07101f 100%) !important; }
.elementor-image-box-wrapper:hover { transform: translateY(-3px) !important; border-color: rgba(59,130,255,0.35) !important; box-shadow: 0 12px 40px rgba(0,0,0,0.3) !important; }

/* ── 11. DIVIDERS ── */
.elementor-divider-separator { border-color: var(--cpt-line-2) !important; }

/* ── 12. FOOTER ── */
.site-footer, .ast-builder-grid-row-container.ast-builder-grid-row-has-sides, footer.ast-site-footer-wrap, .ast-footer-html, [data-section="section-below-footer-builder"], [data-section="section-footer-builder"] { background-color: #02040a !important; color: var(--cpt-muted) !important; }
.site-footer a, .ast-footer-html a, .ast-builder-grid-row-container a { color: rgba(245,247,250,0.75) !important; transition: color 0.15s ease !important; }
.site-footer a:hover, .ast-footer-html a:hover, .ast-builder-grid-row-container a:hover { color: var(--cpt-blue-2) !important; }
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer .elementor-heading-title, .ast-builder-grid-row-container h1, .ast-builder-grid-row-container h2, .ast-builder-grid-row-container h3, .ast-builder-grid-row-container h4, .ast-builder-grid-row-container .elementor-heading-title, footer.ast-site-footer-wrap h1, footer.ast-site-footer-wrap h2, footer.ast-site-footer-wrap h3, footer.ast-site-footer-wrap h4, footer.ast-site-footer-wrap .elementor-heading-title, [data-section="section-footer-builder"] .elementor-heading-title, [data-section="section-below-footer-builder"] .elementor-heading-title { color: var(--cpt-white) !important; background: none !important; -webkit-background-clip: unset !important; background-clip: unset !important; -webkit-text-fill-color: var(--cpt-white) !important; }

/* ── 13. NAV ── */
.ast-header-break-point .ast-mobile-header-wrap, .main-header-bar, #masthead { background: rgba(5,7,10,0.88) !important; backdrop-filter: blur(14px) saturate(140%) !important; -webkit-backdrop-filter: blur(14px) saturate(140%) !important; border-bottom: 1px solid var(--cpt-line) !important; }
.main-header-bar .ast-builder-menu a, #site-navigation a, .ast-header-break-point .main-navigation a { font-family: 'Archivo', sans-serif !important; font-weight: 700 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; font-size: 12px !important; transition: color 0.15s ease !important; }
.main-header-bar .ast-builder-menu a:hover, #site-navigation a:hover { color: var(--cpt-blue-2) !important; }
.ast-builder-menu .current-menu-item > a, .ast-builder-menu .current-menu-ancestor > a { color: var(--cpt-blue-2) !important; }

/* ── 14. MOBILE NAV ── */
.ast-mobile-popup-inner, .ast-mobile-menu-trigger, .ast-header-break-point #ast-mobile-popup { background: rgba(5,7,10,0.97) !important; }
.ast-mobile-menu-trigger-icon span, .ast-mobile-menu-trigger-icon span::before, .ast-mobile-menu-trigger-icon span::after { background-color: var(--cpt-white) !important; }

/* ── 15. FOCUS ── */
input:focus, textarea:focus, select:focus { outline: 2px solid var(--cpt-blue) !important; outline-offset: 2px !important; box-shadow: 0 0 0 4px rgba(var(--cpt-blue-rgb), 0.15) !important; }

/* ── 16. PAGE TITLE ── */
.ast-page-header-wrap, .ast-page-title-wrap, .ast-breadcrumbs-wrapper, .ast-archive-title, .ast-blog-single-element.ast-page-title, .ast-above-header, .entry-header .entry-title, .page .entry-title, .single .entry-title, .archive .page-header .page-title, .search .page-header .page-title, .error404 .page-header .page-title { color: var(--cpt-white) !important; -webkit-text-fill-color: var(--cpt-white) !important; }
.ast-breadcrumbs-wrapper, .ast-breadcrumbs-wrapper a, .ast-breadcrumbs span { color: rgba(245,247,250,0.65) !important; }

/* ── 17. INLINE COLOR OVERRIDE ── */
[style*="color:#0B1220"], [style*="color: #0B1220"], [style*="color:#05070A"], [style*="color: #05070A"], [style*="color:#07101f"], [style*="color: #07101f"], [style*="color:#0b1220"], [style*="color:#000000"], [style*="color: #000000"], [style*="color: rgb(0, 0, 0)"], [style*="color:rgb(0,0,0)"] { color: var(--cpt-white) !important; -webkit-text-fill-color: var(--cpt-white) !important; }

/* ── 18. CTA STRIPS ── */
.cpt-cta-strip, [class*="cpt-cta"] { border-left: 3px solid var(--cpt-blue) !important; background: linear-gradient(90deg, rgba(21,101,255,0.06) 0%, transparent 60%) !important; }

/* ── 19. REVIEW CARDS ── */
.cpt-review-card { background: rgba(10,16,32,0.7) !important; border: 1px solid var(--cpt-line-2) !important; border-radius: 8px !important; backdrop-filter: blur(8px) !important; }

/* ── 20. BADGES ── */
.elementor-widget .cpt-badge, [class*="cpt-badge"] { background: rgba(59,130,255,0.15) !important; color: var(--cpt-blue-2) !important; border: 1px solid rgba(59,130,255,0.3) !important; border-radius: 999px !important; font-family: 'Archivo', sans-serif !important; font-weight: 700 !important; font-size: 11px !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; padding: 4px 10px !important; }

/* ── 21. GRID BG ── */
.cpt-grid-bg::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(245,247,250,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(245,247,250,0.05) 1px, transparent 1px); background-size: 80px 80px; pointer-events: none; z-index: 0; mask-image: radial-gradient(120% 80% at 50% 20%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(120% 80% at 50% 20%, #000 20%, transparent 75%); }

/* ── 22. ASTRA OVERRIDES ── */
a { transition: color 0.15s ease; }
.ast-separate-container .ast-article-single, .ast-plain-container .ast-article-single { background: transparent !important; }
.ast-button-wrap .menu-item-has-children a.ast-menu-toggle, .ast-builder-button-wrap a { background: var(--cpt-blue) !important; color: var(--cpt-white) !important; border-color: var(--cpt-blue) !important; }
.ast-builder-button-wrap a:hover { background: var(--cpt-blue-2) !important; }

/* ── 23. TEXT WIDGET ── */
.elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-widget-text-editor li, .elementor-widget-text-editor span { color: var(--cpt-white); }
[style*="color:#F5F7FA"], [style*="color:#ffffff"], [style*="color:#FFFFFF"], [style*="color: #F5F7FA"], [style*="color: #ffffff"], [style*="color: #FFFFFF"], [style*="color:white"], [style*="color: white"], [style*="color:#f5f7fa"] { color: var(--cpt-white) !important; -webkit-text-fill-color: var(--cpt-white) !important; }

/* ── 24. RESPONSIVE ── */
@media (max-width: 768px) {
  .cpt-sticky-bar { padding: 10px 16px !important; }
  .cpt-sticky-bar a, .cpt-sticky-bar .cpt-sticky-cta { width: 100% !important; justify-content: center !important; padding: 14px 20px !important; }
  .elementor-button, .elementor-button-wrapper a.elementor-button { font-size: 12px !important; padding: 14px 20px !important; }
  .main-header-bar { padding: 10px 16px !important; }
}

/* Hide Astra page title on Elementor-built pages */
body.elementor-page .entry-title,
body.elementor-page .ast-page-title-container {
  display: none !important;
}
/* Credential bar mobile fix */
@media (max-width: 767px) {
  .curatedTrustGrid {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 0 16px !important;
    justify-content: flex-start !important;
  }
  .curatedTrustItem {
    width: 100% !important;
    justify-content: flex-start !important;
    align-items: center !important;
    text-align: left !important;
    flex-shrink: 0 !important;
  }
}
/* Wellness services grid mobile fix */
@media (max-width: 767px) {
  .cpt-well-services-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .cpt-well-card {
    padding: 28px 24px !important;
  }
}


/* BLOG PAGE FIX (added 2026-05-30) */

/* Background: override dark body bg for blog/archive pages */
body.blog,
body.archive {
  background-color: #F8FAFC !important;
}

/* Fix: excerpt text (.ast-excerpt-container) is near-white -- invisible on white cards */
.blog .ast-excerpt-container,
.blog .ast-excerpt-container p,
.archive .ast-excerpt-container,
.archive .ast-excerpt-container p {
  color: #0F172A !important;
}

/* Fix: post titles on blog listing */
.blog .entry-title,
.blog .entry-title a,
.archive .entry-title,
.archive .entry-title a {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}

/* Fix: meta info (author, date links) */
.blog .entry-meta,
.blog .entry-meta a,
.blog .entry-meta span,
.archive .entry-meta,
.archive .entry-meta a {
  color: #364151 !important;
}

/* Fix: Read More link - keep brand blue */
.blog .more-link,
.archive .more-link {
  color: #0067FF !important;
}