/* ============================================================
   INSTITUTO ALTAMIRANO — Sitio web (sistema de diseño)
   Identidad: Bebas Neue + Archivo · Rojo #B13130 + Azul marino
   Base heredada de la landing v5. Multipágina.
   ============================================================ */
:root{
  --red:#B13130; --red-deep:#8A2322; --red-tint:#F7E9E8;
  --navy:#202A5E; --navy-deep:#161E45;
  --ink:#201A19; --ink-soft:#5B5250; --ink-faint:#6E655F;

  /* --- Sistema de superficies (fondos de sección) ---
     Regla: alternar superficie-1 (primaria) y superficie-2 (secundaria)
     para crear ritmo. Navy = banda de énfasis. Rojo = solo acento.       */
  --paper:#FBF8F5;          /* superficie-1 · primaria (default + cards)   */
  --cream:#F1EAE2;          /* superficie-2 · secundaria (alterna ritmo)   */
  --blush:#F1EAE2;          /* alias → superficie-2 (se retira el rosa)    */
  --surface-1:var(--paper);
  --surface-2:var(--cream);
  --footer-bg:#211D1E;      /* charcoal cálido · reemplaza el café         */
  --footer-tx:#B6ADA8; --footer-tx-soft:#928984; --footer-label:#9A918C;

  --line:#E8E1DA; --line-strong:#D7CDC5; --on-red:#FDF6F5;
  --c-basico:#B4802E; --c-lic:#202A5E; --c-pos:#3C4E74; --c-buap:#0096C7;
  /* Acentos de categoría de Cursos (subsección complementaria) */
  --cc-idiomas:#2563A6; --cc-tecnologia:#128C7C; --cc-salud:#E05A2B; --cc-belleza:#7A5AF0; --cc-gastronomia:#B5651D;
  --wa:#25D366; --wa-deep:#1EB456;
  --maxw:1160px; --gutter:clamp(1.35rem,4.5vw,2.75rem);
  --r-sm:10px; --r-md:16px; --r-lg:22px;
  /* Ritmo de espaciado (escala consistente) */
  --head-gap:2.4rem;        /* separación encabezado de sección ↔ contenido */
  --display:"Bebas Neue",Impact,sans-serif;
  --sans:"Archivo",system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip;}
body{overflow-x:clip;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:clamp(1rem,0.96rem + 0.2vw,1.08rem);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:0.98;letter-spacing:0.015em;margin:0;}
p{margin:0;} a{color:inherit;} img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
section[id]{scroll-margin-top:76px;}
.eyebrow{font-family:var(--sans);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--red);font-weight:600;}
.eyebrow.on-dark{color:#F0B9B6;}
:focus-visible{outline:2.5px solid var(--red);outline-offset:2px;border-radius:3px;}
section{padding-block:clamp(3.2rem,6vw,5.2rem);}
.center{text-align:center;} .mt-s{margin-top:0.8rem;} .mt-m{margin-top:1.3rem;}

/* Foto */
/* Protección básica de las fotografías: sin arrastre, sin selección y sin
   menú de "guardar imagen" al mantener pulsado en iOS */
img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}
.photo{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--red-tint),var(--cream) 70%);border:1px solid var(--line);display:grid;place-items:center;}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.photo .ph-label{z-index:0;font-family:var(--sans);font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--red);opacity:.65;padding:1rem;text-align:center;}
.photo .tag-space{position:absolute;left:10px;bottom:10px;z-index:2;font-family:var(--sans);font-size:0.58rem;letter-spacing:0.06em;text-transform:uppercase;color:#fff;background:rgba(32,26,25,.62);padding:0.3em 0.6em;border-radius:5px;}
.photo.arch{border-radius:180px 180px var(--r-md) var(--r-md);}
.photo.round{border-radius:var(--r-md);}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.6ch;font-family:var(--sans);font-weight:600;font-size:0.95rem;padding:0.82em 1.4em;border-radius:var(--r-sm);text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:transform .18s cubic-bezier(.2,.7,.3,1),background .18s,color .18s,border-color .18s;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--red);color:var(--on-red);} .btn-primary:hover{background:var(--red-deep);}
.btn-dark{background:var(--navy);color:#fff;} .btn-dark:hover{background:var(--navy-deep);}
.btn-ghost{background:transparent;color:var(--red);border-color:var(--line-strong);} .btn-ghost:hover{border-color:var(--red);background:var(--red-tint);}
.btn-ghost.on-dark{color:#fff;border-color:rgba(255,255,255,.4);} .btn-ghost.on-dark:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.btn-gold{background:var(--c-basico);color:#fff;} .btn-gold:hover{filter:brightness(0.93);}
.btn-wa{background:var(--wa);color:#fff;} .btn-wa:hover{background:var(--wa-deep);}
.btn .wa{width:1.2em;height:1.2em;fill:currentColor;flex:none;}

/* Header multipágina */
header.site{position:sticky;top:0;z-index:50;background:rgba(251,248,245,.9);backdrop-filter:saturate(1.1) blur(9px);border-bottom:1px solid var(--line);}
.site .bar{display:flex;align-items:center;gap:1.25rem;padding-block:0.6rem;}
.brandmark{display:flex;align-items:center;gap:0.7rem;text-decoration:none;margin-right:auto;}
.brandmark img{height:44px;width:auto;flex:none;}
.brandmark .word{font-family:var(--display);font-weight:400;font-size:1.5rem;letter-spacing:0.015em;color:var(--navy);line-height:0.92;display:flex;flex-direction:column;justify-content:center;}
.brandmark .word small{display:block;font-family:var(--sans);font-size:0.5rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--red);margin-top:3px;line-height:1;}
.site nav{display:flex;gap:1.4rem;align-items:center;}
.site nav a{text-decoration:none;color:var(--ink-soft);font-size:0.9rem;font-weight:500;}
.site nav a:hover{color:var(--red);}
.site nav a.active{color:var(--red);font-weight:600;}
.rvoe-chip{font-family:var(--sans);font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--red);border:1px solid var(--line-strong);border-radius:100px;padding:0.35em 0.75em;white-space:nowrap;font-weight:600;}
/* Dropdown de Oferta académica */
.site nav .has-sub{position:relative;display:inline-flex;align-items:center;gap:0.15ch;}
.site nav .nav-top{display:inline-flex;align-items:center;gap:0.4ch;}
.sub-toggle{background:none;border:0;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;padding:0.2em 0.35em;line-height:0;}
.caret{width:0.5em;height:0.5em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .25s;opacity:.75;}
.has-sub:hover .caret,.has-sub:focus-within .caret{transform:rotate(225deg) translateY(2px);}
.submenu{display:flex;flex-direction:column;}
@media(min-width:981px){
  .submenu{position:absolute;top:calc(100% + 8px);left:0;min-width:250px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 44px -22px rgba(32,26,25,.5);padding:0.45rem;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:60;}
  .submenu::before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px;}
  .has-sub:hover .submenu,.has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:none;}
  .submenu a{padding:0.6rem 0.85rem;border-radius:9px;font-size:0.9rem;font-weight:500;color:var(--ink-soft);border-bottom:0 !important;transition:background .16s,color .16s;}
  .submenu a::after{display:none !important;}
  .submenu a:hover{background:var(--cream);color:var(--red);}
}
@media(max-width:980px){
  /* Oferta académica = acordeón: enlace navega, botón (flecha) pliega/despliega */
  .site nav .has-sub{display:flex;flex-wrap:wrap;align-items:center;width:100%;border-bottom:1px solid var(--line);}
  .site nav .nav-top{flex:1 1 auto;width:auto;border-bottom:0;}
  .sub-toggle{margin-left:auto;min-width:48px;min-height:48px;}
  .caret{transform:rotate(45deg);opacity:.7;}
  .has-sub.open .caret{transform:rotate(225deg);}
  .submenu{flex-basis:100%;width:100%;flex-direction:column;overflow:hidden;max-height:0;margin:0;padding-left:0.9rem;border-left:2px solid var(--line);gap:0.05rem;transition:max-height .3s ease;}
  .has-sub.open .submenu{max-height:480px;margin:0.1rem 0 0.5rem 0.2rem;}
  .site nav .submenu a{font-size:0.98rem;padding:0.6rem 0;min-height:44px;border-bottom:0;color:var(--ink-soft);}
}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:0.4em;margin-left:auto;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:.25s;}
@media (max-width:980px){
  /* Neutraliza el bloque contenedor que backdrop-filter crea para el nav fixed */
  header.site{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper);}
  /* Barra por encima del panel: el botón (X) siempre es clickeable */
  .site .bar{position:relative;z-index:2;}
  .site nav{
    position:fixed;inset:0 0 0 auto;z-index:1;
    width:min(86vw,360px);max-width:100%;
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);
    padding:calc(var(--head-h,64px) + 0.9rem) 1.4rem calc(env(safe-area-inset-bottom,0px) + 1.6rem);
    box-shadow:-16px 0 46px -22px rgba(0,0,0,.45);
    transform:translateX(100%);visibility:hidden;
    transition:transform .3s cubic-bezier(.2,.7,.3,1),visibility 0s linear .3s;
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  }
  .site nav.open{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.2,.7,.3,1),visibility 0s;}
  .site nav a{font-size:1.06rem;padding:0.9rem 0.15rem;width:100%;min-height:48px;display:flex;align-items:center;border-bottom:1px solid var(--line);}
  .site nav .has-sub a.nav-top{justify-content:space-between;}
  .nav-toggle{display:block;order:3;position:relative;z-index:3;}
  .nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.is-open span:nth-child(2){opacity:0;}
  .nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body.nav-open{overflow:hidden;}
}
.nav-scrim{position:fixed;inset:0;background:rgba(22,30,69,.4);opacity:0;visibility:hidden;transition:.28s;z-index:45;}
.nav-scrim.show{opacity:1;visibility:visible;}

