/* ==========================================================================
   home.css — Homepage styles
   Merged 2026-06-23 from home-hero.css + home-aiops.css (consolidation pass).
   Conditionally enqueued via inc/assets.php on is_front_page().

   Section map:
     §1  home-hero.css — Hero v2 layout, discovery card, header/nav fixes,
         sticky-anchor offset, AIOS panel base styles, home divider.
     §2  home-aiops.css — Problem section, AIOS proof, offer cards,
         homepage social proof, case study grid, verticals, upgraded overrides.

   Note: §1 and §2 both define .hero-system-visual and .aios-panel.
   §2 rules intentionally override §1 for those selectors — this mirrors
   the prior two-file load order (home-hero before home-aiops).
   ========================================================================== */


/* ==========================================================================
   §1 — HOME HERO (was home-hero.css)
   ========================================================================== */

/* ==========================================================================
   Hero v2 — design review fixes (2026-04-29)
   Stacked hero, portrait, dominant CTA, eyebrow brand-name protection.
   ========================================================================== */

/* Hero v2 layout: copy left, portrait right (asymmetric), stack on mobile */
body.home .hero.hero--stacked {
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
  padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(3rem, 6vw, 5.5rem);
}

@media (max-width: 760px) {
  body.home .hero.hero--stacked {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    padding: 2rem 0 2.5rem;
  }
}

body.home .hero.hero--stacked .hero-copy {
  max-width: 36rem;
  gap: 1.4rem;
}

/* #175: Strengthen H1 so it wins eye-track over gold CTA at desktop.
   Increases minimum size (2.4→2.8rem) and weight (700→800) to give the
   headline more visual mass than the warm-fill button at first paint.
   The shimmer animation from body.home .hero-copy h1 still applies;
   this rule only overrides font-size and font-weight for this context. */
body.home .hero.hero--stacked .hero-copy h1 {
  max-width: 16ch;
  font-size: clamp(3rem, 1.8rem + 5.5vw, 6rem);
  /* Instrument Serif is 400-only — heavy weights produce faux-bold artifacts.
     Letter-spacing: var(--tracking-display) = -0.04em, tuned for serif optical
     characteristics at display scale. */
  font-weight: 400;
  letter-spacing: var(--tracking-display);
  line-height: 1.02;
  /* Descender clearance: 1.02 line-height clips g/p/y at display scale.
     padding-bottom preserves line rhythm but gives the last line room. */
  padding-bottom: 0.08em;
}

body.home .hero.hero--stacked .hero-lede {
  font-size: clamp(1.05rem, 0.9rem + 0.5vw, 1.2rem);
  color: var(--color-text-medium, var(--color-muted));
  max-width: 56ch;
  line-height: 1.55;
  margin: 0;
}

/* Hero actions: dominant gold primary, plain text secondary */
body.home .hero.hero--stacked .hero-actions {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  flex-wrap: wrap;
  margin-top: 0.4rem;
}
body.home .hero.hero--stacked .hero-secondary-link {
  color: var(--color-muted);
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  /* Block padding for a 44px tap target without disturbing the hero-actions
     layout — negative margin reclaims the layout space. */
  display: inline-flex;
  align-items: center;
  padding-block: 0.75rem;
  margin-block: -0.75rem;
  transition: color 0.15s ease, border-color 0.15s ease;
}

body.home .hero.hero--stacked .hero-secondary-link:hover,
body.home .hero.hero--stacked .hero-secondary-link:focus-visible {
  color: var(--color-text);
  border-bottom-color: var(--color-border-strong);
}

/* Portrait: square corners (matches no-radius theme), subtle frame, caption below */
body.home .hero-portrait {
  margin: 0;
  display: grid;
  gap: 1rem;
  justify-self: end;
  max-width: 320px;
}

body.home .hero-portrait img {
  width: 100%;
  height: auto;
  display: block;
  background: var(--color-accent-soft);
  border: 1px solid var(--color-border);
}

body.home .hero-portrait__caption {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--color-text-medium, var(--color-muted));
  display: grid;
  gap: 0.2rem;
}

body.home .hero-portrait__caption strong {
  color: var(--color-text);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: -0.01em;
}

