/* ============================================================
   FUNDACIÓN PANACA — PÁGINAS INTERNAS
   Hero de sección · bloques institucionales · programas ·
   aliados · noticias · contacto. Paleta y tipografía del Figma.
   ============================================================ */

/* Acento por sección (siempre uno de los 5 colores de la paleta) */
body { --accent: var(--rojo); --accent-hover: var(--rojo-hover); --accent-suave: var(--rojo-suave); }
body.acc--verde   { --accent: var(--verde);   --accent-hover: var(--verde-hover);   --accent-suave: var(--verde-suave); }
body.acc--naranja { --accent: var(--naranja); --accent-hover: var(--naranja-hover); --accent-suave: var(--naranja-suave); }
body.acc--azul    { --accent: var(--azul);    --accent-hover: #061A28;              --accent-suave: #E7EDF2; }
body.acc--vino    { --accent: var(--vino);    --accent-hover: #501008;              --accent-suave: var(--vino-suave); }

/* ---------- HERO DE PÁGINA INTERNA ---------- */
.s-hero { position:relative; overflow:hidden; color:#fff; background: var(--azul); }
.s-hero__media { position:absolute; inset:0; z-index:0; }
.s-hero__media img { width:100%; height:100%; object-fit:cover; }
.s-hero__scrim { position:absolute; inset:0; z-index:1; background: linear-gradient(105deg, rgba(11,37,56,.94) 0%, rgba(11,37,56,.78) 45%, rgba(11,37,56,.45) 100%); }
.s-hero__in { position:relative; z-index:2; padding-block: clamp(2.5rem,6vw,4.5rem) clamp(3.5rem,8vw,6rem); max-width: 54rem; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:.5em; align-items:center; font-size:var(--step--1); color:rgba(255,255,255,.7); margin-bottom:1.4rem; }
.breadcrumb a:hover { color:#fff; }
.s-hero .eyebrow { color:#fff; opacity:.9; }
.s-hero h1 { color:#fff; font-size:var(--step-5); letter-spacing:-.03em; max-width:19ch; margin-top:1rem; }
.s-hero h1 em { font-style:normal; color:var(--naranja); }
.s-hero__sub { font-size:var(--step-1); color:rgba(255,255,255,.9); margin-top:1.2rem; max-width:56ch; }
.s-hero__cta { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.s-hero__stats { display:flex; flex-wrap:wrap; gap:2rem; margin-top:2.5rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.18); }
.s-hero__stat b { font-size:var(--step-3); font-weight:600; color:#fff; display:block; line-height:1; }
.s-hero__stat span { font-size:var(--step--1); color:rgba(255,255,255,.75); }
@media (max-width:520px){ .s-hero h1 { font-size: clamp(1.9rem, 8.2vw, 2.8rem); } }

/* ---------- SECCIÓN GENÉRICA ---------- */
.s-head { max-width:62ch; margin-bottom: clamp(2rem,4vw,3rem); }
.s-head .eyebrow { color: var(--accent); }
.s-head h2 { margin-top:1rem; }
.s-head p { margin-top:1rem; }
.s-head--center { margin-inline:auto; text-align:center; }
.s-head--center .eyebrow { justify-content:center; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
@media (max-width:1000px){ .grid-4{ grid-template-columns:1fr 1fr; } }
@media (max-width:900px){ .grid-3{ grid-template-columns:1fr; } }
@media (max-width:820px){ .grid-2{ grid-template-columns:1fr; } }
@media (max-width:560px){ .grid-4{ grid-template-columns:1fr; } }

/* Texto largo institucional */
.prose > * + * { margin-top:1.1rem; }
.prose p { color:var(--tinta-2); max-width:72ch; }
.prose h3 { margin-top:2.2rem; }
.prose ul { display:grid; gap:.6rem; }
.prose ul li { display:flex; gap:.7rem; align-items:flex-start; color:var(--tinta-2); }
.prose ul li::before { content:""; flex-shrink:0; width:7px; height:7px; border-radius:50%; background:var(--accent); margin-top:.6em; }

/* Bloque con imagen a un lado */
.s-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.s-split--narrow-media { grid-template-columns:1fr .85fr; }
.s-split__media { border-radius:var(--r-lg); overflow:hidden; min-height:420px; position:relative; }
.s-split__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (max-width:820px){ .s-split, .s-split--narrow-media { grid-template-columns:1fr; } .s-split__media{ min-height:280px; } }

/* Banda de prueba con acento */
.s-proof { background: var(--accent); color:#fff; }
.s-proof h2 { color:#fff; }
.s-proof .eyebrow { color:#fff; opacity:.9; }
.s-proof__nums { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.16); border-radius:var(--r-md); overflow:hidden; margin-top:2rem; }
.s-proof__num { background: var(--accent-hover); padding:clamp(1.4rem,3vw,2rem); }
.s-proof__num b { font-size:var(--step-4); font-weight:600; color:#fff; display:block; line-height:1; }
.s-proof__num span { font-size:var(--step--1); color:rgba(255,255,255,.85); margin-top:.5rem; display:block; }
@media (max-width:760px){ .s-proof__nums{ grid-template-columns:1fr; } }

/* Pasos numerados */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; counter-reset:step; }
.step { position:relative; padding-top:2.6rem; }
.step::before { counter-increment:step; content:counter(step); position:absolute; top:0; left:0; width:42px; height:42px; border-radius:50%; background:var(--accent); color:#fff; font-size:var(--step-1); font-weight:600; display:grid; place-items:center; }
.step::after { content:""; position:absolute; top:20px; left:52px; right:-1.2rem; height:2px; background:var(--linea); }
.step:last-child::after { display:none; }
.step h4 { font-size:var(--step-0); margin-bottom:.4rem; }
.step p { font-size:var(--step--1); color:var(--tinta-2); }
@media (max-width:820px){ .steps{ grid-template-columns:1fr 1fr; } .step::after{ display:none; } }
@media (max-width:480px){ .steps{ grid-template-columns:1fr; } }

/* ---------- LÍNEA DE TIEMPO ---------- */
.timeline { position:relative; max-width:920px; margin-inline:auto; }
.timeline::before { content:""; position:absolute; left:22px; top:6px; bottom:6px; width:2px; background:linear-gradient(var(--rojo), var(--naranja), var(--verde)); }
.tl { position:relative; padding:0 0 2.4rem 64px; }
.tl:last-child { padding-bottom:0; }
.tl__dot { position:absolute; left:12px; top:2px; width:22px; height:22px; border-radius:50%; background:var(--rojo); border:4px solid var(--blanco); box-shadow:0 0 0 2px var(--rojo); }
.tl:nth-child(3n+2) .tl__dot { background:var(--naranja); box-shadow:0 0 0 2px var(--naranja); }
.tl:nth-child(3n) .tl__dot { background:var(--verde); box-shadow:0 0 0 2px var(--verde); }
.tl__year { font-size:var(--step-2); font-weight:600; color:var(--rojo); line-height:1; }
.tl:nth-child(3n+2) .tl__year { color:var(--naranja-hover); }
.tl:nth-child(3n) .tl__year { color:var(--verde); }
.tl__title { font-weight:600; margin:.3rem 0 .4rem; }
.tl__text { color:var(--tinta-2); font-size:var(--step--1); max-width:58ch; }
@media (min-width:820px){
  .timeline::before { left:50%; translate:-1px 0; }
  .tl { width:50%; padding:0 3rem 2.8rem; }
  .tl:nth-child(odd) { left:0; text-align:right; }
  .tl:nth-child(even) { left:50%; }
  .tl__dot { left:auto; right:-11px; }
  .tl:nth-child(even) .tl__dot { left:-11px; right:auto; }
  .tl:nth-child(odd) .tl__text { margin-left:auto; }
}

/* ---------- PROPÓSITO / VISIÓN / MISIÓN ---------- */
.purpose { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.purpose__card { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:clamp(1.6rem,3vw,2.4rem); box-shadow:var(--shadow-sm); position:relative; overflow:hidden; }
.purpose__card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--rojo); }
.purpose__card.vision::before { background:var(--naranja); }
.purpose__card.mision::before { background:var(--verde); }
.purpose__label { font-size:var(--step--1); font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--rojo); }
.purpose__card.vision .purpose__label { color:var(--naranja-hover); }
.purpose__card.mision .purpose__label { color:var(--verde); }
.purpose__card h3 { font-size:var(--step-2); margin:.5rem 0 .8rem; }
.purpose__card p { color:var(--tinta-2); font-size:var(--step-0); }
@media (max-width:960px){ .purpose{ grid-template-columns:1fr; } }

/* ---------- ODS ---------- */
.ods-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.ods { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md); padding:1.3rem; transition:transform .4s var(--ease-out), box-shadow .4s; }
.ods:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); }
.ods__n { width:44px; height:44px; border-radius:0; display:grid; place-items:center; color:#fff; font-weight:600; font-size:var(--step-1); margin-bottom:.8rem; background:var(--rojo); }
.ods:nth-child(4n+2) .ods__n { background:var(--naranja); }
.ods:nth-child(4n+3) .ods__n { background:var(--verde); }
.ods:nth-child(4n) .ods__n   { background:var(--vino); }
.ods h4 { font-size:var(--step-0); line-height:1.2; margin-bottom:.4rem; }
.ods p { font-size:.84rem; color:var(--tinta-2); line-height:1.5; }
@media (max-width:900px){ .ods-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .ods-grid{ grid-template-columns:1fr; } }

/* ---------- HECHOS / NÚMEROS ---------- */
.facts { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--linea); border:1px solid var(--linea); border-radius:var(--r-md); overflow:hidden; }
.fact { background:var(--blanco); padding:clamp(1.3rem,3vw,2rem); text-align:center; min-width:0; }
.fact b { font-size:var(--step-4); font-weight:600; color:var(--azul); line-height:1; display:block; letter-spacing:-.03em; overflow-wrap:break-word; }
.fact span { font-size:var(--step--1); color:var(--tinta-2); margin-top:.5rem; display:block; }
@media (max-width:820px){ .facts{ grid-template-columns:1fr 1fr; } }

/* Barras de participación (poblaciones) */
.bars { display:grid; gap:1rem; }
.bar__head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:.35rem; }
.bar__head b { font-weight:600; }
.bar__head span { font-size:var(--step-1); font-weight:600; color:var(--accent); }
.bar__track { height:10px; border-radius:0; background:var(--hueso-2); overflow:hidden; }
.bar__fill { height:100%; border-radius:0; background:var(--accent); width:0; transition: width 1.1s var(--ease-out); }

/* ---------- PILARES EN PROFUNDIDAD ---------- */
.pdeep { display:grid; gap:1.2rem; }
.pdeep__row { display:grid; grid-template-columns:auto 1fr; gap:1.5rem; align-items:flex-start; background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.4rem); box-shadow:var(--shadow-sm); transition:transform .4s var(--ease-out), box-shadow .4s; }
.pdeep__row:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.pdeep__n { font-size:var(--step-5); font-weight:600; color:var(--linea); line-height:.8; }
.pdeep__row h3 { font-size:var(--step-2); }
.pdeep__row p { color:var(--tinta-2); margin-top:.6rem; max-width:66ch; }
.pdeep__row p + p { margin-top:.7rem; }
@media (max-width:600px){ .pdeep__row{ grid-template-columns:1fr; gap:.5rem; } .pdeep__n{ font-size:var(--step-3); } }

/* ---------- SELLOS / CREDENCIALES ---------- */
.creds { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.cred { text-align:center; background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md); padding:1.6rem 1.2rem; }
.cred__ic { width:52px; height:52px; margin:0 auto .9rem; border-radius:50%; background:var(--accent-suave); color:var(--accent); display:grid; place-items:center; }
.cred__ic svg { width:24px; height:24px; }
.cred b { display:block; font-size:var(--step-0); }
.cred span { font-size:.82rem; color:var(--tinta-3); }
@media (max-width:820px){ .creds{ grid-template-columns:1fr 1fr; } }

/* ---------- EQUIPO / FACILITADORES ---------- */
.team { display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; }
@media (max-width:900px){ .team{ grid-template-columns:1fr; } }
.person { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.1rem); box-shadow:var(--shadow-sm); transition:transform .4s var(--ease-out), box-shadow .4s, border-color .3s; display:flex; flex-direction:column; }
.person:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:rgba(233,10,45,.25); }
.person__top { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1rem; }
.person__ini { flex-shrink:0; width:56px; height:56px; border-radius:50%; display:grid; place-items:center; background:var(--azul); color:#fff; font-size:var(--step-1); font-weight:600; letter-spacing:-.02em; }
.person:nth-child(4n+2) .person__ini { background:var(--rojo); }
.person:nth-child(4n+3) .person__ini { background:var(--verde); }
.person:nth-child(4n) .person__ini   { background:var(--naranja); }
.person__name { font-size:var(--step-1); font-weight:600; line-height:1.2; color:var(--tinta); }
.person__role { font-size:var(--step--1); color:var(--accent); font-weight:600; margin-top:.2rem; }
.person__bio > p { font-size:var(--step--1); color:var(--tinta-2); line-height:1.6; }
.person__bio > p + p { margin-top:.7rem; }
.person__badge { margin-top:1rem; align-self:flex-start; }

/* ---------- PROGRAMAS DE FORMACIÓN ---------- */
.prog-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; }
@media (max-width:900px){ .prog-grid{ grid-template-columns:1fr; } }
.prog-card { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.1rem); display:flex; flex-direction:column; box-shadow:var(--shadow-sm); border-top:4px solid var(--accent); transition:transform .4s var(--ease-out), box-shadow .4s; }
.prog-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); }
.prog-card--titulada { border-top-color:var(--rojo); }
.prog-card--diplomado { border-top-color:var(--verde); }
.prog-card--curso { border-top-color:var(--naranja); }
.prog-card__tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.9rem; }
.prog-card h3 { font-size:var(--step-1); line-height:1.25; }
.prog-card__desc { font-size:var(--step--1); color:var(--tinta-2); margin-top:.7rem; line-height:1.6; }
.prog-card__obj { font-size:var(--step--1); color:var(--tinta-2); margin-top:.9rem; padding:.8rem .9rem; background:var(--hueso); border-radius:var(--r-sm); line-height:1.55; }
.prog-card__obj b { color:var(--tinta); display:block; margin-bottom:.2rem; }
.prog-card__meta { display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; margin-top:1rem; padding-top:.9rem; border-top:1px solid var(--linea); font-size:var(--step--1); color:var(--tinta-2); }
.prog-card__meta div { display:flex; align-items:center; gap:.45em; }
.prog-card__meta svg { width:15px; height:15px; color:var(--accent); flex-shrink:0; }
.prog-card__lists { display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.4rem; margin-top:1rem; }
@media (max-width:560px){ .prog-card__lists{ grid-template-columns:1fr; } }
.prog-card__lists h4 { font-size:var(--step--1); text-transform:uppercase; letter-spacing:.1em; color:var(--tinta-3); margin-bottom:.5rem; }
.prog-card__lists ul { display:grid; gap:.35rem; }
.prog-card__lists li { display:flex; gap:.5rem; align-items:flex-start; font-size:var(--step--1); color:var(--tinta-2); line-height:1.45; }
.prog-card__lists li::before { content:""; flex-shrink:0; width:5px; height:5px; border-radius:50%; background:var(--accent); margin-top:.55em; }
.prog-card .btn { margin-top:1.3rem; }

