/* =====================================================
   Escuela de Conductores San Cristóbal — Estilos
   ===================================================== */

:root{
    --rojo:#b5121b;
    --rojo-oscuro:#7f0d13;
    --amarillo:#f6c400;
    --amarillo-oscuro:#d99a00;
    --negro:#161616;
    --negro-suave:#1f1f1f;
    --gris:#5b5b5b;
    --gris-medio:#8a8a8a;
    --gris-claro:#f4f4f4;
    --gris-borde:#e5e5e5;
    --crema:#fdf8ed;
    --blanco:#ffffff;
    --verde-wa:#25d366;
    --verde-wa-oscuro:#1da851;

    --shadow-sm:0 1px 3px rgba(20,20,20,.05);
    --shadow-md:0 8px 24px rgba(20,20,20,.08);
    --shadow-lg:0 18px 40px rgba(20,20,20,.12);

    --radius-sm:6px;
    --radius-md:12px;
    --radius-lg:20px;

    --transition:all .2s ease;
    --header-h:84px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:var(--header-h);}
body{
    margin:0;
    font-family:'Poppins',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    color:var(--negro);
    background:var(--blanco);
    line-height:1.65;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:var(--rojo); text-decoration:none; transition:var(--transition);}
a:hover{color:var(--rojo-oscuro);}
h1,h2,h3,h4,h5{font-family:'Poppins',sans-serif; line-height:1.2; margin:0 0 .6em; color:var(--negro); font-weight:700;}
button{font-family:inherit; cursor:pointer;}

.container{width:100%; max-width:1180px; margin:0 auto; padding:0 22px;}

.text-rojo{color:var(--rojo);}
.text-amarillo{color:var(--amarillo-oscuro);}

/* ============ ICONOS ============ */
.icon{
    width:22px; height:22px;
    display:inline-block;
    vertical-align:middle;
    flex-shrink:0;
}
.icon-xs{width:14px; height:14px;}
.icon-sm{width:18px; height:18px;}
.icon-lg{width:28px; height:28px;}
.icon-xl{width:40px; height:40px;}

/* ============ COMUNES ============ */
.section__eyebrow{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:1.8px;
    font-size:.74rem;
    font-weight:700;
    color:var(--rojo);
    margin-bottom:.8rem;
}
.section__title{
    font-size:clamp(1.7rem,3.2vw,2.4rem);
    font-weight:800;
    letter-spacing:-.4px;
    line-height:1.15;
}
.section__lead{font-size:1.02rem; color:var(--gris); max-width:680px; margin:0 auto;}
.section__header{text-align:center; margin-bottom:3rem;}
.section__header--row{display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:1.5rem; text-align:left; margin-bottom:2.4rem;}

.breadcrumbs{
    font-size:.85rem;
    color:var(--gris);
    margin-bottom:1.4rem;
    display:flex;
    align-items:center;
    gap:.45rem;
    flex-wrap:wrap;
}
.breadcrumbs a{color:var(--gris); font-weight:500;}
.breadcrumbs strong{color:var(--rojo); font-weight:600;}
.breadcrumbs .icon{color:var(--gris-medio); opacity:.7;}
.breadcrumbs--dark, .breadcrumbs--dark a{color:rgba(255,255,255,.8);}
.breadcrumbs--dark strong{color:var(--amarillo);}
.breadcrumbs--dark .icon{color:rgba(255,255,255,.5);}

.link-arrow{
    display:inline-flex; align-items:center; gap:.4rem;
    font-weight:600; color:var(--rojo);
    border-bottom:2px solid transparent;
    padding-bottom:2px;
}
.link-arrow:hover{border-bottom-color:var(--rojo);}
.link-arrow .icon{transition:transform .25s ease;}
.link-arrow:hover .icon{transform:translateX(4px);}

/* ============ BOTONES ============ */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:.85rem 1.5rem;
    border-radius:var(--radius-sm);
    font-weight:600;
    font-size:.93rem;
    border:2px solid transparent;
    cursor:pointer;
    transition:var(--transition);
    text-align:center;
    line-height:1.2;
    white-space:nowrap;
}
.btn--primary{
    background:var(--rojo); color:var(--blanco);
}
.btn--primary:hover{background:var(--rojo-oscuro); color:var(--blanco); transform:translateY(-1px); box-shadow:0 8px 18px rgba(181,18,27,.25);}
.btn--secondary{
    background:var(--amarillo); color:var(--negro);
}
.btn--secondary:hover{background:var(--amarillo-oscuro); color:var(--negro); transform:translateY(-1px);}
.btn--ghost{
    background:transparent; color:var(--blanco);
    border-color:rgba(255,255,255,.4);
}
.btn--ghost:hover{background:rgba(255,255,255,.1); color:var(--blanco); border-color:rgba(255,255,255,.7);}
.btn--ghost-dark{background:transparent; color:var(--negro); border-color:#d4d4d4;}
.btn--ghost-dark:hover{background:var(--negro); color:var(--blanco); border-color:var(--negro);}
.btn--block{width:100%;}
.btn--sm{padding:.6rem 1rem; font-size:.85rem;}
.btn--lg{padding:1rem 1.7rem; font-size:1rem;}

/* ============ HEADER ============ */
.site-header{
    position:sticky; top:0; z-index:80;
    background:var(--blanco);
    box-shadow:var(--shadow-sm);
}
.header__inner{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:.8rem; padding-bottom:.8rem; gap:1rem; min-height:var(--header-h);
}
.logo{display:flex; align-items:center; gap:.75rem; color:var(--negro);}
.logo img{height:56px; width:auto;}
.logo__text{display:flex; flex-direction:column; line-height:1;}
.logo__title{font-weight:800; font-size:1.15rem; color:var(--rojo); letter-spacing:-.3px;}
.logo__subtitle{font-size:.7rem; color:var(--gris); text-transform:uppercase; letter-spacing:1px; margin-top:3px;}

.nav{display:flex; align-items:center; gap:1.5rem;}
.nav__list{display:flex; gap:1.4rem; list-style:none; margin:0; padding:0;}
.nav__link{
    color:var(--negro); font-weight:500; font-size:.95rem;
    position:relative; padding:.25rem 0;
}
.nav__link::after{
    content:""; position:absolute; left:0; bottom:-4px;
    width:0; height:2.5px; background:var(--amarillo);
    transition:width .25s ease; border-radius:3px;
}
.nav__link:hover, .nav__link.is-active{color:var(--rojo);}
.nav__link:hover::after, .nav__link.is-active::after{width:100%;}

.nav__cta{padding:.6rem 1.1rem; font-size:.85rem;}
.nav__close{display:none;}

.nav__toggle{display:none; background:transparent; border:0; width:44px; height:44px; position:relative; padding:0;}
.nav__toggle span{display:block; height:2.5px; background:var(--negro); border-radius:3px; margin:5px auto; width:26px; transition:var(--transition);}

/* ============ HERO (CLARO) ============ */
.hero{
    position:relative;
    overflow:hidden;
    padding:5rem 0 5.5rem;
    background:linear-gradient(135deg, var(--crema) 0%, #fff 55%, #fff5f5 100%);
}
.hero__bg{
    position:absolute; inset:0; pointer-events:none; z-index:0;
}
.hero__bg::before{
    content:""; position:absolute;
    width:480px; height:480px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(246,196,0,.4), transparent 65%);
    top:-180px; right:-150px;
    filter:blur(20px);
}
.hero__bg::after{
    content:""; position:absolute;
    width:380px; height:380px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(181,18,27,.16), transparent 65%);
    bottom:-150px; left:-130px;
    filter:blur(20px);
}

