/* =========================================================
   KAPITAL BUS — Design system
   ========================================================= */

:root{
  /* Palette */
  --black:#06080B;
  --ink:#0C1116;
  --ink-2:#141A21;
  --paper:#F2F1ED;
  --paper-2:#E6E4DE;
  --accent:#C2A265;       /* latón claro — sobre fondos oscuros */
  --accent-deep:#8A6A31;  /* latón quemado — sobre fondos claros */
  --ok:#2F6B4F;
  --red:#B0122A;

  --fg:#0C1116;
  --fg-soft:rgba(12,17,22,.60);
  --fg-mute:rgba(12,17,22,.38);
  --line:rgba(12,17,22,.14);

  --on-dark:#F2F1ED;
  --on-dark-soft:rgba(242,241,237,.62);
  --on-dark-mute:rgba(242,241,237,.34);
  --line-dark:rgba(242,241,237,.16);

  /* Type */
  --display:'Archivo','Archivo Fallback',system-ui,sans-serif;
  --body:'Inter','Inter Fallback',system-ui,sans-serif;

  /* Metrics */
  --gutter:clamp(20px,4.2vw,72px);
  --max:1600px;
  --nav-h:88px;

  /* Motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --slow:1.1s;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--fg);
  font-family:var(--body);font-size:16px;line-height:1.62;
  font-weight:350;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.is-loading{overflow:hidden;}
body.menu-open{overflow:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
h1,h2,h3,h4,h5{margin:0;font-weight:300;}
p{margin:0;}
ul,ol,dl{margin:0;padding:0;list-style:none;}
address{font-style:normal;}
::selection{background:var(--accent);color:var(--ink);}

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

/* ---------- Typographic utilities ---------- */
.label{
  font-family:var(--body);font-size:11px;font-weight:500;
  letter-spacing:.26em;text-transform:uppercase;color:var(--fg-mute);
  display:flex;align-items:center;gap:14px;margin:0;
}
.label--center{justify-content:center;}
.rule{display:block;width:clamp(28px,4vw,64px);height:1px;background:currentColor;opacity:.45;}
.h2{
  font-family:var(--display);
  font-size:clamp(2.1rem,4.7vw,4.6rem);
  line-height:1.02;font-weight:300;letter-spacing:-.022em;
  text-transform:uppercase;
}
.h2--light{color:var(--on-dark);}
.sec-head{margin-bottom:clamp(48px,7vw,110px);}
.sec-head .label{margin-bottom:clamp(20px,2.6vw,34px);}
.sec-head--split{display:grid;grid-template-columns:1fr;gap:26px;}
.sec-head__lead{max-width:46ch;color:var(--fg-soft);font-size:clamp(15px,1.1vw,17px);}

/* ---------- Buttons ---------- */
.btn{
  --btn-fg:var(--paper);--btn-bg:var(--ink);
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  height:56px;padding:0 34px;border-radius:999px;overflow:hidden;
  font-family:var(--body);font-size:11.5px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
  color:var(--btn-fg);background:var(--btn-bg);
  border:1px solid transparent;isolation:isolate;
  transition:color .5s var(--ease),border-color .5s var(--ease),background-color .5s var(--ease);
  will-change:transform;
}
.btn span{position:relative;z-index:2;display:block;transition:transform .5s var(--ease);}
.btn::before{
  content:"";position:absolute;inset:0;z-index:1;background:var(--accent);
  transform:translate3d(0,101%,0);border-radius:50% 50% 0 0 / 22% 22% 0 0;
  transition:transform .62s var(--ease),border-radius .62s var(--ease);
}
.btn:hover::before{transform:translate3d(0,0,0);border-radius:0;}
.btn:hover{color:var(--ink);}
.btn--sm{height:44px;padding:0 24px;font-size:10.5px;}
.btn--lg{height:64px;padding:0 46px;}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--fg);border-color:var(--line);}
.btn--ghost:hover{border-color:transparent;}
.btn--light{--btn-fg:var(--on-dark);border-color:var(--line-dark);}
.btn--solid{--btn-bg:var(--ink);--btn-fg:var(--paper);}

.circle-btn{
  width:56px;height:56px;border-radius:50%;border:1px solid var(--line-dark);
  display:grid;place-items:center;color:var(--on-dark);
  transition:background-color .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease);
}
.circle-btn svg{width:20px;height:20px;}
.circle-btn:hover{background:var(--on-dark);color:var(--ink);border-color:transparent;}
.circle-btn[disabled]{opacity:.28;pointer-events:none;}

/* =========================================================
   PRELOADER
   ========================================================= */
.loader{
  position:fixed;inset:0;z-index:1000;background:var(--black);
  display:grid;place-items:center;
}
.loader__inner{position:relative;z-index:2;text-align:center;color:var(--on-dark);}
.loader__mark{display:flex;align-items:baseline;justify-content:center;gap:16px;overflow:hidden;}
.loader__k{
  font-family:var(--display);font-size:clamp(3rem,9vw,7rem);font-weight:300;
  line-height:1;letter-spacing:-.04em;
  animation:loaderIn 1s var(--ease) both;
}
.loader__word{
  font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--on-dark-mute);
  animation:loaderIn 1s .12s var(--ease) both;
}
@keyframes loaderIn{from{transform:translateY(115%);opacity:0}to{transform:translateY(0);opacity:1}}
.loader__bar{
  width:min(46vw,320px);height:1px;background:rgba(255,255,255,.16);
  margin:34px auto 18px;overflow:hidden;
}
.loader__bar i{display:block;height:100%;width:0%;background:var(--paper);}
.loader__count{
  font-family:var(--display);font-size:12px;letter-spacing:.2em;color:var(--on-dark-mute);
  display:flex;justify-content:center;gap:2px;
}
.loader__curtain{position:absolute;inset:0;background:var(--black);transform-origin:top;}
body.loaded .loader{pointer-events:none;}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:800;
  color:var(--on-dark);
  transition:transform .6s var(--ease),background-color .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav__inner{
  max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);
  height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:28px;
}
.nav.is-solid{
  background:rgba(6,8,11,.72);backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom-color:var(--line-dark);
}
.nav.is-light{color:var(--fg);}
.nav.is-light.is-solid{background:rgba(242,241,237,.78);border-bottom-color:var(--line);}
.nav.is-hidden{transform:translate3d(0,-102%,0);}
body.menu-open .nav{color:var(--on-dark);background:transparent;border-bottom-color:transparent;backdrop-filter:none;transform:none;}

