/*
Theme Name:   Hidden Cost of Success — Child Theme
Theme URI:    https://hiddencostofsucess.com
Description:  Astra Pro child theme for HiddenCostOfSuccess.com
              Complete brand implementation per Brand & Operations Guide v1.
              DO NOT EDIT without reading the Brand & Operations Guide first.
Author:       Sentinel Asset Holdings LLC
Template:     astra
Version:      1.0.0
*/

/* ============================================================
   BRAND VARIABLES — SINGLE SOURCE OF TRUTH
   All colors, fonts, and spacing pull from these variables.
   Change here → changes everywhere.
   ============================================================ */

:root {
  /* Core Palette */
  --hcos-deep-navy:      #0F1923;
  --hcos-authority-blue: #1B3A4B;
  --hcos-steel-blue:     #2E6B8A;
  --hcos-slate:          #4A5568;
  --hcos-amber:          #C17F24;
  --hcos-amber-dark:     #A66D1E;
  --hcos-amber-light:    #FEF3D7;

  /* Backgrounds */
  --hcos-cream:          #F8F6F2;
  --hcos-fog:            #F4F6F8;
  --hcos-section-tint:   #EEF2F5;

  /* Text */
  --hcos-body:           #2D3748;
  --hcos-heading:        #0F1923;
  --hcos-muted:          #4A5568;
  --hcos-caption:        #718096;

  /* Semantic */
  --hcos-warn:           #8B2E2E;
  --hcos-success:        #1E4D2B;
  --hcos-rule:           #CBD5E0;
  --hcos-white:          #FFFFFF;

  /* Typography */
  --font-display:        'Cormorant Garamond', Georgia, serif;
  --font-body:           'DM Sans', system-ui, -apple-system, sans-serif;

  /* Spacing */
  --section-pad-desktop: 80px;
  --section-pad-mobile:  48px;
  --container-width:     1200px;
  --content-width:       760px;

  /* Transitions */
  --transition-base:     all 0.22s ease;
  --transition-slow:     all 0.38s ease;
}


/* ============================================================
   GOOGLE FONTS IMPORT
   Loaded locally via Astra Pro performance settings.
   This @import is a fallback only.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');


/* ============================================================
   GLOBAL RESET + BASE
   ============================================================ */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.72;
  color: var(--hcos-body);
  background-color: var(--hcos-cream);
}

/* ============================================================
   TYPOGRAPHY — HEADINGS
   ============================================================ */

h1, h2, h3, h4, h5, h6,
.ast-archive-title,
.entry-title {
  font-family: var(--font-display);
  color: var(--hcos-heading);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
}

h1, .entry-title.ast-single-post-title {
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.08;
}

h2 {
  font-size: clamp(28px, 3.5vw, 40px);
  margin-bottom: 0.6em;
}

h3 {
  font-family: var(--font-body);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  letter-spacing: 0;
  color: var(--hcos-authority-blue);
}

h4 {
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 600;
  color: var(--hcos-authority-blue);
}

/* Body copy */
p {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.72;
  color: var(--hcos-body);
  margin-bottom: 1.2em;
}

p:last-child {
  margin-bottom: 0;
}

/* Pull quote style — for .hcos-pull class */
.hcos-pull,
blockquote {
  font-family: var(--font-display);
  font-size: clamp(20px, 2.5vw, 26px);
  font-style: italic;
  color: var(--hcos-authority-blue);
  border-left: 3px solid var(--hcos-steel-blue);
  padding-left: 1.5rem;
  margin: 2rem 0;
  line-height: 1.45;
}

/* Section label — small caps above headings */
.hcos-label {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hcos-steel-blue);
  display: block;
  margin-bottom: 0.5rem;
}

/* Caption / meta text */
.hcos-caption,
.entry-meta,
.posted-on,
.byline {
  font-size: 13px;
  color: var(--hcos-caption);
  font-weight: 500;
  letter-spacing: 0.03em;
}


/* ============================================================
   LINKS
   ============================================================ */

a {
  color: var(--hcos-steel-blue);
  text-decoration: none;
  transition: var(--transition-base);
}

a:hover {
  color: var(--hcos-authority-blue);
  text-decoration: underline;
  text-decoration-color: var(--hcos-amber);
  text-underline-offset: 3px;
}


/* ============================================================
   SITE HEADER
   ============================================================ */

.site-header,
#masthead,
.ast-masthead-custom-menu-items,
.main-header-bar {
  background-color: var(--hcos-deep-navy) !important;
  border-bottom: none !important;
}

