/* ============================================================
   Performance Solutions funnel
   Built on the SP Building Surveyors Design System tokens.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  /* Brand palette — from tokens/colors.css */
  --sp-ink:#16181A;
  --sp-ink-soft:#3A3D40;
  --sp-blue:#1E4FD8;
  --sp-blue-deep:#163CA6;
  --sp-blue-tint:#EAF0FC;
  --sp-blue-line:#C9D8F5;
  --sp-red:#C6362B;
  --sp-red-tint:#FBEBE9;

  --sp-cream:#F5F3EC;
  --sp-cream-2:#EFEDE4;
  --sp-paper:#FFFFFF;
  --sp-grid:#E4E1D6;
  --sp-grid-strong:#D8D4C6;
  --sp-line:#DAD7CC;
  --sp-line-2:#C7C3B6;
  --sp-mute:#8A887E;

  --text-on-ink:#F3F1EA;
  --accent:var(--sp-blue);
  --accent-hover:var(--sp-blue-deep);

  --font-sans:'Hanken Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-mono:'IBM Plex Mono',Menlo,Consolas,monospace;

  --radius-xs:2px;
  --radius-sm:4px;
  --radius-md:6px;
  --radius-lg:10px;

  --shadow-sm:0 2px 6px rgba(22,24,26,.06);
  --shadow-md:0 10px 30px rgba(22,24,26,.08);
  --shadow-lg:0 24px 60px rgba(22,24,26,.12);
  --shadow-focus:0 0 0 3px rgba(30,79,216,.28);

  --grid-module:48px;
  --container-max:1240px;
  --ls-eyebrow:.18em;
  --ls-caps:.08em;
  --ls-mono:.02em;
}

*{box-sizing:border-box}
html,body{overflow-x:hidden}
body{
  margin:0;
  background:var(--sp-cream);
  color:var(--sp-ink-soft);
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--sp-blue)}
a:hover{color:var(--sp-blue-deep)}

.wrap{max-width:var(--container-max);margin:0 auto;padding:0 24px}

h1,h2,h3{color:var(--sp-ink);font-weight:700;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,5.2vw,4.4rem);line-height:1.04;letter-spacing:-0.02em}
h2{font-size:clamp(1.6rem,3.2vw,2.75rem);line-height:1.12;letter-spacing:-0.02em}
h3{font-size:1.15rem;line-height:1.25;letter-spacing:-0.01em;margin-bottom:.35em}
p{margin:0 0 1em}

/* ---- Eyebrow (wide-tracked caps + leading rule) ---- */
.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-size:13px;font-weight:600;letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;color:var(--sp-blue);margin-bottom:22px;
}
.eyebrow::before{content:"";width:34px;height:2px;background:currentColor;flex:0 0 auto}
.eyebrow.on-ink{color:#7FA6F5}

/* ---- Blueprint grid background ---- */
.gridbg{position:relative;background:var(--sp-cream)}
.gridbg::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(to right, var(--sp-grid-strong) 1px, transparent 1px),
    linear-gradient(to bottom, var(--sp-grid-strong) 1px, transparent 1px),
    linear-gradient(to right, var(--sp-grid) 1px, transparent 1px),
    linear-gradient(to bottom, var(--sp-grid) 1px, transparent 1px);
  background-size:
    calc(var(--grid-module)*4) calc(var(--grid-module)*4),
    calc(var(--grid-module)*4) calc(var(--grid-module)*4),
    var(--grid-module) var(--grid-module),
    var(--grid-module) var(--grid-module);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%);
}
.gridbg > *{position:relative}

/* ---- Header ---- */
.site-header{
  background:var(--sp-cream);border-bottom:1px solid var(--sp-line);
  position:sticky;top:0;z-index:20;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px}
