:root{
  --tinta:#04334C;
  --tinta-deep:#032637;
  --tinta-70:rgba(4,51,76,.70);
  --cobre:#C17D58;          /* decorativo: filetes, números, textos grandes */
  --cobre-texto:#8F4E2A;    /* cobre legible sobre papel (AA) */
  --cobre-claro:#D9A17E;    /* cobre legible sobre tinta (AA) */
  --papel:#F7F2F0;
  --papel-alt:#EDE4DF;
  --blanco:#FFFFFF;
  --texto:#16262E;
  --suave:#4A5C64;
  --linea:rgba(4,51,76,.16);
  --linea-fuerte:rgba(4,51,76,.30);
  --linea-clara:rgba(247,242,240,.20);
  --medida:68ch;
  --radio:3px;
  --paso:8px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}
body{
  margin:0;background:var(--papel);color:var(--texto);
  font-family:'Host Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:17px;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:400;line-height:1.12;letter-spacing:-.005em}
h1,h2,h3{font-family:'Baskervville',Georgia,'Times New Roman',serif}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2.5px solid var(--cobre-texto);outline-offset:3px;border-radius:2px}

/* ---------- utilidades de composición ---------- */
.env{width:100%;max-width:1180px;margin-inline:auto;padding-inline:20px}
.env-angosto{width:100%;max-width:820px;margin-inline:auto;padding-inline:20px}
.sec{padding-block:clamp(56px,7vw,104px)}
.sec-corta{padding-block:clamp(40px,5vw,68px)}
.oscuro{background:var(--tinta);color:var(--papel)}
.oscuro h1,.oscuro h2,.oscuro h3{color:var(--papel)}
.oscuro .kicker,.hero .kicker,.cabecera .kicker{color:var(--cobre-claro)}
.oscuro .sub,.hero .sub,.cabecera .sub{color:rgba(247,242,240,.80)}
.alt{background:var(--papel-alt)}

/* Kicker: etiqueta de expediente, versalita + filete */
.kicker{
  display:flex;align-items:center;gap:12px;
  font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cobre-texto);margin-bottom:18px;
}
.kicker::after{content:"";flex:0 0 42px;height:1px;background:currentColor;opacity:.55}
.kicker.centro{justify-content:center}
.kicker.centro::before{content:"";flex:0 0 42px;height:1px;background:currentColor;opacity:.55}