.nav__logo{display:flex;align-items:center;gap:13px;}
.nav__emblem{width:30px;height:30px;flex:none;}
.nav__wordmark{
  font-family:var(--display);font-size:15px;font-weight:500;
  letter-spacing:.26em;text-transform:uppercase;
}
.nav__wordmark i{font-style:normal;font-weight:200;opacity:.62;}

.nav__links{display:flex;gap:clamp(18px,2.4vw,42px);}
.nav__link{
  position:relative;font-size:11.5px;font-weight:450;letter-spacing:.2em;
  text-transform:uppercase;padding:6px 0;overflow:hidden;display:block;
}
.nav__link span{display:block;transition:transform .55s var(--ease);}
.nav__link::after{
  content:attr(data-x);position:absolute;left:0;top:6px;
}
.nav__link::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .55s var(--ease);
}
.nav__link:hover::before{transform:scaleX(1);transform-origin:left;}
.nav__link:hover span{transform:translateY(-1px);}
.nav__link.is-active::before{transform:scaleX(1);}

.nav__actions{display:flex;align-items:center;gap:clamp(12px,1.6vw,24px);}
.nav__phone{
  display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.14em;
  font-variant-numeric:tabular-nums;opacity:.78;transition:opacity .4s;
}
.nav__phone:hover{opacity:1;}
.nav__phone-dot{
  width:6px;height:6px;border-radius:50%;background:#4C8F6B;flex:none;
  box-shadow:0 0 0 0 rgba(76,143,107,.6);animation:pulse 2.4s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(76,143,107,.55)}
  70%{box-shadow:0 0 0 9px rgba(76,143,107,0)}
  100%{box-shadow:0 0 0 0 rgba(76,143,107,0)}
}

.burger{
  width:44px;height:44px;display:none;place-items:center;position:relative;flex:none;
}
.burger i{
  position:absolute;left:11px;width:22px;height:1px;background:currentColor;
  transition:transform .5s var(--ease),width .5s var(--ease),opacity .3s;
}
.burger i:first-child{transform:translateY(-4px);}
.burger i:last-child{transform:translateY(4px);width:14px;}
.burger:hover i:last-child{width:22px;}
body.menu-open .burger i:first-child{transform:rotate(45deg);}
body.menu-open .burger i:last-child{transform:rotate(-45deg);width:22px;}

.nav__progress{height:1px;background:transparent;}
.nav__progress i{
  display:block;height:100%;width:0;background:var(--accent);
  transform-origin:left;
}

/* =========================================================
   FULLSCREEN MENU
   ========================================================= */
