/* Sunnah App · sunnahapp.nl */

@font-face { font-family: "Cormorant"; src: url("../fonts/cormorant-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant"; src: url("../fonts/cormorant-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant"; src: url("../fonts/cormorant-500-italic.woff2") format("woff2"); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
/* Alleen het teken ﷺ, uit Uthman Taha Naskh */
@font-face { font-family: "Salawat"; src: url("../fonts/salawat.woff2") format("woff2"); unicode-range: U+FDFA; font-display: swap; }

:root {
  --bg: #070504;
  --tekst: #f7f0e4;
  --tekst-zacht: rgba(240, 228, 208, .76);
  --tekst-dim: rgba(240, 228, 208, .56);
  --goud: #e3b66c;
  --goud-licht: #f5d9a0;
  --goud-verloop: linear-gradient(135deg, #fbe3ac 0%, #e8bd72 40%, #c8924a 72%, #f0cd8a 100%);
  --lijn: rgba(227, 182, 108, .24);
  --lijn-sterk: rgba(227, 182, 108, .55);
  --serif: "Cormorant", "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --zacht: cubic-bezier(.2, .75, .2, 1);
  --rand: 24px;
  --breed: 1240px;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--bg);
}
html.menu-open { overflow: hidden; }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--tekst);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
@supports (overflow: clip) { body { overflow-x: clip; } }

img, svg { display: block; }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
button { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--goud); outline-offset: 3px; border-radius: 8px; }

.ic {
  width: 20px; height: 20px; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
}
.ic--klein { width: 14px; height: 14px; }
.salawat { font-family: "Salawat", var(--sans); font-size: 1.15em; line-height: 1; }

/* ---------- Kop ---------- */

.kop {
  position: fixed; top: 22px; left: 0; right: 0; z-index: 50;
  padding: 0 var(--rand);
  pointer-events: none;
  animation: kop-in 1s var(--zacht) .1s backwards;
}
.kop__binnen {
  pointer-events: auto;
  position: relative;
  max-width: var(--breed); height: 76px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 0 22px 0 40px;
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(30, 22, 14, .55), rgba(12, 9, 6, .5));
  border: 1px solid var(--lijn);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 228, 176, .08);
  transition: background .5s var(--zacht), box-shadow .5s var(--zacht);
}
.kop.is-gescrold .kop__binnen { background: linear-gradient(180deg, rgba(24, 18, 12, .86), rgba(10, 8, 6, .82)); }

.logo { display: flex; align-items: center; gap: 12px; flex: none; }
.logo__kalligrafie { height: 46px; width: auto; filter: drop-shadow(0 0 12px rgba(230, 170, 80, .25)); }
.logo__woord { height: 25px; width: auto; }

.menu { position: absolute; left: 50%; transform: translateX(-50%); display: flex; gap: 46px; }
.menu__link {
  position: relative; padding: 10px 0;
  font-weight: 500; font-size: 16px; letter-spacing: .01em;
  color: rgba(247, 240, 228, .86);
  transition: color .3s;
}
.menu__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
  background: var(--goud-verloop);
  box-shadow: 0 0 10px rgba(227, 182, 108, .7);
  transform: scaleX(0); transition: transform .5s var(--zacht);
}
.menu__link:hover { color: #fff; }
.menu__link:hover::after { transform: scaleX(.35); }
.menu__link.is-actief { color: var(--goud-licht); }
.menu__link.is-actief::after { transform: scaleX(1); }

.taal { position: relative; flex: none; }
.taal__knop {
  display: flex; align-items: center; gap: 9px;
  height: 46px; padding: 0 16px 0 15px;
  border-radius: 23px; border: 1px solid var(--lijn);
  background: rgba(255, 240, 210, .04);
  font-weight: 500; font-size: 15px; cursor: pointer;
  transition: border-color .3s, background .3s;
}
.taal__knop:hover, .taal__knop[aria-expanded="true"] { border-color: var(--lijn-sterk); background: rgba(255, 240, 210, .08); }
.taal__knop .ic--klein { transition: transform .4s var(--zacht); opacity: .8; }
.taal__knop[aria-expanded="true"] .ic--klein { transform: rotate(180deg); }
.taal__lijst {
  position: absolute; right: 0; top: calc(100% + 10px); min-width: 190px;
  padding: 6px; border-radius: 18px;
  background: rgba(18, 13, 9, .94);
  border: 1px solid var(--lijn);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
  animation: zakken .35s var(--zacht);
}
.taal__lijst button {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 11px 12px; border: 0; border-radius: 12px; background: none;
  font-size: 15px; text-align: left; cursor: pointer;
}
.taal__lijst button:hover { background: rgba(255, 240, 210, .07); }
.taal__lijst .ic { width: 16px; height: 16px; color: var(--goud); opacity: 0; }
.taal__lijst [aria-checked="true"] { color: var(--goud-licht); }
.taal__lijst [aria-checked="true"] .ic { opacity: 1; }

.hamburger {
  display: none; position: relative;
  width: 46px; height: 46px; flex: none;
  border-radius: 15px; border: 1px solid var(--lijn-sterk);
  background: rgba(20, 15, 10, .55);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  cursor: pointer;
}
.hamburger span {
  position: absolute; left: 13px; right: 13px; height: 1.6px; border-radius: 2px;
  background: var(--tekst);
  transition: transform .45s var(--zacht), opacity .3s;
}
.hamburger span:nth-child(1) { top: 16px; }
.hamburger span:nth-child(2) { top: 22px; }
.hamburger span:nth-child(3) { top: 28px; }
.hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(.3); }
.hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- Mobiel menu ---------- */

