/* ===================================================
   CARREÑO & ACEVEDO — CSS CORREGIDO (POST-AUDITORÍA)
   Fixes: ACC-05, PERF-02, PRI-01, PRI-04, COD-01
   =================================================== */

/* --- RESET & TOKENS --- */
*, *::before, *::after { box-sizing: border-box; }

:root {
  /* Paleta centralizada — FIX COD-02: una sola fuente de verdad */
  --orange:         #cf7132;
  --orange-hover:   #e8863d;
  --orange-light:   rgba(207, 113, 50, 0.15);
  --orange-border:  rgba(207, 113, 50, 0.35);
  --dark-900:       #0a0a0a;
  --dark-800:       #141414;
  --dark-700:       #1a1a1a;
  --dark-600:       #252525;
  --grey-98:        #f9f9f9;
  --text-90:        rgba(14,14,14,.90);
  --text-60:        rgba(14,14,14,.60);
  --stroke-12:      rgba(14,14,14,.12);
  --stroke-08:      rgba(255,255,255,.08);
  --f1:             "Barlow", sans-serif;
  --f2:             "Barlow Condensed", sans-serif;
}

html { scroll-behavior: smooth; overflow-anchor: none; }

body {
  margin: 0;
  padding: 0;
  font-family: var(--f1);
  background: #fff;
  color: var(--text-90);
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; margin: 0; padding: 0; }
h1,h2,h3,h4,h5,h6 { margin: 0; }

/* ✅ FIX ACC-05: Clase .screen-reader-text definida correctamente */
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* --- SECTION PADDING --- */
.sec-pad {
  max-width: 1240px;
  margin: 0 auto;
  padding: 80px 24px;
}

/* ===================================================
   ✅ FIX PRI-01: BANNER DE COOKIES (Ley 19.628)
   =================================================== */
.ca-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  background: var(--dark-700);
  border-top: 1px solid var(--orange-border);
  padding: 16px 24px;
  transform: translateY(100%);
  transition: transform .4s cubic-bezier(.22,1,.36,1);
  box-shadow: 0 -4px 32px rgba(0,0,0,.35);
}
.ca-cookie-banner.is-visible {
  transform: translateY(0);
}
.ca-cookie-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.ca-cookie-txt {
  flex: 1;
  min-width: 0;
  font-family: var(--f1);
  font-size: 13px;
  line-height: 1.55;
  color: rgba(249,249,249,.85);
}
.ca-cookie-txt strong {
  display: block;
  color: var(--grey-98);
  margin-bottom: 4px;
  font-size: 14px;
}
.ca-cookie-txt p { margin: 0; }
.ca-cookie-lnk { color: var(--orange); text-decoration: underline; }
.ca-cookie-btns {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.ca-cookie-btn {
  padding: 10px 22px;
  border-radius: 4px;
  font-family: var(--f1);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background .2s ease, transform .2s ease;
}
.ca-cookie-btn--accept {
  background: var(--orange);
  color: #fff;
}
.ca-cookie-btn--accept:hover { background: var(--orange-hover); transform: translateY(-1px); }
.ca-cookie-btn--reject {
  background: transparent;
  color: rgba(249,249,249,.7);
  border-color: rgba(249,249,249,.25);
}
.ca-cookie-btn--reject:hover { background: rgba(255,255,255,.06); }

/* ===================================================
   HEADER
   =================================================== */
@keyframes ca-hdr-rise {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ca-site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 99998;
  width: 100%;
  background: rgba(5, 3, 2, .95);
  -webkit-backdrop-filter: blur(14px) saturate(105%);
  backdrop-filter: blur(14px) saturate(105%);
  color: var(--grey-98);
  font-family: var(--f1);
  box-sizing: border-box;
  transition: background .28s ease;
}
.ca-site-header.is-open { background: rgba(5, 3, 2, .96); }

.ca-site-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  max-width: 1240px;
  margin: 0 auto;
  padding: 14px 24px;
}

.ca-site-header__logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
  flex-shrink: 0;
  transition: opacity .3s ease;
}
.ca-site-header__logo:hover { opacity: .92; }
.ca-site-header__logo-img {
  display: block;
  max-height: 52px;
  width: auto;
  height: auto;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.ca-site-header__logo:hover .ca-site-header__logo-img { transform: scale(1.03); }

.ca-site-header__toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(249,249,249,.35);
  border-radius: 3px;
  background: rgba(255,255,255,.06);
  color: var(--grey-98);
  cursor: pointer;
  margin-left: auto;
  position: relative;
  z-index: 5;
  transition: background .28s ease, border-color .28s ease, transform .22s ease;
}
.ca-site-header__toggle:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(249,249,249,.5);
}
.ca-site-header__toggle-bars {
  display: block;
  position: relative;
  width: 20px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: background .18s ease .12s;
}
.ca-site-header__toggle-bars::before,
.ca-site-header__toggle-bars::after {
  content: "";
  position: absolute;
  left: 0;
  width: 20px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform .32s cubic-bezier(.22,1,.36,1), top .18s ease .12s, bottom .18s ease .12s;
}
.ca-site-header__toggle-bars::before { top: -6px; }
.ca-site-header__toggle-bars::after  { bottom: -6px; }
/* Al abrir, la hamburguesa se convierte en una X */
.ca-site-header.is-open .ca-site-header__toggle-bars { background: transparent; transition-delay: 0s; }
.ca-site-header.is-open .ca-site-header__toggle-bars::before { top: 0; transform: rotate(45deg); transition-delay: 0s; }
.ca-site-header.is-open .ca-site-header__toggle-bars::after  { bottom: 0; transform: rotate(-45deg); transition-delay: 0s; }

.ca-site-header__collapse {
  display: flex;
  flex: 1;
  align-items: center;
  gap: clamp(1rem, 3vw, 2.5rem);
  min-width: 0;
}
.ca-site-header__nav {
  flex: 1;
  display: flex;
  justify-content: center;
  min-width: 0;
}
.ca-site-header__menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(.75rem, 2vw, 2.25rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ca-site-header__menu a {
  color: var(--grey-98);
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: color .28s ease, transform .28s cubic-bezier(.22,1,.36,1);
}
.ca-site-header__menu a:hover,
.ca-site-header__menu a.is-active { color: var(--orange); transform: translateY(-2px); }

.ca-site-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 12px 22px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  background: var(--orange);
  color: #fff;
  transition: background .28s ease, transform .28s cubic-bezier(.22,1,.36,1), box-shadow .32s ease;
}
.ca-site-header__cta:hover { background: var(--orange-hover); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.18); }

.ca-site-header__spacer {
  display: block;
  width: 100%;
  height: 80px;
  pointer-events: none;
  visibility: hidden;
}

@media (prefers-reduced-motion: no-preference) {
  .ca-site-header__logo { animation: ca-hdr-rise .58s cubic-bezier(.22,1,.36,1) both; }
  .ca-site-header__cta  { animation: ca-hdr-rise .52s cubic-bezier(.22,1,.36,1) .12s both; }
}

@media (max-width: 960px) {
  .ca-site-header__toggle { display: inline-flex; }
  .ca-site-header__collapse {
    order: 3;
    flex: 1 0 100%;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 1.25rem;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding: 0 4px;
    transition: max-height .45s cubic-bezier(.4,0,.2,1), opacity .32s ease, padding .45s cubic-bezier(.4,0,.2,1);
  }
  .ca-site-header.is-open .ca-site-header__collapse {
    max-height: min(85vh, 900px);
    overflow-y: auto;
    opacity: 1;
    padding: 16px 4px 24px;
  }
  .ca-site-header__nav  { justify-content: flex-start; }
  .ca-site-header__menu { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
  .ca-site-header__menu li { width: 100%; border-bottom: 1px solid rgba(249,249,249,.1); }
  .ca-site-header__menu li:last-child { border-bottom: none; }
  /* Áreas táctiles de al menos 44px de alto */
  .ca-site-header__menu a { display: block; padding: 14px 4px; font-size: 14px; }
  .ca-site-header__menu a:hover,
  .ca-site-header__menu a.is-active { transform: none; }
  .ca-site-header__cta  { width: 100%; text-align: center; padding: 15px 22px; }
}
@media (min-width: 961px) {
  .ca-site-header__toggle   { display: none !important; }
  .ca-site-header__collapse { max-height: none !important; overflow: visible !important; padding: 0 !important; flex-direction: row; opacity: 1 !important; }
}

/* ===================================================
   HERO BANNER
   =================================================== */
@keyframes ca-hero-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ca-hero-banner {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  min-height: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--dark-900);
  color: var(--grey-98);
}

