/* ==========================================================================
   ANGCOR — layout
   Reticula de 12 columnas, secciones redondeadas, rotulos e indicadores.
   ========================================================================== */

.shell{
  width:100%;
  max-width:1680px;
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* --- reticula visible de fondo -------------------------------------------- */

.blueprint{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.blueprint__inner{
  position:absolute;
  inset:0;
  width:100%;
  max-width:1680px;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.blueprint__inner::before{
  content:"";
  position:absolute;
  inset:0 var(--gutter);
  /* un degradado simple por celda: repeating-linear-gradient se repetiria
     cada 1px y pintaria un velo continuo en vez de las 12 lineas guia. */
  background-image:linear-gradient(to right,var(--ink-06) 0 1px,transparent 1px);
  background-size:calc(100% / 12) 100%;
  background-repeat:repeat-x;
}
/* Sobre fondo oscuro la guia cambia de tinta, si no desaparece. */
.blueprint__inner::after{
  content:"";
  position:absolute;
  inset:0 var(--gutter);
  background-image:linear-gradient(to right,var(--white-06) 0 1px,transparent 1px);
  background-size:calc(100% / 12) 100%;
  background-repeat:repeat-x;
  opacity:var(--blueprint-dark,0);
  transition:opacity .6s var(--ease);
}

@media (max-width:860px){
  .blueprint__inner::before{background-size:calc(100% / 4) 100%}
}

/* --- estructura de pagina -------------------------------------------------- */

.site-main{position:relative;z-index:1}

.section{
  position:relative;
  padding-block:var(--section-y);
}
.section--dark{
  background:var(--navy-900);
  color:var(--white);
}
.section--tint{background:var(--grey-050)}

/*
 * Los bloques de color ya no se redondean por igual. Cada uno entra con una
 * sola muesca en la esquina superior izquierda: marca el corte sin ablandar
 * la caja entera.
 */
.section--tint,
.method{
  border-radius:var(--r-notch) 0 0 0;
}
/* Contacto va a canto recto: la muesca no sienta bien sobre el video. */
.contact{background:var(--navy-800);border-radius:0}
.site-footer{padding-top:3rem}

/* Filo dorado sobre el canto superior de cada bloque apilado. */
.section--tint::before,
.method::before,
.contact::before{
  content:"";
  position:absolute;
  top:0;
  left:var(--r-notch);
  right:0;
  height:1px;
  background:var(--rule);
  z-index:2;
}
.contact::before{left:0}
.method,.contact{position:relative}

/* rejilla de 12 columnas para anclar bloques */
.grid12{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:clamp(1rem,2.2vw,2.5rem);
}

.col-1-7{grid-column:1 / span 7}
.col-1-5{grid-column:1 / span 5}
.col-1-6{grid-column:1 / span 6}
.col-7-12{grid-column:7 / span 6}
.col-8-12{grid-column:8 / span 5}
.col-2-11{grid-column:2 / span 10}
.col-1-12{grid-column:1 / span 12}

@media (max-width:900px){
  .col-1-7,.col-1-5,.col-1-6,.col-7-12,.col-8-12,.col-2-11{grid-column:1 / -1}
}

/* --- rotulo de indice tecnico ---------------------------------------------- */

.index-label{
  display:flex;
  align-items:center;
  gap:.85rem;
  color:var(--gold-ink);
  margin-bottom:clamp(1.75rem,4vw,3.25rem);
}
.method .index-label,
.contact .index-label,
.hero .index-label,
.page-hero .index-label{color:var(--gold-400)}
.index-label__tag{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--rule);
  border-radius:var(--r-pill);
  padding:.3rem .75rem;
  line-height:1;
}
.index-label__rule{
  flex:1 1 auto;
  height:1px;
  background:var(--rule-soft);
  border-radius:var(--r-pill);
  max-width:min(38vw,22rem);
}

/* --- contenedor suave reutilizable ----------------------------------------- */

.soft-card{
  position:relative;
  border:1px solid var(--ink-12);
  border-radius:0 0 var(--r-notch) 0;
  padding:clamp(1.35rem,2.4vw,1.85rem);
  background:var(--white);
}
.soft-card--dark,
.on-dark .soft-card{
  border-color:var(--white-12);
  background:var(--white-06);
  color:var(--white-70);
}
.soft-card .hairline{margin-bottom:1rem}

/* --- contador de scroll ---------------------------------------------------- */

.scroll-counter{
  position:fixed;
  right:clamp(.55rem,1.6vw,1.4rem);
  top:50%;
  transform:translateY(-50%);
  z-index:60;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.55rem;
  padding:.75rem .5rem;
  border-radius:var(--r-pill);
  font-family:var(--font-mono);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.1em;
  color:var(--ink-60);
  pointer-events:none;
  opacity:0;
  transition:opacity .5s var(--ease),color .5s var(--ease);
}
.scroll-counter.is-on{opacity:1}
.scroll-counter.is-dark{color:var(--white-70)}
.scroll-counter.is-dark .scroll-counter__bar{background:var(--white-12)}
.scroll-counter.is-dark .scroll-counter__now{color:var(--gold-400)}
.scroll-counter__now{color:var(--gold-ink)}
.scroll-counter__bar{
  width:2px;
  height:4.5rem;
  background:var(--rule-soft);
  border-radius:var(--r-pill);
  position:relative;
  overflow:hidden;
}
.scroll-counter__bar::after{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:var(--progress,0%);
  border-radius:var(--r-pill);
  background:var(--gold-500);
}
@media (max-width:780px){.scroll-counter{display:none}}

/* --- pie de pagina --------------------------------------------------------- */

.site-footer{
  position:relative;
  z-index:1;
  background:var(--navy-900);
  color:var(--white-70);
  padding-bottom:2rem;
}
.footer-grid{row-gap:2.75rem}
.footer-brand{grid-column:1 / span 4}
.footer-data{grid-column:6 / span 4}
.footer-nav{grid-column:10 / span 3}

@media (max-width:900px){
  .footer-brand,.footer-data,.footer-nav{grid-column:1 / -1}
}

.footer-entity{
  margin-top:clamp(2.5rem,5vw,3.5rem);
  padding-top:1.75rem;
  border-top:1px solid var(--white-12);
}
.footer-entity__card{
  display:grid;
  gap:.35rem;
  font-style:normal;
  max-width:60ch;
}
.footer-entity__name{
  font-family:var(--font-display);
  font-size:clamp(1rem,1.6vw,1.25rem);
  font-weight:500;
  letter-spacing:.02em;
  color:var(--white);
}
.footer-entity__line{color:var(--white-70)}
.footer-entity__line a:hover,.footer-entity__line a:focus-visible{color:var(--gold-400)}

.footer-baseline{
  margin-top:clamp(1.75rem,3.5vw,2.5rem);
  padding-top:1.5rem;
  border-top:1px solid var(--white-12);
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 2rem;
  justify-content:space-between;
  align-items:baseline;
  color:var(--white-70);
}

.pagination-wrap{margin-top:3rem}
.pagination-wrap .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.5rem;
  padding:.5rem .85rem;
  border-radius:var(--r-pill);
  border:1px solid var(--ink-12);
  margin-right:.5rem;
}
.pagination-wrap .page-numbers.current{
  background:var(--navy-800);
  border-color:var(--navy-800);
  color:var(--white);
}