/* Modalidades (2 tarjetas grandes) */
.modes { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
@media (max-width:820px){ .modes{ grid-template-columns:1fr; } }
.mode { border-radius:var(--r-lg); padding:clamp(1.6rem,3vw,2.4rem); color:#fff; display:flex; flex-direction:column; gap:.8rem; }
.mode--1 { background:var(--verde); }
.mode--2 { background:var(--vino); }
.mode h3 { color:#fff; font-size:var(--step-2); }
.mode p { color:rgba(255,255,255,.9); font-size:var(--step-0); }
.mode__list { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.4rem; }

/* Líneas de bootcamp / experiencias */
.lines { display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem; }
@media (max-width:820px){ .lines{ grid-template-columns:1fr; } }
.line { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:clamp(1.4rem,3vw,2rem); position:relative; overflow:hidden; transition:transform .4s var(--ease-out), box-shadow .4s; }
.line:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.line__ic { width:46px; height:46px; border-radius:0; display:grid; place-items:center; background:var(--accent-suave); color:var(--accent); margin-bottom:1rem; }
.line__ic svg { width:22px; height:22px; }
.line h3 { font-size:var(--step-1); margin-bottom:.5rem; }
.line p { font-size:var(--step--1); color:var(--tinta-2); line-height:1.6; }

/* ---------- ALIADOS ---------- */
.ally-cat { margin-bottom: 2.4rem; }
.ally-cat__head { display:flex; align-items:center; gap:.8rem; margin-bottom:1.1rem; }
.ally-cat__head .ic { width:42px; height:42px; border-radius:0; display:grid; place-items:center; background:var(--accent-suave); color:var(--accent); flex-shrink:0; }
.ally-cat__head .ic svg { width:20px; height:20px; }
.ally-cat__head h3 { font-size:var(--step-1); }
.ally-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px,1fr)); gap:.8rem; }
.ally { display:flex; align-items:center; justify-content:center; text-align:center; min-height:76px; padding:1rem; background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md); font-weight:600; color:var(--tinta-2); font-size:var(--step--1); line-height:1.35; transition:transform .35s var(--ease-out), box-shadow .35s, color .3s, border-color .3s; }
.ally:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); color:var(--accent); border-color:var(--accent); }

