/* ============== TUFA Consult — design tokens & base ============== */
:root{
  --ink:#1d1d1d;
  --charcoal:#363636;
  --charcoal-2:#2a2a2a;
  --charcoal-3:#202020;
  --orange:#ff9d3b;
  --orange-deep:#f08410;
  --paper:#ffffff;
  --bg:#faf8f4;
  --bg-2:#f3efe8;
  --muted:#73706a;
  --muted-2:#9a968d;
  --line:rgba(54,54,54,.14);
  --line-soft:rgba(54,54,54,.08);
  --line-dark:rgba(255,255,255,.16);

  --serif:'Newsreader',Georgia,serif;
  --sans:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'Spline Sans Mono',ui-monospace,'SFMono-Regular',monospace;

  --pad:clamp(20px,5vw,84px);
  --maxw:1280px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.5;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--orange);color:#1d1d1d}

/* ---------- typography helpers ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
  display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{
  content:"";width:22px;height:1px;background:var(--orange);display:inline-block;
}
.eyebrow.no-tick::before{display:none}

.display{
  font-family:var(--serif);
  font-weight:420;
  line-height:1.02;
  letter-spacing:-.018em;
  font-size:clamp(40px,7vw,92px);
}
.h2{
  font-family:var(--serif);
  font-weight:440;
  line-height:1.06;
  letter-spacing:-.015em;
  font-size:clamp(30px,4.4vw,54px);
}
.h3{
  font-family:var(--serif);
  font-weight:460;
  line-height:1.12;
  letter-spacing:-.01em;
  font-size:clamp(21px,2.4vw,28px);
}
.lead{
  font-size:clamp(17px,1.5vw,21px);
  line-height:1.6;
  color:#46443f;
  font-weight:400;
  max-width:60ch;
}
.serif-it{font-family:var(--serif);font-style:italic;font-weight:420}

.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);width:100%}
.section{padding-top:clamp(64px,9vw,128px);padding-bottom:clamp(64px,9vw,128px)}

/* ---------- buttons / links ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--sans);font-weight:600;font-size:15px;
  padding:13px 22px;border-radius:2px;white-space:nowrap;
  transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease);
  letter-spacing:.005em;
}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translate(3px,-3px)}
.btn-primary{background:var(--charcoal);color:#fff}
.btn-primary:hover{background:#1d1d1d}
.btn-orange{background:var(--orange);color:#1d1d1d}
.btn-orange:hover{background:var(--orange-deep)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--charcoal)}

.tlink{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-weight:600;font-size:15px;color:var(--ink);
  border-bottom:1px solid var(--line);padding-bottom:3px;
  transition:border-color .25s var(--ease),gap .25s var(--ease);
}
.tlink .arr{transition:transform .3s var(--ease)}
.tlink:hover{border-color:var(--orange)}
.tlink:hover .arr{transform:translate(3px,-3px)}

/* ---------- hairlines ---------- */
.rule{height:1px;background:var(--line);border:none;width:100%}

/* ---------- reveal (visible by default; subtle motion only where supported) ---------- */
.reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){ *{scroll-behavior:auto} }