/* Hero (home) */
.hero{position:relative;min-height:calc(100svh - 66px);display:grid;align-content:center;padding-block:clamp(1.6rem,3.5vw,3rem);overflow:hidden;background:linear-gradient(180deg,var(--cream),var(--paper) 72%);}
@media(max-width:820px){.hero{min-height:auto;}}
.hero .grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:clamp(1.9rem,5vw,4.75rem);align-items:center;}
.hero h1{font-size:clamp(3.3rem,2rem + 6.2vw,6.6rem);margin-block:0.7rem 0;line-height:0.88;}
.hero h1 .hl{color:var(--red);}
.hero .lede{font-size:clamp(1.06rem,1rem + 0.45vw,1.24rem);color:var(--ink-soft);max-width:42ch;margin-top:1.1rem;}
.hero .chips{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:1.3rem;}
.hero .chips span{font-family:var(--sans);font-size:0.7rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--navy);background:#EAECF5;border-radius:100px;padding:0.42em 0.85em;}
.hero .chips.small span{font-size:0.6rem;font-weight:600;letter-spacing:0.05em;padding:0.34em 0.7em;color:var(--ink-soft);background:#EEEBE6;}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.6rem;}
.hero .reassure{margin-top:1rem;font-size:0.86rem;color:var(--ink-faint);}
.hero .stage{position:relative;width:100%;max-width:min(360px, calc((100svh - 175px) * 0.78));margin-inline:auto 0;}
/* Hero: márgenes laterales más cerrados para ganar aire entre texto, foto y sello */
.hero > .wrap{padding-inline:clamp(1.1rem,3vw,1.9rem);}
.hero .stage .photo{aspect-ratio:4/5;width:100%;}
.hero .stage .photo img{object-position:center;}
.hero .hero-badge{position:absolute;right:clamp(10px,2.2vw,22px);top:clamp(10px,2.2vw,22px);bottom:auto;z-index:3;width:clamp(78px,11vw,122px);height:auto;border-radius:50%;background:none;padding:0;border:0;box-shadow:none;filter:drop-shadow(0 3px 8px rgba(32,26,25,.35));}
.hero .hero-badge.left{right:auto;left:clamp(-62px,-5.5vw,-29px);top:clamp(6px,2.4vw,28px);width:clamp(108px,15vw,168px);}
@media(max-width:820px){.hero .hero-badge.left{left:clamp(-12px,-3vw,-2px);top:2px;width:clamp(86px,24vw,130px);}}
/* Título de la Hero de Inicio: variante propia (semánticamente H1, estilo específico) */
.hero h1.home-title{font-size:clamp(2.5rem,1rem + 4.2vw,3.9rem);line-height:0.9;letter-spacing:0.004em;margin-block:0.55rem 0;}
@media (max-width:820px){.hero .grid{grid-template-columns:1fr;} .hero .stage{max-width:360px;margin-inline:auto;} .hero > .wrap{padding-inline:var(--gutter);}}

/* Page hero (interiores) */
.page-hero{background:linear-gradient(180deg,var(--cream),var(--paper) 78%);padding-block:clamp(2.4rem,5vw,4rem) clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line);}
.page-hero.dark{background:var(--navy);border-bottom:0;}
.page-hero.dark .eyebrow{color:#F0B9B6;}
.page-hero.dark h1,.page-hero.dark .lede{color:#fff;}
.page-hero.dark .lede{color:#C9CBDD;}
.page-hero h1{font-size:clamp(2.6rem,1.8rem + 3.4vw,4.6rem);margin-top:0.5rem;line-height:0.92;}
.page-hero .lede{color:var(--ink-soft);font-size:clamp(1.05rem,1rem + 0.4vw,1.24rem);max-width:56ch;margin-top:1rem;}
.breadcrumb{font-size:0.78rem;color:var(--ink-faint);margin-bottom:0.4rem;letter-spacing:0.02em;}
.breadcrumb a{text-decoration:none;color:var(--ink-faint);} .breadcrumb a:hover{color:var(--red);}
.page-hero.dark .breadcrumb,.page-hero.dark .breadcrumb a{color:#9BA0C4;}

/* Trust factor */
.trustfactor{background:var(--navy);color:#fff;}
.trustfactor .tf-head{max-width:52ch;margin-bottom:2rem;}
.trustfactor .tf-head h2{color:#fff;font-size:clamp(1.8rem,1.3rem + 2vw,2.8rem);line-height:0.96;margin-top:0.5rem;}
.trustfactor .tf-row{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;}
.trustfactor .tf-logo{background:#fff;border-radius:var(--r-md);padding:1.2rem 1.4rem;display:grid;place-items:center;}
.trustfactor .tf-logo img{height:56px;width:auto;}
.trustfactor .tf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.trustfactor .tf-stats>div{padding-left:1.2rem;border-left:2px solid var(--red);}
.trustfactor .tf-stats b{font-family:var(--display);font-weight:400;font-size:2.2rem;line-height:0.9;display:block;letter-spacing:0.02em;}
.trustfactor .tf-stats span{font-size:0.82rem;color:#C9CBDD;margin-top:0.35rem;display:block;}
@media (max-width:820px){.trustfactor .tf-row{grid-template-columns:1fr;} .trustfactor .tf-logo{justify-self:start;} .trustfactor .tf-stats{grid-template-columns:1fr 1fr;gap:1.3rem;}}

.sec-head{max-width:60ch;margin-bottom:2.4rem;}
.sec-head.center{margin-inline:auto;}
.sec-head h2{font-size:clamp(2.1rem,1.5rem + 2.6vw,3.4rem);margin-top:0.4rem;line-height:0.95;}
.sec-head p{color:var(--ink-soft);margin-top:0.9rem;font-size:1.07rem;}

/* Ritmo de superficies: alterna primaria (paper) / secundaria (cream).
   Bandas cream deliberadas: intro, stories, place, cred, result, respaldo, becas. */
.intro,.stories,.place{background:var(--surface-2);}
.campus,.start{background:var(--surface-1);}

/* Quiénes somos / intro */
.intro{background:var(--surface-2);}
.intro .grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center;}
.intro .photo{aspect-ratio:1/1;}
.intro h2{font-family:var(--display);font-weight:400;font-size:clamp(2.1rem,1.5rem + 2.6vw,3.4rem);line-height:0.95;}
.intro p{color:var(--ink-soft);margin-top:1rem;max-width:50ch;}
.intro .sign{margin-top:1.3rem;font-family:var(--display);color:var(--red);font-size:1.7rem;letter-spacing:0.02em;}
@media (max-width:760px){.intro .grid{grid-template-columns:1fr;} .intro .photo{max-width:320px;}}

/* Oferta cards */
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.offer-grid.g2{grid-template-columns:repeat(2,1fr);}
.card{--cat:var(--red);position:relative;background:var(--paper);border:1px solid var(--line);border-top:7px solid var(--cat);border-radius:var(--r-md);padding:1.7rem 1.6rem 1.6rem;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,box-shadow .2s;}
.card:hover{border-color:var(--cat);transform:translateY(-3px);box-shadow:0 16px 36px -22px color-mix(in srgb,var(--cat) 60%,transparent);}
.card .cat{align-self:flex-start;font-family:var(--sans);font-size:0.62rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--cat);border-radius:100px;padding:0.42em 0.85em;}
.card h3{font-size:2rem;margin-top:0.9rem;line-height:0.95;min-height:1.9em;}
.card .for{color:var(--ink-soft);font-size:0.94rem;margin-top:0.4rem;min-height:3.2em;}
.card .facts{margin-top:1.2rem;padding-top:1.1rem;border-top:1px solid var(--line);display:grid;gap:0.55rem;}
.card .facts div{display:flex;justify-content:space-between;gap:1rem;font-size:0.86rem;}
.card .facts dt{color:var(--ink-faint);font-size:0.64rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;align-self:center;}
.card .facts dd{margin:0;font-weight:600;color:var(--ink);text-align:right;}
.card .card-foot{margin-top:auto;padding-top:1.4rem;display:flex;flex-direction:column;align-items:flex-start;gap:1rem;}
.card .val{font-family:var(--sans);font-size:0.6rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--cat);border:1px solid color-mix(in srgb,var(--cat) 40%,var(--line));border-radius:100px;padding:0.4em 0.75em;}
.card .btn{align-self:stretch;background:var(--cat);color:#fff;}
.card .btn:hover{filter:brightness(0.92);}
.card .modtags{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.2rem;}
.card .modtags span{font-size:0.64rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--cat);background:color-mix(in srgb,var(--cat) 12%,#fff);border:1px solid color-mix(in srgb,var(--cat) 30%,var(--line));border-radius:100px;padding:0.35em 0.7em;}
.card.g-basico{--cat:var(--c-basico);}
.card.g-lic{--cat:var(--c-lic);}
.card.g-pos{--cat:var(--red);}
.card.buap{--cat:var(--c-buap);background:linear-gradient(180deg,#F4F6FA,var(--paper) 42%);}
.card.buap .buap-badge{position:absolute;top:1.4rem;right:1.4rem;height:40px;width:auto;object-fit:contain;}
@media (max-width:860px){.offer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.offer-grid,.offer-grid.g2{grid-template-columns:1fr;}}

/* Banda BUAP aparte */
.buap-band{background:#F4F6FA;border:1px solid var(--line);border-left:6px solid var(--c-buap);border-radius:var(--r-md);padding:clamp(1.4rem,3vw,2rem);display:grid;grid-template-columns:1fr auto;gap:1.4rem;align-items:center;}
.buap-band .eyebrow{color:var(--c-buap);}
.buap-band h3{font-size:1.7rem;margin-top:0.3rem;color:var(--navy);}
.buap-band p{color:var(--ink-soft);margin-top:0.5rem;max-width:64ch;font-size:0.95rem;}
.buap-band img.logo{height:44px;width:auto;margin-bottom:0.6rem;}
@media (max-width:720px){.buap-band{grid-template-columns:1fr;}}
.arch-note{font-size:0.86rem;color:var(--ink-faint);border-left:2px solid var(--line-strong);padding-left:1rem;margin-top:1.6rem;max-width:80ch;}

/* Credibilidad */
.cred{background:var(--cream);}
.cred .head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.2rem;}
.cred .head-row .tf-logo{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:0.9rem 1.2rem;}
.cred .head-row .tf-logo img{height:48px;width:auto;}
.cred .cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;}
.credcard{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.8rem;overflow:hidden;}
.credcard .num{position:absolute;top:-0.15em;right:0.15em;font-family:var(--display);font-size:6rem;color:var(--red);opacity:0.09;line-height:1;}
.credcard h3{font-size:1.5rem;position:relative;line-height:0.98;}
.credcard p{color:var(--ink-soft);margin-top:0.6rem;font-size:0.96rem;position:relative;}
.credcard .code{font-family:var(--sans);font-size:0.72rem;font-weight:600;color:var(--red);display:inline-block;margin-top:0.7rem;}
@media (max-width:720px){.cred .cards{grid-template-columns:1fr;}}

/* Cómo empezar + Formulario */
.start{background:var(--paper);}
.start .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.8rem,4vw,3.4rem);align-items:center;}
.start .steps{display:grid;gap:1.5rem;margin-top:1.8rem;}
.start .step{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;}
.start .step .n{font-family:var(--display);font-size:2.2rem;color:var(--red);line-height:0.8;width:1.6em;}
.start .step h3{font-size:1.4rem;line-height:0.95;}
.start .step p{color:var(--ink-soft);margin-top:0.3rem;font-size:0.95rem;}
form.lead{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.2rem);display:grid;gap:0.95rem;box-shadow:0 24px 54px -40px rgba(32,26,25,.5);}
form.lead .ftitle{font-family:var(--display);font-size:1.7rem;color:var(--navy);line-height:0.95;}
.field{display:grid;gap:0.35rem;}
.field label{font-size:0.66rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}
.field input,.field select{font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);padding:0.75em 0.9em;transition:border-color .18s;}
.field input:focus,.field select:focus{outline:none;border-color:var(--red);}
.field.err input,.field.err select{border-color:var(--red);}
.field .msg{font-size:0.74rem;color:var(--red);display:none;}
.field.err .msg{display:block;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0.95rem;}
form.lead .btn{margin-top:0.2rem;}
form.lead .fine{font-size:0.74rem;color:var(--ink-faint);text-align:center;}
form.lead .lead-intro{font-size:0.92rem;color:var(--ink-soft);margin-top:-0.3rem;}
.field label .opt{color:var(--ink-faint);font-weight:500;text-transform:none;letter-spacing:0;}
.lead .fgroup{font-size:0.6rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--red);margin-top:0.5rem;padding-top:0.9rem;border-top:1px solid var(--line);}
.lead .fgroup.first,.lead .fgroup:first-of-type{border-top:0;padding-top:0;margin-top:0;}
.field textarea{font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);padding:0.75em 0.9em;resize:vertical;min-height:76px;transition:border-color .18s;}
.field textarea:focus{outline:none;border-color:var(--red);}
.lead-becas{max-width:none;}
@media (max-width:820px){.start .grid{grid-template-columns:1fr;}}

/* Galería campus */
.campus .gal{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:200px 200px;gap:0.9rem;}
.campus .gal .photo:nth-child(1){grid-row:span 2;}
@media (max-width:720px){.campus .gal{grid-template-columns:1fr 1fr;grid-template-rows:auto;} .campus .gal .photo{min-height:170px;} .campus .gal .photo:nth-child(1){grid-column:span 2;grid-row:auto;}}

/* Resultado */
.result{background:var(--cream);}
.result .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.4rem);align-items:center;}
.result .photo{aspect-ratio:5/4;border-radius:var(--r-md);}
.result .big{font-family:var(--display);font-size:clamp(4rem,3rem + 6vw,7rem);font-weight:400;color:var(--red);line-height:0.85;}
.result .big small{font-family:var(--sans);display:block;font-size:0.92rem;font-weight:500;color:var(--ink-soft);margin-top:0.8rem;max-width:32ch;line-height:1.5;}
.result ul{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:1rem;}
.result li{display:grid;grid-template-columns:auto 1fr;gap:0.9rem;}
.result li .mk{color:var(--red);font-weight:700;}
.result li b{color:var(--ink);}
@media (max-width:720px){.result .grid{grid-template-columns:1fr;}}