.hero__inner{
    position:relative; z-index:2;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:3.5rem;
    align-items:center;
}

.hero__eyebrow{
    display:inline-block;
    color:var(--rojo);
    font-size:.78rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-bottom:1.4rem;
    padding-left:48px;
    position:relative;
}
.hero__eyebrow::before{
    content:""; position:absolute; left:0; top:50%;
    width:36px; height:2px; background:var(--rojo);
    transform:translateY(-50%);
}

.hero__title{
    font-size:clamp(2.3rem,5vw,3.7rem);
    font-weight:800;
    letter-spacing:-1.5px;
    line-height:1.05;
    margin-bottom:1.3rem;
    color:var(--negro);
}
.hero__title-accent{
    color:var(--rojo);
    position:relative;
    display:inline-block;
}
.hero__title-accent::after{
    content:""; position:absolute;
    left:0; right:0; bottom:8px; height:10px;
    background:var(--amarillo);
    z-index:-1;
    opacity:.55;
}

.hero__lead{
    font-size:1.1rem;
    color:var(--gris);
    margin-bottom:2rem;
    max-width:540px;
}

.hero__actions{
    display:flex; flex-wrap:wrap; gap:.8rem;
    margin-bottom:2.5rem;
}

.hero__quick-stats{
    display:flex; flex-wrap:wrap; gap:2.5rem;
    padding-top:1.8rem;
    border-top:1px solid var(--gris-borde);
}
.hero__quick-stats div strong{
    display:block;
    font-size:1.9rem;
    font-weight:800;
    color:var(--negro);
    line-height:1;
    letter-spacing:-1px;
}
.hero__quick-stats div span{
    font-size:.82rem;
    color:var(--gris);
    margin-top:4px;
    display:block;
}

.hero__visual{
    position:relative;
    height:500px;
}
.hero__img{
    position:absolute;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow-lg);
}
.hero__img img{width:100%; height:100%; object-fit:cover;}
.hero__img--main{
    width:78%; height:82%;
    top:0; right:0;
    z-index:1;
}
.hero__img--small{
    width:50%; height:42%;
    bottom:0; left:0;
    z-index:2;
    border:6px solid var(--blanco);
}
.hero__sticker{
    position:absolute;
    top:8%; left:-10px;
    background:var(--blanco);
    padding:.95rem 1.15rem;
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-lg);
    display:flex; align-items:center; gap:.7rem;
    z-index:3;
    border-left:4px solid var(--amarillo);
}
.hero__sticker .icon{
    width:32px; height:32px;
    color:var(--rojo);
}
.hero__sticker strong{display:block; font-weight:700; font-size:.9rem;}
.hero__sticker span{font-size:.75rem; color:var(--gris);}

/* ============ INTRO ============ */
.intro{padding:5rem 0; background:var(--blanco); border-bottom:1px solid var(--gris-borde);}
.intro__grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:3rem;
    align-items:start;
}
.intro__text{color:var(--gris); font-size:1.05rem; margin:0;}

/* ============ STATS ============ */
.stats{background:var(--gris-claro); padding:4rem 0;}
.stats__grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:1.2rem;
}
.stat{
    background:var(--blanco);
    border:1px solid var(--gris-borde);
    border-radius:var(--radius-md);
    padding:1.8rem 1.2rem;
    text-align:left;
    transition:var(--transition);
}
.stat:hover{
    border-color:var(--rojo);
    box-shadow:var(--shadow-md);
    transform:translateY(-3px);
}
.stat__icon{
    display:inline-flex;
    width:48px; height:48px;
    align-items:center; justify-content:center;
    background:rgba(181,18,27,.08);
    color:var(--rojo);
    border-radius:var(--radius-sm);
    margin-bottom:1rem;
}
.stat__icon .icon{width:24px; height:24px;}
.stat__number{
    font-size:2.1rem;
    font-weight:800;
    color:var(--negro);
    line-height:1;
    margin-bottom:.4rem;
    letter-spacing:-1px;
}
.stat__label{font-size:.88rem; color:var(--gris);}

/* ============ CURSOS DESTACADOS / GRID ============ */
.cursos-destacados{padding:5rem 0; background:var(--blanco);}
.cursos{padding:4.5rem 0; background:var(--gris-claro);}

