/* ==========================================================================
   CORPNADE — styles.css
   Design source: Figma "CORPNADE PAGE" (1920px desktop frames)
   Scale system: 1rem == 16px at 1920px viewport; everything below scales
   proportionally down to 9px/rem (≈1080px), then mobile rules take over.
   ========================================================================== */

/* ---------- Fonts ------------------------------------------------------- */
/* Satoshi (Fontshare) — loaded in <head>. Bookman Old Style is a system /
   licensed font; fallbacks keep the same wide-serif feel. */
:root {
  --font-serif: "Bookman Old Style", "URW Bookman", "Bookman", "Libre Baskerville", Georgia, serif;
  --font-sans: "Satoshi-Variable", "Satoshi", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --red: #951914;
  --grey: #3f4247;
  --grey-light: #d9d9d9;
  --black: #000000;
  --white: #ffffff;
  --white-80: rgba(255, 255, 255, 0.8);
  --grey-light-80: rgba(217, 217, 217, 0.8);

  --gap: 2.625rem;        /* 42px */
  --gap-lg: 5.625rem;     /* 90px */
  --pad-x: 6.25rem;       /* 100px */
  --pad-y: 1.5625rem;     /* 25px */
  --hero-x: 2.625rem;     /* 42px */

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 0.6s;
}

/* ---------- Reset ------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  font-size: clamp(9px, 0.8333vw, 16px);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--white);
  color: var(--black);
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 1.5625rem;      /* 25px */
  line-height: 1.19;
  letter-spacing: -0.005em;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
