/* ============================================================
   Executive Operating Authority — Nick Pye
   Landing page styles
   Palette (brand): Deep Graphite #1C1C1E, Near-Black #0D0D0F,
   Warm Grey #6B6A69, Deep Forest Green #3D6B55, Warm Stone #EDE9E3
   Type: Sora (headings), Inter (body)
   ============================================================ */

:root {
  --graphite: #1C1C1E;
  --black:    #0D0D0F;
  --grey:     #6B6A69;
  --forest:   #3D6B55;
  --stone:    #EDE9E3;

  --pad-x: clamp(24px, 7vw, 130px);
  --pad-y: clamp(72px, 10vw, 132px);
  --wrap:  940px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--black);
  color: var(--graphite);
  font-family: 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { -webkit-tap-highlight-color: transparent; }

h1, h2, h3 { font-family: 'Sora', system-ui, sans-serif; margin: 0; }

.wrap { max-width: var(--wrap); margin: 0 auto; }

/* Forest accents are ALWAYS text/rule only — never a background fill. */
.rule { width: 48px; height: 3px; background: var(--forest); border: 0; margin: 0 0 26px; }

.eyebrow {
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--forest);
  margin-bottom: 40px;
}

/* ---------- Header ---------- */
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  padding: 32px var(--pad-x);
  background: var(--black);
  border-bottom: 1px solid rgba(237, 233, 227, 0.08);
}

.wordmark .wordmark-rule { width: 32px; height: 2px; background: var(--forest); margin-bottom: 9px; }
.wordmark .wordmark-name {
  font-family: 'Sora', sans-serif; font-weight: 700; font-size: 13px;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--stone);
}
.wordmark .wordmark-sub {
  font-weight: 300; font-size: 11px; letter-spacing: 0.1em;
  color: var(--grey); margin-top: 4px;
}

.btn-ghost {
  font-weight: 500; font-size: 13px; letter-spacing: 0.02em;
  color: var(--stone); text-decoration: none;
  border: 1px solid rgba(237, 233, 227, 0.28);
  padding: 13px 22px;
}
.btn-ghost:hover { border-color: rgba(237, 233, 227, 0.6); }

/* ---------- Hero ---------- */
.hero {
  display: grid;
  grid-template-columns: 520px 1fr;   /* photo LEFT, content RIGHT */
  min-height: 620px;
}
.hero-photo {
  overflow: hidden;
  background: var(--graphite);
  border-right: 1px solid rgba(237, 233, 227, 0.1);
}
.hero-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 60% 20%;
  filter: grayscale(1) contrast(1.05) brightness(0.82);
  display: block;
}
.hero-content {
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(64px, 9vw, 112px) var(--pad-x) clamp(64px, 9vw, 112px) clamp(40px, 5vw, 60px);
  background: var(--black);
}
.hero .rule { width: 56px; margin-bottom: 30px; }
.hero .eyebrow { font-size: 14px; letter-spacing: 0.16em; margin-bottom: 40px; }
.hero h1 {
  font-weight: 700; font-size: clamp(30px, 4.6vw, 44px);
  line-height: 1.19; letter-spacing: -0.02em; margin: 0 0 46px; max-width: 620px;
}
.hero h1 .lead { color: var(--stone); }
.hero h1 .muted { color: var(--grey); font-weight: 400; }