/* Header height */
.main-header-bar {
  padding-top: 0;
  padding-bottom: 0;
  min-height: 80px;
  display: flex;
  align-items: center;
}

/* Logo sizing */
.ast-logo-img,
.custom-logo {
  max-height: 48px !important;
  width: auto !important;
}

/* Navigation links */
.main-navigation a,
.ast-nav-menu > li > a,
#site-navigation a {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--hcos-white) !important;
  letter-spacing: 0.01em;
  padding: 28px 16px !important;
  transition: var(--transition-base);
}

.main-navigation a:hover,
.ast-nav-menu > li > a:hover,
.ast-nav-menu > li.current-menu-item > a {
  color: var(--hcos-amber) !important;
  text-decoration: none !important;
}

/* Dropdown menus */
.main-navigation .sub-menu,
.ast-nav-menu .sub-menu {
  background-color: var(--hcos-authority-blue) !important;
  border: none !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3) !important;
  border-radius: 4px;
}

.main-navigation .sub-menu a {
  font-size: 14px !important;
  padding: 10px 20px !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

.main-navigation .sub-menu a:hover {
  background-color: var(--hcos-deep-navy) !important;
}

/* Sticky header */
.ast-sticky-header-active .main-header-bar,
.ast-header-sticked .main-header-bar {
  background-color: var(--hcos-deep-navy) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.4) !important;
}

/* Mobile hamburger */
.ast-button-wrap .menu-toggle,
button.menu-toggle {
  color: var(--hcos-white) !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.3) !important;
  border-radius: 3px;
  padding: 8px 12px;
}

.ast-mobile-header-bar {
  background-color: var(--hcos-deep-navy) !important;
}

.ast-mobile-menu-trigger-fill {
  background-color: var(--hcos-white) !important;
}


/* ============================================================
   SITE FOOTER
   ============================================================ */

.site-footer,
#colophon,
.ast-site-footer-wrap,
footer {
  background-color: var(--hcos-deep-navy) !important;
  color: var(--hcos-slate) !important;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.site-footer a,
#colophon a,
footer a {
  color: var(--hcos-steel-blue) !important;
  transition: var(--transition-base);
}

.site-footer a:hover,
footer a:hover {
  color: var(--hcos-amber) !important;
  text-decoration: none !important;
}

.ast-footer-copyright,
.footer-copyright,
.site-info {
  font-size: 13px !important;
  color: var(--hcos-slate) !important;
  padding: 16px 0;
}

/* Footer widget headings */
.footer-widget-area h4,
.footer-widget-area h5,
.footer-widget-area .widget-title {
  font-family: var(--font-display) !important;
  color: var(--hcos-white) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  margin-bottom: 1rem !important;
}

.footer-widget-area p,
.footer-widget-area li,
.footer-widget-area span {
  color: var(--hcos-slate) !important;
  font-size: 14px !important;
}


/* ============================================================
   BUTTONS — PRIMARY (AMBER GOLD)
   ============================================================ */

.ast-button,
.button,
.wp-block-button__link,
.ast-custom-button,
input[type="submit"],
button[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.elementor-button,
.ast-above-post-nav,
.hcos-btn,
.hcos-btn-primary {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  background-color: var(--hcos-amber) !important;
  color: var(--hcos-white) !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 14px 28px !important;
  line-height: 1 !important;
  transition: var(--transition-base) !important;
  cursor: pointer;
  display: inline-block;
  text-decoration: none !important;
}

.ast-button:hover,
.button:hover,
.wp-block-button__link:hover,
.hcos-btn:hover,
.hcos-btn-primary:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background-color: var(--hcos-amber-dark) !important;
  color: var(--hcos-white) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(193, 127, 36, 0.35) !important;
  text-decoration: none !important;
}

/* Secondary / ghost button */
.hcos-btn-secondary,
.wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent !important;
  color: var(--hcos-white) !important;
  border: 1.5px solid rgba(255,255,255,0.6) !important;
  border-radius: 4px !important;
  padding: 13px 28px !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  transition: var(--transition-base) !important;
}

.hcos-btn-secondary:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--hcos-white) !important;
  color: var(--hcos-deep-navy) !important;
  border-color: var(--hcos-white) !important;
}


/* ============================================================
   LAYOUT — CONTAINERS + SECTIONS
   ============================================================ */

.ast-container,
.site-content .ast-container {
  max-width: var(--container-width);
}