ul { margin: 0; padding: 0; list-style: none; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-family: var(--font-serif); font-weight: 700; line-height: 1.19; letter-spacing: -0.005em; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Type scale -------------------------------------------------- */
.t-display  { font-size: 6rem; }           /* 96px */
.t-h2       { font-size: 3.75rem; }        /* 60px */
.t-h3       { font-size: 1.875rem; color: var(--grey); } /* 30px */
.t-h4       { font-size: 2.5rem; }         /* 40px */
.t-body     { font-size: 1.5625rem; }      /* 25px */
.t-small    { font-size: 1.125rem; }       /* 18px */
.t-light    { font-weight: 300; }
.t-medium   { font-weight: 500; }
.t-bold     { font-weight: 700; }
.t-italic   { font-style: italic; }
.t-justify  { text-align: justify; }
.t-center   { text-align: center; }
.t-red      { color: var(--red); }
.t-grey     { color: var(--grey); }
.t-white    { color: var(--white); }
.t-white-80 { color: var(--white-80); }
.t-light-grey { color: var(--grey-light); }

.eyebrow { font-weight: 300; font-size: 1.5625rem; }
.para + .para { margin-top: 1.19em; }

/* ---------- Layout primitives ------------------------------------------ */
.section {
  padding: var(--pad-y) var(--pad-x);
}
.section--bleed {           /* full-width colored band, content inset */
  padding: var(--pad-y) 0;
}
.section--hero {            /* 42px side gutter like the Figma HERO frames */
  padding: var(--pad-y) var(--hero-x);
}
.band {
  position: relative;
  padding: var(--gap-lg) var(--pad-x);
}
.band--grey   { background: var(--grey); color: var(--white); }
.band--light  { background: var(--grey-light); }
.band--red    { background: var(--red); color: var(--white); }
.band--black  { background: var(--black); color: var(--white); }
.band--inset  { margin: 0 var(--hero-x); padding-inline: 5.4375rem; } /* 87px inner */

.stack   { display: flex; flex-direction: column; gap: var(--gap); align-items: flex-start; }
.row     { display: flex; gap: var(--gap); align-items: center; }
.split   { display: flex; gap: var(--gap); align-items: flex-start; }
.split > * { min-width: 0; }
.split > *, .stack > *, .row > *, .hero__content > *, .hero__text > * { max-width: 100%; }
.center  { align-items: center; text-align: center; }
.w-744   { width: 46.5rem; max-width: 100%; }
.w-697   { width: 43.5625rem; max-width: 100%; }
.w-1022  { width: 63.875rem; max-width: 100%; }
.w-809   { width: 50.5625rem; max-width: 100%; }
.w-918   { width: 57.375rem; max-width: 100%; }
.w-1045  { width: 65.3125rem; max-width: 100%; }
.w-1359  { width: 84.9375rem; max-width: 100%; }

/* ---------- Header ------------------------------------------------------ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  padding-bottom: var(--pad-y);
  background: var(--white);
}
.site-header__bar {
  display: flex;
  align-items: center;
  gap: 4rem;
  height: 9.4375rem;                   /* 151px */
  padding: 0 var(--pad-x);
  background: rgba(63, 66, 71, 0.96);
  backdrop-filter: blur(35px);
  -webkit-backdrop-filter: blur(35px);
  transition: height var(--dur) var(--ease);
}
.site-header.is-compact .site-header__bar { height: 6.5rem; }
.site-header__logo { height: 100%; width: 9.875rem; flex: 0 0 auto; }
.site-header__logo img { height: 100%; width: 100%; object-fit: cover; }
.site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.75rem;                        /* 28px */
  flex: 1 1 auto;
  min-width: 0;
}
.site-nav a {
  position: relative;
  font-weight: 900;
  font-size: 1.5rem;                   /* 24px */
  line-height: 1.45;
  color: var(--white);
  white-space: nowrap;
  padding: 0.5rem 0;
}
.site-nav a:not(.btn)::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0.15rem;
  height: 2px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s var(--ease);
}
.site-nav a:not(.btn):hover::after,
.site-nav a:not(.btn)[aria-current="page"]::after { transform: scaleX(1); }
.site-nav .btn { margin-left: auto; padding: 0.5rem 0.75rem; }
.nav-toggle {
  display: none;
  margin-left: auto;
  width: 44px; height: 44px;
  position: relative;
}
.nav-toggle span {
  position: absolute; left: 10px; right: 10px; height: 3px;
  background: var(--white); border-radius: 2px;
  transition: transform 0.3s var(--ease), opacity 0.3s;
}
.nav-toggle span:nth-child(1) { top: 12px; }
.nav-toggle span:nth-child(2) { top: 20px; }
.nav-toggle span:nth-child(3) { top: 28px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- Buttons ----------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3.9375rem;                   /* 63px */
  padding: 0 1.25rem;
  font-weight: 500;
  font-size: 1.5625rem;
  line-height: 1.19;
  white-space: nowrap;
  text-align: center;
  transition: transform 0.25s var(--ease), background-color 0.25s, color 0.25s, box-shadow 0.25s;
}
.btn--red        { background: var(--red); color: var(--white); }
.btn--grey       { background: var(--grey); color: var(--white); }
.btn--white      { background: var(--white); color: var(--red); }
.btn--light      { background: var(--grey-light); color: var(--red); }
.btn--outline    { border: 1px solid var(--red); color: var(--grey); }
.btn--outline-grey  { border: 1px solid var(--grey); color: var(--grey); }
.btn--outline-white { border: 1px solid var(--white-80); color: var(--grey-light); }
.btn--outline-light { border: 1px solid var(--grey-light); color: var(--white); }
.btn--sm { height: 2.875rem; font-weight: 700; color: var(--red); border: 1px solid var(--red); }
.btn--lg { height: 5.5625rem; font-size: 2rem; }  /* 89px / 32px */
.btn--wide { width: 100%; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 0.6rem 1.4rem rgba(0, 0, 0, 0.18); }
.btn--red:hover { background: #7d1410; }
.btn--outline:hover, .btn--outline-grey:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.btn--outline-white:hover, .btn--outline-light:hover { background: var(--white); color: var(--grey); }
.btn--white:hover { background: var(--grey-light); }
.btn--sm:hover { background: var(--red); color: var(--white); }

.link-arrow {
  display: inline-block;
  color: var(--red);
  font-weight: 300;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.link-arrow strong { font-weight: 500; }
.link-arrow .arrow { display: inline-block; transition: transform 0.3s var(--ease); }
.link-arrow:hover .arrow { transform: translateX(0.4em); }

/* ---------- Hero -------------------------------------------------------- */
.hero {
  position: relative;
  min-height: 61.9375rem;              /* 991px */
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}
.hero__bg {
  position: absolute; inset: 0;
  z-index: 0;
}
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__bg--red { background: var(--red); }
.hero__bg--red img { opacity: 0.65; }
.hero__bg--black { background: var(--black); }
.hero__bg--black img { opacity: 0.3; }
.hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: flex-start;
  padding: 0 4.375rem;                 /* 70px */
}
.hero__content .btn-row { display: flex; gap: var(--gap); flex-wrap: wrap; margin-top: 0.5rem; }
.hero__title { max-width: 64.25rem; }
.hero__title--wide { max-width: 86.5rem; }
.hero__lead { width: 46.5rem; max-width: 100%; text-align: justify; color: var(--grey); }
.hero--split .hero__content { flex-direction: row; align-items: center; gap: 8.3125rem; }
.hero--split .hero__text { display: flex; flex-direction: column; gap: 1.25rem; width: 56.375rem; max-width: 100%; }

/* Home hero: slideshow of 3 covers (the source was an animated GIF) */
.hero-slides { position: absolute; inset: 0; }
.hero-slides img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero-slides img.is-active { opacity: 1; }

/* Hero entrance sequence */
.hero [data-enter] {
  opacity: 0;
  transform: translateY(1.5rem);
  animation: enter 0.9s var(--ease) forwards;
}
.hero [data-enter="1"] { animation-delay: 0.10s; }
.hero [data-enter="2"] { animation-delay: 0.25s; }
.hero [data-enter="3"] { animation-delay: 0.40s; }
.hero [data-enter="4"] { animation-delay: 0.55s; }
.hero [data-enter="5"] { animation-delay: 0.70s; }
@keyframes enter { to { opacity: 1; transform: none; } }

/* ---------- Scroll reveal ---------------------------------------------- */
.reveal {
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-group > * {
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal-group.is-visible > * { opacity: 1; transform: none; }
.reveal-group.is-visible > *:nth-child(2) { transition-delay: 0.10s; }
.reveal-group.is-visible > *:nth-child(3) { transition-delay: 0.20s; }
.reveal-group.is-visible > *:nth-child(4) { transition-delay: 0.30s; }
.reveal-group.is-visible > *:nth-child(5) { transition-delay: 0.40s; }
.reveal-group.is-visible > *:nth-child(6) { transition-delay: 0.50s; }
.reveal-group.is-visible > *:nth-child(7) { transition-delay: 0.60s; }
.reveal-group.is-visible > *:nth-child(8) { transition-delay: 0.70s; }

/* ---------- Cards ------------------------------------------------------- */
/* Small feature card with illustrated background (Home §1, Procesos §2) */
.feat-grid { display: grid; grid-template-columns: repeat(2, 24.375rem); gap: var(--gap); }
.feat {
  position: relative;
  width: 24.375rem; height: 13.5625rem;          /* 390 x 217 */
  padding: 5.6875rem 1.875rem 1.3125rem 6.5rem;  /* 91 30 21 104 */
  display: flex; flex-direction: column; justify-content: flex-start;
  overflow: hidden;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.feat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.feat > div { position: relative; z-index: 1; width: 15.9375rem; display: flex; flex-direction: column; gap: 0.375rem; }
.feat h3 { font-size: 1.875rem; color: var(--grey); }
.feat p { font-size: 1.125rem; font-weight: 300; text-align: justify; }
.feat:hover { transform: translateY(-0.375rem); box-shadow: 0 1rem 2rem rgba(0,0,0,0.14); }
.feat--tall { height: 21.4375rem; padding: 5rem 3.25rem 3.8125rem 5.625rem; } /* 343: 80 52 61 90 */
.feat--tall > div { gap: 0.875rem; }
.feat--wide { width: 50.25rem; height: 12.125rem; padding: 3.4375rem 7.25rem 2.3125rem 12.5rem; } /* 804x194 */
.feat--wide > div { width: 27.75rem; gap: 0.625rem; }

/* Action-line card (Home §2) */
.line-grid { display: grid; grid-template-columns: repeat(4, 23.8125rem); gap: var(--gap); }
.line-card {
  position: relative;
  width: 23.8125rem; height: 26.125rem;          /* 381 x 418 */
  padding: 1.875rem 1.3125rem;
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  overflow: hidden;
  color: var(--white);
}
.line-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; transition: transform 0.7s var(--ease); }
.line-card:hover img { transform: scale(1.06); }
.line-card__title {
  position: relative; z-index: 1;
  width: 18.5rem; height: 3.3125rem;
  display: flex; align-items: center; justify-content: center;
  padding: 0.375rem 1rem;
  background: var(--grey-light-80);
  color: var(--red);
  font-weight: 500; font-size: 1.125rem; text-align: center;
}
.line-card__text { position: relative; z-index: 1; width: 21.125rem; font-size: 1.125rem; font-weight: 300; text-align: justify; }

/* Pillar card (Home §3) */
.pillar-grid { display: grid; grid-template-columns: repeat(4, 23.8125rem); gap: var(--gap); }
.pillar {
  position: relative;
  width: 23.8125rem; height: 25rem;             /* 381 x 400 */
  padding: 4.6875rem 2.5rem 4.6875rem 4.6875rem;
  overflow: hidden;
  color: var(--black);
  transition: transform 0.35s var(--ease);
}
.pillar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.pillar > div { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 0.9375rem; width: 15.9375rem; }
.pillar h3 { font-size: 1.875rem; color: var(--grey); }
.pillar p { font-size: 1.125rem; font-weight: 300; text-align: justify; }
.pillar:hover { transform: translateY(-0.375rem); }

/* Contact tile (Home §6 / Internacionalización) */
.tile {
  position: relative;
  width: 28rem; min-height: 10.1875rem;         /* 448 x 163; grows if text wraps */
  padding: 2.5rem 2.625rem;
  background: var(--grey-light);
  border-top: 1.1875rem solid var(--red);
  display: flex; flex-direction: column; gap: 0.25rem;
  overflow-wrap: anywhere;
  align-self: stretch;                          /* equal heights within a row */
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.tile strong { color: var(--red); font-weight: 500; }
a.tile:hover { transform: translateY(-0.25rem); box-shadow: 0 0.75rem 1.5rem rgba(0,0,0,0.12); }
.tile--stat {
  width: 23.75rem; height: 12.375rem;           /* 380 x 198 */
  padding: 2rem 2.75rem;
  align-items: center; text-align: center; justify-content: center;
}
.tile--stat .num { font-family: var(--font-serif); font-weight: 700; font-style: italic; font-size: 3.75rem; color: var(--grey); }
.tile--stat .label { font-weight: 300; }
.tile--social { width: 20rem; height: 12.0625rem; padding: 3.4375rem 1.625rem 2.5rem 2.625rem; gap: 0.5625rem; }
.tile--social p { font-size: 1.125rem; }
.tile--eq { width: 23.75rem; height: 12.375rem; justify-content: flex-end; align-items: center; text-align: center; padding: 1.25rem 2.875rem 3.0625rem; }
.tile--eq img { position: absolute; top: 1.25rem; left: 50%; transform: translateX(-50%); width: 18rem; opacity: 0.35; z-index: 0; }
.tile--eq > div { position: relative; z-index: 1; }
.tile--eq .num { font-family: var(--font-serif); font-weight: 700; font-style: italic; font-size: 2.5rem; color: var(--grey); }
.tile--eq .label { font-weight: 300; }

/* Value circles (Sobre §5, Internacionalización §7) */
.values-row {
  position: relative;
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: var(--gap);
  padding: 0 0;
}
.values-row::before {            /* the horizontal connector line */
  content: "";
  position: absolute; left: 11rem; right: 11rem; top: 7.125rem;
  border-top: 3px solid var(--red);
  z-index: 0;
}
.value { position: relative; z-index: 1; width: 18.125rem; display: flex; flex-direction: column; align-items: center; gap: var(--gap); text-align: center; }
.value__img {
  width: 14.25rem; height: 14.25rem;            /* 228 */
  border-radius: 50%;
  border: 3px solid var(--red);
  background: var(--white);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  transition: transform 0.4s var(--ease);
}
.value__img img { width: 100%; height: 100%; object-fit: cover; }
.value:hover .value__img { transform: scale(1.05); }
.value h3 { font-family: var(--font-sans); font-weight: 500; font-size: 1.5rem; color: var(--black); }
.value p { font-size: 1.125rem; font-weight: 300; color: var(--grey); margin-top: 0.4375rem; }
.values-row--dark .value { width: 24.6875rem; }
.values-row--dark .value__img { width: 19.25rem; height: 19.25rem; background: var(--grey); }
.values-row--dark .value h3 { font-size: 1.875rem; color: var(--white); }
.values-row--dark .value p { font-size: 1.5625rem; color: var(--grey-light); }
.values-row--dark::before { top: 9.6rem; left: 12rem; right: 12rem; }

/* Bullet list (Líneas / Internacionalización) */
.dots { display: flex; flex-direction: column; gap: 0.6875rem; width: 42.5625rem; max-width: 100%; }
.dots li { display: flex; align-items: center; gap: 1.3125rem; line-height: 1.6; text-align: justify; }
.dots li::before { content: ""; flex: 0 0 0.625rem; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: currentColor; }

/* Grey chips list (Internacionalización) */
.chips { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.chips li {
  height: 3.9375rem;
  display: flex; align-items: center;
  padding-left: 2.34rem;
  background: var(--grey-light-80);
  color: var(--grey);
  font-weight: 500;
  position: relative;
}
.chips li::before { content: "•"; position: absolute; left: 1rem; }

/* FAQ accordion (Procesos §3) */
.faq { display: flex; flex-direction: column; gap: var(--gap); width: 67.75rem; max-width: 100%; }
.faq__item { background: var(--white); padding: 1.875rem 2.3125rem; }
.faq__q {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  text-align: left;
  font-size: 1.5625rem;
}
.faq__q .plus {
  flex: 0 0 2.625rem; width: 2.625rem; height: 2.625rem;
  display: flex; align-items: center; justify-content: center;
  background: var(--grey-light); color: var(--red);
  font-weight: 900;
  transition: transform 0.35s var(--ease);
}
.faq__item.is-open .faq__q .plus { transform: rotate(45deg); }
.faq__a {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows 0.45s var(--ease);
}
.faq__a > div { overflow: hidden; }
.faq__a p { padding-top: var(--gap); font-weight: 300; color: var(--grey); text-align: justify; }
.faq__item.is-open .faq__a { grid-template-rows: 1fr; }

/* Line index (Líneas hero right column) */
.line-index { display: flex; flex-direction: column; gap: var(--gap); width: 39rem; max-width: 100%; }
.line-index a {
  display: flex; align-items: center;
  height: 3.9375rem;
  background: var(--white);
  color: var(--grey);
  overflow: hidden;
  transition: transform 0.3s var(--ease), background-color 0.3s;
}
.line-index a:hover { transform: translateX(0.5rem); background: var(--grey-light); }
.line-index img { width: 6.375rem; aspect-ratio: 390 / 242; object-fit: cover; flex: 0 0 auto; }
.line-index .n { font-family: var(--font-serif); font-weight: 700; font-size: 2.0625rem; color: rgba(63,66,71,0.8); width: 2.8125rem; margin-left: 0; }
.line-index .label { font-weight: 500; margin-left: 1.3125rem; white-space: nowrap; }

/* Line detail section (Líneas §2–8) */
.line-detail { display: flex; gap: var(--gap-lg); align-items: flex-start; }
.line-detail__left { width: 62.3125rem; max-width: 100%; display: flex; flex-direction: column; align-items: center; }
.line-detail__head { width: 50.5625rem; max-width: 100%; display: flex; flex-direction: column; gap: 0.9375rem; align-items: flex-start; }
.line-detail__img { width: 100%; }
.line-detail__img img { width: 100%; height: auto; }
.line-detail__right { width: 43.5625rem; max-width: 100%; display: flex; flex-direction: column; gap: var(--gap); }

/* Dark info card (Internacionalización hero right column) */
.info-card {
  position: relative;
  width: 24.375rem; height: 15.125rem;          /* 390 x 242 */
  background: var(--grey);
  border-left: 1.6875rem solid var(--red);
  display: flex; align-items: flex-end; justify-content: center;
  padding-bottom: 1.75rem;
  color: var(--grey-light);
  text-align: center;
  overflow: hidden;
}
.info-card img { position: absolute; inset: 0 0 auto 0; width: 100%; height: 14rem; object-fit: cover; opacity: 0.35; }
.info-card p { position: relative; width: 22.6875rem; }

/* Country card (Internacionalización §2) */
.country { background: var(--white); padding: 2.625rem; display: flex; flex-direction: column; gap: 0.625rem; }
.country h3 { font-family: var(--font-sans); font-weight: 400; font-size: 1.5625rem; color: var(--red); }
.country p { font-weight: 300; color: var(--grey); text-align: justify; }

/* Enfoque card (Sobre §6) */
.enfoque {
  position: relative;
  width: 32.625rem; aspect-ratio: 522 / 481;
  padding: 12.5rem 2.625rem 5.5rem 4.0625rem;
  overflow: hidden;
  color: var(--grey-light);
}
.enfoque img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; transition: transform 0.7s var(--ease); }
.enfoque:hover img { transform: scale(1.05); }
.enfoque > div { position: relative; z-index: 1; width: 24.375rem; display: flex; flex-direction: column; gap: 0.9375rem; }
.enfoque h3 { font-family: var(--font-sans); font-weight: 400; font-size: 1.875rem; color: var(--white-80); }
.enfoque p { font-size: 1.125rem; font-weight: 300; text-align: justify; }

/* Razón de ser card (Sobre §4) */
.razon {
  position: relative;
  width: 32.625rem; height: 37.5625rem;         /* 522 x 601 */
  padding: 6.25rem 2.625rem 5.125rem 5.3125rem;
  overflow: hidden;
  color: var(--black);
}
.razon img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.razon > div { position: relative; z-index: 1; width: 24.5rem; display: flex; flex-direction: column; gap: 0.625rem; }
.razon .kicker { font-size: 1.125rem; font-weight: 300; color: var(--red); }
.razon h3 { font-size: 1.875rem; color: var(--grey); }
.razon p { font-size: 1.125rem; font-weight: 300; text-align: justify; }

/* Process map with CTA overlay (Home §4) */
.process-map { position: relative; width: 100%; }
.process-map img { width: 100%; }
.process-map .btn { position: absolute; left: 6.25rem; bottom: 22.1875rem; width: 43rem; }

/* ---------- Footer ------------------------------------------------------ */
.site-footer { margin-top: var(--pad-y); background: var(--black); color: var(--white); }
.site-footer__inner {
  display: flex; align-items: center; gap: 25.0625rem;   /* 401px */
  padding: 5.875rem 7.5625rem;                            /* 94 121 */
}
.site-footer__brand { width: 33.0625rem; display: flex; flex-direction: column; gap: var(--gap); }
.site-footer__brand img { width: 21.5625rem; height: 6.5625rem; object-fit: cover; }
.site-footer__brand p { color: var(--grey-light); text-align: justify; }
.site-footer__brand small { display: block; font-size: 1.25rem; color: var(--white-80); text-align: justify; }
.site-footer__cols { display: flex; gap: 8.75rem; }
.site-footer__cols h2 { font-family: var(--font-sans); font-weight: 500; font-size: 2.25rem; margin-bottom: 0.125rem; }
.site-footer__cols li { color: var(--grey-light); line-height: 2.17; padding-left: 2.34rem; position: relative; white-space: nowrap; }
.site-footer__cols li::before { content: "•"; position: absolute; left: 1rem; }
.site-footer__cols a:hover { color: var(--white); text-decoration: underline; }

/* ---------- Motion preferences ---------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero [data-enter], .reveal, .reveal-group > * { opacity: 1; transform: none; animation: none; transition: none; }
  .hero-slides img { transition: none; }
  * { transition-duration: 0.01ms !important; }
}

/* ---------- Responsive ------------------------------------------------ */
@media (max-width: 1100px) {
  html { font-size: 10px; }
  :root { --pad-x: 2.4rem; --hero-x: 1.6rem; --gap: 2.4rem; --gap-lg: 5rem; }

  .site-header__bar { height: 8rem; gap: 2rem; }
  .site-header.is-compact .site-header__bar { height: 6.4rem; }
  .site-nav {
    position: fixed; inset: 8rem 0 auto 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--grey);
    padding: 1rem var(--pad-x) 2rem;
    transform: translateY(-1rem); opacity: 0; pointer-events: none;
    transition: transform 0.3s var(--ease), opacity 0.3s;
  }
  .site-nav.is-open { transform: none; opacity: 1; pointer-events: auto; }
  .site-nav a { padding: 1.2rem 0; border-bottom: 1px solid rgba(255,255,255,0.12); }
  .site-nav .btn { margin: 1.6rem 0 0; }
  .nav-toggle { display: block; }

  .t-display { font-size: 4.6rem; }
  .t-h2 { font-size: 3.2rem; }
  .hero { min-height: 0; padding: 6rem 0; }
  .hero__content { padding: 0 2.4rem; }
  .hero__lead, .w-744, .w-697, .w-1022, .w-809, .w-918, .w-1045, .w-1359 { width: 100%; }
  .hero--split .hero__content { flex-direction: column; align-items: stretch; gap: 3rem; }
  .split, .row, .line-detail { flex-direction: column; align-items: stretch; }
  .band--inset { margin: 0; padding-inline: var(--pad-x); }

  .feat-grid, .line-grid, .pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feat, .line-card, .pillar, .tile, .tile--stat, .tile--social, .tile--eq, .enfoque, .razon, .feat--wide, .info-card { width: 100%; }
  .feat--wide { height: auto; min-height: 12.125rem; }
  .line-card__text, .line-card__title { width: 100%; }
  .feat > div, .pillar > div, .razon > div, .enfoque > div, .feat--wide > div { width: 100%; }
  .values-row { flex-wrap: wrap; justify-content: center; }
  .values-row::before { display: none; }
  .value, .values-row--dark .value { width: calc(50% - var(--gap)); }
  .chips { grid-template-columns: 1fr; }
  .chips li { height: auto; min-height: 3.9375rem; padding: 0.6rem 1rem 0.6rem 2.34rem; }
  .line-index { width: 100%; }
  .line-index .label { white-space: normal; }
  .line-detail__left, .line-detail__head, .line-detail__right { width: 100%; }
  .process-map .btn { position: static; width: 100%; margin-top: var(--gap); white-space: normal; height: auto; padding: 1.4rem; }
  .site-footer__inner { flex-direction: column; align-items: flex-start; gap: 4rem; padding: 5rem var(--pad-x); }
  .site-footer__brand, .site-footer__cols { width: 100%; }
  .site-footer__cols { flex-wrap: wrap; gap: 3rem; }
  .site-footer__cols li { white-space: normal; }
  .btn { white-space: normal; height: auto; min-height: 3.9375rem; padding: 1rem 1.25rem; }
}

@media (max-width: 640px) {
  html { font-size: 9px; }
  .t-display { font-size: 3.8rem; }
  .t-h2 { font-size: 2.8rem; }
  .feat-grid, .line-grid, .pillar-grid { grid-template-columns: 1fr; }
  .value, .values-row--dark .value { width: 100%; }
  .faq__q { font-size: 1.8rem; }
}