/* ---- Slider de fondo: fundido cruzado entre 4 áreas de práctica ---- */
.hero-slides { position: absolute; inset: 0; z-index: 0; }
.hero-slide {
  position: absolute;
  inset: 0;
  background-image: var(--slide-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  /* En reposo la diapositiva espera fuera de cuadro, por la izquierda */
  transform: translate3d(-100%, 0, 0);
  transition: transform .78s cubic-bezier(.66, 0, .28, 1), opacity .45s ease;
  will-change: transform;
}
/* Entra desde la izquierda y se detiene en el centro */
.hero-slide.is-active { opacity: 1; transform: translate3d(0, 0, 0); }
/* La saliente continúa el movimiento y desaparece por la derecha */
.hero-slide.is-leaving { opacity: 1; transform: translate3d(100%, 0, 0); }
/* Reposicionamiento instantáneo al terminar, sin que se vea el retorno */
.hero-slide.no-anim { transition: none !important; }
/* Realce lateral derecho, por diapositiva */
.hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: brightness(1.26) contrast(1.06) saturate(1.12);
  -webkit-mask-image: linear-gradient(to right, transparent 38%, rgba(0,0,0,.6) 54%, #000 72%);
  mask-image: linear-gradient(to right, transparent 38%, rgba(0,0,0,.6) 54%, #000 72%);
  pointer-events: none;
}
.hero-slide--familia { --slide-bg: url('img/hero-familia.jpg'); }
.hero-slide--deudas  { --slide-bg: none; }
.hero-slide--penal   { --slide-bg: none; }
.hero-slide--laboral { --slide-bg: none; }

/* Encuadre de la fotografía de Familia.
   El archivo es 16:9 igual que el banner, así que no sobra imagen para
   desplazar: hay que ampliarla y anclarla al borde izquierdo, donde la
   fotografía tiene pared vacía. Así la persona se corre hacia la derecha y
   sale de la zona del texto. Solo se aplica bajo 1400 px, que es donde el
   bloque de texto ocupa una proporción grande del ancho; en pantallas
   anchas la imagen se muestra completa y sin ampliar. */
@media (min-width: 769px) and (max-width: 1400px) {
  .hero-slide--familia,
  .hero-slide--familia::after {
    background-size: 112% auto;
    background-position: left center;
  }
}

/* Indicadores */
.hero-dots {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 38px;
}
.hero-dot {
  position: relative;
  height: 3px;
  width: 34px;
  padding: 0;
  border: none;
  border-radius: 2px;
  background: rgba(249,249,249,.32);
  cursor: pointer;
  overflow: hidden;
  transition: width .3s ease, background .3s ease;
}
.hero-dot::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 0;
  background: var(--orange);
  border-radius: inherit;
}
.hero-dot:hover { background: rgba(249,249,249,.5); }
.hero-dot.is-on { width: 62px; background: rgba(249,249,249,.28); }
.hero-dot.is-on::after { width: 100%; transition: width var(--hero-interval, 7s) linear; }
.hero-dot.is-on.is-paused::after { transition: none; }
.hero-dot:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
/* Velo oscuro: fuerte a la izquierda (protege la lectura del texto)
   y transparente hacia la derecha para dejar respirar la fotografía. */
.ca-hero-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,.82) 0%, rgba(0,0,0,.66) 30%, rgba(0,0,0,.28) 52%, rgba(0,0,0,0) 74%);
  z-index: 1;
}

/* Luz cálida difusa sobre las personas, en modo screen para levantar
   las medias tonalidades sin quemar los blancos. */
.ca-hero-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(ellipse 52% 68% at 70% 44%, rgba(255,240,225,.14) 0%, rgba(255,238,222,.06) 46%, transparent 72%);
  mix-blend-mode: screen;
}

/* En móvil el texto se apoya sobre toda la imagen: se mantiene el velo
   vertical y se desactiva el realce lateral. */
@media (max-width: 900px) {
  .ca-hero-banner::before { background: linear-gradient(to bottom, rgba(0,0,0,.62) 0%, rgba(0,0,0,.74) 55%, rgba(0,0,0,.9) 100%); }
  .hero-slide::after, .ca-hero-banner::after { display: none; }
}

.ca-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 20px 24px;
}

/* El bloque de texto nunca pasa de la mitad del ancho: en pantallas medianas
   un ancho fijo de 640 px llegaba a cubrir el rostro de la fotografía. */
.hero-text-block { color: var(--grey-98); max-width: min(640px, calc(52vw - 24px)); }

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 11.3px;
  letter-spacing: 2.48px;
  text-transform: uppercase;
  color: var(--orange);
  margin: 0 0 33px;
}
.hero-eyebrow::before { content: ""; width: 33px; height: 1px; background: var(--orange); flex-shrink: 0; }

.hero-h1 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(2.8rem, 5vw, 67.94px);
  line-height: 1.05;
  letter-spacing: -.68px;
  color: var(--grey-98);
  margin: 0;
}
.hero-h1-row1 { display: block; }
.hero-h1-line1 { color: var(--grey-98); }
.hero-h1-accent { color: var(--orange); }
.hero-h1-line2 { display: block; margin-top: .06em; color: var(--orange); }

.hero-body {
  margin: 19px 0 0;
  font-size: 16.9px;
  line-height: 1.75;
  color: rgba(249,249,249,.68);
  max-width: 580px;
}

.hero-ctas {
  display: flex;
  align-items: center;
  gap: 21px;
  flex-wrap: wrap;
  margin-top: 45px;
}

.btn-o {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--orange);
  color: var(--grey-98);
  padding: 15.5px 37px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 14.6px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background .3s ease, transform .3s ease, box-shadow .35s ease;
}
.btn-o:hover { background: var(--orange-hover); transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,.28); }

.btn-g {
  display: inline-flex;
  align-items: center;
  color: var(--grey-98);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 1.25px;
  text-transform: uppercase;
  padding: 15px 0;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: transform .3s ease, text-decoration-color .28s ease;
}
.btn-g:hover { transform: translateY(-2px); text-decoration-color: var(--orange); }

@media (prefers-reduced-motion: no-preference) {
  /* Primera carga: la fotografía ya está en pantalla y el texto entra por
     partes. En los cambios de diapositiva el relevo lo toman las transiciones
     escalonadas de más abajo. */
  .hero-eyebrow  { animation: ca-hero-rise .68s cubic-bezier(.22,1,.36,1) .35s both; }
  .hero-h1-wrap  { animation: ca-hero-rise .66s cubic-bezier(.22,1,.36,1) .47s both; }
  .hero-body     { animation: ca-hero-rise .62s cubic-bezier(.22,1,.36,1) .59s both; }
  .hero-ctas     { animation: ca-hero-rise .54s cubic-bezier(.22,1,.36,1) .74s both; }
  .hero-dots     { animation: ca-hero-rise .54s cubic-bezier(.22,1,.36,1) .84s both; }
}

