/* ═══════════════════════════════════════════════════════════
   PRIE · Premios Iberoamérica Empresarial
   Sistema visual: "certificado grabado" — ivory + oro
   ═══════════════════════════════════════════════════════════ */

:root{
  color-scheme: light;

  /* ── Color ───────────────────────────────── */
  --ivory:      #FBF9F4;   /* fondo de página, blanco cálido sesgado a oro */
  --ivory-2:    #F5F1E7;   /* bandas alternas */
  --papel:      #FFFFFF;   /* superficies elevadas */
  --tinta:      #1A1712;   /* texto principal, negro cálido */
  --tinta-2:    #6B6152;   /* texto secundario, gris con sesgo dorado */
  --tinta-3:    #9C927F;   /* texto terciario */
  --oro:        #B4892F;   /* oro de marca: filetes, iconos, display */
  --oro-hondo:  #7A5A1C;   /* oro legible a tamaño pequeño */
  --oro-claro:  #E5D5A6;   /* hairlines y lavados */
  --oro-vapor:  #F2EADA;   /* fondos teñidos */
  --noir:       #171310;   /* sección gala */
  --noir-2:     #221C16;
  --noir-linea: #3A2F22;
  --noir-txt:   #E8E1D4;
  --noir-txt-2: #A99C87;

  --gilt: linear-gradient(118deg,#9C7220 0%,#C8A24A 22%,#F5E7B4 42%,#C8A24A 58%,#A87D25 78%,#E3CE8E 100%);

  /* ── Tipografía ──────────────────────────── */
  --f-display: "Cinzel", "Times New Roman", serif;
  --f-edit:    "Cormorant Garamond", Georgia, serif;
  --f-ui:      "Archivo", "Helvetica Neue", Arial, sans-serif;

  /* ── Métrica ─────────────────────────────── */
  --cont: 1180px;
  --r: 2px;                /* radio mínimo: papel troquelado, no tarjeta blanda */
  --marco-in: 14px;
  --sombra: 0 1px 2px rgba(26,23,18,.04), 0 12px 32px -18px rgba(26,23,18,.20);
  --sombra-alta: 0 2px 4px rgba(26,23,18,.05), 0 28px 60px -26px rgba(26,23,18,.30);
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }

html{ scroll-behavior:smooth; scroll-padding-top:104px; }

body{
  margin:0;
  background:var(--ivory);
  color:var(--tinta);
  font-family:var(--f-ui);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; }
a{ color:var(--oro-hondo); }

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

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

.skip{
  position:absolute; left:50%; top:-60px; transform:translateX(-50%);
  z-index:200; background:var(--tinta); color:var(--ivory);
  padding:.6rem 1.2rem; font-size:.8rem; letter-spacing:.08em;
  text-transform:uppercase; text-decoration:none; transition:top .2s;
}
.skip:focus{ top:12px; }

/* ── Marco de diploma ─────────────────────── */
.marco{
  position:fixed; inset:var(--marco-in); z-index:90; pointer-events:none;
  border:1px solid rgba(180,137,47,.34);
  box-shadow:inset 0 0 0 4px var(--ivory), inset 0 0 0 5px rgba(180,137,47,.20);
}

/* ═══════════ LAYOUT ═══════════ */
.cont{ width:min(100% - 3.5rem, var(--cont)); margin-inline:auto; }
.cont--estrecho{ width:min(100% - 3.5rem, 800px); }

.sec{ padding:clamp(4.5rem,9vw,7.5rem) 0; background:var(--ivory); }
.sec--papel{ background:var(--ivory-2); }

.sec__cab{ margin-bottom:clamp(2.5rem,5vw,4rem); max-width:44ch; }
.sec__cab--c{ margin-inline:auto; text-align:center; }

/* ═══════════ TIPOGRAFÍA ═══════════ */
.cejilla{
  font-family:var(--f-ui);
  font-size:.7rem; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--oro-hondo);
  margin:0 0 1rem;
}
.cejilla::after{
  content:""; display:block; width:34px; height:1px;
  background:var(--oro); margin-top:.85rem;
}
.sec__cab--c .cejilla::after{ margin-inline:auto; }

.t2{
  font-family:var(--f-edit);
  font-weight:400;
  font-size:clamp(2.1rem,4.4vw,3.3rem);
  line-height:1.1;
  letter-spacing:-.01em;
  text-wrap:balance;
  margin:0 0 1.1rem;
  color:var(--tinta);
}
.t3{
  font-family:var(--f-edit);
  font-weight:500;
  font-size:clamp(1.4rem,2.4vw,1.85rem);
  line-height:1.2;
  margin:0 0 .7rem;
  color:var(--tinta);
}

.p{ margin:0 0 1.1rem; max-width:64ch; color:var(--tinta-2); }
.p--sm{ font-size:.94rem; }
.p--intro{ font-size:1.06rem; }
.sec__cab--c .p--intro{ margin-inline:auto; }

.cita{
  margin:2rem 0 0; padding:1.4rem 0 .2rem 1.6rem;
  border-left:2px solid var(--oro);
  font-family:var(--f-edit); font-style:italic;
  font-size:1.3rem; line-height:1.45; color:var(--tinta);
}
.cita cite{
  display:block; margin-top:.9rem;
  font-family:var(--f-ui); font-style:normal;
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--oro-hondo);
}

.filete{ display:flex; align-items:center; gap:.9rem; margin:1.8rem 0; }
.filete--c{ justify-content:center; }
.filete span{ height:1px; width:min(120px,18vw); background:linear-gradient(90deg,transparent,var(--oro)); }
.filete span:last-child{ background:linear-gradient(90deg,var(--oro),transparent); }
.filete i{ width:6px; height:6px; background:var(--oro); transform:rotate(45deg); }

.nota{
  margin:2.4rem 0 0; text-align:center;
  font-size:.86rem; color:var(--tinta-3);
}

/* ═══════════ BOTONES ═══════════ */
.btn{
  --btn-py:.95rem; --btn-px:2.1rem;
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  padding:var(--btn-py) var(--btn-px);
  font-family:var(--f-ui); font-size:.76rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; text-decoration:none;
  border:1px solid transparent; border-radius:var(--r);
  cursor:pointer; white-space:nowrap;
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn--sm{ --btn-py:.7rem; --btn-px:1.4rem; font-size:.68rem; }
.btn--blq{ display:flex; width:100%; }

.btn--oro{
  position:relative; z-index:0;
  background:var(--tinta); color:#F7EFD9;
  border-color:var(--tinta);
  box-shadow:inset 0 0 0 1px rgba(200,162,74,.5);
}
.btn--oro::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--gilt); opacity:0;
  transition:opacity .3s ease;
}
.btn--oro:hover{ color:#241C0C; transform:translateY(-2px); box-shadow:var(--sombra-alta), inset 0 0 0 1px rgba(200,162,74,.5); }
.btn--oro:hover::before{ opacity:1; }

.btn--linea{
  background:transparent; color:var(--tinta);
  border-color:rgba(180,137,47,.55);
}
.btn--linea:hover{ background:var(--oro-vapor); border-color:var(--oro); transform:translateY(-2px); }

/* ═══════════ CABECERA ═══════════ */
.cab{
  position:fixed; top:var(--marco-in); left:var(--marco-in); right:var(--marco-in);
  z-index:95;
  background:rgba(251,249,244,0);
  border-bottom:1px solid transparent;
  transition:background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.cab.is-pegada{
  background:rgba(251,249,244,.94);
  backdrop-filter:blur(14px);
  border-bottom-color:rgba(180,137,47,.26);
  box-shadow:0 10px 30px -24px rgba(26,23,18,.5);
}
.cab__in{
  width:min(100% - 3.5rem, var(--cont)); margin-inline:auto;
  display:flex; align-items:center; gap:2rem;
  padding:.85rem 0;
}

.marca{ display:flex; align-items:center; gap:.8rem; text-decoration:none; flex:0 0 auto; }
.marca__emb{ width:46px; height:auto; flex:0 0 auto; display:block; }
.marca__txt{ display:flex; flex-direction:column; line-height:1; }
.marca__txt strong{
  font-family:var(--f-display); font-weight:700;
  font-size:1.32rem; letter-spacing:.14em; color:var(--tinta);
}
.marca__txt em{
  font-style:normal; font-size:.57rem; font-weight:500;
  letter-spacing:.17em; text-transform:uppercase;
  color:var(--oro-hondo); margin-top:.34rem;
}

.nav{ display:flex; gap:1.7rem; margin-left:auto; }
.nav a{
  position:relative; text-decoration:none;
  font-size:.79rem; font-weight:500; letter-spacing:.05em;
  color:var(--tinta); padding:.3rem 0;
}
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--oro); transform:scaleX(0); transform-origin:left;
  transition:transform .3s ease;
}
.nav a:hover::after, .nav a.is-activo::after{ transform:scaleX(1); }
.nav a.is-activo{ color:var(--oro-hondo); }

