/* ==========================================================================
   Áurea Legal — hoja de estilos del tema
   Sistema visual definido en el documento de arquitectura.
   Regla que sostiene todo: oro claro SOLO sobre negro, oro profundo SOLO
   sobre blanco. Todos los pares de color superan 4,5:1 (WCAG AA).
   ========================================================================== */

/* ---------- Tipografías autoalojadas ---------------------------------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/libre-franklin-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/libre-franklin-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/libre-franklin-latin-600-normal.woff2') format('woff2')}

/* ---------- Tokens ---------------------------------------------------- */
:root{
  --negro:#0B0B0B;
  --negro-2:#060606;
  --blanco:#FFFFFF;
  --crema:#F7F5EF;

  --oro:#EFCB92;          /* 12,77:1 sobre negro — nunca sobre blanco */
  --oro-claro:#FFF0CE;
  --oro-profundo:#8A6508; /* 5,32:1 sobre blanco — nunca sobre negro */
  --oro-filete:#B8860B;   /* solo filetes y bordes, nunca texto */

  --texto-claro:#F5F1E8;  /* 17,46:1 sobre negro */
  --texto-claro-2:#B3AA99;/*  8,55:1 sobre negro */
  --texto:#1A1A1A;        /* 17,40:1 sobre blanco */
  --texto-2:#54504A;      /*  8,01:1 sobre blanco */

  --linea-clara:#E2DED4;
  --linea-oscura:#241F14;

  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Libre Franklin',system-ui,-apple-system,'Segoe UI',sans-serif;

  --ancho:1440px;
  --gutter:80px;
  --radio:0px;
}