/* Historias */
.stories .head{display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:end;margin-bottom:2.4rem;}
.stories .tag{font-family:var(--sans);font-size:0.64rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:5px;padding:0.4em 0.7em;display:inline-block;}
.stories .head h2{font-family:var(--display);font-weight:400;font-size:clamp(2.1rem,1.5rem + 2.6vw,3.4rem);line-height:0.92;margin-top:0.9rem;}
.stories .head .desc{color:var(--ink-soft);font-size:1rem;}
.stories .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.story{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--paper);display:flex;flex-direction:column;}
.story .pic{position:relative;aspect-ratio:1/1;background:linear-gradient(150deg,var(--red-tint),var(--cream));overflow:hidden;}
.story .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;}
.story .pic .who{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:linear-gradient(180deg,transparent,rgba(32,26,25,.82));color:#fff;z-index:2;}
.story .pic .who b{font-family:var(--display);font-weight:400;font-size:1.3rem;letter-spacing:0.02em;display:block;line-height:1;}
.story .pic .who span{font-size:0.72rem;opacity:.9;}
.story .body{padding:1.5rem;display:flex;flex-direction:column;flex:1;}
.story .qm{font-family:var(--display);font-size:2.6rem;color:var(--red);line-height:0.5;height:0.6em;}
.story .body p{font-size:1.02rem;color:var(--ink);margin-top:0.5rem;}
.story .foot{margin-top:auto;padding-top:1.1rem;border-top:1px solid var(--line);font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;}
@media (max-width:820px){.stories .head{grid-template-columns:1fr;} .stories .grid{grid-template-columns:1fr;}}
.aval-track .story{flex:0 0 clamp(284px,86vw,360px);scroll-snap-align:start;padding:0;background:var(--paper);}

/* Ubicación */
.place .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;}
.place .card2 h3{font-size:2rem;line-height:0.96;}
.place .card2 p{color:var(--ink-soft);margin-top:0.8rem;}
.place .addr{font-size:0.9rem;color:var(--ink);margin-top:1.2rem;line-height:1.9;}
.place .addr b{color:var(--red);font-weight:700;}
.place .addr a{color:var(--red);font-weight:500;}
.place .map{min-height:340px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);}
.place .map iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(0.15) contrast(1.02);}
@media (max-width:720px){.place .grid{grid-template-columns:1fr;}}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-block:1.25rem;font-family:var(--sans);font-size:1.05rem;font-weight:600;color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .plus{color:var(--red);flex:none;font-size:1.3rem;transition:transform .2s;}
.faq details[open] summary .plus{transform:rotate(45deg);}
.faq .a{padding-bottom:1.35rem;color:var(--ink-soft);max-width:72ch;}

