/* ==========================================================================
   Blue Radiance Marine Company — Design System
   Industrial-premium: deep navy, warm paper, one azure accent.
   Archivo display / Inter text. Editorial scale, restrained motion.
   ========================================================================== */

:root{
  --deep:#04090F;
  --ink:#070E19;
  --navy:#0B1626;
  --navy-2:#101F33;
  --paper:#F7F7F5;
  --paper-2:#EFF0ED;
  --white:#FFFFFF;
  --text:#131C26;
  --muted:#5A6672;
  --fog:rgba(232,238,244,.80);
  --fog-dim:rgba(232,238,244,.52);
  --azure:#2E8BFF;
  --azure-lt:#7FB6FF;
  --azure-ink:#1465C8;
  --line:rgba(12,20,32,.13);
  --line-soft:rgba(12,20,32,.07);
  --line-d:rgba(230,238,246,.14);
  --line-d-soft:rgba(230,238,246,.07);
  --font-display:'Archivo',system-ui,sans-serif;
  --font-text:'Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --nav-h:78px;
  --gut:clamp(20px,4vw,64px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

body{
  font-family:var(--font-text);
  font-size:clamp(1rem,.96rem + .18vw,1.075rem);
  line-height:1.75;
  color:var(--text);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--azure);color:#fff}
:focus-visible{outline:2px solid var(--azure);outline-offset:3px;border-radius:2px}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:1200;
  background:var(--azure);color:#fff;padding:12px 20px;font-weight:600;text-decoration:none;
}
.skip-link:focus{left:0}

/* ---------- Typography ---------- */

h1,h2,h3,h4{font-family:var(--font-display);font-weight:650;line-height:1.06;letter-spacing:-.022em;color:inherit}

.display-1{font-size:clamp(3rem,7.4vw,6.4rem);font-weight:700;letter-spacing:-.035em;line-height:.98}
.display-2{font-size:clamp(2.1rem,4.4vw,3.75rem);letter-spacing:-.028em;line-height:1.04}
.display-3{font-size:clamp(1.5rem,2.5vw,2.15rem);letter-spacing:-.018em}
.display-4{font-size:clamp(1.15rem,1.5vw,1.32rem);letter-spacing:-.008em}

.kicker{
  display:flex;align-items:center;gap:14px;
  font-family:var(--font-display);font-size:.74rem;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--azure);
}
.kicker::before{content:'';width:32px;height:1px;background:currentColor;flex:none}
.on-dark .kicker,.on-deep .kicker{color:var(--azure-lt)}

.lede{font-size:clamp(1.05rem,1.15rem + .2vw,1.28rem);line-height:1.72;color:var(--muted);max-width:60ch}
.on-dark .lede,.on-deep .lede{color:var(--fog)}

.prose p{margin-bottom:1.3em;color:var(--muted);max-width:64ch}
.on-dark .prose p{color:var(--fog)}
.prose p:last-child{margin-bottom:0}

.pull{
  font-family:var(--font-display);font-weight:500;font-style:italic;
  font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.5;letter-spacing:-.01em;
  border-left:2px solid var(--azure);padding-left:clamp(18px,2.5vw,30px);
  color:var(--text);max-width:52ch;
}
.on-dark .pull,.on-deep .pull{color:#fff}

/* ---------- Layout ---------- */

.shell{width:min(1280px,calc(100% - (var(--gut) * 2)));margin-inline:auto}
.shell-wide{width:min(1600px,calc(100% - (var(--gut) * 2)));margin-inline:auto}

.section{padding-block:clamp(84px,10vw,160px)}
.section-tight{padding-block:clamp(56px,7vw,100px)}

.on-dark{background:var(--ink);color:var(--white)}
.on-deep{background:var(--deep);color:var(--white)}
.on-paper-2{background:var(--paper-2)}

.sec-head{display:grid;gap:22px;margin-bottom:clamp(44px,6vw,84px);max-width:900px;position:relative}
.sec-head.is-center{margin-inline:auto;text-align:center;justify-items:center}
.sec-head.is-center .kicker{justify-content:center}
.sec-head.is-center .kicker::after{content:'';width:32px;height:1px;background:currentColor;flex:none}
.sec-head.is-center .lede{margin-inline:auto}

.hairline{border:none;border-top:1px solid var(--line)}
.on-dark .hairline,.on-deep .hairline{border-top-color:var(--line-d)}

/* ---------- Buttons ---------- */

.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:17px 32px;
  font-family:var(--font-display);font-size:.94rem;font-weight:600;letter-spacing:.015em;
  text-decoration:none;color:#fff;background:var(--azure);
  border:1px solid var(--azure);border-radius:2px;cursor:pointer;
  transition:color .4s var(--ease),border-color .4s var(--ease);
}
.btn::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:var(--azure-ink);
  transform:scaleX(0);transform-origin:right;
  transition:transform .5s var(--ease);
}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn > *{position:relative;z-index:1}
.btn .arr{position:relative;z-index:1;transition:transform .4s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}

