/* ===================================================
   AGUAKAN · Informe de Sostenibilidad 2025
   Sistema visual base
   =================================================== */

:root{
  /* paleta */
  --azul:        #1b75bc;
  --azul-fuerte: #006db7;
  --azul-prof:   #0a4d85;
  --azul-claro:  #63c5f2;
  --azul-soft:   #e6f2fb;
  --verde:       #86bd45;
  --verde-osc:   #62ad46;
  --verde-soft:  #eef6e3;
  --blanco:      #ffffff;
  --crema:       #fbfaf7;
  --gris-1:      #f4f6f8;
  --gris-2:      #e3e7ec;
  --gris-3:      #b9c2cc;
  --gris-4:      #6b7787;
  --gris-text:   #3a4250;
  --negro:       #14181f;

  /* tipografia */
  --ff-display: "dm-sans", "DM Sans", system-ui, sans-serif;
  --ff-body:    "archivo", "Archivo", system-ui, sans-serif;

  /* layout */
  --maxw: 1280px;
  --gutter: clamp(20px, 4vw, 60px);

  /* radios y sombras */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --shadow-1: 0 6px 24px -10px rgba(10, 40, 80, .18);
  --shadow-2: 0 24px 60px -30px rgba(10, 40, 80, .35);

  /* timing */
  --ease: cubic-bezier(.22, .61, .36, 1);
}

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

html, body{
  margin: 0;
  padding: 0;
  font-family: var(--ff-body);
  background: var(--crema);
  color: var(--gris-text);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }

.wrap{
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* ===================================================
   TIPOGRAFIA UTIL
   =================================================== */
.t-display{
  font-family: var(--ff-display);
  font-weight: 700;
  color: var(--azul-fuerte);
  letter-spacing: -0.015em;
  line-height: 1.02;
  text-wrap: balance;
}
.t-title{
  font-family: var(--ff-display);
  font-weight: 700;
  color: var(--azul-fuerte);
  letter-spacing: -0.01em;
  line-height: 1.05;
}
.t-body{
  font-family: var(--ff-body);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.7;
  color: var(--gris-text);
  text-wrap: pretty;
}
.t-eyebrow{
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--azul);
}
.azul       { color: var(--azul-fuerte) !important; }
.azul-claro { color: var(--azul-claro)  !important; }
.verde      { color: var(--verde)       !important; }
.verde-osc  { color: var(--verde-osc)   !important; }

/* ===================================================
   HEADER FIJO  (logo + barra de progreso + menú)
   =================================================== */
.topbar{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px var(--gutter);
  pointer-events: none;
}
.topbar > * { pointer-events: auto; }

.topbar__logo{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 38px;
  transition: opacity .3s var(--ease);
}
.topbar__logo img{ height: 100%; width: auto; }

/* el logo se intercambia según fondo de la sección */
.topbar[data-tone="dark"] .logo-light  { display: block; }
.topbar[data-tone="dark"] .logo-dark   { display: none; }
.topbar[data-tone="light"] .logo-light { display: none; }
.topbar[data-tone="light"] .logo-dark  { display: block; }

/* contador de sección */
.section-counter{
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blanco);
  opacity: .9;
}
.topbar[data-tone="light"] .section-counter{ color: var(--azul-fuerte); }

