:root{
  --blue:       #4E8FC4;
  --blue-dark:  #1C4870;
  --blue-light: #EAF2FB;
  --maroon:     #7A1F3B;
  --coral:      #6FAE3E;
  --coral-dark: #558430;
  --ink:        #1D2733;
  --muted:      #5C6773;
  --paper:      #FFFFFF;
  --offwhite:   #F5F7FA;
  --line:       rgba(29,39,51,0.12);

  --font-head: 'Montserrat', sans-serif;
  --font-body: 'Mulish', sans-serif;
  --radius: 8px;
  --shadow: 0 10px 28px rgba(29,39,51,0.10);
  --shadow-lg: 0 22px 56px rgba(29,39,51,0.18);
  --ease: cubic-bezier(.22,.9,.32,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

body{ margin:0; font-family: var(--font-body); color: var(--ink); background: var(--paper); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x: hidden; max-width: 100vw; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width: 1180px; margin:0 auto; padding: 0 24px; }

.skip-link{ position:absolute; left:-999px; top:0; background: var(--coral); color:#fff; padding:12px 18px; z-index:999; }
.skip-link:focus{ left:0; }
:focus-visible{ outline: 3px solid var(--coral); outline-offset:2px; }


h1, h2, h3{ font-family: var(--font-head); color: var(--blue-dark); margin:0; }
h1{ font-size: clamp(2rem, 5vw, 3.2rem); font-weight:800; line-height:1.15; color:#fff; text-transform: uppercase; letter-spacing:.01em; }

.section-title{ font-family: var(--font-head); font-size: clamp(1.6rem, 3.2vw, 2.3rem); font-weight:800; text-transform:uppercase; letter-spacing:.02em; text-align:center; margin: 0 0 14px; color: var(--blue-dark); position:relative; padding-bottom:18px; }
.section-title::after{ content:''; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:60px; height:4px; background: var(--maroon); border-radius:2px; }
.section-title--left{ text-align:left; }
.section-title--left::after{ left:0; transform:none; }
.h2--light{ color:#fff; }

.section-lead{ text-align:center; color: var(--muted); max-width: 640px; margin: 0 auto 44px; font-size: 1.02rem; }
.p-lead--light{ color: rgba(255,255,255,.78); }

.eyebrow{ display:inline-block; font-family: var(--font-head); font-weight:800; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color: var(--maroon); margin-bottom:10px; }
.eyebrow--light{ color:#A9D2ED; }

.tag-list{ list-style:none; padding:0; margin: 20px 0 22px; display:flex; flex-wrap:wrap; gap:10px; }
.tag-list li{ background: var(--blue-light); border:1px solid rgba(122,31,59,.25); color: var(--blue-dark); font-weight:700; font-size:.85rem; padding:8px 16px; border-radius:4px; }

.fine-print{ text-align:center; color: var(--muted); font-size:.85rem; margin: 26px auto 0; max-width: 60ch; }

.grid-2{ display:grid; grid-template-columns:.95fr 1.05fr; gap:50px; align-items:start; }
@media (max-width:860px){ .grid-2{ grid-template-columns:1fr; } }


.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family: var(--font-head); font-weight:800; font-size:.88rem; text-transform:uppercase; letter-spacing:.04em; padding:14px 28px; border-radius: var(--radius); border:2px solid transparent; cursor:pointer; transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease), color .18s var(--ease); white-space:nowrap; }
.btn:hover{ transform: translateY(-2px); }
.btn--primary{ background: var(--coral); color:#fff; box-shadow: var(--shadow); }
.btn--primary:hover{ background: var(--coral-dark); }
.btn--outline{ background:transparent; border-color: var(--blue); color: var(--blue); }
.btn--outline:hover{ background: var(--blue); color:#fff; }
.btn--outline-light{ background:transparent; border-color: rgba(255,255,255,.5); color:#fff; }
.btn--outline-light:hover{ background: rgba(255,255,255,.14); border-color:#fff; }
.btn--sm{ padding:10px 18px; font-size:.78rem; }
.full{ width:100%; }

@media (max-width:600px){
  .btn{ white-space:normal; text-align:center; line-height:1.25; }
  .cta-row{ flex-direction:column; align-items:stretch; }
  .cta-row .btn{ width:100%; }
}


.header__top{ background: var(--maroon); color: rgba(255,255,255,.9); font-size:.82rem; }
.header__top-inner{ display:flex; justify-content:space-between; align-items:center; padding:8px 24px; gap:16px; flex-wrap:wrap; }
.header__top a:hover{ color:#fff; }
.header__phone{ display:inline-flex; align-items:center; gap:6px; line-height:1; }
.icon-phone{ display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:15px; height:15px; }
.icon-phone img{ display:block; width:100%; height:100%; object-fit:contain; }
.header__phone-num{ display:inline-block; }

.header{ position: sticky; top:0; z-index:200; background:#fff; box-shadow: 0 2px 10px rgba(29,39,51,.06); }
.header__main{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; gap:20px; }
.brand__logo{ height:68px; width:auto; }

.nav{ display:flex; gap:6px; align-items:center; }
.nav > a{ font-family: var(--font-head); font-size:.82rem; font-weight:800; letter-spacing:.03em; color: var(--blue-dark); padding:10px 14px; border-radius:4px; transition: background .2s var(--ease), color .2s var(--ease); }
.nav > a:hover, .nav > a.active{ background: var(--blue-light); color: var(--blue); }

.nav-dropdown{ position:relative; }
.nav-dropdown__panel{ position:absolute; top:100%; left:0; background:#fff; box-shadow: var(--shadow-lg); border-radius: var(--radius); padding:10px; min-width:220px; opacity:0; visibility:hidden; transform: translateY(8px); transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s; }
.nav-dropdown:hover .nav-dropdown__panel{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-dropdown__panel a{ display:block; padding:10px 14px; border-radius:4px; font-size:.88rem; font-weight:700; color: var(--ink); }
.nav-dropdown__panel a:hover{ background: var(--blue-light); color: var(--blue); }

.header__cta{ flex-shrink:0; }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.nav-toggle span{ width:24px; height:2px; background: var(--blue-dark); border-radius:2px; }

@media (max-width: 980px){
  .header__top{ display:none; }
  .brand__logo{ height:52px; }
  .nav{ position:fixed; inset: 80px 0 0 0; background:#fff; flex-direction:column; align-items:stretch; padding:20px; gap:6px; transform: translateX(100%); transition: transform .3s var(--ease); overflow-y:auto; }
  .nav.is-open{ transform: translateX(0); }
  .nav > a{ font-size:1rem; padding:14px; }
  .nav-dropdown__panel{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; display:none; }
  .nav-dropdown.is-open .nav-dropdown__panel{ display:block; }
  .header__cta{ display:none; }
  .nav-toggle{ display:flex; }
}


.hero{ position:relative; padding:150px 0 90px; overflow:hidden; }
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; }
.hero__scrim{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(78,143,196,.45) 0%, rgba(28,72,112,.82) 50%, rgba(28,72,112,.95) 100%); }
.hero__inner{ position:relative; z-index:1; max-width:760px; }
.hero__lead{ color: rgba(255,255,255,.85); font-size:1.08rem; max-width:56ch; margin:20px 0 30px; }
.hero__actions{ display:flex; gap:14px; flex-wrap:wrap; }
@media (max-width:600px){ .hero{ padding:110px 0 70px; } }


.promo{ background: var(--offwhite); padding: 60px 0; position:relative; z-index:2; }
.promo__grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; padding: 0 24px; max-width:1180px; margin:0 auto; align-items:stretch; }
.promo-card{ display:flex; flex-direction:column; background:#fff; border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 26px 24px; border-top: 4px solid var(--blue); }
.promo-card--green{ border-top-color: var(--coral); }
.promo-card--accent{ border-top-color: var(--maroon); }
.promo-card h3{ font-family: var(--font-head); font-size:1.05rem; font-weight:800; letter-spacing:.02em; margin-bottom:8px; }
.promo-card p{ color: var(--muted); font-size:.9rem; margin:0 0 14px; flex:1; }
.promo-card a{ color: var(--coral); font-weight:800; font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; margin-top:auto; }
@media (max-width:860px){ .promo__grid{ grid-template-columns:1fr; } .promo{ padding: 40px 0; } }


.section{ padding: 96px 0; }
.section--tinted{ background: var(--offwhite); }
#inscripcion{ scroll-margin-top: 110px; }
@media (max-width: 980px){ #inscripcion{ scroll-margin-top: 92px; } }
.section--dark{ background: var(--blue-dark); color:#fff; }


.explore{ padding-top: 70px; }
.explore-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:22px; margin-bottom: 36px; }
@media (max-width:860px){ .explore-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .explore-grid{ grid-template-columns:1fr; } }
.tile{ display:flex; flex-direction:column; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); background:#fff; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.tile:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.tile img{ width:100%; height:190px; object-fit:cover; flex-shrink:0; }
.tile__caption{ flex:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:16px 10px; font-family: var(--font-head); font-weight:800; letter-spacing:.03em; font-size:.92rem; color: var(--blue-dark); border-top: 3px solid var(--maroon); }
.explore__cta{ text-align:center; }


.about__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:center; }
@media (max-width:860px){ .about__grid{ grid-template-columns:1fr; } }
.about__photo{ border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-lg); }
.about__info p{ color: var(--muted); margin:0 0 14px; }


.card-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
@media (max-width:900px){ .card-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:600px){ .card-grid{ grid-template-columns:1fr; } }
.service-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding:28px; border-top:4px solid var(--blue); transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.service-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.service-card--accent{ border-top-color: var(--maroon); }
.service-card__icon{ font-size:1.8rem; display:block; margin-bottom:12px; }
.service-card h3{ font-family: var(--font-head); font-size:1.15rem; margin-bottom:8px; }
.service-card p{ color: var(--muted); margin:0; font-size:.94rem; }


.gallery-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:18px; }
.gallery-grid figure{ margin:0; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); aspect-ratio: 4/3; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition: transform .4s var(--ease); }
.gallery-grid figure:hover img{ transform: scale(1.06); }
@media (max-width:760px){ .gallery-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:500px){ .gallery-grid{ grid-template-columns:1fr; } }


.pricing-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; }
@media (max-width:1080px){ .pricing-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .pricing-grid{ grid-template-columns:1fr; } }
.price-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding:28px 24px; display:flex; flex-direction:column; box-shadow: var(--shadow); transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.price-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.price-card--highlight{ border:2px solid var(--maroon); }
.price-card__flag{ position:absolute; top:-13px; left:20px; background: var(--maroon); color:#fff; font-family: var(--font-head); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:6px 14px; border-radius:4px; }
.price-card__tag{ color: var(--muted); font-weight:800; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.price-card h3{ font-family: var(--font-head); font-size:1.2rem; margin-bottom:14px; }
.price-card__amount{ display:flex; align-items:baseline; gap:6px; font-family: var(--font-head); font-size:2rem; font-weight:800; color: var(--blue-dark); margin-bottom:18px; }
.price-card__amount span{ font-family: var(--font-body); font-size:.72rem; font-weight:800; color: var(--muted); text-transform:uppercase; }
.price-card__amount small{ font-family: var(--font-body); font-size:.9rem; font-weight:700; color: var(--muted); }
.price-card__list{ list-style:none; margin:0 0 22px; padding:0; display:grid; gap:10px; flex:1; }
.price-card__list li{ position:relative; padding-left:22px; color: var(--muted); font-size:.9rem; }
.price-card__list li::before{ content:'✓'; position:absolute; left:0; color: var(--coral); font-weight:900; }


.teacher{ display:grid; grid-template-columns:.8fr 1.2fr; gap:42px; align-items:center; background:#fff; border:1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: clamp(24px,4vw,46px); }
@media (max-width:860px){ .teacher{ grid-template-columns:1fr; } }
.teacher__photo{ height:400px; border-radius: var(--radius); overflow:hidden; }
.teacher__photo img{ width:100%; height:100%; object-fit:cover; }
.teacher__role{ color: var(--maroon); font-weight:800; margin:6px 0 14px; }
.teacher__bio{ color: var(--muted); margin:0 0 24px; }
.teacher__info .btn{ margin-top: 4px; white-space: normal; word-break: break-word; text-align: center; max-width: 100%; }


.schedule-box{ background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius: var(--radius); padding:20px; margin:22px 0; }
.schedule-box span{ display:block; color:#A9D2ED; font-weight:800; text-transform:uppercase; letter-spacing:.06em; font-size:.75rem; margin-bottom:4px; }
.schedule-box strong{ display:block; color:#fff; font-size:1.05rem; margin-bottom:6px; }
.schedule-box small{ color: rgba(255,255,255,.65); }
.schedule-box__link{ display:inline-flex; align-items:center; gap:6px; color: var(--coral); font-weight:800; font-size:.9rem; }
.schedule-box__link:hover{ color: var(--coral-dark); text-decoration: underline; }

.contact-list{ list-style:none; padding:0; margin:0 0 22px; display:grid; gap:10px; }
.contact-list a{ color:#fff; font-weight:700; }
.contact-list a:hover{ color:#A9D2ED; }

.contact-social{ display:flex; align-items:center; gap:12px; }
.contact-social__label{ font-family: var(--font-head); font-weight:800; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color: var(--muted); margin-right:2px; }
.contact-social__badge{ display:flex; align-items:center; justify-content:center; width:38px; height:38px; transition: transform .2s var(--ease); }
.contact-social__badge:hover{ transform: translateY(-2px) scale(1.06); }
.contact-social__badge img{ display:block; width:100%; height:100%; object-fit:contain; }

.map-embed{ border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-lg); }

.form{ background:#fff; color: var(--ink); border-radius: var(--radius); padding:32px; box-shadow: var(--shadow-lg); display:grid; gap:16px; }
.form h3{ margin:0; font-family: var(--font-head); }
.form p{ color: var(--muted); margin:0 0 6px; font-size:.95rem; }
.form label{ display:grid; gap:6px; font-weight:700; font-size:.9rem; }
.form input, .form select, .form textarea{ font-family: var(--font-body); font-size:.95rem; padding:12px 14px; border:1.5px solid var(--line); border-radius:6px; }
.form input:focus, .form select:focus, .form textarea:focus{ border-color: var(--blue); outline:none; }
.form-message{ margin:0; color: var(--coral); font-weight:700; }


.whatsapp-float{ position:fixed; right:22px; bottom:22px; z-index:300; width:58px; height:58px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-lg); transition: transform .2s var(--ease); }
.whatsapp-float:hover{ transform: scale(1.08); }
.whatsapp-float img{ width:42px; height:42px; }


.footer{ background: var(--blue-dark); color: rgba(255,255,255,.72); padding:60px 0 0; }
.footer__grid{ display:grid; grid-template-columns: 1fr 1fr 1.4fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:800px){ .footer__grid{ grid-template-columns:1fr 1fr; } .footer__col--wide{ grid-column: span 2; } }
@media (max-width:560px){ .footer__grid{ grid-template-columns:1fr; } .footer__col--wide{ grid-column:span 1; } }
.footer__col{ display:flex; flex-direction:column; gap:10px; }
.footer__col h4{ color:#fff; font-family: var(--font-head); font-size:.95rem; text-transform:uppercase; letter-spacing:.04em; margin:0 0 6px; }
.footer__col a{ font-size:.88rem; color: rgba(255,255,255,.72); }
.footer__col a:hover{ color:#A9D2ED; }
.footer__col p{ font-size:.88rem; line-height:1.6; margin:0 0 14px; }
.footer__cta{ align-self:flex-start; margin-bottom:14px; }
.footer__social{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.footer__social a{ width:38px; height:38px; border-radius:50%; background: rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:1rem; color: rgba(255,255,255,.85); }
.footer__social a:hover{ background: var(--coral); color:#fff; }
.footer__social a svg{ display:block; }
.footer__social-icon--phone img{ width:16px; height:16px; object-fit:contain; filter: brightness(0) invert(1); opacity:.92; }
.footer__social-icon--badge{ background:none; width:38px; height:38px; transition: transform .2s var(--ease); }
.footer__social-icon--badge:hover{ background:none; transform: translateY(-2px) scale(1.06); }
.footer__social-icon--badge img{ width:100%; height:100%; object-fit:contain; display:block; }
.footer__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:20px 24px; font-size:.78rem; }


.reveal{ opacity:1; transform:none; }


.footer__grant{ display:flex; align-items:center; gap:22px; padding: 26px 24px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer__grant-logos{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.footer__grant-logo{ height:56px; width:auto; flex-shrink:0; background:#fff; border-radius:6px; padding:6px; }
.footer__grant p{ margin:0; font-size:.78rem; line-height:1.6; color: rgba(255,255,255,.6); max-width: 80ch; }
@media (max-width:700px){ .footer__grant{ flex-direction:column; align-items:flex-start; } .footer__grant-logos{ flex-wrap:wrap; } }


.page-hero{ position:relative; padding: 150px 0 60px; overflow:hidden; }
.page-hero__media{ position:absolute; inset:0; z-index:0; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; }
.page-hero__scrim{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(78,143,196,.4) 0%, rgba(28,72,112,.85) 55%, rgba(28,72,112,.92) 100%); }
.page-hero__inner{ position:relative; z-index:1; max-width: 760px; }
.page-hero .eyebrow{ margin-bottom: 10px; }
.page-hero p{ color: rgba(255,255,255,.82); font-size:1.05rem; max-width:60ch; margin: 14px 0 0; }
@media (max-width:600px){ .page-hero{ padding: 120px 0 50px; } }


.notice-banner{ background: var(--blue-light); border:1px solid rgba(122,31,59,.25); border-radius: var(--radius); padding: 22px 26px; display:flex; align-items:center; gap:16px; margin: 0 auto 44px; max-width: 900px; }
.notice-banner__icon{ font-size:1.8rem; flex-shrink:0; }
.notice-banner p{ margin:0; color: var(--blue-dark); font-weight:700; font-size:.95rem; }


.gform-embed{ border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-lg); background:#fff; }
.gform-embed iframe{ width:100%; min-height: 900px; border:0; display:block; }
.gform-fallback{ text-align:center; padding: 20px; color: var(--muted); font-size:.9rem; }


.cta-row{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:44px; }


.groups-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; }
@media (max-width:900px){ .groups-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:600px){ .groups-grid{ grid-template-columns: 1fr; } }
.group-item{ background:#fff; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius: var(--radius); padding:14px 16px; display:flex; flex-direction:column; gap:2px; }
.group-item strong{ font-size:.92rem; color: var(--blue-dark); }
.group-item span{ font-size:.85rem; color: var(--muted); }


.payment-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:22px; }
@media (max-width:900px){ .payment-grid{ grid-template-columns: 1fr; } }
.payment-card{ background:#fff; border:1px solid var(--line); border-top:4px solid var(--coral); border-radius: var(--radius); padding:26px; }
.payment-card h3{ font-family: var(--font-head); font-size:1.1rem; margin-bottom:10px; }
.payment-card p{ color: var(--muted); font-size:.92rem; margin:0 0 10px; }
.payment-card .check-list{ margin: 0; }
.payment-card .check-list li{ font-size:.9rem; }
.iban{ display:inline-block; font-family: var(--font-body); font-weight:800; background: var(--blue-light); color: var(--blue-dark); padding:3px 8px; border-radius:4px; font-size:.85rem; letter-spacing:.02em; }


.check-list{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.check-list li{ position:relative; padding-left:22px; }
.check-list li::before{ content:'✓'; position:absolute; left:0; top:0; color: var(--coral); font-weight:900; }


.conditions-list{ max-width: 900px; margin: 0 auto; padding-left: 22px; display:grid; gap:14px; }
.conditions-list li{ color: var(--ink); font-size:.95rem; line-height:1.65; padding-left:8px; }
.conditions-list li::marker{ font-weight:800; color: var(--maroon); }

.signature-box{ max-width: 900px; margin: 30px auto 0; background:#fff; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius: var(--radius); padding: 22px 26px; }
.signature-box p{ margin:0 0 8px; color: var(--ink); font-size:.95rem; }
.signature-box p:last-child{ margin-bottom:0; }


.legal-box{ max-width: 900px; margin: 0 auto; background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 28px clamp(20px,4vw,36px); }
.legal-box p{ color: var(--muted); font-size:.88rem; line-height:1.7; margin:0 0 14px; }
.legal-box p:last-child{ margin-bottom:0; }


.enroll-form{ max-width: 900px; margin: 0 auto; display:grid; gap: 30px; min-width: 0; width: 100%; }
.form-fieldset{ border: 1px solid var(--line); border-radius: var(--radius); padding: 26px clamp(18px,4vw,32px); background:#fff; min-width: 0; }
.form-fieldset legend{ font-family: var(--font-head); font-weight:800; font-size:1.05rem; color: var(--blue-dark); padding: 0 10px; max-width: 100%; white-space: normal; }
.form-hint{ color: var(--muted); font-size:.88rem; margin: 0 0 12px; font-weight:700; }

.form-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:18px; min-width: 0; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.form-row{ display:grid; gap:6px; min-width: 0; }
.form-row--full{ grid-column: 1 / -1; }
.form-row label{ font-weight:700; font-size:.88rem; color: var(--ink); }
.form-row input, .form-row select, .form-row textarea{
  font-family: var(--font-body); font-size:.95rem; padding:12px 14px; border:1.5px solid var(--line); border-radius:6px;
  width: 100%; min-width: 0; box-sizing: border-box;
}
.form-row input:focus{ border-color: var(--blue); outline:none; }

.radio-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:10px 20px; min-width: 0; }
@media (max-width:640px){ .radio-grid{ grid-template-columns:1fr; } }
.radio-row{ display:grid; gap:10px; min-width: 0; }
.radio-option{ display:flex; align-items:flex-start; gap:10px; font-size:.9rem; color: var(--ink); cursor:pointer; line-height:1.4; min-width: 0; }
.radio-option input{ margin-top:3px; flex-shrink:0; accent-color: var(--blue); }

.checkbox-option{ display:flex; align-items:flex-start; gap:10px; font-weight:800; font-size:.92rem; color: var(--blue-dark); cursor:pointer; background: var(--blue-light); border-radius: var(--radius); padding:16px 18px; min-width: 0; }
.checkbox-option input{ margin-top:3px; flex-shrink:0; width:18px; height:18px; accent-color: var(--coral); }
.iban{ overflow-wrap: break-word; word-break: break-word; }

.enroll-buttons{ display:grid; grid-template-columns: repeat(2, 1fr); gap:24px; max-width: 820px; margin: 0 auto 50px; }
@media (max-width:700px){ .enroll-buttons{ grid-template-columns: 1fr; } }
.enroll-button{
  display:flex; align-items:center; gap:18px; padding: 26px 28px; border-radius: var(--radius);
  background:#fff; border:2px solid var(--line); box-shadow: var(--shadow);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.enroll-button:hover{ transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.enroll-button__icon{ font-size:2rem; flex-shrink:0; }
.enroll-button__text{ display:flex; flex-direction:column; gap:2px; flex:1; }
.enroll-button__text strong{ font-family: var(--font-head); font-size:1.05rem; color: var(--blue-dark); }
.enroll-button__text small{ color: var(--muted); font-size:.85rem; }
.enroll-button__arrow{ font-size:1.4rem; font-weight:800; flex-shrink:0; transition: transform .25s var(--ease); }
.enroll-button:hover .enroll-button__arrow{ transform: translateX(4px); }
.enroll-button--blue{ border-color: rgba(78,143,196,.35); }
.enroll-button--blue .enroll-button__arrow{ color: var(--blue); }
.enroll-button--blue:hover{ border-color: var(--blue); }
.enroll-button--green{ border-color: rgba(111,174,62,.4); }
.enroll-button--green .enroll-button__arrow{ color: var(--coral); }
.enroll-button--green:hover{ border-color: var(--coral); }


.calendar-figure{ max-width: 900px; margin: 0 auto; text-align:center; }
.calendar-figure img{ width:100%; border-radius: var(--radius); box-shadow: var(--shadow-lg); border:1px solid var(--line); }
.calendar-figure figcaption{ margin-top:14px; color: var(--muted); font-size:.9rem; font-weight:700; }


.review-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:22px; margin-bottom:40px; }
@media (max-width:860px){ .review-grid{ grid-template-columns:1fr; } }
.review-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding:26px; box-shadow: var(--shadow); }
.review-card__stars{ color: var(--maroon); letter-spacing:2px; margin-bottom:12px; font-size:.95rem; }
.review-card p{ color: var(--ink); font-size:.95rem; line-height:1.6; margin:0 0 16px; }
.review-card__author{ display:block; font-family: var(--font-head); font-weight:800; font-size:.9rem; color: var(--blue-dark); }