.cab__acc{ display:flex; align-items:center; gap:.9rem; }

.hamb{
  display:none; width:42px; height:38px; padding:9px 8px;
  flex-direction:column; justify-content:space-between;
  background:none; border:1px solid rgba(180,137,47,.4); border-radius:var(--r);
  cursor:pointer;
}
.hamb span{ display:block; height:1.5px; background:var(--tinta); transition:transform .3s, opacity .2s; }
.hamb[aria-expanded="true"] span:nth-child(1){ transform:translateY(8.5px) rotate(45deg); }
.hamb[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hamb[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8.5px) rotate(-45deg); }

/* ═══════════ HERO ═══════════ */
.hero{
  position:relative;
  padding:clamp(8rem,15vw,11rem) 0 clamp(4rem,7vw,6rem);
  background:
    radial-gradient(1100px 620px at 50% -10%, rgba(229,213,166,.38), transparent 62%),
    var(--ivory);
  overflow:hidden;
}
.hero__fondo{
  position:absolute; top:-4%; left:50%; transform:translateX(-50%);
  width:min(840px,124vw); height:auto; opacity:.07; pointer-events:none;
}
.hero__in{
  position:relative;
  width:min(100% - 3.5rem, 940px); margin-inline:auto; text-align:center;
}

.cinta{
  display:inline-block; margin:0 0 1.9rem;
  padding:.5rem 1.4rem;
  border:1px solid rgba(180,137,47,.45);
  font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:var(--oro-hondo); background:rgba(255,255,255,.6);
}

.hero__t{
  margin:0; font-family:var(--f-display); font-weight:700;
  line-height:.98; letter-spacing:.015em; text-transform:uppercase;
}
.hero__t span{ display:block; }
.hero__t1{ font-size:clamp(1.35rem,3.5vw,2.3rem); letter-spacing:.34em; color:var(--tinta); font-weight:500; }
.hero__t2{
  font-size:clamp(2.7rem,8.6vw,6.1rem);
  background:linear-gradient(105deg,#9C7220 0%,#C8A24A 18%,#F7EDC4 32%,#C8A24A 46%,#A87D25 62%,#E8D49A 78%,#9C7220 100%);
  background-size:260% 100%;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--oro);
  margin:.12em 0;
  animation:brillo 9s linear infinite;
}
@keyframes brillo{ from{ background-position:0% 0; } to{ background-position:260% 0; } }
.hero__t3{ font-size:clamp(1.5rem,4.2vw,2.9rem); letter-spacing:.2em; color:var(--tinta); font-weight:600; }

.hero__lead{
  max-width:60ch; margin:0 auto; color:var(--tinta-2);
  font-size:1.05rem;
}

/* Cuenta atrás */
.cuenta{
  display:flex; justify-content:center; flex-wrap:wrap;
  margin:2.8rem auto 0; max-width:620px;
  border-top:1px solid rgba(180,137,47,.3);
  border-bottom:1px solid rgba(180,137,47,.3);
}
.cuenta__u{
  flex:1 1 110px; padding:1.2rem .5rem;
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
}
.cuenta__u + .cuenta__u{ border-left:1px solid rgba(180,137,47,.22); }
.cuenta__n{
  font-family:var(--f-display); font-weight:600;
  font-size:clamp(1.9rem,4.4vw,2.7rem); line-height:1;
  font-variant-numeric:tabular-nums;
  color:var(--oro-hondo);
}
.cuenta__l{
  font-size:.62rem; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--tinta-3);
}
.cuenta__pie{
  margin:.9rem 0 0; font-size:.72rem; letter-spacing:.11em;
  text-transform:uppercase; color:var(--tinta-3);
}

.hero__cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.6rem; }

/* ═══════════ CIFRAS ═══════════ */
.cifras{
  background:var(--noir);
  padding:clamp(2.6rem,4.5vw,3.6rem) 0;
  border-block:1px solid var(--noir-linea);
}
.cifras__g{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--noir-linea);
}
.cifra{
  background:var(--noir); padding:1.4rem 1rem;
  display:flex; flex-direction:column; align-items:center; gap:.45rem; text-align:center;
}
.cifra__n{
  font-family:var(--f-display); font-weight:600;
  font-size:clamp(2rem,4.6vw,2.9rem); line-height:1;
  font-variant-numeric:tabular-nums;
  background:var(--gilt); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:#C8A24A;
}
.cifra__l{
  font-size:.66rem; font-weight:500; letter-spacing:.17em;
  text-transform:uppercase; color:var(--noir-txt-2);
}

/* ═══════════ SOBRE ═══════════ */
.sobre{
  display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(2.5rem,6vw,5rem); align-items:start;
}
.pilares{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(180,137,47,.28); border:1px solid rgba(180,137,47,.28); }
.pilar{ background:var(--ivory); padding:1.7rem 1.5rem; }
.pilar h3{
  margin:0 0 .6rem; font-family:var(--f-display); font-weight:600;
  font-size:.86rem; letter-spacing:.17em; text-transform:uppercase; color:var(--oro-hondo);
}
.pilar p{ margin:0; font-size:.9rem; color:var(--tinta-2); }

/* ═══════════ EQUIPO ═══════════ */
.equipo{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,3vw,2.5rem); }
.perfil{
  background:var(--papel); border:1px solid rgba(180,137,47,.26);
  padding:clamp(1.6rem,3vw,2.3rem); box-shadow:var(--sombra);
}
.perfil__cab{ display:flex; gap:1.1rem; align-items:flex-start; margin-bottom:1.3rem; }
.perfil__ini{
  flex:0 0 auto; width:58px; height:58px;
  display:grid; place-items:center;
  border:1px solid var(--oro); color:var(--oro-hondo);
  font-family:var(--f-display); font-weight:600; font-size:1.05rem; letter-spacing:.08em;
  background:var(--oro-vapor);
}
.perfil h3{ margin:0; font-family:var(--f-edit); font-size:1.4rem; font-weight:600; line-height:1.2; }
.perfil__rol{
  margin:.3rem 0 .25rem; font-size:.66rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--oro-hondo);
}
.perfil__loc{ margin:0; font-size:.8rem; color:var(--tinta-3); }

.ficha{ margin:1.4rem 0 0; padding-top:1.2rem; border-top:1px solid rgba(180,137,47,.24); display:grid; gap:.8rem; }
.ficha > div{ display:grid; grid-template-columns:96px 1fr; gap:1rem; }
.ficha dt{ font-size:.63rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--tinta-3); padding-top:.2rem; }
.ficha dd{ margin:0; font-size:.86rem; color:var(--tinta-2); }

