/* Gezondheidscentrum Neerbeek — huisstijl */

/* Atkinson Hyperlegible (Braille Institute, SIL Open Font License, zie fonts/OFL-LICENSE.txt).
   Zelf gehost: er gaat geen verzoek naar Google Fonts. */
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: italic; font-weight: 700; font-display: swap;
  src: url("fonts/atkinson-hyperlegible-latin-700-italic.woff2") format("woff2"); }

:root {
  --blauw: #02428A;
  --blauw-donker: #01305f;
  --groen: #C3D550;
  --groen-licht: #eef3cf;
  --groen-zacht: #f6f9e6;
  --tekst: #1f2a37;
  --tekst-zacht: #465263;
  --rand: #dfe5ec;
  --wit: #ffffff;
  --radius: 14px;
  --schaduw: 0 1px 2px rgba(2, 66, 138, .06), 0 8px 24px rgba(2, 66, 138, .08);
  --max: 1240px;                                   /* breder dan dit wordt de inhoud nooit */
  --rand-zijkant: clamp(16px, 4vw, 40px);           /* ruimte links/rechts, groeit mee */
  --ruimte-sectie: clamp(44px, 6vw, 88px);          /* ruimte boven/onder secties */
  --kolom-gat: clamp(24px, 4vw, 64px);
}

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

/* Tekst groeit rustig mee: 16px op telefoon/tablet, tot 18px op grote schermen (daarna niet groter).
   In procenten, zodat een grotere lettergrootte die de bezoeker zelf instelt blijft werken. */
html { scroll-behavior: smooth; font-size: clamp(100%, 85% + .3vw, 112.5%); }

body {
  margin: 0;
  font-family: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--tekst);
  background: var(--wit);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--blauw); text-underline-offset: 3px; }
a:hover { color: var(--blauw-donker); }

:focus-visible { outline: 3px solid var(--groen); outline-offset: 2px; border-radius: 4px; }

.container { width: 100%; max-width: calc(var(--max) + 2 * var(--rand-zijkant)); margin: 0 auto; padding: 0 var(--rand-zijkant); }

.skip-link {
  position: absolute; left: -9999px; top: 8px;
  background: var(--blauw); color: var(--wit); padding: 8px 14px; border-radius: 8px; z-index: 100;
}
.skip-link:focus { left: 8px; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: saturate(160%) blur(8px);
  border-top: 5px solid var(--blauw);
  border-bottom: 1px solid var(--rand);
}
.site-header .container {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 4.75rem;
}
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--blauw); }
.brand img { width: 6rem; }
.brand span { font-weight: 700; font-size: 1.15rem; line-height: 1.2; letter-spacing: -.01em; }

.main-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.main-nav a {
  display: block; padding: 8px 14px; border-radius: 999px;
  text-decoration: none; font-weight: 600; color: var(--tekst);
}
.main-nav a:hover { background: var(--groen-licht); color: var(--blauw); }
.main-nav a[aria-current="page"] { background: var(--blauw); color: var(--wit); }

@media (max-width: 640px) {
  .site-header .container { flex-direction: column; align-items: flex-start; gap: 6px; padding-top: 10px; padding-bottom: 10px; }
  .brand img { width: 72px; }
  .brand span { font-size: 1rem; }
  .main-nav { width: 100%; }
  .main-nav ul { justify-content: space-between; }
  .main-nav a { padding: 6px 12px; font-size: 1rem; }
}

/* ---------- Hero ---------- */
.hero {
  background:
    radial-gradient(circle at 92% 10%, rgba(195, 213, 80, .35) 0, rgba(195, 213, 80, 0) 45%),
    linear-gradient(180deg, var(--groen-zacht), var(--wit));
  padding: var(--ruimte-sectie) 0 calc(var(--ruimte-sectie) * .85);
}
.hero .container { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--kolom-gat); align-items: center; }
.eyebrow {
  display: inline-block; font-size: .9375rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--blauw); background: var(--groen-licht); padding: 4px 12px; border-radius: 999px; margin-bottom: 14px;
}
.hero h1 {
  font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.2; letter-spacing: -.015em;
  color: var(--blauw); margin: 0 0 16px;
}
.hero p.lead { font-size: 1.2rem; color: var(--tekst-zacht); margin: 0 0 28px; max-width: 34em; }

.buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px; border-radius: 999px; font-weight: 600; text-decoration: none;
  transition: background .15s ease;
}
.btn-primair { background: var(--blauw); color: var(--wit); }
.btn-primair:hover { background: var(--blauw-donker); color: var(--wit); }
.btn-secundair { background: var(--wit); color: var(--blauw); border: 2px solid var(--blauw); }

