/* ==== 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) ====
   Color tokens alias the theme.json presets (same values), so Site Editor →
   Styles → Colors edits retint the whole component system; the literal is the
   fallback if global styles are ever absent. SVGs loaded as <img> still need
   literal hex — vars never resolve there. */
:root {

  --sm-deep:       var(--wp--preset--color--deep, #161F2D);
  --sm-royal:      var(--wp--preset--color--royal, #001857);
  --sm-night:      var(--wp--preset--color--night, #05080F);
  --sm-white:      var(--wp--preset--color--white, #FFFFFF);
  --sm-body-dark:  var(--wp--preset--color--body-dark, #C7D1E0);
  --sm-mute:       var(--wp--preset--color--mute, #C2C6D8);
  --sm-edge:       var(--wp--preset--color--edge, #E9E9E9);
  --sm-hud:        var(--wp--preset--color--hud, #B2BFD1);


  --sm-paper:      var(--wp--preset--color--paper, #FFFFFF);
  --sm-ink:        var(--wp--preset--color--ink, #0E1722);
  --sm-ink-soft:   var(--wp--preset--color--ink-soft, #55657A);
  --sm-card:       var(--wp--preset--color--card, #F4F6F9);
  --sm-hairline:   var(--wp--preset--color--hairline, #E3E7ED);
  --sm-mist:       var(--wp--preset--color--mist, #97A4B6);
  --sm-slate:      var(--wp--preset--color--slate, #262F3F);
  --sm-steel:      var(--wp--preset--color--steel, #5E6E82);


  --sm-theia:      var(--wp--preset--color--theia, #00A1E1);
  --sm-hyperion:   var(--wp--preset--color--hyperion, #00E96C);
  --sm-vulcan:     var(--wp--preset--color--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;
  }
  /* Bands with bespoke desktop paddings (.sm-hub/.sm-statement2/.sm-related…
     88/100 etc.) rejoin the mobile band token here — (0,2,0) outranks every
     single-class band default. Heroes keep their padding-block:0 (the content
     wrapper owns hero spacing). Baked per-section padding attrs (inline
     styles) still win — pages carry them as min(<value>px, section-y) so they
     tighten themselves; only 0px and >120px values stay literal. */
  .synmax .sm-section:not(.sm-hero) { padding-block: var(--sm-section-py); }
  /* The article band's 216px top is nav clearance + air — the one baked value
     over 120px, so min(216, section-y) would shrink desktop; the attr stays
     literal and this clamps phones to nav + token instead. */
  .synmax .sm-article.sm-section { padding-top: calc(var(--sm-nav-h) + var(--sm-section-py)) !important; }
}

/* ==== 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);
  font-weight: 300;
  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,
.sm-pgn :is(a:not(.sm-pgn__nav), .sm-pgn__cur, .page-numbers:not(.dots))::before,
.sm-depts::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,
body.synmax .sm-pgn :is(a:not(.sm-pgn__nav), .sm-pgn__cur, .page-numbers:not(.dots))::before {
  transition: --_bs 1s ease-in-out, opacity 1s ease-in-out, --_bc 1s ease-in-out;
}
body.synmax .sm-pgn :is(a:not(.sm-pgn__nav), .sm-pgn__cur, .page-numbers:not(.dots)):is(:hover, :focus-visible)::before,
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; }
}
/* sm-anim-off = animations OFF, including in the wedged-compositor state the
   anim.js watchdog detects (frozen document.timeline pins every transition at
   t=0, i.e. invisible). Killing transitions makes the final values apply
   instantly, whatever the clock is doing. */
html.sm-anim-off *, html.sm-anim-off *::before, html.sm-anim-off *::after {
  transition: none !important;
  animation: none !important;
}
/* 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; }
/* Core gives every group WITH a background `padding: 1.25em 2.375em` — since
   the sections carry has-background as block attributes now, that rule was
   silently adding 42.75px side padding to every band (a third of a phone
   screen). Sections manage their own rhythm; the gutters live on .sm-container. */
.sm-section.wp-block-group.has-background { padding-inline: 0; }

.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%; 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; --bracket: #FFFFFF;
}
.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; }

/* The line inherits currentColor, so the separator block's native Color control
   (text color = inline style or !important preset class) restyles it; the
   component default arrives via `color:` instead of border-top-color. */
.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 currentColor; background: none;
  color: var(--card-divider);
}
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; }
.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:      30px;                            
}


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); }

/* Rules and separators sweep in left-to-right (2026-08-04) instead of riding
   the generic slide-up: origin left + scaleX, same duration family as the
   eyebrow flank lines above. Overrides the translateY the .sm-hero__rule
   inherits from the entrance list (this block sits later in the cascade). */
html.sm-anim .sm-hero__rule,
html.sm-anim hr.wp-block-separator.sm-divider {
  transform-origin: left center;
  transition: opacity var(--sm-rv-dur) var(--sm-ease), transform .7s var(--sm-ease) .14s;
}
html.sm-anim:not(.sm-anim-off) .sm-hero:not(.is-in) .sm-hero__rule,
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) hr.wp-block-separator.sm-divider {
  opacity: 0; 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 1px 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); font-weight: 300; 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-steel); color: var(--sm-steel); }
.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.wp-block-cover { padding: 0; min-height: 0; align-items: stretch; justify-content: flex-start; }
.sm-split > .wp-block-cover__inner-container { width: 100%; max-width: none; }
.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%); }
/* The panel's gradient is a backdrop FOR its photo. With no photo in it, it would
   sit as an opaque block over the section's cover image — so drop it and let the
   band photo run edge to edge behind the HUD chrome. */
.sm-split__panel:not(:has(.sm-split__photo)) { background: none; }
.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); }
/* Photo grading under the directional veils (Figma 21:936): the design runs the
   photo through a second soft-light pass plus a blue wash before the veils —
   ovS approximates the soft-light image-on-itself pass with a flat ink layer
   (midtone darkening), ovW is the design's literal rgba(0,50,100,.12) wash. */
.sm-split__ovS { position: absolute; inset: 0; background: #081220; mix-blend-mode: soft-light; pointer-events: none; }
.sm-split__ovW { position: absolute; inset: 0; background: rgba(0,50,100,.12); pointer-events: none; }
.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; }
/* HUD chrome — measured from Figma "Revamp-2026" 21:936 (1440 frame, 720 panel,
   672 band). The band photo is HEIGHT-locked (2560x1195 cover at 672 = one scale
   at every viewport) and anchored at focal-x 75%, so the ship keeps a constant
   size and slides at 75% of the panel-width rate. The chrome therefore uses
   FIXED design-px sizes and `calc(75% - offset)` lefts (offset = 540 - designX,
   540 being 75% of the design's 720 panel): exact design at 1440, and it stays
   registered on the ship at any other width. Re-derive if the focal-x changes. */
.sm-split__scan { position: absolute; left: calc(75% - 486px); top: 28px; width: 602.526px; height: 564.217px; }
.sm-split__monitor { position: absolute; left: calc(75% - 465px); top: 162px; font-size: var(--sm-fs-body); font-weight: 700; letter-spacing: 0; line-height: 26px; color: rgba(178,191,209,.8); text-shadow: 0 4px 4px rgba(0,0,0,.25); }
.sm-split__track { position: absolute; left: calc(75% + 1px); top: 207px; font-size: var(--sm-fs-p2); font-weight: 700; letter-spacing: 0; line-height: 22px; color: rgba(105,224,245,.8); }
.sm-split__readouts { position: absolute; left: calc(75% - 59px); top: 270px; display: flex; flex-direction: column; gap: 12px; padding: 15.363px 19.204px; border: .2px solid #fff; border-radius: 0 3.841px 3.841px 3.841px; -webkit-backdrop-filter: blur(3.841px); backdrop-filter: blur(3.841px); font-size: var(--sm-fs-p2); line-height: 22px; color: rgba(178,191,209,.85); text-shadow: 0 4px 4px rgba(0,0,0,.25); white-space: nowrap; }
.sm-split__coords { position: absolute; left: calc(75% - 28px); top: 513px; display: flex; flex-direction: column; gap: 15.363px; padding: 15.363px 19.204px; border: .2px solid #fff; border-radius: 0 3.841px 3.841px 3.841px; -webkit-backdrop-filter: blur(3.841px); backdrop-filter: blur(3.841px); font-size: var(--sm-fs-split-sub); line-height: 20px; color: #B2BFD1; text-shadow: 0 4px 4px rgba(0,0,0,.25); white-space: nowrap; }
.sm-split__coords span { opacity: .8; }
@media (max-width: 980px) {
  /* The ship-registered calc(75% - Npx) positions assume the desktop panel
     geometry — on the 480-tall mobile band they scatter (monitor lands
     off-left, readouts clip the edge), so the whole HUD chrome rests and the
     photo carries the band. img-qualified where `.synmax img`'s display:block
     outguns a bare class; the rings outgrow the auto-height hub panels. */
  img.sm-split__scan, .sm-split__coords, .sm-split__readouts, .sm-split__monitor, .sm-split__track, figure.sm-hub__rings { display: none; }
}
.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 { color: rgba(255,255,255,.2); }
.sm-split__copy p { font-size: var(--sm-fs-body); font-weight: 300; 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: 728px; overflow: clip; background: rgba(0,0,0,.15); }
.sm-hub--maritime .sm-hub__panel {height: 643px; }

.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; }
/* The dot matrix + corner block anchor to the panel BOTTOM (they sat at the
   744px design's top coordinates before, so any shorter panel — the editor
   can resize them — pushed the bottom chrome out of view). In the design they
   occupy the last 96px of the panel; same maths from the other edge. */
.sm-hub__dotblock { position: absolute; left: 98px; bottom: 0; width: 96px; height: 96px; }
.sm-hub__corner { position: absolute; left: 0; bottom: 0; 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; backdrop-filter: blur(7.90px); --bracket: #00E96C; --bw: 27px; }
.sm-hub__explore img { width: 24px; height: 24px; display: block; }

/* The design column is justify-between with the card at its END — anchor to
   the panel BOTTOM (the fixed top:167 was 744px-design maths; shortened
   panels clipped the card's last row). Top gap flexes with panel height. */
.sm-hub__card { position: absolute; left: calc(50% + 32px); bottom: 0; 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); font-weight: 300; line-height: var(--sm-lh-body); color: #E9E9E9; margin: 0; text-box: trim-both cap alphabetic; }
.sm-hub hr.wp-block-separator.sm-divider { 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; }
/* Product rows — Figma 117:4514: a 50/50 flex split (image and box equal at
   any width; the old fixed 248px image drifted from its siblings), 32px
   brackets in each product's own colour (:has() keys off the name class). */
.sm-hub__prow { display: flex; align-items: stretch; gap: 8px; width: 497px; height: 112px; max-width: 100%; }
.sm-hub__pimg { flex: 1 1 0; width: auto; height: 100%; min-width: 0; margin: 0; }
.sm-hub__pimg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sm-hub__pbox { flex: 1 1 0; min-width: 0; font-weight: 300; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px 20px; backdrop-filter: blur(7.90px); 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: 32px; }
.sm-hub__pbox:has(.sm-hub__pname--hyperion) { --bracket: var(--sm-hyperion); }
.sm-hub__pbox:has(.sm-hub__pname--vulcan) { --bracket: var(--sm-vulcan); }
.sm-hub__pbox:has(.sm-hub__pname--theia) { --bracket: var(--sm-theia); }
.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; }

/* Generic parallax band: add sm-pxband to a section and drop a full-bleed
   sm-pxband__bg image block inside it — same clip-window-over-fixed-<img>
   mechanism as the hub maps (staging equivalent: a transparent band over the
   pinned page backdrop). The scrim keeps content legible. */
.sm-pxband { position: relative; }
.sm-pxband__bg { position: absolute; inset: 0; margin: 0; overflow: hidden; }
.sm-pxband__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sm-pxband__bg::after { content: ""; position: absolute; inset: 0; background: rgba(8,18,32,.72); }
.sm-pxband > *:not(.sm-pxband__bg) { position: relative; z-index: 1; }
@media (min-width: 981px) and (max-width: 1920px) {
  .sm-pxband { clip-path: inset(0); }
  .synmax .sm-pxband > figure.sm-pxband__bg img { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; object-fit: cover; }
  .editor-styles-wrapper .sm-pxband > figure.sm-pxband__bg img { position: static; width: 100%; height: 100%; }
}

/* ==== Maritime hub band (Figma 116:4088) + parallax maps ==== */
/* Both intelligence bands pin their map to the viewport while the section
   scrolls over it — the staging reference does this with
   background-attachment:fixed; this is the <img> equivalent (clip-path window
   onto a viewport-fixed image) so the block stays editor-replaceable. Off on
   mobile, and off above 1920px where .wp-site-blocks is zoomed (a zoomed
   ancestor turns position:fixed into absolute and the map would drift). */
@media (min-width: 981px) and (max-width: 1920px) {
  .sm-hub__panel { clip-path: inset(0); }
  .synmax .sm-hub__media figure.sm-hub__map img { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; object-fit: cover; object-position: 50% 38%; }
  .editor-styles-wrapper .sm-hub__media figure.sm-hub__map img { position: static; width: 100%; height: 100%; }
}
.sm-hub__rings { position: absolute; left: 147px; top: 245px; width: 422px; height: auto; margin: 0; pointer-events: none; }
/* Design 116:3903 — the maritime band's extra TOP fade (282px, .88). */
.sm-hub--maritime .sm-hub__media::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 282px; background: linear-gradient(0deg, rgba(8,18,32,0) 23.4%, #081220 88.4%); opacity: .88; pointer-events: none; }
/* This export is much darker than the energy map, so the shared fades crush
   it to black — calibrated against the 116:4088 render: lift the image, ease
   the two shared fades for this band only. */
.sm-hub--maritime figure.sm-hub__map img { filter: brightness(1.35); }
.sm-hub--maritime .sm-hub__fadeR { opacity: .3; }
.sm-hub--maritime .sm-hub__fadeB { opacity: .55; }
.sm-hub__explore--blue { background: rgba(0,161,225,.04); --bracket: #00A1E1; }
/*.sm-hub--maritime .sm-hub__head .sm-hub__title { font-size: 48px; line-height: 58px; }*/
/* Same 497px/8px geometry as the energy rows so the image columns line up
   across bands (the design's 510/4 made Theia's image read wider); only the
   height keeps its design 160. */
.sm-hub__prow--theia { height: 160px; }
.sm-hub__prow--theia .sm-hub__pbox { --bracket: #00A1E1; gap: 8px; }
.sm-hub__plogo { width: 126px; height: 24px; margin: 0; }
.sm-hub__plogo img { width: 126px; height: 24px; }
@media (max-width: 1280px) {
  .sm-hub__card { left: auto; right: var(--sm-gutter); }
}
@media (max-width: 900px) {
  /* .sm-hub qualifier: ties the per-band fixed heights (.sm-hub--maritime
     .sm-hub__panel, 0,2,0) so auto wins by order — else the panel stays 643px
     on phones and overflow:clip cuts the in-flow card. */
  .sm-hub .sm-hub__panel { height: auto; }
  .sm-hub__card { position: relative; left: 0; right: 0; top: 0; bottom: auto; 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-npvhead .sm-npvhead__all .sm-btn { height: 54px; }*/
.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: 10px; 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); font-weight: 300; 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); font-weight: 300; 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 { 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); font-weight: 300; 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: 1px solid rgba(255, 255, 255, .14); 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; }
/* Featured Posts hero card (news-press) — Figma 428:7929 / 43:718: 32px panel,
   date pushed to the row's far end, H3 title, borderless 12/4 pills, and a
   compact bottom-right Read More (44px dim, 24px white brackets) instead of
   the full-width bar. */
/* Panel = a real two-column grid (Figma 43:718 / 559): the META row (tags +
   date) spans BOTH columns so the date reaches the panel's far edge; title,
   divider and excerpt keep to column 1; the CTA gets its own column, bottom-
   aligned with the excerpt row. __text promotes its children into the grid. */
.sm-npvfeature--wide .sm-npvfeature__panel { position: relative; padding: 32px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px 36px; }
.sm-npvfeature--wide .sm-npvfeature__text { display: contents; }
.sm-npvfeature--wide .sm-npvfeature__meta { grid-column: 1 / -1; }
.sm-npvfeature--wide :is(.sm-npvfeature__title, hr.sm-divider, .sm-npvfeature__ex) { grid-column: 1; }
.sm-npvfeature--wide .sm-npvfeature__cta { grid-column: 2; grid-row: 4; }
.sm-npvfeature--wide .sm-npvfeature__meta { display: flex; align-items: center; gap: 8px; width: 100%; }
.sm-npvfeature--wide .sm-npvcard__date { margin-left: auto; }
.sm-npvfeature--wide .sm-npvtag--flat { border: 0; height: auto; padding: 4px 12px; opacity: 1; color: rgba(255,255,255,.8); }
.sm-npvfeature--wide .sm-npvfeature__title { font-size: var(--sm-fs-h3); line-height: 40px; font-weight: 700; text-transform: capitalize; }
/* The design clamps the excerpt to two lines beside the button's column. */
.sm-npvfeature--wide .sm-npvfeature__ex { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sm-npvfeature--wide .sm-npvfeature__cta { width: auto; }
@media (max-width: 780px) {
	.sm-npvfeature--wide .sm-npvfeature__panel { grid-template-columns: 1fr; }
	.sm-npvfeature--wide .sm-npvfeature__cta { grid-column: 1; grid-row: auto; }
	.sm-npvfeature--wide .sm-npvfeature__ex { -webkit-line-clamp: 3; }
	.sm-npvfeature--wide .sm-npvfeature__cta .sm-btn { width: 100%; }
}
.sm-npvfeature--wide .sm-npvfeature__cta .sm-btn { width: auto; --bw: 24px; }
.sm-npvfeature--wide .sm-npvfeature__cta .sm-btn > a { font-size: var(--sm-fs-nav-link) !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; }
.sm-loccard { position: relative; width: 400px; height: 575px; flex: 0 0 400px; 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 { 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%;} }


/* Department contacts — Figma 1073:18809: a seamless 2x2 grid of stacked cells
   (Bold 16/22 title, 20px rule, 14/20 value at .6) with ONE pair of 20px white
   viewfinder brackets on the grid itself (cells carry none — the editor's
   sm-cnr-*-off toggles on the cells stay honored). */
.sm-depts { position: relative; display: flex; flex-direction: column; gap: 0; width: 500px; --bracket: #FFFFFF; --sm-bracket-size: 20px; }
.sm-depts__row { display: flex; gap: 0; }
.sm-dept { position: relative; flex: 1 1 50%; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; padding: 12px; background: rgba(0, 0, 0, .15); border: 1px solid rgba(233, 233, 233, .12); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); --bw: 20px; }
.sm-dept__label { font-size: var(--sm-fs-p2); font-weight: 700; line-height: 22px; color: #fff; margin: 0; white-space: nowrap; }
.sm-dept__div { width: 20px; height: 1px; background: rgba(255,255,255,.5); flex: 0 0 auto; }
.sm-dept__val { font-size: var(--sm-fs-split-sub); line-height: 20px; color: #E4E4E4; opacity: .6; margin: 0; white-space: nowrap; }
.sm-cform { position: absolute; top: 196px; left: calc(50% + 117px); 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: none; border-radius: 2px; cursor: pointer; font-size: var(--sm-fs-nav-link); font-weight: 600; line-height: unset; 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; 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%; border-bottom: 1px solid rgba(233,233,233,.2); }
.sm-afilter__chips { display: flex; gap: 12px; align-items: center; }
.sm-achip { height: 43px; display: inline-flex; align-items: center; padding: 0 16px; border: none; border-radius: 2px; font-size: var(--sm-fs-p2); color: #E9E9E9; background: transparent; margin: 0; text-decoration: none; }
.sm-achip--active { background: rgba(38, 47, 63, 0.8); color: #fff; border-bottom: 1px solid; border-color: var(--sm-hyperion); font-weight: 600; }

a.sm-achip { color: #E9E9E9; }
a.sm-achip--active { color: #fff; }
.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: stretch; }
.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; }
/* Mini card — Figma 400:10029: 12px padding all round, 20 gap, 114px image,
   borderless filled pills (16/8), SemiBold 20/28 title clamped to two lines. */
.sm-newsmini { display: flex; gap: 20px; align-items: flex-start; padding: 12px; border: 1px solid rgba(233,233,233,.2); width: 100%; }
.sm-newsmini__img { width: 114px; height: 114px; flex: 0 0 114px; margin: 0; }
.sm-newsmini__img img { width: 114px; height: 114px; object-fit: cover; display: block; }
.sm-newsmini__c { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.sm-newsmini__tags { display: flex; gap: 8px; }
.sm-newsmini .sm-npvtag--flat { border: 0; height: auto; padding: 8px 16px; opacity: 1; color: rgba(255,255,255,.8); }
.sm-newsmini__title { font-size: 20px; font-weight: 600; line-height: 28px; color: #E9E9E9; margin: 0; text-transform: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.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; }
/* Current page = the .sm-btn--teal treatment + white brackets (the static/AJAX
   pager's chip — same recipe as .page-numbers.current). */
.sm-pgn .sm-pgn__cur { position: relative; 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); --bracket: #FFFFFF; --sm-bracket-size: 14px; }
.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; }
/* Current page = the .sm-btn--teal treatment with WHITE viewfinder brackets;
   number links get the same fill on hover, brackets fading in while they
   extend (the shared painter + hover-extension rules carry pager selectors). */
.sm-pgn .page-numbers.current { position: relative; 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); --bracket: #FFFFFF; --sm-bracket-size: 14px; }
.sm-pgn :is(a:not(.sm-pgn__nav), a.page-numbers) { position: relative; --bracket: #FFFFFF; --sm-bracket-size: 14px; }
.sm-pgn :is(a:not(.sm-pgn__nav), a.page-numbers)::before { opacity: 0; }
.sm-pgn :is(a:not(.sm-pgn__nav), a.page-numbers):hover { 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); }
.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: 780px) {
  /* single-column news cards; excerpt+CTA stack (side-by-side squeezed the
     excerpt to a one-word ribbon at 390); the header row wraps. View All
     moves to the BOTTOM of the band — the section grows to make its room
     (!important: the band's padding is a baked inline attr). */
  .sm-npv__grid { grid-template-columns: 1fr; }
  .sm-npvcard__bottom { flex-direction: column; align-items: stretch; gap: 16px; }
  .sm-npvcard__cta { width: 100%; }
  .sm-npvcard__cta .sm-btn, .sm-npvcard__cta .wp-block-read-more { width: 100% !important; }
  .sm-npvhead { flex-wrap: wrap; row-gap: 16px; }
  .sm-npv.sm-section { position: relative; padding-bottom: calc(var(--sm-section-py) + 68px) !important; }
  .sm-npv .sm-npvhead__all { position: absolute; left: var(--sm-gutter); right: var(--sm-gutter); bottom: var(--sm-section-py); margin: 0; }
  .sm-npv .sm-npvhead__all .sm-btn { width: 100%; }
}
@media (max-width: 781px) { .sm-npv__grid { grid-template-columns: repeat(1, 1fr);} }
@media (max-width: 640px) {
  /* grid/flex items default min-width:auto — the featured card's nowrap meta
     row (pill + date) sets a 408px min-content that overflows the 1fr track
     and bleeds past the right gutter. Let the chain shrink, wrap the meta. */
  .sm-npv__grid > *, .sm-npv__gridrow > * { min-width: 0; }
  .sm-npvfeature__meta { flex-wrap: wrap; row-gap: 8px; }
  .sm-npvfeature--grid { min-height: 480px; }
}


.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); color: #fff; line-height: unset !important; --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; }
/* The back chip is a header row like the homepage's NEWS & PRESS PREVIEW
   eyebrow: a --divider hairline runs from the chip's right edge out through
   the container gutter (same off-edge bleed as .sm-sectionhead::after). */
.sm-article__back { margin: 0; display: flex; align-items: center; gap: 12px; width: 100%; --edge: max(var(--sm-gutter), (var(--sm-wrap, var(--sm-container)) - var(--sm-container)) / 2); }
.sm-article__back::after { content: ""; height: 1px; background: var(--divider); flex: 1; margin-right: calc(-1 * var(--edge)); transform-origin: right center; }
html.sm-anim .sm-article__back::after { transition: transform .7s var(--sm-ease) .14s; }
html.sm-anim:not(.sm-anim-off) .sm-section:not(.is-in) .sm-article__back::after { transform: scaleX(0); }

.sm-article__back .sm-btn { height: 44px; font-size: var(--sm-fs-nav-link); font-weight: 600; padding: 0; text-transform: none; --bw: 16px; }
.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 { 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); }
/* The block-gap reset zeroes paragraph margins, so multi-paragraph copy needs
   flex+gap (same fix as .sm-gap__copy). 22px = the main site's measured
   paragraph separation (1.2em at 18px). */
.sm-approach__copy { display: flex; flex-direction: column; gap: 22px; }
.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;
  /* The HUD cells/grid paint on this element's ::before/::after at z 2; the
     portrait must sit ABOVE that chrome, so the photo gets z 3 below.
     isolation confines the photo's z to the media box — without it the photo
     would join the card's stacking context and cover the glass panel and the
     arrow chip (siblings, also z 2). */
  isolation: isolate; }
.sm-biocard__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sm-biocard__media > .sm-biocard__photo { z-index: 1; }
.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; } }
/* Phones keep a 2-up bio grid — the row wrappers dissolve so every card in
   the section flows into one continuous stream (a 3-card DOM row no longer
   strands a hole beside its odd card). All cards are exactly half-width.
   The panel's dots ornament goes; the freed width keeps names on one line,
   long ones wrap (desktop nowrap is off). */
@media (max-width: 700px) {
  .sm-team__grid { flex-direction: row; flex-wrap: wrap; }
  .sm-team__row { display: contents; }
  .sm-biocard, .sm-biocard--sm { flex: 0 0 50%; height: 340px; padding: 10px; }
  .sm-biocard__media { inset: 10px; }
  .sm-biocard__radar, .sm-biocard--sm .sm-biocard__radar { width: 72px; height: 72px; }
  .sm-biocard__view { width: 44px; height: 44px; right: 20px; top: 20px; --bw: 16px; }
  .sm-biocard__view img { width: 18px; height: 18px; }
  .sm-biocard__panel, .sm-biocard--sm .sm-biocard__panel { padding: 14px 10px; gap: 8px; --bw: 18px; }
  /* (0,3,0): master.css sets 24/22px at (0,2,0) and loads after this sheet,
     so the phone size must outrank it, not just come later. */
  .sm-team .sm-biocard .sm-biocard__name { font-size: 15px; line-height: 20px; white-space: normal; }
  .sm-biocard__role, .sm-biocard--sm .sm-biocard__role { font-size: 12px; line-height: 16px; }
  .sm-biocard__dots, .sm-biocard--sm .sm-biocard__dots { display: none; }
}


.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; }
/* 69x103 = the reticle's visible extent in band coordinates (Figma 256:1715), so
   the SVG's viewBox maps 1:1 to band px and the circle/square land on the design's
   measured positions. Was 120x117, which squeezed a whole miniature target symbol
   into the corner instead. */
img.sm-biomodal__hud { position: absolute; left: 0; top: 0; width: 68px; height: 102px; 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; display: flex; gap: 12px; align-items: flex-start; z-index: 2; 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); backdrop-filter: blur(7.90px); }
.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%); }
}
/* Phone modal restack: the desktop band is a fixed 994px composition
   (cutout at left 86, plate floated right) — here the cutout centers in a
   taller band and the plate docks full-width at its foot, below the photo.
   Side HUD clutter (guides/shafts/right scrim) goes; the bio rule's -60px
   ::before would poke out of the 20px panel padding. */
@media (max-width: 640px) {
  .sm-biomodal { padding: 12px; }
  .sm-biomodal__panel { padding: 20px; gap: 20px; max-height: calc(100dvh - 24px); }
  .sm-biomodal__band { height: 470px; flex: 0 0 470px; }
  .sm-biomodal__cutout, img.sm-biomodal__cutout { left: 50%; transform: translateX(-50%); width: 240px; height: 306px; top: -20px; }
  img.sm-biomodal__guides, .sm-biomodal__shaft, .sm-biomodal__rscrim { display: none; }
  img.sm-biomodal__hud { width: 48px; height: 72px; }
  .sm-biomodal__botscrim { background: linear-gradient(180deg, rgba(19,28,42,0) 40%, rgba(19,28,42,.7) 55%, #131C2A 68%); }
  .sm-biomodal__plate { left: 12px; right: 12px; width: auto; top: auto; bottom: 12px; transform: none; padding: 16px; }
  .sm-biomodal__plate::before, .sm-biomodal__plate::after { width: 28px; height: 28px; }
  .sm-biomodal__name { font-size: 22px; line-height: 28px; }
  .sm-biomodal__role { font-size: 15px; line-height: 20px; }
  .sm-biomodal__platedots { width: 28px; height: 28px; flex: 0 0 28px; }
  .sm-biomodal__platedots img { width: 28px; height: 28px; }
  .sm-biomodal__biohead::before { display: none; }
  .sm-biomodal__close { width: 44px; height: 44px; padding: 10px; --bw: 16px; }
  .sm-biomodal__close svg { width: 20px; height: 20px; }
}

/* The closed modal hides itself with visibility/opacity (it stays display:flex so
   the fade can transition) and lifts its panel with transform+opacity. The editor
   canvas has to undo ALL of that, not just the layout bits — resetting display and
   position alone left every modal occupying space while invisible and unselectable,
   so the bio popups could not be edited at all (regressed when the fade-in landed,
   2026-08-03). Keep these in step with the .sm-biomodal closed state above. */
.editor-styles-wrapper .sm-biomodal { display: block; position: static; padding: 0; margin-top: 24px;
  visibility: visible; opacity: 1; pointer-events: auto; transition: none; }
.editor-styles-wrapper .sm-biomodal__backdrop { display: none; }
.editor-styles-wrapper .sm-biomodal__panel { width: auto; max-height: none; overflow: visible; }
.editor-styles-wrapper .sm-biomodal:not(.is-open) .sm-biomodal__panel { opacity: 1; transform: none; transition: none; }



.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; }

/* --flat = the corner-bracket OPT-OUT. sm_btns() puts sm-bracket on every
   button, and the brackets ARE the button div's ::before — so this class (and
   only this class) suppresses them. Don't combine it with a button that the
   design gives brackets to (bit the news-header "View All" 2026-08-04). */
.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; }
/* the bg slot takes a core video block too (about hero) */
.sm-genhero__bg video { width: 100%; height: 100%; object-fit: cover; display: block; }
.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; }

/* Animated HUD target (gen-hud icon:"hud-target-anim") — draw-in choreography
   measured off synmax.com: dot (0s) -> frame (.3s) -> rings inner->outer
   (.5-.8s) -> crosshair lines grow out from center (1.1s) -> label panels
   staggered from 1.8s, glass LAT/LON box last. Hidden states follow the
   sm-anim house convention: they exist ONLY under html.sm-anim:not(.sm-anim-off)
   so the watchdog kill / reduced motion / no-JS render the composed art. */
/* Undimmed (the .85 was tuned for the old img): the design file carries its own
   per-part opacities, and a root opacity would also make the svg its own
   backdrop root — the glass box's backdrop-filter could then only sample the
   svg's thin strokes instead of the earth beneath. z-index 2 floats the box
   above the hero grid's coordinate chips. */
svg.sm-hudtgt { overflow: visible; opacity: 1; z-index: 2; }
.sm-hudtgt .sm-hudtgt__frame,
.sm-hudtgt .sm-hudtgt__c,
.sm-hudtgt .sm-hudtgt__dot,
.sm-hudtgt .sm-hudtgt__dotring { transform-box: view-box; transform-origin: 252.5px 236.5px; }
.sm-hudtgt .sm-hudtgt__ln { transform-box: fill-box; }
.sm-hudtgt .sm-hudtgt__ln--l { transform-origin: 100% 50%; }
.sm-hudtgt .sm-hudtgt__ln--r { transform-origin: 0 50%; }
.sm-hudtgt .sm-hudtgt__ln--t { transform-origin: 50% 100%; }
.sm-hudtgt .sm-hudtgt__ln--b { transform-origin: 50% 0; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__frame,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__c,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__dot,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__dotring { opacity: 0; transform: scale(0); animation: sm-hud-in 1s ease both; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__frame { animation-duration: .8s; animation-delay: .3s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__c--inner { animation-delay: .5s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__c--inner2 { animation-delay: .6s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__c--outer { animation-delay: .7s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__c--outer2 { animation-delay: .8s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__dot,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__dotring { animation-duration: .6s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__dotring { animation-delay: .1s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__ln { opacity: 0; animation: sm-hud-in .6s ease 1.1s both; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__ln--l,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__ln--r { transform: scaleX(0); }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__ln--t,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__ln--b { transform: scaleY(0); }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__lbl,
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__panel { opacity: 0; animation: sm-hud-fade .6s ease both; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__lbl--ais { animation-delay: 1.8s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__lbl--tracking { animation-delay: 2s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__lbl--stack { animation-delay: 2.2s; }
html.sm-anim:not(.sm-anim-off) .sm-hudtgt .sm-hudtgt__panel { animation-duration: .8s; animation-delay: 2.5s; }
@keyframes sm-hud-in { to { opacity: 1; transform: scale(1); } }
@keyframes sm-hud-fade { to { opacity: 1; } }

/* Split-band HUD target (split-chrome deco, Group 1924) — same choreography
   as the hero but SCROLL-triggered: these are transitions that fire when
   anim.js stamps .is-in on the band (the production site's is-active model).
   Position drops the art onto the old composite chrome's grid: at
   left 75%-540px the svg's boxes land where the old HTML labels sat. */
.sm-hudsplit { position: absolute; left: calc(75% - 540px); top: 28px; width: 743px; height: 596px; display: block; pointer-events: none; overflow: visible; }
.sm-hudsplit .sm-hudsplit__frame,
.sm-hudsplit .sm-hudsplit__c { transform-box: view-box; transform-origin: 355.263px 282.156px; transition-property: transform, opacity; transition-timing-function: ease; transition-duration: 1s; }
.sm-hudsplit .sm-hudsplit__frame { transition-duration: .8s; transition-delay: .3s; }
.sm-hudsplit .sm-hudsplit__c--inner { transition-delay: .5s; }
.sm-hudsplit .sm-hudsplit__c--inner2 { transition-delay: .6s; }
.sm-hudsplit .sm-hudsplit__c--outer { transition-delay: .7s; }
.sm-hudsplit .sm-hudsplit__c--outer2 { transition-delay: .8s; }
.sm-hudsplit .sm-hudsplit__ln { transform-box: fill-box; transition-property: transform, opacity; transition-timing-function: ease; transition-duration: .6s; transition-delay: 1.1s; }
.sm-hudsplit .sm-hudsplit__ln--l { transform-origin: 100% 50%; }
.sm-hudsplit .sm-hudsplit__ln--r { transform-origin: 0 50%; }
.sm-hudsplit .sm-hudsplit__ln--t { transform-origin: 50% 100%; }
.sm-hudsplit .sm-hudsplit__ln--b { transform-origin: 50% 0; }
.sm-hudsplit .sm-hudsplit__lbl--ais { transition: opacity .6s ease 1.8s; }
.sm-hudsplit .sm-hudsplit__lbl--tracking { transition: opacity .6s ease 2s; }
.sm-hudsplit .sm-hudsplit__box--readouts { transition: opacity .6s ease 2.2s; }
.sm-hudsplit .sm-hudsplit__box--coords { transition: opacity .8s ease 2.5s; }
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__frame,
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__c { opacity: 0; transform: scale(0); }
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__ln--l,
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__ln--r { opacity: 0; transform: scaleX(0); }
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__ln--t,
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__ln--b { opacity: 0; transform: scaleY(0); }
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__lbl,
html.sm-anim:not(.sm-anim-off) .sm-split:not(.is-in) .sm-hudsplit__box { opacity: 0; }
/* Phones kept the old chrome's reticle + readout box and dropped the loose
   labels + coords panel — mirror that per-part. */
@media (max-width: 760px) {
  .sm-hudsplit .sm-hudsplit__lbl, .sm-hudsplit .sm-hudsplit__box--coords { display: none; }
}

/* About "Our Approach" HUD (approach-chrome deco, Figma 156:2568) — the panel
   IS the art's 610x498 canvas, so the svg pins inset 0 and scales with it.
   Scroll-triggered like the split band: signal-monitor chip and frame first,
   then the reticle locks, the marker pops, the predicted path + ship appear,
   labels and the LAT/LONG box close it out. The old standalone hud img is
   superseded by the reticle baked into this art. */
.sm-approach__panel img.sm-genhud { display: none; }
.sm-hudap { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
.sm-hudap .sm-hudap__frame,
.sm-hudap .sm-hudap__arc { transition: opacity .8s ease .2s; }
.sm-hudap .sm-hudap__lbl--monitor { transition: opacity .6s ease .4s; }
.sm-hudap .sm-hudap__lbl--coordtag { transition: opacity .6s ease .6s; }
.sm-hudap .sm-hudap__reticle,
.sm-hudap .sm-hudap__mark,
.sm-hudap .sm-hudap__ship { transform-box: view-box; transition-property: transform, opacity; transition-timing-function: ease; }
.sm-hudap .sm-hudap__reticle { transform-origin: 348px 227px; transition-duration: .8s; transition-delay: .6s; }
.sm-hudap .sm-hudap__mark { transform-origin: 348.5px 225.5px; transition-duration: .6s; transition-delay: 1s; }
.sm-hudap .sm-hudap__path { transition: opacity .8s ease 1.2s; }
.sm-hudap .sm-hudap__ship { transform-origin: 390px 186px; transition-duration: .6s; transition-delay: 1.4s; }
.sm-hudap .sm-hudap__lbl--task { transition: opacity .6s ease 1.6s; }
.sm-hudap .sm-hudap__lbl--pathlbl { transition: opacity .6s ease 1.8s; }
.sm-hudap .sm-hudap__box { transition: opacity .8s ease 2.1s; }
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__reticle,
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__mark,
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__ship { opacity: 0; transform: scale(0); }
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__frame,
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__arc,
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__path,
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__lbl,
html.sm-anim:not(.sm-anim-off) .sm-approach:not(.is-in) .sm-hudap__box { opacity: 0; }
/* Phones dropped the coordtag + hud chips before; the monitor, box and
   reticle stay. */
@media (max-width: 760px) {
  .sm-hudap .sm-hudap__lbl--coordtag, .sm-hudap .sm-hudap__lbl--task, .sm-hudap .sm-hudap__lbl--pathlbl { display: none; }
}

.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, .sm-resources) .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, .sm-resources) .wp-block-post-terms .wp-block-post-terms__separator { display: none; }
:is(.sm-related, .sm-articles, .sm-spot, .sm-resources) .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, :is(.sm-newscard__cta, .sm-newsfeature__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, :is(.sm-newscard__cta, .sm-newsfeature__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; }
  /* height:auto releases the desktop 112/160px row heights — stacked, the
     image + box need ~250px and a fixed row makes the boxes spill over the
     next band (the mobile "overlapping panels"). */
  .sm-hub__prow { flex-direction: column; height: auto; }
  .sm-hub__pimg { width: 100%; flex: 0 0 auto; height: 140px; }
  .sm-hub__pimg img { width: 100%; }
  .sm-hub__pbox { flex: 0 0 auto; }
  .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;
  }
}

/* Query-driven news band (energy home): post blocks bring their own wrappers
   — title links inherit the card ink, the excerpt's inner <p> inherits the
   card type instead of core defaults. */
.sm-newscard__title a, .sm-newsfeature__title a { color: inherit !important; text-decoration: none; }
.sm-newscard__ex p, .sm-newsfeature__ex p { margin: 0; font-size: inherit; line-height: inherit; color: inherit; font-weight: inherit; }
