:root{
  --bg:#F7F7F7; --surface:#FFFFFF; --ink:#0E1B33; --ink-2:#4A5568; --line:#E2E6EC;
  --navy:#0B2A6F; --blue:#1667D9; --blue-soft:#E8F0FC;
  --shadow:0 24px 48px -24px rgba(11,42,111,.18);
  --ease:cubic-bezier(.16,1,.3,1);
  --font:'Outfit',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.6;font-size:1rem;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 20px}
@media(min-width:768px){.wrap{padding:0 40px}}
h1,h2,h3{letter-spacing:-.03em;line-height:1.08;font-weight:600;color:var(--navy)}
h1{font-size:clamp(2.1rem,5.2vw,3.9rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.7rem)}
h3{font-size:1.25rem;letter-spacing:-.02em}
p{color:var(--ink-2);max-width:62ch}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--blue)}
.mono{font-variant-numeric:tabular-nums}

/* NAV */
.nav{position:sticky;top:0;z-index:40;background:rgba(247,247,247,.97);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand img{height:30px;width:auto}
.links{display:none;gap:6px;align-items:center}
.links a{padding:9px 16px;border-radius:999px;font-weight:500;font-size:.95rem;color:var(--ink-2);transition:background .3s var(--ease),color .3s}
.links a:hover{background:var(--blue-soft);color:var(--navy)}
.links a.on{color:var(--navy);background:var(--blue-soft)}
.burger{width:44px;height:44px;border:1px solid var(--line);background:var(--surface);border-radius:12px;display:grid;place-items:center;cursor:pointer}
.burger span,.burger span::before{display:block;width:18px;height:2px;background:var(--navy);position:relative;transition:transform .3s var(--ease)}
.burger span::before{content:"";position:absolute;top:6px;left:0}
.burger[aria-expanded=true] span{transform:translateY(3px) rotate(45deg)}
.burger[aria-expanded=true] span::before{transform:translateY(-6px) rotate(-90deg);top:6px}
.drawer{position:fixed;inset:68px 0 0 0;background:var(--bg);padding:24px 20px;display:flex;flex-direction:column;gap:6px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .4s var(--ease);z-index:39}
.drawer.open{transform:none;opacity:1;pointer-events:auto}
.drawer a{font-size:1.6rem;font-weight:500;letter-spacing:-.02em;padding:14px 4px;border-bottom:1px solid var(--line);color:var(--navy)}
.nav-cta{display:none}
@media(min-width:900px){.links{display:flex}.burger,.drawer{display:none}.nav-cta{display:inline-flex}.brand img{height:34px}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;font-family:inherit;font-weight:600;font-size:.98rem;border:1px solid transparent;cursor:pointer;transition:transform .3s var(--ease),background .3s,box-shadow .3s}
.btn:active{transform:scale(.97) translateY(1px)}
.btn-primary{background:var(--navy);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 24px -12px rgba(11,42,111,.55)}
.btn-primary:hover{background:var(--blue)}
.btn-ghost{background:var(--surface);color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(3px)}

/* HERO */
.hero{padding:40px 0 64px}
.hero-grid{display:grid;gap:40px}
.hero-copy{display:flex;flex-direction:column;gap:24px;justify-content:center}
.hero-copy h1 span{color:var(--blue)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}
.hero-meta{display:flex;flex-wrap:wrap;gap:28px;padding-top:24px;border-top:1px solid var(--line);margin-top:8px}
.hero-meta b{display:block;font-size:1.9rem;color:var(--navy);letter-spacing:-.03em;font-weight:600}
.hero-meta small{color:var(--ink-2);font-size:.85rem}
.hero-visual{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);padding:20px;overflow:hidden}
.hero-visual img{width:100%;height:auto}
.badge{position:absolute;left:16px;bottom:16px;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:inset 0 1px 0 #fff;padding:10px 16px;border-radius:999px;font-size:.85rem;font-weight:500;color:var(--navy)}
.dot{width:9px;height:9px;border-radius:50%;background:#1FA463;position:relative}
.dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #1FA463;opacity:0;animation:pulse 2s infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.5);opacity:0}}
@keyframes float{50%{transform:translateY(-8px)}}
@media(min-width:960px){.hero{padding:72px 0 96px}.hero-grid{grid-template-columns:1.05fr .95fr;gap:72px;align-items:center}}

/* MARQUEE */
.marquee{border-block:1px solid var(--line);background:var(--surface);overflow:hidden;padding:18px 0}
.track{display:flex;gap:44px;width:max-content;animation:slide 60s linear infinite}
.track span{font-size:1.05rem;font-weight:500;color:var(--navy);white-space:nowrap;display:flex;align-items:center;gap:44px}
.track span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue)}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee:hover .track{animation-play-state:paused}