.btn-ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.btn-ghost::before{background:rgba(255,255,255,.12)}
.btn-ghost:hover{border-color:#fff}

.btn-ghost-ink{background:transparent;border-color:var(--line);color:var(--text)}
.btn-ghost-ink::before{background:var(--text)}
.btn-ghost-ink:hover{color:#fff;border-color:var(--text)}

.link-arrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:600;font-size:.97rem;
  color:var(--azure);text-decoration:none;position:relative;padding-bottom:3px;
}
.on-dark .link-arrow{color:var(--azure-lt)}
.link-arrow::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .45s var(--ease);
}
.link-arrow:hover::after{transform:scaleX(1);transform-origin:left}
.link-arrow .arr{transition:transform .4s var(--ease)}
.link-arrow:hover .arr{transform:translateX(6px)}

/* ---------- Navigation ---------- */

.nav{
  position:fixed;inset:0 0 auto 0;z-index:900;height:var(--nav-h);
  display:flex;align-items:center;
  border-bottom:1px solid transparent;
  transition:background .45s ease,border-color .45s ease,height .45s var(--ease);
}
.nav.is-solid,.nav.is-scrolled{
  background:rgba(4,9,15,.88);
  -webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--line-d-soft);
}
.nav-progress{
  position:absolute;left:0;bottom:-1px;height:2px;width:100%;
  background:var(--azure);transform:scaleX(var(--p,0));transform-origin:left;
  opacity:0;transition:opacity .4s ease;
}
.nav.is-scrolled .nav-progress{opacity:1}

/* Matches .shell exactly so the brand mark aligns to the content grid. */
.nav-inner{
  width:min(1280px,calc(100% - (var(--gut) * 2)));margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
}

.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:#fff}
.brand-mark{
  width:auto;height:56px;flex:none;display:block;
  transition:opacity .4s ease,transform .5s var(--ease);
}
.brand:hover .brand-mark{opacity:.9;transform:translateY(-1px)}
@media (max-width:520px){ .brand-mark{height:48px} }
.brand-name{display:flex;flex-direction:column;line-height:1.1}
.brand-name .t{font-family:var(--font-display);font-weight:650;font-size:1rem;letter-spacing:.05em}
.brand-name .s{font-size:.6rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--fog-dim)}