.adres-kaart {
  background: var(--wit); border-radius: var(--radius); box-shadow: var(--schaduw);
  padding: 28px; border-left: 6px solid var(--groen);
}
.adres-kaart h2 { margin: 0 0 8px; font-size: 1.1rem; color: var(--blauw); }
.adres-kaart address { font-style: normal; font-size: 1.1rem; line-height: 1.6; }
.adres-kaart .klein { color: var(--tekst-zacht); font-size: 1rem; margin: 14px 0 0; }

@media (max-width: 860px) {
  .hero { padding: 40px 0; }
  .hero .container { grid-template-columns: 1fr; gap: 28px; }
}

/* ---------- Secties ---------- */
section { padding: var(--ruimte-sectie) 0; scroll-margin-top: 90px; }
@media (max-width: 640px) { section { scroll-margin-top: 120px; } }
section.alt { background: var(--groen-zacht); }
.sectie-kop { max-width: 46em; margin-bottom: 32px; }
.sectie-kop h2 { font-size: clamp(1.5rem, 3vw, 2rem); color: var(--blauw); margin: 0 0 10px; letter-spacing: -.01em; }
.sectie-kop p { color: var(--tekst-zacht); margin: 0; }

.twee-kolom { display: grid; grid-template-columns: 1fr 1fr; gap: var(--kolom-gat); align-items: start; }
@media (max-width: 860px) { .twee-kolom { grid-template-columns: 1fr; } }

/* ---------- Zorgverleners ---------- */
.zorg-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: clamp(12px, 1.6vw, 24px);
}
/* Naam voorop, klein icoon rechtsboven. Geen beweging bij hover, alleen kleur. */
.zorg-kaart {
  position: relative; overflow: hidden; height: 100%;
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto 1fr;
  grid-template-areas: "naam icoon" "url url" "naar naar";
  column-gap: 12px;
  background: var(--wit); border: 1px solid var(--rand); border-radius: 18px;
  padding: 22px 20px 18px; text-decoration: none; color: var(--tekst);
  transition: border-color .15s ease, box-shadow .15s ease;
}
/* groen accentstreepje linksboven */
.zorg-kaart::before {
  content: ""; position: absolute; left: 0; top: 0; height: 4px; width: 48px;
  background: var(--groen); border-radius: 0 0 4px 0;
}
.zorg-kaart:hover { border-color: var(--groen); box-shadow: var(--schaduw); color: var(--tekst); }
.zorg-kaart strong { grid-area: naam; font-size: 1.15rem; color: var(--blauw); line-height: 1.3; align-self: center; }
.zorg-kaart small { grid-area: url; color: var(--tekst-zacht); font-size: .9375rem; word-break: break-word; margin-top: 2px; }
.zorg-kaart .icoon {
  grid-area: icoon; align-self: start;
  width: 36px; height: 36px; border-radius: 10px;
  display: grid; place-items: center;
  background: var(--groen-licht); color: var(--blauw);
  transition: background .15s ease;
}
.zorg-kaart .icoon svg {
  width: 20px; height: 20px;
  fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
}
.zorg-kaart:hover .icoon { background: var(--groen); }
/* "Naar website" is bijzaak: klein, normaal gewicht, grijs */
.zorg-kaart .naar {
  grid-area: naar; align-self: end;
  padding-top: 14px; font-size: .9375rem; font-weight: 400; color: #6B7480;
}
@media (max-width: 520px) {
  .zorg-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .zorg-kaart { padding: 18px 14px 14px; column-gap: 8px; }
  .zorg-kaart .icoon { width: 30px; height: 30px; border-radius: 8px; }
  .zorg-kaart .icoon svg { width: 17px; height: 17px; }
  .zorg-kaart strong { font-size: 1rem; align-self: start; }
  .zorg-kaart small { display: none; }
}

.melding {
  margin-top: 28px; padding: 18px 22px; border-radius: var(--radius);
  background: var(--wit); border: 1px solid var(--rand); border-left: 6px solid var(--blauw);
  font-weight: 600;
}

/* ---------- Kaart ---------- */
.kaart-wrap {
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--schaduw);
  aspect-ratio: 4 / 3; background: var(--groen-licht);
}
.kaart-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }
.kaart-melding {
  height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;
  gap: 16px; padding: 24px; text-align: center;
  background:
    repeating-linear-gradient(45deg, rgba(2, 66, 138, .04) 0 12px, transparent 12px 24px),
    var(--groen-licht);
}
.kaart-melding p { margin: 0; color: var(--tekst-zacht); }

