/* (Removed .wordmark-picture wrapper styles after switching to PNG-only wordmark) */
/* Reintroduce wrapper styles now that <picture> is back (SVG + PNG fallback) */
.wordmark-picture { display:flex; align-items:flex-end; }
.wordmark-picture .wordmark, .wordmark-picture .wordmark-footer { margin-left:.2rem; }
/* Font loading: using Google Fonts (Raleway + IBM Plex Sans) via <link> tags in HTML head.
  Local self-hosting option: copy subsetted WOFF2 files into assets/fonts and define @font-face here. */

/* THEME TOKENS */
:root {
  --transition-theme: 260ms cubic-bezier(.4,.05,.2,1);
  --radius-sm:4px; --radius:8px; --radius-lg:16px;
  --focus-ring: 2px solid var(--gold, #d4af37);
}

/* Local Montserrat (preferred over remote). Source files placed under assets/fonts/montserrat */
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:local('Montserrat Regular'), url('../fonts/montserrat/Montserrat-Regular.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-Regular.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:italic; font-weight:400; font-display:swap; src:local('Montserrat Italic'), url('../fonts/montserrat/Montserrat-Italic.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-Italic.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:local('Montserrat Medium'), url('../fonts/montserrat/Montserrat-Medium.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-Medium.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:italic; font-weight:500; font-display:swap; src:local('Montserrat Medium Italic'), url('../fonts/montserrat/Montserrat-MediumItalic.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-MediumItalic.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:local('Montserrat SemiBold'), url('../fonts/montserrat/Montserrat-SemiBold.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-SemiBold.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:italic; font-weight:600; font-display:swap; src:local('Montserrat SemiBold Italic'), url('../fonts/montserrat/Montserrat-SemiBoldItalic.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-SemiBoldItalic.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:700; font-display:swap; src:local('Montserrat Bold'), url('../fonts/montserrat/Montserrat-Bold.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-Bold.ttf') format('truetype'); }
@font-face { font-family:'Montserrat'; font-style:italic; font-weight:700; font-display:swap; src:local('Montserrat Bold Italic'), url('../fonts/montserrat/Montserrat-BoldItalic.woff2') format('woff2'), url('../fonts/montserrat/Montserrat-BoldItalic.ttf') format('truetype'); }

/* Local Nunito Sans variable (will fallback to system if unavailable). Place variable TTF in assets/fonts/nunitosans */
@font-face { font-family:'Nunito Sans'; font-style:normal; font-weight:100 900; font-display:swap; src:local('Nunito Sans Variable'), url('../fonts/nunitosans/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.woff2') format('woff2-variations'), url('../fonts/nunitosans/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.ttf') format('truetype-variations'); }
@font-face { font-family:'Nunito Sans'; font-style:italic; font-weight:100 900; font-display:swap; src:local('Nunito Sans Variable Italic'), url('../fonts/nunitosans/NunitoSans-Italic-VariableFont_YTLC,opsz,wdth,wght.woff2') format('woff2-variations'), url('../fonts/nunitosans/NunitoSans-Italic-VariableFont_YTLC,opsz,wdth,wght.ttf') format('truetype-variations'); }

/* Raleway (used inside SVG wordmark) */
@font-face { font-family:'Raleway'; font-style:normal; font-weight:400; font-display:swap; src:local('Raleway Regular'), url('../fonts/Raleway/Raleway-Regular.woff2') format('woff2'), url('../fonts/Raleway/Raleway-Regular.ttf') format('truetype'); }
@font-face { font-family:'Raleway'; font-style:normal; font-weight:700; font-display:swap; src:local('Raleway Bold'), url('../fonts/Raleway/Raleway-Bold.woff2') format('woff2'), url('../fonts/Raleway/Raleway-Bold.ttf') format('truetype'); }
@font-face { font-family:'Raleway'; font-style:normal; font-weight:800; font-display:swap; src:local('Raleway ExtraBold'), url('../fonts/Raleway/Raleway-ExtraBold.woff2') format('woff2'), url('../fonts/Raleway/Raleway-ExtraBold.ttf') format('truetype'); }
@font-face { font-family:'Raleway'; font-style:italic; font-weight:800; font-display:swap; src:local('Raleway ExtraBold Italic'), url('../fonts/Raleway/Raleway-ExtraBoldItalic.woff2') format('woff2'), url('../fonts/Raleway/Raleway-ExtraBoldItalic.ttf') format('truetype'); }
@font-face { font-family:'Raleway Variable'; font-style:normal; font-weight:100 900; font-display:swap; src:local('Raleway Variable'), url('../fonts/Raleway/Raleway-VariableFont_wght.woff2') format('woff2-variations'), url('../fonts/Raleway/Raleway-VariableFont_wght.ttf') format('truetype-variations'); }
@font-face { font-family:'Raleway Variable'; font-style:italic; font-weight:100 900; font-display:swap; src:local('Raleway Variable Italic'), url('../fonts/Raleway/Raleway-Italic-VariableFont_wght.woff2') format('woff2-variations'), url('../fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf') format('truetype-variations'); }

/* Dark theme (default) */
:root, :root[data-theme='dark'] {
  --blue:#001f3f; --blue-d1:#001835; --blue-d2:#001227; --blue-l1:#0a335c; --blue-l2:#1f4d7a;
  --red:#721817; --red-d1:#5a1312; --red-l1:#8c2220;
  --gold:#d4af37; --gold-d1:#b8921e; --gold-l1:#e2c968;
  --bg:#0c121a; --bg-alt:#121b26; --bg-soft:#1e2a38; --surface:#182330;
  --text:#f5f7fa; --text-soft:#b8c2cf; --border:#2a394b;
  --shadow-color:0 5px 18px -6px rgba(0,0,0,.6);
  /* Hero gradient (dark): simplified single radial (removed explicit size for compatibility) */
  /* Subtle hero gradient (dark): broaden blue dominance, delay softer red fringe */
  --grad-hero:radial-gradient(circle at 30% 42%,
    rgba(1, 44, 87, 0.7) 0%,
    rgba(76, 10, 10, 0.5) 100%
  );
  color-scheme:dark;
}

/* Light theme */
:root[data-theme='light'] {
  --blue:#0d2f57; --blue-d1:#082540; --blue-d2:#031A2F; --blue-l1:#1d4d80; --blue-l2:#2e6aa8;
  --red:#8f211f; --red-d1:#721817; --red-l1:#b42e2a;
  --gold:#b68d24; --gold-d1:#947016; --gold-l1:#d6b95c;
  --bg:#f4f7fa; --bg-alt:#eef2f6; --bg-soft:#e3e9ef; --surface:#ffffff;
  --text:#0e141b; --text-soft:#4b5a69; --border:#ccd6df;
  --shadow-color:0 4px 16px -4px rgba(0,0,0,.15);
  /* Hero gradient (light): simplified, punchy red ramp (removed explicit size) */
  --grad-hero:radial-gradient(circle at 30% 42%,
    rgba(110, 147, 189, 0.36) 0%,
    rgba(108, 142, 180, 0.243) 20%,
    rgba(101, 130, 163, 0.281) 38%,
    rgba(68, 92, 117, 0.257) 54%,
    rgba(103, 146, 188, 0.325) 62%,
    rgba(173, 105, 101, 0.26) 72%,
    rgba(196, 118, 114, 0.3) 80%,
    rgba(203, 124, 120, 0.34) 86%,
    rgba(186, 114, 110, 0.38) 92%,
    rgba(204, 120, 115, 0.4) 100%
  );
  color-scheme:light;
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme='dark']) { /* auto adopt light if user prefers and no explicit dark override */
    --blue:#0d2f57; --blue-d1:#082540; --blue-d2:#031A2F; --blue-l1:#1d4d80; --blue-l2:#2e6aa8;
    --red:#8f211f; --red-d1:#721817; --red-l1:#b42e2a;
    --gold:#b68d24; --gold-d1:#947016; --gold-l1:#d6b95c;
    --bg:#f4f7fa; --bg-alt:#eef2f6; --bg-soft:#e3e9ef; --surface:#ffffff;
    --text:#0e141b; --text-soft:#4b5a69; --border:#ccd6df;
    --shadow-color:0 4px 16px -4px rgba(0,0,0,.15);
  --grad-hero:radial-gradient(circle at 30% 42%,
   rgba(110, 147, 189, 0.36) 0%,
    rgba(108, 142, 180, 0.243) 20%,
    rgba(101, 130, 163, 0.281) 38%,
    rgba(68, 92, 117, 0.257) 54%,
    rgba(103, 146, 188, 0.325) 62%,
    rgba(173, 105, 101, 0.26) 72%,
    rgba(196, 118, 114, 0.3) 80%,
    rgba(203, 124, 120, 0.34) 86%,
    rgba(186, 114, 110, 0.38) 92%,
    rgba(204, 120, 115, 0.4) 100%
    );
    color-scheme:light;
  }
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  font-family: 'Nunito Sans', 'IBM Plex Sans', 'Segoe UI', Roboto, Oxygen, 'Fira Sans', 'Helvetica Neue', Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing: antialiased;
  transition: background var(--transition-theme), color var(--transition-theme);
}

h1,h2,h3,h4 { font-family:'Montserrat','Raleway','IBM Plex Sans','Segoe UI',Arial,sans-serif; font-weight:600; line-height:1.15; letter-spacing:.5px; }
 h1 { font-size:clamp(2.4rem, 5vw, 3.5rem); margin:.2em 0 .4em; }
 h2 { font-size:clamp(1.8rem, 3.5vw, 2.4rem); margin:0 0 .6em; }
 h3 { font-size:1.25rem; margin:0 0 .5em; }
 p { line-height:1.55; max-width:70ch; }

/* Explicit Raleway usage for brand word instances */
.nq-word { font-family:'Raleway', 'Montserrat', 'Nunito Sans', Arial, sans-serif; font-weight:800; letter-spacing:.5px; }
.nq-brandline { font-family:'Raleway','Montserrat','Nunito Sans',Arial,sans-serif; font-weight:800; letter-spacing:.6px; }

/* Section heading underline grow (first viewport entry via .revealed class) */
section h2 { position:relative; display:inline-block; padding-bottom:.4rem; }
section h2::after { content:""; position:absolute; left:0; bottom:0; height:2px; width:100%; background:var(--red); border-radius:2px; transform:scaleX(0); transform-origin:0 50%; opacity:.88; transition:transform .95s cubic-bezier(.32,.72,.23,1); }
section h2.underline-grow::after { transform:scaleX(1); }
@media (prefers-reduced-motion: reduce){ section h2::after { transform:none !important; } }

.site-header {
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:.65rem 2rem; -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgba(0,31,63,.94),rgba(0,24,48,.9) 65%,rgba(0,18,39,.88));
  border-bottom:1px solid #072640;
  box-shadow:0 4px 18px -10px rgba(0,0,0,.75);
  transition: background var(--transition-theme), border-color var(--transition-theme), box-shadow var(--transition-theme);
}
.site-header.scrolled { background:linear-gradient(180deg,rgba(0,31,63,.97),rgba(0,24,48,.95) 60%,rgba(0,18,39,.94)); box-shadow:0 4px 18px -6px rgba(0,0,0,.85); }