.section-counter__num{
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.section-counter__bar{
  width: 64px;
  height: 1px;
  background: currentColor;
  opacity: .35;
  position: relative;
}
.section-counter__bar::after{
  content: "";
  position: absolute;
  inset: 0;
  background: currentColor;
  width: var(--p, 0%);
  transition: width .6s var(--ease);
  opacity: 2;
}
.section-counter__name{
  font-weight: 500;
}

/* botón hamburguesa */
.menu-btn{
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
  position: relative;
  padding: 0;
  transition: background .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
  color: var(--blanco);
}
.menu-btn:hover{ transform: scale(1.04); }
.topbar[data-tone="light"] .menu-btn{
  border-color: rgba(27,117,188,.25);
  background: rgba(255,255,255,.55);
  color: var(--azul-fuerte);
}
.menu-btn span{
  position: absolute;
  left: 50%; transform: translateX(-50%);
  width: 20px; height: 1.5px;
  background: currentColor;
  border-radius: 2px;
  transition: all .35s var(--ease);
}
.menu-btn span:nth-child(1){ top: 19px; }
.menu-btn span:nth-child(2){ top: 26px; width: 14px; left: calc(50% - 3px); }
.menu-btn span:nth-child(3){ top: 33px; }
.menu-btn:hover span:nth-child(2){ width: 20px; left: 50%; }
.menu-btn.is-open span:nth-child(1){ top: 26px; transform: translateX(-50%) rotate(45deg); }
.menu-btn.is-open span:nth-child(2){ opacity: 0; }
.menu-btn.is-open span:nth-child(3){ top: 26px; transform: translateX(-50%) rotate(-45deg); }

.topbar__actions{
  display: flex;
  align-items: center;
  gap: 22px;
}

/* ===================================================
   MENÚ OVERLAY
   =================================================== */
.menu{
  position: fixed;
  inset: 0;
  z-index: 100;
  pointer-events: none;
}
.menu__scrim{
  position: absolute;
  inset: 0;
  background: rgba(8, 22, 40, .35);
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.menu__panel{
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(520px, 92vw);
  background: var(--azul-fuerte);
  background-image:
    radial-gradient(900px 600px at 110% -10%, rgba(99,197,242,.28), transparent 60%),
    radial-gradient(700px 500px at -10% 110%, rgba(134,189,69,.18), transparent 60%);
  color: var(--blanco);
  transform: translateX(105%);
  transition: transform .55s var(--ease);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.menu.is-open{ pointer-events: auto; }
.menu.is-open .menu__scrim{ opacity: 1; }
.menu.is-open .menu__panel{ transform: translateX(0); }

.menu__head{
  padding: 110px var(--gutter) 0 var(--gutter);
}
.menu__eyebrow{
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.menu__eyebrow::before{
  content: "";
  width: 28px; height: 1px;
  background: rgba(255,255,255,.6);
  display: inline-block;
}
.menu__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(28px, 3.5vw, 40px);
  letter-spacing: -0.01em;
  margin: 0;
  line-height: 1.05;
}
.menu__title em{ font-style: italic; color: var(--azul-claro); font-weight: 500; }

.menu__nav{
  flex: 1;
  padding: 36px var(--gutter) 32px var(--gutter);
  overflow-y: auto;
}

.menu__list{
  list-style: none;
  padding: 0;
  margin: 0;
}
.menu__item{
  border-top: 1px solid rgba(255,255,255,.12);
}
.menu__item:last-child{ border-bottom: 1px solid rgba(255,255,255,.12); }

.menu__link,
.menu__group-head{
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
  cursor: pointer;
  color: var(--blanco);
  transition: padding .35s var(--ease), color .3s var(--ease);
  background: none;
  border: 0;
  text-align: left;
  font-family: inherit;
}
.menu__link{ grid-template-columns: 38px 1fr auto; }
.menu__group-head{ flex: 1; }
.menu__link:hover,
.menu__group-head:hover{ padding-left: 8px; color: var(--azul-claro); }
.menu__link.is-active,
.menu__group-head.is-active{ color: var(--azul-claro); }
.menu__link.is-active .menu__num,
.menu__group-head.is-active .menu__num{ opacity: 1; }
.menu__item--group.is-open .menu__group-head .menu__num{ opacity: 1; }

.menu__group-row{
  display: flex;
  align-items: center;
  gap: 6px;
}
.menu__group-toggle{
  background: none;
  border: 0;
  cursor: pointer;
  padding: 8px;
  color: inherit;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.menu__num{
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .12em;
  opacity: .65;
}
.menu__label{
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: clamp(22px, 2.4vw, 30px);
  letter-spacing: -0.01em;
}
.menu__chev,
.menu__caret{
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.4);
  display: grid; place-items: center;
  font-size: 11px;
  opacity: .6;
  transition: all .35s var(--ease);
}
.menu__link:hover .menu__chev{
  opacity: 1;
  background: var(--azul-claro);
  border-color: var(--azul-claro);
  color: var(--azul-fuerte);
  transform: translateX(2px);
}
.menu__caret{
  font-family: var(--ff-display);
  font-weight: 500;
  line-height: 1;
}
.menu__item--group.is-open .menu__caret{
  background: var(--azul-claro);
  border-color: var(--azul-claro);
  color: var(--azul-fuerte);
  transform: rotate(45deg);
  opacity: 1;
}
.menu__group-head:hover .menu__caret{
  opacity: 1;
}

/* submenú */
.menu__sublist{
  list-style: none;
  margin: 0;
  padding: 0 0 14px 54px;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .45s var(--ease);
  overflow: hidden;
}
.menu__sublist > li{
  min-height: 0;
}
.menu__item--group.is-open .menu__sublist{
  grid-template-rows: 1fr;
}
.menu__sublist-inner{ overflow: hidden; }
.menu__sublink{
  display: inline-grid;
  grid-template-columns: 22px 1fr;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 15px;
  color: rgba(255,255,255,.78);
  transition: color .3s var(--ease), padding .3s var(--ease);
}
.menu__sub-dash{
  width: 14px;
  height: 1px;
  background: currentColor;
  opacity: .55;
  display: inline-block;
}
.menu__sublink:hover{
  color: var(--blanco);
  padding-left: 6px;
}
.menu__sublink.is-active{
  color: var(--azul-claro);
  font-weight: 500;
}
.menu__sublink.is-active .menu__sub-dash{
  background: var(--azul-claro);
  opacity: 1;
  width: 18px;
}

.menu__foot{
  padding: 24px var(--gutter) 28px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--ff-display);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
}
.menu__foot a:hover{ color: var(--blanco); }

/* anillos decorativos en el menú */
.menu__rings{
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.menu__rings span{
  position: absolute;
  border-radius: 50%;
  border: 18px solid rgba(255,255,255,.08);
}
.menu__rings span:nth-child(1){ width: 320px; height: 320px; top: -110px; right: -120px; border-color: rgba(99,197,242,.18); }
.menu__rings span:nth-child(2){ width: 220px; height: 220px; bottom: -90px; left: -70px; border-color: rgba(134,189,69,.14); }

body.is-menu-open{ overflow: hidden; }

/* ===================================================
   ROUTER · transición entre secciones
   =================================================== */
/* ===================================================
   PAGE NAV · prev/next entre páginas
   =================================================== */
.page-nav{
  margin-top: 80px;
  padding-top: 36px;
  border-top: 1px solid var(--gris-2);
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 20px;
}
.page-nav a{
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 18px 28px;
  border-radius: var(--r-md);
  background: var(--gris-1);
  color: var(--azul-fuerte);
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: 16px;
  transition: all .3s var(--ease);
  flex: 0 1 auto;
  min-width: 240px;
}
.page-nav a:hover{
  background: var(--azul-fuerte);
  color: var(--blanco);
  transform: translateY(-2px);
}
.page-nav a small{
  display: block;
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .65;
  margin-bottom: 2px;
}
.page-nav__next{ margin-left: auto; text-align: right; flex-direction: row; }
.page-nav svg{ width: 18px; height: 18px; flex-shrink: 0; }
@media (max-width: 640px){
  .page-nav{ flex-direction: column; }
  .page-nav a{ width: 100%; min-width: 0; }
}

/* ===================================================
   SECCIÓN HERO (portada de sección · Quiénes somos)
   =================================================== */
.section-hero{
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  background: var(--azul);
  color: var(--blanco);
  display: flex;
  align-items: center;
  padding: 120px 0 80px;
}
.section-hero__bg{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.section-hero__bg img{
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .45;
}
.section-hero::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(15,55,105,.92) 0%, rgba(15,55,105,.55) 50%, rgba(15,55,105,.7) 100%);
  z-index: 1;
  pointer-events: none;
}
.section-hero .rings{ z-index: 1; }
.section-hero__inner{
  position: relative;
  z-index: 2;
  width: 100%;
}
.section-hero__eyebrow{
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--azul-claro);
  margin: 0 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.section-hero__eyebrow::before{
  content: "";
  width: 36px; height: 1px;
  background: var(--azul-claro);
}
.section-hero__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(64px, 10vw, 156px);
  line-height: .96;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--blanco);
  text-wrap: balance;
}
.section-hero__lead{
  margin-top: 28px;
  max-width: 560px;
  font-family: var(--ff-body);
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255,255,255,.92);
}
.section-hero__cta{
  margin-top: 36px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 26px;
  background: var(--blanco);
  color: var(--azul-fuerte);
  border-radius: 999px;
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .04em;
  transition: all .3s var(--ease);
}
.section-hero__cta:hover{ background: var(--azul-claro); color: var(--blanco); transform: translateY(-2px); }
.section-hero__cta svg{ width: 16px; height: 16px; }

.section-hero__chips{
  margin-top: 44px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.chip{
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  padding: 12px 20px;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  font-family: var(--ff-display);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--blanco);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: all .3s var(--ease);
}
.chip:hover{ background: var(--blanco); color: var(--azul-fuerte); }
.chip__num{ font-weight: 700; }

/* ===================================================
   PÁGINA AGUAKAN — 3 columnas
   =================================================== */
.page{
  background: var(--crema);
  padding: 130px 0 100px;
  position: relative;
  overflow: hidden;
}
/* Sub-página (cuando varias se apilan en un solo scroll) */
.page--sub{
  padding: 100px 0 80px;
  scroll-margin-top: 80px;
}
.page--sub + .page--sub{
  border-top: 1px solid var(--gris-2);
}
/* anchor para scroll suave hacia secciones internas */
:target{ scroll-margin-top: 80px; }
[id]{ scroll-margin-top: 80px; }