.cursos__grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(290px, 1fr));
    gap:1.6rem;
}
.curso-card{
    background:var(--blanco);
    border-radius:var(--radius-md);
    overflow:hidden;
    border:1px solid var(--gris-borde);
    transition:var(--transition);
    display:flex; flex-direction:column;
}
.curso-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
    border-color:var(--gris-borde);
}
.curso-card__media{position:relative; height:200px; overflow:hidden;}
.curso-card__media img{
    width:100%; height:100%; object-fit:cover;
    transition:transform .4s ease;
}
.curso-card:hover .curso-card__media img{transform:scale(1.05);}
.curso-card__sence{
    position:absolute; top:12px; left:12px;
    display:inline-flex; align-items:center; gap:.3rem;
    padding:.3rem .7rem;
    border-radius:4px;
    font-size:.7rem; font-weight:700;
    letter-spacing:.3px;
}
.curso-card__sence--ok{background:var(--amarillo); color:var(--negro);}
.curso-card__sence--no{background:rgba(0,0,0,.75); color:var(--blanco);}
.curso-card__cat{
    position:absolute; top:12px; right:12px;
    background:rgba(255,255,255,.95);
    color:var(--negro);
    padding:.3rem .7rem;
    border-radius:4px;
    font-size:.7rem; font-weight:700;
}
.curso-card__body{padding:1.3rem; display:flex; flex-direction:column; flex:1;}
.curso-card__tags{display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.7rem;}
.tag{
    font-size:.7rem; font-weight:600;
    padding:.2rem .55rem;
    border-radius:4px;
    background:var(--gris-claro);
    color:var(--gris);
}
.tag--modalidad{background:rgba(181,18,27,.08); color:var(--rojo);}
.tag--sence{font-family:monospace; background:#fff7e0; color:var(--amarillo-oscuro);}
.curso-card__title{
    font-size:1.02rem; font-weight:700; color:var(--negro);
    margin-bottom:.55rem; line-height:1.35; min-height:2.7em;
}
.curso-card__resumen{color:var(--gris); font-size:.88rem; margin:0 0 1.2rem; flex:1; line-height:1.55;}

/* ============ PROCESO — STEPPER ============ */
.proceso{
    padding:5rem 0;
    background:linear-gradient(180deg, var(--blanco) 0%, var(--crema) 100%);
    position:relative;
    overflow:hidden;
}
.proceso::before{
    content:""; position:absolute;
    width:340px; height:340px; border-radius:50%;
    background:radial-gradient(circle, rgba(246,196,0,.22), transparent 65%);
    top:-100px; right:-100px;
    filter:blur(8px);
}
.stepper{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1.4rem;
    margin-top:1rem;
}
.stepper__line{
    position:absolute;
    top:42px;
    left:12.5%;
    right:12.5%;
    height:2px;
    background-image:linear-gradient(90deg, var(--rojo) 50%, transparent 0);
    background-size:14px 2px;
    background-repeat:repeat-x;
    z-index:0;
}
.step{
    position:relative; z-index:2;
    background:var(--blanco);
    border:1px solid var(--gris-borde);
    border-radius:var(--radius-md);
    padding:2.6rem 1.4rem 1.7rem;
    text-align:center;
    transition:var(--transition);
}
.step:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-md);
    border-color:var(--amarillo);
}
.step__top{
    position:absolute;
    top:-30px; left:50%;
    transform:translateX(-50%);
    display:inline-flex;
    align-items:center; justify-content:center;
}
.step__circle{
    width:72px; height:72px;
    background:var(--rojo);
    color:var(--blanco);
    border-radius:50%;
    display:inline-flex;
    align-items:center; justify-content:center;
    box-shadow:0 8px 22px rgba(181,18,27,.3);
    border:4px solid var(--crema);
}
.step__circle .icon{width:30px; height:30px;}
.step:hover .step__circle{background:var(--negro);}
.step__num{
    position:absolute;
    top:-6px; right:-14px;
    background:var(--amarillo);
    color:var(--negro);
    font-size:.72rem; font-weight:800;
    width:30px; height:30px; border-radius:50%;
    display:inline-flex;
    align-items:center; justify-content:center;
    border:3px solid var(--blanco);
    box-shadow:var(--shadow-sm);
}
.step h3{font-size:1.1rem; color:var(--negro); margin:1.4rem 0 .5rem;}
.step p{color:var(--gris); font-size:.9rem; margin:0; line-height:1.5;}

/* ============ POR QUÉ ============ */
.porque{padding:5rem 0; background:var(--blanco);}
.porque__inner{display:block;}
.porque__left{max-width:900px; margin:0 auto;}
.porque__lead{color:var(--gris); margin-bottom:2.5rem; font-size:1.05rem;}

.porque__features{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.4rem;
}
.porque-feat{
    display:flex; gap:1rem;
    background:var(--gris-claro);
    padding:1.4rem;
    border-radius:var(--radius-md);
    border-left:3px solid var(--rojo);
    transition:var(--transition);
}
.porque-feat:hover{background:#fff; box-shadow:var(--shadow-md);}
.porque-feat__icon{
    flex-shrink:0;
    width:46px; height:46px;
    background:var(--blanco);
    color:var(--rojo);
    border-radius:var(--radius-sm);
    display:inline-flex; align-items:center; justify-content:center;
}
.porque-feat__icon .icon{width:24px; height:24px;}
.porque-feat strong{display:block; color:var(--negro); font-weight:700; margin-bottom:.2rem;}
.porque-feat p{font-size:.9rem; color:var(--gris); margin:0;}

/* ============ COMENTARIOS ============ */
.comentarios{
    padding:5rem 0;
    background:var(--gris-claro);
}
.comentarios__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.5rem;
}
.comentario{
    background:var(--blanco);
    border:1px solid var(--gris-borde);
    border-radius:var(--radius-md);
    padding:2rem 1.6rem 1.6rem;
    position:relative;
    transition:var(--transition);
}
.comentario:hover{
    border-color:var(--amarillo);
    box-shadow:var(--shadow-md);
    transform:translateY(-3px);
}
.comentario__mark{
    position:absolute;
    top:-14px; left:24px;
    width:42px; height:42px;
    background:var(--rojo);
    color:var(--blanco);
    border-radius:50%;
    display:inline-flex;
    align-items:center; justify-content:center;
    box-shadow:0 4px 14px rgba(181,18,27,.25);
}
.comentario__mark .icon{width:18px; height:18px;}
.comentario p{
    color:var(--negro);
    font-size:1rem;
    line-height:1.55;
    margin:0 0 1.3rem;
    font-weight:500;
}
.comentario__autor{
    padding-top:1rem;
    border-top:1px solid var(--gris-borde);
}
.comentario__autor strong{
    display:block;
    color:var(--negro);
    font-size:.92rem;
    font-weight:700;
}
.comentario__autor span{
    font-size:.78rem;
    color:var(--gris);
}