@media (max-width: 768px) {
  .ca-hero-banner { aspect-ratio: auto; min-height: clamp(560px, 100svh, 820px); align-items: flex-end; }
  .ca-hero-inner  { padding: clamp(92px, 14vh, 140px) 18px 24px; }
  .hero-text-block { max-width: 100%; }
  .hero-h1 { font-size: clamp(2rem, 8.5vw, 2.45rem); }
  .hero-body { font-size: 14.2px; }
  .hero-ctas { margin-top: 22px; gap: 12px; }
  .btn-o { padding: 12px 22px; font-size: 12.5px; }
  .btn-g { padding: 12px 0; font-size: 12px; }
}

/* ===================================================
   NOSOTROS
   =================================================== */
.sec-nos { background: #fff; color: var(--text-90); }

.nos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}
@media (max-width: 1200px) { .nos-grid { grid-template-columns: 1fr; gap: 40px; } }

.nos-eye {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 10.4px;
  letter-spacing: 2.29px;
  text-transform: uppercase;
  color: rgba(14,14,14,.25);
  margin-bottom: 12px;
}
.nos-eye::before { content: ""; display: block; flex-shrink: 0; width: 20px; height: 1px; background: rgba(14,14,14,.25); }

/* FIX COD-01: Eliminados !important innecesarios en clases del clon estático */
.nos-h2 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw + 1.05rem, 42.48px);
  line-height: clamp(1.08, calc(1.06 + .15vw), 1.16);
  color: var(--text-90);
  margin: 0;
}
.nos-h2-accent { font-style: normal; font-weight: 400; color: var(--orange); }

.divbar, .dbar2 { width: 40px; height: 2px; background: var(--orange); margin: 16px 0; }

.nos-txt { display: flex; flex-direction: column; gap: 10.9px; }
.nos-p {
  font-size: clamp(13.5px, .4vw + 12.6px, 14.7px);
  line-height: 1.63;
  color: var(--text-90);
  margin: 0;
}

.nos-list { list-style: none; margin: 8px 0 0; padding: 0; }
.nos-li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 41.75px;
  padding: 8px 0;
  border-bottom: 1px solid var(--stroke-12);
  font-size: clamp(12.75px, .3vw + 11.85px, 13.6px);
  line-height: 1.6;
  color: #555;
}
.nos-li-ico { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 14px; }
.nos-li-ico::before { content: "↳"; font-family: var(--f1); font-size: 14px; color: var(--orange); transform: translateY(-1px); }

.btn-nos {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 158px;
  min-height: 43.44px;
  padding: 10px 22px 11.44px;
  border-radius: 2px;
  background: var(--orange);
  color: #fff;
  font-weight: 700;
  font-size: 12.2px;
  letter-spacing: 1.22px;
  text-transform: uppercase;
  margin-top: 24px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background .22s ease, box-shadow .22s ease, transform .22s ease;
}
.btn-nos:hover { background: var(--orange-hover); box-shadow: 0 6px 20px rgba(14,14,14,.1); transform: translateY(-1px); }
.btn-nos-ico { display: inline-block; line-height: 1; font-size: 14px; transform: translateY(-1px); }

.nos-right { position: relative; background: #0d0d0d; }
.nos-media { display: block; width: 100%; height: auto; }

/* El distintivo va abajo a la izquierda, sobre la mesa: ahí la fotografía
   está despejada y no tapa a las personas. */
.nos-badge {
  position: absolute;
  top: auto;
  right: auto;
  bottom: 22px;
  left: 22px;
  background: var(--orange);
  color: #fff;
  padding: 15.87px 18.14px;
  border-radius: 3.4px;
  box-shadow: 0 9px 27px rgba(207,113,50,.4);
  max-width: 150px;
}
.nos-bv { font-family: var(--f2); font-size: 36.3px; font-weight: 900; line-height: 1; display: block; letter-spacing: -.73px; }
.nos-bl { font-family: var(--f1); font-size: 11.8px; font-weight: 600; line-height: 1.3; display: block; margin-top: 6px; }

@media (max-width: 768px) { .nos-badge { bottom: 18px; left: 18px; max-width: 180px; } }

/* Animaciones scroll */
.nos-anim {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--nos-delay, 0ms);
}
.sec-nos.is-inview .nos-anim { opacity: 1; transform: translateY(0); }

/* ===================================================
   SERVICIOS
   =================================================== */
.sec-srv { color: var(--grey-98); position: relative; }

.stag-o {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 10.4px;
  letter-spacing: 2.29px;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 12px;
}
.stag-o::before { content: ""; display: block; flex-shrink: 0; width: 20px; height: 1px; background: var(--orange); }

.srv-h2 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw + 1.05rem, 42.48px);
  line-height: clamp(1.08, calc(1.06 + .15vw), 1.16);
  color: var(--grey-98);
  margin: 0;
}
.srv-h2-accent { font-style: normal; font-weight: 400; color: var(--orange); }

.slead {
  font-size: clamp(13.5px, .4vw + 12.6px, 14.7px);
  line-height: 1.63;
  color: var(--grey-98);
  margin: 16px 0 0;
  max-width: 663px;
}
.srv-hdr { margin-bottom: 40px; }




.srv-card {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: var(--dark-800);
  border: 1px solid var(--stroke-08);
  text-decoration: none;
  color: inherit;
  display: block;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1), border-color .25s ease, box-shadow .25s ease;
  transition-delay: var(--srv-delay, 0ms);
}
.sec-srv.is-inview .srv-card { opacity: 1; transform: translateY(0); }
.srv-card:hover { border-color: var(--orange-border); box-shadow: 0 8px 40px rgba(0,0,0,.4); }

.srv-card-bg { position: absolute; inset: 0; background: linear-gradient(145deg, #242424 0%, #101010 60%, #0a0a0a 100%); }
.srv-card-bg-img { width: 100%; height: 100%; object-fit: cover; }

.srv-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(0,0,0,.95) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.15) 100%);
}
.srv-card:hover::after { background: linear-gradient(to top, rgba(0,0,0,.98) 0%, rgba(0,0,0,.72) 48%, rgba(0,0,0,.4) 100%); }

.srv-card-body { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; }

.sc-title-lg, .sc-title {
  font-family: var(--f1);
  font-weight: 800;
  font-size: 18.9px;
  line-height: 20.8px;
  letter-spacing: .48px;
  text-transform: uppercase;
  color: var(--grey-98);
  margin: 0;
}

.srv-card-desc {
  font-size: 12.6px;
  line-height: 18.8px;
  color: var(--grey-98);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .35s ease, opacity .28s ease, margin-top .28s ease;
}
.srv-card:hover .srv-card-desc { max-height: 200px; opacity: 1; margin-top: 10px; }

.srv-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; flex-shrink: 0; }
.srv-card-kw { font-weight: 700; font-size: 12.97px; letter-spacing: 1.3px; text-transform: uppercase; color: var(--orange); }