.tit-xl{font-size:clamp(2.4rem,6.2vw,4.3rem)}
.tit-lg{font-size:clamp(2rem,4.4vw,3.1rem)}
.tit-md{font-size:clamp(1.55rem,2.8vw,2.1rem)}
.tit-sm{font-size:clamp(1.25rem,2vw,1.5rem)}
.sub{font-size:clamp(1.02rem,1.5vw,1.16rem);color:var(--suave);max-width:60ch;line-height:1.66}
.prosa{max-width:var(--medida)}
.prosa p+p{margin-top:1.1em}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 26px;border-radius:var(--radio);border:1px solid transparent;
  font-size:15px;font-weight:600;letter-spacing:.01em;text-decoration:none;
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
  cursor:pointer;
}
.btn:hover{transform:translateY(-1px)}
.btn-primario{background:var(--cobre-texto);color:#fff;border-color:var(--cobre-texto)}
.btn-primario:hover{background:#7A4123;border-color:#7A4123}
.btn-tinta{background:var(--tinta);color:var(--papel);border-color:var(--tinta)}
.btn-tinta:hover{background:var(--tinta-deep)}
.btn-linea{background:transparent;color:var(--tinta);border-color:var(--linea-fuerte)}
.btn-linea:hover{border-color:var(--tinta);background:rgba(4,51,76,.04)}
/* Todo bloque de fondo tinta comparte las mismas variantes claras.
   OJO: .hero y .cabecera NO llevan la clase .oscuro, así que hay que nombrarlos
   explícitamente o el btn-linea sale azul marino sobre azul marino (invisible). */
.oscuro .btn-linea,.hero .btn-linea,.cabecera .btn-linea{color:var(--papel);border-color:var(--linea-clara)}
.oscuro .btn-linea:hover,.hero .btn-linea:hover,.cabecera .btn-linea:hover{
  border-color:var(--papel);background:rgba(247,242,240,.08)}
.btn-claro{background:var(--papel);color:var(--tinta);border-color:var(--papel)}
.btn-claro:hover{background:#fff}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* enlace con flecha */
.flecha{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-weight:600;font-size:14.5px;color:var(--cobre-texto);
  letter-spacing:.02em;
}
.flecha svg{transition:transform .22s ease}
.flecha:hover svg{transform:translateX(4px)}
.oscuro .flecha{color:var(--cobre-claro)}

/* ---------- barra de navegación ---------- */
.nav{
  position:sticky;top:0;z-index:60;background:rgba(247,242,240,.94);
  border-bottom:1px solid var(--linea);
  -webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);
  transition:box-shadow .25s ease;
}
.nav.sombra{box-shadow:0 1px 18px rgba(4,51,76,.10)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.marca{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.marca img{width:34px;height:auto}
.marca-txt{display:flex;flex-direction:column;line-height:1}
.marca-nom{font-family:'Baskervville',serif;font-size:19px;color:var(--tinta);letter-spacing:.01em}
.marca-sub{font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--cobre-texto);margin-top:4px}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{
  text-decoration:none;font-size:14px;font-weight:500;color:var(--tinta);
  padding:6px 0;position:relative;white-space:nowrap;
}
.nav-links a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;
  background:var(--cobre);transition:right .25s ease;
}
.nav-links a:hover::after,.nav-links a.activo::after{right:0}
.nav-links a.activo{color:var(--cobre-texto);font-weight:600}
.nav-cta{display:flex;align-items:center;gap:10px}
.nav-cta .btn{padding:11px 20px;font-size:14px}
.burger{
  display:none;width:44px;height:44px;border:1px solid var(--linea-fuerte);border-radius:var(--radio);
  background:transparent;align-items:center;justify-content:center;flex-direction:column;gap:5px;
}
.burger span{display:block;width:18px;height:1.5px;background:var(--tinta);transition:transform .25s ease,opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* menú móvil: hermano del header, NO anidado (evita el bug de altura con backdrop-filter) */
.menu-movil{
  display:none;position:fixed;inset:72px 0 auto 0;z-index:59;
  background:var(--papel);border-bottom:1px solid var(--linea);
  box-shadow:0 18px 40px rgba(4,51,76,.14);
  max-height:calc(100dvh - 72px);overflow-y:auto;
}
.menu-movil.abierto{display:block}
.menu-movil ul{padding:8px 20px 24px}
.menu-movil li+li{border-top:1px solid var(--linea)}
.menu-movil a{
  display:block;padding:15px 2px;text-decoration:none;font-size:16px;font-weight:500;color:var(--tinta);
}
.menu-movil a.activo{color:var(--cobre-texto);font-weight:600}
.menu-movil .mm-cta{padding:16px 20px 26px;display:grid;gap:10px}
/* .menu-movil a (0,1,1) le gana a .btn-primario (0,1,0): hay que reponer el color aquí
   o el CTA del menú sale azul marino sobre cobre (2.1:1). */
.menu-movil .mm-cta .btn-primario{color:#fff}
.menu-movil .mm-cta .btn-linea{color:var(--tinta)}
.menu-movil .mm-grupo{
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--suave);padding:18px 2px 6px;border-top:1px solid var(--linea);
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--tinta);color:var(--papel);overflow:hidden}
.hero::before{
  content:"";position:absolute;right:-8%;top:50%;transform:translateY(-50%);
  width:min(620px,58vw);aspect-ratio:1/.8;
  background:url('img/isotipo-blanco.png') center/contain no-repeat;opacity:.055;pointer-events:none;
}
.hero-in{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(32px,5vw,72px);align-items:center;
  padding-block:clamp(56px,7.5vw,104px)}
.hero h1{font-size:clamp(2.6rem,6.6vw,4.6rem);color:var(--papel);line-height:1.04}
.hero h1 em{font-style:normal;color:var(--cobre-claro)}
.hero .bajada{margin-top:22px;font-size:clamp(1.04rem,1.55vw,1.18rem);color:rgba(247,242,240,.82);max-width:52ch;line-height:1.66}
.hero .btns{margin-top:32px}
.hero-sello{
  margin-top:34px;padding-top:22px;border-top:1px solid var(--linea-clara);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.estrellas{display:inline-flex;gap:2px;color:var(--cobre-claro)}
.sello-txt{font-size:13.5px;color:rgba(247,242,240,.78)}
.sello-txt b{color:var(--papel);font-weight:600}

/* retrato con marco desplazado */
.retrato{position:relative;justify-self:end;width:100%;max-width:400px}
.retrato img{width:100%;border-radius:2px;position:relative;z-index:2;filter:saturate(.96)}
.retrato::after{
  content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--cobre);
  border-radius:2px;z-index:1;
}
.retrato figcaption{
  position:relative;z-index:2;margin-top:24px;font-size:12.5px;letter-spacing:.04em;
  color:rgba(247,242,240,.72);
}
.retrato figcaption b{color:var(--papel);font-weight:600;display:block;font-size:14px;letter-spacing:0;margin-bottom:2px}

/* ---------- tira de promesas ---------- */
.promesas{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--linea)}
.promesa{padding:34px 30px 34px 0;border-right:1px solid var(--linea)}
.promesa:last-child{border-right:0}
.promesa:not(:first-child){padding-left:30px}
.promesa h3{font-size:1.25rem;color:var(--tinta);margin-bottom:9px}
.promesa p{font-size:14.5px;color:var(--suave);line-height:1.6}

/* ---------- índice de áreas (el «expediente») ---------- */
.indice{border-top:1px solid var(--linea-fuerte);margin-top:38px}
.fila{
  display:grid;grid-template-columns:62px 1fr auto;gap:22px;align-items:baseline;
  padding:24px 4px;border-bottom:1px solid var(--linea);text-decoration:none;color:inherit;
  position:relative;transition:padding-left .28s ease;
}
.fila::before{
  content:"";position:absolute;left:0;top:0;bottom:-1px;width:0;background:var(--cobre);
  transition:width .28s ease;opacity:.06;
}
.fila:hover::before{width:100%}
.fila:hover{padding-left:14px}
.fila-n{font-family:'Baskervville',serif;font-size:1.5rem;color:var(--cobre);line-height:1}
.fila-t{display:block;font-family:'Baskervville',serif;font-size:clamp(1.3rem,2.2vw,1.72rem);
  color:var(--tinta);line-height:1.22;margin-bottom:7px}
.fila-d{display:block;font-size:14.5px;color:var(--suave);max-width:62ch;line-height:1.55}
.fila-ir{font-size:13px;font-weight:600;color:var(--cobre-texto);letter-spacing:.03em;white-space:nowrap;
  opacity:.45;transition:opacity .28s ease}
.fila:hover .fila-ir{opacity:1}

/* ---------- proceso ---------- */
.pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:44px}
.paso{padding:0 26px 0 0;position:relative}
.paso:not(:first-child){padding-left:26px;border-left:1px solid var(--linea)}
.paso-n{
  font-family:'Baskervville',serif;font-size:2.4rem;color:var(--cobre);line-height:1;
  display:block;margin-bottom:14px;
}
.paso h3{font-size:1.14rem;color:var(--tinta);margin-bottom:8px;line-height:1.25}
.paso p{font-size:14.5px;color:var(--suave);line-height:1.6}
.oscuro .paso h3{color:var(--papel)}
.oscuro .paso p{color:rgba(247,242,240,.72)}
.oscuro .paso:not(:first-child){border-left-color:var(--linea-clara)}
.oscuro .paso-n{color:var(--cobre-claro)}

