/* Koach — trainingsplannen. Bouwt voort op kennisbank.css en oefeningen.css:
   die leveren de kleuren, de header, de footer, .ox-page, .ox-h1, .ox-blok en
   het kaartenraster. Hier staat alleen wat deze sectie eigen heeft.

   Alles is mobiel-first opgezet en getoetst op 320 tot 440 punten. De sessietabel
   is bewust geen <table> met vaste kolommen: op een telefoon van 390px past dat
   niet zonder de pagina opzij te laten scrollen. Het is een lijst die op een breed
   scherm in kolommen valt. */

/* --- de keuzestrook op de hub --- */
.tp-groepen{display:grid;gap:20px;margin:34px 0 0}
@media(min-width:860px){.tp-groepen{grid-template-columns:1fr 1fr;gap:26px}}

.tp-groep{background:#11182B;border:1px solid #232B40;border-radius:20px;padding:22px}
.tp-groep h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em;margin:0}
.tp-groep .tp-groep-lead{font-size:15px;line-height:1.6;color:#AEB4C2;margin:8px 0 18px;max-width:46ch}

/* Eén rij per lengte. flex met min-width:0 op de tekstkolom, anders duwt een lange
   titel de weeklabel van het scherm af. */
.tp-rij{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid rgba(35,43,64,.8);text-decoration:none}
.tp-rij:hover .tp-rij-titel{color:#FF8C5A}
.tp-weken{flex:0 0 auto;width:54px;height:54px;border-radius:15px;background:#0E1426;border:1px solid #232B40;
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.tp-weken b{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:19px;color:#FF8C5A}
.tp-weken span{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#5B6479;margin-top:3px}
.tp-rij-tekst{flex:1;min-width:0}
.tp-rij-titel{display:block;font-family:'Archivo',sans-serif;font-weight:700;font-size:16.5px;color:#F5F3EF;margin:0;overflow-wrap:break-word}
.tp-rij-sub{display:block;font-size:14px;line-height:1.5;color:#8A93A6;margin:3px 0 0}
.tp-pijl{flex:0 0 auto;color:#5B6479}

/* --- wat je team leert: de samenvatting boven de download --- */
.tp-leer{margin:30px 0 0;background:#11182B;border:1px solid #232B40;border-radius:20px;padding:20px 22px}
.tp-leer h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:19px;letter-spacing:-.02em;margin:0 0 14px;color:#F5F3EF}
.tp-leer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
@media(min-width:760px){.tp-leer ul{grid-template-columns:1fr 1fr;gap:10px 26px}}
/* De punt hangt buiten de tekstkolom, zodat een punt dat over twee regels loopt
   netjes inspringt in plaats van onder het vinkje door te lopen. */
.tp-leer li{position:relative;padding-left:26px;font-size:15.5px;line-height:1.55;color:#C8CDD9}
.tp-leer li::before{content:'';position:absolute;left:0;top:6px;width:13px;height:7px;
  border-left:2.4px solid #FF8C5A;border-bottom:2.4px solid #FF8C5A;transform:rotate(-45deg)}

/* --- de downloadkaart op een detailpagina --- */
.tp-download{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:30px 0 0;
  background:#11182B;border:1px solid #3A2417;border-radius:20px;padding:20px}
.tp-download-tekst{flex:1;min-width:180px}
.tp-download-tekst b{display:block;font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;color:#F5F3EF}
.tp-download-tekst span{display:block;font-size:14px;color:#8A93A6;margin-top:4px}
.tp-knop{display:inline-flex;align-items:center;gap:9px;background:#FF5A1F;color:#fff;text-decoration:none;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:15.5px;padding:13px 22px;border-radius:999px;
  box-shadow:0 14px 30px -14px rgba(255,90,31,.7);transition:background .15s}
.tp-knop:hover{background:#FF6B35}
.tp-knop.stil{background:transparent;color:#FF8C5A;border:1px solid #3A2417;box-shadow:none}
.tp-knop.stil:hover{background:#1B1410}

/* --- fasen --- */
.tp-fasen{display:grid;gap:12px;margin:18px 0 0}
@media(min-width:760px){.tp-fasen{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}}
.tp-fase{background:#11182B;border:1px solid #232B40;border-radius:14px;padding:15px 16px}
.tp-fase .tp-fase-nr{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#FF8C5A}
.tp-fase h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:16px;color:#F5F3EF;margin:7px 0 5px}
.tp-fase p{font-size:14.5px;line-height:1.55;color:#AEB4C2;margin:0}

/* De header is sticky. Zonder scroll-margin verdwijnt precies de regel waar je naartoe
   springt eronder -- en het HowTo-schema verwijst per sessie naar een anker, dus die
   sprong wordt echt gebruikt. De hoogte is gemeten, niet geschat: onder 821px staat de
   taalschakelaar op een eigen regel en is de header 115px, daarboven 73px. */
[id^="session-"]{scroll-margin-top:127px}
@media(min-width:821px){[id^="session-"]{scroll-margin-top:85px}}

/* --- sessielijst --- */
.tp-sessies{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid #232B40}
.tp-sessie{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid #232B40}
.tp-nr{flex:0 0 auto;width:30px;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:14px;color:#FF8C5A;padding-top:2px}
.tp-sessie-tekst{flex:1;min-width:0}
.tp-sessie-titel{font-family:'Archivo',sans-serif;font-weight:700;font-size:16px;color:#F5F3EF;margin:0;overflow-wrap:break-word}
.tp-sessie-focus{font-size:14.5px;line-height:1.55;color:#8A93A6;margin:3px 0 0}
.tp-sessie-spel{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:#7CC9A0;margin-top:6px}

/* --- oefeningenindex --- */
.tp-oef{display:grid;gap:9px;margin:18px 0 0;grid-template-columns:1fr}
@media(min-width:620px){.tp-oef{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.tp-oef{grid-template-columns:1fr 1fr 1fr}}
.tp-oef a{display:block;background:#11182B;border:1px solid #232B40;border-radius:12px;padding:11px 14px;
  text-decoration:none;font-size:15px;color:#C8CDD9;overflow-wrap:break-word}
.tp-oef a:hover{border-color:#3A445E;color:#F5F3EF}

/* --- vraag en antwoord --- */
.tp-faq{margin:18px 0 0}
.tp-faq details{background:#11182B;border:1px solid #232B40;border-radius:14px;padding:0;margin-bottom:10px}
.tp-faq summary{cursor:pointer;list-style:none;padding:15px 18px;font-family:'Archivo',sans-serif;
  font-weight:700;font-size:16px;color:#F5F3EF}
.tp-faq summary::-webkit-details-marker{display:none}
.tp-faq summary::after{content:'+';float:right;color:#FF8C5A;font-weight:700}
.tp-faq details[open] summary::after{content:'\2013'}
.tp-faq p{padding:0 18px 16px;margin:0;font-size:15.5px;line-height:1.62;color:#AEB4C2}

/* --- slot-CTA --- */
.tp-cta{margin:52px 0 0;background:linear-gradient(180deg,#141B30,#11182B);
  border:1px solid #232B40;border-radius:22px;padding:26px}
.tp-cta h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.02em;margin:0 0 10px}
.tp-cta p{font-size:16px;line-height:1.6;color:#AEB4C2;margin:0 0 18px;max-width:58ch}

@media(prefers-reduced-motion:reduce){
  .tp-knop,.tp-rij,.tp-oef a{transition:none}
}