/* CTA final */
.final{background:var(--navy-deep);color:#fff;text-align:center;}
.final h2{font-family:var(--display);font-weight:400;color:#fff;font-size:clamp(2.4rem,1.6rem + 3.4vw,4rem);line-height:0.95;max-width:20ch;margin-inline:auto;}
.final p{color:#C9CBDD;max-width:46ch;margin:1.1rem auto 2rem;}

/* Footer — charcoal cálido del sistema (no café, no azul, no rojo) */
footer.site{background:var(--footer-bg);color:var(--footer-tx);padding-block:3.4rem 2rem;font-size:0.9rem;}
footer .cols{display:grid;grid-template-columns:1.5fr 1.15fr 1.2fr;gap:2.4rem 2.6rem;}
footer .brand-foot{display:flex;align-items:center;gap:0.7rem;}
footer .brand-foot img{height:46px;width:auto;}
footer h4{font-family:var(--sans);font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--footer-label);font-weight:600;margin-bottom:1.1rem;}
footer .word{font-family:var(--display);font-size:1.55rem;color:#FBF8F5;letter-spacing:0.02em;line-height:0.95;}
footer .word small{display:block;font-family:var(--sans);font-size:0.5rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:#CE9591;margin-top:3px;}
footer .tagl{color:var(--footer-tx-soft);margin-top:0.7rem;}
footer address{font-style:normal;line-height:1.9;color:var(--footer-tx);}
footer a{color:var(--footer-tx);text-decoration:none;} footer a:hover{color:#fff;}
/* Oferta académica: lista vertical, legible, con jerarquía */
footer nav.fcol{display:grid;gap:0.05rem;}
footer nav.fcol a{display:block;padding:0.42rem 0;line-height:1.25;color:var(--footer-tx);border-bottom:1px solid rgba(255,255,255,.06);transition:color .16s,padding-left .16s;}
footer nav.fcol a:last-child{border-bottom:0;}
footer nav.fcol a:hover{color:#fff;padding-left:0.3rem;}
/* El enlace previo al separador pierde su línea: así el corte de bloque
   se lee como una sola regla, no como dos líneas pegadas */
footer nav.fcol a:nth-last-child(2){border-bottom:0;}
footer nav.fcol a.fc-sep{margin-top:0.6rem;padding-top:0.85rem;border-top:1px solid rgba(255,255,255,.16);}
footer nav.fcol a .fc-k{display:block;font-family:var(--sans);font-size:0.56rem;font-weight:700;letter-spacing:0.11em;text-transform:uppercase;color:var(--footer-tx-soft);margin-bottom:0.12rem;}
footer .plantel-b{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);font-size:0.82rem;color:var(--footer-tx-soft);}
footer .plantel-b b{color:var(--footer-tx);}
footer .fine{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:0.6rem 1.4rem;justify-content:space-between;font-size:0.78rem;color:var(--footer-tx-soft);}
@media (max-width:720px){footer .cols{grid-template-columns:1fr;gap:2rem;}}

/* FAB WhatsApp */
.fab{position:fixed;right:clamp(1rem,3vw,1.6rem);bottom:clamp(1rem,3vw,1.6rem);z-index:60;display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;padding:0;background:var(--wa);color:#fff;border-radius:50%;text-decoration:none;box-shadow:0 12px 30px -8px rgba(37,211,102,.6);transition:transform .18s,background .18s;}
.fab:hover{transform:translateY(-2px) scale(1.04);background:var(--wa-deep);}
.fab .wa{width:30px;height:30px;fill:#fff;}
.fab span{display:none;}

/* ====== Componentes de páginas interiores ====== */
/* Misión / Visión / Filosofía */
.mvf{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.mvf .box{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r-md);padding:1.8rem 1.6rem;}
.mvf .box h3{font-size:1.7rem;color:var(--navy);}
.mvf .box p{color:var(--ink-soft);margin-top:0.7rem;font-size:0.98rem;}
@media (max-width:820px){.mvf{grid-template-columns:1fr;}}

/* Franja RVOE / sello */
.sello-band{background:var(--blush);border:1px solid var(--line);border-radius:var(--r-md);padding:clamp(1.3rem,3vw,1.8rem);display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:center;}
.sello-band .seal{width:64px;height:64px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;padding:8px;}
.sello-band .seal img{max-height:100%;width:auto;}
.sello-band b{color:var(--navy);font-family:var(--display);font-size:1.4rem;letter-spacing:0.02em;}
.sello-band p{color:var(--ink-soft);margin-top:0.2rem;font-size:0.95rem;}

/* Personas (socios / egresados / organigrama) */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.people.g4{grid-template-columns:repeat(4,1fr);}
.person{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;}
.person .pic{position:relative;aspect-ratio:4/5;background:linear-gradient(150deg,var(--red-tint),var(--cream));overflow:hidden;}
.person .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.person .body{padding:1.2rem 1.3rem 1.4rem;}
.person .body b{font-family:var(--display);font-weight:400;font-size:1.35rem;color:var(--navy);letter-spacing:0.02em;display:block;line-height:1.05;}
.person .body .rol{font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--red);margin-top:0.3rem;}
.person .body p{color:var(--ink-soft);margin-top:0.6rem;font-size:0.92rem;}
@media (max-width:860px){.people.g4{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.people,.people.g4{grid-template-columns:1fr;}}

/* Organigrama */
.org{display:grid;gap:1rem;justify-items:center;}
.org .lvl{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;}
.org .node{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:var(--r-md);padding:1rem 1.4rem;text-align:center;min-width:210px;}
.org .node.top{border-top-color:var(--red);}
.org .node b{font-family:var(--sans);font-weight:700;color:var(--navy);display:block;}
.org .node span{font-size:0.82rem;color:var(--ink-soft);}
.org .stem{width:2px;height:20px;background:var(--line-strong);}

/* Timeline evolución identidad */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.timeline .t{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.4rem;text-align:center;}
.timeline .t .yr{font-family:var(--display);font-size:1.8rem;color:var(--red);letter-spacing:0.02em;}
.timeline .t .logo-box{aspect-ratio:1/1;max-width:120px;margin:0.8rem auto;background:var(--cream);border:1px dashed var(--line-strong);border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-faint);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.1em;padding:0.5rem;text-align:center;}
.timeline .t .logo-box img{max-width:80%;height:auto;}
.timeline .t p{font-size:0.88rem;color:var(--ink-soft);margin-top:0.4rem;}
@media (max-width:820px){.timeline{grid-template-columns:1fr 1fr;}}

/* Programa detalle */
.prog-layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(1.6rem,4vw,3rem);align-items:start;}
.prog-body h2{font-size:clamp(1.9rem,1.4rem + 1.8vw,2.6rem);margin-top:2rem;line-height:0.98;}
.prog-body h2:first-child{margin-top:0;}
.prog-body p{color:var(--ink-soft);margin-top:0.9rem;}
.prog-body ul.plan{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:0.5rem;}
.prog-body ul.plan li{display:grid;grid-template-columns:auto 1fr;gap:0.8rem;padding:0.7rem 0;border-bottom:1px solid var(--line);}
.prog-body ul.plan li .mk{color:var(--red);font-weight:700;}
/* Checklist — componente global (campo laboral, requisitos, titulación…) */
ul.check{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:0.7rem;}
ul.check li{display:grid;grid-template-columns:auto 1fr;gap:0.7rem;align-items:start;}
ul.check li > p,ul.check li > span:not(.mk){margin:0;}
ul.check li .mk{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.45rem;height:1.45rem;margin-top:0.1rem;border-radius:50%;background:var(--red-tint);color:var(--red);font-size:0;font-weight:700;line-height:0;}
ul.check li .mk::before{content:"";width:0.62rem;height:0.34rem;border-left:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:translateY(-0.06rem) rotate(-45deg);}
.prog-side{position:sticky;top:90px;background:var(--paper);border:1px solid var(--line);border-top:7px solid var(--cat,var(--red));border-radius:var(--r-md);padding:1.6rem;display:grid;gap:0.6rem;}
.prog-side .cat{align-self:flex-start;font-size:0.62rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--cat,var(--red));border-radius:100px;padding:0.42em 0.85em;}
.prog-side h3{font-size:1.8rem;margin-top:0.4rem;color:var(--navy);}
.prog-side dl{margin:0.8rem 0 0;display:grid;gap:0.5rem;}
.prog-side dl div{display:flex;justify-content:space-between;gap:1rem;font-size:0.88rem;border-bottom:1px solid var(--line);padding-bottom:0.5rem;}
.prog-side dt{color:var(--ink-faint);font-size:0.64rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;align-self:center;}
.prog-side dd{margin:0;font-weight:600;text-align:right;}
/* La fila previa al bloque de costos cede su línea al separador */
.prog-side dl div:nth-last-child(3):has(+ div.fcost-top){border-bottom:0;padding-bottom:0;}
.prog-side dl div.fcost-top{margin-top:0.55rem;padding-top:0.8rem;border-top:1px solid var(--line-strong);}
.prog-side dl div.fcost dd{color:var(--red);font-weight:700;}
.prog-side .btn{margin-top:0.8rem;}
@media (max-width:860px){.prog-layout{grid-template-columns:1fr;} .prog-side{position:static;}}

/* Cursos */
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.course-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;}
.course-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px -22px rgba(32,26,25,.4);}
.course-card .pic{position:relative;aspect-ratio:16/10;background:linear-gradient(150deg,var(--red-tint),var(--cream));overflow:hidden;}
.course-card .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.course-card .pic .tagc{position:absolute;top:10px;left:10px;font-size:0.6rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#fff;background:var(--red);border-radius:100px;padding:0.35em 0.75em;z-index:2;}
.course-card .body{padding:1.4rem;display:flex;flex-direction:column;flex:1;}
.course-card h3{font-size:1.5rem;color:var(--navy);line-height:1;}
.course-card .meta{font-size:0.78rem;color:var(--ink-faint);margin-top:0.5rem;text-transform:uppercase;letter-spacing:0.06em;}
.course-card p{color:var(--ink-soft);font-size:0.94rem;margin-top:0.7rem;}
.course-card .btn{margin-top:auto;align-self:flex-start;margin-top:1.2rem;}
@media (max-width:860px){.course-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.course-grid{grid-template-columns:1fr;}}

/* Acceso alumnos */
.login-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.2rem);align-items:center;}
.login-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.4rem);display:grid;gap:0.95rem;box-shadow:0 20px 50px -34px rgba(32,26,25,.5);}
.login-card .ftitle{font-family:var(--display);font-size:1.9rem;color:var(--navy);}
.access-links{display:grid;gap:0.9rem;margin-top:0.5rem;}
.access-links a{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.1rem 1.3rem;text-decoration:none;transition:border-color .2s,transform .2s;}
.access-links a:hover{border-color:var(--red);transform:translateX(3px);}
.access-links a b{color:var(--navy);font-family:var(--sans);}
.access-links a span{font-size:0.85rem;color:var(--ink-soft);display:block;margin-top:0.15rem;}
.access-links a .arrow{color:var(--red);font-size:1.4rem;}
@media (max-width:820px){.login-wrap{grid-template-columns:1fr;}}

/* Acceso alumnos — Google Classroom (split editorial) */
.phero .pmedia.cr-mediastage{box-shadow:none;}
.cr-stage{position:relative;aspect-ratio:5/4;display:grid;place-items:center;background:radial-gradient(120% 100% at 62% 40%,#ffffff,var(--cream) 92%);border:1px solid var(--line);border-radius:24px;overflow:hidden;}
.cr-stage::before{content:"";position:absolute;inset:-22%;background:repeating-radial-gradient(circle at 60% 44%,transparent 0 40px,rgba(32,42,94,.05) 40px 41px);}
.cr-stage::after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--red);top:22%;left:20%;opacity:.65;box-shadow:44px 150px 0 -1px rgba(30,142,90,.6), 235px 44px 0 -2px rgba(177,49,48,.4), 205px 205px 0 -3px rgba(32,42,94,.35);}
.cr-card{position:relative;z-index:2;width:min(76%,290px);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 34px 64px -30px rgba(32,26,25,.42);padding:1.1rem 1.15rem 1.3rem;}
.cr-head{display:flex;align-items:center;gap:0.55ch;}
.cr-badge{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#E7F4EC;color:#1E8E5A;flex:none;}
.cr-badge svg{width:18px;height:18px;}
.cr-head b{font-size:0.85rem;color:var(--navy);font-weight:600;}
.cr-dot{margin-left:auto;width:9px;height:9px;border-radius:50%;background:#1E8E5A;box-shadow:0 0 0 3px rgba(30,142,90,.16);flex:none;}
.cr-body{margin-top:1rem;}
.cr-title{font-family:var(--sans);font-weight:700;color:var(--ink);font-size:1rem;}
.cr-line{height:8px;border-radius:100px;background:var(--line);margin-top:0.7rem;}
.cr-line.l1{width:88%;} .cr-line.l2{width:66%;} .cr-line.l3{width:78%;}
.cr-chip{display:inline-block;margin-top:1.05rem;font-size:0.62rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--red);background:var(--red-tint);border-radius:100px;padding:0.4em 0.8em;}
@media(max-width:820px){.cr-stage{aspect-ratio:4/3;max-width:440px;}}

/* Contacto */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3rem);align-items:start;}
.info-list{display:grid;gap:1.3rem;margin-top:1.4rem;}
.info-list .it{display:grid;grid-template-columns:auto 1fr;gap:1rem;}
.info-list .it .ic{width:42px;height:42px;border-radius:10px;background:var(--red-tint);color:var(--red);display:grid;place-items:center;font-weight:700;font-size:0.66rem;letter-spacing:0.02em;text-transform:uppercase;}
.info-list .it b{color:var(--navy);font-family:var(--sans);}
.info-list .it p,.info-list .it a{color:var(--ink-soft);font-size:0.95rem;text-decoration:none;}
.info-list .it a:hover{color:var(--red);}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;}}

