:root{--green:#12372a;--green2:#1d5a42;--lime:#b9d932;--cream:#f5f3eb;--ink:#18221e;--muted:#647069;--white:#fff;--shadow:0 18px 50px rgba(18,55,42,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,80px);background:#fff;position:sticky;top:0;z-index:20;box-shadow:0 4px 18px rgba(0,0,0,.05)}.brand img{height:54px;width:auto}.nav{display:flex;align-items:center;gap:30px;font-weight:650}.nav>a:not(.button):hover{color:var(--green2)}.button{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:8px;background:var(--lime);color:#182412;padding:14px 24px;font-weight:800;cursor:pointer;transition:.2s}.button:hover{transform:translateY(-2px);filter:brightness(1.04)}.button-small{padding:10px 18px}.menu-toggle{display:none;background:none;border:0}.menu-toggle span{width:25px;height:2px;background:var(--green);display:block;margin:5px}.hero{min-height:680px;position:relative;display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,35,27,.97) 0%,rgba(12,35,27,.82) 36%,rgba(12,35,27,.12) 70%)}.hero-content{position:relative;color:#fff;width:min(650px,90%);margin-left:clamp(24px,7vw,110px);padding:70px 0}.eyebrow{color:var(--lime);font-weight:850;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;margin:0 0 14px}.hero h1{font-size:clamp(3rem,6vw,5.4rem);line-height:.98;letter-spacing:-.055em;margin:0 0 24px}.hero-copy{font-size:1.2rem;max-width:570px;color:#e5ece8}.hero-actions{display:flex;gap:12px;margin:30px 0}.button-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}.hero-points{display:flex;flex-wrap:wrap;gap:18px;list-style:none;padding:0;margin:34px 0 0;font-size:.88rem}.hero-points li:before{content:'✓';color:var(--lime);font-weight:900;margin-right:7px}.section{padding:100px clamp(24px,6vw,96px)}.section-heading{max-width:720px;margin:0 auto 50px;text-align:center}.section-heading h2,.benefit-copy h2,.contact h2{font-size:clamp(2rem,4vw,3.3rem);line-height:1.1;letter-spacing:-.035em;margin:8px 0 18px}.section-heading>p:last-child{color:var(--muted)}.course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1400px;margin:auto}.course-card{background:#fff;border:1px solid #e3e8e5;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(18,55,42,.06);transition:.25s}.course-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}.course-visual{height:190px;background-image:linear-gradient(0deg,rgba(8,27,20,.55),transparent 70%),url('assets/hero-bus-camion.png');background-size:cover;position:relative}.course-visual.bus{background-position:45% 62%}.course-visual.truck{background-position:82% 58%}.course-visual.renew{background-position:58% 48%;filter:saturate(.65)}.course-visual.manager{background-position:70% 40%;filter:contrast(1.08)}.course-visual span{position:absolute;bottom:15px;left:18px;color:white;font-weight:900;letter-spacing:.14em;font-size:.74rem}.card-body{padding:25px}.tag{font-size:.72rem;color:var(--green2);font-weight:850;text-transform:uppercase;letter-spacing:.1em}.card-body h3{font-size:1.4rem;line-height:1.15;margin:8px 0}.card-body>p:not(.tag),.card-body li{color:var(--muted);font-size:.92rem}.card-body ul{padding-left:19px;min-height:62px}.card-body>a{color:var(--green2);font-weight:850;display:inline-block;margin-top:10px}.benefits{padding:100px clamp(24px,7vw,110px);background:var(--green);color:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:center}.benefit-copy>p:not(.eyebrow){color:#cdd9d3}.text-link{color:var(--lime);font-weight:850}.benefit-grid{display:grid;grid-template-columns:1fr 1fr}.benefit-grid>div{padding:30px;border-left:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.benefit-grid b{color:var(--lime)}.benefit-grid h3{margin:10px 0 4px}.benefit-grid p{color:#cdd9d3;margin:0;font-size:.92rem}.contact{background:var(--cream);display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.contact-copy>p:not(.eyebrow){color:var(--muted)}.contact-list{display:grid;gap:12px;margin-top:35px}.contact-list a{display:flex;gap:14px;align-items:center;font-weight:800}.contact-list small{display:block;color:var(--muted);font-weight:500}.edit-note{font-size:.75rem}.contact-form{background:white;padding:38px;border-radius:14px;box-shadow:var(--shadow)}label{display:block;font-size:.85rem;font-weight:750;margin-bottom:17px}input,select,textarea{display:block;width:100%;border:1px solid #d7ded9;border-radius:7px;padding:13px;margin-top:6px;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid rgba(185,217,50,.5);border-color:var(--green2)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.check{display:flex;align-items:flex-start;font-weight:500}.check input{width:auto;margin:5px 9px 0 0}.form-status{margin:12px 0 0;font-size:.87rem;color:var(--green2);font-weight:700}.whatsapp{position:fixed;right:24px;bottom:24px;z-index:15;background:#25d366;color:#083d1b;padding:10px 12px 10px 16px;border-radius:99px;display:flex;gap:10px;align-items:center;font-weight:850;box-shadow:0 10px 30px rgba(0,0,0,.2)}.whatsapp b{display:grid;place-items:center;background:white;width:34px;height:34px;border-radius:50%}
@media(max-width:1050px){.course-grid{grid-template-columns:1fr 1fr}.benefits,.contact{gap:45px}.nav{gap:17px}.nav .button{display:none}}
@media(max-width:760px){.site-header{height:70px;padding:0 20px}.brand img{height:45px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:22px;box-shadow:0 15px 25px rgba(0,0,0,.1)}.nav.open{display:flex}.nav .button{display:flex}.hero{min-height:650px}.hero-image{object-position:63% center}.hero-overlay{background:linear-gradient(90deg,rgba(12,35,27,.95),rgba(12,35,27,.55))}.hero-content{margin:0 22px;width:auto}.hero h1{font-size:3.1rem}.hero-points{display:grid;gap:7px}.section{padding:75px 20px}.course-grid,.benefits,.contact{grid-template-columns:1fr}.benefits{padding:75px 22px;gap:45px}.benefit-grid>div{padding:20px 15px}.contact{gap:35px}.contact-form{padding:24px}.form-row{grid-template-columns:1fr}.whatsapp span{display:none}.whatsapp{padding:7px}.course-grid{gap:18px}}
@media(max-width:420px){.course-grid{grid-template-columns:1fr}.benefit-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column}.hero h1{font-size:2.7rem}}
.course-grid{grid-template-columns:repeat(3,1fr);max-width:1120px}@media(max-width:1050px){.course-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.course-grid{grid-template-columns:1fr}}
.brand img{height:68px;width:auto}@media(max-width:760px){.brand img{height:58px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Cursos y precios añadidos manteniendo la identidad visual original */
.course-details{background:#fff}.inline-phone{color:var(--green2);font-weight:850}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:1120px;margin:0 auto}.detail-card{position:relative;background:var(--cream);border:1px solid #e1e6df;border-radius:14px;padding:34px;box-shadow:0 10px 30px rgba(18,55,42,.06)}.detail-card.featured{border-top:5px solid var(--lime)}.detail-card:not(.featured){border-top:5px solid var(--green2)}.detail-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.detail-top .tag{margin:4px 0}.price{font-size:1.7rem;line-height:1;font-weight:900;color:var(--green);white-space:nowrap}.detail-card h3{font-size:1.75rem;line-height:1.12;letter-spacing:-.025em;margin:12px 0 4px}.detail-subtitle{font-weight:750;color:var(--green2);margin:0 0 22px}.detail-facts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 25px}.detail-facts span{background:#fff;border:1px solid #e0e5e1;border-radius:99px;padding:7px 11px;font-size:.8rem;font-weight:700}.detail-card h4{font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;color:var(--green);margin:22px 0 7px}.detail-card>p:not(.detail-subtitle):not(.limited),.detail-card li{color:var(--muted)}.detail-card ul{padding-left:20px}.detail-card li+li{margin-top:7px}.detail-cta{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:27px}.limited{font-size:.78rem;font-weight:800;color:var(--green2);margin:14px 0 0}.local-seo{padding:70px clamp(24px,7vw,110px);background:var(--cream)}.local-seo>div{max-width:1000px;margin:auto}.local-seo h2{font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.12;letter-spacing:-.03em;margin:8px 0 18px}.local-seo p{color:var(--muted)}.towns{font-size:.9rem;border-top:1px solid #dce2dd;padding-top:16px;margin-top:24px}@media(max-width:760px){.detail-grid{grid-template-columns:1fr}.detail-card{padding:25px}.detail-top{align-items:center}.detail-cta{align-items:stretch;flex-direction:column}.detail-cta .button{text-align:center}.local-seo{padding:60px 20px}}

/* Zona de servicio: integración visual discreta */
.local-note{padding:24px clamp(24px,7vw,110px);background:var(--cream);border-top:1px solid #e1e6df}.local-note>div{max-width:1000px;margin:auto}.local-note p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}.local-note .towns{margin-top:5px;padding:0;border:0;font-size:.76rem;opacity:.82}


/* Calendario editable */
.calendar-section{background:var(--cream)}.calendar-wrap{max-width:980px;margin:0 auto;background:#fff;border:1px solid #e1e6df;border-radius:16px;padding:30px;box-shadow:var(--shadow)}.calendar-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:14px;margin-bottom:20px}.calendar-toolbar h3{text-align:center;margin:0;font-size:1.5rem;text-transform:capitalize;color:var(--green)}.calendar-nav{width:44px;height:44px;border-radius:50%;border:1px solid #d9e1dc;background:#fff;color:var(--green);font-size:1.35rem;cursor:pointer}.calendar-nav:hover{background:var(--green);color:#fff}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-weekdays{margin-bottom:8px}.calendar-weekdays span{text-align:center;font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.calendar-day{min-height:105px;border:1px solid #e1e6df;border-radius:10px;padding:9px;background:#fff;position:relative}.calendar-day.is-other{background:#f7f8f6;color:#aeb6b1}.calendar-day.is-today{outline:2px solid var(--lime);outline-offset:-2px}.day-number{font-size:.82rem;font-weight:850}.calendar-event{display:block;margin-top:6px;border:0;border-radius:6px;padding:5px 6px;font-size:.7rem;font-weight:800;line-height:1.2;text-align:left;width:100%}.calendar-event.cap{background:#eef6d1;color:#38500b}.calendar-event.transport{background:#dceae4;color:var(--green)}.calendar-legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:20px;color:var(--muted);font-size:.84rem}.calendar-legend span{display:flex;align-items:center;gap:7px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.cap{background:#b9d932}.dot.transport{background:var(--green2)}.calendar-admin{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:25px;padding-top:22px;border-top:1px solid #e4e8e5}.button-admin{border:0;cursor:pointer}.calendar-admin-note{margin:0;color:var(--muted);font-size:.78rem}.calendar-editor{margin-top:20px;padding:22px;border-radius:12px;background:var(--cream);border:1px solid #e0e5e1}.calendar-editor-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.calendar-editor-actions .button{border:0;cursor:pointer}.calendar-clear{border:0;background:transparent;color:var(--green2);font-weight:800;cursor:pointer}.calendar-events-admin{display:grid;gap:8px;margin-top:20px}.admin-event-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 12px;background:#fff;border:1px solid #e0e5e1;border-radius:8px;font-size:.82rem}.admin-event-row button{border:0;background:#fff0ed;color:#a62c1f;border-radius:7px;padding:7px 9px;font-weight:800;cursor:pointer}.admin-event-row small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:760px){.calendar-wrap{padding:18px 12px}.calendar-weekdays,.calendar-grid{gap:4px}.calendar-day{min-height:78px;padding:6px}.calendar-event{font-size:.6rem;padding:4px}.calendar-toolbar{grid-template-columns:42px 1fr 42px}.calendar-toolbar h3{font-size:1.15rem}.calendar-weekdays span{font-size:.62rem}}

.calendar-login{margin-top:20px;padding:22px;border-radius:12px;background:#f8faf7;border:1px solid #e0e5e1}.calendar-login h3{margin:0 0 16px;color:var(--green)}.calendar-login-status{min-height:1.2em;margin:12px 0 0;color:#a62c1f;font-weight:800;font-size:.82rem}.calendar-logout{border:0;background:transparent;color:var(--green2);font-weight:800;cursor:pointer;padding:8px 4px}.calendar-logout:hover{text-decoration:underline}

/* Cursos publicados y edición en directo */
.published-courses-block{margin-top:32px;padding-top:28px;border-top:1px solid #e4e8e5}.published-courses-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:18px}.published-courses-heading h3{margin:4px 0 0;color:var(--green);font-size:1.45rem}.published-courses-heading>p{max-width:440px;margin:0;color:var(--muted);font-size:.86rem}.published-courses-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.published-course-card{border:1px solid #dde5df;border-radius:12px;padding:20px;background:#fbfcfa}.published-course-card .course-status{display:inline-block;padding:5px 9px;border-radius:99px;background:#eef6d1;color:#38500b;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.published-course-card h4{margin:12px 0 6px;color:var(--green);font-size:1.14rem}.published-course-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0;font-size:.8rem;font-weight:800;color:var(--green2)}.published-course-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}.published-empty{color:var(--muted);font-size:.88rem}.admin-secondary{background:#fff;color:var(--green);border:1px solid #cbd8d0}.admin-secondary:hover{background:#eef3ef}.live-edit-toolbar{margin-top:15px;padding:15px 18px;border:1px dashed var(--green2);border-radius:10px;background:#f2f7f3;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.live-edit-toolbar span{color:var(--muted);font-size:.82rem;flex:1}.live-edit-toolbar .calendar-clear{margin-left:auto}.live-edit-active [data-live-edit="true"]{outline:2px dashed rgba(18,86,62,.45);outline-offset:4px;border-radius:3px;cursor:text}.live-edit-active [data-live-edit="true"]:focus{outline:2px solid var(--lime);background:rgba(185,217,50,.08)}.admin-panel-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.admin-panel-heading h3{margin:3px 0;color:var(--green)}.admin-panel-heading>p{max-width:430px;margin:0;color:var(--muted);font-size:.8rem}.course-manager{margin-top:20px;padding:22px;border-radius:12px;background:var(--cream);border:1px solid #e0e5e1}.course-admin-list{display:grid;gap:9px;margin-top:20px}.course-admin-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:12px;background:#fff;border:1px solid #e0e5e1;border-radius:8px}.course-admin-row small{display:block;color:var(--muted);margin-top:3px}.course-admin-actions{display:flex;gap:7px}.course-admin-actions button{border:0;border-radius:7px;padding:7px 9px;font-weight:800;cursor:pointer}.course-edit-btn{background:#edf4ef;color:var(--green)}.course-delete-btn{background:#fff0ed;color:#a62c1f}
@media(max-width:760px){.published-courses-heading{align-items:flex-start;flex-direction:column}.published-courses-grid{grid-template-columns:1fr}.admin-panel-heading{flex-direction:column}.course-admin-row{grid-template-columns:1fr}.course-admin-actions{justify-content:flex-start}.live-edit-toolbar .calendar-clear{margin-left:0}}

/* Acceso privado discreto + footer animado */
.site-footer{background:#0b271d;color:#cbd6d0;padding:46px clamp(24px,6vw,96px) 20px;display:block;overflow:hidden;position:relative}
.site-footer .footer-main{display:flex;justify-content:space-between;gap:36px;align-items:center}
.site-footer .footer-brand img{width:145px;height:auto;margin-bottom:10px}.site-footer .footer-brand p{margin:0}
.site-footer .footer-links{display:flex;gap:22px;flex-wrap:wrap}.site-footer .footer-links a:hover{color:var(--lime)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:12px}
.footer-admin-login{border:0;background:transparent;color:rgba(203,214,208,.38);font:inherit;font-size:.68rem;cursor:pointer;padding:4px 0;transition:.2s}
.footer-admin-login:hover,.footer-admin-login:focus-visible{color:#cbd6d0;text-decoration:underline;outline:none}
.truck-road{height:62px;position:relative;margin:20px calc(clamp(24px,6vw,96px) * -1) 4px;border-bottom:2px solid rgba(255,255,255,.12);overflow:hidden}
.road-line{position:absolute;left:0;right:0;bottom:13px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.26) 0 38px,transparent 38px 70px)}
.moving-truck{position:absolute;left:-90px;bottom:6px;font-size:2.35rem;line-height:1;filter:drop-shadow(0 5px 4px rgba(0,0,0,.28));animation:truck-drive 14s linear infinite}
.moving-truck i{position:absolute;left:-21px;top:22px;width:20px;height:5px;border-radius:50%;background:rgba(255,255,255,.08);box-shadow:-16px 1px 0 rgba(255,255,255,.05)}
@keyframes truck-drive{0%{transform:translateX(0)}100%{transform:translateX(calc(100vw + 180px))}}

.admin-login-modal[hidden]{display:none}.admin-login-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}
.admin-login-backdrop{position:absolute;inset:0;background:rgba(4,18,13,.72);backdrop-filter:blur(5px)}
.admin-login-card{position:relative;z-index:1;width:min(420px,100%);margin:0;background:#fff;border-radius:16px;padding:30px;box-shadow:0 25px 80px rgba(0,0,0,.32)}
.admin-login-card h3{margin:2px 0 20px;color:var(--green);font-size:1.55rem}.admin-login-card .button{width:100%;margin-top:3px}
.admin-login-close{position:absolute;top:12px;right:14px;border:0;background:transparent;color:var(--muted);font-size:1.65rem;line-height:1;cursor:pointer}
.admin-session-badge{padding:7px 10px;border-radius:99px;background:#dceae4;color:var(--green);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
#calendarAdminTools[hidden]{display:none}

@media(max-width:760px){.site-footer .footer-main{align-items:flex-start;flex-direction:column}.site-footer .footer-links{gap:14px 20px}.footer-bottom{align-items:flex-end}.truck-road{margin-left:-20px;margin-right:-20px}.moving-truck{animation-duration:10s}.admin-login-card{padding:26px 20px}}
@media(prefers-reduced-motion:reduce){.moving-truck{animation:none;left:calc(50% - 22px)}}

/* Panel flotante de administrador */
.admin-float{position:fixed;left:18px;bottom:18px;z-index:50}
.admin-float-login{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.18);background:rgba(11,39,29,.92);color:#fff;padding:10px 14px;border-radius:999px;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.18);backdrop-filter:blur(8px);transition:.2s}
.admin-float-login:hover{transform:translateY(-2px);background:#12372a;box-shadow:0 14px 34px rgba(0,0,0,.24)}
.admin-float-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--lime);color:#17301e;font-size:.8rem}
.admin-float-panel{width:230px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(11,39,29,.96);color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.28);overflow:hidden;backdrop-filter:blur(10px)}
.admin-float-panel[hidden]{display:none}
.admin-float-head{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.1)}
.admin-float-head span{display:flex;flex-direction:column;line-height:1.1}.admin-float-head small{font-size:.65rem;color:#aebdb5;margin-top:3px}.admin-float-head button{border:0;background:rgba(255,255,255,.08);color:#fff;width:25px;height:25px;border-radius:7px;cursor:pointer}
.admin-float-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.admin-float-actions button{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#fff;border-radius:9px;padding:10px 8px;font:inherit;font-size:.72rem;font-weight:800;cursor:pointer;transition:.18s}.admin-float-actions button:hover{background:var(--lime);color:#18301f}.admin-float-actions .quick-logout{grid-column:1/-1;background:transparent;color:#d3ddd8}

/* Tarjetas de los dos cursos: CTA alineado */
.detail-grid{align-items:stretch}.detail-card{display:flex;flex-direction:column;height:100%}.detail-card .detail-cta{margin-top:auto;padding-top:27px}.detail-card .detail-cta .button{min-width:250px;white-space:nowrap}.detail-card .limited{margin-top:14px}
@media(max-width:760px){.admin-float{left:12px;bottom:12px}.admin-float-login{padding:9px 11px}.admin-float-panel{width:min(230px,calc(100vw - 24px))}.detail-card .detail-cta .button{width:100%;min-width:0}}

/* Portada: imagen principal + calendario de próximos cursos */
.home-top{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(500px,.82fr);align-items:stretch;background:var(--cream)}
.home-top .hero{min-height:720px}
.home-top .hero-content{margin-left:clamp(24px,5vw,80px);padding-right:30px}
.home-top .hero h1{font-size:clamp(2.8rem,4.8vw,4.8rem)}
.home-top .calendar-section{padding:38px 30px 38px 18px;display:flex;flex-direction:column;justify-content:center;background:var(--cream)}
.home-top .calendar-section .section-heading{margin:0 0 22px;text-align:left;max-width:none}
.home-top .calendar-section .section-heading h2{font-size:clamp(2rem,3vw,3rem);margin-bottom:10px}
.home-top .calendar-section .calendar-wrap{width:100%;padding:22px;box-shadow:0 16px 44px rgba(18,55,42,.1)}
.home-top .calendar-day{min-height:83px;padding:7px}
.home-top .calendar-event{font-size:.64rem}
.home-top .published-courses-block{margin-top:24px;padding-top:22px}
.home-top .published-courses-heading>p{display:none}
.home-top .published-course-card{padding:15px}
.home-top .published-course-card p{font-size:.78rem}

/* Selección múltiple de fechas en modo administrador */
.calendar-day.is-selectable{cursor:pointer;transition:.15s}
.calendar-day.is-selectable:hover{border-color:var(--green2);box-shadow:inset 0 0 0 1px var(--green2)}
.calendar-day.is-selected{background:#eef6d1!important;border-color:var(--lime);box-shadow:inset 0 0 0 2px var(--lime)}
.calendar-day.is-selected .day-number{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:99px;background:var(--green);color:#fff}
.multi-date-help{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:13px 15px;border-radius:9px;background:#fff;border:1px solid #dfe6e1}
.multi-date-help strong{color:var(--green);font-size:.82rem}.multi-date-help span{flex:1;color:var(--muted);font-size:.8rem}.multi-date-help .calendar-clear{margin-left:auto}

@media(max-width:1180px){.home-top{grid-template-columns:1fr}.home-top .hero{min-height:650px}.home-top .calendar-section{padding:60px clamp(24px,6vw,70px)}.home-top .calendar-section .section-heading{text-align:center;max-width:720px;margin:0 auto 28px}}
@media(max-width:760px){.home-top .calendar-section{padding:45px 14px}.home-top .calendar-section .calendar-wrap{padding:16px 10px}.home-top .calendar-day{min-height:72px}.multi-date-help{align-items:flex-start;flex-direction:column}.multi-date-help .calendar-clear{margin-left:0}}

/* Portada compacta: calendario dentro de una tarjeta bien integrada */
.home-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) 430px;
  gap:0;
  align-items:stretch;
  background:#f4f1e9;
}
.home-top .hero{min-height:690px}
.home-top .calendar-section{
  padding:36px 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f4f1e9;
}
.home-top .calendar-section .section-heading{
  margin:0 0 14px;
  text-align:left;
}
.home-top .calendar-section .section-heading .eyebrow{margin-bottom:5px}
.home-top .calendar-section .section-heading h2{
  font-size:1.7rem;
  margin:0 0 5px;
}
.home-top .calendar-section .section-heading > p:last-child{
  display:none;
}
.home-top .calendar-section .calendar-wrap{
  width:100%;
  max-width:390px;
  padding:18px;
  border:1px solid rgba(18,55,42,.12);
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 45px rgba(18,55,42,.12);
}
.home-top .calendar-toolbar{grid-template-columns:38px 1fr 38px;gap:8px;margin-bottom:12px}
.home-top .calendar-toolbar h3{font-size:1.08rem}
.home-top .calendar-nav{width:36px;height:36px;font-size:1rem}
.home-top .calendar-weekdays,.home-top .calendar-grid{gap:4px}
.home-top .calendar-weekdays{margin-bottom:5px}
.home-top .calendar-weekdays span{font-size:.58rem}
.home-top .calendar-day{
  min-height:52px;
  padding:5px;
  border-radius:8px;
}
.home-top .day-number{font-size:.7rem}
.home-top .calendar-event{
  margin-top:3px;
  padding:3px 4px;
  font-size:.52rem;
  border-radius:5px;
}
.home-top .calendar-legend{gap:12px;margin-top:12px;font-size:.7rem}
.home-top .calendar-admin{margin-top:14px;padding-top:14px}

/* Cursos publicados separados del calendario para no agrandar la tarjeta */
.published-courses-home{padding-top:48px;padding-bottom:48px;background:#fff}
.published-courses-home .published-courses-block{
  max-width:1100px;
  margin:0 auto;
  padding:0;
  border-top:0;
}
.published-courses-home .published-courses-heading{margin-bottom:20px}
.published-courses-home .published-courses-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

@media(max-width:1050px){
  .home-top{grid-template-columns:1fr}
  .home-top .hero{min-height:610px}
  .home-top .calendar-section{padding:30px 20px 44px}
  .home-top .calendar-section .calendar-wrap{max-width:560px}
  .home-top .calendar-section .section-heading{text-align:center}
}
@media(max-width:760px){
  .home-top .calendar-section{padding:24px 14px 34px}
  .home-top .calendar-section .calendar-wrap{max-width:100%;padding:14px;border-radius:16px}
  .home-top .calendar-day{min-height:46px;padding:4px}
  .home-top .calendar-event{font-size:.48rem}
  .published-courses-home{padding:38px 18px}
  .published-courses-home .published-courses-grid{grid-template-columns:1fr}
}

/* ===== Ajuste final portada + responsive + privacidad admin ===== */
html,body{max-width:100%;overflow-x:hidden}
main,.home-top,.hero,.calendar-section,.calendar-wrap{min-width:0}

/* Alineación visual entre el contenido principal y el calendario */
.home-top{grid-template-columns:minmax(0,1fr) minmax(360px,430px);align-items:stretch}
.home-top .hero{min-height:690px;align-items:flex-start}
.home-top .hero-content{padding-top:clamp(76px,7vw,112px);padding-bottom:58px;margin-top:0}
.home-top .calendar-section{align-items:flex-start;padding-top:40px}
.home-top .calendar-section>div,.home-top .calendar-section .section-heading,.home-top .calendar-section .calendar-wrap{min-width:0}

/* Los controles privados nunca se muestran sin sesión */
#calendarAdminTools[hidden],#liveEditToolbar[hidden],#calendarEditor[hidden],#courseManager[hidden],#adminFloatPanel[hidden],#openCalendarLogin[hidden]{display:none!important}
body:not(.admin-authenticated) #calendarAdminTools,
body:not(.admin-authenticated) #liveEditToolbar,
body:not(.admin-authenticated) #calendarEditor,
body:not(.admin-authenticated) #courseManager,
body:not(.admin-authenticated) #adminFloatPanel{display:none!important}

/* Panel admin más cómodo y sin desbordamientos */
.admin-float-panel{max-width:min(330px,calc(100vw - 32px))}
.admin-float-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.admin-float-actions button{min-width:0;white-space:normal}
.quick-logout{grid-column:1/-1}

/* Evita que el editor reviente la tarjeta estrecha del calendario */
.home-top .calendar-section.admin-expanded{grid-column:1/-1;padding:34px clamp(20px,5vw,72px) 50px}
.home-top .calendar-section.admin-expanded .section-heading{text-align:center;max-width:720px;margin:0 auto 18px}
.home-top .calendar-section.admin-expanded .calendar-wrap{max-width:980px;margin:0 auto}

/* Tablet: menú hamburguesa antes de que la cabecera se comprima */
@media(max-width:980px){
  .site-header{height:76px;padding:0 22px}
  .brand img{height:55px}
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:20px 22px;gap:6px;box-shadow:0 15px 28px rgba(0,0,0,.12);max-height:calc(100vh - 76px);overflow:auto}
  .nav.open{display:flex}
  .nav a{padding:10px 4px}
  .nav .button{display:flex;margin-top:6px}
  .home-top{grid-template-columns:1fr}
  .home-top .hero{min-height:580px;align-items:flex-start}
  .home-top .hero-content{padding-top:82px;padding-bottom:52px}
  .home-top .calendar-section{padding:34px 20px 44px;align-items:center}
  .home-top .calendar-section .section-heading{text-align:center;max-width:620px}
  .home-top .calendar-section .calendar-wrap{max-width:620px}
}

@media(max-width:760px){
  .site-header{height:68px;padding:0 16px}
  .brand img{height:48px}
  .nav{top:68px;max-height:calc(100vh - 68px)}
  .home-top .hero{min-height:540px}
  .home-top .hero-content{margin:0 20px;padding-top:64px;padding-bottom:42px;width:auto}
  .home-top .hero h1{font-size:clamp(2.45rem,12vw,3.2rem);line-height:1.01}
  .hero-copy{font-size:1.04rem}
  .hero-actions{flex-wrap:wrap}
  .home-top .calendar-section{padding:28px 12px 34px}
  .home-top .calendar-section .section-heading h2{font-size:1.55rem}
  .home-top .calendar-section .calendar-wrap{padding:13px 10px;border-radius:15px}
  .home-top .calendar-toolbar{grid-template-columns:34px 1fr 34px}
  .home-top .calendar-nav{width:32px;height:32px}
  .home-top .calendar-toolbar h3{font-size:.98rem}
  .home-top .calendar-weekdays,.home-top .calendar-grid{gap:3px}
  .home-top .calendar-day{min-height:48px;padding:4px 3px}
  .home-top .calendar-event{font-size:.46rem;padding:3px 2px;overflow-wrap:anywhere}
  .calendar-legend{gap:8px 12px}
  .admin-float{left:10px;bottom:10px}
  .admin-float-login{padding:9px 12px}
  .admin-float-panel{max-width:calc(100vw - 20px)}
  .admin-float-actions{grid-template-columns:1fr}
  .quick-logout{grid-column:auto}
  .whatsapp{right:10px;bottom:10px}
  .detail-grid,.course-grid,.contact,.benefits{min-width:0}
  .detail-card,.course-card,.contact-form{min-width:0;overflow-wrap:anywhere}
  .detail-top{gap:10px}
  .price{font-size:1.45rem}
}

@media(max-width:430px){
  .home-top .hero{min-height:520px}
  .home-top .hero-content{padding-top:54px}
  .home-top .hero h1{font-size:2.5rem}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .hero-actions .button{width:100%}
  .home-top .calendar-day{min-height:44px}
  .home-top .day-number{font-size:.65rem}
  .home-top .calendar-event{font-size:.42rem}
  .calendar-weekdays span{font-size:.54rem}
  .section{padding-left:16px;padding-right:16px}
}