.nav-links{display:flex;align-items:center;gap:30px;list-style:none}
.nav-links a{
  position:relative;color:var(--fog);text-decoration:none;
  font-size:.92rem;font-weight:500;letter-spacing:.005em;
  transition:color .3s ease;padding-block:8px;
}
.nav-links a:not(.nav-cta)::after{
  content:'';position:absolute;left:0;bottom:2px;width:100%;height:1px;background:var(--azure);
  transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);
}
.nav-links a:hover{color:#fff}
.nav-links a:not(.nav-cta):hover::after{transform:scaleX(1);transform-origin:left}
.nav-links a.active{color:#fff}
.nav-links a.active:not(.nav-cta)::after{transform:scaleX(1)}
.nav-cta{margin-left:8px;padding:12px 22px;font-size:.86rem;color:#fff!important}

.nav-burger{
  display:none;width:44px;height:44px;flex:none;background:none;border:0;cursor:pointer;
  flex-direction:column;justify-content:center;align-items:center;gap:7px;
}
.nav-burger span{width:24px;height:1.5px;background:#fff;transition:transform .4s var(--ease),opacity .25s ease}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}

.mobile-menu{
  position:fixed;inset:0;z-index:890;background:var(--deep);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:calc(var(--nav-h) + 30px) var(--gut) 36px;
  opacity:0;visibility:hidden;
  transition:opacity .45s ease,visibility 0s linear .45s;
  overflow-y:auto;
}
.mobile-menu.is-open{opacity:1;visibility:visible;transition-delay:0s}
.mobile-menu ul{list-style:none;display:grid;gap:2px}
.mobile-menu li{
  opacity:0;transform:translateY(16px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.mobile-menu.is-open li{opacity:1;transform:none;transition-delay:calc(.05s + var(--i,0)*.045s)}
.mobile-menu a{
  display:flex;align-items:baseline;gap:16px;color:#fff;text-decoration:none;
  font-family:var(--font-display);font-weight:650;
  font-size:clamp(1.65rem,6vw,2.3rem);letter-spacing:-.02em;
  padding-block:9px;border-bottom:1px solid var(--line-d-soft);
}
.mobile-menu a .idx{font-size:.72rem;font-weight:500;color:var(--azure);letter-spacing:.14em}
.mobile-menu a.active{color:var(--azure-lt)}
.mobile-menu-foot{display:grid;gap:2px;color:var(--fog-dim);font-size:.88rem;padding-top:26px}
.mobile-menu-foot a{display:inline-block;padding-block:6px;color:var(--fog);text-decoration:none;font-size:.95rem}

/* ---------- Hero ---------- */

.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  color:#fff;overflow:hidden;isolation:isolate;
}
.hero-media{position:absolute;inset:0;z-index:-3}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero.kenburns .hero-media img{animation:kenburns 20s var(--ease) both}
@keyframes kenburns{from{transform:scale(1.1)}to{transform:scale(1)}}

.hero-scrim{
  position:absolute;inset:0;z-index:-2;
  background:
    linear-gradient(to top,rgba(4,9,15,.95) 0%,rgba(4,9,15,.55) 34%,rgba(4,9,15,.26) 60%,rgba(4,9,15,.62) 100%),
    linear-gradient(to right,rgba(4,9,15,.62),rgba(4,9,15,0) 62%);
}
/* Fine technical grid — reads as marine chart, not decoration */
.hero-grid{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--line-d-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-d-soft) 1px,transparent 1px);
  background-size:clamp(60px,7vw,110px) clamp(60px,7vw,110px);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 45%,#000 30%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 45%,#000 30%,transparent 78%);
  opacity:.85;
}

.hero-content{padding-block:clamp(56px,8vw,104px) clamp(36px,4.4vw,60px);position:relative}
.hero-content .kicker{color:var(--azure-lt);margin-bottom:clamp(20px,2.6vw,30px)}
.hero-title{max-width:16ch}
.hero-title .ln{display:block;overflow:hidden}
.hero-title .ln > span{display:block;animation:riseIn 1.15s var(--ease) both}
.hero-title .ln:nth-child(2) > span{animation-delay:.11s}
.hero-title .accent{color:var(--azure-lt)}
@keyframes riseIn{from{transform:translateY(102%)}to{transform:translateY(0)}}

.hero-sub{
  margin-top:clamp(22px,2.6vw,32px);
  font-size:clamp(1.04rem,1.1rem + .22vw,1.28rem);line-height:1.72;
  color:var(--fog);max-width:54ch;
  animation:fadeUp 1s var(--ease) .34s both;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(30px,3.6vw,44px);animation:fadeUp 1s var(--ease) .46s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

.hero-stats{border-top:1px solid var(--line-d);background:rgba(4,9,15,.5);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hero-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);padding-block:20px;gap:22px}
.hstat{display:grid;gap:3px}
.hstat .v{font-family:var(--font-display);font-weight:650;font-size:clamp(1rem,1.1vw,1.16rem);letter-spacing:.005em}
.hstat .l{font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--fog-dim)}

.scroll-cue{
  position:absolute;right:0;bottom:clamp(36px,4.4vw,60px);
  display:flex;align-items:center;gap:12px;
  font-size:.66rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  color:var(--fog-dim);
}
.scroll-cue i{display:block;width:1px;height:44px;background:linear-gradient(var(--azure),transparent);animation:cueDrop 2.2s var(--ease-io) infinite}
@keyframes cueDrop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.hero.hero-page{min-height:min(82svh,760px)}
.hero.hero-page .hero-title{max-width:20ch}

/* ---------- Flagship split panels ---------- */

.flagship{display:grid;grid-template-columns:1.02fr 1fr;gap:clamp(36px,5.5vw,96px);align-items:center}
.flagship + .flagship{margin-top:clamp(80px,10vw,150px);padding-top:clamp(80px,10vw,150px);border-top:1px solid var(--line)}
.on-dark .flagship + .flagship{border-top-color:var(--line-d)}
.flagship .fl-copy{display:grid;gap:22px;justify-items:start;align-content:start}
.flagship .fl-copy .num{font-family:var(--font-display);font-weight:600;font-size:.82rem;letter-spacing:.26em;color:var(--azure)}
.on-dark .flagship .fl-copy .num{color:var(--azure-lt)}
.flagship ul{list-style:none;display:grid;gap:0;margin-top:2px;width:100%;border-top:1px solid var(--line)}
.on-dark .flagship ul{border-top-color:var(--line-d)}
.flagship li{
  display:flex;gap:14px;align-items:baseline;
  color:var(--muted);font-size:.98rem;line-height:1.6;
  padding-block:13px;border-bottom:1px solid var(--line);
}
.on-dark .flagship li{color:var(--fog);border-bottom-color:var(--line-d)}
.flagship li::before{content:'';flex:none;width:12px;height:1px;background:var(--azure);transform:translateY(-4px)}
.flagship.is-flip .fl-media{order:2}

.fl-media{position:relative}
.fl-media .frame{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:4/4.5;background:var(--navy)}
.fl-media .frame.landscape{aspect-ratio:3/2.05}
.fl-media .frame.portrait{aspect-ratio:3/4.1}
.fl-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.fl-media:hover img{transform:scale(1.045)}
.fl-media .tag{
  position:absolute;left:0;bottom:0;background:var(--deep);color:#fff;
  font-family:var(--font-display);font-size:.68rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;padding:12px 18px;
}
.fl-media .corner{position:absolute;top:14px;right:14px;width:26px;height:26px;border-top:1px solid rgba(255,255,255,.5);border-right:1px solid rgba(255,255,255,.5)}

/* ---------- Service grid ---------- */

.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.on-dark .svc-grid,.on-deep .svc-grid{background:var(--line-d);border-color:var(--line-d)}
.svc-cell{
  position:relative;background:var(--paper);
  padding:clamp(26px,2.9vw,44px);
  display:grid;gap:12px;align-content:start;
  text-decoration:none;color:var(--text);
  transition:background .45s var(--ease);
  overflow:hidden;
}
.svc-cell::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--azure);
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease);
}
.svc-cell:hover{background:var(--white)}
.svc-cell:hover::after{transform:scaleX(1)}
.svc-cell .idx{font-family:var(--font-display);font-size:.74rem;font-weight:600;letter-spacing:.2em;color:var(--azure)}
.svc-cell h3{font-size:1.18rem;letter-spacing:-.012em}
.svc-cell p{font-size:.94rem;line-height:1.68;color:var(--muted)}
.svc-cell .arr{
  position:absolute;top:clamp(22px,2.5vw,40px);right:clamp(22px,2.5vw,40px);
  color:var(--azure);opacity:0;transform:translate(-8px,4px);
  transition:opacity .4s ease,transform .4s var(--ease);
}
.svc-cell:hover .arr{opacity:1;transform:none}
.on-dark .svc-cell{background:var(--ink);color:#fff}
.on-dark .svc-cell:hover{background:var(--navy)}
.on-dark .svc-cell p{color:var(--fog)}
.on-dark .svc-cell .idx{color:var(--azure-lt)}

.svc-grid.is-flagship{grid-template-columns:repeat(2,1fr)}
.svc-grid.is-flagship .svc-cell{padding:clamp(32px,4vw,58px);gap:16px}
.svc-grid.is-flagship h3{font-size:clamp(1.4rem,2.2vw,1.85rem)}

/* Additional services — deliberately one register quieter than core */
.addl-head{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 22px;
  margin-top:clamp(44px,5vw,72px);margin-bottom:20px;
}
.addl-note{font-size:.92rem;color:var(--fog-dim)}
.on-light .addl-note{color:var(--muted)}
.svc-grid.is-addl{grid-template-columns:repeat(2,1fr)}
.svc-grid.is-addl .svc-cell{padding:clamp(22px,2.4vw,34px);gap:10px}
.svc-grid.is-addl h3{font-size:1.05rem}
.svc-grid.is-addl p{font-size:.9rem}

/* Flagship facets — chartering / management as two faces of one service */
.split-facets{
  display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,3vw,44px);
  width:100%;border-top:1px solid var(--line);padding-top:clamp(20px,2.4vw,28px);margin-top:4px;
}
.on-dark .split-facets{border-top-color:var(--line-d)}
.facet{display:grid;gap:12px;align-content:start}
.facet-k{
  font-family:var(--font-display);font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--azure);
}
.on-dark .facet-k{color:var(--azure-lt)}
.facet ul{list-style:none;display:grid;gap:0;border-top:0}
.facet li{
  display:flex;gap:12px;align-items:baseline;
  color:var(--muted);font-size:.95rem;line-height:1.55;
  padding-block:10px;border-bottom:1px solid var(--line);
}
.on-dark .facet li{color:var(--fog);border-bottom-color:var(--line-d)}
.facet li::before{content:'';flex:none;width:10px;height:1px;background:var(--azure);transform:translateY(-4px)}
.facet .link-arrow{font-size:.9rem;margin-top:4px}