@media (max-width: 760px) {
  body.home .hero-portrait {
    justify-self: start;
    max-width: 220px;
  }
  body.home .hero-portrait__caption {
    font-size: 0.82rem;
  }
}

/* #176: 375px collision — H1 wraps too many lines; portrait competes for
   weight in the same scroll region.
   Fix: tighter H1 clamp (≤3 lines at 375px) + portrait shrinks to thumbnail
   so it reads as supporting identity element, not co-equal to headline.
   CTA must be visible without scrolling on a 667px min-height viewport. */
@media (max-width: 480px) {
  body.home .hero.hero--stacked .hero-copy h1 {
    font-size: clamp(2rem, 8.5vw, 2.5rem);
    max-width: none;
    letter-spacing: var(--tracking-display);
  }

  body.home .hero-portrait {
    max-width: 128px;
  }

  body.home .hero-portrait__caption {
    font-size: 0.78rem;
  }
}

/* ==========================================================================
   DISCOVERY CARD — full-bleed dark navy closing argument
   Breaks out of site-shell to command its own row. The closing statement
   on the homepage deserves full-width authority, not a card-within-a-section.
   ========================================================================== */
.home-discovery-card {
  /* Full-bleed override: breaks the site-shell container */
  margin-inline: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: var(--color-accent-strong);
  padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 5vw, 4rem);
  margin-top: 36px;
}

.home-discovery-card__inner {
  max-width: 52rem;
  margin-inline: auto;
  background: transparent;
  border: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.home-discovery-card__inner h2 {
  margin: 0;
  font-family: 'Instrument Serif', serif;
  font-size: clamp(2.5rem, 2rem + 3vw, 4rem);
  font-weight: 400;
  letter-spacing: var(--tracking-display);
  line-height: 1.02;
  color: #ffffff;
}

.home-discovery-card__inner > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.65;
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.1rem);
  max-width: 44ch;
}

.home-discovery-card__inner ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.home-discovery-card__inner ul li {
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.55;
  padding-left: 1.1rem;
  position: relative;
}

.home-discovery-card__inner ul li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--color-gold);
  font-size: 0.85em;
}

.home-discovery-card__actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

/* Gold CTA button on dark navy — strong primary action signal */
.home-discovery-card .button {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: var(--color-accent-strong);
  padding: 1rem 2.25rem;
  font-size: 1rem;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(226, 176, 74, 0.30);
}

.home-discovery-card .button:hover,
.home-discovery-card .button:focus-visible {
  background: var(--color-gold-hover);
  border-color: var(--color-gold-hover);
  color: var(--color-accent-strong);
  box-shadow: 0 8px 28px rgba(226, 176, 74, 0.45);
  transform: translateY(-2px);
}

.home-discovery-card__email {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.92rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-bottom: 2px;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.home-discovery-card__email:hover,
.home-discovery-card__email:focus-visible {
  color: rgba(255, 255, 255, 0.9);
  border-bottom-color: rgba(255, 255, 255, 0.55);
}


/* P0 mobile nav fix: at narrow viewports the brand-wrap was taking 100% width
   and pushing the menu-toggle + header-actions off screen. Allow the brand to
   shrink, truncate the tagline, and keep the hamburger reachable. */
@media (max-width: 540px) {
  .site-header .header-shell {
    flex-wrap: nowrap;
    gap: 0.5rem;
  }
  .site-header .brand-wrap {
    flex: 1 1 auto;
    min-width: 0;
  }
  .site-header .site-brand-text {
    min-width: 0;
    overflow: hidden;
  }
  .site-header .site-brand-tagline {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .site-header .menu-toggle {
    display: inline-flex;
    flex: 0 0 auto;
  }
  /* Phone label is already hidden ≤480px; on the tightest widths keep only
     the hamburger and the search/phone icons to guarantee nav is reachable. */
  .site-header .header-cta {
    display: none;
  }
}

/* ==========================================================================
   AIOS ROUTING DIAGRAM — hero right column (base styles)
   Full overrides in §2. See note at top of file.
   ========================================================================== */

.hero-system-visual {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
}

.aios-panel {
  width: 100%;
  max-width: 340px;
  border: 1px solid var(--color-border-strong);
  background: var(--color-bg);
  /* Intentionally no border-radius — matches zero-radius system doctrine */
}

/* ── Panel header ────────────────────────────────────────────────────────── */

.aios-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 0.9rem;
  background: var(--color-accent);
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.aios-panel__sep {
  opacity: 0.45;
  margin: 0 0.25em;
}

.aios-panel__status {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.68rem;
  opacity: 0.85;
}

.aios-panel__dot {
  width: 6px;
  height: 6px;
  background: var(--color-status-ok);
  border-radius: 50%;
  display: inline-block;
}

@media (prefers-reduced-motion: no-preference) {
  .aios-panel__dot {
    animation: aios-dot-pulse 2.5s ease-in-out infinite;
  }
  @keyframes aios-dot-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.45; }
  }
}