/* Full-width section helpers */
.hcos-section {
  width: 100%;
  padding: var(--section-pad-desktop) 0;
}

.hcos-section-dark {
  background-color: var(--hcos-deep-navy);
  color: var(--hcos-white);
}

.hcos-section-dark h1,
.hcos-section-dark h2,
.hcos-section-dark h3 {
  color: var(--hcos-white);
}

.hcos-section-dark p {
  color: rgba(255,255,255,0.78);
}

.hcos-section-cream {
  background-color: var(--hcos-cream);
}

.hcos-section-fog {
  background-color: var(--hcos-fog);
}

.hcos-section-authority {
  background-color: var(--hcos-authority-blue);
  color: var(--hcos-white);
}

/* Inner content wrapper for blog posts */
.ast-single-post-summary,
.entry-content,
.single .entry-content {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}


/* ============================================================
   HERO SECTIONS
   ============================================================ */

.hcos-hero {
  background-color: var(--hcos-deep-navy);
  padding: 120px 0 100px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Subtle noise texture overlay on hero */
.hcos-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
  opacity: 0.4;
}

.hcos-hero h1 {
  color: var(--hcos-white);
  font-size: clamp(40px, 5.5vw, 72px);
  line-height: 1.05;
  max-width: 800px;
  margin: 0 auto 1.2rem;
}

.hcos-hero .hcos-label {
  color: var(--hcos-steel-blue);
  margin-bottom: 1rem;
}

.hcos-hero p.lead {
  font-family: var(--font-display);
  font-size: clamp(18px, 2.2vw, 22px);
  font-style: italic;
  color: rgba(255,255,255,0.65);
  max-width: 580px;
  margin: 0 auto 2.5rem;
  line-height: 1.55;
}

/* Hero accent rule */
.hcos-hero-rule {
  width: 64px;
  height: 2px;
  background-color: var(--hcos-steel-blue);
  margin: 0 auto 2rem;
}


/* ============================================================
   BLOG — POST ARCHIVE
   ============================================================ */

/* Dark header on single post */
.single .ast-hero-background-overlay,
.single .entry-header,
.single .ast-single-post-summary .entry-header {
  background-color: var(--hcos-deep-navy);
  padding: 64px 0 48px;
  margin-bottom: 0;
}

.single .entry-title,
.single .entry-header .entry-title {
  color: var(--hcos-white) !important;
  font-size: clamp(28px, 4vw, 48px);
  max-width: 760px;
  margin: 0 auto;
}

/* Category badge on posts */
.ast-post-format-standard .cat-links a,
.entry-meta .cat-links a,
.ast-breadcrumb-trail a {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--hcos-steel-blue) !important;
  background: none !important;
  padding: 0 !important;
}

/* Featured image */
.single .post-thumbnail,
.single .ast-featured-image {
  width: 100%;
  max-height: 480px;
  overflow: hidden;
  position: relative;
}

.single .post-thumbnail img,
.single .ast-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Blog card grid */
.ast-archive-post-grid .ast-article-inner,
.blog .hentry {
  border: 1px solid var(--hcos-rule);
  border-radius: 4px;
  overflow: hidden;
  transition: var(--transition-base);
  background: var(--hcos-white);
}

.ast-archive-post-grid .ast-article-inner:hover,
.blog .hentry:hover {
  box-shadow: 0 8px 32px rgba(15, 25, 35, 0.12);
  transform: translateY(-2px);
  border-color: var(--hcos-steel-blue);
}

.ast-archive-description .ast-meta-single {
  font-size: 13px;
  color: var(--hcos-caption);
}

/* Post reading time */
.ast-reading-time,
.read-time {
  font-size: 13px;
  color: var(--hcos-caption);
  font-style: italic;
}


/* ============================================================
   INLINE CTA BLOCK — appears mid-post
   Usage: wrap a paragraph in <div class="hcos-inline-cta">
   ============================================================ */

.hcos-inline-cta {
  background-color: var(--hcos-section-tint);
  border-left: 4px solid var(--hcos-steel-blue);
  padding: 1.5rem 1.75rem;
  margin: 2.5rem 0;
  border-radius: 0 4px 4px 0;
}

.hcos-inline-cta p {
  margin-bottom: 1rem;
  font-size: 16px;
}

.hcos-inline-cta p:last-child {
  margin-bottom: 0;
}


/* ============================================================
   END-OF-POST CTA BLOCK
   Usage: add .hcos-post-cta class to a Spectra section
   ============================================================ */