.menu{
  position:fixed;inset:0;z-index:790;color:var(--on-dark);
  pointer-events:none;visibility:hidden;
}
.menu__bg{
  position:absolute;inset:0;background:var(--black);
  transform:scaleY(0);transform-origin:top;
  transition:transform .9s var(--ease);
}
.menu.is-open{pointer-events:auto;visibility:visible;}
.menu.is-open .menu__bg{transform:scaleY(1);}
.menu__grid{
  position:relative;z-index:3;height:100%;
  max-width:var(--max);margin-inline:auto;padding:calc(var(--nav-h) + 5vh) var(--gutter) 6vh;
  display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-content:center;
}
.menu__list{display:grid;gap:clamp(2px,.6vw,10px);}
.menu__item{overflow:hidden;}
.menu__item a{
  display:flex;align-items:baseline;gap:clamp(14px,2vw,34px);
  padding:clamp(4px,.7vw,10px) 0;
  transform:translate3d(0,110%,0);opacity:0;
  transition:transform .9s var(--ease),opacity .6s;
}
.menu.is-open .menu__item a{transform:translate3d(0,0,0);opacity:1;}
.menu.is-open .menu__item:nth-child(1) a{transition-delay:.18s}
.menu.is-open .menu__item:nth-child(2) a{transition-delay:.24s}
.menu.is-open .menu__item:nth-child(3) a{transition-delay:.30s}
.menu.is-open .menu__item:nth-child(4) a{transition-delay:.36s}
.menu.is-open .menu__item:nth-child(5) a{transition-delay:.42s}
.menu__idx{font-size:11px;letter-spacing:.2em;color:var(--on-dark-mute);flex:none;}
.menu__txt{
  font-family:var(--display);font-weight:300;text-transform:uppercase;
  font-size:clamp(2.4rem,7.4vw,7rem);line-height:1;letter-spacing:-.03em;
  transition:opacity .5s var(--ease),transform .6s var(--ease);
}
.menu__list:hover .menu__txt{opacity:.32;}
.menu__item a:hover .menu__txt{opacity:1;transform:translateX(clamp(8px,1.4vw,26px));}
.menu__col--aside{
  display:grid;align-content:end;gap:clamp(20px,3vw,42px);
  opacity:0;transform:translateY(20px);
  transition:opacity .8s .5s var(--ease),transform .8s .5s var(--ease);
}
.menu.is-open .menu__col--aside{opacity:1;transform:none;}
.menu__block p{color:var(--on-dark-soft);font-size:14px;margin-top:12px;}
.menu__block .label{color:var(--on-dark-mute);}
.menu__block a{transition:color .35s;}
.menu__block a:hover{color:var(--accent);}
.menu__social{display:flex;flex-wrap:wrap;gap:18px;}
.menu__media{position:absolute;inset:0;z-index:1;overflow:hidden;}
.menu__media::after{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(90deg,rgba(6,8,11,.94) 0%,rgba(6,8,11,.68) 45%,rgba(6,8,11,.5) 100%);
}
.menu__media-item{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.08);
  transition:opacity .9s var(--ease),transform 1.4s var(--ease);
  filter:grayscale(1) contrast(1.05) brightness(.55);
}
.menu__media-item.is-active{opacity:1;transform:scale(1);}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;min-height:100svh;background:var(--black);color:var(--on-dark);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:calc(var(--nav-h) + 4vh) var(--gutter) clamp(28px,4vh,54px);
  overflow:hidden;isolation:isolate;
}
.hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden;}
.hero__img{
  position:absolute;inset:-12% 0 -12%;background-size:cover;background-position:center 55%;
  transform:scale(1.14);will-change:transform;
  animation:heroZoom 2.6s .2s var(--ease) forwards;
}
body.is-loading .hero__img{animation-play-state:paused;}
@keyframes heroZoom{to{transform:scale(1);}}
.hero__veil{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(6,8,11,.78) 0%,rgba(6,8,11,.22) 32%,rgba(6,8,11,.55) 72%,rgba(6,8,11,.92) 100%),
    radial-gradient(120% 80% at 78% 20%,rgba(194,162,101,.12),transparent 60%);
}
.hero__grain{
  position:absolute;inset:0;opacity:.06;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__content{position:relative;max-width:var(--max);width:100%;margin:auto auto 0;padding-bottom:clamp(30px,6vh,80px);}
.hero__eyebrow{
  display:flex;align-items:center;gap:16px;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--on-dark-soft);
  margin-bottom:clamp(20px,3vh,38px);
}
.hero__title{
  font-family:var(--display);font-weight:250;text-transform:uppercase;
  font-size:clamp(3rem,10.6vw,11.5rem);line-height:.9;letter-spacing:-.035em;
  margin:0 0 clamp(22px,3vh,40px);
  text-shadow:0 2px 60px rgba(6,8,11,.55);
}
.hero__title .line{display:block;overflow:hidden;}
.hero__title .line--em{
  color:var(--paper);
  padding-left:clamp(20px,8vw,180px);
}
.hero__sub{max-width:52ch;color:var(--on-dark-soft);font-size:clamp(14.5px,1.05vw,17px);}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(26px,3.4vh,42px);}
.hero__cta .btn--solid{--btn-bg:var(--paper);--btn-fg:var(--ink);}
.hero__cta .btn--ghost{--btn-fg:var(--on-dark);border-color:var(--line-dark);}

.hero__bottom{
  position:relative;max-width:var(--max);width:100%;margin-inline:auto;
  display:flex;align-items:flex-end;justify-content:space-between;gap:30px;
  padding-top:clamp(18px,2.4vh,30px);border-top:1px solid var(--line-dark);
}
.scroll-cue{
  display:flex;align-items:center;gap:12px;
  font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--on-dark-soft);
}
.scroll-cue i{position:relative;display:block;width:52px;height:1px;background:var(--line-dark);overflow:hidden;}
.scroll-cue i::after{
  content:"";position:absolute;inset:0;background:var(--paper);
  transform-origin:left;animation:cue 2.2s infinite var(--ease-io);
}
@keyframes cue{0%{transform:scaleX(0)}45%{transform:scaleX(1);transform-origin:left}55%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
.hero__facts{display:flex;gap:clamp(22px,3.6vw,64px);}
.hero__facts li{display:flex;flex-direction:column;gap:2px;}
.hero__facts b{
  font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.4rem);font-weight:300;
  line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.hero__facts span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-mute);}

/* =========================================================
   STATEMENT
   ========================================================= */
.statement{
  position:relative;padding:clamp(110px,17vw,240px) 0;background:var(--paper);
  overflow:hidden;text-align:center;
}
.statement .container{position:relative;z-index:2;}
.statement__text{
  font-family:var(--display);font-weight:300;
  font-size:clamp(1.6rem,3.5vw,3.4rem);line-height:1.16;letter-spacing:-.02em;
  max-width:22ch;margin:clamp(28px,4vw,54px) auto 0;
}
.statement__sig{
  display:flex;align-items:center;justify-content:center;gap:16px;
  margin-top:clamp(34px,5vw,64px);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-mute);
}
.sig__line{display:block;width:44px;height:1px;background:currentColor;opacity:.5;}
.statement__ghost{
  position:absolute;left:50%;bottom:-2vw;transform:translateX(-50%);
  font-family:var(--display);font-weight:700;font-size:clamp(6rem,20vw,20rem);
  letter-spacing:-.04em;color:rgba(12,17,22,.035);white-space:nowrap;
  pointer-events:none;user-select:none;z-index:1;
}

/* =========================================================
   FLEET (horizontal scroll)
   ========================================================= */
