/* Albert Sans variable (300-500), autoalojada: sin salto de fuente al cargar y sin dependencia de Google Fonts */
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:300 500;font-display:swap;src:url(../fonts/albert-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:300 500;font-display:swap;src:url(../fonts/albert-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* ─────────────────────────────────────────────────────────────
   RASM · Risk and Safety Aviation Management
   One family (Albert Sans) across its weight range. Uppercase for the display
   and the small labels, with tracking scaled to size. Light weights for the
   big statements, medium for what has to be read fast.
   Motion: transform / opacity / filter only. Springs where the pointer touches.
   ───────────────────────────────────────────────────────────── */
:root{
  --ink:#061420; --ink-2:#0A2130; --ink-3:#10303F;
  --paper:#F4F3EF; --paper-2:#FBFAF7;
  --sand:#3D8EE0; --sand-2:#9DC6F0; --sand-deep:#1C5FB0; /* accent family derived from the logo blue (#3890DF / #0048A9) */
  --steel:#9FB0BC; --steel-2:#4F6272; --steel-3:#3C4F5E;
  --line-d:rgba(159,176,188,.16); --line-l:rgba(6,20,32,.12);

  --font:'Albert Sans','Helvetica Neue',Helvetica,Arial,sans-serif;

  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);
  --ease:cubic-bezier(.25,.1,.25,1);
  --t-hover:160ms; --t-press:100ms; --t-reveal:520ms;

  --gutter:clamp(20px,4.5vw,80px);
  --max:1440px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-wrap:pretty;overflow-x:clip}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance}
img,svg{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--sand);outline-offset:4px;border-radius:2px}
::selection{background:var(--sand-deep);color:#fff}

/* ── Type roles ── */
.display{font-size:clamp(38px,4.6vw,68px);line-height:1.04;letter-spacing:.035em;font-weight:300;text-transform:uppercase}
.h2{font-size:clamp(32px,3.6vw,56px);line-height:1.1;letter-spacing:-.012em;font-weight:300}
.h2 em{font-style:normal;font-weight:500;color:var(--sand-2)}
.on-light .h2 em{color:var(--sand-deep)}
.h3{font-size:clamp(19px,1.45vw,23px);line-height:1.25;letter-spacing:-.004em;font-weight:500}
.lead{font-size:clamp(17px,1.25vw,20px);line-height:1.55;font-weight:300}
.body{font-size:16px;line-height:1.65;font-weight:400}
.lbl{font-size:11px;line-height:1;letter-spacing:.18em;text-transform:uppercase;font-weight:500;font-variant-numeric:tabular-nums}
.num{font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.muted{color:var(--steel)}
.on-light .muted{color:var(--steel-2)}

.eyebrow{display:flex;align-items:center;gap:14px;color:var(--sand);margin-bottom:28px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.85}
.on-light .eyebrow{color:var(--sand-deep)}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(84px,9vw,148px)}
.on-light{background:var(--paper);color:var(--ink)}
.on-light.alt{background:var(--paper-2)}

/* ── Buttons ── */
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;height:54px;padding:0 26px;border-radius:2px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;white-space:nowrap;transition:transform var(--t-press) var(--ease-out),background var(--t-hover) var(--ease),color var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease);will-change:transform}
.btn:active{transform:scale(.97)}
.btn .ar{display:inline-block;font-weight:400;transition:transform var(--t-hover) var(--ease-out)}
.btn-primary{background:var(--sand-deep);color:#fff}
.btn-ghost{border:1px solid rgba(244,243,239,.55);color:var(--paper)}
.btn-line{border:1px solid var(--ink);color:var(--ink)}
.btn-sm{height:44px;padding:0 20px;font-size:11px}
@media (hover:hover) and (pointer:fine){
  .btn:hover .ar{transform:translateX(4px)}
  .btn-primary:hover{background:var(--sand-2)}
  .btn-ghost:hover{background:rgba(61,142,224,.1);border-color:var(--sand)}
  .btn-line:hover{background:var(--ink);color:var(--paper)}
}

/* ── Reveal — visible at rest; pre-state only applied by JS below the fold ── */
.rv{transition:opacity 320ms var(--ease-out),transform 520ms var(--ease-out)}
.rv.pre{opacity:0;transform:translateY(10px)}
.rv-photo{transition:clip-path 760ms var(--ease-out)}
.rv-photo.pre{clip-path:inset(0 0 100% 0)}
.swap{transition:opacity 180ms var(--ease),filter 180ms var(--ease),transform 180ms var(--ease-out)}
.swap.x{opacity:.3;filter:blur(4px);transform:translateY(4px)}

/* ── Language crossfade ── */
main,.hdr{transition:transform 320ms var(--ease-out),filter 320ms var(--ease-out),opacity 200ms var(--ease)}
body.lang-swap main{filter:blur(6px);opacity:.55}

/* ── Load bar: a thin line while the first paint settles ── */
.loadbar{position:fixed;top:env(safe-area-inset-top,0px);left:0;height:2px;width:100%;background:var(--sand);z-index:100;transform:scaleX(0);transform-origin:left;transition:transform 600ms var(--ease-out),opacity 400ms var(--ease);pointer-events:none}
.loadbar.go{transform:scaleX(.78)}.loadbar.done{transform:scaleX(1);opacity:0}

/* ───────────── HEADER · translucent material, adapts to the section beneath ───────────── */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;padding-top:env(safe-area-inset-top,0px);color:var(--paper)}
.hdr-bar{display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,3vw,40px);min-height:80px;padding:12px var(--gutter);position:relative}
.hdr-mat{position:absolute;inset:0;opacity:0;background:rgba(6,20,32,.6);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);transition:opacity 320ms var(--ease-out),background 420ms var(--ease);pointer-events:none}
.hdr-mat::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(244,243,239,.22),transparent)}
.hdr-mat::after{content:"";position:absolute;left:0;right:0;top:100%;height:28px;background:linear-gradient(180deg,rgba(6,20,32,.5),transparent);pointer-events:none;transition:opacity 420ms var(--ease)}
.hdr.is-scrolled .hdr-mat{opacity:1}
.hdr[data-tone="light"]{color:var(--ink)}
.hdr[data-tone="light"] .hdr-mat{background:rgba(244,243,239,.72)}
.hdr[data-tone="light"] .hdr-mat::before{background:linear-gradient(90deg,transparent,rgba(6,20,32,.14),transparent)}
.hdr[data-tone="light"] .hdr-mat::after{opacity:.25}
.brand{display:flex;align-items:center;gap:22px;position:relative;transition:color 420ms var(--ease)}
.brand .logo{display:block;height:58px;width:auto;transition:opacity 420ms var(--ease)}
.brand .logo-ink{display:none}
.hdr[data-tone="light"] .brand .logo-white{display:none}
.hdr[data-tone="light"] .brand .logo-ink{display:block}
@media (max-width:760px){.brand .logo{height:46px}}
.brand-name{display:flex;flex-direction:column;gap:4px;font-size:12px;letter-spacing:.26em;line-height:1;font-weight:500;text-transform:uppercase;white-space:nowrap}
.nav{display:flex;gap:clamp(14px,2.2vw,36px);position:relative}
.nav a{position:relative;padding:10px 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;opacity:.8;transition:opacity var(--t-hover) var(--ease),color 420ms var(--ease)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--sand);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--ease-out)}
.hdr[data-tone="light"] .nav a::after{background:var(--sand-deep)}
.nav a.is-active,.nav a:hover{opacity:1}
.nav a.is-active::after,.nav a:hover::after{transform:scaleX(1)}
.hdr-right{display:flex;align-items:center;gap:16px;position:relative}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:1px solid currentColor;border-radius:999px;opacity:.9;transition:transform var(--t-press) var(--ease-out),background var(--t-hover) var(--ease),opacity var(--t-hover) var(--ease)}
.icon-btn:active{transform:scale(.94)}
.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover) and (pointer:fine){.icon-btn:hover{background:rgba(61,142,224,.16);opacity:1}}
.lang{display:flex;gap:2px;padding:3px;border:1px solid currentColor;border-radius:999px;opacity:.9}
.lang button{font-size:11px;letter-spacing:.1em;font-weight:500;padding:6px 10px;border-radius:999px;opacity:.55;transition:opacity var(--t-hover) var(--ease),background var(--t-hover) var(--ease)}
.lang button[aria-pressed="true"]{background:rgba(61,142,224,.22);opacity:1}
@media (hover:hover) and (pointer:fine){.lang button:hover{opacity:1}}
.hdr[data-tone="light"] .btn-ghost{border-color:rgba(6,20,32,.5);color:var(--ink)}
.burger{display:none}
.burger span{display:block;width:18px;height:1.5px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}
.hdr.compact .nav{display:none}
.hdr.compact .burger{display:grid}
.hdr-cta .cta-s,.hdr-aula .cta-s{display:none}
@media (max-width:1439px){
  .hdr-bar{gap:20px}
  .hdr-right{gap:12px}
  .hdr-cta .cta-l,.hdr-aula .cta-l{display:none}
  .hdr-cta .cta-s,.hdr-aula .cta-s{display:inline}
}
@media (max-width:1199px){
  .nav{display:none}
  .burger{display:grid}
}
@media (min-width:0px){
  .mnav{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:calc(24px + env(safe-area-inset-top,0px)) var(--gutter) max(32px,env(safe-area-inset-bottom,0px));background:rgba(6,20,32,.94);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);color:var(--paper);overflow:auto;opacity:0;transition:opacity 240ms var(--ease-out)}
  .mnav:not([open]){display:none}
  .mnav[open]{display:grid;grid-template-rows:auto 1fr auto;gap:24px}
  .mnav.open{opacity:1}
  .mnav::backdrop{background:rgba(6,20,32,.36)}
  .mnav-head{display:flex;align-items:center;justify-content:space-between;gap:20px}
  .mnav-title{font-size:13px;line-height:1.2;font-weight:500;color:var(--steel)}
  .mnav-close span{position:relative;width:18px;height:18px;display:block}
  .mnav-close span::before,.mnav-close span::after{content:"";position:absolute;left:1px;top:8px;width:16px;height:1.5px;background:currentColor}
  .mnav-close span::before{transform:rotate(45deg)}.mnav-close span::after{transform:rotate(-45deg)}
  .mnav-links{display:grid;align-content:center}
  .mnav-links a{font-size:clamp(26px,6.5vw,38px);letter-spacing:.06em;text-transform:uppercase;font-weight:300;padding:12px 0;border-bottom:1px solid var(--line-d);transform:translateY(10px);opacity:0;transition:transform 360ms var(--ease-out),opacity 360ms var(--ease-out)}
  .mnav.open .mnav-links a{transform:none;opacity:1}
  .mnav-links a:nth-child(2){transition-delay:40ms}.mnav-links a:nth-child(3){transition-delay:80ms}.mnav-links a:nth-child(4){transition-delay:120ms}.mnav-links a:nth-child(5){transition-delay:160ms}
  .mnav-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:4px}
  .mnav-lang{display:flex;flex:none}
  .mnav-cta{font-size:11px}
  body.menu-open{overflow:hidden}
}
@media (max-width:560px){.mnav-actions{align-items:stretch;flex-direction:column}.mnav-lang{align-self:flex-start}.mnav-cta{justify-content:center;width:100%}}
@media (max-width:760px){.hdr-cta,.hdr-aula,.hdr-right>.lang{display:none}}
.hdr-aula{gap:10px}
.hdr-aula svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.mnav .mnav-aula{color:var(--sand-2);font-weight:400}

