/* Rise Academy — shared site styles */
:root{
  --black:#000;
  --white:#fff;
  --pink:#F38CAA;
  --pink-deep:#C23D63;
  --grey:#9a9a9a;
  --line:rgba(255,255,255,.25);
  --panel:rgba(255,255,255,.05);
  --max:980px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--black);
  color:var(--white);
  font-family:'Raleway',Arial,Helvetica,sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--pink);text-decoration:none}
a:hover{text-decoration:underline}

.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

/* Header / nav */
.site-header{
  padding:36px 24px 18px;
  text-align:center;
}
.logo-badge{
  width:96px;height:96px;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 18px;
  background:var(--black);
}
.logo-badge img{width:100%;height:100%;object-fit:cover}

nav.site-nav ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 28px;
  margin:0 0 18px;
  padding:0;
}
nav.site-nav a{
  color:var(--white);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:6px 2px;
}
nav.site-nav a:hover,
nav.site-nav a[aria-current="page"]{
  color:var(--pink);
  text-decoration:none;
  border-bottom:1px solid var(--pink);
}
nav.site-nav a.nav-home{color:var(--white)}
nav.site-nav a.nav-home:hover,
nav.site-nav a.nav-home[aria-current="page"]{
  color:var(--white);
  border-bottom-color:var(--white);
}
nav.site-nav a.nav-myrise{color:var(--pink)}
nav.site-nav a.nav-myrise:hover,
nav.site-nav a.nav-myrise[aria-current="page"]{
  color:var(--pink);
  border-bottom-color:var(--pink);
}

.divider{
  border:none;
  border-top:1px dashed var(--line);
  max-width:var(--max);
  margin:0 auto 40px;
}

/* Hero */
.hero{
  text-align:center;
  padding:10px 24px 50px;
}
.hero h1{
  font-size:clamp(28px,4vw,44px);
  font-weight:800;
  color:var(--pink);
  margin:0 0 14px;
  letter-spacing:.01em;
}
.hero p.lede{
  max-width:640px;
  margin:0 auto;
  color:rgba(255,255,255,.75);
  font-size:17px;
}

/* Photo bands */
.photo-band{
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--line);
  margin:0 0 8px;
}
.photo-band img{
  width:100%;
  height:min(56vh,460px);
  object-fit:cover;
  display:block;
}
.photo-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:0 0 8px;
}
.photo-grid-2 .photo-band{margin-bottom:0}
.photo-grid-2 .photo-band img{height:min(50vh,420px)}
@media (max-width:640px){
  .photo-grid-2{grid-template-columns:1fr}
}

/* Sections */
section{
  padding:0 24px 60px;
}
section .wrap{padding:0}
h2{
  color:var(--pink);
  font-size:22px;
  font-weight:800;
  letter-spacing:.02em;
  margin:0 0 16px;
}
h3{
  color:var(--white);
  font-size:17px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:26px 0 8px;
}
p{margin:0 0 14px;color:rgba(255,255,255,.85)}
ul.plain{margin:0 0 14px;padding-left:20px;color:rgba(255,255,255,.85)}
ul.plain li{margin-bottom:6px}

.eyebrow{
  color:var(--pink);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:8px;
  display:block;
}

/* Buttons */
.btn{
  display:inline-block;
  background:var(--pink);
  color:var(--black);
  font-weight:800;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:14px 30px;
  border-radius:30px;
  border:none;
  cursor:pointer;
}
.btn:hover{background:#fff;text-decoration:none}
.btn-outline{
  display:inline-block;
  background:transparent;
  color:var(--white);
  font-weight:700;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:12px 26px;
  border-radius:30px;
  border:1px solid var(--line);
}
.btn-outline:hover{border-color:var(--pink);color:var(--pink);text-decoration:none}

/* Cards / grid */
.grid{
  display:grid;
  gap:22px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:22px;
}
.card h3{margin-top:0;color:var(--pink)}
.card ul.plain{margin-bottom:0;font-size:14px}

/* Coach cards */
.coaches-grid{
  display:grid;
  gap:24px;
  grid-template-columns:repeat(3,1fr);
  margin-bottom:10px;
}
@media (max-width:800px){
  .coaches-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .coaches-grid{grid-template-columns:1fr}
}
.coach-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
}
.coach-photo{
  width:100%;
  aspect-ratio:1/1;
  border-radius:8px;
  border:1px dashed var(--line);
  background:rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--grey);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:16px;
  text-align:center;
}
.coach-card h3{
  color:var(--pink);
  font-size:17px;
  letter-spacing:.03em;
  margin:0 0 8px;
}
.coach-card ul.plain{
  font-size:13px;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--grey);
  margin-bottom:0;
}

/* Tables */
.table-wrap{overflow-x:auto;margin:0 0 20px}
table{
  border-collapse:collapse;
  width:100%;
  font-size:14px;
  min-width:480px;
}
table caption{
  text-align:left;
  color:var(--pink);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:12px;
  margin-bottom:8px;
}
th,td{
  border:1px solid var(--line);
  padding:10px 12px;
  text-align:left;
}
th{
  background:var(--panel);
  color:var(--pink);
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:.06em;
}
td{color:rgba(255,255,255,.85)}