.fleet{position:relative;background:var(--ink);color:var(--on-dark);}
.fleet__sticky{
  position:sticky;top:0;height:100svh;display:flex;flex-direction:column;
  padding:calc(var(--nav-h) + 3vh) 0 clamp(24px,4vh,44px);overflow:hidden;
}
.fleet__head{display:grid;gap:14px;position:relative;}
.fleet__head .label{color:var(--on-dark-mute);}
.fleet__head .h2{
  color:var(--on-dark);max-width:24ch;
  font-size:clamp(1.7rem,3.05vw,3.1rem);
}
.fleet__hint{
  position:absolute;right:var(--gutter);bottom:0;display:flex;align-items:center;gap:10px;
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--on-dark-mute);
}
.fleet__hint i{width:28px;height:1px;background:currentColor;opacity:.6;animation:hint 2.4s infinite var(--ease-io);}
@keyframes hint{0%,100%{transform:translateX(0)}50%{transform:translateX(8px)}}

.fleet__track{flex:1;min-height:0;display:flex;align-items:stretch;overflow:hidden;padding-block:clamp(16px,3vh,44px);cursor:grab;}
.fleet__track:active{cursor:grabbing;}
.fleet__inner{
  display:flex;align-items:stretch;gap:clamp(18px,2vw,34px);padding-inline:var(--gutter);
  will-change:transform;
}
.card{
  position:relative;flex:none;width:clamp(300px,32vw,500px);
  height:100%;min-height:0;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(24px,2.2vw,40px);
  border:1px solid var(--line-dark);border-radius:2px;
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.012));
  overflow:hidden;transition:border-color .6s var(--ease),transform .6s var(--ease);
}
.card::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 60% at 50% 100%,rgba(194,162,101,.17),transparent 62%);
  opacity:0;transition:opacity .7s var(--ease);
}
.card:hover{border-color:rgba(242,241,237,.34);}
.card:hover::after{opacity:1;}
.card__index{
  position:absolute;top:clamp(20px,2vw,34px);right:clamp(20px,2vw,34px);
  font-family:var(--display);font-size:11px;letter-spacing:.22em;color:var(--on-dark-mute);
}
.card__art{flex:1;min-height:0;display:grid;place-items:center;padding:clamp(6px,1.6vw,22px) 0;}
.card__body{flex:none;}
.bus{width:100%;height:auto;max-height:100%;}
.bus__body,.bus__glass,.bus__line,.bus__wheel,.bus__hub{
  stroke:rgba(242,241,237,.78);stroke-width:1.4;fill:none;
  stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;
}
.bus__glass{stroke:rgba(194,162,101,.85);fill:rgba(194,162,101,.07);}
.bus__line{stroke:rgba(242,241,237,.32);}
.bus__hub{stroke:rgba(242,241,237,.4);}
.card:hover .bus__glass{fill:rgba(194,162,101,.16);}
.bus [data-len]{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);}
.card.is-drawn .bus [data-len]{stroke-dashoffset:0;transition:stroke-dashoffset 1.6s var(--ease);}

.card__title{
  font-family:var(--display);font-size:clamp(1.5rem,2.1vw,2.1rem);font-weight:300;
  text-transform:uppercase;letter-spacing:-.02em;line-height:1.04;
}
.card__title em{font-style:normal;color:var(--on-dark-mute);}
.card__desc{margin:14px 0 22px;color:var(--on-dark-soft);font-size:14.5px;max-width:38ch;}
.specs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark);border-top:1px solid var(--line-dark);}
.specs>div{background:var(--ink);padding:14px 4px 4px;}
.card:hover .specs>div{background:#151B23;}
.specs dt{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-mute);}
.specs dd{margin:6px 0 0;font-family:var(--display);font-size:1.15rem;font-weight:300;letter-spacing:.01em;}
.card--feature{background:linear-gradient(160deg,rgba(194,162,101,.14),rgba(255,255,255,.02));}
.card--cta{justify-content:center;text-align:left;background:var(--paper);color:var(--ink);border-color:transparent;}
.card--cta .card__title{color:var(--ink);}
.card--cta .card__desc{color:var(--fg-soft);}
.card--cta .btn{--btn-bg:var(--ink);--btn-fg:var(--paper);margin-top:8px;}

.fleet__bar{display:flex;align-items:center;gap:clamp(20px,3vw,48px);margin-top:clamp(18px,3vh,34px);}
.fleet__progress{flex:1;height:1px;background:var(--line-dark);overflow:hidden;}
.fleet__progress i{display:block;height:100%;width:100%;background:var(--paper);transform:scaleX(0);transform-origin:left;}
.fleet__nav{display:flex;gap:10px;}

/* =========================================================
   FIGURES
   ========================================================= */
.figures{background:var(--paper);padding:clamp(70px,9vw,130px) 0;border-bottom:1px solid var(--line);}
.figures__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,3vw,60px);}
.figures__item b{
  display:flex;align-items:baseline;font-family:var(--display);font-weight:250;
  font-size:clamp(2.6rem,5.6vw,5.4rem);line-height:1;letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
}
.figures__item em{font-style:normal;font-size:.42em;margin-left:.12em;color:var(--accent-deep);}
.figures__item p{margin-top:16px;color:var(--fg-soft);font-size:14px;max-width:26ch;
  padding-top:16px;border-top:1px solid var(--line);}

/* =========================================================
   SERVICES
   ========================================================= */