/* ═══════════ CATEGORÍAS ═══════════ */
.cats{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(180,137,47,.26);
  border:1px solid rgba(180,137,47,.26);
}
.cat{
  position:relative; background:var(--ivory);
  padding:2.1rem 1.6rem 2.3rem;
  transition:background-color .3s ease;
}
.cat::after{
  content:""; position:absolute; left:0; right:0; top:0; height:2px;
  background:var(--gilt); transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.22,.8,.3,1);
}
.cat:hover, .cat:focus-visible{ background:var(--papel); outline:none; }
.cat:hover::after, .cat:focus-visible::after{ transform:scaleX(1); }
.cat:focus-visible{ box-shadow:inset 0 0 0 2px var(--oro); }
.cat__ic{ width:34px; height:34px; color:var(--oro); display:block; margin-bottom:1.1rem; }
.cat h3{
  margin:0 0 .5rem; font-family:var(--f-display); font-weight:600;
  font-size:.92rem; letter-spacing:.11em; text-transform:uppercase; color:var(--tinta);
}
.cat p{ margin:0; font-size:.86rem; color:var(--tinta-2); }

/* ═══════════ BENEFICIOS ═══════════ */
.benes{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.2rem,2.6vw,2.2rem); counter-reset:b; }
.bene{ padding-top:1.4rem; border-top:2px solid var(--oro); }
.bene h3{
  margin:0 0 .6rem; font-family:var(--f-edit); font-weight:600;
  font-size:1.22rem; line-height:1.25; color:var(--tinta);
}
.bene p{ margin:0; font-size:.9rem; color:var(--tinta-2); }