/* ============ SEDES ============ */
.sedes-preview{padding:5rem 0; background:var(--gris-claro);}
.sedes{padding:4rem 0; background:var(--blanco);}
.sedes__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.6rem;
}
.sede-card{
    background:var(--blanco);
    padding:2rem;
    border-radius:var(--radius-md);
    border:1px solid var(--gris-borde);
    transition:var(--transition);
    border-top:4px solid var(--rojo);
}
.sede-card:hover{box-shadow:var(--shadow-md);}
.sede-card__header{display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem;}
.sede-card__icon{
    width:44px; height:44px;
    background:rgba(181,18,27,.08);
    border-radius:var(--radius-sm);
    display:inline-flex; align-items:center; justify-content:center;
    color:var(--rojo);
}
.sede-card__icon .icon{width:22px; height:22px;}
.sede-card__title{margin:0; font-size:1.4rem; color:var(--negro); font-weight:800;}

.sede-card__info{list-style:none; padding:0; margin:0 0 1.5rem;}
.sede-card__info li{
    padding:.7rem 0;
    border-bottom:1px solid var(--gris-borde);
    display:flex; flex-direction:column;
}
.sede-card__info li:last-child{border-bottom:0;}
.sede-card__info span{
    font-size:.72rem;
    color:var(--gris-medio);
    text-transform:uppercase;
    letter-spacing:1px;
    margin-bottom:.2rem;
    display:inline-flex; align-items:center; gap:.35rem;
}
.sede-card__info strong{color:var(--negro); font-weight:600; font-size:.92rem;}

.sede-card--lg{padding:2.5rem;}
.sede-card--lg .sede-card__title{font-size:1.7rem;}

.sedes__email{
    margin-top:2rem;
    display:flex; align-items:center; gap:1rem;
    padding:1.4rem 2rem;
    background:var(--gris-claro);
    border-radius:var(--radius-md);
    border-left:4px solid var(--amarillo);
}
.sedes__email-icon{
    width:40px; height:40px;
    color:var(--rojo);
    display:inline-flex; align-items:center; justify-content:center;
}
.sedes__email-label{display:block; font-size:.74rem; color:var(--gris); text-transform:uppercase; letter-spacing:1px;}
.sedes__email-value{font-weight:700; font-size:1.05rem; color:var(--rojo);}

/* ============ PÁGINA HEROS ============ */
.page-hero{
    position:relative;
    padding:3.5rem 0 3.5rem;
    background:linear-gradient(135deg, var(--crema) 0%, #fff 100%);
    border-bottom:1px solid var(--gris-borde);
}
.page-hero__inner{position:relative; z-index:2; max-width:760px;}
.page-hero__title{
    font-size:clamp(2rem,4vw,3rem);
    font-weight:800;
    letter-spacing:-.8px;
    margin-bottom:.8rem;
    color:var(--negro);
}
.page-hero__text{font-size:1.05rem; color:var(--gris); max-width:640px; margin:0;}

/* ============ FILTROS ============ */
.filtros{padding:2rem 0 .8rem; background:var(--gris-claro);}
.filtros__bar{
    display:flex; flex-wrap:wrap; gap:.5rem;
    justify-content:center;
}
.filtro{
    background:var(--blanco);
    color:var(--negro);
    padding:.6rem 1.1rem;
    border-radius:var(--radius-sm);
    font-weight:600;
    font-size:.85rem;
    border:1.5px solid var(--gris-borde);
    transition:var(--transition);
    display:inline-flex; align-items:center; gap:.4rem;
}
.filtro span{
    background:var(--gris-claro);
    padding:.1rem .5rem;
    border-radius:4px;
    font-size:.72rem;
    color:var(--gris);
}
.filtro:hover{border-color:var(--rojo); color:var(--rojo);}
.filtro.is-active{
    background:var(--rojo); color:var(--blanco); border-color:var(--rojo);
}
.filtro.is-active span{background:rgba(255,255,255,.2); color:var(--blanco);}

/* ============ SOBRE LA ESCUELA (nosotros) ============ */
.sobre{padding:5rem 0; background:var(--blanco);}
.sobre__grid{
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:3rem;
    align-items:center;
    margin-bottom:4rem;
}
.sobre__media{
    position:relative;
    border-radius:var(--radius-md);
    overflow:visible;
}
.sobre__media > img{
    width:100%; height:480px;
    object-fit:cover;
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-md);
}
.sobre__badge{
    position:absolute;
    top:-22px; left:-22px;
    background:var(--rojo);
    color:var(--blanco);
    width:120px; height:120px;
    border-radius:50%;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    box-shadow:0 14px 30px rgba(181,18,27,.35);
    border:6px solid var(--blanco);
    text-align:center;
}
.sobre__badge strong{
    font-size:2.6rem; font-weight:900;
    color:var(--amarillo); line-height:1;
}
.sobre__badge span{
    font-size:.7rem; margin-top:4px;
    text-transform:uppercase; letter-spacing:1px;
}
.sobre__chip{
    position:absolute;
    bottom:-20px; right:-12px;
    background:var(--blanco);
    color:var(--negro);
    padding:.85rem 1.1rem;
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow-md);
    display:inline-flex; align-items:center; gap:.55rem;
    font-weight:600; font-size:.88rem;
    border-left:3px solid var(--amarillo);
}
.sobre__chip .icon{color:var(--rojo);}

.sobre__content p{color:var(--gris); margin:0 0 1rem; line-height:1.7;}
.sobre__lead{
    color:var(--negro) !important;
    font-size:1.08rem !important;
    font-weight:500;
    margin-bottom:1.2rem !important;
}
.sobre__quote{
    background:var(--gris-claro);
    border-left:4px solid var(--rojo);
    padding:1.4rem 1.6rem;
    margin:1.5rem 0;
    border-radius:0 var(--radius-sm) var(--radius-sm) 0;
    position:relative;
}
.sobre__quote-mark{
    color:var(--rojo);
    opacity:.6;
    margin-bottom:.5rem;
}
.sobre__quote p{
    margin:0 !important;
    color:var(--negro) !important;
    font-style:italic;
    font-size:.98rem;
    line-height:1.6;
}
.sobre__highlights{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1rem;
    margin-top:1.8rem;
    padding-top:1.5rem;
    border-top:1px solid var(--gris-borde);
}
.sobre__highlights div strong{
    display:block;
    font-size:1.7rem;
    font-weight:800;
    color:var(--rojo);
    line-height:1;
}
.sobre__highlights div span{
    display:block;
    font-size:.78rem;
    color:var(--gris);
    margin-top:4px;
}