.services{background:var(--paper);padding:clamp(80px,11vw,170px) 0;}
.services__wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,90px);align-items:start;}
.srv{border-top:1px solid var(--line);}
.srv:last-child{border-bottom:1px solid var(--line);}
.srv__head{
  width:100%;display:flex;align-items:center;gap:clamp(14px,2vw,28px);
  padding:clamp(20px,2.4vw,34px) 0;text-align:left;position:relative;
}
.srv__num{
  font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--fg-mute);
  width:22px;flex:none;transition:color .5s var(--ease);
}
.srv__name{
  flex:1;font-family:var(--display);font-weight:300;text-transform:uppercase;
  font-size:clamp(1.1rem,2vw,1.85rem);letter-spacing:-.012em;line-height:1.1;
  transition:transform .6s var(--ease),opacity .5s;
}
.srv__plus{position:relative;width:16px;height:16px;flex:none;}
.srv__plus i{position:absolute;inset:50% 0 auto;height:1px;background:currentColor;transition:transform .5s var(--ease);}
.srv__plus i:last-child{transform:rotate(90deg);}
.srv.is-open .srv__plus i:last-child{transform:rotate(0);}
.srv:hover .srv__name{transform:translateX(10px);}
.srv:hover .srv__num{color:var(--accent-deep);}
.srv.is-open .srv__num{color:var(--accent-deep);}
.srv__panel{height:0;overflow:hidden;transition:height .7s var(--ease);}
.srv__inner{padding:0 0 clamp(24px,2.6vw,38px) calc(22px + clamp(14px,2vw,28px));max-width:56ch;}
.srv__inner p{color:var(--fg-soft);font-size:15px;}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.tags li{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:999px;padding:7px 14px;color:var(--fg-soft);
}
.services__media{position:sticky;top:calc(var(--nav-h) + 30px);}
.services__frame{
  position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--ink-2);
}
.services__frame img{
  width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06) brightness(.92);
  transition:opacity .7s var(--ease),transform 1.6s var(--ease);transform:scale(1.03);
}
.services__frame.is-swapping img{opacity:0;transform:scale(1.08);}
.services__frame-grain{
  position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;opacity:.14;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
.services__cap{
  display:flex;align-items:center;gap:12px;margin-top:16px;
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-mute);
}
.services__cap i{width:26px;height:1px;background:currentColor;opacity:.5;}

/* =========================================================
   TICKER
   ========================================================= */
.ticker{background:var(--ink);color:var(--on-dark);padding:clamp(26px,3.4vw,44px) 0;overflow:hidden;}
.ticker__row{display:flex;gap:clamp(20px,2.4vw,40px);align-items:center;white-space:nowrap;will-change:transform;}
.ticker__row+.ticker__row{margin-top:clamp(10px,1.4vw,20px);}
.ticker__row span{
  font-family:var(--display);font-weight:250;text-transform:uppercase;
  font-size:clamp(1.5rem,3.6vw,3.2rem);letter-spacing:-.02em;line-height:1;
}
.ticker__row i{font-size:.7rem;color:var(--accent);font-style:normal;}
.ticker__row--rev span{color:transparent;-webkit-text-stroke:1.4px rgba(242,241,237,.46);}

/* =========================================================
   ONBOARD
   ========================================================= */
.onboard{background:var(--paper);padding:clamp(80px,11vw,170px) 0;}
.onboard__stage{
  display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,2vw,28px);
  padding-inline:var(--gutter);max-width:var(--max);margin-inline:auto;
  margin-bottom:clamp(60px,8vw,120px);
}
.onboard__fig{margin:0;position:relative;}
.onboard__fig--a{grid-column:1/8;}
.onboard__fig--b{grid-column:9/13;align-self:end;margin-bottom:-8%;}
.onboard__fig--c{grid-column:3/9;margin-top:clamp(20px,4vw,60px);}
.onboard__img{
  position:relative;overflow:hidden;aspect-ratio:16/10;
  clip-path:inset(100% 0 0 0);
  transition:clip-path 1.25s var(--ease);
}
/* the parallax runs on the inner layer so the frame never overlaps a neighbour's caption */
.onboard__img-inner{
  position:absolute;inset:-18% 0;display:block;
  background-size:cover;background-position:center;
  filter:grayscale(.25) contrast(1.04);
  transition:filter 1s var(--ease);will-change:transform;
}
.onboard__fig--b .onboard__img{aspect-ratio:3/4;}
.onboard__fig--c .onboard__img{aspect-ratio:21/9;}
.onboard__fig.is-in .onboard__img{clip-path:inset(0 0 0 0);}
.onboard__fig:hover .onboard__img-inner{filter:grayscale(0) contrast(1.06);}
.onboard__fig figcaption{
  position:relative;z-index:2;
  display:flex;gap:12px;margin-top:14px;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg-mute);
  opacity:0;transform:translateY(10px);transition:opacity .8s .35s var(--ease),transform .8s .35s var(--ease);
}
.onboard__fig.is-in figcaption{opacity:1;transform:none;}
.onboard__fig figcaption span{color:var(--accent-deep);}

.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.feats li{background:var(--paper);padding:clamp(26px,3vw,44px) clamp(18px,2vw,32px);transition:background-color .5s var(--ease);}
.feats li:hover{background:var(--paper-2);}
.feats span{font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--fg-mute);}
.feats b{
  display:block;margin:16px 0 10px;font-family:var(--display);font-weight:300;
  font-size:clamp(1.1rem,1.5vw,1.5rem);text-transform:uppercase;letter-spacing:-.01em;
}
.feats p{color:var(--fg-soft);font-size:14px;}

/* =========================================================
   COMPANY
   ========================================================= */
.company{position:relative;color:var(--on-dark);padding:clamp(100px,14vw,220px) 0;overflow:hidden;isolation:isolate;background:var(--black);}
.company__bg{position:absolute;inset:-12% 0;z-index:-2;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.1);}
.company__veil{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(6,8,11,.94) 0%,rgba(6,8,11,.74) 48%,rgba(28,22,15,.60) 100%);}
.company__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,90px);align-items:start;}
.company__left .label{color:var(--on-dark-mute);margin-bottom:26px;}
.company__right p{color:var(--on-dark-soft);font-size:clamp(15px,1.15vw,17.5px);max-width:52ch;}
.company__facts{margin:clamp(30px,4vw,54px) 0;display:grid;border-block:1px solid var(--line-dark);}
.company__facts li{padding:22px 0;display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,2.4vw,40px);align-items:baseline;}
.company__facts li+li{border-top:1px solid var(--line-dark);}
.company__facts b{font-family:var(--display);font-weight:400;font-size:13px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;}
.company__facts span{color:var(--on-dark-soft);font-size:14.5px;}