/* ═══════════ NOIR ═══════════ */
.noir{
  background:
    radial-gradient(900px 500px at 15% 0%, rgba(200,162,74,.13), transparent 60%),
    var(--noir);
  color:var(--noir-txt);
  padding:clamp(5rem,10vw,8rem) 0;
}
.noir .t2, .noir .t3{ color:#F4EDDE; }
.noir .p{ color:var(--noir-txt-2); }
.noir .cejilla{ color:#C8A24A; }
.noir .cejilla::after{ background:#C8A24A; }

/* Línea de ediciones */
.linea{ list-style:none; margin:0; padding:0; display:grid; gap:0; }
.ed{
  display:grid; grid-template-columns:120px 1fr;
  gap:clamp(1.4rem,3vw,3rem);
  padding:2.2rem 0;
  border-top:1px solid var(--noir-linea);
  transition:background-color .3s ease;
}
.ed:last-child{ border-bottom:1px solid var(--noir-linea); }
.ed:hover{ background:rgba(200,162,74,.045); }
.ed__rom{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(2.6rem,6vw,4rem); line-height:.9;
  color:var(--noir-linea);
  transition:color .35s ease;
  text-align:right;
}
.ed:hover .ed__rom{ color:#8B6C2C; }
.ed--prox .ed__rom{
  background:var(--gilt); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:#C8A24A;
}
.ed__fecha{
  margin:0 0 .45rem; font-size:.66rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:#C8A24A;
}
.ed__lugar{ margin:0 0 .7rem; font-family:var(--f-edit); font-weight:500; font-size:1.5rem; color:#F4EDDE; }
.ed__desc{ margin:0; max-width:62ch; font-size:.92rem; color:var(--noir-txt-2); }
.ed__cuerpo .btn{ margin-top:1.3rem; }
.ed--prox .btn--oro{ background:transparent; color:#F4EDDE; border-color:#C8A24A; }
.ed--prox .btn--oro:hover{ color:#241C0C; }

/* ═══════════ VI EDICIÓN ═══════════ */
.datos{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(180,137,47,.26);
  border:1px solid rgba(180,137,47,.26);
  margin-bottom:clamp(2rem,4vw,3rem);
}
.dato{ background:var(--ivory); padding:1.7rem 1.2rem; text-align:center; }
.dato dt{
  font-size:.62rem; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--tinta-3); margin-bottom:.6rem;
}
.dato dd{
  margin:0; font-family:var(--f-display); font-weight:600;
  font-size:clamp(1.3rem,2.6vw,1.8rem); color:var(--oro-hondo);
  font-variant-numeric:tabular-nums; letter-spacing:.04em;
}

.perfiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.5vw,2rem); }
.pfl{
  background:var(--papel); border:1px solid rgba(180,137,47,.26);
  padding:1.9rem 1.7rem; box-shadow:var(--sombra);
}
.pfl h3{
  margin:0 0 .7rem; font-family:var(--f-display); font-weight:600;
  font-size:.88rem; letter-spacing:.15em; text-transform:uppercase; color:var(--oro-hondo);
}
.pfl p{ margin:0; font-size:.9rem; color:var(--tinta-2); }

/* ═══════════ GALARDONADOS ═══════════ */
.filtros{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.4rem; }
.chip{
  padding:.55rem 1.15rem; background:transparent;
  border:1px solid rgba(180,137,47,.42); border-radius:var(--r);
  font-family:var(--f-ui); font-size:.7rem; font-weight:600;
  letter-spacing:.13em; text-transform:uppercase; color:var(--tinta-2);
  cursor:pointer; transition:all .25s ease;
}
.chip:hover{ border-color:var(--oro); color:var(--tinta); }
.chip.is-on{ background:var(--tinta); border-color:var(--tinta); color:#F2E5C6; }

.palmares{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(180,137,47,.26); border:1px solid rgba(180,137,47,.26); }
.gal{
  background:var(--papel); padding:1.5rem 1.4rem;
  display:flex; flex-direction:column; gap:.4rem;
  transition:background-color .25s ease;
}
.gal:hover{ background:var(--oro-vapor); }
.gal__ed{
  font-family:var(--f-display); font-size:.72rem; font-weight:600;
  letter-spacing:.16em; color:var(--oro-hondo);
}
.gal__nom{ margin:0; font-family:var(--f-edit); font-size:1.22rem; font-weight:600; line-height:1.25; color:var(--tinta); }
.gal__meta{ margin:0; font-size:.78rem; color:var(--tinta-3); letter-spacing:.04em; }
.palmares__vacio{
  grid-column:1/-1; background:var(--papel); padding:3rem 1.5rem;
  text-align:center; color:var(--tinta-3); font-size:.9rem;
}

/* ═══════════ PATROCINIO ═══════════ */
.planes{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,2vw,1.6rem); align-items:stretch; }
.plan{
  display:flex; flex-direction:column;
  background:var(--papel); border:1px solid rgba(180,137,47,.28);
  padding:2rem 1.6rem; box-shadow:var(--sombra);
}
.plan--oro{
  border-color:var(--oro);
  box-shadow:var(--sombra-alta);
  background:linear-gradient(180deg,var(--oro-vapor),var(--papel) 40%);
}
.plan--oro::before{
  content:""; display:block; height:3px; margin:-2rem -1.6rem 1.6rem;
  background:var(--gilt);
}
.plan__tier{
  margin:0 0 .3rem; font-family:var(--f-display); font-weight:700;
  font-size:1.25rem; letter-spacing:.2em; text-transform:uppercase; color:var(--tinta);
}
.plan__claim{
  margin:0 0 1.3rem; font-size:.68rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--oro-hondo);
}
.plan__l{ list-style:none; margin:0 0 1.8rem; padding:0; display:grid; gap:.7rem; flex:1; }
.plan__l li{ position:relative; padding-left:1.35rem; font-size:.87rem; color:var(--tinta-2); }
.plan__l li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:6px; height:6px; background:var(--oro); transform:rotate(45deg);
}

/* ═══════════ FORMULARIOS ═══════════ */
.form-caja{
  background:var(--papel); border:1px solid rgba(180,137,47,.3);
  box-shadow:var(--sombra-alta);
  padding:clamp(1.6rem,4vw,2.8rem);
}

.pasos{
  list-style:none; margin:0 0 2.4rem; padding:0 0 1.5rem;
  display:flex; gap:1.6rem; flex-wrap:wrap;
  border-bottom:1px solid rgba(180,137,47,.24);
}
.paso{
  display:flex; align-items:center; gap:.6rem;
  font-size:.68rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--tinta-3);
  transition:color .3s ease;
}
.paso span{
  display:grid; place-items:center; width:26px; height:26px;
  border:1px solid rgba(180,137,47,.45); border-radius:50%;
  font-family:var(--f-display); font-size:.74rem; color:var(--tinta-3);
  transition:all .3s ease;
}
.paso.is-on{ color:var(--tinta); }
.paso.is-on span{ background:var(--tinta); border-color:var(--tinta); color:#F2E5C6; }
.paso.is-hecho span{ background:var(--oro-vapor); border-color:var(--oro); color:var(--oro-hondo); }

.panel{ display:none; border:0; margin:0; padding:0; }
.panel.is-on{ display:block; animation:entra .4s cubic-bezier(.22,.8,.3,1); }
@keyframes entra{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none;} }

.campos{ display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.campo{ display:flex; flex-direction:column; gap:.45rem; min-width:0; }
.campo--ancho{ grid-column:1/-1; }
.campo__l{
  font-size:.65rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--tinta-2);
}
.campo__l i{ color:var(--oro); font-style:normal; }
.campo input, .campo select, .campo textarea{
  width:100%; padding:.85rem 1rem;
  font-family:var(--f-ui); font-size:.94rem; color:var(--tinta);
  background:var(--ivory);
  border:1px solid rgba(180,137,47,.34); border-radius:var(--r);
  transition:border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.campo textarea{ resize:vertical; line-height:1.6; }
.campo input:focus, .campo select:focus, .campo textarea:focus{
  outline:none; background:var(--papel);
  border-color:var(--oro); box-shadow:0 0 0 3px rgba(180,137,47,.14);
}
.campo input::placeholder, .campo textarea::placeholder{ color:var(--tinta-3); }
.campo__pie{ font-size:.7rem; color:var(--tinta-3); text-align:right; font-variant-numeric:tabular-nums; }
.campo__err{ font-size:.75rem; color:#A13A1F; min-height:0; }
.campo.is-mal input, .campo.is-mal select, .campo.is-mal textarea{ border-color:#A13A1F; background:#FDF5F3; }
.campo.is-listo select{ border-color:var(--oro); background:var(--oro-vapor); animation:latido 1.1s ease 2; }
@keyframes latido{ 0%,100%{ box-shadow:0 0 0 0 rgba(180,137,47,.5); } 50%{ box-shadow:0 0 0 7px rgba(180,137,47,0); } }

.check{ display:flex; gap:.75rem; align-items:flex-start; margin:1.6rem 0 0; font-size:.85rem; color:var(--tinta-2); }
.check input{ margin-top:.25rem; width:17px; height:17px; accent-color:var(--oro-hondo); flex:0 0 auto; }
.check i{ color:var(--oro); font-style:normal; }
.check.is-mal span{ color:#A13A1F; }

.form__nav{ display:flex; justify-content:space-between; gap:1rem; margin-top:2rem; }
.form__estado{ margin:.9rem 0 0; font-size:.83rem; color:var(--oro-hondo); min-height:1.2em; }

.resumen{
  margin:1.6rem 0 0; padding:1.3rem 1.4rem;
  background:var(--oro-vapor); border:1px solid rgba(180,137,47,.3);
  display:grid; gap:.55rem; font-size:.86rem;
}
.resumen div{ display:grid; grid-template-columns:130px 1fr; gap:1rem; }
.resumen dt, .resumen b{
  font-size:.63rem; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; color:var(--oro-hondo);
}
.resumen span{ color:var(--tinta); }

.exito{ text-align:center; padding:2rem 0 1rem; }
.exito__ic{ width:56px; height:56px; color:var(--oro); margin-bottom:1.2rem; }
.exito h3{ margin:0 0 .8rem; font-family:var(--f-edit); font-size:1.8rem; font-weight:600; }
.exito p{ margin:0 auto .7rem; max-width:52ch; color:var(--tinta-2); }
.exito__aviso{ font-size:.82rem; color:var(--tinta-3); }

/* Formulario sobre noir */
.form--noir .campo__l{ color:var(--noir-txt-2); }
.form--noir .campo input, .form--noir .campo select, .form--noir .campo textarea{
  background:var(--noir-2); color:var(--noir-txt); border-color:var(--noir-linea);
}
.form--noir .campo input:focus, .form--noir .campo select:focus, .form--noir .campo textarea:focus{
  background:#2A231B; border-color:#C8A24A; box-shadow:0 0 0 3px rgba(200,162,74,.16);
}
.form--noir .campo input::placeholder, .form--noir .campo textarea::placeholder{ color:#7A6E5C; }
.form--noir .campo.is-mal input, .form--noir .campo.is-mal select, .form--noir .campo.is-mal textarea{
  border-color:#D9704F; background:#2C1D18;
}
.check--noir{ color:var(--noir-txt-2); }
.check--noir a{ color:#D6B463; }
.form--noir .btn--oro{ background:var(--gilt); color:#241C0C; border-color:transparent; }
.form--noir .form__estado{ color:#D6B463; }

/* ═══════════ FAQ + PRENSA ═══════════ */
.faq-wrap{ display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(2rem,5vw,4rem); align-items:start; }

.acordeon{ margin-top:1.8rem; border-top:1px solid rgba(180,137,47,.28); }
.ac{ border-bottom:1px solid rgba(180,137,47,.28); }
.ac__b{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:1.5rem;
  padding:1.3rem 0; background:none; border:0; cursor:pointer;
  font-family:var(--f-edit); font-size:1.18rem; font-weight:500; line-height:1.35;
  color:var(--tinta); text-align:left;
  transition:color .25s ease;
}
.ac__b:hover{ color:var(--oro-hondo); }
.ac__i{ position:relative; flex:0 0 auto; width:15px; height:15px; }
.ac__i::before, .ac__i::after{
  content:""; position:absolute; background:var(--oro); transition:transform .3s ease;
}
.ac__i::before{ left:0; right:0; top:7px; height:1.5px; }
.ac__i::after{ top:0; bottom:0; left:6.75px; width:1.5px; }
.ac__b[aria-expanded="true"] .ac__i::after{ transform:scaleY(0); }
.ac__p{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s cubic-bezier(.22,.8,.3,1); }
.ac__p > p{ overflow:hidden; margin:0; font-size:.92rem; color:var(--tinta-2); max-width:62ch; }
.ac.is-abierto .ac__p{ grid-template-rows:1fr; }
.ac.is-abierto .ac__p > p{ padding-bottom:1.4rem; }

.prensa{
  background:var(--papel); border:1px solid rgba(180,137,47,.28);
  padding:clamp(1.6rem,3vw,2.1rem); box-shadow:var(--sombra);
  position:sticky; top:118px;
}
.prensa__l{ list-style:none; margin:1.2rem 0 1.8rem; padding:0; display:grid; gap:.6rem; }
.prensa__l li{ position:relative; padding-left:1.3rem; font-size:.85rem; color:var(--tinta-2); }
.prensa__l li::before{ content:""; position:absolute; left:0; top:.55em; width:5px; height:5px; background:var(--oro); transform:rotate(45deg); }

/* ═══════════ CONTACTO ═══════════ */
.noir--contacto{ padding:clamp(4.5rem,9vw,7rem) 0; }
.contacto{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.contacto__d{ margin:2.2rem 0 0; display:grid; gap:1.1rem; }
.contacto__d > div{ display:grid; grid-template-columns:120px 1fr; gap:1rem; padding-bottom:1.1rem; border-bottom:1px solid var(--noir-linea); }
.contacto__d dt{ font-size:.62rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--noir-txt-2); padding-top:.15rem; }
.contacto__d dd{ margin:0; color:#F4EDDE; font-size:.95rem; }
.contacto__d a{ color:#D6B463; text-decoration:none; border-bottom:1px solid rgba(214,180,99,.4); }
.contacto__d a:hover{ color:#F0D999; }

.redes{ display:flex; gap:.7rem; margin-top:2rem; }
.redes a{
  display:grid; place-items:center; width:42px; height:42px;
  border:1px solid var(--noir-linea); color:var(--noir-txt-2);
  transition:all .25s ease;
}
.redes a:hover{ border-color:#C8A24A; color:#F0D999; transform:translateY(-2px); }
.redes svg{ width:19px; height:19px; }

/* ═══════════ BOLETÍN ═══════════ */
.boletin{ background:var(--oro-vapor); border-block:1px solid rgba(180,137,47,.3); padding:clamp(2.8rem,5vw,4rem) 0; }
.boletin__in{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.8rem,4vw,3.5rem); align-items:center; }
.boletin .p{ margin:0; }
.boletin__f{ display:flex; gap:.7rem; flex-wrap:wrap; }
.boletin__f input{
  flex:1 1 220px; padding:.95rem 1.1rem;
  font-family:var(--f-ui); font-size:.94rem; color:var(--tinta);
  background:var(--papel); border:1px solid rgba(180,137,47,.4); border-radius:var(--r);
}
.boletin__f input:focus{ outline:none; border-color:var(--oro); box-shadow:0 0 0 3px rgba(180,137,47,.14); }
.boletin__f .form__estado{ flex:1 1 100%; }

/* ═══════════ PIE ═══════════ */
.pie{ background:var(--noir); color:var(--noir-txt-2); padding:clamp(3.5rem,6vw,5rem) 0 0; }
.pie__in{ display:grid; grid-template-columns:1.6fr .8fr .8fr .8fr; gap:clamp(2rem,4vw,3rem); padding-bottom:3rem; }
.pie__emb{ width:52px; height:56px; margin-bottom:1.1rem; }
.pie__nom{ margin:0 0 .6rem; font-family:var(--f-display); font-weight:600; font-size:1rem; letter-spacing:.13em; text-transform:uppercase; color:#F4EDDE; }
.pie__desc{ margin:0; font-size:.86rem; max-width:38ch; }
.pie__col{ display:flex; flex-direction:column; gap:.65rem; }
.pie__col h2{
  margin:0 0 .5rem; font-size:.63rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:#C8A24A;
}
.pie__col a, .pie__col span{ font-size:.87rem; color:var(--noir-txt-2); text-decoration:none; transition:color .2s ease; }
.pie__col a:hover{ color:#F0D999; }

.pie__base{
  display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
  padding:1.6rem 0 2rem; border-top:1px solid var(--noir-linea);
  font-size:.78rem;
}
.pie__base p{ margin:0; }
.pie__legal{ display:flex; gap:1.5rem; flex-wrap:wrap; }
.pie__legal a{ color:var(--noir-txt-2); text-decoration:none; }
.pie__legal a:hover{ color:#F0D999; text-decoration:underline; }

/* ═══════════ CONCIERGE ═══════════ */
.bot-lanza{
  position:fixed; right:30px; bottom:30px; z-index:110;
  width:62px; height:62px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--tinta); border:1px solid rgba(200,162,74,.55);
  box-shadow:0 14px 34px -12px rgba(26,23,18,.55);
  cursor:pointer;
  transition:transform .3s cubic-bezier(.22,.8,.3,1), box-shadow .3s ease;
}
.bot-lanza:hover{ transform:translateY(-3px) scale(1.04); box-shadow:0 20px 44px -14px rgba(26,23,18,.6); }
.bot-lanza__emb{ width:38px; height:41px; }
.bot-lanza__punto{
  position:absolute; top:4px; right:4px; width:11px; height:11px; border-radius:50%;
  background:#C8A24A; border:2px solid var(--tinta);
}
.bot-lanza.is-abierto .bot-lanza__punto{ display:none; }

.bot{
  position:fixed; right:30px; bottom:104px; z-index:111;
  width:min(390px, calc(100vw - 48px));
  height:min(560px, calc(100vh - 150px));
  display:flex; flex-direction:column;
  background:var(--papel);
  border:1px solid rgba(180,137,47,.4);
  box-shadow:0 30px 70px -22px rgba(26,23,18,.45);
  overflow:hidden;
  animation:botEntra .32s cubic-bezier(.22,.8,.3,1);
}
@keyframes botEntra{ from{ opacity:0; transform:translateY(16px) scale(.98);} to{ opacity:1; transform:none;} }

.bot__cab{
  display:flex; align-items:center; gap:.85rem;
  padding:1rem 1.1rem; background:var(--noir); color:var(--noir-txt);
  border-bottom:1px solid var(--noir-linea);
}
.bot__emb{ width:34px; height:37px; flex:0 0 auto; }
.bot__nom{ margin:0; font-family:var(--f-display); font-weight:600; font-size:.88rem; letter-spacing:.13em; text-transform:uppercase; color:#F4EDDE; }
.bot__est{ margin:.2rem 0 0; font-size:.68rem; color:var(--noir-txt-2); display:flex; align-items:center; gap:.4rem; }
.bot__est i{ width:6px; height:6px; border-radius:50%; background:#6FBF73; }
.bot__cerrar{
  margin-left:auto; width:32px; height:32px; display:grid; place-items:center;
  background:none; border:1px solid var(--noir-linea); color:var(--noir-txt-2);
  cursor:pointer; transition:all .2s ease;
}
.bot__cerrar:hover{ border-color:#C8A24A; color:#F0D999; }
.bot__cerrar svg{ width:15px; height:15px; }

.bot__hilo{
  flex:1; overflow-y:auto; padding:1.2rem 1.1rem;
  display:flex; flex-direction:column; gap:.85rem;
  background:var(--ivory);
  scrollbar-width:thin; scrollbar-color:var(--oro-claro) transparent;
}
.bot__hilo::-webkit-scrollbar{ width:6px; }
.bot__hilo::-webkit-scrollbar-thumb{ background:var(--oro-claro); }

.msg{ max-width:85%; padding:.75rem .95rem; font-size:.88rem; line-height:1.55; border-radius:var(--r); }
.msg--bot{ align-self:flex-start; background:var(--papel); border:1px solid rgba(180,137,47,.28); color:var(--tinta); }
.msg--yo{ align-self:flex-end; background:var(--tinta); color:#F2E5C6; }
.msg p{ margin:0 0 .6rem; }
.msg p:last-child{ margin:0; }
.msg strong{ color:var(--oro-hondo); }
.msg--yo strong{ color:#E3C87F; }
.msg a{ color:var(--oro-hondo); }
.msg ul{ margin:.5rem 0 0; padding-left:1.1rem; }
.msg li{ margin-bottom:.25rem; }

.msg--esc{ display:flex; gap:4px; align-items:center; padding:.9rem 1rem; }
.msg--esc i{ width:6px; height:6px; border-radius:50%; background:var(--oro); animation:pulso 1.2s infinite; }
.msg--esc i:nth-child(2){ animation-delay:.18s; }
.msg--esc i:nth-child(3){ animation-delay:.36s; }
@keyframes pulso{ 0%,60%,100%{ opacity:.28; transform:translateY(0);} 30%{ opacity:1; transform:translateY(-3px);} }

.bot__chips{ display:flex; gap:.45rem; flex-wrap:wrap; padding:.8rem 1.1rem 0; background:var(--ivory); }
.bot__chips:empty{ padding:0; }
.bot-chip{
  padding:.45rem .8rem; background:var(--papel);
  border:1px solid rgba(180,137,47,.4); border-radius:var(--r);
  font-family:var(--f-ui); font-size:.74rem; color:var(--oro-hondo);
  cursor:pointer; transition:all .2s ease;
}
.bot-chip:hover{ background:var(--oro-vapor); border-color:var(--oro); }

.bot__form{ display:flex; gap:.5rem; padding:.9rem 1.1rem 1.1rem; background:var(--ivory); border-top:1px solid rgba(180,137,47,.24); }
.bot__form input{
  flex:1; min-width:0; padding:.7rem .9rem;
  font-family:var(--f-ui); font-size:.88rem; color:var(--tinta);
  background:var(--papel); border:1px solid rgba(180,137,47,.34); border-radius:var(--r);
}
.bot__form input:focus{ outline:none; border-color:var(--oro); box-shadow:0 0 0 3px rgba(180,137,47,.14); }
.bot__form button{
  flex:0 0 auto; width:42px; display:grid; place-items:center;
  background:var(--tinta); border:0; border-radius:var(--r); color:#F2E5C6; cursor:pointer;
  transition:background .25s ease;
}
.bot__form button:hover{ background:var(--oro-hondo); }
.bot__form svg{ width:18px; height:18px; }

/* ═══════════ MODAL LEGAL ═══════════ */
.modal{ position:fixed; inset:0; z-index:150; display:grid; place-items:center; padding:1.5rem; }
.modal__fondo{ position:absolute; inset:0; background:rgba(23,19,16,.6); backdrop-filter:blur(3px); }
.modal__caja{
  position:relative; width:min(100%,680px); max-height:82vh; overflow-y:auto;
  background:var(--papel); border:1px solid rgba(180,137,47,.4);
  padding:clamp(1.6rem,4vw,2.6rem);
  box-shadow:0 40px 90px -30px rgba(26,23,18,.6);
  animation:entra .3s cubic-bezier(.22,.8,.3,1);
}
.modal__x{
  position:absolute; top:1rem; right:1rem; width:34px; height:34px;
  display:grid; place-items:center; background:none;
  border:1px solid rgba(180,137,47,.4); color:var(--tinta-2); cursor:pointer;
}
.modal__x:hover{ border-color:var(--oro); color:var(--tinta); }
.modal__x svg{ width:15px; height:15px; }
.modal__cuerpo{ font-size:.9rem; color:var(--tinta-2); }
.modal__cuerpo h3{ font-family:var(--f-ui); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--oro-hondo); margin:1.6rem 0 .5rem; }
.modal__cuerpo p{ margin:0 0 .8rem; }

/* ═══════════ REVELADO AL SCROLL ═══════════ */
/* Sin JS todo queda visible; el JS marca html.js y activa la transición. */
.js .reveal{ opacity:.001; transform:translateY(18px); }
.js .reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .7s cubic-bezier(.22,.8,.3,1), transform .7s cubic-bezier(.22,.8,.3,1);
}
.js .reveal.is-in[style*="--d"]{ transition-delay:var(--d); }

/* ═══════════════════════════════════════════════════════════
   FOTOGRAFÍA
   ═══════════════════════════════════════════════════════════ */

/* ── Banda a sangre ───────────────────────── */
.banda{
  position:relative; margin:0; overflow:hidden;
  border-block:1px solid rgba(180,137,47,.3);
  background:var(--noir);
}
.banda img{
  display:block; width:100%; height:clamp(300px,42vw,520px);
  object-fit:cover; object-position:center 32%;
}
/* encuadre propio: deja las cabezas del grupo dentro del recorte */
.banda--grupo img{ object-position:center 15%; }
.banda--slim{ margin-bottom:clamp(2rem,4vw,3rem); }
.banda--slim img{ height:clamp(190px,24vw,300px); object-position:center 40%; }
.banda figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:2.6rem clamp(1.4rem,4vw,3rem) 1.1rem;
  background:linear-gradient(transparent, rgba(12,9,7,.82));
  color:#EFE3C6; font-size:.7rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
}

/* ── Retrato del equipo ───────────────────── */
.perfil__foto{
  flex:0 0 auto; width:92px; height:115px; object-fit:cover; object-position:center 15%;
  border:1px solid var(--oro); display:block;
  background:var(--oro-vapor);
}

/* ── Imagen destacada de una sección ──────── */
.destacada{
  margin:0 0 2.6rem; position:relative; overflow:hidden;
  border:1px solid rgba(180,137,47,.3); background:var(--papel);
  box-shadow:var(--sombra);
}
.destacada img{ display:block; width:100%; height:clamp(240px,34vw,420px); object-fit:cover; object-position:center 30%; }
.destacada figcaption{
  padding:.9rem 1.2rem; font-size:.72rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--oro-hondo);
  border-top:1px solid rgba(180,137,47,.26);
}

/* ── Portada de la revista ────────────────── */
.revista{ margin:2rem 0 0; }
.revista img{
  display:block; width:100%; border:1px solid rgba(180,137,47,.3);
  box-shadow:var(--sombra);
}
.revista figcaption{
  margin-top:.8rem; font-size:.68rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--tinta-3);
  text-align:center;
}

/* ── Galería ──────────────────────────────── */
.galeria{ column-count:4; column-gap:10px; }
.gfoto{ margin:0 0 10px; break-inside:avoid; }
.gfoto__b{
  display:block; width:100%; padding:0; border:0; background:none;
  cursor:zoom-in; position:relative; overflow:hidden;
  line-height:0;
}
.gfoto__b::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(200deg, rgba(200,162,74,.28), rgba(23,19,16,.35));
  opacity:0; transition:opacity .35s ease;
}
.gfoto__b img{
  width:100%; height:auto; display:block;
  filter:saturate(.94);
  transition:transform .6s cubic-bezier(.22,.8,.3,1), filter .4s ease;
}
.gfoto__b:hover img, .gfoto__b:focus-visible img{ transform:scale(1.045); filter:saturate(1.04); }
.gfoto__b:hover::after, .gfoto__b:focus-visible::after{ opacity:1; }
.gfoto__b:focus-visible{ outline:2px solid var(--oro); outline-offset:2px; }

/* ── Visor a pantalla completa ────────────── */
.visor{ position:fixed; inset:0; z-index:160; display:grid; place-items:center; }
.visor__fondo{ position:absolute; inset:0; background:rgba(12,9,7,.93); }
.visor__caja{
  position:relative; margin:0; max-width:min(1100px, 92vw); max-height:86vh;
  display:flex; flex-direction:column; gap:.9rem; align-items:center;
}
.visor__caja img{
  max-width:100%; max-height:76vh; object-fit:contain; display:block;
  border:1px solid rgba(200,162,74,.4);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8);
}
.visor__caja figcaption{
  color:#C9BCA3; font-size:.8rem; text-align:center; max-width:60ch;
}
.visor__x, .visor__nav{
  position:absolute; z-index:2; display:grid; place-items:center;
  background:rgba(23,19,16,.7); border:1px solid rgba(200,162,74,.4);
  color:#EFE3C6; cursor:pointer; transition:all .22s ease;
}
.visor__x{ top:20px; right:20px; width:44px; height:44px; }
.visor__nav{ top:50%; transform:translateY(-50%); width:50px; height:64px; }
.visor__nav--ant{ left:18px; }
.visor__nav--sig{ right:18px; }
.visor__x:hover, .visor__nav:hover{ background:var(--gilt); color:#241C0C; border-color:transparent; }
.visor__x svg{ width:17px; height:17px; }
.visor__nav svg{ width:22px; height:22px; }
.visor__cont{
  position:absolute; bottom:22px; left:50%; transform:translateX(-50%);
  margin:0; color:#9C8F79; font-size:.72rem; letter-spacing:.2em;
  font-variant-numeric:tabular-nums;
}

@media (max-width:1080px){
  .galeria{ column-count:3; }
}
@media (max-width:920px){
  .revista{ max-width:320px; margin-inline:auto; }
}
@media (max-width:680px){
  .galeria{ column-count:2; column-gap:6px; }
  .gfoto{ margin-bottom:6px; }
  .banda img{ height:clamp(230px,58vw,320px); }
  .visor__nav{ width:40px; height:52px; }
  .visor__nav--ant{ left:6px; }
  .visor__nav--sig{ right:6px; }
  .visor__x{ top:12px; right:12px; }
  .perfil__foto{ width:74px; height:93px; }
}
@media print{ .visor{ display:none !important; } }

/* ═══════════════════════════════════════════════════════════
   PUESTA EN ESCENA
   ═══════════════════════════════════════════════════════════ */

/* ── Telón de apertura ────────────────────── */
.telon{
  position:fixed; inset:0; z-index:300;
  display:grid; place-items:center;
  background:var(--ivory);
  transition:opacity .6s ease .15s, visibility .6s .15s;
}
.telon.is-fuera{ opacity:0; visibility:hidden; }
.telon__in{ text-align:center; }
.telon__emb{ width:96px; height:103px; display:block; margin:0 auto 1.5rem; }
.telon__emb *{
  stroke-dasharray:520; stroke-dashoffset:520;
  animation:trazo 1.15s cubic-bezier(.5,0,.2,1) forwards;
}
.telon__emb rect{ animation:aparece .5s ease .75s both; stroke-dasharray:none; }
@keyframes trazo{ to{ stroke-dashoffset:0; } }
@keyframes aparece{ from{ opacity:0; } to{ opacity:1; } }
.telon__n{
  margin:0; font-family:var(--f-display); font-weight:700;
  font-size:2.1rem; letter-spacing:.42em; text-indent:.42em; color:var(--tinta);
  animation:sube .7s cubic-bezier(.22,.8,.3,1) .6s both;
}
.telon__s{
  margin:.7rem 0 0; font-size:.63rem; font-weight:600;
  letter-spacing:.26em; text-transform:uppercase; color:var(--oro-hondo);
  animation:sube .7s cubic-bezier(.22,.8,.3,1) .78s both;
}
@keyframes sube{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

/* Entrada escalonada de la portada, una vez alzado el telón.
   El estado oculto vive en .cargando, que se retira siempre: si la
   animación no llega a ejecutarse (pestaña en segundo plano, fallo de JS),
   la portada queda visible igualmente. */
.cargando .hero__in > *{ opacity:0; transform:translateY(22px); }
.hero.is-dentro .hero__in > *{
  animation:sube .9s cubic-bezier(.22,.8,.3,1) forwards;
}
.hero.is-dentro .hero__in > *:nth-child(1){ animation-delay:.05s; }
.hero.is-dentro .hero__in > *:nth-child(2){ animation-delay:.14s; }
.hero.is-dentro .hero__in > *:nth-child(3){ animation-delay:.26s; }
.hero.is-dentro .hero__in > *:nth-child(4){ animation-delay:.34s; }
.hero.is-dentro .hero__in > *:nth-child(5){ animation-delay:.44s; }
.hero.is-dentro .hero__in > *:nth-child(6){ animation-delay:.52s; }
.hero.is-dentro .hero__in > *:nth-child(7){ animation-delay:.60s; }
.hero.is-dentro .hero__in > *:nth-child(8){ animation-delay:.68s; }

/* ── Barra de progreso de lectura ─────────── */
.progreso{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:120;
  background:rgba(180,137,47,.12); pointer-events:none;
}
.progreso span{
  display:block; height:100%; width:0; background:var(--gilt);
  transform-origin:left; transition:width .08s linear;
}

/* ── Polvo de oro ─────────────────────────── */
.polvo{
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; opacity:.85;
}

/* ── Portada: pie de refuerzo ─────────────── */
.hero__pie{
  margin:1.5rem 0 0; font-size:.67rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--tinta-3);
}
.btn--grande{ --btn-py:1.15rem; --btn-px:2.6rem; font-size:.79rem; }

/* ── Marquesina de países ─────────────────── */
.marquesina{
  overflow:hidden; background:var(--ivory);
  border-bottom:1px solid rgba(180,137,47,.26);
  padding:1.05rem 0; user-select:none;
}
.marquesina__pista{ display:flex; width:max-content; animation:desliza 68s linear infinite; }
.marquesina:hover .marquesina__pista{ animation-play-state:paused; }
.marquesina__g{ display:flex; align-items:center; }
.marquesina__g span{
  padding:0 1.5rem; font-family:var(--f-display); font-weight:500;
  font-size:.86rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--tinta-2); white-space:nowrap;
}
.marquesina__g i{ font-style:normal; font-size:.5rem; color:var(--oro); }
@keyframes desliza{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ── Categorías interactivas ──────────────── */
.cat{ cursor:pointer; }
.cat__ir{
  display:flex; align-items:center; gap:.5rem;
  margin-top:1.1rem; font-size:.64rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase; color:var(--oro-hondo);
  opacity:0; transform:translateY(6px);
  transition:opacity .3s ease, transform .3s ease;
}
.cat__ir i{ font-style:normal; transition:transform .3s ease; }
.cat:hover .cat__ir, .cat:focus-visible .cat__ir{ opacity:1; transform:none; }
.cat:hover .cat__ir i{ transform:translateX(4px); }
.cat__ic{ transition:transform .45s cubic-bezier(.22,.8,.3,1); }
.cat:hover .cat__ic{ transform:translateY(-3px) scale(1.08); }

/* ── Banda CTA de candidatura ─────────────── */
.cta-banda{
  background:
    radial-gradient(700px 320px at 12% 50%, rgba(229,213,166,.5), transparent 70%),
    var(--oro-vapor);
  border-block:1px solid rgba(180,137,47,.32);
  padding:clamp(3rem,6vw,4.6rem) 0;
}
.cta-banda__in{
  display:grid; grid-template-columns:1.3fr .7fr;
  gap:clamp(2rem,5vw,4rem); align-items:center;
}
.cta-banda .t2{ margin-bottom:.8rem; }
.cta-banda .p{ margin:0; }
.cta-banda__acc{ display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.cta-banda__alt{
  font-size:.7rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--oro-hondo);
  border-bottom:1px solid rgba(122,90,28,.4); text-decoration:none; padding-bottom:2px;
}
.cta-banda__alt:hover{ border-bottom-color:var(--oro-hondo); }

/* ── Sección de patrocinio ────────────────── */
.cta-patro{
  position:relative; overflow:hidden;
  background:
    radial-gradient(760px 420px at 78% 12%, rgba(200,162,74,.2), transparent 62%),
    radial-gradient(620px 380px at 12% 92%, rgba(200,162,74,.12), transparent 60%),
    var(--noir);
  color:var(--noir-txt);
  padding:clamp(4.2rem,8vw,6.5rem) 0;
  border-block:1px solid var(--noir-linea);
}
.cta-patro::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 38%, rgba(247,237,196,.07) 48%, transparent 58%);
  background-size:280% 100%;
  animation:barrido 7s ease-in-out infinite;
  pointer-events:none;
}
@keyframes barrido{ 0%{ background-position:150% 0; } 55%,100%{ background-position:-90% 0; } }
.cta-patro__in{ position:relative; text-align:center; }
.cta-patro .t2{ color:#F7F0DF; }
.cta-patro .cejilla{ color:#C8A24A; }
.cta-patro .cejilla::after{ background:#C8A24A; margin-inline:auto; }
.cta-patro .p--intro{ color:var(--noir-txt-2); margin-inline:auto; }
.cta-patro__d{
  display:flex; justify-content:center; flex-wrap:wrap;
  gap:clamp(1.5rem,5vw,4rem); margin:2.6rem 0;
}
.cta-patro__d > div{ display:flex; flex-direction:column; gap:.35rem; }
.cta-patro__d strong{
  font-family:var(--f-display); font-weight:600; font-size:clamp(1.8rem,3.6vw,2.5rem);
  background:var(--gilt); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:#C8A24A;
  font-variant-numeric:tabular-nums;
}
.cta-patro__d span{
  font-size:.63rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--noir-txt-2);
}
.cta-patro__acc{ display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }
.cta-patro .btn--linea{ color:#F0E6D0; border-color:rgba(200,162,74,.5); }
.cta-patro .btn--linea:hover{ background:rgba(200,162,74,.12); border-color:#C8A24A; }

/* ── Distintivo del plan Oro ──────────────── */
.plan{ transition:transform .3s cubic-bezier(.22,.8,.3,1), box-shadow .3s ease; transform-style:preserve-3d; }
.plan--oro{ position:relative; }
.plan__sello{
  position:absolute; top:-1px; right:1.4rem;
  padding:.4rem .85rem;
  background:var(--gilt); color:#241C0C;
  font-size:.58rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
}

/* ── Línea del tiempo que se rellena ──────── */
.linea{ position:relative; }
.linea__riel{
  position:absolute; left:59px; top:0; bottom:0; width:1px;
  background:var(--noir-linea);
}
.linea__riel i{
  position:absolute; inset:0 auto 0 0; width:1px; height:0;
  background:linear-gradient(180deg,#C8A24A,#F5E7B4);
  box-shadow:0 0 10px rgba(200,162,74,.6);
  transition:height .2s linear;
}

/* ── Barra fija de conversión ─────────────── */
.barra{
  position:fixed; left:var(--marco-in); right:var(--marco-in); bottom:var(--marco-in);
  z-index:100;
  background:rgba(23,19,16,.95); backdrop-filter:blur(14px);
  border:1px solid rgba(200,162,74,.4);
  box-shadow:0 -18px 44px -26px rgba(0,0,0,.7);
  transform:translateY(130%); opacity:0;
  transition:transform .5s cubic-bezier(.22,.8,.3,1), opacity .4s ease;
}
.barra.is-vista{ transform:none; opacity:1; }
.barra__in{
  width:min(100% - 2.4rem, var(--cont)); margin-inline:auto;
  display:flex; align-items:center; gap:1.6rem; padding:.85rem 0;
}
.barra__t{ margin:0; display:flex; flex-direction:column; gap:.18rem; }
.barra__t strong{
  font-family:var(--f-display); font-size:.82rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:#F4EDDE;
}
.barra__t span{ font-size:.72rem; color:var(--noir-txt-2); }
.barra__t b{ color:#E3C87F; font-variant-numeric:tabular-nums; }
.barra__acc{ display:flex; gap:.7rem; margin-left:auto; }
.barra .btn--oro{ background:var(--gilt); color:#241C0C; border-color:transparent; }
.barra .btn--linea{ color:#EFE3C6; border-color:rgba(200,162,74,.45); }
.barra .btn--linea:hover{ background:rgba(200,162,74,.14); }
.barra__x{
  flex:0 0 auto; width:32px; height:32px; display:grid; place-items:center;
  background:none; border:1px solid var(--noir-linea); color:var(--noir-txt-2); cursor:pointer;
  transition:all .2s ease;
}
.barra__x:hover{ border-color:#C8A24A; color:#F0D999; }
.barra__x svg{ width:14px; height:14px; }

/* deja sitio al chat cuando la barra está visible */
.barra.is-vista ~ .bot-lanza{ bottom:100px; }
.barra.is-vista ~ .bot{ bottom:174px; }

/* ── Subrayado dorado que se dibuja ───────── */
.t2{ position:relative; }
.sec__cab--c .t2::after, .cta-patro .t2::after{
  content:""; display:block; width:0; height:1px; margin:1.1rem auto 0;
  background:var(--gilt);
  transition:width .9s cubic-bezier(.22,.8,.3,1) .2s;
}
.sec__cab.is-in .t2::after, .cta-patro__in.is-in .t2::after{ width:88px; }

@media (max-width:920px){
  .cta-banda__in{ grid-template-columns:1fr; }
  .cta-banda__acc{ align-items:stretch; }
  .cta-banda__acc .btn{ width:100%; }
  .cta-banda__alt{ text-align:center; }
  .linea__riel{ display:none; }
}
@media (max-width:760px){
  .barra__t{ display:none; }
  .barra__acc{ margin-left:0; flex:1; }
  .barra__acc .btn{ flex:1; --btn-px:.7rem; }
  .barra__in{ gap:.7rem; }
}
@media (prefers-reduced-motion:reduce){
  .telon{ display:none; }
  .cargando .hero__in > *{ opacity:1; transform:none; }
  .marquesina__pista{ animation:none; }
  .polvo{ display:none; }
  .hero__t2{ animation:none; background-position:30% 0; }
  .cta-patro::before{ animation:none; }
  .sec__cab--c .t2::after{ width:88px; transition:none; }
}

/* ═══════════ RESPONSIVE ═══════════ */
@media (max-width:1080px){
  .cats{ grid-template-columns:repeat(2,1fr); }
  .benes{ grid-template-columns:repeat(2,1fr); }
  .planes{ grid-template-columns:repeat(2,1fr); }
  .palmares{ grid-template-columns:repeat(2,1fr); }
  .pie__in{ grid-template-columns:1fr 1fr; }
}

@media (max-width:920px){
  :root{ --marco-in:8px; }
  html{ scroll-padding-top:88px; }
  .nav{
    position:fixed; inset:calc(var(--marco-in) + 66px) var(--marco-in) auto var(--marco-in);
    flex-direction:column; gap:0; padding:.6rem 1.2rem 1.4rem;
    background:rgba(251,249,244,.985); backdrop-filter:blur(16px);
    border:1px solid rgba(180,137,47,.3); border-top:0;
    box-shadow:0 26px 50px -26px rgba(26,23,18,.5);
    opacity:0; visibility:hidden; transform:translateY(-10px);
    transition:opacity .28s ease, transform .28s ease, visibility .28s;
  }
  .nav.is-abierto{ opacity:1; visibility:visible; transform:none; }
  .nav a{ padding:.95rem 0; border-bottom:1px solid rgba(180,137,47,.16); font-size:.9rem; }
  .nav a::after{ display:none; }
  .hamb{ display:flex; }
  .sobre, .equipo, .faq-wrap, .contacto, .boletin__in{ grid-template-columns:1fr; }
  .prensa{ position:static; }
  .cifras__g{ grid-template-columns:1fr 1fr; }
  .datos{ grid-template-columns:1fr 1fr; }
  .perfiles{ grid-template-columns:1fr; }
}

@media (max-width:680px){
  .cont, .cont--estrecho, .cab__in, .hero__in{ width:calc(100% - 2.2rem); }
  .marca__txt em{ display:none; }
  .cab__acc .btn{ display:none; }
  .campos{ grid-template-columns:1fr; }
  .cats, .benes, .planes, .palmares{ grid-template-columns:1fr; }
  .ed{ grid-template-columns:1fr; gap:.4rem; }
  .ed__rom{ text-align:left; font-size:2.4rem; }
  .cuenta__u{ flex-basis:50%; }
  .cuenta__u:nth-child(3){ border-left:0; }
  .cuenta__u:nth-child(n+3){ border-top:1px solid rgba(180,137,47,.22); }
  .pilares, .pie__in{ grid-template-columns:1fr; }
  .ficha > div, .contacto__d > div, .resumen div{ grid-template-columns:1fr; gap:.2rem; }
  .form__nav{ flex-direction:column-reverse; }
  .form__nav .btn{ width:100%; }
  .bot{ right:10px; left:10px; bottom:92px; width:auto; height:min(520px, calc(100vh - 130px)); }
  .bot-lanza{ right:16px; bottom:16px; }
  .pie__base{ flex-direction:column; gap:.8rem; }
}

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

@media print{
  .cab, .bot, .bot-lanza, .marco, .skip{ display:none !important; }
  body{ background:#fff; }
}