.brand{display:flex;align-items:center;gap:18px;min-width:0}
.brand img{height:52px;width:auto}
.brand .rule{width:1px;height:26px;background:var(--sp-line-2);flex:0 0 auto}
.brand .tagline{
  font-size:12px;font-weight:600;letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;color:var(--sp-mute);
}
.header-link{
  font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sp-blue);text-decoration:underline;text-underline-offset:4px;
  text-decoration-thickness:1.5px;white-space:nowrap;flex:0 0 auto;margin-left:16px;
}
@media (max-width:820px){ .brand .rule,.brand .tagline{display:none} }

/* ---- Hero ---- */
.hero{padding:72px 0 88px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:44px;align-items:start}
@media (min-width:960px){ .hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(370px,.85fr);gap:56px} }
.hero p.lead{font-size:20px;line-height:1.5;color:var(--sp-ink-soft);max-width:560px;margin:0 0 28px}

/* ---- Spec readout (the technical input -> output panel) ---- */
.spec{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  background:var(--sp-blue-tint);border:1px solid var(--sp-blue-line);
  border-radius:var(--radius-md);padding:16px 20px;max-width:520px;
}
.spec .col{display:flex;flex-direction:column;gap:8px}
.spec .lbl{
  font-family:var(--font-mono);font-size:11px;letter-spacing:var(--ls-caps);
  text-transform:uppercase;color:var(--sp-mute);
}
.spec .from{
  display:inline-flex;align-items:baseline;gap:5px;background:var(--sp-paper);
  border:1px solid var(--sp-line-2);border-radius:var(--radius-sm);padding:8px 12px;
  font-size:19px;font-weight:600;color:var(--sp-ink);
}
.spec .arrow{color:var(--sp-mute);font-size:22px}
.spec .to{
  display:inline-flex;align-items:baseline;gap:8px;
  font-size:22px;font-weight:700;color:var(--accent);
}
.spec .to .unit{font-family:var(--font-mono);font-size:14px;font-weight:500}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-sans);font-weight:600;font-size:16px;line-height:1;
  border-radius:var(--radius-md);cursor:pointer;text-decoration:none;
  padding:16px 30px;min-height:54px;border:1px solid var(--accent);
  background:var(--accent);color:#fff;
  transition:background 120ms cubic-bezier(.4,0,.2,1),transform 120ms cubic-bezier(.4,0,.2,1);
}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.btn:active{transform:translateY(1px)}
.btn.full{width:100%}

/* ---- Card (paper panel, optional cobalt right edge) ---- */
.card{
  position:relative;background:var(--sp-paper);border:1px solid var(--sp-line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:30px;overflow:hidden;
}
.card.accent::after{
  content:"";position:absolute;top:0;right:0;width:3px;height:100%;background:var(--accent);
}

/* ---- Badge ---- */
.badge{
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  letter-spacing:var(--ls-caps);text-transform:uppercase;padding:4px 10px;
  border-radius:var(--radius-sm);line-height:1;
  color:var(--accent);background:var(--sp-blue-tint);border:1px solid var(--sp-blue-line);
  margin-bottom:14px;
}

/* ---- Drawing-sheet title block ---- */
.titleblock{
  display:inline-flex;border:1px solid var(--sp-ink);border-radius:var(--radius-xs);
  background:var(--sp-ink);font-family:var(--font-mono);overflow:hidden;margin-bottom:20px;
}
.titleblock.light{background:transparent;border-color:rgba(243,241,234,.28)}
.titleblock .cell{
  padding:8px 14px;display:flex;flex-direction:column;gap:3px;
  border-left:1px solid rgba(243,241,234,.18);
}
.titleblock .cell:first-child{border-left:none}
.titleblock .k{
  font-size:10px;letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:rgba(243,241,234,.55);
}
.titleblock .v{font-size:13px;font-weight:500;letter-spacing:var(--ls-mono);color:var(--text-on-ink)}
.titleblock .v.accent{color:#7FA6F5}

/* ---- Sections ---- */
section{padding:80px 0}
.band{background:var(--sp-cream-2);border-top:1px solid var(--sp-line)}
.paper{background:var(--sp-paper);border-top:1px solid var(--sp-line)}

/* ---- Comparison (the reframe) ---- */
.cols{display:grid;grid-template-columns:1fr;gap:44px;margin-top:40px}
@media (min-width:900px){ .cols{grid-template-columns:1fr 1fr;gap:56px} }
.crow{
  display:grid;grid-template-columns:1fr;gap:6px;
  padding:18px 0;border-top:1px solid var(--sp-line);
}
@media (min-width:520px){ .crow{grid-template-columns:190px 1fr;gap:24px;align-items:start} }
.crow .term{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--sp-ink)}
.crow .term.struck{color:var(--sp-red);text-decoration:line-through;text-decoration-thickness:2px}
.crow .desc{font-size:16px;line-height:1.5;color:var(--sp-ink-soft)}
.mark{
  width:20px;height:20px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;
  border:1.5px solid currentColor;
}
.mark.cross{color:var(--sp-red)}
.mark.check{color:var(--accent)}
.mark svg{display:block}

/* ---- Steps ---- */
.steps{display:grid;grid-template-columns:1fr;gap:32px;margin-top:40px;counter-reset:s}
@media (min-width:800px){ .steps{grid-template-columns:repeat(3,1fr)} }
.step{position:relative;padding-left:52px}
.step::before{
  counter-increment:s;content:"0" counter(s);
  position:absolute;left:0;top:2px;
  font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--accent);
  border:1px solid var(--sp-blue-line);background:var(--sp-blue-tint);
  border-radius:var(--radius-xs);padding:4px 8px;
}