/* ---------- Checklist matrix (charter types, deliverables) ---------- */

.matrix{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,64px)}
.matrix li{
  list-style:none;display:flex;align-items:center;gap:14px;
  padding-block:15px;border-bottom:1px solid var(--line);
  font-size:.98rem;line-height:1.5;
}
.on-dark .matrix li,.on-deep .matrix li{border-bottom-color:var(--line-d);color:var(--fog)}
.matrix li .tick{
  flex:none;width:17px;height:17px;border-radius:2px;
  background:var(--azure);display:grid;place-items:center;
}
.matrix li .tick svg{width:10px;height:10px;color:#fff}

/* ---------- Process steps ---------- */

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.on-dark .steps,.on-deep .steps{background:var(--line-d);border-color:var(--line-d)}
.step{background:var(--paper);padding:clamp(24px,2.6vw,36px);display:grid;gap:11px;align-content:start}
.on-dark .step{background:var(--ink)}
.step .n{font-family:var(--font-display);font-size:.7rem;font-weight:600;letter-spacing:.2em;color:var(--azure)}
.on-dark .step .n{color:var(--azure-lt)}
.step h3{font-size:1.08rem}
.step p{font-size:.92rem;line-height:1.65;color:var(--muted)}
.on-dark .step p{color:var(--fog)}

/* ---------- Value / trust columns ---------- */

.val-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(26px,3.4vw,52px)}
.val{display:grid;gap:13px;align-content:start}
.val .rule{width:30px;height:2px;background:var(--azure)}
.val h3{font-size:1.08rem;letter-spacing:-.008em}
.val p{font-size:.94rem;line-height:1.68;color:var(--fog)}
.val-grid.on-light .val p{color:var(--muted)}

