/* ==========================================================================
   ADNAN KABIR — free-audit.css
   Loaded ONLY by free-audit.html. Every selector here is new or duplicated
   from about.css/contact.css (never imported directly, per the page-isolation
   rule), so index.html, about.html and contact.html cannot be affected.

   The page is built mostly from existing components — .hero, .step,
   .steps-list, .audit__body, .video, .case, .finale, .footer, .kicker,
   .chip, .redact-lines — so only the pieces with no equivalent elsewhere are
   defined below.
   ========================================================================== */

/* ---------- Generic section wrapper --------------------------------------
   Matches the padding/border of .audit, .cases, .resources and .notes so the
   vertical rhythm is identical to the homepage. (Duplicated from about.css /
   contact.css rather than shared, to keep each page's stylesheet
   independent.) */

.page-section {
  padding: var(--section-y) 0;
  border-bottom: 1px solid var(--rule);
}
.section-head { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.section-head .h2 { margin-bottom: .2em; }

/* ---------- Free Audit hero ------------------------------------------------
   The homepage hero is a full-height two-column split built around a
   portrait. This page reuses contact.html's compact "plain" treatment
   instead: one column on mobile, 60/40 with the visual above 1024px, height
   driven by content rather than 100vh. (Duplicated from contact.css.) */

.hero--plain {
  min-height: 0;
  padding: clamp(9rem, 20vh, 12rem) 0 clamp(3.5rem, 8vw, 6rem);
}
.hero--plain .hero__inner { grid-template-columns: minmax(0, 1fr); }
.hero--plain .hero__copy { max-width: 46rem; }
.hero--plain .hero__lede { max-width: 56ch; }

@media (min-width: 1024px) {
  .hero--plain .hero__inner {
    grid-template-columns: 60% 40%;
    column-gap: 0;
  }
  .hero--plain .hero__copy {
    max-width: none;
    padding-right: clamp(2rem, 4vw, 4rem);
  }
  .hero--plain .hero__visual { place-items: center stretch; }
}

/* Same descender fix as contact.css: .display sets line-height .96, which
   clips the stroke-word's paintable box short of the font's true descent.
   "diagnosis" carries a "g" tail that needs the extra room. */
.hero--plain .stroke-word {
  padding-block: .12em;
  margin-block: -.12em;
}

/* ---------- Report-card sample plate ---------------------------------------
   Sits in the hero's right column, in the slot .hero__visual normally holds
   a portrait or note. An elevated card rather than accent-tinted, so it
   reads as a literal document rather than a callout. */

.report-card {
  width: 100%;
  max-width: 26rem;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  background: var(--elev);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-lg);
}
.report-card__top {
  display: flex; align-items: center; justify-content: space-between;
  gap: .75rem;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--rule);
  color: var(--ink-3);
}
.report-card__title {
  font-size: clamp(1.25rem, 2.6vw, 1.625rem);
  font-weight: 700;
  margin-bottom: 1.75rem;
  text-wrap: pretty;
}
.report-card .redact-lines { margin-bottom: 1.75rem; }
.report-card__foot {
  padding-top: 1rem;
  border-top: 1px solid var(--rule);
  color: var(--ink-3);
}

/* ---------- § Why This Isn't Another Audit --------------------------------
   Reuses .step (homepage process card) outside its filmstrip context. A bare
   .step gets width:20.5rem at >=1024px from sections.css, so it needs the
   same override about.css already applies to #origin .step. */