/* =========================================================
   QUOTE
   ========================================================= */
.quote-sec{background:var(--paper);padding:clamp(90px,13vw,190px) 0;text-align:center;}
.quote-sec blockquote{
  margin:0;font-family:var(--display);font-weight:300;
  font-size:clamp(1.4rem,3vw,2.9rem);line-height:1.2;letter-spacing:-.02em;
  max-width:26ch;margin-inline:auto;
}
.quote-sec cite{
  display:flex;align-items:center;justify-content:center;gap:16px;font-style:normal;
  margin-top:clamp(28px,3.6vw,48px);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-mute);
}

/* =========================================================
   FORM
   ========================================================= */
.quote-form{background:var(--paper-2);padding:clamp(80px,11vw,170px) 0;border-top:1px solid var(--line);}
.quote-form__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,110px);align-items:start;}
.quote-form__aside .label{margin-bottom:26px;}
.quote-form__lead{margin-top:26px;color:var(--fg-soft);max-width:40ch;font-size:15px;}
.quote-form__contact{margin-top:clamp(34px,4vw,56px);display:grid;gap:1px;background:var(--line);border-block:1px solid var(--line);}
.quote-form__contact li{background:var(--paper-2);padding:18px 0;display:grid;gap:6px;}
.quote-form__contact span{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-mute);}
.quote-form__contact a,.quote-form__contact address{font-family:var(--display);font-size:clamp(1rem,1.4vw,1.3rem);font-weight:300;}
.quote-form__contact a{transition:color .4s;}
.quote-form__contact a:hover{color:var(--accent-deep);}

.form__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,30px);}
.field{position:relative;padding-top:26px;margin-bottom:clamp(18px,2vw,26px);}
.field input,.field select,.field textarea{
  width:100%;background:transparent;border:0;outline:none;padding:8px 0;
  font-family:var(--body);font-size:16px;color:var(--fg);border-radius:0;
  appearance:none;-webkit-appearance:none;
}
.field textarea{resize:vertical;min-height:56px;}
.field label{
  position:absolute;left:0;top:34px;pointer-events:none;
  font-size:14px;color:var(--fg-mute);
  transition:transform .45s var(--ease),font-size .45s var(--ease),color .45s var(--ease),letter-spacing .45s var(--ease);
  transform-origin:left top;
}
.field label em{font-style:normal;opacity:.6;}
.field input:focus+label,.field textarea:focus+label,
.field input:not(:placeholder-shown)+label,.field textarea:not(:placeholder-shown)+label,
.field select:focus+label,.field select:valid+label,
.field--date input+label{
  transform:translateY(-26px);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--fg-mute);
}
.field__line{position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);}
.field__line::after{
  content:"";position:absolute;inset:0;background:var(--ink);
  transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease);
}
.field input:focus~.field__line::after,.field select:focus~.field__line::after,.field textarea:focus~.field__line::after{
  transform:scaleX(1);transform-origin:left;
}
.field--select::after{
  content:"";position:absolute;right:2px;bottom:16px;width:7px;height:7px;
  border-right:1px solid var(--fg-mute);border-bottom:1px solid var(--fg-mute);
  transform:rotate(45deg);pointer-events:none;
}
.field.has-error .field__line{background:var(--red);}
.field.has-error label{color:var(--red);}

.check{display:flex;gap:14px;align-items:flex-start;margin:8px 0 clamp(26px,3vw,40px);cursor:pointer;}
.check input{position:absolute;opacity:0;width:0;height:0;}
.check__box{
  width:20px;height:20px;flex:none;border:1px solid var(--line);display:grid;place-items:center;
  color:transparent;transition:border-color .4s,background-color .4s,color .4s;margin-top:2px;
}
.check__box svg{width:12px;height:12px;}
.check input:checked+.check__box{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.check__txt{font-size:13px;color:var(--fg-soft);max-width:52ch;}
.check__txt a{text-decoration:underline;text-underline-offset:3px;}
.check.has-error .check__box{border-color:var(--red);}

.form__foot{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.form__note{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);}
.form__note b{font-weight:500;color:var(--fg);}
.form__status{margin-top:18px;font-size:13.5px;color:var(--ok);min-height:20px;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s;}
.form__status.is-on{opacity:1;transform:none;}

/* =========================================================
   CTA
   ========================================================= */
.cta{position:relative;color:var(--on-dark);text-align:center;padding:clamp(100px,15vw,220px) 0;overflow:hidden;isolation:isolate;background:var(--black);}
.cta__bg{position:absolute;inset:-12% 0;z-index:-2;background-size:cover;background-position:center;filter:grayscale(1);}
.cta__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,8,11,.86),rgba(6,8,11,.72)),radial-gradient(80% 60% at 50% 60%,rgba(194,162,101,.17),transparent 70%);}
.cta .label{color:var(--on-dark-mute);}
.cta__title{
  font-family:var(--display);font-weight:250;text-transform:uppercase;
  font-size:clamp(2.6rem,9vw,9rem);line-height:.94;letter-spacing:-.035em;
  margin:clamp(20px,3vw,36px) 0 clamp(26px,4vw,50px);
}
.cta__title .line{display:block;overflow:hidden;}
.cta__phone{
  position:relative;display:inline-block;font-family:var(--display);font-weight:300;
  font-size:clamp(1.4rem,3.4vw,3rem);letter-spacing:.02em;padding-bottom:10px;
}
.cta__phone::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(1);transform-origin:right;transition:transform .7s var(--ease);
}
.cta__phone:hover::after{transform:scaleX(0);}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{background:var(--black);color:var(--on-dark);padding:clamp(60px,8vw,110px) 0 32px;overflow:hidden;}
.foot__top{display:grid;grid-template-columns:1.1fr 1.6fr 1fr;gap:clamp(30px,4vw,70px);padding-bottom:clamp(50px,7vw,90px);}
.foot__emblem{width:38px;height:38px;margin-bottom:22px;}
.foot__brand p{color:var(--on-dark-soft);font-size:14px;}
.foot__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,40px);}
.foot__cols h5{margin-bottom:20px;color:var(--on-dark-mute);}
.foot__cols a{display:block;padding:6px 0;font-size:14px;color:var(--on-dark-soft);transition:color .4s var(--ease),transform .4s var(--ease);}
.foot__cols a:hover{color:var(--on-dark);transform:translateX(5px);}
.foot__news h5{margin-bottom:20px;color:var(--on-dark-mute);}
.foot__form{display:flex;align-items:center;border-bottom:1px solid var(--line-dark);}
.foot__form input{
  flex:1;background:transparent;border:0;outline:none;color:var(--on-dark);
  font-family:var(--body);font-size:14px;padding:12px 0;
}
.foot__form input::placeholder{color:var(--on-dark-mute);}
.foot__form button{width:40px;height:40px;display:grid;place-items:center;transition:transform .5s var(--ease);}
.foot__form button svg{width:20px;height:20px;}
.foot__form button:hover{transform:translateX(5px);}
.foot__news-note{margin-top:14px;font-size:12px;color:var(--on-dark-mute);}