/* ---------- NOTICIAS ---------- */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
@media (max-width:900px){ .news-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .news-grid{ grid-template-columns:1fr; } }
.news { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .45s var(--ease-out), box-shadow .45s; }
.news:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.news__img { aspect-ratio:16/10; position:relative; overflow:hidden; }
.news__img img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease-out); }
.news:hover .news__img img { transform:scale(1.06); }
.news__cat { position:absolute; top:.7rem; left:.7rem; z-index:1; }
.news__body { padding:1.3rem; display:flex; flex-direction:column; flex:1; }
.news__date { font-size:var(--step--1); color:var(--tinta-3); font-weight:600; }
.news__body h3 { font-size:var(--step-1); line-height:1.25; margin:.4rem 0 .6rem; }
.news__body p { font-size:var(--step--1); color:var(--tinta-2); margin-bottom:1rem; }
.news__body .link-arrow { margin-top:auto; font-size:var(--step--1); }

/* Estado vacío (contenido pendiente de cargar) */
.empty-state { text-align:center; max-width:44rem; margin-inline:auto; background:var(--hueso); border:1px dashed var(--linea); border-radius:var(--r-lg); padding:clamp(2rem,5vw,3.5rem); }
.empty-state__ic { width:64px; height:64px; margin:0 auto 1.2rem; border-radius:50%; background:var(--blanco); color:var(--accent); display:grid; place-items:center; box-shadow:var(--shadow-sm); }
.empty-state__ic svg { width:28px; height:28px; }
.empty-state h3 { font-size:var(--step-2); }
.empty-state p { color:var(--tinta-2); margin:.8rem auto 1.6rem; max-width:52ch; }