/* divisor sutil entre subsecciones */
.section-divider{
  width: 100%;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 0 0;
}
.section-divider::before,
.section-divider::after{
  content: "";
  height: 1px;
  background: var(--gris-2);
  flex: 1;
}
.section-divider span{
  font-family: var(--ff-display);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--gris-4);
}
.page__head{
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  margin-bottom: 50px;
  align-items: end;
}
.page__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(48px, 7vw, 96px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--azul-fuerte);
  margin: 0;
}
.page__gri{
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: .05em;
  color: var(--gris-4);
  margin: 12px 0 0;
}
.page__intro{
  font-family: var(--ff-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--gris-text);
  margin: 0 0 8px;
}

/* anillos decorativos */
.page__deco{
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.page__deco span{
  position: absolute;
  border-radius: 50%;
  display: block;
}
.page__deco .d-green{
  width: 280px; height: 280px;
  border: 22px solid var(--verde);
  opacity: .14;
  top: -130px; left: -120px;
}
.page__deco .d-blue{
  width: 240px; height: 240px;
  border: 18px solid var(--azul-claro);
  opacity: .18;
  bottom: -100px; right: -110px;
}
.page__deco .d-blue-top{
  width: 320px; height: 320px;
  border: 22px solid var(--azul-claro);
  opacity: .14;
  top: 200px; right: -160px;
}

.page > .wrap{ position: relative; z-index: 1; }

.aguakan-grid{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  align-items: start;
}
.aguakan-col p{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 0 0 18px;
  text-wrap: pretty;
}
.aguakan-col p:last-child{ margin-bottom: 0; }

/* valores como chips */
.value-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 14px 0 0;
}
.value-chip{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--verde-soft);
  color: var(--verde-osc);
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .04em;
  border: 1px solid rgba(134,189,69,.3);
}
.value-chip::before{
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--verde-osc);
}

/* municipios list para Presencia */
.muni-list{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin: 18px 0 36px;
  padding: 0;
}
.muni-list li{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  border-radius: 999px;
  background: var(--azul-soft);
  color: var(--azul-fuerte);
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: 14px;
}
.muni-list li::before{
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--azul-fuerte);
}

/* pull-quote verde central */
.pullquote{
  background: var(--verde);
  color: var(--blanco);
  border-radius: var(--r-md);
  padding: 36px 30px;
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.4;
  letter-spacing: -0.005em;
  position: relative;
  box-shadow: 0 12px 40px -20px rgba(98,173,70,.5);
}
.pullquote::before{
  content: "“";
  font-family: var(--ff-display);
  position: absolute;
  top: 0; left: 18px;
  font-size: 70px;
  line-height: 1;
  opacity: .35;
}

/* mision / vision / valores */
.mvv{
  display: grid;
  gap: 28px;
}
.mvv__block{
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: start;
}
.mvv__icon{
  width: 44px; height: 44px;
  color: var(--verde-osc);
}
.mvv__icon img{ width: 100%; height: 100%; object-fit: contain; }
.mvv__head{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 18px;
  color: var(--azul-fuerte);
  margin: 0 0 6px;
}
.mvv__text{
  font-family: var(--ff-body);
  font-size: 14px;
  line-height: 1.55;
  color: var(--gris-text);
  margin: 0;
}

.values{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 24px;
  margin-top: 6px;
}
.value h4{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--verde-osc);
  margin: 0 0 6px;
}
.value p{
  font-family: var(--ff-body);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--gris-text);
  margin: 0;
}

.aguakan__photo{
  margin-top: 50px;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 21 / 9;
  box-shadow: var(--shadow-1);
}
.aguakan__photo img{
  width: 100%; height: 100%;
  object-fit: cover;
}

/* ===================================================
   PRESENCIA — mapa + grid de stats
   =================================================== */
.presencia-top{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(30px, 4vw, 56px);
  align-items: start;
  margin-bottom: 36px;
}
.presencia-text p{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 0 0 16px;
}
.presencia-text p:last-child{ margin: 0; }

.presencia-photo{
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  max-height: 580px;
  box-shadow: var(--shadow-1);
}
.presencia-photo img{ width: 100%; height: 100%; object-fit: cover; }

.map-card{
  background: var(--azul-soft);
  border-radius: var(--r-md);
  padding: 32px 28px;
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 30px;
  align-items: center;
  margin: 8px 0 36px;
}
.map-card__map img{ width: 100%; }
.map-card__legend{
  display: grid;
  gap: 10px;
  font-family: var(--ff-display);
  font-size: 14px;
  color: var(--azul-fuerte);
}
.map-card__legend li{
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}
.map-card__legend li::before{
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--azul-fuerte);
}

.stat-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 0 0 36px;
  border-top: 1px solid var(--gris-2);
}
.stat{
  padding: 22px 18px;
  border-bottom: 1px solid var(--gris-2);
  border-right: 1px solid var(--gris-2);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.stat:nth-child(4n){ border-right: none; }
.stat__icon{
  width: 56px; height: 56px;
  color: var(--verde-osc);
  margin-bottom: 4px;
}
.stat__icon img{ width: 100%; height: 100%; object-fit: contain; }
.stat:nth-child(odd) .stat__icon{ color: var(--azul-fuerte); }
.stat__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: -0.01em;
  color: var(--azul-fuerte);
  line-height: 1;
  margin: 0;
}
.stat:nth-child(even) .stat__num{ color: var(--verde-osc); }
.stat__label{
  font-family: var(--ff-body);
  font-size: 13px;
  color: var(--gris-4);
  line-height: 1.35;
  margin: 0;
}

.callout-green{
  background: var(--verde);
  color: var(--blanco);
  border-radius: var(--r-md);
  padding: 28px 32px;
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.5;
  letter-spacing: -0.005em;
  margin: 30px 0 0;
  box-shadow: 0 12px 40px -20px rgba(98,173,70,.5);
}

/* ===================================================
   SERVICIOS — split image + lista
   =================================================== */
