/* Shared SporeValley typography: PP Writer Display + Text.
   Regular 400 throughout; true Display Italic for editorial emphasis.
   Angry Gabriel retains its original wordmark and hero quotation. */
@font-face{
  font-family:'PP Writer Display';
  src:url('/assets/fonts/PPWriter-Regular.otf') format('opentype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:'PP Writer Display';
  src:url('/assets/fonts/PPWriter-RegularItalic.otf') format('opentype');
  font-style:italic;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:'PP Writer Text';
  src:url('/assets/fonts/PPWriter-RegularText.otf') format('opentype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
:root{
  --brand-display:'PP Writer Display',Georgia,'Times New Roman',serif;
  --brand-text:'PP Writer Text',Georgia,'Times New Roman',serif;
  --serif:var(--brand-display);
  --type-measure-reading:65ch;
  --type-size-display:5rem;
  --type-size-h1:clamp(2.5rem,calc(1.5rem + 3vw),4rem);
  --type-size-h2:clamp(2.25rem,calc(2rem + 1.1vw),3rem);
  --type-size-h3:clamp(1.75rem,calc(1.5rem + .6vw),2rem);
  --type-size-reading:clamp(1.75rem,2.3vw,2rem);
  --type-size-lead:clamp(1.25rem,1.7vw,1.5rem);
  --type-size-body:1.125rem;
  --type-size-compact:1rem;
  --type-size-action:1rem;
  --type-size-label:.75rem;
  --type-size-note:.875rem;
  --type-size-navigation:1rem;
  --type-leading-h1:1.15;
  --type-leading-h2:1.3;
  --type-leading-h3:1.35;
  --type-leading-reading:1.4;
  --type-leading-lead:1.5;
  --type-leading-body:1.5;
  --type-leading-compact:1.5;
  --type-leading-action:1.5;
  --type-leading-label:1.6;
  --type-leading-note:1.6;
  --type-leading-navigation:1.5;
  --type-tracking-display:-.019em;
  --type-tracking-heading:-.019em;
  --type-tracking-lead:-.01em;
  --type-tracking-label:.08em;
}

/* Role mapping: one shared type scale across home, privacy and error pages. */
:root{
  --sans:var(--brand-text);
  --label-font:var(--brand-text);
  --original-serif:Georgia,'Times New Roman',serif;
}
body{
  font-family:var(--brand-text);
  font-size:var(--type-size-body);
  font-weight:400;
  line-height:var(--type-leading-body);
  letter-spacing:0;
  font-synthesis:none;
}
/* These two brand elements deliberately retain every original type setting. */
.wordmark,.hero h1{font-family:var(--original-serif);font-synthesis:weight style}
.wordmark span{
  font:400 9px/1.1 Arial,Helvetica,sans-serif;
  letter-spacing:3.5px;
}
h1,h2,h3{font-family:var(--brand-display);font-weight:400}
.intro h2,.document h1{
  font-family:var(--brand-display);
  font-weight:400;
  font-size:var(--type-size-h1);
  line-height:var(--type-leading-h1);
  letter-spacing:var(--type-tracking-display);
}
.service-copy h3{
  font-size:var(--type-size-h3);
  line-height:var(--type-leading-h3);
  letter-spacing:var(--type-tracking-heading);
}
.approach h2{
  font-size:var(--type-size-h2);
  line-height:var(--type-leading-h2);
  letter-spacing:var(--type-tracking-heading);
}
.contact h2{
  font-size:var(--type-size-display);
  line-height:var(--type-leading-h1);
  letter-spacing:var(--type-tracking-display);
}
.intro-description,.approach-copy>p:first-child,.document .document-lead{
  font:400 var(--type-size-lead)/var(--type-leading-lead) var(--brand-display);
  letter-spacing:var(--type-tracking-lead);
}
.service-copy p,.document p{
  font:400 var(--type-size-body)/var(--type-leading-body) var(--brand-text);
  letter-spacing:0;
}
.approach-copy .supporting{
  font:400 var(--type-size-compact)/var(--type-leading-compact) var(--brand-text);
  letter-spacing:0;
}
.process-steps li{
  font:italic 400 var(--type-size-h2)/var(--type-leading-h2) var(--brand-display);
  letter-spacing:var(--type-tracking-heading);
}
.eyebrow,.intro .eyebrow,.process .eyebrow,.contact .eyebrow,.hero-scroll{
  font:400 var(--type-size-label)/var(--type-leading-label) var(--label-font);
  letter-spacing:var(--type-tracking-label);
}
.send-button,.back-link,.email-link{
  font:400 var(--type-size-action)/var(--type-leading-action) var(--brand-text);
  letter-spacing:0;
}
.form-field label,.form-note,.form-status,.site-footer{
  font:400 var(--type-size-note)/var(--type-leading-note) var(--brand-text);
  letter-spacing:0;
}
.form-field input,.form-field textarea{
  font:400 var(--type-size-body)/var(--type-leading-body) var(--brand-text);
  letter-spacing:0;
}
.document{max-width:820px}
.document h2{
  font:400 var(--type-size-reading)/var(--type-leading-reading) var(--brand-display);
  letter-spacing:var(--type-tracking-heading);
}
.document p{max-inline-size:var(--type-measure-reading)}
.document .document-lead{margin-bottom:36px}
.site-footer{flex-wrap:wrap}
.site-footer p{max-width:none}
/* Share the main wordmark's first text baseline with the navigation. */
.site-header{align-items:baseline}
.wordmark{gap:5px}
.site-header nav{
  align-items:baseline;
  font:400 var(--type-size-label)/var(--type-leading-label) var(--brand-text);
  letter-spacing:var(--type-tracking-label);
  text-transform:uppercase;
}
.site-header nav a{align-items:center;min-height:44px;padding:12px 0}
.site-header nav a:after{bottom:5px}
.nav-contact .arrow-icon{width:14px;height:14px;margin-top:0}
@media(max-width:700px){
  .wordmark{gap:4px}
  .wordmark span{font-size:8px;letter-spacing:2.8px}
}
@media(max-width:520px){
  .nav-expertise{display:none}
  .site-header{gap:12px}
  .site-header nav{gap:16px}
  .nav-contact{gap:6px}
}