.cta-row { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.btn-primary {
  display: inline-block; background: var(--stone); color: var(--black);
  font-weight: 600; font-size: 16px; letter-spacing: 0.01em;
  text-decoration: none; padding: 18px 32px;
}
.btn-primary:hover { background: #fff; }
.link-email {
  font-size: 16px; color: var(--grey); text-decoration: none;
  border-bottom: 1px solid rgba(107, 106, 105, 0.5); padding-bottom: 2px;
}
.link-email:hover { color: var(--stone); }

/* ---------- Generic section ---------- */
section { padding: var(--pad-y) var(--pad-x); }
.section-light { background: var(--stone); }
.section-dark  { background: var(--black); }

.h-light { color: var(--graphite); }
.h-dark  { color: var(--stone); }

.section-title {
  font-weight: 700; line-height: 1.1; letter-spacing: -0.015em; margin-bottom: 30px;
}
.lede { font-size: 19px; line-height: 1.62; color: var(--grey); margin: 0; }

/* ---------- Problem ---------- */
.problem .section-title { font-size: clamp(34px, 5vw, 52px); line-height: 1.08; max-width: 820px; margin-bottom: 44px; }
.problem .body { max-width: 680px; display: flex; flex-direction: column; gap: 26px; }
.problem .body p { margin: 0; font-size: 19px; line-height: 1.62; color: var(--grey); }

/* ---------- How I work ---------- */
.work .section-title { font-size: clamp(32px, 4.4vw, 46px); line-height: 1.12; max-width: 760px; }
.work .lede { max-width: 660px; margin-bottom: 64px; }

.steps {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: rgba(107, 106, 105, 0.3); border: 1px solid rgba(107, 106, 105, 0.3);
}
.step { background: var(--stone); padding: 38px 34px 44px; }
.step .num { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 26px; color: var(--forest); margin-bottom: 18px; }
.step h3 { font-weight: 600; font-size: 22px; line-height: 1.25; color: var(--graphite); margin-bottom: 14px; }
.step p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--grey); }

.pullquote {
  margin-top: 64px; padding: 52px clamp(28px, 4vw, 56px);
  background: var(--black); border-left: 4px solid var(--forest);
}
.pullquote p {
  margin: 0; font-family: 'Sora', sans-serif; font-weight: 300;
  font-size: clamp(24px, 3.2vw, 32px); line-height: 1.28; letter-spacing: -0.01em; color: var(--stone);
}
.pullquote .accent { font-weight: 800; color: var(--forest); }

/* ---------- Authority Audit ---------- */
.link-audit {
  font-weight: 800; font-size: 17px; color: var(--forest); text-decoration: none;
  border-bottom: 2px solid var(--forest); padding-bottom: 2px;
}
.link-audit:hover { color: var(--graphite); border-color: var(--graphite); }

.audit .section-title { font-size: clamp(32px, 4.4vw, 46px); line-height: 1.12; margin-bottom: 48px; }

.audit-toggle { display: flex; gap: 1px; margin-bottom: 56px; border: 1px solid rgba(237, 233, 227, 0.22); width: fit-content; }
.audit-tab {
  font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14px; letter-spacing: 0.02em;
  background: transparent; color: var(--grey); border: 0; padding: 15px 26px; cursor: pointer;
}
.audit-tab + .audit-tab { border-left: 1px solid rgba(237, 233, 227, 0.22); }
.audit-tab.is-active { background: var(--stone); color: var(--black); }
.audit-tab:not(.is-active):hover { color: var(--stone); }

.audit-panel { max-width: 760px; min-height: 340px; }

.audit-title { font-weight: 700; font-size: 26px; color: var(--stone); margin-bottom: 18px; }
.audit-intro { font-size: 19px; line-height: 1.62; color: var(--grey); margin: 0 0 40px; max-width: 560px; }

.audit-progress {
  font-weight: 800; font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--forest); margin-bottom: 28px;
}
.audit-statement {
  font-family: 'Sora', sans-serif; font-weight: 300;
  font-size: clamp(22px, 3vw, 30px); line-height: 1.35; letter-spacing: -0.01em;
  color: var(--stone); margin: 0 0 44px; min-height: 3.4em;
}
.audit-answers { display: flex; gap: 14px; flex-wrap: wrap; }
.audit-answer {
  font-family: 'Inter', sans-serif; font-weight: 600; font-size: 16px;
  background: transparent; color: var(--stone); cursor: pointer;
  border: 1px solid rgba(237, 233, 227, 0.35); padding: 16px 30px;
}
.audit-answer:hover { background: var(--stone); color: var(--black); }