.servicios-split{
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: clamp(30px, 4vw, 60px);
  margin-top: 30px;
  align-items: start;
}
.servicios-aerial{
  position: relative;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  max-height: 760px;
  box-shadow: var(--shadow-1);
  position: sticky;
  top: 110px;
}
.servicios-aerial img{ width: 100%; height: 100%; object-fit: cover; }
.servicios-aerial::before,
.servicios-aerial::after{
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.servicios-aerial::before{
  width: 180px; height: 180px;
  border: 22px solid var(--verde);
  top: -40px; left: -40px;
  opacity: .8;
}
.servicios-aerial::after{
  width: 220px; height: 220px;
  border: 20px solid var(--azul-claro);
  bottom: -50px; right: -30px;
  opacity: .85;
}

.servicios-list{
  display: grid;
  gap: 4px;
}
.svc{
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 22px;
  padding: 22px 4px;
  border-bottom: 1px solid var(--verde);
  align-items: start;
}
.svc:last-child{ border-bottom: none; }
.svc__icon{
  width: 56px; height: 56px;
  color: var(--azul-fuerte);
}
.svc__icon img{ width: 100%; height: 100%; }
.svc__head{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 18px;
  color: var(--verde-osc);
  margin: 4px 0 6px;
}
.svc__text{
  font-family: var(--ff-body);
  font-size: 14px;
  line-height: 1.6;
  color: var(--gris-text);
  margin: 0;
}

/* ===================================================
   RESPONSIVE para las nuevas secciones
   =================================================== */
@media (max-width: 980px){
  .aguakan-grid{ grid-template-columns: 1fr; }
  .pullquote{ font-size: 17px; }
  .values{ grid-template-columns: 1fr; }
  .presencia-top{ grid-template-columns: 1fr; }
  .presencia-photo{ max-height: 380px; aspect-ratio: 4/3; }
  .map-card{ grid-template-columns: 1fr; }
  .stat-grid{ grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(4n){ border-right: 1px solid var(--gris-2); }
  .stat:nth-child(2n){ border-right: none; }
  .servicios-split{ grid-template-columns: 1fr; }
  .servicios-aerial{ position: relative; top: 0; max-height: 400px; aspect-ratio: 16/9; }
  .page__head{ grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  .stat-grid{ grid-template-columns: 1fr; }
  .stat{ border-right: none !important; }
  .svc{ grid-template-columns: 48px 1fr; gap: 14px; }
  .svc__icon{ width: 44px; height: 44px; }
  .section-hero__title{ font-size: clamp(56px, 14vw, 90px); }
}

/* ===================================================
   COLABORADORES · big stats, iniciativas, subsections
   =================================================== */

/* Sub-encabezados de subsección dentro de la página */
.sub-head{
  margin: 60px 0 28px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sub-head__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(34px, 4.5vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--azul-fuerte);
  margin: 0;
}
.sub-head::before{
  content: "";
  width: 60px; height: 3px;
  background: var(--verde);
  display: block;
  margin-bottom: 8px;
}

/* Stat grande (1,537 colaboradores) */
.big-stat{
  position: relative;
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 30px 0 24px;
  padding: 28px 32px;
  background: var(--blanco);
  border-radius: var(--r-md);
  box-shadow: 0 12px 36px -22px rgba(10,40,80,.25);
  overflow: hidden;
}
.big-stat::before{
  content: "";
  position: absolute;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: var(--azul-soft);
  left: -40px; top: 50%;
  transform: translateY(-50%);
  z-index: 0;
}
.big-stat__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(60px, 8vw, 110px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--azul-fuerte);
  margin: 0;
  position: relative;
  z-index: 1;
}
.big-stat__label{
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: clamp(17px, 1.5vw, 22px);
  line-height: 1.3;
  color: var(--azul-claro);
  margin: 0;
  position: relative;
  z-index: 1;
}

/* Bienestar GPTW callout */
.gptw{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 22px;
  align-items: center;
  background: linear-gradient(110deg, var(--verde-soft) 0%, #f4f9eb 100%);
  border-radius: var(--r-md);
  padding: 28px 32px;
  margin: 30px 0 36px;
  border: 1px solid rgba(134,189,69,.25);
}
.gptw img{
  width: 100px; height: 100px;
}
.gptw p{
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.5;
  color: var(--verde-osc);
  margin: 0;
}
.gptw p strong{
  color: var(--azul-fuerte);
  font-weight: 700;
}

/* Iniciativas de salud (8 cards) */
.iniciativas{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 16px 0 0;
}
.iniciativa{
  background: var(--azul-soft);
  border: 1px solid rgba(99,197,242,.22);
  border-radius: var(--r-md);
  padding: 22px 20px;
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: 14px;
  line-height: 1.4;
  color: var(--azul-fuerte);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  min-height: 130px;
  position: relative;
}
.iniciativa__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--azul-claro);
  opacity: .85;
}
.iniciativa__label{
  margin: 0;
  font-style: italic;
  font-size: 14.5px;
}

/* Bloque de stats simples (Capacitación) */
.stat-blocks{
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 18px;
  margin: 28px 0 0;
}
.stat-block{
  background: var(--azul-fuerte);
  color: var(--blanco);
  padding: 28px;
  border-radius: var(--r-md);
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow: hidden;
  position: relative;
}
.stat-block.--alt{
  background: var(--verde);
}
.stat-block::after{
  content: "";
  position: absolute;
  width: 120px; height: 120px;
  border-radius: 50%;
  border: 16px solid rgba(255,255,255,.15);
  bottom: -60px; right: -50px;
  pointer-events: none;
}
.stat-block__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
}
.stat-block__label{
  font-family: var(--ff-body);
  font-size: 14px;
  line-height: 1.4;
  margin: 0;
  opacity: .92;
}

/* Highlight grande con % (reducción 23%) */
.pct-highlight{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 28px;
  align-items: center;
  background: var(--azul-soft);
  border-radius: var(--r-md);
  padding: 28px 36px;
  margin: 30px 0 0;
  border: 1px solid rgba(99,197,242,.25);
}
.pct-highlight__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(50px, 6vw, 80px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--verde-osc);
  margin: 0;
}
.pct-highlight__text{
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.5;
  color: var(--azul-fuerte);
  margin: 0;
}

/* Grid 2x2 para Semana de la Calidad */
.semana-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 22px 0 0;
}
.semana-card{
  background: var(--blanco);
  border-radius: var(--r-md);
  padding: 30px 28px;
  box-shadow: 0 8px 28px -16px rgba(10,40,80,.2);
  border: 1px solid var(--gris-2);
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 200px;
  position: relative;
  overflow: hidden;
}
.semana-card__head{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(42px, 4.5vw, 60px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--azul-fuerte);
  margin: 0;
}
.semana-card.--verde  .semana-card__head{ color: var(--verde-osc); }
.semana-card.--claro  .semana-card__head{ color: var(--azul-claro); }
.semana-card__head small{
  font-size: .5em;
  font-weight: 600;
  letter-spacing: 0;
  margin-left: 6px;
  opacity: .75;
}
.semana-card__body{
  font-family: var(--ff-body);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--gris-text);
  margin: 0;
  max-width: 90%;
}
.semana-card::after{
  content: "";
  position: absolute;
  width: 100px; height: 100px;
  border-radius: 50%;
  border: 14px solid currentColor;
  bottom: -50px; right: -40px;
  opacity: .08;
  pointer-events: none;
  color: var(--azul-fuerte);
}
.semana-card.--verde::after  { color: var(--verde-osc); }
.semana-card.--claro::after  { color: var(--azul-claro); }

@media (max-width: 640px){
  .semana-grid{ grid-template-columns: 1fr; }
}

/* Foto interna de subsección */
.sub-photo{
  margin: 28px 0;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 21 / 9;
  box-shadow: var(--shadow-1);
  position: relative;
}
.sub-photo img{ width: 100%; height: 100%; object-fit: cover; }
.sub-photo::after{
  content: "";
  position: absolute;
  width: 200px; height: 200px;
  border-radius: 50%;
  border: 22px solid var(--verde);
  bottom: -100px; left: -80px;
  opacity: .85;
  pointer-events: none;
}

