.hero { padding:64px 0 28px; background:white; background-image:linear-gradient(#0d3d471a 1px,transparent 1px),linear-gradient(90deg,#0d3d471a 1px,transparent 1px); background-size:104px 84px; }
.hero-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:70px; align-items:center; }
.hero-copy { padding:20px 0; }
.eyebrow { display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:.78rem; margin:0 0 30px; }
.eyebrow > span { width:32px; height:1px; background:var(--color-rojo-ocre); box-shadow: 0px 0px 1px 1px rgba(214, 49, 22, 0.2);}
.eyebrow b { color:var(--color-rojo-ocre); font-size:1.3rem; position: relative;  bottom: 1px; }
.hero h1,.titulo-portada { font:900 calc(clamp(2.4rem,4.4vw,4.1rem) * var(--escala-h1, 1))/1.06 var(--fuente-titulo); letter-spacing:-.025em; margin:0; max-width:560px; color:var(--color-azul); }
.hero-lead { font-size:1.12rem; max-width:540px; margin:20px 0 24px; line-height:1.5; text-wrap: balance; }
.hero-actions { display:flex; flex-wrap:wrap; gap:18px; }
.hero-proof { margin-top:42px; border-top:2px solid var(--color-gris-oscuro); padding-top:18px; display:flex; flex-direction:column; font-size:.88rem; width:90%; }
.hero-proof b { color:var(--color-rojo-ocre); }
.hero-visual { position:relative; padding-bottom:24px; align-self:stretch; display:flex; align-items:stretch; }
.hero-photo { width:100%; }
.hero-photo img { width:100%; height:100%; object-fit:cover; }
.signal-card { position:absolute; left:-65px; bottom:0; width:72%; padding:9px; background:white; box-shadow:var(--shadow); }
.signal-card img { width:100%; }
.controles-portada { position:absolute; right:8%; bottom:60px; display:flex; gap:18px; }
.controles-portada a { color:white; border:2px solid white; width:52px; height:52px; border-radius:50%; display:grid; place-items:center; font-size:2rem; line-height:2.7rem; background:#0d3d4722; align-items: unset; }
.controles-portada a:hover { background:var(--color-azul); }
.separador { padding-top:14px; }
.separador img { width:100%; }
.statement-grid { display:grid; grid-template-columns:1fr 2fr; gap:70px; align-items:start; }
.statement-grid > div { max-width:780px; }
.statement-grid p { font-size:.95rem; }
.statement-grid .section-kicker { padding-top:5px; }
.stats { display:grid; grid-template-columns:repeat(4,1fr); margin-top:40px; border:1px solid var(--color-gris-oscuro); }
.stats article { padding:20px 8px; text-align:center; border-right:1px solid var(--color-gris-oscuro); display:flex; align-items:center; flex-direction:column; }
.stats article:last-child { border-right:0; }
.stats img { width:86px; height:86px; }
.stats strong { font-size:2rem; font-weight:700; line-height:1.15; margin-top:8px; }
.stats span { font-size:1rem; }
.services { background:#ededed; }
.services-heading { display:grid; grid-template-columns:2fr 1fr; gap:80px; align-items:center; margin-bottom:55px; }
.service-explorer { display:grid; grid-template-columns:1fr 1.1fr; gap:24px; }
.service-list { display:flex; flex-direction:column; }
.service-list a { display:grid; grid-template-columns:32px 1fr 22px; gap:14px; align-items:center; padding:19px 25px; background:var(--color-amarillo); border-bottom:1px solid var(--color-gris-oscuro); font-size:.75rem; min-height:61px; }
.service-list strong { font-weight:400; }
.service-list i { font-style:normal; color:var(--color-rojo-ocre); font-size:1.5rem; }
.service-list a[aria-current],.service-list a:hover { background:var(--color-azul); color:white; }
.service-list a[aria-current] > span,.service-list a[aria-current] i { color:var(--color-amarillo-naranja); }
.paneles-servicios { background:white; }
.service-panel { padding:10px 22px 24px; }
.service-panel > img { width:100%; }
.service-panel h3 { font:900 calc(clamp(1.3rem,2vw,1.8rem) * var(--escala-h3, 1))/1.1 var(--fuente-titulo-es); margin:20px 0 8px; }
.service-panel ul { padding-left:16px; margin:5px 0 22px; font-size:.84rem; line-height:1.6; text-wrap: balance; }
.servicio-introduccion { margin:6px 0; font-size:.9rem; font-style:italic; }
.method { min-height:700px; color:white; display:flex; align-items:center; background-color:var(--color-azul); }
.fondo-adaptativo { position:absolute; inset:0; display:block; overflow:hidden; }
.fondo-adaptativo .fondo-zona { display:block; }
.fondo-zona { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.method-content { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:120px; align-items:center; }
.method-intro { max-width:400px; }
.method .section-kicker.light { color:white; }
.process-list { padding:0; margin:0; list-style:none; }
.process-list li { display:flex; gap:30px; padding:24px 0; border-top:2px solid var(--color-gris-claro); }
.process-list li:last-child { border-bottom:2px solid var(--color-gris-claro); }
.process-list li > span { color:var(--color-amarillo-naranja); font-size:.8rem; }
.process-list h3 { font-size:calc(1rem * var(--escala-h3, 1)); font-weight:700; margin:0 0 7px; }
.process-list p { margin:0; font-size:.95rem; }
.projects { padding-bottom:25px; }
.projects-heading { margin-bottom:40px; }
.projects-heading h2 { max-width:600px; }
.projects .section-kicker { color:var(--color-azul); }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-bottom: 95px; }
.project-card { border:2px solid var(--color-gris-oscuro); background:var(--color-crema); display:flex; flex-direction:row; z-index: 0; }
.project-image { position:relative; }
.project-image > img { width:100%; height:100%; object-fit:cover; }
.project-image > span { position:absolute; bottom:8px; left:8px; background:white; padding:4px 8px; font-size:.7rem; }
.project-body { padding:22px 17px; display:flex; flex:1; flex-direction:column; align-items:start; }
.project-body small { font-size:.75rem; color:var(--color-rojo-ocre); }
.project-body h3 { font-size:calc(1.02rem * var(--escala-h3, 1)); line-height:1.25; margin:10px 0; }
.project-body p { font-size:.85rem; margin:0 0 20px; }
.project-body .button { margin-top:auto; padding:10px 16px; }
.fondo-proyectos { position:absolute; left:0; bottom:50px; width:100%; height:145px; object-fit:cover; }
.paginacion-proyectos { display:flex; justify-content:center; gap:1px; position:relative; margin-top:25px; }
.paginacion-proyectos a { width:38px; height:38px; display:grid; place-items:center; }
.paginacion-proyectos a span { background:var(--color-gris-claro); width:11px; height:11px; border-radius:50%; }
.paginacion-proyectos a[aria-current] span { background:var(--color-azul); }
.about { background:var(--color-azul); color:white; padding-bottom:0; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:60px; }
/* Y3: la fotografía termina a ras del borde inferior; el marco queda detrás de ella. */
.about-visual { position:relative; padding-top:85px; }
.about-visual::before { content:""; position:absolute; top:calc(85px + 28px); left:26px; right:-15px; bottom:0; border-top:1px solid rgba(255,255,255,.82); border-right:1px solid rgba(255,255,255,.82); pointer-events:none; }
.about-visual > img { position:relative; width:100%; bottom: -3px; }
.about-copy { padding-bottom:80px; }
.indicador-equipos { position:absolute; top:0; left:5%; width:280px; min-height:112px; display:flex; align-items:center; gap:18px; padding:18px; color:var(--color-azul); background:var(--color-amarillo-naranja); z-index: 1; }
.indicador-equipos strong { font-size:3rem; overflow-wrap: unset; }
.indicador-equipos strong:first-child { font-family: var(--fuente-titulo-es); }
.indicador-equipos span { font-size:.82rem; font-weight: 600; }
.about-copy .section-kicker { color:var(--color-amarillo-naranja); }
.about-copy > p { font-size:.95rem; }
.about-copy ul { list-style:none; margin:25px 0 0; padding:0; }
.about-copy li { border-bottom:2px solid #c3cfd180; }
.about-copy li a { padding:18px 0; display:flex; align-items:start; gap:18px; font-size:.86rem; }
.about-copy li a > span { flex-shrink:0; }
.about-copy a[aria-current] { color:var(--color-amarillo-naranja); }
.data-story { background:#f6f5f3; }
.data-grid { display:grid; grid-template-columns:.85fr 1.2fr; gap:60px; align-items:center; }
.data-grid .section-kicker { color:var(--color-rojo-ocre); }
.data-grid p { font-size:.95rem; }
.data-grid > img { width:100%; }
.faq-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:90px; }
.faq-list details { border-top:2px solid var(--color-gris-oscuro); }
.faq-list details:last-child { border-bottom:2px solid var(--color-gris-oscuro); }
.faq-list summary { position:relative; padding:22px 24px 22px 0; cursor:pointer; font-size:1rem; font-weight:700; list-style:none; display:flex; gap:20px; align-items:start; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:0; color:var(--color-rojo-ocre); }
.faq-list details[open] summary::after { content:'−'; }
/* Y5: el índice de dos cifras no se reduce ni se parte en pantallas estrechas. */
.faq-list summary > span { flex-shrink:0; white-space:nowrap; font-size:.8rem; color:var(--color-rojo-ocre); padding-top:3px; }
.faq-list details p { margin:0 0 22px 36px; font-size:.95rem; }
.contact { background:var(--color-azul); color:white; }
.contact-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:110px; align-items:center; }
.contact-copy .section-kicker { color:var(--color-amarillo-naranja); }
.contact-copy h2 { max-width:450px; font-size:calc(clamp(2rem,3.7vw,3.4rem) * var(--escala-h2, 1)); }
.contact-details { margin:45px 0 0; }
.contact-details > div { display:grid; grid-template-columns:120px 1fr; gap:15px; padding:11px 0; border-top:1px solid var(--color-gris-claro); }
.contact-details dt { color:var(--color-amarillo-naranja); font-size:.75rem; align-content:center; }
.contact-details dd { margin:0; font-size:.85rem; font-weight:700; overflow-wrap:anywhere; }
/* X3: un único contacto por correo, con el icono y el borde inferior de la referencia visual. */
.contact-details > div:last-child { border-bottom:1px solid var(--color-gris-claro); }
.contact-details .contact-email { display:inline-flex; align-items:center; gap:10px; max-width:100%; min-width:0; color:inherit; text-decoration:none; }
.contact-details .contact-email svg { width:30px; height:30px; flex:none; }
.contact-details .contact-email span { min-width:0; overflow-wrap:anywhere; }
.contact-details .contact-email:is(:hover,:focus-visible) { text-decoration:underline; }

.contact-form { padding:30px; background:white; color:var(--color-azul); }
.form-heading { border-bottom:1px solid var(--color-gris-claro); padding-bottom:18px; font-size:.95rem; font-weight:700; margin-bottom:24px; }
.contact-form label { display:flex; flex-direction:column; gap:8px; font-size:.65rem; font-weight:700; margin-bottom:22px; }
.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea { width:100%; min-width:0; border:0; border-bottom:1px solid var(--color-gris-oscuro); background:white; color:var(--color-azul); padding:10px 0; border-radius:0; font-size:.9rem; }
.contact-form textarea { resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-form .consent { flex-direction:row; align-items:start; font-weight:400; font-size:.7rem; gap:8px; }
.consent input { margin:3px 0 0; }
.button-accent { width:100%; background:var(--color-amarillo-naranja); }
.form-status { font-size:.85rem; margin-bottom:0; }
.detalle-proyecto h1 { text-align:center; max-width:1000px; margin:30px auto; font-size:calc(clamp(1.6rem,3vw,2.5rem) * var(--escala-h1, 1)); line-height:1.2; font-family: var(--fuente-texto); }
.detalle-proyecto article > img { width:min(100%,977px); margin:0 auto 35px; }
.detalle-proyecto article > p { font-size:1rem; text-align: justify; }
.volver-proyectos { text-decoration:underline; }
@media(max-width:65rem) {
 .hero-grid { gap:35px; grid-template-columns:1fr 1fr; } .hero h1,.titulo-portada { font-size:calc(clamp(2.3rem,4.6vw,3.4rem) * var(--escala-h1, 1)); } .hero-actions { gap:10px; } .hero-actions .button { font-size:.75rem; padding:12px; }
 .signal-card { left:-20px; } .hero-proof { margin-top:25px; } .method-content,.contact-grid { gap:55px; } .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .services-heading { gap:40px; } .service-list a { padding:18px 14px; gap:8px; } .about-grid { gap:35px; } .data-grid { gap:35px; } .faq-grid { gap:45px; }
}
@media(max-width:47.999rem) {
 .hero { padding-top:35px; } .hero-grid { grid-template-columns:1fr; gap:25px; } .hero h1,.titulo-portada { max-width:650px; font-size:calc(clamp(2.5rem,8vw,4rem) * var(--escala-h1, 1)); } .hero-copy { padding:0; } .hero-lead { max-width:100%; }
 .hero-visual { width:min(100%,560px); margin-inline:auto; padding:0 0 55px 30px; } .hero-photo img { height:auto; } .signal-card { left:0; width:65%; } .controles-portada { bottom:95px; right:7%; }
 .statement-grid,.services-heading,.service-explorer,.method-content,.about-grid,.data-grid,.faq-grid,.contact-grid { grid-template-columns:1fr; gap:35px; }
 .statement-grid .section-kicker { margin:0; } .stats { grid-template-columns:1fr 1fr; } .stats article { border-bottom:1px solid var(--color-gris-oscuro); } .stats article:nth-child(2) { border-right:0; } .stats article:nth-child(n+3) { border-bottom:0; }
 .services-heading { margin-bottom:30px; } .services-heading > p { margin:0; } .service-explorer { gap:18px; } .service-list a { min-height:55px; } .service-panel { padding:15px; }
 .method { min-height:0; } .method-intro { max-width:100%; } .about-visual::before { right:-12px; } .about-visual { order:2; margin-top:5px; } .about-copy { order:1; padding-bottom:0; } .indicador-equipos { width:260px; }
 .data-grid > div { max-width:600px; } .contact-copy h2 { max-width:100%; } .contact-details { margin-top:30px; } .contact-form { padding:25px; } .eyebrow { gap:8px; font-size:.7rem; }
}
@media(max-width:30rem) { .project-grid { grid-template-columns:1fr; } .project-image > img { height:220px; } .contact-details > div { grid-template-columns:90px 1fr; gap:8px; } .contact-form { padding:22px 18px; } .form-row { grid-template-columns:1fr; gap:0; } .hero-actions .button { font-size:.78rem; padding:12px 13px; } }

/* Formulario común, lote 6: etiquetas, recuperación de campos y errores accesibles. */
.contact-form > label:not(.consent),.contact-form .form-row label { margin:0 0 6px; }
.contact-form > input:not([type=hidden]),.contact-form > select,.contact-form > textarea,.contact-form .form-row input { margin-bottom:22px; }
.contact-form .consent { margin:0 0 22px; }
.contact-form .form-status { margin:0 0 24px; padding:12px; border:1px solid var(--color-azul); background:var(--color-crema); line-height:1.5; }
.contact-form .form-error { display:block; color:var(--color-rojo-ocre); font-size:.8rem; font-weight:400; margin:0 0 20px; }
.contact-form [aria-invalid=true] { border-bottom:2px solid var(--color-rojo-ocre); }
.form-trampa { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

@media(max-width:40rem) { .contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea { font-size:1rem; } }

/* AJUSTE-12 / M2: contacto X3 en tablet, sin intervenir en móvil ni escritorio. */
@media (min-width: 481px) and (max-width: 768px) {
  .contact-details > div { grid-template-columns: 75px minmax(0, 1fr); }
}
/* Las fichas Y2 dejan de apretar el texto junto a la miniatura en los rangos afectados. */
@media (min-width: 320px) and (max-width: 400px),
       (min-width: 481px) and (max-width: 985px) {
  .project-card { flex-direction: column; }
  .project-image { width: 100%; }
  .project-image > img { width: 100%; height: auto; aspect-ratio: 263 / 363; object-fit: cover; }
}
/* Y3: evitar la partición arbitraria de «EXITOSAMENTE», sin cambiar el texto. */
@media (min-width: 319px) and (max-width: 767px) {
  .indicador-equipos { width: min(310px, 100%); gap: 10px; padding: 14px; min-height: 82px; top: 25px; }
  .indicador-equipos strong { flex-shrink: 0; font-size: clamp(2.25rem, 10vw, 3rem); }
  .indicador-equipos span { min-width: 0; overflow-wrap: normal; word-break: normal; hyphens: none; }
}