/* ---------- casos ---------- */
.casos{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:22px;margin-top:40px}
.caso{
  background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);
  padding:30px 28px;display:flex;flex-direction:column;
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.caso:hover{border-color:var(--cobre);transform:translateY(-3px);box-shadow:0 14px 34px rgba(4,51,76,.09)}
.caso-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.pildora{
  font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  padding:5px 10px;border-radius:2px;background:#F6E9E1;color:#7A4123;
}
.caso-sede{font-size:12px;color:var(--suave);letter-spacing:.04em}
.caso h3{font-size:1.2rem;color:var(--tinta);line-height:1.3;margin-bottom:20px}
.caso dl{margin:0;display:grid;gap:14px}
.caso dt{
  font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--cobre-texto);
  margin-bottom:4px;
}
.caso dd{margin:0;font-size:14.5px;color:var(--suave);line-height:1.58}
.caso .resultado dd{color:var(--tinta);font-weight:500}
.caso-pie{margin-top:auto;padding-top:20px}

/* ---------- testimonios ---------- */
.rating-bloque{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.rating-num{font-family:'Baskervville',serif;font-size:3rem;color:var(--cobre-texto);line-height:1}
.resenas{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:40px}
.resena{
  background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:28px 26px;
  display:flex;flex-direction:column;
}
.resena blockquote{margin:0;font-size:15.5px;line-height:1.66;color:var(--texto);flex:1}
.resena blockquote::before{content:"“";font-family:'Baskervville',serif;font-size:2.6rem;color:var(--cobre);
  line-height:0;display:block;margin-bottom:16px}
.resena figcaption{margin-top:20px;padding-top:16px;border-top:1px solid var(--linea);font-size:13.5px;color:var(--suave)}
.resena figcaption b{display:block;color:var(--tinta);font-weight:600;font-size:14.5px;margin-bottom:2px}

/* ---------- FAQ ---------- */
.faq{margin-top:34px;border-top:1px solid var(--linea-fuerte)}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{
  list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;
  font-family:'Baskervville',serif;font-size:clamp(1.08rem,1.7vw,1.26rem);color:var(--tinta);line-height:1.35;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:8px;top:50%;width:11px;height:11px;
  border-right:1.5px solid var(--cobre-texto);border-bottom:1.5px solid var(--cobre-texto);
  transform:translateY(-70%) rotate(45deg);transition:transform .25s ease;
}
.faq details[open] summary::after{transform:translateY(-20%) rotate(-135deg)}
.faq .faq-r{padding:0 44px 24px 0;font-size:15.5px;color:var(--suave);line-height:1.68;max-width:70ch}
.oscuro .faq{border-top-color:var(--linea-clara)}
.oscuro .faq details{border-bottom-color:var(--linea-clara)}
.oscuro .faq summary{color:var(--papel)}
.oscuro .faq summary::after{border-color:var(--cobre-claro)}
.oscuro .faq .faq-r{color:rgba(247,242,240,.75)}

/* ---------- listas de servicios ---------- */
.lista-serv{display:grid;gap:0;margin-top:30px;border-top:1px solid var(--linea)}
.lista-serv li{
  padding:15px 0 15px 34px;border-bottom:1px solid var(--linea);position:relative;
  font-size:15.5px;line-height:1.55;color:var(--texto);
}
.lista-serv li::before{
  content:"";position:absolute;left:4px;top:24px;width:14px;height:1.5px;background:var(--cobre);
}

/* ---------- cita / dolor ---------- */
.cita{
  border-left:2px solid var(--cobre);padding:6px 0 6px 26px;margin-block:34px;
  font-family:'Baskervville',serif;font-size:clamp(1.18rem,2.1vw,1.48rem);line-height:1.46;color:var(--tinta);
  max-width:56ch;
}
.oscuro .cita{color:var(--papel)}

/* ---------- artículo ---------- */
.art h2{font-size:clamp(1.42rem,2.5vw,1.85rem);color:var(--tinta);margin:44px 0 14px}
.art p{font-size:17px;line-height:1.74;color:var(--texto)}
.art p+p{margin-top:1.05em}
.art b{font-weight:600;color:var(--tinta)}
.art .destacado{
  background:var(--blanco);border-left:2px solid var(--cobre);border-radius:0 var(--radio) var(--radio) 0;
  padding:22px 26px;margin:32px 0;font-family:'Baskervville',serif;
  font-size:clamp(1.1rem,1.8vw,1.3rem);line-height:1.5;color:var(--tinta);
}
.art ul{margin:22px 0;display:grid;gap:0;border-top:1px solid var(--linea)}
.art ul li{padding:14px 0 14px 32px;border-bottom:1px solid var(--linea);position:relative;
  font-size:16px;line-height:1.6;color:var(--suave)}
.art ul li::before{content:"";position:absolute;left:4px;top:23px;width:12px;height:1.5px;background:var(--cobre)}
.art ul li b{color:var(--tinta)}

/* ---------- formulario ---------- */
.form{display:grid;gap:18px}
.campo{display:grid;gap:7px}
.campo label{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--tinta);text-transform:uppercase}
.campo input,.campo select,.campo textarea{
  width:100%;padding:13px 14px;border:1px solid var(--linea-fuerte);border-radius:var(--radio);
  background:var(--blanco);color:var(--texto);font:inherit;font-size:16px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:none;border-color:var(--cobre-texto);box-shadow:0 0 0 3px rgba(143,78,42,.12);
}
.campo textarea{min-height:130px;resize:vertical;line-height:1.6}
.fila-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;color:var(--suave);line-height:1.55}
.consent input{margin-top:3px;width:17px;height:17px;flex-shrink:0;accent-color:var(--cobre-texto)}
.consent a{color:var(--cobre-texto);font-weight:600}
.consent-nota{font-size:12.5px;color:var(--suave);line-height:1.55}
.form-error{
  display:none;background:rgba(186,59,70,.09);border:1px solid rgba(186,59,70,.35);color:#8C2F38;
  padding:12px 14px;border-radius:var(--radio);font-size:14px;
}