/* TIMELINE de hitos */
.timeline{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1.4rem;
    margin-top:2rem;
    padding-top:1rem;
}
.timeline::before{
    content:""; position:absolute;
    left:7%; right:7%;
    top:24px; height:2px;
    background-image:linear-gradient(90deg, var(--amarillo) 50%, transparent 0);
    background-size:14px 2px;
    z-index:0;
}
.milestone{
    position:relative; z-index:2;
    padding-top:3rem;
    text-align:center;
}
.milestone__dot{
    position:absolute;
    top:14px; left:50%;
    transform:translateX(-50%);
    width:22px; height:22px;
    background:var(--rojo);
    border:4px solid var(--crema);
    border-radius:50%;
    box-shadow:0 3px 10px rgba(181,18,27,.4);
}
.milestone__year{
    font-size:1.4rem; font-weight:800;
    color:var(--rojo);
    letter-spacing:-.5px;
    margin-bottom:.4rem;
}
.milestone h4{
    font-size:1rem; margin-bottom:.4rem;
    color:var(--negro);
}
.milestone p{
    color:var(--gris);
    font-size:.85rem;
    margin:0;
    line-height:1.5;
}

/* ============ NOSOTROS (resto) ============ */
.nosotros{padding:5rem 0;}
.nosotros__grid{
    display:grid;
    grid-template-columns:1fr 1.1fr;
    gap:3rem;
    align-items:center;
}
.nosotros__image{
    position:relative;
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:var(--shadow-md);
}
.nosotros__image img{width:100%; height:500px; object-fit:cover;}
.nosotros__image-badge{
    position:absolute;
    bottom:20px; left:20px;
    background:var(--rojo);
    color:var(--blanco);
    padding:.9rem 1.2rem;
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow-md);
}
.nosotros__image-badge strong{font-size:1.8rem; font-weight:800; display:block; color:var(--amarillo); line-height:1;}
.nosotros__image-badge span{font-size:.82rem;}
.nosotros__content p{color:var(--gris); margin:0 0 1rem;}
.nosotros__lead{color:var(--negro) !important; font-size:1.08rem; font-weight:500; margin-bottom:1.2rem !important;}
.nosotros__features{
    display:grid; grid-template-columns:1fr 1fr;
    gap:1rem; margin-top:1.8rem;
}
.feature{
    display:flex; gap:.8rem; padding:1rem;
    background:var(--gris-claro);
    border-radius:var(--radius-sm);
    border-left:3px solid var(--rojo);
}
.feature__icon{
    width:36px; height:36px;
    color:var(--rojo);
    display:inline-flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.feature strong{color:var(--negro);}
.feature p{font-size:.85rem; margin:.15rem 0 0; color:var(--gris);}

.valores{padding:5rem 0; background:var(--gris-claro);}
.valores__grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1.4rem;
}
.valor-card{
    background:var(--blanco);
    padding:2rem 1.4rem;
    border-radius:var(--radius-md);
    border:1px solid var(--gris-borde);
    transition:var(--transition);
    border-bottom:3px solid var(--amarillo);
}
.valor-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md);}
.valor-card__num{
    font-size:2.4rem; font-weight:800;
    color:var(--rojo);
    opacity:.2;
    line-height:1;
    margin-bottom:.5rem;
    letter-spacing:-2px;
}
.valor-card h3{font-size:1.15rem; color:var(--negro);}
.valor-card p{color:var(--gris); margin:0; font-size:.92rem;}

/* ============ PREFEREN ============ */
.preferen{
    background:var(--rojo);
    padding:4rem 0;
    color:var(--blanco);
    position:relative;
    overflow:hidden;
}
.preferen::before{
    content:""; position:absolute; top:-50%; right:-10%;
    width:400px; height:400px;
    background:radial-gradient(circle, var(--amarillo), transparent 70%);
    opacity:.15;
}
.preferen__inner{text-align:center; position:relative;}
.preferen__eyebrow{color:var(--amarillo);}
.preferen__title{color:var(--blanco);}
.preferen__text{max-width:780px; margin:1.2rem auto 0; font-size:1.05rem; opacity:.95;}

/* ============ DESTACADO ============ */
.destacado{
    padding:5rem 0;
    background:var(--negro);
    color:var(--blanco);
    position:relative; overflow:hidden;
}
.destacado__grid{
    display:grid; grid-template-columns:1fr 1fr;
    gap:3rem; align-items:center; position:relative;
}
.destacado__media img{
    width:100%; height:360px; object-fit:cover;
    border-radius:var(--radius-md);
}
.destacado__content .section__eyebrow{color:var(--amarillo);}
.destacado__content .section__title{color:var(--blanco);}
.destacado__content p{color:rgba(255,255,255,.78); margin-bottom:1.5rem;}
.destacado__actions{display:flex; gap:.8rem; flex-wrap:wrap;}

/* ============ DETALLE CURSO ============ */
.curso-hero{
    position:relative;
    padding:4rem 0;
    color:var(--blanco);
    overflow:hidden;
    min-height:360px;
    display:flex; align-items:center;
}
.curso-hero__bg{position:absolute; inset:0; z-index:-1;}
.curso-hero__bg img{
    width:100%; height:100%; object-fit:cover;
    filter:brightness(.4) saturate(.7);
}
.curso-hero__overlay{
    position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(20,20,20,.85), rgba(127,13,19,.75));
}
.curso-hero__inner{position:relative; z-index:2; max-width:880px;}
.curso-hero__tags{display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.2rem;}
.curso-hero__tag{
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.2);
    color:var(--blanco);
    padding:.4rem .9rem;
    border-radius:4px;
    font-size:.75rem;
    font-weight:600;
    display:inline-flex; align-items:center; gap:.35rem;
}
.curso-hero__tag--sence{background:var(--amarillo); color:var(--negro); border-color:var(--amarillo);}
.curso-hero__tag--pro{background:var(--rojo); border-color:var(--rojo);}
.curso-hero__title{
    font-size:clamp(1.7rem,4vw,2.6rem);
    font-weight:800;
    letter-spacing:-.7px;
    margin-bottom:.8rem;
    color:var(--blanco);
}
.curso-hero__resumen{font-size:1.05rem; opacity:.92; margin-bottom:1.6rem; max-width:720px;}
.curso-hero__actions{display:flex; gap:.7rem; flex-wrap:wrap;}