.reasons {
  display: grid;
  gap: clamp(1.25rem, 3vw, 1.75rem);
}
@media (min-width: 760px) {
  .reasons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.reasons .step { width: 100%; }

/* ---------- § The Scope / § Who This Is For --------------------------------
   Included/Excluded and Good-fit/Not-a-fit both use the same two-panel
   layout as about.html's "Who it's for" cards. Duplicated from about.css. */

.fit__grid {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}
@media (min-width: 760px) {
  .fit__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.fit__list { display: grid; gap: 1rem; padding-top: 1.25rem; }
.fit__list li {
  display: flex; gap: .75rem;
  font-size: .9375rem;
  color: var(--ink-2);
  text-wrap: pretty;
}
.fit__list svg {
  width: 1rem; height: 1rem; flex: none;
  margin-top: .34rem;
  fill: none; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.case.fit--yes { background-color: var(--accent-soft); }
.case.fit--no { background-color: var(--elev); border-style: solid; }
.fit--yes .fit__list svg { stroke: var(--accent-text); }
.fit--no  .fit__list svg { stroke: var(--ink-3); }
.fit__grid .case { display: block; }

.scope__closing {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  color: var(--ink-2);
  font-size: 1.0625rem;
  max-width: 60ch;
  text-align: center;
  text-wrap: pretty;
  margin-inline: auto;
}

/* ---------- § The Investigation / § Diagnosis Example ----------------------
   .pull is the "callout" visual language used throughout the site
   (.case__block--result, .note-card) — duplicated here from about.css. */

.pull {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  padding: clamp(1.5rem, 3vw, 2rem);
  background: var(--accent-soft);
  border-left: 2px solid var(--accent);
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.pull__k { color: var(--accent-text); font-size: 1rem; margin-bottom: .6rem; }
.pull__title {
  font-size: clamp(1.375rem, 3vw, 2rem);
  font-weight: 700;
  margin-bottom: .5rem;
  text-wrap: pretty;
}
.pull__body { color: var(--ink-2); max-width: 52ch; text-wrap: pretty; }

/* The pivot stage in the investigation list gets the same accent-soft +
   left-rule treatment as .case__block--result, scoped to this one item. */
.steps-list li.is-pivot {
  padding-left: 1.1rem;
  background: var(--accent-soft);
  border-left: 2px solid var(--accent);
  border-bottom-color: transparent;
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
}

.diagnosis__statement {
  margin-top: clamp(2rem, 4vw, 3rem);
  text-align: center;
  font-size: clamp(1.25rem, 2.8vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -.01em;
}

/* ---------- § Watch How I Think (video) ------------------------------------
   .clip__body duplicated from about.css — used for the two paragraphs beside
   the video slot. */

.clip__body { color: var(--ink-2); font-size: .9375rem; text-wrap: pretty; }
#video .audit__body { align-items: center; }

/* ---------- § How It Works --------------------------------------------- */

.steps-list__meta {
  color: var(--ink-3);
  margin-bottom: .3rem;
}

/* ---------- § Questions (FAQ) ----------------------------------------------
   Native <details>/<summary> — keyboard-operable and screen-reader friendly
   with no custom JS. No FAQ precedent exists elsewhere on the site, so this
   is the one genuinely new component on the page. */

.faq { border-top: 1px solid var(--rule); }
.faq-item { border-bottom: 1px solid var(--rule); }

.faq-item summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  min-height: 2.75rem;
  padding: clamp(1.15rem, 2.5vw, 1.5rem) 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-display);
  font-size: 1.0625rem; font-weight: 600; font-stretch: 96%;
  letter-spacing: -.015em;
  color: var(--ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }

.faq-item__ic {
  position: relative; flex: none;
  width: 1.5rem; height: 1.5rem;
  border: 1px solid var(--rule-2);
  border-radius: 50%;
  transition: border-color var(--t-fast) linear, background-color var(--t-fast) linear;
}
.faq-item__ic::before, .faq-item__ic::after {
  content: '';
  position: absolute; top: 50%; left: 50%;
  background: var(--ink-2);
  transition: transform var(--t-med) var(--ease-out), background-color var(--t-fast) linear;
}
.faq-item__ic::before { width: 8px; height: 1px; transform: translate(-50%, -50%); }
.faq-item__ic::after  { width: 1px; height: 8px; transform: translate(-50%, -50%); }
.faq-item[open] .faq-item__ic::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }

.faq-item summary:hover .faq-item__ic,
.faq-item[open] .faq-item__ic { border-color: var(--accent-line); background: var(--accent-soft); }
.faq-item summary:hover .faq-item__ic::before,
.faq-item[open] .faq-item__ic::before,
.faq-item summary:hover .faq-item__ic::after,
.faq-item[open] .faq-item__ic::after { background: var(--accent-text); }

.faq-item p {
  padding-bottom: clamp(1.15rem, 2.5vw, 1.5rem);
  max-width: 60ch;
  color: var(--ink-2);
  font-size: .9375rem;
  text-wrap: pretty;
}

/* ---------- § Before You Decide -------------------------------------------- */

.decide__body { display: grid; gap: 1.1rem; max-width: 80ch; }
.decide__body p { color: var(--ink-2); font-size: 1.0625rem; text-wrap: pretty; }

/* ---------- Final CTA ----------------------------------------------------
   .finale is shared/frozen; only the extra "pre" note above the title and
   the link inside .finale__note need page-scoped rules. */

.finale__pre {
  color: var(--ink-3);
  font-size: .9375rem;
  max-width: 54ch;
  text-wrap: pretty;
}
.finale__pre b { color: var(--ink-2); font-weight: 600; }
.finale__note a {
  color: var(--accent-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.finale__note a:hover { color: var(--ink); }

#scope .lede {
  max-width: 60ch;
}
#example .lede {
  max-width: 72ch;
}