/* ---------- Vision / Mission / Values ---------- */

.vmv{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px)}
.vmv-card{
  padding:clamp(28px,3.2vw,44px);border-radius:3px;
  border:1px solid var(--line);background:var(--white);
  display:grid;gap:16px;align-content:start;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease);
}
.vmv-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(12,20,32,.09)}
.vmv-card.is-feature{background:var(--ink);border-color:var(--ink);color:#fff}
.vmv-card.is-feature p{color:var(--fog)}
.vmv-card h3{font-size:1.24rem}
.vmv-card p{font-size:.98rem;line-height:1.74;color:var(--muted)}
.vmv-icon{
  width:38px;height:38px;border-radius:2px;display:grid;place-items:center;
  background:rgba(46,139,255,.12);color:var(--azure);
}
.is-feature .vmv-icon{background:rgba(46,139,255,.2);color:var(--azure-lt)}
.vmv-icon svg{width:18px;height:18px}

/* ---------- Chips (values, sectors, ports) ---------- */

.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{
  display:inline-flex;align-items:center;gap:10px;
  padding:11px 18px;border:1px solid var(--line);border-radius:2px;
  font-size:.9rem;font-weight:500;background:var(--white);
  transition:border-color .4s ease,transform .4s var(--ease);
}
.chip:hover{border-color:var(--azure);transform:translateY(-2px)}
.chip .dot{width:5px;height:5px;border-radius:50%;background:var(--azure);flex:none}
.on-dark .chip,.on-deep .chip{background:transparent;border-color:var(--line-d);color:var(--fog)}
.on-dark .chip:hover,.on-deep .chip:hover{border-color:var(--azure);color:#fff}

.sector-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(28px,4vw,64px)}
.sector-grid li{
  list-style:none;display:flex;align-items:center;gap:14px;
  padding-block:16px;border-bottom:1px solid var(--line-d);
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1rem,1.3vw,1.14rem);color:#fff;letter-spacing:-.005em;
}
.sector-grid li::before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:var(--azure)}

/* ---------- Region band ---------- */

.region-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,5vw,80px);align-items:start}
.port-list{display:grid;gap:0;list-style:none;border-top:1px solid var(--line-d)}
.port-list li{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-block:17px;border-bottom:1px solid var(--line-d);
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.05rem,1.5vw,1.3rem);color:#fff;letter-spacing:-.01em;
}
.port-list li .meta{font-family:var(--font-text);font-size:.76rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fog-dim)}
.coords{font-family:var(--font-display);font-size:.76rem;font-weight:500;letter-spacing:.26em;color:var(--fog-dim);text-transform:uppercase}

/* ---------- Company profile showcase ---------- */

.profile-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,96px);align-items:center}
.profile-cover{position:relative;perspective:1400px}
.profile-cover .sheet{
  position:relative;border-radius:2px;overflow:hidden;
  box-shadow:0 34px 80px rgba(4,9,15,.42),0 4px 14px rgba(4,9,15,.24);
  transform:rotateY(-9deg) rotateX(1.5deg);
  transition:transform .8s var(--ease),box-shadow .8s var(--ease);
}
.profile-cover:hover .sheet{transform:rotateY(-3deg) rotateX(0) translateY(-6px);box-shadow:0 44px 94px rgba(4,9,15,.5)}
.profile-cover .sheet::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(255,255,255,.16),rgba(255,255,255,0) 42%);
  pointer-events:none;
}
.profile-cover .spine{position:absolute;left:0;top:0;bottom:0;width:9px;background:linear-gradient(90deg,rgba(4,9,15,.5),transparent)}
.profile-meta{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:24px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fog-dim)}
.profile-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.profile-contents{display:grid;gap:0;margin-top:8px;border-top:1px solid var(--line-d)}
.profile-contents li{
  list-style:none;display:flex;align-items:baseline;gap:16px;
  padding-block:12px;border-bottom:1px solid var(--line-d);
  color:var(--fog);font-size:.95rem;
}
.profile-contents li .n{font-family:var(--font-display);font-size:.74rem;font-weight:600;letter-spacing:.16em;color:var(--azure-lt);flex:none}

