/* ============================================================
   RAF BARCENES V2 — MAIN
   Premium B2B corporativo. Vanilla CSS moderno.
   ============================================================ */

/* ---------- INITIAL VISIT / LOADING ---------------------- */
.site-loader{
  position:fixed; inset:0; z-index:400; display:grid; place-items:center;
  background:var(--bg); color:var(--raf-navy); opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--motion-base) var(--ease-standard), visibility 0s var(--motion-base);
}
.is-loading .site-loader{ opacity:1; visibility:visible; pointer-events:auto; transition:none; }
.site-loader__content{ width:min(280px,calc(100vw - 64px)); text-align:center; }
.site-loader__logo{ width:157px; height:52px; margin-inline:auto; }
.site-loader__signature{ margin-top:24px; font-size:var(--fs-sm); font-weight:500; }
.site-loader__track{ height:2px; background:var(--line); overflow:hidden; margin-top:36px; }
.site-loader__track span{ display:block; width:45%; height:100%; background:var(--raf-orange); }
.is-loading .site-loader__track span{ animation:loaderTravel var(--motion-loader) linear infinite; }
.site-loader__status{ margin-top:16px; color:var(--muted); font-size:var(--fs-xs); }
.site-loader__skip{
  position:absolute; bottom:max(32px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%);
  min-height:44px; display:flex; align-items:center; gap:12px; padding:10px 16px;
  border:0; background:transparent; color:var(--ink-2); font-size:var(--fs-xs); white-space:nowrap;
}
.site-loader__skip span{ color:var(--raf-blue); }
.intro-skip .site-loader{ transition:none; }
@keyframes loaderTravel{ from{ transform:translateX(-110%); } to{ transform:translateX(330%); } }

/* ---------- RESET / BASE ---------------------------------- */
*,*::before,*::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top:calc(var(--header-height) + 24px); }
main{ padding-top:var(--header-height); }
section[id]{ scroll-margin-top:calc(12px - var(--section-y)); }
article[id], .capacity[id]{ scroll-margin-top:12px; }
[hidden]{ display:none !important; }
body {
  font-family: var(--font);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--ink-2);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img,svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
ul,ol { list-style: none; padding: 0; }
button { font: inherit; cursor: pointer; }
h1,h2,h3,h4 { color: var(--ink); line-height: var(--lh-head); font-weight: 700; letter-spacing: var(--tr-tight); }
:focus-visible { outline: 3px solid var(--raf-blue); outline-offset: 3px; border-radius: 4px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

.skip-link{
  position:fixed; top:16px; transform:translateY(-180%); left:16px; z-index:300;
  background:var(--raf-navy); color:#fff; padding:10px 16px; border-radius:var(--r-sm);
}
.skip-link:focus{ transform:none; }

/* ---------- LAYOUT ---------------------------------------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:var(--fs-label); font-weight:700; letter-spacing:var(--tr-label);
  text-transform:uppercase; color:var(--raf-blue); margin-bottom:18px;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--raf-orange); border-radius:2px; }
.eyebrow--on-dark{ color:#fff; }
.eyebrow--on-dark::before{ background:var(--raf-orange); }

.section-title{ font-size:var(--fs-h2); max-width:20ch; }
.section-title--light{ color:#fff; }
.lead{ font-size:var(--fs-lg); color:var(--ink-2); line-height:var(--lh-snug); }
.lead--on-dark{ color:var(--on-dark-2); }

.section-head{ max-width:760px; margin-bottom:var(--section-head-gap); }
.section-head--center{ margin-inline:auto; text-align:center; }
.section-head--center .eyebrow{ justify-content:center; }
.section-head__lead{ margin-top:16px; color:var(--muted); font-size:var(--fs-lg); }

/* ---------- BUTTONS --------------------------------------- */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:14px 22px; border-radius:var(--r-sm);
  font-weight:600; font-size:var(--fs-sm); letter-spacing:.005em;
  border:1.5px solid transparent; background:transparent; color:var(--ink);
  transition:transform var(--motion-fast) var(--ease-standard);
}
.btn:active{ transform:scale(.98); }
.btn__ico{
  display:inline-grid; place-items:center; width:30px; height:30px; margin-right:-6px;
  border-radius:var(--r-pill); background:rgba(11,42,85,.16); color:inherit;
  transition:transform var(--motion-fast) var(--ease-emphasized);
}
.btn__ico svg{ transition:transform var(--motion-base) var(--ease-emphasized); }
@media (hover:hover) and (pointer:fine){ .btn:hover .btn__ico svg{ transform:translateX(2px); } }

.btn--primary{ background:var(--raf-orange); color:var(--raf-navy); box-shadow:none; }
@media (hover:hover) and (pointer:fine){ .btn--primary:hover{ background:var(--raf-orange-600); box-shadow:0 4px 12px rgba(6,25,47,.15); transform:translateY(-1px); } }
.btn--primary .btn__ico{ background:rgba(11,42,85,.18); }

