/* ============================================================
   INSAR V3 — BASE & TYPOGRAPHY
   Editorial serif headlines, sans for everything functional.
   ============================================================ */

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  scroll-padding-top:var(--header-h);
}

body{
  font-family:var(--sans);
  background:var(--black);
  color:var(--ivory);
  font-size:clamp(.95rem,.9rem + .2vw,1.0625rem);
  font-weight:300;
  line-height:1.68;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
::selection{ background:var(--gold); color:var(--black); }

:focus-visible{ outline:1px solid var(--gold-2); outline-offset:3px; }

/* ---- Headings ---- */
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:300;
  line-height:1.05;
  letter-spacing:-.015em;
  color:var(--ivory-2);
  font-variation-settings:'opsz' 120;
}
h1{ font-size:clamp(2.85rem,1.5rem + 5.4vw,6rem); line-height:1.0; }
h2{ font-size:clamp(2.15rem,1.3rem + 3.4vw,4.1rem); }
h3{ font-size:clamp(1.32rem,1.08rem + 1.1vw,1.95rem); letter-spacing:-.008em; }
h4{ font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; line-height:1.4; }

/* The single decorative full-stop that ends a headline */
.dot{ color:var(--gold); }
/* Light-weight italic serif accent */
.em{ font-style:italic; font-weight:300; }

/* ---- Layout primitives ---- */
.container{
  width:100%; max-width:var(--container);
  margin-inline:auto; padding-inline:var(--gut);
}
.container--wide{ max-width:1560px; }
.section{ padding-block:var(--section-pad); position:relative; }
.section--tight{ padding-block:clamp(56px,7vw,100px); }

/* Ivory (light) sections — invert the type colours */
.section--ivory{ background:var(--ivory-2); color:var(--ink-70); }
.section--ivory h1,.section--ivory h2,
.section--ivory h3{ color:var(--ink); }
.section--ivory h4{ color:var(--ink); }

.lead{ font-size:clamp(1rem,.95rem + .3vw,1.15rem); color:var(--ivory-70); max-width:56ch; }
.section--ivory .lead{ color:var(--ink-70); }

.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;
}