.hcos-post-cta {
  background-color: var(--hcos-deep-navy);
  padding: 56px 40px;
  text-align: center;
  margin: 3rem 0 0;
  border-radius: 4px;
}

.hcos-post-cta h3,
.hcos-post-cta .hcos-cta-title {
  font-family: var(--font-display) !important;
  font-size: clamp(22px, 3vw, 30px) !important;
  color: var(--hcos-white) !important;
  margin-bottom: 0.5rem !important;
}

.hcos-post-cta p {
  color: rgba(255,255,255,0.68);
  font-size: 16px;
  margin-bottom: 1.5rem;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}


/* ============================================================
   PRODUCT CARDS
   ============================================================ */

.hcos-product-card {
  background-color: var(--hcos-white);
  border: 1px solid var(--hcos-rule);
  border-radius: 4px;
  padding: 2rem;
  text-align: center;
  transition: var(--transition-base);
  position: relative;
}

.hcos-product-card:hover {
  border-color: var(--hcos-steel-blue);
  box-shadow: 0 8px 32px rgba(46, 107, 138, 0.15);
  transform: translateY(-2px);
}

.hcos-product-card.featured {
  border-color: var(--hcos-amber);
  border-width: 2px;
}

.hcos-product-card .price {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  color: var(--hcos-amber);
  display: block;
  margin: 0.75rem 0;
  line-height: 1;
}

.hcos-product-card .price.free {
  color: var(--hcos-success);
}

.hcos-product-card h3 {
  color: var(--hcos-deep-navy) !important;
  margin-bottom: 0.5rem;
}

.hcos-product-card p {
  font-size: 15px;
  color: var(--hcos-muted);
  margin-bottom: 1.5rem;
}

/* Featured badge */
.hcos-product-card .badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--hcos-amber);
  color: var(--hcos-white);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 16px;
  border-radius: 20px;
  white-space: nowrap;
}


/* ============================================================
   EMAIL CAPTURE SECTION
   ============================================================ */

.hcos-email-capture {
  background-color: var(--hcos-deep-navy);
  padding: var(--section-pad-desktop) 0;
  text-align: center;
}

.hcos-email-capture h2 {
  color: var(--hcos-white) !important;
  margin-bottom: 0.5rem;
}

.hcos-email-capture p {
  color: rgba(255,255,255,0.65);
  font-style: italic;
  font-family: var(--font-display);
  font-size: 18px;
  margin-bottom: 2rem;
}

/* Form input field */
.hcos-email-form,
.hcos-email-capture .ck-form,
.hcos-email-capture .wp-block-group form {
  display: flex;
  gap: 12px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  max-width: 520px;
  margin: 0 auto;
}

.hcos-email-capture input[type="email"],
.hcos-email-capture input[type="text"] {
  font-family: var(--font-body) !important;
  font-size: 16px !important;
  padding: 13px 18px !important;
  border: 1.5px solid rgba(255,255,255,0.25) !important;
  border-radius: 4px !important;
  background: rgba(255,255,255,0.07) !important;
  color: var(--hcos-white) !important;
  flex: 1 1 240px;
  transition: var(--transition-base) !important;
  outline: none;
}

.hcos-email-capture input[type="email"]::placeholder,
.hcos-email-capture input[type="text"]::placeholder {
  color: rgba(255,255,255,0.35) !important;
}

.hcos-email-capture input[type="email"]:focus,
.hcos-email-capture input[type="text"]:focus {
  border-color: var(--hcos-steel-blue) !important;
  background: rgba(255,255,255,0.1) !important;
  box-shadow: 0 0 0 3px rgba(46, 107, 138, 0.25) !important;
}

/* Privacy note below form */
.hcos-email-capture .privacy-note {
  font-size: 12px;
  color: rgba(255,255,255,0.35);
  margin-top: 0.75rem;
  letter-spacing: 0.02em;
}


/* ============================================================
   CALLOUT / HIGHLIGHT BOXES
   ============================================================ */

/* General callout */
.hcos-callout {
  background-color: var(--hcos-fog);
  border: 1px solid var(--hcos-rule);
  border-left: 4px solid var(--hcos-authority-blue);
  padding: 1.5rem 1.75rem;
  border-radius: 0 4px 4px 0;
  margin: 2rem 0;
}

.hcos-callout-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--hcos-authority-blue);
  margin-bottom: 0.5rem;
  display: block;
}