.foot__wordmark{
  border-top:1px solid var(--line-dark);padding-top:clamp(20px,3vw,40px);
  overflow:hidden;line-height:.82;
}
.foot__wordmark span{
  display:block;font-family:var(--display);font-weight:300;text-transform:uppercase;
  font-size:clamp(2.6rem,13.4vw,15rem);letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:2px rgba(242,241,237,.26);
  white-space:nowrap;text-align:center;
}
.foot__bottom{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-top:26px;margin-top:clamp(20px,3vw,40px);border-top:1px solid var(--line-dark);
  font-size:11.5px;color:var(--on-dark-mute);
}
.foot__legal{display:flex;gap:22px;flex-wrap:wrap;}
.foot__legal a{transition:color .4s;}
.foot__legal a:hover{color:var(--on-dark);}
.foot__top-btn{display:flex;align-items:center;gap:10px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;}
.foot__top-btn svg{width:16px;height:16px;transition:transform .5s var(--ease);}
.foot__top-btn:hover svg{transform:translateY(-4px);}

/* =========================================================
   REVEAL ANIMATIONS
   ========================================================= */
[data-split] .word,[data-split] .char{display:inline-block;}
[data-split] .word-wrap{display:inline-block;overflow:hidden;vertical-align:top;}
[data-split] .word{transform:translate3d(0,110%,0);opacity:.001;}
[data-split].is-in .word{
  transform:translate3d(0,0,0);opacity:1;
  transition:transform 1.05s var(--ease),opacity .7s var(--ease);
  transition-delay:calc(var(--i) * 34ms);
}
.hero__title .word{transition-delay:calc(var(--i) * 55ms + .25s);}

[data-anim]{opacity:0;will-change:transform,opacity;}
[data-anim="fade"]{transition:opacity 1s var(--ease);transition-delay:var(--d,0s);}
[data-anim="fade-up"]{transform:translate3d(0,26px,0);transition:opacity .9s var(--ease),transform 1.05s var(--ease);transition-delay:var(--d,0s);}
[data-anim].is-in{opacity:1;transform:none;}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .services__wrap{grid-template-columns:1fr;}
  .services__media{display:none;}
  .company__grid{grid-template-columns:1fr;}
  .quote-form__grid{grid-template-columns:1fr;}
  .figures__grid{grid-template-columns:repeat(2,1fr);row-gap:clamp(34px,5vw,60px);}
  .foot__top{grid-template-columns:1fr 1fr;}
  .foot__news{grid-column:1/-1;}
}
@media (max-width:900px){
  :root{--nav-h:70px;}
  .nav__links{display:none;}
  .nav__phone{display:none;}
  .burger{display:grid;}
  .menu__grid{grid-template-columns:1fr;align-content:start;}
  .menu__col--aside{grid-template-columns:repeat(2,1fr);display:grid;margin-top:8vh;}
  .hero__facts{display:none;}
  .hero__bottom{justify-content:flex-start;}
  .feats{grid-template-columns:repeat(2,1fr);}
  .onboard__fig--a{grid-column:1/13;}
  .onboard__fig--b{grid-column:1/9;margin:clamp(18px,4vw,40px) 0 0;}
  .onboard__fig--c{grid-column:4/13;}
  .fleet__sticky{height:auto;position:relative;padding-bottom:clamp(30px,6vh,60px);}
  .fleet__track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .fleet__track::-webkit-scrollbar{display:none;}
  .fleet__inner{transform:none !important;}
  .card{scroll-snap-align:center;width:min(80vw,420px);min-height:auto;height:auto;}
  .fleet__track{align-items:stretch;}
  .fleet__hint{position:static;margin-top:6px;}
  .fleet__bar{display:none;}
}
@media (max-width:620px){
  .form__row{grid-template-columns:1fr;}
  .figures__grid{grid-template-columns:1fr;}
  .feats{grid-template-columns:1fr;}
  .foot__top{grid-template-columns:1fr;}
  .foot__cols{grid-template-columns:repeat(2,1fr);}
  .hero__title .line--em{padding-left:0;}
  .foot__bottom{flex-direction:column;align-items:flex-start;}
  .statement__text{max-width:none;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  [data-anim],[data-split] .word{opacity:1 !important;transform:none !important;}
  .onboard__img{clip-path:none !important;}
}

/* split helpers */
.word-group{display:inline-block;}
[data-split] .char{will-change:transform;}

/* =========================================================
   ACCESSIBILITY
   ========================================================= */
.skip{
  position:fixed;top:12px;left:12px;z-index:1100;
  transform:translateY(-160%);transition:transform .35s var(--ease);
  background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:999px;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
}
.skip:focus{transform:translateY(0);}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--accent-deep);outline-offset:3px;border-radius:2px;
}
.nav.is-solid:not(.is-light) :focus-visible,
.fleet :focus-visible,.company :focus-visible,.cta :focus-visible,.foot :focus-visible,.menu :focus-visible{
  outline-color:var(--accent);
}
.check input:focus-visible+.check__box{outline:2px solid var(--accent-deep);outline-offset:3px;}