/* ====== Program cards image-forward (Oferta) ====== */
.pcard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;align-items:start;}
@media(max-width:900px){.pcard-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.pcard-grid{grid-template-columns:1fr;}}
.pcard{--cat:var(--red);position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .22s,box-shadow .22s,border-color .22s;}
.pcard:hover{transform:translateY(-4px);border-color:var(--cat);box-shadow:0 22px 48px -26px color-mix(in srgb,var(--cat) 55%,transparent);}
.pcard .pic{position:relative;aspect-ratio:16/6;overflow:hidden;background:linear-gradient(150deg,var(--red-tint),var(--cream));}
.pcard .note{font-size:0.72rem;color:var(--ink-faint);margin-top:0.5rem;line-height:1.4;border-left:2px solid var(--line-strong);padding-left:0.7rem;}
.pcard .body{padding:1.05rem 1.2rem 1.15rem;}
.pcard-tags{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin-bottom:0.5rem;}
.pill-cat{font-size:0.55rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--cat);border-radius:100px;padding:0.4em 0.8em;}
.valtag{display:inline-flex;align-items:center;gap:0.4ch;font-size:0.56rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--cat);white-space:nowrap;}
.valtag svg{width:0.95em;height:0.95em;flex:none;}
.pcard h3{font-family:var(--sans);font-weight:700;font-size:1.16rem;color:var(--ink);line-height:1.18;min-height:2.35em;letter-spacing:-0.01em;}
.pcard .desc{color:var(--ink-soft);font-size:0.8rem;line-height:1.42;margin-top:0.35rem;min-height:2.3em;}
.pcard-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px dashed var(--line-strong);border-bottom:1px dashed var(--line-strong);padding-block:0.8rem;margin-top:0.85rem;}
.pcard-meta .mcol{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.24rem;padding:0 0.3rem;position:relative;}
.pcard-meta .mcol + .mcol::before{content:"";position:absolute;left:0;top:8%;height:84%;width:1px;background:var(--line);}
.pcard-meta .mi{color:var(--cat);line-height:0;} .pcard-meta .mi svg{width:1.05em;height:1.05em;}
.pcard-meta .ml{font-size:0.5rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-faint);}
.pcard-meta .mv{font-size:0.77rem;font-weight:600;color:var(--ink);line-height:1.05;}
.pcard .reassure2{font-size:0.68rem;color:var(--ink-soft);font-weight:600;max-width:15ch;line-height:1.2;}
.pcard .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.pcard:hover .pic img{transform:scale(1.045);}
.pcard .pill{position:absolute;top:12px;left:12px;z-index:2;font-family:var(--sans);font-size:0.6rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--cat);border-radius:100px;padding:0.45em 0.9em;box-shadow:0 4px 12px -4px rgba(0,0,0,.35);}
.pcard .buap-badge2{position:absolute;top:12px;right:12px;z-index:2;height:34px;width:auto;background:#fff;border-radius:8px;padding:4px;box-shadow:0 4px 12px -4px rgba(0,0,0,.25);}
/* El logo BUAP se superpone a la fotografía de la card (no la sustituye) */
.pcard .pic .buap-badge2{position:absolute;inset:auto;top:16px;left:16px;right:auto;z-index:2;width:auto;height:75px;max-width:52%;object-fit:contain;background:none;border:0;border-radius:0;padding:0;box-shadow:none;filter:drop-shadow(0 2px 7px rgba(255,255,255,.7));}
.pcard:hover .pic .buap-badge2{transform:none;}
.pcard .body{padding:1.05rem 1.2rem 1.15rem;display:flex;flex-direction:column;flex:1;}
.pcard h3{font-family:var(--sans);font-weight:700;font-size:1.16rem;color:var(--ink);line-height:1.18;letter-spacing:-0.01em;}
.pcard .desc{color:var(--ink-soft);font-size:0.8rem;margin-top:0.35rem;line-height:1.42;}
.pcard .modtags{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.9rem;}
.pcard .modtags span{font-size:0.62rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--cat);background:color-mix(in srgb,var(--cat) 12%,#fff);border:1px solid color-mix(in srgb,var(--cat) 28%,var(--line));border-radius:100px;padding:0.32em 0.7em;}
.pcard .pfoot{margin-top:0.85rem;padding-top:0;border-top:0;display:flex;align-items:center;justify-content:space-between;gap:0.8rem;}
.pcard .pmeta{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-faint);font-weight:600;line-height:1.3;}
.pbtn{display:inline-flex;align-items:center;gap:0.5ch;font-family:var(--sans);font-weight:600;font-size:0.8rem;color:#fff;background:var(--cat,var(--red));border-radius:100px;padding:0.55em 1em;text-decoration:none;border:1.5px solid var(--cat,var(--red));transition:filter .18s,transform .18s;white-space:nowrap;cursor:pointer;}
.pbtn:hover{filter:brightness(0.93);transform:translateY(-1px);}
.pbtn.ghost{background:transparent;color:var(--cat,var(--red));}
.pbtn.ghost:hover{background:color-mix(in srgb,var(--cat) 10%,#fff);filter:none;}
.pcard.g-basico{--cat:var(--c-basico);}
.pcard.g-lic{--cat:var(--c-lic);}
.pcard.g-pos{--cat:var(--red);}
.pcard.buap{--cat:var(--c-buap);}
.pcard.cont{--cat:var(--navy);}

/* ====== Cursos: barra de búsqueda + filtros ====== */
.course-toolbar{display:flex;align-items:center;gap:0.9rem 1.1rem;flex-wrap:wrap;margin-bottom:2.2rem;}
.course-search{position:relative;flex:1 1 240px;max-width:360px;}
.course-search input{width:100%;font-family:var(--sans);font-size:0.95rem;color:var(--ink);border:1.5px solid var(--line-strong);border-radius:100px;padding:0.72em 2.6em 0.72em 1.15em;background:var(--paper);}
.course-search input:focus{outline:none;border-color:var(--red);}
.course-search .si{position:absolute;right:1.05em;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none;font-size:0.95rem;}
.course-sep{width:1px;height:26px;background:var(--line-strong);}
.course-cats{display:flex;gap:0.5rem;flex-wrap:wrap;}
.course-cats button{font-family:var(--sans);font-size:0.82rem;font-weight:600;color:var(--ink-soft);background:#fff;border:1.5px solid var(--line);border-radius:100px;padding:0.55em 1.05em;cursor:pointer;transition:background .18s,border-color .18s,color .18s;}
.course-cats button:hover{border-color:var(--red);color:var(--red);}
.course-cats button.active{background:var(--red);border-color:var(--red);color:#fff;}
.course-empty{display:none;text-align:center;color:var(--ink-faint);padding:2.5rem 1rem;border:1px dashed var(--line-strong);border-radius:var(--r-md);}
.course-empty.show{display:block;}
.course-card.hide{display:none;}
.course-card .body{padding:1.4rem;display:flex;flex-direction:column;flex:1;}
.course-card .cmeta{font-size:0.8rem;color:var(--ink-faint);margin-top:0.7rem;}
.course-card .cmeta b{color:var(--ink);font-weight:600;}
.course-card .cfoot{margin-top:auto;padding-top:1.2rem;display:flex;align-items:center;justify-content:space-between;gap:0.8rem;}
.course-card .cdur{display:inline-flex;align-items:center;gap:0.45ch;font-weight:700;font-size:0.82rem;color:var(--red);white-space:nowrap;}
.course-card .cdur svg{width:1.05em;height:1.05em;}
/* ===== Cursos: subsección complementaria (esencia airy/rounded) ===== */
/* Panel de categorías populares — contenedor limpio sobre fondo cream */
.cursos-jump{background:var(--surface-2);}
.cat-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.4rem);box-shadow:0 40px 90px -60px rgba(32,26,25,.55);}
.cat-panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;flex-wrap:wrap;margin-bottom:1.8rem;}
.cat-panel-head > div{flex:1 1 300px;}
.cat-panel-head h2{font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem);margin-top:0.35rem;line-height:0.98;max-width:16ch;}
.cat-panel-note{color:var(--ink-soft);font-size:0.95rem;max-width:32ch;flex:0 1 auto;text-align:right;}
@media(max-width:640px){.cat-panel-note{text-align:left;}}
.cat-pop{display:flex;flex-wrap:wrap;justify-content:center;gap:0.9rem;}
.cattile{--c:var(--cc-idiomas);flex:1 1 190px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.6rem;padding:1.5rem 1.2rem;border-radius:var(--r-md);border:1px solid var(--line);background:var(--paper);text-decoration:none;color:inherit;cursor:pointer;transition:box-shadow .2s,border-color .2s;}
.cattile:hover{border-color:color-mix(in srgb,var(--c) 45%,var(--line));box-shadow:0 18px 40px -26px color-mix(in srgb,var(--c) 55%,transparent);}
.cattile .cic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff);transition:background .2s,color .2s;}
.cattile:hover .cic{background:var(--c);color:#fff;}
.cattile .cic svg{width:27px;height:27px;}
.cattile b{font-family:var(--sans);font-weight:700;font-size:1.02rem;color:var(--ink);letter-spacing:-0.01em;line-height:1.15;}
.cattile .cn{font-size:0.8rem;color:var(--ink-faint);font-weight:500;}
@media(max-width:560px){.cat-pop{gap:0.7rem;}.cattile{flex:1 1 calc(50% - 0.7rem);min-width:0;padding:1.3rem 0.85rem;}}
.cattile[data-filter="idiomas"]{--c:var(--cc-idiomas);}
.cattile[data-filter="tecnologia"]{--c:var(--cc-tecnologia);}
.cattile[data-filter="salud"]{--c:var(--cc-salud);}
.cattile[data-filter="belleza"]{--c:var(--cc-belleza);}
.cattile[data-filter="gastronomia"]{--c:var(--cc-gastronomia);}
/* Banda oscura de valor (esencia del stats band, sin métricas inventadas) */
.cursos-band{background:var(--navy);color:#fff;}
.cursos-band .cb-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;}
.cursos-band .cb{display:flex;flex-direction:column;gap:0.35rem;}
.cursos-band .cb .cb-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);margin-bottom:0.55rem;}
.cursos-band .cb .cb-ic svg{width:24px;height:24px;}
.cursos-band .cb b{font-family:var(--sans);font-weight:700;font-size:1.02rem;letter-spacing:-0.01em;}
.cursos-band .cb span{font-size:0.85rem;color:#C9CBDD;}
@media(max-width:820px){.cursos-band .cb-row{grid-template-columns:1fr 1fr;gap:1.5rem;}}
@media(max-width:460px){.cursos-band .cb-row{grid-template-columns:1fr;}}
/* Hero editorial de Cursos (referencia: foto enmarcada + acentos rojos) */
.chero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--cream),var(--paper) 82%);border-bottom:1px solid var(--line);min-height:calc(100svh - 66px);display:grid;align-content:center;padding-block:clamp(2.4rem,5vw,4.2rem);}
@media(max-width:820px){.chero{min-height:auto;}}
.chero-grid{display:grid;grid-template-columns:1.02fr 0.98fr;gap:clamp(1.8rem,5vw,4rem);align-items:center;}
.chero-text .breadcrumb{font-size:0.78rem;color:var(--ink-faint);margin-bottom:0.5rem;letter-spacing:0.02em;}
.chero-text .breadcrumb a{text-decoration:none;color:var(--ink-faint);}
.chero-text .breadcrumb a:hover{color:var(--red);}
.chero-text .eyebrow{display:inline-block;margin-bottom:0.5rem;}
.chero-text h1{font-family:var(--display);font-weight:400;font-size:clamp(2.48rem,1.8rem + 3.3vw,4.48rem);line-height:0.92;letter-spacing:0.004em;margin-top:0.3rem;text-wrap:balance;}
.chero-text h1 .hl{color:var(--red);}
.chero-text .lede{color:var(--ink-soft);font-size:clamp(1.05rem,1rem + 0.4vw,1.24rem);max-width:46ch;margin-top:1rem;}
.chero-text .pactions{display:flex;flex-wrap:wrap;gap:0.7rem;margin-top:1.6rem;}
.chero-media{position:relative;justify-self:center;width:100%;max-width:430px;}
.chero-media::before{content:"";position:absolute;z-index:1;left:34px;right:-18px;top:24px;bottom:-18px;border:2px solid var(--red);border-radius:8px;}
.chero-frame{position:relative;z-index:2;aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:var(--red-tint);box-shadow:0 34px 70px -42px rgba(32,26,25,.6);}
.chero-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.chero-deco{position:absolute;z-index:3;pointer-events:none;}
.chero-deco.d1{top:-16px;left:-16px;width:76px;height:64px;background:radial-gradient(var(--red) 1.6px,transparent 1.8px);background-size:14px 14px;opacity:.45;}
.chero-deco.d2{right:-12px;bottom:30px;width:32px;height:32px;border:3px solid var(--red);border-radius:50%;opacity:.6;}
@media(max-width:820px){.chero-grid{grid-template-columns:1fr;}.chero-media{max-width:360px;order:-1;margin:0 auto 0.6rem;}}
/* Catálogo: superficie primaria; el color lo aportan las categorías */
.cursos-area{background:var(--surface-1);}
.course-card{--ccat:var(--red);box-shadow:0 12px 28px -22px rgba(32,26,25,.5);}
.course-card[data-cat="idiomas"]{--ccat:var(--cc-idiomas);}
.course-card[data-cat="tecnologia"]{--ccat:var(--cc-tecnologia);}
.course-card[data-cat="salud"]{--ccat:var(--cc-salud);}
.course-card[data-cat="belleza"]{--ccat:var(--cc-belleza);}
.course-card[data-cat="gastronomia"]{--ccat:var(--cc-gastronomia);}
.course-card:hover{border-color:color-mix(in srgb,var(--ccat) 45%,var(--line));box-shadow:0 22px 44px -26px color-mix(in srgb,var(--ccat) 60%,transparent);}
.course-card .pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,color-mix(in srgb,var(--ccat) 62%,transparent));mix-blend-mode:multiply;pointer-events:none;}
.course-card .pic .tagc{background:var(--ccat);}
.course-card .cdur{color:var(--ccat);}
.course-card .pbtn.ghost{color:var(--ccat);border-color:color-mix(in srgb,var(--ccat) 40%,var(--line));}
.course-card .pbtn.ghost:hover{background:color-mix(in srgb,var(--ccat) 10%,#fff);filter:none;}
.course-card h3{color:var(--ink);}
.course-cats button.active{background:var(--navy);border-color:var(--navy);}
.course-card .pic img{transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.course-card:hover .pic img{transform:scale(1.05);}

/* ====== Trust factor simplificado (centrado, sin logo) ====== */
/* Respaldo institucional — rojo (color principal) */
.trustfactor.simple{background:linear-gradient(155deg,#B63A33,var(--red-deep) 94%);text-align:center;}
.trustfactor.simple .eyebrow.on-dark{color:#FBD9D2;}
.trustfactor.simple .tf-stats span{color:#FBE7E3;}
.trustfactor.simple .tf-stats.center > div + div::before{background:rgba(255,255,255,.22);}
.trustfactor.simple .tf-head{max-width:none;margin-inline:auto;margin-bottom:2.2rem;}
.tf-stats.center{grid-template-columns:repeat(3,1fr);max-width:840px;margin-inline:auto;}
.tf-stats.center > div{border-left:0;padding-left:0;position:relative;text-align:center;padding-inline:1.2rem;}
.tf-stats.center > div + div::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;background:rgba(255,255,255,.16);}
.tf-stats.center b{font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem);}
@media(max-width:720px){.tf-stats.center{grid-template-columns:1fr;gap:1.4rem;}.tf-stats.center > div + div::before{display:none;}.tf-stats.center > div{padding-block:1.1rem 0;border-top:1px solid rgba(255,255,255,.14);}}

/* ====== Hero editorial reutilizable (páginas internas) ====== */
.phero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--cream),var(--paper) 80%);border-bottom:1px solid var(--line);padding-block:clamp(2.4rem,5vw,4.2rem);min-height:calc(100svh - 66px);display:grid;align-content:center;}
@media(max-width:820px){.phero{min-height:auto;}}
.phero.dark{background:var(--navy);border-bottom:0;}
.phero.navy-deep,.phero.tone-navy{background:linear-gradient(160deg,var(--navy),var(--navy-deep));border-bottom:0;}
/* Tono de categoría — rojo (posgrado, conócenos, marca principal) */
.phero.tone-red{background:linear-gradient(155deg,#B63A33,var(--red-deep) 94%);border-bottom:0;}
.phero.tone-red::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 88% 12%,rgba(255,255,255,.10),transparent 60%);pointer-events:none;}
.phero.tone-navy .breadcrumb,.phero.tone-navy .breadcrumb a,.phero.tone-red .breadcrumb,.phero.tone-red .breadcrumb a{color:rgba(255,255,255,.62);}
.phero.tone-navy .eyebrow{color:#F0B9B6;}
.phero.tone-red .eyebrow{color:#FBD9D2;}
.phero.tone-navy h1,.phero.tone-red h1{color:#fff;}
.phero.tone-navy .lede{color:#C9CBDD;}
.phero.tone-red .lede{color:#FBE7E3;}
.phero.tone-red .pg,.phero.tone-navy .pg{position:relative;z-index:1;}
/* Tono de categoría — sistema abierto (claro con acento oro) */
.phero.tone-basico{background:linear-gradient(180deg,#F6EFE2,var(--paper) 82%);}
.phero.tone-basico .eyebrow{color:var(--c-basico);}
.phero .pg{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center;}
.phero.text-only .pg{grid-template-columns:1fr;}
.phero .breadcrumb{margin-bottom:0.5rem;}
.phero.dark .breadcrumb,.phero.dark .breadcrumb a,.phero.navy-deep .breadcrumb,.phero.navy-deep .breadcrumb a{color:#9BA0C4;}
.phero .eyebrow.mixed{color:var(--red);}
.phero.dark .eyebrow,.phero.navy-deep .eyebrow{color:#F0B9B6;}
.phero h1{font-size:clamp(2.18rem,1.5rem + 2.75vw,3.88rem);margin-top:0.5rem;line-height:0.92;}
.phero.dark h1,.phero.navy-deep h1{color:#fff;}
.phero .lede{color:var(--ink-soft);font-size:clamp(1.05rem,1rem + 0.4vw,1.24rem);max-width:52ch;margin-top:1rem;}
.phero.dark .lede,.phero.navy-deep .lede{color:#C9CBDD;}
.phero .pactions{display:flex;flex-wrap:wrap;gap:0.7rem;margin-top:1.6rem;}
.phero .pmedia{position:relative;}
.phero .pmedia .shot{position:relative;aspect-ratio:5/4;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -40px rgba(32,26,25,.6);}
.phero .pmedia .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%;}
.phero .pmedia .seal-float{position:absolute;right:-14px;bottom:-14px;width:clamp(84px,10vw,120px);height:auto;background:#fff;border-radius:50%;padding:7px;box-shadow:0 12px 30px -10px rgba(32,26,25,.5);border:1px solid var(--line);}
.phero .pmedia .chip-float{position:absolute;left:14px;bottom:14px;z-index:2;background:rgba(251,248,245,.94);border-radius:12px;padding:0.7rem 0.95rem;box-shadow:0 10px 26px -12px rgba(0,0,0,.4);max-width:230px;}
.phero .pmedia .chip-float .k{font-size:0.62rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--red);}
.phero .pmedia .chip-float .v{font-family:var(--display);font-size:1.15rem;color:var(--navy);line-height:1;margin-top:0.2rem;}
/* Panel de sello (para páginas sin foto ideal, ej. Alumnos) */
.phero .pseal{display:grid;place-items:center;aspect-ratio:5/4;border-radius:var(--r-lg);background:radial-gradient(120% 120% at 30% 20%,rgba(255,255,255,.08),transparent),var(--navy-deep);border:1px solid rgba(255,255,255,.08);}
.phero .pseal img{width:clamp(150px,26vw,220px);height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.4));}
@media(max-width:820px){.phero .pg{grid-template-columns:1fr;}.phero .pmedia{max-width:460px;order:-1;margin-bottom:0.6rem;}.phero.text-only .pmedia{order:0;}}

/* ====== Plan de estudios por cuatrimestre ====== */
/* Plan de estudios — tablero tipo board */
.curric{display:flex;gap:1rem;overflow-x:auto;padding:0.2rem 0.2rem 0.7rem;scroll-snap-type:x proximity;scrollbar-color:var(--line-strong) transparent;}
.curric::-webkit-scrollbar{height:8px;}
.curric::-webkit-scrollbar-track{background:transparent;}
.curric::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:100px;}
.cuatri{--cat:var(--navy);flex:0 0 clamp(215px,80vw,248px);background:#F4F3F1;border:1px solid var(--line);border-radius:14px;padding:0.7rem 0.7rem 0.85rem;display:flex;flex-direction:column;gap:0.55rem;scroll-snap-align:start;}
.cuatri-head{display:flex;align-items:center;gap:0.55ch;padding:0.3rem 0.45rem;}
.cuatri-head .dot{width:9px;height:9px;border-radius:50%;background:var(--cat);flex:none;}
.cuatri-head b{font-family:var(--sans);font-weight:600;color:var(--navy);font-size:0.9rem;letter-spacing:-0.01em;}
.cuatri-head .cnt{margin-left:auto;font-size:0.7rem;font-weight:600;color:var(--ink-faint);background:#fff;border:1px solid var(--line);border-radius:100px;padding:0.06em 0.55em;font-variant-numeric:tabular-nums;}
.mcards{display:flex;flex-direction:column;gap:0.5rem;}
.materia{background:#fff;border:1px solid var(--line);border-radius:9px;padding:0.65rem 0.75rem;font-size:0.82rem;line-height:1.32;color:var(--ink);box-shadow:0 4px 10px -9px rgba(32,26,25,.5);transition:transform .15s,box-shadow .15s,border-color .15s;}
.materia:hover{transform:translateY(-1px);box-shadow:0 9px 18px -11px rgba(32,26,25,.45);border-color:color-mix(in srgb,var(--cat) 32%,var(--line));}
.curric.pos .cuatri{--cat:var(--red);}
.curric.adm .cuatri{--cat:var(--navy);}
.curric-note{font-size:0.84rem;color:var(--ink-faint);margin-top:1.2rem;}
/* Plan de estudios: contenedor con fade lateral que indica que hay más */
.curric-wrap{position:relative;}
.curric-wrap::before,.curric-wrap::after{content:"";position:absolute;top:0;bottom:14px;width:44px;z-index:2;pointer-events:none;opacity:1;transition:opacity .25s;}
.curric-wrap::before{left:0;background:linear-gradient(90deg,var(--cream),transparent);}
.curric-wrap::after{right:0;background:linear-gradient(270deg,var(--cream),transparent);}
.curric-wrap.at-start::before{opacity:0;}
.curric-wrap.at-end::after{opacity:0;}
.curric-nav button:disabled{opacity:.32;cursor:default;border-color:var(--line);color:var(--ink-faint);}
.curric-nav button:disabled:hover{border-color:var(--line);color:var(--ink-faint);background:#fff;}
/* Becas — formulario ancho con título arriba */
.becas{background:var(--cream);}
.becas-head{max-width:62ch;margin-bottom:1.6rem;}
.becas-head h2{font-size:clamp(2.1rem,1.5rem + 2.6vw,3.4rem);color:var(--navy);line-height:0.95;margin-top:0.4rem;}
.becas-head p{color:var(--ink-soft);margin-top:0.8rem;max-width:62ch;}
.becas-wide{display:grid;grid-template-columns:repeat(4,1fr);gap:0.85rem 1rem;align-items:start;}
.becas-wide .full,.becas-wide .fgroup,.becas-wide .fine{grid-column:1 / -1;}
.becas-wide .span2{grid-column:span 2;}
.becas-wide button{justify-self:start;}
.becas-wide .fine{text-align:left;}
@media(max-width:900px){.becas-wide{grid-template-columns:repeat(2,1fr);}.becas-wide .span2{grid-column:1 / -1;}}
@media(max-width:560px){.becas-wide{grid-template-columns:1fr;}.becas-wide .field,.becas-wide .span2{grid-column:1 / -1;}}
/* Switch "responsable de un menor" */
.switch{display:inline-flex;align-items:center;gap:0.7ch;cursor:pointer;font-size:0.92rem;color:var(--ink);font-weight:500;user-select:none;}
.switch input{position:absolute;opacity:0;width:1px;height:1px;}
.switch .track{width:42px;height:24px;border-radius:100px;background:var(--line-strong);position:relative;transition:background .2s;flex:none;}
.switch .track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.switch input:checked + .track{background:var(--red);}
.switch input:checked + .track::after{transform:translateX(18px);}
.switch input:focus-visible + .track{outline:2.5px solid var(--red);outline-offset:2px;}
.menor-extra[hidden]{display:none;}
/* Teléfono con código +52 */
.tel-mx{display:flex;align-items:stretch;}
.tel-mx .cc{display:inline-flex;align-items:center;padding:0 0.75em;border:1.5px solid var(--line-strong);border-right:0;border-radius:var(--r-sm) 0 0 var(--r-sm);background:var(--cream);font-weight:600;color:var(--ink-soft);font-size:0.92rem;white-space:nowrap;}
.tel-mx input{border-radius:0 var(--r-sm) var(--r-sm) 0;flex:1;min-width:0;}
.field.err .tel-mx .cc{border-color:var(--red);}
.hp{position:absolute !important;left:-9999px !important;top:auto;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none;}

/* Requisitos y titulación */
.reqs-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.2rem);align-items:start;}
.reqs-col h3{font-family:var(--display);font-weight:400;font-size:1.7rem;color:var(--navy);letter-spacing:0.01em;margin-bottom:1rem;}
.reqs-col .check{margin:0;}
.reqs-col .reqs-p{color:var(--ink-soft);max-width:52ch;}
@media(max-width:760px){.reqs-grid{grid-template-columns:1fr;gap:2rem;}}

/* ====== Evidencia RVOE (respaldo oficial) ====== */
.rvoe-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
.rvoe-item{position:relative;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--red);border-radius:var(--r-md);padding:1.3rem 1.4rem;display:grid;gap:0.25rem;}
.rvoe-item .prog{font-family:var(--display);font-size:1.35rem;color:var(--navy);letter-spacing:0.01em;line-height:1;}
.rvoe-item .k{font-size:0.62rem;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint);margin-top:0.5rem;}
.rvoe-item .code{font-family:var(--sans);font-weight:600;color:var(--ink);font-size:0.98rem;letter-spacing:0.01em;}
.rvoe-item .date{font-size:0.8rem;color:var(--ink-soft);}
.rvoe-item .seal-mini{position:absolute;top:1rem;right:1rem;width:40px;height:40px;opacity:.9;}
@media(max-width:640px){.rvoe-grid{grid-template-columns:1fr;}}
.rvoe-badge{display:inline-flex;align-items:center;gap:0.6ch;background:var(--blush);border:1px solid var(--line);border-radius:100px;padding:0.5em 0.95em;font-size:0.8rem;color:var(--ink);}
.rvoe-badge b{color:var(--red);font-weight:700;}
.rvoe-badge img{width:24px;height:24px;}

/* ====== FASE 2 ====== */
/* Respaldo oficial — estilo editorial de tarjetas con icono */
.respaldo{background:var(--blush);}
.respaldo .lead-line{max-width:64ch;color:var(--ink-soft);margin-top:0.8rem;font-size:1.05rem;line-height:1.55;}
.respaldo .lead-line b{color:var(--ink);}
.pill-eyebrow{display:inline-block;font-family:var(--sans);font-size:0.64rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--red);background:#fff;border:1px solid var(--line-strong);border-radius:100px;padding:0.5em 1.05em;}
.aval-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:1.7rem;flex-wrap:wrap;}
.aval-nav{display:flex;gap:0.5rem;flex:none;}
.aval-nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:#fff;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:border-color .18s,color .18s,background .18s;}
.aval-nav button:hover{border-color:var(--red);color:var(--red);}
.aval-nav button svg{width:20px;height:20px;}
.aval-carousel{position:relative;--fade:var(--surface-2);}
/* Difuminado solo en el extremo de salida: el de entrada queda limpio.
   right:-0.2rem compensa el margen negativo de .aval-track para que el
   degradado cubra por completo el borde de la card (sin línea visible). */
.aval-carousel::after{content:"";position:absolute;top:0;bottom:0;right:-0.2rem;width:clamp(40px,7vw,64px);z-index:2;pointer-events:none;background:linear-gradient(270deg,var(--fade) 0,var(--fade) 38%,transparent 100%);}
.respaldo .aval-carousel{--fade:var(--blush);}
.aval-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:0.4rem 0.2rem 0.6rem;margin:-0.4rem -0.2rem 0;}
.aval-track::-webkit-scrollbar{display:none;}
.aval-card{flex:0 0 clamp(284px,86vw,360px);scroll-snap-align:start;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.3rem 1.45rem 1.3rem;box-shadow:0 14px 34px -28px rgba(32,26,25,.4);transition:transform .2s,box-shadow .2s;}
.aval-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px -30px rgba(32,26,25,.5);}
.aval-card .ic{display:block;width:32px;height:32px;color:var(--red);}
.aval-card .ic svg{width:100%;height:100%;}
.aval-card h3{font-family:var(--sans);font-weight:700;font-size:1.06rem;color:var(--navy);margin-top:0.85rem;line-height:1.22;letter-spacing:0;min-height:2.5em;display:flex;align-items:flex-end;}
.aval-card p{font-size:0.85rem;color:var(--ink-soft);margin-top:0.45rem;margin-bottom:0.9rem;line-height:1.5;}
.aval-card .code{display:block;margin-top:auto;padding-top:0.9rem;border-top:1px dashed var(--line);font-size:0.7rem;font-weight:700;color:var(--red);letter-spacing:0.01em;word-break:break-word;}
/* Teléfono: el deslizamiento siempre queda alineado a la card y sin difuminado */
@media (max-width:720px){
  .aval-track{scroll-snap-type:x mandatory;}
  .aval-carousel::after{display:none;}
}
/* Teléfono: una sola card visible, sin la franja delgada de la siguiente */
@media (max-width:540px){
  .aval-card,.aval-track .story{flex-basis:100%;}
}

/* Navegador vertical de otros programas (páginas de programa) */
.prog-nav{display:grid;gap:0.85rem;}
.prog-nav a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.95rem 1.2rem;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--cat,var(--red));border-radius:12px;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;}
.prog-nav a:hover{transform:translateX(4px);box-shadow:0 12px 26px -20px rgba(32,26,25,.6);}
.prog-nav a.current{background:var(--cream);}
.prog-nav a .pn-t{display:flex;flex-direction:column;}
.prog-nav a .pn-t .lvl{font-size:0.6rem;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint);}
.prog-nav a .pn-t b{font-family:var(--sans);font-weight:600;color:var(--navy);font-size:1.02rem;line-height:1.1;margin-top:0.15rem;}
.prog-nav a .pn-ar{color:var(--cat,var(--red));font-size:1.2rem;flex:none;}
.prog-nav a.g-basico{--cat:var(--c-basico);} .prog-nav a.g-lic{--cat:var(--c-lic);} .prog-nav a.g-pos{--cat:var(--red);} .prog-nav a.cont{--cat:var(--navy);}

/* Composición editorial (multi-imagen, sin bloques blancos) */
.editorial{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(1.8rem,4vw,3.6rem);align-items:center;}
.editorial.rev{grid-template-columns:0.95fr 1.05fr;}
.ed-media{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:0.9rem;}
.ed-media .im{overflow:hidden;border-radius:var(--r-md);position:relative;}
.ed-media .im img{width:100%;height:100%;object-fit:cover;display:block;}
.ed-media .im.tall{grid-row:span 2;aspect-ratio:3/4;}
.ed-media .im.wide{aspect-ratio:4/3;}
.ed-media .im.mini{aspect-ratio:4/3;}
.ed-media.stack3{grid-template-columns:1.3fr 1fr;}
.ed-text .eyebrow{margin-bottom:0.4rem;display:inline-block;}
.ed-text h2{font-family:var(--display);font-weight:400;font-size:clamp(2.1rem,1.5rem + 2.6vw,3.4rem);line-height:0.95;}
.ed-text p{color:var(--ink-soft);margin-top:1rem;max-width:52ch;}
.ed-text .sign{margin-top:1.3rem;font-family:var(--display);color:var(--red);font-size:1.7rem;letter-spacing:0.02em;}
@media(max-width:820px){.editorial,.editorial.rev{grid-template-columns:1fr;}.ed-media{max-width:520px;}}

/* Hero editorial media apilado (sin outline pesado) */
.phero .pmedia.editorial-media{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:0.9rem;}
.phero .pmedia.editorial-media .im{overflow:hidden;border-radius:var(--r-md);position:relative;box-shadow:0 24px 50px -38px rgba(32,26,25,.6);}
.phero .pmedia.editorial-media .im img{width:100%;height:100%;object-fit:cover;display:block;}
.phero .pmedia.editorial-media .im.tall{grid-row:span 2;aspect-ratio:3/4;}
.phero .pmedia.editorial-media .im.small{aspect-ratio:1/1;}
.phero .pmedia.editorial-media .seal-corner{position:absolute;right:8px;top:8px;width:64px;height:auto;filter:drop-shadow(0 3px 8px rgba(0,0,0,.4));}

/* MVF menos genérico (editorial, sin caja pesada) */
.mvf.editorial-mvf{grid-template-columns:repeat(3,1fr);gap:0;}
.mvf.editorial-mvf .box{background:transparent;border:0;border-top:0;border-left:1px solid var(--line-strong);border-radius:0;padding:0.4rem 1.6rem 0.4rem 1.6rem;}
.mvf.editorial-mvf .box:first-child{border-left:0;padding-left:0;}
.mvf.editorial-mvf .box .ix{font-family:var(--display);font-size:2.4rem;color:var(--red);line-height:0.8;opacity:0.9;}
.mvf.editorial-mvf .box h3{font-size:1.5rem;color:var(--navy);margin-top:0.5rem;}
.mvf.editorial-mvf .box p{color:var(--ink-soft);margin-top:0.6rem;font-size:0.96rem;}
@media(max-width:820px){.mvf.editorial-mvf{grid-template-columns:1fr;}.mvf.editorial-mvf .box{border-left:0;border-top:1px solid var(--line-strong);padding:1.4rem 0 0.2rem;}.mvf.editorial-mvf .box:first-child{border-top:0;padding-top:0.4rem;}}

/* Planteles + edificio (Contacto) */
.planteles{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.plantel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;}
.plantel .pic{aspect-ratio:16/9;overflow:hidden;}
.plantel .pic img{width:100%;height:100%;object-fit:cover;display:block;}
.plantel .pbody{padding:1.3rem 1.4rem 1.5rem;}
.plantel .pbody .k{font-size:0.6rem;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--red);}
.plantel .pbody h3{font-size:1.5rem;color:var(--navy);margin-top:0.3rem;line-height:1;}
.plantel .pbody p{color:var(--ink-soft);margin-top:0.6rem;font-size:0.92rem;line-height:1.7;}
.plantel .pbody a{color:var(--red);text-decoration:none;}
.contact-map-sm{min-height:300px;height:100%;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);}
.contact-map-sm iframe{width:100%;height:100%;min-height:300px;border:0;filter:grayscale(0.15) contrast(1.02);}
@media(max-width:820px){.planteles{grid-template-columns:1fr;}}
/* Un solo plantel: tarjeta ancha (imagen | texto en desktop, apilada en mobile) */
/* Un solo plantel con foto VERTICAL del edificio: adaptar el espacio, no recortar */
.planteles.one{grid-template-columns:1fr;}
.planteles.one .plantel .pic{aspect-ratio:3/4;}
.planteles.one .plantel .pic img{object-position:center;}
@media(min-width:821px){
  .planteles.one .plantel{display:grid;grid-template-columns:0.82fr 1.18fr;align-items:center;}
  .planteles.one .plantel .pic{aspect-ratio:3/4;max-height:500px;}
  .planteles.one .plantel .pbody{display:flex;flex-direction:column;justify-content:center;padding:1.6rem 1.9rem;}
}

.reveal-safe [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);}
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);}
[data-reveal].in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none;}}
.placeholder{box-shadow:inset 0 -0.35em 0 rgba(177,49,48,.16);}