/* SECTIONS */
section.s{padding:72px 0}
@media(min-width:768px){section.s{padding:112px 0}}
.head{display:grid;gap:16px;margin-bottom:48px}
@media(min-width:900px){.head{grid-template-columns:1fr 1fr;align-items:end;gap:64px;margin-bottom:64px}}
.head .eyebrow{grid-column:1/-1}

/* SERVICE LIST (asymmetric rows) */
.svc-list{border-top:1px solid var(--line)}
.svc{display:grid;grid-template-columns:44px 1fr;gap:6px 16px;padding:28px 0;border-bottom:1px solid var(--line);transition:background .4s var(--ease),padding .4s var(--ease);position:relative}
.svc .n{font-size:.85rem;color:var(--blue);font-weight:600;padding-top:6px}
.svc h3{grid-column:2}
.svc p{grid-column:2;font-size:.98rem}
.svc .ic{display:none}
@media(min-width:900px){
  .svc{grid-template-columns:70px 1.1fr 1.4fr 56px;align-items:center;gap:32px;padding:36px 12px}
  .svc h3,.svc p{grid-column:auto}
  .svc .ic{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--blue-soft);color:var(--blue);transition:transform .4s var(--ease),background .3s,color .3s}
  .svc:hover{background:var(--surface)}
  .svc:hover .ic{background:var(--navy);color:#fff;transform:rotate(-8deg) scale(1.05)}
}
.ic svg{width:24px;height:24px}