.curso-contenido{padding:4rem 0;}
.curso-contenido__grid{display:grid; grid-template-columns:1.6fr .8fr; gap:2.5rem; align-items:start;}

/* BLOQUE unificado de curso */
.curso-bloque{
    background:var(--blanco);
    border:1px solid var(--gris-borde);
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
}
.curso-bloque__section{
    padding:1.8rem 2rem;
    border-bottom:1px solid var(--gris-borde);
}
.curso-bloque__section:last-child{border-bottom:0;}
.curso-bloque__head{
    display:flex;
    align-items:center;
    gap:.85rem;
    margin-bottom:1.1rem;
    padding-bottom:.9rem;
    border-bottom:2px solid var(--amarillo);
}
.curso-bloque__icon{
    width:40px; height:40px;
    background:rgba(181,18,27,.08);
    color:var(--rojo);
    border-radius:var(--radius-sm);
    display:inline-flex;
    align-items:center; justify-content:center;
    flex-shrink:0;
}
.curso-bloque__icon .icon{width:22px; height:22px;}
.curso-bloque__head h2{
    margin:0;
    font-size:1.2rem;
    color:var(--negro);
    font-weight:700;
    display:inline-flex; align-items:center; gap:.5rem;
}
.curso-bloque__head h2 small{
    background:var(--amarillo);
    color:var(--negro);
    font-size:.72rem;
    font-weight:800;
    padding:.15rem .55rem;
    border-radius:999px;
}
.curso-bloque__section > p{
    color:var(--gris);
    margin:0;
    line-height:1.75;
}
.curso-modulos{list-style:none; padding:0; margin:0;}
.curso-modulos li{
    display:flex; gap:.9rem; align-items:flex-start;
    padding:.95rem 0;
    border-bottom:1px solid var(--gris-borde);
    color:var(--gris);
}
.curso-modulos li:last-child{border-bottom:0;}
.curso-modulos__num{
    background:var(--negro);
    color:var(--amarillo);
    width:30px; height:30px;
    border-radius:50%;
    display:inline-grid; place-items:center;
    font-size:.75rem; font-weight:700;
    flex-shrink:0;
}

.curso-sidebar{position:sticky; top:calc(var(--header-h) + 20px);}
.curso-sidebar__card{
    background:var(--blanco);
    border:1px solid var(--gris-borde);
    border-top:4px solid var(--rojo);
    border-radius:var(--radius-md);
    padding:1.7rem;
    margin-bottom:1.4rem;
}
.curso-sidebar__card h3{color:var(--negro); font-size:1.15rem; margin-bottom:1.1rem;}
.curso-sidebar__info{list-style:none; padding:0; margin:0 0 1.3rem;}
.curso-sidebar__info li{
    display:flex; justify-content:space-between; align-items:center;
    padding:.65rem 0;
    border-bottom:1px solid var(--gris-borde);
    font-size:.88rem;
}
.curso-sidebar__info li:last-child{border-bottom:0;}
.curso-sidebar__info span{color:var(--gris);}
.curso-sidebar__info strong{color:var(--negro); text-align:right;}

.curso-sidebar__contact{
    background:var(--negro);
    color:var(--blanco);
    border-radius:var(--radius-md);
    padding:1.7rem;
}
.curso-sidebar__contact h4{color:var(--amarillo); margin-bottom:.3rem; font-size:1rem;}
.curso-sidebar__contact p{font-size:.86rem; opacity:.75; margin-bottom:1rem;}
.curso-sidebar__contact a{
    display:flex; align-items:center; gap:.5rem;
    color:rgba(255,255,255,.9);
    font-size:.86rem; padding:.45rem 0;
}
.curso-sidebar__contact a:hover{color:var(--amarillo);}
.curso-sidebar__contact .icon{color:var(--amarillo);}

/* ============ HORARIOS ============ */
.horarios{padding:4rem 0; background:var(--gris-claro);}
.horarios__grid{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; max-width:720px; margin:0 auto;}
.horario-card{
    background:var(--blanco);
    padding:1.8rem;
    border-radius:var(--radius-md);
    border:1px solid var(--gris-borde);
    border-left:4px solid var(--rojo);
    text-align:center;
}
.horario-card__day{font-weight:700; font-size:1.05rem; color:var(--negro); margin-bottom:1rem;}
.horario-card__hours{display:grid; grid-template-columns:1fr 1fr; gap:.8rem;}
.horario-card__hours div{padding:.7rem; background:var(--gris-claro); border-radius:var(--radius-sm);}
.horario-card__hours span{display:block; font-size:.72rem; color:var(--gris); text-transform:uppercase; letter-spacing:1px;}
.horario-card__hours strong{display:block; color:var(--negro); font-size:1rem; margin-top:.2rem;}
.horario-card--off{border-left-color:var(--gris-medio);}
.horario-card__closed{color:var(--gris); font-style:italic; padding:1rem 0;}

/* ============ CONTACTO QUICK CARDS ============ */
.contacto-quick{padding:2.5rem 0 0; background:var(--blanco);}
.contacto-quick__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.2rem;
}
.quick-card{
    background:var(--blanco);
    border:1px solid var(--gris-borde);
    border-radius:var(--radius-md);
    padding:1.4rem 1.5rem;
    display:flex; align-items:center; gap:1rem;
    color:var(--negro);
    transition:var(--transition);
}
.quick-card:hover{
    border-color:var(--rojo);
    box-shadow:var(--shadow-md);
    transform:translateY(-3px);
    color:var(--negro);
}
.quick-card__icon{
    width:54px; height:54px;
    background:linear-gradient(135deg, rgba(181,18,27,.1), rgba(246,196,0,.15));
    color:var(--rojo);
    border-radius:var(--radius-sm);
    display:inline-flex;
    align-items:center; justify-content:center;
    flex-shrink:0;
}
.quick-card__icon .icon{width:26px; height:26px;}
.quick-card small{
    display:block;
    font-size:.7rem;
    color:var(--gris-medio);
    text-transform:uppercase;
    letter-spacing:1px;
    margin-bottom:.2rem;
}
.quick-card strong{
    display:block;
    color:var(--negro);
    font-weight:700;
    font-size:.98rem;
}