/* ───────────── HERO ───────────── */
.hero{position:relative;min-height:clamp(560px,100svh,920px);display:grid;grid-template-rows:1fr;overflow:hidden;background:var(--ink);isolation:isolate}
.hero-art{position:absolute;inset:-8% 0;z-index:0;will-change:transform}
.hero-photo{position:absolute;inset:0;z-index:0;background:url(../img/hero-poster.jpg) center/cover no-repeat;filter:saturate(.92) contrast(1.04);opacity:0;transform:scale(1.06);transition:transform 1800ms var(--ease-out),opacity 900ms var(--ease)}
.hero-photo.ready{opacity:1;transform:scale(1)}
.hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.92) contrast(1.04);opacity:0;transition:opacity 1400ms var(--ease)}
.hero-video.on{opacity:1}
.hero-tech{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;clip-path:inset(0 0 0 46%);contain:strict;opacity:0;transition:opacity 520ms var(--ease-out);filter:saturate(.9)}
.hero-tech.is-ready{opacity:.62}
.hero-grain{position:absolute;inset:0;z-index:2;opacity:.12;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.hero-vig{position:absolute;inset:0;z-index:2;background:
  linear-gradient(90deg,rgba(6,20,32,.86) 0%,rgba(6,20,32,.62) 30%,rgba(6,20,32,.18) 58%,rgba(6,20,32,.58) 100%),
  linear-gradient(180deg,rgba(6,20,32,.5) 0%,rgba(6,20,32,0) 28%,rgba(6,20,32,0) 60%,rgba(6,20,32,.94) 100%)}
.hero-body{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,80px);align-items:center;padding:calc(112px + env(safe-area-inset-top,0px)) var(--gutter) 72px}
.hero-copy{max-width:820px;will-change:transform,opacity}
.hero-copy .eyebrow{margin-bottom:24px}
.hero-copy .display{margin-bottom:22px}
.hero-copy .display > span{display:block}
.hero-copy .display .l2{color:var(--sand-2)}
@media (min-width:640px){.hero-copy .display .l2{white-space:nowrap}}
.hero-copy .lead{max-width:600px;color:rgba(244,243,239,.88);margin-bottom:20px}
.hero-tagline{display:flex;align-items:center;gap:14px;color:var(--sand-2);margin-bottom:30px;letter-spacing:.2em;line-height:1.7}
.hero-tagline::before{content:"";width:28px;height:1px;background:var(--sand);opacity:.8}
.intro{clip-path:inset(0 0 0 0);transition:clip-path 900ms var(--ease-out),transform 900ms var(--ease-out),opacity 700ms var(--ease-out),filter 900ms var(--ease-out)}
.intro.from{clip-path:inset(0 0 100% 0);transform:translateY(22px);opacity:0;filter:blur(6px)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:32px}
.hero-rail{align-self:start;margin-top:8px;display:grid;grid-template-columns:auto 1fr;column-gap:22px;min-width:260px;max-width:300px}
.hero-rail .n{color:var(--sand);padding-top:2px;font-size:12px;letter-spacing:.14em;font-weight:400;font-variant-numeric:tabular-nums}
.hero-rail .bar{grid-row:1/span 3;grid-column:1;width:1px;background:linear-gradient(180deg,var(--sand),rgba(159,176,188,.25))}
.hero-rail .t{padding-bottom:30px}
.hero-rail .t:last-child{padding-bottom:0}
.hero-rail .t b{display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;margin-bottom:6px;color:var(--paper)}
.hero-rail .t span{font-size:14px;font-weight:400;color:rgba(244,243,239,.88)}
@media (max-width:980px){.hero-body{grid-template-columns:1fr}.hero-rail{display:none}.hero-mark{display:none}}
@media (max-width:980px),(prefers-reduced-motion:reduce),(prefers-reduced-transparency:reduce){.hero-tech{display:none}}

/* ───────────── STATS ───────────── */
.stats{background:var(--ink-2);border-block:1px solid var(--line-d)}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1px;background:var(--line-d)}
.stat{display:flex;gap:22px;align-items:flex-start;padding:40px 30px;background:var(--ink-2);transition:background var(--t-hover) var(--ease)}
@media (hover:hover) and (pointer:fine){.stat:hover{background:var(--ink-3)}}
.stat svg{width:30px;height:30px;flex:none;stroke:var(--steel);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;margin-top:8px}
.stat .v{font-size:clamp(36px,3vw,50px);line-height:1;color:var(--paper)}
.stat .v em{font-style:normal;color:var(--sand)}
.stat .k{margin-top:12px;color:var(--steel);line-height:1.5}