/* ============================================================
   REFINAMIENTO EDITORIAL PREMIUM (global)
   Tipografía, ritmo, composición — dentro de la identidad Altamirano.
   ============================================================ */
/* Cortes de línea inteligentes: titulares equilibrados, prosa sin líneas huérfanas */
h1,h2,h3,.hero h1,.phero h1,.page-hero h1{text-wrap:balance;}
p,.lede,.sec-head p,.aval-card p,.pcard .desc{text-wrap:pretty;}

/* Display grande: tracking más ajustado = más refinado */
.hero h1,.phero h1,.page-hero h1,.final h2,.trustfactor .tf-head h2{letter-spacing:0.004em;}
h1,h2,h3{-webkit-font-smoothing:antialiased;}

/* Numeración tabular para datos, claves y métricas */
.tf-stats b,.aval-card .code,.rvoe-badge,.pcard-meta .mv,.card .facts dd,.prog-side dd,
.result .big,.credcard .num,.start .step .n,.cuatri .n b,.timeline .t .yr{font-variant-numeric:tabular-nums;}

/* Ritmo editorial: aire de sección un poco más generoso y consistente */
section{padding-block:clamp(3.6rem,6.5vw,6rem);}
.sec-head{margin-bottom:var(--head-gap);}
.sec-head p{max-width:62ch;}
/* Encabezados de sección: un solo ritmo de separación */
.stories .head,.cred .head-row,.aval-head{margin-bottom:var(--head-gap);}
.becas-head{margin-bottom:calc(var(--head-gap) - 0.4rem);}