/* ── Routing flow ────────────────────────────────────────────────────────── */

.aios-panel__flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem 0.9rem 0.75rem;
  gap: 0;
  border-bottom: 1px solid var(--color-border);
}

.aios-flow__node {
  border: 1px solid var(--color-border-strong);
  padding: 0.45rem 0.9rem;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  background: var(--color-surface-alt);
  min-width: 140px;
  text-align: center;
}

.aios-flow__node-label {
  font-family: "Manrope", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text);
  letter-spacing: 0.01em;
}

.aios-flow__node--router {
  background: var(--color-accent-soft);
  border-color: var(--color-accent);
  min-width: 160px;
}

.aios-flow__node-title {
  font-family: "Manrope", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--color-accent);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.aios-flow__node-criteria {
  font-family: "Manrope", sans-serif;
  font-size: 0.67rem;
  color: var(--color-muted);
}

.aios-flow__connector {
  color: var(--color-border-strong);
  line-height: 1;
  padding: 0.3rem 0;
  font-size: 0.85rem;
}

/* Three-way branch: horizontal bar with three vertical drops */
.aios-flow__branches {
  display: flex;
  width: 72%;
  justify-content: space-between;
  position: relative;
  height: 1.1rem;
  margin-top: 0.15rem;
}

.aios-flow__branches::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--color-border-strong);
}

.aios-flow__branch-line {
  display: block;
  width: 1px;
  height: 100%;
  background: var(--color-border-strong);
}

/* Output path boxes */
.aios-flow__outputs {
  display: flex;
  gap: 0.5rem;
  width: 100%;
  justify-content: center;
  padding-bottom: 0.15rem;
}

.aios-flow__output {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  flex: 1;
}

.aios-flow__path {
  border: 1px solid var(--color-border-strong);
  padding: 0.35rem 0.4rem;
  font-family: "Manrope", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-bg);
  text-align: center;
  width: 100%;
}

.aios-flow__path--accent {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
}

.aios-flow__cost {
  font-family: "Manrope", sans-serif;
  font-size: 0.65rem;
  color: var(--color-muted);
}

/* Active output: subtle vertical indicator */
.aios-flow__output--active .aios-flow__cost {
  color: var(--color-gold-text);
  font-weight: 600;
}

/* ── Log preview ─────────────────────────────────────────────────────────── */

.aios-panel__log {
  display: flex;
  flex-direction: column;
  gap: 0.32rem;
  padding: 0.65rem 0.9rem;
  background: var(--color-accent-strong);
  font-family: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace;
}

.aios-log__entry {
  display: flex;
  align-items: baseline;
  gap: 0;
}

.aios-log__key {
  font-size: 0.68rem;
  color: rgba(255, 255, 255, 0.45);
  min-width: 7rem;
  flex-shrink: 0;
}

.aios-log__val {
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.88);
}

.aios-log__val--num {
  color: var(--color-gold);
}

.aios-log__val--success {
  color: var(--color-status-ok);
}

/* ── Stat bar ────────────────────────────────────────────────────────────── */

.aios-panel__footer {
  display: flex;
  justify-content: space-between;
  padding: 0.65rem 0.9rem;
  background: var(--color-accent-strong);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  gap: 0.5rem;
}

.aios-panel__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  flex: 1;
  font-family: "Manrope", sans-serif;
}