/* ---------- bloque de contacto ---------- */
.datos{display:grid;gap:2px;margin-top:30px;border-top:1px solid var(--linea)}
.dato{display:grid;grid-template-columns:132px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--linea);align-items:baseline}
.dato dt{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--suave)}
.dato dd{margin:0;font-size:16px;color:var(--texto)}
.dato dd a{color:var(--cobre-texto);font-weight:600;text-decoration:none}
.dato dd a:hover{text-decoration:underline}
.oscuro .datos{border-top-color:var(--linea-clara)}
.oscuro .dato{border-bottom-color:var(--linea-clara)}
.oscuro .dato dt{color:rgba(247,242,240,.62)}
.oscuro .dato dd{color:var(--papel)}
.oscuro .dato dd a{color:var(--cobre-claro)}

/* ---------- cierre en cobre ---------- */
.cierre{background:var(--cobre-texto);color:#fff}
.cierre h2{color:#fff;font-size:clamp(2rem,4.4vw,3rem)}
.cierre p{color:rgba(255,255,255,.88);font-size:1.05rem;max-width:52ch;margin-top:16px;line-height:1.65}
.cierre-in{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}

/* ---------- pie ---------- */
.pie{background:var(--tinta-deep);color:rgba(247,242,240,.72);padding-block:64px 0}
.pie-in{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.pie h4{
  font-family:'Host Grotesk',sans-serif;font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cobre-claro);margin-bottom:18px;
}
.pie a{text-decoration:none;color:rgba(247,242,240,.72);font-size:14.5px;transition:color .2s ease}
.pie a:hover{color:var(--papel)}
.pie li+li{margin-top:10px}
.pie-marca img{width:38px;margin-bottom:18px}
.pie-lema{font-family:'Baskervville',serif;font-size:1.5rem;color:var(--papel);line-height:1.2;margin-bottom:14px}
.pie-desc{font-size:14px;line-height:1.6;max-width:34ch}
.pie-base{
  margin-top:52px;padding-block:24px;border-top:1px solid var(--linea-clara);
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12.5px;
  color:rgba(247,242,240,.55);
}
.pie-base a{font-size:12.5px;color:rgba(247,242,240,.55)}

/* ---------- WhatsApp flotante ---------- */
.wa{
  position:fixed;right:18px;bottom:18px;z-index:70;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.24);text-decoration:none;
  transition:transform .22s ease;
}
.wa:hover{transform:scale(1.07)}
.wa svg{width:30px;height:30px;fill:#fff}

/* barra fija móvil */
.barra-movil{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:65;
  background:var(--papel);border-top:1px solid var(--linea);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  grid-template-columns:1fr 1fr;gap:9px;box-shadow:0 -4px 20px rgba(4,51,76,.10);
}
.barra-movil .btn{padding:13px 12px;font-size:14px;width:100%}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.visto{opacity:1;transform:none}

/* ---------- migas ---------- */
.migas{font-size:12.5px;color:var(--suave);margin-bottom:20px;letter-spacing:.02em}
.migas a{color:var(--cobre-texto);text-decoration:none}
.migas a:hover{text-decoration:underline}
.oscuro .migas,.hero .migas,.cabecera .migas{color:rgba(247,242,240,.66)}
.oscuro .migas a,.hero .migas a,.cabecera .migas a{color:var(--cobre-claro)}

/* ---------- cabecera de página interna ---------- */
.cabecera{background:var(--tinta);color:var(--papel);position:relative;overflow:hidden}
.cabecera::before{
  content:"";position:absolute;right:-6%;top:50%;transform:translateY(-50%);
  width:min(440px,46vw);aspect-ratio:1/.8;
  background:url('img/isotipo-blanco.png') center/contain no-repeat;opacity:.05;
}
.cabecera-in{position:relative;padding-block:clamp(44px,5.6vw,76px)}
.cabecera h1{color:var(--papel);max-width:19ch}
.cabecera .sub{color:rgba(247,242,240,.8);margin-top:18px}
.num-area{
  font-family:'Baskervville',serif;font-size:clamp(3rem,7vw,5rem);color:var(--cobre-claro);
  line-height:1;opacity:.85;display:block;margin-bottom:6px;
}

/* ---------- grilla auxiliar ---------- */
.dos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,64px);align-items:start}
.dos-72{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,5vw,60px);align-items:start}
.manifiesto{display:grid;gap:28px;margin-top:38px}
.mani{border-top:1px solid var(--linea);padding-top:22px}
.mani h3{font-size:1.28rem;color:var(--tinta);margin-bottom:10px}
.mani p{font-size:15.5px;color:var(--suave);line-height:1.65;max-width:62ch}