/* Voor een keuze: foto van de kaart. Na weigeren: de vraag. */
.kaart-wrap { position: relative; }
.kaart-foto {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(45deg, rgba(2, 66, 138, .04) 0 12px, transparent 12px 24px),
    var(--groen-licht);
}
.kaart-foto > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 100% 100%; }
/* Adreskaartje linksboven, zoals Google Maps dat toont */
.kaart-adres {
  position: absolute; top: 10px; left: 10px; z-index: 1;
  width: clamp(170px, 48%, 260px);
  background: #fff; border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
}
.kaart-adres img { display: block; width: 100%; height: auto; border-radius: 2px; }
.kaart-pin {
  position: absolute; inset: 0; display: grid; place-content: center; text-align: center;
  font-weight: 700; color: var(--blauw); font-size: 1.1rem; line-height: 1.4;
}
.kaart-wrap[data-status="nee"] .kaart-foto { display: none; }
.kaart-wrap:not([data-status="nee"]) .kaart-melding { display: none; }
.kaart-melding strong { color: var(--blauw); }
.kaart-melding .buttons { justify-content: center; }
button.btn { font: inherit; font-weight: 600; cursor: pointer; }
button.btn-primair { border: 2px solid var(--blauw); }

/* ---------- Cookiemelding ---------- */
.cookie-balk {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 200;
  max-width: 760px; margin: 0 auto;
  background: var(--wit); border-radius: var(--radius);
  border-top: 6px solid var(--groen);
  box-shadow: 0 12px 40px rgba(1, 48, 95, .25);
  padding: 20px 24px;
  transform: translateY(140%); opacity: 0; visibility: hidden;
  transition: transform .3s ease, opacity .3s ease, visibility 0s linear .3s;
}
.cookie-balk.zichtbaar { transform: none; opacity: 1; visibility: visible; transition: transform .3s ease, opacity .3s ease; }
.cookie-inhoud { display: flex; align-items: center; gap: 20px; }
.cookie-inhoud p { margin: 0; font-size: 1rem; color: var(--tekst-zacht); }
.cookie-inhoud strong { color: var(--blauw); }
.cookie-inhoud .buttons { flex: 0 0 auto; }
@media (max-width: 640px) {
  .cookie-inhoud { flex-direction: column; align-items: stretch; gap: 14px; }
  .cookie-inhoud .btn { flex: 1; justify-content: center; }
}

.link-knop {
  background: none; border: 0; padding: 0; font: inherit; color: var(--wit);
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.link-knop:hover { color: var(--groen); }

/* ---------- Tekstpagina's ---------- */
.pagina-kop { background: linear-gradient(180deg, var(--groen-zacht), var(--wit)); padding: calc(var(--ruimte-sectie) * .75) 0 24px; }
.pagina-kop h1 { font-size: clamp(1.8rem, 4vw, 2.5rem); color: var(--blauw); margin: 0 0 8px; letter-spacing: -.02em; }
.pagina-kop p { color: var(--tekst-zacht); font-size: 1.15rem; margin: 0; max-width: 40em; }

.tekst { max-width: 46em; padding: 24px 0 var(--ruimte-sectie); }
.tekst h2 { color: var(--blauw); font-size: 1.3rem; margin: 36px 0 8px; }
.tekst ul { padding-left: 1.2em; }
.tekst li { margin: 4px 0; }
.tekst li::marker { color: var(--groen); }
.tekst .lijst-ruim li { margin: 12px 0; }
.voetnoot { color: var(--tekst-zacht); font-size: 1rem; }

/* ---------- Footer ---------- */
.site-footer { margin-top: 0; }
.site-footer .band { background: var(--groen); height: 10px; }
.site-footer .inhoud { background: var(--blauw); color: var(--wit); padding: clamp(32px, 4vw, 56px) 0 28px; }
.site-footer .kolommen { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--kolom-gat); }
.site-footer h2 { color: var(--wit); font-size: 1rem; margin: 0 0 10px; }
.site-footer address { font-style: normal; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 4px 0; }
.site-footer a { color: var(--wit); }
.site-footer a:hover { color: var(--groen); }
.site-footer .onderregel {
  border-top: 1px solid rgba(255, 255, 255, .15); margin-top: 28px; padding-top: 18px;
  font-size: .9375rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
}
@media (max-width: 720px) { .site-footer .kolommen { grid-template-columns: 1fr; gap: 20px; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn { transition: none; }
  .btn:hover { transform: none; }
}