/* ───────────── PURPOSE ───────────── */
.purpose-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px clamp(40px,6vw,96px);align-items:start}
@media (max-width:900px){.purpose-grid{grid-template-columns:1fr}}
.purpose .h2{max-width:18ch}
.purpose-copy{max-width:65ch}
.purpose-copy .lead{color:var(--ink);margin-bottom:20px;font-weight:400}
.purpose-copy .body{color:var(--ink);margin-bottom:36px}

/* ───────────── AUTHORITY · verified frameworks, never decorative statistics ───────────── */
.authority{background:var(--paper);border-block:1px solid var(--line-l)}
.authority-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px clamp(40px,6vw,96px);padding-block:clamp(48px,5vw,72px);align-items:start}
.authority-title{max-width:16ch;font-size:clamp(28px,2.5vw,40px);line-height:1.12;letter-spacing:-.01em;font-weight:300}
.authority-body>.body{max-width:65ch;margin-bottom:28px;color:var(--ink)}
.authority-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,48px);margin:0;border-top:1px solid var(--line-l)}
.authority-list>div{padding:16px 0 18px;border-bottom:1px solid var(--line-l)}
.authority-list dt{margin-bottom:6px;font-size:15px;line-height:1.35;font-weight:500}
.authority-list dd{margin:0;color:var(--steel-2);font-size:14px;line-height:1.5;font-weight:400;text-align:left}
@media (max-width:900px){.authority-grid{grid-template-columns:1fr}.authority-title{max-width:18ch}}
@media (max-width:560px){.authority-list{grid-template-columns:1fr}}