/* Medida de lectura para prosa larga */
.intro p,.result li p,.prog-body p,.ed-text p,.faq .a,.plantel .pbody p{max-width:64ch;}

/* Navegación tipo publicación: subrayado que se desliza (motion silencioso) */
@media(min-width:981px){
  .site nav a{position:relative;padding-block:0.2rem;}
  .site nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.3,1);}
  .site nav a:hover::after,.site nav a.active::after{transform:scaleX(1);}
}

/* ============================================================
   PULIDO MÓVIL (foco: teléfono)
   ============================================================ */
/* Evita zoom automático de iOS al enfocar inputs (>=16px) y áreas táctiles cómodas */
@media(max-width:620px){
  .btn{padding:0.9em 1.35em;}                 /* ~48px de alto táctil */
  .course-cats button{padding:0.62em 1.05em;}  /* target más cómodo */
  .aval-nav button{width:46px;height:46px;}
  .field input,.field select,.field textarea{font-size:16px;}
  .course-search input{font-size:16px;}
}
@media(max-width:400px){
  .brandmark img{height:38px;}
  .brandmark .word{font-size:1.3rem;}
  .course-toolbar .course-sep{display:none;}   /* separador suelto al envolver */
  .course-search{max-width:100%;flex-basis:100%;}
}