.audit-back {
  margin-top: 36px; background: transparent; border: 0; cursor: pointer;
  font-size: 14px; color: var(--grey); text-decoration: none; padding: 0;
  border-bottom: 1px solid rgba(107, 106, 105, 0.5); padding-bottom: 2px;
}
.audit-back:hover { color: var(--stone); }

.audit-scoreline {
  font-weight: 800; font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--forest); margin: 0 0 20px;
}
.audit-band {
  font-weight: 700; font-size: clamp(28px, 3.6vw, 38px); letter-spacing: -0.015em;
  color: var(--stone); margin-bottom: 22px;
}
.audit-read { font-size: 19px; line-height: 1.62; color: var(--grey); margin: 0 0 44px; max-width: 640px; }

.audit-form { border-top: 1px solid rgba(237, 233, 227, 0.14); padding-top: 36px; max-width: 640px; }
.audit-form-lede { font-size: 17px; line-height: 1.55; color: var(--stone); margin: 0 0 22px; }
.audit-form-row { display: flex; gap: 12px; flex-wrap: wrap; }
.audit-form-row input[type="email"] {
  flex: 1 1 260px; background: transparent; border: 1px solid rgba(237, 233, 227, 0.35);
  color: var(--stone); font-family: 'Inter', sans-serif; font-size: 16px; padding: 16px 18px; outline: none;
}
.audit-form-row input[type="email"]::placeholder { color: var(--grey); }
.audit-form-row input[type="email"]:focus { border-color: var(--stone); }
.audit-form-row .btn-primary { border: 0; cursor: pointer; font-family: 'Inter', sans-serif; }
#audit-honey { position: absolute; left: -9999px; height: 0; width: 0; opacity: 0; }
.audit-form-note { font-size: 14px; color: var(--grey); margin: 16px 0 0; }
.audit-form-note a { color: var(--grey); }
.audit-form-note a:hover { color: var(--stone); }
.audit-form-status { font-weight: 600; font-size: 15px; color: var(--stone); margin: 14px 0 0; min-height: 1.2em; }
.audit-form-status a { color: var(--stone); }
.audit-restart { margin-top: 40px; }

@media (max-width: 640px) {
  .audit-toggle { width: 100%; }
  .audit-tab { flex: 1; padding: 14px 10px; text-align: center; }
  .audit-answers { flex-direction: column; }
  .audit-answer { width: 100%; text-align: left; }
  .audit-statement { min-height: 0; }
}

/* ---------- Credibility ---------- */
.cred .cred-head { display: flex; gap: 56px; align-items: flex-start; margin-bottom: 70px; }
.cred .cred-head .section-title { font-size: clamp(32px, 4.4vw, 46px); line-height: 1.12; margin-bottom: 26px; }
.cred .cred-head .lede { max-width: 560px; }

.stats {
  display: flex; margin-bottom: 76px;
  border-top: 2px solid var(--forest); border-bottom: 1px solid rgba(237, 233, 227, 0.14);
}
.stat { flex: 1; padding: 34px 30px; }
.stat:first-child { padding-left: 0; }
.stat:last-child  { padding-right: 0; }
.stat + .stat { border-left: 1px solid rgba(237, 233, 227, 0.14); }
.stat .fig { font-family: 'Sora', sans-serif; font-weight: 700; font-size: clamp(30px, 3.8vw, 40px); letter-spacing: -0.02em; color: var(--stone); }
.stat .fig .arrow { color: var(--forest); }
.stat .cap { font-size: 14px; color: var(--grey); margin-top: 8px; line-height: 1.4; }

.arc .arc-row {
  display: flex; gap: 48px; padding: 30px 0;
  border-top: 1px solid rgba(237, 233, 227, 0.1);
}
.arc .arc-row:last-child { border-bottom: 1px solid rgba(237, 233, 227, 0.1); }
.arc .arc-label {
  width: 190px; flex-shrink: 0; font-weight: 800; font-size: 13px;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--forest); padding-top: 5px;
}
.arc .arc-row p { margin: 0; flex: 1; font-size: 18px; line-height: 1.58; color: var(--stone); }

