.elementor-kit-6{--e-global-color-primary:#14B8AB;--e-global-color-secondary:#0B1B21;--e-global-color-text:#566B73;--e-global-color-accent:#3EEBDD;--e-global-color-ink900:#071317;--e-global-color-ink700:#13282F;--e-global-color-ink600:#1A343C;--e-global-color-linedark:#27505A;--e-global-color-teal700:#0B7A72;--e-global-color-teal600:#0E8C82;--e-global-color-mist:#C9D8DD;--e-global-color-slate:#93A9B1;--e-global-color-white:#FFFFFF;--e-global-color-fog:#F3F7F8;--e-global-color-ice:#E4F1F2;--e-global-color-linelight:#D3E2E5;--e-global-typography-primary-font-family:"Sora";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Manrope";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"JetBrains Mono";--e-global-typography-accent-font-weight:600;--e-global-typography-serif-font-family:"Instrument Serif";--e-global-typography-serif-font-weight:400;--e-global-typography-serif-font-style:italic;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1304px;}.e-con{--container-max-width:1304px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =====================================================================
   BANKER GROUP — website design system
   Every custom property below maps 1:1 to an Elementor Site Setting
   (Global Colors, Global Fonts, Layout). Guide section: Design system.
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  /* Global Colors — system */
  --c-primary: #14B8AB;      /* Primary  : Teal            */
  --c-secondary: #0B1B21;    /* Secondary: Ink             */
  --c-text: #566B73;         /* Text     : Slate on light  */
  --c-accent: #3EEBDD;       /* Accent   : Cyan            */

  /* Global Colors — custom */
  --c-ink-900: #071317;      /* deepest: footer, video scrims */
  --c-ink-800: #0B1B21;      /* dark sections                 */
  --c-ink-700: #13282F;      /* cards on dark                 */
  --c-ink-600: #1A343C;      /* raised cards, chips on dark   */
  --c-line-dark: #27505A;    /* borders on dark               */
  --c-teal-700: #0B7A72;     /* teal text/links on light (AA) */
  --c-teal-600: #0E8C82;     /* hover                         */
  --c-mist: #C9D8DD;         /* body text on dark             */
  --c-slate: #93A9B1;        /* muted text on dark            */
  --c-white: #FFFFFF;
  --c-fog: #F3F7F8;          /* light section background      */
  --c-ice: #E4F1F2;          /* tinted band                   */
  --c-line-light: #D3E2E5;   /* borders on light              */
  --c-heading-light: #0B1B21;

  /* Global Fonts */
  --f-display: "Sora", "Segoe UI", system-ui, sans-serif;
  --f-body: "Manrope", "Segoe UI", system-ui, sans-serif;
  --f-mono: "JetBrains Mono", "Cascadia Mono", Consolas, monospace;

  /* Layout */
  --container: 1240px;
  --gutter: 32px;
  --pad-xl: 136px;          /* hero-adjacent and statement sections */
  --pad-lg: 112px;          /* standard sections */
  --pad-md: 80px;
  --gap: 24px;
  --r-card: 20px;
  --r-btn: 12px;
  --r-pill: 999px;

  --shadow-card: 0 1px 2px rgba(7, 19, 23, .04), 0 12px 32px rgba(7, 19, 23, .07);
  --shadow-lift: 0 2px 4px rgba(7, 19, 23, .06), 0 24px 56px rgba(7, 19, 23, .14);
  --glass-bg: rgba(19, 40, 47, .66);
  --glass-line: rgba(62, 235, 221, .16);
  --ease: cubic-bezier(.2, .7, .2, 1);

  --net: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='208' viewBox='0 0 240 208'%3E%3Cg fill='none' stroke='%2314B8AB' stroke-opacity='.22' stroke-width='1'%3E%3Cpath d='M20 30 L100 18 L150 78 L60 110 Z M100 18 L210 44 L150 78 M150 78 L190 150 L110 176 L60 110 M190 150 L232 110 L210 44'/%3E%3C/g%3E%3Cg fill='%233EEBDD' fill-opacity='.45'%3E%3Ccircle cx='20' cy='30' r='2'/%3E%3Ccircle cx='100' cy='18' r='2.5'/%3E%3Ccircle cx='150' cy='78' r='2'/%3E%3Ccircle cx='60' cy='110' r='2'/%3E%3Ccircle cx='210' cy='44' r='2'/%3E%3Ccircle cx='190' cy='150' r='2.5'/%3E%3Ccircle cx='110' cy='176' r='2'/%3E%3Ccircle cx='232' cy='110' r='2'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- 2. Base & typography ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--f-body); font-size: 16px; line-height: 1.65;
  color: var(--c-text); background: var(--c-white);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3, h4, .display {
  font-family: var(--f-display); font-weight: 600; margin: 0;
  color: var(--c-heading-light); letter-spacing: -.02em; text-wrap: balance;
}
.display { font-size: 76px; line-height: 1.02; letter-spacing: -.028em; }
h1 { font-size: 60px; line-height: 1.04; }
h2 { font-size: 44px; line-height: 1.1; letter-spacing: -.018em; }
h3 { font-size: 22px; line-height: 1.25; letter-spacing: -.01em; }
h4 { font-size: 17px; line-height: 1.35; letter-spacing: 0; }
.lead { font-size: 20px; line-height: 1.55; color: var(--c-text); }
.small { font-size: 14px; line-height: 1.5; }
.accent-text { color: var(--c-teal-700); }
.dark .accent-text { color: var(--c-accent); }

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--f-mono); font-size: 12.5px; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase; color: var(--c-teal-700);
  margin-bottom: 20px;
}
.eyebrow::before {
  content: ""; width: 10px; height: 9px; background: currentColor;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}
.dark .eyebrow { color: var(--c-accent); }

/* dark scope */
.dark { background: var(--c-ink-800); color: var(--c-mist); }
.dark h1, .dark h2, .dark h3, .dark h4, .dark .display { color: var(--c-white); }
.dark .lead { color: var(--c-mist); }
.ink-900 { background: var(--c-ink-900); }
.fog { background: var(--c-fog); }
.ice { background: var(--c-ice); }
.net::before {
  content: ""; position: absolute; inset: 0; background-image: var(--net);
  background-size: 240px 208px; opacity: .55; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
}

/* ---------- 3. Layout ---------- */
.section { position: relative; padding: var(--pad-lg) 0; }
.section.xl { padding: var(--pad-xl) 0; }
.section.md { padding: var(--pad-md) 0; }
.container { position: relative; width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.narrow { max-width: 760px; }
.center { text-align: center; margin-left: auto; margin-right: auto; }
.head { max-width: 820px; margin-bottom: 64px; }
.head.center { text-align: center; }
.head h2 + .lead, .head h1 + .lead { margin-top: 22px; }
.grid { display: grid; gap: var(--gap); }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }
.g6 { grid-template-columns: repeat(6, 1fr); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.split.wide-left { grid-template-columns: 1.15fr .85fr; }
.split.wide-right { grid-template-columns: .85fr 1.15fr; }
.stack > * + * { margin-top: 16px; }

/* ---------- 4. Components ---------- */
/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px; border-radius: var(--r-btn);
  font-family: var(--f-body); font-size: 15px; font-weight: 700; letter-spacing: .01em;
  border: 1px solid transparent; cursor: pointer; white-space: nowrap;
  transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn svg { width: 18px; height: 18px; transition: transform .25s var(--ease); }
.btn:hover svg { transform: translateX(3px); }
.btn-primary { background: var(--c-accent); color: var(--c-ink-900); box-shadow: 0 10px 30px rgba(62, 235, 221, .22); }
.btn-primary:hover { background: var(--c-primary); transform: translateY(-1px); }
.btn-ink { background: var(--c-ink-800); color: var(--c-white); }
.btn-ink:hover { background: var(--c-teal-600); transform: translateY(-1px); }
.btn-ghost { background: transparent; color: var(--c-white); border-color: rgba(255, 255, 255, .34); }
.btn-ghost:hover { border-color: var(--c-accent); color: var(--c-accent); }
.btn-outline { background: transparent; color: var(--c-heading-light); border-color: var(--c-line-light); }
.btn-outline:hover { border-color: var(--c-teal-700); color: var(--c-teal-700); }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--c-teal-700); font-size: 15px; }
.dark .link-arrow { color: var(--c-accent); }
.link-arrow svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.link-arrow:hover svg { transform: translateX(4px); }

/* Chips & tags */
.chip {
  display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 12px;
  border-radius: var(--r-pill); font-family: var(--f-mono); font-size: 11.5px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  background: var(--c-ice); color: var(--c-teal-700);
}
.dark .chip, .chip.on-dark { background: rgba(62, 235, 221, .1); color: var(--c-accent); border: 1px solid rgba(62, 235, 221, .22); }
.chip .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* Hex badge (icon holder) */
.hex {
  width: 56px; height: 50px; display: grid; place-items: center; flex: none;
  background: var(--c-primary); color: var(--c-ink-900);
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}
.hex svg { width: 24px; height: 24px; }
.hex.sm { width: 40px; height: 35px; }
.hex.sm svg { width: 18px; height: 18px; }
.hex.ghost { background: rgba(62, 235, 221, .12); color: var(--c-accent); }

/* Cards */
.card {
  position: relative; background: var(--c-white); border: 1px solid var(--c-line-light);
  border-radius: var(--r-card); padding: 32px; box-shadow: var(--shadow-card);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
a.card:hover, .card.hoverable:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); border-color: rgba(14, 140, 130, .35); }
.card h3 { margin: 18px 0 10px; }
.card p { font-size: 15px; }
.dark .card, .card.dark-card { background: var(--c-ink-700); border-color: var(--c-line-dark); box-shadow: none; color: var(--c-mist); }
.dark .card h3, .card.dark-card h3 { color: var(--c-white); }
.dark a.card:hover { border-color: rgba(62, 235, 221, .45); }
.glass {
  background: var(--glass-bg); border: 1px solid var(--glass-line);
  -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%);
  border-radius: var(--r-card); color: var(--c-mist);
}

/* Stats */
.stat .num {
  font-family: var(--f-display); font-size: 56px; font-weight: 600; line-height: 1;
  letter-spacing: -.03em; color: var(--c-heading-light);
}
.dark .stat .num { color: var(--c-white); }
.stat .num .unit { color: var(--c-primary); }
.stat .label { margin-top: 12px; font-size: 14.5px; line-height: 1.45; color: var(--c-text); max-width: 240px; }
.dark .stat .label { color: var(--c-slate); }
.stat-band { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.stat-band .stat { padding: 8px 36px; border-left: 1px solid var(--c-line-light); }
.stat-band .stat:first-child { padding-left: 0; border-left: 0; }
.dark .stat-band .stat { border-color: var(--c-line-dark); }

/* TRL bar */
.trl { display: grid; grid-template-columns: repeat(9, 1fr); gap: 4px; }
.trl span { height: 8px; border-radius: 4px; background: var(--c-line-light); }
.trl span.on { background: linear-gradient(90deg, var(--c-primary), var(--c-accent)); }
.dark .trl span { background: var(--c-ink-600); }
.trl-meta { display: flex; justify-content: space-between; margin-top: 10px; font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .06em; color: var(--c-text); }
.dark .trl-meta { color: var(--c-slate); }

/* Lists with hex bullets */
.hex-list li { position: relative; padding-left: 28px; margin-bottom: 14px; }
.hex-list li::before {
  content: ""; position: absolute; left: 0; top: .5em; width: 12px; height: 10.5px; background: var(--c-primary);
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}

/* Table (comparison) */
.compare { width: 100%; border-collapse: separate; border-spacing: 0; border-radius: var(--r-card); overflow: hidden; border: 1px solid var(--c-line-light); background: var(--c-white); }
.compare th, .compare td { padding: 20px 24px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-line-light); font-size: 15.5px; }
.compare tr:last-child td { border-bottom: 0; }
.compare thead th { font-family: var(--f-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; background: var(--c-fog); color: var(--c-text); }
.compare thead th.ours { background: var(--c-ink-800); color: var(--c-accent); }
.compare td:first-child { font-weight: 700; color: var(--c-heading-light); width: 22%; }
.compare td.ours { background: rgba(20, 184, 171, .06); color: var(--c-heading-light); font-weight: 600; }

/* Accordion */
.acc { border-top: 1px solid var(--c-line-light); }
.acc-item { border-bottom: 1px solid var(--c-line-light); }
.acc-btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 26px 0; background: none; border: 0; cursor: pointer; text-align: left;
  font-family: var(--f-display); font-size: 19px; font-weight: 600; color: var(--c-heading-light);
}
.acc-btn .pm { width: 28px; height: 28px; flex: none; border-radius: 50%; border: 1px solid var(--c-line-light); position: relative; transition: background .25s, border-color .25s; }
.acc-btn .pm::before, .acc-btn .pm::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: var(--c-heading-light); transform: translate(-50%, -50%); transition: transform .3s var(--ease); }
.acc-btn .pm::after { transform: translate(-50%, -50%) rotate(90deg); }
.acc-item.open .pm { background: var(--c-primary); border-color: var(--c-primary); }
.acc-item.open .pm::after { transform: translate(-50%, -50%) rotate(0); }
.acc-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s var(--ease); }
.acc-item.open .acc-panel { grid-template-rows: 1fr; }
.acc-panel > div { overflow: hidden; }
.acc-panel p { padding: 0 60px 26px 0; }
.dark .acc, .dark .acc-item { border-color: var(--c-line-dark); }
.dark .acc-btn { color: var(--c-white); }
.dark .acc-btn .pm { border-color: var(--c-line-dark); }
.dark .acc-btn .pm::before, .dark .acc-btn .pm::after { background: var(--c-white); }

/* Tabs */
.tabs-nav { display: inline-flex; padding: 6px; gap: 6px; border-radius: var(--r-pill); background: var(--c-ink-700); border: 1px solid var(--c-line-dark); margin-bottom: 48px; }
.tab-btn { border: 0; background: transparent; color: var(--c-mist); padding: 12px 22px; border-radius: var(--r-pill); font-weight: 700; font-size: 14.5px; cursor: pointer; transition: background .25s, color .25s; }
.tab-btn.active { background: var(--c-accent); color: var(--c-ink-900); }
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fadeUp .5s var(--ease); }

/* Steps (horizontal) */
.steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; position: relative; }
.steps::before { content: ""; position: absolute; top: 25px; left: 28px; right: 28px; height: 2px; background: repeating-linear-gradient(90deg, var(--c-primary) 0 8px, transparent 8px 16px); opacity: .7; background-size: 16px 2px; animation: march 1.2s linear infinite; }
.step { position: relative; }
.step .hex { margin-bottom: 22px; font-family: var(--f-mono); font-weight: 700; font-size: 14px; }
.step h4 { margin-bottom: 8px; }
.step p { font-size: 14.5px; line-height: 1.55; }
.dark .step h4 { color: var(--c-white); }