/* ---------- CONTACTO ---------- */
.contact-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,3.5rem); align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info { display:grid; gap:.9rem; }
.contact-item { display:flex; gap:1rem; align-items:flex-start; background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md); padding:1.15rem 1.25rem; }
.contact-item .ic { width:44px; height:44px; border-radius:0; display:grid; place-items:center; background:var(--accent-suave); color:var(--accent); flex-shrink:0; }
.contact-item .ic svg { width:20px; height:20px; }
.contact-item b { display:block; }
.contact-item span, .contact-item a { font-size:var(--step--1); color:var(--tinta-2); }
.contact-item a:hover { color:var(--accent); }
.contact-social { display:flex; gap:.6rem; margin-top:.4rem; }
.contact-social a { width:44px; height:44px; border-radius:0; border:1px solid var(--linea); display:grid; place-items:center; color:var(--tinta-2); background:var(--blanco); transition:.3s; }
.contact-social a:hover { background:var(--accent); color:#fff; border-color:var(--accent); transform:translateY(-3px); }

/* ---------- FORMULARIO ESTÁNDAR ---------- */
.form { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.4rem); box-shadow:var(--shadow-md); }
.form h3 { font-size:var(--step-2); color:var(--tinta); }
.form > p { color:var(--tinta-2); font-size:var(--step--1); margin-top:.5rem; }
.form__row { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-top:1rem; }
.field { display:flex; flex-direction:column; gap:.35rem; }
.field.full { grid-column:1/-1; }
.field label { font-size:var(--step--1); font-weight:600; color:var(--tinta-2); }
.field label .req { color:var(--rojo); }
.field input, .field select, .field textarea {
  font:inherit; font-size:var(--step-0); padding:.72em .9em;
  border:1.5px solid var(--linea); border-radius:var(--r-sm);
  background:var(--hueso); color:var(--tinta); transition:border-color .25s, box-shadow .25s, background .25s; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; background:var(--blanco); border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-suave); }