/* Dark callout / key statement */
.hcos-callout-dark {
  background-color: var(--hcos-deep-navy);
  border: none;
  border-left: 4px solid var(--hcos-steel-blue);
  padding: 1.75rem 2rem;
  border-radius: 4px;
  margin: 2.5rem 0;
}

.hcos-callout-dark p,
.hcos-callout-dark .hcos-callout-label {
  color: rgba(255,255,255,0.85) !important;
}

.hcos-callout-dark .hcos-callout-label {
  color: var(--hcos-steel-blue) !important;
}


/* ============================================================
   PRODUCT PAGE SPECIFIC
   ============================================================ */

/* Product hero */
.hcos-product-hero {
  background-color: var(--hcos-deep-navy);
  padding: 100px 0 80px;
  text-align: center;
}

.hcos-product-hero .price-display {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 56px;
  font-weight: 700;
  color: var(--hcos-amber);
  line-height: 1;
  margin: 1rem 0 1.5rem;
}

.hcos-product-hero .price-display.free {
  color: #4ADE80;
  font-size: 40px;
  letter-spacing: 0.04em;
}

/* What is / what isn't table */
.hcos-comparison-table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
}

.hcos-comparison-table th {
  background-color: var(--hcos-authority-blue);
  color: var(--hcos-white);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 14px 20px;
  text-align: left;
}

.hcos-comparison-table td {
  padding: 12px 20px;
  font-size: 15px;
  border-bottom: 1px solid var(--hcos-rule);
  vertical-align: top;
  line-height: 1.55;
}

.hcos-comparison-table tr:nth-child(even) td {
  background-color: var(--hcos-fog);
}

.hcos-comparison-table .col-not {
  color: var(--hcos-warn);
}

.hcos-comparison-table .col-is {
  color: var(--hcos-success);
}

/* Product screenshots preview */
.hcos-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 2rem 0;
}

.hcos-preview-grid img {
  width: 100%;
  border-radius: 4px;
  border: 1px solid var(--hcos-rule);
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  transition: var(--transition-base);
  transform: rotate(-1deg);
}

.hcos-preview-grid img:nth-child(2) {
  transform: rotate(0.5deg) translateY(-4px);
}

.hcos-preview-grid img:nth-child(3) {
  transform: rotate(1deg);
}

.hcos-preview-grid img:hover {
  transform: rotate(0) scale(1.02) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  z-index: 1;
  position: relative;
}

/* FAQ accordion */
.hcos-faq details {
  border-bottom: 1px solid var(--hcos-rule);
  padding: 0;
}

.hcos-faq summary {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--hcos-deep-navy);
  padding: 1.25rem 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: var(--transition-base);
}

.hcos-faq summary:hover {
  color: var(--hcos-authority-blue);
}

.hcos-faq summary::after {
  content: '+';
  font-size: 20px;
  font-weight: 300;
  color: var(--hcos-steel-blue);
  transition: var(--transition-base);
  flex-shrink: 0;
}

.hcos-faq details[open] summary::after {
  content: '−';
}

.hcos-faq .faq-answer {
  padding: 0 0 1.25rem;
  color: var(--hcos-muted);
  font-size: 15px;
  line-height: 1.7;
}


/* ============================================================
   HORIZONTAL RULE / DIVIDERS
   ============================================================ */

hr,
.wp-block-separator {
  border: none;
  border-top: 1px solid var(--hcos-rule);
  margin: 2.5rem 0;
}

hr.hcos-accent {
  border-top: 3px solid var(--hcos-steel-blue);
  width: 64px;
  margin: 1.5rem auto;
}

hr.hcos-rule-amber {
  border-top: 2px solid var(--hcos-amber);
  width: 40px;
}


/* ============================================================
   FORMS (CONTACT, WPFORMS)
   ============================================================ */

.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container textarea,
.comment-form input,
.comment-form textarea {
  font-family: var(--font-body) !important;
  font-size: 16px !important;
  border: 1.5px solid var(--hcos-rule) !important;
  border-radius: 4px !important;
  padding: 12px 16px !important;
  background: var(--hcos-white) !important;
  color: var(--hcos-body) !important;
  transition: var(--transition-base) !important;
  width: 100%;
}

.wpforms-container input:focus,
.wpforms-container textarea:focus,
.comment-form input:focus,
.comment-form textarea:focus {
  border-color: var(--hcos-steel-blue) !important;
  box-shadow: 0 0 0 3px rgba(46, 107, 138, 0.15) !important;
  outline: none !important;
}


/* ============================================================
   UTILITY CLASSES
   ============================================================ */