.srv-card-arr {
  width: 35px; height: 35px;
  border-radius: 50%;
  border: 1px solid var(--orange-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .22s ease, border-color .22s ease;
}
.srv-card-arr-ico { display: block; line-height: 1; font-size: 15px; color: var(--orange); transform: translateY(-2px); }
.srv-card:hover .srv-card-arr { background: var(--orange); border-color: var(--orange); }
.srv-card:hover .srv-card-arr-ico { color: #fff; }

.srv-card-badge {
  position: absolute;
  top: 17px; left: 17px;
  z-index: 4;
  background: #8b0020;
  color: var(--grey-98);
  padding: 4px 11px;
  border-radius: 3px;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1.39px;
  text-transform: uppercase;
  line-height: 1.6;
}

.srv-card-circle {
  position: absolute;
  border: 1px solid var(--orange);
  border-radius: 50%;
  opacity: .12;
  pointer-events: none;
  z-index: 2;
}
.srv-card-deco-line {
  position: absolute;
  left: 0; right: 0;
  height: 1.25px;
  background: linear-gradient(to right, transparent, rgba(207,113,50,.4), transparent);
  opacity: .12;
  z-index: 2;
  pointer-events: none;
}

/* ---- Carrusel continuo de servicios ----
   Todas las tarjetas del área avanzan en un carril infinito. Al poner el
   puntero encima el movimiento se detiene y la tarjeta crece mostrando su
   descripción completa. */
.srv-marquee {
  overflow-anchor: none;
  --srv-gap: 20px;
  --srv-speed: 80s;
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 18px 0;                 /* aire para que el aumento no se recorte */
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
}
.srv-track {
  display: flex;
  align-items: stretch;
  gap: var(--srv-gap);
  width: max-content;
  animation: srv-scroll var(--srv-speed) linear infinite;
  will-change: transform;
}
@keyframes srv-scroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(calc(-50% - (var(--srv-gap) / 2)), 0, 0); }
}
.srv-marquee:hover .srv-track,
.srv-marquee:focus-within .srv-track,
.srv-marquee.is-paused .srv-track { animation-play-state: paused; }

.srv-marquee .srv-card {
  flex: 0 0 clamp(258px, 23vw, 330px);
  height: clamp(238px, 21vw, 296px);
  min-height: 0;
}
.sec-srv.is-inview .srv-marquee .srv-card {
  transition: opacity .55s cubic-bezier(.22,1,.36,1),
              transform .38s cubic-bezier(.22,1,.36,1),
              border-color .25s ease,
              box-shadow .25s ease;
}
.sec-srv.is-inview .srv-marquee .srv-card:hover,
.sec-srv.is-inview .srv-marquee .srv-card:focus-visible {
  transform: scale(1.065);
  z-index: 5;
  box-shadow: 0 18px 50px rgba(0,0,0,.55);
}

/* Táctil: sin puntero, la descripción se muestra siempre y la tarjeta
   conserva su altura para no romper el carril. */
@media (hover: none) {
  .srv-marquee .srv-card-body { position: absolute; inset: 0; min-height: 0; }
  .srv-marquee .srv-card-desc { max-height: 96px; opacity: 1; margin-top: 8px; overflow: hidden; }
}

@media (max-width: 768px) {
  .srv-marquee { --srv-gap: 14px; padding: 12px 0; }
}

/* ✅ FIX PERF-02: Deshabilitar parallax en móvil (jank en iOS/Safari) */
@media (max-width: 768px) {
  .sec-srv,
  .sec-eq,
  .sec-tst,
  .sec-con-wrap {
    background-attachment: scroll !important;
  }
}

/* ===================================================
   SOBREENDEUDAMIENTO
   =================================================== */
.sec-deu { background: #fff; color: var(--text-90); }

.deu-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 48px;
  align-items: center;
}
@media (max-width: 1200px) { .deu-grid { grid-template-columns: 1fr; gap: 40px; } }
@media (min-width: 1201px) { .deu-left { position: sticky; top: 100px; } }

/* ✅ FIX COD-04: .deu-right ahora nombrada */
.deu-right { width: 100%; }

.stag-lt {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 10.4px;
  letter-spacing: 2.29px;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 12px;
}
.stag-lt::before { content: ""; display: block; flex-shrink: 0; width: 20px; height: 1px; background: var(--orange); }

.deu-h2 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw + 1.05rem, 42.48px);
  line-height: clamp(1.08, calc(1.06 + .15vw), 1.16);
  color: var(--text-90);
  margin: 0;
}
.deu-h2-accent { font-style: normal; font-weight: 400; color: var(--orange); }

.deu-body {
  font-size: clamp(13.5px, .4vw + 12.6px, 14.7px);
  line-height: 1.63;
  color: var(--text-90);
  margin: 0 0 20px;
}
.deu-fig-img { max-width: 100%; width: 380px; height: auto; filter: drop-shadow(0 20px 40px rgba(0,0,0,.12)); }
@media (min-width: 1201px) { .deu-fig { position: relative; right: -160px; bottom: -20px; } }

.deu-list { list-style: none; margin: 0; padding: 0; }
.deu-item {
  display: flex;
  align-items: flex-start;
  gap: 26px;
  padding: 28px 0;
  border-bottom: 1px solid var(--stroke-12);
  transition: background .2s ease;
}
.deu-item:first-child { border-top: 1px solid var(--stroke-12); }

.deu-num {
  font-family: var(--f2);
  font-weight: 900;
  font-size: 45.7px;
  color: #c0c0c0;
  line-height: 1;
  flex-shrink: 0;
  width: 62px;
  text-align: right;
  padding-top: 2px;
  transition: color .25s ease;
}
.deu-item:hover .deu-num { color: var(--orange); }

.deu-bd { flex: 1; min-width: 0; }
.deu-item-title {
  font-size: clamp(17px, 1.2vw + 14px, 19.73px);
  font-weight: 700;
  color: var(--text-90);
  margin: 0 0 6px;
  line-height: 1.3;
}
.deu-item-txt {
  font-size: clamp(13.5px, .4vw + 12.6px, 14.7px);
  line-height: 1.63;
  color: var(--text-90);
  margin: 0;
}
.deu-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.deu-tag {
  background: var(--orange-light);
  border: 1px solid var(--orange-border);
  color: var(--orange);
  font-size: 12.85px;
  font-weight: 600;
  padding: 4px 13px;
  border-radius: 100px;
}

.deu-lnk {
  flex-shrink: 0;
  align-self: center;
  width: 41.5px; height: 41.5px;
  border-radius: 50%;
  border: 1px solid var(--orange-border);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: background .22s ease, border-color .22s ease;
}
.deu-lnk-ico { display: block; line-height: 1; font-size: 16px; color: var(--orange); transform: translateY(-2px); }
.deu-item:hover .deu-lnk { background: var(--orange); border-color: var(--orange); }
.deu-item:hover .deu-lnk-ico { color: #fff; }

.deu-anim {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--deu-delay, 0ms);
}
.sec-deu.is-inview .deu-anim { opacity: 1; transform: translateY(0); }

/* ===================================================
   EQUIPO
   =================================================== */
.sec-eq { color: var(--grey-98); }
.sec-eq__inner { max-width: 1240px; margin: 0 auto; }

.eq-hdr { margin-bottom: clamp(40px, 5vw, 56px); }
.eq-h2 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw + 1.05rem, 42.48px);
  line-height: clamp(1.08, calc(1.06 + .15vw), 1.16);
  color: var(--grey-98);
  margin: 0 0 clamp(18px, 2.5vw, 26px);
  max-width: 880px;   /* alcanza para las cinco áreas en dos líneas */
}
.eq-h2-accent { font-style: normal; font-weight: 400; color: var(--orange); }
.eq-rule { display: block; width: 100%; height: 0; margin: 0; padding: 0; border: 0; border-top: 2px solid var(--grey-98); }

.eq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: clamp(20px, 3vw, 36px);
  align-items: start;
}
@media (max-width: 900px) { .eq-grid { grid-template-columns: 1fr; gap: 40px; } }

/* ✅ FIX ACC-02: .team-card es <article> puro sin role="button" */
.team-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 40px;
  overflow: hidden;
}
.team-card__photo-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  overflow: hidden;
  background: #0d0d0d;
  border-radius: 40px;
  aspect-ratio: 590/679;
  cursor: pointer;
}
.team-card__photo-wrap:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.team-card__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  opacity: 1;
  transform: scale(1);
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.team-card__name {
  position: absolute;
  z-index: 4;
  top: clamp(14px, 2.2vw, 22px);
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  justify-content: center;
  max-width: calc(100% - 28px);
  padding: 9px 18px;
  border: 1px solid rgba(249,249,249,.75);
  border-radius: 999px;
  background: rgba(10,10,10,.42);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  font-weight: 400;
  font-size: clamp(11.5px, 1.35vw, 16px);
  letter-spacing: 2.2px;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--grey-98);
  text-align: center;
  pointer-events: none;
}

