/* Typography: single owner of family, size, weight, tracking and case.
   Headings & UI labels: Raleway. Reading text: Open Sans. */

body{font-family:var(--font-body);font-size:var(--fs-md);font-weight:400;line-height:var(--lh-body);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}
p{line-height:var(--lh-body);text-wrap:pretty}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:var(--lh-head);letter-spacing:-.01em;word-spacing:.06em;text-wrap:balance}
strong,b{font-weight:700}
button,input,textarea,select{font-family:inherit}

/* Display + section headings */
.hero h1{line-height:1.04;letter-spacing:-.025em;font-weight:700}
.case-hero h1{font-size:clamp(2.125rem,4vw,3.375rem);line-height:1.1;letter-spacing:-.02em}
.section-head h2{font-size:var(--fs-h2);letter-spacing:-.025em;line-height:1.08}
.contact h2{font-size:clamp(2.25rem,4.6vw,3.9rem);letter-spacing:-.025em;line-height:1.08}
.case-next h2{font-size:clamp(1.75rem,3vw,2.375rem);letter-spacing:-.02em}
.case-prose h2{font-size:clamp(1.625rem,2.4vw,2rem);letter-spacing:-.015em;line-height:1.18}
.case-prose h3{font-size:1.3125rem;letter-spacing:0;line-height:1.25}

/* Card + component headings */
.intent h3{font-size:var(--fs-h3);letter-spacing:0}
.solution h3,.insight h3{font-size:1.25rem;letter-spacing:0;line-height:1.22}
.industry h3{font-size:1.5rem;letter-spacing:-.005em}
.why h3{font-size:1.25rem;letter-spacing:0}
.result-tile h3{font-size:var(--fs-md);letter-spacing:0;line-height:1.3}
.inline-cta h3{font-size:1.375rem}
.contact-panel h3{font-size:1.375rem}
.case-information h3{font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:-.02em;line-height:1.15}

/* Figures: lining, tight, heavy */
.result-tile strong,.case-metrics strong,.side-metric strong{font-family:var(--font-head);font-weight:700;letter-spacing:-.02em;line-height:1;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.result-tile strong{font-size:clamp(2.5rem,4.4vw,3.9rem);padding-bottom:.06em}
.case-metrics strong{font-size:1.75rem}
.side-metric strong{font-size:2.125rem}

/* Eyebrows / labels */
.micro{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.insight .micro{font-size:var(--fs-xs)}
.case-information .micro{text-transform:none;letter-spacing:.02em;font-size:var(--fs-sm);font-weight:600}
.trust-grid div{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em}
.case-no{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em}
.insight-tag,.preview-tag{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:700}
.detail-meta b{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em}

/* Brand + nav */
.brand{text-transform:uppercase;font-family:var(--font-head);font-size:1.5rem;font-weight:700;letter-spacing:0}
.brand span{font-size:8px;font-weight:600;letter-spacing:.2em}

.navlinks>a:not(.button){font-family:var(--font-head);font-size:.875rem;font-weight:600;letter-spacing:.005em}

/* Actions */
.button{font-family:var(--font-head);font-size:var(--fs-sm);font-weight:700;letter-spacing:.01em}
.aside-sticky .button{font-size:var(--fs-sm)}
.text-link,.back-link,.next-list a{font-family:var(--font-head);font-weight:700}
.intent small{font-family:var(--font-head)}
.text-link{font-size:var(--fs-sm)}
.back-link{font-size:var(--fs-sm)}
.intent small{font-size:var(--fs-xs);font-weight:600}
.next-list a{font-size:var(--fs-sm)}
.faq summary{font-family:var(--font-head);font-size:1.125rem;font-weight:700;line-height:1.3}
.field label{font-size:var(--fs-sm);font-weight:600}

/* Reading text */
.hero p{font-size:var(--fs-lg);line-height:1.6}
.section-head p,.case-hero p,.case-prose p,.detail-bullets{font-size:var(--fs-md)}
.detail-bullets{line-height:1.8}
.case-prose p{line-height:1.8}
.intent p,.solution p,.inline-cta p,.industry p,.why p,.result-tile p,.case-information p,.insight p,.contact-panel p,.faq .answer,.detail-meta span,.tech-table{font-size:var(--fs-sm)}
.detail-quote{font-family:var(--font-head);font-size:1.3125rem;font-weight:500;line-height:1.5;letter-spacing:-.005em}
.tech-table th{font-family:var(--font-head);font-weight:700}

/* Small print */
.hero-note,.results-note,.case-disclaimer,.case-metrics small,.side-metric small,.use-cases,.industry .use-cases,.breadcrumbs,.detail-pic span,.source-note,.form-note,.form-feedback,.footer p,.foot-links{font-size:var(--fs-xs)}
.form-feedback{font-size:var(--fs-sm)}
.use-cases,.industry .use-cases{font-weight:600}

/* Hero diagram (placeholder: gets redrawn with the illustration pass) */







@media(max-width:1100px){.navlinks>a:not(.button){font-size:.8125rem}}
@media(max-width:530px){:root{--fs-md:1rem}.hero p{font-size:var(--fs-md)}}
@media(max-width:850px){.navlinks>a:not(.button){font-size:1rem}}
.step-name{font-family:var(--font-head);font-size:1.375rem;font-weight:700;line-height:1.2;letter-spacing:-.005em}
.stepnum-text{font-family:var(--font-head);font-size:var(--fs-sm);font-weight:700}
.step-body p{font-size:var(--fs-md)}
.process .section-head p,.split .section-head p{font-size:var(--fs-md)}
.step-body .step-output{font-size:var(--fs-sm);font-weight:600;line-height:1.5}
.step-output span{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.faq-title{font-size:clamp(2.125rem,4vw,3.2rem);letter-spacing:-.025em;line-height:1.1}
.contact .contact-note{font-size:var(--fs-xs)}

/* Numbered section labels: "01 · lower case text" with 8px gaps around the dot */
.micro-seq{display:inline-flex;align-items:baseline;gap:8px;font-weight:600;text-transform:lowercase}
.micro-seq .micro-text::before{content:'\00b7';margin-right:8px}
.tags li{font-family:var(--font-head);font-size:var(--fs-xs);font-weight:600;letter-spacing:.005em}
.industry p{font-size:var(--fs-sm)}
