:root {
  --blue-900: #0d47a1; /* deep */
  --blue-700: #1565c0; /* primary */
  --blue-600: #1976d2; /* accent */
  --blue-100: #e3f2fd;
  --text-900: #0f172a;
  --text-700: #334155;
  --text-600: #475569;

/* Maritime variant */
.hero.maritime {
  background: radial-gradient(120% 80% at 70% 0%, rgba(21,101,192,0.35) 0%, rgba(21,101,192,0.1) 50%, rgba(255,255,255,0) 70%),
              linear-gradient(180deg, var(--blue-900) 0%, var(--blue-700) 60%, #ffffff 60%);
}
.hero .subpoints { display:flex; flex-wrap:wrap; gap:.6rem; }
.badge { display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .65rem; border-radius:999px; background: rgba(255,255,255,0.15); color:#fff; font-weight:700; border:1px solid rgba(255,255,255,0.25); }
  --bg: #ffffff;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  color: var(--text-900);
  background: var(--bg);
  line-height: 1.6;
}
a { color: var(--blue-700); text-decoration: none; }
a:hover { text-decoration: underline; }

.container { width: min(1100px, 92%); margin: 0 auto; }
.stack { display: grid; gap: 1rem; }
.grid { display: grid; gap: 1.25rem; }

/* Header */
header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,0.9);
  backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 1px solid rgba(13,71,161,0.08);
}
.nav { display: flex; align-items: center; justify-content: space-between; padding: .8rem 0; }
.brand { display: flex; align-items: center; gap: .75rem; font-weight: 700; color: var(--blue-900); letter-spacing: 0.3px; }
.brand .mark {
  width: 36px; height: 36px; border-radius: 8px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--blue-900), var(--blue-600)); color: #fff; font-weight: 800;
}
nav ul { list-style: none; display: flex; gap: 1rem; margin: 0; padding: 0; }
nav a { color: var(--text-700); font-weight: 600; padding: .5rem .6rem; border-radius: 6px; }
nav a:hover { background: var(--blue-100); text-decoration: none; }
nav a.active { color: var(--blue-900); background: rgba(13,71,161,0.08); }
.nav-actions { display: flex; gap: .5rem; align-items: center; }
.btn { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem .9rem; border-radius: 8px; border: 1px solid transparent; font-weight: 700; cursor: pointer; }
.btn.primary { background: var(--blue-700); color: #fff; }
.btn.primary:hover { background: var(--blue-600); }
.btn.ghost { border-color: rgba(21,101,192,0.25); color: var(--blue-700); background: #fff; }
.btn.ghost:hover { background: var(--blue-100); }

/* Mobile nav */
.menu-toggle { display: none; background: none; border: none; font-size: 1.5rem; }
@media (max-width: 860px) {
  nav ul { display: none; position: absolute; top: 60px; right: 4%; background: #fff; border: 1px solid rgba(13,71,161,0.12); border-radius: 10px; padding: .6rem; width: 240px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); }
  nav ul.open { display: grid; }
  .menu-toggle { display: inline-flex; }
}

/* Hero */
.hero {
  background:
    radial-gradient(120% 120% at 10% 0%, rgba(255,255,255,0.08), transparent 60%),
    linear-gradient(180deg, var(--blue-900) 0%, var(--blue-700) 62%, #ffffff 62%);
  color: #fff; padding: 6rem 0 2rem; position: relative; overflow: hidden;
}
.hero h1 { font-size: clamp(2rem, 4.5vw, 3rem); line-height: 1.2; margin: 0 0 1rem; }
.hero p.lead { font-size: clamp(1rem, 2.5vw, 1.15rem); color: #e6f0ff; margin: 0 0 1.5rem; }
.hero-cta { display: flex; flex-wrap: wrap; gap: .75rem; }
.wave { position: absolute; bottom: -1px; left: 0; right: 0; }

/* Sections */
section { padding: 3rem 0; }
section .eyebrow { color: var(--blue-700); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: .85rem; }
section h2 { font-size: clamp(1.5rem, 3.5vw, 2.1rem); margin: .3rem 0 1rem; }
.muted { color: var(--text-600); }
.card { background: #fff; border: 1px solid rgba(13,71,161,0.10); border-radius: 12px; padding: 1.1rem; box-shadow: 0 6px 16px rgba(0,0,0,0.04); }

/* Values grid */
.values { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.chip { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .75rem; border-radius: 999px; background: var(--blue-100); color: var(--blue-900); font-weight: 700; }

/* About */
.about { background: linear-gradient(0deg, #fff, #fff), radial-gradient(65% 65% at 10% 10%, rgba(21,101,192,0.06), transparent 60%);
  background-blend-mode: normal, multiply; }

/* Contact */
.contact .card { display: grid; gap: .6rem; }
.contact-item { display: flex; align-items: flex-start; gap: .75rem; }
.icon { width: 22px; height: 22px; color: var(--blue-700); flex: 0 0 22px; }

/* Footer */
footer { padding: 2rem 0; border-top: 1px solid rgba(13,71,161,0.08); color: var(--text-600); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Page banners */
.banner {
  background: linear-gradient(180deg, var(--blue-900) 0%, var(--blue-700) 100%);
  color: #fff; padding: 3.5rem 0 2.5rem; text-align: left;
}
.banner h1 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.4rem); }
.breadcrumbs { color: #cfe2ff; font-weight: 600; margin-top: .4rem; }

/* Services grid */
.services-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.service-card { background: #fff; border: 1px solid rgba(13,71,161,0.10); border-radius: 12px; padding: 1rem; box-shadow: 0 6px 16px rgba(0,0,0,0.04); }
.service-card h3 { margin-top: .2rem; }

/* Features */
.features-grid { display:grid; gap:1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.feature { background:#fff; border:1px solid rgba(13,71,161,0.10); border-radius:12px; padding:1rem; box-shadow:0 6px 16px rgba(0,0,0,0.04); }
.feature .feature-icon { width:32px; height:32px; color:var(--blue-700); }

/* Stats band */
.stats-band { background: linear-gradient(0deg, #f7fbff, #f7fbff); border-top:1px solid rgba(13,71,161,0.08); border-bottom:1px solid rgba(13,71,161,0.08); }
.stats { display:grid; gap:1rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.stat { background:#fff; border:1px solid rgba(13,71,161,0.10); border-radius:12px; padding:1rem; text-align:center; }
.stat .num { font-size:1.6rem; font-weight:800; color:var(--blue-900); }
.stat .label { color:var(--text-700); font-weight:700; }

/* CTA band */
.cta-band { background: linear-gradient(90deg, var(--blue-900), var(--blue-700)); color:#fff; border-radius:16px; padding:1.2rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.8rem; }
.cta-band .cta-actions { display:flex; gap:.6rem; flex-wrap:wrap; }

/* Forms */
form .row { display: grid; gap: .8rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 700px) { form .row { grid-template-columns: 1fr; } }
label { font-weight: 700; color: var(--text-700); }
input, textarea { width: 100%; padding: .8rem .9rem; border: 1px solid rgba(13,71,161,0.2); border-radius: 10px; font: inherit; }
textarea { min-height: 140px; }
button[disabled], .btn[aria-disabled="true"] { opacity: .6; cursor: not-allowed; }

/* Home extras */
.home-services-preview { background: #f7fbff; border-top: 1px solid rgba(13,71,161,0.08); border-bottom: 1px solid rgba(13,71,161,0.08); }

/* CTA band */
.cta-band {
  background: linear-gradient(135deg, var(--blue-900), var(--blue-700));
  color: #fff;
}

/* Alerts */
.alert { border: 1px solid transparent; border-radius: 10px; padding: .8rem .9rem; }
.alert-success { background: #ecfdf5; border-color: #34d399; color: #065f46; }
.alert-error { background: #fef2f2; border-color: #f87171; color: #7f1d1d; }
.alert-info { background: #eff6ff; border-color: #93c5fd; color: #1e3a8a; }

/* Enhanced hero accents */
.hero {
  position: relative;
  isolation: isolate;
}
.hero::before {
  content: "";
  position: absolute; inset: -10% -10% auto -10%; height: 120%;
  background: radial-gradient(60% 50% at 80% 10%, rgba(255,255,255,0.15), transparent 60%),
              radial-gradient(50% 40% at 10% 20%, rgba(255,255,255,0.12), transparent 60%);
  pointer-events: none; z-index: 0;
}
.hero .container { position: relative; z-index: 1; }

/* Features */
.features-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.feature-card { background: #fff; border: 1px solid rgba(13,71,161,0.10); border-radius: 12px; padding: 1rem; box-shadow: 0 10px 20px rgba(0,0,0,0.04); }
.feature-card h3 { margin: .2rem 0 .4rem; }
.feature-icon { width: 28px; height: 28px; color: var(--blue-700); }

/* Stats strip */
.stats-strip { background: linear-gradient(90deg, rgba(21,101,192,0.06), rgba(21,101,192,0.02)); border-top: 1px solid rgba(13,71,161,0.08); border-bottom: 1px solid rgba(13,71,161,0.08); }
.stats-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.stat { background: #fff; border: 1px solid rgba(13,71,161,0.10); border-radius: 12px; padding: .9rem; text-align: left; }
.stat .kicker { font-weight: 800; color: var(--blue-900); font-size: 1.1rem; }
.stat .sub { color: var(--text-600); font-weight: 600; font-size: .95rem; }

/* CTA band */
.cta-band { background: linear-gradient(90deg, var(--blue-900), var(--blue-700)); color: #fff; }

/* Logo placement */
.site-logo { display: block; width: auto; object-fit: contain; image-rendering: -webkit-optimize-contrast; }
.site-logo--header { height: 36px; }
@media (max-width: 860px) { .site-logo--header { height: 28px; } }
.site-logo--footer { height: 24px; opacity: .95; }
.footer-right { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