/* ADUANAS */
.dark{background:var(--navy);color:#fff;border-radius:32px;margin:0 12px;position:relative;overflow:hidden}
@media(min-width:768px){.dark{margin:0 24px;border-radius:44px}}
.dark h2{color:#fff}.dark p{color:#B9C8EA}
.dark .eyebrow{color:#8DB8FF}.dark .eyebrow::before{background:#8DB8FF}
.ports{display:grid;gap:0;margin-top:48px;border-top:1px solid rgba(255,255,255,.14)}
.port{padding:26px 0;border-bottom:1px solid rgba(255,255,255,.14);display:grid;grid-template-columns:auto 1fr;gap:4px 20px;align-items:baseline}
.port b{font-size:2.6rem;font-weight:500;letter-spacing:-.04em;color:#8DB8FF;grid-row:span 2}
.port h3{color:#fff;font-size:1.3rem}
.port small{color:#B9C8EA;font-size:.9rem}
@media(min-width:768px){.ports{grid-template-columns:repeat(2,1fr);column-gap:64px}}
@media(min-width:1100px){.ports{grid-template-columns:repeat(3,1fr);column-gap:32px;border-top:0}.port{grid-template-columns:1fr;border-top:1px solid rgba(255,255,255,.14);border-bottom:0;padding-top:28px}.port b{grid-row:auto;font-size:3.4rem}}
.route{position:absolute;right:-60px;top:-40px;width:420px;opacity:.16;pointer-events:none}
.route path{stroke-dasharray:6 10}
@keyframes dash{to{stroke-dashoffset:-400}}

/* CAPACITY split */
.split{display:grid;gap:40px}
@media(min-width:960px){.split{grid-template-columns:.9fr 1.1fr;gap:88px;align-items:start}}
.checks{display:grid;gap:0;border-top:1px solid var(--line)}
.checks li{list-style:none;display:flex;gap:16px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);font-weight:500;color:var(--navy);font-size:1.1rem}
.checks svg{flex:none;width:26px;height:26px;color:var(--blue)}
.legal{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:32px;box-shadow:var(--shadow)}
.legal h3{margin-bottom:14px}
.legal ul{display:grid;gap:10px;margin-top:18px}
.legal li{list-style:none;padding-left:22px;position:relative;color:var(--ink-2);font-size:.98rem}
.legal li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:2px;background:var(--blue)}

/* CTA */
.cta{display:grid;gap:24px;padding-block:48px}
@media(min-width:900px){.cta{grid-template-columns:1.4fr 1fr;align-items:center;gap:64px}.cta .hero-cta{justify-content:flex-end}}

/* PAGE HEADER */
.ph{padding:56px 0 24px}
.ph h1{margin:18px 0 18px;max-width:16ch}
@media(min-width:768px){.ph{padding:88px 0 40px}}

/* CONTACT */
.c-grid{display:grid;gap:40px;padding-bottom:88px}
@media(min-width:960px){.c-grid{grid-template-columns:.9fr 1.1fr;gap:72px}}
.people{border-top:1px solid var(--line)}
.person{padding:24px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.person small{color:var(--blue);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.74rem}
.person h3{font-size:1.35rem}
.person a{color:var(--ink-2);font-size:1rem;word-break:break-all;display:inline-flex;align-items:center;gap:8px;min-height:32px}
.person a:hover{color:var(--blue)}
.person a svg{width:16px;height:16px;flex:none}
.card{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow)}
@media(min-width:768px){.card{padding:40px}}
.form{display:grid;gap:20px}
.f{display:grid;gap:8px}
.f label{font-weight:600;font-size:.9rem;color:var(--navy)}
.f input,.f textarea,.f select{font:inherit;font-size:1rem;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);width:100%;transition:border-color .3s,box-shadow .3s,background .3s;min-height:50px}
.f textarea{min-height:130px;resize:vertical}
.f input:focus,.f textarea:focus,.f select:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(22,103,217,.12)}
.f .hint{font-size:.82rem;color:var(--ink-2)}
.f .err{font-size:.84rem;color:#B42318;display:none}
.f.bad input,.f.bad textarea{border-color:#B42318}
.f.bad .err{display:block}
.row2{display:grid;gap:20px}
@media(min-width:640px){.row2{grid-template-columns:1fr 1fr}}
.ok{display:none;padding:16px 18px;border-radius:14px;background:#E7F6EE;color:#0F5132;font-weight:500}
.ok.show{display:block}
.map-block{margin-top:0;padding-bottom:96px}
.map{border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--surface)}
.map iframe{display:block;width:100%;height:340px;border:0;filter:saturate(.85)}
@media(min-width:768px){.map iframe{height:440px}}
.addr{display:grid;gap:6px;padding:22px 24px;border-top:1px solid var(--line)}
@media(min-width:768px){.addr{grid-template-columns:1fr auto;align-items:center;padding:24px 32px}}
.addr b{color:var(--navy);font-size:1.1rem}

/* FOOTER */
footer{border-top:1px solid var(--line);margin-top:96px;padding:56px 0 32px;background:var(--surface)}
.f-grid{display:grid;gap:36px}
@media(min-width:800px){.f-grid{grid-template-columns:1.4fr 1fr 1fr;gap:64px}}
.f-grid img{height:44px;width:auto;margin-bottom:16px}.f-grid img.flogo{height:auto;width:min(260px,70%);margin-bottom:18px}
.f-grid h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;font-weight:600}
.f-grid a,.f-grid li{display:block;list-style:none;color:var(--ink-2);padding:5px 0;font-size:.97rem}
.f-grid a:hover{color:var(--blue)}
.legalline{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
.wa{position:fixed;right:16px;bottom:16px;z-index:30;width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;box-shadow:0 14px 28px -10px rgba(11,42,111,.6),inset 0 1px 0 rgba(255,255,255,.2);transition:transform .3s var(--ease)}
.wa:hover{transform:scale(1.06)}.wa:active{transform:scale(.95)}
.wa svg{width:26px;height:26px}

/* REVEAL */
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
.nav .nav-cta{display:none}
@media(min-width:900px){.nav .nav-cta{display:inline-flex}}
footer{background:var(--bg)}
.hero-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:20px 32px}
@media(max-width:420px){.hero-meta{grid-template-columns:1fr 1fr}}

.pill{display:inline-block;font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8A5A00;background:#FFF3D6;border:1px solid #F3DDA0;padding:5px 12px;border-radius:999px}
.track-strip{display:grid;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow)}
@media(min-width:768px){.track-strip{grid-template-columns:1fr auto;align-items:center;padding:36px 44px}}
.dot.amber{background:#D99100}.dot.amber::after{border-color:#D99100}
.state{display:flex;align-items:center;gap:14px;color:var(--navy);font-size:1.15rem}
.skel{display:grid;gap:12px;margin-top:26px}
.skel i{display:block;height:14px;border-radius:8px;background:linear-gradient(90deg,var(--line) 25%,#F1F3F7 50%,var(--line) 75%);background-size:200% 100%;animation:sh 1.6s linear infinite}
.skel i:nth-child(2){width:80%}.skel i:nth-child(3){width:55%}
@keyframes sh{to{background-position:-200% 0}}

/* ===== HERO CARRUSEL (3 banners) ===== */
.nav{transition:background .4s,box-shadow .4s,height .3s}
.nav.scrolled{background:#fff;box-shadow:0 10px 30px -18px rgba(11,42,111,.35)}
.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--blue),#8DB8FF);z-index:60}
.hero2{position:relative;margin:12px 12px 0;border-radius:32px;overflow:hidden;color:#fff;background:var(--navy);min-height:clamp(600px,88vh,820px);display:flex;flex-direction:column;isolation:isolate}
@media(min-width:768px){.hero2{margin:16px 24px 0;border-radius:44px}}
.slides{position:absolute;inset:0;z-index:0;contain:strict}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.1s var(--ease),visibility 0s 1.1s}
.slide.active{opacity:1;visibility:visible;transition:opacity 1.1s var(--ease)}
.slide .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;backface-visibility:hidden}
.slides{container-type:size}
.stage{position:absolute;left:50%;top:50%;width:max(100cqw,177.78cqh);height:max(56.25cqw,100cqh);transform:translate(-50%,-50%)}
.kb{position:absolute;inset:0;transform:translateZ(0)}
.L{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;display:block;backface-visibility:hidden}
.L.sp,.L.grp{max-width:none}
.L.grp{left:0;top:0;width:100%;height:100%}
.L.st{width:150%;will-change:transform;animation:strip var(--d) linear infinite}
.L.sp.bob{will-change:transform;animation:bob 5s ease-in-out infinite}
.L.sp.trol{will-change:transform;animation:trol 9s ease-in-out infinite alternate}
.L.sp.spin{animation:spin .6s linear infinite;will-change:transform}
.L.grp.bob2{animation:bob2 1.3s ease-in-out infinite;will-change:transform}
.slide:not(.active) .L{animation-play-state:paused}
@keyframes strip{to{transform:translate3d(var(--t),0,0)}}
@keyframes bob{50%{transform:translate3d(0,-2.5%,0) rotate(-.4deg)}}
@keyframes bob2{50%{transform:translate3d(0,-.5%,0)}}
@keyframes trol{to{transform:translate3d(var(--t),0,0)}}
@keyframes spin{to{transform:rotate(360deg)}}
.slide.active .photo{animation:kb 9s linear forwards;will-change:transform}
@keyframes kb{from{transform:scale(1) translateZ(0)}to{transform:scale(1.08) translateZ(0)}}
.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,23,63,.82) 0%,rgba(6,23,63,.5) 38%,rgba(6,23,63,0) 70%),linear-gradient(0deg,rgba(6,23,63,.7) 0%,rgba(6,23,63,0) 35%)}
.sc{position:relative;z-index:2;display:flex;flex-direction:column;gap:22px;max-width:1240px;height:100%;justify-content:center;padding-top:96px;padding-bottom:210px}
.sc>*{max-width:720px}
.sc h1{color:#fff;font-size:clamp(2.2rem,5.6vw,4.4rem)}
.sc h1 span{color:#8DB8FF}
.sc p{color:#D5E1F8;font-size:1.1rem}
.sc .eyebrow{color:#8DB8FF}.sc .eyebrow::before{background:#8DB8FF}
.slide .sc>*{opacity:0;transform:translate3d(0,24px,0)}
.slide.active .sc>*{animation:rise .9s var(--ease) forwards}
.slide.active .sc>*:nth-child(1){animation-delay:.25s}.slide.active .sc>*:nth-child(2){animation-delay:.4s}.slide.active .sc>*:nth-child(3){animation-delay:.58s}
@keyframes rise{to{opacity:1;transform:none}}
.slide{position:absolute}
.slides{height:100%}
.slide .sc{position:absolute;inset:0;margin:0 auto;left:0;right:0}
.hero-ui{position:absolute;z-index:5;left:0;right:0;bottom:128px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 auto}
.btn-light{background:#fff;color:var(--navy)}.btn-light:hover{background:var(--blue-soft);color:var(--navy)}
.btn-glass{background:rgba(8,28,80,.5);color:#fff;border-color:rgba(255,255,255,.35);}
.btn-glass:hover{background:rgba(255,255,255,.22);color:#fff;border-color:#fff}
.dots{display:flex;gap:10px;align-items:center}
.dots .d{width:56px;height:30px;border:0;background:none;cursor:pointer;display:grid;align-items:center}
.dots .d i{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.dots .d i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:0 50%}
.dots .d.on i::after{animation:fill var(--dur,6.5s) linear forwards}
.dots.paused .d.on i::after{animation-play-state:paused}
@keyframes fill{to{transform:scaleX(1)}}
.arrows{display:flex;gap:10px}
.ar{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(8,28,80,.5);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .3s,transform .3s var(--ease)}
.ar:hover{background:#fff;color:var(--navy)}.ar:active{transform:scale(.92)}
.ar svg{width:20px;height:20px}.ar.prev svg{transform:scaleX(-1)}
.hero-stats{position:absolute;z-index:5;left:20px;right:20px;bottom:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 20px;padding:18px 22px;border-radius:24px;background:rgba(8,28,80,.62);border:1px solid rgba(255,255,255,.22);}
.hero2>.wrap:last-child{position:static;padding:0}
.hero-stats b{display:block;font-size:1.8rem;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.hero-stats small{color:#D5E1F8;font-size:.82rem}
.hero-stats .live{display:none;align-items:center;gap:12px}
@media(min-width:900px){.hero-stats{left:40px;right:40px;bottom:28px;grid-template-columns:repeat(3,auto) 1fr;gap:48px;padding:22px 32px}.hero-stats .live{display:flex;justify-content:flex-end}.hero-stats b{font-size:2.3rem}}
@media(max-width:640px){.hero-ui{bottom:150px}.arrows{display:none}.sc{padding-bottom:250px}.hero-stats b{font-size:1.5rem}}
.hero2 .eyebrow{animation:none}

/* animaciones extra en el resto de la página */
.eyebrow{position:relative}
.svc{overflow:hidden}
.svc::before{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease)}
.svc:hover::before{transform:scaleX(1)}
.port{transition:transform .5s var(--ease)}
.port:hover{transform:translateY(-6px)}
.port b{transition:color .3s,transform .5s var(--ease)}.port:hover b{color:#fff;transform:translateX(6px)}
.legal,.track-strip{transition:transform .5s var(--ease),box-shadow .5s}
.legal:hover,.track-strip:hover{transform:translateY(-6px);box-shadow:0 34px 60px -26px rgba(11,42,111,.32)}
.marquee .track span:hover{color:var(--blue)}
.checks li{transition:padding .4s var(--ease),background .3s}.checks li:hover{padding-left:16px;background:var(--surface)}
.wa::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--blue);animation:wapulse 2.8s ease-out infinite;pointer-events:none}
@keyframes wapulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.55);opacity:0}}
.rv.l{transform:translateX(-36px)}.rv.r{transform:translateX(36px)}.rv.l.in,.rv.r.in{transform:none}
@media(prefers-reduced-motion:reduce){.slide .sc>*{opacity:1;transform:none}.slide.active .photo{transform:none}}

/* ===== SERVICIOS: BENTO ===== */
.bento{display:grid;gap:14px;grid-template-columns:1fr}
.bc{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:36px;min-height:230px;padding:26px;border-radius:28px;background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.bc:hover{transform:translateY(-6px);border-color:#C9D8F2;box-shadow:0 30px 50px -28px rgba(11,42,111,.35)}
.bc-top{display:flex;align-items:center;justify-content:space-between}
.bc .ic{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:var(--blue-soft);color:var(--blue);transition:background .3s,color .3s,transform .45s var(--ease)}
.bc:hover .ic{background:var(--navy);color:#fff;transform:rotate(-8deg)}
.bc .ic svg{width:26px;height:26px}
.bc .n{font-size:.85rem;font-weight:600;color:var(--blue);letter-spacing:.08em}
.bc h3{font-size:1.28rem;margin-bottom:8px}
.bc p{font-size:.97rem;max-width:44ch}
.bc .go{position:absolute;right:22px;bottom:22px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;opacity:0;transform:translateX(-8px);transition:opacity .35s,transform .45s var(--ease)}
.bc:hover .go{opacity:1;transform:none}
.bc .go svg{width:18px;height:18px}
.bc.soft{background:var(--blue-soft);border-color:#D3E2FA}
.bc.soft .ic{background:#fff}
.bc.wide{background:linear-gradient(135deg,var(--blue) 0%,var(--navy) 100%);border:0;color:#fff}
.bc.wide h3{color:#fff}.bc.wide p{color:#D5E1F8}.bc.wide .n{color:#BFD6FF}
.bc.wide .ic{background:rgba(255,255,255,.16);color:#fff}.bc.wide:hover .ic{background:#fff;color:var(--navy)}
.bc.wide .go{background:#fff;color:var(--navy)}
.bc.feat{background:var(--navy);border:0;color:#fff;min-height:320px}
.bc.feat::before{content:"";position:absolute;right:-70px;top:-70px;width:300px;height:300px;border-radius:50%;border:44px solid rgba(141,184,255,.1)}
.bc.feat::after{content:"";position:absolute;right:30px;top:30px;width:110px;height:110px;border-radius:50%;border:2px dashed rgba(141,184,255,.35)}
.bc.feat h3{color:#fff;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.08}
.bc.feat p{color:#B9C8EA;font-size:1.05rem}.bc.feat .n{color:#8DB8FF}
.bc.feat .ic{background:rgba(255,255,255,.12);color:#8DB8FF;width:64px;height:64px;border-radius:20px}
.bc.feat:hover .ic{background:#fff;color:var(--navy)}
.bc.feat .go{background:#fff;color:var(--navy)}
@media(min-width:680px){.bento{grid-template-columns:repeat(2,1fr)}.bc.feat,.bc.wide{grid-column:span 2}}
@media(min-width:1000px){
  .bento{grid-template-columns:repeat(12,1fr);gap:16px}
  .bc{grid-column:span 4}.bc.c3{grid-column:span 3}.bc.c6,.bc.feat,.bc.wide{grid-column:span 6}.bc.r2{grid-row:span 2}
  .bc.feat{min-height:0;padding:34px}
}
@media(hover:none){.bc .go{opacity:1;transform:none}}

.fleet{display:grid;gap:32px;background:var(--surface);border:1px solid var(--line);border-radius:32px;padding:28px;box-shadow:var(--shadow)}
@media(min-width:900px){.fleet{grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;padding:56px}}
.fleet .checks li{font-size:1.02rem}

/* ===== PRELOADER ===== */
html.pre-on{overflow:hidden}
html.pre-on .slide *{animation-play-state:paused!important}
#pre{position:fixed;inset:0;z-index:200;background:#F7F7F7;display:grid;place-items:center;transition:opacity .6s var(--ease),visibility 0s .6s}
#pre.go{opacity:0;visibility:hidden}
.pre-in{width:min(400px,86vw);text-align:center;display:grid;gap:14px;justify-items:center}
.pre-logo{height:24px;width:auto;margin-bottom:6px}
#pre svg{width:100%;height:auto;display:block}
.cn{opacity:0;transform:translateY(-22px);transition:opacity .25s,transform .5s var(--ease)}
.cn.on{opacity:1;transform:none}
.pre-ship{animation:prebob 2.6s ease-in-out infinite}
@keyframes prebob{50%{transform:translateY(-3px)}}
.pre-wave{animation:prew 2s linear infinite}
@keyframes prew{to{transform:translateX(-60px)}}
.pre-t{font-size:.95rem;font-weight:500;color:var(--navy);letter-spacing:.02em}
.pre-t b{font-variant-numeric:tabular-nums;color:var(--blue);display:inline-block;min-width:3.2ch;text-align:left}
.pre-bar{width:min(240px,70%);height:3px;border-radius:3px;background:var(--line);overflow:hidden}
.pre-bar i{display:block;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:0 50%}
@media(max-width:640px){.sc{gap:16px;padding-top:70px}.sc h1{font-size:clamp(1.9rem,8.4vw,2.4rem)}.sc p{font-size:.95rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hero2{min-height:640px}}