/* Marquee */
.marquee { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee-track { display: flex; gap: 20px; width: max-content; animation: marquee 48s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.logo-tile { width: 196px; height: 92px; flex: none; display: grid; place-items: center; padding: 16px 22px; border-radius: 14px; background: var(--c-white); border: 1px solid var(--c-line-light); }
.logo-tile img { max-height: 58px; width: auto; object-fit: contain; }
.logo-tile.plate-dark { background: #16323A; border-color: #16323A; }
.logo-tile.plate-navy { background: #2C4B9C; border-color: #2C4B9C; }
.logo-tile.plate-green { background: #375622; border-color: #375622; }

/* Forms */
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.form .full { grid-column: 1 / -1; }
.field label { display: block; font-size: 13px; font-weight: 700; letter-spacing: .02em; color: var(--c-heading-light); margin-bottom: 8px; }
.field input, .field select, .field textarea {
  width: 100%; min-height: 52px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--c-line-light);
  background: var(--c-white); font: inherit; font-size: 15.5px; color: var(--c-heading-light); transition: border-color .2s, box-shadow .2s;
}
.field textarea { min-height: 132px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 0; border-color: var(--c-primary); box-shadow: 0 0 0 4px rgba(20, 184, 171, .15); }
.consent { display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; }
.consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--c-teal-600); }

/* ---------- 5. Header ---------- */
.site-header { position: fixed; inset: 0 0 auto; z-index: 100; transition: background .35s var(--ease), box-shadow .35s var(--ease), height .35s var(--ease); }
.site-header .bar { height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 24px; transition: height .35s var(--ease); }
.site-header.solid { background: rgba(7, 19, 23, .92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 1px 0 rgba(62, 235, 221, .1); }
.site-header.solid .bar { height: 72px; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand img { height: 46px; width: auto; transition: height .35s var(--ease); }
.site-header.solid .brand img { height: 40px; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav > li { position: relative; }
.nav > li > a, .nav > li > button {
  display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 16px; border: 0; background: none; cursor: pointer;
  color: rgba(255, 255, 255, .86); font-size: 15px; font-weight: 600; border-radius: 10px; transition: color .2s, background .2s;
}
.nav > li > a:hover, .nav > li > button:hover, .nav > li.open > button { color: var(--c-white); background: rgba(255, 255, 255, .06); }
.nav > li > a.current { color: var(--c-accent); }
.nav .caret { width: 14px; height: 14px; transition: transform .25s; }
.nav > li.open .caret { transform: rotate(180deg); }
.mega {
  position: absolute; top: calc(100% + 14px); left: 50%; width: 920px; transform: translate(-50%, 8px);
  opacity: 0; visibility: hidden; transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
  padding: 28px; display: grid; grid-template-columns: 1.6fr 1fr; gap: 28px; border-radius: 22px;
  background: rgba(11, 27, 33, .97); border: 1px solid var(--glass-line); box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}
.mega.sm { width: 560px; grid-template-columns: 1fr 1fr; }
.nav > li.open .mega { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.mega h6 { margin: 0 0 14px; font-family: var(--f-mono); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--c-slate); }
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.mega-link { display: flex; gap: 14px; align-items: flex-start; padding: 12px; border-radius: 14px; transition: background .2s; }
.mega-link:hover { background: rgba(62, 235, 221, .07); }
.mega-link strong { display: block; color: var(--c-white); font-size: 15px; font-weight: 700; }
.mega-link span { display: block; color: var(--c-slate); font-size: 13px; line-height: 1.4; margin-top: 2px; }
.mega-feature { position: relative; border-radius: 16px; overflow: hidden; min-height: 240px; display: flex; align-items: flex-end; padding: 20px; }
.mega-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mega-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 19, 23, 0) 30%, rgba(7, 19, 23, .92)); }
.mega-feature div { position: relative; z-index: 1; color: var(--c-mist); font-size: 14px; }
.mega-feature strong { display: block; color: var(--c-white); font-family: var(--f-display); font-size: 19px; font-weight: 600; margin-bottom: 6px; }
.header-cta { display: flex; align-items: center; gap: 12px; }
.header-cta .btn { min-height: 46px; padding: 0 20px; font-size: 14.5px; }
.burger { display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .22); background: transparent; cursor: pointer; position: relative; }
.burger span, .burger span::before, .burger span::after { position: absolute; left: 50%; width: 20px; height: 2px; background: var(--c-white); transform: translateX(-50%); transition: transform .3s, top .3s, opacity .3s; content: ""; }
.burger span { top: 50%; }
.burger span::before { top: -6px; left: 0; transform: none; }
.burger span::after { top: 6px; left: 0; transform: none; }
.menu-open .burger span { background: transparent; }
.menu-open .burger span::before { top: 0; transform: rotate(45deg); }
.menu-open .burger span::after { top: 0; transform: rotate(-45deg); }
.mobile-menu { position: fixed; inset: 0; z-index: 99; background: var(--c-ink-900); padding: 104px var(--gutter) 40px; overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.menu-open .mobile-menu { opacity: 1; visibility: visible; }
.mobile-menu a.top { display: block; padding: 16px 0; border-bottom: 1px solid var(--c-line-dark); font-family: var(--f-display); font-size: 24px; font-weight: 600; color: var(--c-white); }
.mobile-menu .sub { padding: 10px 0 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
.mobile-menu .sub a { color: var(--c-slate); font-size: 15px; padding: 6px 0; }
.mobile-menu .btn { width: 100%; margin-top: 28px; }

/* ---------- 6. Footer & CTA band ---------- */
.cta-band { position: relative; overflow: hidden; background: var(--c-ink-800); }
.cta-band .media { position: absolute; inset: 0; }
.cta-band .media img { width: 100%; height: 100%; object-fit: cover; opacity: .42; }
.cta-band .media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 19, 23, .96) 0%, rgba(7, 19, 23, .82) 48%, rgba(7, 19, 23, .45) 100%); }
.cta-band .container { position: relative; }
.cta-band h2 { max-width: 760px; font-size: 52px; }
.cta-contacts { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 36px; color: var(--c-mist); font-size: 15px; }
.cta-contacts a { display: inline-flex; align-items: center; gap: 10px; }
.cta-contacts a:hover { color: var(--c-accent); }
.cta-contacts svg { width: 18px; height: 18px; color: var(--c-accent); }
.site-footer { background: var(--c-ink-900); color: var(--c-slate); padding: 88px 0 0; font-size: 14.5px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr; gap: 40px; }
.footer-grid h6 { margin: 0 0 18px; font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--c-white); }
.footer-grid li { margin-bottom: 11px; }
.footer-grid a:hover { color: var(--c-accent); }
.footer-brand img { height: 58px; width: auto; margin-bottom: 20px; }
.footer-brand p { max-width: 300px; }
.footer-bottom { margin-top: 72px; padding: 24px 0; border-top: 1px solid var(--c-line-dark); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; }
.footer-bottom nav { display: flex; gap: 24px; }
.wa-float { position: fixed; right: 24px; bottom: 24px; z-index: 90; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: #25D366; color: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, .28); transition: transform .25s var(--ease); }
.wa-float:hover { transform: scale(1.06); }
.wa-float svg { width: 30px; height: 30px; }

/* ---------- 7. Sections ---------- */
/* Hero (home + sector) */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; overflow: hidden; background: var(--c-ink-900); color: var(--c-mist); }
.hero .media, .page-hero .media { position: absolute; inset: 0; }
.hero .media video, .hero .media img, .page-hero .media img, .page-hero .media video { width: 100%; height: 100%; object-fit: cover; }
.hero .media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 19, 23, .94) 0%, rgba(7, 19, 23, .78) 38%, rgba(7, 19, 23, .25) 72%, rgba(7, 19, 23, .35) 100%), linear-gradient(180deg, rgba(7, 19, 23, .55) 0%, rgba(7, 19, 23, 0) 22%, rgba(7, 19, 23, 0) 62%, rgba(7, 19, 23, .96) 100%); }
.hero .container { padding-top: 120px; padding-bottom: 210px; }
.hero .display { color: var(--c-white); max-width: 900px; }
.hero .display em { font-style: normal; background: linear-gradient(90deg, var(--c-accent), var(--c-primary)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero .lead { max-width: 620px; margin-top: 28px; color: var(--c-mist); }
.hero-trust { display: flex; align-items: center; gap: 18px; margin-top: 48px; font-size: 13.5px; color: var(--c-slate); }
.hero-trust .avatars { display: flex; }
.hero-trust .avatars span { width: 34px; height: 30px; margin-left: -6px; display: grid; place-items: center; background: var(--c-ink-600); color: var(--c-accent); font-family: var(--f-mono); font-size: 11px; font-weight: 700; clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.hero-trust .avatars span:first-child { margin-left: 0; }
.scroll-cue { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); width: 26px; height: 42px; border: 1.5px solid rgba(255, 255, 255, .35); border-radius: 14px; }
.scroll-cue::after { content: ""; position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; border-radius: 2px; background: var(--c-accent); transform: translateX(-50%); animation: cue 1.8s var(--ease) infinite; }

/* Audience router (overlaps hero) */
.router { position: relative; z-index: 5; margin-top: -150px; }
.router .grid { grid-template-columns: repeat(3, 1fr); }
.router-card { padding: 30px 30px 28px; display: flex; flex-direction: column; min-height: 236px; transition: transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease); }
.router-card:hover { transform: translateY(-6px); border-color: rgba(62, 235, 221, .45); background: rgba(19, 40, 47, .82); }
.router-card .top { display: flex; justify-content: space-between; align-items: flex-start; }
.router-card .kicker { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--c-slate); }
.router-card h3 { color: var(--c-white); font-size: 25px; margin: 22px 0 10px; }
.router-card p { font-size: 15px; color: var(--c-mist); }
.router-card .go { margin-top: auto; padding-top: 18px; }

/* Page hero (inner pages) */
.page-hero { position: relative; overflow: hidden; background: var(--c-ink-900); color: var(--c-mist); padding: 200px 0 120px; }
.page-hero .media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 19, 23, .95) 0%, rgba(7, 19, 23, .8) 45%, rgba(7, 19, 23, .35) 100%), linear-gradient(180deg, rgba(7, 19, 23, .5), rgba(7, 19, 23, 0) 30%, rgba(7, 19, 23, 0) 70%, rgba(7, 19, 23, .9)); }
.page-hero h1 { color: var(--c-white); max-width: 860px; }
.page-hero .lead { max-width: 640px; margin-top: 24px; color: var(--c-mist); }
.crumbs { display: flex; gap: 10px; align-items: center; margin-bottom: 28px; font-size: 13px; color: var(--c-slate); }
.crumbs a:hover { color: var(--c-accent); }
.crumbs span.sep { opacity: .5; }

/* Evidence chain */
.chain { position: relative; display: grid; gap: 12px; }
.chain-row { display: grid; grid-template-columns: 56px 1fr; gap: 18px; align-items: center; padding: 18px 22px; border-radius: 16px; background: var(--c-white); border: 1px solid var(--c-line-light); box-shadow: var(--shadow-card); }
.chain-row h4 { margin-bottom: 2px; }
.chain-row p { font-size: 14px; line-height: 1.45; margin: 0; }
.chain-row .hex { width: 48px; height: 42px; font-family: var(--f-mono); font-weight: 700; font-size: 13px; }
.chain-row:nth-child(2) { margin-left: 28px; }
.chain-row:nth-child(3) { margin-left: 56px; }
.chain-row:nth-child(4) { margin-left: 84px; }
.chain-row:nth-child(5) { margin-left: 112px; background: var(--c-ink-800); border-color: var(--c-ink-800); }
.chain-row:nth-child(5) h4 { color: var(--c-white); }
.chain-row:nth-child(5) p { color: var(--c-mist); }
.chain-row:nth-child(5) .hex { background: var(--c-accent); }

/* Pillars */
.pillar { display: flex; flex-direction: column; min-height: 100%; }
.pillar .fromto { margin-top: auto; padding-top: 22px; border-top: 1px dashed var(--c-line-light); font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .04em; color: var(--c-text); }
.pillar .fromto b { color: var(--c-teal-700); font-weight: 700; }
.pillar .num { font-family: var(--f-mono); font-size: 12px; letter-spacing: .12em; color: var(--c-slate); }

/* Honeycomb */
.honey-wrap { display: grid; grid-template-columns: .95fr 1.05fr; gap: 56px; align-items: center; }
.honey { position: relative; width: 100%; max-width: 580px; aspect-ratio: 1 / 1.02; margin-left: auto; }
.honey .cell {
  position: absolute; width: 34%; aspect-ratio: 1 / .866; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 9%;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); background: var(--c-ink-700); color: var(--c-mist);
  transition: background .35s var(--ease), transform .35s var(--ease); translate: -50% -50%;
}
.honey .cell::before { content: ""; position: absolute; inset: 1px; clip-path: inherit; background: var(--c-ink-800); z-index: 0; transition: background .35s var(--ease); }
.honey .cell > * { position: relative; z-index: 1; }
.honey .cell strong { font-family: var(--f-display); font-size: 15px; font-weight: 600; color: var(--c-white); line-height: 1.15; }
.honey .cell small { display: block; margin-top: 6px; font-size: 11px; line-height: 1.3; color: var(--c-slate); }
.honey .cell.route strong { font-size: 12.5px; letter-spacing: .02em; }
.honey .cell:hover, .honey .cell:focus-visible { background: var(--c-accent); transform: scale(1.05); z-index: 3; }
.honey .cell:hover::before, .honey .cell:focus-visible::before { background: var(--c-ink-700); }
.honey .cell:hover strong { color: var(--c-accent); }
.honey .core { background: var(--c-primary); pointer-events: none; }
.honey .core::before { background: var(--c-ink-900); inset: 5px; }
.honey .core img { width: 46%; }
.honey .route::before { background: #0D2A2E; }
.honey-legend { display: flex; gap: 22px; margin-top: 28px; font-size: 13px; color: var(--c-slate); }
.honey-legend i { display: inline-block; width: 12px; height: 10.5px; margin-right: 8px; vertical-align: -1px; clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); background: var(--c-ink-600); }
.honey-legend i.route { background: #1F5A5E; }

/* Technology cards */
.tech-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; height: 100%; }
.tech-card .thumb { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-ink-700); }
.tech-card .thumb img.photo { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.tech-card:hover .thumb img.photo { transform: scale(1.06); }
.tech-card .thumb::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 19, 23, 0) 35%, rgba(7, 19, 23, .85)); }
.tech-card .thumb .lock { position: absolute; left: 22px; bottom: 18px; z-index: 1; height: 34px; width: auto; max-width: 70%; object-fit: contain; object-position: left bottom; }
.tech-card .thumb .lock-text { position: absolute; left: 22px; bottom: 16px; z-index: 1; font-family: var(--f-display); font-size: 22px; font-weight: 600; color: var(--c-white); letter-spacing: .02em; }
.tech-card .body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.tech-card .body .chip { align-self: flex-start; }
.tech-card .body p { margin: 16px 0 20px; font-size: 15px; }
.tech-card .body .trl-wrap { margin-top: auto; }
.tech-card .body .link-arrow { margin-top: 18px; }
.route-card .thumb { background: linear-gradient(135deg, var(--c-teal-600), var(--c-ink-700)); display: grid; place-items: center; }
.route-card .thumb::after { display: none; }
.route-card .thumb .hex { width: 76px; height: 66px; background: rgba(255, 255, 255, .14); color: var(--c-white); }
.route-card .thumb .hex svg { width: 32px; height: 32px; }

/* Sector split */
.sector-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.sector-panel { position: relative; min-height: 560px; border-radius: 24px; overflow: hidden; display: flex; align-items: flex-end; color: var(--c-mist); isolation: isolate; }
.sector-panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--ease); }
.sector-panel:hover img { transform: scale(1.05); }
.sector-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7, 19, 23, .1) 0%, rgba(7, 19, 23, .45) 45%, rgba(7, 19, 23, .95) 100%); }
.sector-panel .inner { padding: 40px; }
.sector-panel h3 { color: var(--c-white); font-size: 34px; margin: 12px 0 14px; }
.sector-panel ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 26px; }

/* Media blocks */
.media-frame { position: relative; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow-lift); }
.media-frame img, .media-frame video { width: 100%; height: 100%; object-fit: cover; }
.media-frame.tall { aspect-ratio: 4 / 5; }
.media-frame.wide { aspect-ratio: 16 / 10; }
.float-card { position: absolute; left: -32px; bottom: 32px; max-width: 300px; padding: 22px 24px; }
.float-card .num { font-family: var(--f-display); font-size: 40px; font-weight: 600; color: var(--c-white); line-height: 1; }
.float-card p { margin: 8px 0 0; font-size: 14px; }

/* Stack diagram (AI) */
.stack-diagram { display: grid; gap: 8px; }
.tier { display: grid; grid-template-columns: 190px 1fr; gap: 20px; align-items: center; padding: 16px 22px; border-radius: 14px; background: var(--c-ink-700); border: 1px solid var(--c-line-dark); }
.tier strong { font-family: var(--f-mono); font-size: 12px; letter-spacing: .12em; color: var(--c-white); }
.tier span { font-size: 14.5px; color: var(--c-mist); line-height: 1.45; }
.tier.t1 { background: var(--c-primary); border-color: var(--c-primary); }
.tier.t1 strong, .tier.t1 span { color: var(--c-ink-900); }
.tier.t2 { background: var(--c-teal-600); border-color: var(--c-teal-600); }
.tier.t2 strong, .tier.t2 span { color: var(--c-white); }
.tier.t3 { background: var(--c-teal-700); border-color: var(--c-teal-700); }
.tier.t3 strong, .tier.t3 span { color: var(--c-white); }
.oracle { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center; padding: 22px 26px; border-radius: 16px; background: rgba(62, 235, 221, .08); border: 1px solid rgba(62, 235, 221, .22); margin-bottom: 20px; }
.oracle strong { font-family: var(--f-mono); font-size: 12px; letter-spacing: .14em; color: var(--c-accent); display: block; margin-bottom: 4px; }
.oracle p { margin: 0; color: var(--c-mist); font-size: 15px; }

/* People */
.person { text-align: center; padding: 34px 26px; }
.person .hex { width: 86px; height: 75px; margin: 0 auto 20px; font-family: var(--f-display); font-size: 24px; font-weight: 600; }
.person h3 { margin: 0 0 6px; font-size: 19px; }
.person .role { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-teal-700); margin-bottom: 14px; }
.person p { font-size: 14.5px; }

/* Partner wall */
.wall-group + .wall-group { margin-top: 48px; }
.wall-group h6 { margin: 0 0 18px; font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--c-teal-700); }
.wall { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.wall.w6 { grid-template-columns: repeat(6, 1fr); }
.wall.w3 { grid-template-columns: repeat(3, 1fr); max-width: 60%; }
.wall .logo-tile { width: 100%; height: 104px; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.wall .logo-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }

/* Company page */
.co-hero .lockup { height: 64px; width: auto; margin-bottom: 28px; }
.co-hero .lockup-text { font-family: var(--f-display); font-size: 52px; font-weight: 600; color: var(--c-white); letter-spacing: .02em; margin-bottom: 18px; }
.status-card { padding: 26px 28px; }
.status-card .label { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-slate); }
.status-card .value { font-family: var(--f-display); font-size: 21px; color: var(--c-white); font-weight: 600; margin: 8px 0 18px; }
.flow { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.flow .node { flex: 1 1 140px; min-height: 96px; padding: 18px; border-radius: 14px; background: var(--c-ink-700); border: 1px solid var(--c-line-dark); display: flex; flex-direction: column; justify-content: space-between; }
.flow .node b { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-accent); }
.flow .node span { color: var(--c-white); font-weight: 700; font-size: 15px; }
.watch { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.gallery { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; gap: 16px; height: 560px; }
.gallery figure { margin: 0; border-radius: 20px; overflow: hidden; position: relative; }
.gallery figure:first-child { grid-row: 1 / 3; }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
.gallery figcaption { position: absolute; left: 16px; bottom: 14px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-white); background: rgba(7, 19, 23, .7); padding: 6px 10px; border-radius: 8px; }
.domain { padding: 26px; }
.domain h4 { color: var(--c-white); font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 16px; }
.domain ol { margin: 0; padding-left: 20px; color: var(--c-mist); font-size: 14.5px; }
.domain li { margin-bottom: 8px; }

