/* ---- Self-hosted fonts (Latin subset — covers German umlauts/ß) ---- */
@font-face{
  font-family:'Poppins'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/poppins/poppins-500.woff2') format('woff2');
}
@font-face{
  font-family:'Poppins'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/poppins/poppins-600.woff2') format('woff2');
}
@font-face{
  font-family:'Poppins'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/poppins/poppins-700.woff2') format('woff2');
}
@font-face{
  font-family:'Poppins'; font-style:normal; font-weight:800; font-display:swap;
  src:url('../fonts/poppins/poppins-800.woff2') format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:100 900; font-display:swap;
  src:url('../fonts/inter/inter-variable.woff2') format('woff2-variations'), url('../fonts/inter/inter-variable.woff2') format('woff2');
}
@font-face{
  font-family:'Lora'; font-style:italic; font-weight:400; font-display:swap;
  src:url('../fonts/lora/lora-italic-400.woff2') format('woff2');
}

/* ---- Reset ---- */
*, *::before, *::after{ box-sizing:border-box; }
*{ margin:0; }
html{
  scroll-behavior:smooth;
  scroll-padding-top:88px;
  -webkit-text-size-adjust:100%;
}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img, picture, svg{ display:block; max-width:100%; }
h1,h2,h3,h4{ line-height:var(--lh-tight); text-wrap:balance; }
p{ text-wrap:pretty; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul{ list-style:none; padding:0; }

/* ---- Layout helpers ---- */
.container{
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--container-pad);
}
.section{ padding-block:var(--section-pad-y); }

/* ---- Typography helpers ---- */
.eyebrow{
  font-family:var(--font-display);
  font-weight:600;
  font-size:var(--fs-eyebrow);
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.voice{
  font-family:var(--font-body);
  font-weight:500;
}
.sr-only{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---- Skip link ---- */
.skip-link{
  position:fixed; top:-100%; left:1rem; z-index:200;
  background:var(--ink); color:var(--cream);
  font-family:var(--font-display); font-weight:600; font-size:0.9rem;
  padding:0.75rem 1.25rem; border-radius:var(--radius-sm);
  transition:top var(--dur-fast) var(--ease-premium);
}
.skip-link:focus{ top:1rem; }

/* ---- Focus ---- */
a:focus-visible, button:focus-visible, summary:focus-visible, [tabindex]:focus-visible{
  outline:2.5px solid var(--gold);
  outline-offset:3px;
  border-radius:2px;
}

/* ---- Selection ---- */
::selection{ background:var(--gold); color:var(--ink); }