.mobielmenu {
  position: fixed; inset: 0; z-index: 45;
  display: flex; flex-direction: column; gap: 30px;
  padding: calc(env(safe-area-inset-top) + 104px) 24px calc(env(safe-area-inset-bottom) + 28px);
  background: rgba(8, 6, 4, .9);
  -webkit-backdrop-filter: blur(26px) saturate(120%); backdrop-filter: blur(26px) saturate(120%);
  opacity: 0; transition: opacity .45s var(--zacht);
  overflow-y: auto;
}
.mobielmenu.is-open { opacity: 1; }
.mobielmenu__links { display: flex; flex-direction: column; }
.mobielmenu__links a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 2px;
  font-family: var(--serif); font-weight: 600; font-size: 38px; line-height: 1.1;
  border-bottom: 1px solid rgba(227, 182, 108, .14);
  opacity: 0; transform: translateY(18px);
  transition: opacity .6s var(--zacht), transform .6s var(--zacht), color .3s;
}
.mobielmenu__links a.is-actief { color: var(--goud-licht); }
.mobielmenu.is-open .mobielmenu__links a { opacity: 1; transform: none; }
.mobielmenu.is-open .mobielmenu__links a:nth-child(1) { transition-delay: .05s; }
.mobielmenu.is-open .mobielmenu__links a:nth-child(2) { transition-delay: .1s; }
.mobielmenu.is-open .mobielmenu__links a:nth-child(3) { transition-delay: .15s; }
.mobielmenu.is-open .mobielmenu__links a:nth-child(4) { transition-delay: .2s; }
.mobielmenu__taal { display: flex; gap: 10px; }
.mobielmenu__taal button {
  flex: 1; height: 46px; border-radius: 23px;
  border: 1px solid var(--lijn); background: rgba(255, 240, 210, .04);
  font-weight: 500; font-size: 15px; cursor: pointer;
}
.mobielmenu__taal [aria-pressed="true"] { border-color: var(--goud); color: var(--goud-licht); background: rgba(227, 182, 108, .1); }
.mobielmenu__winkels { margin-top: auto; display: flex; flex-direction: column; gap: 12px; }
.mobielmenu__winkels .winkelknop { width: 100%; height: 60px; }

/* ---------- Winkelknoppen ---------- */

.winkels { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 34px; }
.winkelknop {
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; gap: 14px;
  height: 74px; min-width: 232px; padding: 0 20px 0 24px;
  border-radius: 20px;
  transition: transform .45s var(--zacht), box-shadow .45s var(--zacht), border-color .35s, background .35s;
}
.winkelknop--goud {
  color: #1d130a;
  background: linear-gradient(180deg, #f8dfa8 0%, #e9be75 50%, #d3a05a 100%);
  box-shadow: 0 12px 34px rgba(214, 160, 80, .28), inset 0 1px 0 rgba(255, 255, 255, .65), inset 0 -2px 0 rgba(120, 78, 28, .25);
}
.winkelknop--goud::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .55) 50%, transparent 65%);
  transform: translateX(-120%); transition: transform 1s var(--zacht);
}
.winkelknop--donker {
  color: var(--tekst);
  background: rgba(10, 8, 6, .5);
  border: 1.5px solid rgba(242, 222, 184, .6);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.winkelknop:hover { transform: translateY(-3px); }
.winkelknop--goud:hover { box-shadow: 0 18px 44px rgba(214, 160, 80, .42), inset 0 1px 0 rgba(255, 255, 255, .65), inset 0 -2px 0 rgba(120, 78, 28, .25); }
.winkelknop--goud:hover::after { transform: translateX(120%); }
.winkelknop--donker:hover { border-color: var(--goud); box-shadow: 0 0 30px rgba(227, 182, 108, .22); }
.winkelknop:active { transform: translateY(0) scale(.98); transition-duration: .15s; }

.winkelknop__logo { width: 36px; height: 36px; flex: none; fill: currentColor; }
.winkelknop__logo--lijn { fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linejoin: round; stroke-linecap: round; width: 34px; height: 34px; }
.winkelknop__logo--play { display: none; width: 30px; height: 30px; }
.winkelknop__tekst { display: flex; flex-direction: column; flex: 1; line-height: 1.08; text-align: left; }
.winkelknop__tekst small { font-weight: 500; font-size: 13px; opacity: .92; white-space: nowrap; }
.winkelknop--donker .winkelknop__tekst small { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.winkelknop__tekst strong { font-weight: 600; font-size: 23px; letter-spacing: -.01em; }
.winkelknop__pijl { width: 18px; height: 18px; opacity: .85; transition: transform .45s var(--zacht); }
.winkelknop:hover .winkelknop__pijl { transform: translateX(3px); }

/* ---------- Held ---------- */

.held {
  position: relative; isolation: isolate; overflow: hidden; overflow: clip;
  display: flex; align-items: center;
  padding: 104px var(--rand) 44px;
}
.held__achtergrond {
  position: absolute; inset: 0; z-index: -2;
  background: url("../img/hero-desktop-2400.webp") 50% 30% / cover no-repeat;
  animation: inzoomen 2.8s var(--zacht) backwards;
}
.held::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(ellipse 40% 45% at 72% 55%, rgba(230, 160, 70, .16), transparent 70%),
    linear-gradient(90deg, rgba(7, 5, 4, .86) 0%, rgba(7, 5, 4, .6) 26%, rgba(7, 5, 4, .1) 50%, rgba(7, 5, 4, 0) 60%),
    linear-gradient(180deg, rgba(7, 5, 4, .5) 0%, rgba(7, 5, 4, 0) 18%, rgba(7, 5, 4, 0) 72%, var(--bg) 100%);
}
.held__binnen {
  position: relative; width: 100%; max-width: var(--breed); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 590px) minmax(0, 1fr); align-items: center; gap: 0;
}
.held__tekst { position: relative; z-index: 2; padding-bottom: 10px; }