@media (max-width: 980px){
  .iniciativas{ grid-template-columns: repeat(2, 1fr); }
  .stat-blocks{ grid-template-columns: 1fr; }
  .pct-highlight{ grid-template-columns: 1fr; gap: 14px; }
  .gptw{ grid-template-columns: 80px 1fr; padding: 22px; }
  .big-stat{ flex-direction: column; align-items: flex-start; padding: 24px; gap: 12px; }
}
@media (max-width: 640px){
  .iniciativas{ grid-template-columns: 1fr; }
}

/* Sección hero específica con título a la derecha + intro */
.sost-hero{
  min-height: 80vh;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  background: #0e2a3f;
  color: var(--blanco);
  padding: 0;
}
.sost-hero__bg{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sost-hero__bg img{
  width: 100%; height: 100%;
  object-fit: cover;
}
.sost-hero__bg::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8,30,55,.18) 0%, rgba(8,30,55,.55) 70%, rgba(8,30,55,.85) 100%);
}
.sost-hero__inner{
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 140px var(--gutter) 60px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  align-items: end;
  gap: clamp(28px, 4vw, 60px);
  max-width: var(--maxw);
  margin: 0 auto;
}
.sost-hero__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(64px, 9vw, 144px);
  line-height: .95;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--blanco);
  text-wrap: balance;
}
.sost-hero__lead{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,.92);
  margin: 0 0 12px;
}

/* Panel de certificaciones */
.certif-panel{
  background: var(--azul-soft);
  border-radius: var(--r-md);
  padding: 32px clamp(24px, 3vw, 40px);
  margin: 28px 0 40px;
  border: 1px solid rgba(99,197,242,.22);
}
.certif-panel__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 20px;
  color: var(--azul-fuerte);
  margin: 0 0 22px;
  text-align: center;
}
.certif-list{
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  gap: 16px;
}
.certif-list li{
  display: grid;
  grid-template-columns: 70px 1fr;
  align-items: center;
  gap: 22px;
}
.certif-list img{
  width: 64px; height: 64px;
}
.certif-list p{
  font-family: var(--ff-body);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--azul-fuerte);
  margin: 0;
}

/* Bridge text antes de los pilares */
.sost-bridge{
  font-family: var(--ff-body);
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 0 0 32px;
  max-width: 880px;
}

/* 4 PILARES */
.pilares{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin: 0 0 50px;
}
.pilar{
  background: var(--azul-fuerte);
  color: var(--blanco);
  border-radius: var(--r-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  min-height: 220px;
  box-shadow: 0 12px 36px -20px rgba(10,40,80,.4);
}
.pilar__head{
  padding: 30px clamp(24px, 3vw, 36px) 18px;
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 18px;
  align-items: center;
}
.pilar__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 22px;
  color: var(--blanco);
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 2px solid var(--blanco);
  display: grid;
  place-items: center;
  letter-spacing: 0;
}
.pilar__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-style: italic;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.15;
  color: var(--blanco);
  margin: 0;
  letter-spacing: -0.005em;
}
.pilar__spacer{
  flex: 1;
  min-height: 30px;
}
.pilar__tag{
  background: var(--verde);
  color: var(--blanco);
  padding: 20px clamp(24px, 3vw, 36px);
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: 14.5px;
  line-height: 1.45;
  letter-spacing: -0.005em;
}

/* ODS section */
.ods{
  position: relative;
  background: #0e2a3f;
  color: var(--blanco);
  overflow: hidden;
  padding: 100px 0;
  margin: 50px 0 0;
}
.ods__bg{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.ods__bg img{
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .35;
}
.ods__bg::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(140deg, rgba(8,40,80,.85) 0%, rgba(8,40,80,.65) 100%);
}
.ods__inner{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  align-items: center;
}
.ods__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.05;
  margin: 0 0 18px;
  letter-spacing: -0.015em;
}
.ods__text{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255,255,255,.9);
  margin: 0;
}
.ods__visual{
  width: 100%;
  aspect-ratio: 4/3;
  background: rgba(255,255,255,.06);
  border-radius: var(--r-md);
  border: 1px solid rgba(255,255,255,.12);
  display: grid;
  place-items: center;
  font-family: ui-monospace, Menlo, monospace;
  font-size: 13px;
  color: rgba(255,255,255,.45);
  letter-spacing: .04em;
}

@media (max-width: 980px){
  .sost-hero__inner{ grid-template-columns: 1fr; }
  .pilares{ grid-template-columns: 1fr; }
  .ods__inner{ grid-template-columns: 1fr; }
}
.innov-cards{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
  margin-top: 30px;
}
.innov-card{
  background: var(--azul-soft);
  border-radius: var(--r-md);
  padding: 32px clamp(24px, 3vw, 36px);
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: clamp(16px, 2vw, 26px);
  align-items: start;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(99,197,242,.18);
  min-height: 240px;
}
.innov-card__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(48px, 5vw, 72px);
  line-height: 1;
  color: var(--azul-claro);
  letter-spacing: -0.04em;
  margin: 0;
  opacity: .85;
}
.innov-card__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-style: italic;
  font-size: clamp(17px, 1.5vw, 20px);
  color: var(--azul-claro);
  margin: 6px 0 14px;
  letter-spacing: -0.005em;
  line-height: 1.2;
}
.innov-card__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.innov-card__list li{
  font-family: var(--ff-body);
  font-size: 14px;
  line-height: 1.55;
  color: var(--gris-text);
  position: relative;
  padding-left: 18px;
}
.innov-card__list li::before{
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 8px; height: 2px;
  background: var(--azul-claro);
  border-radius: 2px;
}

/* AquaRating */
.aquarating{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  align-items: stretch;
  margin-top: 30px;
}
.aquarating__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--azul-fuerte);
  margin: 0 0 24px;
  text-wrap: balance;
}
.aquarating__body p{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 0 0 18px;
}
.aquarating__sub{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 18px;
  color: var(--verde-osc);
  margin: 28px 0 14px;
}
.aquarating__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.aquarating__list > li{
  font-family: var(--ff-body);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--gris-text);
  position: relative;
  padding-left: 22px;
}
.aquarating__list > li::before{
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 10px; height: 2px;
  background: var(--verde-osc);
  border-radius: 2px;
}
.aquarating__list ul{
  list-style: none;
  padding: 8px 0 4px 8px;
  margin: 6px 0 0;
  display: grid;
  gap: 6px;
}
.aquarating__list ul li{
  font-family: var(--ff-body);
  font-size: 14px;
  color: var(--gris-4);
  position: relative;
  padding-left: 16px;
}
.aquarating__list ul li::before{
  content: "·";
  position: absolute;
  left: 4px; top: -1px;
  color: var(--verde-osc);
  font-weight: 700;
}
.aquarating__photo{
  border-radius: var(--r-md);
  overflow: hidden;
  position: relative;
  min-height: 460px;
  box-shadow: var(--shadow-1);
}
.aquarating__photo img{
  width: 100%; height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.aquarating__photo::after{
  content: "";
  position: absolute;
  width: 240px; height: 240px;
  border-radius: 50%;
  border: 22px solid var(--azul-claro);
  bottom: -100px; right: -90px;
  opacity: .8;
}

@media (max-width: 980px){
  .innov-cards{ grid-template-columns: 1fr; }
  .aquarating{ grid-template-columns: 1fr; }
  .aquarating__photo{ min-height: 320px; aspect-ratio: 4/3; }
}
/* ===================================================
   RESULTADOS · tablas y stats
   =================================================== */
.res-intro{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--gris-text);
  max-width: 760px;
  margin: 0 0 36px;
}