/* ───────────── TEAM · three landscape portraits with room to breathe ───────────── */
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.2vw,48px)}
.member-photo{position:relative;aspect-ratio:3/2;border-radius:6px;overflow:hidden;margin-bottom:22px;display:grid;place-items:center;color:var(--steel);background:linear-gradient(160deg,#10303F 0%,#0A2130 55%,#061420 100%)}
.member-photo img{width:100%;height:100%;object-fit:cover;display:block}
.member-name{font-size:clamp(20px,1.6vw,24px);font-weight:500;letter-spacing:-.006em;margin-bottom:8px}
.member-role{color:var(--sand-deep);margin-bottom:14px;line-height:1.5}
.member-bio{font-size:15px;line-height:1.6;font-weight:400;color:var(--steel-3);max-width:40ch}
@media (max-width:900px){.team-grid{grid-template-columns:1fr;gap:40px}.member-bio{max-width:none}}

/* ───────────── SERVICES · six capabilities ───────────── */
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:22px clamp(40px,6vw,96px);align-items:start;margin-bottom:56px}
.sec-head .h2{max-width:16ch}
.ins .sec-head{align-items:end}
.sec-head p{max-width:65ch;justify-self:start;color:var(--steel);font-weight:400}
.on-light .sec-head p{color:var(--ink)}
.sec-head .sec-copy{justify-self:start;max-width:65ch;display:grid;gap:14px}
.sec-head .sec-copy p{justify-self:auto;color:var(--ink);font-weight:400}
/* Interior pages drop the section title (it already sits in the page band): the copy then runs in two text columns across the full width. */
.sec-head > .sec-copy:first-child{grid-column:1/-1;max-width:none;display:block;columns:2;column-gap:clamp(40px,6vw,96px);orphans:2;widows:2}
.sec-head > .sec-copy:first-child p{margin:0 0 14px}
@media (max-width:900px){.sec-head{grid-template-columns:1fr}.sec-head .h2{max-width:none}.ins .sec-head{align-items:start}.sec-head > .sec-copy:first-child{columns:1}}
p strong,li strong{font-weight:500;color:var(--paper)}
.on-light p strong,.on-light li strong{color:var(--ink)}
.svcs{background:var(--paper)}
/* Servicios: nueve paneles fotográficos en una franja. El activo se abre; los demás quedan como láminas estrechas con su nombre.
   Fotografía real (Pexels, licencia comercial) a todo contraste; el degradado a tinta existe solo para que el texto se lea. */
.panels{display:flex;gap:6px;height:clamp(520px,58vh,640px);list-style:none;margin:0;padding:0}
.panels li{flex:1 1 0;min-width:0;clip-path:inset(0);transition:flex-grow 640ms var(--ease-out),clip-path 760ms var(--ease-out);transition-delay:0ms,var(--d,0ms)}
.panels li.on{flex-grow:6}
.panels.pre li{clip-path:inset(0 0 100% 0)}
.pn{position:relative;display:block;height:100%;overflow:hidden;border-radius:2px;background:var(--ink-2);color:#fff;transition:transform var(--t-press) var(--ease-out)}
.pn:active{transform:scale(.995)}
.pn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1100ms var(--ease-out)}
.on .pn img{transform:scale(1)}
.pn::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,32,.12) 0%,rgba(6,20,32,.22) 40%,rgba(6,20,32,.88) 100%);pointer-events:none;transition:opacity 420ms var(--ease)}
.pn::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,20,32,.06) 0%,rgba(6,20,32,0) 30%,rgba(6,20,32,.18) 55%,rgba(6,20,32,.82) 100%);pointer-events:none;opacity:0;transition:opacity 420ms var(--ease)}
.on .pn::after{opacity:0}
.on .pn::before{opacity:1}
.pn-toggle{position:absolute;inset:0;z-index:2;width:100%;height:100%;color:#fff;text-align:left}
.pn-toggle:focus-visible{outline:2px solid var(--sand-2);outline-offset:-4px;border-radius:2px}
.pn-spine{position:absolute;z-index:2;left:0;right:0;bottom:22px;display:flex;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);font-size:14px;font-weight:500;letter-spacing:.02em;white-space:nowrap;color:#fff;transition:opacity 260ms var(--ease)}
.on .pn-spine{opacity:0}
.pn-chevron{position:absolute;top:20px;left:50%;width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateX(-50%) rotate(45deg);opacity:.78;transition:opacity 220ms var(--ease),transform 320ms var(--ease-out)}
.on .pn-chevron{opacity:0;transform:translateX(-50%) rotate(45deg) translateY(5px)}
.pn-body{position:absolute;z-index:3;left:clamp(20px,2.4vw,34px);right:clamp(20px,2.4vw,34px);bottom:clamp(22px,2.6vw,34px);display:grid;gap:8px;max-width:38ch;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity 360ms var(--ease-out),transform 520ms var(--ease-out)}
.on .pn-body{opacity:1;pointer-events:auto;transform:none;transition-delay:140ms}
.pn-name{font-size:clamp(26px,2.6vw,36px);line-height:1.08;letter-spacing:-.012em;font-weight:400;color:#fff}
.pn-line{font-size:15px;line-height:1.5;font-weight:400;color:rgba(255,255,255,.92)}
.pn-ref{font-size:13px;line-height:1.4;color:rgba(255,255,255,.72);font-variant-numeric:tabular-nums;margin-top:2px}
.pn-cta{display:inline-flex;align-items:center;justify-self:start;gap:10px;margin-top:10px;height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.55);border-radius:2px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:#fff;transition:background var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease)}
.pn-cta .ar{font-weight:400;transition:transform var(--t-hover) var(--ease-out)}
.pn:hover .pn-cta{background:rgba(255,255,255,.12);border-color:#fff}
.pn:hover .pn-cta .ar{transform:translateX(4px)}
@media (max-width:900px){
  .panels{flex-direction:column;height:auto;gap:6px}
  .panels li{flex:0 0 auto;height:88px;transition:clip-path 760ms var(--ease-out)}
  .panels li.on{height:360px}
  .pn-spine{writing-mode:horizontal-tb;transform:none;justify-content:flex-start;left:18px;right:18px;bottom:auto;top:50%;margin-top:-10px;font-size:17px}
  .pn-chevron{top:50%;left:auto;right:22px;transform:translateY(-50%) rotate(45deg)}
  .on .pn-chevron{transform:translateY(calc(-50% + 5px)) rotate(45deg)}
  .pn::after{background:linear-gradient(90deg,rgba(6,20,32,.78) 0%,rgba(6,20,32,.3) 55%,rgba(6,20,32,.05) 100%)}
  .pn-body{left:18px;right:18px;bottom:18px}
  .pn-name{font-size:28px}
}
@media (prefers-reduced-motion:reduce){.panels li,.pn img,.pn-body,.pn-spine,.pn-chevron,.pn,.pn-cta,.pn-cta .ar{transition:none}.panels.pre li{clip-path:inset(0)}}
.tp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.tp-block{padding-top:28px;border-top:1px solid var(--line-l);margin-bottom:28px}
.tp-block .lbl{color:var(--ink);margin-bottom:16px;font-size:15px;letter-spacing:0;text-transform:none;font-weight:500;line-height:1.3}
.tp-block ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.tp-block li{position:relative;padding-left:24px;font-size:16px;line-height:1.6;font-weight:400;color:var(--ink)}
.tp-block li::before{content:"";position:absolute;left:4px;top:.66em;width:6px;height:6px;border-radius:50%;background:var(--sand-deep)}
.tp-block li strong{font-weight:500;color:var(--ink)}
.tp-block ul.sub{gap:6px;margin-top:8px}
.tp-block ul.sub li{font-size:15px;padding-left:20px}
.tp-block ul.sub li::before{left:6px;width:5px;height:5px;background:var(--steel-3)}
.tp-block p{font-size:15px;line-height:1.6;font-weight:400;color:var(--ink)}
.tp-two{display:grid;grid-template-columns:1.3fr 1fr;gap:36px}
.tp-two .fw{color:var(--sand-deep);font-weight:500;font-size:15px;line-height:1.7}
.tp-copy .btn{margin-top:8px}
.tp-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn .wa{width:16px;height:16px;flex:none}
.contact-wa{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line-l);font-size:14px;color:var(--ink)}
.tp-vis{position:relative;border-radius:2px;overflow:hidden;background:var(--ink-2);border:1px solid var(--line-d);box-shadow:0 24px 48px -32px rgba(6,20,32,.5);isolation:isolate}
.sp-photo{margin:0 0 20px;aspect-ratio:3/2;border-radius:2px;overflow:hidden;background:var(--ink-2)}
.sp-photo img{width:100%;height:100%;object-fit:cover;display:block}
.tp-vis-in{position:relative;z-index:2;padding:clamp(20px,2.6vw,36px) clamp(18px,2.4vw,32px) 0}
.tp-vis-in svg{width:100%;height:auto;overflow:visible}
.tp-vis .t{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;fill:var(--paper)}
.tp-vis .t.s{fill:var(--steel);font-weight:400;letter-spacing:.02em;text-transform:none;font-size:12px}
.tp-vis .t.k{fill:var(--sand);letter-spacing:.2em}
.tp-vis .t.big{font-size:26px;letter-spacing:.08em;font-weight:300}
.tp-vis .t.plain{text-transform:none;letter-spacing:0;font-size:15px;font-weight:400}
.tp-vis .ln{fill:none;stroke:rgba(159,176,188,.55);stroke-width:1.5;stroke-linecap:round}
.tp-vis .ln.sand{stroke:var(--sand)}
.tp-vis .bx{fill:rgba(6,20,32,.6);stroke:rgba(159,176,188,.38);stroke-width:1}
.tp-vis .bx.sand{stroke:var(--sand);fill:rgba(61,142,224,.1)}
.tp-vis .bar{fill:var(--sand);opacity:.92;transition:opacity var(--t-hover) var(--ease)}
.tp-vis .bar.rec{fill:var(--steel);filter:none}
@media (hover:hover) and (pointer:fine){.tp-vis .bar:hover{opacity:1}}
.tp-vis .arc{fill:none;stroke-width:26;stroke-linecap:butt}
.tp-vis .arc.a1{stroke:rgba(61,142,224,.96)}.tp-vis .arc.a2{stroke:rgba(61,142,224,.74)}.tp-vis .arc.a3{stroke:rgba(61,142,224,.54)}.tp-vis .arc.a4{stroke:rgba(61,142,224,.36)}
.tp-vis .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1100ms var(--ease-out) forwards}
.tp-vis .draw.d2{animation-delay:140ms}.tp-vis .draw.d3{animation-delay:280ms}.tp-vis .draw.d4{animation-delay:420ms}
@keyframes draw{to{stroke-dashoffset:0}}
.tp-vis .dot{display:none}
.tp-cap{position:relative;z-index:2;margin:18px clamp(18px,2.4vw,32px) 0;padding:16px 0 clamp(18px,2.4vw,28px);border-top:1px solid rgba(159,176,188,.22);color:rgba(244,243,239,.8);line-height:1.6;letter-spacing:0;text-transform:none;font-size:14px;font-weight:400}
@media (max-width:1100px){.tp{grid-template-columns:1fr}}
@media (max-width:560px){.tp-two{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.tp-vis .draw{animation:none;stroke-dashoffset:0}}
@media (max-width:640px){.tp-vis-in{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;mask-image:linear-gradient(90deg,#000 86%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 86%,transparent)}.tp-vis-in::-webkit-scrollbar{display:none}.tp-vis-in svg{min-width:560px}}

/* ───────────── INDUSTRIES · one photograph, eight sectors ───────────── */
/* Same technique as the cierre, mirrored (client's choice, 21-sep): the photograph fills the section, the paper veil comes in from the right and the copy sits on it. */
.indu{position:relative;overflow:hidden;background:#F4F3EF}
.indu-photo{position:absolute;inset:0;background:url(../img/apron.jpg) 50% 62%/cover no-repeat;filter:saturate(.9);will-change:transform}
.indu-veil{position:absolute;inset:0;background:linear-gradient(270deg,#F4F3EF 0%,#F4F3EF 33%,rgba(244,243,239,.78) 47%,rgba(244,243,239,.12) 66%,rgba(244,243,239,0) 100%),linear-gradient(180deg,#F4F3EF 0%,rgba(244,243,239,.55) 7%,transparent 19%,transparent 76%,rgba(244,243,239,.6) 91%,#F4F3EF 100%)}
@media (prefers-reduced-transparency:reduce){.indu-veil{background:linear-gradient(270deg,#F4F3EF 0%,#F4F3EF 52%,rgba(244,243,239,0) 66%)}}
@media (prefers-reduced-transparency:reduce) and (max-width:760px){.indu-veil{background:linear-gradient(0deg,#F4F3EF 0%,#F4F3EF 66%,rgba(244,243,239,0) 78%)}}
.indu .wrap{position:relative;z-index:1}
.indu.section{padding-block:clamp(64px,6.5vw,96px)}
.indu-body{max-width:640px;margin-left:auto}
.indu-body .h2{max-width:none;margin-bottom:20px}
.indu-body .body{color:var(--ink);margin-bottom:16px}
.indu-body .body:last-of-type{margin-bottom:30px}
.indu-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,48px);border-top:1px solid var(--line-l)}
.indu-list li{display:flex;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-l);font-size:18px;font-weight:400;color:var(--ink)}
.indu-list li .n{color:var(--sand-deep);font-weight:400}
.indu-list li.rv{--t-reveal:760ms}
@media (max-width:760px){.indu-photo{background-position:50% 30%}.indu-veil{background:linear-gradient(0deg,#F4F3EF 0%,#F4F3EF 58%,rgba(244,243,239,.7) 70%,rgba(244,243,239,0) 90%),linear-gradient(180deg,#F4F3EF 0%,transparent 14%)}.indu .wrap{padding-top:200px}.indu-body{max-width:none}}
@media (max-width:560px){.indu-list{grid-template-columns:1fr}}

/* ───────────── INSIGHTS ───────────── */
.ins .sec-head a{justify-self:start}
.ins-list{border-top:1px solid var(--line-l)}
.art{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:clamp(20px,4vw,64px);align-items:start;padding:34px 0;border-bottom:1px solid var(--line-l);color:var(--ink);position:relative;transition:transform var(--t-press) var(--ease-out)}
.art::before{content:"";position:absolute;inset:0 calc(var(--gutter) * -.5);background:rgba(6,20,32,.035);opacity:0;border-radius:6px;transition:opacity var(--t-hover) var(--ease);pointer-events:none}
.art .meta{display:flex;flex-direction:column;gap:6px;color:var(--steel-2);font-size:13px;letter-spacing:0;text-transform:none;line-height:1.3}
.art .meta b{color:var(--sand-deep);font-weight:500}
.art .meta span{font-weight:400;letter-spacing:0}
.art .h3{font-size:clamp(20px,1.8vw,28px);font-weight:500;margin-bottom:10px;max-width:32ch;transition:color var(--t-hover) var(--ease)}
.art p{color:var(--ink);max-width:60ch;font-size:15px;font-weight:400}
.art .go{display:inline-flex;align-items:center;gap:12px;color:var(--ink);padding-top:6px;white-space:nowrap}
.art .go .ar{font-weight:300;transition:transform var(--t-hover) var(--ease-out)}
.ins-note{font-size:15px;line-height:1.5;font-weight:400;color:var(--steel-2);justify-self:start;align-self:end}
@media (hover:hover) and (pointer:fine){.art:hover::before{opacity:1}.art:hover .go .ar{transform:translateX(4px)}.art:hover .h3{color:var(--sand-deep)}}
@media (max-width:760px){.art{grid-template-columns:1fr;gap:12px}.art .meta{flex-direction:row;gap:18px}}

/* ───────────── FAQ ───────────── */
.faq{background:var(--paper)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:start}
.faq-side{position:sticky;top:110px}
.faq-side .h2{margin-bottom:22px}
.faq-side p{color:var(--steel-3);font-weight:400;max-width:40ch;margin-bottom:28px}
.faq-list{border-top:1px solid var(--line-l)}
.fq{border-bottom:1px solid var(--line-l)}
.fq-q{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:18px;align-items:center;padding:22px 0;text-align:left;transition:color var(--t-hover) var(--ease)}
.fq-q .q{font-size:clamp(17px,1.3vw,20px);line-height:1.35;font-weight:400}
.fq-q .pm{width:36px;height:36px;border-radius:50%;border:1px solid rgba(6,20,32,.28);display:grid;place-items:center;justify-self:end;transition:background var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease),transform 320ms var(--ease-out)}
.fq-q .pm::before,.fq-q .pm::after{content:"";position:absolute;width:12px;height:1.5px;background:currentColor;transition:transform 320ms var(--ease-out)}
.fq-q .pm::after{transform:rotate(90deg)}
.fq-q .pm{position:relative}
.fq.open .fq-q .pm{background:var(--sand-deep);border-color:var(--sand-deep);color:var(--paper);transform:rotate(45deg)}
@media (hover:hover) and (pointer:fine){.fq-q:hover .q{color:var(--sand-deep)}.fq-q:hover .pm{border-color:var(--sand-deep)}}
.fq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows 380ms var(--ease-out)}
.fq.open .fq-a{grid-template-rows:1fr}
.fq-a > div{overflow:hidden}
.fq-a p{padding:0 44px 26px 0;font-size:16px;line-height:1.7;font-weight:400;color:var(--ink);max-width:64ch;opacity:0;transform:translateY(-6px);transition:opacity 260ms var(--ease),transform 320ms var(--ease-out)}
.fq.open .fq-a p{opacity:1;transform:none;transition-delay:80ms}
@media (max-width:980px){.faq-grid{grid-template-columns:1fr}.faq-side{position:static}}
@media (max-width:560px){.fq-q{grid-template-columns:32px 1fr 36px;gap:12px}.fq-a p{padding:0 0 22px 44px}}

/* ───────────── CTA ───────────── */
.cta{position:relative;overflow:hidden;background:#F4F3EF}
/* Cierre: fotografía real de un ala sobre un mar de nubes (Pexels 2527670) que se funde en papel donde va el texto */
.cta-photo{position:absolute;inset:0;background:url(../img/cta-wing.jpg) 50% 62%/cover no-repeat;filter:saturate(.95);will-change:transform}
.cta-alt .cta-photo{background-image:url(../img/cta-dock.jpg);background-position:78% 56%}
.cta-veil{position:absolute;inset:0;background:linear-gradient(90deg,#F4F3EF 0%,#F4F3EF 33%,rgba(244,243,239,.78) 47%,rgba(244,243,239,.12) 66%,rgba(244,243,239,0) 100%),linear-gradient(180deg,#F4F3EF 0%,rgba(244,243,239,.55) 6%,transparent 17%,transparent 80%,rgba(244,243,239,.18))}
/* Reducir transparencia: la foto se queda; el velo pasa a papel sólido bajo el texto y un corte corto hacia la foto. */
@media (prefers-reduced-transparency:reduce){.cta-veil{background:linear-gradient(90deg,#F4F3EF 0%,#F4F3EF 52%,rgba(244,243,239,0) 66%)}}
@media (prefers-reduced-transparency:reduce) and (max-width:760px){.cta-veil{background:linear-gradient(180deg,#F4F3EF 0%,#F4F3EF 64%,rgba(244,243,239,0) 76%)}}
.cta-body{position:relative;z-index:1;text-align:left;padding:clamp(80px,9vw,120px) var(--gutter);max-width:var(--max);margin-inline:auto;width:100%}
.cta-body > *{max-width:600px}
.cta-body .eyebrow{justify-content:flex-start}
.cta-body .h2{margin-bottom:22px}
.cta-body .lead{color:var(--ink);margin-bottom:36px;font-weight:400}
.cta-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:16px}
@media (max-width:760px){.cta-photo{background-position:74% 60%}.cta-veil{background:linear-gradient(180deg,#F4F3EF 0%,#F4F3EF 44%,rgba(244,243,239,.7) 58%,rgba(244,243,239,0) 80%)}.cta-body{padding-bottom:200px}}
@media (max-width:560px){.cta-actions{display:grid}.cta-actions .btn{width:100%;justify-content:center}}
.cform{position:relative;margin:44px auto 0;max-width:820px;text-align:left;padding:clamp(20px,3vw,32px);border-radius:6px;background:rgba(6,20,32,.58);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(244,243,239,.14);box-shadow:0 40px 80px -40px rgba(0,0,0,.8);display:grid;gap:16px}
.cform::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;border-radius:6px 6px 0 0;background:linear-gradient(90deg,transparent,rgba(244,243,239,.3),transparent)}
.cform .f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform label{display:flex;flex-direction:column;gap:8px;font-size:13px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--paper)}
.cform input,.cform select,.cform textarea{font:inherit;font-size:15px;font-weight:300;letter-spacing:0;text-transform:none;color:var(--paper);background:rgba(244,243,239,.06);border:1px solid rgba(244,243,239,.16);border-radius:2px;padding:12px 14px;outline:0;width:100%;transition:border-color var(--t-hover) var(--ease),background var(--t-hover) var(--ease)}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--sand);background:rgba(244,243,239,.09)}
.cform.touched input:invalid,.cform.touched select:invalid,.cform.touched textarea:invalid{border-color:rgba(180,80,60,.75)}
.cform select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239FB0BC' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.cform select option{color:var(--ink);background:var(--paper)}
.cform textarea{resize:vertical;min-height:110px}
.cform .chk-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 18px}
.cform .chk{flex-direction:row;align-items:flex-start;gap:12px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:300;color:rgba(244,243,239,.82);line-height:1.5;cursor:pointer}
.cform .chk input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--sand)}
.link-inline{color:var(--sand);font-size:14px;text-decoration:underline;text-underline-offset:3px;padding-top:1px;transition:color var(--t-hover) var(--ease)}
.link-inline:hover{color:var(--sand-2)}
.cform .f-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding-top:4px}
.cform .f-note{font-size:13px;color:var(--steel);font-weight:300}
.cform .f-err{color:#F3B3A3;font-size:14px}
.cform .f-msg{display:block;font-size:13px;line-height:1.4;font-weight:400;color:#F3B3A3;margin-top:-2px}
.cform [aria-invalid="true"]{border-color:rgba(180,80,60,.75)}
.cform .f-ok{padding:14px 16px;border-radius:6px;background:rgba(62,125,99,.18);border:1px solid rgba(62,125,99,.45);color:#BFE6D2;font-size:14px;line-height:1.5}
@media (max-width:640px){.cform .f2{grid-template-columns:1fr}}

/* ───────────── FOOTER ───────────── */
.ftr{position:relative;overflow:hidden;background:var(--paper);color:var(--ink);border-top:1px solid var(--line-l);padding:80px 0 40px}
/* A bright photograph (wing over a sea of clouds) shows through on the right; the columns sit on solid ivory */
.ftr-photo{position:absolute;inset:0;background:url(../img/footer-clouds.jpg) 100% 50%/cover no-repeat;filter:saturate(.9)}
.ftr-veil{position:absolute;inset:0;background:linear-gradient(100deg,#F4F3EF 0%,#F4F3EF 46%,rgba(244,243,239,.86) 64%,rgba(244,243,239,.3) 100%),linear-gradient(180deg,rgba(244,243,239,.6),transparent 40%)}
.ftr-in{position:relative;z-index:1}
.ftr-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;align-items:end;padding-bottom:36px;margin-bottom:56px;border-bottom:1px solid var(--line-l)}
.ftr-logo{display:block;height:72px;width:auto;margin-bottom:16px}
.ftr-soc{display:flex;gap:22px;justify-self:end;color:var(--steel-2)}
.ftr-soc a{display:inline-flex;align-items:center;gap:10px;transition:color var(--t-hover) var(--ease)}
.ftr-ic{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(6,20,32,.2);border-radius:999px;color:var(--ink);transition:border-color var(--t-hover) var(--ease),background var(--t-hover) var(--ease),transform var(--t-press) var(--ease-out)}
.ftr-ic svg{width:17px;height:17px;fill:currentColor;display:block}
.ftr-ic svg.ln{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ftr-soc a:hover{color:var(--ink)}
.ftr-soc a:hover .ftr-ic{border-color:var(--ink);background:rgba(6,20,32,.05)}
.ftr-soc a:active .ftr-ic{transform:scale(.96)}
.ftr-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:36px;margin-bottom:56px}
.ftr-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
@media (max-width:760px){.ftr-cols{grid-template-columns:1fr}.ftr-links{gap:8px 16px}}
.ftr-col{display:flex;flex-direction:column;gap:12px;font-size:14px;font-weight:400;color:var(--steel-3)}
.ftr-col .lbl{color:var(--ink);margin-bottom:8px;font-size:14px;letter-spacing:0;text-transform:none;line-height:1.3}
.ftr-top .lbl,.ftr-soc{font-size:13px;letter-spacing:0;text-transform:none;line-height:1.4}
.ftr-col a,.ftr-col button{text-align:left;transition:color var(--t-hover) var(--ease)}
.ftr-col a:hover,.ftr-col button:hover{color:var(--sand-deep)}
.ftr-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:28px;border-top:1px solid var(--line-l);color:var(--steel-2)}
.ftr-bot{font-size:13px;letter-spacing:0;text-transform:none;line-height:1.5;font-weight:400}
.ftr-bot div{display:flex;gap:26px;flex-wrap:wrap}
.ftr-bot button,.ftr-bot a{transition:color var(--t-hover) var(--ease)}
.ftr-bot button:hover,.ftr-bot a:hover{color:var(--ink)}
@media (max-width:760px){.ftr-photo{background-position:70% 100%}.ftr-veil{background:linear-gradient(180deg,#F4F3EF 0%,#F4F3EF 60%,rgba(244,243,239,.75) 80%,rgba(244,243,239,.3) 100%)}}
@media (max-width:760px){.ftr-soc{justify-self:start;gap:10px}.ftr-soc a,.ftr-col a,.ftr-bot a,.ftr-bot button{display:flex;align-items:center;min-height:44px;padding-inline:6px}.ftr-col{gap:0}.ftr-bot div{gap:10px}}
@media (prefers-reduced-transparency:reduce){.ftr-photo,.ftr-veil{display:none}}

/* ───────────── FLOATING: back to top, privacy notice ───────────── */
.totop{position:fixed;right:clamp(16px,3vw,32px);bottom:calc(clamp(16px,3vw,32px) + env(safe-area-inset-bottom,0px));z-index:58;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(6,20,32,.6);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(61,142,224,.4);color:var(--sand-2);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity 220ms var(--ease),transform 320ms var(--ease-out),background var(--t-hover) var(--ease)}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop:active{transform:scale(.94)}
.totop svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover) and (pointer:fine){.totop:hover{background:rgba(61,142,224,.18)}}
.notice{position:fixed;left:clamp(16px,3vw,32px);bottom:calc(clamp(16px,3vw,32px) + env(safe-area-inset-bottom,0px));z-index:58;max-width:min(420px,calc(100vw - 32px));padding:18px 20px;border-radius:6px;background:rgba(6,20,32,.72);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(244,243,239,.14);box-shadow:0 30px 60px -30px rgba(0,0,0,.8);transform:translateY(16px);opacity:0;pointer-events:none;transition:opacity 160ms var(--ease),transform 220ms var(--ease-out)}
.notice::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(244,243,239,.3),transparent)}
.notice.show{opacity:1;transform:none;pointer-events:auto;transition:opacity 260ms var(--ease),transform 380ms var(--ease-out)}
.notice p{font-size:14px;line-height:1.55;font-weight:300;color:rgba(244,243,239,.88);margin-bottom:14px}
.notice .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.notice .link{font-size:13px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--sand);padding:0 6px;transition:color var(--t-hover) var(--ease)}
.notice .link:hover{color:var(--sand-2)}
@media (max-width:760px){.notice{right:clamp(16px,3vw,32px);max-width:none;bottom:calc(76px + env(safe-area-inset-bottom,0px));padding:12px 14px}.notice p{font-size:12px;line-height:1.45;margin-bottom:10px}.notice .btn-sm{height:36px;padding:0 14px}}

/* ───────────── DIALOGS: video · search · policy ───────────── */
dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;color:var(--paper)}
dialog::backdrop{background:rgba(6,20,32,.78);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}
dialog[open]{display:grid;place-items:center;padding:clamp(16px,4vw,64px)}
.dlg-close{position:fixed;top:calc(24px + env(safe-area-inset-top,0px));right:32px;display:flex;align-items:center;gap:12px;color:var(--paper);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;transition:color var(--t-hover) var(--ease)}
.dlg-close:hover{color:var(--sand-2)}
.dlg-close b{font-size:22px;line-height:1;font-weight:300}
@starting-style{dialog[open] .doc,dialog[open] .srch{transform:scale(.97);opacity:0;filter:blur(8px)}}
body.modal-open main,body.modal-open .hdr{transform:scale(.985);filter:blur(2px)}
/* policy document */
.doc{width:min(860px,100%);max-height:calc(100dvh - clamp(32px,8vw,128px));overflow:auto;border-radius:6px;background:var(--paper);color:var(--ink);border:1px solid rgba(6,20,32,.1);box-shadow:0 60px 120px -40px rgba(0,0,0,.8);padding:clamp(28px,4vw,56px);transition:transform 300ms var(--ease-out),opacity 300ms var(--ease-out),filter 300ms var(--ease-out);overscroll-behavior:contain}
.doc .eyebrow{margin-bottom:18px}
.doc h2{font-size:clamp(26px,3vw,40px);font-weight:300;letter-spacing:-.012em;line-height:1.1;margin-bottom:8px}
.doc .meta{font-size:13px;color:var(--steel-2);margin-bottom:32px}
.doc h3{font-size:18px;font-weight:500;margin:28px 0 10px;letter-spacing:-.005em}
.doc p,.doc li{font-size:15px;line-height:1.7;font-weight:300;color:var(--steel-3)}
.doc ul{padding-left:20px;margin:0 0 8px}
.doc li{margin-bottom:6px}
.doc .ph{background:rgba(61,142,224,.28);padding:0 4px;border-radius:2px;color:var(--ink)}
.doc .docclose{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding-top:24px;margin-top:24px;background:linear-gradient(180deg,transparent,var(--paper) 40%)}
/* search */
.srch{width:min(720px,100%);align-self:start;margin-top:clamp(24px,10vh,120px);border-radius:6px;background:rgba(10,33,48,.86);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid rgba(244,243,239,.14);box-shadow:0 60px 120px -40px rgba(0,0,0,.9);overflow:hidden;transition:transform 200ms var(--ease-out),opacity 200ms var(--ease-out),filter 200ms var(--ease-out)}
.srch::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(244,243,239,.35),transparent)}
.srch-in{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line-d)}
.srch-in svg{width:20px;height:20px;stroke:var(--steel);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;justify-self:center}
.srch-in input{width:100%;background:none;border:0;outline:0;color:var(--paper);font:inherit;font-size:18px;font-weight:300;padding:12px 0}
.srch-in input::placeholder{color:var(--steel-2)}
.srch-in kbd{font:inherit;font-size:11px;letter-spacing:.1em;color:var(--steel);border:1px solid var(--line-d);border-radius:6px;padding:4px 7px}
.srch-res{max-height:min(56vh,520px);overflow:auto;overscroll-behavior:contain}
.srch-res .empty{padding:28px 20px;color:var(--steel);font-weight:300;font-size:15px}
.sr{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;width:100%;text-align:left;padding:14px 20px;border-bottom:1px solid var(--line-d);transition:background var(--t-hover) var(--ease)}
.sr:last-child{border-bottom:0}
.sr.on,.sr:hover{background:rgba(61,142,224,.1)}
.sr .st{font-size:15px;font-weight:400;margin-bottom:4px}
.sr .st mark,.sr .ss mark{background:rgba(61,142,224,.28);color:var(--sand-2);padding:0 2px;border-radius:2px}
.sr .ss{font-size:14px;font-weight:300;color:var(--steel);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sr .sk{color:var(--sand);white-space:nowrap}
.srch-foot{display:flex;gap:18px;padding:10px 20px;border-top:1px solid var(--line-d);color:var(--steel-2);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.srch-foot kbd{font:inherit;color:var(--steel);border:1px solid var(--line-d);border-radius:2px;padding:2px 5px;margin-right:6px}

/* ───────────── PREFERENCES ───────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{transition:opacity 200ms var(--ease)}
  .rv.pre{transform:none;filter:none}
  .intro{transition:opacity 200ms var(--ease)}
  .intro.from{clip-path:none;transform:none;filter:none}
  .hero-photo{transition:opacity 300ms var(--ease);transform:none}
  .hero-video{display:none}
  .hero-art{transform:none !important}
  .play-ring::before,.scroll-hint i::after,.marq-track{animation:none}
  .ind-art,.tp-photo{transition:none}
  body.lang-swap main{filter:none;opacity:1}
  .swap.x{filter:none;transform:none}
  .fq-a{transition:none}.fq-a p{transition:none}
}
@media (prefers-reduced-transparency:reduce){
  .hdr-mat{background:rgba(6,20,32,.97);backdrop-filter:none;-webkit-backdrop-filter:none}
  .hdr[data-tone="light"] .hdr-mat{background:rgba(244,243,239,.98)}
  .mnav,.notice,.totop,.srch{background:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* Transición entre páginas: al pulsar un servicio en la portada, su nombre viaja hasta el título de su página; el resto se funde. */
@view-transition{navigation:auto}
::view-transition-group(*){animation-duration:420ms;animation-timing-function:var(--ease-out)}
::view-transition-old(root),::view-transition-new(root){animation-duration:280ms}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Superficies del navegador con la paleta, anclajes bajo el header fijo, foco visible sobre azul y tinta */
html{scroll-padding-top:96px;scrollbar-color:#9FB0BC #F4F3EF}
.fq,.section,.cta,.authority,.authority-title{scroll-margin-top:80px}
.doc,.srch{scrollbar-color:#4F6272 #0A2130}
input,textarea,select{caret-color:var(--sand-deep)}
.srch input{caret-color:var(--sand)}
.btn,.pn-toggle,.pn-cta,.fq-q,.nav a,.icon-btn,.lang button,.ftr-col a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.btn-primary:focus-visible,.lang button:focus-visible,.hdr[data-tone="dark"] .icon-btn:focus-visible{outline-color:var(--paper);box-shadow:0 0 0 2px var(--ink)}

/* ───────────── Multi-page additions ───────────── */

/* Inner-page opening: a short clip behind the title, like the home hero but lower */
.phero{position:relative;overflow:hidden;background:var(--ink);isolation:isolate;color:var(--paper);display:grid;align-items:end;min-height:clamp(440px,64svh,700px);padding:calc(150px + env(safe-area-inset-top,0px)) 0 clamp(48px,6vw,80px)}
.phero-body{position:relative;z-index:2}
.phero-title{max-width:22ch;margin-bottom:18px}
.phero-lead{max-width:60ch;color:rgba(244,243,239,.86)}
@media (max-width:760px){.phero{min-height:clamp(380px,60svh,560px)}}

/* Nosotros: mission / vision / values */
.values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,48px);margin-top:clamp(40px,5vw,64px);border-top:1px solid rgba(6,20,32,.28)}
.value{padding:18px 0 20px;border-bottom:1px solid var(--line-l)}
.value b{display:block;font-size:18px;font-weight:500;letter-spacing:-.005em;margin-bottom:6px}
.value p{font-size:15px;line-height:1.55;font-weight:400;color:var(--ink);margin:0}
.areas-wrap{justify-self:stretch;width:100%}
.areas-lbl{margin-bottom:14px;line-height:1.4;font-size:15px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--ink)}
.areas{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-l);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,48px)}
@media (max-width:760px){.areas{grid-template-columns:1fr}}
.areas li{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-l);font-size:16px;font-weight:400;color:var(--ink)}
.areas li .n{color:var(--sand-deep)}
@media (max-width:900px){.values{grid-template-columns:1fr}}

/* Service page */
.spage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.spage .sp-side{position:sticky;top:100px}
.spage-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(40px,5vw,64px);padding-top:28px;border-top:1px solid var(--line-l)}
.spage-nav a{font-size:13px;letter-spacing:0;text-transform:none;font-weight:500;padding:10px 16px;white-space:nowrap;border:1px solid rgba(6,20,32,.2);border-radius:999px;color:var(--steel-2);transition:color var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease),background var(--t-hover) var(--ease)}
.spage-nav a[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
@media (hover:hover) and (pointer:fine){.spage-nav a:not([aria-current]):hover{border-color:var(--ink);color:var(--ink)}}
@media (max-width:760px){.spage-nav{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);padding-bottom:10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.spage-nav::-webkit-scrollbar{display:none}.spage-nav a{scroll-snap-align:start}}
@media (max-width:1100px){.spage{grid-template-columns:1fr}.spage .sp-side{position:relative;top:auto}}

/* Contact page */
.cpage{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:start}
.cpage .cform{margin:0;max-width:none}
.cinfo{display:flex;flex-direction:column;gap:26px}
.cinfo-lbl{margin-bottom:4px;font-size:15px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--ink)}
.cinfo .row{display:grid;grid-template-columns:120px 1fr;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--line-d)}
.cinfo .row .k{color:var(--steel);font-size:13px;letter-spacing:0;text-transform:none;font-weight:500;line-height:1.5}
.cinfo .row .v{font-size:16px;line-height:1.5;font-weight:300}
.cinfo .row .v a{transition:color var(--t-hover) var(--ease)}
.cinfo .row .v a:hover{color:var(--sand-2)}
@media (max-width:980px){.cpage{grid-template-columns:1fr}}

/* Policy as a page */
.doc-page{max-width:820px}
.doc-page h2{font-size:18px;font-weight:500;margin:28px 0 10px;letter-spacing:-.005em}
.doc-page p,.doc-page li{font-size:15px;line-height:1.7;font-weight:400;color:var(--ink)}
.doc p,.doc-page p{margin:0 0 12px}
.doc-page ul{padding-left:20px;margin:0 0 8px}
.doc-page li{margin-bottom:6px}
.doc-page .ph{background:rgba(61,142,224,.28);padding:0 4px;border-radius:2px;color:var(--ink)}
.doc-page .meta{font-size:13px;color:var(--steel-2);margin-bottom:32px}

/* The brand lockup never shrinks; if the bar does not fit, the header collapses to the burger instead */
.brand{flex:none}

/* Running text is justified (client request), never hyphenated (also his request: split words look careless). Headings, labels, buttons and centered blocks stay as they are. */
.lead,.body,.phero-lead,.purpose-copy p,.tp-what,.tp-block p,.tp-block li,.value p,.member-bio,.doc-page p,.doc-page li,.fq-a p,.fq-a div,.art p,.mvz-t p{text-align:justify;hyphens:manual;-webkit-hyphens:manual;text-wrap:pretty}
.cta-body .lead,.notice p,.sec-head .lbl{text-align:inherit}
.cta-body .lead{text-align:justify}
@media (max-width:560px){.lead,.body,.phero-lead,.purpose-copy p,.tp-what,.tp-block p,.tp-block li,.value p,.member-bio,.doc-page p,.doc-page li,.fq-a p,.fq-a div,.art p,.mvz-t p,.cta-body .lead{text-align:left}}

/* Contact form and notice on paper: every page opens with a dark photograph and stays light after it */
.on-light .cform{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--line-l);box-shadow:0 30px 60px -44px rgba(6,20,32,.35)}
.on-light .cform::before{display:none}
.on-light .cform label{color:var(--ink)}
.on-light .cform .f-msg{color:#9A3F2C}
.on-light .cform input,.on-light .cform select,.on-light .cform textarea{color:var(--ink);font-weight:400;background-color:var(--paper-2);border-color:rgba(6,20,32,.16)}
.on-light .cform input:focus,.on-light .cform select:focus,.on-light .cform textarea:focus{border-color:var(--sand-deep);background-color:#fff}
.on-light .cform select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234F6272' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.on-light .cform .chk{color:var(--steel-3);font-weight:400}
.on-light .cform .chk input{accent-color:var(--sand-deep)}
.on-light .link-inline{color:var(--sand-deep)}
.on-light .link-inline:hover{color:var(--ink)}
.on-light .cform .f-note{color:var(--steel-2)}
.on-light .cform .f-err{color:#9A3F2C}
.on-light .cform .f-ok{background:rgba(62,125,99,.1);border-color:rgba(62,125,99,.4);color:#2F5E48}
.on-light .cinfo .row{border-bottom-color:var(--line-l)}
.on-light .cinfo .row .k{color:var(--steel-2)}
.on-light .cinfo .row .v{font-weight:400;color:var(--ink)}
.on-light .cinfo .row .v a:hover{color:var(--sand-deep)}
.notice{background:var(--paper-2);color:var(--ink);border:1px solid var(--line-l);box-shadow:0 30px 60px -30px rgba(6,20,32,.35);backdrop-filter:none;-webkit-backdrop-filter:none}
.notice::before{display:none}
.notice p{color:var(--steel-3);font-weight:400}
.notice .link{color:var(--sand-deep)}
.notice .link:hover{color:var(--ink)}

/* Inner-page clips run brighter than the home hero: a lighter vignette and a touch more exposure */
.phero .hero-video,.phero .hero-photo{filter:saturate(.96) brightness(1.1) contrast(1.02)}
.phero--aula .phero-body{width:100%}
.phero--aula .hero-photo{background-position:58% center;filter:saturate(.98) contrast(1.02)}
@media (max-width:760px){.phero--aula .hero-photo{background-position:67% center}}
/* A directional scrim sits only behind the text (left and bottom); the right side stays bright */
.phero .hero-vig{background:linear-gradient(90deg,rgba(6,20,32,.78) 0%,rgba(6,20,32,.6) 36%,rgba(6,20,32,.18) 62%,rgba(6,20,32,.08) 100%),linear-gradient(180deg,rgba(6,20,32,.42) 0%,rgba(6,20,32,0) 30%,rgba(6,20,32,0) 52%,rgba(6,20,32,.7) 100%)}
.phero .hero-grain{opacity:.08}
.phero-title{font-weight:400}
.phero-lead{color:rgba(244,243,239,.95);font-weight:400}
.phero-title,.phero-lead,.phero .eyebrow{text-shadow:0 1px 2px rgba(6,20,32,.4),0 2px 26px rgba(6,20,32,.5)}
.phero .eyebrow{color:rgba(244,243,239,.92)}
.phero .eyebrow::before{background:var(--sand);opacity:1}

/* Aula virtual (placeholder page) */
.aula-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);align-items:start}
.aula-grid .h2{max-width:16ch}
.aula-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.aula-note{margin-top:28px;color:var(--steel-3)}
@media (max-width:900px){.aula-grid{grid-template-columns:1fr}}

/* Skip link for keyboard users */
.skip{position:fixed;top:10px;left:10px;z-index:100;padding:10px 14px;background:var(--ink);color:var(--paper);border-radius:2px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;transform:translateY(-200%);transition:transform 160ms var(--ease-out)}
.skip:focus-visible{transform:none;outline-offset:2px}
main:focus{outline:none}

/* Nosotros: misión, visión y enfoque en zigzag con fotografía (opción A3 aprobada el 6-oct-2026) */
.mvz-sec{padding-block:clamp(72px,7vw,110px) 0}
.mvz{display:grid;gap:8px}
.mvz-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;min-height:clamp(460px,40vw,560px)}
.mvz-row.flip .mvz-t{order:2}
.mvz-cell{position:relative;clip-path:inset(0 round 6px);border-radius:6px}
.mvz-t{background:var(--paper-2);padding:clamp(28px,3.2vw,48px);display:flex;flex-direction:column;justify-content:center;gap:16px}
.mvz-t h3{font-size:17px;line-height:1.3;font-weight:500;letter-spacing:0;color:var(--steel-2);margin:0;transition:color 220ms var(--ease)}
.mvz-t p{font-size:clamp(22px,2.2vw,28px);line-height:1.34;letter-spacing:-.01em;font-weight:300;color:var(--ink);max-width:none;margin:0}
.mvz-p{background:transparent;transition:transform 900ms var(--ease-out)}
.mvz-ph{position:absolute;inset:0;clip-path:inset(0 round 6px);border-radius:6px}
.mvz-ph img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover}
.mvz-p.crew img{object-position:30% 45%}.mvz-p.ramp img{object-position:50% 50%}.mvz-p.tower img{object-position:50% 46%}
@media (hover:hover) and (pointer:fine){.mvz-row:hover .mvz-p{transform:scale(1.012)}.mvz-row:hover .mvz-t h3{color:var(--sand-deep)}}
/* El cierre se recorta con clip-path y no con overflow: un ancestro con overflow oculto desactiva las líneas de tiempo de scroll. */
.cta{overflow:visible;clip-path:inset(0)}
@media (max-width:760px){.cta-alt .cta-photo{background-position:70% 56%}}
/* Movimiento ligado al scroll: avanza y retrocede con el desplazamiento; sin soporte, todo se ve quieto y completo. */
@supports (animation-timeline: view()){
  .mvz-ph{animation:mvzIn linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
  @keyframes mvzIn{from{clip-path:inset(14% 4% 14% 4% round 6px);transform:scale(.94);opacity:.55}to{clip-path:inset(0 round 6px);transform:none;opacity:1}}
  .mvz-ph img{animation:mvzDrift linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
  @keyframes mvzDrift{from{transform:translateY(-5%)}to{transform:translateY(5%)}}
  .mvz-t h3,.mvz-t p,.areas li,.value{animation:mvzRise linear both;animation-timeline:view()}
  .mvz-t h3{animation-range:entry 12% entry 52%}
  .mvz-t p{animation-range:entry 22% entry 66%}
  .areas li{animation-range:entry 0% entry 38%}
  .value{animation-range:entry 0% entry 42%}
  @keyframes mvzRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  .cta-photo{animation:ctaDrift linear both;animation-timeline:view();animation-range:cover 0% cover 100%;inset:-6% 0}
  @keyframes ctaDrift{from{transform:translateY(-4%)}to{transform:translateY(4%)}}
}
@media (prefers-reduced-motion:reduce){.mvz-ph,.mvz-ph img,.mvz-t h3,.mvz-t p,.areas li,.value,.cta-photo{animation:none!important}.mvz-p{transition:none}}
@media (max-width:900px){.mvz-row,.mvz-row.flip{grid-template-columns:1fr;min-height:0}.mvz-row.flip .mvz-t{order:0}.mvz-p{aspect-ratio:16/10}.mvz-t{padding:28px 24px 32px}.mvz-t p{font-size:19px;line-height:1.45}}
