:root{
  --font-display:"Tautz","Times New Roman",serif;   /* always UPPERCASE */
  --font-body:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-notice:"Montserrat",var(--font-body);
  --font-label:"Spectral",Georgia,serif;

  --weight-display:500;   /* Tautz Medium */
  --weight-display-light:300;
  --weight-body:300;      /* Inter Light — the only body weight in the source */

  /* Desktop scale (1600px frame) */
  --size-h1:32px;
  --size-h2:26px;
  --size-modal-title:28px;
  --size-phone:20px;
  --size-lead:20px;
  --size-body:18px;
  --size-body-sm:16px;
  --size-fine:13px;
  --size-caption:12px;
  --size-notice:15px;
  --size-state:12px;

  /* Mobile scale (320px frame) */
  --size-h1-m:20px;
  --size-h2-m:19px;
  --size-phone-m:13px;
  --size-lead-m:13px;
  --size-body-m:15px;
  --size-address-m:9px;
  --size-caption-m:11px;
  --size-kicker-m:8px;

  --lh-tight:1; /* @kind font */      /* Tautz headings */
  --lh-snug:1.2; /* @kind font */     /* Tautz lead, captions, notice */
  --lh-body:1.3; /* @kind font */     /* Inter feature rows */
  --lh-relaxed:1.4; /* @kind font */  /* Inter modal body */

  --ls-display:-0.03em;
  --ls-lead:-0.02em;
  --ls-caption:0.02em;
  --ls-state:0.05em;
}

/* Ready-made text roles */
.rl-h1{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--size-h1);line-height:var(--lh-tight);letter-spacing:var(--ls-display);text-transform:uppercase;color:var(--text-heading);margin:0}
.rl-h2{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--size-h2);line-height:var(--lh-tight);letter-spacing:var(--ls-display);text-transform:uppercase;color:var(--text-heading);margin:0}
.rl-lead{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--size-lead);line-height:var(--lh-snug);letter-spacing:var(--ls-lead);text-transform:uppercase;color:var(--text-heading);opacity:var(--text-muted-opacity);margin:0}
.rl-phone{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--size-phone);line-height:var(--lh-snug);letter-spacing:var(--ls-display);color:var(--text-heading)}
.rl-address{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--size-caption);line-height:var(--lh-snug);letter-spacing:var(--ls-display);text-transform:uppercase;color:var(--text-heading)}
.rl-body{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--size-body);line-height:var(--lh-body);color:var(--text-body);margin:0}
.rl-body-sm{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--size-body-sm);line-height:var(--lh-relaxed);color:var(--text-body);margin:0}
.rl-fine{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--size-fine);line-height:var(--lh-snug);color:var(--relict-black);opacity:var(--text-faint-opacity);margin:0}
.rl-caption{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--size-caption);line-height:var(--lh-tight);letter-spacing:var(--ls-caption);text-transform:uppercase;color:var(--text-heading)}
.rl-kicker{font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--size-caption);line-height:var(--lh-snug);letter-spacing:var(--ls-caption);text-transform:uppercase;color:var(--relict-black);opacity:var(--text-faint-opacity)}
.rl-notice{font-family:var(--font-notice);font-weight:400;font-size:var(--size-notice);line-height:var(--lh-snug);color:var(--text-heading)}
.rl-state{font-family:var(--font-label);font-weight:500;font-size:var(--size-state);line-height:var(--lh-tight);letter-spacing:var(--ls-state);text-transform:uppercase;color:var(--relict-white)}

a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--accent)}
