@charset "utf-8";
/*
 * ESCAC · Capa de pulido responsive v2 · Codex · 26/10/2026
 * Se carga DESPUÉS de estil-responsive.css, directamente desde header.php.
 * Para desactivarla basta con retirar el link delimitado en header.php.
 * No sustituye la hoja base: contiene únicamente correcciones y refinamientos.
 * Conserva exactamente sus puntos de corte; los vacíos quedan reservados.
 */

/* FLUJO: una .cinner seguida de contenido no puede medir el 100% de la
   columna. De lo contrario los CTA quedan fuera de su altura y bajo el pie. */
.row > [class^="col"]:has(> .cinner ~ :not(.clear)) > .cinner{
height:auto;
}
/* Los hermanos de .cinner necesitan el mismo margen de la cuadrícula. */
.rowmargined > [class^="col"] > :not(.cinner):has(> .cta){
margin-left:var(--gap);
margin-right:var(--gap);
}
/* Codex · 26/10/2026: retirado el flex genérico de los grupos CTA y su
   reset de márgenes; se recuperan la alineación y los espacios originales. */
:where(.csection,.ccontent,footer) .cta{
max-width:100%;
white-space:normal;
overflow-wrap:break-word;
}

/* CONTENEDORES: límites estables y ancho disponible real. La hoja base
   alternaba fórmulas distintas en 1800/1600/1500 px, ensanchando o
   estrechando la misma página al mover sólo unos píxeles la ventana. */
.contentxlarge{width:100%;max-width:1440px;}
.contentlarge{width:100%;max-width:1200px;}
.contentmid{width:100%;max-width:1000px;}
:is(.contentxlarge,.contentlarge,.contentmid):where(:not(.contentxlargepadsespecialidad,.contentxlargeformacionslick)){
box-sizing:border-box;
padding-left:20px;
padding-right:20px;
}
.row40{--gap:clamp(10px,calc(5vw - 70px),20px);}

/* Marca y pie: crecimiento continuo, sin cambiar de golpe en 700/500 px.
   Se conservan las proporciones propias de cada logotipo. */
.cheaderlogo svg{width:clamp(84px,calc(46.6667px + 5.3333vw),112px);}
.cfooterlogos{padding-top:clamp(28px,calc(10px + 2.5vw),50px);padding-bottom:clamp(28px,calc(10px + 2.5vw),50px);}
.cfooterlogos p{gap:clamp(14px,2vw,30px);}
.cfooterlogos .cfooterlogoescac img:nth-child(1){height:clamp(26px,calc(20px + 1.5vw),35px);}
.cfooterlogos .cfooterlogoescac img.wp-image-10876{height:clamp(34px,calc(24px + 2.1vw),45px);}
.cfooterlogos .cfooterlogoub img{height:clamp(32px,calc(20px + 2.4vw),48px);}
.cfooterlogos .cfooterlogoub p{gap:clamp(8px,1vw,15px);}

@media (max-width: 2100px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1900px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1800px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1700px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1600px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1500px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1400px){
/* Espaciadores: llegar a los valores de escritorio sin el salto de 70 a 100 px. */
:root{
--sectionmargin:clamp(70px,calc(14.5vw - 75px),128px);
--sectionmarginmid:clamp(45px,calc(10.0833vw - 55.8333px),85.333px);
--sectionmarginsmid:clamp(35px,calc(10vw - 65px),75px);
}
}

@media (max-width: 1300px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1200px){
/* Transición entre la escala móvil y la escala fluida de flex.css.
   Ambos límites (1000 y 1200) ya existen en la hoja base. */
@media (width > 1000px){
:root{
--headingh1:calc(8.2vw - 46px);
--v2-h2:calc(3.8vw - 11px);
--v2-h3:calc(2.7vw - 4px);
--v2-h4:calc(1.48vw + 5.2px);
--v2-h5:calc(.6vw + 11px);
--v2-h6:calc(1.5vw - 2px);
}
:where(.csection,[id^="post-"],main) :is(h1,.sh1,.sh12){font-size:var(--headingh1);}
:where(.csection,[id^="post-"],main) :is(h2,.sh2){font-size:var(--v2-h2);}
:where(.csection,[id^="post-"],main) :is(h3,.sh3){font-size:var(--v2-h3);}
:where(.csection,[id^="post-"],main) :is(h4,.sh4){font-size:var(--v2-h4);}
:where(.csection,[id^="post-"],main) :is(h5,.sh5){font-size:var(--v2-h5);}
:where(.csection,[id^="post-"],main) :is(h6,.sh6){font-size:var(--v2-h6);}
.csection :is(.cherodescdefault,.cequipoherodesc,.cherodescprima,.cherodescdefaultwhite,.cnacherodesc,.cbecasherodesc){font-size:calc(3.4vw - 10px);line-height:1.45;}
.cdmhero .cherodescdefault{font-size:calc(20px + .05vw);}
:where([id^="post-"] > section.csection:first-of-type,body > section.csection:first-of-type):has(h1){margin-top:0;border-top:clamp(0px,calc(192px - 16vw),32px) solid transparent;}
.cproyectohero .sh12{font-size:var(--headingh1);}
.cdmrows h3{font-size:calc(3.9vw - 16px);}
}

}