/* =========================================================
   GALERÍA
   ========================================================= */
.gallery{background:var(--ink);color:var(--on-dark);padding:clamp(80px,11vw,170px) 0;}
.gallery__head{margin-bottom:clamp(40px,6vw,80px);}
.gallery__head .label{color:var(--on-dark-mute);}
.gallery__head .h2{max-width:20ch;}
.gallery__lead{margin-top:clamp(18px,2vw,28px);max-width:56ch;color:var(--on-dark-soft);font-size:clamp(15px,1.1vw,17px);}

.gallery__grid{columns:3;column-gap:clamp(14px,1.8vw,28px);}
.gal{break-inside:avoid;margin:0 0 clamp(14px,1.8vw,28px);}
.gal__btn{
  display:block;width:100%;padding:0;border:0;background:none;position:relative;overflow:hidden;
  clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease);
}
.gal.is-in .gal__btn{clip-path:inset(0 0 0 0);}
.gal__btn img{
  width:100%;height:auto;display:block;
  filter:grayscale(.55) contrast(1.04) brightness(.94);
  transform:scale(1.001);
  transition:filter .8s var(--ease),transform 1.1s var(--ease);
}
.gal__btn::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,8,11,.34) 0%,transparent 34%,transparent 62%,rgba(6,8,11,.44) 100%);
  opacity:.9;transition:opacity .8s var(--ease);
}
.gal__btn::before{
  content:"";position:absolute;z-index:2;right:14px;top:14px;width:34px;height:34px;border-radius:50%;
  background:rgba(6,8,11,.55);
  /* cruz de "ampliar" dibujada con un degradado doble */
  background-image:
    linear-gradient(var(--paper),var(--paper)),
    linear-gradient(var(--paper),var(--paper));
  background-size:11px 1px,1px 11px;
  background-position:center,center;
  background-repeat:no-repeat;
  box-shadow:inset 0 0 0 1px rgba(242,241,237,.28),0 0 0 100px rgba(6,8,11,.45) inset;
  opacity:0;transform:scale(.7);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.gal:hover .gal__btn img{filter:grayscale(0) contrast(1.05) brightness(1);transform:scale(1.035);}
.gal:hover .gal__btn::after{opacity:.45;}
.gal:hover .gal__btn::before{opacity:1;transform:scale(1);}
.gal figcaption{
  display:flex;gap:12px;margin-top:14px;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--on-dark-mute);
  opacity:0;transform:translateY(8px);
  transition:opacity .7s .3s var(--ease),transform .7s .3s var(--ease);
}
.gal.is-in figcaption{opacity:1;transform:none;}
.gal figcaption span{color:var(--accent);flex:none;}

/* ---------- Visor a pantalla completa ---------- */
.lb{
  position:fixed;inset:0;z-index:950;display:grid;place-items:center;
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;
}
.lb.is-open{opacity:1;visibility:visible;}
.lb__bg{position:absolute;inset:0;background:rgba(6,8,11,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.lb__fig{
  position:relative;z-index:2;margin:0;max-width:min(1440px,90vw);
  display:grid;justify-items:center;gap:18px;
  transform:scale(.97);transition:transform .6s var(--ease);
}
.lb.is-open .lb__fig{transform:scale(1);}
.lb__img{
  max-width:100%;max-height:76vh;width:auto;height:auto;display:block;
  box-shadow:0 40px 120px rgba(0,0,0,.6);
}
.lb__cap{
  display:flex;align-items:center;gap:14px;color:var(--on-dark-soft);
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;text-align:center;
}
.lb__cap b{color:var(--accent);font-weight:500;}
.lb__nav{
  position:absolute;z-index:3;top:50%;transform:translateY(-50%);
  display:flex;gap:12px;
}
.lb__nav--prev{left:clamp(12px,3vw,44px);}
.lb__nav--next{right:clamp(12px,3vw,44px);}
.lb__close{position:absolute;z-index:3;top:clamp(12px,2.4vw,32px);right:clamp(12px,3vw,44px);}
.lb__count{
  position:absolute;z-index:3;top:clamp(18px,2.8vw,38px);left:clamp(16px,3vw,44px);
  font-family:var(--display);font-size:12px;letter-spacing:.2em;color:var(--on-dark-mute);
  font-variant-numeric:tabular-nums;
}
.lb .circle-btn{background:rgba(242,241,237,.06);}
body.lb-open{overflow:hidden;}

@media (max-width:1180px){ .gallery__grid{columns:2;} }
@media (max-width:620px){
  .gallery__grid{columns:1;}
  .lb__nav{top:auto;bottom:clamp(12px,4vw,28px);transform:none;}
  .lb__img{max-height:64vh;}
}