/* ---------- Base ------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--negro);color:var(--texto);
  font-family:var(--sans);font-size:18px;line-height:1.7;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block}
svg{display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.14;margin:0}
h3,h4{font-weight:600}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:var(--oro-profundo);text-decoration:none}
a:hover{color:var(--texto)}
ul{margin:0;padding:0;list-style:none}

:focus-visible{outline:2px solid var(--oro-filete);outline-offset:3px}

.saltar{position:absolute;left:-9999px;top:0;z-index:999;padding:14px 22px;
  background:var(--oro);color:var(--negro);font-weight:600}
.saltar:focus{left:12px;top:12px}

.solo-lectores{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Estructura ------------------------------------------------ */
.contenedor{max-width:var(--ancho);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.seccion{padding:84px 0}
.seccion--oscura{background:var(--negro);color:var(--texto-claro)}
.seccion--clara{background:var(--blanco);color:var(--texto)}
.seccion--crema{background:var(--crema);color:var(--texto)}
.seccion--oscura h1,.seccion--oscura h2,.seccion--oscura h3{color:var(--texto-claro)}
.seccion--oscura p{color:var(--texto-claro-2)}
.seccion--clara p,.seccion--crema p{color:var(--texto-2)}

/* etiqueta de sección */
.etiqueta{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.etiqueta::before{content:"";width:46px;height:1px;background:var(--oro-filete);flex-shrink:0}
.etiqueta span{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.seccion--oscura .etiqueta span{color:var(--oro)}
.seccion--clara .etiqueta span,.seccion--crema .etiqueta span{color:var(--oro-profundo)}
.etiqueta--simple::before{display:none}
/* El banner no es .seccion--oscura, así que sin esto la etiqueta heredaba el
   color de texto oscuro y quedaba gris sobre negro: ilegible. */
.banner .etiqueta span,.banner-interior .etiqueta span,.cierre .etiqueta span{color:var(--oro)}

.titulo-seccion{font-size:46px;margin-bottom:18px}
.entradilla{font-size:18px;max-width:680px}

/* filete con rombo, igual al del logo */
.filete{display:flex;align-items:center;gap:14px;margin:0}
.filete::before,.filete::after{content:"";height:1px;background:var(--oro-filete);flex:1;opacity:.55}
.filete i{width:7px;height:7px;background:var(--oro-filete);transform:rotate(45deg);flex-shrink:0}

/* ---------- Botones --------------------------------------------------- */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 34px;font-family:var(--sans);font-size:15px;font-weight:600;
  letter-spacing:.05em;border:1px solid transparent;border-radius:var(--radio);
  cursor:pointer;transition:background .2s,color .2s,border-color .2s;text-align:center}
.boton--principal{background:var(--oro);color:var(--negro)}
.boton--principal:hover{background:var(--oro-claro);color:var(--negro)}
.boton--linea{background:transparent;color:var(--oro);border-color:var(--oro-filete);font-weight:500}
.boton--linea:hover{background:rgba(239,203,146,.08);color:var(--oro-claro)}
.boton--oscuro{background:var(--texto);color:var(--blanco)}
.boton--oscuro:hover{background:var(--oro-profundo);color:var(--blanco)}
.enlace-sub{font-size:15px;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:3px}

/* ---------- Encabezado ------------------------------------------------ */
.sitio-cabecera{position:absolute;top:0;left:0;right:0;z-index:40;background:transparent;
  transition:background .25s,border-color .25s}
.sitio-cabecera--fija{position:fixed;background:rgba(11,11,11,.96);
  border-bottom:1px solid var(--linea-oscura);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sitio-cabecera--solida{position:relative;background:var(--negro);border-bottom:1px solid var(--linea-oscura)}
/* Con sesión iniciada, la barra de WordPress se monta encima del encabezado
   y recorta el logo. Solo afecta a quien está logueado, pero se ve roto. */
body.admin-bar .sitio-cabecera{top:32px}
body.admin-bar .sitio-cabecera--fija{top:32px}
@media screen and (max-width:782px){
  body.admin-bar .sitio-cabecera,body.admin-bar .sitio-cabecera--fija{top:46px}
}
@media screen and (max-width:600px){
  body.admin-bar .sitio-cabecera--fija{position:absolute}
}
.cabecera-fila{display:flex;align-items:center;gap:48px;min-height:96px}
.marca{display:flex;align-items:center;flex-shrink:0}
.marca img{width:168px}
.menu{margin-left:auto;display:flex;align-items:center;gap:34px}
.menu a{font-size:14px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--texto-claro)}
.menu a:hover,.menu .current-menu-item>a,.menu .current_page_item>a{color:var(--oro)}
.menu .current-menu-item>a,.menu .current_page_item>a{border-bottom:1px solid var(--oro-filete);padding-bottom:5px}

.menu-boton{display:none;width:44px;height:44px;margin-left:auto;background:none;border:0;
  padding:0;cursor:pointer;flex-direction:column;justify-content:center;align-items:flex-end;gap:6px}
.menu-boton span{display:block;width:24px;height:1px;background:var(--oro);transition:transform .2s,opacity .2s}
.menu-boton span:nth-child(2){width:18px}
.menu-boton[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-boton[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-boton[aria-expanded="true"] span:nth-child(3){width:24px;transform:translateY(-7px) rotate(-45deg)}

/* ---------- Banner ---------------------------------------------------- */
.banner{position:relative;background:var(--negro);overflow:hidden;min-height:760px;display:flex;align-items:center}
.banner__foto{position:absolute;top:0;bottom:0;right:0;width:620px;height:auto;
  object-fit:cover;object-position:60% 18%}
.banner__velo{position:absolute;top:0;bottom:0;right:0;width:620px;
  background:linear-gradient(to right,var(--negro) 0%,rgba(11,11,11,.86) 22%,rgba(11,11,11,0) 62%)}
/* width:100% es indispensable: .banner es flex y el contenedor, sin ancho
   declarado, se encogía al tamaño de su contenido; el margin:0 auto lo
   centraba y el texto arrancaba a un tercio de la pantalla, con un vacío
   negro enorme a la izquierda en lugar de pegarse al margen. */
.banner__texto{position:relative;z-index:2;width:100%;padding-top:96px}
.banner__texto>*{max-width:660px}
.banner__titulo{font-size:68px;color:var(--texto-claro);margin-bottom:22px}
.banner__titulo em{font-style:italic;color:var(--oro);font-weight:500}
.banner__bajada{font-size:18px;color:var(--texto-claro-2);max-width:520px;margin-bottom:40px}
.banner__acciones{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* banner interior, para páginas que no son el inicio */
.banner-interior{background:var(--negro);padding:150px 0 70px}
.banner-interior h1{font-size:56px;color:var(--texto-claro);margin-bottom:20px;max-width:900px}
.banner-interior p{font-size:19px;color:var(--texto-claro-2);max-width:740px}
.migas{display:flex;align-items:center;gap:10px;margin-bottom:22px;font-size:13px}
.migas a{color:var(--texto-claro-2)}
.migas a:hover{color:var(--oro)}
.migas span{color:var(--oro)}
.migas i{color:#6E675B;font-style:normal}

/* ---------- Pilares --------------------------------------------------- */
.pilares{display:flex;align-items:stretch;gap:0}
.pilar{flex:1 1 0;padding:0 48px;display:flex;flex-direction:column;gap:12px}
.pilar:first-child{padding-left:0}
.pilar:last-child{padding-right:0}
.pilar+.pilar{border-left:1px solid var(--linea-oscura)}
.pilar h3{font-size:25px}
.pilar p{font-size:15px;line-height:1.65}
.pilar svg{width:30px;height:30px;stroke:var(--oro);fill:none;stroke-width:1.2}

/* ---------- Rejilla de áreas ------------------------------------------ */
.rejilla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rejilla--2{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}
.cabecera-flex{display:flex;align-items:flex-end;gap:40px;margin-bottom:52px}
.cabecera-flex>div{flex:1}

.tarjeta{display:block;padding:32px 30px;border:1px solid var(--linea-clara);background:var(--blanco);
  min-height:196px;transition:border-color .2s,transform .2s}
.tarjeta:hover{border-color:var(--oro-filete);transform:translateY(-2px)}
.tarjeta svg{width:28px;height:28px;stroke:var(--oro-profundo);fill:none;stroke-width:1.3}
.tarjeta h3{font-size:25px;margin:18px 0 8px;color:var(--texto)}
.tarjeta p{font-size:14px;line-height:1.65;color:var(--texto-2);margin:0}
.tarjeta--oscura{background:var(--negro);border-color:var(--negro);
  display:flex;flex-direction:column;justify-content:center}
.tarjeta--oscura:hover{transform:none;border-color:var(--oro-filete)}
.tarjeta--oscura h3{color:var(--oro);margin-top:0}
.tarjeta--oscura p{color:var(--texto-claro-2);margin-bottom:18px}
.tarjeta--oscura .enlace-sub{color:var(--oro);align-self:flex-start;font-size:14px}

/* ---------- Franja de respaldo ---------------------------------------- */
.cifras{display:flex;align-items:center}
.cifra{flex:1 1 0;text-align:center;padding:0 20px}
.cifra+.cifra{border-left:1px solid var(--linea-clara)}
.cifra b{display:block;font-family:var(--serif);font-size:56px;font-weight:600;
  color:var(--oro-profundo);line-height:1}
.cifra__rotulo{display:block;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--oro-profundo)}
.cifra b+.cifra__rotulo{margin-top:12px}
.cifra span{display:block;margin-top:10px;font-size:14px;line-height:1.55;color:var(--texto-2)}

/* ---------- Perfiles -------------------------------------------------- */
.perfil{display:flex;align-items:center;gap:72px}
.perfil__foto{width:400px;height:488px;object-fit:cover;object-position:50% 18%;flex-shrink:0}
.perfil__cuerpo{flex:1}
.perfil h2{font-size:46px;margin:16px 0 14px}
.perfil__especialidad{font-size:15px;font-style:italic;margin-bottom:18px}
.seccion--oscura .perfil__especialidad{color:var(--oro)}
.seccion--clara .perfil__especialidad,.seccion--crema .perfil__especialidad{color:var(--oro-profundo)}
.ficha .perfil__especialidad{font-size:13px;margin:0 0 10px}
.equipo__cita{font-family:var(--serif);font-size:22px;font-style:italic;line-height:1.5;
  color:var(--oro);max-width:760px;margin-top:20px;
  border-left:1px solid var(--oro-filete);padding-left:20px}
.credenciales-bloque{margin:0 0 30px}
.credenciales-rotulo{display:block;font-size:11px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:12px}
.seccion--oscura .credenciales-rotulo{color:var(--oro)}
.seccion--clara .credenciales-rotulo,.seccion--crema .credenciales-rotulo{color:var(--oro-profundo)}
.credenciales{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;
  max-width:680px;margin:0}
.credenciales--simple{grid-template-columns:1fr;gap:8px;max-width:none}
.ficha .credenciales-bloque,.asistente .credenciales-bloque{margin-bottom:16px}
.ficha .credenciales li,.asistente .credenciales li{font-size:13px;line-height:1.6}
.credenciales li{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.7}
.credenciales li::before{content:"\25C6";color:var(--oro-filete);font-size:12px;line-height:1.7;flex-shrink:0}
.seccion--oscura .credenciales li{color:var(--texto-claro)}
.seccion--clara .credenciales li{color:var(--texto)}

/* ficha de equipo: b/n cálido que recupera color al pasar el cursor */
/* ---------- Ajuste tipográfico fino -----------------------------------
   Titulares repartidos en líneas parejas y párrafos sin última línea de una
   sola palabra.

   El texto va justificado de 901px para arriba, que es donde la columna da
   para hacerlo sin abrir huecos. La partición de palabras va con freno:
   hyphenate-limit-chars 10 5 4 significa que solo parte palabras de 10 letras
   o más y deja al menos 5 antes del guion y 4 después. Sin ese freno el
   navegador corta «es-pecialistas», que en una web de abogados se lee como un
   error de tipeo. La bajada del banner se justifica sin partir nada: es el
   primer texto que se lee y ahí cualquier guion canta. */
h1,h2,h3,.titulo-seccion,.banner__titulo,.cierre h2{text-wrap:balance}
p,li{text-wrap:pretty}

@media (min-width:901px){
  .perfil__cuerpo>p:not(.perfil__especialidad),
  .ficha p:not(.perfil__especialidad),
  .asistente p:not(.perfil__especialidad),
  .entradilla,
  .banner__bajada,
  .prosa p{
    text-align:justify;
    text-align-last:left;
    text-justify:inter-word;
  }

  .perfil__cuerpo>p:not(.perfil__especialidad),
  .ficha p:not(.perfil__especialidad),
  .asistente p:not(.perfil__especialidad),
  .entradilla,
  .prosa p{
    hyphens:auto;
    -webkit-hyphens:auto;
    hyphenate-limit-chars:10 5 4;
    -webkit-hyphenate-limit-before:5;
    -webkit-hyphenate-limit-after:4;
    -webkit-hyphenate-limit-lines:2;
  }

  /* nada de guiones en la bajada del banner */
  .banner__bajada{hyphens:none;-webkit-hyphens:none;max-width:560px}
}

.ficha{display:flex;gap:28px}
.ficha__foto{width:240px;height:300px;object-fit:cover;object-position:50% 16%;flex-shrink:0;
  filter:grayscale(1) sepia(.18) brightness(1.02);transition:filter .35s}
.ficha:hover .ficha__foto{filter:none}
.ficha h3{font-size:28px;margin:10px 0 12px}
.ficha p{font-size:14px;line-height:1.7;margin-bottom:16px}
.rol{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--oro-profundo)}
.lidera{border-top:1px solid var(--linea-clara);padding-top:12px}
.lidera b{display:block;font-size:11px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--oro-profundo);margin-bottom:6px}
.lidera a{display:block;font-size:14px;line-height:1.8;color:var(--texto)}
.lidera a:hover{color:var(--oro-profundo)}

.asistente{display:flex;align-items:center;gap:32px;padding-top:44px;border-top:1px solid var(--linea-clara)}
.asistente img{width:150px;height:185px;object-fit:cover;object-position:50% 14%;flex-shrink:0;
  filter:grayscale(1) sepia(.18) brightness(1.02);transition:filter .35s}
.asistente:hover img{filter:none}
.asistente__lema{padding-left:32px;border-left:1px solid var(--linea-clara);flex-shrink:0}
.asistente__lema p{font-family:var(--serif);font-size:22px;font-style:italic;
  line-height:1.4;color:var(--oro-profundo);max-width:210px;margin:0}

/* ---------- Área de práctica ------------------------------------------ */
.dos-columnas{display:flex;gap:80px}
.dos-columnas__izq{width:520px;flex-shrink:0}
.dos-columnas__der{flex:1}
.servicios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 32px;margin-top:22px}
.servicio{border-top:1px solid var(--linea-clara);padding-top:16px}
.servicio h3{font-size:21px;margin-bottom:6px}
.servicio p{font-size:14px;line-height:1.6;margin:0}

/* acordeón */
.faq{border-top:1px solid var(--linea-clara)}
.faq__item{border-bottom:1px solid var(--linea-clara)}
.faq__boton{width:100%;display:flex;align-items:center;gap:20px;padding:22px 0;background:none;
  border:0;cursor:pointer;text-align:left;font-family:var(--sans);font-size:17px;
  font-weight:600;color:var(--texto);min-height:44px}
.faq__boton:hover{color:var(--oro-profundo)}
.faq__boton i{margin-left:auto;font-style:normal;font-size:24px;line-height:1;
  color:var(--oro-profundo);flex-shrink:0;transition:transform .2s}
.faq__boton[aria-expanded="true"] i{transform:rotate(45deg)}
.faq__panel{padding:0 0 22px;max-width:980px}
.faq__panel p{font-size:15px;line-height:1.7;margin:0}
.faq__panel[hidden]{display:none}

/* ---------- Cobertura ------------------------------------------------- */
.cobertura{display:flex;align-items:center;gap:80px}
.cobertura__datos{width:330px;flex-shrink:0;border:1px solid var(--linea-oscura);
  display:flex;flex-direction:column;gap:1px;background:var(--linea-oscura)}
.cobertura__datos div{background:var(--negro);padding:20px 24px}
.cobertura__datos b{display:block;font-size:12px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--texto-claro-2)}
.cobertura__datos span{display:block;margin-top:6px;font-size:17px;color:var(--texto-claro)}
.cobertura__datos div:first-child span{color:var(--oro)}

/* ---------- Cierre ---------------------------------------------------- */
.cierre{text-align:center;padding:90px 0}
.cierre img{width:52px;margin:0 auto 26px}
.cierre h2{font-size:42px;color:var(--texto-claro);margin-bottom:26px}

/* ---------- Formulario ------------------------------------------------ */
.form-contacto{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;max-width:720px}
.campo{display:flex;flex-direction:column;gap:8px}
.campo--ancho{grid-column:1 / -1}
.campo label{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--texto-2)}
.campo input,.campo select,.campo textarea{font-family:var(--sans);font-size:16px;color:var(--texto);
  padding:14px 16px;border:1px solid var(--linea-clara);background:var(--blanco);
  border-radius:var(--radio);min-height:52px;width:100%}