.team-card__photo-wrap:hover .team-card__photo { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .team-card__photo { transition: none; } .team-card__photo-wrap:hover .team-card__photo { transform: none; } }

.team-card__panel {
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  transition: opacity .38s ease, visibility .38s ease;
  pointer-events: none;
}
/* Panel visible al pasar el mouse sobre la fotografía (desktop).
   La foto permanece visible y solo se oscurece con una capa translúcida. */
@media (hover: hover) and (pointer: fine) {
  .team-card__photo-wrap:hover .team-card__panel,
  .team-card__photo-wrap:focus-within .team-card__panel { opacity: 1; visibility: visible; pointer-events: auto; }
}
/* Panel visible al hacer clic en "Conocer" (touch/mobile) */
.team-card.is-eq-pin .team-card__panel { opacity: 1; visibility: visible; pointer-events: auto; }

.team-card__panel-inner {
  box-sizing: border-box;
  height: 100%;
  overflow-y: auto;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(8,8,8,.66) 0%, rgba(8,8,8,.84) 55%, rgba(8,8,8,.92) 100%);
  -webkit-backdrop-filter: blur(1.5px);
  backdrop-filter: blur(1.5px);
  color: var(--grey-98);
  padding: clamp(64px, 8vw, 84px) clamp(28px, 4.8vw, 44px) clamp(30px, 4.5vw, 42px);
}
.team-card__list {
  margin: 0;
  padding: 0 0 0 1.2em;
  font-weight: 400;
  font-size: clamp(14.5px, 2.05vw, 21px);
  line-height: 1.38;
}
.team-card__list li { margin-bottom: .85em; text-shadow: 0 1px 3px rgba(0,0,0,.55); }
.team-card__list li::marker { color: var(--orange); }
.team-card__list li:last-child { margin-bottom: 0; }

/* ===================================================
   TESTIMONIOS
   =================================================== */
.sec-tst { position: relative; overflow: hidden; color: var(--grey-98); }
.tst-inner { position: relative; z-index: 2; }

.tst-hdr-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 20px; }
.tst-hdr-txt { flex: 1; min-width: 0; }

.tsti-eye {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 10.4px;
  letter-spacing: 2.29px;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 12px;
}
.tsti-eye::before { content: ""; display: block; flex-shrink: 0; width: 20px; height: 1px; background: var(--orange); }

.tsti-h2 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw + 1.05rem, 42.48px);
  line-height: clamp(1.08, calc(1.06 + .15vw), 1.16);
  color: var(--grey-98);
  margin: 0;
}
.tsti-h2-accent { font-style: normal; font-weight: 400; color: var(--orange); }



/* Marquee continuo de testimonios: avance infinito, pausa al pasar el mouse */
.tst-marquee {
  overflow-anchor: none;
  --tst-gap: 20px;
  --tst-speed: 60s;
  position: relative;
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.tst-track {
  display: flex;
  align-items: stretch;
  gap: var(--tst-gap);
  width: max-content;
  animation: tst-scroll var(--tst-speed) linear infinite;
  will-change: transform;
}
@keyframes tst-scroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(calc(-50% - (var(--tst-gap) / 2)), 0, 0); }
}
.tst-marquee:hover .tst-track,
.tst-marquee:focus-within .tst-track,
.tst-marquee.is-paused .tst-track { animation-play-state: paused; }

.t-card {
  flex: 0 0 clamp(280px, 30vw, 420px);
  box-sizing: border-box;
  background: #fff;
  border: 1px solid rgba(14,14,14,.08);
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  border-radius: 6px;
  padding: 28px 26px 26px;
  position: relative;
  overflow: hidden;
  transition: border-color .22s ease;
}
.t-card:hover { border-color: var(--orange-border); }
.t-card::after { content: "\201d"; position: absolute; top: 8px; right: 20px; font-family: Georgia, serif; font-size: 72px; line-height: 1; color: rgba(207,113,50,.12); pointer-events: none; }

/* ✅ FIX ACC-03: .t-stars tiene role="img" y aria-label en el HTML */
.t-stars { color: var(--orange); font-size: 13px; letter-spacing: .5px; margin-bottom: 12px; }

.t-text {
  font-style: italic;
  font-size: clamp(13.5px, .4vw + 12.6px, 14.7px);
  line-height: 1.63;
  color: var(--text-90);
  opacity: .88;
  margin: 0 0 14px;
}
.t-author { display: flex; align-items: center; gap: 12px; margin-top: 4px; }
.t-av {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--orange) 0%, #A0561F 100%);
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  flex-shrink: 0;
}
.t-av span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; line-height: 1; }
.t-name { font-weight: 700; font-size: 14.5px; color: var(--text-90); line-height: 1.45; }
.t-case { font-size: 11.5px; font-weight: 600; color: var(--orange); margin-top: 2px; letter-spacing: .02em; text-transform: uppercase; }
.t-result { font-size: 11.5px; font-weight: 500; color: rgba(14,14,14,.72); margin-top: 2px; }


.tst-anim {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--tst-delay, 0ms);
}
.sec-tst.is-inview .tst-anim { opacity: 1; transform: translateY(0); }

@media (max-width: 640px) { .tst-marquee { --tst-gap: 16px; --tst-speed: 46s; } }

/* ===================================================
   BARRA DE NÚMEROS
   =================================================== */
.sec-bar { color: #fff; width: 100%; }
.bar-nums {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
}
.bar-cell {
  padding: 20px 16px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.22);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  transition: background .22s ease;
}
.bar-cell:last-child { border-right: none; }
.bar-cell:hover { background: rgba(255,255,255,.06); }
.bar-val { font-family: var(--f2); font-weight: 900; font-size: clamp(36px, 8vw, 56px); line-height: 1; color: #fff; margin: 0; letter-spacing: -.06em; }
.bar-lbl { font-weight: 700; font-size: clamp(9px, .85vw, 10.4px); letter-spacing: .12em; text-transform: uppercase; color: #fff; margin: 0; }
.bar-sub { font-size: clamp(10px, .9vw, 10.9px); line-height: 1.45; color: #fff; margin: 0; padding: 0 6px; }

@media (max-width: 1200px) {
  .bar-nums { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bar-cell:nth-child(2) { border-right: none; }
  .bar-cell:nth-child(3),
  .bar-cell:nth-child(4) { border-top: 1px solid rgba(255,255,255,.22); }
}
@media (max-width: 560px) {
  .bar-nums { grid-template-columns: 1fr; }
  .bar-cell { border-right: none !important; border-top: none !important; border-bottom: 1px solid rgba(255,255,255,.22); padding: 22px 14px; }
  .bar-cell:last-child { border-bottom: none; }
}

/* ===================================================
   CONTACTO
   =================================================== */
.sec-con-wrap { position: relative; z-index: 2; overflow: hidden; }
.sec-con-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,.75);
  z-index: 0;
}
.sec-con-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
  max-width: 1240px;
  margin: 0 auto;
  padding: 80px 24px;
}
@media (max-width: 1024px) { .sec-con-inner { grid-template-columns: 1fr; gap: 48px; } }

.sec-con { color: var(--grey-98); }

.c-eye {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 10.4px;
  letter-spacing: 2.29px;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 12px;
}
.c-eye::before { content: ""; display: block; flex-shrink: 0; width: 20px; height: 1px; background: rgba(255,255,255,.45); }

.c-h2 {
  font-family: var(--f1);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw + 1.05rem, 42.48px);
  line-height: clamp(1.08, calc(1.06 + .15vw), 1.16);
  color: var(--grey-98);
  margin: 0;
}
.c-h2-accent { font-style: normal; font-weight: 400; color: var(--orange); display: block; }
.c-db { width: 40px; height: 2px; background: var(--orange); margin: 16px 0; }
.c-body { font-size: clamp(13.5px, .4vw + 12.6px, 14.7px); line-height: 1.63; color: #fff; margin: 0 0 8px; max-width: 36em; }

.c-feats { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; }
.c-feat {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 41.75px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
  font-size: clamp(12.75px, .3vw + 11.85px, 13.6px);
  line-height: 1.6;
  color: #fff;
}
.c-feat::before {
  content: "✓";
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--orange-light);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--orange);
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}