.profile-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px);margin-top:clamp(40px,5vw,64px)}
.profile-strip figure{position:relative;overflow:hidden;border-radius:2px;border:1px solid var(--line-d);background:var(--navy)}
.profile-strip img{width:100%;height:100%;object-fit:cover;object-position:top center;aspect-ratio:3/2;transition:transform 1.1s var(--ease),opacity .6s ease;opacity:.82}
.profile-strip figure:hover img{transform:scale(1.05);opacity:1}

/* ---------- Credentials grid ---------- */

.cred-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,1.8vw,24px)}
.cred{
  padding:clamp(24px,2.8vw,36px);border:1px solid var(--line);border-radius:3px;background:var(--white);
  display:grid;gap:8px;align-content:start;
  transition:border-color .45s ease,transform .45s var(--ease);
}
.cred:hover{border-color:var(--azure);transform:translateY(-3px)}
.cred .k{font-family:var(--font-display);font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--azure)}
.cred .v{font-family:var(--font-display);font-size:clamp(1.15rem,1.7vw,1.4rem);font-weight:650;letter-spacing:-.015em;color:var(--text)}
.cred .s{font-size:.9rem;color:var(--muted)}
.on-dark .cred{background:var(--navy);border-color:var(--line-d)}
.on-dark .cred .v{color:#fff}
.on-dark .cred .s{color:var(--fog)}

/* ---------- Detail rows ---------- */

.detail-list{display:grid;gap:0;border-top:1px solid var(--line)}
.on-dark .detail-list{border-top-color:var(--line-d)}
.detail-row{
  display:grid;grid-template-columns:96px 1.05fr 1.95fr;gap:clamp(18px,3.6vw,56px);
  padding-block:clamp(26px,3.2vw,42px);border-bottom:1px solid var(--line);
  transition:background .5s var(--ease);
  position:relative;
}
.on-dark .detail-row{border-bottom-color:var(--line-d)}
.detail-row .no{font-family:var(--font-display);font-weight:600;color:var(--azure);font-size:.86rem;letter-spacing:.18em;padding-top:.35em}
.on-dark .detail-row .no{color:var(--azure-lt)}
.detail-row h3{font-size:clamp(1.15rem,1.7vw,1.4rem)}
.detail-row p{color:var(--muted);font-size:.99rem;line-height:1.74;max-width:58ch}
.on-dark .detail-row p{color:var(--fog)}
.detail-row .sub{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px}
.detail-row .sub span{font-size:.83rem;color:var(--muted);letter-spacing:.02em}
.on-dark .detail-row .sub span{color:var(--fog-dim)}
.detail-row .sub span::before{content:'· '}

/* ---------- HSE pillars ---------- */

.pillar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.pillar{background:var(--ink);padding:clamp(26px,3vw,42px);display:grid;gap:12px;align-content:start}
.pillar h3{font-size:1.12rem}
.pillar p{font-size:.95rem;line-height:1.7;color:var(--fog)}
.pillar .n{font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.2em;color:var(--azure-lt)}

/* ---------- CTA band ---------- */

.cta-band{position:relative;color:#fff;overflow:hidden;isolation:isolate}
.cta-media{position:absolute;inset:0;z-index:-2}
.cta-media img{width:100%;height:100%;object-fit:cover}
.cta-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(4,9,15,.95) 28%,rgba(4,9,15,.58))}
.cta-inner{display:grid;gap:24px;justify-items:start;max-width:740px}
.cta-contact{display:flex;flex-wrap:wrap;gap:12px 34px;margin-top:4px}
.cta-contact a{
  color:var(--fog);text-decoration:none;font-size:1rem;
  display:inline-flex;gap:9px;align-items:center;transition:color .3s ease;
}
.cta-contact a:hover{color:#fff}

/* ---------- Page intro / crumb ---------- */

.crumb{
  display:inline-flex;gap:10px;align-items:center;
  font-size:.76rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fog-dim);
}
.crumb a{display:inline-block;padding-block:3px;color:inherit;text-decoration:none;transition:color .3s ease}
.crumb a:hover{color:#fff}

/* ---------- Stats ---------- */

.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px)}
.stat{display:grid;gap:6px;align-content:start}
.stat .v{font-family:var(--font-display);font-weight:700;font-size:clamp(2.2rem,4.6vw,3.4rem);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}
.stat .v small{font-size:.46em;font-weight:600;color:var(--azure)}
.stat .l{font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--fog-dim)}
.stat .d{font-size:.92rem;color:var(--fog);line-height:1.6;margin-top:4px}

/* ---------- Contact ---------- */