/* ============================================================
   FORMULARIOS — responsive robusto (ningún campo excede el viewport)
   ============================================================ */
form.lead{min-width:0;max-width:100%;}
.field{min-width:0;}
.field input,.field select,.field textarea{width:100%;min-width:0;max-width:100%;}
.row2{min-width:0;}
.row2 > *{min-width:0;}
.becas-wide{min-width:0;}
.becas-wide > *{min-width:0;}
.tel-mx{min-width:0;} .tel-mx input{min-width:0;flex:1 1 auto;}
.start .grid > *{min-width:0;}
.becas-wide .fine{text-align:center;}      /* texto auxiliar centrado */
form.lead .fine{max-width:52ch;margin-inline:auto;}
/* input date: sin ancho intrínseco que se salga (Safari/iOS) */
.field input[type="date"]{-webkit-appearance:none;appearance:none;}
/* Botón de Becas centrado y con aire */
.becas-wide .btn{justify-self:center;margin-top:0.9rem;padding-inline:2.1rem;}
form.lead .fine a,.becas-wide .fine a{color:var(--red);text-decoration:underline;text-underline-offset:0.15em;}

/* Hero compacto (páginas legales/simples: no ocupa todo el viewport) */
.phero.compact{min-height:auto;}
/* Página legal (Aviso de Privacidad) — mismo sistema visual */
.legal .legal-upd{font-size:0.85rem;color:var(--ink-faint);}
.legal h2{font-family:var(--display);font-weight:400;font-size:clamp(1.5rem,1.2rem + 1vw,1.95rem);color:var(--navy);margin-top:2.1rem;line-height:1;letter-spacing:0.01em;}
.legal h2:first-of-type{margin-top:1.2rem;}
.legal p{color:var(--ink-soft);margin-top:0.75rem;line-height:1.7;max-width:74ch;}
.legal p b{color:var(--ink);}
.legal a{color:var(--red);text-decoration:underline;text-underline-offset:0.15em;}
@media(max-width:440px){
  .row2{grid-template-columns:1fr;}          /* Edad / Teléfono apilados en pantallas chicas */
}

/* Hero (Inicio) en mobile: imagen primero, texto después */
@media(max-width:820px){
  .hero .stage{order:-1;margin-bottom:0.4rem;}
}

/* Enlaces de prosa: subrayado editorial con respiro */
.faq .a a,.place .addr a,.info-list a,.plantel .pbody a,.credcard .code,footer a{text-underline-offset:0.18em;text-decoration-thickness:1px;}

/* Reglas de sección como chapter breaks: hairline sutil bajo el eyebrow de heros */
.phero .ptext .eyebrow,.page-hero .eyebrow{position:relative;}

/* Cita/quote editorial en historias: comilla más presente y contenida */
.story .qm{opacity:0.9;}

@media (prefers-reduced-motion:reduce){
  .site nav a::after{transition:none;}
}