/* Light header overrides */
:root[data-theme='light'] .site-header { background:linear-gradient(180deg,#ffffffcc,#f5f9fdc9 65%,#ecf3f9c7); border-bottom:1px solid var(--border); box-shadow:0 4px 16px -8px rgba(0,0,0,.18); }
:root[data-theme='light'] .site-header.scrolled { background:linear-gradient(180deg,#ffffff,#f1f6fa 70%,#e8eef3); }
/* Branding lockup */
.branding { display:flex; align-items:flex-end; gap:.65rem; font-weight:600; }
.logo img, .logo-mark img { display:block; width:64px; height:auto; filter:drop-shadow(0 3px 5px rgba(0,0,0,.55)) brightness(1.05); transition:filter var(--transition-theme); }
.logo.small img { width:54px; }
/* Remove duplicate .branding; fine-tune spacing on large screens */
@media (min-width:900px){ .branding { gap:.7rem; } }
/* Wordmark image sizing */
.wordmark { display:block; height:50px; width:auto; margin-left:.2rem; filter:drop-shadow(0 2px 4px rgba(0,0,0,.65)) brightness(1.12) contrast(1.05); transition:filter var(--transition-theme); }
:root[data-theme='light'] .wordmark { filter:drop-shadow(0 2px 3px rgba(0,0,0,.25)) brightness(.96) contrast(1.05); }
@media (max-width: 860px){ .wordmark { height:46px; } }
@media (max-width: 640px){ .wordmark { height:42px; } }
.company-name { display:none; }

.main-nav ul { list-style:none; display:flex; gap:1.5rem; margin:0; padding:0; }
.main-nav a { color:var(--text-soft); text-decoration:none; font-size:.95rem; letter-spacing:.5px; position:relative; padding:.35rem 0; }
.main-nav a:focus-visible, .main-nav a:hover { color:var(--text); }
.main-nav a::after { content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--red); transition:.3s; }
.main-nav a:hover::after, .main-nav a:focus-visible::after, .main-nav a[aria-current="page"]::after { width:100%; }
.main-nav .cta { color:var(--red-l1); font-weight:600; }

.hero { position:relative; min-height:72vh; display:grid; place-items:center; text-align:center; padding:5.2rem 1.5rem 5rem; overflow:hidden; }
.hero-inner { max-width:1150px; }
.hero h1 {
  /* Sharper high-contrast blue gradient (dark): compressed mid ramp for clarity */
  background:linear-gradient(104deg,#e2f3ff 0%, #b9e1ff 12%, #74bdf7 26%, #2f7ec5 46%, #0f4d81 68%, #072a42 84%, #021726 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:
    0 0 2px rgba(255,255,255,.55), /* crisp inner highlight */
    0 2px 4px rgba(0,0,0,.55),     /* base depth */
    0 4px 12px rgba(15,90,150,.45),/* colored glow */
    0 8px 22px rgba(10,60,110,.35);/* extended atmospheric glow */
}
:root[data-theme='light'] .hero h1 {
  /* Light theme: boosted contrast (brighter highs, deeper lows) + micro-outline */
  /* Darkened fill (removed pure white / very bright early stops; shifted ramp slightly deeper) */
  /* Light theme: distinct from dark – no white fill or heavy dark drop shadow */
  background:linear-gradient(105deg,#5a9bcf 0%, #4a8cc2 18%, #3b7db5 34%, #2c6fa6 52%, #1d5f97 68%, #0f4f86 82%, #0a3d66 92%, #05263c 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  /* Remove bright stroke; keep minimal outline off */
  -webkit-text-stroke:0; 
  text-shadow:
    0 1px 2px rgba(0,0,0,.18),    /* gentle depth */
    0 2px 4px rgba(30,90,140,.18),/* chroma soft glow */
    0 4px 10px rgba(20,70,120,.15); /* subtle atmospheric */
}
/* Fallback for browsers without background-clip:text support */
@supports not (-webkit-background-clip:text) {
  :root[data-theme='light'] .hero h1 { color:#165b94; background:none; -webkit-text-stroke:0; text-shadow:0 1px 2px rgba(0,0,0,.18),0 2px 4px rgba(30,90,140,.25); }
  .hero h1 { color:#b9e1ff; background:none; text-shadow:0 2px 6px rgba(0,0,0,.6), 0 0 6px rgba(100,170,230,.55); }
}
.hero .tagline { font-size:1.05rem; color:var(--text-soft); margin:0 auto 2rem; }
.hero-bg { position:absolute; inset:0; background:var(--grad-hero, radial-gradient(circle at 30% 42%, #001f3f, #721817)); z-index:-1; }
/* Photographic hero layer */
/* Hero photo layering */
.hero-photo-wrapper, .hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* Theming variables for hero imagery */
:root {
  --hero-photo-opacity:.42;
  --hero-photo-filter:none;
  --hero-photo-blend:overlay;
  --hero-scrim-bg:linear-gradient(180deg,rgba(0,18,39,.55),rgba(0,18,39,.35) 40%,rgba(0,18,39,.65));
  --hero-scrim-opacity:.85;
}
:root[data-theme='light'] {
  /* Increased visibility: higher image opacity & reduced scrim strength */
  --hero-photo-opacity:.72; /* prev .58 / original .34 */
  --hero-photo-filter:contrast(1.14) brightness(1.0) saturate(1.18); /* slightly richer */
  --hero-photo-blend:normal; /* maintain original colors */
  --hero-scrim-bg:linear-gradient(180deg,rgba(255,255,255,.42),rgba(247,250,253,.34) 40%,rgba(238,243,248,.58)); /* lighter veil */
  --hero-scrim-opacity:.74; /* was .80 */
}
.hero-photo { opacity:var(--hero-photo-opacity); mix-blend-mode:var(--hero-photo-blend); filter:var(--hero-photo-filter); transition:opacity .8s ease, filter .8s ease; }
.hero-photo-scrim { position:absolute; inset:0; background:var(--hero-scrim-bg); pointer-events:none; opacity:var(--hero-scrim-opacity); transition:background .6s ease, opacity .6s ease; }
/* Parallax will-change hints */
.hero-photo, .hero-inner { will-change:transform; }

/* Blur-up technique */
.blur-up { filter:blur(28px) brightness(1.05); transform:scale(1.02); }
.blur-up.loaded { filter:blur(0) brightness(1); transform:scale(1); transition:filter 1s ease, transform 1s ease; }

@media (prefers-reduced-data: reduce) {
  .hero-photo { display:none; }
  .hero-photo-scrim { background:linear-gradient(180deg,rgba(0,18,39,.7),rgba(0,18,39,.6)); }
  [data-theme='light'] .hero-photo-scrim { background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(244,247,250,.75)); }
}

.section { padding:4.5rem 1.5rem; }
.section.alt { background:linear-gradient(180deg,#101b28,#0f1823); }
:root[data-theme='light'] .section.alt { background:linear-gradient(180deg,#eef2f6,#e6ecf2); }
.section-intro { text-align:center; max-width:900px; margin:0 auto 3rem; }
.cards { display:grid; gap:1.75rem; }
.cards { perspective:900px; perspective-origin:50% 50%; }
.cards.three-col { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.card { background:linear-gradient(145deg,#1a2633,#192530 55%,#15202b); padding:1.5rem 1.3rem 1.3rem; border:1px solid #263646; border-radius:var(--radius-lg); position:relative; overflow:hidden; box-shadow:var(--card-shadow, 0 5px 16px -8px rgba(0,0,0,.55)); transition:box-shadow .35s ease, transform .12s cubic-bezier(.25,.6,.3,1); --tiltX:0deg; --tiltY:0deg; --lift:0px; --card-shadow:0 5px 16px -8px rgba(0,0,0,.55); --tilt-perspective:900px; transform:perspective(var(--tilt-perspective)) translateY(var(--lift)) rotateX(var(--tiltX)) rotateY(var(--tiltY)); transform-style:preserve-3d; will-change:transform; }
.card > * { position:relative; z-index:1; }
:root[data-theme='light'] .card { background:linear-gradient(145deg,#ffffff,#f1f6fa 60%,#ecf2f7); border:1px solid var(--border); box-shadow:var(--card-shadow, 0 4px 14px -6px rgba(0,0,0,.12)); }
:root[data-theme='light'] .card { --card-highlight-color:rgba(13,47,87,0.30); }
.card { --card-mx:50%; --card-my:50%; --card-highlight-color:rgba(255,255,255,0.10); }
.card::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; mix-blend-mode:screen; opacity:0; transition:.4s opacity, .6s background; background:
  radial-gradient(circle at var(--card-mx) var(--card-my), var(--card-highlight-color) 0%, rgba(255,255,255,0.07) 22%, rgba(255,255,255,0.025) 40%, rgba(255,255,255,0) 56%);
}
:root[data-theme='light'] .card::before { mix-blend-mode:normal; background:
  radial-gradient(circle at var(--card-mx) var(--card-my), var(--card-highlight-color) 0%, rgba(13,47,87,0.20) 24%, rgba(13,47,87,0.10) 46%, rgba(13,47,87,0.035) 60%, rgba(13,47,87,0) 74%); }
.card:hover::before, .card:focus-within::before, .card.prox-glow::before { opacity:1; }
.card.tilt-active::before { opacity:.55; }
.card:hover { --lift:-6px; --card-shadow:0 12px 30px -14px rgba(0,0,0,.85); }
@media (prefers-reduced-motion: reduce) { .card { transition:box-shadow .4s; } }
@media (prefers-reduced-motion: reduce) { .card { transition:box-shadow .4s; } }
.card h3 { color:var(--red-l1); }
/* Highlight when navigated via hash */
.card:target { outline:2px solid var(--gold); outline-offset:2px; box-shadow:0 0 0 4px rgba(212,175,55,0.25), 0 6px 18px -6px rgba(0,0,0,.7); }
/* Service illustrations */
.svc-illustration { display:block; width:56px; height:56px; margin:0 0 .65rem; filter:drop-shadow(0 2px 4px rgba(0,0,0,.55)); }
:root[data-theme='light'] .svc-illustration { filter:drop-shadow(0 2px 3px rgba(0,0,0,.2)); }

.pillars { list-style:none; padding:0; display:grid; gap:.75rem; margin:2rem 0 0; }
.pillars li { background:var(--surface); padding:.85rem 1rem; border:1px solid var(--border); border-radius:var(--radius); font-size:.95rem; }
.pillars li { position:relative; overflow:hidden; --block-mx:50%; --block-my:50%; --block-highlight:rgba(255,255,255,0.10); }
:root[data-theme='light'] .pillars li { --block-highlight:rgba(13,47,87,0.30); }
.pillars li > * { position:relative; z-index:1; }
.pillars li::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; opacity:0; transition:.4s opacity, .6s background; mix-blend-mode:screen; background:
  radial-gradient(circle at var(--block-mx) var(--block-my), var(--block-highlight) 0%, rgba(255,255,255,0.06) 26%, rgba(255,255,255,0.022) 50%, rgba(255,255,255,0) 68%); }
:root[data-theme='light'] .pillars li::before { mix-blend-mode:normal; background:
  radial-gradient(circle at var(--block-mx) var(--block-my), var(--block-highlight) 0%, rgba(13,47,87,0.18) 30%, rgba(13,47,87,0.07) 55%, rgba(13,47,87,0) 74%); }
.pillars li.prox-glow::before, .pillars li:hover::before, .pillars li:focus-within::before { opacity:1; }

.grid.expertise-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.expertise-grid .exp-item { position:relative; background:var(--surface); border:1px solid var(--border); padding:1rem .9rem; border-radius:var(--radius); overflow:hidden; --exp-mx:50%; --exp-my:50%; --exp-highlight:rgba(255,255,255,0.10); }
:root[data-theme='light'] .expertise-grid .exp-item { --exp-highlight:rgba(13,47,87,0.30); }
.expertise-grid .exp-item > * { position:relative; z-index:1; }
.expertise-grid .exp-item::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; opacity:0; transition:.4s opacity, .6s background; mix-blend-mode:screen; background:
  radial-gradient(circle at var(--exp-mx) var(--exp-my), var(--exp-highlight) 0%, rgba(255,255,255,0.06) 26%, rgba(255,255,255,0.022) 50%, rgba(255,255,255,0) 68%); }
:root[data-theme='light'] .expertise-grid .exp-item::before { mix-blend-mode:normal; background:
  radial-gradient(circle at var(--exp-mx) var(--exp-my), var(--exp-highlight) 0%, rgba(13,47,87,0.18) 30%, rgba(13,47,87,0.07) 55%, rgba(13,47,87,0) 74%); }
.expertise-grid .exp-item.prox-glow::before, .expertise-grid .exp-item:hover::before, .expertise-grid .exp-item:focus-within::before { opacity:1; }
.exp-item { background:linear-gradient(145deg,#1b2734,#1a2736 60%,#13202b); border:1px solid #2a3b4a; padding:1rem 1rem 1.2rem; border-radius:var(--radius); position:relative; overflow:hidden; }
:root[data-theme='light'] .exp-item { background:linear-gradient(145deg,#ffffff,#eff4f8 65%,#e6edf3); border:1px solid var(--border); }
.exp-item h3 { margin-top:0; font-size:1rem; font-weight:600; color:var(--red-l1); }
.exp-item p { font-size:.85rem; margin:0; color:var(--text-soft); }

.insights .btn-outline { margin-top:1.25rem; }

.about p { font-size:1.05rem; }

.contact-form { display:grid; gap:1rem; }
.hp-field { position:absolute; left:-5000px; top:auto; width:1px; height:1px; overflow:hidden; }
.form-row { display:flex; flex-direction:column; gap:.35rem; }
.form-row { position:relative; }
.form-row.inline { flex-direction:row; align-items:center; }
label { font-size:.8rem; text-transform:uppercase; letter-spacing:.75px; color:var(--text-soft); }
input[type=text], input[type=email], textarea { background:var(--surface); border:1px solid var(--border); color:var(--text); padding:.75rem .85rem; font:inherit; border-radius:var(--radius-sm); resize:vertical; position:relative; --field-mx:50%; --field-my:50%; transition:background .45s ease; }
/* Focus ring remains; enhanced visual by gradient layer */
input:focus, textarea:focus { outline:2px solid var(--gold); outline-offset:1px; }
/* Proximity / focus radial highlight (dark theme) */
input[type=text].prox-glow, input[type=email].prox-glow, textarea.prox-glow,
input[type=text]:focus, input[type=email]:focus, textarea:focus {
  background:
    radial-gradient(circle at var(--field-mx) var(--field-my), rgba(255,255,255,0.10) 0%, rgba(255,255,255,0.04) 32%, rgba(255,255,255,0) 62%),
    var(--surface);
}
/* Light theme variant */
:root[data-theme='light'] input[type=text].prox-glow, :root[data-theme='light'] input[type=email].prox-glow, :root[data-theme='light'] textarea.prox-glow,
:root[data-theme='light'] input[type=text]:focus, :root[data-theme='light'] input[type=email]:focus, :root[data-theme='light'] textarea:focus {
  background:
    radial-gradient(circle at var(--field-mx) var(--field-my), rgba(13,47,87,0.30) 0%, rgba(13,47,87,0.12) 34%, rgba(13,47,87,0.05) 56%, rgba(13,47,87,0) 74%),
    var(--surface);
}
/* Field focus ripple overlay */
.field-focus-ripple { position:absolute; pointer-events:none; border-radius:var(--radius-sm); overflow:hidden; z-index:4; top:0; left:0; background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.85) 0%, rgba(255,255,255,.35) 38%, rgba(255,255,255,.08) 60%, rgba(255,255,255,0) 72%); transform:scale(.25); opacity:.85; animation:field-ripple .75s cubic-bezier(.3,.7,.25,1) forwards; mix-blend-mode:screen; }
:root[data-theme='light'] .field-focus-ripple { background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.75) 0%, rgba(255,255,255,.30) 36%, rgba(255,255,255,.06) 58%, rgba(255,255,255,0) 72%); mix-blend-mode:normal; }
@keyframes field-ripple { 55% { opacity:.5; } 100% { transform:scale(1.55); opacity:0; } }
@media (prefers-reduced-motion: reduce){ .field-focus-ripple { animation:none; transform:scale(1); opacity:.25; } }
.checkbox { font-size:.75rem; line-height:1.2; }

.btn { --btn-bg:var(--surface); --btn-color:var(--text); display:inline-flex; align-items:center; gap:.5rem; background:var(--btn-bg); color:var(--btn-color); border:1px solid var(--border); padding:.85rem 1.25rem; border-radius:var(--radius); text-decoration:none; font-weight:600; font-size:.9rem; letter-spacing:.5px; position:relative; overflow:hidden; cursor:pointer; }
.btn::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(212,175,55,.22),transparent); opacity:0; transition:.4s; z-index:0; }
:root[data-theme='light'] .btn::before { background:linear-gradient(90deg,rgba(182,141,36,.18),transparent); }
.btn:hover::before, .btn.prox-glow::before { opacity:1; }
:root { --btn-highlight-alpha:0.30; }
:root[data-theme='light'] { --btn-highlight-alpha:0.34; }
/* Expanded radius for broader, softer sheen */
:root { --btn-highlight-size:52%; }
/* Use warmer, darker gold-tint highlight colors (instead of near-white) */
:root { --btn-highlight-color:226,201,104; } /* approx mix of gold + light */
:root[data-theme='light'] { --btn-highlight-color:214,185,92; } /* light theme gold-l1 tone */
.btn-primary { --btn-bg:linear-gradient(135deg,var(--gold-d1),var(--gold)); --btn-color:#1a1500; border:1px solid var(--gold-d1); position:relative; background:
  radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(var(--btn-highlight-color),var(--btn-highlight-alpha)) 0%, rgba(var(--btn-highlight-color),0.14) calc(var(--btn-highlight-size) * 0.55), rgba(var(--btn-highlight-color),0) var(--btn-highlight-size)),
  linear-gradient(135deg,var(--gold-d1),var(--gold)); }
:root[data-theme='light'] .btn-primary { --btn-bg:linear-gradient(135deg,var(--gold),var(--gold-l1)); --btn-color:#1a1500; background:
  radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(var(--btn-highlight-color),var(--btn-highlight-alpha)) 0%, rgba(var(--btn-highlight-color),0.16) calc(var(--btn-highlight-size) * 0.50), rgba(var(--btn-highlight-color),0) var(--btn-highlight-size)),
  linear-gradient(135deg,var(--gold),var(--gold-l1)); }
.btn-primary { transition: background 0.15s ease-out, filter 0.25s; }
.btn-primary:hover { filter:brightness(1.08); }
.btn-outline { --btn-bg:transparent; --btn-color:var(--gold-l1); border:1px solid var(--gold); }
:root[data-theme='light'] .btn-outline { --btn-color:var(--gold-d1); border-color:var(--gold-d1); }
:root { --btn-outline-highlight-size:56%; }
.btn-outline:hover { background:
  radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(var(--btn-highlight-color),var(--btn-highlight-alpha)) 0%, rgba(var(--btn-highlight-color),0.12) calc(var(--btn-outline-highlight-size) * 0.50), rgba(var(--btn-highlight-color),0) var(--btn-outline-highlight-size)),
  linear-gradient(135deg,var(--gold-d1),var(--gold)); color:#1a1500; border-color:var(--gold-d1); }
:root[data-theme='light'] .btn-outline:hover { background:
  radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(var(--btn-highlight-color),var(--btn-highlight-alpha)) 0%, rgba(var(--btn-highlight-color),0.14) calc(var(--btn-outline-highlight-size) * 0.48), rgba(var(--btn-highlight-color),0) var(--btn-outline-highlight-size)),
  linear-gradient(135deg,var(--gold),var(--gold-l1)); color:#1a1500; }

/* Keyboard focus arrival ripple (primary buttons only) */
.btn-primary { overflow:hidden; }
.btn-primary { position:relative; }
.btn-primary > * { position:relative; z-index:2; }
/* Subtle focus ripple (buttons) */
/* Dark theme: dial back brightness, tint to brand mid‑blue (#3b7db5). Light theme: swap to slightly deeper blue so it shows on white. */
.btn-primary:focus-visible, .btn-primary:focus { position:relative; box-shadow:0 0 0 2px rgba(212,175,55,.45); }
:root[data-theme='light'] .btn-primary:focus-visible, :root[data-theme='light'] .btn-primary:focus { box-shadow:0 0 0 2px rgba(182,141,36,.55); }
.btn-primary:focus-visible::after, .btn-primary:focus::after { content:""; position:absolute; top:50%; left:50%; width:46%; height:46%; border-radius:50%; pointer-events:none; transform:translate(-50%,-50%) scale(.32); opacity:.50; background:radial-gradient(circle, rgba(59,125,181,.60) 0%, rgba(59,125,181,.28) 46%, rgba(59,125,181,0) 74%); animation:focus-ripple-soft .5s ease-out forwards; will-change:transform,opacity; }
:root[data-theme='light'] .btn-primary:focus-visible::after, :root[data-theme='light'] .btn-primary:focus::after { background:radial-gradient(circle, rgba(44,111,166,.55) 0%, rgba(44,111,166,.24) 48%, rgba(44,111,166,0) 72%); }
@keyframes focus-ripple-soft { to { transform:translate(-50%,-50%) scale(1.1); opacity:0; } }
@media (prefers-reduced-motion: reduce){ .btn-primary:focus-visible::after, .btn-primary:focus::after { animation:none; opacity:.25; transform:translate(-50%,-50%) scale(1); } }

/* Subtle field ripple adjustments */
.field-focus-ripple { opacity:.55; animation:field-ripple-soft .55s ease-out forwards; background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.6) 0%, rgba(255,255,255,.25) 46%, rgba(255,255,255,0) 72%); }
:root[data-theme='light'] .field-focus-ripple { background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.55) 0%, rgba(255,255,255,.22) 46%, rgba(255,255,255,0) 70%); }
@keyframes field-ripple-soft { to { transform:scale(1.25); opacity:0; } }
@media (prefers-reduced-motion: reduce){ .field-focus-ripple { animation:none; opacity:.25; transform:scale(1); } }

/* Checkbox subtle focus effect */
input[type=checkbox] { position:relative; }
input[type=checkbox]:focus-visible::after, input[type=checkbox]:focus::after { content:""; position:absolute; top:50%; left:50%; width:220%; height:220%; transform:translate(-50%,-50%) scale(.55); border-radius:6px; pointer-events:none; background:radial-gradient(circle, rgba(212,175,55,.55) 0%, rgba(212,175,55,.15) 55%, rgba(212,175,55,0) 75%); opacity:.38; animation:checkbox-focus-soft .6s ease-out; }
:root[data-theme='light'] input[type=checkbox]:focus-visible::after, :root[data-theme='light'] input[type=checkbox]:focus::after { background:radial-gradient(circle, rgba(182,141,36,.55) 0%, rgba(182,141,36,.16) 55%, rgba(182,141,36,0) 75%); }
@keyframes checkbox-focus-soft { to { transform:translate(-50%,-50%) scale(1); opacity:0; } }
@media (prefers-reduced-motion: reduce){ .btn-primary .focus-ripple { animation:none; opacity:0; } }

@media (prefers-reduced-motion: reduce) {
  .btn-primary, .btn-outline:hover { transition:none; }
}

.site-footer { background:linear-gradient(180deg,#001227,#001a33 55%,#001f3f); padding:3.6rem 1.25rem 2.2rem; border-top:2px solid #072640; font-size:.85rem; }
:root[data-theme='light'] .site-footer { background:linear-gradient(180deg,#f0f5f9,#e9eff4 60%,#dde6ee); border-top:2px solid var(--border); }
.footer-inner { max-width:1180px; margin:0 auto; display:flex; flex-direction:column; gap:2.2rem; }
.footer-top { display:grid; grid-template-columns: minmax(260px,340px) repeat(auto-fit,minmax(180px,1fr)); gap:2.5rem 3.2rem; align-items:start; }
.footer-brand { display:flex; flex-direction:column; gap:.9rem; }
.brand-lockup { display:flex; align-items:center; gap:.85rem; }
.brand-lockup .logo img { width:54px; height:auto; }
.wordmark-footer { display:block; height:34px; width:auto; filter:drop-shadow(0 2px 4px rgba(0,0,0,.6)) brightness(1.10); }
:root[data-theme='light'] .wordmark-footer { filter:drop-shadow(0 2px 3px rgba(0,0,0,.25)) brightness(.97); }
.site-footer h4 { margin:0 0 1rem; font-size:.78rem; letter-spacing:1.2px; font-weight:600; text-transform:uppercase; color:var(--red-l1); }
.site-footer ul { list-style:none; padding:0; margin:0; display:grid; gap:.4rem; font-size:.74rem; letter-spacing:.35px; }
.site-footer a { color:var(--text-soft); text-decoration:none; }
.site-footer a:hover { color:var(--text); }
.footnote { font-size:.62rem; line-height:1.35; color:var(--text-soft); margin:0; letter-spacing:.4px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.08); padding-top:1.1rem; margin-top:.2rem; }
:root[data-theme='light'] .footer-bottom { border-top:1px solid rgba(0,0,0,.08); }
.legal { font-size:.6rem; opacity:.58; letter-spacing:.3px; }
/* Inline wordmark SVG shared styles */
.wordmark svg, svg.wordmark, .wordmark-footer svg, svg.wordmark-footer { display:block; }
@media (max-width:760px){
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
  .footer-bottom { flex-direction:column; gap:.65rem; }
  .wordmark-footer { height:32px; }
}

/* THEME TOGGLE */
.theme-toggle {
  position:fixed; right:1rem; top:50%; transform:translateY(-50%);
  z-index:100; display:flex; flex-direction:column; gap:.75rem;
}
.theme-toggle button { all:unset; cursor:pointer; background:var(--surface); color:var(--text); border:1px solid var(--border); width:44px; height:44px; display:grid; place-items:center; border-radius:50%; box-shadow:var(--shadow-color); position:relative; transition:background var(--transition-theme), color var(--transition-theme), border-color var(--transition-theme), transform .3s; }
.theme-toggle button:hover { transform:translateY(-2px); }
.theme-toggle button:focus-visible { outline:var(--focus-ring); }
:root[data-theme='light'] .theme-toggle button { background:#ffffff; }
.theme-toggle button .icon { font-size:1.25rem; line-height:1; }
.visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; border:0 !important; }

/* Scroll reveal (progressive enhancement) */
.will-reveal { opacity:0; transform:translateY(14px); }
.revealed { opacity:1; transform:translateY(0); transition:opacity .7s cubic-bezier(.25,.6,.3,1), transform .7s cubic-bezier(.25,.6,.3,1); }
@media (prefers-reduced-motion: reduce) { .will-reveal, .revealed { opacity:1 !important; transform:none !important; transition:none !important; } }

/* Diagnostic styles removed after gradient verification */

@media (max-width: 860px) {
  .theme-toggle { top:auto; bottom:1rem; transform:none; }
}
.legal { text-align:center; font-size:.65rem; opacity:.65; }

.content.narrow { max-width:900px; margin:0 auto; }

@media (max-width: 820px) {
  .site-header { flex-wrap:wrap; gap:1rem; padding:1rem 1.25rem; }
  .main-nav ul { flex-wrap:wrap; gap:1rem 1.25rem; }
  .hero { min-height:60vh; padding:3.5rem 1rem 4rem; }
  .section { padding:3.5rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation:none !important; transition:none !important; }
}