.btn--ghost{ border-color:rgba(11,42,85,.22); color:var(--raf-navy); }
@media (hover:hover) and (pointer:fine){ .btn--ghost:hover{ background:var(--raf-navy); color:#fff; border-color:var(--raf-navy); } }

.btn--ghost-dark{ border-color:rgba(255,255,255,.34); color:#fff; }
@media (hover:hover) and (pointer:fine){ .btn--ghost-dark:hover{ background:rgba(255,255,255,.10); border-color:#fff; } }

.btn--sm{ padding:10px 16px; font-size:var(--fs-xs); gap:8px; }
.btn--sm .btn__ico{ width:24px; height:24px; }
.btn--lg{ padding:16px 26px; font-size:var(--fs-body); }
.btn--block{ display:flex; width:100%; justify-content:center; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px; margin-top:26px;
  font-weight:600; color:var(--raf-blue); font-size:var(--fs-sm);
}
.link-arrow svg{ transition:transform var(--motion-base) var(--ease-emphasized); }
@media (hover:hover) and (pointer:fine){ .link-arrow:hover svg{ transform:translateX(3px); } }
.link-arrow--sm{ margin-top:18px; font-size:var(--fs-xs); }

/* ---------- HEADER / NAVIGATION --------------------------- */
.site-header{
  position:fixed; inset:0 0 auto; z-index:var(--z-header);
  background:var(--bg); border-bottom:1px solid var(--line);
  
}
.site-header.is-solid{ box-shadow:0 4px 24px rgba(11,42,85,.09); }
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--header-height); }
.brand{ display:inline-flex; align-items:center; flex:none; }
.brand__logo{ height:46px; width:auto; }
.nav__list{ display:flex; gap:2px; }
.nav__link{
  position:relative; display:inline-flex; align-items:center; min-height:44px; padding:10px 12px;
  font-size:var(--fs-sm); font-weight:500; color:var(--ink-2);
}
.nav__link::after{
  content:""; position:absolute; inset:auto 12px 3px; height:2px;
  background:var(--raf-orange); transform:scaleX(0); transform-origin:left;
  transition:transform var(--motion-base) var(--ease-emphasized);
}
.nav__link[aria-current="location"]{ color:var(--raf-navy); font-weight:600; }
.nav__link[aria-current="location"]::after, .nav__link:focus-visible::after{ transform:scaleX(1); }
.site-header__actions{ display:flex; align-items:center; gap:14px; flex:none; }
.site-header .btn--primary{ box-shadow:none; }
.nav-toggle{
  display:none; width:46px; height:46px; border-radius:var(--r-sm);
  background:var(--bg-2); border:1px solid var(--line);
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.nav-toggle__bar{ width:20px; height:2px; background:var(--raf-navy); border-radius:2px; transition:transform var(--motion-base) var(--ease-emphasized); }
body.menu-open .nav-toggle__bar:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
body.menu-open .nav-toggle__bar:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }
body.menu-open{ overflow:hidden; }
.mobile-menu{
  position:fixed; inset:var(--header-height) 0 0; z-index:var(--z-menu);
  background:var(--raf-navy); color:var(--white); overflow-y:auto; overscroll-behavior:contain;
  padding-bottom:max(28px,env(safe-area-inset-bottom)); opacity:0; visibility:hidden;
  transition:opacity var(--motion-base) var(--ease-standard), visibility var(--motion-base);
}
.mobile-menu.is-open{ opacity:1; visibility:visible; }
@starting-style{ .mobile-menu.is-open{ opacity:0; } }
.mobile-menu :focus-visible{ outline-color:var(--raf-orange); }
.mobile-menu__nav{ display:flex; flex-direction:column; gap:8px; padding-top:24px; }
.mobile-menu__list{ display:flex; flex-direction:column; }
.mobile-menu__list li{ border-bottom:1px solid var(--on-dark-line); }
.mobile-menu__list a{ display:block; padding:16px 4px; font-size:1.35rem; font-weight:600; }
.mobile-menu__list a[aria-current="location"]{ color:var(--raf-orange); }
.mobile-menu .btn{ margin-top:24px; }
.mobile-menu__meta{ margin-top:24px; display:flex; flex-direction:column; gap:8px; color:var(--on-dark-2); font-size:var(--fs-sm); }
.mobile-menu__meta a{ padding-block:8px; }
@media (hover:hover) and (pointer:fine){ .nav__link:hover::after{ transform:scaleX(1); } }

/* ---------- FRAME (imagen premium con doble borde) -------- */
.frame{
  position:relative; border-radius:var(--r-lg); overflow:hidden;
  background:var(--bg-3); box-shadow:var(--shadow);
}
.frame::after{ content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(11,42,85,.06); pointer-events:none; }
.frame img{ width:100%; height:100%; object-fit:cover; transition:transform var(--motion-base) var(--ease-standard); }

/* ---------- HERO: explicit image / scrim / content layers -- */
.hero{
  position:relative; min-height:min(790px,calc(100svh - var(--header-height)));
  display:flex; flex-direction:column; justify-content:center;
  background:var(--raf-navy); color:var(--white); isolation:isolate; overflow:hidden;
}
.hero__media{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:65% center; }
.hero__scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,rgba(6,25,47,.97) 0%,rgba(6,25,47,.91) 29%,rgba(6,25,47,.66) 51%,rgba(6,25,47,.12) 79%),
    linear-gradient(0deg,rgba(6,25,47,.68),transparent 48%);
}
.hero__inner{ position:relative; z-index:2; flex:1; display:flex; align-items:center; padding-block:clamp(56px,7vw,96px); }
.hero__content{ max-width:670px; }
.hero__eyebrow{ margin-bottom:26px; font-size:11px; letter-spacing:.13em; }
.hero__title{ color:var(--white); font-size:clamp(2.8rem,5.1vw,4.6rem); font-weight:700; line-height:1.08; letter-spacing:-.045em; max-width:15ch; margin-bottom:26px; }
.hero__title span{ display:inline-block; color:var(--raf-orange); }
.hero__lead{ color:var(--on-dark); font-size:var(--fs-lg); max-width:45ch; line-height:1.6; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero__assurance{ display:flex; align-items:center; gap:10px; margin-top:28px; color:var(--on-dark-2); font-size:var(--fs-xs); }
.hero__assurance svg{ flex:none; color:var(--raf-orange); }
.hero__photo-note{ position:absolute; right:var(--gutter); bottom:48px; display:flex; flex-direction:column; gap:6px; padding:14px 0; color:var(--white); }
.hero__photo-note>span{ font-size:var(--fs-xs); color:var(--on-dark); }
.hero__photo-note strong{ font-weight:600; display:flex; gap:24px; align-items:center; }
.hero__photo-note strong span{ color:var(--raf-orange); font-size:24px; }
.hero__chips{ position:relative; z-index:2; background:var(--raf-navy); border-top:1px solid var(--on-dark-line); }
.hero__chips-inner{ display:grid; grid-template-columns:repeat(5,1fr); }
.hero__chip{ display:flex; align-items:center; gap:12px; min-height:78px; padding:16px 20px; border-right:1px solid var(--on-dark-line); color:var(--white); font-weight:500; font-size:var(--fs-sm); }
.hero__chip:first-child{ border-left:1px solid var(--on-dark-line); }
.hero__chip-index{ color:var(--on-dark-2); font-size:11px; }
.hero__chip-arrow{ margin-left:auto; color:var(--raf-orange); transition:transform var(--motion-base) var(--ease-emphasized); }
.hero__chip:focus-visible, .hero__photo-note:focus-visible{ outline-color:var(--raf-orange); outline-offset:-3px; }
@media (hover:hover) and (pointer:fine){
  .hero__chip:hover{ background:var(--raf-navy-800); }
  .hero__chip:hover .hero__chip-arrow{ transform:translate(2px,-2px); }
}
/* First-visit entrance; content remains available if JS never loads. */
.js.is-loaded .hero [data-hero]{ animation:heroIn var(--motion-reveal) var(--ease-emphasized) backwards; }
.js .hero [data-hero="2"]{ animation-delay:var(--motion-stagger); }
.js .hero [data-hero="3"]{ animation-delay:calc(2 * var(--motion-stagger)); }
.js .hero [data-hero="4"]{ animation-delay:calc(3 * var(--motion-stagger)); }
.js .hero [data-hero="5"], .js .hero [data-hero="6"]{ animation-delay:calc(4 * var(--motion-stagger)); }
@keyframes heroIn{ from{ opacity:0; transform:translateY(var(--reveal-distance)); } to{ opacity:1; transform:none; } }

.btn__wa{ display:inline-grid; place-items:center; margin-right:-2px; }

/* ---------- CAPACITY / METRICS ---------------------------- */
.capacity{ padding-block:var(--section-y); background:var(--bg); }
.capacity__head{ max-width:640px; margin-bottom:clamp(36px,4vw,56px); }
.capacity__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:20px; }
.metric{
  padding:30px 28px; border-radius:var(--r-lg); background:var(--bg-2);
  box-shadow:inset 0 0 0 1px var(--line); position:relative; overflow:hidden;
}
.metric::before{ content:""; position:absolute; left:28px; top:26px; width:30px; height:3px; background:var(--raf-orange); border-radius:2px; }
.metric__value{ display:flex; align-items:baseline; gap:8px; margin-top:22px; font-size:clamp(2.2rem,1.4rem + 2.6vw,3.4rem); font-weight:800; color:var(--raf-navy); letter-spacing:-0.02em; line-height:1; }
.metric__pre{ font-size:.42em; font-weight:700; color:var(--raf-blue); letter-spacing:.02em; }
.metric__value--text{ font-size:clamp(1.5rem,1.1rem + 1.4vw,2.1rem); }
.metric__label{ display:block; margin-top:12px; color:var(--muted); font-size:var(--fs-sm); max-width:18ch; }
.metric--hero{ background:var(--raf-navy); box-shadow:none; }
.metric--hero .metric__value{ color:#fff; }
.metric--hero .metric__pre{ color:var(--raf-orange); }
.metric--hero .metric__label{ color:var(--on-dark-2); }
.metric--hero::before{ background:var(--raf-orange); }

/* ---------- ABOUT ----------------------------------------- */
.about{ padding-block:var(--section-y); background:var(--bg-2); }
.about__grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(32px,5vw,80px); align-items:center; }
.about__media{ position:relative; }
.frame--tall{ aspect-ratio:4/4.4; }
.about__badge{ position:absolute; right:-14px; bottom:-18px; display:flex; gap:2px; background:#fff; padding:8px; border-radius:var(--r); box-shadow:var(--shadow-lg); }
.about__badge-k{ font-size:var(--fs-xs); font-weight:700; color:var(--raf-navy); padding:8px 12px; border-radius:var(--r-xs); background:var(--bg-2); letter-spacing:.01em; }
.about__text .lead{ margin-top:8px; margin-bottom:18px; color:var(--ink); }
.about__text p{ color:var(--ink-2); }

/* ---------- SERVICES -------------------------------------- */
.services{ padding-block:var(--section-y); background:var(--bg); }

/* Servicio destacado (Alimentación) — fila horizontal */
.svc-feature{
  display:grid; grid-template-columns:1.05fr .95fr; gap:0; margin-bottom:24px;
  background:var(--bg); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow), inset 0 0 0 1px var(--line);
}
.svc-feature__media{ position:relative; overflow:hidden; min-height:340px; }
.svc-feature__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform var(--motion-base) var(--ease-standard); }
@media (hover:hover) and (pointer:fine){ .svc-feature:hover .svc-feature__media img{ transform:scale(1.02); } }
.svc-feature__tag{ position:absolute; left:20px; top:20px; z-index:2; background:var(--raf-orange); color:var(--raf-navy); font-size:var(--fs-xs); font-weight:700; padding:8px 15px; border-radius:var(--r-pill); }
.svc-feature__body{ padding:clamp(28px,4vw,52px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.svc-feature__title{ font-size:var(--fs-h3); margin:6px 0 12px; }
.svc-feature__text{ color:var(--ink-2); font-size:var(--fs-lg); line-height:var(--lh-snug); max-width:46ch; }

/* Grilla de servicios (4) */
.services__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.svc-card{
  display:flex; flex-direction:column; background:var(--bg);
  border-radius:var(--r-lg); box-shadow:inset 0 0 0 1px var(--line); overflow:hidden;
  transition:transform var(--motion-fast) var(--ease-standard);
}
.svc-card__body{ padding:28px 26px 26px; display:flex; flex-direction:column; flex:1; }
.svc-card__icon{ display:inline-grid; place-items:center; width:54px; height:54px; border-radius:var(--r); background:var(--raf-blue-050); color:var(--raf-blue); margin-bottom:22px;  }
.svc-card__icon--accent{ background:var(--raf-orange); color:var(--raf-navy); width:58px; height:58px; }
.svc-card__title{ font-size:var(--fs-h4); margin-bottom:10px; }
.svc-card__text{ color:var(--ink-2); font-size:var(--fs-sm); flex:1; }
.svc-card .link-arrow{ align-self:flex-start; }

/* ---------- SPECIALTY (Alimentación, sección oscura) ------ */
.specialty{ padding-block:var(--section-y); background:var(--raf-navy); position:relative; overflow:hidden; }
.specialty::before{ content:""; position:absolute; top:-30%; right:-10%; width:640px; height:640px; border-radius:50%; background:radial-gradient(circle, rgba(30,80,162,.42), transparent 62%); pointer-events:none; }
.specialty__grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.checklist{ display:grid; grid-template-columns:1fr 1fr; gap:14px 28px; margin-top:32px; }
.checklist li{ display:flex; align-items:flex-start; gap:12px; color:var(--on-dark); font-size:var(--fs-sm); font-weight:500; }
.checklist svg{ flex:none; margin-top:2px; color:var(--raf-orange); }
.specialty__media{ position:relative; min-height:420px; }
.specialty__photo-a{ position:absolute; width:72%; aspect-ratio:4/3.2; top:0; left:0; z-index:2; }
.specialty__photo-b{ position:absolute; width:58%; aspect-ratio:4/3; right:0; bottom:0; box-shadow:var(--shadow-lg); }

/* ---------- PROCESS --------------------------------------- */
.process{ padding-block:var(--section-y); background:var(--bg); }
.process__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:step; }
.step{ padding:30px 26px 32px; border-radius:var(--r-lg); background:var(--bg-2); position:relative; box-shadow:inset 0 0 0 1px var(--line); }
.step__n{ font-size:2.4rem; font-weight:800; color:var(--raf-blue-050); letter-spacing:-.02em; line-height:1; -webkit-text-stroke:1.4px var(--raf-blue); color:transparent; }
.step__title{ font-size:var(--fs-h4); margin:18px 0 10px; }
.step__text{ color:var(--ink-2); font-size:var(--fs-sm); }
.step::after{ content:""; position:absolute; top:44px; right:-13px; width:26px; height:2px; background:var(--line-2); }
.process__grid .step:last-child::after{ display:none; }

/* ---------- OPERATIONS: photographic gallery -------------- */
.operations{ padding-block:var(--section-y); background:var(--bg-2); }
.operations__head{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px 40px; margin-bottom:var(--section-head-gap); }
.operations__head .section-title{ max-width:26ch; }
.operations__intro{ max-width:66ch; margin-top:16px; color:var(--ink-2); font-size:var(--fs-body); line-height:var(--lh-body); text-wrap:pretty; }
.operations__action{ margin:0; white-space:nowrap; }
.operations__gallery{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:28px 24px; }
.operation-photo{ min-width:0; grid-column:span 2; }
.operation-photo__media{ overflow:hidden; border-radius:var(--r); background:var(--bg-3); aspect-ratio:4/3; }
.operation-photo__media img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.operation-photo__caption{ display:flex; align-items:baseline; gap:12px; padding:16px 2px 0; }
.operation-photo__title{ color:var(--ink); font-size:var(--fs-sm); font-weight:600; line-height:1.45; }
.operation-photo__index{ margin-left:auto; color:var(--muted); font-size:var(--fs-xs); font-variant-numeric:tabular-nums; }
.operation-photo--featured{ grid-column:span 3; position:relative; overflow:hidden; border-radius:var(--r-lg); }
.operation-photo--featured .operation-photo__media{ aspect-ratio:3/2; border-radius:0; }
.operation-photo--featured .operation-photo__caption{ position:absolute; inset:auto 0 0; display:block; padding:68px 28px 26px; background:linear-gradient(transparent,rgba(6,25,47,.88)); }
.operation-photo__label{ display:block; color:var(--on-dark); font-size:var(--fs-xs); margin-bottom:8px; }
.operation-photo--featured .operation-photo__title{ color:var(--white); font-size:clamp(1.25rem,1.8vw,1.6rem); letter-spacing:var(--tr-tight); }
.operations__experience{ margin-top:36px; padding-top:32px; border-top:1px solid var(--line-2); }
.operations__experience-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:24px; }
.operations__experience-head h3{ font-size:var(--fs-h4); }
.operations__experience-head p{ font-size:var(--fs-sm); color:var(--muted); }
.operations__locations{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.operations__locations dt{ font-size:var(--fs-sm); font-weight:600; color:var(--raf-navy); line-height:1.4; }
.operations__locations dd{ margin:6px 0 0; font-size:var(--fs-xs); color:var(--muted); }
@media (max-width:920px){
  .operations__head{ grid-template-columns:1fr; gap:12px; }
  .operations__action{ justify-self:start; }
  .operations__gallery{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; }
  .operation-photo, .operation-photo--featured{ grid-column:auto; }
  .operation-photo--featured .operation-photo__media{ aspect-ratio:4/3; }
  .operation-photo--featured .operation-photo__caption{ padding:60px 20px 22px; }
  .operations__experience-head{ display:block; }
  .operations__experience-head p{ margin-top:10px; }
  .operations__locations{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:540px){
  .operations__gallery{ grid-template-columns:1fr; gap:26px; }
  .operation-photo--featured .operation-photo__media{ aspect-ratio:4/3; }
  .operation-photo__caption{ padding-top:12px; }
  .operations__experience{ margin-top:36px; padding-top:28px; }
  .operations__locations{ gap:22px 18px; }
}

/* ---------- CLIENTS --------------------------------------- */
.clients{ padding-block:var(--section-y); background:var(--bg); }
.clients__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.clients__item{
  display:grid; place-items:center; padding:20px 16px; border-radius:var(--r); aspect-ratio:3/2;
  background:var(--bg); box-shadow:inset 0 0 0 1px var(--line);
  transition:transform var(--motion-fast) var(--ease-standard);
}
.clients__item img{
  max-height:60px; max-width:100%; width:auto; object-fit:contain;
  opacity:1;
}

/* ---------- QUALITY --------------------------------------- */
.quality{ padding-block:var(--section-y); background:var(--bg-2); }
.quality__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.q-card{ padding:30px 26px; border-radius:var(--r-lg); background:var(--bg); box-shadow:inset 0 0 0 1px var(--line);  }
.q-card__icon{ display:inline-grid; place-items:center; width:52px; height:52px; border-radius:var(--r); background:var(--raf-navy); color:#fff; margin-bottom:20px; }
.q-card__title{ font-size:var(--fs-h4); margin-bottom:10px; }
.q-card__text{ color:var(--ink-2); font-size:var(--fs-sm); }

/* ---------- CTA BAND -------------------------------------- */
.cta-band{ background:var(--raf-navy); position:relative; overflow:hidden; }
.cta-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(1200px 500px at 80% -20%, rgba(30,80,162,.5), transparent 60%); pointer-events:none; }
.cta-band__inner{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:40px; padding-block:clamp(40px,5vw,64px); flex-wrap:wrap; }
.cta-band__title{ color:#fff; font-size:var(--fs-h2); max-width:16ch; margin:6px 0 16px; }
.cta-band__lead{ color:var(--on-dark-2); font-size:var(--fs-lg); max-width:52ch; }
.cta-band__actions{ display:flex; flex-wrap:wrap; gap:14px; }

/* ---------- CONTACT (canales directos) -------------------- */
.contact{ padding-block:var(--section-y); background:var(--bg); }
.contact__grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.contact__aside .lead{ margin-top:6px; }
.contact__place{ margin-top:28px; display:flex; align-items:center; gap:14px; color:var(--ink-2); font-size:var(--fs-sm); }
.contact__ic{ flex:none; display:grid; place-items:center; width:42px; height:42px; border-radius:var(--r-sm); background:var(--bg-2); color:var(--raf-blue); box-shadow:inset 0 0 0 1px var(--line); }

.contact__channels{ display:flex; flex-direction:column; gap:16px; }
.channel{
  display:flex; align-items:center; gap:18px; padding:20px 22px;
  background:var(--bg); border-radius:var(--r-lg); box-shadow:inset 0 0 0 1px var(--line);
  transition:transform var(--motion-fast) var(--ease-standard);
}
.channel__ic{ flex:none; display:grid; place-items:center; width:56px; height:56px; border-radius:var(--r); background:var(--raf-blue-050); color:var(--raf-blue); }
.channel__body{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.channel__label{ font-size:var(--fs-xs); font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }
.channel__value{ font-size:var(--fs-h4); font-weight:700; color:var(--ink); letter-spacing:-.01em; overflow-wrap:anywhere; }
.channel__hint{ font-size:var(--fs-sm); color:var(--muted); }
.channel__arrow{ flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:var(--r-pill); background:var(--bg-2); color:var(--raf-navy); transition:transform var(--motion-fast) var(--ease-emphasized); }
/* WhatsApp destacado */
.channel--wa{ background:var(--raf-navy); box-shadow:none; }
.channel--wa .channel__label{ color:rgba(255,255,255,.6); }
.channel--wa .channel__value{ color:#fff; }
.channel--wa .channel__hint{ color:var(--on-dark-2); }
.channel--wa .channel__ic{ background:#25D366; color:#0B2A55; }
.channel--wa .channel__arrow{ background:rgba(255,255,255,.12); color:#fff; }

/* ---------- FOOTER ---------------------------------------- */
.site-footer{ background:var(--raf-navy); color:var(--on-dark-2); padding-top:clamp(40px,5vw,64px); }
.site-footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px; }
.site-footer__brand img{ height:40px; width:auto; margin-bottom:20px; }
.site-footer__desc{ font-size:var(--fs-sm); max-width:34ch; }
.site-footer__badge{ margin-top:18px; font-size:var(--fs-xs); font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--raf-orange); }
.site-footer__title{ color:#fff; font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.14em; margin-bottom:18px; }
.site-footer__col ul{ display:flex; flex-direction:column; gap:11px; }
.site-footer__col a, .site-footer__contact li{ font-size:var(--fs-sm); color:var(--on-dark-2);  }
@media (hover:hover) and (pointer:fine){ .site-footer__col a:hover{ color:#fff; } }
.site-footer__contact{ display:flex; flex-direction:column; gap:11px; }
.site-footer__bottom{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-block:24px; border-top:1px solid var(--on-dark-line); font-size:var(--fs-xs); }
.site-footer__credit span{ color:#fff; font-weight:600; }

/* ---------- REVEAL (IntersectionObserver) ----------------- */
/* Progressive enhancement: solo se ocultan con JS activo. */
.js .reveal{ opacity:0; transform:translateY(var(--reveal-distance)); transition:opacity var(--motion-reveal) var(--ease-standard), transform var(--motion-reveal) var(--ease-standard); transition-delay:calc(var(--d,0)*var(--motion-stagger)); }
.js .reveal.is-in{ opacity:1; transform:none; }
[data-delay="1"]{ --d:1; } [data-delay="2"]{ --d:2; } [data-delay="3"]{ --d:3; }


/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .capacity__grid{ grid-template-columns:1fr 1fr; }
  .metric--hero{ grid-column:1 / -1; }
  .services__grid{ grid-template-columns:repeat(2,1fr); }
  .process__grid{ grid-template-columns:repeat(2,1fr); }
  .step::after{ display:none; }
  .quality__grid{ grid-template-columns:repeat(2,1fr); }
  .clients__grid{ grid-template-columns:repeat(5,1fr); }
}

@media (max-width:920px){
  .hero{ padding-top:0; }
  .svc-feature{ grid-template-columns:1fr; }
  .svc-feature__media{ min-height:0; aspect-ratio:16/9; }
}

@media (max-width:860px){
  .hero__photo-note{ display:none; }
}

@media (max-width:1080px){
  .nav, .site-header__actions .btn{ display:none; }
  .nav-toggle{ display:flex; }
  .about__grid, .specialty__grid, .contact__grid{ grid-template-columns:1fr; }
  .specialty__media{ min-height:0; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .specialty__photo-a, .specialty__photo-b{ position:static; width:100%; aspect-ratio:4/3; }
  .about__badge{ right:12px; }
  .cta-band__inner{ flex-direction:column; align-items:flex-start; }
  .clients__grid{ grid-template-columns:repeat(4,1fr); }
}

@media (max-width:640px){
  :root{ --gutter:20px; }
  .capacity__grid{ grid-template-columns:1fr; }
  .services__grid{ grid-template-columns:1fr; }
  .process__grid, .quality__grid{ grid-template-columns:1fr; }
  .clients__grid{ grid-template-columns:repeat(3,1fr); }
  .checklist{ grid-template-columns:1fr; }
  .hero{ min-height:auto; padding-bottom:0; }
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .hero__actions .btn{ justify-content:center; }
  .channel{ gap:14px; padding:18px; }
  .channel__ic{ width:48px; height:48px; }
  .site-footer__grid{ grid-template-columns:1fr 1fr; gap:28px; }
  .site-footer__brand{ grid-column:1 / -1; }
}

@media (max-width:400px){
  .clients__grid{ grid-template-columns:repeat(2,1fr); }
  .site-footer__grid{ grid-template-columns:1fr; }
  .channel__value{ font-size:var(--fs-body); }
}

/* ---------- LANDING RHYTHM / RESPONSIVE REFINEMENT -------- */
.capacity{ padding-block:48px; }
.capacity__head{ max-width:none; margin-bottom:32px; display:flex; align-items:baseline; gap:32px; }
.capacity__head .eyebrow{ margin:0; flex:none; }
.capacity__head .section-title{ font-size:1.3rem; font-weight:500; line-height:1.4; max-width:36ch; }
.capacity__grid{ grid-template-columns:1.25fr 1fr 1fr 1.1fr; gap:0; border-top:1px solid var(--line); }
.metric, .metric--hero{ background:transparent; box-shadow:none; border-radius:0; padding:26px 28px 0; border-right:1px solid var(--line); }
.metric:first-child{ padding-left:0; }
.metric:last-child{ border-right:0; }
.metric::before{ display:none; }
.metric__value, .metric--hero .metric__value{ margin:0; color:var(--raf-navy); font-size:clamp(2rem,3vw,3rem); }
.metric__value--text{ font-size:clamp(1.6rem,2.5vw,2.4rem); }
.metric--hero .metric__pre{ color:var(--raf-blue); }
.metric__label, .metric--hero .metric__label{ color:var(--muted); max-width:22ch; }
.metric--hero{ grid-column:auto; }
.about .frame--tall{ aspect-ratio:1; }
.about__text .lead{ font-size:var(--fs-body); line-height:1.7; margin-top:16px; }
.about__text p{ max-width:65ch; }
.section-title{ text-wrap:balance; }
.section-head--center .section-title{ margin-inline:auto; }
.services__grid{ gap:0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.svc-card{ border-radius:0; box-shadow:none; border-right:1px solid var(--line); }
.svc-card:last-child{ border-right:0; }
.svc-card__icon{ background:transparent; width:32px; height:32px; border-radius:0; margin-bottom:18px; }
.svc-card__icon--accent{ color:var(--raf-blue); }
.svc-card__body{ padding:30px 24px; }
.process__grid{ gap:0; }
.step{ border-radius:0; box-shadow:none; background:transparent; border-top:1px solid var(--line-2); padding:28px 28px 0 0; }
.step__n{ font-size:1rem; color:var(--raf-blue); -webkit-text-stroke:0; }
.step::after{ width:7px; height:7px; border-radius:50%; background:var(--raf-orange); top:-4px; right:auto; left:0; }
.process__grid .step:last-child::after{ display:block; }
.step__title{ margin-top:20px; }
.quality__grid{ gap:0; }
.q-card{ background:transparent; border-radius:0; box-shadow:none; border-top:1px solid var(--line-2); padding:28px 28px 0 0; }
.q-card__icon{ border-radius:0; width:28px; height:28px; background:transparent; color:var(--raf-blue); }
@media (hover:hover) and (pointer:fine){
  .svc-card:hover{ transform:none; box-shadow:none; background:var(--bg-2); }
}
@media (max-width:1080px){
  .about .frame--tall{ aspect-ratio:4/3; max-height:420px; }
  .hero__content{ max-width:600px; }
  .hero__scrim{ background:linear-gradient(90deg,rgba(6,25,47,.97),rgba(6,25,47,.86) 50%,rgba(6,25,47,.5)); }
  .hero__photo-note{ display:none; }
  .hero__chip{ padding-inline:14px; gap:8px; }
  .hero__chip-index{ display:none; }
  .svc-card:nth-child(2){ border-right:0; }
  .svc-card:nth-child(-n+2){ border-bottom:1px solid var(--line); }
  .process__grid, .quality__grid{ gap:32px 24px; }
  .step::after{ display:block; }
}
@media (max-width:760px){
  :root{ --header-height:76px; }
  .brand__logo{ height:42px; }
  .hero{ min-height:auto; }
  .hero__inner{ padding-block:56px 48px; }
  .hero__content{ max-width:560px; }
  .hero__scrim{ background:linear-gradient(90deg,rgba(6,25,47,.96),rgba(6,25,47,.74)),linear-gradient(0deg,rgba(6,25,47,.6),transparent); }
  .hero__media img{ object-position:60% center; }
  .hero__title{ font-size:clamp(2.75rem,7.2vw,3.6rem); }
  .hero__chips-inner{ grid-template-columns:repeat(3,1fr); }
  .hero__chip{ border:0; min-height:60px; font-size:13px; padding:14px 10px; }
  .hero__chip:first-child{ border:0; }
  .hero__chip:nth-child(n+4){ border-top:1px solid var(--on-dark-line); }
  .capacity__head{ display:block; }
  .capacity__head .eyebrow{ margin-bottom:14px; }
  .capacity__grid{ grid-template-columns:1fr 1fr; gap:26px 0; }
  .metric{ padding:22px 18px 0; }
  .metric:nth-child(odd){ padding-left:0; }
  .metric:nth-child(even){ border-right:0; }
}
@media (min-width:761px) and (max-height:800px){
  .hero__inner{ padding-block:44px; }
  .hero__photo-note{ bottom:30px; }
}
@media (max-width:640px){
  .hero__eyebrow{ font-size:10px; gap:8px; letter-spacing:.1em; margin-bottom:24px; }
  .hero__eyebrow::before{ width:18px; }
  .hero__title{ font-size:clamp(2.65rem,10.7vw,3.65rem); margin-bottom:22px; }
  .hero__lead{ font-size:1rem; line-height:1.65; }
  .hero__actions{ margin-top:26px; gap:10px; }
  .hero__actions .btn{ padding-block:14px; }
  .hero__assurance{ font-size:11px; gap:8px; margin-top:24px; }
  .hero__chips-inner{ grid-template-columns:repeat(2,1fr); }
  .hero__chip:nth-child(n+3){ border-top:1px solid var(--on-dark-line); }
  .hero__chip:last-child{ grid-column:1 / -1; }
  .hero__chip-index{ display:inline; }
  .capacity{ padding-block:40px 48px; }
  .capacity__grid{ grid-template-columns:1fr 1fr; }
  .metric__value{ font-size:2.2rem; }
  .metric__value--text{ font-size:1.6rem; }
  .metric__label{ font-size:12px; }
  .svc-card{ border-right:0; border-bottom:1px solid var(--line); }
  .svc-card:last-child{ border-bottom:0; }
  .svc-card__body{ padding:28px; }
  .about .frame--tall{ aspect-ratio:4/3; }
  .channel__arrow{ width:28px; height:28px; }
}
/* Without JS, the compact navigation wraps instead of disappearing. */
@media (max-width:1080px){
  html:not(.js) .site-header{ position:relative; }
  html:not(.js) .site-header__inner{ height:auto; min-height:var(--header-height); flex-wrap:wrap; padding-block:16px; }
  html:not(.js) .nav{ display:block; width:100%; order:3; }
  html:not(.js) .nav__list{ flex-wrap:wrap; }
  html:not(.js) main{ padding-top:0; }
  html:not(.js) .nav-toggle{ display:none; }
}

/* ---------- SECTION MOTION / INTERACTION POLICY ---------- */
.js.is-loading .hero [data-hero]{ opacity:0; }
.js .reveal[data-reveal="photo"]{ transform:translateY(var(--reveal-distance)) scale(.98); }
.js .reveal[data-reveal="photo"].is-in{ transform:none; }
/* Keep revealed links on interaction timing, not the 600ms entrance timing. */
.js .reveal.is-settled{ transition:none; transition-delay:0s; }
.js .channel.reveal.is-settled{ transition:transform var(--motion-fast) var(--ease-standard); }
.reveal:focus-within{ opacity:1; transform:none; transition:none; }
.specialty__text .lead{ margin-top:16px; line-height:1.6; }
.contact__aside .lead{ margin-top:16px; line-height:1.6; }
.specialty :focus-visible, .cta-band :focus-visible, .site-footer :focus-visible, .channel--wa:focus-visible{ outline-color:var(--raf-orange); }
.link-arrow{ min-height:44px; }
.svc-card .link-arrow{ margin-top:14px; }
.site-footer__col a{ display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
.site-footer__col ul, .site-footer__contact{ gap:4px; }
.site-footer__grid > *{ min-width:0; }
@media (hover:hover) and (pointer:fine){
  .channel:hover, .js .channel.reveal.is-settled:hover{ transform:translateY(-2px); }
  .channel:hover .channel__arrow{ transform:translateX(2px); }
  .site-loader__skip:hover{ color:var(--raf-blue); }
}
/* No moving business logos or non-interactive cards on hover. */
@media (max-width:640px){
  .js .reveal{ transition-delay:0s; }
  .cta-band__actions{ width:100%; flex-direction:column; }
  .cta-band__actions .btn{ justify-content:center; }
  .specialty__media{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .site-loader{ transition:opacity var(--motion-fast) ease, visibility 0s var(--motion-fast); }
  .is-loading .site-loader__track span{ animation:none; width:100%; opacity:.65; }
  .js .hero [data-hero], .js.is-loaded .hero [data-hero]{ animation:none; opacity:1; transform:none; }
  .js .reveal, .js .reveal[data-reveal="photo"]{ opacity:1; transform:none; transition:none; }
  .btn, .btn__ico, .btn__ico svg, .frame img, .svc-feature__media img, .link-arrow svg,
  .hero__chip-arrow, .nav-toggle__bar, .nav__link::after, .channel, .channel__arrow{ transition:none; }
  .btn:hover, .btn:active, .btn:hover .btn__ico svg, .svc-feature:hover .svc-feature__media img,
  .link-arrow:hover svg, .hero__chip:hover .hero__chip-arrow, .channel:hover, .js .channel.reveal.is-settled:hover, .channel:hover .channel__arrow{ transform:none; }
}
/* Keyboard actions are immediate; hover feedback belongs to pointer interaction. */
.using-keyboard{ scroll-behavior:auto; }
.using-keyboard .mobile-menu, .using-keyboard .nav-toggle__bar, .using-keyboard .nav__link::after,
.using-keyboard .btn, .using-keyboard .link-arrow svg{ transition:none; }
.using-keyboard .btn:active{ transform:none; }
.using-keyboard .reveal{ transition:none; }
.intro-skip .hero [data-hero], .using-keyboard .hero [data-hero]{ animation:none; }
@media print{
  .site-loader, .site-header, .mobile-menu{ display:none; }
  main{ padding-top:0; }
  .js .reveal, .js .hero [data-hero]{ opacity:1; transform:none; animation:none; }
}
