:root{
  --navy-900:#101C3A;
  --navy:#1B2A55;
  --navy-soft:#24356B;
  --blue:#2D5FA6;
  --sky:#E9F0F9;
  --bg:#F7F9FC;
  --ink:#33415C;
  --line:#DEE6F0;
  --route:#FFC43D; /* signal yellow — dashed route motif only */
}
html{scroll-behavior:smooth}
body{font-family:'Barlow',sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden}
h1,h2,h3,h4,h5,.display-font{font-family:'Barlow Condensed',sans-serif;color:var(--navy);letter-spacing:.02em}
a{transition:color .25s}
.container-wide{max-width:1240px}

/* ---------- Topbar ---------- */
.topbar{background:var(--navy-900);color:#B9C4DE;font-size:.85rem}
.topbar a{color:#DCE4F5;text-decoration:none}
.topbar a:hover{color:var(--route)}
.topbar .sep{opacity:.35;margin:0 .75rem}

/* ---------- Navbar ---------- */
.navbar-tt{background:#fff;box-shadow:0 1px 0 var(--line);transition:box-shadow .3s,padding .3s;padding:.9rem 1rem}
.navbar-tt.scrolled{box-shadow:0 6px 24px rgba(16,28,58,.10);padding:.45rem 1rem}
.navbar-tt .navbar-brand img{height:54px;transition:height .3s}
.navbar-tt.scrolled .navbar-brand img{height:54px}
.navbar-tt .nav-link{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:1.05rem;letter-spacing:.08em;color:var(--navy)!important;margin:0 .55rem;position:relative;padding:.5rem .2rem}
.navbar-tt .nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:.15rem;border-bottom:3px solid var(--route);transition:right .3s ease}
.navbar-tt .nav-link:hover::after,.navbar-tt .nav-link.active::after{right:0}
.navbar-tt .navbar-toggler{border:1px solid var(--line);padding:.35rem .6rem}
.navbar-tt .navbar-toggler:focus{outline:0;box-shadow:0 0 0 3px rgba(45,95,166,.25)}
.navbar-tt .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231B2A55' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
.btn-quote,.navbar-tt .nav-link.btn-quote{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.08em;background:var(--navy);color:#fff!important;border-radius:3px;padding:.55rem 1.4rem;transition:background .3s,transform .3s}
.btn-quote:hover{background:var(--blue);transform:translateY(-2px);text-decoration:none}
.navbar-tt .nav-link.btn-quote::after{display:none}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;min-height:560px;display:flex;align-items:center;color:#fff;background:var(--navy-900);padding:4.5rem 0 6rem}
.hero-bg{position:absolute;inset:0;background:url('../images/hero-port.jpg') center/cover no-repeat;animation:heroZoom 18s ease-out forwards}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(16,28,58,.92) 25%,rgba(16,28,58,.55) 60%,rgba(16,28,58,.25))}
.hero .eyebrow{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.35em;font-size:.95rem;color:var(--route);text-transform:uppercase}
.hero h1{color:#fff;font-size:calc(2.4rem + 2.6vw);font-weight:700;line-height:1.05;text-transform:uppercase}
.hero p.lead{color:#C9D4EC;max-width:560px;font-size:1.15rem}
.btn-hero{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.1em;font-size:1.05rem;border-radius:3px;padding:.8rem 2rem;transition:all .3s}
.btn-hero-primary{background:var(--route);color:var(--navy-900)}
.btn-hero-primary:hover{background:#fff;color:var(--navy-900);transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.35)}
.btn-hero-ghost{border:1px solid rgba(255,255,255,.5);color:#fff}
.btn-hero-ghost:hover{border-color:#fff;background:rgba(255,255,255,.1);color:#fff;transform:translateY(-3px)}

/* Route strip — signature dashed-route motif from the logo */
.route-strip{position:absolute;left:0;right:0;bottom:0;z-index:2;background:rgba(13,22,46,.72);backdrop-filter:blur(4px);border-top:1px solid rgba(255,255,255,.12)}
.route-strip .item{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.18em;font-size:.95rem;color:#DCE4F5;text-transform:uppercase;padding:1rem .5rem;white-space:nowrap}
.route-dash{flex:1 1 40px;min-width:24px;height:0;border-top:2px dashed rgba(255,196,61,.55);position:relative;top:1px}

/* ---------- Sections ---------- */
.section{padding:5.5rem 0}
.section-eyebrow{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.3em;font-size:.9rem;color:var(--blue);text-transform:uppercase;display:inline-block;position:relative;padding-bottom:.4rem;margin-bottom:.8rem}
.section-eyebrow::after{content:"";position:absolute;left:0;bottom:0;width:100%;border-bottom:2px dashed var(--route)}
.section h2{font-size:2.6rem;font-weight:700;text-transform:uppercase}

/* Fact band */
.fact-band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fact{padding:2.2rem 1rem;text-align:center}
.fact .num{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:3rem;color:var(--navy);line-height:1}
.fact .lbl{letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;color:var(--ink);margin-top:.3rem}
.fact + .fact{border-left:1px dashed var(--line)}
@media(max-width:767px){.fact + .fact{border-left:0;border-top:1px dashed var(--line)}}

/* About */
.about-img-wrap{position:relative}
.about-img-wrap img{width:100%;border-radius:4px;box-shadow:0 18px 44px rgba(16,28,58,.18)}
.about-img-wrap::before{content:"";position:absolute;top:-18px;left:-18px;right:40%;bottom:40%;border:2px dashed var(--route);border-radius:4px;z-index:-1}
.about-badge{position:absolute;right:-14px;bottom:26px;background:var(--navy);color:#fff;border-radius:4px;padding:1rem 1.3rem;box-shadow:0 14px 30px rgba(16,28,58,.3)}
.about-badge .n{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:2rem;line-height:1;color:var(--route)}
.about-badge .t{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}

/* Services */
.svc-card{position:relative;border:0;border-radius:4px;overflow:hidden;box-shadow:0 8px 24px rgba(16,28,58,.08);transition:transform .35s ease,box-shadow .35s ease;background:#fff;height:100%}
.svc-card:hover{transform:translateY(-8px);box-shadow:0 20px 44px rgba(16,28,58,.16)}
.svc-media{height:210px;overflow:hidden;position:relative}
.svc-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.svc-card:hover .svc-media img{transform:scale(1.07)}
.svc-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,28,58,.55),rgba(16,28,58,0) 55%)}
.svc-num{position:absolute;top:14px;left:16px;z-index:2;font-family:'Barlow Condensed',sans-serif;font-weight:700;color:#fff;background:rgba(16,28,58,.72);border-radius:3px;padding:.15rem .55rem;letter-spacing:.1em;font-size:.9rem}
.svc-body{padding:1.4rem 1.5rem 1.6rem;position:relative}
.svc-body::before{content:"";position:absolute;top:0;left:1.5rem;width:44px;border-top:3px solid var(--route);transition:width .35s ease}
.svc-card:hover .svc-body::before{width:calc(100% - 3rem)}
.svc-body h3{font-size:1.45rem;font-weight:600;margin:.6rem 0 .5rem;text-transform:uppercase}
.svc-body p{font-size:.95rem;margin-bottom:1rem}
.svc-link{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.12em;color:var(--blue);text-transform:uppercase;font-size:.95rem;text-decoration:none}
.svc-link:hover{color:var(--navy);text-decoration:none}
.svc-link .arr{display:inline-block;transition:transform .3s}
.svc-link:hover .arr{transform:translateX(6px)}

/* Why choose — navy band */
.why{background:linear-gradient(160deg,var(--navy-900),var(--navy) 70%);color:#C9D4EC;position:relative;overflow:hidden}
.why::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1400px;transform:translateX(-50%);background:url('../images/hero-port.jpg') center/cover;opacity:.06;pointer-events:none}
.why h2,.why h3{color:#fff}
.why-item{padding:2rem 1.6rem;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(255,255,255,.04);height:100%;transition:transform .35s,background .35s,border-color .35s}
.why-item:hover{transform:translateY(-6px);background:rgba(255,255,255,.08);border-color:rgba(255,196,61,.5)}
.why-icon{width:56px;height:56px;border-radius:50%;border:2px dashed var(--route);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;font-size:1.5rem;color:var(--route);transition:transform .5s}
.why-item:hover .why-icon{transform:rotate(360deg)}
.why-item h3{font-size:1.4rem;text-transform:uppercase}
.why-item p{font-size:.95rem;color:#B9C4DE}

/* Tools teaser */
.tools-teaser{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 40px rgba(16,28,58,.08);overflow:hidden}
.tools-teaser .tools-copy{padding:2.6rem 2.4rem}
.tools-visual{background:var(--sky);min-height:260px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.calc-mock{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px rgba(16,28,58,.12);padding:1.2rem 1.4rem;width:82%;transform:rotate(-2deg);transition:transform .4s}
.tools-teaser:hover .calc-mock{transform:rotate(0)}
.calc-row{display:flex;align-items:center;margin:.5rem 0}
.calc-lbl{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:.85rem;letter-spacing:.08em;color:var(--navy);width:92px;text-transform:uppercase}
.calc-field{flex:1;height:26px;background:var(--bg);border:1px solid var(--line);border-radius:3px}
.calc-btn{background:var(--navy);color:#fff;font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.1em;font-size:.85rem;border-radius:3px;text-align:center;padding:.4rem;margin-top:.8rem}

/* News */
.news-card{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:transform .35s,box-shadow .35s;height:100%}
.news-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(16,28,58,.12)}
.news-media{height:190px;overflow:hidden}
.news-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.news-card:hover .news-media img{transform:scale(1.06)}
.news-body{padding:1.3rem 1.4rem 1.5rem}
.news-date{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.14em;font-size:.8rem;color:var(--blue);text-transform:uppercase}
.news-body h3{font-size:1.25rem;font-weight:600;margin:.45rem 0 .5rem}
.news-body p{font-size:.92rem}

/* CTA band */
.cta-band{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;left:-4%;right:-4%;bottom:0;border-top:2px dashed rgba(255,196,61,.35)}
.cta-band h2{color:#fff;margin-bottom:0}

/* Footer */
footer{background:var(--navy-900);color:#96A3C4;font-size:.92rem}
footer h5{color:#fff;font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem}
footer a{color:#B9C4DE;text-decoration:none}
footer a:hover{color:var(--route);text-decoration:none}
footer .foot-nav a{display:block;margin-bottom:.5rem}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);font-size:.82rem}
.foot-bottom .powered-credit{color:rgba(255,255,255,.35)}
.foot-bottom .powered-by,.foot-bottom .powered-by:hover,.foot-bottom .powered-by:focus,.foot-bottom .powered-by:active{color:inherit;text-decoration:none}

/* Back to top */
#toTop{position:fixed;right:22px;bottom:22px;width:44px;height:44px;border-radius:3px;background:var(--navy);color:#fff;border:0;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:1050}
#toTop.show{opacity:1;pointer-events:auto}
#toTop:hover{background:var(--blue);transform:translateY(-3px)}

@media(max-width:991px){
  .hero{min-height:auto;padding:3.5rem 0 5.5rem}
  .route-strip .d-none-sm{display:none}
  .section{padding:4rem 0}
  .section h2{font-size:2.1rem}
  .about-badge{right:8px}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- Inner pages: shared ---------- */
.page-hero{position:relative;background:linear-gradient(120deg,var(--navy-900),var(--navy) 75%);color:#fff;padding:4.6rem 0 3.8rem;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:url('../images/hero-port.jpg') center/cover;opacity:.13;pointer-events:none}
.page-hero .container-wide{position:relative}
.page-hero h1{color:#fff;text-transform:uppercase;font-weight:700;font-size:calc(2rem + 1.4vw);margin:0}
.page-hero .lead-sub{color:#C9D4EC;max-width:640px;margin-top:.8rem;margin-bottom:0}
.breadcrumb-tt{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:.85rem;margin-bottom:.7rem;color:#8FA0C6}
.breadcrumb-tt a{color:#B9C4DE;text-decoration:none}
.breadcrumb-tt a:hover{color:var(--route)}
.breadcrumb-tt .cur{color:var(--route)}
.breadcrumb-tt .bsep{margin:0 .5rem;opacity:.5}

/* Forms */
.form-tt label{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.88rem;color:var(--navy);margin-bottom:.35rem}
.form-tt .form-control{border:1px solid var(--line);border-radius:3px;padding:.65rem .85rem;height:auto;font-size:.95rem;color:var(--ink);transition:border-color .25s,box-shadow .25s}
.form-tt .form-control:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(45,95,166,.15)}

/* ---------- Footer legal links ---------- */
.legal-links a{color:#B9C4DE;text-decoration:none}
.legal-links a:hover{color:var(--route)}
.legal-links .lsep{margin:0 .6rem;opacity:.4}

/* ---------- Cookie consent banner ---------- */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1080;background:var(--navy-900);color:#C9D4EC;box-shadow:0 -6px 24px rgba(16,28,58,.28);border-top:2px dashed rgba(255,196,61,.4);transform:translateY(110%);transition:transform .4s ease;padding:1.1rem 0}
.cookie-banner.show{transform:translateY(0)}
.cookie-text{font-size:.92rem;max-width:760px;margin-right:1.5rem}
.cookie-text a{color:#fff;text-decoration:underline}
.cookie-text a:hover{color:var(--route)}
.cookie-actions{display:flex;flex-shrink:0;gap:.7rem}
.btn-ck{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.9rem;border-radius:3px;padding:.55rem 1.6rem;cursor:pointer;transition:all .25s;border:1px solid transparent}
.btn-ck-solid{background:var(--route);color:var(--navy-900);border-color:var(--route)}
.btn-ck-solid:hover{background:#fff;border-color:#fff}
.btn-ck-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-ck-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
@media(max-width:767px){.cookie-actions .btn-ck{flex:1}.cookie-text{margin-right:0}}