.res-table{
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 14px;
  background: var(--blanco);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: 0 6px 24px -16px rgba(10,40,80,.18);
  font-family: var(--ff-display);
}
.res-table thead th{
  background: var(--verde);
  color: var(--blanco);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .02em;
  padding: 16px 22px;
  text-align: left;
}
.res-table thead th:not(:first-child){ text-align: right; }
.res-table tbody td{
  padding: 16px 22px;
  font-size: 14.5px;
  border-bottom: 1px solid var(--gris-2);
  color: var(--gris-text);
}
.res-table tbody tr:last-child td{ border-bottom: 0; }
.res-table tbody td:first-child{
  color: var(--azul-fuerte);
  font-weight: 600;
}
.res-table tbody td:not(:first-child){
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--verde-osc);
  font-weight: 600;
}

.res-note{
  font-family: var(--ff-body);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--gris-4);
  margin: 0 0 36px;
}
.res-note strong{ color: var(--gris-text); }

.res-block{
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(28px, 4vw, 50px);
  margin: 30px 0;
  align-items: stretch;
}
.res-stats-panel{
  background: var(--verde);
  color: var(--blanco);
  border-radius: var(--r-md);
  padding: 44px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 36px;
  box-shadow: 0 14px 40px -22px rgba(98,173,70,.5);
  position: relative;
  overflow: hidden;
}
.res-stats-panel::after{
  content: "";
  position: absolute;
  width: 240px; height: 240px;
  border-radius: 50%;
  border: 22px solid rgba(255,255,255,.18);
  bottom: -100px; right: -90px;
  pointer-events: none;
}
.res-stats-panel__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(36px, 4.5vw, 56px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
}
.res-stats-panel__label{
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 15px;
  margin: 8px 0 0;
  opacity: .92;
}

.res-block__right p{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 0 0 28px;
}

.inv-table{
  width: 100%;
  border-collapse: collapse;
  background: var(--blanco);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: 0 6px 20px -16px rgba(10,40,80,.18);
  font-family: var(--ff-display);
}
.inv-table thead th{
  background: var(--azul-fuerte);
  color: var(--blanco);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .04em;
  padding: 14px 20px;
  text-align: center;
}
.inv-table tbody td{
  padding: 13px 20px;
  font-size: 14px;
  border-bottom: 1px solid var(--gris-2);
}
.inv-table tbody tr:last-child td{ border-bottom: 0; }
.inv-table tbody td:first-child{
  color: var(--azul-fuerte);
  font-weight: 600;
}
.inv-table tbody td:last-child{
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--gris-text);
  font-weight: 600;
}

.res-highlights{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  margin: 40px 0 24px;
  align-items: center;
}
.res-hl{
  display: flex;
  align-items: center;
  gap: 26px;
  position: relative;
  padding-left: 28px;
}
.res-hl__circle{
  position: absolute;
  width: 130px; height: 130px;
  border-radius: 50%;
  background: var(--azul-soft);
  left: -28px; top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}
.res-hl__body{ position: relative; z-index: 2; }
.res-hl__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(30px, 3.4vw, 42px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--azul-fuerte);
  margin: 0;
}
.res-hl__label{
  font-family: var(--ff-body);
  font-size: 14.5px;
  line-height: 1.45;
  color: var(--azul-claro);
  margin: 6px 0 0;
}

.res-closing{
  font-family: var(--ff-body);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 24px 0 0;
  max-width: 880px;
  border-top: 1px solid var(--gris-2);
  padding-top: 26px;
}
.res-closing strong.pia{
  color: var(--azul-claro);
  font-weight: 700;
}

/* Imágenes de apoyo */
.res-photo{
  position: relative;
  margin: 36px 0;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 21 / 9;
  box-shadow: var(--shadow-1);
}
.res-photo img{
  width: 100%; height: 100%;
  object-fit: cover;
}
.res-photo::after{
  content: "";
  position: absolute;
  width: 220px; height: 220px;
  border-radius: 50%;
  border: 22px solid var(--azul-claro);
  bottom: -110px; right: -90px;
  opacity: .85;
  pointer-events: none;
}

/* Bloque de cierre con foto a la izquierda */
.res-close-block{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  margin-top: 50px;
  align-items: center;
}
.res-close-photo{
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: var(--shadow-1);
  position: relative;
}
.res-close-photo img{
  width: 100%; height: 100%;
  object-fit: cover;
}
.res-close-photo::after{
  content: "";
  position: absolute;
  width: 160px; height: 160px;
  border-radius: 50%;
  border: 18px solid var(--verde);
  bottom: -70px; left: -50px;
  opacity: .9;
}
.res-close-text{
  font-family: var(--ff-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--gris-text);
  margin: 0;
}
.res-close-text strong.pia{
  color: var(--azul-claro);
  font-weight: 700;
}

@media (max-width: 980px){
  .res-block{ grid-template-columns: 1fr; }
  .res-highlights{ grid-template-columns: 1fr; }
  .res-close-block{ grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  .res-table thead th, .res-table tbody td{ font-size: 12px; padding: 10px 12px; }
  .res-stats-panel{ padding: 32px 24px; gap: 24px; }
}

.stub{
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 140px var(--gutter) 80px;
  background: var(--crema);
  position: relative;
  overflow: hidden;
}
.stub::before{
  content: "";
  position: absolute;
  width: 460px; height: 460px;
  border-radius: 50%;
  border: 30px solid var(--azul-claro);
  opacity: .12;
  top: -180px; right: -160px;
}
.stub::after{
  content: "";
  position: absolute;
  width: 300px; height: 300px;
  border-radius: 50%;
  border: 22px solid var(--verde);
  opacity: .14;
  bottom: -120px; left: -100px;
}
.stub__inner{
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.stub__eyebrow{
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--verde-osc);
  margin: 0 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.stub__eyebrow::before{
  content: "";
  width: 32px; height: 1px;
  background: var(--verde-osc);
}
.stub__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(48px, 7vw, 96px);
  color: var(--azul-fuerte);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  text-wrap: balance;
}
.stub__lead{
  font-family: var(--ff-body);
  font-size: 18px;
  line-height: 1.55;
  max-width: 560px;
  color: var(--gris-text);
  margin: 0 0 36px;
}
.stub__actions{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  font-family: var(--ff-display);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .04em;
  border-radius: 999px;
  border: 1px solid var(--azul-fuerte);
  color: var(--azul-fuerte);
  background: transparent;
  cursor: pointer;
  transition: all .3s var(--ease);
}
.btn:hover{
  background: var(--azul-fuerte);
  color: var(--blanco);
}
.btn--primary{
  background: var(--azul-fuerte);
  color: var(--blanco);
}
.btn--primary:hover{
  background: var(--azul-prof);
  border-color: var(--azul-prof);
}
.btn svg{ width: 14px; height: 14px; }

/* ===================================================
   01 · PORTADA
   =================================================== */
.cover{
  position: relative;
  min-height: 100vh;
  background: var(--azul);
  background-image:
    linear-gradient(180deg, #1f7fc8 0%, #1465a8 100%);
  color: var(--blanco);
  overflow: hidden;
  display: flex;
  align-items: center;
}

.cover__stage{
  width: 100%;
  position: relative;
  z-index: 2;
  padding: 140px 0 100px;
}

.cover__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 4vw, 60px);
  align-items: center;
}

