/* Typography rules (30.10.2026). Loaded last. Changes only sizes, line length and alignment, not page layout.
   Rules: body copy 60–72 characters per line and left-aligned; body text at least 16–17 px;
   headline scale ~1.25 between levels (H1 subpage ≈ 64 px, H2 ≈ 50 px, H3 ≈ 24–30 px at 1440 px). */
:root{--measure:68ch;}

/* ---- headline scale ---- */
h2{font-size:clamp(2rem,3.5vw,3.2rem);line-height:1.08;}
.hero h1{font-size:clamp(3rem,6.4vw,6rem);max-width:12ch;}
.phero h1{font-size:clamp(2.4rem,4.4vw,4.2rem);max-width:20ch;}
.phero.narrow h1{font-size:clamp(2.1rem,3.6vw,3.4rem);max-width:26ch;}
.mani{font-size:clamp(1.8rem,3.8vw,3.4rem);max-width:26ch;}
.cta h2{font-size:clamp(2rem,3.4vw,3.1rem);max-width:18ch;}
.sec-head h2{max-width:18ch;}
.box h3,.step h3,.signal h3{font-size:clamp(1.25rem,1.6vw,1.5rem);line-height:1.2;}

/* ---- leads: wider, readable ---- */
.lead{font-size:clamp(1.06rem,1.25vw,1.2rem);line-height:1.6;}
.hero .lead{max-width:60ch;}
.phero .lead{max-width:var(--measure);}
.sec-head .lead{max-width:58ch;}
.contact .lead{max-width:48ch;}
.about .lead{max-width:58ch;}
.method .lead{max-width:46ch;}
.show .intro .lead{max-width:40ch;}
.split .lead{max-width:var(--measure);}

/* ---- body copy: at least ~16.5 px, generous line height, never narrower than ~30 ch in cards ---- */
.svc-row p{max-width:62ch;font-size:1.03rem;line-height:1.6;}
.box p,.step p,.signal p,.prow p,.box li,.qaitem{font-size:1.03rem;line-height:1.6;}
.note{max-width:72ch;font-size:1.02rem;}
.faq .ans{max-width:72ch;font-size:1.03rem;line-height:1.65;}

/* ---- card grids: two wide columns instead of four narrow ones (desktop and tablet) ---- */
@media (min-width:621px){
  .grid.c4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .steps:not(.c3){grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ---- response promise and free-analysis note (contact) ---- */
.free-note{max-width:48ch;margin:-6px 0 28px;font-size:1rem;line-height:1.55;color:var(--soft);padding-left:14px;box-shadow:inset 2px 0 0 var(--teal);}
.f-promise{margin:-4px 0 0;font-size:.86rem;color:var(--faint);}

/* ---- home: how we work (strengths) ---- */
.why .about-grid{align-items:start;}
.why .portrait{position:sticky;top:96px;max-width:440px;}
.why h2{max-width:20ch;margin-bottom:clamp(28px,3vw,40px);}
.why-list{list-style:none;margin:0;padding:0;counter-reset:wl;}
.why-list li{counter-increment:wl;display:grid;grid-template-columns:3.2rem minmax(0,1fr);column-gap:8px;padding:22px 0;border-top:1px solid var(--line);}
.why-list li:last-child{border-bottom:1px solid var(--line);}
.why-list li::before{content:counter(wl,decimal-leading-zero);grid-row:1/3;font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;color:var(--teal);padding-top:.45em;}
.why-list h3{font-size:clamp(1.2rem,1.5vw,1.4rem);line-height:1.2;margin:0 0 6px;}
.why-list p{margin:0;max-width:60ch;font-size:1.03rem;line-height:1.6;color:var(--soft);}
@media (max-width:960px){.why .portrait{position:relative;top:0;max-width:360px;}}

/* ---- page hero with a photo slot ---- */
.phero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,5vw,80px);align-items:center;}
.phero.has-photo h1{max-width:16ch;}
.phero-photo{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/5;background:var(--bg-3);position:relative;}
.phero-photo::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 1px var(--line) inset;pointer-events:none;}
.phero-photo img{width:100%;height:100%;object-fit:cover;}
@media (max-width:960px){
  .phero-grid{grid-template-columns:minmax(0,1fr);}
  .phero-photo{aspect-ratio:16/10;max-width:640px;}
}
.quote blockquote.long{font-size:clamp(1.45rem,2.4vw,2.1rem);line-height:1.3;max-width:46ch;}