.c-anim {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--con-delay, 0ms);
}
.sec-con-wrap.is-inview .c-anim { opacity: 1; transform: translateY(0); }

/* FORMULARIO */
.ca-cf7-box {
  background: var(--dark-700);
  border-radius: 12px;
  padding: 36px 32px;
  border: 1px solid var(--stroke-08);
}
.ca-cf7-title { font-weight: 700; font-size: 22px; color: var(--grey-98); margin: 0 0 24px; letter-spacing: .02em; }

.ca-cf7-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 640px) { .ca-cf7-grid2 { grid-template-columns: 1fr; } }

.ca-cf7-field { margin-bottom: 16px; }
.ca-cf7-field:last-of-type { margin-bottom: 0; }

.ca-cf7-lbl {
  display: block;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .06em;
  color: rgba(249,249,249,.6);
  margin-bottom: 8px;
}
.ca-cf7-req { color: var(--orange); margin-left: 2px; }

.ca-cf7-ctrl {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 14px 16px;
  min-height: 52px;
  font-family: var(--f1);
  font-size: 15px;
  line-height: 1;
  color: var(--grey-98);
  background: var(--dark-600);
  border: 1px solid var(--stroke-08);
  border-radius: 8px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
  appearance: none;
}
textarea.ca-cf7-ctrl { min-height: 132px; resize: vertical; line-height: 1.45; }
select.ca-cf7-ctrl { padding-right: 44px; cursor: pointer; }
.ca-cf7-ctrl:focus { border-color: var(--orange-border); box-shadow: 0 0 0 1px rgba(207,113,50,.25); }
.ca-cf7-ctrl::placeholder { color: rgba(249,249,249,.25); }

/* ✅ FIX PRI-04: Estilos del checkbox de consentimiento */
.ca-consent-field { margin-top: 20px; margin-bottom: 20px; }
.ca-consent-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
}
.ca-consent-chk {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--orange);
  cursor: pointer;
  border-radius: 3px;
}
.ca-consent-txt {
  font-size: 12.5px;
  line-height: 1.55;
  color: rgba(249,249,249,.7);
}
.ca-consent-lnk { color: var(--orange); text-decoration: underline; }
.ca-consent-txt strong { color: rgba(249,249,249,.9); }

.ca-cf7-actions { margin: 8px 0 0; }
.ca-cf7-submit {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 16px 20px;
  min-height: 54px;
  font-family: var(--f1);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--grey-98);
  background: var(--orange);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.ca-cf7-submit:hover:not(:disabled) { background: var(--orange-hover); transform: translateY(-1px); }
.ca-cf7-submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }

.ca-cf7-privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 18px 0 0;
  font-size: 12.5px;
  line-height: 1.45;
  color: rgba(249,249,249,.5);
  text-align: center;
}

/* Mensajes del formulario */
.form-msg--success {
  display: block;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 13px;
  color: #f9f9f9;
  background: rgba(52,168,83,.18);
  border: 1px solid rgba(52,168,83,.35);
}
.form-msg--error {
  display: block;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 13px;
  color: #f9f9f9;
  background: rgba(234,67,53,.18);
  border: 1px solid rgba(234,67,53,.35);
}
.form-msg--sending {
  display: block;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 13px;
  color: rgba(249,249,249,.75);
  background: rgba(207,113,50,.15);
  border: 1px solid rgba(207,113,50,.3);
}

/* ===================================================
   FOOTER
   =================================================== */
.sec-ft {
  background: #f2f2f2;
  color: #000;
  width: 100%;
  padding: 0 24px;
  font-family: var(--f1);
  font-weight: 400;
  font-style: normal;
}
.sec-ft-inner {
  width: 100%;
  max-width: 1288px;
  margin: 0 auto;
  padding: 64px 44px 0;
}

.ft-grid {
  display: grid;
  grid-template-columns: 453px 339px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  padding-bottom: 64px;
}
@media (max-width: 1240px) { .ft-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } .ft-col--brand { grid-column: 1/-1; } }
@media (max-width: 768px) {
  .sec-ft { padding: 0 16px; }
  .sec-ft-inner { padding: 48px 20px 0; }
  .ft-grid { grid-template-columns: minmax(0,1fr); gap: 32px; padding-bottom: 48px; }
  .ft-col--brand { grid-column: auto; }
}

.ft-logo { width: 300px; height: 162px; max-width: 100%; margin: 0 0 20px; }
.ft-logo-img { display: block; width: 100%; height: 100%; overflow: visible; }
.ft-logo-c { fill: #000; }
.ft-logo-a { fill: var(--orange); }
@media (max-width: 480px) { .ft-logo { width: 230px; height: 124px; } }
.ft-desc {
  font-family: var(--f1);
  font-size: 18px;
  font-weight: 600;
  line-height: 31.5px;
  color: #000;
  margin: 0;
  max-width: 453px;
}

.ft-soc { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 20px; }
.ft-soc a {
  width: 45px; height: 45px;
  border-radius: 50%;
  background: var(--orange);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  text-decoration: none;
  transition: background .22s ease;
}
.ft-soc a:hover { background: var(--orange-hover); }
.ft-soc svg { width: 20px; height: 20px; display: block; }

.ft-h {
  font-family: var(--f1);
  font-weight: 700;
  font-size: 14.43px;
  letter-spacing: 3.1px;
  text-transform: uppercase;
  color: #000;
  margin: 0 0 26px;
}
.ft-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.ft-list a,
.ft-static {
  font-family: var(--f1);
  font-size: 18px;
  font-weight: 400;
  line-height: 28.8px;
  color: #000;
  text-decoration: none;
}
.ft-list a { transition: color .22s ease; }
.ft-list a:hover { color: var(--orange); }
.ft-static a { font: inherit; color: inherit; text-decoration: none; transition: color .22s ease; }
.ft-static a:hover { color: var(--orange); }
.ft-stack-gap { margin-top: 36px; }

.ft-bar {
  max-width: 1288px;
  margin: 0 auto;
  border-top: 1px solid rgba(0,0,0,.22);
  padding: 26px 44px 24px;
}
.ft-bar-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 40px;
}
.ft-bar span {
  font-family: var(--f1);
  font-size: 15.62px;
  font-weight: 400;
  line-height: 25.07px;
  color: #000;
}
@media (max-width: 768px) {
  .ft-bar { padding: 22px 20px 24px; }
  .ft-bar-inner { flex-direction: column; align-items: flex-start; }
}

/* ===================================================
   FLOTANTES: VOLVER ARRIBA + WHATSAPP
   =================================================== */
