/* ==========================================================================
   Ser Escritura — theme.css
   Grilla y utilidades: Bootstrap 5 (local). Tokens + componentes se-*.
   Paleta muestreada del diseño; tipografía según especificación (Figma):
   H1/H2 = Cambria bold  ->  Caladea (sustituto abierto métricamente compatible)
   Párrafos = Inter 400.
   ========================================================================== */

/* ---------- Fuentes self-hosted ---------- */
@font-face{
  font-family:"Caladea";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/caladea-400-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Caladea";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/caladea-400-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Caladea";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/caladea-700-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Caladea";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/caladea-700-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/inter-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- Tokens ---------- */
:root{
  --se-navy:#1E2A5C;
  --se-coral:#F36B5E;
  --se-magenta:#E35080;
  --se-magenta-deep:#C9347A;
  --se-orange:#FAA922;
  --se-yellow:#F4C24A;
  --se-grad:linear-gradient(90deg,#F4C24A 0%,#F36B5E 48.56%,#C9347A 100%);

  --se-bg:#F4F4F4;
  --se-pill:#E9E9E9;
  --se-card:#F7F7F7;
  --se-white:#fff;
  --se-text:#40465a;
  --se-muted:#6b7280;
  --se-border:#e6e7ec;

  --se-font-title:"Caladea",Cambria,Georgia,"Times New Roman",serif;
  --se-font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  --se-radius:12px;
  --se-shadow:0 14px 34px rgba(30,42,92,.12);
}

/* ---------- Base ---------- */
*{box-sizing:border-box;}
body{
  font-family:var(--se-font-body);
  color:var(--se-text);
  font-size:clamp(16px,.5vw + 14px,20px);
  line-height:1.6;
  background:var(--se-white);
}
h1,h2,h3,h4{font-family:var(--se-font-title);color:var(--se-navy);font-weight:700;}
h1{font-size:clamp(30px,2.2vw + 14px,45px);line-height:1.08;letter-spacing:.02em;}
h2{font-size:clamp(26px,1.4vw + 14px,35px);line-height:1.1;letter-spacing:.02em;}
h3{font-size:clamp(20px,1vw + 12px,26px);line-height:1.15;}
a{color:var(--se-navy);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--se-coral);}
img{max-width:100%;height:auto;}
.se-main{overflow-x:clip;}

.container{max-width:1320px;padding-inline:24px;}
.py-lg-6{padding-top:2.5rem;padding-bottom:2.5rem;}
@media(min-width:992px){.py-lg-6{padding-top:5rem;padding-bottom:5rem;}}

.se-skip-link{position:absolute;left:-9999px;top:0;background:var(--se-navy);color:#fff;padding:.6rem 1rem;z-index:2000;}
.se-skip-link:focus{left:12px;top:12px;color:#fff;}
.se-icon{flex:none;}

/* ---------- Botones ---------- */
.se-btn{display:inline-flex;align-items:center;gap:.5rem;border-radius:8px;padding:.7rem 1.5rem;font-weight:600;line-height:1;border:1px solid transparent;cursor:pointer;transition:background .2s,color .2s,transform .2s,box-shadow .2s;}
.se-btn--navy{background:var(--se-navy);color:#fff;}
.se-btn--navy:hover{background:#16204a;color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(30,42,92,.25);}
.se-btn--coral{background:var(--se-coral);color:#fff;}
.se-btn--coral:hover{background:#e85a4d;color:#fff;transform:translateY(-1px);}
.se-btn--outline{background:#fff;color:var(--se-navy);border-color:var(--se-border);}
.se-btn--outline:hover{border-color:var(--se-navy);color:var(--se-navy);transform:translateY(-1px);}
.se-btn .se-icon{transition:transform .2s ease;}
.se-btn:hover .se-icon--arrow{transform:translateX(3px);}

/* ---------- Encabezado de sección (serif + barra coral) ---------- */
.se-section-heading{margin-bottom:2.2rem;}
.se-section-heading__title{margin:0;}
.se-accent-bar{display:block;width:64px;height:4px;background:var(--se-coral);border-radius:3px;margin:.9rem 0 0;}
.text-center .se-accent-bar{margin-left:auto;margin-right:auto;}
.se-section-heading__subtitle{max-width:760px;margin:1rem auto 0;color:var(--se-navy);font-weight:600;}
.se-section-heading--light .se-section-heading__title{color:#fff;}
.se-section-heading--light .se-section-heading__subtitle{color:rgba(255,255,255,.9);}

/* Divisor degradé entre secciones */
.se-grad-divider{height:4px;width:100%;background:var(--se-grad);border:0;border-radius:3px;margin:0;}

/* ---------- Header ---------- */
.se-header{background:#fff;position:sticky;top:0;z-index:1030;border-bottom:1px solid var(--se-border);}
.se-header--scrolled{box-shadow:0 4px 18px rgba(30,42,92,.08);}
.se-header__bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.85rem;}
.se-brand{display:inline-flex;align-items:center;}
.se-brand__logo,.se-header .custom-logo{height:56px;width:auto;}
.se-nav-wrap{margin-left:auto;}
.se-nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:.2rem;align-items:center;list-style:none;margin:0;padding:0;}
.se-nav a{position:relative;display:block;color:var(--se-navy);font-weight:500;padding:.5rem .95rem;font-size:1rem;}
.se-nav a:hover{color:var(--se-coral);}
.se-nav .current-menu-item>a,.se-nav .current_page_item>a,.se-nav .current>a{color:var(--se-navy);}
.se-nav .current-menu-item>a::after,.se-nav .current_page_item>a::after,.se-nav .current>a::after{
  content:"";position:absolute;left:.95rem;right:.95rem;bottom:.05rem;height:3px;border-radius:3px;background:var(--se-grad);
}
.se-header__cta{margin-left:.4rem;}
.se-burger{display:none;width:46px;height:46px;border:none;background:transparent;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;}
.se-burger span{display:block;height:2px;width:26px;margin:0 auto;background:var(--se-navy);border-radius:2px;transition:transform .3s,opacity .2s;}
.se-burger.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.se-burger.is-active span:nth-child(2){opacity:0;}
.se-burger.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Menú móvil full-screen */
.se-mobile-panel{position:fixed;inset:0;z-index:1050;background:#fff;height:100dvh;transform:translateX(-100%);transition:transform .35s cubic-bezier(.4,0,.2,1);visibility:hidden;display:flex;flex-direction:column;}
.se-mobile-panel.is-open{transform:translateX(0);visibility:visible;}
.se-mobile-panel__top{display:flex;align-items:center;justify-content:space-between;padding-block:1.1rem;border-bottom:1px solid var(--se-border);}
.se-mobile-close{border:none;background:transparent;color:var(--se-navy);cursor:pointer;}
.se-mobile-nav{padding-top:1rem;}
.se-mobile-menu{list-style:none;margin:0;padding:0;}
.se-mobile-menu a,.se-mobile-nav .se-nav a{display:block;padding:1rem .2rem;color:var(--se-navy);font-size:1.2rem;border-bottom:1px solid var(--se-border);}
.se-mobile-cta{margin-top:1.6rem;justify-content:center;}
.se-no-scroll{overflow:hidden;}

@media(max-width:991.98px){
  .se-nav-wrap,.se-header__cta{display:none;}
  .se-burger{display:flex;}
}

/* ---------- Breadcrumb ---------- */
.se-breadcrumb{padding:1.4rem 0 .2rem;font-size:.9rem;color:var(--se-muted);}
.se-breadcrumb a{color:var(--se-muted);}
.se-breadcrumb a:hover{color:var(--se-coral);}
.se-breadcrumb__sep{display:inline-flex;vertical-align:middle;margin:0 .35rem;color:var(--se-muted);}
.se-breadcrumb .current{color:var(--se-navy);font-weight:600;}

/* ---------- Footer ---------- */
.se-footer{position:relative;background:var(--se-bg);color:var(--se-navy);padding-block:3.4rem 1.6rem;margin-top:0;}
.se-footer__topbar{position:absolute;top:0;left:0;right:0;height:4px;background:var(--se-grad);}
.se-footer__grid{align-items:flex-start;}
.se-footer__brand img{max-width:280px;height:auto;}
.se-footer__title{font-family:var(--se-font-body);font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--se-navy);margin:0 0 .4rem;padding-bottom:.4rem;position:relative;display:inline-block;}
.se-footer__title::after{content:"";position:absolute;left:0;bottom:0;width:70%;height:2px;background:var(--se-grad);border-radius:2px;}
.se-footer__menu{list-style:none;margin:.5rem 0 1rem;padding:0;}
.se-footer__menu li{margin:.35rem 0;}
.se-footer__menu a{color:var(--se-navy);font-size:.98rem;}
.se-footer__menu a:hover{color:var(--se-coral);}
.se-footer__cta{margin-top:.4rem;}
.se-footer__logos{display:flex;flex-wrap:wrap;align-items:center;gap:1.6rem 2rem;margin-top:.9rem;}
.se-footer__logos img{height:46px;width:auto;object-fit:contain;}
.se-footer__social{display:flex;gap:.6rem;margin-top:1.8rem;}
.se-footer__social a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--se-navy);color:#fff;}
.se-footer__social a:hover{background:var(--se-coral);color:#fff;}
.se-footer__rule{border:0;border-top:1px solid rgba(30,42,92,.18);margin:2rem 0 1.1rem;}
.se-footer__bottom{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;font-size:.9rem;color:var(--se-navy);}
.se-footer__bottom a{color:var(--se-navy);}
.se-footer__bottom a:hover{color:var(--se-coral);}
.se-footer__dot{color:rgba(30,42,92,.4);}

/* ---------- 404 ---------- */
.se-404__code{font-size:clamp(64px,10vw,120px);color:var(--se-navy);margin-bottom:.4rem;}
.se-404__msg{color:var(--se-muted);margin-bottom:1.6rem;}

/* ---------- Página genérica ---------- */
.se-page{padding-block:1rem 4rem;}
.se-page__content{max-width:820px;margin:0 auto;padding-inline:24px;}
.se-content-narrow{max-width:820px;}

/* ---------- Efectos (reveal on-scroll) ---------- */
.se-fade-up,.se-fade{opacity:0;transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform;}
.se-fade-up{transform:translateY(28px);}
.se-fade-up.se-in,.se-fade.se-in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.se-fade-up,.se-fade{opacity:1;transform:none;transition:none;}}

/* ==========================================================================
   HOME (Etapa 2)
   ========================================================================== */

/* Botón magenta (CTA de enseñanza) */
.se-btn--magenta{background:var(--se-magenta);color:#fff;}
.se-btn--magenta:hover{background:#d5426f;color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(227,80,128,.3);}

/* ---- Hero ---- */
.se-hero{
  position:relative;color:#fff;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  padding-block:clamp(3.5rem,8vw,7rem);
  padding-bottom:clamp(6rem,12vw,11rem);
}
.se-hero__inner{max-width:640px;}
.se-hero__eyebrow{color:#fff;font-weight:500;font-size:1rem;margin:0 0 1rem;opacity:.95;}
.se-hero__title{color:#fff;margin:0;font-size:clamp(30px,3.4vw,45px);line-height:1.12;}

/* ---- Banda navy + tarjetas flotantes ---- */
.se-band-navy{background:var(--se-navy);padding-bottom:clamp(3rem,6vw,5rem);}
.se-cards{margin-top:clamp(-5.5rem,-9vw,-8.5rem);position:relative;z-index:2;}
.se-card{
  background:#fff;border-radius:var(--se-radius);padding:2rem 1.5rem;text-align:center;
  box-shadow:0 18px 40px rgba(0,0,0,.16);
  display:flex;flex-direction:column;align-items:center;
  transition:transform .25s,box-shadow .25s;
}
.se-card:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(0,0,0,.22);}
.se-card__icon{display:flex;align-items:center;justify-content:center;height:56px;margin-bottom:1rem;}
.se-card__icon img{width:auto;height:52px;object-fit:contain;}
.se-card__title{font-family:var(--se-font-title);color:var(--se-navy);font-weight:700;font-size:1.35rem;margin:0 0 .7rem;}
.se-card__text{color:var(--se-muted);font-size:.92rem;line-height:1.55;margin:0;}

/* ---- Historia (mini timeline) ---- */
.se-historia{padding-block:clamp(3rem,6vw,5rem);}
.se-htl{margin-top:2.5rem;}
.se-htl__labels{display:flex;justify-content:space-between;margin-bottom:1rem;}
.se-htl__label{color:var(--se-coral);font-style:italic;font-weight:700;font-size:1.05rem;}
.se-htl__track{position:relative;height:22px;margin:0 4% 2.5rem;}
.se-htl__bar{position:absolute;left:0;right:0;top:50%;height:5px;transform:translateY(-50%);border-radius:5px;background:var(--se-grad);}
.se-htl__dots{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;}
.se-htl__dot{width:22px;height:22px;border-radius:50%;box-shadow:0 0 0 4px #fff;}
.se-htl__items{text-align:center;row-gap:2rem;}
.se-htl__item{padding:0 .4rem;}
.se-htl__icon{display:flex;align-items:center;justify-content:center;height:44px;margin-bottom:.6rem;}
.se-htl__icon img{width:auto;height:40px;object-fit:contain;}
.se-htl__year{display:block;color:var(--se-navy);font-weight:700;font-size:1.05rem;margin-bottom:.15rem;}
.se-htl__title{font-family:var(--se-font-body);font-weight:700;color:var(--se-navy);font-size:1rem;margin:0 0 .4rem;}
.se-htl__text{color:var(--se-muted);font-size:.85rem;line-height:1.5;margin:0;}
.se-htl__cta{margin-top:2.5rem;}
@media(max-width:767.98px){
  .se-htl__track{display:none;}
  .se-htl__item{border-left:3px solid;border-image:var(--se-grad) 1;padding-left:1rem;text-align:left;}
  .se-htl__icon{justify-content:flex-start;}
}

/* ---- CTA enseñanza ---- */
.se-cta{padding-block:clamp(2rem,4vw,3.5rem);}
.se-cta__box{
  position:relative;overflow:hidden;
  background:var(--se-navy);border-radius:18px;color:#fff;
  padding:clamp(1.8rem,4vw,3rem);
  display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;
}
.se-cta__badge{flex:none;}
.se-cta__badge img{width:clamp(90px,10vw,120px);height:auto;}
.se-cta__content{flex:1;min-width:260px;}
.se-cta__title{color:#fff;margin:0 0 .5rem;font-size:clamp(24px,2.4vw,32px);}
.se-cta__text{color:rgba(255,255,255,.9);margin:0 0 1.3rem;font-size:1rem;}
.se-cta__art{flex:none;margin-left:auto;}
.se-cta__art img{width:clamp(200px,22vw,300px);height:auto;}
@media(max-width:991.98px){
  .se-cta__art{display:none;}
}