.cover__title{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(48px, 7.2vw, 104px);
  line-height: .98;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--blanco);
}
.cover__title small{
  display: inline-block;
  font-size: .42em;
  font-weight: 400;
  letter-spacing: 0;
  vertical-align: 0.55em;
  margin: 0 .1em;
  opacity: .92;
}
.cover__title .underline{
  display: inline-block;
  border-bottom: 4px solid var(--azul-claro);
  padding-bottom: 6px;
  line-height: 1;
}
.cover__year{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(40px, 6vw, 84px);
  letter-spacing: -0.02em;
  display: block;
  margin-top: 10px;
}

.cover__img-wrap{
  position: relative;
  aspect-ratio: 1 / 1;
  max-width: 460px;
  margin-left: auto;
}
.cover__img{
  position: absolute;
  inset: 0;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: var(--shadow-2);
}
.cover__img img{
  width: 100%; height: 100%;
  object-fit: cover;
}

/* anillos flotantes */
.rings{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}
.ring{
  position: absolute;
  border-radius: 50%;
  background: transparent;
  will-change: transform;
  transition: transform .9s var(--ease);
}
.ring--azul{
  width: clamp(220px, 30vw, 420px);
  aspect-ratio: 1;
  border: 22px solid var(--azul-claro);
  top: 14%; right: -8%;
  opacity: .85;
}
.ring--verde{
  width: clamp(110px, 14vw, 180px);
  aspect-ratio: 1;
  border: 18px solid var(--verde);
  top: 28%; left: -2%;
}
.ring--blanco{
  width: clamp(200px, 26vw, 340px);
  aspect-ratio: 1;
  border: 20px solid #ffffff;
  bottom: -12%; left: 3%;
  opacity: .85;
}
.ring--azul-soft{
  width: clamp(140px, 18vw, 240px);
  aspect-ratio: 1;
  border: 14px solid #5fa8d8;
  bottom: 12%; right: 26%;
  opacity: .4;
}

.cover__meta{
  position: absolute;
  z-index: 3;
  left: var(--gutter);
  right: var(--gutter);
  bottom: 40px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  pointer-events: none;
  gap: 24px;
}
.cover__meta > *{ pointer-events: auto; }
.cover__credit{
  font-family: var(--ff-display);
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
}
.cover__scroll{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--ff-display);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--blanco);
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px 0;
}
.cover__scroll .dot{
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.5);
  display: inline-grid; place-items: center;
  transition: all .3s var(--ease);
}
.cover__scroll:hover .dot{
  background: var(--blanco);
  color: var(--azul-fuerte);
  transform: translateY(2px);
}
.cover__scroll svg{ width: 14px; height: 14px; }

/* ===================================================
   02 · MENSAJE DEL DIRECTOR
   =================================================== */
.mensaje{
  background: var(--crema);
  padding: 140px 0 120px;
  position: relative;
  overflow: hidden;
}
.mensaje::before{
  content: "";
  position: absolute;
  width: 380px; height: 380px;
  border-radius: 50%;
  border: 26px solid var(--verde);
  opacity: .12;
  left: -180px; top: 20%;
}
.mensaje::after{
  content: "";
  position: absolute;
  width: 280px; height: 280px;
  border-radius: 50%;
  border: 20px solid var(--azul-claro);
  opacity: .14;
  right: -130px; bottom: 8%;
}

.mensaje__head{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(28px, 5vw, 80px);
  margin-bottom: 60px;
  align-items: end;
  position: relative;
  z-index: 2;
}
.mensaje__title{
  font-size: clamp(40px, 5.5vw, 76px);
  margin: 0;
}
.mensaje__gri{
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 400;
  font-size: 14px;
  color: var(--gris-4);
  margin-top: 14px;
  letter-spacing: .04em;
}
.mensaje__intro{
  font-family: var(--ff-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--gris-text);
  margin: 0;
  padding-bottom: 8px;
}
.mensaje__intro strong{
  color: var(--azul-fuerte);
  font-weight: 600;
}

.mensaje__body{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(30px, 5vw, 70px);
  position: relative;
  z-index: 2;
}
.mensaje__col p{
  font-family: var(--ff-body);
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--gris-text);
  margin: 0 0 18px;
  text-wrap: pretty;
}
.mensaje__col p:last-child{ margin-bottom: 0; }

.mensaje__photo-row{
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 26px;
  margin: 6px 0 26px;
  align-items: start;
}
.mensaje__photo{
  border-radius: 50%;
  overflow: hidden;
  aspect-ratio: 1;
  box-shadow: var(--shadow-1);
  background: var(--gris-2);
}
.mensaje__photo img{
  width: 100%; height: 100%;
  object-fit: cover;
}

.mensaje__sign{
  margin-top: 50px;
  text-align: right;
}
.mensaje__sign img{
  width: 180px;
  margin-left: auto;
  margin-bottom: 8px;
}
.mensaje__sign-name{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: 17px;
  color: var(--azul-fuerte);
  margin: 0;
}
.mensaje__sign-role{
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 500;
  font-size: 14px;
  color: var(--verde-osc);
  margin: 2px 0 0;
}

.mensaje__hero{
  margin-top: 80px;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 21 / 9;
  background: var(--azul-soft);
  position: relative;
  z-index: 2;
  box-shadow: var(--shadow-1);
}
.mensaje__hero img{
  width: 100%; height: 100%;
  object-fit: cover;
}

/* ===================================================
   03 · CIFRAS DESTACADAS
   =================================================== */
.cifras{
  background: #ffffff;
  padding: 140px 0 120px;
  position: relative;
  overflow: hidden;
}

.cifras__head{
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(30px, 5vw, 70px);
  align-items: stretch;
  margin-bottom: 36px;
}