.campo textarea{min-height:140px;resize:vertical;line-height:1.6}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--oro-filete);outline:none}
.campo--acepto{grid-column:1 / -1;flex-direction:row;align-items:flex-start;gap:12px}
.campo--acepto input{width:20px;height:20px;min-height:0;margin-top:2px;flex-shrink:0;accent-color:var(--oro-profundo)}
.campo--acepto label{font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.6}
.campo--acepto a{text-decoration:underline}
.trampa{position:absolute;left:-9999px}
.aviso{grid-column:1 / -1;padding:16px 20px;border-left:3px solid var(--oro-profundo);
  background:var(--crema);font-size:15px}
.aviso--error{border-left-color:#8B1A1A;color:#6B1414}
.datos-oficina li{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--linea-clara);font-size:15px}
.datos-oficina b{min-width:110px;font-weight:600;color:var(--texto)}
.datos-oficina span{color:var(--texto-2)}
.mapa{width:100%;aspect-ratio:16/10;border:0;filter:grayscale(1) contrast(1.1)}

/* ---------- Pie ------------------------------------------------------- */
.sitio-pie{background:var(--negro-2);border-top:1px solid var(--linea-oscura);padding:56px 0 28px;color:var(--texto-claro-2)}
.pie-fila{display:flex;gap:80px;margin-bottom:44px}
.pie-col{flex:1 1 0}
.pie-col--marca{width:300px;flex:0 0 300px}
.pie-col--marca img{width:180px;margin-bottom:20px}
.pie-col b{display:block;font-size:12px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--oro);margin-bottom:16px}
.pie-col p,.pie-col a{font-size:14px;line-height:1.8;color:var(--texto-claro-2)}
.pie-col a{display:block}
.pie-col a:hover{color:var(--oro)}
.pie-legal{display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  border-top:1px solid var(--linea-oscura);padding-top:24px}
.pie-legal span{font-size:13px;color:#6E675B}
.pie-legal nav{margin-left:auto;display:flex;gap:28px}
.pie-legal nav a{font-size:13px;color:var(--texto-claro-2)}
.pie-legal nav a:hover{color:var(--oro)}

/* ---------- Aparición suave ------------------------------------------ */
/* El contenido es visible por defecto. Solo se oculta para animarlo cuando el
   navegador confirma que hay JavaScript: si el script falla o está bloqueado,
   la página se lee igual. */
.revelar{opacity:1;transform:none}
.js .revelar{opacity:0;transform:translateY(16px);transition:opacity .45s ease,transform .45s ease}
.js .revelar.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .revelar,.js .revelar{opacity:1;transform:none;transition:none}
  .tarjeta,.ficha__foto,.asistente img{transition:none}
}