.aios-panel__stat strong {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--color-gold);
  letter-spacing: var(--tracking-heading);
  line-height: 1;
}

.aios-panel__stat span {
  font-size: 0.62rem;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
  line-height: 1.3;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 760px) {
  .hero-system-visual {
    justify-content: flex-start;
  }

  .aios-panel {
    max-width: 100%;
    width: 100%;
  }
}

/* ── Sticky-header anchor offset ─────────────────────────────────────────── */
/* Prevents headings from landing under the navy header bar when scrolled
   to via #anchor or the page-toc dots. */
:root {
  --site-header-offset: 96px;
}
@media (max-width: 860px) {
  :root { --site-header-offset: 72px; }
}
h1[id], h2[id], h3[id], h4[id], [id]:target {
  scroll-margin-top: var(--site-header-offset);
}
html {
  scroll-padding-top: var(--site-header-offset);
}

/* ==========================================================================
   HOME DIVIDER — full-width gold rule between hero and problem section
   The border-bottom on body.home .hero (main.css) is constrained by
   .site-shell. Override it to none here and use a standalone block element
   so the rule spans the full viewport width.
   ========================================================================== */

body.home .hero {
  border-bottom: none;
}

.home-divider {
  height: 3px;
  background: var(--color-gold);
}


/* ==========================================================================
   §2 — HOME AIOPS (was home-aiops.css)
   Overrides §1 .hero-system-visual and .aios-panel with dark panel treatment.
   ========================================================================== */

/* ==========================================================================
   PROBLEM SECTION
   ========================================================================== */

/* Problem section: warm off-white full-bleed — visual break from white hero */
.home-problem {
  margin-inline: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: var(--color-surface-alt);
  border-top: none;
}

/* Re-apply container padding since we're overriding site-shell */
.home-problem.site-shell {
  padding-inline: clamp(1.25rem, 4vw, 3rem);
  padding-block: clamp(3.5rem, 6vw, 6rem);
}

.home-problem__inner {
  max-width: 52rem;
  margin-inline: auto;
}

.home-problem__inner h2 {
	font-size: clamp(1.5rem, 1rem + 2vw, 2.2rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--color-text-strong);
	margin: 0 0 1.5rem;
	line-height: 1.35;
}

.home-problem__body p {
	font-size: clamp(1rem, 0.9rem + 0.3vw, 1.1rem);
	line-height: 1.7;
	color: var(--color-text-medium);
	margin: 0 0 1rem;
}

.home-problem__body p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   AIOS PROOF SECTION
   ========================================================================== */

/* P7 teal surface — 2026-06-06
   Design decision: shift the AIOS proof section from pure navy (--color-accent-strong)
   to a teal-tinted navy. The tint is held at 15% teal so the surface reads as
   technically distinct without abandoning the dark register that gives gold stats
   and white type their contrast headroom.

   Three-register palette logic:
     navy (#0a2240) — authority: header, footer, hero CTA block
     teal-navy (this surface) — technical depth: AIOS proof section only
     off-white (#faf8f3) — editorial: body sections, alternating tints

   color-mix() in srgb is baseline-2024 (Chrome 111+, Firefox 113+, Safari 16.2+).
   No fallback needed — caniuse shows ~96% global coverage as of 2026.
   White text contrast on the mixed surface: OKLCH-estimated ≥ 9:1. Gold (#E2B04A)
   on this surface: ≥ 7:1. Both clear WCAG AAA.

   Scope constraint: teal as a section surface appears ONLY here. Any other use
   must be approved in the semantic token block in tokens.css first. */