.ficha-persona{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(26px,4vw,52px);align-items:start;
  background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:clamp(24px,3vw,40px)}
.ficha-persona img{border-radius:2px;width:100%}
.ficha-persona h3{font-size:clamp(1.6rem,3vw,2.1rem);color:var(--tinta);margin-bottom:6px}
.ficha-cargo{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cobre-texto);margin-bottom:20px}
.etiquetas{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.etiqueta{font-size:12.5px;padding:6px 12px;border:1px solid var(--linea-fuerte);border-radius:2px;color:var(--suave)}

.blog-lista{display:grid;gap:0;margin-top:38px;border-top:1px solid var(--linea-fuerte)}
.blog-item{
  display:grid;grid-template-columns:120px 1fr auto;gap:24px;align-items:baseline;
  padding:28px 4px;border-bottom:1px solid var(--linea);text-decoration:none;color:inherit;
  transition:padding-left .28s ease;
}
.blog-item:hover{padding-left:14px}
.blog-fecha{font-size:12.5px;color:var(--suave);letter-spacing:.04em}
.blog-item h3{font-family:'Baskervville',serif;font-size:clamp(1.24rem,2.1vw,1.6rem);color:var(--tinta);
  line-height:1.26;margin-bottom:8px}
.blog-item p{font-size:14.5px;color:var(--suave);line-height:1.58;max-width:64ch}

.tabla-honorarios{display:grid;gap:22px;margin-top:38px}
.hon{display:grid;grid-template-columns:70px 1fr;gap:22px;border-top:1px solid var(--linea);padding-top:22px}
.hon-n{font-family:'Baskervville',serif;font-size:1.9rem;color:var(--cobre);line-height:1}
.hon h3{font-size:1.24rem;color:var(--tinta);margin-bottom:9px}
.hon p{font-size:15.5px;color:var(--suave);line-height:1.65;max-width:62ch}

.modalidades{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:36px}
.modalidad{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:26px 24px}
.modalidad h3{font-size:1.18rem;color:var(--tinta);margin-bottom:10px}
.modalidad p{font-size:14.5px;color:var(--suave);line-height:1.6}

.mapa-bloque{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);
  padding:28px 26px;display:grid;gap:14px}
