/* Express Container Line — main stylesheet */
:root{
  --navy:#0b3c6e;
  --navy-dark:#062a50;
  --navy-deep:#041d3a;
  --blue:#1565c0;
  --sky:#e8f1fb;
  --gold:#f4a61d;
  --text:#1f2a37;
  --muted:#5b6b7c;
  --bg:#f5f8fc;
  --white:#ffffff;
  --radius:12px;
  --shadow:0 6px 24px rgba(6,42,80,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.6}
img{max-width:100%}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1120px;margin:0 auto;padding:0 20px}

/* Top bar */
.topbar{background:var(--navy-deep);color:#cfe0f5;font-size:.85rem;padding:6px 0}
.topbar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.topbar a{color:#fff;font-weight:600}
.topbar .lang a{color:var(--gold);font-weight:700}

/* Header / nav */
header.site{background:var(--white);box-shadow:0 2px 10px rgba(6,42,80,.08);position:sticky;top:0;z-index:100}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;max-width:1120px;margin:0 auto;flex-wrap:wrap;gap:10px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:78px;width:auto}
.brand .name{font-weight:800;color:var(--navy);font-size:1.05rem;line-height:1.2}
.brand .tag{font-size:.72rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
nav.menu{display:flex;gap:4px;flex-wrap:wrap}
nav.menu a{color:var(--navy);font-weight:600;padding:8px 12px;border-radius:8px;font-size:.95rem}
nav.menu a:hover,nav.menu a.active{background:var(--sky);text-decoration:none}
nav.menu a.cta{background:var(--gold);color:var(--navy-deep)}
nav.menu a.cta:hover{background:#ffb62e}

/* Hero */
.hero{background:linear-gradient(135deg,var(--navy-deep) 0%,var(--navy) 55%,var(--blue) 100%);color:#fff;padding:84px 0;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-120px;bottom:-140px;width:480px;height:480px;border-radius:50%;background:rgba(255,255,255,.05)}
.hero::before{content:"";position:absolute;right:60px;top:-160px;width:360px;height:360px;border-radius:50%;background:rgba(244,166,29,.12)}
.hero .container{position:relative;z-index:2}
.hero .kicker{color:var(--gold);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;margin-bottom:14px}
.hero h1{font-size:2.6rem;line-height:1.15;max-width:760px;margin-bottom:18px}
.hero p{font-size:1.15rem;max-width:680px;color:#dce9f8;margin-bottom:28px}
.btn{display:inline-block;padding:14px 28px;border-radius:10px;font-weight:700;font-size:1rem;border:none;cursor:pointer}
.btn-gold{background:var(--gold);color:var(--navy-deep)}
.btn-gold:hover{background:#ffb62e;text-decoration:none}
.btn-outline{border:2px solid #fff;color:#fff;margin-left:12px}
.btn-outline:hover{background:rgba(255,255,255,.12);text-decoration:none}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-dark);text-decoration:none}

/* Stats strip */
.stats{background:var(--navy-dark);color:#fff;padding:26px 0}
.stats .container{display:flex;justify-content:space-around;flex-wrap:wrap;gap:18px;text-align:center}
.stats .num{font-size:1.7rem;font-weight:800;color:var(--gold)}
.stats .lbl{font-size:.85rem;color:#bcd2ea;text-transform:uppercase;letter-spacing:.06em}

/* Sections */
section{padding:64px 0}
.section-head{text-align:center;max-width:720px;margin:0 auto 44px}
.section-head .kicker{color:var(--blue);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}
.section-head h2{font-size:2rem;color:var(--navy);margin:8px 0 12px}
.section-head p{color:var(--muted)}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px;border-top:4px solid var(--navy)}
.card .icon{font-size:2rem;margin-bottom:14px}
.card h3{color:var(--navy);margin-bottom:10px;font-size:1.2rem}
.card p{color:var(--muted);font-size:.95rem;margin-bottom:12px}
.card ul{list-style:none}
.card ul li{padding:4px 0 4px 24px;position:relative;font-size:.92rem;color:var(--text)}
.card ul li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:800}

/* Alt section */
.alt{background:var(--white)}

/* Two-column */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media(max-width:860px){.two-col{grid-template-columns:1fr}.hero h1{font-size:2rem}}

/* Ecuador banner */
.flag-stripe{display:flex;height:10px}
.flag-stripe .y{flex:2;background:#FFDD00}
.flag-stripe .b{flex:1;background:#034ea2}
.flag-stripe .r{flex:1;background:#ed1c24}
.ecuador-hero{background:linear-gradient(135deg,#041d3a,#0b3c6e 60%,#034ea2);color:#fff;padding:72px 0;text-align:left}
.flag-badge{display:inline-flex;flex-direction:column;width:88px;height:58px;border-radius:6px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.35);margin-bottom:18px}
.flag-badge .y{flex:2;background:#FFDD00}
.flag-badge .b{flex:1;background:#034ea2}
.flag-badge .r{flex:1;background:#ed1c24}

/* Forms */
.form-wrap{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:38px;max-width:860px;margin:0 auto}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid .full{grid-column:1/-1}
@media(max-width:680px){.form-grid{grid-template-columns:1fr}}
label{display:block;font-weight:600;color:var(--navy);font-size:.88rem;margin-bottom:6px}
label .req{color:#d32f2f}
input,select,textarea{width:100%;padding:11px 13px;border:1.5px solid #cdd9e6;border-radius:8px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,101,192,.14)}
textarea{min-height:110px;resize:vertical}
fieldset{border:1.5px solid #dde7f0;border-radius:10px;padding:20px;margin:6px 0}
legend{font-weight:700;color:var(--navy);padding:0 10px;font-size:1rem}
.radio-row{display:flex;gap:18px;flex-wrap:wrap;padding-top:4px}
.radio-row label{display:flex;align-items:center;gap:7px;font-weight:500;margin:0}
.radio-row input{width:auto}
.form-note{font-size:.85rem;color:var(--muted);margin-top:10px}

/* Contact */
.contact-info{display:grid;gap:16px}
.info-item{display:flex;gap:14px;align-items:flex-start;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.info-item .ic{font-size:1.5rem}
.info-item h4{color:var(--navy);margin-bottom:2px}
.info-item p{color:var(--muted);font-size:.93rem}
.map-embed{border:0;width:100%;height:340px;border-radius:var(--radius);box-shadow:var(--shadow)}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--navy-dark),var(--navy));color:#fff;text-align:center;padding:56px 0}
.cta-band h2{font-size:1.9rem;margin-bottom:12px}
.cta-band p{color:#cfe0f5;margin-bottom:24px}

/* Footer */
footer.site{background:var(--navy-deep);color:#b9cde4;padding:52px 0 24px;font-size:.92rem}
footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:34px;margin-bottom:36px}
footer.site h4{color:#fff;margin-bottom:14px;font-size:1rem}
footer.site a{color:#b9cde4}
footer.site a:hover{color:var(--gold)}
footer.site ul{list-style:none}
footer.site li{margin-bottom:8px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:18px;text-align:center;font-size:.82rem;color:#7f96b3}

/* WhatsApp float */
.wa-float{position:fixed;bottom:22px;right:22px;background:#25d366;color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.7rem;box-shadow:0 6px 18px rgba(0,0,0,.28);z-index:200}
.wa-float:hover{transform:scale(1.07);text-decoration:none}

/* Call / Text strip */
.call-strip{background:var(--sky);border-bottom:1px solid #d7e5f4;text-align:center;padding:10px 14px;font-weight:700;color:var(--navy);font-size:1.02rem}
.call-strip a{color:var(--navy)}
.call-strip a:hover{color:var(--blue);text-decoration:none}
.call-strip .sep{margin:0 16px;color:#9db4cc}

/* Certification / trust badges */
.certs{background:var(--white);padding:26px 0;border-bottom:1px solid #e3ecf5}
.certs .container{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.cert{display:inline-flex;align-items:center;gap:8px;background:var(--sky);border:1px solid #d7e5f4;color:var(--navy);font-weight:700;padding:10px 16px;border-radius:10px;font-size:.88rem}

/* Photos */
.photo{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);object-fit:cover;display:block}
.photo-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:36px}
.photo-strip img{width:100%;height:210px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}

/* Hero with photo background */
.hero.hero-img{background:linear-gradient(120deg,rgba(4,29,58,.93) 0%,rgba(11,60,110,.84) 55%,rgba(21,101,192,.72) 100%),url('https://images.unsplash.com/photo-1494412651409-8963ce7935a7?auto=format&fit=crop&w=1800&q=70') center/cover no-repeat}

/* U.S. ports banner */
.ports-banner{position:relative;background:linear-gradient(rgba(4,29,58,.86),rgba(6,42,80,.90)),url('https://images.unsplash.com/photo-1577705998148-6da4f3963bc8?auto=format&fit=crop&w=1800&q=70') center/cover no-repeat;color:#fff;padding:64px 0;text-align:center}
.ports-banner h2{font-size:1.9rem;margin-bottom:10px}
.ports-banner p{color:#cfe0f5;max-width:760px;margin:0 auto 26px}
.ports{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.port{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.30);color:#fff;font-weight:700;padding:8px 18px;border-radius:24px;font-size:.9rem}

/* Moving container line (ports marquee) */
.marquee{overflow:hidden;position:relative;padding-top:6px}
.marquee-track{display:flex;gap:16px;width:max-content;animation:ports-move 60s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes ports-move{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
}
.container-chip{position:relative;flex:0 0 auto;display:flex;align-items:center;color:#fff;font-weight:800;letter-spacing:.04em;padding:14px 26px;font-size:.92rem;border-radius:4px;border:1.5px solid rgba(255,255,255,.38);box-shadow:0 5px 14px rgba(0,0,0,.35);background:repeating-linear-gradient(90deg,#0e4a87 0 11px,#0b3c6e 11px 22px);text-shadow:0 1px 3px rgba(0,0,0,.5)}
.container-chip:nth-child(4n+2){background:repeating-linear-gradient(90deg,#a04a24 0 11px,#8a3f1f 11px 22px)}
.container-chip:nth-child(4n+3){background:repeating-linear-gradient(90deg,#2e6b4f 0 11px,#275c44 11px 22px)}
.container-chip:nth-child(4n){background:repeating-linear-gradient(90deg,#b07d1a 0 11px,#9a6d15 11px 22px)}
.container-chip::before,.container-chip::after{content:"";position:absolute;width:7px;height:7px;background:#f4a61d;border-radius:1.5px;top:4px}
.container-chip::before{left:4px}
.container-chip::after{right:4px}
.container-rail{height:5px;background:rgba(255,255,255,.28);border-radius:3px;margin-top:16px;position:relative}
.container-rail::before,.container-rail::after{content:"";position:absolute;top:-3px;width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.45)}
.container-rail::before{left:12%}
.container-rail::after{right:12%}

/* Even 2-column grid (for pages where card count doesn't divide by 3) */
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:720px){.grid-2{grid-template-columns:1fr}}

/* Mobile refinements */
@media(max-width:640px){
  .container{padding:0 16px}
  section{padding:44px 0}
  .hero{padding:52px 0}
  .hero h1{font-size:1.7rem}
  .hero p{font-size:1rem}
  .hero .btn,.cta-band .btn{display:block;text-align:center;margin:0 0 12px}
  .btn-outline{margin-left:0}
  .brand img{height:58px}
  nav.menu{justify-content:center;gap:2px;width:100%}
  nav.menu a{padding:7px 10px;font-size:.88rem}
  .nav{justify-content:center}
  .topbar .container{justify-content:center;text-align:center}
  .call-strip{font-size:.92rem;padding:9px 10px}
  .call-strip .sep{margin:0 8px}
  .stats .container{gap:12px}
  .stats .num{font-size:1.25rem}
  .section-head h2{font-size:1.55rem}
  .ports-banner{padding:46px 0}
  .ports-banner h2{font-size:1.35rem}
  .cta-band h2{font-size:1.5rem}
  .form-wrap{padding:24px 16px}
  fieldset{padding:14px}
  .map-embed{height:260px}
  .ecuador-hero h1{font-size:1.7rem !important}
  .wa-float{width:50px;height:50px;font-size:1.5rem;bottom:16px;right:16px}
}

/* Utility */
.center{text-align:center}
.mt-2{margin-top:20px}
.badge{display:inline-block;background:var(--sky);color:var(--navy);font-weight:700;font-size:.78rem;padding:4px 12px;border-radius:20px;margin:3px;letter-spacing:.02em}