.home-aios-proof {
	padding: clamp(3rem, 5vw, 5rem) 0;
	background: color-mix(in srgb, var(--color-teal) 15%, var(--color-accent-strong));
	/* Override site-shell's inline padding to get full bleed bg,
	   then re-apply padding inside the inner wrapper. */
	margin-inline: 0;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* site-shell adds padding; we need full bleed here */
.home-aios-proof.site-shell {
	padding-inline: clamp(1rem, 4vw, 3rem);
}

.home-aios-proof__inner {
	max-width: var(--content-max-width, 72rem);
	margin-inline: auto;
}

/* Specificity bump: body.home .eyebrow (0,2,1) otherwise wins and
   paints navy-on-navy on the dark proof section. This selector
   (0,3,0) beats it cleanly regardless of source order. */
.home-aios-proof .home-aios-proof__inner .eyebrow {
	color: var(--color-gold);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 0.75rem;
}

/* The ::before bar inherits from body.home .eyebrow::before (background: --color-gold)
   but on dark navy that shade blends. Force white so it reads clearly. */
.home-aios-proof .home-aios-proof__inner .eyebrow::before {
	background: #ffffff;
}

.home-aios-proof__inner h2 {
	font-size: clamp(1.5rem, 1rem + 2vw, 2.2rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: #fff;
	margin: 0 0 1.25rem;
	line-height: 1.2;
}

.home-aios-proof__inner > p {
	font-size: clamp(1rem, 0.9rem + 0.3vw, 1.1rem);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.82);
	max-width: 52rem;
	margin: 0 0 2rem;
}

/* Stat strip */
.home-aios-proof__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 3vw, 2rem);
	margin: 0 0 2rem;
	padding: clamp(1.25rem, 2vw, 1.75rem) 0;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

@media (max-width: 540px) {
	.home-aios-proof__stats {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
}

.home-aios-stat {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.home-aios-stat__number {
	font-size: clamp(2rem, 1.5rem + 2vw, 2.8rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	color: var(--color-gold);
	line-height: 1;
}

.home-aios-stat__label {
	font-size: 0.88rem;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.4;
}

.home-aios-proof__link {
	display: inline-block;
	color: var(--color-gold);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	border-bottom: 1px solid rgba(226, 176, 74, 0.4);
	padding-bottom: 2px;
	transition: border-color 0.15s ease;
}

.home-aios-proof__link:hover,
.home-aios-proof__link:focus-visible {
	border-bottom-color: var(--color-gold);
}

/* ==========================================================================
   AIOS WORK-LOG ARTIFACT
   Sits between the stats strip and the case-study link in the dark proof
   section. Shows what "100% logged with billing attribution" actually looks
   like — real field names and format from the production schema.
   All child elements are aria-hidden; the parent carries the accessible label.
   ========================================================================== */

.aios-work-log {
	margin: clamp(1.25rem, 2vw, 1.75rem) 0 clamp(1rem, 2vw, 1.5rem);
	border: 1px solid rgba(255, 255, 255, 0.12);
	max-width: 28rem;
}

.aios-work-log__label {
	font-family: "Manrope", sans-serif;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.4);
	margin: 0;
	padding: 0.5rem 0.85rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(255, 255, 255, 0.04);
}

.aios-work-log__body {
	padding: 0.65rem 0;
	font-family: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace;
}

.aios-work-log__row {
	display: flex;
	align-items: baseline;
	padding: 0.22rem 0.85rem;
}

.aios-work-log__row:hover {
	background: rgba(255, 255, 255, 0.04);
}

.aios-work-log__key {
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.65);
	min-width: 8.5rem;
	flex-shrink: 0;
	user-select: none;
}

.aios-work-log__val {
	font-size: 0.72rem;
	color: rgba(255, 255, 255, 0.85);
}

.aios-work-log__val--num {
	color: var(--color-gold);
}

.aios-work-log__val--success {
	color: var(--color-status-ok);
}

@media (max-width: 540px) {
	.aios-work-log {
		max-width: 100%;
	}

	.aios-work-log__key {
		min-width: 7rem;
	}
}

/* ==========================================================================
   OFFER CARDS — engagement path (audit → build → operate)
   Visual doctrine: this is a sequence, not a comparison grid.
   Step numbers signal progression; connector lines signal continuity.
   Gold discipline: eyebrow labels use --color-muted (organizational),
   not --color-gold-text (reserved for proof/stat moments).
   ========================================================================== */

.home-offers {
	padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}

/* Section label — small, not a headline */
.home-offers .section-heading h2 {
	font-size: clamp(0.7rem, 0.65rem + 0.2vw, 0.8rem);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-muted);
	font-family: "Manrope", sans-serif;
}

.home-offer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	align-items: start;
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	position: relative;
}