/* ---------- Contenido editorial (páginas legales) --------------------- */
.prosa{max-width:760px}
.prosa h2{font-size:32px;margin:44px 0 16px}
.prosa h3{font-size:24px;margin:32px 0 12px}
.prosa p,.prosa li{font-size:17px;line-height:1.8;color:var(--texto-2)}
.prosa ul{list-style:disc;padding-left:22px;margin:0 0 1em}
.prosa li{margin-bottom:8px}
.prosa strong{color:var(--texto)}

/* ==========================================================================
   Adaptación a pantallas menores
   ========================================================================== */
@media (max-width:1180px){
  :root{--gutter:48px}
  .banner__foto,.banner__velo{width:46%}
  .banner__titulo{font-size:56px}
  .dos-columnas{gap:48px}
  .dos-columnas__izq{width:400px}
  .cobertura{gap:48px}
}

@media (max-width:900px){
  :root{--gutter:28px}
  body{font-size:17px}
  .seccion{padding:56px 0}
  .titulo-seccion{font-size:34px}
  .menu{display:none}
  .menu-boton{display:flex}
  .sitio-cabecera{position:relative;background:var(--negro);border-bottom:1px solid var(--linea-oscura)}
  .cabecera-fila{min-height:64px;gap:12px}
  .marca img{width:124px}

  /* menú desplegado */
  .menu.abierto{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    align-items:stretch;gap:0;background:var(--negro);border-bottom:1px solid var(--linea-oscura);
    padding:8px 28px 20px;margin:0}
  .menu.abierto a{padding:16px 0;border-bottom:1px solid var(--linea-oscura);min-height:44px;
    display:flex;align-items:center}
  .menu.abierto .current-menu-item>a{border-bottom:1px solid var(--linea-oscura);padding-bottom:16px}

  .banner{min-height:0;padding:0;display:block}
  .banner__foto,.banner__velo{position:absolute;width:100%;height:640px;right:auto;left:0}
  .banner__foto{object-position:52% 12%}
  /* el negro debe ser sólido donde arranca el texto, si no el titular
     y la línea superior pierden contraste sobre la cara de la foto */
  .banner__velo{background:linear-gradient(to bottom,rgba(11,11,11,.25) 0%,rgba(11,11,11,.72) 34%,var(--negro) 58%)}
  /* el padding abreviado no debe anular el lateral del contenedor */
  .banner__texto{padding:400px var(--gutter) 44px;max-width:none}
  /* la ceja cabe en una sola línea en celular */
  .etiqueta{gap:12px}
  .etiqueta::before{width:32px}
  .etiqueta span{font-size:11px;letter-spacing:.16em}
  .banner__titulo{font-size:40px}
  .banner__bajada{font-size:15px;margin-bottom:24px}
  .banner__acciones{flex-direction:column;align-items:stretch}
  .banner__acciones .boton{width:100%}

  .banner-interior{padding:56px 0 44px}
  .banner-interior h1{font-size:34px}
  .banner-interior p{font-size:16px}
  .equipo__cita{font-size:18px;padding-left:14px;margin-top:16px}

  .pilares{flex-direction:column;gap:28px}
  .pilar{padding:0}
  .pilar+.pilar{border-left:0;border-top:1px solid var(--linea-oscura);padding-top:28px}
  .pilar h3{font-size:22px}

  .rejilla,.rejilla--2{grid-template-columns:1fr;gap:12px}
  .cabecera-flex{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:28px}
  .tarjeta{min-height:0;padding:22px 18px}
  .tarjeta h3{font-size:21px;margin-top:14px}

  .cifras{flex-wrap:wrap;gap:28px 0}
  .cifra{flex:1 1 50%;padding:0 10px}
  .cifra:nth-child(odd){border-left:0}
  .cifra b{font-size:40px}

  .perfil{flex-direction:column;align-items:stretch;gap:26px}
  .perfil__foto{width:100%;height:300px;object-position:50% 16%}
  .perfil h2{font-size:32px;margin:12px 0 18px}
  .credenciales{grid-template-columns:1fr;gap:10px}
  .credenciales-bloque{margin-bottom:22px}

  .ficha{flex-direction:column;gap:18px}
  .ficha__foto{width:100%;height:320px}
  .asistente{flex-wrap:wrap;gap:20px}
  .asistente__lema{padding-left:0;border-left:0;border-top:1px solid var(--linea-clara);
    padding-top:16px;width:100%}
  .asistente__lema p{max-width:none}

  .dos-columnas{flex-direction:column;gap:36px}
  .dos-columnas__izq{width:100%}
  .servicios{grid-template-columns:1fr;gap:18px}

  .cobertura{flex-direction:column;align-items:stretch;gap:28px}
  .cobertura__datos{width:100%}

  .cierre{padding:56px 0}
  .cierre h2{font-size:28px}
  .cierre .boton{width:100%}

  .form-contacto{grid-template-columns:1fr}

  .pie-fila{flex-direction:column;gap:32px}
  .pie-col--marca{width:auto;flex:1}
  .pie-legal{flex-direction:column;align-items:flex-start;gap:14px}
  .pie-legal nav{margin-left:0;flex-direction:column;gap:10px}
}

/* ---------- Impresión -------------------------------------------------- */
@media print{
  .sitio-cabecera,.sitio-pie,.banner__foto,.banner__velo,.boton,.menu-boton{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .seccion--oscura{background:#fff!important;color:#000!important}
  .seccion--oscura h1,.seccion--oscura h2,.seccion--oscura h3,.seccion--oscura p{color:#000!important}
}