.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,4.6vw,72px);align-items:start}
.card{background:#fff;border:1px solid var(--line-soft);border-radius:3px;padding:clamp(26px,3.2vw,46px)}
.on-dark .card{background:var(--navy);border-color:var(--line-d)}

.info-stack{display:grid;gap:0;border-top:1px solid var(--line)}
.info-row{display:grid;grid-template-columns:150px 1fr;gap:18px;padding-block:20px;border-bottom:1px solid var(--line)}
.info-row .k{
  font-family:var(--font-display);font-size:.72rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-top:5px;
}
.info-row .v{color:var(--text);line-height:1.7}
.info-row .v a{color:var(--azure-ink);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:border-color .3s ease}
.info-row .v a:hover{border-bottom-color:currentColor}
.info-row .v .note{display:block;font-size:.9rem;color:var(--muted);margin-top:3px}

.form-grid{display:grid;gap:17px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.field{display:grid;gap:7px}
.field label{font-family:var(--font-display);font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;
  font-family:var(--font-text);font-size:1rem;color:var(--text);
  background:#fff;border:1px solid var(--line);border-radius:2px;
  outline:none;transition:border-color .3s ease,box-shadow .3s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--azure);box-shadow:0 0 0 3px rgba(46,139,255,.13)}
.field textarea{resize:vertical;min-height:148px}
.field .err{display:none;font-size:.84rem;color:#C0392B}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#C0392B}
.field.invalid .err{display:block}

.form-status{display:none;margin-top:2px;padding:14px 16px;border-radius:2px;font-size:.94rem;line-height:1.6}
.form-status.success{display:block;background:#EAF6EE;color:#14532D;border:1px solid #BBE3C8}
.form-status.error{display:block;background:#FBEDEA;color:#7B1D12;border:1px solid #F0C4BB}

/* ---------- Contact channels ---------- */

.channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.channel{
  position:relative;background:var(--paper);
  padding:clamp(26px,2.9vw,42px);
  display:grid;gap:14px;align-content:start;
  transition:background .45s var(--ease);overflow:hidden;
}
.channel::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--azure);
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease);
}
.channel:hover{background:var(--white)}
.channel:hover::after{transform:scaleX(1)}
.channel-icon{
  width:42px;height:42px;border-radius:2px;display:grid;place-items:center;
  background:rgba(46,139,255,.10);color:var(--azure);
}
.channel-icon svg{width:19px;height:19px}
.channel h3{font-size:1.12rem;letter-spacing:-.01em}
.channel .lines{display:grid;gap:0}
.channel .lines a{
  color:var(--azure-ink);text-decoration:none;font-weight:500;font-size:1rem;
  border-bottom:1px solid transparent;justify-self:start;transition:border-color .3s ease;
  word-break:break-word;padding-block:4px;   /* keeps tap targets >= 24px */
}
.channel .lines a:hover{border-bottom-color:currentColor}
.channel p{font-size:.9rem;line-height:1.65;color:var(--muted)}

/* ---------- Head office panel ---------- */

.office{display:grid;gap:0;border-top:1px solid var(--line)}
.office .row{display:grid;grid-template-columns:132px 1fr;gap:18px;padding-block:18px;border-bottom:1px solid var(--line)}
.office .k{
  font-family:var(--font-display);font-size:.7rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-top:4px;
}
.office .v{color:var(--text);line-height:1.7}
.office .v a{display:inline-block;padding-block:3px;color:var(--azure-ink);text-decoration:none;font-weight:500}
.office .v a:hover{text-decoration:underline}

.duty{
  display:inline-flex;align-items:center;gap:10px;
  padding:9px 16px;border:1px solid var(--line);border-radius:50px;
  font-size:.84rem;font-weight:500;color:var(--text);background:var(--white);
}
.duty .pip{width:7px;height:7px;border-radius:50%;background:#2FA36B;flex:none;box-shadow:0 0 0 3px rgba(47,163,107,.18)}

/* ---------- Map ---------- */

.map-wrap{position:relative}
.map-card{
  position:absolute;z-index:5;
  left:clamp(14px,2.4vw,28px);top:clamp(14px,2.4vw,28px);
  max-width:330px;background:var(--deep);color:#fff;
  padding:clamp(20px,2.2vw,28px);border-radius:3px;
  box-shadow:0 22px 50px rgba(4,9,15,.34);
}
.map-card h3{font-size:1.05rem;margin-bottom:10px}
.map-card address{font-style:normal;color:var(--fog);font-size:.93rem;line-height:1.75}
.map-card .coord{
  display:block;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-d);
  font-family:var(--font-display);font-size:.7rem;letter-spacing:.18em;color:var(--fog-dim);
}
.map-frame{position:relative;overflow:hidden;border-radius:3px;border:1px solid var(--line-soft)}
.map-frame iframe{width:100%;height:clamp(340px,42vw,480px);border:0;display:block;filter:grayscale(.22) contrast(1.04)}
.map-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:16px;align-items:center}
.map-actions a{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.87rem;font-weight:600;text-decoration:none;color:var(--text);
  border:1px solid var(--line);border-radius:2px;padding:10px 16px;
  transition:border-color .35s ease,color .35s ease;
}
.map-actions a:hover{border-color:var(--azure);color:var(--azure-ink)}