.field textarea { resize:vertical; min-height:110px; }
.form .btn { width:100%; margin-top:1.2rem; }
.form__legal { font-size:.76rem; color:var(--tinta-3); margin-top:.8rem; text-align:center; line-height:1.5; }
@media (max-width:560px){ .form__row{ grid-template-columns:1fr; } }

/* ---------- ENVÍO: BARRA DE PROGRESO + CONFIRMACIÓN ---------- */
/* La barra la inserta main.js en cada .form; sólo ocupa espacio mientras se envía. */
.form__progress { margin-top:1rem; overflow:hidden; max-height:0; opacity:0; transition:max-height .35s var(--ease), opacity .3s, margin .35s; }
.form.is-sending .form__progress, .form.is-sent .form__progress { max-height:60px; opacity:1; }
.form__progress-track { height:6px; border-radius:var(--r-pill); background:var(--linea); overflow:hidden; }
.form__progress-bar { display:block; height:100%; width:0; border-radius:var(--r-pill); background:var(--accent); transition:width .45s var(--ease-out); }
.form.is-sent .form__progress-bar { background:var(--verde); }
.form__progress-txt { display:block; margin-top:.45rem; font-size:.78rem; font-weight:600; color:var(--tinta-3); text-align:center; }

.form__ok {
  display:none; gap:.85rem; align-items:flex-start; text-align:left;
  padding:1.05rem 1.15rem; border-radius:var(--r-md);
  background:var(--verde-suave); color:var(--verde); font-weight:600; margin-top:1rem;
  border:1px solid rgba(16,96,73,.18);
}
.form.is-sent .form__ok { display:flex; animation:formOkIn .45s var(--ease-out) both; }
.form__ok::before {
  content:"✓"; flex-shrink:0; width:28px; height:28px; border-radius:var(--r-pill);
  background:var(--verde); color:#fff; display:grid; place-items:center;
  font-size:.9rem; line-height:1; font-weight:700;
}
.form__err {
  display:none; gap:.85rem; align-items:flex-start; text-align:left;
  padding:1.05rem 1.15rem; border-radius:var(--r-md);
  background:var(--rojo-suave); color:var(--rojo); font-weight:600; margin-top:1rem;
  border:1px solid rgba(233,10,45,.18); font-size:var(--step--1);
}
.form.is-error .form__err { display:flex; animation:formOkIn .45s var(--ease-out) both; }
.form__err::before {
  content:"!"; flex-shrink:0; width:28px; height:28px; border-radius:var(--r-pill);
  background:var(--rojo); color:#fff; display:grid; place-items:center;
  font-size:.9rem; line-height:1; font-weight:700;
}
@keyframes formOkIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .form__progress, .form__progress-bar { transition:none; }
  .form.is-sent .form__ok, .form.is-error .form__err { animation:none; }
}

