/* Unified typography — calm, consistent and readable across every page. */
:root{
  --font-display:"Source Serif 4",Georgia,serif;
  --font-text:"Space Grotesk",Arial,sans-serif;
}

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

body{
  font-family:var(--font-text)!important;
  font-weight:400;
  font-kerning:normal;
  font-feature-settings:"kern" 1,"liga" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

html body[class] :is(h1,h2,h3,h4,.headline,.display,.faq-q){
  font-family:var(--font-display)!important;
  font-style:normal!important;
  font-weight:500!important;
  letter-spacing:-.02em!important;
  text-wrap:balance;
}

html body[class] :is(
  p,li,a,button,label,input,textarea,select,
  .mono,.tag,.eyebrow,.trust-strip,.sub,.role,.l,
  .sheet-tag,.ptab,.stat-label,.compare-label,.compare-cap .label,
  .highlight-card .cap .label,.contact-info,.form-note,
  .floor-badge .n,.portfolio-card .n,.portfolio-card .label,
  .plus,.compare-divider,.listing-ph span,.listing-cap .price,.footer-bottom span
){
  font-family:var(--font-text)!important;
  font-style:normal!important;
}

html body[class] p{
  font-size:1rem!important;
  line-height:1.72!important;
  letter-spacing:normal!important;
  text-wrap:pretty;
}

html body[class] .hero .headline{
  font-size:clamp(3.45rem,6.15vw,6.5rem)!important;
  line-height:.96!important;
  letter-spacing:-.025em!important;
}

html body[class] .hero .headline :is(em,i){
  font-family:inherit!important;
  font-style:normal!important;
  font-weight:inherit!important;
}

html body[class] .hero .lede{
  font-family:var(--font-text)!important;
  font-size:1.05rem!important;
  font-weight:400!important;
  line-height:1.72!important;
  letter-spacing:normal!important;
}

html body[class] .section-head h2{
  font-size:clamp(2.35rem,4vw,3.75rem)!important;
  line-height:1.05!important;
  letter-spacing:-.022em!important;
}

html body[class] :is(.service-card,.about-card,.step-body,.step,.why-card,.listing-cap) h3{
  font-size:clamp(1.22rem,1.8vw,1.5rem)!important;
  line-height:1.25!important;
  letter-spacing:-.015em!important;
}

html body[class] :is(
  .service-card p,.about-card p,.step-body p,.step p,.why-card p,
  .listing-cap p,.compare-cap .desc,.highlight-card .cap .desc,.faq-a p
){
  font-family:var(--font-text)!important;
  font-size:1rem!important;
  line-height:1.7!important;
  letter-spacing:normal!important;
}

html body[class] .faq-q{
  font-size:clamp(1.1rem,1.4vw,1.2rem)!important;
  line-height:1.35!important;
  letter-spacing:-.01em!important;
}

html body[class] :is(
  .mono,.tag,.eyebrow,.section-head .tag,.section-head .mono,
  .sheet-tag span,.compare-label,.compare-cap .label,
  .highlight-card .cap .label,.listing-cap .status,
  .field>label:not(.consent-label),.contact-info .k
){
  font-family:var(--font-text)!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.4!important;
  letter-spacing:.08em!important;
  font-style:normal!important;
}

html body[class] .trust-strip{
  font-family:var(--font-text)!important;
  font-size:.86rem!important;
  font-weight:500!important;
  line-height:1.55!important;
  letter-spacing:.015em!important;
}

html body[class] :is(.btn,nav a,.ptab,.lang-toggle a,.lang-toggle button){
  font-family:var(--font-text)!important;
  font-style:normal!important;
  font-weight:600!important;
  line-height:1.3!important;
  letter-spacing:.04em!important;
}

html body[class] .btn{font-size:.86rem!important}
html body[class] :is(nav a,.ptab){font-size:.82rem!important}
html body[class] :is(.lang-toggle a,.lang-toggle button){font-size:.75rem!important}

html body[class] :is(input,textarea,select){
  font:500 16px/1.45 var(--font-text)!important;
  letter-spacing:normal!important;
}

html body[class] .consent-label span{
  font-family:var(--font-text)!important;
  font-size:.9rem!important;
  font-weight:400!important;
  line-height:1.55!important;
  letter-spacing:normal!important;
}

html body[class] .form-note{
  font-family:var(--font-text)!important;
  font-size:.86rem!important;
  font-weight:400!important;
  line-height:1.5!important;
  letter-spacing:normal!important;
  font-style:normal!important;
}

html body[class] footer :is(.mono,.links){
  font-family:var(--font-text)!important;
  font-size:.78rem!important;
  font-weight:400!important;
  line-height:1.55!important;
  letter-spacing:.035em!important;
}

html body[class] .listings-note{font-style:normal!important}

/* CAD cards still declare JetBrains Mono inside the page stylesheet. */
html body.page-cad :is(.service-card .n,.pcard .cap .label){
  font-family:var(--font-text)!important;
  font-style:normal!important;
}

/* The ampersand and multiplication mark must look like part of the line. */
html body[class] .amp{
  font-family:inherit!important;
  font-size:1em!important;
  font-style:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
  text-transform:inherit!important;
  color:inherit!important;
}

html body.page-legal h1{
  font-size:clamp(3rem,6vw,5.4rem)!important;
  line-height:.98!important;
  letter-spacing:-.025em!important;
}

html body.page-legal section h2{
  font-family:var(--font-display)!important;
  font-size:1.25rem!important;
  font-weight:500!important;
  line-height:1.3!important;
  letter-spacing:-.01em!important;
  text-transform:none!important;
}

html body.page-legal section :is(p,li,.mono){
  font-family:var(--font-text)!important;
  font-size:1rem!important;
  line-height:1.72!important;
  letter-spacing:normal!important;
}

@media(max-width:760px){
  html body[class] .hero .headline{
    font-size:clamp(2.75rem,13vw,3.55rem)!important;
    line-height:.98!important;
    letter-spacing:-.022em!important;
  }

  html body[class] .section-head h2{
    font-size:clamp(2rem,9vw,2.65rem)!important;
    line-height:1.08!important;
  }

  html body[class] :is(.service-card,.about-card,.step-body,.step,.why-card,.listing-cap) h3{
    font-size:1.25rem!important;
    line-height:1.28!important;
  }

  html body[class] .faq-q{
    font-size:1.12rem!important;
    line-height:1.38!important;
  }

  html body.page-legal h1{
    font-size:clamp(2.65rem,12vw,3.7rem)!important;
    line-height:1!important;
  }
}