/* Program summary cards (replaces the old overview table) */
.summary-grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(4,1fr);
  margin:0 0 20px;
}
@media (max-width:900px){.summary-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.summary-grid{grid-template-columns:1fr}}
/* The Holiday Series footnote. Placed as its own grid item on a second
   row under the last column, rather than inside the card or in a wrapper
   around it: a wrapper would eat 27px of that cell and leave the fourth
   card visibly shorter than the other three. This way all four cards keep
   an identical height and the note sits outside the border, exactly like
   the "Januari – maart 2027" note under the calendar. */
.summary-grid-note{grid-column:4;margin-top:0}
@media (max-width:900px){.summary-grid-note{grid-column:2}}
@media (max-width:520px){.summary-grid-note{grid-column:1}}
.summary-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-top:3px solid var(--pink);
  border-radius:10px;
  padding:20px;
}
.summary-card h3{
  color:var(--pink);
  margin:0 0 14px;
  font-size:15px;
}
.summary-card dl{margin:0}
.summary-card .row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:7px 0;
  border-top:1px dashed var(--line);
  font-size:13px;
}
.summary-card .row:first-child{border-top:none}
.summary-card .row dt{color:var(--grey);text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.summary-card .row dd{margin:0;text-align:right;color:rgba(255,255,255,.9)}

/* Info strip: replaces the small Dag / Locatie / Timing table */
.info-strip{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  margin:0 0 22px;
}
.info-strip > div{
  flex:1 1 160px;
  padding:16px 20px;
  border-left:1px dashed var(--line);
}
.info-strip > div:first-child{border-left:none}
.info-strip .info-label{
  display:block;
  color:var(--pink);
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:4px;
}
.info-strip .info-value{font-size:14px;color:#fff}

/* Doelgroep profile line */
.profile-line{
  color:var(--pink);
  font-style:normal;
  font-weight:600;
}

/* Date chips */
.date-chips-group{margin:0 0 22px}
.date-chips-month{
  display:flex;
  align-items:baseline;
  gap:14px;
  margin:14px 0 8px;
}
.date-chips-month .month-label{
  color:var(--grey);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  min-width:64px;
}
.date-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.date-chip{
  display:inline-block;
  border:1px solid rgba(243,140,170,.5);
  color:#fff;
  background:rgba(243,140,170,.08);
  font-size:12px;
  font-weight:700;
  padding:6px 12px;
  border-radius:20px;
}
.date-chip.is-vacation{
  border-style:dashed;
  background:transparent;
  color:var(--grey);
}
.chips-note{font-size:12px;color:var(--grey);margin:8px 0 0}

/* Session cards (replaces holiday-series schedule tables) */
.session-cards{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0 0 22px;
}
.session-card{
  display:flex;
  align-items:center;
  gap:16px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:12px 16px;
}
.session-card .sc-date{
  min-width:110px;
  font-weight:700;
  font-size:13px;
}
.session-card .sc-date .sc-day{
  display:block;
  color:var(--grey);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
}
.session-card .sc-time{flex:1;font-size:13px;color:rgba(255,255,255,.8)}
.session-card .sc-badge{
  border:1px solid var(--pink);
  color:var(--pink);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:4px 10px;
  border-radius:20px;
}

/* Calendar */
.calendar-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 26px;
}
.cal-filter{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  color:var(--white);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:8px 16px;
  border-radius:30px;
  background:transparent;
  cursor:pointer;
}
.cal-filter .cal-swatch{width:11px;height:11px;flex:none;border-radius:3px}
.cal-filter[data-active="true"]{border-color:var(--pink);color:var(--pink)}
.cal-filter[data-active="false"]{opacity:.35}

.cal-months{
  display:grid;
  gap:22px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
.cal-month{
  border:1px solid var(--line);
  border-radius:10px;
  padding:16px;
}
.cal-month h4{
  margin:0 0 12px;
  color:var(--pink);
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:center;
}
.cal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px;
  text-align:center;
}
.cal-grid .cal-dow{
  font-size:9px;
  color:var(--grey);
  letter-spacing:.04em;
  padding-bottom:4px;
}
.cal-grid .cal-day{
  position:relative;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:rgba(255,255,255,.55);
  border-radius:6px;
  transition:background-color .15s;
}
.cal-grid .cal-day.empty{visibility:hidden}
.cal-grid .cal-day.has-session{
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.cal-grid .cal-day.has-session:hover{background:rgba(255,255,255,.1)}
.cal-grid .cal-day.is-selected{
  background:rgba(255,255,255,.05);
  box-shadow:0 0 0 2px var(--pink) inset;
}
.cal-grid .cal-day .cal-dots{
  position:absolute;
  bottom:3px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:3px;
}
.cal-dot{width:7px;height:7px;border-radius:2px}
.cal-dot.dot-amclub{background:var(--pink)}
.cal-dot.dot-talent{background:#fff}
.cal-dot.dot-idp{background:var(--pink-deep)}
.cal-dot.dot-holiday{background:var(--grey)}
.cal-dot.hidden-type{display:none}
.cal-legend{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin:22px 0 0;
  font-size:11px;
  color:var(--grey);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.cal-legend span{display:inline-flex;align-items:center;gap:6px}

/* Day detail: pops over the calendar as a modal */
.day-detail-backdrop{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.75);
  z-index:200;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.day-detail-backdrop.is-open{display:flex}
.day-detail{
  background:#0a0a0a;
  border:1px solid var(--line);
  border-radius:14px;
  padding:26px;
  max-width:520px;
  width:100%;
  max-height:80vh;
  overflow-y:auto;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.day-detail-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.day-detail-header h4{
  margin:0;
  color:var(--pink);
  font-size:16px;
  font-weight:700;
  text-transform:none;
  letter-spacing:.01em;
}
.day-detail-close{
  background:none;
  border:1px solid var(--line);
  color:var(--grey);
  font-size:13px;
  line-height:1;
  cursor:pointer;
  padding:6px 10px;
  border-radius:20px;
}
.day-detail-close:hover{border-color:var(--pink);color:var(--pink)}
.day-detail-empty{color:var(--grey);font-size:13px;margin:0}
.day-detail .session-card .sc-badge.badge-amclub{border-color:var(--pink);color:var(--pink)}
.day-detail .session-card .sc-badge.badge-talent{border-color:#fff;color:#fff}
.day-detail .session-card .sc-badge.badge-idp{border-color:var(--pink-deep);color:var(--pink-deep)}
.day-detail .session-card .sc-badge.badge-holiday{border-color:var(--grey);color:var(--grey)}

/* Social icon buttons */
.social-icons{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:18px;
  margin:0 0 34px;
}
.social-icon{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width:76px;
  color:var(--white);
}
.social-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6}
.social-icon span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--grey)}
.social-icon:hover{color:var(--pink)}
.social-icon:hover span{color:var(--pink)}

/* Program sub-nav pills */
.pill-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 34px;
}
.pill-nav a{
  border:1px solid var(--line);
  color:var(--white);
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:9px 18px;
  border-radius:30px;
}
.pill-nav a:hover{border-color:var(--pink);color:var(--pink);text-decoration:none}

.program-block{
  border-top:1px dashed var(--line);
  padding-top:40px;
  margin-top:40px;
  scroll-margin-top:24px;
}

/* Steps */
.steps{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(4,1fr);
  margin:20px 0 10px;
}
@media (max-width:880px){
  .steps{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:520px){
  .steps{grid-template-columns:1fr}
}
.step-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:22px;
}
.step-card .step-num{
  color:var(--pink);
  font-weight:800;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:6px;
  display:block;
}

/* Contact list */
.contact-list{list-style:none;margin:0 0 30px;padding:0}
.contact-list li{
  border-top:1px dashed var(--line);
  padding:14px 0;
  font-size:15px;
}
.contact-list li:first-child{border-top:none}
.contact-list span{
  display:inline-block;
  width:110px;
  color:var(--grey);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.cta-center{text-align:center;margin:28px 0 0}

/* Contact form */
.contact-form{
  max-width:520px;
  margin:0 0 10px;
}
.contact-form .form-row{
  margin-bottom:18px;
}
.contact-form label{
  display:block;
  color:var(--grey);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
  padding:12px 14px;
  color:#fff;
  font-family:inherit;
  font-size:14px;
  resize:vertical;
}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:var(--pink);
}
.contact-form button{margin-bottom:10px}

/* My Rise embedded tool */
.myrise-embed{
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  margin:0 0 12px;
  background:var(--panel);
}
.myrise-embed iframe{
  width:100%;
  height:min(85vh,900px);
  border:none;
  display:block;
}

/* My Rise CTA panel */
.myrise-panel{
  text-align:center;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:50px 30px;
  margin:0 0 40px;
}
.myrise-panel h2{margin-bottom:10px}

/* Footer */
footer{
  padding:50px 24px 40px;
  text-align:center;
  border-top:1px dashed var(--line);
  color:var(--grey);
  font-size:12px;
  letter-spacing:.04em;
}
footer p{color:var(--grey);font-size:12px;margin:0 0 6px}
.social-links{
  display:flex;
  justify-content:center;
  gap:18px;
  margin:0 0 26px;
  flex-wrap:wrap;
}
.social-links a{
  color:var(--white);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.social-links a:hover{color:var(--pink);text-decoration:none}

.back-home{
  display:inline-block;
  margin-bottom:26px;
  color:var(--grey);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.back-home:hover{color:var(--pink)}

@media (max-width:600px){
  .site-header{padding:26px 16px 14px}
  section{padding:0 16px 46px}
}
