/* ==== SynMax Intelligence — brand stylesheet ==== */

/* ==== 0. FONTS ==== */

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/inter-regular.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/inter-semibold.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/inter-bold.woff2') format('woff2'); }

@font-face { font-family: 'Inter Fallback';   font-weight: 400; src: local('Arial');                                size-adjust: 107.32%; ascent-override: 90.26%; descent-override: 22.48%; line-gap-override: 0.00%; }
@font-face { font-family: 'Inter Fallback';   font-weight: 600; src: local('Arial Bold'), local('Arial-BoldMT');     size-adjust: 101.06%; ascent-override: 95.86%; descent-override: 23.87%; line-gap-override: 0.00%; }
@font-face { font-family: 'Inter Fallback';   font-weight: 700; src: local('Arial Bold'), local('Arial-BoldMT');     size-adjust: 101.96%; ascent-override: 95.02%; descent-override: 23.66%; line-gap-override: 0.00%; }
@font-face { font-family: 'Inter Fallback 2'; font-weight: 400; src: local('Roboto');                                size-adjust: 107.07%; ascent-override: 90.48%; descent-override: 22.53%; line-gap-override: 0.00%; }
@font-face { font-family: 'Inter Fallback 2'; font-weight: 600; src: local('Roboto Medium'), local('Roboto-Medium'); size-adjust: 108.05%; ascent-override: 89.65%; descent-override: 22.32%; line-gap-override: 0.00%; }
@font-face { font-family: 'Inter Fallback 2'; font-weight: 700; src: local('Roboto Bold'), local('Roboto-Bold');     size-adjust: 108.42%; ascent-override: 89.35%; descent-override: 22.25%; line-gap-override: 0.00%; }