@media (max-width: 1100px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 1000px){
/* Preguntas numeradas: evitar también el corte heredado de 767 px. */
.cfaq > ol > li{
--v2-faq-left:clamp(40px,calc(11.6667vw - 41.6667px),75px);
--v2-faq-right:clamp(36px,calc(9.6667vw - 31.6667px),65px);
padding:20px var(--v2-faq-right) 20px var(--v2-faq-left);
}
.cfaq > ol > li::before{
width:clamp(20px,calc(6px + 2vw),26px);
height:clamp(20px,calc(6px + 2vw),26px);
left:clamp(12px,calc(4vw - 16px),24px);
top:21px;
}
.cfaq > ol > li::after{
right:clamp(10px,calc(6.6667vw - 36.6667px),30px);
top:20px;
}
/* El bloque final reutilizado por Becas conservaba una resta fija de 60 px. */
.cagentforcefaq .contentlarge{width:100%;}

/* El aire del hero pertenece a su fondo. Un margen colapsado con body
   dejaba ver una franja blanca bajo las cabeceras transparentes. */
:where([id^="post-"] > section.csection:first-of-type,body > section.csection:first-of-type):has(h1){
margin-top:0;
border-top:var(--hero-top-space,32px) solid transparent;
}
/* Barra, tipografía secundaria y espacios: sin escalón al cruzar 700 px. */
:root{
--headerheight:clamp(64px,calc(50px + 2vw),70px);
--sectionmargin:clamp(50px,calc(3.3333px + 6.6667vw),70px);
--sectionmarginmid:clamp(30px,calc(5vw - 5px),45px);
--sectionmarginsmid:clamp(25px,calc(1.6667px + 3.3333vw),35px);
}
.csection :is(.cherodescdefault,.cequipoherodesc,.cherodescprima,.cherodescdefaultwhite,.cnacherodesc,.cbecasherodesc){
font-size:clamp(18px,calc(12px + 1.2vw),24px);
line-height:1.45;
}
:where(.csection,.ccontent,footer) .cta:not(.ctaalt,.ctanofl,.ctanaked){
display:inline-flex;
align-items:center;
justify-content:center;
gap:10px;
min-height:44px;
line-height:1.3;
text-align:center;
}
:where(.csection,.ccontent,footer) .cta:not(.ctaalt,.ctanofl,.ctanaked) > .cta-arrow{
flex-shrink:0;
margin-left:0;
}
.cdmhero .cherodescdefault{font-size:clamp(16px,calc(14px + .65vw),20.5px);}
/* Columna editorial sola: no dejar un tercio vacío al estrechar la pantalla. */
.ctextooperatext > .row > .col66{
width:100%;
max-width:680px;
box-sizing:border-box;
padding-left:var(--gap);
padding-right:var(--gap);
}
/* Títulos de acordeón: reservar siempre el espacio del icono. */
.cformacionmodulehead h2{
padding-right:38px;
}

}

@media (max-width: 900px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 800px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 700px){
/* Las razones de Terrassa necesitan todo el ancho de lectura en teléfono. */
.cterrassarazon > .col33,
.cterrassarazon > .col66{
width:100%;
order:0;
}
.cterrassarazon .col66 > .cinner{padding-top:20px;}
.cterrassarazon img{aspect-ratio:16/9;}
.cterrassarazon h3{display:flex;align-items:flex-start;gap:12px;}
.cterrassarazon h3 .cterrassarazonnum{
flex-shrink:0;
width:28px;
height:28px;
line-height:28px;
font-size:18px;
margin-right:0;
transform:none;
}
/* Acordeones con check: menos sangría, iconos reservados y respuesta ancha.
   Se excluyen las preguntas numeradas y el acordeón de colaboradores. */
.csection .cacordion:not(.cfaq,.cacordeoncolaboradores) > ul > li{
padding-left:32px;
padding-right:30px;
font-size:18px;
line-height:1.35;
}
.csection .cacordion:not(.cfaq,.cacordeoncolaboradores) > ul > li::before{
width:20px;
height:20px;
right:0;
top:22px;
}
.csection .cacordion:not(.cfaq,.cacordeoncolaboradores) > ul > li::after{
width:20px;
height:20px;
background-size:20px;
top:23px;
}
.csection .cacordion:not(.cfaq,.cacordeoncolaboradores) > ul > li > ul{
padding-left:0;
margin-left:-32px;
margin-right:-30px;
}
.csection .cacordion:not(.cfaq,.cacordeoncolaboradores) > ul > li > ul > li{padding-right:0;}
/* Listas estáticas con check: no reservar un hueco para un + inexistente. */
.csection .cacordion.cacordionnoacordion > ul > li{
padding-right:0;
font-size:var(--fonts);
font-weight:400;
line-height:1.5;
}
.cfaq > ol > li > ol{
margin-left:calc(16px - var(--v2-faq-left));
margin-right:calc(16px - var(--v2-faq-right));
margin-top:18px;
}
.cfaq > ol > li > ol > li,
.cfaq > ul > li > ul > li{
font-size:var(--fonts);
line-height:1.5;
}
/* Listas editoriales normales: las anidaciones no deben acumular 80 px. */
:is(.ctexto,.cdmrows,.cformacionrich) :is(ul,ol):not(.cacordion *,.cbeautifullist *,.cformacioncolumns *){
padding-left:22px;
}

/* Tarjetas y textos a una columna: el cierre mantiene el mismo margen
   lateral que la lectura, también cuando no hay una .cinner alrededor. */
/* La corrección de flujo y márgenes es común a todos los tamaños. */

}

@media (max-width: 650px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 600px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 550px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 500px){
/* Reservado: se mantiene el corte de la hoja base. */
}

@media (max-width: 499px){
/* Reservado: se mantiene el corte de la hoja base. */
}