/* ---------- Testimonials ---------- */
.quotes { display: flex; flex-direction: column; }
.quotes .eyebrow { margin-bottom: 56px; }
.quotes figure { margin: 0; padding: 44px 0; border-top: 1px solid rgba(107, 106, 105, 0.3); }
.quotes figure:last-child { border-bottom: 1px solid rgba(107, 106, 105, 0.3); }
.quotes blockquote {
  margin: 0; font-family: 'Sora', sans-serif; font-weight: 300;
  font-size: clamp(22px, 2.8vw, 28px); line-height: 1.4; letter-spacing: -0.01em;
  color: var(--graphite); max-width: 820px;
}
.quotes figcaption {
  margin-top: 22px; font-weight: 800; font-size: 13px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest);
}

/* ---------- Engagement ---------- */
.engagement .section-title { font-size: clamp(32px, 4.4vw, 46px); line-height: 1.12; max-width: 720px; }
.engagement .lede { max-width: 660px; margin-bottom: 60px; }
.eng-list { display: flex; flex-direction: column; border-top: 2px solid var(--forest); }
.eng-item {
  display: flex; gap: 44px; padding: 34px 0; align-items: baseline;
  border-bottom: 1px solid rgba(107, 106, 105, 0.3);
}
.eng-item .num { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 22px; color: var(--forest); width: 48px; flex-shrink: 0; }
.eng-item h3 { font-weight: 600; font-size: 21px; color: var(--graphite); width: 280px; flex-shrink: 0; }
.eng-item p { margin: 0; flex: 1; font-size: 17px; line-height: 1.58; color: var(--grey); }

/* ---------- Final CTA ---------- */
.final { padding-top: clamp(96px, 12vw, 150px); padding-bottom: clamp(96px, 12vw, 150px); }
.final .inner { max-width: 820px; }
.final .rule { width: 56px; margin-bottom: 40px; }
.final h2 { font-weight: 700; font-size: clamp(34px, 5vw, 52px); line-height: 1.1; letter-spacing: -0.02em; color: var(--stone); margin-bottom: 28px; }
.final p { margin: 0 0 48px; max-width: 600px; font-size: 19px; line-height: 1.62; color: var(--grey); }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--black); padding: 44px var(--pad-x) 56px;
  border-top: 1px solid rgba(237, 233, 227, 0.1);
}
.site-footer .row { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; }
.site-footer .wordmark-rule { width: 28px; height: 2px; background: var(--forest); margin-bottom: 14px; }
.site-footer .wordmark-name { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.11em; text-transform: uppercase; color: var(--stone); }
.site-footer .wordmark-sub { font-weight: 300; font-size: 11px; letter-spacing: 0.1em; color: var(--grey); margin-top: 5px; }
.site-footer .meta { font-size: 12px; color: var(--grey); text-align: right; line-height: 1.7; }
.site-footer .meta a { color: var(--grey); text-decoration: none; }
.site-footer .meta a:hover { color: var(--stone); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero-photo { min-height: 380px; border-right: 0; border-bottom: 1px solid rgba(237, 233, 227, 0.1); }
  .hero-photo img { object-position: 60% 15%; }

  .cred .cred-head { flex-direction: column; gap: 32px; }

  .arc .arc-row { flex-direction: column; gap: 10px; }
  .arc .arc-label { width: auto; padding-top: 0; }

  .eng-item { flex-wrap: wrap; gap: 12px 24px; }
  .eng-item h3 { width: auto; flex: 1 1 100%; }
  .eng-item .num { width: auto; }
}

@media (max-width: 640px) {
  .steps { grid-template-columns: 1fr; }
  .stats { flex-direction: column; }
  .stat { padding: 26px 0 !important; }
  .stat + .stat { border-left: 0; border-top: 1px solid rgba(237, 233, 227, 0.14); }
}