/* Sector focus */
.focus { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.focus + .focus { margin-top: 112px; }
.focus.flip .focus-media { order: 2; }
.focus-media { position: sticky; top: 110px; }
.bring { display: grid; gap: 4px; margin-top: 32px; }
.bring-row { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--c-line-light); }
.bring-row:last-child { border-bottom: 0; }
.bring-row h4 { margin-bottom: 4px; }
.bring-row p { font-size: 14.5px; margin: 0; }
.src { margin-top: 18px; font-size: 12.5px; color: #8A9BA2; }
.mini-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 28px; padding: 22px; border-radius: 16px; background: var(--c-ice); }
.mini-stats.s2 { grid-template-columns: repeat(2, 1fr); }
.mini-stats .n { font-family: var(--f-display); font-weight: 600; font-size: 24px; color: var(--c-teal-700); line-height: 1.1; }
.mini-stats .l { font-size: 12.5px; line-height: 1.35; margin-top: 6px; }

/* Contact */
.contact-wrap { display: grid; grid-template-columns: 1.35fr .9fr; gap: 40px; align-items: start; }
.contact-card { padding: 34px; }
.contact-card .person-row { display: flex; gap: 16px; align-items: center; margin-bottom: 26px; }
.contact-card dl { margin: 0; display: grid; gap: 16px; }
.contact-card dt { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-slate); }
.contact-card dd { margin: 4px 0 0; color: var(--c-white); font-weight: 600; }
.next-steps { counter-reset: s; margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--c-line-dark); }
.next-steps li { counter-increment: s; position: relative; padding-left: 40px; margin-bottom: 16px; font-size: 14.5px; }
.next-steps li::before { content: counter(s); position: absolute; left: 0; top: -2px; width: 26px; height: 23px; display: grid; place-items: center; font-family: var(--f-mono); font-size: 12px; font-weight: 700; color: var(--c-ink-900); background: var(--c-accent); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }

/* Modal (one-pager request) */
.modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 24px; background: rgba(7, 19, 23, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.modal.open { opacity: 1; visibility: visible; }
.modal-box { width: 100%; max-width: 560px; background: var(--c-white); border-radius: 24px; padding: 40px; position: relative; transform: translateY(12px); transition: transform .35s var(--ease); }
.modal.open .modal-box { transform: none; }
.modal-close { position: absolute; right: 18px; top: 18px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-line-light); background: var(--c-white); cursor: pointer; font-size: 20px; line-height: 1; color: var(--c-heading-light); }
.form-note { margin-top: 14px; font-size: 13px; color: var(--c-text); }
.form-ok { display: none; padding: 16px 18px; border-radius: 12px; background: var(--c-ice); color: var(--c-teal-700); font-weight: 700; margin-top: 16px; }
.form-ok.show { display: block; }

/* ---------- 8. Motion & build labels ---------- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; } .reveal.d3 { transition-delay: .24s; } .reveal.d4 { transition-delay: .32s; } .reveal.d5 { transition-delay: .4s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes march { to { background-position: 16px 0; } }
@keyframes cue { 0% { opacity: 0; transform: translate(-50%, 0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, 14px); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
/* label anchor: never override the fixed/overlay elements */
[data-code]:where(:not(.site-header, .mobile-menu, .modal, .cookie)) { position: relative; }
.show-labels [data-code]::after {
  content: attr(data-code) "  " attr(data-name); position: absolute; top: 10px; left: 10px; z-index: 60;
  padding: 5px 10px; border-radius: 8px; background: #FF3B7F; color: #fff; font: 700 12px/1.2 var(--f-mono); letter-spacing: .04em; pointer-events: none; white-space: nowrap;
}
.show-labels [data-code] { outline: 2px dashed rgba(255, 59, 127, .7); outline-offset: -2px; }
.label-toggle { position: fixed; left: 20px; bottom: 20px; z-index: 95; height: 40px; padding: 0 14px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .2); background: rgba(7, 19, 23, .85); color: #fff; font: 700 12px var(--f-mono); letter-spacing: .06em; cursor: pointer; }
.show-labels .label-toggle { background: #FF3B7F; border-color: #FF3B7F; }

/* ---------- 9. Responsive ---------- */
@media (max-width: 1200px) {
  .mega { width: 780px; }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
  .footer-grid .fcol-contact { grid-column: 1 / -1; }
}
@media (max-width: 1024px) {
  :root { --gutter: 28px; --pad-xl: 104px; --pad-lg: 88px; --pad-md: 64px; }
  .display { font-size: 56px; }
  h1 { font-size: 46px; }
  h2 { font-size: 36px; }
  h3 { font-size: 20px; }
  .lead { font-size: 18px; }
  .nav, .header-cta .btn { display: none; }
  .burger { display: inline-block; }
  .g4 { grid-template-columns: repeat(2, 1fr); }
  .g6 { grid-template-columns: repeat(3, 1fr); }
  .g3 { grid-template-columns: repeat(2, 1fr); }
  .split, .split.wide-left, .split.wide-right, .honey-wrap, .focus, .contact-wrap { grid-template-columns: 1fr; gap: 48px; }
  .focus.flip .focus-media { order: 0; }
  .focus-media { position: relative; top: 0; }
  .router .grid { grid-template-columns: 1fr; }
  .router { margin-top: -110px; }
  .router-card { min-height: 0; }
  .stat-band { grid-template-columns: repeat(2, 1fr); row-gap: 36px; }
  .stat-band .stat:nth-child(3) { padding-left: 0; border-left: 0; }
  .stat .num { font-size: 44px; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .steps::before { display: none; }
  .sector-split { grid-template-columns: 1fr; }
  .sector-panel { min-height: 460px; }
  .wall, .wall.w6 { grid-template-columns: repeat(3, 1fr); }
  .wall.w3 { max-width: none; }
  .honey { margin: 0 auto; }
  .cta-band h2 { font-size: 40px; }
  .gallery { height: 440px; }
  .chain-row:nth-child(n) { margin-left: 0; }
  .tier { grid-template-columns: 150px 1fr; }
  .float-card { left: 16px; }
  .compare th, .compare td { padding: 16px; font-size: 14.5px; }
}
@media (max-width: 767px) {
  :root { --gutter: 20px; --pad-xl: 80px; --pad-lg: 72px; --pad-md: 56px; --gap: 16px; }
  body { font-size: 15px; }
  .display { font-size: 40px; }
  h1 { font-size: 36px; }
  h2 { font-size: 30px; }
  h3 { font-size: 19px; }
  .lead { font-size: 17px; }
  .head { margin-bottom: 40px; }
  .g2, .g3, .g4, .g6 { grid-template-columns: 1fr; }
  .site-header .bar { height: 72px; }
  .brand img { height: 38px; }
  .hero .container { padding-top: 110px; padding-bottom: 150px; }
  .hero-trust { flex-wrap: wrap; }
  .btn-row .btn { width: 100%; }
  .card { padding: 24px; }
  .stat-band { grid-template-columns: 1fr 1fr; }
  .stat-band .stat { padding: 0 0 0 16px; }
  .stat-band .stat:nth-child(odd) { padding-left: 0; border-left: 0; }
  .stat .num { font-size: 38px; }
  .steps { grid-template-columns: 1fr; }
  .page-hero { padding: 150px 0 80px; }
  .sector-panel { min-height: 420px; }
  .sector-panel .inner { padding: 26px; }
  .sector-panel h3 { font-size: 27px; }
  .wall, .wall.w6, .wall.w3 { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .footer-brand, .footer-grid .fcol-contact { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; }
  .form { grid-template-columns: 1fr; }
  .cta-band h2 { font-size: 32px; }
  .gallery { grid-template-columns: 1fr; grid-template-rows: auto; height: auto; }
  .gallery figure { aspect-ratio: 16 / 10; }
  .gallery figure:first-child { grid-row: auto; }
  .mini-stats { grid-template-columns: 1fr 1fr; }
  .tier { grid-template-columns: 1fr; gap: 6px; }
  .compare thead { display: none; }
  .compare tr { display: block; border-bottom: 1px solid var(--c-line-light); }
  .compare td { display: block; width: 100% !important; border: 0; padding: 10px 18px; }
  .compare td:first-child { padding-top: 18px; }
  .compare td:last-child { padding-bottom: 18px; }
  .compare td[data-th]::before { content: attr(data-th); display: block; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-text); margin-bottom: 4px; }
  .honey .cell strong { font-size: 11.5px; }
  .honey .cell small { display: none; }
  .co-hero .lockup { height: 46px; }
  .modal-box { padding: 28px 22px; }
  .label-toggle { display: none; }
  .wa-float { right: 16px; bottom: 16px; width: 52px; height: 52px; }
}
/* =====================================================================
   BANKER GROUP — layer 2: luxury layer & page components
   Appended to site.css. Guide sections: Design system, Components.
   ===================================================================== */

/* ---------- 10. Tokens added in layer 2 ---------- */
:root {
  --f-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

/* Serif italic accent inside headlines */
h1 em, h2 em, h3 em, .display em, .statement em {
  font-family: var(--f-serif); font-style: italic; font-weight: 400;
  letter-spacing: -.005em; font-size: 1.06em; padding-right: .04em;
  background: linear-gradient(92deg, var(--c-teal-700), var(--c-primary));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.dark h1 em, .dark h2 em, .dark h3 em, .hero .display em, .page-hero h1 em, .cta-band h2 em, .co-hero h1 em {
  background: linear-gradient(92deg, var(--c-accent), var(--c-primary));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---------- 11. Scroll progress, grain, language switch ---------- */
.progress { position: fixed; inset: 0 0 auto; height: 2px; z-index: 120; pointer-events: none; }
.progress span { display: block; height: 100%; width: 100%; transform: scaleX(0); transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--c-primary), var(--c-accent)); }
.grain { position: absolute; inset: 0; background-image: var(--grain); background-size: 160px 160px;
  opacity: .05; mix-blend-mode: overlay; pointer-events: none; z-index: 1; }
.lang { display: inline-flex; padding: 3px; gap: 2px; border-radius: var(--r-pill); border: 1px solid rgba(255,255,255,.18); }
.lang a { min-width: 40px; height: 30px; display: grid; place-items: center; border-radius: var(--r-pill);
  font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em; color: rgba(255,255,255,.66); }
.lang a:hover { color: #fff; }
.lang a.on { background: rgba(62,235,221,.14); color: var(--c-accent); }
.mega-link .mt { display: block; }
.soc { display: flex; gap: 10px; margin-top: 22px; }
.soc a { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--c-line-dark); color: var(--c-mist); transition: color .2s, border-color .2s, background .2s; }
.soc a:hover { color: var(--c-ink-900); background: var(--c-accent); border-color: var(--c-accent); }
.soc svg { width: 18px; height: 18px; }

/* ---------- 12. Hero extras ---------- */
.hero .media video.bgv { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-facts { display: flex; flex-wrap: wrap; gap: 0 44px; margin-top: 56px; }
.hero-facts .fact { position: relative; padding-left: 22px; }
.hero-facts .fact::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 1px;
  background: linear-gradient(180deg, transparent, var(--c-line-dark) 30%, var(--c-line-dark) 70%, transparent); }
.hero-facts b { display: block; font-family: var(--f-display); font-size: 30px; font-weight: 600; color: var(--c-white); line-height: 1.1; }
.hero-facts span { display: block; font-size: 13.5px; color: var(--c-slate); max-width: 190px; margin-top: 4px; }

/* ---------- 13. Statement (scroll-lit) ---------- */
.statement { font-family: var(--f-display); font-weight: 500; font-size: 42px; line-height: 1.2;
  letter-spacing: -.022em; color: var(--c-heading-light); margin: 0; text-wrap: pretty; }
.statement .w { opacity: .17; transition: opacity .45s var(--ease); }
.statement .w.on { opacity: 1; }
.statement-stats { margin-top: 84px; padding-top: 44px; border-top: 1px solid var(--c-line-light); }

/* ---------- 14. Service rows ---------- */
.svc-rows { border-top: 1px solid var(--c-line-light); }
.svc-row { position: relative; display: grid; grid-template-columns: 92px 1.05fr 1.25fr 40px; gap: 24px;
  align-items: center; padding: 30px 6px; border-bottom: 1px solid var(--c-line-light); transition: background .35s var(--ease); }
.svc-row .n { font-family: var(--f-mono); font-size: 13px; font-weight: 600; letter-spacing: .1em; color: var(--c-slate); }
.svc-row h3 { transition: color .3s var(--ease); }
.svc-row p { font-size: 15px; margin: 0; max-width: 520px; }
.svc-row .go { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--c-line-light); color: var(--c-teal-700); transition: all .3s var(--ease); }
.svc-row .go svg { width: 16px; height: 16px; }
.svc-row .peek { position: absolute; right: 78px; top: 50%; width: 260px; height: 164px; object-fit: cover;
  border-radius: 14px; opacity: 0; transform: translateY(-50%) scale(.94) rotate(-2deg);
  transition: opacity .45s var(--ease), transform .45s var(--ease); pointer-events: none;
  box-shadow: var(--shadow-lift); z-index: 2; }
.svc-row:hover { background: linear-gradient(90deg, rgba(228,241,242,.55), rgba(228,241,242,0) 70%); }
.svc-row:hover h3 { color: var(--c-teal-700); }
.svc-row:hover .go { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-ink-900); }
.svc-row:hover .peek { opacity: 1; transform: translateY(-50%) scale(1) rotate(-2deg); }

/* ---------- 15. Industry accordion ---------- */
.ind-acc { display: flex; gap: 12px; height: 620px; }
.ind-panel { position: relative; flex: 1 1 0; min-width: 84px; border-radius: 22px; overflow: hidden;
  isolation: isolate; transition: flex-grow .7s var(--ease); background: var(--c-ink-700); }
.ind-panel.active { flex-grow: 4.6; }
.ind-media { position: absolute; inset: 0; z-index: -2; }
.ind-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04);
  transition: transform 1.4s var(--ease), filter .7s var(--ease); filter: saturate(.85); }
.ind-panel::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(7,19,23,.22), rgba(7,19,23,.72) 55%, rgba(7,19,23,.96)); }
.ind-panel.active .ind-media img { transform: scale(1); filter: none; }
.ind-vert { position: absolute; left: 0; right: 0; bottom: 28px; display: flex; flex-direction: column;
  align-items: center; gap: 18px; color: var(--c-white); transition: opacity .35s var(--ease); }
.ind-vert i { font-family: var(--f-mono); font-size: 11.5px; font-style: normal; letter-spacing: .14em; color: var(--c-accent); }
.ind-vert span, .ind-vert { writing-mode: vertical-rl; }
.ind-vert { writing-mode: horizontal-tb; }
.ind-vert > span, .ind-vert { font-family: var(--f-display); font-size: 17px; font-weight: 600; }
.ind-panel .ind-vert { writing-mode: vertical-rl; transform: rotate(180deg); height: 380px; left: 50%;
  translate: -50% 0; bottom: 30px; align-items: center; justify-content: flex-start; }
.ind-panel.active .ind-vert { opacity: 0; }
.ind-inner { position: absolute; left: 36px; right: 36px; bottom: 36px; max-width: 460px; opacity: 0;
  transform: translateY(14px); transition: opacity .5s .18s var(--ease), transform .5s .18s var(--ease); }
.ind-panel.active .ind-inner { opacity: 1; transform: none; }
.ind-inner .ind-num { display: block; font-family: var(--f-mono); font-size: 12px; font-style: normal;
  letter-spacing: .16em; color: var(--c-accent); margin-bottom: 14px; }
.ind-inner strong { display: block; font-family: var(--f-display); font-size: 32px; font-weight: 600;
  line-height: 1.1; color: var(--c-white); letter-spacing: -.02em; }
.ind-inner > span.ind-desc { display: block; color: var(--c-mist); font-size: 15.5px; margin: 12px 0 20px; }
.ind-inner .link-arrow { white-space: nowrap; }

/* ---------- 16. Pipeline (how we work) ---------- */
.pipeline { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; padding-top: 12px; }
.pipe-line { position: absolute; top: 46px; left: 40px; right: 40px; height: 1px; background: var(--c-line-light); }
.pipe-line::after { content: ""; position: absolute; inset: 0; transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, var(--c-primary), var(--c-accent)); transition: transform 1.6s var(--ease); }
.pipeline.in .pipe-line::after { transform: scaleX(1); }
.pipe-step { display: block; padding-right: 10px; }
.pipe-num { display: block; font-family: var(--f-display); font-size: 58px; font-weight: 300; line-height: 1;
  letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 1px rgba(14,140,130,.55);
  transition: color .4s var(--ease), -webkit-text-stroke-color .4s var(--ease); }
.pipe-step:hover .pipe-num { color: var(--c-teal-700); -webkit-text-stroke-color: transparent; }
.pipe-step h4 { margin: 22px 0 8px; }
.pipe-step p { font-size: 14.5px; margin: 0; }
.dark .pipe-line { background: var(--c-line-dark); }
.dark .pipe-num { -webkit-text-stroke-color: rgba(62,235,221,.5); }
.dark .pipe-step:hover .pipe-num { color: var(--c-accent); }

/* ---------- 17. Portfolio tier list ---------- */
.tier-list { margin: 8px 0 32px; border-top: 1px solid var(--c-line-dark); }
.tier-row { display: grid; grid-template-columns: 54px 1fr 20px; gap: 18px; align-items: center; padding: 20px 4px;
  border-bottom: 1px solid var(--c-line-dark); color: var(--c-mist); transition: padding .3s var(--ease), color .3s; }
.tier-row .tier-n { font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .08em; color: var(--c-accent); }
.tier-row strong { display: block; font-family: var(--f-display); font-size: 19px; font-weight: 600; color: var(--c-white); }
.tier-row span > span { display: block; font-size: 14px; color: var(--c-slate); margin-top: 3px; }
.tier-row svg { width: 18px; height: 18px; color: var(--c-accent); opacity: 0; transform: translateX(-6px);
  transition: opacity .3s, transform .3s; }
.tier-row:hover { padding-left: 12px; }
.tier-row:hover svg { opacity: 1; transform: none; }

