/* ============================================================
   JURISTLEXONLINE.NL — BASE STYLES
   Reset, typografie, globale elementen
   ============================================================ */

/* Google Fonts import */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Lato:ital,wght@0,300;0,400;0,700;1,300&display=swap');

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--lh-body);
  color: var(--anthracite);
  background-color: var(--off-white);
  letter-spacing: var(--ls-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* ── Typografische hiërarchie ── */

h1, h2, h3, h4 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: var(--ls-display);
  line-height: var(--lh-display);
  color: var(--navy);
  font-weight: 600;
}

h1 {
  font-size: var(--text-h1);
  letter-spacing: var(--ls-display);
}

h2 {
  font-size: var(--text-h2);
  letter-spacing: var(--ls-caps);
}

h3 {
  font-size: var(--text-h3);
  letter-spacing: var(--ls-caps);
  font-weight: 500;
}

h4 {
  font-size: var(--text-body);
  letter-spacing: var(--ls-caps);
  font-weight: 600;
}

/* Subtitel / tagline stijl */
.subtitle,
.tagline {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: var(--text-subtitle);
  color: var(--gold-deep);
  letter-spacing: 0.03em;
  line-height: 1.5;
}

p {
  font-size: var(--text-body);
  line-height: var(--lh-body);
  color: var(--anthracite);
  max-width: 68ch;
}

p + p {
  margin-top: var(--space-sm);
}

/* ── Links ── */
a {
  color: var(--gold);
  text-decoration: none;
  transition: var(--transition);
}

a:hover,
a:focus-visible {
  color: var(--gold-light);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ── Lijsten ── */
ul, ol {
  padding-left: 1.5rem;
}

li {
  line-height: var(--lh-body);
  margin-bottom: 0.4rem;
}

/* ── Citaten ── */
blockquote {
  border-left: 2px solid var(--gold);
  padding-left: var(--space-md);
  margin: var(--space-md) 0;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: var(--text-subtitle);
  color: var(--navy);
}

/* ── HR / scheidingslijn ── */
hr {
  border: none;
  border-top: var(--gold-line);
  width: var(--sep-width);
  margin: var(--space-lg) auto;
  opacity: 0.7;
}

hr.full {
  width: 100%;
  opacity: 0.25;
}

/* ── Afbeeldingen ── */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ── Formulierelementen reset ── */
button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

button {
  cursor: pointer;
  border: none;
  background: none;
}

/* ── Focus toegankelijkheid ── */
:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* ── Hulpklassen typografie ── */
.text-navy    { color: var(--navy); }
.text-gold    { color: var(--gold); }
.text-white   { color: var(--white); }
.text-muted   { color: rgba(250, 250, 248, 0.65); }
.text-center  { text-align: center; }
.text-left    { text-align: left; }
.text-caps    {
  text-transform: uppercase;
  letter-spacing: var(--ls-caps);
}
.text-display {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: var(--ls-display);
}
.text-italic {
  font-family: var(--font-serif);
  font-style: italic;
}

/* ── Gouden accent-lijn (signatuurelement) ── */
.gold-rule {
  display: block;
  width: var(--sep-width);
  height: var(--sep-height);
  background: var(--gold);
  margin: var(--space-md) 0;
}

.gold-rule--center {
  margin-left: auto;
  margin-right: auto;
}

.gold-rule--full {
  width: 100%;
}

/* ── Eyebrow label ── */
.eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gold);
  margin-bottom: var(--space-sm);
}

/* ── Achtergrondvarianten ── */
.bg-navy      { background-color: var(--navy); }
.bg-navy-deep { background-color: var(--navy-deep); }
.bg-off-white { background-color: var(--off-white); }
.bg-white     { background-color: var(--white); }

/* Kleuren op donkere achtergrond */
.bg-navy h1,
.bg-navy h2,
.bg-navy h3,
.bg-navy-deep h1,
.bg-navy-deep h2,
.bg-navy-deep h3 {
  color: var(--off-white);
}

.bg-navy p,
.bg-navy li,
.bg-navy-deep p,
.bg-navy-deep li {
  color: rgba(250, 250, 248, 0.82);
}

/* ── Screen reader only ── */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
}