/* ---------- CTA CON FORMULARIO (fondo oscuro) ---------- */
.s-cta { background: var(--azul); color:#fff; position:relative; overflow:hidden; }
.s-cta__glow { position:absolute; width:60%; height:140%; top:-20%; right:-10%; background:radial-gradient(circle, rgba(233,10,45,.28), transparent 62%); pointer-events:none; }
.s-cta__grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.s-cta h2 { color:#fff; font-size:var(--step-4); }
.s-cta .eyebrow { color:var(--naranja); }
.s-cta p { color:rgba(255,255,255,.85); margin-top:1rem; max-width:46ch; }
.s-cta__contact { margin-top:1.6rem; display:grid; gap:.6rem; font-size:var(--step-0); }
.s-cta__contact a { color:#fff; display:flex; gap:.6em; align-items:center; }
.s-cta__contact svg { width:18px; height:18px; color:var(--naranja); flex-shrink:0; }
@media (max-width:900px){ .s-cta__grid{ grid-template-columns:1fr; } }

/* ---------- CROSS-LINKS ---------- */
.s-more { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.s-more a { display:flex; flex-direction:column; gap:.4rem; padding:1.3rem; border:1px solid var(--linea); border-radius:var(--r-lg); background:var(--blanco); transition:transform .4s var(--ease-out), box-shadow .4s, border-color .3s; }
.s-more a:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--accent); }
.s-more .ic { width:34px; height:34px; color:var(--accent); }
.s-more .ic svg { width:100%; height:100%; }
.s-more b { font-size:var(--step-0); }
.s-more span { font-size:var(--step--1); color:var(--tinta-3); }
@media (max-width:900px){ .s-more{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .s-more{ grid-template-columns:1fr; } }

/* ---------- ERROR ---------- */
.errorpage { min-height:60vh; display:grid; place-items:center; text-align:center; padding-block:clamp(3rem,8vw,7rem); }
.errorpage__code { font-size:var(--step-6); font-weight:600; color:var(--rojo); line-height:1; }