/* ---------- Footer ---------- */

footer.site-foot{background:var(--deep);color:#fff}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.15fr;gap:clamp(32px,4.4vw,68px);padding-block:clamp(56px,7vw,92px) clamp(36px,4.4vw,56px)}
.foot-brand{display:grid;gap:18px;align-content:start;justify-items:start}
.foot-brand .brand-mark{width:auto;height:60px}
.foot-tag{color:var(--fog-dim);font-size:.94rem;line-height:1.75;max-width:36ch}
.foot-motto{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:1.02rem;color:var(--fog);letter-spacing:-.005em}
.foot-col .foot-h{font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--fog-dim);margin-bottom:18px;line-height:1.4}
.foot-col ul{list-style:none;display:grid;gap:2px}
/* padding keeps tap targets at/above the 24px minimum without changing rhythm */
.foot-col a{display:inline-block;padding-block:5px;color:var(--fog);text-decoration:none;font-size:.94rem;transition:color .3s ease}
.foot-col a:hover{color:#fff}
.foot-col address{font-style:normal;color:var(--fog);font-size:.94rem;line-height:1.82}
.foot-bar{
  border-top:1px solid var(--line-d);padding-block:20px;
  display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:space-between;align-items:center;
  font-size:.81rem;color:var(--fog-dim);
}
.foot-bar .coords{font-size:.72rem}

/* ---------- Reveal ---------- */

/* Content is visible by default. The hidden start-state applies only while JS
   is running (html.js), so a script failure can never blank the page. */
.js .reveal{opacity:0;transform:translateY(24px)}
.js .reveal.in-view{
  opacity:1;transform:none;
  transition:opacity .95s var(--ease),transform .95s var(--ease);
  transition-delay:calc(var(--i,0)*80ms);
}
.media-reveal{overflow:hidden}
.js .media-reveal img{transform:scale(1.08);transition:transform 1.5s var(--ease)}
.js .media-reveal.in-view img{transform:scale(1)}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none}
  .js .media-reveal img{transform:none}
  .hero-title .ln > span,.hero-sub,.hero-actions{animation:none}
  .scroll-cue i{animation:none}
}

/* ---------- 404 ---------- */

.err-hero{min-height:100svh;display:grid;place-items:center;text-align:center;padding:130px var(--gut) 80px}
.err-hero .code{font-family:var(--font-display);font-weight:700;font-size:clamp(5rem,17vw,11rem);letter-spacing:-.05em;color:var(--azure);line-height:1}

/* ---------- Responsive ---------- */

@media (min-width:1800px){
  :root{--gut:clamp(64px,6vw,120px)}
  .hero-content{padding-bottom:clamp(48px,4vw,72px)}
}

@media (max-width:1080px){
  .nav-links{display:none}
  .nav-burger{display:flex}
  .flagship{grid-template-columns:1fr;gap:34px}
  .flagship.is-flip .fl-media{order:0}
  .fl-media .frame,.fl-media .frame.portrait{aspect-ratio:3/2.1}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .split-facets{grid-template-columns:1fr;gap:0}
  .facet + .facet{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
  .on-dark .facet + .facet{border-top-color:var(--line-d)}
  .val-grid{grid-template-columns:repeat(2,1fr)}
  .vmv{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .region-layout{grid-template-columns:1fr;gap:34px}
  .profile-layout{grid-template-columns:1fr;gap:38px}
  .profile-cover{max-width:380px}
  .profile-cover .sheet{transform:none}
  .foot-grid{grid-template-columns:1fr 1fr}
  .channel-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .detail-row{grid-template-columns:64px 1fr}
  .detail-row p,.detail-row .sub{grid-column:2}
  .scroll-cue{display:none}
}

@media (max-width:720px){
  .hero-stats-grid{grid-template-columns:1fr 1fr;gap:16px;padding-block:16px}
  .svc-grid,.svc-grid.is-flagship,.svc-grid.is-addl{grid-template-columns:1fr}
  .val-grid{grid-template-columns:1fr}
  .stat-strip{grid-template-columns:1fr;gap:28px}
  .form-row{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .info-row,.office .row{grid-template-columns:1fr;gap:5px;padding-block:16px}
  /* overlay would cover the map on small screens — sit it above instead */
  .map-card{position:static;max-width:none;margin-bottom:14px}
  .hero-actions .btn{width:100%}
  .matrix,.sector-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .cred-grid{grid-template-columns:1fr}
  .pillar-grid{grid-template-columns:1fr}
  .profile-strip{grid-template-columns:1fr;max-width:340px}
  .detail-row{grid-template-columns:1fr;gap:8px}
  .detail-row p,.detail-row .sub{grid-column:1}
  .detail-row .no{padding-top:0}
}