/* Step connector: horizontal rule spanning all three cards behind them */
.home-offer-grid::before {
	content: "";
	position: absolute;
	top: clamp(1.5rem, 2.5vw, 2rem);
	left: calc(clamp(1.5rem, 2.5vw, 2rem) + 1.1rem);
	right: calc(clamp(1.5rem, 2.5vw, 2rem) + 1.1rem);
	height: 1px;
	background: var(--color-border-strong);
	z-index: 0;
	pointer-events: none;
}

@media (max-width: 900px) {
	.home-offer-grid {
		grid-template-columns: 1fr;
		max-width: 36rem;
	}

	/* No horizontal connector on mobile (cards stack) */
	.home-offer-grid::before {
		display: none;
	}
}

/* Base card */
.home-offer-card {
	border: 1px solid var(--color-border);
	border-right: none;
	padding: clamp(1.5rem, 2.5vw, 2rem);
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	background: #fff;
	position: relative;
	z-index: 1;
}

.home-offer-card:last-child {
	border-right: 1px solid var(--color-border);
}

@media (max-width: 900px) {
	.home-offer-card,
	.home-offer-card:last-child {
		border: 1px solid var(--color-border);
		border-bottom: none;
	}

	.home-offer-card:last-child {
		border-bottom: 1px solid var(--color-border);
	}
}

/* Step number — large ghost text above card title */
.home-offer-card::before {
	content: attr(data-step);
	display: block;
	font-family: "Sora", sans-serif;
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: -0.04em;
	color: var(--color-border-strong);
	line-height: 1;
	margin-bottom: -0.4rem;
}

/* Featured card — primary engagement: accent left rule, not border-top */
.home-offer-card--featured {
	border-left: 3px solid var(--color-accent);
}

/* Eyebrow: organizational label — muted, not gold */
.home-offer-card__eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-muted);
	margin: 0;
}

/* Featured eyebrow: accent, since it's the primary engagement */
.home-offer-card--featured .home-offer-card__eyebrow {
	color: var(--color-accent);
}

.home-offer-card h3 {
	font-size: clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--color-text-strong);
	margin: 0;
	line-height: 1.2;
}

.home-offer-card__price {
	font-size: clamp(1.3rem, 1rem + 1vw, 1.7rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--color-text);
	margin: 0;
	line-height: 1;
}

.home-offer-card__price abbr {
	font-size: 0.65em;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--color-muted);
	text-decoration: none;
}

.home-offer-card__timeline {
	font-size: 0.78rem;
	color: var(--color-muted);
	margin: 0;
}

.home-offer-card > p:not(.home-offer-card__eyebrow):not(.home-offer-card__price):not(.home-offer-card__timeline):not(.home-offer-card__note) {
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--color-text-medium);
	margin: 0;
}

/* Deliverable list: clean rows, no bullets */
.home-offer-card ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--color-border);
	padding-top: 0.65rem;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.home-offer-card ul li {
	font-size: 0.84rem;
	line-height: 1.5;
	color: var(--color-text-medium);
	padding: 0.32rem 0;
	border-bottom: 1px solid var(--color-border);
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
}

.home-offer-card ul li:last-child {
	border-bottom: none;
}

/* Arrow marker replaces bullet — accent color, minimal weight */
.home-offer-card ul li::before {
	content: "→";
	font-size: 0.7rem;
	color: var(--color-accent);
	flex-shrink: 0;
	line-height: inherit;
}

.home-offer-card .button {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 0.65rem;
	padding-bottom: 0.65rem;
}

.home-offer-card__note {
	font-size: 0.78rem;
	color: var(--color-muted);
	font-style: italic;
	margin: 0;
}

/* ==========================================================================
   HERO SYSTEM VISUAL — AIOS routing panel (right column, dark variant)
   Overrides §1 base styles.
   ========================================================================== */

.hero-system-visual {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.aios-panel {
	width: 100%;
	max-width: 340px;
	background: var(--color-accent-strong);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--radius-card, 6px);
	font-family: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace;
	font-size: 0.78rem;
	overflow: hidden;
	box-shadow: var(--shadow-strong);
}