.cifras__poster{
  position: relative;
  border-radius: var(--r-md);
  overflow: hidden;
  min-height: 460px;
  background: var(--verde);
}
.cifras__poster img{
  width: 100%; height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
  opacity: .55;
}
.cifras__poster::before,
.cifras__poster::after{
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.cifras__poster::before{
  width: 140px; height: 140px;
  border: 22px solid var(--verde);
  top: 24px; left: 24px;
  background: var(--verde-soft);
}
.cifras__poster::after{
  width: 240px; height: 240px;
  border: 20px solid #ffffff;
  bottom: -60px; left: -40px;
}

.cifras__info{ padding-top: 12px; }

.cifras__title{
  font-size: clamp(40px, 5.2vw, 64px);
  margin: 0;
}
.cifras__title::after{
  content: "";
  display: block;
  width: 110px; height: 3px;
  background: var(--azul-fuerte);
  margin-top: 18px;
}

.cifras__grid-top{
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--gris-2);
  margin-top: 28px;
}
.cifra{
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 4px;
  border-bottom: 1px solid var(--gris-2);
}
.cifras__grid-top .cifra:nth-child(odd){ border-right: 1px solid var(--gris-2); padding-right: 22px; }
.cifras__grid-top .cifra:nth-child(even){ padding-left: 22px; }

.cifra__icon{
  width: 56px; height: 56px;
  flex-shrink: 0;
  display: grid; place-items: center;
  color: var(--azul-fuerte);
}
.cifra__icon img{ width: 100%; height: 100%; object-fit: contain; }
.cifra.--verde .cifra__icon  { color: var(--verde); }
.cifra.--celeste .cifra__icon{ color: var(--azul-claro); }

.cifra__num{
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(28px, 3vw, 36px);
  line-height: 1;
  margin: 0;
  letter-spacing: -0.01em;
  color: var(--azul-fuerte);
}
.cifra__num .unit{
  display: block;
  font-size: .55em;
  font-weight: 500;
  margin-top: 4px;
  letter-spacing: 0;
}
.cifra.--verde   .cifra__num{ color: var(--verde-osc); }
.cifra.--celeste .cifra__num{ color: var(--azul-claro); }

.cifra__text{
  font-family: var(--ff-body);
  font-size: 14px;
  line-height: 1.4;
  color: var(--gris-text);
  margin: 8px 0 0;
}

/* destacada central */
.cifra-hero{
  margin: 26px 0;
  background: linear-gradient(110deg, var(--verde-soft) 0%, #f4f9eb 100%);
  border-radius: var(--r-md);
  padding: 28px 36px;
  display: flex;
  align-items: center;
  gap: 26px;
  border: 1px solid rgba(134,189,69,.25);
}
.cifra-hero .cifra__icon{ width: 64px; height: 64px; color: var(--verde-osc); }
.cifra-hero .cifra__num{
  font-size: clamp(30px, 3.6vw, 44px);
  color: var(--verde-osc);
}
.cifra-hero .cifra__num .unit{ display: inline-block; font-size: .55em; margin-left: 8px; }
.cifra-hero .cifra__text{ font-size: 15px; margin-top: 6px; }

/* grid inferior 4 columnas */
.cifras__grid-bot{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--gris-2);
}
.cifras__grid-bot .cifra{
  padding: 22px;
  border-right: 1px solid var(--gris-2);
  border-bottom: 1px solid var(--gris-2);
  min-height: 130px;
}
.cifras__grid-bot .cifra:nth-child(4n){ border-right: none; }
.cifras__grid-bot .cifra.--wide{
  grid-column: span 2;
}
.cifras__grid-bot .cifra.--wide:nth-child(odd){ border-right: 1px solid var(--gris-2); }
.cifras__grid-bot .cifra.--wide:last-child{ border-right: none; }

.cifras__foot{
  margin-top: 36px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-family: var(--ff-display);
  font-size: 12px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gris-4);
}
.cifras__foot a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--azul-fuerte);
  transition: color .3s var(--ease);
  cursor: pointer;
}
.cifras__foot a:hover{ color: var(--azul); }
.cifras__foot a svg{ width: 16px; height: 16px; }

/* ===================================================
   FOOTER simple
   =================================================== */
.site-footer{
  background: var(--azul-fuerte);
  color: rgba(255,255,255,.85);
  padding: 50px 0 36px;
  font-family: var(--ff-display);
  font-size: 13px;
  letter-spacing: .04em;
}
.site-footer .wrap{
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
}
.site-footer .logo-light img{ height: 32px; }
.site-footer__meta{ opacity: .75; letter-spacing: .12em; text-transform: uppercase; font-size: 11px; }

/* ===================================================
   ANIMACIONES DE ENTRADA (reveal)
   =================================================== */
.reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay: var(--d, 0s);
}
.reveal.is-in{
  opacity: 1;
  transform: translateY(0);
}

/* ===================================================
   RESPONSIVE
   =================================================== */
@media (max-width: 980px){
  .cover__grid{ grid-template-columns: 1fr; gap: 40px; }
  .cover__img-wrap{ margin: 0 auto; max-width: 360px; }
  .cover__stage{ padding: 130px 0 90px; }
  .cover__meta{ position: static; padding: 30px var(--gutter) 0; }

  .mensaje__head{ grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
  .mensaje__body{ grid-template-columns: 1fr; }
  .mensaje__photo-row{ grid-template-columns: 160px 1fr; gap: 20px; }

  .cifras__head{ grid-template-columns: 1fr; }
  .cifras__poster{ min-height: 320px; }
  .cifras__grid-bot{ grid-template-columns: repeat(2, 1fr); }
  .cifras__grid-bot .cifra:nth-child(2n){ border-right: none; }
  .cifras__grid-bot .cifra:nth-child(2n+1){ border-right: 1px solid var(--gris-2); }
  .cifras__grid-bot .cifra.--wide{ grid-column: span 2; border-right: none !important; }
}

@media (max-width: 640px){
  .topbar{ padding: 14px var(--gutter); }
  .section-counter{ display: none; }
  .topbar__logo{ height: 30px; }

  .mensaje, .cifras{ padding: 110px 0 80px; }

  .mensaje__photo-row{ grid-template-columns: 1fr; }
  .mensaje__photo{ max-width: 200px; }

  .cifras__grid-top{ grid-template-columns: 1fr; }
  .cifras__grid-top .cifra{ border-right: none !important; padding: 18px 4px !important; }
  .cifras__grid-bot{ grid-template-columns: 1fr; }
  .cifras__grid-bot .cifra{ border-right: none !important; }

  .cifra-hero{ flex-direction: column; text-align: center; padding: 24px; }
  .cifras__foot{ flex-direction: column; align-items: flex-start; }

  .menu__head{ padding-top: 90px; }
  .menu__link{ padding: 18px 0; grid-template-columns: 30px 1fr auto; gap: 12px; }
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation: none !important;
    transition-duration: .01ms !important;
  }
  .ring{ transition: none !important; }
}
