/* ══════════════════════════════════════════════════════════
   José Miguel Santos Zepeda · josemiguelsantos.com
   Editorial oscuro — Lora + Poppins, autoalojadas
   ══════════════════════════════════════════════════════════ */

@font-face{
  font-family:'Lora'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('../fuentes/lora.ttf') format('truetype');
}
@font-face{
  font-family:'Lora'; font-style:italic; font-weight:400 700; font-display:swap;
  src:url('../fuentes/lora-italica.ttf') format('truetype');
}
@font-face{
  font-family:'Poppins'; font-weight:300; font-display:swap;
  src:url('../fuentes/poppins-300.ttf') format('truetype');
}
@font-face{
  font-family:'Poppins'; font-weight:400; font-display:swap;
  src:url('../fuentes/poppins-400.ttf') format('truetype');
}
@font-face{
  font-family:'Poppins'; font-weight:500; font-display:swap;
  src:url('../fuentes/poppins-500.ttf') format('truetype');
}

:root{
  --tinta:#0B0C0F;
  --tinta-alta:#101319;
  --superficie:#14171E;
  --superficie-2:#191D25;
  --borde:rgba(236,232,225,.11);
  --borde-fuerte:rgba(236,232,225,.22);
  --texto:#ECE8E1;
  --apagado:#9A958C;
  --tenue:#6E6A63;
  --oro:#C8A35E;
  --oro-claro:#E3C68B;
  --oro-hondo:#8A6E33;

  --serif:'Lora', Georgia, 'Times New Roman', serif;
  --sans:'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --ancho:1180px;
  --aire:clamp(64px, 9vw, 128px);
  --curva:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{
  scroll-behavior:smooth;
  scroll-padding-top:90px;
  -webkit-text-size-adjust:100%;
}
body{
  background:var(--tinta);
  color:var(--texto);
  font-family:var(--serif);
  font-size:clamp(16px,1.02vw,17.5px);
  line-height:1.72;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }

.envoltura{
  width:100%;
  max-width:var(--ancho);
  margin-inline:auto;
  padding-inline:clamp(20px,5vw,44px);
}

.saltar{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--oro); color:#101319; padding:12px 20px;
  font-family:var(--sans); font-size:14px; font-weight:500;
}
.saltar:focus{ left:12px; top:12px; }

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

/* ─────────── rótulos y títulos ─────────── */
.rotulo{
  font-family:var(--sans); font-weight:500;
  font-size:11px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--oro);
  display:flex; align-items:center; gap:12px;
}
.rotulo::after{
  content:''; height:1px; flex:1; max-width:70px;
  background:linear-gradient(90deg,var(--oro-hondo),transparent);
}
.titulo{ margin-bottom:clamp(38px,5vw,60px); max-width:640px; }
.titulo__h{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(30px,4.2vw,50px); line-height:1.12; letter-spacing:-.02em;
  margin-top:18px;
}
.titulo__ayuda{
  font-family:var(--sans); font-weight:300; font-size:14px;
  color:var(--tenue); margin-top:14px; letter-spacing:.02em;
}

/* ─────────── botones ─────────── */
.boton{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:500; font-size:13.5px;
  letter-spacing:.05em;
  padding:15px 26px;
  border:1px solid transparent;
  transition:background .35s var(--curva), color .35s var(--curva),
             border-color .35s var(--curva), transform .35s var(--curva);
  white-space:nowrap;
}
.boton svg{
  width:17px; height:17px; flex:none;
  fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round;
  transition:transform .35s var(--curva);
}
.boton--oro{
  background:var(--oro); color:#0E1015;
  box-shadow:0 14px 34px -18px rgba(200,163,94,.9);
}
.boton--oro:hover{ background:var(--oro-claro); transform:translateY(-2px); }
.boton--oro:hover svg{ transform:translateY(2px); }
.boton--linea{
  border-color:var(--borde-fuerte); color:var(--texto);
}
.boton--linea:hover{ border-color:var(--oro); color:var(--oro-claro); }
.boton--linea:hover svg{ transform:translateY(2px); }
.boton--fino{
  padding:10px 18px; font-size:12.5px;
  border-color:var(--borde-fuerte); color:var(--texto);
}
.boton--fino:hover{ border-color:var(--oro); color:var(--oro-claro); background:rgba(200,163,94,.07); }