.text-center  { text-align: center; }
.text-left    { text-align: left; }
.hcos-white   { color: var(--hcos-white) !important; }
.hcos-amber   { color: var(--hcos-amber) !important; }
.hcos-steel   { color: var(--hcos-steel-blue) !important; }
.hcos-muted   { color: var(--hcos-muted) !important; }

.hcos-mt-0 { margin-top: 0 !important; }
.hcos-mb-0 { margin-bottom: 0 !important; }

/* Visually hidden (accessibility) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}


/* ============================================================
   ANIMATIONS — subtle, purposeful
   ============================================================ */

@keyframes hcos-fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes hcos-ruleGrow {
  from { width: 0; }
  to   { width: 64px; }
}

.hcos-animate-up {
  animation: hcos-fadeUp 0.55s ease both;
}

.hcos-animate-up-delay-1 { animation-delay: 0.1s; }
.hcos-animate-up-delay-2 { animation-delay: 0.2s; }
.hcos-animate-up-delay-3 { animation-delay: 0.3s; }


/* ============================================================
   RESPONSIVE — MOBILE OVERRIDES
   ============================================================ */

@media (max-width: 768px) {
  :root {
    --section-pad-desktop: var(--section-pad-mobile);
  }

  body {
    font-size: 16px;
  }

  .main-header-bar {
    min-height: 64px;
  }

  .hcos-hero {
    padding: 80px 0 64px;
    text-align: left;
    padding-left: 20px;
    padding-right: 20px;
  }

  .hcos-hero h1 {
    font-size: clamp(32px, 8vw, 48px);
  }

  .hcos-hero p.lead {
    font-size: 17px;
    text-align: left;
  }

  .hcos-preview-grid {
    grid-template-columns: 1fr;
  }

  .hcos-preview-grid img {
    transform: none !important;
  }

  .hcos-email-form {
    flex-direction: column;
  }

  .hcos-email-capture input[type="email"] {
    width: 100%;
  }

  .ast-logo-img,
  .custom-logo {
    max-height: 36px !important;
  }

  .hcos-product-hero .price-display {
    font-size: 44px;
  }

  blockquote,
  .hcos-pull {
    font-size: 18px;
    padding-left: 1rem;
  }
}

@media (max-width: 480px) {
  h1 {
    font-size: clamp(28px, 9vw, 40px);
  }

  .hcos-post-cta {
    padding: 40px 20px;
  }

  .hcos-product-card {
    padding: 1.5rem;
  }
}


/* ============================================================
   PRINT STYLES
   ============================================================ */

@media print {
  .site-header,
  .site-footer,
  .hcos-email-capture,
  .hcos-post-cta,
  nav {
    display: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }

  a {
    color: #000;
    text-decoration: underline;
  }
}


/* ============================================================
   ASTRA PRO OVERRIDES — theme-specific fixes
   These correct Astra defaults that conflict with brand styles.
   ============================================================ */

/* Remove Astra's default blue outline */
.ast-outline-button:focus,
a:focus {
  outline: 2px solid var(--hcos-steel-blue) !important;
  outline-offset: 2px;
}

/* Remove Astra's default breadcrumb arrow color */
.ast-breadcrumbs-enabled .ast-breadcrumbs span::before {
  color: var(--hcos-steel-blue) !important;
}

/* Fix Astra's default table styles */
.ast-separate-container table th {
  background-color: var(--hcos-authority-blue) !important;
  color: var(--hcos-white) !important;
}

/* Remove Astra blog grid default shadows */
.ast-grid-layout .ast-article-post {
  box-shadow: none !important;
}

/* Fix Astra's default widget title underline */
.widget-title {
  border-bottom: 2px solid var(--hcos-steel-blue) !important;
  padding-bottom: 0.5rem !important;
}

/* Remove Astra page header default background */
.ast-above-header,
.ast-below-header {
  background-color: transparent !important;
}

/* Sidebar (disabled, but in case it's activated later) */
#secondary,
.widget-area {
  border-left: 1px solid var(--hcos-rule);
  padding-left: 2rem;
}

/* Comments section */
.comment-body {
  border-bottom: 1px solid var(--hcos-rule);
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
}

.comment-author .fn {
  font-weight: 600;
  color: var(--hcos-deep-navy);
}

/* Page title on archive pages */
.ast-archive-title {
  color: var(--hcos-white) !important;
}

/* 404 page */
.ast-404-layout-1 h1 {
  color: var(--hcos-deep-navy) !important;
}