.app-icoon {
  display: block;
  border-radius: 22.5%;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .6), 0 0 0 1px rgba(227, 182, 108, .4), 0 0 44px rgba(227, 182, 108, .24);
}
.held__icoon { width: 92px; height: 92px; margin: 0 0 26px; }

.bovenregel {
  display: inline-flex; align-items: center; gap: 10px;
  margin: 0 0 22px;
  font-weight: 500; font-size: 15px; line-height: 1; letter-spacing: .32em; text-transform: uppercase;
  color: var(--goud);
}
.bovenregel .ic { display: none; }
.held__titel {
  margin: 0;
  font-family: var(--serif); font-weight: 600;
  font-size: clamp(66px, 7.3vw, 112px); line-height: .92; letter-spacing: -.012em;
  color: #fffaf1;
  text-shadow: 0 2px 34px rgba(0, 0, 0, .5);
}
.held__sub {
  margin: 16px 0 0;
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(28px, 2.85vw, 42px); line-height: 1.15;
  color: #fbf4e8;
}
.held__sub em {
  font-style: normal;
  background: var(--goud-verloop);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.held__intro {
  margin: 20px 0 0; max-width: 25em;
  font-weight: 400; font-size: clamp(16px, 1.32vw, 19.5px); line-height: 1.62;
  color: var(--tekst-zacht);
}

/* Cijfers */
.cijfers { list-style: none; margin: 38px 0 0; padding: 0; display: flex; align-items: center; }
.cijfers li { display: flex; align-items: center; gap: 12px; padding: 0 18px; border-left: 1px solid rgba(240, 220, 180, .18); }
.cijfers li:first-child { padding-left: 2px; border-left: 0; }
.cijfers .ic { width: 28px; height: 28px; color: var(--goud); fill: rgba(227, 182, 108, .16); stroke-width: 1.5; }
.cijfers strong { display: block; font-weight: 600; font-size: 21px; line-height: 1.15; color: #fff; }
.cijfers small { display: block; font-size: 13px; line-height: 1.35; color: var(--tekst-dim); white-space: nowrap; }
.cijfers--balk { display: none; }

/* ---------- Toonbank: telefoon met waaier ---------- */

.toonbank {
  --pw: clamp(240px, min(23vw, 37vh), 345px);
  --fan: 1;
  position: relative;
  height: calc(var(--pw) * 2.28);
  margin-left: 14px;
}
.toonbank__podium {
  position: absolute; inset: 0;
  touch-action: pan-y; cursor: grab; outline: none;
  -webkit-user-select: none; user-select: none;
  animation: zweven 8s ease-in-out 2s infinite;
}
.toonbank__podium:active { cursor: grabbing; }
.toonbank__podium:focus-visible { outline: none; }
.toonbank__podium:focus-visible .dia[data-pos="0"] .toestel { box-shadow: 0 0 0 3px var(--goud), 0 40px 80px -20px rgba(0, 0, 0, .8); }
.toonbank__reserve { width: var(--pw); border-radius: 40px; }

.dia {
  --x: 0; --z: 0px; --ry: 8deg; --rz: 5deg; --s: 1; --dim: 0;
  position: absolute; left: 4%; top: 0;
  width: var(--pw);
  transform: perspective(1600px) translate3d(calc(var(--x) * var(--pw) * var(--fan) + var(--sleep, 0px)), 0, var(--z)) rotateY(var(--ry)) rotateZ(var(--rz)) scale(var(--s));
  transition: transform 1.05s var(--zacht), opacity .8s var(--zacht);
  will-change: transform;
  cursor: pointer;
}
.dia[data-pos="0"] { z-index: 10; cursor: inherit; }
.dia[data-pos="1"] { --x: .52; --z: -90px; --ry: 27deg; --rz: 4deg; --s: .95; --dim: .06; z-index: 9; }
.dia[data-pos="2"] { --x: .9; --z: -170px; --ry: 30deg; --rz: 3.5deg; --s: .92; --dim: .14; z-index: 8; }
.dia[data-pos="3"] { --x: 1.24; --z: -240px; --ry: 33deg; --rz: 3deg; --s: .9; --dim: .24; z-index: 7; }
.dia[data-pos="4"] { --x: 1.54; --z: -300px; --ry: 36deg; --rz: 2.5deg; --s: .88; --dim: .36; z-index: 6; }
.dia[data-pos="5"], .dia[data-pos="6"] { visibility: hidden; transition: transform 1.05s var(--zacht), opacity .8s var(--zacht), visibility 0s .8s; }
.dia[data-pos="5"] { --x: 1.8; --z: -360px; --ry: 39deg; --rz: 2deg; --s: .86; --dim: .7; z-index: 5; opacity: 0; }
.dia[data-pos="6"] { --x: -.7; --z: -60px; --ry: -6deg; --rz: 6deg; --s: .97; z-index: 11; opacity: 0; pointer-events: none; }
.toonbank__podium.is-dicht .dia { --x: 0; --z: -40px; --ry: 8deg; --rz: 5deg; --s: .98; }
.toonbank__podium.is-slepen .dia { transition: none; }

.toestel {
  position: relative;
  padding: calc(var(--pw) * .03);
  border-radius: calc(var(--pw) * .17);
  border: calc(var(--pw) * .013) solid transparent;
  background:
    linear-gradient(#050403, #050403) padding-box,
    linear-gradient(140deg, #fbe2a8 0%, #b98340 22%, #f4d08d 46%, #7c5220 70%, #e7bd76 88%, #a87534 100%) border-box;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, .55),
    0 40px 80px -20px rgba(0, 0, 0, .85),
    0 0 46px rgba(232, 170, 80, .26);
  transition: box-shadow .8s var(--zacht);
}
.dia[data-pos="0"] .toestel {
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, .55),
    0 50px 90px -24px rgba(0, 0, 0, .9),
    0 0 70px rgba(236, 176, 86, .42),
    inset 0 0 0 1px rgba(255, 230, 180, .12);
}
/* Zijknoppen */
.toestel::before, .toestel::after {
  content: ""; position: absolute; width: calc(var(--pw) * .014); border-radius: 3px;
  background: linear-gradient(90deg, #8a5d25, #f2d394 50%, #a87534);
}
.toestel::before { right: calc(var(--pw) * -.027); top: 27%; height: 12%; }
.toestel::after { left: calc(var(--pw) * -.027); top: 21%; height: 6.5%; box-shadow: 0 calc(var(--pw) * .16) 0 #c9994f; }
.toestel__scherm {
  position: relative; overflow: hidden;
  border-radius: calc(var(--pw) * .135);
  background: #0b0907;
  aspect-ratio: 1206 / 2622;
}
.toestel__scherm img { width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; pointer-events: none; }
.toestel__scherm::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(118deg, rgba(255, 255, 255, .09) 0%, rgba(255, 255, 255, 0) 32%), rgba(4, 3, 2, var(--dim));
  transition: background .8s var(--zacht);
}

.toonbank__gloed {
  position: absolute; z-index: -1; pointer-events: none;
  left: -8%; right: -30%; bottom: -7%; height: 24%;
  background: radial-gradient(ellipse 50% 50% at 32% 50%, rgba(240, 178, 88, .32), transparent 70%);
  filter: blur(8px);
}

.toonbank__bediening {
  position: absolute; z-index: 12;
  right: -6px; bottom: -4px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
}
.veeg { display: flex; align-items: flex-end; gap: 8px; margin: 0 0 0 4px; color: rgba(247, 240, 228, .88); }
.veeg span { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 22px; line-height: 1; white-space: nowrap; }
.veeg__pijl { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; margin-bottom: -18px; }

.stippen {
  display: flex; align-items: center; gap: 12px;
  padding: 7px; border-radius: 999px;
  background: rgba(14, 10, 7, .55);
  border: 1px solid var(--lijn);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.stippen__rij { display: flex; align-items: center; gap: 4px; }
.stip {
  position: relative; width: 20px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer;
}
.stip::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 50%;
  transform: translate(-50%, -50%);
  background: rgba(240, 222, 186, .34);
  transition: width .5s var(--zacht), height .5s var(--zacht), background .4s, box-shadow .4s;
}
.stip:hover::before { background: rgba(240, 222, 186, .6); }
.stip.is-actief::before { width: 13px; height: 13px; background: var(--goud); box-shadow: 0 0 12px rgba(227, 182, 108, .8); }
.stippen__teller { min-width: 46px; font-size: 15px; font-weight: 500; color: var(--tekst-zacht); font-variant-numeric: tabular-nums; text-align: center; }
.stippen__teller b { color: #fff; font-weight: 600; }
.rondknop {
  width: 38px; height: 38px; flex: none;
  display: grid; place-items: center;
  border-radius: 50%; border: 1px solid var(--lijn);
  background: rgba(255, 240, 210, .04); color: var(--goud-licht);
  cursor: pointer; transition: border-color .3s, background .3s, transform .3s var(--zacht);
}
.rondknop .ic { width: 18px; height: 18px; }
.rondknop:hover { border-color: var(--lijn-sterk); background: rgba(255, 240, 210, .1); }
.rondknop:active { transform: scale(.92); }

/* ---------- Secties onder de held ---------- */

.secties { display: flex; flex-direction: column; }
.functies { order: 1; position: relative; z-index: 3; width: 100%; max-width: 1340px; margin: -36px auto 0; padding: 0 var(--rand); }
.ontdek { order: 2; }

.functies__rij {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr 1fr 1.14fr 1fr 1fr 1.08fr; gap: 12px;
}
.kaart {
  order: var(--o, 0);
  position: relative; text-align: center;
  padding: 26px 8px 24px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(36, 27, 18, .7), rgba(13, 10, 7, .82));
  border: 1px solid rgba(227, 182, 108, .24);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: inset 0 1px 0 rgba(255, 225, 170, .07), 0 22px 44px rgba(0, 0, 0, .38);
  transition: transform .6s var(--zacht), border-color .4s, box-shadow .6s var(--zacht);
}
.kaart::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(240, 190, 110, .14), transparent 70%);
  opacity: 0; transition: opacity .5s;
}
.kaart:hover { transform: translateY(-6px); border-color: var(--lijn-sterk); box-shadow: inset 0 1px 0 rgba(255, 225, 170, .1), 0 30px 54px rgba(0, 0, 0, .45), 0 0 34px rgba(227, 182, 108, .14); }
.kaart:hover::before { opacity: 1; }
.kaart__ic { width: 44px; height: 44px; margin: 0 auto 16px; color: var(--goud); stroke-width: 1.25; }
.kaart__ic--koran { display: none; }
.kaart h2 { margin: 0 0 8px; font-family: var(--serif); font-weight: 600; font-size: 22px; white-space: nowrap; line-height: 1.12; color: #fff8ec; }
.kaart p { margin: 0; font-size: 14.5px; line-height: 1.42; color: var(--tekst-dim); }
.alleen-mobiel { display: none; }

.ontdek {
  position: relative;
  width: calc(100% - 2 * var(--rand)); max-width: var(--breed);
  margin: 110px auto 0; padding: 34px 34px 30px;
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(30, 22, 15, .6), rgba(11, 8, 6, .7));
  border: 1px solid var(--lijn);
  box-shadow: inset 0 1px 0 rgba(255, 225, 170, .06), 0 30px 60px rgba(0, 0, 0, .4);
}
.ontdek__kop { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.ontdek h2 { margin: 0; font-family: var(--serif); font-weight: 600; font-size: clamp(30px, 3vw, 42px); line-height: 1.05; }
.ontdek__kop p { margin: 6px 0 0; font-size: 17px; color: var(--tekst-zacht); }
.stippen--ontdek { background: none; border: 0; padding: 0; gap: 10px; }
.stippen--ontdek .stip { cursor: default; width: 16px; }
.strook {
  position: relative;
  display: flex; gap: 20px;
  margin: 26px -6px 0; padding: 8px 6px 6px;
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scrollbar-width: none;
  outline: none;
}
.strook::-webkit-scrollbar { display: none; }
.miniatuur {
  flex: 0 0 calc((100% - 6 * 20px) / 7);
  scroll-snap-align: start;
  padding: 0; border: 0; background: none; cursor: pointer;
  text-align: center; color: var(--tekst-zacht);
  transition: transform .5s var(--zacht), color .3s;
}
.miniatuur__toestel {
  padding: 3px; border-radius: 18% / 8.3%;
  border: 1.5px solid rgba(227, 182, 108, .3);
  background: #050403;
  box-shadow: 0 16px 30px rgba(0, 0, 0, .45);
  transition: border-color .4s, box-shadow .5s var(--zacht);
}
.miniatuur__toestel img { width: 100%; height: auto; aspect-ratio: 1206 / 2622; border-radius: 15% / 7%; -webkit-user-drag: none; }
.miniatuur span { display: block; margin-top: 12px; font-weight: 500; font-size: 15px; }
.miniatuur:hover { transform: translateY(-4px); color: #fff; }
.miniatuur.is-actief { color: var(--goud-licht); }
.miniatuur.is-actief .miniatuur__toestel { border-color: var(--goud); box-shadow: 0 16px 30px rgba(0, 0, 0, .45), 0 0 26px rgba(227, 182, 108, .45); }

/* ---------- Download ---------- */

.download {
  position: relative; isolation: isolate; overflow: hidden; overflow: clip;
  width: calc(100% - 2 * var(--rand)); max-width: var(--breed);
  margin: 110px auto 0; padding: 70px 24px 66px;
  text-align: center;
  border-radius: 32px; border: 1px solid var(--lijn);
  box-shadow: 0 40px 80px rgba(0, 0, 0, .45);
}
.download__beeld {
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse 46% 62% at 50% 52%, rgba(7, 5, 4, .9) 0%, rgba(7, 5, 4, .62) 55%, rgba(7, 5, 4, .2) 100%),
    url("../img/download-achtergrond.webp") 50% 62% / cover no-repeat;
}
.download__icoon { width: 88px; height: 88px; margin: 0 auto 22px; }
.download h2 { margin: 0; font-family: var(--serif); font-weight: 600; font-size: clamp(32px, 3.6vw, 52px); line-height: 1.05; }
.download p { margin: 12px 0 0; font-size: clamp(16px, 1.4vw, 19px); color: var(--tekst-zacht); }
.winkels--midden { justify-content: center; }

/* ---------- Voet ---------- */

.voet { padding: 64px 24px calc(env(safe-area-inset-bottom) + 44px); text-align: center; color: var(--tekst-dim); }
.voet img { height: 40px; width: auto; margin: 0 auto 14px; opacity: .85; }
.voet p { margin: 0; font-size: 13.5px; }

/* ---------- Melding ---------- */

.melding {
  position: fixed; left: 50%; bottom: calc(env(safe-area-inset-bottom) + 28px); z-index: 80;
  max-width: calc(100% - 32px);
  padding: 14px 22px; border-radius: 24px;
  background: rgba(20, 15, 10, .9);
  border: 1px solid var(--lijn-sterk);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .5), 0 0 30px rgba(227, 182, 108, .15);
  font-weight: 500; font-size: 15px; text-align: center; color: var(--goud-licht);
  opacity: 0; transform: translate(-50%, 16px) scale(.98);
  transition: opacity .45s var(--zacht), transform .45s var(--zacht);
}
.melding.is-zichtbaar { opacity: 1; transform: translate(-50%, 0) scale(1); }

/* ---------- Beweging ---------- */

.komt-op { animation: omhoog 1.15s var(--zacht) backwards; animation-delay: calc(var(--v, 0) * 90ms + 200ms); }
.js .onthul:not(.is-in) { opacity: 0; }
.onthul.is-in { animation: omhoog 1s var(--zacht) backwards; animation-delay: calc(var(--o, 0) * 70ms); }
.alles-tonen .onthul { opacity: 1 !important; }

@keyframes omhoog { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes kop-in { from { opacity: 0; transform: translateY(-16px); } }
@keyframes inzoomen { from { opacity: 0; transform: scale(1.07); } to { opacity: 1; transform: none; } }
@keyframes zweven { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes zakken { from { opacity: 0; transform: translateY(-6px); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
}

/* ---------- Breakpoints ---------- */

@media (max-width: 1400px) {
  .held__achtergrond { background-image: url("../img/hero-desktop-1600.webp"); }
}

@media (max-width: 1180px) {
  .menu { gap: 32px; }
  .functies__rij { gap: 10px; }
  .kaart { padding: 24px 8px 22px; }
  .kaart h2 { font-size: 20px; white-space: normal; }
  .kaart p { font-size: 13.5px; }
  .cijfers li { padding: 0 16px; }
}

@media (max-width: 1080px) {
  .held { padding-top: 118px; }
  .held__binnen { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .winkels { gap: 14px; }
  .cijfers { flex-wrap: wrap; row-gap: 16px; }
  .functies__rij { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .miniatuur { flex-basis: calc((100% - 4 * 20px) / 4.6); }
}

@media (max-width: 920px) {
  .menu, .taal { display: none; }
  .hamburger { display: block; }
  .kop__binnen { padding: 0 14px 0 24px; height: 68px; border-radius: 24px; }
  .logo__kalligrafie { height: 40px; }
  .logo__woord { height: 22px; }
  .toonbank { --fan: .75; }
  .veeg { display: none; }
}

/* Mobiel, volgens de iPhone-referentie */
@media (max-width: 760px) {
  :root { --rand: 16px; }
  html { scroll-padding-top: 80px; }

  .kop { top: 0; padding: 0; }
  .kop__binnen {
    height: calc(env(safe-area-inset-top) + 72px);
    padding: env(safe-area-inset-top) 16px 0;
    border-radius: 0; border: 0;
    border-bottom: 1px solid transparent;
    background: transparent; box-shadow: none;
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .kop.is-gescrold .kop__binnen, html.menu-open .kop__binnen {
    background: rgba(10, 8, 6, .78);
    border-bottom-color: rgba(227, 182, 108, .16);
    -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%);
  }
  html.menu-open .kop__binnen { background: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .logo { gap: 8px; }
  .logo__kalligrafie { height: 32px; }
  .logo__woord { height: 18px; }
  .hamburger { width: 44px; height: 44px; border-radius: 14px; }
  .hamburger span { left: 12px; right: 12px; }
  .hamburger span:nth-child(1) { top: 15px; }
  .hamburger span:nth-child(2) { top: 21px; }
  .hamburger span:nth-child(3) { top: 27px; }

  .held { min-height: 0; align-items: flex-start; padding: calc(env(safe-area-inset-top) + 92px) 16px 26px; }
  .held__achtergrond { background-image: url("../img/hero-mobiel.webp"); background-position: 50% 0; }
  .held::before {
    background:
      radial-gradient(ellipse 60% 40% at 78% 48%, rgba(230, 160, 70, .16), transparent 70%),
      linear-gradient(90deg, rgba(7, 5, 4, .78) 0%, rgba(7, 5, 4, .5) 45%, rgba(7, 5, 4, .05) 70%),
      linear-gradient(180deg, rgba(7, 5, 4, .45) 0%, rgba(7, 5, 4, 0) 16%, rgba(7, 5, 4, 0) 70%, var(--bg) 100%);
  }
  .held__binnen { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); align-items: start; }
  .held__tekst { padding-bottom: 0; padding-right: 6px; }

  .held__icoon { width: 64px; height: 64px; margin: 0 0 14px; }
  .bovenregel {
    margin: 0 0 14px; padding: 7px 12px 7px 10px;
    border: 1px solid var(--lijn-sterk); border-radius: 999px;
    background: rgba(20, 14, 9, .5);
    font-size: 13px; letter-spacing: .01em; text-transform: none; color: var(--goud-licht);
  }
  .bovenregel .ic { display: block; width: 14px; height: 14px; color: var(--goud); }
  .held__titel { font-size: clamp(30px, 9.3vw, 46px); line-height: .95; white-space: nowrap; }
  .held__sub { margin-top: 6px; font-size: min(3.6vw, 19px); white-space: nowrap; }
  .held__intro { margin-top: 10px; font-size: clamp(12.5px, 3.33vw, 15px); line-height: 1.5; }

  .held .winkels { flex-direction: column; align-items: stretch; gap: 10px; margin-top: 18px; max-width: 200px; }
  .winkelknop { height: 48px; min-width: 0; padding: 0 12px 0 14px; gap: 10px; border-radius: 15px; }
  .winkelknop__tekst strong { white-space: nowrap; }
  .winkelknop__logo { width: 24px; height: 24px; }
  .winkelknop__logo--lijn { display: none; }
  .winkelknop__logo--play { display: block; width: 22px; height: 22px; }
  .winkelknop__tekst small { font-size: 10.5px; }
  .winkelknop--donker .winkelknop__tekst small { font-size: 9.5px; }
  .winkelknop__tekst strong { font-size: 17.5px; }
  .winkelknop__pijl { width: 15px; height: 15px; }

  .cijfers--held { display: none; }

  .toonbank { --pw: clamp(108px, 34vw, 180px); --fan: .5; height: calc(var(--pw) * 2.26); margin: 104px 0 0 0; }
  .dia { left: -1%; }
  .dia[data-pos="1"] { --ry: 30deg; }
  .toonbank__bediening { display: none; }
  .toonbank__gloed { left: -30%; right: -10%; }

  .ontdek { order: 1; margin: 6px auto 0; padding: 18px 14px 16px; border-radius: 22px; }
  .functies { order: 2; margin: 12px auto 0; padding: 0 12px; }
  .ontdek__kop { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .ontdek__kop > div:first-child { display: contents; }
  .ontdek h2 { grid-column: 1; grid-row: 1; font-size: min(4.65vw, 26px); white-space: nowrap; }
  .ontdek__kop p { grid-column: 1 / -1; grid-row: 2; margin-top: 4px; font-size: clamp(12px, 3.3vw, 14px); }
  .stippen--ontdek { grid-column: 2; grid-row: 1; }
  .stippen--ontdek { gap: 4px; }
  .stippen--ontdek .stippen__rij { gap: 0; }
  .stippen--ontdek .stip { width: 8px; }
  .stippen--ontdek .stip::before { width: 5px; height: 5px; }
  .stippen--ontdek .stip.is-actief::before { width: 7px; height: 7px; }
  .rondknop { width: 30px; height: 30px; }
  .rondknop .ic { width: 15px; height: 15px; }
  .strook { gap: 10px; margin-top: 14px; }
  .miniatuur { flex-basis: calc((100% - 4 * 10px) / 4.7); }
  .miniatuur__toestel { padding: 2px; }
  .miniatuur { min-width: 0; }
  .miniatuur span { margin-top: 7px; font-size: 11px; white-space: nowrap; }

  .functies__rij { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
  .kaart { order: var(--om, 0); padding: 13px 1px 11px; border-radius: 15px; }
  .kaart__ic { width: 28px; height: 28px; margin-bottom: 7px; stroke-width: 1.3; }
  .kaart__ic--maan { display: none; }
  .kaart__ic--koran { display: block; }
  .kaart h2 { margin-bottom: 4px; font-size: min(3.15vw, 15px); letter-spacing: -.025em; white-space: nowrap; }
  .kaart p { padding: 0 2px; font-size: min(2.6vw, 11.5px); line-height: 1.3; }
  .alleen-desktop { display: none; }
  .alleen-mobiel { display: block; }

  .cijfers--balk {
    display: flex; justify-content: space-between;
    width: calc(100% - 32px); margin: 12px auto 0; padding: 14px 6px;
    border-radius: 18px; border: 1px solid var(--lijn);
    background: linear-gradient(180deg, rgba(30, 22, 15, .6), rgba(11, 8, 6, .72));
  }
  .cijfers--balk li { flex: 1 1 0; min-width: 0; gap: 6px; padding: 0 6px; }
  .cijfers--balk li:first-child { padding-left: 6px; }
  .cijfers--balk .ic { width: 20px; height: 20px; }
  .cijfers--balk strong { font-size: min(3.3vw, 16px); }
  .cijfers--balk small { font-size: min(2.65vw, 12px); line-height: 1.25; white-space: normal; }

  .download { margin: 12px auto 0; padding: 30px 14px 26px; border-radius: 22px; }
  .download__icoon { width: 64px; height: 64px; margin-bottom: 14px; }
  .download h2 { font-size: clamp(25px, 7.4vw, 32px); }
  .download p { margin-top: 6px; font-size: clamp(13px, 3.7vw, 15px); }
  .download .winkels { flex-wrap: nowrap; gap: 10px; margin-top: 18px; }
  .download .winkelknop { flex: 1 1 0; max-width: 190px; height: 46px; padding: 0 10px 0 12px; gap: 8px; }
  .download .winkelknop__tekst strong { font-size: min(4.1vw, 17px); }
  .download .winkelknop__tekst small { font-size: min(2.6vw, 10.5px); }

  .voet { padding-top: 40px; }
  .voet img { height: 32px; }
  .voet p { font-size: 12.5px; }

  .melding { font-size: 14px; }
}

@media (max-width: 370px) {
  .held__binnen { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .functies__rij { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stippen--ontdek .stippen__rij { display: none; }
}

/* ---------- Doneren ---------- */

.mobielmenu.is-open .mobielmenu__links a:nth-child(5) { transition-delay: .25s; }
.voet__link { color: var(--goud); }
.voet__link:hover { color: var(--goud-licht); }

.doneer { position: relative; isolation: isolate; overflow: hidden; overflow: clip; padding: 150px var(--rand) 20px; }
.doneer__achtergrond {
  position: absolute; inset: 0 0 auto; height: 900px; z-index: -1;
  background:
    linear-gradient(180deg, rgba(7, 5, 4, .55) 0%, rgba(7, 5, 4, .78) 55%, var(--bg) 100%),
    url("../img/download-achtergrond.webp") 50% 40% / cover no-repeat;
  animation: inzoomen 2.8s var(--zacht) backwards;
}
.doneer__held { max-width: 820px; margin: 0 auto; text-align: center; }
.doneer__icoon { width: 96px; height: 96px; margin: 0 auto 26px; }
.doneer__boven { justify-content: center; }
.doneer__boven .ic { display: none; }
.doneer__titel {
  margin: 0; font-family: var(--serif); font-weight: 600;
  font-size: clamp(42px, 5.6vw, 80px); line-height: 1; letter-spacing: -.01em; color: #fffaf1;
  text-shadow: 0 2px 34px rgba(0, 0, 0, .5);
}
.doneer__intro { margin: 20px auto 0; max-width: 32em; font-size: clamp(16px, 1.35vw, 19px); line-height: 1.6; color: var(--tekst-zacht); }
.doneer__knop { margin-top: 34px; min-width: 300px; justify-content: center; }
.doneer__knop .winkelknop__tekst { flex: 0 1 auto; }
.doneer__ideal { fill: rgba(29, 19, 10, .12); stroke: currentColor; stroke-width: 1.6; width: 28px; height: 28px; }
.doneer__veilig { margin: 14px 0 0; font-size: 14px; color: var(--tekst-dim); }

.doneer__hadith {
  max-width: 760px; margin: 90px auto 0; padding: 36px 34px;
  text-align: center; border-radius: 28px;
  background: linear-gradient(180deg, rgba(36, 27, 18, .62), rgba(13, 10, 7, .8));
  border: 1px solid var(--lijn);
  box-shadow: inset 0 1px 0 rgba(255, 225, 170, .06), 0 30px 60px rgba(0, 0, 0, .4);
}
.doneer__hadith figcaption { font-size: 15px; color: var(--goud); letter-spacing: .02em; }
.doneer__hadith blockquote { margin: 14px 0 0; font-family: var(--serif); font-weight: 500; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.35; color: #fbf4e8; }
.doneer__hadith cite { display: block; margin-top: 16px; font-style: normal; font-size: 13.5px; color: var(--tekst-dim); }

.doneer__waarvoor { max-width: 900px; margin: 90px auto 0; text-align: center; }
.doneer__waarvoor h2 { margin: 0 0 26px; font-family: var(--serif); font-weight: 600; font-size: clamp(28px, 2.8vw, 40px); }
.doneer__rij { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.doneer__rij .kaart { padding: 30px 18px 28px; }
.doneer__rij h3 { margin: 0 0 8px; font-family: var(--serif); font-weight: 600; font-size: 23px; line-height: 1.12; color: #fff8ec; }
.doneer__dank { margin: 40px 0 0; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 22px; color: var(--goud-licht); }

@media (max-width: 760px) {
  .doneer { padding: calc(env(safe-area-inset-top) + 100px) 16px 10px; }
  .doneer__icoon { width: 76px; height: 76px; margin-bottom: 20px; }
  .doneer__boven { margin-bottom: 16px; }
  .doneer__intro { font-size: 15.5px; }
  .doneer__knop { width: 100%; min-width: 0; height: 60px; }
  .doneer__knop .winkelknop__tekst strong { font-size: 19px; }
  .doneer__hadith { margin-top: 56px; padding: 26px 20px; border-radius: 22px; }
  .doneer__waarvoor { margin-top: 56px; }
  .doneer__rij { grid-template-columns: 1fr; gap: 10px; }
  .doneer__rij .kaart { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; text-align: left; align-items: center; padding: 16px 18px; }
  .doneer__rij .kaart__ic { grid-row: span 2; width: 36px; height: 36px; margin: 0; }
  .doneer__rij h3 { margin: 0 0 2px; font-size: 20px; }
  .doneer__rij p { font-size: 13.5px; }
  .doneer__dank { font-size: 19px; margin-top: 30px; }
}
