/* Apex Strategy - site styles
   Breakpoints: mobile < 768 • tablet 768-1023 • laptop 1024-1279 • desktop ≥ 1280 */
:root {
  --navy: #082744; --deep: #051a2e; --ivory: #fffef9; --paper: #f2f4f6; --white: #ffffff;
  --graphite: #3d3b3a; --slate: #465d73; --steel: #83929e; --rule: #d5d9de; --mist: #e6eaee;
  --ink: #16222e; --ok: #1e6b4f; --err: #9b2c2c;
  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "Montserrat", "Aptos", "Segoe UI", Arial, sans-serif;
  --wrap: 1200px; --gutter: 40px;
  --band: clamp(56px, 7vw, 104px);
  --radius: 4px;
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
:root { padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px); }
html { scroll-padding-top: calc(96px + env(safe-area-inset-top, 0px)); }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: var(--ivory); color: var(--ink); font: 400 1.0625rem/1.65 var(--sans); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--slate); outline-offset: 3px; border-radius: 2px; }
h1, h2 { font-family: var(--serif); font-weight: 600; color: var(--navy); letter-spacing: -0.01em; margin: 0 0 .5em; }
h1 { font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4.1rem); line-height: 1.08; }
h2 { font-size: clamp(1.7rem, 1.25rem + 1.6vw, 2.55rem); line-height: 1.15; max-width: 24ch; }
h3 { font: 600 1.075rem/1.35 var(--sans); color: var(--navy); margin: 0 0 .45em; }
p { margin: 0 0 1em; max-width: 68ch; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.narrow > * { max-width: 800px; }
.narrow > h2 { max-width: 24ch; }
.skip { position: absolute; left: 12px; top: -60px; background: var(--navy); color: var(--ivory); padding: 10px 16px; z-index: 100; }
.skip:focus { top: 12px; }

/* ---------- buttons & links ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border-radius: var(--radius);
  font: 600 .95rem/1.2 var(--sans); letter-spacing: .01em; text-decoration: none; border: 1.5px solid transparent; transition: background-color .15s, color .15s, border-color .15s; }
.btn-primary { background: var(--navy); color: var(--ivory); }
.btn-primary:hover { background: var(--deep); }
.btn-secondary { border-color: var(--navy); color: var(--navy); }
.btn-secondary:hover { background: var(--navy); color: var(--ivory); }
.btn-light { background: var(--ivory); color: var(--navy); }
.btn-light:hover { background: var(--white); }
.btn-ghost-light { border-color: rgba(255,254,249,.55); color: var(--ivory); }
.btn-ghost-light:hover { border-color: var(--ivory); background: rgba(255,254,249,.08); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.textlink { font-weight: 600; font-size: .95rem; }
.related { font-size: .95rem; color: var(--slate); }
.eyebrow { font: 600 .95rem/1.3 var(--sans); color: var(--slate); margin: 0 0 18px; display: flex; align-items: center; gap: 12px; }
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; transform: rotate(-45deg); transform-origin: center; flex: none; }

/* ---------- header ---------- */
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: rgba(255,254,249,.96); backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid var(--rule); }
.header-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: none; }
.brand img { width: 52px; height: 52px; }
.brand-name { font: 600 1.3rem/1 var(--serif); color: var(--navy); }
.site-nav { display: flex; align-items: center; gap: 24px; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.nav-list > li { position: relative; }
.nav-list > li > a, .sub-toggle { display: flex; align-items: center; gap: 6px; padding: 10px 12px; font: 500 .95rem/1.2 var(--sans); color: var(--ink); text-decoration: none; background: none; border: 0; cursor: pointer; border-radius: var(--radius); }
.sub-toggle svg { width: 11px; height: 8px; transition: transform .15s; }
.sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav-list > li > a:hover, .sub-toggle:hover { color: var(--navy); background: var(--mist); }
.nav-list a[aria-current="page"], .has-sub.is-active > .sub-toggle { color: var(--navy); box-shadow: inset 0 -2px 0 var(--navy); border-radius: 0; }
.sub { list-style: none; margin: 0; padding: 8px; position: absolute; top: calc(100% + 6px); left: 0; min-width: 260px; background: var(--white); border: 1px solid var(--rule); border-radius: 6px; box-shadow: 0 12px 32px rgba(8,39,68,.12); display: none; }
.sub a { display: block; padding: 10px 12px; text-decoration: none; color: var(--ink); border-radius: var(--radius); font-size: .95rem; }
.sub a:hover, .sub a[aria-current="page"] { background: var(--mist); color: var(--navy); }
.sub-toggle[aria-expanded="true"] + .sub { display: block; }
@media (hover: hover) and (min-width: 1024px) { .has-sub:hover > .sub { display: block; } }
.menu-toggle { display: none; align-items: center; gap: 10px; background: none; border: 1.5px solid var(--navy); border-radius: var(--radius); padding: 10px 14px; font: 600 .9rem var(--sans); color: var(--navy); cursor: pointer; min-height: 44px; }
.bars, .bars::before, .bars::after { display: block; width: 18px; height: 2px; background: var(--navy); position: relative; transition: transform .2s; }
.bars::before, .bars::after { content: ""; position: absolute; left: 0; }
.bars::before { top: -6px; } .bars::after { top: 6px; }
.menu-toggle[aria-expanded="true"] .bars { background: transparent; }
.menu-toggle[aria-expanded="true"] .bars::before { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .bars::after { transform: translateY(-6px) rotate(-45deg); }

.crumbs { padding-top: 20px; font-size: .875rem; color: var(--slate); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--steel); }

/* ---------- ring motif (from the logo) ---------- */
.ring { position: absolute; pointer-events: none; }
.ring-arc, .ring-arrow { stroke: currentColor; stroke-linecap: round; }
.ring-head { fill: currentColor; }
.home-hero .ring { width: min(72vw, 760px); right: -3%; top: 50%; transform: translateY(-50%); color: rgba(255,254,249,.13); }
.cta-band .ring { width: 520px; right: -140px; bottom: -220px; color: rgba(255,254,249,.1); }
.js .home-hero .ring-arc { stroke-dasharray: 1400; stroke-dashoffset: 1400; }
.js .home-hero .ring-arrow { stroke-dasharray: 480; stroke-dashoffset: 480; }
.js .home-hero .ring-head { opacity: 0; }
.is-drawn .home-hero .ring-arc { animation: draw 1.6s cubic-bezier(.2,0,0,1) forwards; }
.is-drawn .home-hero .ring-arrow { animation: draw .9s .9s cubic-bezier(.2,0,0,1) forwards; }
.is-drawn .home-hero .ring-head { animation: fade .3s 1.7s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes fade { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .js .home-hero .ring-arc, .js .home-hero .ring-arrow { stroke-dashoffset: 0 !important; animation: none !important; }
  .js .home-hero .ring-head { opacity: 1 !important; animation: none !important; }
  * { transition: none !important; }
}

/* ---------- heroes ---------- */
.home-hero { position: relative; overflow: hidden; background: var(--navy); color: var(--ivory); padding: clamp(64px, 9vw, 128px) 0 clamp(56px, 7vw, 96px); }
.home-hero h1 { color: var(--ivory); max-width: 15ch; }
.home-hero .eyebrow { color: #b9c6d3; }
.home-hero .lead { color: #dfe5eb; font-size: clamp(1.05rem, .95rem + .35vw, 1.2rem); max-width: 58ch; }
.home-hero-grid { position: relative; display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.corridor-line { display: flex; align-items: center; gap: 14px; margin: 40px 0 0; font-size: .9rem; color: #b9c6d3; }
.corridor-rule { flex: 0 1 120px; height: 1px; background: linear-gradient(90deg, rgba(185,198,211,.2), rgba(185,198,211,.8)); position: relative; }
.corridor-rule::after { content: ""; position: absolute; right: -1px; top: -4px; border: 4px solid transparent; border-left: 7px solid rgba(185,198,211,.8); border-right: 0; }
.page-hero { padding: clamp(40px, 6vw, 88px) 0 clamp(40px, 5vw, 72px); border-bottom: 1px solid var(--rule); }
.page-hero-grid { display: grid; grid-template-columns: 1fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.page-hero.has-media .page-hero-grid { grid-template-columns: 7fr 5fr; }
.page-hero h1 { max-width: 20ch; }
.lead { font-size: clamp(1.05rem, .98rem + .3vw, 1.18rem); color: #2b3b4b; max-width: 62ch; }

/* ---------- image placeholders ---------- */
.ph { margin: 0; width: 100%; }
.ph-box { width: 100%; height: 100%; border-radius: 6px; border: 1.5px dashed #b7c0c9; display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center;
  background: repeating-linear-gradient(135deg, var(--mist) 0 12px, #edf0f3 12px 24px); }
.ph-label { font-size: .85rem; color: var(--slate); font-weight: 500; max-width: 32ch; }
.ph-label small { display: block; margin-top: 6px; font-size: .78rem; color: var(--steel); font-weight: 400; }
.home-hero .ph-box { border-color: rgba(255,254,249,.35); background: repeating-linear-gradient(135deg, rgba(255,254,249,.06) 0 12px, rgba(255,254,249,.02) 12px 24px); }
.home-hero .ph-label { color: #dfe5eb; } .home-hero .ph-label small { color: #b9c6d3; }
.ph-portrait { max-width: 420px; }
.ph.has-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; display: block; }
.home-hero .ph.has-photo img { box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.ph-portrait.has-photo img { object-position: 50% 20%; }

/* ---------- bands ---------- */
.band { padding: var(--band) 0; }
.band + .band:not(.band-paper):not(.band-navy) { padding-top: 0; }
.band-paper { background: var(--paper); }
.band-paper + .band { padding-top: var(--band) !important; }
.band-navy { background: var(--navy); color: var(--ivory); }
.section-intro { color: var(--slate); margin-bottom: 32px; }

.cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 5vw, 72px); margin-top: 36px; }
.col-item { border-top: 1px solid var(--rule); padding: 22px 0 18px; }
.col-item p { color: #33424f; margin: 0; }

.services { margin-top: 40px; border-top: 2px solid var(--navy); }
.service { display: grid; grid-template-columns: 4fr 6fr 3fr; gap: 32px; align-items: baseline; padding: 30px 0; border-bottom: 1px solid var(--rule); }
.service h3 { font: 600 1.45rem/1.25 var(--serif); margin: 0; }
.service h3 a { text-decoration: none; }
.service h3 a:hover { text-decoration: underline; }
.service p { margin: 0; color: #33424f; }
.service .textlink { justify-self: end; text-align: right; }

.split { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.rule-list { list-style: none; margin: 24px 0 0; padding: 0; }
.rule-list li { position: relative; padding: 16px 0 16px 34px; border-top: 1px solid var(--rule); }
.rule-list li:last-child { border-bottom: 1px solid var(--rule); }
.rule-list li::before { content: ""; position: absolute; left: 4px; top: 27px; width: 14px; height: 2px; background: var(--navy); transform: rotate(-45deg); }

.questions { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); }
.questions li { font: 500 clamp(1.2rem, 1.05rem + .5vw, 1.45rem)/1.35 var(--serif); color: var(--navy); padding: 22px 0; border-top: 1px solid var(--rule); }

.steps { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; counter-reset: s; }
.steps li { padding: 22px 0 24px; border-top: 2px solid var(--navy); }
.step-n { display: block; font: 600 1.9rem/1 var(--serif); color: var(--slate); margin-bottom: 10px; }
.steps p { margin: 0; color: #33424f; font-size: .98rem; }

.tags { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.tags li { padding: 9px 16px; border: 1px solid var(--rule); border-radius: 999px; background: var(--white); font-size: .95rem; color: var(--navy); }

.highlight { border-left: 4px solid var(--navy); background: var(--white); padding: clamp(28px, 4vw, 48px); max-width: 880px; box-shadow: 0 1px 0 var(--rule); }
.highlight-kicker { font-weight: 600; color: var(--slate); margin-bottom: 8px; }

.faq { margin-top: 28px; border-top: 1px solid var(--rule); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 44px 20px 0; position: relative; font-weight: 600; color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 8px; top: 26px; width: 10px; height: 10px; border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(45deg); transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(-135deg); top: 31px; }
.faq details p { padding: 0 0 20px; margin: 0; color: #33424f; }

.cta-band { position: relative; overflow: hidden; background: var(--navy); color: var(--ivory); padding: clamp(64px, 8vw, 112px) 0; }
.cta-band h2 { color: var(--ivory); max-width: 26ch; }
.cta-band p { color: #dfe5eb; margin-bottom: 28px; }

.founder { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.sectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); margin-top: 32px; }
.sector { padding: 28px 0; border-top: 2px solid var(--navy); }
.sector h3 { font: 600 1.5rem/1.25 var(--serif); }

.engagements { display: grid; gap: 0; border-top: 2px solid var(--navy); }
.engagement { display: grid; grid-template-columns: 4fr 8fr; gap: 32px; padding: 32px 0; border-bottom: 1px solid var(--rule); }
.engagement h3 { font: 600 1.45rem/1.25 var(--serif); }
.engagement dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 32px; }
.engagement dl div:last-child { grid-column: 1 / -1; }
.engagement dt { font-size: .85rem; font-weight: 600; color: var(--slate); margin-bottom: 4px; }
.engagement dd { margin: 0; }

.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.fact { border-top: 2px solid var(--navy); padding-top: 18px; }
.fact-n { display: block; font: 600 clamp(2.6rem, 2rem + 2vw, 3.6rem)/1 var(--serif); color: var(--navy); }
.fact-l { display: block; margin-top: 8px; color: #33424f; max-width: 26ch; }

.corridor { display: grid; grid-template-columns: 1fr minmax(80px, 1.2fr) 1fr; gap: 24px; align-items: start; margin-top: 16px; }
.corridor-link { padding-top: 18px; }
.corridor h3 { font: 600 1.6rem/1.2 var(--serif); }
.corridor ul { list-style: none; margin: 0; padding: 0; }
.corridor li { padding: 8px 0; border-top: 1px solid var(--rule); }
.corridor > div:last-child { text-align: right; }
.corridor-link span { display: block; height: 2px; background: var(--navy); position: relative; }
.corridor-link span::before, .corridor-link span::after { content: ""; position: absolute; top: -5px; width: 12px; height: 12px; border-radius: 50%; background: var(--navy); }
.corridor-link span::before { left: -2px; } .corridor-link span::after { right: -2px; }

.band-navy blockquote { margin: 0; }
.band-navy blockquote p { font: 500 clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem)/1.3 var(--serif); color: var(--ivory); max-width: 30ch; }
.band-navy .after { color: #dfe5eb; }
.note { font-size: .95rem; color: var(--slate); border-left: 3px solid var(--rule); padding-left: 16px; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 8px; }
.chip { font: 500 .9rem var(--sans); padding: 9px 16px; border-radius: 999px; border: 1px solid var(--rule); background: var(--white); color: var(--navy); cursor: pointer; min-height: 40px; }
.chip[aria-pressed="true"] { background: var(--navy); color: var(--ivory); border-color: var(--navy); }
.articles { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.article { padding: 24px 0 28px; border-top: 1px solid var(--rule); }
.article[hidden] { display: none; }
.article-cat { font-size: .85rem; font-weight: 600; color: var(--slate); margin-bottom: 8px; }
.article h3 { font: 600 1.2rem/1.35 var(--serif); }
.article-meta { font-size: .85rem; color: var(--steel); margin: 0; }

/* ---------- forms ---------- */
label { display: block; font-weight: 600; font-size: .92rem; color: var(--navy); margin-bottom: 6px; }
.optional { font-weight: 400; color: var(--steel); }
input, select, textarea { width: 100%; font: 400 1rem/1.4 var(--sans); color: var(--ink); background: var(--white); border: 1.5px solid #b7c0c9; border-radius: var(--radius); padding: 12px 14px; min-height: 48px; }
input:focus, select:focus, textarea:focus { border-color: var(--navy); outline: 3px solid rgba(70,93,115,.25); outline-offset: 0; }
[aria-invalid="true"] { border-color: var(--err); }
.field-error { color: var(--err); font-size: .85rem; margin: 6px 0 0; min-height: 0; }
.field-error:empty { display: none; }
.consult { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.consult-aside h2 { font-size: clamp(1.35rem, 1.1rem + .8vw, 1.75rem); margin-top: 0; }
.consult-aside h2 + .rule-list { margin-bottom: 40px; }
.calendar-slot { margin-top: 32px; padding: 24px; border: 1.5px dashed #b7c0c9; border-radius: 6px; background: var(--white); }
.calendar-slot p { margin: 0 0 6px; }
.consult-form { background: var(--white); border: 1px solid var(--rule); border-radius: 6px; padding: clamp(24px, 4vw, 48px); }
.consult-form h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.form-intro { color: var(--slate); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; margin: 24px 0; }
.field.full { grid-column: 1 / -1; }
.consent { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; margin-bottom: 24px; }
.consent input { width: 22px; height: 22px; min-height: 0; margin-top: 3px; accent-color: var(--navy); }
.consent label { font-weight: 400; font-size: .9rem; color: #33424f; }
.consent .field-error { grid-column: 2; }
.form-status { margin-top: 20px; }
.form-status.is-success { padding: 18px 20px; border-left: 4px solid var(--ok); background: #eef6f1; color: #173f2f; }
.form-status.is-error { color: var(--err); font-weight: 600; }
.inline-row { display: flex; gap: 10px; }
.newsletter p { color: #33424f; }

/* ---------- footer ---------- */
.site-footer { background: var(--deep); color: #c9d3dc; padding: 72px 0 32px; margin-top: 0; }
.site-footer a { color: #e5ebf0; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.foot-grid { display: grid; grid-template-columns: 5fr 3fr 3fr 3fr; gap: 40px; }
.foot-brand img { width: 96px; height: 96px; margin-bottom: 20px; }
.foot-brand p { font-size: .95rem; max-width: 42ch; }
.foot-loc { color: var(--ivory); font-weight: 600; }
.foot-h { font: 600 .95rem/1.3 var(--sans); color: var(--ivory); margin: 0 0 14px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { padding: 6px 0; font-size: .95rem; }
.foot-legal { margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; color: #8ea0b1; }
.foot-legal p { max-width: none; }

/* ================= laptop 1024-1279 ================= */
@media (max-width: 1279px) {
  :root { --gutter: 32px; }
  .nav-list > li > a, .sub-toggle { padding: 10px 9px; font-size: .9rem; }
  .site-nav { gap: 14px; }
  .site-nav .btn { padding: 10px 16px; font-size: .88rem; }
  .brand-name { font-size: 1.15rem; }
}

/* ================= tablet 768-1023 ================= */
@media (max-width: 1023px) {
  :root { --gutter: 28px; }
  .menu-toggle { display: inline-flex; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--ivory); border-bottom: 1px solid var(--rule); box-shadow: 0 20px 40px rgba(8,39,68,.12);
    flex-direction: column; align-items: stretch; padding: 12px var(--gutter) 28px; max-height: calc(100vh - 76px); overflow-y: auto; }
  .site-nav.is-open { display: flex; }
  .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-list > li { border-bottom: 1px solid var(--rule); }
  .nav-list > li > a, .sub-toggle { width: 100%; justify-content: space-between; padding: 16px 4px; font-size: 1.05rem; }
  .nav-list a[aria-current="page"], .has-sub.is-active > .sub-toggle { box-shadow: none; font-weight: 600; }
  .sub { position: static; box-shadow: none; border: 0; padding: 0 0 12px 12px; min-width: 0; background: transparent; }
  .site-nav .btn { margin-top: 20px; min-height: 52px; font-size: 1rem; }
  .home-hero-grid, .page-hero.has-media .page-hero-grid { grid-template-columns: 1fr; }
  .home-hero .ring { width: 120vw; right: -50%; top: 30%; }
  .home-hero-media .ph, .page-hero-media .ph { max-height: 420px; }
  .page-hero-media .ph-portrait { max-width: 360px; max-height: none; }
  .service { grid-template-columns: 1fr 2fr; }
  .service .textlink { grid-column: 2; justify-self: start; text-align: left; }
  .split, .founder { grid-template-columns: 1fr; }
  .founder-media .ph { max-width: 320px; }
  .engagement { grid-template-columns: 1fr; gap: 16px; }
  .articles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consult { grid-template-columns: 1fr; }
  .consult-aside { order: 2; }
  .foot-grid { grid-template-columns: 1fr 1fr 1fr; }
  .foot-brand { grid-column: 1 / -1; }
}

/* ================= mobile < 768 ================= */
@media (max-width: 767px) {
  :root { --gutter: 20px; }
  body { font-size: 1rem; }
  .header-row { min-height: 68px; }
  .brand img { width: 44px; height: 44px; }
  .brand-name { font-size: 1.1rem; }
  .menu-label { display: none; }
  .site-nav { max-height: calc(100vh - 68px); }
  .actions { flex-direction: column; }
  .actions .btn, .cta-band .btn { width: 100%; }
  .cols, .questions, .sectors, .facts, .articles { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .steps li { display: grid; grid-template-columns: 44px 1fr; column-gap: 8px; }
  .steps li .step-n { grid-row: span 2; }
  .service { grid-template-columns: 1fr; gap: 10px; }
  .service .textlink { grid-column: 1; }
  .engagement dl { grid-template-columns: 1fr; }
  .corridor { grid-template-columns: 1fr; }
  .corridor > div:last-child { text-align: left; }
  .corridor-link { height: 48px; display: flex; justify-content: flex-start; padding-left: 6px; }
  .corridor-link span { width: 2px; height: 100%; }
  .corridor-link span::before { top: -2px; left: -5px; } .corridor-link span::after { top: auto; bottom: -2px; left: -5px; right: auto; }
  .form-grid { grid-template-columns: 1fr; }
  .inline-row { flex-direction: column; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .corridor-line { flex-wrap: wrap; }
  .cta-band .ring { width: 360px; right: -160px; bottom: -160px; }
}

/* ---------- preview helpers ---------- */
.view[hidden] { display: none; }
@media print { .site-header, .site-footer, .cta-band .ring, .home-hero .ring { display: none; } }

/* ---------- contact CTAs ---------- */
.ico { width: 20px; height: 20px; flex: none; }
.cta-group { display: flex; flex-wrap: wrap; gap: 12px; }
.btn-contact { gap: 12px; padding: 10px 20px; text-align: left; min-height: 60px; }
.btn-text { display: flex; flex-direction: column; line-height: 1.25; }
.btn-main { font-weight: 600; }
.btn-sub { font-weight: 500; font-size: .82rem; opacity: .82; letter-spacing: 0; }
.btn .ico + span { margin-left: 0; }
.btn-nav { gap: 8px; }
.btn-nav .ico { width: 18px; height: 18px; }
.hero-more { margin: 18px 0 0; font-weight: 600; font-size: .95rem; }
.home-hero .hero-more a { color: #dfe5eb; }
.nav-phone { display: inline-flex; align-items: center; gap: 8px; font: 600 .92rem var(--sans); color: var(--navy); text-decoration: none; white-space: nowrap; }
.nav-phone:hover { text-decoration: underline; }
.nav-phone .ico { width: 18px; height: 18px; }
.foot-contact { list-style: none; margin: 16px 0 0; padding: 0; }
.foot-contact li { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: .95rem; }
.foot-contact .ico { width: 18px; height: 18px; color: #8ea0b1; }
.site-footer .foot-contact a { color: var(--ivory); }
.calendar-slot .cta-group { margin-top: 16px; flex-direction: column; }
.calendar-slot .btn-contact { width: 100%; justify-content: flex-start; }
.consult-form button .ico { margin-right: 8px; }
@media (max-width: 767px) {
  .cta-group { flex-direction: column; width: 100%; }
  .btn-contact { width: 100%; justify-content: flex-start; }
}

/* ================= header & footer alignment system ================= */
.header-row { gap: 20px; }
.brand { flex: none; }
.brand-name { white-space: nowrap; }
.site-nav { flex: 1 1 auto; justify-content: flex-end; min-width: 0; }
.nav-contact { display: flex; align-items: center; gap: 14px; padding-left: 16px; border-left: 1px solid var(--rule); height: 32px; }
.nav-phone { height: 100%; }
.nav-wa-label { display: none; }
.header-actions { display: none; align-items: center; gap: 8px; margin-left: auto; }
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius); border: 1.5px solid var(--navy); color: var(--navy); background: transparent; }
.icon-btn:hover { background: var(--navy); color: var(--ivory); }
.icon-btn .ico { width: 20px; height: 20px; }
.menu-toggle { height: 44px; }
.btn-wa .ico { width: 21px; height: 21px; }

.foot-grid { align-items: start; }
.foot-grid > div:not(.foot-brand) { padding-top: 6px; }
.foot-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 32px; margin-top: 16px; }
.foot-copy { margin: 0; }
.site-footer .foot-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.site-footer .foot-links li { padding: 0; font-size: .82rem; }

/* laptop 1024-1279: keep every nav item on one line */
@media (min-width: 1024px) and (max-width: 1279px) {
  .header-row { gap: 12px; }
  .brand img { width: 46px; height: 46px; }
  .brand-name { font-size: 1.1rem; }
  .nav-list > li > a, .sub-toggle { padding: 10px 7px; font-size: .86rem; }
  .site-nav { gap: 12px; }
  .nav-contact { gap: 10px; padding-left: 12px; }
  .nav-phone span { display: none; }
  .site-nav .btn-nav { padding: 10px 14px; font-size: .85rem; min-height: 44px; }
}
@media (min-width: 1024px) and (max-width: 1119px) {
  .btn-nav .ico { display: none; }
  .nav-list > li > a, .sub-toggle { padding: 10px 6px; }
}

/* tablet & mobile: icon actions beside menu; contact inside panel */
@media (max-width: 1023px) {
  .header-actions { display: flex; }
  .site-nav { gap: 0; }
  .nav-contact { border-left: 0; padding: 0; height: auto; flex-direction: column; align-items: stretch; gap: 0; }
  .nav-phone { padding: 16px 4px; font-size: 1.05rem; border-bottom: 1px solid var(--rule); }
  .nav-phone span, .nav-wa-label { display: inline; }
  .site-nav .btn-nav { width: 100%; }
  .foot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; }
  .foot-brand { display: grid; grid-template-columns: auto 1fr 1fr; gap: 0 32px; align-items: start; padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .foot-brand img { grid-row: span 3; margin: 0; }
  .foot-brand > p:first-of-type { grid-column: 2; }
  .foot-brand .foot-loc { grid-column: 2; }
  .foot-brand .foot-contact { grid-column: 3; grid-row: 1 / span 2; margin: 0; }
}

@media (max-width: 767px) {
  .header-row { gap: 12px; }
  .header-actions { gap: 6px; }
  .icon-btn, .menu-toggle { width: 42px; height: 42px; padding: 0; justify-content: center; }
  .foot-brand { grid-template-columns: 1fr; }
  .foot-brand img { grid-row: auto; margin-bottom: 16px; width: 80px; height: 80px; }
  .foot-brand > p:first-of-type, .foot-brand .foot-loc, .foot-brand .foot-contact { grid-column: 1; grid-row: auto; }
  .foot-brand .foot-contact { margin-top: 8px; }
  .foot-grid { grid-template-columns: 1fr; row-gap: 28px; }
  .site-footer .foot-grid ul:not(.foot-contact) { display: flex; flex-wrap: wrap; gap: 4px 20px; }
  .foot-bottom { flex-direction: column; align-items: flex-start; }
}
@media (min-width: 560px) and (max-width: 767px) {
  .foot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 20px; }
  .foot-brand { grid-column: 1 / -1; }
  .site-footer .foot-grid ul:not(.foot-contact) { display: block; }
}
@media (max-width: 389px) {
  :root { --gutter: 16px; }
  .brand { gap: 10px; }
  .brand img { width: 40px; height: 40px; }
  .brand-name { font-size: 1rem; }
}
@media (max-width: 339px) {
  .brand-name { display: none; }
}
.nav-list a, .sub-toggle, .btn-nav, .nav-phone { white-space: nowrap; }
@media (min-width: 1024px) {
  .nav-phone span, .nav-wa-label { display: none; }
  .nav-phone { width: 36px; justify-content: center; border-radius: var(--radius); }
  .nav-phone:hover { background: var(--mist); text-decoration: none; }
}
/* CTA layout: email button on top, Call + WhatsApp as an equal pair beneath - same shape at every width */
.cta-group { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cta-group .btn-contact:first-child { grid-column: 1 / -1; }
.cta-group .btn-contact { justify-content: flex-start; min-width: 0; }
.calendar-slot .cta-group { display: grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 767px) {
  .cta-group, .calendar-slot .cta-group { display: grid; width: 100%; grid-template-columns: 1fr 1fr; }
  .btn-contact { padding: 10px 14px; gap: 10px; }
}
@media (max-width: 379px) {
  .cta-group, .calendar-slot .cta-group { grid-template-columns: 1fr; }
}
/* ---------- legal pages ---------- */
.narrow > .legal { max-width: none; }
.legal-meta { font-size: .9rem; font-weight: 600; color: var(--slate); margin-bottom: 8px; }
.legal-intro { font-size: 1.1rem; color: #2b3b4b; max-width: 64ch; margin-bottom: 40px; }
.legal-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 56px; align-items: start; }
.legal-toc { position: sticky; top: calc(100px + env(safe-area-inset-top, 0px)); border-top: 2px solid var(--navy); padding-top: 16px; }
.legal-toc-h { font-weight: 600; color: var(--navy); font-size: .9rem; margin-bottom: 8px; }
.legal-toc ol { margin: 0; padding-left: 20px; font-size: .9rem; color: var(--slate); }
.legal-toc li { padding: 4px 0; }
.legal-toc a { color: var(--slate); text-decoration: none; }
.legal-toc a:hover { color: var(--navy); text-decoration: underline; }
.legal-body { max-width: 760px; }
.legal-sec { padding: 28px 0; border-top: 1px solid var(--rule); scroll-margin-top: 100px; }
.legal-sec:first-child { border-top: 0; padding-top: 0; }
.legal-sec h2 { font-size: clamp(1.35rem, 1.15rem + .6vw, 1.7rem); max-width: none; }
.legal-sec h3 { margin-top: 20px; }
.legal-sec ul { padding-left: 20px; margin: 0 0 1em; }
.legal-sec li { padding: 4px 0; }
.legal-callout { border-left: 4px solid var(--navy); background: var(--white); padding: 18px 20px; font-weight: 500; }
.legal-contact { background: var(--white); border: 1px solid var(--rule); border-radius: 6px; padding: 20px 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 32px; }
.legal-contact p { margin: 0; }
.table-wrap { overflow-x: auto; margin: 8px 0 16px; -webkit-overflow-scrolling: touch; }
.legal-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .92rem; background: var(--white); }
.legal-table th { text-align: left; background: var(--mist); color: var(--navy); font-weight: 600; padding: 12px 14px; border-bottom: 1px solid var(--rule); }
.legal-table td { padding: 12px 14px; border-bottom: 1px solid var(--rule); vertical-align: top; }
@media (max-width: 1023px) {
  .legal-grid { grid-template-columns: 1fr; gap: 24px; }
  .legal-toc { position: static; }
  .legal-toc ol { columns: 2; column-gap: 32px; }
}
@media (max-width: 767px) {
  .legal-toc ol { columns: 1; }
  .legal-contact { grid-template-columns: 1fr; }
}

/* ================= home hero v2 ================= */
.hero2 { padding: clamp(48px, 5.5vw, 88px) 0 clamp(56px, 6vw, 96px); background: radial-gradient(1200px 600px at 78% 40%, #123a63 0%, rgba(18,58,99,0) 60%), var(--navy); }
.hero2-bg { position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px; background-position: center top;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 35%, #000 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 35%, #000 100%); }
.hero2-bg span { position: absolute; width: 64px; height: 64px; background: rgba(255,255,255,.045); }
.hero2-bg span:nth-child(1) { left: 45%; top: 64px; }
.hero2-bg span:nth-child(2) { left: 52%; top: 256px; background: rgba(255,255,255,.07); }
.hero2-bg span:nth-child(3) { right: 6%; top: 128px; }
.hero2-bg span:nth-child(4) { right: 14%; bottom: 128px; background: rgba(255,255,255,.06); }
.hero2-bg span:nth-child(5) { left: 58%; bottom: 64px; }
.hero2-bg span:nth-child(6) { right: 2%; bottom: 320px; background: rgba(255,255,255,.035); }
.hero2-bg span:nth-child(7) { left: 40%; bottom: 192px; background: rgba(255,255,255,.03); }
.hero2-lines { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 150px; color: rgba(185,198,211,.18); pointer-events: none; }
.hero2-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(32px, 5vw, 80px); align-items: center; }

.hero2 .hero2-title { font-size: clamp(2.5rem, 1.4rem + 3vw, 4rem); line-height: 1.04; max-width: none; margin-bottom: 24px; }
.hero2-title span { display: block; }
.hero2-title .t-strong { font-family: var(--serif); font-weight: 700; color: var(--ivory); }
.hero2-title .t-light { font-family: var(--sans); font-weight: 300; letter-spacing: -.02em; color: #e8eef4; font-size: .9em; line-height: 1.15;
  width: fit-content; padding-bottom: .06em; border-bottom: 2px solid rgba(232,238,244,.8); margin: .06em 0 .12em; }
.hero2 .lead { max-width: 54ch; }
.hero2-checks { list-style: none; margin: 8px 0 32px; padding: 0; display: grid; gap: 12px; }
.hero2-checks li { display: flex; align-items: center; gap: 12px; color: #e8eef4; font-weight: 500; }
.hero2-checks .ico { width: 20px; height: 20px; color: #8fb4d9; flex: none; }

.hero2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.btn-split { display: inline-flex; align-items: stretch; text-decoration: none; border-radius: 6px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.btn-split-main { display: inline-flex; align-items: center; gap: 12px; padding: 12px 20px; background: var(--ivory); color: var(--navy); }
.btn-split-arrow { display: inline-flex; align-items: center; justify-content: center; width: 56px; background: #dfe7ef; color: var(--navy); margin-left: 3px; transition: background-color .15s; }
.btn-split-arrow svg { width: 22px; height: 22px; }
.btn-split:hover .btn-split-arrow { background: var(--white); }
.btn-split:hover .btn-split-main { background: var(--white); }
.round-ctas { display: flex; flex-wrap: wrap; gap: 16px 28px; }
.round-cta { display: inline-flex; align-items: center; gap: 12px; color: var(--ivory); text-decoration: none; }
.round-ico { width: 52px; height: 52px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: none; transition: transform .15s; }
.round-ico .ico { width: 22px; height: 22px; }
.round-wa .round-ico { background: #25d366; color: #083a1f; }
.round-call .round-ico { background: transparent; border: 1.5px solid rgba(255,254,249,.6); color: var(--ivory); }
.round-cta:hover .round-ico { transform: scale(1.06); }
.round-cta .btn-sub { color: #b9c6d3; opacity: 1; }

.hero2-visual { position: relative; padding: 36px 0 44px 0; }
.hero2-visual .ring { width: 118%; left: -9%; right: auto; top: 50%; transform: translateY(-50%); color: rgba(255,254,249,.12); }
.portrait-card { position: relative; margin-left: auto; width: min(100%, 460px); aspect-ratio: 18 / 25; border-radius: 28px; overflow: hidden;
  background: radial-gradient(70% 42% at 50% 22%, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 100%), linear-gradient(180deg, #c9d6e3 0%, #b0c0d0 30%, #7f97b0 55%, #3f5c79 80%, #1e3e5f 100%); box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.portrait-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,39,68,0) 70%, rgba(8,39,68,.35) 100%); pointer-events: none; }
.portrait-img { position: absolute; left: -2%; top: auto; bottom: 0; width: 104%; height: auto; max-width: none; }
.float-card { position: absolute; display: flex; align-items: center; gap: 12px; background: var(--white); color: var(--ink); border-radius: 16px;
  padding: 14px 18px; box-shadow: 0 18px 40px rgba(5,26,46,.35); text-decoration: none; }
.float-card .float-txt { display: flex; flex-direction: column; line-height: 1.3; }
.float-card strong { color: var(--navy); font-size: .95rem; }
.float-card .float-txt span { font-size: .8rem; color: var(--slate); }
.float-exp { top: 0; right: -8px; border: 8px solid var(--navy); border-radius: 22px; max-width: 290px; }
.float-num { font: 700 2.4rem/1 var(--serif); color: var(--navy); }
.float-tag { position: absolute; top: -18px; right: 14px; background: #1e6b4f; color: #fff; font: 600 .75rem/1 var(--sans); padding: 7px 10px; border-radius: 999px; }
.float-name { left: 0; bottom: 8px; }
.float-name:hover strong { text-decoration: underline; }
.float-in { width: 40px; height: 40px; border-radius: 10px; background: #0a66c2; color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.float-in .ico { width: 22px; height: 22px; }

.split-rev > div:first-child { order: 2; }

@media (max-width: 1279px) {
  .float-exp { right: 0; }
}
@media (max-width: 1023px) {
  .hero2-grid { grid-template-columns: 1fr; }
  .hero2-visual { max-width: 520px; width: 100%; margin: 8px auto 0; }
  .portrait-card { margin: 0 auto; width: min(86%, 440px); }
  .hero2-visual .ring { width: 110%; left: -5%; }
  .hero2-lines { display: none; }
  .hero2-bg { -webkit-mask-image: none; mask-image: none; }
  .split-rev > div:first-child { order: 0; }
}
@media (max-width: 767px) {
  .hero2 .hero2-title { font-size: clamp(2.2rem, 1.4rem + 4.2vw, 2.9rem); }
  .hero2-actions, .round-ctas { flex-direction: column; align-items: stretch; width: 100%; gap: 14px; }
  .btn-split { width: 100%; }
  .btn-split-main { flex: 1; padding: 12px 16px; }
  .btn-split-arrow { width: 50px; }
  .portrait-card { width: 88%; border-radius: 22px; }
  .float-card { padding: 10px 12px; gap: 10px; border-radius: 12px; }
  .float-exp { right: 0; border-width: 6px; border-radius: 18px; max-width: 230px; }
  .float-num { font-size: 1.9rem; }
  .float-card strong { font-size: .85rem; }
  .float-card .float-txt span { font-size: .72rem; }
  .float-in { width: 34px; height: 34px; }
}
@media (max-width: 379px) {
  .float-exp .float-txt span { display: none; }
}

.float-name strong a { color: var(--navy); text-decoration: none; }
.float-name strong a:hover { text-decoration: underline; }
.float-link { font-size: .8rem; font-weight: 600; color: var(--navy); margin-top: 2px; }
.float-in { flex: none; }

/* founder avatar on consultation page */
.founder-chip { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.founder-chip img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex: none; box-shadow: 0 0 0 3px var(--white), 0 0 0 4px var(--rule); }
.founder-chip p { margin: 0; line-height: 1.35; }
.founder-chip .chip-role { font-size: .85rem; color: var(--slate); }

/* founder portrait on About page matches the home hero card */
.page-hero .ph-portrait.has-photo { max-width: 440px; margin-left: auto; }
.page-hero .ph-portrait.has-photo img { border-radius: 24px; box-shadow: 0 24px 60px rgba(8,39,68,.22); }
@media (max-width: 1023px) { .page-hero .ph-portrait.has-photo { margin: 0 auto; max-width: 400px; } }

.btn-sub { white-space: nowrap; }
@media (max-width: 767px) { .calendar-slot .cta-group { grid-template-columns: 1fr; } }

/* ================= home hero v4 (plain navy, large founder portrait) ================= */
.hero4 { --brass: #c9a66b; --brass-2: #b08d57; position: relative; overflow: hidden; isolation: isolate; color: var(--ivory); background: #0a2440;
  min-height: clamp(600px, calc(100vh - 76px), 820px); display: flex; }
.hero4-bg { position: absolute; inset: 0; z-index: -4; background-size: cover; background-position: center; }
.hero4-lines { position: absolute; inset: 0; z-index: -3; pointer-events: none; }
.hero4-lines span { position: absolute; top: -20%; width: 38%; height: 140%; transform: rotate(18deg); background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.035), rgba(255,255,255,0)); }
.hero4-lines span:first-child { left: 30%; } .hero4-lines span:last-child { left: 62%; width: 22%; }
.hero4-rail { position: absolute; left: 0; top: 18%; bottom: 18%; width: 6px; background: linear-gradient(180deg, var(--brass), rgba(201,166,107,.2)); z-index: 2; }
.hero4-figure { position: absolute; z-index: -1; margin: 0; bottom: 0; top: 0; left: 50%; transform: translateX(-24%); pointer-events: none; display: flex; align-items: flex-end; }
.hero4-glow { position: absolute; left: 50%; top: 42%; width: 120%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(88,130,178,.45), rgba(88,130,178,.12) 55%, rgba(88,130,178,0)); }
.hero4-cut { position: relative; display: block; height: 108%; margin-bottom: -8%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 16%, #000 84%, transparent 100%), linear-gradient(180deg, #000 72%, transparent 100%);
  -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, #000 16%, #000 84%, transparent 100%), linear-gradient(180deg, #000 72%, transparent 100%); mask-composite: intersect; }
.hero4-img { height: 100%; width: auto; max-width: none; display: block; }
.hero4-grid { position: relative; z-index: 1; width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px;
  padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(40px, 5vw, 64px); }
.hero4-copy { max-width: 600px; text-shadow: 0 1px 3px rgba(3,12,24,.45); }
.hero4-kicker { display: flex; align-items: center; gap: 12px; color: var(--brass); font: 600 .98rem/1.3 var(--sans); margin: 0 0 18px; }
.hero4-kicker span { width: 36px; height: 2px; background: var(--brass); }
.hero4 .hero4-title { font-family: var(--serif); font-weight: 700; color: #fff; font-size: clamp(2.5rem, 1.5rem + 3vw, 4.2rem); line-height: 1.07; letter-spacing: -.015em; max-width: 14ch; margin: 0 0 22px; }
.hero4-lead { color: #d7e0ea; font-size: clamp(1rem, .95rem + .25vw, 1.12rem); line-height: 1.65; max-width: 46ch; margin: 0 0 32px; }
.hero4-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; text-shadow: none; }
.hero4-actions .ico { width: 20px; height: 20px; flex: none; }
.hero4-actions .btn-text { display: flex; flex-direction: column; line-height: 1.2; text-align: left; }
.hero4-actions .btn-main { font: 600 .95rem var(--sans); }
.hero4-actions .btn-sub { font: 500 .78rem var(--sans); opacity: .85; white-space: nowrap; }
.h4-primary { display: inline-flex; align-items: stretch; gap: 4px; text-decoration: none; color: var(--navy); }
.h4-primary-main { display: inline-flex; align-items: center; gap: 12px; padding: 10px 20px; border-radius: 999px 6px 6px 999px; background: var(--brass); transition: background-color .15s; }
.h4-primary-arrow { display: inline-flex; align-items: center; justify-content: center; width: 54px; border-radius: 6px 999px 999px 6px; background: var(--ivory); transition: transform .15s; }
.h4-primary-arrow svg { width: 20px; height: 20px; }
.h4-primary:hover .h4-primary-main { background: #d6b57c; }
.h4-primary:hover .h4-primary-arrow { transform: translate(2px, -2px); }
.h4-ghost { display: inline-flex; align-items: center; gap: 10px; padding: 10px 20px; border-radius: 999px; border: 1.5px solid rgba(255,254,249,.55); color: var(--ivory); text-decoration: none; transition: background-color .15s, border-color .15s; }
.h4-ghost:hover { background: rgba(255,254,249,.1); border-color: var(--ivory); }
.h4-wa .ico { color: #43d17c; }

.hero4-card { align-self: end; margin-bottom: 24px; width: 230px; padding: 26px 22px 22px; border-radius: 4px; color: var(--ivory);
  background: linear-gradient(160deg, rgba(40,78,122,.9), rgba(11,38,66,.92)); border-left: 4px solid var(--brass); box-shadow: 0 24px 60px rgba(3,12,24,.45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.hero4-card p { margin: 0; }
.hero4-card-num { font: 700 3.4rem/1 var(--serif); color: #fff; }
.hero4-card-txt { font-size: .86rem; color: #cdd8e4; margin-top: 8px !important; line-height: 1.45; }
.hero4-card-name { display: flex; flex-direction: column; gap: 2px; margin-top: 18px !important; padding-top: 16px; border-top: 1px solid rgba(255,254,249,.18); }
.hero4-card-name a { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; text-decoration: none; }
.hero4-card-name a:hover { text-decoration: underline; }
.hero4-card-name > span { font-size: .8rem; color: #b9c6d3; padding-left: 32px; }
.hero4-in { width: 24px; height: 24px; border-radius: 6px; background: #0a66c2; display: inline-flex; align-items: center; justify-content: center; }
.hero4-in .ico { width: 16px; height: 16px; }
.hero4-card-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; color: var(--brass); font-weight: 600; font-size: .88rem; text-decoration: none; }
.hero4-card-link svg { width: 16px; height: 16px; transition: transform .15s; }
.hero4-card-link:hover svg { transform: translateX(3px); }

@media (max-width: 1279px) {
  .hero4-figure { transform: translateX(-30%); }
  .hero4-card { width: 210px; }
  .hero4-copy { max-width: 540px; }
}
@media (max-width: 1023px) {
  .hero4 { min-height: 0; flex-direction: column; }
  .hero4-grid { grid-template-columns: 1fr; order: 1; padding-bottom: 8px; }
  .hero4-figure { position: relative; order: 2; left: auto; top: auto; transform: none; height: 540px; justify-content: center; }
  .hero4-cut { height: 100%; margin-bottom: 0; }
  .hero4-glow { width: 90%; }
  .hero4-card { position: absolute; right: 24px; bottom: 36px; width: 220px; }
  .hero4-grid { position: static; }
  .hero4-rail { top: 6%; bottom: auto; height: 180px; }
}
@media (max-width: 767px) {
  .hero4-actions { flex-direction: column; }
  .h4-primary, .h4-ghost { width: 100%; }
  .h4-primary-main { flex: 1; }
  .hero4-figure { height: 460px; }
  .hero4-card { left: 16px; right: 16px; bottom: 16px; width: auto; padding: 12px 14px; display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
  .hero4-card-num { grid-row: span 2; font-size: 2.2rem; }
  .hero4-card-txt { display: none; }
  .hero4-card-name { margin: 0 !important; padding: 0; border: 0; }
  .hero4-card-name > span { display: none; }
  .hero4-card-link { margin-top: 2px; font-size: .82rem; }
  .hero4-rail { width: 4px; }
}

.steps.steps-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1023px) { .steps.steps-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .steps.steps-4 { grid-template-columns: 1fr; } }

/* hero v4: office portrait blended into navy + rise-up entrance */
.hero4-cut { -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 17%, #000 83%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 9%, #000 76%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 17%, #000 83%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 9%, #000 76%, transparent 100%); }
@keyframes hero4Rise { from { transform: translateY(90px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes hero4Glow { from { opacity: 0; } to { opacity: 1; } }
.hero4-cut { animation: hero4Rise 1.1s cubic-bezier(.16,.84,.3,1) both; will-change: transform, opacity; }
.hero4-glow { animation: hero4Glow 1.4s ease-out .1s both; }
.hero4-card { animation: hero4Glow .8s ease-out 1s both; }
@media (prefers-reduced-motion: reduce) { .hero4-cut, .hero4-glow, .hero4-card { animation: none; } }

/* ---------- transparent header, single line ---------- */
:root { --hdr-h: 77px; }
@media (max-width: 767px) { :root { --hdr-h: 69px; } }
.site-header { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: 1px solid #111; transition: background-color .25s ease, border-color .25s ease; }
.hdr-solid .site-header, .menu-open .site-header { background: rgba(255,254,249,.97); }
.brand .brand-logo-w { display: none; }
/* homepage: header floats over the navy hero */
.hdr-home main .hero4 { margin-top: calc(-1 * var(--hdr-h)); padding-top: var(--hdr-h); }
@media (min-width: 1024px) { .hdr-home main .hero4 { min-height: clamp(676px, 100vh, 896px); } }
.hdr-over .site-header { background: transparent; border-bottom-color: rgba(255,255,255,.22); }
.hdr-over .brand .brand-logo-d { display: none; }
.hdr-over .brand .brand-logo-w { display: block; }
.hdr-over .brand-name { color: #fff; }
.hdr-over .icon-btn, .hdr-over .menu-toggle { border-color: rgba(255,255,255,.7); color: #fff; }
.hdr-over .icon-btn:hover { background: rgba(255,255,255,.12); color: #fff; }
.hdr-over .bars, .hdr-over .bars::before, .hdr-over .bars::after { background: #fff; }
@media (min-width: 1024px) {
  .hdr-over .nav-list > li > a, .hdr-over .sub-toggle, .hdr-over .nav-phone { color: #fff; }
  .hdr-over .nav-list > li > a:hover, .hdr-over .sub-toggle:hover { color: #fff; background: rgba(255,255,255,.1); }
  .hdr-over .nav-list a[aria-current="page"] { box-shadow: inset 0 -2px 0 #fff; }
  .hdr-over .btn-nav { background: #c9a66b; border-color: #c9a66b; color: #0a2440; }
  .hdr-over .btn-nav:hover { background: #d8b87f; border-color: #d8b87f; }
}
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }

/* legal grid: keep wide tables inside their scroll box on phones */
.legal-grid > * { min-width: 0; }
@media (max-width: 1023px) { .legal-grid { grid-template-columns: minmax(0, 1fr); } }
.table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media (max-width: 767px) { .hero4-card-num { display: flex; flex-direction: column; line-height: 1; } .hero4-card-num::after { content: "years exp."; font: 500 .68rem/1.2 var(--sans); color: #b9c6d3; margin-top: 4px; letter-spacing: .02em; } }

/* ---------- full-bleed sector hero (technology, automation, cybersecurity) ---------- */
.page-hero.hero-full { --brass: #c9a66b; position: relative; isolation: isolate; overflow: hidden; background: #0a2440; color: #fff; border-bottom: 0;
  min-height: clamp(560px, 86vh, 780px); display: flex; flex-direction: column; padding: 0 0 clamp(56px, 7vw, 96px); }
.hdr-home main .hero-full { margin-top: calc(-1 * var(--hdr-h)); padding-top: var(--hdr-h); min-height: clamp(620px, 100vh, 860px); }
.hero-full-bg { position: absolute; inset: 0; z-index: -2; }
.hero-full-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; animation: hfZoom 1.6s cubic-bezier(.16,.84,.3,1) both; }
.hero-full::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(10,36,64,.97) 0%, rgba(10,36,64,.9) 30%, rgba(10,36,64,.55) 58%, rgba(10,36,64,.18) 100%),
              linear-gradient(180deg, rgba(10,36,64,.55) 0%, rgba(10,36,64,0) 22%, rgba(10,36,64,0) 70%, rgba(10,36,64,.85) 100%); }
.hero-full-rail { position: absolute; left: 0; top: 18%; bottom: 18%; width: 5px; background: linear-gradient(180deg, transparent, var(--brass) 20%, var(--brass) 80%, transparent); opacity: .9; }
.hero-full .crumbs { color: #b9c6d3; padding-top: 24px; }
.hero-full .crumbs a { color: #fff; }
.hero-full .crumbs li + li::before { color: #6f8499; }
.hero-full .page-hero-grid { grid-template-columns: minmax(0, 680px); flex: 1; align-content: center; padding-top: clamp(32px, 5vw, 64px); }
.hero-full .page-hero-copy { animation: hfUp .9s ease-out .1s both; }
.hero-full .eyebrow { color: var(--brass); }
.hero-full h1 { color: #fff; max-width: 18ch; }
.hero-full .lead { color: #d3dce6; max-width: 58ch; }
.hero-full .btn-primary { background: var(--brass); border-color: var(--brass); color: #0a2440; }
.hero-full .btn-primary:hover { background: #d8b87f; border-color: #d8b87f; }
.hero-full .btn-secondary { background: rgba(10,36,64,.35); border-color: rgba(255,255,255,.6); color: #fff; }
.hero-full .btn-secondary:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }
.hero-full .hero-more a { color: #fff; }
@keyframes hfZoom { from { transform: scale(1.06); opacity: .4; } to { transform: scale(1); opacity: 1; } }
@keyframes hfUp { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 1023px) {
  .page-hero.hero-full, .hdr-home main .hero-full { min-height: 0; }
  .hero-full-bg img { object-position: 65% center; }
  .hero-full::before { background: linear-gradient(180deg, rgba(10,36,64,.72) 0%, rgba(10,36,64,.82) 45%, rgba(10,36,64,.95) 100%); }
  .hero-full-rail { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hero-full-bg img, .hero-full .page-hero-copy { animation: none; } }
@media (min-width: 1024px) { .hdr-over .has-sub.is-active > .sub-toggle { color: #fff; box-shadow: inset 0 -2px 0 var(--brass, #c9a66b); } .hdr-over .nav-list a[aria-current="page"] { box-shadow: inset 0 -2px 0 #c9a66b; } }