/* ============ CONTACTO PRINCIPAL ============ */
.contacto{padding:4rem 0 5rem; background:var(--blanco);}
.contacto__grid{display:grid; grid-template-columns:1fr 1.05fr; gap:3rem; align-items:start;}
.contacto__lead{color:var(--gris); margin-bottom:2rem;}

.contacto__sedes{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem;
    margin-bottom:1.5rem;
}
.contacto-sede{
    background:var(--gris-claro);
    border-radius:var(--radius-md);
    padding:1.3rem;
    border-top:3px solid var(--rojo);
}
.contacto-sede header{
    display:flex; align-items:center; gap:.6rem;
    margin-bottom:.5rem;
}
.contacto-sede__icon{
    width:36px; height:36px;
    background:var(--blanco);
    color:var(--rojo);
    border-radius:var(--radius-sm);
    display:inline-flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.contacto-sede__icon .icon{width:18px; height:18px;}
.contacto-sede h3{
    margin:0;
    font-size:1.05rem;
    color:var(--negro);
}
.contacto-sede p{
    color:var(--gris);
    font-size:.88rem;
    margin:0 0 .5rem;
}
.contacto-sede a{
    display:inline-flex; align-items:center; gap:.35rem;
    color:var(--rojo);
    font-size:.88rem;
    font-weight:600;
}

.contacto__horario{
    background:var(--negro);
    color:var(--blanco);
    border-radius:var(--radius-md);
    padding:1.4rem 1.6rem;
}
.contacto__horario-head{
    display:flex; align-items:center; gap:.55rem;
    margin-bottom:.8rem;
    color:var(--amarillo);
}
.contacto__horario-head strong{font-size:.95rem; letter-spacing:.4px;}
.contacto__horario ul{
    list-style:none; padding:0; margin:0;
}
.contacto__horario li{
    display:flex; justify-content:space-between;
    padding:.55rem 0;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-size:.9rem;
}
.contacto__horario li:last-child{border-bottom:0;}
.contacto__horario li span{color:rgba(255,255,255,.7);}
.contacto__horario li strong{color:var(--blanco);}

.contacto__form-wrap{
    background:var(--blanco);
    padding:2.2rem;
    border-radius:var(--radius-md);
    border:1px solid var(--gris-borde);
    border-top:4px solid var(--rojo);
}
.form-contacto__title{font-size:1.35rem; color:var(--negro);}
.form-contacto__desc{color:var(--gris); font-size:.9rem; margin-bottom:1.5rem;}
.form-row{margin-bottom:1.1rem;}
.form-row label{display:block; font-weight:600; font-size:.88rem; margin-bottom:.4rem; color:var(--negro);}
.req{color:var(--rojo);}
.form-row input, .form-row textarea{
    width:100%; padding:.8rem 1rem;
    border:1.5px solid var(--gris-borde);
    border-radius:var(--radius-sm);
    font-family:inherit; font-size:.95rem;
    transition:var(--transition); background:var(--blanco); color:var(--negro);
}
.form-row input:focus, .form-row textarea:focus{
    outline:none; border-color:var(--rojo);
    box-shadow:0 0 0 3px rgba(181,18,27,.12);
}
.form-row textarea{resize:vertical; min-height:120px;}
.hp{position:absolute; left:-9999px; opacity:0; height:0; width:0;}
.form-contacto__legal{font-size:.74rem; color:var(--gris-medio); text-align:center; margin:1rem 0 0;}
.alert{padding:1rem 1.2rem; border-radius:var(--radius-sm); margin-bottom:1.2rem; font-weight:500;}
.alert--ok{background:#e7f8ec; color:#1c6c34; border:1px solid #b5e3c1;}
.alert--error{background:#fdecec; color:#a31a1a; border:1px solid #f3bcbc;}

/* ============ CTA BANNER ============ */
.cta-banner{
    background:var(--amarillo);
    padding:3rem 0;
    color:var(--negro);
    position:relative; overflow:hidden;
}
.cta-banner__inner{
    position:relative;
    display:flex; align-items:center; justify-content:space-between;
    gap:2rem; flex-wrap:wrap;
}
.cta-banner h3{font-size:clamp(1.3rem,2.5vw,1.8rem); font-weight:800; margin-bottom:.3rem; color:var(--negro);}
.cta-banner p{margin:0; color:var(--negro-suave);}
.cta-banner__actions{display:flex; gap:.7rem; flex-wrap:wrap;}

/* ============ FOOTER ============ */
.site-footer{background:var(--negro); color:var(--blanco); padding-top:4rem;}
.site-footer__grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:2.5rem;
    padding-bottom:3rem;
    align-items:start;
}
.site-footer__col{min-width:0;}
.site-footer__brand img{
    height:54px; width:auto;
    background:var(--blanco);
    border-radius:var(--radius-sm);
    padding:6px;
    margin-bottom:1rem;
}
.site-footer__brand h4{color:var(--amarillo); font-size:1.1rem; margin-bottom:.6rem;}
.site-footer__brand p{color:rgba(255,255,255,.7); font-size:.88rem; margin:0; line-height:1.6;}

.site-footer__col h5{
    color:var(--amarillo); font-size:.9rem;
    text-transform:uppercase; letter-spacing:1.6px;
    margin-bottom:1.1rem; font-weight:700;
}
.site-footer__col ul{list-style:none; padding:0; margin:0;}
.site-footer__col ul li{padding:.32rem 0;}
.site-footer__col ul a{color:rgba(255,255,255,.7); font-size:.9rem;}
.site-footer__col ul a:hover{color:var(--amarillo);}

.site-footer__social{
    display:flex; gap:.6rem;
    flex-wrap:wrap;
}
.site-footer__social li{padding:0 !important;}
.site-footer__social a{
    width:40px; height:40px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.85) !important;
    display:inline-flex;
    align-items:center; justify-content:center;
    transition:var(--transition);
}
.site-footer__social a:hover{
    background:var(--amarillo);
    color:var(--negro) !important;
    transform:translateY(-2px);
}
.site-footer__social .icon{width:18px; height:18px;}

.site-footer__bottom{background:#0a0a0a; padding:1.1rem 0; text-align:center; font-size:.83rem; color:rgba(255,255,255,.55);}

/* ============ WHATSAPP FLOAT ============ */
.wa-float{
    position:fixed; right:20px; bottom:20px; z-index:90;
    background:var(--verde-wa); color:var(--blanco);
    width:56px; height:56px;
    border-radius:50%;
    box-shadow:0 8px 24px rgba(37,211,102,.4);
    display:inline-flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.wa-float:hover{
    transform:translateY(-3px) scale(1.05);
    color:var(--blanco);
    background:var(--verde-wa-oscuro);
    box-shadow:0 12px 30px rgba(37,211,102,.5);
}
.wa-float__svg{width:30px; height:30px; color:var(--blanco);}

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px){
    .hero__inner{grid-template-columns:1fr; gap:3rem;}
    .hero{padding:3.5rem 0 4rem;}
    .hero__visual{height:440px; max-width:540px; margin:0 auto;}
    .hero__title{font-size:clamp(2.2rem,7vw,3rem);}
    .intro__grid{grid-template-columns:1fr; gap:1.4rem;}
    .stats__grid{grid-template-columns:repeat(3,1fr);}
    .stepper{grid-template-columns:repeat(2,1fr); gap:3rem 1.4rem;}
    .stepper__line{display:none;}
    .timeline{grid-template-columns:repeat(2,1fr);}
    .timeline::before{display:none;}
    .porque__features{grid-template-columns:1fr;}
    .sobre__grid{grid-template-columns:1fr;}
    .sobre__media > img{height:380px;}
    .sobre__badge{width:100px; height:100px; top:-15px; left:-15px;}
    .sobre__badge strong{font-size:2.2rem;}
    .nosotros__grid{grid-template-columns:1fr;}
    .nosotros__image img{height:360px;}
    .destacado__grid{grid-template-columns:1fr;}
    .contacto__grid{grid-template-columns:1fr;}
    .contacto-quick__grid{grid-template-columns:repeat(3, 1fr);}
    .sedes__grid{grid-template-columns:1fr;}
    .curso-contenido__grid{grid-template-columns:1fr;}
    .curso-sidebar{position:static;}
    .valores__grid{grid-template-columns:repeat(2,1fr);}
    .horarios__grid{grid-template-columns:repeat(2, 1fr);}
    .comentarios__grid{grid-template-columns:1fr;}
    .site-footer__grid{grid-template-columns:1fr 1fr; gap:2rem;}
}

@media (max-width: 768px){
    .nav{
        position:fixed; top:0; right:-100%;
        height:100vh; width:280px;
        background:var(--blanco);
        flex-direction:column; align-items:flex-start;
        padding:4rem 1.8rem 2rem;
        box-shadow:-10px 0 30px rgba(0,0,0,.15);
        transition:right .3s ease; z-index:110; gap:1rem;
    }
    .nav.is-open{right:0;}
    .nav__close{
        display:block; position:absolute; top:14px; right:14px;
        background:transparent; border:0; font-size:2rem;
        color:var(--negro); cursor:pointer; line-height:1;
    }
    .nav__list{flex-direction:column; gap:.2rem; width:100%;}
    .nav__list li{width:100%;}
    .nav__link{display:block; padding:.8rem .4rem; border-bottom:1px solid var(--gris-borde); width:100%;}
    .nav__cta{width:100%; margin-top:1rem;}
    .nav__toggle{display:block;}

    .stepper, .timeline{grid-template-columns:1fr;}
    .contacto-quick__grid{grid-template-columns:1fr;}
    .contacto__sedes{grid-template-columns:1fr;}
    .sobre__highlights{grid-template-columns:1fr 1fr;}
    .horarios__grid{grid-template-columns:1fr;}
    .site-footer__grid{grid-template-columns:1fr; text-align:center;}
    .site-footer__social{justify-content:center;}
    .curso-bloque__section{padding:1.3rem;}
    .curso-bloque__head h2{font-size:1.05rem;}

    .hero{padding:2.5rem 0 3rem;}
    .hero__visual{
        height:auto;
        max-width:none;
        margin-top:.5rem;
    }
    .hero__img--main{
        position:relative;
        width:100%;
        height:auto;
        top:auto; right:auto;
        aspect-ratio:16 / 11;
    }
    .hero__img--main img{aspect-ratio:inherit;}
    .hero__img--small{display:none;}
    .hero__sticker{
        position:relative;
        top:auto; left:auto;
        margin:1rem 0 0;
        padding:.7rem .9rem;
        max-width:300px;
    }
    .hero__sticker .icon{width:24px; height:24px;}
    .hero__sticker strong{font-size:.82rem;}
    .hero__sticker span{font-size:.7rem;}
    .hero__quick-stats{gap:1.4rem;}
    .hero__quick-stats div strong{font-size:1.5rem;}

    .stats__grid{grid-template-columns:repeat(2,1fr);}
    .stat{padding:1.2rem 1rem;}
    .stat__number{font-size:1.7rem;}

    .intro, .stats, .cursos-destacados, .cursos, .proceso, .porque, .sedes-preview, .sedes, .nosotros, .sobre, .valores, .contacto, .destacado, .horarios, .comentarios{padding:3.5rem 0;}
    .proceso__grid{grid-template-columns:1fr;}
    .nosotros__features{grid-template-columns:1fr;}
    .valores__grid{grid-template-columns:1fr;}
    .cursos__grid{grid-template-columns:1fr;}
    .curso-card__title{min-height:0;}
    .sedes__email{flex-direction:column; text-align:center;}
    .contacto__form-wrap{padding:1.5rem;}
    .horarios__grid{grid-template-columns:1fr;}

    .section__header--row{flex-direction:column; align-items:flex-start;}

    .curso-hero{padding:3rem 0;}
    .curso-section{padding:1.5rem;}

    .cta-banner__inner{flex-direction:column; text-align:center;}
    .cta-banner__actions{justify-content:center;}

    .site-footer__grid{grid-template-columns:1fr; gap:2rem;}
    .site-footer{padding-top:3rem;}
}

@media (max-width: 480px){
    .logo img{height:44px;}
    .logo__title{font-size:1rem;}
    .logo__subtitle{font-size:.65rem;}
    .hero__title{font-size:2rem;}
    .hero__lead{font-size:1rem;}
    .stats__grid{grid-template-columns:1fr 1fr;}
    .btn{padding:.75rem 1.2rem; font-size:.88rem;}
    .wa-float{width:50px; height:50px; right:16px; bottom:16px;}
    .wa-float__svg{width:26px; height:26px;}
}