.ca-totop {
  position: fixed;
  right: 24px;
  bottom: 92px;
  z-index: 90;
  width: 48px; height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: var(--orange);
  border: 1px solid var(--orange);
  border-radius: 4px;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease, background .22s ease, color .22s ease;
}
.ca-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.ca-totop:hover { background: var(--orange); color: #fff; }
.ca-totop svg { width: 20px; height: 20px; }

.ca-wa {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px 12px 16px;
  background: #25d366;
  color: #fff;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  transition: background .22s ease, transform .22s ease;
}
.ca-wa:hover { background: #1fb855; transform: translateY(-2px); }
.ca-wa svg { width: 24px; height: 24px; flex-shrink: 0; }
.ca-wa__txt { font-family: var(--f1); font-size: 16px; font-weight: 500; line-height: 1; white-space: nowrap; }
@media (max-width: 600px) {
  .ca-wa { padding: 14px; }
  .ca-wa__txt { display: none; }
  .ca-totop { right: 20px; bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) {
  .ca-totop, .ca-wa { transition: none; }
}

.ft-anim {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--ft-delay, 0ms);
}
.sec-ft.is-inview .ft-anim { opacity: 1; transform: translateY(0); }

/* ===================================================
   REDUCED MOTION
   =================================================== */
@media (prefers-reduced-motion: reduce) {
  .nos-anim, .deu-anim, .tst-anim, .c-anim, .ft-anim, .srv-card,
  .ca-cookie-banner, .team-card__panel, .team-card__photo,
  .tst-track, .tst-dot, .deu-lnk, .btn-o, .btn-g, .btn-nos,
  .ca-site-header__toggle, .ca-site-header__cta {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  .ca-cookie-banner.is-visible { transform: none !important; }
  .hero-slide { transform: none !important; transition: opacity .2s linear !important; }
  .hero-slide.is-leaving { opacity: 0 !important; }
  .hero-dot.is-on::after { transition: none !important; width: 100% !important; }
  .tst-marquee { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ===================================================
   PÁGINAS LEGALES (política de privacidad / términos)
   =================================================== */
.legal-main { background: #fff; font-family: var(--f1); }
.legal-head {
  background: #f2f2f2;
  border-bottom: 1px solid var(--stroke-12);
  padding: 56px 24px 44px;
}
.legal-head-inner, .legal-wrap { max-width: 880px; margin: 0 auto; }
.legal-eye {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3.1px;
  text-transform: uppercase;
  color: var(--orange);
  margin: 0 0 10px;
}
.legal-h1 {
  font-family: var(--f1);
  font-size: clamp(30px, 4.4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.5px;
  color: #0a0a0a;
  margin: 0 0 14px;
}
.legal-lead { font-size: 18px; line-height: 30px; color: var(--text-90); margin: 0; max-width: 60ch; }
.legal-meta { font-size: 14.5px; color: var(--text-60); margin: 18px 0 0; }

.legal-wrap { padding: 44px 24px 80px; }
.legal-toc {
  background: #f7f6f3;
  border-left: 3px solid var(--orange);
  padding: 20px 24px;
  margin: 0 0 44px;
}
.legal-toc h2 { font-size: 13px; font-weight: 700; letter-spacing: 2.6px; text-transform: uppercase; margin: 0 0 12px; color: #0a0a0a; }
.legal-toc ol { margin: 0; padding-left: 20px; columns: 2; column-gap: 32px; }
.legal-toc li { font-size: 15.5px; line-height: 26px; margin-bottom: 4px; break-inside: avoid; }
.legal-toc a { color: var(--text-90); text-decoration: none; }
.legal-toc a:hover { color: var(--orange); text-decoration: underline; }
@media (max-width: 620px) { .legal-toc ol { columns: 1; } }

.legal-wrap h2 {
  font-size: clamp(21px, 2.6vw, 25px);
  font-weight: 700;
  line-height: 1.25;
  color: #0a0a0a;
  margin: 46px 0 14px;
  scroll-margin-top: 110px;
}
.legal-wrap h2:first-of-type { margin-top: 0; }
.legal-wrap h3 { font-size: 18px; font-weight: 700; color: #0a0a0a; margin: 26px 0 8px; }
.legal-wrap p { font-size: 17px; line-height: 30px; color: var(--text-90); margin: 0 0 16px; }
.legal-wrap ul { margin: 0 0 18px; padding-left: 22px; }
.legal-wrap li { font-size: 17px; line-height: 29px; color: var(--text-90); margin-bottom: 8px; }
.legal-wrap a { color: var(--orange); text-decoration: underline; text-underline-offset: 2px; }
.legal-wrap a:hover { color: var(--orange-hover); }
.legal-wrap strong { font-weight: 700; color: #0a0a0a; }

.legal-note {
  background: var(--orange-light);
  border: 1px solid var(--orange-border);
  border-radius: 8px;
  padding: 18px 22px;
  margin: 28px 0;
}
.legal-note p { margin: 0; font-size: 16px; line-height: 27px; }
.legal-table { width: 100%; border-collapse: collapse; margin: 8px 0 24px; }
.legal-table th, .legal-table td {
  border: 1px solid var(--stroke-12);
  padding: 11px 14px;
  font-size: 15.5px;
  line-height: 24px;
  text-align: left;
  vertical-align: top;
  color: var(--text-90);
}
.legal-table th { background: #f7f6f3; font-weight: 700; color: #0a0a0a; }
.legal-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 40px;
  padding: 13px 22px;
  border: 1px solid var(--orange);
  border-radius: 4px;
  color: var(--orange);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background .22s ease, color .22s ease;
}
.legal-back:hover { background: var(--orange); color: #fff; text-decoration: none; }

/* ===================================================
   AJUSTES RESPONSIVOS TRANSVERSALES
   =================================================== */

/* Sin desbordes horizontales en ningún ancho */
html, body { max-width: 100%; }
img, svg, video, table { max-width: 100%; }

/* Áreas seguras (notch / barra de gestos) para los flotantes */
.ca-wa { right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom)); }
.ca-totop { right: max(24px, env(safe-area-inset-right)); bottom: calc(max(24px, env(safe-area-inset-bottom)) + 68px); }

/* Táctil: sin hover no hay forma de leer la descripción de los servicios,
   por lo que se muestra siempre y la tarjeta crece según su contenido. */
@media (hover: none) {
  .srv-card-desc { max-height: none; opacity: 1; margin-top: 10px; }
  .srv-card-body { position: relative; inset: auto; min-height: 100%; }
  .srv-card { min-height: 240px; }
  .srv-card::after { background: linear-gradient(to top, rgba(0,0,0,.96) 0%, rgba(0,0,0,.78) 55%, rgba(0,0,0,.45) 100%); }
}

/* Tabla de datos de la política de privacidad */
.legal-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 8px 0 24px; }
.legal-table-wrap .legal-table { margin: 0; min-width: 520px; }

/* Tablets y pantallas medianas */
@media (max-width: 1024px) {
  .sec-pad { padding: 64px 22px; }
  .srv-row { margin-bottom: 40px; }
  .eq-hdr { margin-bottom: 36px; }
}

/* Teléfonos */
@media (max-width: 640px) {
  .sec-pad { padding: 52px 18px; }
  .ca-site-header__inner { padding: 12px 18px; }
  .ca-site-header__logo-img { max-height: 44px; }
  .ca-site-header__spacer { height: 68px; }
  .bg-eq { padding: 52px 0; }
  .team-card, .team-card__photo-wrap { border-radius: 26px; }
  .team-card__panel-inner { padding: 62px 22px 26px; }
  .ca-cf7-box { padding: 26px 20px; }
  .legal-head { padding: 40px 18px 32px; }
  .legal-wrap { padding: 32px 18px 60px; }
  .legal-wrap p, .legal-wrap li { font-size: 16px; line-height: 27px; }
}

/* Teléfonos pequeños */
@media (max-width: 420px) {
  .team-card__name {
    white-space: normal;
    line-height: 1.35;
    letter-spacing: 1.6px;
    padding: 8px 14px;
    max-width: calc(100% - 20px);
  }
  .team-card__panel-inner { padding: 78px 18px 22px; }
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .btn-o, .btn-g { width: 100%; text-align: center; justify-content: center; }
  .ca-cookie-btns { width: 100%; }
  .ca-cookie-btn { flex: 1; }
  .ft-soc a { width: 42px; height: 42px; }
  .legal-toc { padding: 16px 18px; }
}

/* Estado inválido del consentimiento del formulario */
.ca-consent-label.is-invalid .ca-consent-txt { color: #f2a09a; }
.ca-consent-label.is-invalid .ca-consent-chk { outline: 2px solid rgba(234,67,53,.7); outline-offset: 2px; border-radius: 3px; }


/* ===================================================
   CLASES DE PRESENTACIÓN (sustituyen a los estilos en línea)
   Permiten una CSP sin 'unsafe-inline' en style-src.
   =================================================== */
.bg-cover { background-size: cover; background-position: center; background-attachment: fixed; background-repeat: no-repeat; }
.bg-srv { background-image: url('img/bg-servicios_legales.jpg'); }
.bg-eq  { background-image: url('img/bg-abogados.jpg'); padding: 80px 0; }
.bg-tst { background-image: url('img/bg-testimonios-v2.jpeg'); padding: 120px 0; }
.bg-con { background-image: url('img/bg-contactanos.jpg'); }
.sec-bar { background: var(--orange); }

.srv-card-circle--xl { width: 324px; height: 324px; top: -74.85px; right: -74.85px; }
.srv-card-circle--lg { width: 249px; height: 249px; top: -62px;    right: -62px; }
.srv-card-circle--md { width: 199px; height: 199px; top: -50px;    right: -50px; }
.srv-card-circle--alert { border-color: rgba(139,0,32,.5); }
.srv-card-deco-line--a { top: 50%; }
.srv-card-deco-line--b { top: 42%; }
.srv-card-deco-line--c { top: 44%; }

/* Trampa antispam: invisible para personas, presente para bots */
.cf-honey { position: absolute; left: -9999px; width: 0; height: 0; opacity: 0; pointer-events: none; }

#form-message {
  display: none;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 8px;
  font-family: var(--f1);
  font-size: 13px;
}

/* Retardos de las animaciones de entrada */
[data-d="0"] { --nos-delay:0ms; --srv-delay:0ms; --deu-delay:0ms; --tst-delay:0ms; --con-delay:0ms; --ft-delay:0ms; }
[data-d="60"] { --nos-delay:60ms; --srv-delay:60ms; --deu-delay:60ms; --tst-delay:60ms; --con-delay:60ms; --ft-delay:60ms; }
[data-d="90"] { --nos-delay:90ms; --srv-delay:90ms; --deu-delay:90ms; --tst-delay:90ms; --con-delay:90ms; --ft-delay:90ms; }
[data-d="140"] { --nos-delay:140ms; --srv-delay:140ms; --deu-delay:140ms; --tst-delay:140ms; --con-delay:140ms; --ft-delay:140ms; }
[data-d="150"] { --nos-delay:150ms; --srv-delay:150ms; --deu-delay:150ms; --tst-delay:150ms; --con-delay:150ms; --ft-delay:150ms; }
[data-d="180"] { --nos-delay:180ms; --srv-delay:180ms; --deu-delay:180ms; --tst-delay:180ms; --con-delay:180ms; --ft-delay:180ms; }
[data-d="200"] { --nos-delay:200ms; --srv-delay:200ms; --deu-delay:200ms; --tst-delay:200ms; --con-delay:200ms; --ft-delay:200ms; }
[data-d="210"] { --nos-delay:210ms; --srv-delay:210ms; --deu-delay:210ms; --tst-delay:210ms; --con-delay:210ms; --ft-delay:210ms; }
[data-d="220"] { --nos-delay:220ms; --srv-delay:220ms; --deu-delay:220ms; --tst-delay:220ms; --con-delay:220ms; --ft-delay:220ms; }
[data-d="270"] { --nos-delay:270ms; --srv-delay:270ms; --deu-delay:270ms; --tst-delay:270ms; --con-delay:270ms; --ft-delay:270ms; }
[data-d="280"] { --nos-delay:280ms; --srv-delay:280ms; --deu-delay:280ms; --tst-delay:280ms; --con-delay:280ms; --ft-delay:280ms; }
[data-d="310"] { --nos-delay:310ms; --srv-delay:310ms; --deu-delay:310ms; --tst-delay:310ms; --con-delay:310ms; --ft-delay:310ms; }
[data-d="340"] { --nos-delay:340ms; --srv-delay:340ms; --deu-delay:340ms; --tst-delay:340ms; --con-delay:340ms; --ft-delay:340ms; }
[data-d="360"] { --nos-delay:360ms; --srv-delay:360ms; --deu-delay:360ms; --tst-delay:360ms; --con-delay:360ms; --ft-delay:360ms; }
[data-d="400"] { --nos-delay:400ms; --srv-delay:400ms; --deu-delay:400ms; --tst-delay:400ms; --con-delay:400ms; --ft-delay:400ms; }
[data-d="430"] { --nos-delay:430ms; --srv-delay:430ms; --deu-delay:430ms; --tst-delay:430ms; --con-delay:430ms; --ft-delay:430ms; }
[data-d="450"] { --nos-delay:450ms; --srv-delay:450ms; --deu-delay:450ms; --tst-delay:450ms; --con-delay:450ms; --ft-delay:450ms; }
[data-d="460"] { --nos-delay:460ms; --srv-delay:460ms; --deu-delay:460ms; --tst-delay:460ms; --con-delay:460ms; --ft-delay:460ms; }
[data-d="490"] { --nos-delay:490ms; --srv-delay:490ms; --deu-delay:490ms; --tst-delay:490ms; --con-delay:490ms; --ft-delay:490ms; }
[data-d="500"] { --nos-delay:500ms; --srv-delay:500ms; --deu-delay:500ms; --tst-delay:500ms; --con-delay:500ms; --ft-delay:500ms; }
[data-d="520"] { --nos-delay:520ms; --srv-delay:520ms; --deu-delay:520ms; --tst-delay:520ms; --con-delay:520ms; --ft-delay:520ms; }
[data-d="540"] { --nos-delay:540ms; --srv-delay:540ms; --deu-delay:540ms; --tst-delay:540ms; --con-delay:540ms; --ft-delay:540ms; }
[data-d="570"] { --nos-delay:570ms; --srv-delay:570ms; --deu-delay:570ms; --tst-delay:570ms; --con-delay:570ms; --ft-delay:570ms; }
[data-d="580"] { --nos-delay:580ms; --srv-delay:580ms; --deu-delay:580ms; --tst-delay:580ms; --con-delay:580ms; --ft-delay:580ms; }
[data-d="630"] { --nos-delay:630ms; --srv-delay:630ms; --deu-delay:630ms; --tst-delay:630ms; --con-delay:630ms; --ft-delay:630ms; }
[data-d="640"] { --nos-delay:640ms; --srv-delay:640ms; --deu-delay:640ms; --tst-delay:640ms; --con-delay:640ms; --ft-delay:640ms; }
[data-d="730"] { --nos-delay:730ms; --srv-delay:730ms; --deu-delay:730ms; --tst-delay:730ms; --con-delay:730ms; --ft-delay:730ms; }

/* Relevo de textos del banner, sincronizado con el fundido de la imagen */
/* Tecleo en vivo: el texto se escribe carácter a carácter después de que la
   fotografía entra. El cursor parpadeante acompaña al elemento activo. */
.is-typing::after {
  content: "";
  display: inline-block;
  width: .07em;
  height: .95em;
  margin-left: .08em;
  background: currentColor;
  vertical-align: -.09em;
  animation: ca-caret 1.05s steps(1) infinite;
}
@keyframes ca-caret { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }

/* Alturas reservadas: el texto crece mientras se escribe y sin esto los
   botones de abajo saltarían en cada diapositiva. */
.hero-h1 { min-height: 2.16em; }
.hero-eyebrow { min-height: 1.2em; }
@media (max-width: 768px) { .hero-h1 { min-height: 2.2em; } }
.hero-body { min-height: 5.2em; }
@media (max-width: 768px) { .hero-body { min-height: 0; } }