/* ---------- 18. World map ---------- */
.map { position: relative; margin: 8px auto 34px; max-width: 1180px; }
.map-dots { width: 100%; height: auto; opacity: .85; }
.map-arcs { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.map-arcs .arc { fill: none; stroke: url(#arcgrad); stroke: rgba(62,235,221,.5); stroke-width: 1.2;
  stroke-dasharray: 5 7; animation: flow 3.4s linear infinite; }
@keyframes flow { to { stroke-dashoffset: -24; } }
.pin { position: absolute; width: 26px; height: 26px; translate: -50% -50%; border: 0; background: none;
  padding: 0; cursor: pointer; z-index: 3; }
.pin .dot { position: absolute; inset: 9px; border-radius: 50%; background: var(--c-accent);
  box-shadow: 0 0 0 4px rgba(62,235,221,.18); }
.pin.p-hq .dot { background: var(--c-white); box-shadow: 0 0 0 6px rgba(255,255,255,.16); }
.pin.p-core .dot { background: var(--c-primary); }
.pin.p-office .dot { background: var(--c-mist); }
.pin.p-project .dot { width: 8px; height: 8px; inset: auto; left: 9px; top: 9px; }
.pin::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; border: 1px solid rgba(62,235,221,.55);
  animation: pulse 2.8s var(--ease) infinite; }
.pin.p-hq::after { border-color: rgba(255,255,255,.6); }
@keyframes pulse { 0% { transform: scale(.5); opacity: .9; } 70% { transform: scale(1.9); opacity: 0; } 100% { opacity: 0; } }
.pin .tip { position: absolute; left: 50%; bottom: 28px; translate: -50% 0; min-width: 180px; padding: 12px 14px;
  border-radius: 12px; background: rgba(7,19,23,.96); border: 1px solid var(--glass-line); color: var(--c-mist);
  font-size: 12.5px; line-height: 1.4; text-align: left; opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .25s, transform .25s, visibility .25s; pointer-events: none; z-index: 4; }
.pin .tip b { display: block; color: var(--c-white); font-family: var(--f-display); font-size: 14.5px; margin-bottom: 3px; }
.pin:hover .tip, .pin:focus-visible .tip { opacity: 1; visibility: visible; transform: none; }
.map-legend { display: flex; flex-wrap: wrap; gap: 14px 28px; justify-content: center; font-size: 13px; color: var(--c-slate); }
.map-legend .lg { display: inline-flex; align-items: center; gap: 9px; }
.map-legend .lg::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--c-accent); }
.map-legend .l-hq::before { background: var(--c-white); }
.map-legend .l-core::before { background: var(--c-primary); }
.map-legend .l-office::before { background: var(--c-mist); }
.mkt-grid { margin-top: 56px; }
.mkt-card { display: flex; flex-direction: column; }
.mkt-card .kicker { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-accent); margin: 20px 0 8px; }
.mkt-card h3 { font-size: 20px; margin: 0 0 10px; }
.mkt-card p { font-size: 14.5px; }
.mkt-card .link-arrow { margin-top: auto; padding-top: 18px; }

/* ---------- 19. Quote band + marquee head ---------- */
.quote-band { position: relative; max-width: 940px; margin: 0 auto 92px; padding: 0 0 0 78px; }
.quote-band .qmark { position: absolute; left: 0; top: 4px; width: 46px; height: 46px; color: var(--c-primary); opacity: .35; }
.quote-band blockquote { margin: 0; font-family: var(--f-serif); font-size: 36px; line-height: 1.32;
  letter-spacing: -.01em; color: var(--c-heading-light); }
.quote-band cite { display: block; margin-top: 22px; font-family: var(--f-mono); font-size: 12px; font-style: normal;
  letter-spacing: .12em; text-transform: uppercase; color: var(--c-teal-700); }
.marquee-head { text-align: center; margin-bottom: 26px; }
.marquee-head p { font-size: 15px; max-width: 640px; margin: 0 auto; }
.btn-row.center { justify-content: center; }

/* ---------- 20. People ---------- */
.g5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--gap); }
.people .person { padding: 30px 20px; }
.people .person .hex { width: 76px; height: 66px; font-size: 21px; }
.person.big { text-align: left; padding: 36px; }
.person.big .hex { margin: 0 0 22px; }

/* ---------- 21. News ---------- */
.news-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.news-card .thumb { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.news-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.news-card:hover .thumb img { transform: scale(1.05); }
.news-card .body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.news-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; font-family: var(--f-mono); font-size: 11px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); }
.news-meta span:first-child { color: var(--c-teal-700); }
.news-card h3 { margin: 14px 0 10px; font-size: 21px; }
.news-card p { font-size: 15px; }
.news-card .link-arrow { margin-top: auto; padding-top: 18px; }
.news-card.featured { flex-direction: row; grid-column: 1 / -1; }
.news-card.featured .thumb { flex: 1 1 52%; aspect-ratio: auto; }
.news-card.featured .body { flex: 1 1 48%; padding: 48px 52px; justify-content: center; }
.news-card.featured h3 { font-size: 34px; line-height: 1.16; }
.news-card.featured p { font-size: 17px; }

/* ---------- 22. Projects ---------- */
.filter-bar { display: flex; flex-wrap: wrap; gap: 26px 40px; align-items: center; padding: 22px 26px;
  border: 1px solid var(--c-line-light); border-radius: 18px; background: var(--c-white); margin-bottom: 42px; }
.filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.filter-group > b { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-text); margin-right: 4px; }
.filter-btn { height: 34px; padding: 0 14px; border-radius: var(--r-pill); border: 1px solid var(--c-line-light);
  background: transparent; font-size: 13.5px; font-weight: 600; color: var(--c-text); cursor: pointer;
  transition: all .25s var(--ease); }
.filter-btn:hover { border-color: var(--c-teal-700); color: var(--c-teal-700); }
.filter-btn.on { background: var(--c-ink-800); border-color: var(--c-ink-800); color: var(--c-white); }
.proj-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.proj-card .thumb { position: relative; aspect-ratio: 16 / 9; overflow: hidden; }
.proj-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.proj-card .body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.proj-card .meta-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px;
  font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-text); }
.proj-card .meta-top .country { display: inline-flex; align-items: center; gap: 6px; color: var(--c-teal-700); }
.proj-card .meta-top svg { width: 14px; height: 14px; }
.proj-card h3 { margin: 14px 0 18px; font-size: 20px; }
.proj-dl { margin: 0; display: grid; gap: 14px; }
.proj-dl dt { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-slate); }
.proj-dl dd { margin: 4px 0 0; font-size: 14.5px; line-height: 1.5; }
.proj-card .link-arrow { margin-top: auto; padding-top: 20px; }
.status { position: absolute; left: 16px; top: 16px; z-index: 2; display: inline-flex; align-items: center; gap: 10px;
  height: 30px; padding: 0 12px; border-radius: var(--r-pill); font-family: var(--f-mono); font-size: 10.5px;
  font-weight: 600; letter-spacing: .1em; text-transform: uppercase; backdrop-filter: blur(6px); }
.status .dots { display: inline-flex; gap: 3px; }
.status .dots i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .3; }
.status .dots i.on { opacity: 1; }
.s-evaluation { background: rgba(7,19,23,.72); color: var(--c-mist); }
.s-poc { background: rgba(14,140,130,.9); color: #fff; }
.s-commercial { background: var(--c-accent); color: var(--c-ink-900); }
.s-ready { background: #fff; color: var(--c-teal-700); box-shadow: inset 0 0 0 1px rgba(14,140,130,.45); }
.status-line { font-family: var(--f-mono); font-size: 11px; letter-spacing: .06em; color: var(--c-slate); margin-top: 10px; }

/* ---------- 23. Sub-navigation (sticky chips) ---------- */
.sub-nav { position: sticky; top: 72px; z-index: 40; background: rgba(255,255,255,.9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--c-line-light); }
.sub-nav .container { display: flex; gap: 8px; overflow-x: auto; padding-top: 12px; padding-bottom: 12px;
  scrollbar-width: none; }
.sub-nav .container::-webkit-scrollbar { display: none; }
.sub-nav a { flex: none; height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px;
  border-radius: var(--r-pill); border: 1px solid var(--c-line-light); font-size: 13.5px; font-weight: 600;
  color: var(--c-text); transition: all .25s var(--ease); white-space: nowrap; }
.sub-nav a span { font-family: var(--f-mono); font-size: 11px; color: var(--c-slate); }
.sub-nav a:hover, .sub-nav a.on { background: var(--c-ink-800); border-color: var(--c-ink-800); color: var(--c-white); }
.sub-nav a.on span, .sub-nav a:hover span { color: var(--c-accent); }

/* ---------- 24. Service blocks (What we do) ---------- */
.svc-block { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.svc-block + .svc-block { margin-top: 128px; }
.svc-block.flip .svc-media { order: 2; }
.svc-block .num-big { font-family: var(--f-display); font-size: 15px; font-weight: 600; letter-spacing: .14em;
  color: var(--c-teal-700); font-family: var(--f-mono); }
.svc-block h2 { margin: 14px 0 20px; font-size: 38px; }
.gets { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--c-line-light); }
.gets h4 { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-slate); margin-bottom: 16px; }

/* ---------- 25. Stage layout (How we work) ---------- */
.stage-wrap { display: grid; grid-template-columns: 260px 1fr; gap: 72px; align-items: start; }
.stage-nav { position: sticky; top: 118px; }
.stage-nav ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--c-line-light); }
.stage-nav a { display: block; padding: 14px 0 14px 22px; margin-left: -1px; border-left: 2px solid transparent;
  font-family: var(--f-display); font-size: 15.5px; font-weight: 600; color: var(--c-text); transition: all .3s var(--ease); }
.stage-nav a span { display: block; font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-slate); margin-bottom: 3px; }
.stage-nav a:hover { color: var(--c-heading-light); }
.stage-nav a.on { color: var(--c-heading-light); border-left-color: var(--c-primary); }
.stage-nav a.on span { color: var(--c-teal-700); }
.stage + .stage { margin-top: 120px; padding-top: 110px; border-top: 1px solid var(--c-line-light); }
.stage-head { display: flex; gap: 22px; align-items: flex-start; margin-bottom: 26px; }
.stage-head .hex { width: 58px; height: 51px; font-family: var(--f-mono); font-weight: 700; font-size: 16px; }
.stage-head h2 { font-size: 36px; }
.stage-head .eyebrow { margin-bottom: 8px; }
.stage-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 36px; }
.stage-cols h4 { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-slate); margin-bottom: 16px; }
.gate { margin-top: 36px; padding: 22px 26px; border-radius: 16px; background: var(--c-ice);
  border-left: 3px solid var(--c-primary); }
.gate strong { display: block; font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-teal-700); margin-bottom: 6px; }
.gate p { margin: 0; font-family: var(--f-display); font-size: 19px; font-weight: 500; color: var(--c-heading-light); }
.stage .media-frame { margin-top: 30px; }

/* ---------- 26. Funnels (submit) ---------- */
.funnels { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-bottom: 56px; }
.funnel { position: relative; display: flex; flex-direction: column; padding: 38px; border-radius: var(--r-card);
  border: 1px solid var(--c-line-light); background: var(--c-white); cursor: pointer; text-align: left;
  transition: all .35s var(--ease); }
.funnel:hover { border-color: rgba(14,140,130,.4); box-shadow: var(--shadow-card); }
.funnel.on { border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(20,184,171,.14), var(--shadow-card); }
.funnel .kicker { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-teal-700); margin: 22px 0 10px; }
.funnel h3 { font-size: 26px; margin-bottom: 12px; }
.funnel ul { margin-top: 20px; }
.funnel .pick { position: absolute; right: 26px; top: 26px; width: 26px; height: 26px; border-radius: 50%;
  border: 1.5px solid var(--c-line-light); }
.funnel.on .pick { border-color: var(--c-primary); background: radial-gradient(circle at center, var(--c-primary) 0 42%, transparent 44%); }
.form-shell { padding: 44px; border-radius: var(--r-card); border: 1px solid var(--c-line-light);
  background: var(--c-white); box-shadow: var(--shadow-card); }
.form-shell h3 { margin-bottom: 8px; }
.form-shell .form { margin-top: 28px; }
.field .hint { display: block; margin-top: 6px; font-size: 12.5px; color: var(--c-text); }
.checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 18px; }
.checks label { display: flex; gap: 10px; align-items: center; font-size: 14.5px; }
.checks input { width: 17px; height: 17px; accent-color: var(--c-teal-600); }

/* ---------- 27. Article prose ---------- */
.prose { max-width: 720px; margin: 0 auto; }
.prose > p { font-size: 17.5px; line-height: 1.75; margin-bottom: 1.4em; }
.prose > p.first { font-size: 21px; line-height: 1.6; color: var(--c-heading-light); }
.prose h2 { font-size: 30px; margin: 56px 0 18px; }
.prose h3 { font-size: 21px; margin: 40px 0 14px; }
.prose ul { margin: 0 0 1.4em; }
.prose ul li { position: relative; padding-left: 26px; margin-bottom: 10px; font-size: 17px; }
.prose ul li::before { content: ""; position: absolute; left: 0; top: .6em; width: 11px; height: 9.5px;
  background: var(--c-primary); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.prose blockquote { margin: 44px 0; padding: 0 0 0 30px; border-left: 2px solid var(--c-primary);
  font-family: var(--f-serif); font-size: 28px; line-height: 1.35; color: var(--c-heading-light); }
.article-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 26px; font-family: var(--f-mono);
  font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); }
.share { display: flex; gap: 12px; align-items: center; margin: 56px auto 0; max-width: 720px;
  padding-top: 28px; border-top: 1px solid var(--c-line-light); }
.share span { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-slate); }
.share a { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--c-line-light); color: var(--c-text); }
.share a:hover { border-color: var(--c-teal-700); color: var(--c-teal-700); }
.share svg { width: 17px; height: 17px; }

/* ---------- 28. Cookie bar ---------- */
.cookie { position: fixed; left: 20px; bottom: 20px; z-index: 110; max-width: 420px; padding: 22px 24px;
  border-radius: 18px; background: rgba(7,19,23,.96); border: 1px solid var(--glass-line); color: var(--c-mist);
  box-shadow: 0 24px 60px rgba(0,0,0,.4); transform: translateY(12px); opacity: 0; visibility: hidden;
  transition: opacity .35s, transform .35s, visibility .35s; }
.cookie.show { opacity: 1; visibility: visible; transform: none; }
.cookie p { font-size: 13.5px; line-height: 1.55; margin-bottom: 16px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cookie-actions .btn { min-height: 40px; padding: 0 16px; font-size: 13.5px; }
.cookie-actions .btn-outline { color: var(--c-mist); border-color: var(--c-line-dark); }
.cookie-actions a { font-size: 12.5px; color: var(--c-slate); text-decoration: underline; }

/* ---------- 29. Venture page bits ---------- */
.co-hero { padding: 210px 0 120px; }
.co-hero .chip { margin-bottom: 22px; }
.co-hero h1 { font-size: 52px; }
.co-hero .lead { max-width: 660px; }
.co-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 56px; align-items: end; }
.status-card dl { margin: 0; display: grid; gap: 18px; }
.status-card dt { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-slate); }
.status-card dd { margin: 5px 0 0; color: var(--c-white); font-weight: 600; font-size: 15px; }
.domain-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.domain-cell { padding: 20px 18px; border-radius: 14px; background: var(--c-ink-700); border: 1px solid var(--c-line-dark);
  transition: background .3s, transform .3s; }
.domain-cell:hover { background: var(--c-ink-600); transform: translateY(-3px); }
.domain-cell b { display: block; font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; color: var(--c-accent); margin-bottom: 8px; }
.domain-cell span { font-size: 14px; color: var(--c-mist); line-height: 1.4; }
.modes { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.mode { padding: 26px; border-radius: 16px; border: 1px solid var(--c-line-dark); background: var(--c-ink-700); }
.mode b { display: block; font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; color: var(--c-accent); margin-bottom: 10px; }
.mode p { margin: 0; font-size: 14.5px; color: var(--c-mist); }
.note-line { margin-top: 26px; font-size: 13px; color: #8A9BA2; max-width: 820px; }
.dark .note-line { color: var(--c-slate); }

/* ---------- 30. Operations page ---------- */
.rec-list { border-top: 1px solid var(--c-line-light); }
.rec-row { display: grid; grid-template-columns: 210px 1fr auto; gap: 26px; align-items: center; padding: 24px 4px;
  border-bottom: 1px solid var(--c-line-light); }
.rec-row b { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-display); font-size: 18px;
  font-weight: 600; color: var(--c-heading-light); }
.rec-row b svg { width: 17px; height: 17px; color: var(--c-teal-700); }
.rec-row p { margin: 0; font-size: 15px; }
.rec-row .tag { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-teal-700); padding: 6px 12px; border: 1px solid var(--c-line-light); border-radius: var(--r-pill); }
.patent-row { display: grid; grid-template-columns: 200px 1fr 80px; gap: 24px; align-items: center; padding: 22px 4px;
  border-bottom: 1px solid var(--c-line-dark); }
.patent-row b { font-family: var(--f-mono); font-size: 14px; letter-spacing: .04em; color: var(--c-accent); }
.patent-row p { margin: 0; font-size: 15px; color: var(--c-mist); }
.patent-row .flag { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-slate); text-align: right; }
.pub-row { display: grid; grid-template-columns: 1fr 300px; gap: 24px; padding: 20px 4px; border-bottom: 1px solid var(--c-line-light); }
.pub-row p { margin: 0; font-size: 15.5px; color: var(--c-heading-light); }
.pub-row span { font-size: 13.5px; color: var(--c-text); font-style: italic; }
.office-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.trl-legend { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); margin-top: 40px; }
.trl-legend div { padding: 24px; border-radius: 16px; background: var(--c-fog); border: 1px solid var(--c-line-light); }
.trl-legend b { display: block; font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; color: var(--c-teal-700); margin-bottom: 8px; }
.trl-legend p { margin: 0; font-size: 14.5px; }