/* ---- Audience cards ---- */
.aud{display:grid;grid-template-columns:1fr;gap:20px;margin-top:40px}
@media (min-width:820px){ .aud{grid-template-columns:repeat(3,1fr)} }
.aud .card{box-shadow:var(--shadow-sm);padding:26px}
.aud .who{
  font-family:var(--font-mono);font-size:11px;letter-spacing:var(--ls-caps);
  text-transform:uppercase;color:var(--sp-mute);margin-bottom:10px;
}

/* ---- Objection ---- */
.prose{max-width:66ch}

/* ---- Conversion band ---- */
.convert{background:var(--sp-ink);color:var(--text-on-ink);padding:88px 0}
.convert h2{color:#fff}
.convert p{color:rgba(243,241,234,.72)}
.convert ul{padding-left:20px;margin:0 0 8px}
.convert li{margin-bottom:8px;color:rgba(243,241,234,.72)}
.convert-grid{display:grid;grid-template-columns:1fr;gap:44px;align-items:start}
@media (min-width:960px){ .convert-grid{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:56px} }

/* ---- Form ---- */
.f-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.f-field label{font-size:16px;font-weight:600;color:var(--sp-ink);letter-spacing:-0.01em}
.f-field input,.f-field select,.f-field textarea{
  width:100%;font-family:var(--font-sans);font-size:16px;color:var(--sp-ink);
  background:var(--sp-paper);border:1px solid var(--sp-line-2);border-radius:var(--radius-md);
  padding:13px 14px;outline:none;
  transition:border-color 120ms,box-shadow 120ms;
}
.f-field textarea{resize:vertical;min-height:88px;line-height:1.5}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{
  border-color:var(--accent);box-shadow:var(--shadow-focus);
}
.f-consent{font-size:13px;color:var(--sp-mute);margin:12px 0 0;line-height:1.45}
.f-msg{margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-md);font-size:15px;display:none}
.f-msg.show{display:block}
.f-msg.ok{background:var(--sp-blue-tint);color:var(--sp-blue-deep);border:1px solid var(--sp-blue-line)}
.f-msg.err{background:var(--sp-red-tint);color:#7a1f1f;border:1px solid #eec4c0}

/* ---- Footer ---- */
.site-footer{background:var(--sp-ink);color:rgba(243,241,234,.7);padding:56px 0;border-top:1px solid rgba(243,241,234,.12)}
.site-footer .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
.site-footer img{height:42px;margin-bottom:18px}
.site-footer p{margin:0;max-width:400px;font-size:15px;line-height:1.6;color:rgba(243,241,234,.7)}
.site-footer a{color:rgba(243,241,234,.9)}