/* ==== 1. TOKENS (:root) ==== */
:root {
  
  --sm-deep:       #161F2D;
  --sm-royal:      #001857;
  --sm-night:      #05080F;
  --sm-white:      #FFFFFF;
  --sm-body-dark:  #C7D1E0;
  --sm-mute:       #C2C6D8;
  --sm-edge:       #E9E9E9;
  --sm-hud:        #B2BFD1;

  
  --sm-paper:      #FFFFFF;
  --sm-ink:        #0E1722;
  --sm-ink-soft:   #55657A;
  --sm-card:       #F4F6F9;
  --sm-hairline:   #E3E7ED;
  --sm-mist:       #97A4B6;
  --sm-slate:      #262F3F;
  --sm-steel:      #5E6E82;

  
  --sm-theia:      #00A1E1;
  --sm-hyperion:   #00E96C;
  --sm-vulcan:     #F85849;
  
  --sm-accent:     var(--sm-theia);
  --sm-accent-rgb: 0,161,225;
  --sm-accent-deep-rgb: 4,90,129;
  --sm-grad-a:     #00A1E1;
  --sm-grad-b:     #00E96C;
  --sm-grad:       linear-gradient(135deg, var(--sm-grad-a) 0%, var(--sm-grad-b) 100%);
  --sm-title-silver: linear-gradient(178.82deg, #FFFFFF 0%, #FFFFFF 79.26%, rgba(141,141,141,0.4) 100%);

  
  --sm-fs-display: clamp(46px, 5vw, 104px);  --sm-lh-display: 1.0;
  --sm-fs-h1:      clamp(38px, 5vw, 76px);   --sm-lh-h1: 0.97;
  --sm-fs-h1-small:      clamp(38px, 5vw, 68px);   --sm-lh-h1-small: 0.97;
  --sm-fs-h2:      clamp(29px, 5vw, 48px);/*48*/   --sm-lh-h2: 1.21;  
  --sm-fs-h2-small:      clamp(29px, 5vw, 40px);  
  --sm-fs-h3:      clamp(26px, 2.6vw, 32px); /*26*/  --sm-lh-h3: 1.15; 
  --sm-fs-h4:      clamp(21px, 2.6vw, 26px);   --sm-lh-h4: 1.15; 
  --sm-fs-h5:      clamp(21px, 2.6vw, 24px);   --sm-lh-h5: 1.15;
  --sm-fs-h6:      clamp(18px, 2.6vw, 20px);   --sm-lh-h6: 1.15;  
  --sm-fs-lead:    clamp(18px, 2.2vw, 22px); --sm-lh-lead: 1.42;
  --sm-fs-body:    18px;   --sm-lh-body: 1.5;
  --sm-fs-p2:   16px; --sm-lh-p2: 1.37;
  --sm-fs-small:   15px;
  --sm-fs-split-sub: 14px; --sm-lh-split-sub: 1.25;
  --sm-fs-split-track: 10px; --sm-lh-split-track: 1;
  --sm-fs-eyebrow: 13px;
  --sm-fs-tagline: 12px; --sm-lh-tagline: 1.6;
  /*buttons*/
  --sm-fs-nav-link: 14px; --sm-lh-nav-link: 1.3;
  --sm-fs-btn: 18px; --sm-lh-btn: 1.4;
  
  --sm-page:       1440px;
  --sm-container:  1248px;
  --sm-gutter:     96px;
  --sm-section-py: 120px;
  --sm-section-gap:40px;
  --sm-nav-h:      95px;

  
  --sm-radius-sm:  2px;
  --sm-radius-md:  4px;
  --sm-radius-lg:  8px;
  --sm-stroke-card: 1px;
  /* Every viewfinder bracket on all three sites derives from this one token
     (.sm-bracket::before --_bt). Was 2.29px = the Figma kit's TOK.stroke.bracket;
     thinned to the kit's hairline weight 2026-08-01 at request — brackets read as
     precision chrome, and 2.29 was landing heavy next to the 1px card outlines. */
  --sm-stroke-bracket: 1px;
  --sm-border-alpha: 0.2;

  --sm-font: 'Graphie', 'Inter', 'Inter Fallback', 'Inter Fallback 2', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}


/* Mobile tokens — Figma "SynMax Maritime — Homepage (Dark) Mobile" (3731:11296):
   24px gutters, 32px band padding, 30px section rhythm, 60px nav pill at top 31. */
@media (max-width: 600px) {
  :root {
    --sm-gutter: 24px;
    --sm-section-py: 32px;
    --sm-section-gap: 30px;
    --sm-nav-h: 91px;
  }
}

/* ==== 2. BASE ==== */
.synmax *, .synmax *::before, .synmax *::after,
.editor-styles-wrapper .sm-section *, .editor-styles-wrapper .sm-section *::before, .editor-styles-wrapper .sm-section *::after { box-sizing: border-box; }

.sm-section .wp-block-group > *, .sm-footer .wp-block-group > * { margin-block-start: 0; margin-top: 0; margin-bottom: 0; }

body .wp-site-blocks > *, main.sm-main > * { margin-block-start: 0; margin-top: 0; }

:root:root :where(.is-layout-flow, .is-layout-constrained) > * { margin-block-start: 0; }
body.synmax,
.editor-styles-wrapper {
  font-family: var(--sm-font);
  font-size: var(--sm-fs-body);
  line-height: var(--sm-lh-body);
  color: var(--sm-white);
  background: var(--sm-deep);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.synmax img { max-width: 100%; height: auto; display: block; }
.synmax a { color: inherit; }


/* ==== 3. SURFACES ==== */

.sm-section {
  background: var(--sm-deep);
  color: var(--sm-white);
  --txt:        var(--sm-white);
  --txt-soft:   var(--sm-body-dark);
  --card-bg:    rgba(22,31,45,.28);
  --card-border:rgba(233,233,233,.2);
  --divider:    rgba(234,234,234,.20);
  --card-divider: rgba(255,255,255,.14);
  --bracket:    #FFFFFF;
  --eyebrow:    #99B3D1;
}
.sm-section.is-light {
  background: var(--sm-paper);
  color: var(--sm-ink);
  --txt:        var(--sm-ink);
  --txt-soft:   var(--sm-ink-soft);
  --card-bg:    var(--sm-paper);
  --card-border:rgba(38,47,63,.15);
  --divider:    rgba(38,47,63,.18);
  --card-divider: rgba(38,47,63,.18);
  --bracket:    var(--sm-slate);
  --eyebrow:    var(--sm-steel);
}

/* ==== 4. SIGNATURE TREATMENTS ==== */


.sm-glass {
  background: rgba(22, 31, 45, 0.28);
  -webkit-backdrop-filter: blur(30px) saturate(115%);
  backdrop-filter: blur(30px) saturate(115%);
  border: 1px solid rgba(233, 233, 233, 0.2);
  border-radius: var(--sm-radius-sm);
}
.sm-section.is-light .sm-glass {
  background: var(--sm-paper);
  border-color: rgba(38, 47, 63, 0.15);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}


/* Viewfinder corner brackets. All four corners are painted by ::before alone —
   two background bars per corner, each gated by a 0/1 var — so ::after stays
   free for the block editor's selection ring (the old ::after corner hijacked
   it: a selected panel highlighted as a 28px square instead of the block).
   TL/BR default on, TR/BL default off; the editor's "Corner brackets" panel
   writes the sm-cnr-* classes below. Size feeds from --sm-bracket-size
   (--btn maps the legacy --bw into it), color from --bracket. */
.sm-bracket { position: relative; isolation: isolate; }
/* --_bs (arm length) is registered so transitions animate the VAR, not
   background-size — Chromium freezes background-size transitions when the
   change arrives via a custom property on a pseudo-element. */
@property --_bs { syntax: '<length-percentage>'; inherits: false; initial-value: 48px; }
/* --_bc is the colour actually PAINTED. It defaults to --bracket, so nothing
   changes at rest, but it gives the hover state something to interpolate to
   without self-reference (a custom property may not reference itself, so
   `--bracket: var(--bracket)` would be a cycle). Registered so the colour
   BLENDS on hover instead of snapping. */
@property --_bc { syntax: '<color>'; inherits: false; initial-value: #FFFFFF; }
.sm-bracket::before {
  content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none;
  --_bs: var(--sm-bracket-size, 48px);
  --_bt: var(--sm-stroke-bracket);
  --_bc: var(--bracket);
  --_bi: linear-gradient(var(--_bc), var(--_bc));
  background-image: var(--_bi), var(--_bi), var(--_bi), var(--_bi), var(--_bi), var(--_bi), var(--_bi), var(--_bi);
  background-repeat: no-repeat;
  background-position:
    0 0,       0 var(--_bt),
    100% 0,    100% var(--_bt),
    0 100%,    0 calc(100% - var(--_bt)),
    100% 100%, 100% calc(100% - var(--_bt));
  background-size:
    calc(var(--sm-cnr-tl, 1) * var(--_bs)) var(--_bt), var(--_bt) calc(var(--sm-cnr-tl, 1) * (var(--_bs) - var(--_bt))),
    calc(var(--sm-cnr-tr, 0) * var(--_bs)) var(--_bt), var(--_bt) calc(var(--sm-cnr-tr, 0) * (var(--_bs) - var(--_bt))),
    calc(var(--sm-cnr-bl, 0) * var(--_bs)) var(--_bt), var(--_bt) calc(var(--sm-cnr-bl, 0) * (var(--_bs) - var(--_bt))),
    calc(var(--sm-cnr-br, 1) * var(--_bs)) var(--_bt), var(--_bt) calc(var(--sm-cnr-br, 1) * (var(--_bs) - var(--_bt)));
}
.sm-bracket--btn { --sm-bracket-size: var(--bw, 28px); }

/* Corner-expansion hover, ported from the reference design's .corners-btn:
   arms grow from their resting length to a full frame and drop to 50% opacity
   over 1s. Only --_bs animates (it is @property-registered above precisely so
   the VAR interpolates — Chromium won't transition background-size driven by a
   custom property on a pseudo-element), so the 8 bars re-derive for free and
   the per-corner on/off switches keep working.
   Driven off .sm-bracket itself, NOT a new class: the markup is baked DB content,
   so a class would mean re-baking every page on all three sites.
   .sm-grid is the one exclusion — its resting arm is 0 (corners deliberately off),
   so expanding to 100% would CONJURE a full frame that isn't in the design.
   Per-corner switches still gate everything else: a corner set to 0 multiplies
   the 100% back to 0, so `off` corners stay off through the whole transition. */
body.synmax .sm-bracket:not(.sm-grid)::before {
  transition: --_bs 1s ease-in-out, opacity 1s ease-in-out, --_bc 1s ease-in-out;
}
body.synmax .sm-bracket:not(.sm-grid):is(:hover, :focus-visible)::before,
body.synmax .sm-biocard:hover :is(.sm-biocard__view, .sm-biocard__panel).sm-bracket::before,
body.synmax .sm-npvcard:hover .sm-npvcard__img.sm-bracket::before,
body.synmax .sm-loccard:hover .sm-loccard__media.sm-bracket::before {
  --_bs: 100%;
  opacity: .5;
  /* Falls back to the resting colour, so brackets that are already legible are
     untouched. Only components whose bracket matches their own fill opt in via
     --sm-bracket-hover — a blanket white would erase the DARK brackets
     (.sm-btn--neutral #262F3F sits on a light fill and would vanish). */
  --_bc: var(--sm-bracket-hover, var(--bracket));
}
@media (prefers-reduced-motion: reduce) {
  body.synmax .sm-bracket:not(.sm-grid)::before { transition: none; }
}
/* Per-corner switches (doubled class so they outrank any single-class component
   default, and set on the pseudo so they never leak into nested brackets). */
.sm-cnr-tl-on.sm-cnr-tl-on::before   { --sm-cnr-tl: 1; }
.sm-cnr-tl-off.sm-cnr-tl-off::before { --sm-cnr-tl: 0; }
.sm-cnr-tr-on.sm-cnr-tr-on::before   { --sm-cnr-tr: 1; }
.sm-cnr-tr-off.sm-cnr-tr-off::before { --sm-cnr-tr: 0; }
.sm-cnr-bl-on.sm-cnr-bl-on::before   { --sm-cnr-bl: 1; }
.sm-cnr-bl-off.sm-cnr-bl-off::before { --sm-cnr-bl: 0; }
.sm-cnr-br-on.sm-cnr-br-on::before   { --sm-cnr-br: 1; }
.sm-cnr-br-off.sm-cnr-br-off::before { --sm-cnr-br: 0; }


.sm-brandgrid { position: relative; isolation: isolate; }
.sm-brandgrid::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    repeating-linear-gradient(0deg,  rgba(94,209,255,.08) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(90deg, rgba(94,209,255,.08) 0 1px, transparent 1px 96px);
  mix-blend-mode: color-dodge;
}
.sm-section.is-light .sm-brandgrid::before {
  background-image:
    repeating-linear-gradient(0deg,  rgba(38,47,63,.05) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(90deg, rgba(38,47,63,.05) 0 1px, transparent 1px 96px);
  mix-blend-mode: normal;
}
.sm-brandgrid > * { position: relative; z-index: 1; }


.sm-dots { display: grid; grid-template-columns: repeat(5, 3px); gap: 6px; width: max-content; }
.sm-dots i { width: 3px; height: 3px; background: var(--sm-grad); display: block; }
.sm-dots--faint i { background: rgba(255,255,255,.06); }
.sm-dots--theia i { background: var(--sm-accent); }


.sm-title-silver {
  background: var(--sm-title-silver);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.sm-section.is-light .sm-title-silver {
  background: none; -webkit-text-fill-color: var(--sm-ink); color: var(--sm-ink);
}
/* A text color picked in the editor must actually paint. WP marks colored
   blocks with .has-text-color, but these titles glyph-fill from a gradient
   (background-clip: text) that ignores `color` — so with a color set, on the
   block itself or a parent, the gradient steps aside and the chosen color
   fills the glyphs. Quadruple class outranks every treatment variant,
   including master.css's sub-hero silver, regardless of load order. */
.sm-title-silver.has-text-color.has-text-color.has-text-color,
.has-text-color.has-text-color.has-text-color .sm-title-silver,
.sm-statband__num.has-text-color.has-text-color.has-text-color,
.has-text-color.has-text-color.has-text-color .sm-statband__num,
.sm-hero--article .sm-hero__title.has-text-color.has-text-color,
.sm-hero--article.has-text-color .sm-hero__title {
  background-image: none;
  color: inherit;
  -webkit-text-fill-color: currentColor;
}

/* ==== 5. LAYOUT SYSTEM ==== */
.sm-section { width: 100%; padding-block: var(--sm-section-py); }
.sm-container { width: min(var(--sm-container), 100% - 2 * var(--sm-gutter)); margin-inline: auto; }

.sm-section__inner { display: flex; flex-direction: column; gap: 0; }

.sm-section__inner > .sm-sectionhead { margin-top: 0; }
.sm-section__inner > .sm-title { margin-top: 20px; }
.sm-section__inner > .sm-lead { margin-top: 30px; }
.sm-section__inner > .sm-grid,
.sm-section__inner > .sm-steps { margin-top: 48px; }
.sm-stats .sm-section__inner > .sm-title { margin-top: 30px; }
.sm-stats .sm-section__inner > .sm-grid { margin-top: 40px; }


.sm-grid { display: grid; gap: 24px; }
.sm-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sm-grid--4 { grid-template-columns: repeat(4, 1fr); }
.sm-grid--connected { gap: 0; }
@media (max-width: 980px) {
  .sm-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .sm-grid--3 .sm-iconbox:last-of-type {grid-area: 2 / 1 / 3 / 3;}
  .sm-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .sm-grid--3, .sm-grid--4 { grid-template-columns: 1fr; }
  .sm-grid--3 .sm-iconbox:last-of-type {grid-area: auto;}
}

/* ==== 6. ATOMS ==== */


.sm-eyebrow {
  display: inline-flex; align-items: center; gap: 12px; padding: 12px;
  border-radius: var(--sm-radius-sm);
  font-size: var(--sm-fs-tagline); letter-spacing: 3px; text-transform: uppercase; line-height: var(--sm-lh-tagline);
  color: var(--txt-soft); font-weight: 300;
}
.sm-eyebrow.is-glass { background: var(--card-bg); border: 1px solid var(--card-border); }

.sm-eyebrow__ic,
.sm-eyebrow::before {
  content: ""; width: 14px; height: 14px; flex: 0 0 14px; display: block; background: currentColor;
  -webkit-mask: url('../icons/target.svg') center / contain no-repeat;
          mask: url('../icons/target.svg') center / contain no-repeat;
}



.sm-sectionhead { display: flex; align-items: center; gap: 8px; --edge: max(var(--sm-gutter), (var(--sm-wrap, var(--sm-container)) - var(--sm-container)) / 2); }
.sm-sectionhead::before { content: ""; height: 1px; background: var(--divider); flex: 0 0 auto; width: calc(24px + var(--edge)); margin-left: calc(-1 * var(--edge)); }
.sm-sectionhead::after  { content: ""; height: 1px; background: var(--divider); flex: 1; margin-right: calc(-1 * var(--edge)); }
.sm-rule { height: 1px; background: var(--divider); border: 0; }
.sm-rule--lead { width: 24px; flex: 0 0 24px; }
.sm-rule--fill { flex: 1; }


.sm-title { color: var(--txt); font-weight: 700; line-height: 1.02; font-size: var(--sm-fs-h2); margin: 0; }
.sm-lead  { color: var(--txt-soft); font-size: var(--sm-fs-lead); line-height: 1.42; font-weight: 300; max-width: 780px; margin: 0; }
.sm-body  { color: var(--txt-soft); font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); margin: 0; }
.sm-divider { height: 1px; background: var(--card-divider); border: 0; width: 100%; }


.sm-btn {
  position: relative; height: 64px; display: inline-flex; align-items: center; justify-content: center;
  gap: 13px; padding: 15px 16px; border-radius: var(--sm-radius-sm); --bw: 23px;
  font-weight: 600; font-size: var(--sm-fs-nav-link); text-transform: capitalize; text-decoration: none;
  cursor: pointer; border: 0; line-height: 1; white-space: nowrap; min-width: 177px;
}
.sm-btn--neutral { background: rgba(228,228,228,.68); color: var(--sm-ink); --bracket: #262F3F; }
/* Gradient buttons own their bracket colour — it tracks the button's OWN gradient
   instead of inheriting the surface's --bracket. Without this a gradient CTA that
   lands on an is-light surface gets the slate bracket and reads as black (the
   master home hero is a core/cover, and WP core stamps its own is-light class on
   covers — that collided with .sm-section.is-light and blackened both hero CTAs). */
/* --sm-bracket-hover: the expanding hover frame goes white on these, because the
   resting bracket deliberately MATCHES the fill (green on green, blue on blue) —
   legible at 28px in a corner, invisible once it stretches to a full 1px frame at
   50% opacity across the same colour. Rest state is unchanged. */
.sm-btn--gradient {
  color: #fff;
  background: linear-gradient(180deg, rgba(0,233,108,.48), rgba(0,233,108,.32));
  box-shadow: inset 0 0 22px rgba(0,233,108,.9);
  --bracket: var(--sm-hyperion);
  --sm-bracket-hover: #FFFFFF;
}
.sm-btn--ghost { background: rgba(0,0,0,0); color: #fff; border: 1px solid rgba(255,255,255,.12); box-shadow: inset 0 0 22px rgba(255,255,255,.1); }
.sm-btn--gradient.sm-btn--theia {
  background: linear-gradient(180deg, rgba(var(--sm-accent-rgb),.48), rgba(var(--sm-accent-rgb),.32));
  box-shadow: inset 0 0 22px rgba(var(--sm-accent-rgb),.9);
  border-color: rgba(255,255,255,.5);
  --bracket: var(--sm-accent);
}
.sm-btn--gradient.sm-btn--vulcan {
  background: linear-gradient(180deg, rgba(248,88,73,.48), rgba(248,88,73,.32));
  box-shadow: inset 0 0 22px rgba(248,88,73,.9);
  --bracket: var(--sm-vulcan);
}


.wp-block-buttons:where(.sm-cta__btns, .sm-hero__ctas, .sm-btnrow) { margin: 0; }
.wp-block-button.sm-btn { padding: 0; }
.wp-block-button.sm-btn > .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 13px;
  width: 100%; height: 100%; padding: 18px 20px; box-sizing: border-box;
  background: transparent; color: inherit; border: 0; box-shadow: none;
  border-radius: inherit; font: inherit; letter-spacing: inherit; line-height: 1;
  text-decoration: none; white-space: nowrap; font-size: 18px;
}
.wp-block-button.sm-btn > .wp-block-button__link:focus,
.wp-block-button.sm-btn > .wp-block-button__link:hover { color: inherit; }


.sm-ic { width: 44px; height: 44px; flex: 0 0 44px; display: block; }
.sm-ic svg, .sm-ic > svg { width: 44px; height: 44px; display: block; }

/* ==== 7. SECTION COMPONENTS ==== */


.wp-site-blocks, .sm-main { overflow-x: clip; }

@media (min-width: 1920px) {
  .wp-site-blocks { width: var(--sm-wrap, 1920px); margin-inline: auto; zoom: var(--sm-zoom, 1); }
}

.sm-section > *, .sm-grid > *, .sm-gap__row > * { max-width: none; }

.sm-section :where(h1, h2, h3, h4, p) { margin: 0; }

.sm-section, .sm-footer { --wp--style--block-gap: 0px; }
.sm-section :where(.wp-block-group.is-layout-flow) > * + * { margin-block-start: 0; }
.wp-block-image.sm-ic { margin: 0; display: block; }
.wp-block-image.sm-ic img { width: 44px; height: 44px; max-width: none; }

.sm-section hr.wp-block-separator.sm-divider,
.sm-footer hr.wp-block-separator.sm-divider {
  width: 100%; max-width: none; height: 0; opacity: 1;
  border: 0; border-top: 1px solid var(--card-divider); background: none;
}
body:not(.home) .sm-main { padding-top: var(--sm-nav-h); }

body:not(.home) .sm-main:has(.sm-hero) { padding-top: 0; }

body:not(.home) .sm-main:has(.sm-article) { padding-top: 0; }


.sm-kicker { font-size: var(--sm-fs-tagline);; letter-spacing: 2px; text-transform: uppercase; font-weight: 600; color: var(--txt-soft); }
.sm-kicker--theia { color: var(--sm-accent); }


.sm-title { font-size: var(--sm-fs-h2); line-height: var(--sm-lh-h2); font-weight: 700; color: var(--txt); text-transform: capitalize; letter-spacing: 0; max-width: none; width: 100%; }

/* ==== HEADER (chrome) ==== */
.sm-site-header { position: absolute; top: 24px; left: 0; right: 0; z-index: 50; }

.sm-site-header__inner { position: relative; width: min(var(--sm-container), 100% - 2 * var(--sm-gutter)); margin-inline: auto; min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 26px 0 30px; background: rgba(8,14,22,.55); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; box-shadow: inset 0 1px 0 0 rgba(255,255,255,.06); -webkit-backdrop-filter: blur(14px) saturate(1.1); backdrop-filter: blur(14px) saturate(1.1); }
.sm-logo { display: inline-flex; align-items: center; }
.sm-logo__mark { width: 140px; height: auto; display: block; filter: drop-shadow(0 1px 2.9px rgba(0,0,0,.4)); }
.sm-logo__mark--wide { width: 196px; }


.sm-nav { display: none; align-items: center; gap: 4px; }
.sm-nav__item { display: inline-flex; }            
.sm-nav__item--drop { position: relative; }        
.sm-nav__link { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 9px 14px; background: none; border: 0; border-radius: 3px; color: #DCE3EC; font-family: 'Inter', var(--sm-font); font-weight: 400; font-size: var(--sm-fs-small); line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; transition: color .22s var(--sm-ease), background-color .22s var(--sm-ease); }
.sm-nav__link:hover, .sm-nav__item:hover > .sm-nav__link, .sm-nav__item:focus-within > .sm-nav__link, .sm-nav__item.is-open > .sm-nav__link { color: #fff; background: rgba(255,255,255,.05); }
.sm-nav__link--plain:hover { background: none; }
.sm-nav__caret { transition: transform .22s var(--sm-ease); }
.sm-nav__item:hover > .sm-nav__link .sm-nav__caret, .sm-nav__item:focus-within > .sm-nav__link .sm-nav__caret, .sm-nav__item.is-open > .sm-nav__link .sm-nav__caret { transform: rotate(180deg); }


.sm-nav__drop { position: absolute; top: 100%; left: 0; padding-top: 12px; z-index: 60; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .24s var(--sm-ease), transform .24s var(--sm-ease), visibility 0s linear .24s; }
.sm-nav__item--drop:hover .sm-nav__drop, .sm-nav__item--drop:focus-within .sm-nav__drop, .sm-nav__item--drop.is-open .sm-nav__drop { opacity: 1; visibility: visible; transform: none; transition: opacity .24s var(--sm-ease), transform .24s var(--sm-ease); }
.sm-drop { list-style: none; margin: 0; padding: 8px; min-width: 232px; background: rgba(11,19,30,.98); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; box-shadow: 0 24px 60px rgba(0,0,0,.5); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.sm-drop__link { display: block; padding: 11px 14px; border-radius: 0; color: #DCE3EC; font-family: 'Inter', var(--sm-font); font-size: var(--sm-fs-split-sub); text-decoration: none; transition: background-color .2s var(--sm-ease), color .2s var(--sm-ease); }
.sm-drop__link:hover { background: rgba(var(--sm-accent-rgb),.10); color: #fff; }


.sm-nav__mega { position: absolute; left: 0; right: 0; top: 100%; padding-top: 14px; z-index: 60; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .28s var(--sm-ease), transform .28s var(--sm-ease), visibility 0s linear .28s; }
.sm-nav__item--mega:hover .sm-nav__mega, .sm-nav__item--mega:focus-within .sm-nav__mega, .sm-nav__item--mega.is-open .sm-nav__mega { opacity: 1; visibility: visible; transform: none; transition: opacity .28s var(--sm-ease), transform .28s var(--sm-ease); }
.sm-mega { display: flex; gap: 36px; padding: 32px; background: linear-gradient(180deg, #0E1622, #070B12); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; box-shadow: 0 36px 90px rgba(0,0,0,.6); }
.sm-mega__feature { flex: 0 0 300px; display: flex; flex-direction: column; background: #10151E; border: 1px solid #283341; border-radius: 0; overflow: clip; text-decoration: none; }
.sm-mega__media { position: relative; height: 150px; background: linear-gradient(180deg, #142436, #0A0F17); border-bottom: 1px solid #1C2530; }
.sm-mega__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; display: block; }
.sm-mega__tag { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 3px; background: rgba(0,0,0,.35); color: #fff; font-family: 'Inter', var(--sm-font); font-size: 11px; }
.sm-mega__tagdot { width: 6px; height: 6px; border-radius: 50%; background: #5FD0F2; }
.sm-mega__fbody { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; }
.sm-mega__ftitle { color: #fff; font-family: 'Inter', var(--sm-font); font-weight: 700; font-size: 19px; line-height: 1.12; }
.sm-mega__fdesc { color: #6A7686; font-family: 'Inter', var(--sm-font); font-size: 13px; line-height: 1.55; }
.sm-mega__list { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-content: start; }
/* Column count follows the child count so short menus don't leave an orphan in
   a 2-up grid. 2 is the default (maritime's 6-item Capabilities menu); 1 and 3
   are the corporate site's Maritime (Theia) and Energy (Hyperion/Vulcan/BasinIQ). */
.sm-mega__list--n1 { grid-template-columns: 1fr; }
.sm-mega__list--n3 { grid-template-columns: repeat(3, 1fr); }
.sm-mega__item { display: flex; align-items: center; gap: 13px; padding: 13px 14px; border-radius: 0; text-decoration: none; transition: background-color .2s var(--sm-ease); }
.sm-mega__item:hover { background: rgba(var(--sm-accent-rgb),.10); }
.sm-mega__ico { flex: 0 0 42px; width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; background: rgba(var(--sm-accent-rgb),.10); }
.sm-mega__ico img { width: 20px; height: 20px; display: block; }
.sm-mega__tx { display: flex; flex-direction: column; gap: 2px; }
.sm-mega__name { color: #fff; font-family: 'Inter', var(--sm-font); font-weight: 700; font-size: var(--sm-fs-split-sub); line-height: 1.2; }
.sm-mega__desc { color: #6A7686; font-family: 'Inter', var(--sm-font); font-size: var(--sm-fs-tagline);; line-height: 1.45; }


.sm-header__right { display: flex; align-items: center; gap: 16px; }
/* header CTA = the hero button recipe (accent gradient + inner glow) at the base .sm-btn size */
.sm-btn-demo { display: inline-flex; align-items: center; justify-content: center; gap: 13px; padding: 15px 16px; border-radius: var(--sm-radius-sm); background: linear-gradient(180deg, rgba(var(--sm-accent-rgb),.48), rgba(var(--sm-accent-rgb),.32)); box-shadow: inset 0 0 22px rgba(var(--sm-accent-rgb),.9); color: #fff; font-weight: 600; font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); text-transform: capitalize; text-decoration: none; white-space: nowrap; transition: filter .22s var(--sm-ease), box-shadow .22s var(--sm-ease);
  /* the header CTA's fill overrides .sm-btn--gradient's green, so its bracket must follow the accent too */
  --bracket: var(--sm-accent); --sm-bracket-hover: #FFFFFF; }
.sm-btn-demo:hover { background: linear-gradient(180deg, rgba(var(--sm-accent-rgb),.48), rgba(var(--sm-accent-rgb),.32)); box-shadow: inset 0 0 24px rgba(var(--sm-accent-rgb),.9); filter: brightness(1.15); box-shadow: inset 0 0 30px rgba(var(--sm-accent-rgb),1), 0 0 24px rgba(var(--sm-accent-rgb),.4); }
.sm-header__right .sm-btn-demo { display: none; }   


.sm-menu-pill { display: flex; align-items: center; justify-content: space-between; width: 300px; max-width: 52vw; padding: 15px 18px; border-radius: var(--sm-radius-md); color: #fff; font-weight: 600; font-size: var(--sm-fs-split-sub); line-height: 22px; letter-spacing: 4px; text-transform: uppercase; cursor: pointer; background: rgba(0,0,0,.30); border: 1px solid rgba(255,255,255,.14); box-shadow: inset 0 1px 0 0 rgba(255,255,255,.08); -webkit-backdrop-filter: blur(8px) saturate(1.05); backdrop-filter: blur(8px) saturate(1.05); }
.sm-menu-pill .sm-dots { grid-template-columns: repeat(5, 1.8px); gap: 3.5px; opacity: .9; }
.sm-menu-pill .sm-dots i { width: 1.8px; height: 1.8px; background: #fff; }


@media (min-width: 1080px) {
	.sm-nav { display: flex; }
	.sm-header__right .sm-btn-demo { display: inline-flex; }
	.sm-menu-pill { display: none; }
}
@media (max-width: 1079px) {
	.sm-nav__mega, .sm-nav__drop { display: none; }
}

/* ==== HERO ==== */
.sm-hero { position: relative; overflow: hidden; background: #161F2D; padding-block: 0; min-height: 871px; display: flex; justify-content: center; }
/* The home hero fills the viewport exactly, so the scroll cue pinned to its
   bottom is always on screen. Divided by the zoom because .wp-site-blocks is
   zoomed above 1920px, which would otherwise multiply the 100vh. svh keeps
   mobile browser chrome from pushing the cue out of view. */
body.home .sm-hero {
  min-height: calc(100vh / var(--sm-zoom, 1));
  min-height: calc(100svh / var(--sm-zoom, 1));
}

/* The type scale is Figma's, drawn for an 871px hero. Once the band became
   100vh it outgrew it — at a 1156px band the stack ended at 730 and the 68px
   title read small against 426px of dead air. --hx is the height the band
   gained over the design's 871, capped so it can't run away on very tall
   windows; the hero's type and rhythm ride it back up.

   Rates are set by what the band actually needs, NOT by the Figma ratio. A
   purely proportional scale leaves the hero airy, because a third of the stack
   cannot scale: the eyebrow chip, the CTA buttons and the stat labels are fixed
   chrome. At a 1156px band a proportional stack would be 627px tall and the
   Figma ratios only reach 566 — so the type carries the missing 61px and runs
   ahead of proportion (title 0.105 vs the Figma 0.078).

   The block is CENTRED rather than hung off a top padding. The design's fixed
   258px top padding anchors the stack to the top of the band, so it grows
   downward and every increase in type size drops it lower — at a 1156px band it
   had drifted to 342px of air above and 204 below (250 under the nav against 96
   over the scroll cue). With justify-content:center and EQUAL top/bottom
   padding the stack sits at (band - stack) / 2 whatever its height, so type
   changes no longer move it. The padding is then only a floor for short bands;
   130px matches the design's bottom padding and clears the 108px cue band.

   Measured at 2560x1271 (zoom 1.1, band 1156): title 68 -> 97.9, lead 18/26 ->
   20.8/31, stat numbers 26.5 -> 33, stack gap 30 -> 44. Stack 472 -> 610 (16px
   off the 626 proportional target), sitting at 273 with 181px of clearance
   under the nav and 165 over the cue.

   The title clamp is a hard no-wrap guard: "Even the ones gone dark." runs
   11.3px of line per px of font-size, so 103px is 1160px against a 1248px
   container. --hx's 330px cap is what keeps the title at that ceiling — if you
   raise one, re-check the other. Maritime only; energy and the master brand keep
   their own rhythm. min-height:901 keeps this clear of the short-screen rules
   below, which tighten the same padding and must keep winning there. */
@media (min-width: 901px) and (min-height: 901px) {
  body.wp-child-theme-synmax-maritime.home .sm-hero {
    --hh: calc(100vh / var(--sm-zoom, 1));
    --hx: clamp(0px, calc(var(--hh) - 871px), 330px);
  }
  @supports (height: 100svh) {
    body.wp-child-theme-synmax-maritime.home .sm-hero { --hh: calc(100svh / var(--sm-zoom, 1)); }
  }
  body.wp-child-theme-synmax-maritime.home .sm-hero .sm-hero__content {
    justify-content: center;
    padding-top: 130px;
    padding-bottom: 130px;
    gap: calc(30px + var(--hx) * 0.049);
  }
  body.wp-child-theme-synmax-maritime.home .sm-hero .sm-hero__head   { gap: calc(8px + var(--hx) * 0.021); }
  body.wp-child-theme-synmax-maritime.home .sm-hero .sm-hero__bottom { gap: calc(20px + var(--hx) * 0.035); }
  body.wp-child-theme-synmax-maritime.home .sm-hero .sm-hero__title  { font-size: clamp(68px, calc(68px + var(--hx) * 0.105), 103px); }
  body.wp-child-theme-synmax-maritime.home .sm-hero .sm-hero__lead {
    font-size: calc(18px + var(--hx) * 0.010);
    line-height: calc(26px + var(--hx) * 0.0175);
    width: calc(633px + var(--hx) * 0.30);
  }
  body.wp-child-theme-synmax-maritime.home .sm-hero .sm-stat__num { font-size: calc(26.5px + var(--hx) * 0.023); }
}
.sm-hero__media { position: absolute; inset: 0; z-index: 0; }
.sm-hero__night { position: absolute; inset: 0; background: #050A14; }
.sm-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 100%; object-fit: cover; opacity: .5; }
.sm-hero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,31,45,.08) 0%, rgba(22,31,45,.92) 100%); }

.sm-hero.wp-block-cover { padding: 0; background: #050A14; align-items: stretch; }
.sm-hero > .wp-block-cover__image-background { opacity: .5; }
.sm-hero > .wp-block-cover__inner-container { display: flex; justify-content: center; width: 100%; }

.sm-hero > .wp-block-cover__inner-container,
.sm-gap__panel > .wp-block-cover__inner-container { position: static; }

/* Embed (Vimeo) cover backgrounds: an iframe can't object-fit, so a hero-sized
   frame letterboxes the video (huge gaps above/below on phones). Give the iframe
   the video's own ratio, oversized to cover and centered; .sm-hero clips the rest.
   Ratio = the live "Theia_v04-Website BG" Vimeo asset (426×240). */
.sm-hero .wp-block-cover__embed-background iframe {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: auto; height: auto; min-width: 100%; min-height: 100%;
  aspect-ratio: 426 / 240; border: 0;
}

.sm-gridfx { position: absolute; inset: 0; overflow: clip; }
.sm-gridfx::before { content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(to right, var(--gline) 1px, transparent 1px),
		linear-gradient(to bottom, var(--gline) 1px, transparent 1px);
	background-size: var(--gcw) var(--gch); background-position: 0 0; opacity: var(--gop); }
.sm-gridfx__diag { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.sm-gridfx__quad { position: absolute; background: rgba(255,255,255,.05); pointer-events: none; }

.sm-gridfx__quad--img { background: rgba(8,18,32,.55); border: 1px solid rgba(178,191,209,.22); overflow: clip; }
.sm-gridfx__quad--img > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sm-gridfx__quad--img::after { content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(8,18,32,.12), rgba(8,18,32,.5)); }

.sm-hgt { will-change: opacity; }
html.sm-anim .sm-hero__grid[data-imgs] .sm-gridfx__quad--img:not(.sm-hgt) { display: none; }

.sm-gridfx__dot { position: absolute; display: block; pointer-events: none; }
.sm-hero__grid { z-index: 1; }
.sm-hero__content { position: relative; z-index: 2; width: min(var(--sm-container), 100% - 2 * var(--sm-gutter)); display: flex; flex-direction: column; gap: 30px; align-items: flex-start; padding-top: 258px; padding-bottom: 130px; }
.sm-hero__head { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.sm-hero__eyebrow.is-glass { color: #fff; background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.sm-hero__title { font-size: var(--sm-fs-h1-small); line-height: var(--sm-lh-h1-small); font-weight: 700; letter-spacing: 0; margin: 0; }
.sm-hero__bottom { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; width: 100%; }
.sm-hero__lead { color: #C7D1E0; font-weight: 300; font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); width: 633px; max-width: 100%; margin: 0; }
.sm-hero__ctas { display: flex; gap: 28px; flex-wrap: wrap; margin: 0; }
.sm-hero__ctas .sm-btn { min-width: 210px; }
.sm-hero__rule { width: 800px; max-width: 100%; height: 1px; background: rgba(255,255,255,.4); flex: 0 0 1px; }
.sm-hero__stats { display: flex; gap: 20px; flex-wrap: wrap; }
.sm-stat { display: flex; flex-direction: column; gap: 3.5px; padding-right: 17.4px; }
.sm-stat__num { font-size: 26.5px; font-weight: 700; color: #fff; line-height: 1; letter-spacing: .35px; font-family: 'Inter', 'Inter Fallback', 'Inter Fallback 2', sans-serif; }
.sm-stat__label { font-size: var(--sm-fs-p2); line-height: 22px; color: #E9E9E9; }
.sm-hero__scroll { position: absolute; left: 50%; transform: translateX(-50%); bottom: 50px; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 14px; opacity: .7; color: #B2BFD1; font-size: var(--sm-fs-split-sub); line-height: 20px; font-weight: 600; }
@media (max-width: 900px) {
  .sm-hero { min-height: 0; }
  .sm-hero__content { padding-top: 160px; padding-bottom: 90px; }
}
/* The home hero's content needs ~472px; on a short screen the design's
   258/130 padding pushes the scroll cue past the fold, so tighten it until
   the content and the cue both fit one viewport. The cue itself needs 108px
   (58 tall, 50 from the bottom), which is the floor for the bottom padding. */
@media (min-width: 901px) and (max-height: 900px) {
  body.home .sm-hero__content { padding-top: 180px; padding-bottom: 110px; }
}
@media (min-width: 901px) and (max-height: 760px) {
  body.home .sm-hero__content { padding-top: 120px; padding-bottom: 108px; }
}

/* ==== TRUST BAND ==== */
.sm-trust { padding-block: 36px; min-height: 0; background: #081220; display: flex; align-items: center; justify-content: center; }
.sm-trust__inner { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; }
.sm-trust__label { font-size: var(--sm-fs-tagline);; letter-spacing: 2.4px; line-height: 20px; text-transform: uppercase; color: #fff; }
.sm-trust__sectors { font-size: var(--sm-fs-h6); line-height: var(--sm-lh-h6); font-weight: 600; color: #fff; }

/* ==== THE GAP ==== */
.sm-gap .sm-section__inner > .sm-sectionhead { margin-bottom: 0; }
.sm-gap .sm-section__inner > .sm-gap__row { margin-top: 28px; }
.sm-gap__row { display: flex; align-items: stretch; width: 100%; }
.sm-gap__card { background: #fff; border: 1px solid rgba(38,47,63,.15); padding: 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 643px; flex: 1 1 643px; overflow: clip; }
.sm-gap__body { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; width: 100%; }
.sm-gap__head { display: flex; gap: 20px; align-items: center; width: 100%; }
.sm-gap__dots { width: 39px; height: 39px; flex: 0 0 39px; display: block; }
.sm-gap__title { font-size: var(--sm-fs-h3); font-size: var(--sm-lh-h3); font-weight: 700; color: #0E1722; text-transform: capitalize; margin: 0; width: 504px; max-width: 100%; }
.sm-gap__divider { height: 1px; width: 100%; background: rgba(38,47,63,.18); }
/* Flex + gap so EVERY child spaces evenly — copy blocks carry panels and
   checklists on some pages, not just paragraphs, and the margin reset left
   non-paragraph children flush against the text. */
.sm-gap__copy { display: flex; flex-direction: column; gap: 26px; }
.sm-gap__copy p { font-size: var(--sm-fs-body); line-height: 26px; color: #55657A; margin: 0; }

.sm-gap__panel { position: relative; overflow: clip; background: #081220; width: 605px; flex: 1 1 605px; min-height: 423px; }
.sm-gap__grid { position: absolute; top: 0; left: -16.53%; height: 100%; min-height: 100%; width: 152.56%; max-width: none; }
.sm-gap__reticle { position: absolute; left: 21.16%; top: 15.37%; width: 49.59%; height: auto; opacity: .7; }
.sm-hud__chip { position: absolute; top: 19px; left: 24px; z-index: 3; background: rgba(0,0,0,.1); padding: 13px 18px; font-size: var(--sm-fs-split-sub); letter-spacing: 2px; line-height: 1; text-transform: uppercase; color: #B2BFD1; font-weight: 600; }
.sm-hud__coord { position: absolute; top: 30px; right: 24px; z-index: 3; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: #B2BFD1; font-weight: 600; }
.sm-hud__latlon { position: absolute; right: 24px; bottom: 24px; z-index: 3; display: flex; flex-direction: column; gap: 12px; padding: 16px; border: 1px solid rgba(255,255,255,.5); font-size: var(--sm-fs-tagline);; font-weight: 600; letter-spacing: 1px; line-height: 1; text-transform: uppercase; color: #B2BFD1; }

.sm-gap__panel.wp-block-cover { padding: 0; min-height: 423px; }
.sm-gap__panel .wp-block-image { margin: 0; }
.sm-gap__grid img { width: 100%; height: 100%; display: block; }
.sm-gap__reticle img { width: 100%; height: auto; display: block; }
.sm-hud__latlon p { margin: 0; font-size: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; }
.sm-gap__panel:has(> .wp-block-cover__image-background) .sm-gap__grid,
.sm-gap__panel:has(> .wp-block-cover__image-background) .sm-gap__reticle { display: none; }


.sm-gap--box .sm-gap__row { border: 1px solid rgba(233,233,233,.2); padding: 0; gap: 0; }
.sm-gap--rules .sm-gap__row {
  position: relative; padding: 16px; gap: 16px;
  border-inline: 1px solid rgba(233,233,233,.2);
  --edge: max(var(--sm-gutter), (var(--sm-wrap, var(--sm-container)) - var(--sm-container)) / 2);
}
.sm-gap--rules .sm-gap__row::before,
.sm-gap--rules .sm-gap__row::after {
  content: ""; position: absolute; left: calc(-1 * var(--edge)); right: calc(-1 * var(--edge));
  height: 1px; background: rgba(233,233,233,.2); pointer-events: none;
}
.sm-gap--rules .sm-gap__row::before { top: 0; }
.sm-gap--rules .sm-gap__row::after  { bottom: 0; }

/* ==== CONNECTED GRID (stats + industries) ==== */

.sm-grid--connected { gap: 0; border-top: 1px solid var(--card-border); border-left: 1px solid var(--card-border); }
.sm-grid--connected > * { border: 0 solid var(--card-border); border-right-width: 1px; border-bottom-width: 1px; }


.sm-grid--framed { gap: 28px; }
.sm-grid--framed > * { border: 1px solid var(--card-border); }
.sm-grid--framed .sm-iconbox .sm-ic, .sm-grid--framed .sm-iconbox .sm-ic img { width: 48px; height: 48px; }


.sm-stats { position: relative; background: #081220; }
.sm-stats > .sm-container { position: relative; z-index: 1; }
.sm-stats::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(120% 78% at 50% 112%, rgba(var(--sm-accent-rgb),.20) 0%, rgba(var(--sm-accent-deep-rgb),.13) 38%, rgba(8,18,32,0) 72%); }
.sm-industries { position: relative; background: #161F2D; border-bottom: 1px solid rgba(233,233,233,.3); }
.sm-industries > .sm-container { position: relative; z-index: 1; }

.sm-industries::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(120% 78% at 50% 112%, rgba(var(--sm-accent-rgb),.20) 0%, rgba(var(--sm-accent-deep-rgb),.13) 38%, rgba(8,18,32,0) 72%); }


.sm-statcell { padding: 40px; display: flex; flex-direction: column; align-items: flex-start; position: relative; min-height: 100%; }

.sm-statcell::before { content: ""; position: absolute; top: 40px; right: 40px; width: 45px; height: 45px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Crect width='3' height='3' fill='%23ffffff'/%3E%3C/svg%3E"); background-size: 9px 9px; opacity: .35; pointer-events: none; }
.sm-statcell__head { display: flex; align-items: center; gap: 16px; }
.sm-statcell__ic { width: 44px; height: 44px; flex: 0 0 44px; display: block; }
.sm-statcell__ic img { width: 44px; height: 44px; display: block; }
.sm-statcell > .sm-statcell__title { font-size: var(--sm-fs-h6); font-weight: 600; color: #fff; line-height: var(--sm-lh-h6); margin-top: 16px; }
.sm-statcell > .sm-divider { margin-top: 24px; }
.sm-statcell > .sm-statcell__body { color: var(--sm-body-dark); font-size: var(--sm-fs-body); line-height: 1.44; margin-top: 24px; }
.sm-statcell > .sm-statcell__metric { margin-top: auto; padding-top: 24px; color: #16B4E8; font-weight: 700; font-size: var(--sm-fs-p2); line-height: 22px; }

/* ==== MULTI-STEP (kit multiStepCard: pad 32, gap 28, icon 44 ==== */
.sm-steps { gap: 24px; }
.sm-step { padding: 32px; display: flex; flex-direction: column; border-radius: 0; min-height: 100%; }
.sm-section.is-light .sm-step.sm-glass { background: var(--sm-card); border-color: rgba(38,47,63,.2); }
.sm-step__head { display: flex; align-items: center; gap: 16px; }
.sm-step__ic { width: 44px; height: 44px; flex: 0 0 44px; display: block; }
.sm-step__ic img { width: 44px; height: 44px; display: block; }
.sm-step .sm-kicker { color: #262F3F; font-family: 'Inter', 'Inter Fallback', 'Inter Fallback 2', sans-serif; }
.sm-step > .sm-step__title { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: #262F3F; margin-top: 16px; }
.sm-step > .sm-divider { margin-top: 28px; }
.sm-step > .sm-step__body { color: #262F3F; font-size: var(--sm-fs-body); line-height: 26px; margin-top: 28px; }

/* ==== INDUSTRIES ==== */
.sm-iconbox { padding: 32px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 214px; }
.sm-iconbox .sm-ic, .sm-iconbox .sm-ic img { width: 44px; height: 44px; }
.sm-iconbox > .sm-iconbox__title { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: var(--txt); margin-top: 28px; }
.sm-iconbox > .sm-iconbox__body { color: var(--txt-soft); font-size: var(--sm-fs-body); font-weight: 300; line-height: 26px; margin-top: 10px; }

/* ==== TESTIMONIAL ==== */
.sm-testimonial { position: relative; overflow: hidden; padding-block: 48px; background: #161F2D; border-bottom: 1px solid rgba(233,233,233,.3); }

.sm-testimonial__grid { position: absolute; inset: 0; overflow: hidden; mix-blend-mode: color-dodge; pointer-events: none; z-index: 0; }
.sm-testimonial__grid img { position: absolute; top: 0; left: -6.94%; width: 106.94%; height: 100%; min-height: 100%; max-width: none; display: block; }
.sm-testimonial::after { content: ""; position: absolute; right: 0; bottom: -28%; width: 56%; height: 72%; pointer-events: none; z-index: 0; background: radial-gradient(ellipse at center, rgba(var(--sm-accent-rgb),.16), rgba(8,18,32,0) 70%); }


.sm-testimonial__blk { position: absolute; z-index: 1; background: rgba(255,255,255,.04); pointer-events: none; }
.sm-testimonial__blk--1 { right: 0; top: 28%; width: 192px; height: 101px; }   
.sm-testimonial__blk--2 { left: 0; top: 50%; width: 96px; height: 202px; }     
.sm-testimonial__dotgrid { position: absolute; left: 0; top: 84%; width: 96px; height: 89px; z-index: 1; pointer-events: none; display: block; }
.sm-testimonial__inner { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; }
.sm-testimonial__inner > .sm-sectionhead, .sm-quote__footer { width: 100%; align-self: stretch; }

/* Each quote is its own group so the editor can duplicate one to add a
   testimonial. .sm-quote carries the centring the section inner used to do for
   loose children, and both selectors below need 0,2,0 to restore the margins
   that the block-gap reset (line ~96) zeroes on every group child. */
.sm-quotes { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 64px; }
.sm-quote { width: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; }
/* The __inner variants keep pages whose testimonial section is still baked in
   the pre-carousel shape (quote parts as loose children, no .sm-quote wrapper)
   rendering correctly — theme files deploy ahead of any page being re-baked. */
.sm-quote > .sm-quote__badge,
.sm-testimonial__inner > .sm-quote__badge { margin-bottom: 16px; }
.sm-quote > .sm-quote__cite,
.sm-testimonial__inner > .sm-quote__cite { margin-top: 16px; }

/* Carousel mode is added by testimonials.js, so with no JS — and in the block
   editor, where the script never runs — every quote stays stacked and
   editable. The transition is a full-width push: the outgoing quote is pinned
   absolutely (is-leaving) and exits one track-width in the travel direction
   while the incoming one enters from the opposite edge — since both cover the
   same 100%-wide box and move by the same delta, they read as one continuous
   strip. data-sm-dir (stamped by the JS, unset on the initial paint so slide 1
   doesn't animate on load) flips the direction for prev; overflow clips the
   offscreen halves. The track's min-height is set inline by the JS to the
   tallest quote, so it is a fixed frame — nothing resizes mid-push and the
   footer rule below never moves. Quotes stay top-aligned in that frame, which
   keeps the badge and headline at a constant y across every slide. */
.sm-quotes.is-carousel { position: relative; overflow: hidden; }
.sm-quotes.is-carousel > .sm-quote { display: none; }
.sm-quotes.is-carousel > .sm-quote.is-active { display: flex; }
.sm-quotes.is-carousel > .sm-quote.is-leaving { display: flex; position: absolute; top: 0; left: 0; width: 100%; }
.sm-quotes.is-carousel[data-sm-dir] > .sm-quote.is-active { animation: sm-quote-in .6s cubic-bezier(.33,0,.2,1) both; }
.sm-quotes.is-carousel[data-sm-dir] > .sm-quote.is-leaving { animation: sm-quote-out .6s cubic-bezier(.33,0,.2,1) both; }
.sm-quotes.is-carousel[data-sm-dir="prev"] { --sm-in: -100%; --sm-out: 100%; }
@keyframes sm-quote-in { from { transform: translateX(var(--sm-in, 100%)); } to { transform: none; } }
@keyframes sm-quote-out { from { transform: none; } to { transform: translateX(var(--sm-out, -100%)); } }
@media (prefers-reduced-motion: reduce) {
  .sm-quotes.is-carousel[data-sm-dir] > .sm-quote.is-active,
  .sm-quotes.is-carousel[data-sm-dir] > .sm-quote.is-leaving { animation: none; }
}
/* .sm-quote__pager sets display:flex, which would beat the [hidden] UA rule. */
.sm-quote__pager[hidden] { display: none; }
.sm-quote__count { font-size: 14px; font-weight: 600; letter-spacing: .04em; color: rgba(255,255,255,.7); margin: 0; align-self: center; min-width: 44px; text-align: center; font-variant-numeric: tabular-nums; }

.sm-quote__badge { display: inline-flex; align-items: center; justify-content: center; padding: 12px; color: #fff; margin: 0 0 16px; border: 1px solid rgba(255,255,255,.4); border-radius: var(--sm-radius-sm); }
.sm-quote__badge svg { width: 53px; height: 46px; display: block; }
.sm-quote__text { font-size: var(--sm-fs-h3); font-weight: 700; color: #fff; font-size: var(--sm-lh-h3); max-width: 591px; margin: 0; text-transform: capitalize; }
.sm-testimonial hr.wp-block-separator.sm-quote__rule { max-width: 591px; margin: 0 auto; }
.sm-quote__body { color: #fff; font-size: var(--sm-fs-body); line-height: 26px; max-width: 591px; margin: 0 auto; }
.sm-quote__cite { display: flex; flex-direction: column; gap: 4px; margin-top: 16px; }
.sm-quote__name { color: var(--sm-accent); font-weight: 700; font-size: var(--sm-fs-p2); font-family: 'Inter', 'Inter Fallback', 'Inter Fallback 2', sans-serif; }
.sm-quote__org { color: #fff; font-size: var(--sm-fs-p2); font-family: 'Inter', 'Inter Fallback', 'Inter Fallback 2', sans-serif; }
.sm-quote__footer { display: flex; align-items: center; gap: 16px; }
.sm-quote__pager { display: flex; gap: 16px; }
.sm-pager-btn { width: 44px; height: 40px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(255,255,255,.45); border-radius: var(--sm-radius-sm); color: #fff; cursor: pointer; }

/* ==== CTA ==== */
.sm-cta { padding: 88px 0 100px; }
.sm-cta__inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.sm-cta__inner > .sm-sectionhead { width: 100%; align-self: stretch; margin-top: 0; }
.sm-cta .sm-eyebrow { color: #161F2D; }
.sm-cta__inner > .sm-cta__title { font-size: clamp(38px, 6vw, 68px); line-height: .97; font-weight: 700; color: #161F2D; margin-top: 40px; letter-spacing: 0; }
.sm-cta__inner > .sm-cta__body { color: #55657A; font-size: var(--sm-fs-body); font-weight: 300; line-height: 26px; max-width: 616px; margin-top: 28px; }
.sm-cta__btns { position: relative; display: flex; gap: 20px; flex-wrap: wrap; justify-content: center; }
.sm-cta__inner > .sm-cta__btns, .sm-cta__inner > .sm-signup { margin-top: 28px; }
.sm-cta__btns::before { content: ""; position: absolute; right: 100%; bottom: 0; width: 100vw; height: 1px; background: rgba(38,47,63,.12); pointer-events: none; }
.sm-cta__btns::after  { content: ""; position: absolute; left: 100%; top: 0; width: 100vw; height: 1px; background: rgba(38,47,63,.12); pointer-events: none; }

/* ==== FOOTER (chrome) ==== */
.sm-footer { background: #131A26; color: #fff; padding-block: 80px; }
.sm-footer__inner { width: min(var(--sm-container), 100% - 2 * var(--sm-gutter)); margin-inline: auto; }
.sm-footer__top { display: flex; justify-content: space-between; gap: 48px; flex-wrap: wrap; }
.sm-footer__brand { display: flex; flex-direction: column; gap: 20px; }
.sm-footer__logo { width: 184px; height: auto; }
.sm-footer__logo--wide { width: 244px; }
.sm-footer__social { display: flex; gap: 32px; }
.sm-footer__social a { width: 16px; height: 16px; color: #fff; opacity: .85; display: inline-flex; align-items: center; justify-content: center; }
.sm-footer__social a:hover { opacity: 1; }
.sm-footer__cols { display: flex; gap: 53px; flex-wrap: wrap; }
.sm-footer__col { display: flex; flex-direction: column; gap: 0; min-width: 110px; }
.sm-footer__head { font-size: var(--sm-fs-p2); font-weight: 700; line-height: var(--sm-lh-p2); color: #fff; margin: 0 0 8px; }
.sm-footer__col a { color: #fff; font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); text-decoration: none; padding: 12px 8px; }
.sm-footer__col a:hover { color: var(--sm-accent); }
.sm-footer__prod { text-transform: uppercase; letter-spacing: 2px; font-size: 10px; font-weight: 600; padding: 12px 0 !important; }
.sm-footer__rule { height: 0; border: 0; border-top: 1px solid rgba(255,255,255,.1); margin: 44px 0 28px; }
.sm-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.sm-footer__copy { color: #fff; font-size: var(--sm-fs-p2); margin: 0; }
.sm-footer__awards { display: flex; align-items: center; gap: 24px; color: #fff; }
.sm-footer__awards-label { font-size: 16.5px; font-weight: 600; line-height: 1.15; width: 81px; }
.sm-footer__awards-div { width: 1.5px; height: 44px; background: #fff; flex: 0 0 1.5px; }
.suynmax img.sm-footer__award-img { height: 29px; width: auto; display: block; }
.sm-footer__award-img--spire { height: 23px; }
.sm-footer__legal { margin: 24px 0 0; }
.sm-footer__legal a { color: #fff; font-size: var(--sm-fs-tagline);; text-decoration: none; }

/* ==== RESPONSIVE ==== */
@media (max-width: 980px) {
  .sm-gap__row { grid-template-columns: 1fr; }
  .sm-gap__panel { min-height: 420px; }
}
@media (max-width: 760px) {
  .sm-footer__top { flex-direction: column; gap: 36px; }
  .sm-footer__bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
  .sm-hero__title { letter-spacing: -.01em; }
  .sm-btnrow { gap: 12px; }
  .sm-btnrow .sm-btn { flex: 1 1 100%; }
  .sm-cta__btns .sm-btn { width: 100%; }
  .sm-trust__inner { gap: 10px; }
  .sm-gap__card, .sm-statcell, .sm-iconbox, .sm-step { padding: 28px; }
}

/* ==== EDITOR CANVAS ==== */
.editor-styles-wrapper .sm-section,
.editor-styles-wrapper .sm-footer { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }


.editor-styles-wrapper .sm-deco { position: static !important; }


.editor-styles-wrapper .sm-cta__inner > .sm-deco { margin-top: 28px; }


.editor-styles-wrapper * { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }



.editor-styles-wrapper .sm-approach__chip1,
.editor-styles-wrapper .sm-approach__chip2,
.editor-styles-wrapper .sm-approach__coordtag,
.editor-styles-wrapper .sm-approach__photo,
.editor-styles-wrapper .sm-bento__card .sm-featcard__media,
.editor-styles-wrapper .sm-bento__card .sm-featcard__scrim,
.editor-styles-wrapper .sm-bento__card .sm-gap__dots,
.editor-styles-wrapper .sm-bento__text,
.editor-styles-wrapper .sm-biocard__cross,
.editor-styles-wrapper .sm-biocard__dots,
.editor-styles-wrapper .sm-biocard__media,
.editor-styles-wrapper .sm-biocard__ovb,
.editor-styles-wrapper .sm-biocard__ovt,
.editor-styles-wrapper .sm-biocard__photo,
.editor-styles-wrapper .sm-biocard__radar,
.editor-styles-wrapper .sm-biocard__view,
.editor-styles-wrapper .sm-biomodal__backdrop,
.editor-styles-wrapper .sm-biomodal__botscrim,
.editor-styles-wrapper .sm-biomodal__close,
.editor-styles-wrapper .sm-biomodal__cutout,
.editor-styles-wrapper .sm-biomodal__glow,
.editor-styles-wrapper .sm-biomodal__guides,
.editor-styles-wrapper .sm-biomodal__hud,
.editor-styles-wrapper .sm-biomodal__plate,
.editor-styles-wrapper .sm-biomodal__rscrim,
.editor-styles-wrapper .sm-biomodal__shaft,
.editor-styles-wrapper .sm-biomodal__tex,
.editor-styles-wrapper .sm-biomodal__topfade,
.editor-styles-wrapper .sm-cform,
.editor-styles-wrapper .sm-featcard__media,
.editor-styles-wrapper .sm-featcard__photo,
.editor-styles-wrapper .sm-featcard__scrim,
.editor-styles-wrapper .sm-gap__grid,
.editor-styles-wrapper .sm-gap__photo,
.editor-styles-wrapper .sm-gap__reticle,
.editor-styles-wrapper .sm-genhero__bg,
.editor-styles-wrapper .sm-genhero__earth,
.editor-styles-wrapper .sm-genhero__fade,
.editor-styles-wrapper .sm-genhero__media,
.editor-styles-wrapper .sm-genhero__overlay,
.editor-styles-wrapper .sm-genhero__royal,
.editor-styles-wrapper .sm-genhero__scrim,
.editor-styles-wrapper .sm-genhud,
.editor-styles-wrapper .sm-gridfx,
.editor-styles-wrapper .sm-gridfx__diag,
.editor-styles-wrapper .sm-gridfx__dot,
.editor-styles-wrapper .sm-gridfx__quad,
.editor-styles-wrapper .sm-hero__media,
.editor-styles-wrapper .sm-hero__night,
.editor-styles-wrapper .sm-hero__photo,
.editor-styles-wrapper .sm-hero__scrim,
.editor-styles-wrapper .sm-hero__scroll,
.editor-styles-wrapper .sm-hub__card,
.editor-styles-wrapper .sm-hub__corner,
.editor-styles-wrapper .sm-hub__cross,
.editor-styles-wrapper .sm-hub__dotblock,
.editor-styles-wrapper .sm-hub__explore,
.editor-styles-wrapper .sm-hub__fadeB,
.editor-styles-wrapper .sm-hub__fadeR,
.editor-styles-wrapper .sm-hub__map,
.editor-styles-wrapper .sm-hub__media,
.editor-styles-wrapper .sm-hud__chip,
.editor-styles-wrapper .sm-hud__coord,
.editor-styles-wrapper .sm-hud__latlon,
.editor-styles-wrapper .sm-inqcard .sm-eyebrow,
.editor-styles-wrapper .sm-inqcard__cta,
.editor-styles-wrapper .sm-inqcard__dots,
.editor-styles-wrapper .sm-inqcard__rule,
.editor-styles-wrapper .sm-inqcard__title,
.editor-styles-wrapper .sm-loccard__coords,
.editor-styles-wrapper .sm-loccard__cross,
.editor-styles-wrapper .sm-loccard__dots,
.editor-styles-wrapper .sm-loccard__locked,
.editor-styles-wrapper .sm-loccard__map,
.editor-styles-wrapper .sm-loccard__media,
.editor-styles-wrapper .sm-loccard__reticle,
.editor-styles-wrapper .sm-loccard__scrim,
.editor-styles-wrapper .sm-loccard__target,
.editor-styles-wrapper .sm-mega__tag,
.editor-styles-wrapper .sm-nav__drop,
.editor-styles-wrapper .sm-nav__mega,
.editor-styles-wrapper .sm-navmenu__panel,
.editor-styles-wrapper .sm-newscard__dots,
.editor-styles-wrapper .sm-newsfeature__dots,
.editor-styles-wrapper .sm-newsfeature__panel,
.editor-styles-wrapper .sm-newsfeature__tags,
.editor-styles-wrapper .sm-npvcard__dots,
.editor-styles-wrapper .sm-npvfeature__dots,
.editor-styles-wrapper .sm-npvfeature__img,
.editor-styles-wrapper .sm-npvfeature__ov,
.editor-styles-wrapper .sm-npvfeature__tags,
.editor-styles-wrapper .sm-prow__cell,
.editor-styles-wrapper .sm-prow__coord,
.editor-styles-wrapper .sm-prow__frame,
.editor-styles-wrapper .sm-prow__h,
.editor-styles-wrapper .sm-prow__photo,
.editor-styles-wrapper .sm-prow__scrim,
.editor-styles-wrapper .sm-prow__v,
.editor-styles-wrapper .sm-site-header,
.editor-styles-wrapper .sm-split__chips,
.editor-styles-wrapper .sm-split__coords,
.editor-styles-wrapper .sm-split__hud,
.editor-styles-wrapper .sm-split__monitor,
.editor-styles-wrapper .sm-split__ovA,
.editor-styles-wrapper .sm-split__ovB,
.editor-styles-wrapper .sm-split__photo,
.editor-styles-wrapper .sm-split__photo img,
.editor-styles-wrapper .sm-split__track,
.editor-styles-wrapper .sm-subhero__blk,
.editor-styles-wrapper .sm-subhero__dots,
.editor-styles-wrapper .sm-subhero__media,
.editor-styles-wrapper .sm-subhero__photo,
.editor-styles-wrapper .sm-subhero__scrim,
.editor-styles-wrapper .sm-testimonial__blk,
.editor-styles-wrapper .sm-testimonial__dotgrid,
.editor-styles-wrapper .sm-testimonial__grid,
.editor-styles-wrapper .sm-testimonial__grid img { position: absolute !important; }

/* Deco chrome must not eat clicks in the editor canvas. The chrome (scrims,
   crosshairs, reticles, dot blocks) is absolutely positioned OVER the native
   wp:image beneath it and comes later in the DOM, so it wins the hit-test:
   clicking a photo selected the synmax/deco block and the image toolbar —
   Replace included — was unreachable (contact page location cards, 2026-08-01).
   Scoped to aria-hidden children so genuinely interactive deco output (the
   HubSpot forms, testimonial pager, resources board) stays clickable. */
.editor-styles-wrapper [data-type="synmax/deco"] [aria-hidden="true"] { pointer-events: none; }


.editor-styles-wrapper .wp-block-group[class*="sm-"] > .components-placeholder,
.editor-styles-wrapper .wp-block-group[class*="sm-"] > .block-editor-block-variation-picker { display: none; }

/* ==== 8. MOTION — scroll reveals, intro timeline & micro-interactions ==== */
:root {
  --sm-ease:      cubic-bezier(.22, 1, .36, 1);   
  --sm-ease-soft: cubic-bezier(.16, 1, .3, 1);    
  --sm-rv-dur:    .75s;                            
  --sm-rv-y:      16px;                            
}


html.sm-anim { scroll-behavior: smooth; scroll-padding-top: calc(var(--sm-nav-h) + 24px); }


html.sm-anim .sm-sectionhead,
html.sm-anim .sm-title,
html.sm-anim .sm-lead,
html.sm-anim .sm-grid:not(.sm-grid--connected) > *,
html.sm-anim .sm-statband__row > *,
html.sm-anim .sm-grid--connected,
html.sm-anim .sm-cta__inner > *,
html.sm-anim .sm-trust__inner > *,
html.sm-anim .sm-gap__card,
html.sm-anim .sm-gap__panel,
html.sm-anim .sm-hero__head > *,
html.sm-anim .sm-hero__bottom > *,
html.sm-anim .sm-hero__rule,
html.sm-anim .sm-hero__stats,
html.sm-anim .sm-quote__badge,
html.sm-anim .sm-quote__text,
html.sm-anim .sm-quote__rule,
html.sm-anim .sm-quote__body,
html.sm-anim .sm-quote__cite,
html.sm-anim .sm-quote__footer,
html.sm-anim .sm-footer__top > *,
html.sm-anim .sm-footer__bottom,
html.sm-anim .sm-footer__legal {
  transition: opacity var(--sm-rv-dur) var(--sm-ease), transform var(--sm-rv-dur) var(--sm-ease);
}
html.sm-anim .sm-quote__rule { transform-origin: center; }

html.sm-anim .sm-grid.sm-bracket::before {
  transition: --_bs .6s var(--sm-ease) .5s;
}


html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-sectionhead,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-title,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-lead,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-grid:not(.sm-grid--connected) > *,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-statband__row > *,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-grid--connected,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-cta__inner > *,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-trust__inner > *,
html.sm-anim:not(.sm-anim-off) .sm-hero:not(.is-in) .sm-hero__head > *,
html.sm-anim:not(.sm-anim-off) .sm-hero:not(.is-in) .sm-hero__bottom > *,
html.sm-anim:not(.sm-anim-off) .sm-hero:not(.is-in) .sm-hero__rule,
html.sm-anim:not(.sm-anim-off) .sm-hero:not(.is-in) .sm-hero__stats,
html.sm-anim:not(.sm-anim-off) .sm-testimonial:not(.is-in) .sm-quote__text,
html.sm-anim:not(.sm-anim-off) .sm-testimonial:not(.is-in) .sm-quote__body,
html.sm-anim:not(.sm-anim-off) .sm-testimonial:not(.is-in) .sm-quote__cite,
html.sm-anim:not(.sm-anim-off) .sm-testimonial:not(.is-in) .sm-quote__footer,
html.sm-anim:not(.sm-anim-off) .sm-footer:not(.is-in) .sm-footer__top > *,
html.sm-anim:not(.sm-anim-off) .sm-footer:not(.is-in) .sm-footer__bottom,
html.sm-anim:not(.sm-anim-off) .sm-footer:not(.is-in) .sm-footer__legal {
  opacity: 0; transform: translateY(var(--sm-rv-y)); pointer-events: none;
}

html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-grid--connected { transform: translateY(20px); }

html.sm-anim:not(.sm-anim-off) .sm-gap:not(.is-in) .sm-gap__card  { opacity: 0; transform: translateX(-30px); pointer-events: none; }
html.sm-anim:not(.sm-anim-off) .sm-gap:not(.is-in) .sm-gap__panel { opacity: 0; transform: scale(.96); pointer-events: none; } 
html.sm-anim:not(.sm-anim-off) .sm-testimonial:not(.is-in) .sm-quote__badge { opacity: 0; transform: scale(.82); pointer-events: none; }
html.sm-anim:not(.sm-anim-off) .sm-testimonial:not(.is-in) .sm-quote__rule  { opacity: 0; transform: scaleX(0); }

html.sm-anim .sm-gap__row { overflow: clip; }

html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-grid.sm-bracket::before { --_bs: 0px; }


html.sm-anim .sm-sectionhead::before { transform-origin: left center; }
html.sm-anim .sm-sectionhead::after  { transform-origin: right center; }
html.sm-anim .sm-cta__btns::before   { transform-origin: left center; }
html.sm-anim .sm-cta__btns::after    { transform-origin: right center; }
html.sm-anim .sm-sectionhead::before,
html.sm-anim .sm-sectionhead::after  { transition: transform .7s var(--sm-ease) .14s; }
html.sm-anim .sm-cta__btns::before,
html.sm-anim .sm-cta__btns::after    { transition: transform .85s var(--sm-ease) .32s; }
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-sectionhead::before,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-sectionhead::after,
html.sm-anim:not(.sm-anim-off) .sm-cta:not(.is-in) .sm-cta__btns::before,
html.sm-anim:not(.sm-anim-off) .sm-cta:not(.is-in) .sm-cta__btns::after { transform: scaleX(0); }


html.sm-anim .sm-section.is-in .sm-title { transition-delay: .08s; }
html.sm-anim .sm-section.is-in .sm-lead  { transition-delay: .16s; }

html.sm-anim .sm-section.is-in .sm-grid--connected { transition-delay: .18s; }

html.sm-anim .sm-section.is-in .sm-grid:not(.sm-grid--connected) > *             { transition-delay: .18s; }
html.sm-anim .sm-section.is-in .sm-grid:not(.sm-grid--connected) > :nth-child(2) { transition-delay: .28s; }
html.sm-anim .sm-section.is-in .sm-grid:not(.sm-grid--connected) > :nth-child(3) { transition-delay: .38s; }
html.sm-anim .sm-section.is-in .sm-grid:not(.sm-grid--connected) > :nth-child(4) { transition-delay: .48s; }

html.sm-anim .sm-section.is-in .sm-statband__row > *             { transition-delay: .18s; }
html.sm-anim .sm-section.is-in .sm-statband__row > :nth-child(2) { transition-delay: .30s; }
html.sm-anim .sm-section.is-in .sm-statband__row > :nth-child(3) { transition-delay: .42s; }

html.sm-anim .sm-trust.is-in .sm-trust__inner > :nth-child(2) { transition-delay: .10s; }

html.sm-anim .sm-gap.is-in .sm-gap__card  { transition-delay: .12s; }
html.sm-anim .sm-gap.is-in .sm-gap__panel { transition-delay: .22s; }

html.sm-anim .sm-cta.is-in .sm-cta__inner > :nth-child(2) { transition-delay: .10s; }
html.sm-anim .sm-cta.is-in .sm-cta__inner > :nth-child(3) { transition-delay: .20s; }
html.sm-anim .sm-cta.is-in .sm-cta__inner > :nth-child(4) { transition-delay: .30s; }

html.sm-anim .sm-testimonial.is-in .sm-quote__badge  { transition-delay: .12s; }
html.sm-anim .sm-testimonial.is-in .sm-quote__text   { transition-delay: .22s; }
html.sm-anim .sm-testimonial.is-in .sm-quote__rule   { transition-delay: .34s; }
html.sm-anim .sm-testimonial.is-in .sm-quote__body   { transition-delay: .42s; }
html.sm-anim .sm-testimonial.is-in .sm-quote__cite   { transition-delay: .52s; }
html.sm-anim .sm-testimonial.is-in .sm-quote__footer { transition-delay: .60s; }

html.sm-anim .sm-footer.is-in .sm-footer__top > :nth-child(2) { transition-delay: .10s; }
html.sm-anim .sm-footer.is-in .sm-footer__bottom             { transition-delay: .18s; }
html.sm-anim .sm-footer.is-in .sm-footer__legal             { transition-delay: .24s; }


html.sm-anim .sm-hero.is-in .sm-hero__head > :nth-child(1)   { transition-delay: .14s; } 
html.sm-anim .sm-hero.is-in .sm-hero__head > :nth-child(2)   { transition-delay: .26s; } 
html.sm-anim .sm-hero.is-in .sm-hero__bottom > :nth-child(1) { transition-delay: .42s; } 
html.sm-anim .sm-hero.is-in .sm-hero__bottom > :nth-child(2) { transition-delay: .54s; } 
html.sm-anim .sm-hero.is-in .sm-hero__rule                   { transition-delay: .66s; }
html.sm-anim .sm-hero.is-in .sm-hero__stats                  { transition-delay: .76s; }


html.sm-anim .sm-hero__media { inset: -9% 0; will-change: transform; }
html.sm-anim .sm-hero__photo { animation: sm-kenburns 2.4s var(--sm-ease) both; will-change: transform, opacity; }

html.sm-anim .sm-hero > .wp-block-cover__image-background { inset: -9% 0; height: auto; animation: sm-kenburns 2.4s var(--sm-ease) both; will-change: transform, opacity; }
html.sm-anim .sm-hero__grid  { animation: sm-fade 1.6s var(--sm-ease) .15s both; }
@keyframes sm-kenburns { from { opacity: 0; transform: scale(1.14); } to { opacity: .5; transform: scale(1); } }
@keyframes sm-fade     { from { opacity: 0; } to { opacity: 1; } }


html.sm-anim .sm-site-header { animation: sm-header-in .9s var(--sm-ease) .1s both; }
@keyframes sm-header-in { from { opacity: 0; transform: translateY(-18px); } to { opacity: 1; transform: none; } }


html.sm-anim .sm-hero__scroll { opacity: 0; animation: sm-cue 1s var(--sm-ease) 1.25s forwards; }
html.sm-anim .sm-hero__scroll svg { animation: sm-bob 1.9s ease-in-out 2s infinite; }
@keyframes sm-cue { from { opacity: 0; } to { opacity: .7; } }
@keyframes sm-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
html.sm-anim.is-scrolled .sm-hero__scroll {
  animation: none; opacity: 0; transform: translateX(-50%) translateY(8px);
  transition: opacity .45s var(--sm-ease), transform .45s var(--sm-ease);
}
html.sm-anim.is-scrolled .sm-hero__scroll svg { animation: none; }


html.sm-anim .sm-gap__reticle { animation: sm-breathe 4.5s ease-in-out infinite; }
@keyframes sm-breathe { 0%, 100% { opacity: .7; } 50% { opacity: .42; } }


html.sm-anim .sm-section.is-in .sm-gridfx__quad {
  animation: sm-cellfade var(--cyc-t, 9s) ease-in-out var(--cyc-d, 0s) infinite;
}
@keyframes sm-cellfade {
  0%, 8%    { opacity: 1; }   
  25%, 50%  { opacity: 0; }   
  67%, 100% { opacity: 1; }   
}

/* ==== 8.5 MICRO-INTERACTIONS (front end only) ==== */

/* Corner expansion is NOT redeclared here — the shared .sm-bracket rule in §4
   owns it for every bracket on the site (it used to live here at .4s with no
   opacity/colour shift, which is why buttons animated differently from
   everything else). These rules keep only the lift/brightness. */
body.synmax .sm-btn { transition: transform .28s var(--sm-ease), box-shadow .28s var(--sm-ease), background-color .28s var(--sm-ease), filter .28s var(--sm-ease); }
body.synmax .sm-btn:hover  { transform: translateY(-2px); filter: brightness(1.07); }
body.synmax .sm-btn:active { transform: translateY(0); filter: brightness(1); }
body.synmax .sm-btn--ghost:hover   { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.28); }
body.synmax .sm-btn--neutral:hover { background: rgba(228,228,228,.92); }

body.synmax .wp-block-read-more.sm-bracket--btn { transition: transform .28s var(--sm-ease), background-color .28s var(--sm-ease), filter .28s var(--sm-ease); }
body.synmax .wp-block-read-more.sm-bracket--btn:hover { transform: translateY(-2px); filter: brightness(1.07); }


body.synmax .sm-step { transition: transform .32s var(--sm-ease), box-shadow .32s var(--sm-ease), border-color .32s var(--sm-ease); }
body.synmax .sm-step:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(5,8,15,.14); border-color: rgba(var(--sm-accent-rgb),.55); }
body.synmax .sm-statcell, body.synmax .sm-iconbox { transition: background-color .32s var(--sm-ease), box-shadow .32s var(--sm-ease); }
body.synmax .sm-statcell:hover, body.synmax .sm-iconbox:hover { background-color: rgba(var(--sm-accent-rgb),.06); box-shadow: inset 0 2px 0 0 var(--sm-accent); }
body.synmax .sm-statcell__ic, body.synmax .sm-step__ic, body.synmax .sm-iconbox .sm-ic { transition: transform .32s var(--sm-ease); }
body.synmax .sm-statcell:hover .sm-statcell__ic,
body.synmax .sm-step:hover .sm-step__ic,
body.synmax .sm-iconbox:hover .sm-ic { transform: scale(1.09); }
body.synmax .sm-iconbox__title { margin-top: 28px; transition: color .3s var(--sm-ease); }
body.synmax .sm-iconbox:hover .sm-iconbox__title { color: var(--sm-accent); }


body.synmax .sm-pager-btn { transition: background-color .25s var(--sm-ease), border-color .25s var(--sm-ease), transform .25s var(--sm-ease); }
body.synmax .sm-pager-btn:hover { background: rgba(255,255,255,.12); border-color: #fff; transform: translateY(-1px); }
body.synmax .sm-menu-pill { transition: background-color .3s var(--sm-ease), border-color .3s var(--sm-ease), transform .3s var(--sm-ease); }
body.synmax .sm-menu-pill:hover { background: rgba(0,0,0,.42); border-color: rgba(255,255,255,.3); transform: translateY(-1px); }
body.synmax .sm-footer__col a { transition: color .25s var(--sm-ease), transform .25s var(--sm-ease); }
body.synmax .sm-footer__col a:hover { transform: translateX(4px); }
body.synmax .sm-footer__social a { transition: transform .28s var(--sm-ease), opacity .28s var(--sm-ease); }
body.synmax .sm-footer__social a:hover { transform: translateY(-3px) scale(1.12); }

/* ==== 8.6 REDUCED MOTION — hard stop (belt & braces) ==== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.synmax *, body.synmax *::before, body.synmax *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  html.sm-anim .sm-hero__media { inset: 0; }
  html.sm-anim .sm-hero > .wp-block-cover__image-background { inset: 0; height: 100%; translate: none; }
}


/* ==== 9. MARITIME SUB-PAGES (capability + marketing pages) ==== */


.sm-hero--cap .sm-hero__content { justify-content: center; padding-top: 96px; padding-bottom: 96px; }


.sm-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width:640px){ .sm-grid--2 { grid-template-columns: 1fr; } }


.sm-section:not(.is-light):not(.sm-hero) + .sm-section:not(.is-light) { border-top: 1px solid rgba(233,233,233,.3); }
.sm-section:not(.is-light):not(.sm-hero) + .sm-section:not(.is-light).sm-legal{border-top: none;}


.sm-gap:not(.is-light) { background: #081220; }
.sm-gap:not(.is-light) .sm-gap__card { background: rgba(22,31,45,.28); border-color: rgba(233,233,233,.2); -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px); }
.sm-gap:not(.is-light) .sm-gap__title { color: #fff; }
.sm-gap:not(.is-light) .sm-gap__divider { background: rgba(255,255,255,.14); }
.sm-gap:not(.is-light) .sm-gap__copy p { color: var(--sm-body-dark); }
.sm-gap__panel--img { background: #05080F; }
.sm-gap__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.synmax .sm-gap__photo, .synmax .sm-featcard__photo { height: 100%; }


.sm-multistep:not(.is-light) { background: #161F2D; }
.sm-multistep:not(.is-light) .sm-step.sm-glass { background: rgba(22,31,45,.28); border-color: rgba(233,233,233,.2); }
.sm-multistep:not(.is-light) .sm-step .sm-kicker { color: var(--sm-accent); }
.sm-multistep:not(.is-light) .sm-step > .sm-step__title { color: #fff; }
.sm-multistep:not(.is-light) .sm-step > .sm-step__body { color: var(--sm-body-dark); font-weight: 300; }


.sm-statband { background: #081220; }
.sm-statband__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; width: 100%; }
.sm-section__inner > .sm-statband__row { margin-top: 40px; }
.sm-statband__cell { background: rgba(0,0,0,.15); border: 1px solid rgba(233,233,233,.2); padding: 56px 24px; display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center; }
.sm-statband__num { font-size: clamp(40px,5vw,48px); font-weight: 700; line-height: 1; background: var(--sm-title-silver); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.sm-statband__cap { font-size: var(--sm-fs-p2); line-height: 1.4; color: #69E0F5; width: min(300px, 100%); margin: 0; }
/* Light statband — the shared is-light surface renders ink numbers on paper
   (master home "By the numbers" matches the main site's white band). */
.sm-section.is-light.sm-statband { background: var(--sm-paper); }
.sm-section.is-light .sm-statband__cell { background: #FBFBFB; border-color: rgba(38,47,63,.12); }
.sm-section.is-light .sm-statband__num { background: none; -webkit-text-fill-color: var(--sm-ink); color: var(--sm-ink); }
.sm-section.is-light .sm-statband__cap { color: var(--sm-accent); }
.sm-section.is-light .sm-statband__cap::before { background: rgba(38,47,63,.18); }

.sm-statband__cap::before { content: ""; display: block; width: 100%; height: 1px; background: rgba(233,233,233,.32); margin: 0 auto 18px; }
@media (max-width:760px){ .sm-statband__row { grid-template-columns: 1fr; } }


.sm-usecases { background: #081220; }


.sm-featcards { background: #081220; }
.sm-featcards__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; width: 100%; }
.sm-section__inner > .sm-featcards__row { margin-top: 40px; }
.sm-featcard { position: relative; min-height: 544px; overflow: clip; border: 1px solid rgba(233,233,233,.2); display: flex; align-items: flex-end; }
.sm-featcard__media { position: absolute; inset: 0; z-index: 0; }
.sm-featcard__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sm-featcard__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,18,32,.12) 28%, rgba(8,18,32,.94) 100%); }

figure.sm-featcard__media { margin: 0; }
figure.sm-featcard__media img, .synmax figure.sm-featcard__media img { width: 100%; height: 100%; object-fit: cover; }
figure.sm-featcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,18,32,.12) 28%, rgba(8,18,32,.94) 100%); }

.sm-featcard__panel { min-height: 166px; position: relative; z-index: 1; width: 100%; margin: 0; padding: 24px; background: rgba(8,12,20,.55); border: 0; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 8px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sm-featcard__kicker { font-size: var(--sm-fs-); letter-spacing: 2px; text-transform: uppercase; color: var(--sm-accent); font-weight: 600; margin: 0; }
.sm-featcard__title { font-size: var(--sm-fs-h6); font-weight: 600; color: #fff; line-height: 1.2; margin: 0; }
.sm-featcard__body { font-size: var(--sm-fs-small); font-weight: 300; line-height: 1.42; color: var(--sm-body-dark); margin: 0; }
@media (max-width:900px){ .sm-featcards__row { grid-template-columns: 1fr; } .sm-featcard { min-height: 360px; } }


.sm-featpara { border: 1px solid rgba(233,233,233,.2); background: linear-gradient(243deg, rgba(22,31,45,.2), rgba(22,31,45,.04)); padding: 36px 40px; text-align: center; }
.sm-section__inner > .sm-featpara { margin-top: 24px; }
.sm-featpara p { color: #fff; font-size: var(--sm-fs-body); line-height: 1.42; max-width: 840px; margin: 0 auto; }


.sm-cta:not(.is-light) { background: #081220; }
.sm-cta:not(.is-light) .sm-eyebrow { color: var(--eyebrow); }
.sm-cta:not(.is-light) .sm-cta__title { color: #fff; }
.sm-cta:not(.is-light) .sm-cta__body { color: var(--sm-body-dark); }
.sm-cta:not(.is-light) .sm-cta__btns::before,
.sm-cta:not(.is-light) .sm-cta__btns::after { background: rgba(255,255,255,.12); }

.sm-cta:not(.is-light) .sm-btn--neutral { background: #fff; color: #04121A; --bracket: #2A3445; }
.sm-cta:not(.is-light) .sm-btn--neutral:hover { background: #EAF6FF; }


.sm-prose { display: flex; flex-direction: column; gap: 20px; max-width: 880px; }
.sm-section__inner > .sm-prose { margin-top: 32px; }
.sm-prose p { color: var(--sm-body-dark); font-size: var(--sm-fs-body); line-height: 1.5; margin: 0; }
.sm-prose strong { color: #fff; font-weight: 600; }


.sm-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.sm-step > .sm-tags { margin-top: auto; padding-top: 20px; }
.sm-tag { font-size: var(--sm-fs-tagline);; letter-spacing: .04em; color: #69E0F5; border: 1px solid rgba(105,224,245,.3); background: rgba(105,224,245,.06); padding: 5px 10px; border-radius: var(--sm-radius-sm); }


.sm-panel { background: rgba(22,31,45,.4); border: 1px solid rgba(233,233,233,.2); -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px); padding: 40px; }
.sm-section__inner > .sm-panel { margin-top: 40px; }
.sm-checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 36px; }
.sm-checklist li { position: relative; padding-left: 32px; color: var(--sm-body-dark); font-size: var(--sm-fs-p2); line-height: 1.45; }
.sm-checklist li::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2369E0F5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; }
@media (max-width:760px){ .sm-checklist { grid-template-columns: 1fr; } }


.sm-contact { background: #081220; }
.sm-contact__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; width: 100%; }
.sm-section__inner > .sm-contact__grid { margin-top: 8px; }
@media (max-width:900px){ .sm-contact__grid { grid-template-columns: 1fr; gap: 40px; } }
.sm-contacts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.sm-contact__grid .sm-contacts { margin-top: 28px; }
.sm-contacts li { color: var(--sm-body-dark); font-size: var(--sm-fs-p2); line-height: 1.4; }
.sm-contacts strong { color: #fff; font-weight: 600; display: inline-block; min-width: 116px; }
.sm-contacts a { color: #69E0F5; text-decoration: none; }
.sm-contacts a:hover { text-decoration: underline; }


.sm-form { display: flex; flex-direction: column; gap: 20px; background: rgba(22,31,45,.4); border: 1px solid rgba(233,233,233,.2); -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px); padding: 36px; box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.sm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width:560px){ .sm-form__row { grid-template-columns: 1fr; } }
.sm-field { display: flex; flex-direction: column; gap: 8px; }
.sm-field__label { font-size: 13px; letter-spacing: .04em; color: #fff; font-weight: 600; }
.sm-field__label em { color: var(--sm-body-dark); font-style: normal; font-weight: 400; }
.sm-field__input { width: 100%; background: rgba(8,18,32,.6); border: 1px solid rgba(233,233,233,.22); color: #fff; font: inherit; font-size: var(--sm-fs-small); padding: 13px 14px; border-radius: var(--sm-radius-sm); box-sizing: border-box; }
.sm-field__input::placeholder { color: #6B7689; }
.sm-field__input:focus { outline: none; border-color: var(--sm-accent); box-shadow: 0 0 0 1px var(--sm-accent); }
.sm-field__select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2399B3D1' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; cursor: pointer; }
.sm-field__area { resize: vertical; min-height: 124px; line-height: 1.55; }
.sm-form__submit { margin-top: 8px; align-self: flex-start; min-width: 200px; }

/* --- lead-form chrome ---------------------------------------------------- */
/* The one declaration doing real work: without it the UA paints the native
   <select> popup, the caret and the autofill overlay in LIGHT mode — a grey OS
   menu dropped onto a navy page. Applies to both form skins. */
.sm-field__input { color-scheme: dark; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
/* Belt and braces for the popup: Chrome honours these on Windows, Firefox and
   Safari fall back to color-scheme above. */
.sm-field__select option { background-color: #0F1926; color: #E9E9E9; }
.sm-field__select option:checked { background-color: #17253A; }
/* An unchosen select should read as a placeholder, not as an answer. */
.sm-field__select:has(option[value=""]:checked) { color: #6B7689; }
.sm-field__input:hover:not(:focus):not(:disabled) { border-color: rgba(233,233,233,.45); background: rgba(8,18,32,.78); }
/* Chrome's autofill paints an opaque pale-yellow box. The inset shadow is the
   only way to override it; the long transition keeps it from flashing back. */
.sm-field__input:-webkit-autofill,
.sm-field__input:-webkit-autofill:hover,
.sm-field__input:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff;
  -webkit-box-shadow: 0 0 0 1000px rgba(10,20,34,.96) inset;
  caret-color: #fff;
  transition: background-color 9999s ease-out;
}
.sm-form__submit:hover:not(:disabled) { filter: brightness(1.12); }
.sm-form__submit:active:not(:disabled) { filter: brightness(.96); }

/* --- lead-form states (shared by .sm-form, .sm-cform, .sm-signup) --------- */
/* Off-screen rather than display:none: some bots skip hidden inputs, and the
   honeypot only works if they fill it in. Absolute, so it never takes flex
   space in any of the three form layouts. */
.sm-form__hp { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }
/* Marks required without shouting; line-height:0 keeps it off the label metrics. */
.sm-field__req { color: var(--sm-accent); font-weight: 400; font-size: 1.1em; line-height: 0; }
.sm-field__error { font-size: 12px; line-height: 1.35; color: #FF8A8A; }
/* :empty keeps the reserved slot from adding a flex gap before it is used. */
.sm-field__error:empty { display: none; }
[data-sm-field].is-error .sm-field__input { border-color: #FF8A8A; }
[data-sm-field].is-error .sm-field__input:focus { border-color: #FF8A8A; box-shadow: 0 0 0 1px #FF8A8A; }
.sm-form__status { font-size: 14px; line-height: 1.45; margin: 0; color: var(--sm-body-dark); }
.sm-form__status:empty { display: none; }
.sm-form__status.is-ok { color: #6FE0A6; }
.sm-form__status.is-error { color: #FF8A8A; }
.sm-form [type="submit"]:disabled,
.sm-cform__submit:disabled,
.sm-signup [type="submit"]:disabled { opacity: .55; cursor: progress; }


.sm-signup { display: flex; flex-wrap: wrap; gap: 12px; max-width: 540px; }
.sm-signup .sm-form__status { flex: 1 0 100%; }
.sm-section__inner > .sm-signup { margin-top: 28px; }
.sm-signup__input { flex: 1; min-width: 300px; }
@media (max-width:520px){ .sm-signup { flex-direction: column; } }


.sm-artlist { display: flex; flex-direction: column; border-top: 1px solid rgba(233,233,233,.15); }
.sm-section__inner > .sm-artlist { margin-top: 40px; }
.sm-artlist__item { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 4px; border-bottom: 1px solid rgba(233,233,233,.15); }
.sm-artlist__item > .sm-artlist__title { color: #fff; font-size: var(--sm-fs-body); font-weight: 600; margin: 0; }
.sm-artlist__item > .sm-artlist__tag { color: #69E0F5; font-size: var(--sm-fs-tagline);; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; margin: 0; }
@media (max-width:600px){ .sm-artlist__item { flex-direction: column; align-items: flex-start; gap: 8px; } }


.sm-logos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(233,233,233,.15); border: 1px solid rgba(233,233,233,.15); }
.sm-section__inner > .sm-logos { margin-top: 40px; }
.sm-logos__cell { background: #081220; min-height: 124px; display: flex; align-items: center; justify-content: center; }
.sm-logos__cell p { color: #48566B; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin: 0; }
@media (max-width:760px){ .sm-logos { grid-template-columns: repeat(2, 1fr); } }

/* ==== 10. NAV OVERLAY MENU (the "MENU" pill opens a full-screen dark-glass takeover) ==== */
html.sm-menu-open { overflow: hidden; }

.sm-navmenu { position: fixed; inset: 0; z-index: 200; opacity: 0; visibility: hidden; pointer-events: none;
	background: radial-gradient(120% 120% at 82% 0%, rgba(var(--sm-accent-rgb),.10), rgba(8,18,32,0) 46%), linear-gradient(180deg, #0B1622 0%, #060C16 100%);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	transition: opacity .35s var(--sm-ease), visibility 0s linear .35s; }
.sm-navmenu.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .35s var(--sm-ease); }

.sm-navmenu__panel { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 32px 0 56px; overflow-y: auto;
	transform: translateY(-14px); transition: transform .42s var(--sm-ease); }
.sm-navmenu.is-open .sm-navmenu__panel { transform: none; }

.sm-navmenu__bar { display: flex; align-items: center; justify-content: space-between; min-height: var(--sm-nav-h); }
.sm-navmenu__close { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: #fff; cursor: pointer; padding: 0;
	background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	transition: background-color .3s var(--sm-ease), transform .3s var(--sm-ease); }
.sm-navmenu__close:hover { background: rgba(255,255,255,.12); transform: rotate(90deg); }


.sm-navmenu__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 40px 48px; margin-top: 6vh; }
.sm-navmenu__label { font-size: var(--sm-fs-tagline);; letter-spacing: 3px; text-transform: uppercase; color: var(--sm-accent); margin: 0 0 22px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
.sm-navmenu__label a { color: inherit; text-decoration: none; transition: color .25s var(--sm-ease); }
.sm-navmenu__label a:hover, .sm-navmenu__label a:focus-visible { color: #69E0F5; outline: none; }
.sm-navmenu__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.sm-navmenu__link { color: #fff; text-decoration: none; display: inline-block; transition: color .25s var(--sm-ease), transform .25s var(--sm-ease); }
.sm-navmenu__list--primary .sm-navmenu__link { font-size: clamp(28px, 3.2vw, 44px); font-weight: 600; line-height: 1.06; letter-spacing: -.01em; }
.sm-navmenu__link--sub { font-size: var(--sm-fs-body); font-weight: 500; color: var(--sm-body-dark); }
.sm-navmenu__link:hover, .sm-navmenu__link:focus-visible { color: #69E0F5; transform: translateX(6px); outline: none; }

.sm-navmenu__foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: auto; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.10); }
.sm-navmenu__foot .sm-btn { flex: 0 0 auto; }
.sm-navmenu__tag { color: var(--sm-body-dark); font-size: 13px; letter-spacing: 3px; text-transform: uppercase; }

@media (max-width: 900px){
	.sm-navmenu__grid { grid-template-columns: 1fr; gap: 30px; margin-top: 4vh; }
	.sm-navmenu__list--primary .sm-navmenu__link { font-size: clamp(26px, 7vw, 34px); }
	.sm-navmenu__foot { flex-direction: column; align-items: flex-start; }
}

/* ==== 11. CARD ICON SIZE — slightly smaller across the site (statcell / step / iconbox) ==== */
.sm-ic, .sm-statcell__ic, .sm-step__ic, .sm-iconbox .sm-ic { width: 34px; height: 34px; flex-basis: 34px; }
.sm-ic svg, .sm-ic > svg, .sm-ic img, .sm-statcell__ic img, .sm-step__ic img, .sm-iconbox .sm-ic img, .wp-block-image.sm-ic img { width: 34px; height: 34px; }

/* ==== 11b. FEATURE ROW — the kit featureRow mirror (alternating framed text+image rows ==== */
.sm-frows-stack { display: flex; flex-direction: column; gap: 0; }
.sm-section__inner > .sm-frows-stack { margin-top: 8px; }
.sm-frow { display: flex; flex-direction: row; gap: 0; padding: 16px; border: 1px solid rgba(233,233,233,.2); }
.sm-frows-stack > .sm-frow + .sm-frow { border-top: 0; }
.sm-frow--rev { flex-direction: row-reverse; }
.sm-frow__text { flex: 1; display: flex; flex-direction: column; gap: 24px; justify-content: center; padding: 40px; border: 1px solid rgba(233,233,233,.2); }
.sm-frow__tag { color: var(--sm-accent, #00A1E1); font-size: var(--sm-fs-tagline);; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; margin: 0; }
.sm-frow__head { display: flex; flex-direction: row; gap: 20px; align-items: center; }
.sm-frow__head .sm-ic { margin: 0; flex: 0 0 auto; }
.sm-frow__title { color: #fff; font-size: var(--sm-fs-h3); line-height: 1.25; font-weight: 600; margin: 0; }
.sm-frow__rule { border: 0; border-top: 1px solid rgba(233,233,233,.2); width: 100% !important; margin: 0; }
.sm-frow__body { color: var(--sm-body-dark); font-size: var(--sm-fs-p2); font-weight: 300; line-height: 1.44; margin: 0; }
.sm-frow__img { flex: 0 0 608px; width: 608px; height: 340px; margin: 0; }
.sm-frow__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 1100px) {
	.sm-frow, .sm-frow--rev { flex-direction: column; }
	.sm-frow__img { flex: 0 0 auto; width: 100%; height: auto; aspect-ratio: 608 / 340; }
}

/* ==== 12. SOLUTIONS — "By Critical Problem" parallax rows ==== */
.sm-prows { background: #081220; }
.sm-prows__list { display: flex; flex-direction: column; }
.sm-section__inner > .sm-prows__list { margin-top: 8px; }
.sm-prow { display: grid; grid-template-columns: 540px 1fr; gap: 56px; align-items: center; padding: 64px 0; border-top: 1px solid rgba(233,233,233,.16); transition: opacity .45s var(--sm-ease); }
.sm-prow:first-child { border-top: 0; }
.sm-prow__text { display: flex; flex-direction: column; gap: 16px; }
.sm-prow__kicker { color: var(--sm-accent); font-family: 'Inter', var(--sm-font); font-size: var(--sm-fs-tagline);; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; margin: 0; }
.sm-prow__title { color: #fff; font-size: clamp(24px, 2.3vw, 30px); font-weight: 700; line-height: 1.12; margin: 0; }
.sm-prow__body { color: var(--sm-body-dark); font-size: var(--sm-fs-p2); line-height: 1.55; margin: 0; max-width: 540px; }

.sm-prow__media { position: relative; aspect-ratio: 660 / 340; overflow: hidden; border: 1px solid rgba(233,233,233,.14); background: #05080F; will-change: transform; }
.sm-prow__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.synmax .sm-prow__photo { height: 100%; }   
.sm-prow__scrim { position: absolute; inset: 0; background: radial-gradient(130% 100% at 50% 45%, transparent 38%, rgba(8,18,32,.55) 100%), linear-gradient(180deg, rgba(8,18,32,.05), rgba(8,18,32,.45)); }

figure.sm-prow__photo { margin: 0; }
figure.sm-prow__photo img, .synmax figure.sm-prow__photo img { width: 100%; height: 100%; object-fit: cover; }
figure.sm-prow__photo::after { content: ""; position: absolute; inset: 0; background: radial-gradient(130% 100% at 50% 45%, transparent 38%, rgba(8,18,32,.55) 100%), linear-gradient(180deg, rgba(8,18,32,.05), rgba(8,18,32,.45)); }
.sm-prow__frame { position: absolute; inset: 0; pointer-events: none; }
.sm-prow__v { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(105,224,245,.2); }
.sm-prow__v1 { left: 14%; } .sm-prow__v2 { right: 18%; }
.sm-prow__h { position: absolute; left: 0; right: 0; height: 1px; background: rgba(105,224,245,.2); }
.sm-prow__h1 { top: 28%; } .sm-prow__h2 { bottom: 26%; }
.sm-prow__cell { position: absolute; left: 14%; top: 14%; width: 78px; height: 42px; border: 1px solid rgba(105,224,245,.45); background: rgba(105,224,245,.07); }
.sm-prow__coord { position: absolute; right: 14px; bottom: 12px; font-family: 'Inter', var(--sm-font); font-size: 11px; letter-spacing: .05em; color: rgba(255,255,255,.66); }
@media (max-width: 900px) {
	.sm-prow { grid-template-columns: 1fr; gap: 22px; padding: 36px 0; }
	.sm-prow__media { order: -1; }
}

/* ==== 13. REVAMP-2026 GENERIC COMPONENTS (SynMax Intelligence master-brand site) ==== */


.sm-split { position: relative; padding: 0; background: linear-gradient(180deg, #001857 0%, #060A28 100%); overflow: clip; }
.sm-split__row { display: flex; align-items: stretch; gap: 12px; padding-right: 96px; width: 100%; }
.sm-split__panel { position: relative; overflow: clip; flex: 0 0 50%; min-height: 672px; background: linear-gradient(180deg, #001857 0%, #060A28 100%); }
.sm-split__photo { position: absolute; inset: 0; overflow: hidden; }
.sm-split__photo img { position: absolute; left: -126.3%; top: -30.19%; width: 302.66%; height: 155.47%; max-width: none; object-fit: cover; }
.sm-split__photo::after { content: ""; position: absolute; inset: 0; background: rgba(8,18,32,.3); }
.sm-split__photo--soft { mix-blend-mode: soft-light; }
.sm-split__photo--soft::after { background: rgba(0,50,100,.12); }
.sm-split__ovB { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,18,32,0) 65.49%, #081220 100%); pointer-events: none; }
.sm-split__ovA { position: absolute; inset: 0; background: linear-gradient(241.16deg, rgba(8,18,32,0) 73.6%, #081220 100%); opacity: .56; pointer-events: none; }
.sm-split__hud { position: absolute; left: 181px; top: 104px; width: 300px; height: auto; opacity: .7; }
.sm-split__monitor { position: absolute; left: 24px; top: 19px; background: rgba(0,0,0,.1); padding: 12px 20px; font-size: var(--sm-fs-split-sub); font-weight: 600; letter-spacing: 2px; line-height: var(--sm-lh-split-sub); text-transform: uppercase; color: #B2BFD1; }
.sm-split__track { position: absolute; left: 590px; top: 30px; font-size: var(--sm-fs-split-track); font-weight: 600; letter-spacing: 1px; line-height: var(--sm-lh-split-track); text-transform: uppercase; color: #B2BFD1; }
.sm-split__coords { position: absolute; left: 510px; top: 404px; display: flex; flex-direction: column; gap: 12px; padding: 16px; border: .2px solid #fff; font-size: var(--sm-fs-tagline); font-weight: 600; letter-spacing: 1px; line-height: var(--sm-lh-tagline); text-transform: uppercase; color: #B2BFD1; }
.sm-split__chips { position: absolute; left: 72px; top: 75px; display: flex; flex-direction: column; gap: 0; align-items: flex-start; }
.sm-hudchip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 2px; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.3); font-size: var(--sm-fs-tagline); font-weight: 600; letter-spacing: 1px; line-height: var(--sm-lh-tagline); text-transform: uppercase; color: #E3E7ED; white-space: nowrap; }
.sm-hudchip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #69E0F5; flex: 0 0 7px; }
.sm-split__content { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding-block: 48px; z-index: 5;}
.sm-split__body { display: flex; flex-direction: column; gap: 28px; width: 100%; max-width: 612px; }
.sm-split__head { display: flex; align-items: center; gap: 20px; width: 100%; }
.sm-split__dots { width: 39px; height: 39px; flex: 0 0 39px; display: block; margin: 0; }
.sm-split__dots img { width: 39px; height: 39px; display: block; }
.sm-split__title { font-size: var(--sm-fs-h2); line-height: var(--sm-lh-h2); font-weight: 700; color: #fff; text-transform: none; margin: 0; }
.sm-split hr.wp-block-separator.sm-divider { border-top-color: rgba(255,255,255,.2); }
.sm-split__copy p { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #E9E9E9; margin: 0; text-box: trim-both cap alphabetic; }

.sm-split .sm-split__copy p + p { margin-top: 27px; }
@media (max-width: 980px) {
  .sm-split__row { flex-direction: column; padding-right: 0; }
  .sm-split__panel { flex: 0 0 auto; width: 100%; min-height: 480px; }
  .sm-split__content { padding: 48px var(--sm-gutter); }
}


.sm-hub { position: relative; padding: 88px 0 100px; background: rgba(0,0,0,.15); }
.sm-hub__panel { position: relative; width: 100%; height: 744px; overflow: clip; background: rgba(0,0,0,.15); }

.sm-hub .sm-hub__panel { margin-top: 32px; }
.sm-hub__media { position: absolute; inset: 0; }
.sm-hub__map { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #050A14; }
.synmax .sm-hub__map { height: 100%; }

figure.sm-hub__map, figure.sm-loccard__map, figure.sm-biocard__photo, figure.sm-split__photo, figure.sm-biomodal__cutout { margin: 0; }
figure.sm-hub__map img, figure.sm-loccard__map img, figure.sm-biocard__photo img,
.synmax figure.sm-hub__map img, .synmax figure.sm-loccard__map img, .synmax figure.sm-biocard__photo img { width: 100%; height: 100%; object-fit: cover; display: block; position: static; inset: auto; }
figure.sm-biomodal__cutout img, .synmax figure.sm-biomodal__cutout img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; position: static; inset: auto; }
.sm-hub__fadeR { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,18,32,0) 1.4%, #081220 66.33%); opacity: .54; pointer-events: none; }
.sm-hub__fadeB { position: absolute; inset: 0; background: linear-gradient(120.87deg, rgba(8,18,32,0) 35.6%, #081220 100%); pointer-events: none; }
.sm-hub__cross { position: absolute; left: 0; top: 0; width: 752px; height: 744px; max-width: none; }
.sm-hub__dotblock { position: absolute; left: 98px; top: 648px; width: 96px; height: 96px; }
.sm-hub__corner { position: absolute; left: 0; top: 648px; width: 97px; height: 96px; background: rgba(255,255,255,.12); }

.sm-hub__explore { position: absolute; right: max(calc(50% - 624px), 24px); top: 32px; width: 72px; height: 72px; background: rgba(0,233,108,.04); border: .2px solid rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; --bracket: #00E96C; --bw: 27px; }
.sm-hub__explore img { width: 24px; height: 24px; display: block; }

.sm-hub__card { position: absolute; left: calc(50% + 32px); top: 167px; width: 592px; border: 1px solid rgba(233,233,233,.12); background: rgba(8,18,32,0); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); padding: 40px; display: flex; flex-direction: column; gap: 24px; z-index: 2; }
.sm-hub__head { display: flex; align-items: center; gap: 20px; }
.sm-hub__title { font-size: var(--sm-fs-h3); line-height: var(--sm-lh-h3); font-weight: 700; color: #E9E9E9; text-transform: none; margin: 0; }
.sm-hub__body { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #E9E9E9; margin: 0; text-box: trim-both cap alphabetic; }
.sm-hub hr.wp-block-separator.sm-divider { border-top-color: rgba(255,255,255,.2); }
.sm-hub__products { display: flex; flex-direction: column; gap: 20px; width: 100%; }
.sm-hub__rows { display: flex; flex-direction: column; gap: 20px; }
.sm-hub__prow { display: flex; align-items: stretch; gap: 8px; width: 512px; max-width: 100%; }
.sm-hub__pimg { width: 248px; height: 112px; flex: 0 0 248px; margin: 0; }
.sm-hub__pimg img { width: 248px; height: 112px; object-fit: cover; display: block; }
.sm-hub__pbox { flex: 1 1 auto; min-width: 0; border: 1px solid rgba(0,0,0,.15); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px 20px; --bw: 23px; }
.sm-hub__pname { font-size: var(--sm-fs-lead); font-weight: 600; letter-spacing: 3px; line-height: var(--sm-lh-lead); text-transform: uppercase; margin: 0; text-box: trim-both cap alphabetic; white-space: nowrap; }
.sm-hub__pname--hyperion { color: var(--sm-hyperion); }
.sm-hub__pname--vulcan { color: var(--sm-vulcan); }
.sm-hub__pname--theia { color: var(--sm-theia); }
.sm-hub__psub { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #E3E7ED; margin: 0; text-box: trim-both cap alphabetic; white-space: nowrap; }
@media (max-width: 1280px) {
  .sm-hub__card { left: auto; right: var(--sm-gutter); }
}
@media (max-width: 900px) {
  .sm-hub__panel { height: auto; }
  .sm-hub__card { position: relative; left: 0; right: 0; top: 0; width: auto; margin: 48px var(--sm-gutter); background: rgba(8,18,32,.72); }
  .sm-hub__cross, .sm-hub__dotblock, .sm-hub__corner { display: none; }
}


.sm-npvhead::after { margin-right: 0; }
.sm-npvhead .sm-npvhead__all { order: 1; margin: 0; flex: 0 0 auto; }
.sm-npv__row { display: flex; align-items: stretch; gap: 24px; width: 100%; }
.sm-npv__list { display: flex; flex-direction: column; gap: 20px; flex: 2; min-width: 0; }

.sm-npvcard { position: relative; display: flex; gap: 20px; align-items: flex-start; padding: 19px; background: rgba(0,0,0,.15); border: 1px solid rgba(233,233,233,.2); border-radius: 2px; overflow: clip; }
.sm-npvcard__img { position: relative; width: 140px; height: 140px; flex: 0 0 140px; --bw: 23px; margin: 0; }
.sm-npvcard__img img { width: 140px; height: 140px; object-fit: cover; display: block; }

.sm-npvcard__c { position: relative; display: flex; flex-direction: column; gap: 16px; flex: 1 1 auto; min-width: 0; min-height: 183px; }
.sm-npvcard__bottom { margin-top: auto; }
.sm-npvcard__meta { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.sm-npv__tags { display: flex; gap: 28px; align-items: center; }

.sm-npvtag { display: inline-flex; align-items: center; gap: 12px; height: 28px; padding: 0 12px; border-radius: 2px; font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); margin: 0; }
.sm-npvtag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: 0 0 8px; }
.sm-npvtag--news { background: #29251C; border: 1px solid #624B07; color: #FFC24B; }
.sm-npvtag--theia { background: #041D25; border: 1px solid #094C61; color: #16B4E8; }
.sm-npvtag--hyperion { background: #04251C; border: 1px solid #0A6138; color: #00E96C; }
.sm-npvtag--vulcan { background: #2A1210; border: 1px solid #7A2B24; color: #F85849; }
.sm-npvcard__date { font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); color: #E9E9E9; opacity: .8; margin: 0; white-space: nowrap; text-box: trim-both cap alphabetic; }
.sm-npvcard__dots { position: absolute; top: -20px; right: 65px; width: 56px; height: 56px; pointer-events: none; margin: 0; }
.sm-npvcard__title { font-size: var(--sm-fs-h5); font-weight: 600; line-height: var(--sm-lh-h5); color: #E9E9E9; margin: 0; text-transform: none; }
.sm-npvcard__tblock { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.sm-npv hr.wp-block-separator.sm-divider { border-top-color: rgba(255,255,255,.2); }
.sm-npvcard__bottom { display: flex; align-items: flex-end; gap: 36px; width: 100%; }
.sm-npvcard__ex { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); color: #E9E9E9; margin: 0; flex: 1 1 auto; min-width: 0; text-box: trim-both cap alphabetic; }
.sm-npvcard__cta { margin: 0; flex: 0 0 auto; }
.sm-npvfeature { position: relative; border: 1px solid rgba(233,233,233,.2); padding: 19px; display: flex; flex-direction: column; overflow: clip; min-height: 500px; flex: 1;}
.sm-npvfeature__img { position: absolute; inset: 19px; }
.sm-npvfeature__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.synmax .sm-npvfeature__img img { height: 100%; }
.sm-npvfeature__ov { position: absolute; left: 19px; right: 19px; bottom: 19px; height: 294px; background: linear-gradient(180deg, rgba(8,18,33,0) 22%, #081221 88%); opacity: .69; pointer-events: none; }

figure.sm-npvfeature__img::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 294px; background: linear-gradient(180deg, rgba(8,18,33,0) 22%, #081221 88%); opacity: .69; pointer-events: none; }

.sm-npvfeature > .sm-npvfeature__panel { margin-top: auto; }
.editor-styles-wrapper .sm-npvfeature .sm-npvfeature__panel { margin-top: auto !important; }
.sm-npvfeature__dots { position: absolute; right: 33px; top: 33px; width: 112px; height: 112px; pointer-events: none; margin: 0; }
.sm-npvfeature__tags { position: absolute; left: 42px; top: 42px; display: flex; gap: 16px; }
.sm-npvtag--flat { background: rgba(0,0,0,.15); border: 0; height: 36px; padding: 0 16px; color: #fff; opacity: .8; }
.sm-npvtag--flat::before { display: none; }
.sm-npvfeature__sp { flex: 1 1 auto; }
.sm-npvfeature__panel { position: relative; width: 100%; padding: 16px 16px 28px; display: flex; flex-direction: column; gap: 24px; background: rgba(0,0,0,0); -webkit-backdrop-filter: blur(11px); backdrop-filter: blur(11px); }
.sm-npvfeature__text { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.sm-npvfeature__title { font-size: var(--sm-fs-lead); font-weight: 600; line-height: var(--sm-lh-lead); color: #E9E9E9; margin: 0; text-transform: none; }
.sm-npvfeature__ex { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); color: #E9E9E9; margin: 0; text-box: trim-both cap alphabetic; }
.sm-npvfeature__cta { margin: 0; width: 100%; }
.sm-npvfeature__cta .sm-btn { width: 100%; --bw: 27px; }
.sm-npvfeature__cta .sm-btn > a { font-size: 16px !important; }
@media (min-width: 990px) and (max-width: 1280px) {
  .sm-npvcard__meta{
    flex-direction: column;
    align-items: start;
    justify-content: start;
    gap: 12px;
  }
  .sm-npvcard__bottom{
    flex-direction: column;
  }
}
@media (max-width: 980px) {
  .sm-npv__row { flex-direction: column; }
  .sm-npvfeature { min-height: 560px; }
}
@media (max-width: 640px) {
  .sm-npvcard { flex-direction: column; }
  .sm-npvcard__img { width: 100%; height: 180px; flex: 0 0 auto; }
  .sm-npvcard__img img { width: 100%; height: 180px; }
}



.sm-locs { padding: 88px 0 100px; background: rgba(0,0,0,.15); }
.sm-locs .sm-section__inner > .sm-locs__row { margin-top: 24px; }
.sm-locs__row { display: flex; gap: 24px; align-items: stretch; }
/* Flexible thirds rather than three rigid 400px cards. 3x400 + 2x24 gap = 1248px
   = the container at its maximum, so with flex:0 0 400px the row overflowed at
   every viewport below 1440px (140px over at 1300). flex:1 1 0 keeps the design's
   400px at full width and lets the cards share whatever is available below it. */
.sm-loccard { position: relative; flex: 1 1 0; min-width: 0; width: auto; height: 575px; border: 1px solid rgba(233,233,233,.2); border-radius: 2px; padding: 15px; display: flex; flex-direction: column; overflow: clip; }
.sm-loccard__media { position: absolute; inset: 15px; overflow: clip; }
.sm-loccard__map { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.synmax .sm-loccard__map { height: 100%; }
.sm-loccard__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,31,45,.08) 0%, rgba(22,31,45,.92) 100%); }
.sm-loccard__cross { position: absolute; inset: 0; width: 100%; height: 100%; }
.sm-loccard__reticle { position: absolute; left: 35px; top: 190px; width: 240px; height: 240px; }
.sm-loccard__target { position: absolute; left: 141px; top: 296px; width: 28px; height: 28px; }
.sm-loccard__dots { position: absolute; right: 14px; top: 15px; width: 80px; height: 80px; }
.sm-loccard__coords { position: absolute; left: 204px; top: 239px; z-index: 2; display: flex; flex-direction: column; gap: 12px; justify-content: center; padding: 12px 16px; background: rgba(0,0,0,.1); border: .1px solid #fff; border-radius: 0 4px 4px 4px; margin: 0; }
.sm-loccard__coords p { font-size: var(--sm-fs-split-sub); font-weight: 600; letter-spacing: 1px; line-height: 1.2; color: #B2BFD1; opacity: .9; margin: 0; white-space: nowrap; text-box: trim-both cap alphabetic; }
.sm-loccard__locked { position: absolute; left: 77px; top: 387px; z-index: 2; font-size: var(--sm-fs-p2); font-weight: 600; letter-spacing: 2px; color: #69E0F5; margin: 0; white-space: nowrap; text-box: trim-both cap alphabetic; }
.sm-loccard__sp { flex: 1 1 auto; }

.sm-loccard > .sm-loccard__panel { margin-top: auto; }
.editor-styles-wrapper .sm-loccard .sm-loccard__panel { margin-top: auto !important; }
.sm-loccard__panel { position: relative; z-index: 2; width: 100%; background: rgba(0,0,0,.15); border: 1px solid rgba(255,255,255,.4); padding: 20px; display: flex; flex-direction: column; gap: 24px; backdrop-filter: blur(7.90px); }
.sm-loccard__title { font-size: var(--sm-fs-h5); font-weight: 600; line-height: var(--sm-lh-h5); color: #fff; margin: 0; text-transform: none; }
.sm-loccard__body { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); color: #E9E9E9; margin: 0; text-box: trim-both cap alphabetic; }
.sm-locs hr.wp-block-separator.sm-divider { border-top-color: rgba(255,255,255,.2); }
@media (max-width: 1280px) { .sm-locs__row { flex-wrap: wrap; } .sm-loccard{width: calc(50% - 12px); flex: none;} }
@media (max-width: 900px){ .sm-loccard{width: 100%;} }


.sm-depts { display: flex; flex-direction: column; gap: 21px; }
.sm-depts__row { display: flex; gap: 20px; }
.sm-dept { position: relative; width: 236px; height: 38px; display: flex; align-items: center; gap: 12px; padding: 0 12px; background: linear-gradient(198deg, rgba(22,31,45,.2) 0%, rgba(22,31,45,.04) 100%); --bw: 20px; }
.sm-dept__label { font-size: var(--sm-fs-nav-link); font-weight: 600; line-height: var(--sm-lh-nav-link); color: #fff; margin: 0; white-space: nowrap; }
.sm-dept__div { width: 1px; height: 22px; background: rgba(255,255,255,.5); flex: 0 0 1px; }
.sm-dept__val { font-size: var(--sm-fs-tagline); line-height: var(--sm-lh-tagline); color: #E4E4E4; opacity: .6; margin: 0; white-space: nowrap; }
/* Anchored to the CONTAINER's right edge, not to a magic offset from the viewport
   centre. `left: calc(50% + 117px)` put the form's right edge at 50% + 624px,
   which coincides with the container edge only at exactly 1440px — at every
   width between 1281 and 1439 the form hung past the gutter and the page read
   as off-centre. max() clamps it to the gutter once the viewport is narrower
   than the full container. Same pattern as .sm-hub__explore. */
.sm-cform { position: absolute; top: 196px; left: auto; right: max(calc(50% - 624px), var(--sm-gutter)); width: 507px; z-index: 3; background: rgba(0,0,0,.15); border: 1px solid rgba(233,233,233,.12); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); padding: 48px 36px; display: flex; flex-direction: column; gap: 40px; align-items: flex-end; }
.sm-cform__rows { display: flex; flex-direction: column; gap: 40px; width: 100%; }
.sm-cform__row { display: flex; gap: 20px; width: 100%; }
.sm-cform__field { display: flex; flex-direction: column; gap: 8px; flex: 1 1 0; min-width: 0; }
.sm-cform__label { font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); color: #fff; margin: 0; text-box: trim-both cap alphabetic; }
.sm-cform__field .sm-field__input { height: 44px; background: transparent; border: 1px solid #fff; border-radius: 0; color: #fff; font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); padding: 8px 16px; }
.sm-cform__field .sm-field__input::placeholder { color: rgba(255,255,255,.7); }
.sm-cform__field .sm-field__area { height: 98px; min-height: 98px; resize: vertical; }
.sm-cform__hint { font-size: var(--sm-fs-tagline); line-height: var(--sm-lh-tagline); color: #fff; opacity: .6; margin: 0; text-box: trim-both cap alphabetic; }

.sm-cform__consent { font-size: var(--sm-fs-small); line-height: 1.43; color: #fff; opacity: .8; margin: -16px 0 0; width: 100%; }
.sm-cform__consent a { color: #fff; text-decoration: underline; }
.sm-cform__submit { position: relative; width: 156px; height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: .2px solid #fff; border-radius: 2px; cursor: pointer; font-size: var(--sm-fs-nav-link); font-weight: 600; line-height: var(--sm-lh-nav-link); color: #fff; font-family: inherit; background: linear-gradient(180deg, rgba(0,233,108,.54) 0%, rgba(0,161,225,.36) 100%); box-shadow: inset 0 0 22px rgba(0,161,225,.6); --bw: 27px; --bracket: var(--sm-hyperion); --sm-bracket-hover: #FFFFFF; }
.sm-cform__submit img { width: 16px; height: 16px; display: block; }
@media (max-width: 1280px) {
  .sm-cform { position: relative; left: 0; right: auto; top: 0; margin: 48px auto 0; max-width: 507px; width: 100%; }
}


.sm-statement2 { position: relative; padding: 88px 0 100px; background: rgba(0,0,0,.15); }
.sm-statement2__mid { width: 928px; max-width: 100%; margin: 0 auto; text-align: center; }
.sm-statement2__lead { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #E9E9E9; margin: 0; }
.sm-statement2__title { font-size: var(--sm-fs-h2-small); line-height: var(--sm-lh-h2-small); font-weight: 700; color: #fff; text-transform: none; }

.sm-statement2 .sm-statement2__title { margin: 28px 0 0; }
.sm-statement2::before, .sm-statement2::after { content: ""; position: absolute; top: 206px; width: 256px; height: 1px; background: rgba(255,255,255,.2); pointer-events: none; }
.sm-statement2::before { left: 0; }
.sm-statement2::after { right: 0; }


.sm-jobs { position: relative; padding: 88px 0 100px; }
.sm-jobs .sm-section__inner > .sm-jobs__filters,
.sm-jobs .sm-section__inner > .sm-jobs__count,
.sm-jobs .sm-section__inner > .sm-jobs__table,
.sm-jobs .sm-section__inner > .sm-jobs__note { margin-top: 32px; }
.sm-jobs__filters { display: flex; gap: 20px; width: 100%; }
.sm-jobs__filter { display: flex; flex-direction: column; gap: 3px; width: 280px; flex: 0 0 280px; }
.sm-jobs__filter--search { flex: 1 1 auto; width: auto; }
.sm-jobs__flabel { font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); color: #E9E9E9; margin: 0; }
.sm-jobs__field { position: relative; height: 44px; border: 1px solid #E9E9E9; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 16px; background: transparent; }
.sm-jobs__field select, .sm-jobs__field input { appearance: none; -webkit-appearance: none; background: transparent; border: 0; color: #E9E9E9; font: inherit; font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); width: 100%; padding: 0; outline: none; }
.sm-jobs__field input::placeholder { color: rgba(233,233,233,.7); }
.sm-jobs__field select option { color: #0E1722; }
.sm-jobs__field svg { flex: 0 0 16px; width: 16px; height: 16px; display: block; }
.sm-jobs__count { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: #fff; margin: 0; text-transform: none; }
.sm-jobs__table { width: 100%; }
.sm-jobs__thead { display: flex; align-items: center; background: #161F2D; border: 1px solid rgba(38,47,63,.2); padding: 12px 20px; }
.sm-jobs__thead p { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: #E9E9E9; margin: 0; padding: 12px 0; }

.sm-jobs__row { display: flex; align-items: center; background: rgba(0,0,0,.15); border: 1px solid rgba(233,233,233,.2); border-top: 0; padding: 23px 20px 24px; }
/* careers.js filters by toggling [hidden], and `display:flex` above beats the UA
   sheet's `[hidden]{display:none}` — without this the attribute lands but the row
   keeps rendering, so the count changes while the table visibly does not filter. */
.sm-jobs__row[hidden] { display: none; }
.sm-jobs__c1 { width: 345px; flex: 0 0 345px; min-width: 0; }
.sm-jobs__c2, .sm-jobs__c3, .sm-jobs__c4 { width: 220px; flex: 0 0 220px; display: flex; justify-content: center; }
.sm-jobs__c5 { flex: 1 1 auto; display: flex; justify-content: center; }
.sm-jobs__pos { font-size: var(--sm-fs-body); font-weight: 700; line-height: var(--sm-lh-body); color: #fff; margin: 0; padding: 12px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-transform: none; }
.sm-jobs__val { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #fff; margin: 0; padding: 12px 0; white-space: nowrap; }
.sm-jobs__pill { width: 195px; height: 33px; display: inline-flex; align-items: center; justify-content: center; background: rgba(0,0,0,.15); border-radius: 2px; font-size: var(--sm-fs-split-sub); line-height: 20px; color: #fff; margin: 0; white-space: nowrap; }
.sm-jobs__btn { margin: 0; }
/* View Role — Figma 488:7919. NOT a gradient button: a flat Neutral/Dark-80% chip
   with black 24px brackets, sized 95x44. `min-width` has to be zeroed because the
   base .sm-btn floors every button at 177px, which silently won this rule (min-width
   beats width) and stretched the chip to 177. Border is 1px @ .2 alpha rather than
   the design's .2px solid white — same rendered hairline, no subpixel rounding. */
.sm-jobs__btn .sm-btn { width: 95px; min-width: 0; height: 44px; padding: 12px 16px; gap: 16px; font-size: var( --sm-fs-split-sub); font-weight: 600; line-height: 20px; border: 1px solid rgba(255,255,255,.2); border-radius: 2px; color: #fff; text-transform: capitalize;
  background: rgba(38,47,63,.8); box-shadow: inset 0 0 22px rgba(177,177,177,.1); --bw: 24px; display: flex;
  /* Black at rest per the design; the expanding hover frame goes white, since black
     stretched across the dark fill at 50% opacity would read as nothing. */
  --bracket: #000; --sm-bracket-hover: #FFFFFF; }
.sm-jobs__note { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: rgba(255,255,255,.8); margin: 0; }
/* Statement + jobs board on a light band (master Careers matches the main site). */
.sm-statement2.is-light::before, .sm-statement2.is-light::after { background: rgba(38,47,63,.18); }
.sm-statement2.is-light .sm-statement2__lead { color: var(--sm-ink-soft); }
.sm-statement2.is-light .sm-statement2__title { color: var(--sm-ink); }
.sm-section.is-light .sm-jobs__flabel { color: var(--sm-ink-soft); }
.sm-section.is-light .sm-jobs__field { border-color: rgba(38,47,63,.35); }
.sm-section.is-light .sm-jobs__field select, .sm-section.is-light .sm-jobs__field input { color: var(--sm-ink); }
.sm-section.is-light .sm-jobs__field input::placeholder { color: rgba(38,47,63,.55); }
.sm-section.is-light .sm-jobs__count { color: var(--sm-ink); }
.sm-section.is-light .sm-jobs__thead { background: #EFF2F6; border-color: rgba(38,47,63,.15); }
.sm-section.is-light .sm-jobs__thead p { color: var(--sm-ink); }
.sm-section.is-light .sm-jobs__row { background: #FBFBFB; border-color: rgba(38,47,63,.15); }
.sm-section.is-light .sm-jobs__pos, .sm-section.is-light .sm-jobs__val { color: var(--sm-ink); }
.sm-section.is-light .sm-jobs__pill { background: rgba(38,47,63,.08); color: var(--sm-ink); }
.sm-section.is-light .sm-jobs__note { color: var(--sm-ink-soft); }
@media(max-width:1280px){
  .sm-afilter{flex-wrap: wrap;}
  .sm-jobs__filters{flex-wrap: wrap;}
  .sm-jobs__table { overflow-x: auto; }
}
@media (max-width: 1100px) {
  .sm-jobs__filters { flex-wrap: wrap; }
  .sm-jobs__thead, .sm-jobs__row { min-width: 1000px; }
}


.sm-articles { position: relative; background: #081220; padding: 120px 0; }
.sm-articles .sm-gridfx { --gcw: 96px !important; --gch: 96px !important; }
.sm-articles > .sm-container { position: relative; z-index: 1; }
.sm-articles .sm-section__inner > .sm-afilter { margin-top: 24px; }
.sm-articles .sm-section__inner > .sm-npv__grid { margin-top: 24px; }
.sm-articles .sm-section__inner > .sm-pgn { margin-top: 24px; }
.sm-afilter { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; width: 100%; }
.sm-afilter__chips { display: flex; gap: 12px; align-items: center; }
.sm-achip { height: 43px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid rgba(233,233,233,.2); border-radius: 2px; font-size: var(--sm-fs-p2); color: #E9E9E9; background: transparent; margin: 0; text-decoration: none; }
.sm-achip--active { background: #fff; color: #0E1722; border-color: #fff; font-weight: 600; }

a.sm-achip { color: #E9E9E9; }
a.sm-achip--active { color: #0E1722; }
.sm-afilter__right { display: flex; gap: 16px; }
.sm-afilter__right .sm-jobs__filter { width: 112px; flex: 0 0 112px; }
.sm-afilter__right .sm-jobs__filter--search { width: 264px; flex: 0 0 264px; }
.sm-npv__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; width: 100%; }
.sm-npv__gridrow { display: flex; gap: 24px; }

.sm-npvfeature--grid {min-height: 575px; }
.sm-npvfeature--grid .sm-npvfeature__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(226.91deg, rgba(19,28,42,0) 58.89%, rgba(19,28,42,.7) 78.29%, #131C2A 99.52%); }
.sm-npvfeature--grid .sm-npvfeature__ov { height: 235px; background: linear-gradient(180deg, rgba(8,18,32,0) 22.3%, #081220 88.2%); }
.sm-npvfeature--grid figure.sm-npvfeature__img::after { height: 100%; background: linear-gradient(180deg, rgba(8,18,32,0) 22.3%, #081220 88.2%); }
.sm-npvfeature--grid .sm-npvfeature__dots { width: 80px; height: 80px; }
.sm-npvfeature--grid .sm-npvfeature__panel { background: rgba(0,0,0,.15); }
.sm-npvfeature__meta { display: flex; gap: 12px; align-items: center; width: 100%; }
.sm-npvfeature__meta .sm-npvcard__date { margin-left: auto; }

.sm-npvfeature--wide { flex: 0 0 776px; width: 776px; min-height: 430px; }
.sm-npvfeature--wide .sm-npvfeature__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(226.91deg, rgba(19,28,42,0) 58.89%, rgba(19,28,42,.7) 78.29%, #131C2A 99.52%); }
.sm-npvfeature--wide .sm-npvfeature__panel { background: rgba(0,0,0,.15); }

.sm-spot { padding: 120px 0; }
.sm-spot .sm-section__inner > .sm-spot__row { margin-top: 40px; }
.sm-spot__row { display: flex; gap: 24px; align-items: flex-start; }
.sm-spot__side { flex: 1 1 auto; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.sm-spot__sidetitle { font-size: var(--sm-fs-h3); line-height: var(--sm-lh-h3); font-weight: 700; color: #E9E9E9; margin: 0 0 8px; text-transform: none; text-box: trim-both cap alphabetic; }
.sm-newsmini { display: flex; gap: 16px; height: 112px; background: rgba(0,0,0,.15); border: 1px solid rgba(233,233,233,.2); width: 100%; }
.sm-newsmini__img { width: 112px; height: 110px; flex: 0 0 112px; margin: 0; }
.sm-newsmini__img img { width: 112px; height: 110px; object-fit: cover; display: block; }
.sm-newsmini__c { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 8px; justify-content: center; padding: 12px 12px 12px 0; }
.sm-newsmini__tags { display: flex; gap: 8px; }
.sm-newsmini__title { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: #E9E9E9; margin: 0; text-transform: none; padding-left: 12px;}

.sm-pgn { display: flex; gap: 12px; align-items: center; justify-content: center; width: 100%; }
.sm-pgn a, .sm-pgn > span { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 33px; min-width: 40px; border-radius: 2px; font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); color: #fff; text-decoration: none; }
.sm-pgn .sm-pgn__nav { height: 40px; padding: 0 12px; }
.sm-pgn .sm-pgn__cur { background: linear-gradient(90deg, #00A1E1 0%, #00E96C 100%); }
.sm-pgn svg { width: 14px; height: 14px; display: block; }

.sm-achip { transition: background-color .28s var(--sm-ease), color .28s var(--sm-ease), border-color .28s var(--sm-ease); }
a.sm-achip:hover:not(.sm-achip--active) { background: rgba(255,255,255,.08); border-color: rgba(233,233,233,.45); }
.sm-pgn a { transition: background-color .28s var(--sm-ease); }
.sm-pgn a:hover { background: rgba(255,255,255,.08); }

.sm-pgn.wp-block-query-pagination { gap: 12px; justify-content: center; width: 100%; margin-top: 40px; }
.sm-pgn .wp-block-query-pagination-numbers { display: inline-flex; gap: 12px; margin: 0; }
.sm-pgn .page-numbers { display: inline-flex; align-items: center; justify-content: center; height: 33px; min-width: 40px; border-radius: 2px; font-size: var(--sm-fs-split-sub); line-height: 20px; color: #fff; text-decoration: none; }
.sm-pgn .page-numbers.current { background: linear-gradient(90deg, #00A1E1 0%, #00E96C 100%); }
.sm-pgn .page-numbers.dots { min-width: 20px; }
.sm-pgn .wp-block-query-pagination-previous, .sm-pgn .wp-block-query-pagination-next { height: 40px; padding: 0 12px; display: inline-flex; align-items: center; gap: 8px; font-size: var(--sm-fs-split-sub); color: #fff; text-decoration: none; border-radius: 2px; }
@media (max-width: 1280px) { .sm-npv__gridrow { flex-wrap: wrap; } .sm-npvfeature--wide { flex: 1 1 auto; width: auto; } .sm-spot__row { flex-direction: column; } .sm-npv__grid { grid-template-columns: repeat(2, 1fr);} }
@media (max-width: 781px) { .sm-npv__grid { grid-template-columns: repeat(1, 1fr);} }


.sm-related { padding: 88px 0 100px; }
.sm-related .sm-section__inner > .sm-npv__gridrow { margin-top: 24px; }
.sm-related .sm-section__inner > .sm-pgn { margin-top: 24px; }


.sm-inq { position: relative; padding: 88px 0 100px; overflow: clip; }
.sm-inq::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0,0,0,.2), rgba(0,0,0,.2)),
    radial-gradient(900px 451px at 50% 100%,
      rgba(0,161,225,.2) 0%, rgba(6,129,180,.2) 25%, rgba(11,96,135,.2) 50%,
      rgba(17,64,90,.2) 75%, rgba(19,47,68,.2) 87.5%, rgba(22,31,45,.2) 100%); }
.sm-inq > .sm-container { position: relative; z-index: 1; }
.sm-inq__row { display: flex; gap: 24px; }
.sm-inqcard { position: relative;flex-direction: column;flex: 1;min-width: 0;height: 498px;border: 1px solid rgba(233, 233, 233, .2);display: flex;justify-content: space-between; padding: 40px;}
.sm-inqcardtop, .sm-inqcardbody{display: flex; flex-direction: column;position: relative; gap: 32px;}
.sm-inqcard .sm-eyebrow { position: relative; left: 0px; }
.sm-inqcard::before, .sm-inqcard::after { content: ""; position: absolute; top: 58px; height: 1px; background: rgba(255,255,255,.2); pointer-events: none; }
.sm-inqcard::before { left: 0; width: 27px; }
.sm-inqcard::after { left: 231px; width: 340px; }
.sm-inqcard__dots { position: relative; width: 38px; height: 38px; margin: 0; }
.sm-inqcardbody {position: relative; display: flex; flex-direction: column;}
.sm-inqcard__title { width: 100%; font-size: var(--sm-fs-h2-small); line-height: var(--sm-lh-h2); font-weight: 700; color: #fff; margin: 0; text-transform: none; text-box: trim-both cap alphabetic; }
.sm-inqcard__rule { width: 100%; height: 1px; background: rgba(255,255,255,.2); }
.sm-inqcard__cta { width: 100%; margin: 0; }

.sm-btn--teal { background: linear-gradient(180deg, rgba(0,233,108,.54) 0%, rgba(0,161,225,.36) 100%); box-shadow: inset 0 0 22px rgba(0,161,225,.6); border: .2px solid #fff; color: #fff; --bracket: var(--sm-hyperion); --sm-bracket-hover: #FFFFFF; }
.sm-btn--teal img, .sm-btn--teal svg { width: 16px; height: 16px; display: block; }

/* ==== FAQ ==== */

.sm-faq { background: #081220; padding-block: 100px; border-bottom: 1px solid rgba(233,233,233,.3); overflow-anchor: none; }
.sm-faq * { overflow-anchor: none; }
.sm-faq .sm-section__inner > .sm-faq__title { margin-top: 32px; text-align: center; font-size: var(--sm-fs-h2); line-height: 58px; }
.sm-faq .sm-section__inner > .sm-faq__cols { margin-top: 32px; }
.sm-faq__cols { display: flex; gap: 60px; align-items: flex-start; width: 100%; }
.sm-faq__tabs { flex: 0 0 403px; width: 403px; border-top: 1.4px solid rgba(255,255,255,.2); padding: 32px 20px 0; display: flex; flex-direction: column; gap: 12px; margin: 0; }
.sm-faq__tabs .wp-block-button { margin: 0; width: 100%; }
.sm-faq__tabs .wp-block-button__link { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 64px; padding: 18px 8px; background: transparent; border: 0; border-radius: 2px; color: #fff; font-size: var(--sm-fs-body); font-weight: 400; line-height: var(--sm-lh-h6); text-align: left; text-decoration: none; box-sizing: border-box; cursor: pointer;
  transition: background-color .28s var(--sm-ease), font-weight 0s; }
.sm-faq__tabs .wp-block-button__link::after { content: ""; width: 15px; height: 15px; flex: 0 0 15px; margin-right: 5px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 15' fill='none'%3E%3Cpath d='M1.06 13.06L7.06 7.06 1.06 1.06' stroke='white' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='round'/%3E%3C/svg%3E") center / 8px 13px no-repeat; }
.sm-faq__tabs .wp-block-button__link:hover { background: rgba(0,0,0,.3); }

.sm-faq__tabs .wp-block-button.is-active > .wp-block-button__link { background: rgba(0,0,0,.6); color: #fff; font-weight: 600; }

.sm-faq__panels { flex: 1 1 auto; min-width: 0; min-height: 500px; position: relative; }

.sm-faq--measure .sm-faq__item::details-content { transition: none; }
.sm-faq__panel--measure { display: flex !important; position: absolute; left: 0; right: 0; top: 0; visibility: hidden; pointer-events: none; }
.sm-faq__panel { display: none; flex-direction: column; gap: 16px; }
.sm-faq__panel.is-active { display: flex; }
details.sm-faq__item { background: rgba(0,0,0,.15); border: 1px solid rgba(233,233,233,.2); border-radius: 2px; padding: 20px; transition: border-color .28s var(--sm-ease); }
details.sm-faq__item:hover { border-color: rgba(233,233,233,.4); }

.sm-faq__panel { interpolate-size: allow-keywords; }
.sm-faq__item::details-content { block-size: 0; overflow: clip;
  transition: block-size .32s var(--sm-ease), content-visibility .32s allow-discrete; }
.sm-faq__item[open]::details-content { block-size: auto; }
.sm-faq__item > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; cursor: pointer; list-style: none; color: #fff; font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); border-bottom: 1px solid transparent;
  transition: padding-bottom .32s var(--sm-ease), border-bottom-color .32s var(--sm-ease); }
.sm-faq__item > summary::-webkit-details-marker { display: none; }

.sm-faq__item > summary::after { content: ""; width: 20px; height: 20px; flex: 0 0 20px; border: 1.5px solid #fff; border-radius: 3px; transition: border-color .28s var(--sm-ease);
  background: linear-gradient(#fff, #fff) center / 8px 1.5px no-repeat, linear-gradient(#fff, #fff) center / 1.5px 8px no-repeat; }
details[open].sm-faq__item > summary { padding-bottom: 16px; border-bottom-color: rgba(255,255,255,.5); }
details[open].sm-faq__item > summary::after { border-color: var(--sm-accent);
  background: linear-gradient(var(--sm-accent), var(--sm-accent)) center / 8px 1.5px no-repeat; }

.sm-faq .sm-faq__item > :not(summary) { color: #E9E9E9; opacity: .6; font-size: var(--sm-fs-split-sub); line-height: 20px; margin: 16px 0 0; }
details[open].sm-faq__item > :not(summary) { animation: sm-faq-reveal .32s var(--sm-ease); }
@keyframes sm-faq-reveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: .6; transform: none; } }
@media (max-width: 1100px) { .sm-faq__cols { flex-direction: column; gap: 32px; } .sm-faq__tabs { width: 100%; flex-basis: auto; } .sm-faq__panels { min-height: 0; } }
@media (max-width: 1100px) { .sm-inq__row { flex-direction: column; } .sm-inqcard { height: auto; min-height: 420px; } }


.sm-article { position: relative; padding: 216px 0 100px; background: #081220; overflow: clip; }

.sm-article::before { content: ""; position: absolute; left: 50%; top: -554px; width: 1108px; height: 1108px; transform: translateX(-50%); border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(var(--sm-accent-rgb), .26) 0%, rgba(var(--sm-accent-rgb), .10) 55%, rgba(8,18,32,0) 100%); }

.sm-article::after { content: ""; position: absolute; left: 50%; bottom: -554px; width: 1108px; height: 1108px; transform: translateX(-50%); border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(var(--sm-accent-rgb), .22) 0%, rgba(var(--sm-accent-rgb), .08) 55%, rgba(8,18,32,0) 100%); }
.sm-article > .sm-container { position: relative; z-index: 1; }
.sm-article__back { margin: 0; }

.sm-article__back .sm-btn { height: 44px; font-size: var(--sm-fs-nav-link); font-weight: 600; padding: 0; text-transform: none; }
.sm-article__back .sm-btn > .wp-block-button__link { padding: 12px 20px 12px 16px; gap: 12px; }
.sm-article__back .sm-btn > .wp-block-button__link::before { content: ""; width: 14px; height: 14px; flex: 0 0 14px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M8.5 3.5L5 7l3.5 3.5' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.sm-article__col { width: 832px; max-width: 100%; margin: 0 auto; display: flex; flex-direction: column; }
.sm-article .sm-article__col { margin-top: 32px; }
.sm-article__header { display: flex; flex-direction: column; gap: 40px; align-items: center; width: 100%; }
.sm-article__title { font-size: var(--sm-fs-h1-small); line-height: var(--sm-lh-h1-small); font-weight: 700; color: #fff; margin: 0; text-align: center; text-transform: none; width: 100%; }
.sm-article__lead { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); color: #E9E9E9; opacity: .9; margin: 0; width: 100%; text-box: trim-both cap alphabetic; }
.sm-article__hero { width: 100%; height: 400px; border-radius: 4px; overflow: clip; margin: 0; }
.sm-article__hero img { width: 100%; height: 400px; object-fit: cover; display: block; border-radius: 4px; }
.sm-article__meta { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.sm-article__meta .sm-npv__tags { gap: 12px; }
.sm-article__share { display: flex; gap: 16px; align-items: center; }
.sm-article__share p { font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); color: #E9E9E9; opacity: .7; margin: 0; text-box: trim-both cap alphabetic; }
.sm-article__share a { display: inline-flex; width: 18px; height: 18px; color: #fff; }
.sm-article__share svg { width: 18px; height: 18px; display: block; }
.sm-article__body { display: flex; flex-direction: column; gap: 40px; width: 100%; }
.sm-article .sm-article__body { margin-top: 80px; }
.sm-article__section { display: flex; flex-direction: column; gap: 24px; width: 100%; }
.sm-article__h { font-size: var(--sm-fs-h5); font-weight: 600; line-height: var(--sm-lh-h5); color: #fff; margin: 0; text-transform: none; text-box: trim-both cap alphabetic; }
.sm-article__p { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); color: #E9E9E9; opacity: .92; margin: 0; text-box: trim-both cap alphabetic; }
ul.sm-article__bullets { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.sm-article__bullets li { position: relative; padding-left: 25px; font-size: var(--sm-fs-p2); line-height: 1.5; color: #E9E9E9; opacity: .92; text-box: trim-both cap alphabetic; min-height: 15px; }
.sm-article__bullets li::before { content: ""; position: absolute; left: 8px; top: 5px; width: 5px; height: 13px; background: linear-gradient(180deg, #00A1E1 0%, #00E96C 100%); }
.sm-article__img { width: 100%; height: 555px; border-radius: 4px; overflow: clip; margin: 0; }
.sm-article__img img { width: 100%; height: 555px; object-fit: cover; display: block; border-radius: 4px; }
.sm-article hr.wp-block-separator.sm-divider { border-top-color: rgba(255,255,255,.2); }
@media (max-width: 900px) { .sm-article { padding-top: 160px; } .sm-article__title { font-size: clamp(36px, 8vw, 56px); } .sm-article__img, .sm-article__img img { height: auto; } }



/* No glow here — Our Mission / Our Vision is the light band. The Theia bloom
   belongs to the Company Timeline (.sm-history), which is where the reference
   design puts it; it used to sit on this section by mistake (2026-08-01). */
.sm-found { position: relative; padding: 88px 0 100px; overflow: clip; }
.sm-found > .sm-container { position: relative; z-index: 1; }
.sm-found .sm-section__inner > .sm-found__row { margin-top: 32px; }
.sm-found__row { display: flex; gap: 28px; }
.sm-foundcard { flex: 1 1 0; min-width: 0; min-height: 403px; background: rgba(22,31,45,.28); border: 1px solid rgba(233,233,233,.2); padding: 40px; display: flex; flex-direction: column; gap: 24px; justify-content: center; }
.sm-foundcard__head { display: flex; gap: 20px; align-items: center; width: 100%; }
.sm-foundcard__dots { width: 40px; height: 40px; flex: 0 0 40px; margin: 0; }
.sm-foundcard__dots img { width: 40px; height: 40px; display: block; }
.sm-foundcard__title { font-size: var(--sm-fs-h2); line-height: var(--sm-lh-h2); font-weight: 700; color: #fff; margin: 0; text-transform: none; white-space: nowrap; }
.sm-foundcard__div { height: 1px; width: 100%; background: rgba(255,255,255,.8); opacity: .31; }
.sm-foundcard__body { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #fff; margin: 0; text-box: trim-both cap alphabetic; }
/* Foundation cards on a light band (master About mission matches the main site). */
.sm-section.is-light .sm-foundcard { background: rgba(38,47,63,.04); border-color: var(--card-border); }
.sm-section.is-light .sm-foundcard__title, .sm-section.is-light .sm-foundcard__body { color: var(--txt); }
@media (max-width: 980px) { .sm-found__row { flex-direction: column; } }


.sm-approach { position: relative; padding: 88px 0; }
.sm-approach .sm-gridfx { --gcw: 96px !important; --gch: 96px !important; }
.sm-approach > .sm-container { position: relative; z-index: 1; }
.sm-approach .sm-section__inner > .sm-approach__row { margin-top: 24px; }
.sm-approach__row { display: flex; align-items: stretch; width: 100%; }
.sm-approach__panel { position: relative; width: 610px; flex: 0 0 610px; min-height: 498px; overflow: clip; background: #05080F; }
.sm-approach__photo { position: absolute; inset: 0; margin: 0; }
.sm-approach__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.synmax .sm-approach__photo img { height: 100%; }

.sm-genhud { position: absolute; display: block; pointer-events: none; }
.sm-approach__panel .sm-genhud { left: 131px; top: 103px; width: 300px; opacity: .7; }
.sm-approach__coordtag { position: absolute; left: 480px; top: 30px; font-size: var(--sm-fs-split-track); font-weight: 600; letter-spacing: 1px; line-height: var(--sm-lh-split-track); text-transform: uppercase; color: #B2BFD1; margin: 0; }
.sm-approach__panel .sm-split__coords { left: 400px; top: 402px; }
.sm-approach__chip1 { position: absolute; left: 262px; top: 159px; }
.sm-approach__chip2 { position: absolute; left: 399px; top: 294px; }
.sm-approach__card { flex: 1 1 auto; min-width: 0; border: 1px solid rgba(233,233,233,.2); padding: 40px; display: flex; flex-direction: column; justify-content: center; }
.sm-approach__body { display: flex; flex-direction: column; gap: 24px; width: 100%; }
.sm-approach__head { display: flex; gap: 20px; align-items: center; width: 100%; }
.sm-approach__title { font-size: var(--sm-fs-h2-small); line-height: var(--sm-lh-h2); font-weight: 700; color: #fff; margin: 0; text-transform: none; }
.sm-approach__div { height: 1px; width: 100%; background: rgba(255,255,255,.14); }
.sm-approach__copy p { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #fff; margin: 0; }
@media (max-width: 1100px) { .sm-approach__row { flex-direction: column; } .sm-approach__panel { width: 100%; flex: 0 0 auto; } }


.sm-team { position: relative; padding: 88px 0 100px; }
.sm-team .sm-gridfx { --gcw: 96px !important; --gch: 96px !important; }
.sm-team > .sm-container { position: relative; z-index: 1; }
.sm-team .sm-section__inner > .sm-team__grid { margin-top: 32px; }
.sm-team__grid { display: flex; flex-direction: column; width: 100%; }
.sm-team__row { display: flex; width: 100%; }
.sm-biocard { position: relative; flex: 1 1 0; min-width: 0; height: 658px; border: 1px solid rgba(233,233,233,.2); border-radius: 2px; padding: 19px; display: flex; flex-direction: column; overflow: clip; }
.sm-biocard__media { position: absolute; inset: 19px; background: #161F2D; overflow: clip; }
.sm-biocard__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.synmax .sm-biocard__photo { height: 100%; }
.sm-biocard__cross { position: absolute; inset: 0; width: 100%; height: 100%; }
.sm-biocard__ovb { position: absolute; left: 0; right: 0; bottom: 0; height: 50%; background: linear-gradient(180deg, rgba(8,18,32,0) 22.29%, #081220 88.23%); opacity: .69; }
.sm-biocard__ovt { position: absolute; left: 0; right: 0; top: 0; height: 29%; background: linear-gradient(180deg, #081220 11.77%, rgba(8,18,32,0) 77.71%); opacity: .8; }
.sm-biocard__radar { position: absolute; left: 0; top: 0; width: 132px; height: 132px; }
.sm-biocard__view { position: absolute; right: 39px; top: 39px; width: 72px; height: 72px; border: 1px solid rgba(255,255,255,.25); display: flex; align-items: center; justify-content: center; z-index: 2; --bw: 24px; --bracket: #fff; }
.sm-biocard__view img { width: 24px; height: 24px; display: block; }
.sm-biocard__sp { flex: 1 1 auto; }

.sm-biocard > .sm-biocard__panel { margin-top: auto; }
.editor-styles-wrapper .sm-biocard .sm-biocard__panel { margin-top: auto !important; }
/* Bracket arm was 75px @ 50% white — 2.8x longer than any other bracket on the
   site (norm 20-27px) and the only translucent one, which is why the team cards
   read as a different device. 28px opaque matches both the house norm and the
   reference design (~29px arms on this same 378px panel). 2026-08-01. */
.sm-biocard__panel { position: relative; z-index: 2; width: 100%; padding: 40px 20px; display: flex; flex-direction: column; gap: 12px; background: linear-gradient(243.7deg, rgba(22, 31, 45, 0.2), rgba(22, 31, 45, 0.04)); border: 1px solid rgba(255,255,255,.14); --bw: 28px; --bracket: #FFFFFF; backdrop-filter: blur(7.90px); }
.sm-biocard__name { font-size: var(--sm-fs-h4); font-weight: 400; line-height: var(--sm-lh-h4); color: #fff; margin: 0; text-transform: none; white-space: nowrap; }
/* Bio cards take NOTHING from a light band (2026-08-01). Only the BAND is light —
   the card itself is always a dark portrait under the __ovb scrim, so every
   light-surface override misfired on it: --sm-slate brackets went invisible, ink
   names rendered near-black and unreadable (while __role, which never had the
   override, stayed light), and rgba(38,47,63,.04) washed the panel out. The
   reference keeps all three dark-card values on this same white band — panel
   gradient included. Board & Advisors now renders identically to the dark Team
   band; only the surrounding band differs. */
.sm-biocard__rule { height: 1px; width: 100%; background: rgba(255,255,255,.2); }
.sm-biocard__role { font-size: var(--sm-fs-body); font-weight: 300; line-height: var(--sm-lh-body); color: #E4E4E4; opacity: .6; margin: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.sm-biocard__dots { position: absolute; right: 24px; top: 24px; width: 40px; height: 40px; margin: 0; }
.sm-biocard__dots img { width: 100%; height: 100%; display: block; }

.sm-biocard--sm { height: 500px; }
.sm-biocard--sm .sm-biocard__radar { width: 95px; height: 95px; }
.sm-biocard--sm .sm-biocard__panel { padding: 24px 16px; }
.sm-biocard--sm .sm-biocard__name { font-size: var(--sm-fs-lead) }
.sm-biocard--sm .sm-biocard__role { font-size: var(--sm-fs-split-sub); }
.sm-biocard--sm .sm-biocard__dots { width: 32px; height: 32px; right: 16px; top: 16px; }
@media (max-width: 1100px) { .sm-team__row { flex-wrap: wrap; } .sm-biocard { flex: 1 1 300px; } }


.sm-history { position: relative; padding: 88px 0 100px; background: rgba(0,0,0,.15); overflow: clip; }
/* Centred Theia bloom behind the timeline — matches the reference design's
   radial-gradient(50% 50%, rgba(0,161,225,.28) -> rgba(22,31,45,.28)), smoothed
   with the house multi-stop ramp so the falloff doesn't band. */
.sm-history::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(50% 50% at 50% 50%,
    rgba(0,161,225,.28) 0%, rgba(6,129,180,.28) 25%, rgba(11,96,135,.28) 50%,
    rgba(17,64,90,.28) 75%, rgba(19,47,68,.28) 87.5%, rgba(22,31,45,.28) 100%); }
.sm-history .sm-gridfx { --gcw: 96px !important; --gch: 96px !important; }
.sm-history > .sm-container { position: relative; z-index: 1; }
.sm-history .sm-section__inner > .sm-tl { margin-top: 32px; }
.sm-tl { width: 728px; max-width: 100%; margin-inline: auto; display: flex; flex-direction: column; }
.sm-tl__title { font-size: var(--sm-fs-h2-small); font-weight: 700; line-height: var(--sm-lh-h2); color: #fff; text-align: center; margin: 0; text-transform: none; }
.sm-tl__list { position: relative; display: flex; flex-direction: column; width: 100%; }
.sm-tl .sm-tl__list { margin-top: 80px; }
.sm-tl__list::before { content: ""; position: absolute; left: 364px; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,.2); }
.sm-tl__item { position: relative; display: flex; justify-content: space-between; min-height: 96px; width: 100%; }
.sm-tl__item::after { content: ""; position: absolute; left: 360px; top: 18px; width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.sm-tl__l { width: 304px; text-align: right; }
.sm-tl__r { width: 304px; text-align: left; }
.sm-tl__year { font-size: var(--sm-fs-h2); font-weight: 700; line-height: 1.1; margin: 0; text-transform: none; }
.sm-tl__year--green { color: var(--sm-hyperion); }
.sm-tl__year--cyan { color: var(--sm-theia); }
.sm-tl__cap { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-p2); color: #E9E9E9; opacity: .8; margin: 5px 0 0; }
@media (max-width: 800px) { .sm-tl__l, .sm-tl__r { width: 44%; } .sm-tl__list::before { left: 50%; } .sm-tl__item::after { left: calc(50% - 4px); } }


html.sm-biomodal-open { overflow: hidden; }
/* Keyed to what bio-modal.js actually wired (it sets role="button"), not to
   .sm-team — a card shows the pointer iff it really opens a modal. */
.sm-biocard[role="button"] { cursor: pointer; }
/* Fade + lift in. display:none can't transition, so the modal stays display:flex
   and is taken out of play with visibility/opacity instead — @starting-style
   gives the open state something to animate FROM without needing a JS rAF. */
.sm-biomodal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: 24px;
  visibility: hidden; opacity: 0; pointer-events: none;
  transition: opacity .28s ease-out, visibility 0s linear .28s; }
.sm-biomodal.is-open { visibility: visible; opacity: 1; pointer-events: auto;
  transition: opacity .28s ease-out, visibility 0s linear 0s; }
.sm-biomodal__panel {
  transition: transform .34s var(--sm-ease, cubic-bezier(.22,1,.36,1)), opacity .34s ease-out; }
.sm-biomodal:not(.is-open) .sm-biomodal__panel { transform: translateY(12px) scale(.985); opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .sm-biomodal, .sm-biomodal__panel { transition: none; }
  .sm-biomodal:not(.is-open) .sm-biomodal__panel { transform: none; }
}
.sm-biomodal__backdrop { position: absolute; inset: 0; background: rgba(5,10,20,.82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.sm-biomodal__panel { position: relative; width: 994px; max-width: 100%; max-height: calc(100vh - 48px); overflow: auto; background: rgba(22,31,45,.8); border: 1px solid rgba(233,233,233,.12); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); padding: 60px; display: flex; flex-direction: column; gap: 32px; }
.sm-biomodal__band { position: relative; width: 100%; height: 343px; flex: 0 0 343px; background: #131C2A; overflow: clip; }
/* All of the band's decorative layers are <img>, so they have to out-specify
   `.synmax img { max-width:100%; height:auto }` (line 126, 0-1-1) — a bare
   .sm-biomodal__* class is 0-1-0 and LOSES, which silently collapsed the glow to
   873x150, the guides to 771x150 and the hud to 120x150. Element-qualifying ties
   the specificity and wins on source order (same convention as img.sm-genhud). */
img.sm-biomodal__tex { position: absolute; left: 0; top: 0; width: 100%; height: 762px; object-fit: cover; mix-blend-mode: plus-lighter; opacity: .12; }
.sm-biomodal__topfade { position: absolute; left: 0; right: 0; top: 0; height: 122px; background: linear-gradient(180deg, #161F2D 0%, rgba(22,31,45,0) 100%); }
img.sm-biomodal__glow { position: absolute; left: -291px; top: -299px; width: 1043px; height: 1191px; max-width: none; mix-blend-mode: plus-lighter; pointer-events: none; }
/* Also matched as img. — the pattern renders the cutout as a <figure> (unaffected
   by .synmax img) but the bio-modal deco emits a bare <img>, which would collapse. */
.sm-biomodal__cutout, img.sm-biomodal__cutout { position: absolute; left: 86px; top: -43px; width: 351px; height: 446px; max-width: none; object-fit: cover; object-position: top; }
.sm-biomodal__botscrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,28,42,0) 72%, rgba(19,28,42,.7) 85.6%, #131C2A 96.35%); }
.sm-biomodal__rscrim { position: absolute; right: 0; top: 0; bottom: 0; width: 374px; background: linear-gradient(90deg, rgba(19,28,42,0) 0%, #131C2A 83%); }
.sm-biomodal__shaft { position: absolute; background: #D9D9D9; pointer-events: none; }
.sm-biomodal__shaft--l { left: 0; top: 0; width: 94px; height: 205px; opacity: .04; }
.sm-biomodal__shaft--r { right: 0; top: 68px; width: 52px; height: 275px; opacity: .03; }
img.sm-biomodal__guides { position: absolute; left: 0; top: 0; width: 771px; height: 280px; max-width: none; }
img.sm-biomodal__hud { position: absolute; left: 0; top: 0; width: 120px; height: 117px; max-width: none; }

/* Design 256:1715: the plate is vertically CENTRED in the band (top 96.34 of
   343-150), its glass is .2 -> .04 at 218deg, and its brackets are 48px on the
   TOP-LEFT + BOTTOM-RIGHT corners — the same pair every other bracket uses. The
   old values (16px high, .04 -> .008, 50px on bottom-left + top-right with the
   right one pushed 52px OUTSIDE the plate) made the glass invisible and hung a
   stray arm in the band. Stroke follows the global --sm-stroke-bracket rather
   than a hardcoded 2.29px, which the "thinner corners" pass never reached. */
.sm-biomodal__plate { position: absolute; right: 54px; top: 50%; transform: translateY(-50%); width: 386px; padding: 28px; background: linear-gradient(218deg, rgba(22,31,45,.2) 0%, rgba(22,31,45,.04) 100%); display: flex; gap: 12px; align-items: flex-start; z-index: 2; }
.sm-biomodal__plate::before, .sm-biomodal__plate::after { content: ""; position: absolute; width: 48px; height: 48px; border: 0 solid rgba(255,255,255,.9); pointer-events: none; }
.sm-biomodal__plate::before { left: 0; top: 0; border-left-width: var(--sm-stroke-bracket); border-top-width: var(--sm-stroke-bracket); }
.sm-biomodal__plate::after { right: 0; bottom: 0; border-right-width: var(--sm-stroke-bracket); border-bottom-width: var(--sm-stroke-bracket); }
.sm-biomodal__ptext { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; min-width: 0; }
/* Desktop/H2 is Graphie Bold 40/46; the role is Graphie Regular 24/32 (the design
   wraps it in a SemiBold frame but the run itself is Regular). Both were 600. */
.sm-biomodal__name { font-size: 40px; line-height: 46px; font-weight: 700; color: #fff; margin: 0; text-transform: none; }
.sm-biomodal__namerule { height: 1px; width: 100%; background: rgba(255,255,255,.5); }
.sm-biomodal__role { font-size: 24px; line-height: 32px; font-weight: 400; color: #E4E4E4; opacity: .6; margin: 0; }
.sm-biomodal__platedots { width: 40px; height: 40px; flex: 0 0 40px; margin: 0; }
.sm-biomodal__platedots img { width: 40px; height: 40px; display: block; }

.sm-biomodal__biohead { position: relative; display: flex; gap: 12px; align-items: center; width: 100%; }
.sm-biomodal__biohead::before { content: ""; position: absolute; left: -60px; top: 50%; width: 48px; height: 1px; background: rgba(255,255,255,.12); }
.sm-biomodal__biohead::after { content: ""; flex: 1 1 auto; height: 1px; background: rgba(255,255,255,.12); }
.sm-biomodal__biotag { padding: 12px; border-radius: 2px; font-size: 12px; font-weight: 400; letter-spacing: 2.4px; line-height: 20px; text-transform: uppercase; color: #fff; margin: 0; }
.sm-biomodal__text { font-size: var(--sm-fs-body); line-height: 26px; color: #E9E9E9; margin: 0; text-box: trim-both cap alphabetic; }
.sm-biomodal__text strong { font-weight: 700; color: #E9E9E9; }

/* Design: 16px padding around a 24px glyph = 56 square, 22px brackets (was 52/20). */
.sm-biomodal__close { position: absolute; top: 0; right: 0; width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; padding: 16px; background: transparent; border: .2px solid #E9E9E9; color: #fff; cursor: pointer; z-index: 3; --bw: 22px; --bracket: #fff; }
.sm-biomodal__close svg { width: 24px; height: 24px; display: block; }
@media (max-width: 1100px) {
  .sm-biomodal__panel { padding: 32px; }
  .sm-biomodal__plate { right: 16px; width: min(386px, 60%); }
}

.editor-styles-wrapper .sm-biomodal { display: block; position: static; padding: 0; margin-top: 24px; }
.editor-styles-wrapper .sm-biomodal__backdrop { display: none; }
.editor-styles-wrapper .sm-biomodal__panel { width: auto; max-height: none; overflow: visible; }



.sm-btn--dim { background: rgba(0,0,0,.4); color: #fff; border: 0; box-shadow: none; }
.sm-btn--dim:hover { background: rgba(0,0,0,.55); }

.sm-btn--sm { height: 44px; font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); font-weight: 600; padding: 12px 16px; --bw: 25px; text-transform: none; }
.sm-btn--sm > .wp-block-button__link { padding: 12px 16px; }

.sm-btn--lg { height: 64px; font-size: var(--sm-fs-btn); line-height: var(--sm-lh-btn); padding: 18px 12px; gap: 16px; min-width: 200px; --bw: 32px; text-transform: none; }
.sm-btn--lg > .wp-block-button__link { padding: 18px 12px; }

.sm-btn--flat::before, .sm-btn--flat::after { display: none; }

/* ==== 14. REVAMP-2026 SHARED COMPONENTS (multi-brand) ==== */


.sm-genhero__bg { position: absolute; inset: 0; margin: 0; z-index: 0; }
.sm-genhero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.synmax .sm-genhero__bg img { height: 100%; }
.sm-subhero__scrim { position: absolute; inset: 0; z-index: 0; background:
	linear-gradient(180deg, rgba(8,18,32,0) 22.72%, #081220 96.64%),
	linear-gradient(223.41deg, rgba(8,18,32,0) 33.04%, #081220 100%); }

.sm-genhero__hud { width: 500px; height: auto; z-index: 1; opacity: .85; }

.sm-hero.sm-hero--article { min-height: 700px; }
.sm-hero--article .sm-hero__content { padding-top: 236px; padding-bottom: 105px; gap: 24px; }
.sm-hero--article .sm-hero__head { gap: 24px; }
.sm-hero--article .sm-hero__title { font-size: var(--sm-fs-h1-small); line-height: var(--sm-lh-h1-small); letter-spacing: 0; text-transform: none; width: 680px; max-width: 100%; background: none; -webkit-background-clip: initial; background-clip: initial; -webkit-text-fill-color: #E9E9E9; color: #E9E9E9; }
.sm-hero--article .sm-hero__rule { width: 623px; }
.sm-hero--article .sm-hero__bottom { flex-direction: column; align-items: flex-start; gap: 28px; }
.sm-hero--article .sm-hero__lead { font-size: var(--sm-fs-nav-link); line-height: var(--sm-lh-nav-link); width: 623px; color: #E9E9E9; }
.sm-hero--article .sm-hero__lead p { margin: 0; font: inherit; color: inherit; line-height: inherit; }
.sm-hero--article .sm-genhero__hud { left: calc(50% + 96px); top: 83px; }
@media (max-width: 1280px) { .sm-hero--article .sm-genhero__hud { display: none; } }
.sm-hero--article .sm-hero__ctas .sm-btn { height: 44px; min-width: 200px; font-size: var(--sm-fs-p2); padding: 8px 12px; --bw: 32px; }
.sm-hero__meta { display: flex; gap: 16px; align-items: center; }
.sm-hero__date { font-size: var(--sm-fs-p2); line-height: 1.2; color: #E9E9E9; opacity: .8; margin: 0; }

.sm-ntag2,
.sm-hero--article .wp-block-post-terms a { height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; min-width: 72px; background: rgba(0,0,0,.15); border: 1px solid rgba(255,255,255,.25); border-radius: 2px; font-size: var(--sm-fs-p2); line-height: 1.38; color: rgba(255,255,255,.8); text-decoration: none; margin: 0; }
.sm-hero--article .wp-block-post-terms { display: inline-flex; gap: 16px; margin: 0; font-size: var(--sm-fs-p2); }
.sm-hero--article .wp-block-post-terms .wp-block-post-terms__separator { display: none; }

.sm-reshero, .sm-reshero .wp-block-post-template, .sm-reshero .wp-block-post-template > li { display: contents; }


.sm-article__meta .wp-block-post-terms { display: inline-flex; gap: 12px; align-items: center; margin: 0; font-size: var(--sm-fs-p2); }
.sm-article__meta .wp-block-post-terms .wp-block-post-terms__separator { display: none; }
.sm-article__meta .wp-block-post-terms a { display: inline-flex; align-items: center; gap: 12px; height: 28px; padding: 0 12px; border-radius: 2px; font-size: var(--sm-fs-p2); line-height: 1; color: #fff; text-decoration: none; background: rgba(255,255,255,.08); }
.sm-article__meta .wp-block-post-terms a::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: 0 0 8px; }
.sm-article__meta .wp-block-post-date { margin: 0; }
.sm-article__body .wp-block-post-content { display: flex; flex-direction: column; gap: 24px; }
.sm-article__body .wp-block-post-content > h2 { font-size: var( --sm-fs-h5); font-weight: 600; line-height: 32px; color: #fff; margin: 16px 0 0; text-transform: none; }
.sm-article__body .wp-block-post-content > h3 { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: #fff; margin: 12px 0 0; text-transform: none; }
.sm-article__body .wp-block-post-content > p { font-size: var(--sm-fs-p2); line-height: 1.62; color: #E9E9E9; opacity: .92; margin: 0; }
.sm-article__body .wp-block-post-content > ul { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.sm-article__body .wp-block-post-content > ul li { position: relative; padding-left: 25px; font-size: var(--sm-fs-p2); line-height: 1.5; color: #E9E9E9; opacity: .92; }
.sm-article__body .wp-block-post-content > ul li::before { content: ""; position: absolute; left: 8px; top: 5px; width: 5px; height: 13px; background: linear-gradient(180deg, #00A1E1 0%, #00E96C 100%); }
.sm-article__body .wp-block-post-content > ol { margin: 0; padding-left: 24px; display: flex; flex-direction: column; gap: 12px; font-size: var(--sm-fs-p2); line-height: 1.5; color: #E9E9E9; opacity: .92; }
.sm-article__body .wp-block-post-content figure { margin: 16px 0 0; }
.sm-article__body .wp-block-post-content img { max-width: 100%; height: auto; border-radius: 4px; display: block; }
.sm-article__body .wp-block-post-content figcaption { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: rgba(233,233,233,.6); text-align: center; }
.sm-article__body .wp-block-post-content a:not(.wp-block-button__link) { color: #69E0F5; text-decoration: underline; text-underline-offset: 2px; }


.sm-related .wp-block-query { width: 100%; }
ul.sm-npv__gridrow { margin: 0; padding: 0; list-style: none; }
ul.sm-npv__gridrow > li { display: contents; }
ul.sm-npv__gridrow--wrap { flex-wrap: wrap; } /* redundant since the base rule wraps; kept for the patterns that still carry the class */
.sm-npvfeature__img a { display: block; width: 100%; height: 100%; }

:is(.sm-related, .sm-articles) .sm-npvfeature--grid::after { content: ""; position: absolute; right: 33px; top: 33px; width: 80px; height: 80px; z-index: 1;
  background: url("../icons/dotblock-80.svg") 0 0 / 80px 80px no-repeat; pointer-events: none; }
:is(.sm-related, .sm-articles, .sm-spot) .sm-npvfeature__panel { position: relative; z-index: 2; }

:is(.sm-related, .sm-articles, .sm-spot) .wp-block-post-terms { display: inline-flex; gap: 12px; align-items: center; margin: 0; font-size: var(--sm-fs-p2); }
:is(.sm-related, .sm-articles, .sm-spot) .wp-block-post-terms .wp-block-post-terms__separator { display: none; }
:is(.sm-related, .sm-articles, .sm-spot) .wp-block-post-terms a { display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border-radius: 2px; background: rgba(0,0,0,.15); color: #fff; opacity: .8; font-size: var(--sm-fs-tagline);; line-height: 1; text-decoration: none; }
.sm-npvfeature__meta .wp-block-post-date { margin-left: auto; }
.sm-npvfeature__title a { color: #fff !important; text-decoration: none; }
.sm-npvfeature__ex p { margin: 0; font-size: inherit; font-weight: 300; line-height: inherit; color: var(--txt-soft); }

.sm-npvfeature__cta .wp-block-read-more { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 44px; padding: 12px 16px; box-sizing: border-box; background: rgba(0,0,0,.4); border-radius: var(--sm-radius-sm); color: #fff; font-size: var(--sm-fs-split-sub); font-weight: 600; line-height: 1; text-decoration: none; --bw: 27px; }
.sm-npvfeature__cta .wp-block-read-more:hover { background: rgba(0,0,0,.55); }

.sm-spotq, .sm-spotq .wp-block-post-template, .sm-spotq .wp-block-post-template > li { display: contents; }
.sm-miniq, .sm-miniq .wp-block-post-template, .sm-miniq .wp-block-post-template > li { display: contents; }
.sm-newsmini__img a { display: block; width: 100%; height: 100%; }
.sm-newsmini__title a { color: #fff !important; text-decoration: none; }
.sm-newsmini__tags .wp-block-post-terms a { height: 30px; padding: 0 12px; font-size: var(--sm-fs-split-sub); }

.sm-articles .sm-section__inner > .wp-block-query { width: 100%; margin-top: 40px; }
.sm-resq__empty { color: #E9E9E9; opacity: .8; margin: 24px 0 0; font-size: var(--sm-fs-p2); }


.sm-resq { transition: opacity .28s var(--sm-ease); }
.sm-resq.is-loading { opacity: .35; pointer-events: none; }
.sm-afilter .sm-jobs__filter { position: relative; }
.sm-afilter .sm-jobs__field { cursor: pointer; transition: border-color .28s var(--sm-ease); }
.sm-afilter .sm-jobs__field:hover, .sm-afilter .sm-jobs__field:focus-within { border-color: #fff; }
.sm-afilter .sm-jobs__field svg { transition: transform .28s var(--sm-ease); }
.sm-afilter .sm-jobs__filter.is-open .sm-jobs__field svg { transform: rotate(180deg); }
.sm-resdrop { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 30; padding: 8px; margin: 0; list-style: none;
  background: rgba(11,19,30,.98); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; box-shadow: 0 24px 60px rgba(0,0,0,.5);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .22s var(--sm-ease), transform .22s var(--sm-ease), visibility 0s linear .22s; }
.sm-jobs__filter.is-open .sm-resdrop { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.sm-resdrop button { display: block; width: 100%; padding: 10px 12px; background: transparent; border: 0; border-radius: 4px; color: #E9E9E9; font: inherit; font-size: var(--sm-fs-small); text-align: left; cursor: pointer; transition: background-color .2s var(--sm-ease); }
.sm-resdrop button:hover { background: rgba(255,255,255,.08); }
.sm-resdrop button.is-current { color: #fff; background: rgba(255,255,255,.05); font-weight: 600; }


.sm-imgcard { position: relative; overflow: clip; background: #081220; }
.sm-imgcard > .sm-container { position: relative; }
.sm-imgcard__card { position: relative; display: flex; align-items: stretch; padding: 16px; }
.sm-section__inner > .sm-imgcard__card { margin-top: 40px; }

.sm-imgcard__card::before, .sm-imgcard__card::after { content: ""; position: absolute; left: 50%; margin-left: -50vw; width: 100vw; height: 1px; background: rgba(233,233,233,.2); pointer-events: none; }
.sm-imgcard__card::before { top: -1px; }
.sm-imgcard__card::after { bottom: -1px; }
.sm-imgcard > .sm-container::before, .sm-imgcard > .sm-container::after { content: ""; position: absolute; top: 78px; bottom: calc(-1 * var(--sm-section-py)); width: 1px; background: rgba(233,233,233,.2); pointer-events: none; }
.sm-imgcard > .sm-container::before { left: 0; }
.sm-imgcard > .sm-container::after { right: 0; }
.sm-imgcard__text { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 40px; border: 1px solid rgba(233,233,233,.2); }
.sm-imgcard__head { display: flex; gap: 20px; align-items: center; }
.sm-imgcard__head .sm-ic { flex: 0 0 44px; width: 44px; height: 44px; }
.sm-imgcard__head .sm-ic img { width: 44px; height: 44px; }
.sm-imgcard__title { font-size: clamp(24px,2.6vw,32px); line-height: 1.2; font-weight: 700; color: #fff; margin: 0; text-transform: none; }
.sm-imgcard__divider { height: 1px; background: rgba(233,233,233,.2); border: 0; margin: 0; }
.sm-imgcard__divider:not(.is-style-wide):not(.is-style-dots) { width: 100%; max-width: none; }
.sm-imgcard__body p { color: var(--sm-body-dark); font-size: var(--sm-fs-p2); font-weight: 300; line-height: 1.55; margin: 0; }
.sm-imgcard__body p + p { margin-top: 16px; }
.sm-imgcard__img { flex: 0 0 574px; position: relative; overflow: clip; min-height: 0; background: var(--sm-night); }
/* the media figure fills its column — photos always run full height of the card */
.sm-imgcard__img > figure { position: absolute; inset: 0; margin: 0; }
.sm-imgcard__img img { width: 100%; height: 100%; object-fit: cover; }
.sm-imgcard .sm-featcard__scrim { display: none; }
.sm-imgcard figure.sm-featcard__media::after { display: none; } 
@media (max-width:1100px){ .sm-imgcard__img { flex-basis: 44%; } }
@media (max-width:760px){ .sm-imgcard__card { flex-direction: column; } .sm-imgcard__img { flex-basis: auto; min-height: 260px; } }

html.sm-anim .sm-imgcard__card::before, html.sm-anim .sm-imgcard__card::after { transition: transform .8s var(--sm-ease) .18s; }
html.sm-anim .sm-imgcard > .sm-container::before, html.sm-anim .sm-imgcard > .sm-container::after { transform-origin: top center; transition: transform .8s var(--sm-ease) .32s; }
html.sm-anim:not(.sm-anim-off) .sm-imgcard:not(.is-in) .sm-imgcard__card::before,
html.sm-anim:not(.sm-anim-off) .sm-imgcard:not(.is-in) .sm-imgcard__card::after { transform: scaleX(0); }
html.sm-anim:not(.sm-anim-off) .sm-imgcard:not(.is-in) > .sm-container::before,
html.sm-anim:not(.sm-anim-off) .sm-imgcard:not(.is-in) > .sm-container::after { transform: scaleY(0); }


.sm-grid--5 { grid-template-columns: repeat(5, 1fr); }
@media (max-width:1100px){ .sm-grid--5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width:680px){ .sm-grid--5 { grid-template-columns: 1fr; } }
.sm-statband__row--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width:1100px){.sm-statband__row{display: flex; flex-wrap: wrap;} .sm-statband__cell {width: calc(50% - (24px / 2));}}
@media (max-width:760px){ .sm-statband__row--2 { grid-template-columns: 1fr; } }

/* ==== 14.7 News band — 3 horizontal cards + tall feature card ==== */
.sm-newsrow { display: grid; grid-template-columns: 763fr 461fr; gap: 24px; }
.sm-section__inner > .sm-newsrow { margin-top: 40px; }
.sm-newslist { display: flex; flex-direction: column; gap: 20px; }
.sm-newscard { display: grid; grid-template-columns: 184px 1fr; gap: 20px; border: 1px solid rgba(233,233,233,.2); background: rgba(0,0,0,.15); padding: 20px; min-height: 243px; }
.sm-newscard__img { position: relative; overflow: clip; min-height: 180px; background: var(--sm-night); }
.sm-newscard .sm-featcard__scrim { display: none; }
.sm-newscard__c { display: flex; flex-direction: column; position: relative; }
.sm-newscard__meta { display: flex; align-items: center; justify-content: space-between; }
.sm-newscard__date { font-size: var(--sm-fs-split-sub); color: rgba(233,233,233,.8); letter-spacing: 0; }
.sm-newscard__title { font-size: var( --sm-fs-h5); font-weight: 600; color: #fff; line-height: 32px; min-height: 64px; margin: 0; text-transform: none; }
.sm-newscard__rule { height: 1px; background: rgba(255,255,255,.5); border: 0; margin: 0; }
.sm-newscard__ex { font-size: var(--sm-fs-p2); font-weight: 300; color: var(--txt-soft); line-height: 22px; margin: 0; }
.sm-newscard__c > .sm-newscard__title { margin-top: 26px; }
.sm-newscard__c > .sm-newscard__rule { margin-top: 14px; }
.sm-newscard__c > .sm-newscard__bottom { margin-top: 14px; }
.sm-newscard__bottom { display: flex; align-items: flex-start; gap: 36px; }
.sm-newscard__bottom .sm-newscard__ex { flex: 1; margin: 0; }
.sm-newscard__cta { margin: 0; flex: 0 0 auto; }
.sm-newscard__cta .sm-btn, .sm-newsfeature__cta .sm-btn { height: 44px; --bw: 12px; background: rgba(0,0,0,.4); border: 0; box-shadow: none; }
.sm-newscard__cta .wp-block-button__link, .sm-newsfeature__cta .wp-block-button__link { font-size: var(--sm-fs-split-sub); padding: 0 18px; white-space: nowrap; }
.sm-newscard__img.sm-bracket { --bracket: rgba(255,255,255,.7); }
.sm-newscard__img.sm-bracket::before, .sm-newscard__img.sm-bracket::after { width: 22px; height: 22px; }
/* corner dot matrices — the SAME kit dot-block assets the master-brand news band uses */
.sm-newscard__dots { position: absolute; top: -8px; right: 54px; width: 56px; height: 56px; background: url("../icons/dotblock-56.svg") 0 0 / 56px 56px no-repeat; pointer-events: none; }
.sm-newsfeature__dots { position: absolute; top: 28px; right: 28px; width: 88px; height: 88px; background: url("../icons/dotblock-112.svg") 0 0 / 88px 88px no-repeat; pointer-events: none; z-index: 2; }
.sm-resources .sm-tag { border: 1px solid rgba(255,255,255,.2); padding: 6px 12px; border-radius: 4px; text-transform: none; letter-spacing: .2px; font-weight: 300; color: #fff; }
.sm-newsfeature { position: relative; overflow: clip; border: 1px solid rgba(233,233,233,.2); min-height: 600px; }
.sm-newsfeature .sm-featcard__scrim { display: block; }
.sm-newsfeature__tags { position: absolute; top: 40px; left: 40px; z-index: 2; display: flex; gap: 16px; }
.sm-newsfeature__panel { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; border: 1px solid rgba(255,255,255,.4); background: rgba(0,0,0,0); padding: 16px 16px 28px; display: flex; flex-direction: column; gap: 14px; }
.sm-newsfeature__title { font-size: var(--sm-fs-h6); font-weight: 600; color: #e9e9e9; line-height: var(--sm-lh-h6); margin: 0; text-transform: none; }
.sm-newsfeature__rule { height: 1px; background: rgba(255,255,255,.12); border: 0; margin: 0; }
.sm-newsfeature__ex { font-size: var(--sm-fs-split-sub); font-weight: 300; color: var(--txt-soft); line-height: 20px; margin: 0; }
.sm-newsfeature__cta { width: 100%; }
.sm-newsfeature__cta .sm-btn { width: 100%; }
@media (max-width:900px){ .sm-newsrow { grid-template-columns: 1fr; } .sm-newscard { grid-template-columns: 140px 1fr; } }
.sm-newshead { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; }
.sm-newshead__all { margin: 0; flex: 0 0 auto; order: 1; }
.sm-newshead__all .wp-block-button__link { font-size: var(--sm-fs-split-sub); padding: 13px 20px; }

/* ==== 14.8 Image HUD decorator — compose any pieces per image ==== */
/* Container class `sm-imghud` (the editor panel manages it) + ANY subset of pieces:
     sm-hud-ret    crosshair reticle (sm-hud-ret--left / --right shift it)
     sm-hud-grid   hairline gridlines crossing the frame
     sm-hud-cell   painted bottom-left grid cell
     sm-hud-cell2  right column tint (brings its own column line)
     sm-hud-dots   kit dot-matrix corner (sits opposite the reticle)
   Every layer is a custom-property slot defaulting to none, so pieces stack freely.
   The image block style "HUD overlay" = the classic grid + cell + reticle bundle. */
/* hero opt-out: hides the hero reticle/HUD image (toggle in the SynMax HUD panel) */
.sm-hero--no-hud .sm-hero__hud, .sm-hero--no-hud .sm-genhero__hud, .sm-hero--no-hud .sm-genhud { display: none; }
/* zero-specificity default: positioned components (featcard media etc.) keep their own positioning */
:where(.sm-imghud, .wp-block-image.is-style-hud) { position: relative; }
.sm-imghud.sm-imghud.sm-imghud::before, .wp-block-image.is-style-hud::before {
  content: ""; display: block; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background-image: var(--hud-cell, none), var(--hud-cell2, none), var(--hud-gv, none), var(--hud-gv2, none), var(--hud-gh, none), var(--hud-scrim, none);
  background-position: var(--hud-cell-pos, 0 100%), var(--hud-cell2-pos, 100% 0), var(--hud-gv-pos, 16% 0), var(--hud-gv2-pos, 84% 0), var(--hud-gh-pos, 0 76%), 0 0;
  background-size: 16% 24%, 16% 76%, 1px 100%, 1px 100%, 100% 1px, 100% 100%;
  background-repeat: no-repeat;
}
.sm-imghud.sm-imghud.sm-imghud::after, .wp-block-image.is-style-hud::after {
  content: ""; display: block; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background-image: var(--hud-ret, none), var(--hud-dots, none);
  background-position: var(--hud-ret-pos, 50% 44%), var(--hud-dots-pos, right 4% bottom 5%);
  background-size: auto min(72%, 356px), clamp(48px, 16%, 96px) auto;
  background-repeat: no-repeat;
  opacity: .95;
}
.sm-hud-ret { --hud-ret: url("../icons/hud-crosshair.svg"); }
.sm-hud-ret--left { --hud-ret-pos: 26% 42%; }
.sm-hud-ret--right { --hud-ret-pos: 76% 42%; --hud-dots-pos: left 4% bottom 5%; }
.sm-hud-ret--tl { --hud-ret-pos: 12% 12%; }
.sm-hud-ret--tr { --hud-ret-pos: 88% 12%; }
.sm-hud-ret--bl { --hud-ret-pos: 12% 88%; }
.sm-hud-ret--br { --hud-ret-pos: 88% 88%; }
.sm-hud-grid {
  --hud-gv: linear-gradient(rgba(228,228,228,.2), rgba(228,228,228,.2));
  --hud-gh: linear-gradient(rgba(228,228,228,.2), rgba(228,228,228,.2));
}
/* gridline intersection corner (standalone; a painted cell overrides — its variants sit later) */
.sm-hud-grid--tl { --hud-gv-pos: 16% 0; --hud-gh-pos: 0 24%; }
.sm-hud-grid--tr { --hud-gv-pos: 84% 0; --hud-gh-pos: 0 24%; }
.sm-hud-grid--br { --hud-gv-pos: 84% 0; --hud-gh-pos: 0 76%; }
.sm-hud-cell { --hud-cell: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }
/* cell corner variants — the gridlines follow the chosen cell so they stay its edges */
.sm-hud-cell--tl { --hud-cell-pos: 0 0; --hud-gv-pos: 16% 0; --hud-gh-pos: 0 24%; }
.sm-hud-cell--tr { --hud-cell-pos: 100% 0; --hud-gv-pos: 84% 0; --hud-gh-pos: 0 24%; }
.sm-hud-cell--br { --hud-cell-pos: 100% 100%; --hud-gv-pos: 84% 0; --hud-gh-pos: 0 76%; }
.sm-hud-cell2 {
  --hud-cell2: linear-gradient(rgba(255,255,255,.06), rgba(255,255,255,.06));
  --hud-gv2: linear-gradient(rgba(228,228,228,.2), rgba(228,228,228,.2));
}
.sm-hud-cell2--left { --hud-cell2-pos: 0 0; --hud-gv2-pos: 16% 0; }
.sm-hud-dots { --hud-dots: url("../icons/dotblock-96.svg"); }
/* explicit dots corner beats the reticle auto-flip (declared later) */
.sm-hud-dots--tl { --hud-dots-pos: left 4% top 5%; }
.sm-hud-dots--tr { --hud-dots-pos: right 4% top 5%; }
.sm-hud-dots--bl { --hud-dots-pos: left 4% bottom 5%; }
.sm-hud-dots--br { --hud-dots-pos: right 4% bottom 5%; }
/* the featcard caption fade, restorable when the HUD takes over a scrimmed figure */
.sm-hud-scrim { --hud-scrim: linear-gradient(180deg, rgba(8,18,32,.12) 28%, rgba(8,18,32,.94) 100%); }
.sm-hud-scrim--top { --hud-scrim: linear-gradient(0deg, rgba(8,18,32,.12) 28%, rgba(8,18,32,.94) 100%); }
.wp-block-image.is-style-hud {
  --hud-gv: linear-gradient(rgba(228,228,228,.2), rgba(228,228,228,.2));
  --hud-gh: linear-gradient(rgba(228,228,228,.2), rgba(228,228,228,.2));
  --hud-cell: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10));
  --hud-ret: url("../icons/hud-crosshair.svg");
}


/* ==== 14.9 SVG artwork is information, not decoration ==== */
/* Diagrams are authored at a fixed size; when a panel is wider or taller than
   the artwork, object-fit:cover silently crops the content (up to half of it).
   Fit these whole instead. Only images that would otherwise crop are listed —
   decorative grids/reticles that intentionally stretch are untouched. */
.synmax img[src$=".svg"]:is(.wp-block-cover__image-background, .sm-gap__photo, .sm-featcard__photo, .sm-hero__photo, .sm-prow__photo, .sm-hub__map, .sm-loccard__map, .sm-mega__img),
.synmax :is(figure.sm-featcard__media, figure.sm-prow__photo, figure.sm-hub__map, .sm-frow__img, .sm-imgcard__img, .sm-npvfeature__img, .sm-npvcard__img, .sm-newsmini__img, .sm-article__img) img[src$=".svg"] { object-fit: contain; background-color: #081220; }

/* ==== 14.10 Image-led panels ==== */
/* Two columns only at the design width (1440+), where the image column is wide
   enough to fill the row height at the artwork ratio: measured 605px available vs
   605px needed. Below that the column is too narrow (short by 48px at 1342, 96px
   at 1242), so filling the height would crop the legend and callout - it becomes
   a single column instead, image full width at its own ratio.
   exactly, and the panel stretches to the row height so the artwork fills it.
   Below 1200 the section is a single column and the panel takes the artwork
   ratio instead, so the image is never squeezed or cropped when stacked. */
.sm-gap__row { display: grid; grid-template-columns: 643fr 605fr; gap: 0; align-items: stretch; }
.sm-gap__card { width: auto; min-width: 0; }
.sm-gap__panel,
.sm-gap__panel.wp-block-cover { width: 100%; min-width: 0; height: auto; min-height: 423px; }
.synmax .sm-gap__panel img.wp-block-cover__image-background[src$=".svg"],
.sm-gap__panel img.wp-block-cover__image-background { object-fit: cover; background: none; }
@media (max-width: 1439px) {
  .sm-gap__row { grid-template-columns: 1fr; }
  .sm-gap__panel,
  .sm-gap__panel.wp-block-cover { aspect-ratio: 605 / 423; min-height: 0; }
}

/* ==== 14.11 Card links ==== */
/* Gutenberg has no 'link this box' control for a group, so linking a card's
   title (select the text, Ctrl/Cmd+K) makes the WHOLE card clickable: the
   title link is stretched over the card. The link inherits the title styling,
   so the design is unchanged until a link is added. */
.sm-statcell, .sm-iconbox, .sm-step, .sm-featcard__panel { position: relative; }
.synmax :is(.sm-statcell, .sm-iconbox, .sm-step, .sm-featcard__panel) :is(h2, h3, h4) a {
  color: inherit; text-decoration: none;
}
/* Card link set from the sidebar: a real anchor stretched over the card. */
.synmax [data-sm-link] { position: relative; }
.synmax a.sm-cardlink { position: absolute; inset: 0; z-index: 3; display: block; }
.synmax [data-sm-link]:hover { border-color: rgba(var(--sm-accent-rgb), .55); }
.synmax :is(.sm-statcell, .sm-iconbox, .sm-step, .sm-featcard__panel) :is(h2, h3, h4) a::after {
  content: ""; position: absolute; inset: 0; z-index: 3;
}
.synmax :is(.sm-statcell, .sm-iconbox, .sm-step):has(:is(h2, h3, h4) a) {
  transition: border-color .28s var(--sm-ease), background-color .28s var(--sm-ease);
}
.synmax :is(.sm-statcell, .sm-iconbox, .sm-step):has(:is(h2, h3, h4) a):hover {
  border-color: rgba(var(--sm-accent-rgb), .55);
}

/* ==== 14.12 Editor: card selection is visible ==== */
/* Cards carry their own background and border, which swallows the editor's default
   selection cue, so a selected/hovered card looked no different from an unselected
   one. Draw it explicitly (editor canvas only — the front end is untouched). */
.editor-styles-wrapper :is(.sm-statcell, .sm-iconbox, .sm-step, .sm-featcard, .sm-foundcard, .sm-bento__card, .sm-imgcard__card).is-selected {
  outline: 2px solid #3858e9;
  outline-offset: -2px;
}
.editor-styles-wrapper :is(.sm-statcell, .sm-iconbox, .sm-step, .sm-featcard, .sm-foundcard, .sm-bento__card, .sm-imgcard__card).is-hovered:not(.is-selected) {
  outline: 1px dashed rgba(56, 88, 233, .7);
  outline-offset: -1px;
}

/* ==== 14.13 Cards whose photo is their background are covers ==== */
.sm-featcard.wp-block-cover { padding: 0; display: flex; align-items: flex-end; justify-content: flex-start; border-radius: 0; background-position: 50% 50%; }
.sm-featcard.wp-block-cover > .wp-block-cover__inner-container { position: static; width: 100%; max-width: none; padding: 0; color: inherit; }
.synmax .sm-featcard > img.wp-block-cover__image-background { object-fit: cover; background: none; }

/* ==== 14.14 Legal pages ==== */
body.privacy-policy .sm-main, body.generic-terms-and-conditions .sm-main{padding-top: 0px;}
.sm-legalhero { padding-block: 200px 40px; }
.sm-legalhero .sm-section__inner { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; max-width: 832px; align-self: center;}
.sm-legalhero__title { font-size: var(--sm-fs-h2); line-height: 1.02; font-weight: 700; color: var(--txt); margin: 0; }
.sm-legalhero__date { font-size: var(--sm-fs-split-sub); line-height: 1.2; color: #E9E9E9; opacity: .7; margin: 0; }
.sm-legal { padding-block: 0 140px; }
.sm-legal__col { width: 100%; max-width: 832px; display: flex; flex-direction: column; gap: 20px; align-self: center; }
.sm-legal__col > .sm-article__h { margin-top: 28px; }
.sm-legal__col > .sm-article__h:first-child { margin-top: 0; }
.sm-article__h--sub { font-size: var(--sm-fs-body); line-height: 1.4; }
.sm-legal__col .sm-article__p a { color: var(--sm-accent); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) { .sm-legalhero { padding-block: 148px 32px; } }
.sm-footer__legal-sep { color: #fff; font-size: var(--sm-fs-tagline);; margin: 0 6px; opacity: .6; }

/* ==== 14.15 Card diagrams fill the card ==== */
/* These SVGs are authored at the card's own width, so fitting them whole only
   letterboxes the sides - and the strip shows, because the artwork carries its
   own layered background rather than flat --sm-deep. Fill instead, anchored to
   the top so the overflow falls at the bottom, behind the panel. */
.synmax figure.sm-featcard__media img[src$=".svg"],
.synmax .sm-featcard > img.wp-block-cover__image-background[src$=".svg"] {
  object-fit: cover;
  object-position: 50% 0;
  background-color: transparent;
}

/* ==== 15. MOBILE POLISH (2026-07 pass) ==== */
/* Measured at 390x844 across all pages of the three sites. Every rule here
   fixes an observed defect: content escaping the viewport, desktop-only HUD
   dressing, crushed header branding, sub-44px touch targets, or iOS zoom on
   sub-16px inputs. Front end only - the editor canvas is desktop-width. */

/* 15.1 Hero internals can carry fixed design widths (title 680, rule 507,
   lead 500...). The head hugs its widest child, so max-width on the child
   alone is circular - cap the head itself and everything in it. */
.sm-hero__head { max-width: 100%; min-width: 0; }
.sm-hero__head > *, .sm-hero__content > * { max-width: 100%; }

/* 15.2 Header: at 390 the wide logo (196) + menu pill (300/52vw) cannot fit a
   331px bar - flex crushed the logo to 47px. Compact both. */
@media (max-width: 600px) {
  .sm-site-header { top: 12px; }
  .sm-site-header__inner { min-height: 60px; padding: 0 14px 0 16px; gap: 12px; }
  .sm-logo { flex: 0 1 auto; max-width: 140px;}
  .sm-logo__mark { width: 118px; }
  .sm-logo__mark--wide { width: 136px; }
  .sm-menu-pill { width: auto; max-width: none; padding: 11px 14px; letter-spacing: 2px; gap: 12px; }
}

/* 15.3 Desktop HUD dressing (targeting reticles, coordinate readouts, signal
   chips) is composed against fixed desktop offsets and lands 100-335px outside
   a phone viewport. Selectors carry an element/extra class so they outrank the
   0,1,0 display:block base regardless of stylesheet order. */
@media (max-width: 760px) {
  img.sm-genhud,
  .sm-hero .sm-hero__hud, .sm-hero .sm-genhero__hud,
  .sm-split .sm-split__hud, .sm-split .sm-split__track, .sm-split .sm-split__coords,
  .sm-split .sm-split__chips, .sm-split .sm-split__monitor,
  .sm-approach__panel .sm-approach__coordtag,
  .sm-approach__panel .sm-approach__chip1, .sm-approach__panel .sm-approach__chip2,
  .sm-statement2::before, .sm-statement2::after { display: none; }
}

/* 15.4 Filter bars (news/resources boards + careers) are fixed-width rows that
   ran 405-494px past the viewport. Stack them; fields go full width. */
@media (max-width: 760px) {
  .sm-afilter { flex-direction: column; align-items: stretch; gap: 16px; }
  .sm-afilter__chips { flex-wrap: wrap; gap: 10px; }
  .sm-afilter__right { width: 100%; }
  .sm-afilter__right .sm-jobs__filter,
  .sm-afilter__right .sm-jobs__filter--search { width: auto; flex: 1 1 140px; }
  .sm-jobs__filters { flex-direction: column; gap: 14px; }
  .sm-jobs__filters .sm-jobs__filter { width: 100%; flex: 1 1 auto; }
}

/* 15.5 The jobs table is a 1000px row grid; 761-1100 scrolls it sideways, but
   on a phone each opening becomes a card: title, meta, full-width action. */
@media (max-width: 760px) {
  .sm-jobs__table { overflow-x: visible; }
  .sm-jobs__thead { display: none; }
  .sm-jobs__row { min-width: 0; flex-wrap: wrap; align-items: flex-start; gap: 10px 14px; padding: 20px; }
  .sm-jobs__c1 { flex: 1 1 100%; width: auto; }
  .sm-jobs__pos { white-space: normal; padding: 0; }
  .sm-jobs__c2, .sm-jobs__c3, .sm-jobs__c4 { width: auto; flex: 0 0 auto; justify-content: flex-start; }
  .sm-jobs__val { padding: 0; font-size: var(--sm-fs-small); }
  .sm-jobs__pill { width: auto; padding: 0 12px; height: 30px; font-size: 13px; }
  .sm-jobs__c5 { flex: 1 1 100%; justify-content: stretch; margin-top: 6px; }
  .sm-jobs__btn { width: 100%; }
  .sm-jobs__btn .sm-btn { width: 100%; }
}

/* 15.6 News band: the card is 184px-photo + text grid whose min-content
   (excerpt + nowrap CTA) exceeds a phone container, dragging the whole band
   out of the viewport. Stack photo over text; CTA takes the full row. */
.sm-newsrow > *, .sm-newscard__c { min-width: 0; }
@media (max-width: 640px) {
  .sm-newscard { grid-template-columns: 1fr; min-height: 0; }
  .sm-newscard__img { min-height: 170px; }
  .sm-newscard__c > .sm-newscard__title { margin-top: 18px; min-height: 0; }
  .sm-newscard__title { font-size: var(--sm-fs-h6); line-height: 27px; }
  .sm-newscard__bottom { flex-wrap: wrap; gap: 14px; }
  .sm-newscard__cta { flex: 1 1 100%; }
  .sm-newscard__cta .sm-btn { width: 100%; }
  .sm-newsfeature { min-height: 480px; }
  .sm-newshead { flex-wrap: wrap; }
  .sm-newshead__all { flex: 1 1 100%; }
  .sm-newshead__all .sm-btn { width: 100%; }
}

/* 15.7 Article page: meta row (tags + share) side by side does not fit; the
   hub product rows put a 248px thumb beside nowrap labels. Stack both. */
@media (max-width: 781px) {
  .sm-article__meta { flex-direction: column; align-items: flex-start; gap: 18px; }
  .sm-article__share { flex-wrap: wrap; }
  :is(.sm-related, .sm-articles) .sm-npvfeature--grid { width: 100%; flex: 1 1 auto; }
  .sm-hub__prow { flex-direction: column; }
  .sm-hub__pimg { width: 100%; flex: 0 0 auto; }
  .sm-hub__pimg img { width: 100%; }
  .sm-hub__pname, .sm-hub__psub { white-space: normal; }
  .sm-hub__psub { font-size: var(--sm-fs-small); }
}

/* 15.8 Touch targets + iOS zoom. Social/legal/product footer links measured
   15-33px tall; pagination chips 33. Inputs under 16px make iOS zoom in. */
@media (max-width: 760px) {
  .sm-footer__social a { padding: 12px; margin: -6px; }
  .sm-footer__social { gap: 20px; }
  .sm-footer__legal a { display: inline-block; padding: 10px 0; }
  .sm-footer__legal-sep { margin: 0 10px; }
  .sm-footer__prod { padding: 14px 0 !important; }
  .sm-pgn a, .sm-pgn > span { height: 44px; min-width: 44px; }
  .sm-field__input { font-size: var(--sm-fs-p2); }
  .sm-form { padding: 24px 18px; }
}

/* 15.9 Stragglers from the verification sweep: HUD chrome that lives outside
   .sm-split (the approach panel reuses split classes inside .sm-split__chrome),
   absolutely-composed inquiry cards, fixed 400px location cards, and the
   remaining sub-44px links. */
@media (max-width: 760px) {
  div.sm-split__coords, div.sm-split__track, span.sm-hudchip { display: none; }
  .sm-foundcard { min-width: 0; }
  .sm-foundcard__title { overflow-wrap: anywhere; }
  .sm-footer__col a { padding: 14px 10px; }
  .synmax a.page-numbers { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
}
@media (max-width: 640px) {
  .sm-loccard { width: 100%; flex: 1 1 100%; height: auto; min-height: 460px; }
  .sm-inqcard { height: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 28px 24px; }
  .sm-inqcard .sm-eyebrow, .sm-inqcard__dots, .sm-inqcard__title, .sm-inqcard__rule, .sm-inqcard__cta { position: static; width: auto; }
  .sm-inqcard__rule { width: 100%; }
  .sm-inqcard__title { font-size: 30px; }
  .sm-inqcard::before, .sm-inqcard::after { display: none; }
}

/* 15.10 Contact hero: below 1280 the floating form goes static, but the hero
   is a flex ROW - the form joined the row beside the content and the centered
   pair started 100px off-screen. Stack them. */
@media (max-width: 1280px) {
  .sm-hero--contact { flex-direction: column; align-items: center; }
}

/* 15.11 Last touch-target pass. The social row's fixed height crushed its
   anchors to 24px regardless of padding - give them a real 44px box and let
   the row grow; negative margin keeps the visual rhythm. Button-block links
   measured 30px inside a 44px-looking .sm-btn shell. */
@media (max-width: 760px) {
  .sm-footer__social { height: auto; align-items: center; }
  .sm-footer__social a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; margin: -8px 0; }
  .sm-btn > .wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; }
  .sm-article__share a { width: 40px; height: 40px; align-items: center; justify-content: center; margin: -8px 0; }
  .sm-loccard__coords { left: auto; right: 20px; }
  .sm-foundcard__title { white-space: normal; font-size: clamp(30px, 9.5vw, 40px); line-height: 1.15; }
  .sm-depts__row { flex-wrap: wrap; }
  .sm-dept { width: 100%; height: auto; min-height: 44px; padding: 8px 12px; }
  .sm-dept__val, .sm-dept__val a { white-space: normal; overflow-wrap: anywhere; }
}

/* ==== 16. POST EDITOR CANVAS — editing a post looks like the published article ==== */
/* The front wraps post content in .sm-article__col (832px) and styles the raw
   blocks via .sm-article__body .wp-block-post-content. The editor canvas has
   neither wrapper, so posts edited at full width with default type - these
   mirror the front rules onto the post editor's root container. */
.editor-styles-wrapper.post-type-post .is-root-container > * { max-width: 832px; margin-left: auto; margin-right: auto; }
.editor-styles-wrapper.post-type-post .editor-post-title__input,
.editor-styles-wrapper.post-type-post .wp-block-post-title {
  max-width: 832px; margin-left: auto; margin-right: auto;
  font-family: var(--sm-font); font-size: var(--sm-fs-h2); line-height: 1.05; font-weight: 700; color: #fff; text-align: center;
}
.editor-styles-wrapper.post-type-post .is-root-container > * + * { margin-block-start: 24px; }
.editor-styles-wrapper.post-type-post .is-root-container > h2 { font-size: var( --sm-fs-h5); font-weight: 600; line-height: 32px; color: #fff; margin-block-start: 40px; text-transform: none; }
.editor-styles-wrapper.post-type-post .is-root-container > h3 { font-size: var(--sm-fs-h6); font-weight: 600; line-height: var(--sm-lh-h6); color: #fff; margin-block-start: 36px; text-transform: none; }
.editor-styles-wrapper.post-type-post .is-root-container > p { font-size: var(--sm-fs-p2); line-height: 1.62; color: #E9E9E9; }
.editor-styles-wrapper.post-type-post .is-root-container > ul:is(.wp-block-list, :not([class])) { display: flex; flex-direction: column; gap: 12px; margin-block: 24px 0; padding: 0; list-style: none; }
.editor-styles-wrapper.post-type-post .is-root-container > ul:is(.wp-block-list, :not([class])) li { position: relative; padding-left: 25px; font-size: var(--sm-fs-p2); line-height: 1.5; color: #E9E9E9; }
.editor-styles-wrapper.post-type-post .is-root-container > ul:is(.wp-block-list, :not([class])) li::before { content: ""; position: absolute; left: 8px; top: 5px; width: 5px; height: 13px; background: linear-gradient(180deg, #00A1E1 0%, #00E96C 100%); }
.editor-styles-wrapper.post-type-post .is-root-container > ol { margin-block: 24px 0; padding-left: 24px; font-size: var(--sm-fs-p2); line-height: 1.5; color: #E9E9E9; }
.editor-styles-wrapper.post-type-post .is-root-container .wp-block-image img { border-radius: 4px; }
.editor-styles-wrapper.post-type-post .is-root-container figcaption { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: rgba(233,233,233,.6); text-align: center; }
.editor-styles-wrapper.post-type-post .is-root-container a:not(.wp-block-button__link) { color: #69E0F5; text-decoration: underline; text-underline-offset: 2px; }

/* ==== 17. MOBILE ≤600 — measured from Figma "SynMax Maritime — Homepage (Dark) Mobile"
   (Nz1KzgHbeQlq1bPdDBxO0D · 3731:11296, 402×8488). Type roles there: H2 34/36 (hero+CTA),
   H4 26/32 (section titles), H6/titles 20/28, P1 18/26, P2 16/22, Tag 10/20.
   This block sits LAST so its declarations win every same-specificity tie. ==== */
@media (max-width: 600px) {

  /* — section chrome: 32px bands, 30px rhythm, header rules stop at the 24px gutter — */
  .sm-sectionhead { --edge: 0px; }
  .sm-sectionhead::before, .sm-sectionhead::after { background: #E3E7ED; }
  .sm-testimonial .sm-sectionhead::before, .sm-testimonial .sm-sectionhead::after { background: rgba(255,255,255,.12); }
  .sm-section .sm-eyebrow { color: #fff; letter-spacing: 2px; }
  .sm-gap .sm-eyebrow { color: #DBE3ED; }
  .sm-cta:not(.is-light) .sm-eyebrow { color: #fff; }
  .sm-section__inner > .sm-title,
  .sm-stats .sm-section__inner > .sm-title { margin-top: 30px; }
  .sm-section__inner > .sm-lead { margin-top: 30px; }
  .sm-section__inner > .sm-grid, .sm-section__inner > .sm-steps,
  .sm-stats .sm-section__inner > .sm-grid { margin-top: 30px; }
  .sm-title { font-size: 26px; line-height: 32px; }
  .sm-lead { line-height: 26px; }
  .sm-gridfx__diag { display: none; }

  /* card icons back to the mock's 44px (the §11 34px shrink is desktop-only) */
  .sm-ic, .sm-statcell__ic, .sm-step__ic, .sm-iconbox .sm-ic { width: 44px; height: 44px; flex-basis: 44px; }
  .sm-ic svg, .sm-ic > svg, .sm-ic img, .sm-statcell__ic img, .sm-step__ic img, .sm-iconbox .sm-ic img, .wp-block-image.sm-ic img { width: 44px; height: 44px; }

  /* — buttons: 47px, 16px label, 28px brackets, full width, 12px stack gap
       (double class so WP's late :root :where(.wp-block-buttons) gap loses) — */
  .sm-btn { height: 47px; font-size: var(--sm-fs-p2); --bw: 28px; }
  .sm-btn--ghost { border: .2px solid rgba(255,255,255,.5); }
  .wp-block-buttons.sm-btnrow, .wp-block-buttons.sm-cta__btns, .sm-btnrow.sm-hero__ctas { gap: 12px; }

  /* — header: 60px glass pill at top 31, 24px-tall logo, 24×18 hamburger — */
  .sm-site-header { top: 31px; }
  .sm-site-header__inner { min-height: 60px; padding: 0 25px; }
  .sm-logo__mark, .sm-logo__mark--wide { width: auto; height: 24px; }
  body.synmax .sm-menu-pill, body.synmax .sm-menu-pill:hover,
  .sm-menu-pill {
    width: 24px; height: 18px; max-width: none; padding: 0; border: 0; border-radius: 0;
    box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; transform: none;
    background: transparent;
    background-image: linear-gradient(#fff,#fff), linear-gradient(#fff,#fff), linear-gradient(#fff,#fff);
    background-size: 24px 2px; background-position: 0 0, 0 8px, 0 16px; background-repeat: no-repeat;
  }
  .sm-menu-pill__label, .sm-menu-pill .sm-dots { display: none; }

  /* — hero: content at 138 from top, one 30px stack, stats in-row, cue 41 up — */
  .sm-hero__content { padding-top: 138px; padding-bottom: 161px; gap: 30px; }
  .sm-hero__head { gap: 30px; }
  .sm-hero__bottom { gap: 30px; }
  .sm-hero__eyebrow.is-glass { background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .sm-hero__rule { width: 100%; }
  .sm-hero__stats { gap: 15px; }
  .sm-stat { gap: 3px; padding-right: 13px; }
  .sm-stat__num { font-size: 22px; letter-spacing: .27px; }
  .sm-stat__label { font-size: var(--sm-fs-tagline);; line-height: 17px; }
  .sm-hero__scroll { bottom: 41px; }
  .sm-hero__grid .sm-gridfx__quad--img { display: none; }
  /* Ken Burns sizes the cover img height:auto — a wide photo collapses to ~226px
     at phone widths (hero looks cut). Fill the band + the ±9% parallax overscan. */
  html.sm-anim .sm-hero > .wp-block-cover__image-background { height: 118%; }

  /* — trust band — */
  .sm-trust { padding-block: 32px; }
  .sm-trust__inner { flex-direction: column; gap: 8px; text-align: center; }
  .sm-trust__label { font-size: 10px; line-height: 20px; letter-spacing: 2px; font-weight: 700; text-box: trim-both cap alphabetic; }
  .sm-trust__sectors { font-size: var(--sm-fs-p2); line-height: var(--sm-lh-h6); }

  /* — the gap: cardless copy on the band, no head divider, panel keeps 605:423 — */
  .sm-gap .sm-section__inner > .sm-gap__row { margin-top: 30px; }
  .sm-gap__body { gap: 30px; }
  .sm-gap .sm-gap__divider { display: none; }
  .sm-gap__row { flex-direction: column; gap: 30px; }
  .sm-gap:not(.is-light) .sm-gap__card { background: none; border: 0; padding: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .sm-gap__card, .sm-gap__panel { width: 100%; flex: 0 0 auto; }
  .sm-gap__title { font-size: 26px; line-height: 32px; }
  .sm-gap:not(.is-light) .sm-gap__copy p { color: #DBE3ED; }
  .sm-gap__panel, .sm-gap__panel.wp-block-cover { min-height: 0; aspect-ratio: 605 / 423; }

  /* — capabilities cells: 24px pad, P2 body, 13px to metric, 50px dot block — */
  .sm-statcell { padding: 24px; }
  .sm-statcell::before { width: 50px; height: 50px; top: 40px; right: 38px; background-size: 10px 10px; }
  .sm-statcell .sm-kicker--theia { color: #B1B1B1; }
  .sm-statcell > .sm-statcell__body { font-size: var(--sm-fs-p2); line-height: 22px; margin-top: 24px; }
  .sm-statcell > .sm-statcell__metric { margin-top: 13px; padding-top: 0; }

  /* — multi-step: the mock keeps the 20/48 head rhythm here, cards 24px — */
  .sm-multistep .sm-section__inner > .sm-title { margin-top: 20px; }
  .sm-multistep .sm-section__inner > .sm-steps { margin-top: 48px; }
  .sm-step { padding: 24px; }
  .sm-step > .sm-divider { margin-top: 24px; }
  .sm-step > .sm-step__body { font-size: var(--sm-fs-p2); line-height: 22px; margin-top: 24px; }
  .sm-multistep:not(.is-light) .sm-step .sm-kicker { color: #fff; }
  .sm-multistep:not(.is-light) .sm-step > .sm-step__body { color: #fff; }

  /* — industries boxes — */
  .sm-iconbox { padding: 24px; }
  body.synmax .sm-iconbox__title, .sm-iconbox > .sm-iconbox__title { margin-top: 24px; }
  .sm-iconbox > .sm-iconbox__body { font-size: var(--sm-fs-p2); line-height: 22px; }

  /* — testimonial: 32px gutter, 36px stack, 80px rule, borderless 40×35 badge — */
  .sm-testimonial { padding-block: 110px 60px; }
  .sm-testimonial__inner { width: calc(100% - 64px); gap: 0; }
  .sm-testimonial__inner > .sm-quote__badge { margin: 36px 0 0; border: 0; border-radius: 4px; }
  .sm-quote__badge svg { width: 40px; height: 35px; }
  .sm-testimonial__inner > .sm-quote__text { margin-top: 24px; }
  .sm-quote__text { font-size: 26px; line-height: 32px; }
  .sm-testimonial hr.wp-block-separator.sm-quote__rule { margin: 16px auto 0; width: 80px; border-top-color: rgba(255,255,255,.12); }
  .sm-testimonial__inner > .sm-quote__body { margin-top: 16px; }
  .sm-testimonial__inner > .sm-quote__cite { margin-top: 36px; }
  .sm-quote__name { line-height: 20px; }
  .sm-quote__org { line-height: 18px; }
  .sm-testimonial__inner > .sm-quote__footer { margin-top: 36px; }
  .sm-pager-btn { border: .2px solid #fff; }

  /* — CTA: 80px band, centered 34/36 headline, hero-recipe buttons, hairline grid
       (#262F3F @ .15 rows / .1 columns: rows inset 100px then thirds, cols at 60/center/60) — */
  .sm-cta { padding: 80px 0; }
  .sm-cta:not(.is-light) {
    background-color: #081220;
    background-image:
      linear-gradient(rgba(38,47,63,.1), rgba(38,47,63,.1)),
      linear-gradient(rgba(38,47,63,.1), rgba(38,47,63,.1)),
      linear-gradient(rgba(38,47,63,.1), rgba(38,47,63,.1)),
      linear-gradient(rgba(38,47,63,.15), rgba(38,47,63,.15)),
      linear-gradient(rgba(38,47,63,.15), rgba(38,47,63,.15)),
      linear-gradient(rgba(38,47,63,.15), rgba(38,47,63,.15)),
      linear-gradient(rgba(38,47,63,.15), rgba(38,47,63,.15));
    background-size: 1px 100%, 1px 100%, 1px 100%, 100% 1px, 100% 1px, 100% 1px, 100% 1px;
    background-position:
      60px 0, 50% 0, calc(100% - 60px) 0,
      0 100px, 0 calc(33.333% + 33.333px), 0 calc(66.667% - 33.333px), 0 calc(100% - 100px);
    background-repeat: no-repeat;
  }
  .sm-cta__inner > .sm-cta__title { font-size: 34px; line-height: 36px; margin-top: 56px; }
  .sm-cta__inner > .sm-cta__body { font-size: var(--sm-fs-body); line-height: 26px; margin-top: 30px; }
  .sm-cta:not(.is-light) .sm-cta__body { color: #DBE3ED; }
  .sm-cta__inner > .sm-cta__btns { margin-top: 30px; }
  .sm-cta__btns { gap: 12px; width: 100%; }
  .sm-cta__btns::before, .sm-cta__btns::after { display: none; }
  .sm-cta:not(.is-light) .sm-cta__btns .sm-btn--neutral { --bracket: #fff; }
  .sm-cta:not(.is-light) .sm-cta__btns .sm-btn--neutral:first-child {
    background: linear-gradient(180deg, rgba(var(--sm-accent-rgb),.48), rgba(var(--sm-accent-rgb),.32));
    box-shadow: inset 0 0 22px rgba(var(--sm-accent-rgb),.9);
    border: .2px solid rgba(255,255,255,.5); color: #fff;
  }
  .sm-cta:not(.is-light) .sm-cta__btns .sm-btn--neutral:last-child {
    background: rgba(0,0,0,0);
    box-shadow: inset 0 0 22px rgba(255,255,255,.1);
    border: .2px solid rgba(255,255,255,.5); color: #fff;
  }

  /* — footer: 48px band on #161F2D; order brand→cols→awards→rule→copy→legal;
       SynMax+Industries side by side, Products as an inline dotted row — */
  .sm-footer { background: #161F2D; padding-block: 48px; }
  .sm-footer__inner { display: flex; flex-direction: column; gap: 0; }
  .sm-footer__top { flex-direction: column; gap: 48px; order: 1; }
  .sm-footer__logo, .sm-footer__logo--wide { width: 184px; }
  .sm-footer__social { gap: 4px; margin-left: -14px; }
  .sm-footer__bottom { display: contents; }
  .sm-footer__awards { order: 2; margin-top: 48px; }
  .sm-footer__awards-label { font-size: var(--sm-fs-p2); line-height: 20px; }
  .synmax .sm-footer__award-img { width: 92px; height: 29px; }
  .synmax .sm-footer__award-img--spire { width: 81px; height: 23px; }
  .sm-footer__rule { order: 3; margin: 48px 0 0; border-top-color: rgba(255,255,255,.12); }
  .sm-footer__copy { order: 4; margin-top: 32px; width: 100%; text-align: center; text-box: trim-both cap alphabetic; }
  .sm-footer__legal { order: 5; margin-top: 40px; text-align: center; font-size: var(--sm-fs-tagline);; line-height: 20px; }
  .sm-footer__legal a { font-size: var(--sm-fs-tagline);; margin-block: -10px; }
  .sm-footer__legal-sep { margin: 0 6px; }
  .sm-footer__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 20px; }
  .sm-footer__col { min-width: 0; gap: 0; }
  .sm-footer__head { font-size: var(--sm-fs-p2); line-height: 20px; margin: 0 0 12px; }
  .sm-footer__col a { font-size: var(--sm-fs-split-sub); line-height: 1; padding: 15px 8px; margin: -3.5px 0; min-height: 44px; display: inline-flex; align-items: center; }
  .sm-footer__col:nth-child(3) { grid-column: 1 / -1; padding-top: 16px; flex-direction: row; flex-wrap: wrap; align-items: center; row-gap: 12px; column-gap: 8px; }
  .sm-footer__col:nth-child(3) .sm-footer__head { flex-basis: 100%; margin-bottom: 0; }
  .sm-footer__col:nth-child(3) a.sm-footer__prod { padding: 8px 0 !important; margin: 0; min-height: 0; display: inline-flex; align-items: center; line-height: 7px; }
  .sm-footer__col:nth-child(3) a.sm-footer__prod + a.sm-footer__prod::before {
    content: ""; width: 3px; height: 3px; border-radius: 50%; background: #fff; margin-right: 8px; flex: 0 0 3px;
  }
}

/* ------------------------------------------------------------------
   §15 Home — domain split & dual intelligence panels (2026-08-04, r2)
   Hero: H1 + lead share a row; the two 50/50 domain CARDS are core cover
   blocks (image/video swappable in the editor) pinned into the first
   viewport. Panels: Maritime = the Theia story; Energy = product router.
   Corner arrows replaced by labeled buttons per the approved mock.
   ------------------------------------------------------------------ */
.sm-hero__toprow { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; width: 100%; }
.sm-hero__toprow .sm-hero__lead { padding-bottom: 10px; }
@media (max-width: 1000px) {
  .sm-hero__toprow { flex-direction: column; align-items: flex-start; gap: 16px; }
  .sm-hero__toprow .sm-hero__lead { padding-bottom: 0; }
}

.sm-domains { display: grid !important; grid-template-columns: 1fr 1fr; gap: 24px; width: 100%; margin-top: 10px; }
.wp-block-cover.sm-domain { position: relative; min-height: 236px; padding: 0; border: 1px solid rgba(255,255,255,.14); overflow: clip; transition: border-color .25s var(--sm-ease), transform .25s var(--sm-ease); }
.wp-block-cover.sm-domain:hover { border-color: rgba(255,255,255,.34); transform: translateY(-2px); }
.sm-domain .wp-block-cover__image-background { opacity: .55; transition: opacity .3s var(--sm-ease), transform .6s var(--sm-ease); }
.sm-domain:hover .wp-block-cover__image-background { opacity: .7; transform: scale(1.03); }
.sm-domain > .wp-block-cover__inner-container { display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 7px; height: 100%; min-height: inherit; padding: 24px 26px; }
.sm-domain__kicker { font-size: var(--sm-fs-tagline); letter-spacing: 2px; text-transform: uppercase; font-weight: 600; margin: 0; }
.sm-domain--maritime .sm-domain__kicker { color: var(--sm-theia); }
.sm-domain--energy .sm-domain__kicker { color: var(--sm-hyperion); }
h2.sm-domain__title { color: #fff; font-weight: 700; font-size: clamp(22px, 1.9vw, 28px); line-height: 1.15; margin: 0; }
.sm-domain__sub { color: #C6CFDB; font-size: var(--sm-fs-p2); line-height: 1.5; margin: 0; max-width: 82%; }
/* One overlay anchor covers the WHOLE card. The previous approach stretched a
   button link's ::after, but its containing block was .sm-domain__go — itself
   position:absolute — so the hit area was only the 44px arrow, and clicking the
   card did nothing at all. This anchor's containing block is the cover, so
   inset:0 really means the whole square. */
.sm-domain__link { position: absolute; inset: 0; z-index: 3; display: block; }
.sm-domain__arrow { position: absolute; right: 20px; bottom: 20px; z-index: 2; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18); color: #fff; font-size: 18px; line-height: 1; transition: background-color .2s var(--sm-ease); }
.sm-domain:hover .sm-domain__arrow { background: rgba(255,255,255,.2); }
.sm-domain__link:focus-visible { outline: 2px solid var(--sm-accent); outline-offset: -3px; }
.wp-block-cover.sm-domain { position: relative; }
.wp-block-cover.sm-domain:focus-within { border-color: rgba(255,255,255,.5); }
.sm-domain--maritime .sm-domain__arrow { border-color: rgba(0,161,225,.5); }
.sm-domain--energy .sm-domain__arrow { border-color: rgba(0,233,108,.5); }
@media (max-width: 900px) {
  .sm-domains { grid-template-columns: 1fr; gap: 14px; }
  .wp-block-cover.sm-domain { min-height: 178px; }
  .sm-domain__sub { max-width: 100%; padding-right: 56px; }
}

/* Panels: seam-smoothing fades top and bottom, over media, under card. */
.sm-hub__panel { scroll-margin-top: 96px; }
.sm-hub__panel::before, .sm-hub__panel::after { content: ""; position: absolute; left: 0; right: 0; height: 110px; z-index: 1; pointer-events: none; }
.sm-hub__panel::before { top: 0; background: linear-gradient(180deg, #0B1420, transparent); }
.sm-hub__panel::after { bottom: 0; background: linear-gradient(0deg, #0B1420, transparent); }
.sm-hub__card { z-index: 2; }

/* Mirrored (maritime) panel: card on the left half. */
.sm-hub__panel--flip .sm-hub__card { left: auto; right: calc(50% + 32px); }
/* Only while the card is still absolutely positioned. Below 900px the base
   rule makes it position:relative with symmetric gutters (centred), and this
   selector outranks it 2-classes-to-1 — so left:gutter would survive and push
   the maritime card a gutter to the right of the energy one. */
@media (max-width: 1280px) and (min-width: 901px) {
  .sm-hub__panel--flip .sm-hub__card { right: auto; left: var(--sm-gutter); }
}
@media (max-width: 900px) {
  .sm-hub__panel--flip .sm-hub__card { left: 0; right: 0; }
}

/* Panel content v2: the label / Theia spotlight / product router pieces. */
.sm-hub__plabel { font-size: var(--sm-fs-tagline); letter-spacing: 2.5px; text-transform: uppercase; font-weight: 700; color: #6A7686; margin: 0; }
.sm-hub__pname--xl { font-size: 30px; letter-spacing: 6px; }
.sm-hub__pline { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #E9E9E9; margin: 0; }
.sm-hub__caps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
.sm-hub__cap { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid rgba(255,255,255,.12); background: rgba(var(--sm-accent-rgb),.06); }
.sm-hub__capico { flex: 0 0 26px; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; background: rgba(var(--sm-accent-rgb),.16); margin: 0; }
.sm-hub__capico img { width: 16px; height: 16px; display: block; }
.sm-hub__captxt { font-size: 13px; color: #E9E9E9; margin: 0; }
.sm-hub__prows { display: flex; flex-direction: column; gap: 10px; width: 100%; }
.sm-hub__prow2 { position: relative; display: flex; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); transition: background-color .15s var(--sm-ease), border-color .15s var(--sm-ease); }
.sm-hub__prow2:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.3); }
.sm-hub__prow2 .sm-hub__pname { flex: 0 0 118px; font-size: 15px; letter-spacing: 3px; white-space: nowrap; }
.sm-hub__pdesc { flex: 1; font-size: 13px; line-height: 1.45; color: #C6CFDB; margin: 0; }
.sm-hub__prowgo { margin: 0; flex: 0 0 auto; }
.sm-hub__prowbtn .wp-block-button__link { padding: 6px 12px; border-radius: 0; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; background: transparent; border: 1px solid rgba(255,255,255,.22); color: #fff; }
.sm-hub__prow2:hover .sm-hub__prowbtn .wp-block-button__link { border-color: rgba(255,255,255,.5); }
.sm-hub__prowbtn .wp-block-button__link::after { content: ""; position: absolute; inset: 0; }
.sm-hub__btns { margin-top: 4px; }
@media (max-width: 760px) {
  .sm-hub__caps { grid-template-columns: 1fr; }
  .sm-hub__prow2 { flex-wrap: wrap; }
  .sm-hub__pdesc { flex: 1 1 100%; order: 3; }
}

/* The v2 cards run taller than the 744px the panel was sized for. */
.sm-hub__panel:has(.sm-hub__plabel) { height: 830px; }
@media (max-width: 900px) { .sm-hub__panel:has(.sm-hub__plabel) { height: auto; } }

/* BasinIQ carries its own mark rather than the Intelligence lockup and has no
   brand color token yet — neutral silver until brand supplies one. */
.sm-hub__pname--basiniq { color: #E9EDF2; }


/* §16 Article body reused as page content BELOW a hero (2026-08-04).
   .sm-article's 216px top padding + 80px body margin exist because on
   single.html that section starts the page and must clear the fixed header.
   With a hero above it, both become dead space. Also styles inline links,
   which previously only got colour inside .sm-legal__col. */
.sm-article--page { padding: 88px 0 100px; }
.sm-article--page .sm-article__col { margin-top: 0; }
.sm-article--page .sm-article__body { margin-top: 0; gap: 26px; }
.sm-article--page .sm-article__p a { color: var(--sm-accent); text-decoration: underline; text-underline-offset: 3px; }
.sm-article--page .sm-article__p a:hover { color: #fff; }

/* §17 News listings (synmax/news-list, 2026-08-04).
   The cards reuse .sm-npvfeature. These rules cover what the dynamic block
   adds: the source badge and outward arrow on outbound items, the featured
   wide+minis split, chips as real links, and pagination. */
.sm-newslist { width: 100%; }
.sm-newslist .sm-npvfeature__title a { color: inherit; text-decoration: none; }
.sm-newslist .sm-npvfeature__title a:hover { color: var(--sm-accent); }
/* Card geometry — a two-part card: image band on top, content below.
   .sm-npvfeature ships as a FULL-BLEED image card (__img absolute at inset:19px
   behind a scrim, __panel overlaid at the bottom). That works for a short title
   with no body copy. These cards carry an outlet kicker, a category, a date, a
   two-to-three line headline, an excerpt AND a call to action — enough that the
   overlaid panel needed a solid plate to stay legible, which then covered the
   photograph almost entirely. So take __img out of the overlay and give it real
   height in the flow instead. Legible text, visible picture, no fighting. */
.sm-newslist .sm-npvfeature { min-height: 0; height: auto; padding: 0; overflow: hidden; display: flex; flex-direction: column; }

.sm-newslist .sm-npvfeature__img { position: relative; inset: auto; flex: 0 0 auto; height: 188px; width: 100%; margin: 0; display: block; overflow: hidden; }
.sm-newslist .sm-npvfeature__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Kill the overlay scrims — there is nothing to scrim now that text sits below. */
.sm-newslist .sm-npvfeature__img::after,
.sm-newslist figure.sm-npvfeature__img::after,
.sm-newslist .sm-npvfeature--grid .sm-npvfeature__img::after,
.sm-newslist .sm-npvfeature--grid figure.sm-npvfeature__img::after { display: none; content: none; }

/* Panel sits directly under the image and fills the rest, so no margin-top:auto. */
.sm-newslist .sm-npvfeature > .sm-npvfeature__panel,
.sm-newslist .sm-npvfeature__panel {
	margin-top: 0; flex: 1 1 auto; gap: 14px;
	padding: 18px 20px 22px;
	background: rgba(255, 255, 255, .022);
	-webkit-backdrop-filter: none; backdrop-filter: none;
	border-top: 1px solid rgba(255, 255, 255, .09);
}

/* Outlet vs category are DIFFERENT KINDS of information, so they get different
   kinds of element. The category is taxonomy — a chip you can filter by. The
   outlet is attribution, so it reads as an editorial kicker: small, uppercase,
   letterspaced, accent-coloured, with a short rule. */
.sm-newslist .sm-npvfeature__src {
	margin: 0; display: flex; align-items: center; gap: 8px;
	font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
	color: var(--sm-accent);
}
.sm-newslist .sm-npvfeature__src::before {
	content: ""; flex: 0 0 16px; height: 1px; background: currentColor; opacity: .8;
}

/* __meta was an un-wrapped flex row: a source badge PLUS a category PLUS a date
   squeezed each other until labels wrapped inside their own fixed-height badges
   and the row grew through the title. Wrap between items, never inside them. */
.sm-newslist .sm-npvfeature__meta { flex-wrap: wrap; row-gap: 8px; height: auto; align-items: center; justify-content: space-between; }
.sm-newslist .sm-npv__tags { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
.sm-newslist .sm-npvtag { white-space: nowrap; height: auto; min-height: 26px; padding: 4px 11px; line-height: 1.2; font-size: 12px; }
.sm-newslist .sm-npvfeature__meta .sm-npvtag--flat { background: rgba(255, 255, 255, .07); opacity: 1; }
.sm-newslist .sm-npvcard__date { white-space: nowrap; text-box: normal; line-height: 1.2; color: #92A1B3; font-size: 12px; }

.sm-newslist .sm-npvfeature__text { gap: 10px; height: auto; }
.sm-newslist .sm-npvfeature__title { overflow-wrap: break-word; }
/* text-box trim reported a shorter box than the glyphs used, clipping the last
   line. Normalise and clamp to a predictable 3 lines. */
.sm-newslist .sm-npvfeature__ex {
	text-box: normal; height: auto;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
	overflow: hidden;
}
/* The bracket motif paints its corner arms at inset:0 of the element it is on,
   so a bare anchor puts the arms straight onto the glyphs. Pad the link out and
   shorten the arms to suit a small control, and let the excerpt above breathe. */
.sm-newslist .sm-npvfeature__cta { margin: 4px 0 0; width: auto; }
.sm-newslist .sm-npvfeature__cta > a {
	--bw: 16px;
	display: inline-flex; align-items: center; gap: 8px;
	padding: 12px 18px;
	font-size: 13px; font-weight: 600; letter-spacing: .3px;
	color: #fff; text-decoration: none;
	background: rgba(255, 255, 255, .04);
	transition: background-color .2s var(--sm-ease);
}
.sm-newslist .sm-npvfeature__cta > a:hover { background: rgba(var(--sm-accent-rgb), .14); }
.sm-newslist .sm-npvfeature__extico { margin-left: 0; }

.sm-newslist .sm-npvfeature--wide .sm-npvfeature__img { height: 288px; }
.sm-newslist .sm-npvfeature--mini .sm-npvfeature__img { height: 132px; }
@media (max-width: 700px) { .sm-newslist .sm-npvfeature__img { height: 168px; } }
.sm-npvtag--src { background: rgba(var(--sm-accent-rgb),.12); border: 1px solid rgba(var(--sm-accent-rgb),.4); color: #9BDCF6; }
.sm-npvfeature__extico { margin-left: 6px; vertical-align: -1px; }
.sm-npvfeature.is-outbound .sm-npvfeature__cta a { color: #fff; }

/* Chips are anchors now, not paragraphs — keep the pill look, add affordance. */
.sm-afilter__chips a.sm-achip { text-decoration: none; cursor: pointer; transition: background-color .18s var(--sm-ease), border-color .18s var(--sm-ease); }
.sm-afilter__chips a.sm-achip:hover { background: rgba(var(--sm-accent-rgb),.14); }

/* Featured strip: newest item wide, the next two stacked beside it. */
.sm-newslist--featured .sm-spot__row { display: grid; grid-template-columns: 1.55fr 1fr; gap: 20px; align-items: stretch; }
.sm-newslist--featured .sm-spot__minis { display: flex; flex-direction: column; gap: 20px; }
.sm-newslist--featured .sm-npvfeature--mini .sm-npvfeature__ex { display: none; }
@media (max-width: 900px) { .sm-newslist--featured .sm-spot__row { grid-template-columns: 1fr; } }

/* Grid + preview rows. */
.sm-newslist .sm-npv__gridrow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sm-newslist .sm-npv__gridrow--wrap { grid-auto-rows: 1fr; }
@media (max-width: 1100px) { .sm-newslist .sm-npv__gridrow { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .sm-newslist .sm-npv__gridrow { grid-template-columns: 1fr; } }

.sm-pgn { display: flex; gap: 8px; align-items: center; justify-content: center; margin-top: 36px; }
.sm-pgn .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px; border: 1px solid rgba(255,255,255,.18); color: #E9E9E9; text-decoration: none; font-size: 13px; }
.sm-pgn .page-numbers:hover { border-color: rgba(255,255,255,.45); }
.sm-pgn .page-numbers.current { background: rgba(var(--sm-accent-rgb),.16); border-color: rgba(var(--sm-accent-rgb),.5); color: #fff; }
.sm-resq__empty { color: #8FA0B5; font-size: var(--sm-fs-p2); margin: 24px 0 0; }

/* §18 A lone press-inquiries card (2026-08-04). .sm-inqcard is flex:1 for the
   two-card row it was designed for; with the media-kit card gone it would
   stretch the full container at 498px tall for one email address. */
.sm-inq__row .sm-inqcard:only-child { flex: 0 1 640px; height: auto; min-height: 300px; }
@media (max-width: 1100px) { .sm-inq__row .sm-inqcard:only-child { flex: 1 1 auto; } }

/* §19 404 (2026-08-04). Neither site had a 404 template — both fell through to
   index.html, which is an unstyled title/excerpt fallback. Lives in the parent
   so maritime gets it too. No hero image on purpose: a missing page should load
   instantly and not pretend to be a destination. */
.sm-notfound { position: relative; padding: 220px 0 160px; background: #081220; overflow: clip; }
.sm-notfound__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; max-width: 640px; }
.sm-notfound__title { font-size: clamp(44px, 6vw, 76px); line-height: 1.05; font-weight: 700; margin: 0; text-transform: none; }
.sm-notfound__lead { font-size: var(--sm-fs-body); line-height: var(--sm-lh-body); color: #C7D1E0; margin: 0; }
.sm-notfound__btns { margin-top: 12px; display: flex; gap: 18px; flex-wrap: wrap; }
.sm-notfound__gridfx { position: absolute; inset: 0; z-index: 0; }
@media (max-width: 900px) { .sm-notfound { padding: 160px 0 110px; } }

/* §20 Megamenu panel, rebuilt to echo the homepage hero cards (2026-08-04).
   The corporate site is the hub: each mega panel is a domain CARD (imagery,
   kicker, headline, one-liner, explicit CTA) beside a product router, matching
   the hero exactly so the nav previews the page. Products and divisions live on
   their own WordPress installs, so most of these links are outbound. */
.sm-mega { align-items: stretch; padding: 28px; gap: 28px; }
.sm-mega__feature { position: relative; flex: 0 0 372px; overflow: clip; border: 1px solid rgba(255,255,255,.14); background: #0B1420; display: flex; flex-direction: column; justify-content: flex-end; min-height: 300px; transition: border-color .25s var(--sm-ease); }
.sm-mega__feature:hover { border-color: rgba(255,255,255,.36); }
.sm-mega__media { position: absolute; inset: 0; height: auto; border: 0; background: none; }
.sm-mega__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .5; transition: opacity .3s var(--sm-ease), transform .6s var(--sm-ease); }
.sm-mega__feature:hover .sm-mega__img { opacity: .62; transform: scale(1.03); }
.sm-mega__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,14,22,.15) 0%, rgba(8,14,22,.94) 100%); }
.sm-mega__fbody { position: relative; display: flex; flex-direction: column; gap: 9px; padding: 24px 26px; }
.sm-mega__kicker { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.sm-mega__ftitle { color: #fff; font-weight: 700; font-size: 21px; line-height: 1.2; }
.sm-mega__fdesc { color: #C6CFDB; font-size: 13px; line-height: 1.5; }
.sm-mega__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 13px; font-weight: 600; color: #fff; }

/* Product rows: brand-coloured name, descriptor, arrow — the energy router.
   These are full-width stacked rows now, so the column rules from the old
   icon-tile design (2-up by default, 3-up via --n3) have to be overridden —
   otherwise three products sit side by side at full panel height. */
.sm-mega__list,
.sm-mega__list--n1,
.sm-mega__list--n2,
.sm-mega__list--n3,
.sm-mega__list--n4,
.sm-mega__list--n6 {
	grid-template-columns: 1fr;
	/* Rows divide the panel height rather than stacking from the top: content-height
	   rows left a gap under the last one (three 72px rows in a 300px panel = 64px
	   of dead space). grid-auto-rows:1fr splits the space evenly however many
	   products a domain has, so the column always reaches the bottom. */
	grid-auto-rows: 1fr;
	align-content: stretch;
	gap: 10px;
}
.sm-mega__item { align-items: center; justify-content: space-between; gap: 14px; padding: 15px 16px; border: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.025); }
.sm-mega__item:hover { background: rgba(var(--sm-accent-rgb),.10); border-color: rgba(255,255,255,.28); }
.sm-mega__tx { gap: 5px; min-width: 0; }
.sm-mega__name { font-size: 14px; letter-spacing: 2.4px; text-transform: uppercase; }
.sm-mega__desc { font-size: 12.5px; line-height: 1.45; color: #8FA0B5; }
.sm-mega__go { flex: 0 0 auto; display: inline-flex; color: #fff; opacity: .55; transition: opacity .2s var(--sm-ease); }
.sm-mega__item:hover .sm-mega__go { opacity: 1; }

/* Per-domain and per-product accents, same tokens the hero and hub cards use. */
.sm-mega--maritime .sm-mega__kicker, .sm-mega--maritime .sm-mega__cta { color: var(--sm-theia); }
.sm-mega--energy   .sm-mega__kicker, .sm-mega--energy   .sm-mega__cta { color: var(--sm-hyperion); }
.sm-mega__name--theia    { color: var(--sm-theia); }
.sm-mega__name--hyperion { color: var(--sm-hyperion); }
.sm-mega__name--vulcan   { color: var(--sm-vulcan); }
.sm-mega__name--basiniq  { color: #E9EDF2; }

/* A product can carry its own capability links (third menu level). This is what
   fills a single-product domain's panel — a nav should offer destinations, not a
   paragraph. The row becomes a small header with a scannable two-column list
   under it. */
.sm-mega__row { display: flex; flex-direction: column; min-width: 0; }
.sm-mega__row--deep { border: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.025); }
.sm-mega__row--deep .sm-mega__item { border: 0; background: none; padding-bottom: 10px; }
.sm-mega__row--deep:hover { border-color: rgba(255,255,255,.2); }
.sm-mega__caps { list-style: none; margin: 0; padding: 0 16px 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 14px; }
.sm-mega__cap { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: 12.5px; line-height: 1.3; color: #A7B4C4; text-decoration: none; transition: color .16s var(--sm-ease); }
.sm-mega__cap::before { content: ""; flex: 0 0 4px; width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .55; }
.sm-mega__cap:hover { color: #fff; }
.sm-mega__cap:hover::before { background: var(--sm-accent); opacity: 1; }

/* One-product domains: the row+capabilities block fills the panel itself now. */
.sm-mega--maritime .sm-mega__feature { min-height: 236px; }
.sm-mega__list--n1 .sm-mega__name { font-size: 15px; }
@media (max-width: 900px) { .sm-mega__caps { grid-template-columns: 1fr; } }
@media (max-width: 1180px) { .sm-mega__feature { flex: 0 0 300px; } }

/* Real bios run to several paragraphs, and a <p> cannot contain paragraphs, so
   the modal's bio container is a div now (2026-08-04). */
.sm-biomodal__text p { margin: 0 0 16px; font-size: inherit; line-height: inherit; color: inherit; }
.sm-biomodal__text p:last-child { margin-bottom: 0; }

/* Portrait normaliser (2026-08-04). Opt-in per person via 'treat' => true in the
   pattern data. Some supplied headshots are white-background studio shots while
   the rest of the set is dark and treated, which makes one card glare out of the
   row. Applying this to every portrait would over-darken the ones already
   treated, so it is deliberately opt-in rather than global. */
.sm-biocard__photo--treat { position: relative; }
.sm-biocard__photo--treat img { filter: grayscale(.35) brightness(.58) contrast(1.12); }
.sm-biocard__photo--treat::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(10,28,46,.42) 0%, rgba(8,18,32,.30) 100%);
	mix-blend-mode: multiply;
}