/* Header bar */
.aios-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.55rem 0.85rem;
	background: rgba(255, 255, 255, 0.05);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.aios-panel__title {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.aios-panel__sep {
	color: rgba(255, 255, 255, 0.3);
	margin: 0 0.3rem;
}

.aios-panel__status {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--color-status-ok);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.aios-panel__dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-status-ok);
	flex-shrink: 0;
	animation: aios-pulse 2.4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
	.aios-panel__dot {
		animation: none;
	}
}

@keyframes aios-pulse {
	0%, 100% { opacity: 1; }
	50%       { opacity: 0.35; }
}

/* Flow diagram */
.aios-panel__flow {
	padding: 0.85rem 0.85rem 0.75rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.aios-flow__node {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 4px;
	padding: 0.4rem 0.65rem;
}

.aios-flow__node-label {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.72rem;
}

.aios-flow__node--router {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(255, 255, 255, 0.15);
}

.aios-flow__node-title {
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.74rem;
	font-weight: 700;
}

.aios-flow__node-criteria {
	color: var(--color-gold);
	font-size: 0.68rem;
}

.aios-flow__connector {
	text-align: center;
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.75rem;
	line-height: 1;
	margin: -0.1rem 0;
}

/* Branch lines are decorative only — hidden visually, keep accessible */
.aios-flow__branches {
	display: none;
}

.aios-flow__outputs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.35rem;
}

.aios-flow__output {
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 4px;
	padding: 0.45rem 0.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.aios-flow__output--active {
	background: rgba(226, 176, 74, 0.08);
	border-color: rgba(226, 176, 74, 0.35);
	opacity: 1;
}

.aios-flow__path {
	background: transparent;
	border: none;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.72rem;
	font-weight: 600;
	width: auto;
}

.aios-flow__path--accent {
	color: var(--color-gold);
}

.aios-flow__cost {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.65rem;
}

.aios-flow__output--active .aios-flow__cost {
	color: rgba(255, 255, 255, 0.6);
}

/* Log entries */
.aios-panel__log {
	padding: 0.65rem 0.85rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	display: flex;
	flex-direction: column;
	gap: 0.28rem;
}

.aios-log__entry {
	display: grid;
	grid-template-columns: 9rem 1fr;
	gap: 0.5rem;
	align-items: baseline;
}

.aios-log__key {
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.68rem;
}

.aios-log__val {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.7rem;
}

.aios-log__val--num {
	color: var(--color-gold);
}

.aios-log__val--success {
	color: var(--color-status-ok);
}

/* Footer stats */
.aios-panel__footer {
	padding: 0.65rem 0.85rem;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}

.aios-panel__stat {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.aios-panel__stat strong {
	color: #fff;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	font-family: "Sora", sans-serif;
	line-height: 1;
}

.aios-panel__stat span {
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.65rem;
	font-family: "Manrope", sans-serif;
	letter-spacing: 0.02em;
}

/* Hide the panel on very small screens where it can't fit alongside the hero copy */
@media (max-width: 680px) {
	.hero-system-visual {
		display: none;
	}
}

/* ==========================================================================
   HOMEPAGE SOCIAL PROOF — elevated presentation
   ========================================================================== */

/* Cleaner label — small, uppercase, gold-accented */
body.home .home-social-proof__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-gold-text);
  text-align: center;
  margin-bottom: 0.85rem;
  max-width: var(--container);
  margin-inline: auto;
}

/* Constrain brands grid to container width so logos don't sprawl on wide viewports */
body.home .home-social-proof__brands {
  max-width: var(--container);
  margin-inline: auto;
}

/* Logo strip: warm bg, full-bleed. Padding from main.css body.home rule preserved — only bg and width overridden */
body.home .home-social-proof {
  background: var(--color-surface-alt);
  margin-inline: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-bottom: none;
}

/* Re-apply horizontal padding inside the full-bleed section */
body.home .home-social-proof.site-shell {
  padding-inline: clamp(1.5rem, 4vw, 3rem);
}

body.home .home-social-proof__brands li {
  background: transparent;
  border: none;
  padding: 0.5rem 0.75rem;
  min-height: 3.5rem;
}

/* Slightly more visible — subtle not washed out */
body.home .home-social-proof__brands img {
  filter: saturate(0.0) contrast(1.2) opacity(0.65);
  transition: filter 0.2s ease;
}

