/* Layoutlaag. Inline styles kunnen geen media queries bevatten, dus elk responsive grid
   gebruikt deze klassen in plaats van een vaste gridTemplateColumns.
   Mobiel-eerst: één kolom, kolommen verschijnen vanaf --bp-md. */

:root{
--bp-sm:640px; /* @kind other */
--bp-md:900px; /* @kind other */
--bp-lg:1200px; /* @kind other */
--page-max:1200px; /* @kind other */
--gutter:var(--space-4);
}

@media (min-width:640px){:root{--gutter:var(--space-6);}}
@media (min-width:900px){:root{--gutter:var(--space-7);}}

.psy-page{max-width:var(--page-max);margin:0 auto;padding-inline:var(--gutter);}

.psy-stack{display:flex;flex-direction:column;gap:var(--space-5);}
.psy-stack-tight{display:flex;flex-direction:column;gap:var(--space-3);}
.psy-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;}

.psy-grid-2,.psy-grid-3,.psy-grid-4,.psy-split,.psy-split-wide{
display:grid;
grid-template-columns:1fr;
gap:var(--space-5);
}

@media (min-width:900px){
.psy-grid-2{grid-template-columns:repeat(2,1fr);}
.psy-grid-3{grid-template-columns:repeat(2,1fr);}
.psy-grid-4{grid-template-columns:repeat(2,1fr);}
.psy-split{grid-template-columns:1fr 1fr;gap:var(--space-7);align-items:center;}
.psy-split-wide{grid-template-columns:1.1fr 1fr;gap:var(--space-6);align-items:start;}
}

@media (min-width:1200px){
.psy-grid-3{grid-template-columns:repeat(3,1fr);}
.psy-grid-4{grid-template-columns:repeat(4,1fr);}
}

/* Draait de visuele volgorde van een split om zonder de DOM-volgorde te wijzigen, zodat de
   lees- en tabvolgorde op mobiel blijven kloppen. */
@media (min-width:900px){
.psy-split-reverse > :first-child{order:2;}
.psy-split-reverse > :last-child{order:1;}
}

/* Vloeiende displaytype: koppen blijven groot op desktop maar lopen nooit over op 320px. */
.psy-display-1{font-family:var(--font-display);font-weight:400;line-height:var(--leading-tight);
font-size:clamp(2rem,1.3rem + 3.2vw,3.5rem);margin:0;}
.psy-display-2{font-family:var(--font-display);font-weight:400;line-height:1.15;
font-size:clamp(1.75rem,1.25rem + 2.2vw,2.5rem);margin:0;}
.psy-display-3{font-family:var(--font-display);font-weight:400;line-height:1.2;
font-size:clamp(1.375rem,1.1rem + 1.1vw,1.75rem);margin:0;}

/* Geen .psy-eyebrow meer: het kapitalenlabel boven een kop hoort niet in dit ontwerp. Wat er
   stond was ofwel al gedekt door de kop zelf, ofwel meta die onder de kop hoort (.artikel-meta). */

/* Brede inhoud scrollt in zijn eigen kader, nooit de pagina. */
.psy-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* SiteHeader: de inline nav en het ingeklapte paneel wisselen bij --bp-md. Staat hier en niet
   inline, omdat een inline `display` elke media query verslaat. */
.psy-nav-links,.psy-nav-actions{display:none;}
.psy-nav-toggle{display:inline-flex;}
@media (min-width:900px){
.psy-nav-links{display:flex;gap:4px;align-items:center;}
.psy-nav-actions{display:flex;gap:var(--space-2);align-items:center;}
.psy-nav-toggle,.psy-nav-panel{display:none;}
}

/* Tabellen (wachttijden) moeten op 375px leesbaar blijven. */
@media (max-width:639px){
.psy-table-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.psy-table-stack tr{display:block;padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);}
.psy-table-stack td{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-1) 0;}
.psy-table-stack td::before{content:attr(data-label);font-weight:500;color:var(--text-secondary);}
.psy-table-stack tbody th{flex-direction:column;align-items:flex-start;gap:2px;}
}

/* Scrim voor tekst op fotografie — de fotografierichtlijn schrijft minimaal 40% voor. */
.psy-scrim{position:relative;}
.psy-scrim > .psy-scrim-text{
position:absolute;left:var(--space-4);right:var(--space-4);bottom:var(--space-4);
background:rgba(26,21,32,.82);color:var(--parchment);
padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);
}