/* ─────────── barra superior ─────────── */
.progreso{
  position:fixed; inset:0 0 auto 0; height:2px; z-index:120;
  pointer-events:none;
}
.progreso i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg,var(--oro-hondo),var(--oro-claro));
}
.barra{
  position:fixed; inset:2px 0 auto 0; z-index:110;
  transition:background .4s var(--curva), border-color .4s var(--curva),
             backdrop-filter .4s var(--curva), transform .45s var(--curva);
  border-bottom:1px solid transparent;
}
.barra--fondo{
  background:rgba(11,12,15,.86);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--borde);
}
.barra--oculta{ transform:translateY(-110%); }
.barra__fila{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; height:68px;
}
.marca{ display:flex; align-items:center; gap:14px; min-width:0; }
.marca__mono{
  font-family:var(--sans); font-weight:500; font-size:11.5px;
  letter-spacing:.16em; color:var(--oro);
  border:1px solid var(--oro-hondo); padding:5px 8px 4px;
  flex:none;
}
.marca__nombre{
  font-family:var(--serif); font-weight:600; font-size:16px;
  letter-spacing:-.01em; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}

/* ─────────── portada ─────────── */
.portada{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding-top:clamp(110px,14vh,150px);
  padding-bottom:clamp(60px,9vh,96px);
  background:
    radial-gradient(120% 90% at 78% 12%, rgba(200,163,94,.10), transparent 55%),
    radial-gradient(90% 70% at 5% 90%, rgba(120,150,190,.07), transparent 60%),
    var(--tinta);
  overflow:hidden;
}
.portada__grano{
  position:absolute; inset:0; pointer-events:none; opacity:.35;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.portada__reja{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.82fr);
  gap:clamp(32px,5vw,72px);
  align-items:center;
}
.portada__nombre{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(40px,6.6vw,84px);
  line-height:1.02; letter-spacing:-.028em;
  margin:22px 0 0;
  background:linear-gradient(176deg,#FFFDF8 8%,#D8D2C7 62%,#A9A399 100%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}
@supports not (background-clip:text){ .portada__nombre{ color:var(--texto); } }
.portada__titular{
  font-family:var(--sans); font-weight:300;
  font-size:clamp(14px,1.5vw,17px); letter-spacing:.03em;
  color:var(--apagado); margin-top:16px;
  padding-bottom:24px; border-bottom:1px solid var(--borde);
}
.portada__entrada{
  font-size:clamp(15.5px,1.32vw,18px);
  line-height:1.78; color:#CFC9BF;
  margin-top:24px; max-width:53ch;
}
.portada__acciones{
  display:flex; flex-wrap:wrap; gap:14px; margin-top:34px;
}

.portada__figura{ position:relative; }
.portada__figura img{
  width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center 20%;
  filter:contrast(1.04) saturate(.92) brightness(.95);
  position:relative; z-index:2;
}
.portada__marco{
  position:absolute; inset:18px -18px -18px 18px;
  border:1px solid var(--oro-hondo); z-index:1;
}
.portada__sello{
  position:absolute; z-index:3; left:0; bottom:-1px;
  background:var(--tinta); padding:10px 16px 9px;
  font-family:var(--sans); font-weight:400; font-size:10.5px;
  letter-spacing:.22em; text-transform:uppercase; color:var(--oro);
  display:flex; gap:9px;
  border-top:1px solid var(--oro-hondo); border-right:1px solid var(--oro-hondo);
}
.portada__pie{
  position:relative; z-index:2;
  display:flex; align-items:center; gap:14px;
  margin-top:clamp(34px,6vh,62px);
  padding-inline:clamp(20px,5vw,44px);
  max-width:var(--ancho); width:100%; margin-inline:auto;
  font-family:var(--sans); font-weight:300; font-size:10.5px;
  letter-spacing:.24em; text-transform:uppercase; color:var(--tenue);
}
.portada__baja{
  width:52px; height:1px; background:var(--oro-hondo);
  position:relative; overflow:hidden;
}
.portada__baja::after{
  content:''; position:absolute; inset:0; width:18px;
  background:var(--oro-claro);
  animation:correr 2.6s var(--curva) infinite;
}
@keyframes correr{ 0%{transform:translateX(-20px)} 100%{transform:translateX(56px)} }

/* ─────────── franja de alianzas ─────────── */
.franja{
  border-block:1px solid var(--borde);
  background:var(--tinta-alta);
  padding:26px 0;
  display:flex; align-items:center; gap:28px;
  overflow:hidden;
}
.franja__rotulo{
  flex:none; padding-left:clamp(20px,5vw,44px);
  font-family:var(--sans); font-weight:500; font-size:10.5px;
  letter-spacing:.24em; text-transform:uppercase; color:var(--oro);
}
.franja__cinta{
  display:flex; gap:0; flex:1; min-width:0;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.franja__tren{
  display:flex; align-items:center; gap:44px; flex:none;
  padding-right:44px;
  animation:desfile 34s linear infinite;
}
.franja__tren span{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(15px,1.5vw,20px); letter-spacing:.01em;
  color:#BDB7AC; white-space:nowrap;
}
.franja__tren i{
  width:5px; height:5px; background:var(--oro-hondo);
  transform:rotate(45deg); flex:none;
}
@keyframes desfile{ from{transform:translateX(0)} to{transform:translateX(-100%)} }
.franja:hover .franja__tren{ animation-play-state:paused; }

/* ─────────── secciones ─────────── */
.seccion{ padding-block:var(--aire); position:relative; }
.seccion--areas{ background:var(--tinta-alta); border-block:1px solid var(--borde); }
.seccion--doc{ background:var(--tinta-alta); border-top:1px solid var(--borde); }

/* perfil */
.perfil__reja{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(34px,5.5vw,80px); align-items:center;
}
.perfil__lead{
  font-size:clamp(18px,2.05vw,25px);
  line-height:1.62; letter-spacing:-.008em;
  margin-top:26px; color:#DCD6CC;
}
.perfil__lead::first-letter{
  font-size:3.4em; line-height:.86; float:left;
  margin:.08em .14em 0 0; color:var(--oro);
  font-weight:600;
}
.perfil__figura{ position:relative; }
.perfil__figura::before{
  content:''; position:absolute; inset:-14px -14px 14px 14px;
  border:1px solid var(--borde-fuerte);
}
.perfil__figura img{
  position:relative;
  width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center 16%;
  filter:grayscale(.18) contrast(1.05) brightness(.94);
}

/* ─────────── lista de áreas (acordeón) ─────────── */
.lista{ border-top:1px solid var(--borde); }
.area{ border-bottom:1px solid var(--borde); }
.area__cabeza{
  width:100%; background:none; border:0; cursor:pointer;
  color:inherit; font:inherit; text-align:left;
  display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  gap:clamp(16px,2.6vw,34px); align-items:start;
  padding:clamp(24px,3vw,34px) 0;
  transition:padding-left .4s var(--curva);
}
.area__cabeza:hover{ padding-left:10px; }
.area__num{
  font-family:var(--sans); font-weight:500; font-size:11.5px;
  letter-spacing:.16em; color:var(--oro);
  padding-top:9px; flex:none;
}
.area__tit{
  display:block;
  font-family:var(--serif); font-weight:600;
  font-size:clamp(19px,2.15vw,27px); line-height:1.24; letter-spacing:-.015em;
  transition:color .3s var(--curva);
}
.area__cabeza:hover .area__tit{ color:var(--oro-claro); }
.area__res{
  display:block;
  font-family:var(--sans); font-weight:300; font-size:14px;
  line-height:1.65; color:var(--tenue); margin-top:9px; max-width:62ch;
}
.area__cruz{
  width:34px; height:34px; flex:none; margin-top:6px;
  border:1px solid var(--borde-fuerte); border-radius:50%;
  display:grid; place-items:center;
  transition:border-color .35s var(--curva), background .35s var(--curva),
             transform .45s var(--curva);
}
.area__cruz::before,.area__cruz::after{
  content:''; position:absolute; background:var(--oro);
  transition:opacity .35s var(--curva), background .35s var(--curva);
}
.area__cruz::before{ width:12px; height:1.4px; }
.area__cruz::after{ width:1.4px; height:12px; }
.area__cruz{ position:relative; }
.area__cabeza:hover .area__cruz{ border-color:var(--oro); background:rgba(200,163,94,.1); }
.area.abierta .area__cruz{ transform:rotate(180deg); background:var(--oro); border-color:var(--oro); }
.area.abierta .area__cruz::before,.area.abierta .area__cruz::after{ background:#0E1015; }
.area.abierta .area__cruz::after{ opacity:0; }

.area__cuerpo{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .55s var(--curva);
}
.area.abierta .area__cuerpo{ grid-template-rows:1fr; }
.area__interior{ overflow:hidden; }
.area__texto{
  padding:0 0 clamp(26px,3vw,36px);
  margin-left:clamp(0px,4vw,54px);
  max-width:74ch;
  color:#CCC6BC;
  opacity:0; transform:translateY(10px);
  transition:opacity .5s var(--curva) .1s, transform .5s var(--curva) .1s;
}
.area.abierta .area__texto{ opacity:1; transform:none; }
.area__etiquetas{
  display:flex; flex-wrap:wrap; gap:9px; margin-top:20px;
}
.area__etiquetas span{
  font-family:var(--sans); font-weight:400; font-size:11.5px;
  letter-spacing:.09em; text-transform:uppercase;
  color:var(--apagado);
  border:1px solid var(--borde); padding:6px 12px 5px;
}

/* ─────────── formación ─────────── */
.estudios{ border-top:1px solid var(--borde); }
.estudio{
  display:grid; grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);
  gap:clamp(16px,2.6vw,34px); align-items:baseline;
  padding:clamp(24px,3vw,32px) 0;
  border-bottom:1px solid var(--borde);
  transition:background .4s var(--curva), padding-left .4s var(--curva);
}
.estudio:hover{ background:rgba(200,163,94,.035); padding-left:10px; }
.estudio__num{
  font-family:var(--sans); font-weight:500; font-size:11.5px;
  letter-spacing:.16em; color:var(--oro);
}
.estudio__tit{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(17px,1.75vw,22px); line-height:1.3; letter-spacing:-.012em;
}
.estudio__ins{
  font-family:var(--sans); font-weight:300; font-size:14.5px;
  line-height:1.6; color:var(--apagado);
}
.estudio__nota{
  display:block; font-size:12.5px; color:var(--tenue); margin-top:7px;
}

/* ─────────── documento ─────────── */
.doc__reja{
  display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(36px,5.5vw,80px); align-items:center;
}
.doc__hoja{ position:relative; perspective:1400px; }
.doc__hoja::before{
  content:''; position:absolute; inset:22px -22px -22px 22px;
  border:1px solid var(--oro-hondo);
}
.doc__hoja img{
  position:relative;
  width:100%;
  box-shadow:0 40px 80px -34px rgba(0,0,0,.85);
  transition:transform .6s var(--curva);
}
.doc__hoja a{ display:block; }
.doc__hoja:hover img{ transform:translateY(-8px) rotateY(-3deg); }
.doc__desc{
  margin-top:20px; color:#CCC6BC; max-width:52ch;
}
.doc__datos{
  list-style:none; margin-top:30px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(128px,1fr));
  gap:1px; background:var(--borde);
  border:1px solid var(--borde);
}
.doc__datos li{
  background:var(--tinta-alta); padding:16px 18px;
  display:flex; flex-direction:column; gap:6px;
}
.doc__datos span{
  font-family:var(--sans); font-weight:400; font-size:10px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--tenue);
}
.doc__datos b{
  font-family:var(--sans); font-weight:400; font-size:14px;
  color:var(--texto); letter-spacing:.01em;
}
.doc__acciones{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }

/* ─────────── pie ─────────── */
.pie{
  border-top:1px solid var(--borde);
  padding-block:clamp(44px,6vw,70px);
  background:var(--tinta);
}
.pie__reja{
  display:flex; flex-wrap:wrap; gap:32px;
  justify-content:space-between; align-items:flex-start;
}
.pie__nombre{
  font-family:var(--serif); font-weight:600; font-size:20px;
  letter-spacing:-.012em;
}
.pie__nota{
  font-family:var(--sans); font-weight:300; font-size:12.5px;
  color:var(--tenue); margin-top:12px; max-width:46ch; line-height:1.7;
}
.pie__lado{ display:flex; flex-direction:column; gap:11px; align-items:flex-start; }
.pie__enlace{
  font-family:var(--sans); font-weight:400; font-size:13px;
  color:var(--apagado); letter-spacing:.03em;
  border-bottom:1px solid transparent; padding-bottom:2px;
  transition:color .3s var(--curva), border-color .3s var(--curva);
}
.pie__enlace:hover{ color:var(--oro-claro); border-bottom-color:var(--oro-hondo); }
.pie__anio{
  font-family:var(--sans); font-weight:300; font-size:11px;
  letter-spacing:.2em; color:var(--tenue); margin-top:6px;
}

/* ─────────── revelado ─────────── */
.revelar{ opacity:0; transform:translateY(22px); }
.revelar.visible{
  opacity:1; transform:none;
  transition:opacity .85s var(--curva), transform .85s var(--curva);
}

/* ─────────── adaptable ─────────── */
@media (max-width:980px){
  .portada__reja{ grid-template-columns:1fr; gap:44px; }
  .portada__figura{ order:-1; max-width:400px; }
  .portada__figura img{ aspect-ratio:4/3; object-position:center 22%; }
  .perfil__reja{ grid-template-columns:1fr; }
  .perfil__figura{ max-width:400px; }
  .doc__reja{ grid-template-columns:1fr; }
  .doc__hoja{ max-width:340px; }
}
@media (max-width:640px){
  .marca__nombre{ display:none; }
  .franja{ flex-direction:column; align-items:flex-start; gap:16px; padding:22px 0; }
  .franja__rotulo{ padding-left:20px; }
  .area__cabeza{ grid-template-columns:auto minmax(0,1fr); }
  .area__cruz{ grid-column:2; justify-self:end; margin-top:12px; }
  .estudio{ grid-template-columns:auto minmax(0,1fr); }
  .estudio__ins{ grid-column:2; margin-top:8px; }
  .perfil__lead::first-letter{ font-size:2.9em; }
  .boton:not(.boton--fino){ width:100%; justify-content:center; }
  .boton--fino span{ display:none; }
  .boton--fino{ padding:10px 12px; }
  .boton--fino svg{ width:19px; height:19px; }
  .portada__acciones,.doc__acciones{ width:100%; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .revelar{ opacity:1; transform:none; }
}

@media print{
  .barra,.progreso,.portada__pie,.franja,.doc__acciones,.saltar{ display:none !important; }
  body{ background:#fff; color:#111; }
  .area__cuerpo{ grid-template-rows:1fr !important; }
  .area__texto{ opacity:1 !important; transform:none !important; }
}