.mapa-bloque img{border-radius:2px;margin-bottom:6px}

.aviso{
  /* fondo OPACO a propósito: con rgba el auditor de contraste no compone el alfa
     y cualquier revisión externa lo marca como falso positivo. */
  background:#F5EBE5;border:1px solid #DFC3AE;border-radius:var(--radio);
  padding:18px 20px;font-size:14.5px;line-height:1.6;color:var(--texto);
}
.aviso b{color:var(--cobre-texto)}

/* ---------- responsive ---------- */
@media (max-width:1040px){
  .nav-links{display:none}
  .burger{display:flex}
  .nav-cta .btn{display:none}
  .hero-in{grid-template-columns:1fr;gap:44px}
  .retrato{justify-self:start;max-width:340px}
  .hero::before{width:min(420px,72vw);right:-16%;opacity:.045}
  .pie-in{grid-template-columns:1fr 1fr}
  .cierre-in{grid-template-columns:1fr;gap:28px}
  .pasos{grid-template-columns:1fr 1fr;gap:28px 0}
  .paso{padding-bottom:6px}
  .paso:nth-child(3){border-left:0;padding-left:0}
  .dos,.dos-72{grid-template-columns:1fr}
  .ficha-persona{grid-template-columns:1fr}
  .ficha-persona img{max-width:300px}
}
@media (max-width:760px){
  body{font-size:16.5px}
  .promesas{grid-template-columns:1fr}
  .promesa{padding:24px 0;border-right:0;border-bottom:1px solid var(--linea)}
  .promesa:not(:first-child){padding-left:0}
  .promesa:last-child{border-bottom:0}
  .pasos{grid-template-columns:1fr}
  .paso{padding:0 0 22px 0;border-left:0 !important;padding-left:0 !important}
  .paso:not(:last-child){border-bottom:1px solid var(--linea);margin-bottom:22px}
  .oscuro .paso:not(:last-child){border-bottom-color:var(--linea-clara)}
  .fila{grid-template-columns:44px 1fr;gap:16px}
  .fila-ir{display:none}
  .blog-item{grid-template-columns:1fr;gap:8px}
  .blog-item .flecha{display:none}
  .fila-2{grid-template-columns:1fr}
  .pie-in{grid-template-columns:1fr;gap:34px}
  .dato{grid-template-columns:1fr;gap:4px}
  .barra-movil{display:grid}
  .wa{bottom:82px;width:50px;height:50px}
  .wa svg{width:26px;height:26px}
  body{padding-bottom:72px}
  .menu-movil{inset-block-start:68px}
  .nav-in{min-height:68px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .reveal{opacity:1 !important;transform:none !important}
}