body.home .home-social-proof__brands li:hover img {
  filter: saturate(0.15) contrast(1.1) opacity(0.85);
}

/* ==========================================================================
   CASE STUDY GRID — featured first card
   First case study: top gold border + elevated shadow to signal featured
   ========================================================================== */

body.home .card-grid .content-card:first-child {
  border-top: 3px solid var(--color-gold);
  box-shadow: 0 6px 28px var(--color-accent-border-subtle);
}

/* ==========================================================================
   HOME OFFERS SECTION — tighter, more editorial
   ========================================================================== */

/* Upgrade section label to look more intentional */
.home-offers .section-heading h2 {
  font-family: 'Manrope', sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-gold-text);
}

/* Featured offer card: accent left-border upgrade */
.home-offer-card--featured {
  border-left: 3px solid var(--color-gold);
  box-shadow: 0 4px 20px rgba(18, 52, 86, 0.08);
}

/* ==========================================================================
   HOME AIOS PROOF SECTION — upgraded stats
   ========================================================================== */

/* Bigger stat numbers — the "50+" should dominate */
.home-aios-stat__number {
  font-size: clamp(2.5rem, 2rem + 3vw, 3.5rem);
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  letter-spacing: -0.04em;
  color: var(--color-gold);
  line-height: 1;
}

/* Section heading on dark: larger, more commanding */
.home-aios-proof__inner h2 {
  font-size: clamp(1.75rem, 1.25rem + 2.5vw, 2.8rem);
  letter-spacing: -0.04em;
  line-height: 1.02;
}

/* ==========================================================================
   HOME PROBLEM SECTION — upgraded heading
   ========================================================================== */

.home-problem__inner h2 {
  font-size: clamp(1.8rem, 1.2rem + 2.5vw, 2.8rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--color-text-strong);
  margin: 0 0 1.75rem;
  line-height: 1.1;
}

/* ==========================================================================
   VERTICAL GATEWAY — four practice area cards
   2x2 grid on desktop, single column on mobile.
   Each card is a full <a> element — entire surface is clickable.
   ========================================================================== */

.home-verticals {
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}

.home-verticals .section-heading {
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}

.home-verticals .section-heading h2 {
  font-size: clamp(1.4rem, 1rem + 1.8vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--color-text-strong);
  margin: 0;
  line-height: 1.15;
}

.home-vertical-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid var(--color-border);
}

.home-vertical-card {
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease;
}

.home-vertical-card:hover {
  background: var(--color-accent-soft);
}

.home-vertical-card:focus-visible {
  background: var(--color-accent-soft);
  outline: 2px solid var(--color-accent);
  outline-offset: -2px;
}

/* Remove right border on even cards (right column) */
.home-vertical-card:nth-child(even) {
  border-right: none;
}

/* Remove bottom border on last two cards (bottom row) */
.home-vertical-card:nth-child(n+3) {
  border-bottom: none;
}

.home-vertical-card__eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-gold-text);
  margin: 0;
}

.home-vertical-card h3 {
  font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.25rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--color-text-strong);
  margin: 0;
  line-height: 1.2;
}

.home-vertical-card__desc {
  font-size: 0.88rem;
  line-height: 1.65;
  color: var(--color-text-medium);
  margin: 0;
  flex: 1;
}

.home-vertical-card__link {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--color-accent);
  margin: 0.25rem 0 0;
  letter-spacing: -0.005em;
}

.home-vertical-card--primary {
  border-left: 3px solid var(--color-gold);
  background: color-mix(in srgb, var(--color-gold) 4%, transparent);
}

.home-vertical-card--primary:hover {
  background: color-mix(in srgb, var(--color-gold) 8%, var(--color-accent-soft));
}

.home-vertical-card--primary .home-vertical-card__eyebrow {
  color: var(--color-gold-text);
}

@media (max-width: 680px) {
  .home-vertical-grid {
    grid-template-columns: 1fr;
  }

  .home-vertical-card {
    border-right: none;
    border-bottom: 1px solid var(--color-border);
  }

  .home-vertical-card:last-child {
    border-bottom: none;
  }
}