/* ---------- 31. Partner wall extras ---------- */
.wall-note { margin-top: 18px; font-size: 13px; color: var(--c-text); }
.wall.w4 { grid-template-columns: repeat(4, 1fr); }
.tp-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-card .thumb { aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-fog); }
.tp-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.tp-card .body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.tp-card .tp-logo { height: 40px; margin-bottom: 16px; }
.tp-card .tp-logo img { height: 100%; width: auto; object-fit: contain; }
.tp-card .cat { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-teal-700); margin-bottom: 10px; }
.tp-card p { font-size: 14.5px; margin: 0; }

/* ---------- 32. Contact page ---------- */
.offices { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.office { padding: 30px; }
.office h4 { margin-bottom: 8px; }
.office p { font-size: 14.5px; margin: 0; }
.office .tagline { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-teal-700); margin-bottom: 14px; }

/* ---------- 33. Evidence / oracle band ---------- */
.evidence { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.ev-card { padding: 30px; border-radius: 18px; border: 1px solid var(--c-line-dark); background: rgba(19,40,47,.6); }
.ev-card h4 { color: var(--c-white); margin-bottom: 10px; font-size: 18px; }
.ev-card p { margin: 0; font-size: 14.5px; color: var(--c-mist); }

/* ---------- 34. Responsive (layer 2) ---------- */
@media (max-width: 1200px) {
  .statement { font-size: 36px; }
  .news-card.featured .body { padding: 36px; }
  .domain-grid { grid-template-columns: repeat(3, 1fr); }
  .stage-wrap { grid-template-columns: 200px 1fr; gap: 48px; }
}
@media (max-width: 1024px) {
  .svc-row { grid-template-columns: 64px 1fr; row-gap: 8px; }
  .svc-row p { grid-column: 2; }
  .svc-row .go, .svc-row .peek { display: none; }
  .ind-acc { flex-direction: column; height: auto; }
  .ind-panel { min-height: 132px; }
  .ind-panel.active { min-height: 430px; }
  .ind-panel .ind-vert { writing-mode: horizontal-tb; transform: none; height: auto; flex-direction: row;
    left: 28px; right: 28px; translate: 0 0; bottom: 26px; justify-content: flex-start; }
  .ind-inner { left: 28px; right: 28px; bottom: 28px; }
  .pipeline { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .pipe-line { display: none; }
  .g5, .modes, .evidence, .offices, .office-cards, .trl-legend, .funnels { grid-template-columns: 1fr 1fr; }
  .svc-block, .stage-cols { grid-template-columns: 1fr; gap: 40px; }
  .svc-block.flip .svc-media { order: 0; }
  .stage-wrap { grid-template-columns: 1fr; gap: 32px; }
  .stage-nav { position: static; }
  .stage-nav ol { display: flex; overflow-x: auto; border-left: 0; border-bottom: 1px solid var(--c-line-light); }
  .stage-nav a { border-left: 0; border-bottom: 2px solid transparent; padding: 10px 18px 12px 0; white-space: nowrap; }
  .stage-nav a.on { border-left-color: transparent; border-bottom-color: var(--c-primary); }
  .news-card.featured { flex-direction: column; }
  .co-grid { grid-template-columns: 1fr; gap: 40px; }
  .co-hero h1 { font-size: 40px; }
  .rec-row { grid-template-columns: 1fr; gap: 10px; }
  .patent-row, .pub-row { grid-template-columns: 1fr; gap: 8px; }
  .patent-row .flag { text-align: left; }
  .quote-band blockquote { font-size: 28px; }
  .statement { font-size: 30px; }
  .form-shell { padding: 30px; }
}
@media (max-width: 767px) {
  .hero-facts { gap: 18px 26px; margin-top: 38px; }
  .hero-facts b { font-size: 24px; }
  .hero-facts .fact:first-child { padding-left: 0; }
  .hero-facts .fact:first-child::before { display: none; }
  .statement { font-size: 25px; }
  .statement-stats { margin-top: 48px; }
  .ind-panel.active { min-height: 380px; }
  .ind-inner strong { font-size: 25px; }
  .pipeline { grid-template-columns: 1fr; }
  .g5, .modes, .evidence, .offices, .office-cards, .trl-legend, .funnels, .domain-grid, .checks { grid-template-columns: 1fr; }
  .map-legend { gap: 10px 18px; font-size: 12px; }
  .pin .tip { min-width: 150px; font-size: 11.5px; }
  .quote-band { padding-left: 0; }
  .quote-band .qmark { position: static; margin-bottom: 14px; }
  .quote-band blockquote { font-size: 23px; }
  .news-card.featured h3 { font-size: 26px; }
  .news-card.featured .body { padding: 26px; }
  .filter-bar { gap: 16px; padding: 18px; }
  .prose > p { font-size: 16.5px; }
  .prose > p.first { font-size: 18.5px; }
  .prose blockquote { font-size: 22px; padding-left: 20px; }
  .cookie { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 18px; }
  .sub-nav { top: 62px; }
  .stage + .stage { margin-top: 64px; padding-top: 56px; }
  .svc-block + .svc-block { margin-top: 72px; }
  .co-hero { padding: 150px 0 80px; }
  .co-hero h1 { font-size: 32px; }
}

/* ---------- 35. Anchor offset & touch tooltips ---------- */
[id] { scroll-margin-top: 104px; }
.pin.open .tip { opacity: 1; visibility: visible; transform: none; }
.section > .container > .head:last-child { margin-bottom: 0; }

/* ---------- 36. Fixes after first visual QA ---------- */
.honey .cell { background: linear-gradient(155deg, rgba(62,235,221,.55), rgba(20,184,171,.14) 70%); }
.honey .cell::before { background: #0E2429; inset: 1.5px; }
.honey .cell:hover::before, .honey .cell:focus-visible::before { background: #10333A; }
.honey .core { background: linear-gradient(155deg, var(--c-accent), var(--c-teal-700)); }
.honey .core::before { background: var(--c-ink-900); inset: 6px; }
.stat .num.long { font-size: 34px; letter-spacing: -.02em; }
.stat .num.mid { font-size: 44px; }
.mini-head { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-slate); margin: 34px 0 16px; }
.dark .mini-head { color: var(--c-slate); }
.tier-row .tier-n { color: var(--c-slate); }
.tier-row .count { display: inline-block; margin-left: 10px; padding: 2px 8px; border-radius: var(--r-pill);
  background: rgba(62,235,221,.12); color: var(--c-accent); font-family: var(--f-mono); font-size: 11px;
  letter-spacing: .06em; vertical-align: 2px; }
.ind-panel:not(.active)::before { background: linear-gradient(180deg, rgba(7,19,23,.35), rgba(7,19,23,.82)); }
.router-card .go { display: block; }
.svc-row .peek { right: 96px; }
@media print {
  .site-header, .mobile-menu, .cookie, .wa-float, .label-toggle, .progress, .modal, .scroll-cue { display: none !important; }
  .hero { min-height: 60vh; }
  html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.logo-tile img { max-height: 64px; }
.wall .logo-tile img { max-height: 70px; }

/* ---------- 37. Submit page grid ---------- */
.submit-wrap { display: grid; grid-template-columns: 1.45fr .72fr; gap: 56px; align-items: start; }
@media (max-width: 1024px) { .submit-wrap { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- 38. Venture page refinements ---------- */
.split.top { align-items: start; }
.chain-wrap { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--c-line-dark); }
.gallery figcaption { max-width: 70%; line-height: 1.3; text-transform: none; letter-spacing: .02em;
  font-family: var(--f-body); font-size: 12px; }

/* ---------- 39. Animated stills (hero backgrounds, replaces video) ---------- */
.hero .media .kb, .page-hero .media .kb { position: absolute; inset: 0; overflow: hidden; }
.kb img { width: 100%; height: 100%; object-fit: cover; transform-origin: 62% 45%;
  animation: kenburns 30s ease-in-out infinite alternate; will-change: transform; }
@keyframes kenburns {
  from { transform: scale(1.015) translate3d(0, 0, 0); }
  to   { transform: scale(1.11) translate3d(-1.6%, -1.2%, 0); }
}
.hero .sheen, .page-hero .sheen { position: absolute; inset: -20% -40%; pointer-events: none; z-index: 1;
  background: linear-gradient(104deg, transparent 38%, rgba(62,235,221,.07) 47%, rgba(255,255,255,.05) 50%,
    rgba(62,235,221,.06) 53%, transparent 62%);
  transform: translateX(-38%); animation: sheen 13s ease-in-out infinite; }
@keyframes sheen { 0% { transform: translateX(-42%); opacity: 0; } 18% { opacity: 1; }
  70% { transform: translateX(38%); opacity: .5; } 100% { transform: translateX(46%); opacity: 0; } }
.hero .media, .page-hero .media { will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  .kb img { animation: none; transform: scale(1.02); }
  .hero .sheen, .page-hero .sheen { display: none; }
}

/* ---------- 40. Hero effects without extra markup (for the Elementor build) ----------
   The grain and the light sweep are pseudo-elements on the hero itself, so an Elementor
   Container only needs the class `hero` (or `page-hero fx`) — no helper spans. */
.hero::before, .page-hero.fx::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: var(--grain); background-size: 160px 160px; opacity: .05; mix-blend-mode: overlay;
}
.hero::after, .page-hero.fx::after {
  content: ""; position: absolute; inset: -20% -40%; z-index: 1; pointer-events: none;
  background: linear-gradient(104deg, transparent 38%, rgba(62,235,221,.07) 47%, rgba(255,255,255,.05) 50%,
    rgba(62,235,221,.06) 53%, transparent 62%);
  transform: translateX(-38%); animation: sheen 13s ease-in-out infinite;
}
.hero > .container, .page-hero > .container { position: relative; z-index: 2; }
.hero .scroll-cue { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .hero::after, .page-hero.fx::after { display: none; } }
/* =====================================================================
   BANKER GROUP — layer 3: Elementor bridge
   Elementor puts a widget's CSS classes on the widget WRAPPER, not on the element inside it.
   These rules map our classes onto the markup Elementor renders, so the native widgets
   (Heading, Text Editor, Button, Icon List, Icon Box, Nav Menu, Form, Image) look exactly
   like the HTML mockup. Harmless outside WordPress — none of these rules match there.
   ===================================================================== */

/* ---------- containers ---------- */
.e-con.section, .e-con.section.xl, .e-con.section.md { --padding-top: 0; --padding-bottom: 0; }
.e-con > .e-con-inner { padding: 0; }
.e-con.container { max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto;
  padding-inline: var(--gutter); width: 100%; }
.e-con.grid, .e-con.g2, .e-con.g3, .e-con.g4, .e-con.g5, .e-con.g6 { align-content: start; }

/* ---------- headings ---------- */
/* zero specificity: the mockup's contextual rules (.dark h2, .router-card h3 …) keep winning */
:where(.elementor-widget-heading .elementor-heading-title) { font-family: var(--f-display); font-weight: 600;
  color: var(--c-heading-light); letter-spacing: -.02em; }
.dark :where(.elementor-widget-heading .elementor-heading-title) { color: var(--c-white); }
.display .elementor-heading-title { font-size: 76px; line-height: 1.02; letter-spacing: -.028em; color: var(--c-white); }
.elementor-widget-heading.eyebrow .elementor-heading-title,
.eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--f-mono); font-size: 12.5px; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: var(--c-teal-700); }
.dark .eyebrow .elementor-heading-title { color: var(--c-accent); }
.eyebrow .elementor-heading-title::before { content: ""; width: 10px; height: 9px; background: currentColor;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.elementor-heading-title em { font-family: var(--f-serif); font-style: italic; font-weight: 400;
  font-size: 1.06em; background: linear-gradient(92deg, var(--c-teal-700), var(--c-primary));
  -webkit-background-clip: text; background-clip: text; color: transparent; }
.dark .elementor-heading-title em, .hero .elementor-heading-title em,
.page-hero .elementor-heading-title em { background: linear-gradient(92deg, var(--c-accent), var(--c-primary));
  -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- text ---------- */
/* text inherits its colour from the section, exactly like a <p> in the mockup */
:where(.elementor-widget-text-editor) { font-family: var(--f-body); line-height: 1.65; }
.lead .elementor-widget-container, .lead p { font-size: 20px; line-height: 1.55; }
.small .elementor-widget-container { font-size: 14px; }
.note-line .elementor-widget-container { font-size: 13px; color: #8A9BA2; }
.statement .elementor-widget-container { font-family: var(--f-display); font-weight: 500; font-size: 42px;
  line-height: 1.2; letter-spacing: -.022em; color: var(--c-heading-light); }

/* ---------- buttons ---------- */
.elementor-widget-button .elementor-button { display: inline-flex; align-items: center; gap: 10px;
  min-height: 52px; padding: 0 26px; border-radius: var(--r-btn); font-family: var(--f-body);
  font-size: 15px; font-weight: 700; letter-spacing: .01em; border: 1px solid transparent;
  transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease),
    transform .25s var(--ease); }
.btn-primary .elementor-button { background: var(--c-accent); color: var(--c-ink-900);
  box-shadow: 0 10px 30px rgba(62,235,221,.22); }
.btn-primary .elementor-button:hover { background: var(--c-primary); color: var(--c-ink-900); transform: translateY(-1px); }
.btn-ink .elementor-button { background: var(--c-ink-800); color: #fff; }
.btn-ink .elementor-button:hover { background: var(--c-teal-600); color: #fff; }
.btn-ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.34); }
.btn-ghost .elementor-button:hover { border-color: var(--c-accent); color: var(--c-accent); background: transparent; }
.btn-outline .elementor-button { background: transparent; color: var(--c-heading-light); border-color: var(--c-line-light); }
.btn-outline .elementor-button:hover { border-color: var(--c-teal-700); color: var(--c-teal-700); background: transparent; }
.link-arrow .elementor-button { min-height: 0; padding: 0; background: none; border: 0; color: var(--c-teal-700);
  font-size: 15px; font-weight: 700; }
.dark .link-arrow .elementor-button { color: var(--c-accent); }

/* ---------- icon lists (hexagon bullets) ---------- */
.hex-list .elementor-icon-list-items { display: grid; gap: 14px; }
.hex-list .elementor-icon-list-item { align-items: flex-start; }
.hex-list .elementor-icon-list-icon { display: none; }
.hex-list .elementor-icon-list-text { position: relative; padding-left: 28px; font-size: 15.5px;
  line-height: 1.55; color: inherit; }
.hex-list .elementor-icon-list-text::before { content: ""; position: absolute; left: 0; top: .5em;
  width: 12px; height: 10.5px; background: var(--c-primary);
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }

/* ---------- icon boxes as cards ---------- */
.card.elementor-widget-icon-box, .elementor-widget-icon-box.card { background: var(--c-white);
  border: 1px solid var(--c-line-light); border-radius: var(--r-card); padding: 32px;
  box-shadow: var(--shadow-card); }
.dark .elementor-widget-icon-box.card, .elementor-widget-icon-box.dark-card { background: var(--c-ink-700);
  border-color: var(--c-line-dark); box-shadow: none; }
.elementor-widget-icon-box .elementor-icon { width: 56px; height: 50px; display: grid; place-items: center;
  background: var(--c-primary); color: var(--c-ink-900); font-size: 22px;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.elementor-widget-icon-box .elementor-icon-box-title { font-family: var(--f-display); font-size: 22px;
  font-weight: 600; margin: 18px 0 10px; color: var(--c-heading-light); }
.dark .elementor-widget-icon-box .elementor-icon-box-title { color: var(--c-white); }
.elementor-widget-icon-box .elementor-icon-box-description { font-size: 15px; color: var(--c-text); }
.dark .elementor-widget-icon-box .elementor-icon-box-description { color: var(--c-mist); }

/* ---------- header navigation ---------- */
.site-header .elementor-nav-menu { display: flex; align-items: center; gap: 4px; }
.site-header .elementor-nav-menu > li > a { height: 44px; padding: 0 16px; border-radius: 10px;
  display: inline-flex; align-items: center; gap: 6px; color: rgba(255,255,255,.86);
  font-family: var(--f-body); font-size: 15px; font-weight: 600; }
.site-header .elementor-nav-menu > li > a:hover,
.site-header .elementor-nav-menu > li.current-menu-item > a { background: rgba(255,255,255,.06); color: #fff; }
.site-header .elementor-nav-menu--dropdown { background: rgba(11,27,33,.97); border: 1px solid var(--glass-line);
  border-radius: 18px; padding: 10px; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.site-header .elementor-nav-menu--dropdown a { color: var(--c-mist); border-radius: 12px; font-size: 14.5px; }
.site-header .elementor-nav-menu--dropdown a:hover { background: rgba(62,235,221,.08); color: #fff; }
.site-header .elementor-widget-image img { height: 40px; width: auto; }

/* ---------- language switcher (WPML / Polylang) ---------- */
.lang .wpml-ls-legacy-list-horizontal, .lang .pll-parent-menu-item ul,
.lang ul { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--r-pill); list-style: none; margin: 0; }
.lang a { min-width: 40px; height: 30px; display: grid; place-items: center; border-radius: var(--r-pill);
  font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em;
  color: rgba(255,255,255,.66); text-decoration: none; }
.lang .current-lang a, .lang .wpml-ls-current-language a { background: rgba(62,235,221,.14); color: var(--c-accent); }

/* ---------- forms ---------- */
.elementor-form .elementor-field-group > label { font-size: 13px; font-weight: 700; color: var(--c-heading-light);
  margin-bottom: 8px; }
.elementor-form .elementor-field { min-height: 52px; padding: 14px 16px; border-radius: 12px;
  border: 1px solid var(--c-line-light); background: #fff; font-family: var(--f-body); font-size: 15.5px;
  color: var(--c-heading-light); }
.elementor-form .elementor-field:focus { outline: 0; border-color: var(--c-primary);
  box-shadow: 0 0 0 4px rgba(20,184,171,.15); }
.elementor-form textarea.elementor-field { min-height: 132px; }
.elementor-form .elementor-button { background: var(--c-accent); color: var(--c-ink-900); min-height: 52px;
  padding: 0 26px; border-radius: var(--r-btn); font-weight: 700; }
.elementor-form .elementor-field-type-acceptance label { font-size: 13.5px; font-weight: 400; line-height: 1.5; }
.elementor-message.elementor-message-success { background: var(--c-ice); color: var(--c-teal-700);
  border-radius: 12px; padding: 16px 18px; font-weight: 700; }

/* ---------- images & media ---------- */
.media-frame .elementor-widget-image img, .e-con.media-frame img { border-radius: 24px; }
.kb .elementor-widget-image, .kb .elementor-widget-container, .kb img { height: 100%; width: 100%; }
.e-con.hero, .e-con.page-hero { position: relative; overflow: hidden; }
.e-con.hero > .e-con-inner, .e-con.page-hero > .e-con-inner { position: relative; z-index: 2; }

/* ---------- accordion & tabs (nested widgets) ---------- */
.acc .e-n-accordion-item { border-bottom: 1px solid var(--c-line-light); }
.acc .e-n-accordion-item-title { font-family: var(--f-display); font-size: 19px; font-weight: 600;
  color: var(--c-heading-light); padding: 26px 0; }
.acc .e-n-accordion-item-title-text { font-family: inherit; }
.tabs-nav .e-n-tabs-heading { display: inline-flex; padding: 6px; gap: 6px; border-radius: var(--r-pill);
  background: var(--c-ink-700); border: 1px solid var(--c-line-dark); }
.tabs-nav .e-n-tab-title { border-radius: var(--r-pill); padding: 12px 22px; font-weight: 700; color: var(--c-mist); }
.tabs-nav .e-n-tab-title[aria-selected="true"] { background: var(--c-accent); color: var(--c-ink-900); }

/* ---------- responsive type for the bridge ---------- */
@media (max-width: 1024px) {
  .display .elementor-heading-title { font-size: 56px; }
  .statement .elementor-widget-container { font-size: 30px; }
  .lead .elementor-widget-container, .lead p { font-size: 18px; }
}
@media (max-width: 767px) {
  .display .elementor-heading-title { font-size: 40px; }
  .statement .elementor-widget-container { font-size: 25px; }
  .lead .elementor-widget-container, .lead p { font-size: 17px; }
  .elementor-widget-button .elementor-button { width: 100%; justify-content: center; }
}

/* ---------- media layers inside Elementor containers (hero, page hero, CTA band) ---------- */
.e-con.media { position: absolute; inset: 0; padding: 0; z-index: 0; overflow: hidden; }
.e-con.media > .elementor-widget-image,
.e-con.media .elementor-widget-container,
.e-con.media .elementor-widget-image > a { width: 100%; height: 100%; max-width: none; }
.e-con.media img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.cta-band > .e-con.container, .hero > .e-con.container, .page-hero > .e-con.container { position: relative; z-index: 2; }
/* =====================================================================
   BANKER GROUP — layer 4: WordPress specifics
   Elementor 4 renders widgets with "optimized markup" (no inner
   .elementor-widget-container), and a widget's CSS classes sit on its
   wrapper. The mockup classes (.btn, .eyebrow, .nav …) describe the inner
   element, so here the wrapper is neutralised and the look moves inside.
   Hello theme: reset.css and the theme header/footer are switched off.
   ===================================================================== */

/* ---------- 1. Native form controls (Hello reset.css is deregistered) ---------- */
:where(button, [type="button"], [type="submit"], [type="reset"]) {
  font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0;
  cursor: pointer; border-radius: 0; -webkit-appearance: none; appearance: none; }
:where(input, select, textarea) { font: inherit; }
:where(img) { height: auto; }
:where(figure) { margin: 0; }
:where(h5, h6) { margin: 0; }
:where(b, strong) { font-weight: 700; }

/* ---------- 2. Wrapper vs element ---------- */
.elementor-widget.btn, .elementor-widget.btn:hover, .elementor-widget.link-arrow, .elementor-widget.link-arrow:hover {
  display: block; min-height: 0; height: auto; padding: 0; gap: 0; border: 0; border-radius: 0;
  background: none; box-shadow: none; transform: none; white-space: normal; }
.elementor-widget.eyebrow { display: block; margin: 0; }
.elementor-widget.eyebrow::before { content: none; display: none; }
.elementor-widget.nav { display: block; gap: 0; }
.elementor-widget.lead p, .elementor-widget.small p { font-size: inherit; line-height: inherit; }
.elementor-widget.statement { font-family: var(--f-display); font-weight: 500; font-size: 42px; line-height: 1.2;
  letter-spacing: -.022em; color: var(--c-heading-light); }
.dark .elementor-widget.statement { color: var(--c-white); }
.elementor-widget.note-line { font-size: 13px; color: #8A9BA2; }
.elementor-widget-button .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 10px; }
.elementor-widget-button .elementor-button-icon svg { width: 16px; height: 16px; fill: currentColor; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }

/* Elementor's container gap (20 px) replaces the mockup's stacked margins */
.e-con.head { margin-bottom: 44px; }
.e-con.head.center { margin-inline: auto; text-align: center; }
.e-con.btn-row { margin-top: 20px; }
.e-con.head > .elementor-widget.lead { margin-top: 2px; }

/* ---------- 3. Images inside our components ---------- */
.elementor-widget-image.kb, .e-con.media > .elementor-widget-image { position: absolute; inset: 0; overflow: hidden; margin: 0; }
.elementor-widget-image.kb img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.elementor-widget-image.media-frame { border-radius: 24px; overflow: hidden; box-shadow: var(--shadow-lift); }
.elementor-widget-image.media-frame img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- 4. Editor comfort (the preview has no site script) ---------- */
.elementor-editor-active .reveal { opacity: 1; transform: none; }
.elementor-editor-active .statement .w { opacity: 1; }
.elementor-editor-active .site-header { position: relative; }

/* ---------- 6. Headings: Elementor sets .elementor-heading-title { line-height: 1 } ---------- */
h1.elementor-heading-title { line-height: 1.04; }
h2.elementor-heading-title { line-height: 1.1; }
h3.elementor-heading-title { line-height: 1.25; }
h4.elementor-heading-title { line-height: 1.35; }
.display .elementor-heading-title { line-height: 1.02; }

/* ---------- 7. Max-widths move from the wrapper to the element
   (Elementor caps every widget wrapper at max-width: 100%) ---------- */
.hero .display .elementor-heading-title { max-width: 900px; }
.hero .elementor-widget.lead p { max-width: 620px; }
.page-hero .elementor-widget.lead p { max-width: 640px; }
.co-hero .elementor-widget.lead p { max-width: 660px; }
.elementor-widget.note-line p { max-width: 820px; }
.hero .elementor-widget.lead { margin-top: 8px; }
.page-hero .elementor-widget.lead { margin-top: 4px; }
.elementor-widget.note-line { margin-top: 6px; }

/* ---------- 8. Eyebrows on dark heroes read in the accent colour ---------- */
.hero .eyebrow .elementor-heading-title, .page-hero .eyebrow .elementor-heading-title,
.cta-band .eyebrow .elementor-heading-title { color: var(--c-accent); }

/* ---------- 9. Header (Theme Builder) ---------- */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header .e-con.bar { flex-wrap: nowrap; }
.site-header .brand img { height: 46px; width: auto; max-width: none; }
.site-header.solid .brand img { height: 40px; }
.e-con.header-cta { flex: 0 0 auto; width: auto; }
.header-cta .elementor-widget-button .elementor-button { min-height: 46px; padding: 0 20px; font-size: 14.5px; }
.elementor-widget-button .elementor-button-icon svg { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.elementor-widget-button .elementor-button:hover .elementor-button-icon svg { transform: translateX(3px); }
.burger-btn .elementor-icon-wrapper { line-height: 0; }
.burger-btn .elementor-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px;
  border: 1px solid rgba(255,255,255,.22); color: #fff; font-size: 17px; cursor: pointer; transition: border-color .25s; }
.burger-btn .elementor-icon:hover { border-color: var(--c-accent); }
.burger-btn .elementor-icon svg { width: 17px; height: 17px; fill: #fff; }

/* Mega Menu (Elementor Pro "Menu" widget) */
.mega-nav { flex: 1 1 auto; --n-menu-title-color-normal: rgba(255,255,255,.86); --n-menu-title-color-hover: #fff;
  --n-menu-title-color-active: #fff; --n-menu-dropdown-indicator-color-normal: rgba(255,255,255,.5);
  --n-menu-dropdown-indicator-color-hover: var(--c-accent); --n-menu-dropdown-indicator-color-active: var(--c-accent);
  --n-menu-title-distance-from-content: 16px; --n-menu-open-animation-duration: 240ms; --n-menu-icon-gap: 6px;
  --n-menu-dropdown-indicator-size: 10px; }
.mega-nav .e-n-menu-heading { justify-content: center; gap: 4px; }
.mega-nav .e-n-menu-title { height: 44px; padding: 0 14px; border-radius: 10px; font-family: var(--f-body);
  font-size: 15px; font-weight: 600; transition: background .25s var(--ease); }
.mega-nav .e-n-menu-title-container, .mega-nav .e-n-menu-title-text { color: rgba(255,255,255,.86); font: inherit; }
.mega-nav .e-n-menu-item:hover > .e-n-menu-title, .mega-nav .e-n-menu-title.e-current { background: rgba(255,255,255,.06); }
.mega-nav .e-n-menu-item:hover .e-n-menu-title-text { color: #fff; }
.mega-nav .e-n-menu-dropdown-icon { color: rgba(255,255,255,.5); background: none; border: 0; padding: 0; }
.mega-nav .e-n-menu-dropdown-icon svg { width: 10px; height: 10px; fill: currentColor; }
.e-con.mega-panel { --width: 820px; width: 820px; max-width: calc(100vw - 48px); padding: 22px; gap: 22px;
  background: rgba(11,27,33,.97); border: 1px solid var(--glass-line); border-radius: 22px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.e-con.mega-main { flex: 1 1 auto; min-width: 0; gap: 0; }
.mega-label .elementor-heading-title { margin: 0 0 12px; font-family: var(--f-mono); font-size: 11px; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--c-slate); }
.e-con.mega-grid { --e-con-grid-template-columns: 1fr 1fr; gap: 4px; }
.e-con.mega-link { padding: 12px; border-radius: 14px; gap: 14px; transition: background .2s; color: inherit; }
.e-con.mega-link:hover { background: rgba(62,235,221,.07); }
.e-con.mega-tx { gap: 3px; min-width: 0; }
.mega-ico .elementor-icon { width: 38px; height: 34px; display: grid; place-items: center; background: var(--c-ink-600);
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); transition: background .2s; }
.mega-ico .elementor-icon svg { width: 15px; height: 15px; fill: var(--c-accent); }
.mega-link:hover .mega-ico .elementor-icon { background: var(--c-teal-700); }
.mega-t .elementor-heading-title { color: #fff; font-family: var(--f-body); font-size: 15px; font-weight: 700;
  letter-spacing: 0; line-height: 1.3; }
.elementor-widget.mega-d { color: var(--c-slate); font-size: 13px; line-height: 1.4; }
.e-con.mega-feature { position: relative; overflow: hidden; flex: 0 0 250px; width: 250px; min-height: 250px;
  padding: 20px; gap: 6px; border-radius: 16px; justify-content: flex-end; align-items: stretch; }
.e-con.mega-feature > .elementor-widget { position: relative; z-index: 2; }
.mega-feature .e-con.media::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7,19,23,0) 25%, rgba(7,19,23,.94)); }
.mega-feature .e-con.media img { transition: transform .7s var(--ease); }
.mega-feature:hover .e-con.media img { transform: scale(1.05); }
.mega-ft .elementor-heading-title { color: #fff; font-family: var(--f-display); font-size: 19px; font-weight: 600; line-height: 1.2; }
.elementor-widget.mega-fd { color: var(--c-mist); font-size: 14px; line-height: 1.45; }
@media (max-width: 1200px) {
  .mega-nav .e-n-menu-title { padding: 0 10px; font-size: 14.5px; }
  .e-con.mega-panel { --width: 760px; width: 760px; }
}

/* ---------- 10. Mobile menu (Elementor Pro Popup) ---------- */
.bg-mm-popup .dialog-widget-content { background: var(--c-ink-900); box-shadow: none; }
.bg-mm-popup .dialog-close-button { z-index: 10; }
.bg-mm-popup .dialog-close-button svg { fill: #fff; }
.e-con.mm { padding: 20px var(--gutter) 40px; gap: 26px; min-height: 100%; color: var(--c-mist); }
.e-con.mm-top { padding-right: 56px; gap: 16px; }
.mm-logo img { height: 36px; width: auto; }
.mm-acc .e-n-accordion-item { border-bottom: 1px solid var(--c-line-dark); }
.mm-acc .e-n-accordion-item-title { padding: 18px 0; background: none; border: 0; }
.mm-acc .e-n-accordion-item-title-text { font-family: var(--f-display); font-size: 24px; font-weight: 600;
  letter-spacing: -.01em; color: #fff; }
.mm-acc .e-n-accordion-item-title-icon svg { width: 16px; height: 16px; fill: var(--c-accent); }
.mm-acc .e-n-accordion-item > .e-con { padding: 0 0 14px; border: 0; background: none; }
.mm-links .elementor-icon-list-item { padding: 7px 0; }
.mm-links .elementor-icon-list-text { font-size: 16.5px; color: var(--c-mist); transition: color .2s; }
.mm-links .elementor-icon-list-item:first-child .elementor-icon-list-text { color: var(--c-accent); font-weight: 700; }
.mm-links a:hover .elementor-icon-list-text { color: #fff; }
.e-con.mm-btns { margin-top: 6px; gap: 12px; }
.mm-btns .elementor-button { width: 100%; justify-content: center; }
.mm-contact .elementor-icon-list-text { color: var(--c-mist); font-size: 14.5px; }
.mm-contact .elementor-icon-list-icon svg { fill: var(--c-accent); width: 14px; height: 14px; }

/* ---------- 11. Footer (Theme Builder) ---------- */
.site-footer .footer-logo img { height: 58px; width: auto; margin-bottom: 4px; }
.site-footer .f-tag p { max-width: 300px; }
.site-footer .f-h .elementor-heading-title { margin: 0 0 6px; font-family: var(--f-mono); font-size: 11.5px; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: #fff; }
.site-footer .elementor-icon-list-item { margin: 0; padding: 0 0 10px; }
.site-footer .elementor-icon-list-text { color: var(--c-slate); font-size: 14.5px; transition: color .2s; }
.site-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--c-accent); }
.site-footer .f-contact .elementor-icon-list-icon svg { fill: var(--c-accent); width: 13px; height: 13px; }
.site-footer .f-contact .elementor-icon-list-icon { padding-right: 10px; }
.soc .elementor-social-icons-wrapper { gap: 10px; }
.soc .elementor-social-icon { width: 38px; height: 38px; display: grid; place-items: center; padding: 0;
  background: transparent; border: 1px solid var(--c-line-dark); border-radius: 50%; transition: border-color .2s, background .2s; }
.soc .elementor-social-icon svg { width: 15px; height: 15px; fill: var(--c-mist); }
.soc .elementor-social-icon:hover { border-color: var(--c-accent); background: rgba(62,235,221,.08); }
.soc .elementor-social-icon:hover svg { fill: var(--c-accent); }
.e-con.footer-bottom { margin-top: 64px; padding: 24px 0; gap: 16px; border-top: 1px solid var(--c-line-dark); font-size: 13px; }
.f-legal .elementor-icon-list-items { gap: 24px; }
.f-legal .elementor-icon-list-item { padding: 0; }
.f-legal .elementor-icon-list-text { font-size: 13px; }
@media (max-width: 1024px) {
  .footer-grid > .fcol-contact { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .footer-grid > .footer-brand, .footer-grid > .fcol-contact { grid-column: 1 / -1; }
  .e-con.footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------- 12. Router card icon, one-pager popup ---------- */
.router-card .e-con.top { gap: 12px; }
.r-ico .elementor-icon-wrapper { line-height: 0; }
.r-ico .elementor-icon { width: 38px; height: 34px; display: grid; place-items: center; background: rgba(62,235,221,.12);
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.r-ico .elementor-icon svg { width: 15px; height: 15px; fill: var(--c-accent); }
.bg-op-popup .dialog-widget-content { border-radius: 24px; overflow: hidden; box-shadow: 0 40px 120px rgba(7,19,23,.45); }
.e-con.op-box { padding: 40px; gap: 14px; background: #fff; }
.op-title .elementor-heading-title { font-size: 28px; }
.op-box .elementor-widget-form { margin-top: 8px; }
@media (max-width: 767px) { .e-con.op-box { padding: 28px 22px; } }

/* ---------- 13. Long-form text (articles, legal pages): paragraphs sit inside Text Editor widgets ---------- */
.e-con.prose { max-width: 720px; margin-inline: auto; gap: 0; }
.prose .elementor-widget-text-editor > p { font-size: 17.5px; line-height: 1.75; margin: 0 0 1.4em; }
.prose .elementor-widget-text-editor.first > p { font-size: 21px; line-height: 1.6; color: var(--c-heading-light); }
.prose .elementor-widget-text-editor a { color: var(--c-teal-700); text-decoration: underline; text-underline-offset: 3px; }
.prose .elementor-widget-heading h2 { font-size: 30px; margin: 40px 0 16px; }
.prose > .elementor-widget-heading:first-child h2 { margin-top: 0; }
.e-con.share { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--c-line-light); }
.share-label .elementor-heading-title { font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: var(--c-text); }
.share-btns .elementor-share-btn { width: 40px; height: 40px; border: 1px solid var(--c-line-light); border-radius: 50%;
  background: #fff; transition: border-color .2s, background .2s; }
.share-btns .elementor-share-btn:hover { border-color: var(--c-teal-700); background: var(--c-ice); }
.share-btns .elementor-share-btn__icon svg { fill: var(--c-teal-700); width: 15px; height: 15px; }
@media (max-width: 767px) {
  .prose .elementor-widget-text-editor > p { font-size: 16.5px; }
  .prose .elementor-widget-text-editor.first > p { font-size: 18.5px; }
  .prose .elementor-widget-heading h2 { font-size: 25px; }
}

/* ---------- 13b. Long-form detail: sub-headings, lists, tables, quotes (legal pages, news posts) ---------- */
.prose .elementor-widget-heading h3 { font-size: 21px; margin: 30px 0 12px; }
.prose .elementor-widget-text-editor ul,
.post-body ul { margin: 0 0 1.4em; padding: 0; list-style: none; }
.prose .elementor-widget-text-editor ul li,
.post-body ul li { position: relative; padding-left: 26px; margin-bottom: 10px; font-size: 17px; line-height: 1.65; }
.prose .elementor-widget-text-editor ul li::before,
.post-body ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 11px; height: 9.5px;
  background: var(--c-primary); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.prose .table-wrap, .post-body .table-wrap { margin: 8px 0 1.8em; overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--c-line-light); border-radius: 14px; background: #fff; }
.prose table, .post-body table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14.5px; line-height: 1.55; }
.prose th, .post-body th { text-align: start; padding: 14px 16px; background: var(--c-ice); color: var(--c-heading-light);
  font-family: var(--f-mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  border-bottom: 1px solid var(--c-line-light); }
.prose td, .post-body td { padding: 14px 16px; vertical-align: top; border-bottom: 1px solid var(--c-line-light); }
.prose tr:last-child td, .post-body tr:last-child td { border-bottom: 0; }
.prose td:first-child, .post-body td:first-child { font-weight: 600; color: var(--c-heading-light); }
/* news posts: the body comes from the Post Content widget */
.post-body { max-width: 720px; margin-inline: auto; }
.post-body p { font-size: 17.5px; line-height: 1.75; margin: 0 0 1.4em; }
.post-body > .elementor-widget-container > p:first-child, .post-body > p:first-child { font-size: 21px; line-height: 1.6; color: var(--c-heading-light); }
.post-body a { color: var(--c-teal-700); text-decoration: underline; text-underline-offset: 3px; }
.post-body h2 { font-size: 30px; margin: 48px 0 16px; }
.post-body h3 { font-size: 21px; margin: 32px 0 12px; }
.post-body blockquote { margin: 44px 0; padding: 0 0 0 30px; border-left: 2px solid var(--c-primary);
  font-family: var(--f-serif); font-size: 28px; line-height: 1.35; color: var(--c-heading-light); }
.post-body blockquote p { font-size: inherit; line-height: inherit; margin: 0; color: inherit; }

.post-body .sources h2, .post-body h2.sources-title { font-family: var(--f-mono); font-size: 11.5px; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--c-text); margin: 48px 0 14px; }
.post-body .sources li, .post-body ol.sources li { font-size: 14px; line-height: 1.6; color: var(--c-text); }
.post-body ol { margin: 0 0 1.4em; padding-left: 22px; }
.post-body ol li { margin-bottom: 8px; }
@media (max-width: 767px) {
  .prose .elementor-widget-heading h3, .post-body h3 { font-size: 19px; }
  .post-body p { font-size: 16.5px; }
  .post-body > .elementor-widget-container > p:first-child, .post-body > p:first-child { font-size: 18.5px; }
  .post-body h2 { font-size: 25px; margin-top: 40px; }
  .post-body blockquote { font-size: 22px; padding-left: 20px; }
  .prose table, .post-body table { font-size: 14px; }
  /* tables become one card per row: the column name comes from data-label */
  .prose .table-wrap, .post-body .table-wrap { overflow: visible; border: 0; background: none; border-radius: 0; }
  .prose table, .post-body table { min-width: 0; }
  .prose table thead, .post-body table thead { display: none; }
  .prose table, .prose tbody, .prose tr, .prose td,
  .post-body table, .post-body tbody, .post-body tr, .post-body td { display: block; width: 100%; }
  .prose tr, .post-body tr { margin-bottom: 12px; padding: 6px 16px; border: 1px solid var(--c-line-light);
    border-radius: 14px; background: #fff; }
  .prose td, .post-body td { padding: 10px 0; border-bottom: 1px solid var(--c-line-light); }
  .prose tr td:last-child, .post-body tr td:last-child { border-bottom: 0; }
  .prose td[data-label]::before, .post-body td[data-label]::before { content: attr(data-label); display: block;
    margin-bottom: 4px; font-family: var(--f-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .12em;
    text-transform: uppercase; color: var(--c-teal-700); }
}
.lead a, .elementor-widget-text-editor.lead a { color: var(--c-teal-700); text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: 3px; }
.dark .lead a, .dark .elementor-widget-text-editor.lead a { color: var(--c-primary); }

/* ---------- 14. Elementor's responsive visibility must beat every display rule above ---------- */
@media (min-width: 1025px) { .elementor .elementor-hidden-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .elementor .elementor-hidden-tablet { display: none !important; } }
@media (max-width: 767px) { .elementor .elementor-hidden-mobile { display: none !important; } }

/* ---------- 15. Audience router: solid ink cards (the glass looked grey where it leaves the hero) ---------- */
.e-con.router-card { background: linear-gradient(180deg, rgba(19,40,47,.94), rgba(11,27,33,.98));
  border: 1px solid rgba(62,235,221,.16); box-shadow: 0 24px 60px rgba(7,19,23,.28); }
.e-con.router-card:hover { background: linear-gradient(180deg, rgba(26,52,60,.96), rgba(11,27,33,.98)); }
.router-card .link-arrow .elementor-button { color: var(--c-accent); }

/* ---------- 16. Elementor Pro Form — the mockup's field look on Elementor's markup ---------- */
.elementor-widget-form.form { display: block; }
.elementor-form .elementor-field-group > .elementor-field-label { font-size: 13px; font-weight: 700; letter-spacing: .02em;
  color: var(--c-heading-light); }
.elementor-form .elementor-mark-required .elementor-field-label::after,
.elementor-mark-required .elementor-field-label::after { color: var(--c-teal-700); }
.elementor-form .elementor-select-wrapper { min-height: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.elementor-form .elementor-select-wrapper select { width: 100%; min-height: 52px; padding: 14px 44px 14px 16px; border-radius: 12px;
  border: 1px solid var(--c-line-light); background: #fff; font-family: var(--f-body); font-size: 15.5px;
  color: var(--c-heading-light); -webkit-appearance: none; appearance: none; }
.elementor-form .elementor-select-wrapper select:focus { outline: 0; border-color: var(--c-primary); box-shadow: 0 0 0 4px rgba(20,184,171,.15); }
.elementor-form .elementor-select-wrapper .select-caret-down-wrapper { right: 16px; color: var(--c-teal-700); }
.elementor-form .elementor-select-wrapper .select-caret-down-wrapper svg { fill: var(--c-teal-700); width: 12px; }
.elementor-form .elementor-field-subgroup .elementor-field-option { display: flex; gap: 12px; align-items: flex-start; }
.elementor-form input[type="checkbox"].elementor-field, .elementor-form input[type="radio"].elementor-field,
.elementor-form .elementor-acceptance-field { min-height: 0; width: 18px; height: 18px; flex: 0 0 18px; padding: 0; margin: 2px 0 0;
  border-radius: 4px; accent-color: var(--c-teal-600); box-shadow: none; }
.elementor-form .elementor-field-option label { font-size: 13.5px; font-weight: 400; line-height: 1.5; color: var(--c-text); }
.elementor-form input[type="file"].elementor-field { min-height: 0; padding: 14px; border-style: dashed; background: var(--c-fog);
  font-size: 14px; color: var(--c-text); }
.elementor-form .elementor-field-type-submit { margin-top: 6px; }
.elementor-form .elementor-button[type="submit"] { gap: 10px; box-shadow: 0 10px 30px rgba(62,235,221,.22);
  transition: background .25s var(--ease), transform .25s var(--ease); }
.elementor-form .elementor-button[type="submit"]:hover { background: var(--c-primary); transform: translateY(-1px); }
.elementor-form .elementor-button[type="submit"] svg { width: 14px; height: 14px; fill: currentColor; }
.elementor-message { font-size: 14.5px; }
.elementor-message.elementor-message-danger { color: #B42318; }
.elementor-error .elementor-field { border-color: #D92D20 !important; }
.elementor-form .elementor-field::placeholder { color: #9AAAB0; }

/* ---------- 17. Entrance animations (Elementor Motion Effects): a short, soft rise instead of
   Elementor's 100%-height slide — the same feel as the mockup's .reveal ---------- */
@keyframes bgFadeInUp { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
@keyframes bgFadeIn { from { opacity: 0; } to { opacity: 1; } }
.elementor-element.animated.fadeInUp { animation-name: bgFadeInUp; }
.elementor-element.animated.fadeIn { animation-name: bgFadeIn; }
.elementor-element.animated { animation-duration: .9s; animation-timing-function: cubic-bezier(.2,.7,.2,1); }
/* phones scroll faster through single-column stacks: a shorter, smaller rise keeps content from lagging */
@keyframes bgFadeInUpSm { from { opacity: 0; transform: translate3d(0, 14px, 0); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
  .elementor-element.animated { animation-duration: .55s; }
  .elementor-element.animated.fadeInUp { animation-name: bgFadeInUpSm; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-element.animated { animation: none !important; }
  .elementor-invisible { visibility: visible !important; opacity: 1 !important; }
}

/* ---------- 18. Icon List bullets, FAQ accordion, footer alignment ---------- */
.hex-list .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text { padding-inline-start: 28px; }
.acc .e-n-accordion .e-n-accordion-item-title { padding: 24px 0; border: 0; background: none; }
.acc .e-n-accordion .e-n-accordion-item > .e-con { padding: 0 0 24px; border: 0; background: none; }
.acc .e-n-accordion .e-n-accordion-item { border: 0; border-bottom: 1px solid var(--c-line-light); }
.acc .e-n-accordion .e-n-accordion-item:first-child { border-top: 1px solid var(--c-line-light); }
.acc .e-n-accordion .e-n-accordion-item-title-text { font-family: var(--f-display); font-size: 19px; font-weight: 600;
  letter-spacing: -.01em; line-height: 1.3; }
.acc .e-n-accordion .e-n-accordion-item-title-icon svg { width: 14px; height: 14px; }
.acc .e-n-accordion .e-n-accordion-item p { color: var(--c-text); font-size: 16px; }
.mm-acc .e-n-accordion-item-title, .mm-acc .e-n-accordion-item > .e-con { border: 0; }
.site-footer .footer-logo, .site-footer .elementor-widget-social-icons, .mm-logo { text-align: left; }
.soc .elementor-social-icons-wrapper { justify-content: flex-start; }
@media (max-width: 767px) {
  .acc .e-n-accordion .e-n-accordion-item-title-text { font-size: 17px; }
  .acc .e-n-accordion .e-n-accordion-item-title { padding: 20px 0; }
}

/* ---------- 19. Media frames fill their aspect ratio; ink cards on light sections ---------- */
.e-con.media-frame { padding: 0; gap: 0; }
.e-con.media-frame > .elementor-widget-image { position: relative; flex: 1 1 auto; width: 100%; height: 100%; min-height: 100%; }
.e-con.media-frame > .elementor-widget-image img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  object-fit: cover; border-radius: 0; }
.media-frame.tall { aspect-ratio: 4 / 5; }
.media-frame.wide { aspect-ratio: 16 / 10; }
.contact-card.glass { background: linear-gradient(180deg, #13282F, #0B1B21); border-color: rgba(62,235,221,.16);
  box-shadow: 0 24px 60px rgba(7,19,23,.22); }
.contact-card .eyebrow { color: var(--c-accent); }
.contact-card h3 { color: #fff; }
.next-steps { list-style: none; padding-left: 0; margin-left: 0; }
.contact-card .maps-link { margin-top: 26px; }
.contact-card .maps-link .btn { min-height: 46px; }

/* ---------- 20. 404 page ---------- */
.e404-links { margin-top: 26px; }
.e404-links .elementor-icon-list-items { gap: 10px 26px; }
.e404-links .elementor-icon-list-text { color: var(--c-mist); font-size: 14.5px; padding-bottom: 2px;
  border-bottom: 1px solid rgba(62,235,221,.35); transition: color .2s; }
.e404-links a:hover .elementor-icon-list-text { color: var(--c-accent); }

/* ---------- 21. The mockup lays these out as CSS grids; in Elementor they are containers with their
   own direction and widths, so Elementor's display value wins ---------- */
.e-con.co-grid, .e-con.focus, .e-con.svc-block, .e-con.stage-cols, .e-con.stage-wrap, .e-con.contact-wrap,
.e-con.split, .e-con.honey-wrap, .e-con.submit-wrap { display: var(--display); }

/* ---------- 22. Submit page: the two doors switch between the forms (site script) ---------- */
.e-con.tab-panel { display: none; }
.e-con.tab-panel.active, .elementor-editor-active .e-con.tab-panel { display: var(--display); }
.e-con.tabs-group { gap: 0; }
.funnel .hex-list { margin-top: 20px; }
.funnel .hex-list li { font-size: 14.5px; }

/* ---------- 23. Small laptops (1025–1199 px): the five mega-menu items no longer fit beside the logo,
   language switch and CTA, so the burger + full-screen menu take over a little earlier ---------- */
@media (min-width: 1025px) and (max-width: 1199px) {
  .elementor .mega-nav { display: none !important; }
  .elementor .burger-btn.elementor-hidden-desktop { display: block !important; }
}

/* ---------- 24. Hero field (canvas added by the site script) ---------- */
.hero-fx { position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: screen; }
/* keep the glowing plant (right third of the photograph) in frame on narrow screens */
.hero .kb img { object-position: 62% 50%; }
.svc-row .peek { display: none !important; }

/* ---------- 25. Language switcher (Polylang, via Connect Polylang for Elementor) ---------- */
.lang-sw .cpel-switcher__nav { display: inline-block; }
.lang-sw .cpel-switcher__list { display: inline-flex; gap: 2px; padding: 3px; margin: 0; list-style: none;
  border: 1px solid rgba(255,255,255,.18); border-radius: var(--r-pill); }
.lang-sw .cpel-switcher__lang { margin: 0; padding: 0; }
.lang-sw .cpel-switcher__lang a { min-width: 40px; height: 30px; display: grid; place-items: center; padding: 0 10px;
  border-radius: var(--r-pill); font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em;
  color: rgba(255,255,255,.66); text-decoration: none; transition: color .2s, background .2s; }
.lang-sw .cpel-switcher__lang a:hover { color: #fff; }
.lang-sw .cpel-switcher__lang--active a { background: rgba(62,235,221,.14); color: var(--c-accent); }
.lang-sw .cpel-switcher__code { font: inherit; }

/* ---------- 5. Responsive ---------- */
@media (max-width: 1024px) {
  .elementor-widget.statement { font-size: 30px; }
  .elementor-widget.nav { display: block; }
  /* a definite width keeps the honeycomb's aspect-ratio height in the flow on narrow screens */
  .honey { width: min(calc(100vw - 2 * var(--gutter)), 580px); max-width: 100%; }
}
@media (max-width: 767px) {
  .elementor-widget.statement { font-size: 25px; }
  .e-con.head { margin-bottom: 28px; }
  /* text links keep their natural width (the bridge makes real buttons full-width on phones) */
  .link-arrow .elementor-button { width: auto; justify-content: flex-start; }
  /* tier list: keep the count badge beside the title */
  .tier-row { grid-template-columns: 34px 1fr 16px; gap: 12px; }
  .tier-row strong { font-size: 17px; }
  /* hero facts: one tidy row of three instead of a staggered stack */
  .hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 34px; }
  .hero-facts .fact, .hero-facts .fact:first-child { padding: 0 10px 0 12px; }
  .hero-facts .fact:first-child { padding-left: 0; }
  .hero-facts .fact::before { top: 2px; bottom: 2px; }
  .hero-facts b { font-size: 26px; }
  .hero-facts span { font-size: 11.5px; line-height: 1.35; max-width: none; }
  /* phone header: logo + burger (the language switch lives in the menu popup) */
  .site-header .lang-wrap { display: none; }
  .site-header .brand img { height: 38px; }
  .site-header .e-con.bar { gap: 12px; }
  .e-con.header-cta { gap: 10px; }
}

/* ---------- 26. News as posts: Loop Grid cards, featured first card, single-post hero ---------- */
.news-grid .e-loop-item > .news-card { height: 100%; }
.e-con.news-card { padding: 0; gap: 0; flex-wrap: nowrap; color: inherit; }
.news-card > .thumb { flex: none; }
.news-card .thumb > .elementor-widget-image, .news-card .thumb > .elementor-widget-image img { width: 100%; height: 100%; }
.news-card .thumb img { display: block; max-width: none; border-radius: 0; }
.e-con.news-card > .body { gap: 0; }
.news-meta.e-con { gap: 8px 14px; }
.news-meta .elementor-heading-title, .article-meta .elementor-heading-title { font: inherit; color: inherit;
  letter-spacing: inherit; text-transform: inherit; line-height: 1.5; }
.news-meta > .elementor-widget:first-child .elementor-heading-title { color: var(--c-teal-700); }
.news-card .nc-title .elementor-heading-title { margin: 14px 0 10px; font-size: 21px; line-height: 1.25;
  color: var(--c-heading-light); transition: color .25s var(--ease); }
.news-card:hover .nc-title .elementor-heading-title { color: var(--c-teal-700); }
.news-card .nc-excerpt { font-size: 15px; line-height: 1.6; color: var(--c-text); display: -webkit-box;
  -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.news-card .nc-excerpt p { margin: 0; }
.news-card .nc-read { margin-top: auto; padding-top: 18px; }
.news-card .nc-read .link-arrow { padding-top: 0; }
.news-card:hover .link-arrow svg { transform: translateX(4px); }
@media (min-width: 768px) {
  .news-grid.featured-first .e-loop-item:first-of-type { grid-column: 1 / -1; }
  .news-grid.featured-first .e-loop-item:first-of-type .nc-title .elementor-heading-title { font-size: 30px; line-height: 1.18; }
  .news-grid.featured-first .e-loop-item:first-of-type .nc-excerpt { font-size: 17px; -webkit-line-clamp: 5; }
}
@media (min-width: 1025px) {
  .news-grid.featured-first .e-loop-item:first-of-type .news-card { flex-direction: row; }
  .news-grid.featured-first .e-loop-item:first-of-type .thumb { flex: 1 1 52%; aspect-ratio: auto; min-height: 440px; }
  .news-grid.featured-first .e-loop-item:first-of-type .body { flex: 1 1 48%; padding: 48px 52px; justify-content: center; }
  .news-grid.featured-first .e-loop-item:first-of-type .nc-title .elementor-heading-title { font-size: 34px; line-height: 1.16; }
  .news-grid.featured-first .e-loop-item:first-of-type .nc-read { margin-top: 8px; }
}
.page-hero .lead .elementor-heading-title { font: inherit; color: inherit; line-height: inherit; letter-spacing: 0; }
.page-hero .article-meta.e-con { margin-top: 26px; gap: 10px 24px; font-family: var(--f-mono); font-size: 11.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); }
.post-back { margin-top: 36px; }
.post-body > :last-child { margin-bottom: 0; }
.post-body .wp-block-quote { border-left: 2px solid var(--c-primary); }
.post-body ol.sources { padding-left: 20px; margin: 0; }
.post-body h2.sources-title { font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: var(--c-text); margin: 48px 0 14px; padding-top: 24px; border-top: 1px solid var(--c-line-light); }
@media (max-width: 767px) {
  .news-card .nc-title .elementor-heading-title { font-size: 19px; }
  .post-body h2.sources-title { font-size: 11px; }
}

/* 30. Board member photo inside the hexagon badge, project photo gallery (added 24 Sep 2026) */
.person .hex.photo { padding: 0; overflow: hidden; background: var(--c-ink-900); }
.person .hex.photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.project-gallery .e-gallery-item { border-radius: 10px; overflow: hidden; }

/* 31. Cookie notice: one compact row on phones; the floating WhatsApp and accessibility buttons sit above the notice
   while it is shown and drop back once it is dismissed (added 24 Sep 2026) */
body.gdpr-infobar-visible .onetap-toggle,
body.gdpr-infobar-visible .e-contact-buttons { transform: translateY(calc(-1 * var(--bg-notice-h, 76px))); transition: transform .3s ease; }
@media (max-width: 767px) {
  body.gdpr-infobar-visible { --bg-notice-h: 104px; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container { padding: 0 !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content { display: flex !important; flex-direction: row !important; align-items: center; gap: 12px; padding: 12px 16px !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-cookie-notice { margin: 0 !important; padding: 0 !important; flex: 1 1 auto; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-cookie-notice p { font-size: 12.5px !important; line-height: 1.45 !important; margin: 0 !important; padding: 0 !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-button-holder { margin: 0 !important; padding: 0 !important; flex: 0 0 auto; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-button-holder .mgbutton { margin: 0 !important; min-height: 40px; padding: 0 16px !important; }
}

/* 32. Portfolio: investment-opportunity cards (four columns, title when there is no logo) and technologies under
   evaluation grouped by sector (added 24 Sep 2026) */
.tp-card .tp-name { font-size: 19px; line-height: 1.3; margin: 0 0 14px; min-height: 40px; display: flex; align-items: center; }
.tp-card .thumb img { transition: transform .8s var(--ease); }
.tp-card:hover .thumb img { transform: scale(1.04); }
.sub-head .elementor-heading-title { font-size: 21px; margin: 56px 0 6px; }
.sector-card .body { padding: 26px 28px 30px; }
.sector-card .body h3 { display: flex; align-items: center; gap: 12px; font-size: 21px; margin: 0 0 16px; }
.sector-card .body h3 .count { font-style: normal; font-family: var(--f-mono); font-size: 12px; font-weight: 600;
  color: var(--c-teal-700); background: rgba(20, 184, 171, .1); border-radius: 999px; padding: 3px 10px; }
.sector-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sector-list li { position: relative; padding-inline-start: 22px; font-size: 14.5px; line-height: 1.55; }
.sector-list li::before { content: ""; position: absolute; inset-inline-start: 0; top: .5em; width: 9px; height: 8px;
  background: var(--c-primary); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.sector-card .thumb { aspect-ratio: 16 / 7; }
@media (max-width: 767px) {
  .sector-card .thumb { aspect-ratio: 16 / 8; }
}
.tp-card .tp-logo.plate-green, .tp-card .tp-logo.plate-dark, .tp-card .tp-logo.plate-navy { align-self: flex-start; display: inline-flex; align-items: center; box-sizing: border-box; padding: 7px 12px; border-radius: 8px; }
.tp-card .tp-logo.plate-green { background: #375622; } .tp-card .tp-logo.plate-dark { background: #16323A; } .tp-card .tp-logo.plate-navy { background: #2C4B9C; }

/* 33. Portfolio groups in the Portfolio menu (25 Sep 2026): the ventures sit under their own small label, and the
   four group anchors land below the sticky header and the Portfolio page's sticky group bar */
.mega-label.mega-sub .elementor-heading-title { margin-top: 16px; }
#owned, #strategic, #investment, #evaluation { scroll-margin-top: 150px; }
@media (max-width: 767px) { #owned, #strategic, #investment, #evaluation { scroll-margin-top: 136px; } }

/* 34. Structured data holders (schema.org JSON-LD): never rendered, read by search and answer engines (25 Sep 2026) */
.schema-ld { display: none !important; }

/* 35. Roni's task list (29 Sep 2026): board cards of one size, like business cards; the TRL level label under its own
   segment; the Pilot status chip; Dr. Ronny Banker's project record on the project cards; the R&D tier */
[data-code="AB-02"] .e-grid { grid-template-rows: none !important; grid-auto-rows: 1fr !important; }
[data-code="AB-02"] .e-grid > .elementor-widget-html { height: 100%; }
[data-code="AB-02"] .card.person.big { height: 100%; box-sizing: border-box; }
.trl-meta { position: relative; display: block; height: 1.5em; }
.trl-meta span { position: absolute; top: 0; white-space: nowrap; }
.trl-meta .t-min { left: 0; }
.trl-meta .t-max { right: 0; }
.trl-meta .t-now { left: calc((var(--n) - .5) * 100% / 9); transform: translateX(-50%); }
.trl-meta .t-now.at-min { left: 0; transform: none; }
.trl-meta .t-now.at-max { left: auto; right: 0; transform: none; }
/* on a narrow bar the level label for TRL 3 (or 7) would touch the end label next to it, which then steps aside */
.trl-wrap { container-type: inline-size; }
@container (max-width: 230px) { .trl-meta.n3 .t-min, .trl-meta.n7 .t-max { display: none; } }
.s-pilot { background: var(--c-primary); color: var(--c-ink-900); }
.proj-card .proj-owner { align-self: flex-start; display: inline-flex; align-items: center; gap: 7px; margin: 14px 0 0;
  padding: 5px 11px; border-radius: 999px; background: rgba(20, 184, 171, .1); color: var(--c-teal-700);
  font-family: var(--f-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  line-height: 1.35; }
.proj-card .proj-owner svg { width: 13px; height: 13px; flex: none; }
.rnd-card .thumb { aspect-ratio: 16 / 7; }
.rnd-card .body { padding: 26px 28px 30px; }
.rnd-card .tp-name { min-height: 0; display: block; }   /* block, so the space after the asterisk survives */
.rnd-card .ast { font-size: .68em; vertical-align: super; line-height: 0; color: var(--c-teal-700); margin-inline-start: 1px; }
.rnd-card .rnd-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--c-line-light); font-size: 13px;
  line-height: 1.55; color: var(--c-text); }
.rnd-card .rnd-note .ast { margin-inline-end: 3px; }
#rnd { scroll-margin-top: 150px; }
@media (max-width: 767px) {
  #rnd { scroll-margin-top: 136px; }
  [data-code="PF-06b"] .e-grid { --e-con-grid-template-columns: 1fr !important; grid-template-columns: 1fr !important; }
  .rnd-card .thumb { aspect-ratio: 16 / 8; }
}

/* 36. Venture materials and film (1 Oct 2026, Roni): the one-pager download block (#materials, OreKeep with its sector
   editions) and the venture film (#film). Nested containers default to --width:100%, so the row's text grows and the
   buttons keep their natural width, wrapping below the text when there is no room. */
#materials, #film { scroll-margin-top: 110px; }
.doc-preview img { width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--c-line-light);
  box-shadow: 0 26px 60px rgba(7, 19, 23, .16); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.doc-preview a:hover img { transform: translateY(-4px); box-shadow: 0 32px 70px rgba(7, 19, 23, .22); }
.e-con.doc-list { margin-top: 26px; border-top: 1px solid var(--c-line-light); }
.e-con.doc-row { border-bottom: 1px solid var(--c-line-light); }
.e-con.doc-text { --width: auto; --flex-grow: 1; --flex-basis: 240px; gap: 0; }
.e-con.doc-actions { --width: auto; --flex-shrink: 0; }
.doc-title .elementor-heading-title { font-size: 18px; line-height: 1.35; margin: 0; }
.doc-sub p { margin: 3px 0 0; font-size: 14.5px; color: var(--c-text); }
.doc-meta p { margin: 6px 0 0; font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--c-teal-700); }
.doc-btn .elementor-button { min-height: 42px; padding: 0 18px; font-size: 14px; }
.film-player { margin-top: 36px; }
.film-player .elementor-wrapper { position: relative; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px rgba(7, 19, 23, .25); }
.film-player .elementor-custom-embed-image-overlay, .film-player video { border-radius: inherit; }
.film-player .elementor-custom-embed-play { top: 84%; }   /* below the title and its rule, not on the word */
#materials h2 em { white-space: nowrap; }                    /* "one-pager" never breaks at its hyphen */
@media (max-width: 1024px) {
  .doc-preview-col { max-width: 320px; }
}
@media (max-width: 767px) {
  #materials, #film { scroll-margin-top: 96px; }
  .doc-preview-col { max-width: 240px; margin: 0 auto; }
  .e-con.doc-actions { --width: 100%; }
  .doc-actions .doc-btn { flex: 1 1 0; }
  .doc-actions .doc-btn .elementor-button { width: 100%; justify-content: center; }
  .film-player { margin-top: 26px; }
  .film-player .elementor-wrapper { border-radius: 12px; }
  .film-player .elementor-custom-embed-play { top: 83%; }
  .film-player .elementor-custom-embed-play svg { width: 50px; height: 50px; }
}

/* 37. Corterra 770 logo (1 Oct 2026): the corterra770.com logo is a mark plus a wordmark (about 3.8:1, the old one was
   5.2:1), so it gets a little more height on the venture cards and in the venture hero to keep its lettering legible */
.tech-card .thumb .lock[src*="corterra-770-logo"] { height: 44px; }
.co-hero .lockup[src*="corterra-770-logo"] { height: 84px; }
@media (max-width: 767px) { .co-hero .lockup[src*="corterra-770-logo"] { height: 60px; } }

/* 38. Pre-seed opportunities (1 Oct 2026): the opportunity cards reuse the project card, the investor block reuses the
   Contact page's form shell and dark card; #preseed sits below the Portfolio page's sticky tier bar */
#preseed { scroll-margin-top: 150px; }
#investors { scroll-margin-top: 110px; }
.ps-receive .next-steps { margin-top: 18px; padding-top: 0; border-top: 0; }
.ps-receive h3 { margin: 6px 0 0; }
[data-code^="PS-"] h1 em, [data-code^="PS-"] h2 em { white-space: nowrap; }   /* "pre-seed" never breaks at its hyphen */
@media (max-width: 767px) { #preseed { scroll-margin-top: 136px; } #investors { scroll-margin-top: 96px; } }

/* 39. Phone fixes (4 Oct 2026). Safari zooms the whole page when a field's text is under 16px, so on phones the form
   fields are 16px. The phone menu's links carry their padding inside the link, so the whole row is the tap target
   (the text line alone was 22px tall). */
@media (max-width: 767px) { .elementor-form .elementor-field, .elementor-form select.elementor-field-textual { font-size: 16px; } }
.mm-links .elementor-icon-list-item, .mm-contact .elementor-icon-list-item { padding: 0; }
.mm-links .elementor-icon-list-item > a, .mm-contact .elementor-icon-list-item > a { padding: 8px 0; }

/* 40. Phone and tablet fixes, round 2 (4 Oct 2026).
   - OreKeep Cyber's five service families: an inline style had pinned the grid to five columns at every width, which made
     the page 833px wide on a phone and 861px on a tablet; the grid now comes from .g5 and its breakpoints (five columns,
     two up to 1024px, one up to 767px) and keeps its 12px gap.
   - What We Do: "Commercialization" is wider than a 360px screen at 30px, so that heading steps down on small phones.
   - Phone menu: the language switch stays on one row (the logo gives way), and the floating WhatsApp and accessibility
     buttons step aside while a popup is open instead of covering its links. */
.domain-g5 { gap: 12px; }
@media (max-width: 480px) { [data-code="WD-03"] h2 { font-size: clamp(22px, 6.9vw, 30px); } }
@media (max-width: 767px) {
  h1, h2, h3 { overflow-wrap: break-word; }
  .mm-top .lang-sw { flex: 0 0 auto; }
  .mm-top .lang-sw .cpel-switcher__list { flex-wrap: nowrap; }
  .mm-top .mm-logo { flex: 1 1 0; min-width: 0; }
  .mm-top .mm-logo img { max-width: 100%; height: auto; }
  body.dialog-prevent-scroll .e-contact-buttons, body.dialog-prevent-scroll .onetap-toggle { visibility: hidden; }
}

/* ---------- 41. Leadership page: Management row + Advisory Board row (21 Oct 2026, Roni) ---------- */
.e-con.board-head { margin-bottom: 28px; }
.board-head .elementor-heading-title { display: flex; align-items: center; gap: 28px; font-size: 38px; line-height: 1.1; }
.board-head .elementor-heading-title::after { content: ""; flex: 1 1 auto; height: 1px; min-width: 40px;
  background: linear-gradient(90deg, var(--c-line-light), rgba(211, 226, 229, 0)); }
[data-code="AB-02m"] { padding-bottom: 96px; }
[data-code="AB-02m"] .e-grid { grid-template-rows: none !important; grid-auto-rows: 1fr !important; }
[data-code="AB-02m"] .e-grid > .elementor-widget-html { height: 100%; }
.card.person.lead { height: 100%; box-sizing: border-box; overflow: hidden; text-align: left;
  padding: 46px 40px 40px; border-radius: 24px; box-shadow: var(--shadow-card); }
.card.person.lead::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px;
  background: linear-gradient(90deg, var(--c-teal-700), var(--c-primary) 55%, var(--c-accent)); }
.person.lead .hex-ring { display: block; width: 140px; height: 122px; padding: 3px; margin: 0 0 30px;
  background: linear-gradient(135deg, var(--c-accent), var(--c-teal-700));
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.person.lead .hex-ring .hex { width: 100%; height: 100%; margin: 0; }
.person.lead h3 { margin: 0 0 10px; font-size: 25px; letter-spacing: -.015em; }
.person.lead .role { margin: 0 0 22px; padding-bottom: 22px; border-bottom: 1px solid var(--c-line-light);
  font-size: 11.5px; line-height: 1.6; }
.person.lead p:not(.role) { font-size: 15px; line-height: 1.7; }
/* desktop: role lines share a height so the dividers align; a lone last advisory card sits centred */
@media (min-width: 1025px) {
  .person.lead .role { min-height: calc(2 * 1.6em + 22px); }
  [data-code="AB-02"] .e-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
  [data-code="AB-02"] .e-grid > .elementor-widget-html { grid-column: span 2; }
  [data-code="AB-02"] .e-grid > .elementor-widget-html:last-child:nth-child(3n+1) { grid-column: 3 / span 2; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  [data-code="AB-02m"] .e-grid { grid-auto-rows: auto !important; }
  .card.person.lead { display: grid; grid-template-columns: 140px 1fr; column-gap: 36px; align-content: start; }
  .person.lead .hex-ring { grid-row: 1 / span 3; margin: 0; }
  [data-code="AB-02"] .e-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  [data-code="AB-02"] .e-grid > .elementor-widget-html { grid-column: span 2; }
  [data-code="AB-02"] .e-grid > .elementor-widget-html:last-child:nth-child(2n+1) { grid-column: 2 / span 2; }
}
/* phones: one column, so each card keeps its own height */
@media (max-width: 767px) {
  [data-code="AB-02m"] .e-grid, [data-code="AB-02"] .e-grid { grid-auto-rows: auto !important; }
  .e-con.board-head { margin-bottom: 12px; }
  .board-head .elementor-heading-title { font-size: 30px; gap: 18px; }
  [data-code="AB-02m"] { padding-bottom: 72px; }
  .card.person.lead { padding: 36px 26px 30px; }
  .person.lead .hex-ring { width: 116px; height: 101px; margin-bottom: 24px; }
  .person.lead h3 { font-size: 23px; }
}
/* home board strip: cards in a row share one height (titles wrap to different lengths) */
[data-code="H-11"] .people > .elementor-widget-html > .card.person { height: 100%; }/* End custom CSS */