/* ==========================================================================
   VisualAds public site — v3 design system  (public/theme/front/css/v3.css)
   --------------------------------------------------------------------------
   Self-sufficient stylesheet for the redesigned pages (home, contact, login,
   signup, forgot) and for the shared header/footer on every other page.
   Namespace: v3-.  Tokens are scoped on .v3 / .v3-header / .v3-footer /
   .v3-offcanvas — never on :root (auth theme tokens live in v3-auth.css).

   Sections
     00  Fonts
     01  Tokens — light body scheme
     02  Tokens — dark panel remap
     03  Scoped base resets
     04  Type scale
     05  Layout utilities (wrap, sections, sr-only, skip link, icons)
     06  Focus system (+ Bootstrap focus overrides)
     07  Header + navigation + burger + theme button
     08  Mobile offcanvas
     09  Footer + CTA band
     10  Buttons
     11  Eyebrow + section head
     12  Chips
     13  Cards, tiles, ledgers, console, 95-bar
     14  Trust marks, dark panel, page head
     15  Payout timeline + steps
     16  Partner logo wall
     17  Feature rows + ad formats
     18  FAQ tabs + accordion (Bootstrap variables)
     19  Forms (fields, inputs, hints, checkbox, password, rules, alerts, Turnstile)
     20  Video modal
     21  Hero
     22  Home sections (partners, terms, platform, formats, payouts, steps, faq)
     23  Contact page
     24  Auth shell (.v3-auth)
     25  Typing headline
     25b Language switcher (v3.1: .v3-lang header dropdown · .v3-m-lang offcanvas · .v3-foot-lang footer)
     26  Keyframes
     27  Reduced motion (single block — last rule in the file)

   v3.1 (i18n): physical left/right properties were converted in place to their
   logical equivalents (inset-inline-*, padding-inline-*, margin-inline-*,
   border-inline-*, text-align: start/end). LTR rendering is unchanged; RTL
   locales load v3-rtl.css after this file for the remaining component flips.
   ========================================================================== */


/* ==========================================================================
   00  Fonts — the six faces v3 uses, with correct descriptors
   ========================================================================== */

@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/PlusJakartaSans-Light.woff2') format('woff2'),
       url('../fonts/PlusJakartaSans-Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/PlusJakartaSans-Bold.woff2') format('woff2'),
       url('../fonts/PlusJakartaSans-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/PlusJakartaSans-ExtraBold.woff2') format('woff2'),
       url('../fonts/PlusJakartaSans-ExtraBold.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter18pt-Regular.woff2') format('woff2'),
       url('../fonts/Inter18pt-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter18pt-Medium.woff2') format('woff2'),
       url('../fonts/Inter18pt-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter18pt-SemiBold.woff2') format('woff2'),
       url('../fonts/Inter18pt-SemiBold.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}


/* ==========================================================================
   01  Tokens — light body scheme (default)
   .v3-offcanvas is included so the mobile menu keeps its tokens even when the
   layout places #menu_mobile outside <header> (it is a position:fixed panel).
   ========================================================================== */

.v3, .v3-header, .v3-footer, .v3-offcanvas {
  /* fonts */
  --v3-font-display: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --v3-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* brand constants */
  --v3-gold: #FBBC04;
  --v3-gold-hi: #FFC72E;      /* hover */
  --v3-gold-lo: #EAB000;      /* active */
  --v3-amber: #F59E0B;
  --v3-amber-2: #F08A0C;      /* CTA gradient end only */
  --v3-gold-ink: #7A4F00;     /* gold-as-text on light: eyebrows, labels, links only — never headings */
  --v3-gold-soft: rgba(251,188,4,.14);
  --v3-line-gold: rgba(251,188,4,.55);

  /* light surfaces */
  --v3-bg: #F6F5F1;
  --v3-surface: #FFFFFF;
  --v3-surface-2: #FBFAF7;
  --v3-ink: #1C1B19;
  --v3-ink-2: #3A3936;
  --v3-muted: #5F5D57;        /* 6.6:1 on white, 6.0:1 on --v3-bg */
  --v3-faint: #6F6D68;        /* 5.2:1 on white, 4.8:1 on --v3-bg — placeholders, 12–13px captions */
  --v3-line: #E6E4DD;         /* decorative dividers only */
  --v3-line-strong: #D5D3CA;  /* decorative dividers only — never a component boundary */
  --v3-line-input: #8F8D85;   /* 3.3:1 on white — input, checkbox and ghost-button borders */
  --v3-ok: #1E7A4F;
  --v3-ok-soft: #E9F7EF;
  --v3-danger: #B42318;       /* the single danger red */
  --v3-danger-soft: #FDECEC;
  --v3-focus: #B45309;        /* 5.0:1 on white; ≥3:1 non-text */

  /* dark surfaces (used by .v3-dark scopes, header, footer) */
  --v3-d-bg: #1C1B19;
  --v3-d-bg-2: #23231B;
  --v3-d-bg-3: #0D0E10;
  --v3-d-surface: rgba(255,255,255,.04);
  --v3-d-surface-hover: rgba(255,255,255,.07);
  --v3-d-ink: #F6F5F1;
  --v3-d-text: rgba(246,245,241,.78);
  --v3-d-muted: rgba(246,245,241,.62);
  --v3-d-faint: rgba(246,245,241,.58);
  --v3-d-ghost: rgba(246,245,241,.46);      /* NON-TEXT only */
  --v3-d-line: rgba(255,255,255,.10);
  --v3-d-line-strong: rgba(255,255,255,.18);
  --v3-d-line-input: rgba(246,245,241,.42);
  --v3-d-gold: #FBBC04;
  --v3-d-gold-soft: rgba(251,188,4,.16);
  --v3-d-eyebrow: #FFD45C;
  --v3-d-ok: #6FD3A0;
  --v3-d-danger: #FF8A8E;
  --v3-d-focus: #FBBC04;

  /* spacing (8pt) */
  --v3-s1: 4px;  --v3-s2: 8px;  --v3-s3: 12px; --v3-s4: 16px; --v3-s5: 20px;
  --v3-s6: 24px; --v3-s7: 32px; --v3-s8: 40px; --v3-s9: 48px; --v3-s10: 64px;
  --v3-s11: 80px; --v3-s12: 96px; --v3-s13: 128px;

  /* radii */
  --v3-r-2xs: 3px; --v3-r-xs: 6px; --v3-r-sm: 8px; --v3-r-md: 12px; --v3-r-lg: 16px;
  --v3-r-xl: 24px; --v3-r-2xl: 32px; --v3-r-pill: 999px;

  /* shadows */
  --v3-sh-sm: 0 1px 2px rgba(28,27,25,.06);
  --v3-sh-md: 0 8px 24px -12px rgba(28,27,25,.22);
  --v3-sh-lg: 0 32px 64px -32px rgba(28,27,25,.35);
  --v3-sh-panel: 0 40px 80px -48px rgba(0,0,0,.65);
  --v3-sh-gold: 0 8px 20px -10px rgba(251,188,4,.75);
  --v3-sh-gold-hover: 0 12px 24px -10px rgba(251,188,4,.95);
  --v3-sh-cta: 0 32px 64px -36px rgba(245,158,11,.65);

  /* motion */
  --v3-ease: cubic-bezier(.2,.7,.2,1);
  --v3-dur-1: 150ms;  /* hover */
  --v3-dur-2: 250ms;  /* state / tab / sticky */
  --v3-dur-3: 600ms;  /* reveal */

  color-scheme: light;
}


/* ==========================================================================
   02  Tokens — dark panel scheme: remaps the semantic names inside any dark
   surface. Components are written once against the semantic names.
   ========================================================================== */

.v3-dark, .v3-header, .v3-footer, .v3-offcanvas, .v3-modal {
  --v3-surface: var(--v3-d-surface);
  --v3-surface-2: var(--v3-d-surface-hover);
  --v3-ink: var(--v3-d-ink);
  --v3-ink-2: var(--v3-d-text);
  --v3-muted: var(--v3-d-muted);
  --v3-faint: var(--v3-d-faint);
  --v3-line: var(--v3-d-line);
  --v3-line-strong: var(--v3-d-line-strong);
  --v3-line-input: var(--v3-d-line-input);
  --v3-gold-ink: var(--v3-d-gold);       /* gold text is allowed on dark */
  --v3-gold-soft: var(--v3-d-gold-soft);
  --v3-ok: var(--v3-d-ok);
  --v3-danger: var(--v3-d-danger);
  --v3-focus: var(--v3-d-focus);
  color-scheme: dark;
}


/* ==========================================================================
   03  Scoped base resets — the scope is wrapped in :where() so every rule is
   exactly (0,0,1): it beats Bootstrap's reboot and style.css's element rules
   (p / dd / dl / h1–h6 margins and em sizes, all (0,0,1) and loaded earlier)
   by source order, and still loses to any component class (0,1,0).
   ========================================================================== */

.v3, .v3-header, .v3-footer, .v3-offcanvas {
  font-family: var(--v3-font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.v3 { color: var(--v3-ink); }

:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) *,
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) *::before,
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) *::after { box-sizing: border-box; }

/* safe default for any unclassed heading: 20px/700 rather than the legacy em cascade */
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) :is(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  font: 700 1.25rem/1.3 var(--v3-font-display);
  color: inherit;
  letter-spacing: 0;
  text-wrap: balance;
}
:where(.v3, .v3-footer, .v3-offcanvas) p { margin: 0; }              /* spacing is set by components */
:where(.v3, .v3-footer, .v3-offcanvas) :is(dl, dt, dd, figure, blockquote) { margin: 0; }
:where(.v3, .v3-footer, .v3-offcanvas) :is(ul, ol).v3-ledger,
:where(.v3) :is(ol.v3-steps, ol.v3-timeline, ul.rules),
:where(.v3-footer, .v3-offcanvas) :is(ul, ol) { list-style: none; margin: 0; padding: 0; }
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) img { max-width: 100%; height: auto; display: block; }
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) :is(a, button, input, textarea, select) { font-family: inherit; }
:where(.v3-header, .v3-footer, .v3-offcanvas) a { text-decoration: none; }
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) button {
  font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer;
}
:where(.v3, .v3-header, .v3-footer, .v3-offcanvas) svg { display: inline-block; vertical-align: middle; }
:where(.v3) small { font-size: inherit; }


/* ==========================================================================
   04  Type scale — desktop values first, tablet / phone below
   ========================================================================== */

.v3-t-dxl { font: 800 56px/1.05 var(--v3-font-display); letter-spacing: -.025em; text-wrap: balance; }
.v3-t-dlg { font: 300 48px/1.10 var(--v3-font-display); letter-spacing: -.02em; text-wrap: balance; color: var(--v3-ink); }
.v3-t-dmd { font: 300 40px/1.12 var(--v3-font-display); letter-spacing: -.02em; text-wrap: balance; color: var(--v3-ink); }
.v3-t-dsm { font: 300 34px/1.15 var(--v3-font-display); letter-spacing: -.02em; text-wrap: balance; color: var(--v3-ink); }
.v3-t-nxl { font: 800 72px/1 var(--v3-font-display); letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.v3-t-kpi-lg { font: 700 40px/1 var(--v3-font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.v3-t-kpi { font: 700 28px/1.05 var(--v3-font-display); letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.v3-t-hlg { font: 700 28px/1.20 var(--v3-font-display); letter-spacing: -.01em; }
.v3-t-hmd { font: 700 22px/1.30 var(--v3-font-display); letter-spacing: 0; }
.v3-t-hsm { font: 600 17px/1.40 var(--v3-font-body); letter-spacing: 0; }
.v3-t-blg { font: 400 18px/1.65 var(--v3-font-body); text-wrap: pretty; }
.v3-t-b { font: 400 16px/1.60 var(--v3-font-body); text-wrap: pretty; }
.v3-t-bsm { font: 400 14px/1.55 var(--v3-font-body); text-wrap: pretty; }
.v3-t-lbl { font: 600 14px/1.40 var(--v3-font-body); }
.v3-t-eye { font: 600 12px/1.30 var(--v3-font-body); letter-spacing: .08em; text-transform: uppercase; }
.v3-t-cap { font: 400 12px/1.45 var(--v3-font-body); }

/* emphasis inside display headings: 800, same colour as the heading */
.v3-t-dlg strong, .v3-t-dlg b,
.v3-t-dmd strong, .v3-t-dmd b,
.v3-t-dsm strong, .v3-t-dsm b { font-weight: 800; color: inherit; }

/* display headings on dark: the 300 part is slightly softened, the emphasis is full white */
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas) :is(.v3-t-dlg, .v3-t-dmd, .v3-t-dsm) { color: rgba(246,245,241,.85); }
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas) :is(.v3-t-dlg, .v3-t-dmd, .v3-t-dsm) :is(strong, b) { color: #F6F5F1; }

@media (min-width: 1200px) {
  .v3-t-dxl { font-size: 64px; line-height: 1.02; }
}
@media (max-width: 991.98px) {
  .v3-t-dxl { font-size: 48px; line-height: 1.06; }
  .v3-t-dlg { font-size: 40px; line-height: 1.12; }
  .v3-t-dmd { font-size: 34px; line-height: 1.15; }
  .v3-t-dsm { font-size: 30px; line-height: 1.15; }
  .v3-t-nxl { font-size: 56px; }
  .v3-t-kpi-lg { font-size: 36px; }
  .v3-t-kpi { font-size: 26px; }
  .v3-t-hlg { font-size: 26px; }
  .v3-t-hmd { font-size: 21px; }
  .v3-t-blg { line-height: 1.6; }
}
@media (max-width: 575.98px) {
  .v3-t-dxl { font-size: 36px; line-height: 1.08; }
  .v3-t-dlg { font-size: 32px; line-height: 1.15; }
  .v3-t-dmd { font-size: 28px; line-height: 1.20; }
  .v3-t-dsm { font-size: 26px; line-height: 1.20; }
  .v3-t-nxl { font-size: 48px; }
  .v3-t-kpi-lg { font-size: 32px; }
  .v3-t-kpi { font-size: 24px; }
  .v3-t-hlg { font-size: 24px; line-height: 1.25; }
  .v3-t-hmd { font-size: 20px; }
  .v3-t-hsm { font-size: 16px; }
  .v3-t-blg { font-size: 17px; }
  .v3-t-b { font-size: 15px; }
}
@media (max-width: 439.98px) {
  .v3-t-dxl { font-size: 30px; line-height: 1.08; }
}


/* ==========================================================================
   05  Layout utilities
   ========================================================================== */

/* .v3-wrap mirrors Bootstrap's .container so header/footer align with legacy pages */
.v3-wrap {
  width: 100%;
  margin: 0 auto;
  padding: 0 12px;
}
.v3-wrap--narrow { max-width: 800px; }
@media (min-width: 576px)  { .v3-wrap { max-width: 540px; } }
@media (min-width: 768px)  { .v3-wrap { max-width: 720px; } }
@media (min-width: 992px)  { .v3-wrap { max-width: 960px; } }
@media (min-width: 1200px) { .v3-wrap { max-width: 1140px; } }
@media (min-width: 1400px) { .v3-wrap { max-width: 1320px; } }
@media (max-width: 575.98px) { .v3-wrap { padding: 0 16px; } }
.v3-wrap .v3-wrap--narrow { padding: 0; }

/* sections */
.v3-sec {
  position: relative;
  overflow-x: clip;
  padding: 96px 0;
  background: var(--v3-bg);
}
.v3-sec[id], .v3-page-head[id] { scroll-margin-top: 88px; }
@media (max-width: 991.98px) { .v3-sec { padding: 72px 0; } }
@media (max-width: 575.98px) { .v3-sec { padding: 64px 0; } }

/* visually hidden text (.v3-rule__state = the " — met / — not met" text in the signup password rules) */
.v3-sr-only, .v3-rule__state {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* skip link (gold surface → ink focus ring) */
.v3-skip {
  position: absolute;
  inset-inline-start: 16px;
  top: -64px;
  z-index: 1100;
  background: #FBBC04;
  color: #1C1B19;
  padding: 12px 16px;
  border-radius: var(--v3-r-md);
  font: 600 14px/1 var(--v3-font-body);
  text-decoration: none;
  --v3-focus: #1C1B19;
}
.v3-skip:focus { top: 16px; }

/* sprite icons: sized by width/height attributes */
.v3-i {
  flex: none;
  display: inline-block;
  vertical-align: middle;
  fill: none;
  stroke: currentColor;
}


/* ==========================================================================
   06  Focus system
   ========================================================================== */

:where(.v3, .v3-header, .v3-footer, .v3-offcanvas, .v3-modal) :focus-visible {
  outline: 2px solid var(--v3-focus);
  outline-offset: 2px;
  /* no border-radius here: outlines already follow the element's radius, and `inherit` squared the skip link
     and Bootstrap's .btn-close the moment they were focused */
}
/* gold surfaces draw their ink ring INSIDE the surface — an outside ring would sit on whatever surrounds the
   control (hero / platform / header / offcanvas are all ink) and vanish */
.v3-btn--primary:focus-visible, .v3-play:focus-visible, .v3-skip:focus-visible { outline-offset: -4px; }

/* Bootstrap components carry their own (0,2,0) focus rules — override explicitly */
.v3-nav__links .nav-link:focus-visible, .v3-m-links .nav-link:focus-visible,
.v3-faq__tabs .nav-link:focus-visible,
.v3-offcanvas .btn-close:focus, .v3-offcanvas .btn-close:focus-visible,
.v3-modal .btn-close:focus, .v3-modal .btn-close:focus-visible,
.v3-faq .accordion-button:focus-visible {
  outline: 2px solid var(--v3-focus);
  outline-offset: 2px;
  box-shadow: none;
}
.v3-faq .accordion-button:focus-visible { outline-offset: -4px; }   /* inside, so the rounded item does not clip it */
.v3-offcanvas .btn-close:focus:not(:focus-visible),
.v3-modal .btn-close:focus:not(:focus-visible) { outline: 0; }


/* ==========================================================================
   07  Header  header#header.h_site.v3-header
   ========================================================================== */

/* legacy reset — style.css .h_site / .h_site.sticky_top still load on non-v3 pages.
   `body` prefix: a legacy page whose URL merely contains login/signup/forgot (X-15) also links auth.css, whose
   `body.login .h_site` rules are (0,2,1)/(0,3,1); these tie them and win by source order, and still lose to
   v3-auth.css's `body.login .v3-header.h_site` (0,3,1)+ on the real auth pages. */
body .v3-header.h_site,
body .v3-header.h_site.sticky_top {
  position: sticky;
  top: 0;
  z-index: 1030;
  width: auto;
  margin: 0;
  padding: 0;
  border-top: 0;
  background: #1C1B19;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: none;
  color: #F6F5F1;
  transition: background-color var(--v3-dur-2), box-shadow var(--v3-dur-2), border-color var(--v3-dur-2);
}
body .v3-header.h_site::before, body .v3-header.h_site::after,
body .v3-header.h_site.sticky_top::before, body .v3-header.h_site.sticky_top::after { display: none; }
.v3-header .row, .v3-header.h_site.sticky_top .row { padding: 0; margin: 0; background: none; }
.v3-header .container { max-width: none; padding: 0; }

.v3-nav {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  height: 80px;
  gap: 24px;
  transition: height var(--v3-dur-2) var(--v3-ease);      /* 80 → 64 on .sticky_top without a content jump */
}
.v3-nav__logo { display: inline-flex; align-items: center; flex: none; }
.v3-nav__logo img { width: 150px; height: auto; display: block; transition: width var(--v3-dur-2) var(--v3-ease); }

.v3-nav__links {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 4px;
}
.v3-nav__links a, .v3-nav__links .nav-link {
  --bs-nav-link-color: rgba(246,245,241,.72);
  --bs-nav-link-hover-color: #F6F5F1;
  --bs-nav-link-padding-x: 12px;
  --bs-nav-link-padding-y: 10px;
  --bs-nav-link-font-size: 14px;
  --bs-nav-link-font-weight: 600;
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 10px 12px;
  border: 0;
  border-radius: var(--v3-r-sm);
  font: 600 14px/1 var(--v3-font-body);
  color: rgba(246,245,241,.72);
  background: none;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--v3-dur-1), background-color var(--v3-dur-1);
}
.v3-nav__links a:hover, .v3-nav__links .nav-link:hover,
.v3-nav__links a:focus-visible, .v3-nav__links .nav-link:focus-visible {
  color: #F6F5F1;
  background: rgba(255,255,255,.05);
}
.v3-nav__links a.active, .v3-nav__links .nav-link.active { color: #F6F5F1; }
.v3-nav__links a.active::after, .v3-nav__links .nav-link.active::after {
  content: '';
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: -2px;
  height: 2px;
  background: #FBBC04;
  border-radius: 1px;
}

.v3-nav__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-self: end;
}
.v3-nav__login {
  display: inline-flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: var(--v3-r-sm);
  font: 600 14px/1 var(--v3-font-body);
  color: rgba(246,245,241,.85);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--v3-dur-1), background-color var(--v3-dur-1);
}
.v3-nav__login:hover { color: #F6F5F1; background: rgba(255,255,255,.05); }

/* theme toggle wrapper (contract name) + button box; sun/moon visibility lives in v3-auth.css */
.va-theme { display: inline-flex; }
.v3-header .theme_btn,
.v3-burger {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: var(--v3-r-md);
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: #F6F5F1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex: none;
  transition: border-color var(--v3-dur-1), background-color var(--v3-dur-1);
}
.v3-header .theme_btn:hover, .v3-burger:hover { border-color: rgba(251,188,4,.6); }
.v3-header .theme_btn svg { width: 20px; height: 20px; }   /* no display here: v3-auth.css toggles .sun/.moon with (0,1,1) rules */

/* burger → X */
.v3-burger__bar {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  transition: transform var(--v3-dur-2) var(--v3-ease), opacity var(--v3-dur-2) var(--v3-ease);
}
.v3-burger__bar + .v3-burger__bar { margin-top: 5px; }
.v3-burger[aria-expanded="true"] .v3-burger__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.v3-burger[aria-expanded="true"] .v3-burger__bar:nth-child(2) { opacity: 0; }
.v3-burger[aria-expanded="true"] .v3-burger__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* sticky state (class toggled by scripts.js on any scroll) — (0,3,1): beats the body-prefixed base above and
   auth.css's `body.login .h_site.sticky_top`, ties and loses to v3-auth.css by order */
body .v3-header.h_site.sticky_top {
  background: rgba(28,27,25,.86);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  backdrop-filter: saturate(140%) blur(12px);
  border-bottom-color: rgba(251,188,4,.35);
  box-shadow: var(--v3-sh-md);
}
.v3-header.sticky_top .v3-nav { height: 64px; }
.v3-header.sticky_top .v3-nav__logo img { width: 132px; }

@media (max-width: 991.98px) {
  .v3-nav { display: flex; justify-content: space-between; height: 64px; }
  .v3-nav__logo img, .v3-header.sticky_top .v3-nav__logo img { width: 128px; }
  .v3-nav__actions { gap: 8px; }
}


/* ==========================================================================
   08  Mobile offcanvas  .offcanvas.offcanvas-end.v3-offcanvas#menu_mobile
   ========================================================================== */

.v3-offcanvas {
  --bs-offcanvas-width: min(360px, 88vw);
  --bs-offcanvas-bg: #1C1B19;
  --bs-offcanvas-color: #F6F5F1;
  --bs-offcanvas-border-width: 1px;
  --bs-offcanvas-border-color: rgba(255,255,255,.10);
  --bs-offcanvas-padding-x: 20px;
  --bs-offcanvas-padding-y: 16px;
  color: #F6F5F1;
}
.v3-offcanvas .offcanvas-header {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.v3-offcanvas__logo { display: inline-flex; align-items: center; }
.v3-offcanvas__logo img { width: 128px; height: auto; }
.v3-offcanvas .btn-close {                     /* 16px glyph + 14px padding = 44×44 touch target; the negative
                                                  margin keeps the glyph where the 32px box used to sit */
  width: 16px;
  height: 16px;
  padding: 14px;
  margin: 0 -10px 0 auto;
  background-size: 16px auto;
}
.v3-offcanvas .offcanvas-body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 8px 20px 24px;
}

.v3-m-links { display: flex; flex-direction: column; gap: 2px; }
.v3-m-links a, .v3-m-links .nav-link {
  --bs-nav-link-color: rgba(246,245,241,.85);
  --bs-nav-link-hover-color: #F6F5F1;
  --bs-nav-link-padding-x: 14px;
  --bs-nav-link-padding-y: 0;
  --bs-nav-link-font-size: 16px;
  --bs-nav-link-font-weight: 600;
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 14px;
  border: 0;
  border-radius: var(--v3-r-md);
  font: 600 16px/1 var(--v3-font-body);
  color: rgba(246,245,241,.85);
  background: none;
  text-decoration: none;
  transition: color var(--v3-dur-1), background-color var(--v3-dur-1);
}
.v3-m-links a:hover, .v3-m-links .nav-link:hover,
.v3-m-links a:focus-visible, .v3-m-links .nav-link:focus-visible {
  color: #F6F5F1;
  background: rgba(255,255,255,.05);
}
.v3-m-links a.active, .v3-m-links .nav-link.active {
  color: #FBBC04;
  background: rgba(251,188,4,.08);
  box-shadow: inset 3px 0 0 #FBBC04;
}

.v3-m-actions { display: grid; gap: 12px; }

.v3-m-foot {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--v3-d-line);
  display: grid;
  gap: 16px;
}
.v3-m-foot__mail {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 500 14px/1.4 var(--v3-font-body);
  color: var(--v3-d-text);
  text-decoration: none;
  transition: color var(--v3-dur-1);
}
.v3-m-foot__mail:hover { color: #F6F5F1; }
.v3-m-foot__marks {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: center;
}
.v3-m-foot__marks img { height: 18px; width: auto; }


/* ==========================================================================
   09  Footer  footer.f_site.v3-footer
   ========================================================================== */

/* legacy reset + body: style.css .f_site / .bg_f_site / .copy_right still load on non-v3 pages.
   `body` prefix for the same reason as the header: auth.css's `body.login .f_site` (0,2,1), `::after` (0,2,2)
   and `.f_site .copy_right` (0,3,1) are linked on X-15 substring URLs; v3-auth.css (0,3,1)+ still wins. */
body .v3-footer.f_site {
  position: relative;
  margin-top: 120px;
  padding: 0;
  background: #1C1B19;
  background-image: none;
  border-radius: var(--v3-r-2xl) var(--v3-r-2xl) 0 0;
  overflow: visible;
  color: var(--v3-d-text);
  font-family: var(--v3-font-body);
}
body .v3-footer.f_site::before { display: none; }         /* style.css:1037 hijacks ::before */
body .v3-footer.f_site::after {                            /* ledger grid texture, fading downward */
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 70%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 70%);
}
.v3-footer .bg_f_site {
  background: none;
  padding: 0;
  position: relative;
  z-index: 1;
}
.v3-footer ul { list-style: none; margin: 0; padding: 0; }
.v3-footer p { margin: 0; }

/* no-CTA variant: contact + auth pages (flush against the last section) */
body .v3-footer--nocta.f_site {
  margin-top: 0;
  border-radius: 0;
  border-top: 1px solid rgba(251,188,4,.45);
}

/* CTA band (only when $vaCta) — gold surface → ink focus ring */
.v3-cta {
  position: relative;
  z-index: 2;
  margin-top: -72px;
  margin-bottom: 0;
  border-radius: var(--v3-r-xl);
  padding: 48px 56px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;
  background: linear-gradient(105deg, #FBBC04 0%, #F59E0B 60%, #F08A0C 100%);
  box-shadow: var(--v3-sh-cta);
  color: #1C1B19;
  overflow: hidden;
  isolation: isolate;
  --v3-focus: #1C1B19;
}
.v3-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
  background-image: linear-gradient(rgba(0,0,0,.06) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(0,0,0,.06) 1px, transparent 1px);
  background-size: 48px 48px;
}
.v3-cta > div:first-child { min-width: 0; }
/* the spec lists chip · h2 · p · .v3-cta__btns as DIRECT children: stack the three text nodes in column 1
   and let the buttons span every row in column 2 (a wrapping <div> around the text also works) */
.v3-cta:has(> .v3-t-dsm) { grid-template-rows: auto auto auto; row-gap: 0; }
.v3-cta:has(> .v3-t-dsm) > .v3-chip,
.v3-cta:has(> .v3-t-dsm) > .v3-t-dsm,
.v3-cta:has(> .v3-t-dsm) > .v3-t-b { grid-column: 1; justify-self: start; }
.v3-cta:has(> .v3-t-dsm) > .v3-cta__btns { grid-column: 2; grid-row: 1 / -1; align-self: center; }
.v3-cta .v3-chip {                                  /* may wrap in the narrow text column */
  margin-bottom: 16px;
  white-space: normal;
  height: auto;
  min-height: 24px;
  padding: 4px 10px;
  line-height: 1.3;
}
.v3-cta .v3-t-dsm { margin: 0 0 12px; color: #1C1B19; }
.v3-cta .v3-t-dsm strong, .v3-cta .v3-t-dsm b { color: #1C1B19; }
.v3-cta .v3-t-b { color: rgba(28,27,25,.8); max-width: 52ch; margin: 0; }
.v3-cta__btns { display: flex; gap: 12px; flex-wrap: wrap; }

/* footer grid */
.v3-foot-grid {
  display: grid;
  grid-template-columns: 1.4fr .8fr 1fr 1fr;
  gap: 40px;
  padding: 64px 0 40px;
}
.v3-footer--cta .v3-foot-grid { padding-top: 64px; }
.v3-foot { min-width: 0; }
.v3-foot__h {
  font: 600 12px/1.3 var(--v3-font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v3-d-faint);
  margin: 0 0 16px;
}
.v3-foot--brand > a { display: inline-block; }
.v3-foot--brand img { width: 150px; height: auto; }
.v3-foot__blurb {
  font: 400 15px/1.6 var(--v3-font-body);
  color: var(--v3-d-text);
  max-width: 34ch;
  margin: 20px 0 0;
}
.v3-foot__mail {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 20px 0 24px;
  text-decoration: none;
  color: inherit;
}
.v3-foot__mail-ic {
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: var(--v3-r-md);
  background: var(--v3-d-gold-soft);
  color: var(--v3-d-gold);
  display: grid;
  place-items: center;
}
.v3-foot__mail > span:last-child { display: grid; gap: 2px; min-width: 0; }
.v3-foot__mail .v3-t-eye { color: var(--v3-d-faint); }
.v3-foot__mail b {
  font: 600 15px/1.3 var(--v3-font-body);
  color: #F6F5F1;
  overflow-wrap: anywhere;
  transition: color var(--v3-dur-1);
}
.v3-foot__mail:hover b { color: #FBBC04; }
.v3-offices { display: flex; flex-wrap: wrap; gap: 8px; }

.v3-foot--links a {
  font: 500 15px/2.2 var(--v3-font-body);
  color: var(--v3-d-text);
  text-decoration: none;
  position: relative;
  display: inline-block;
  padding-inline-start: 0;
  transition: padding-inline-start var(--v3-dur-1), color var(--v3-dur-1);
}
.v3-foot--links a::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #FBBC04;
  transform: translateY(-50%);
  opacity: 0;
  transition: opacity var(--v3-dur-1);
}
.v3-foot--links a:hover { color: #F6F5F1; padding-inline-start: 12px; }
.v3-foot--links a:hover::before { opacity: 1; }

.v3-badges {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.v3-foot--partners .v3-badges { max-width: 300px; }
.v3-foot--pay .v3-ledger { max-width: 360px; }     /* keeps key and value close in the wide 2-column layout */
.v3-badge {
  display: grid;
  place-items: center;
  height: 152px;
  padding: 16px;
  border-radius: var(--v3-r-lg);
  background: rgba(255,255,255,.05);
  border: 1px solid var(--v3-d-line);
  transition: border-color var(--v3-dur-1);
}
.v3-badge img { max-height: 120px; width: auto; }
a.v3-badge:hover { border-color: var(--v3-d-line-strong); }

/* certs row */
.v3-foot-certs {
  border-top: 1px solid var(--v3-d-line);
  padding: 24px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 32px;
}
.v3-foot-certs img { height: 28px; width: auto; max-width: 100%; }

/* bottom row */
.v3-foot-bottom {
  border-top: 1px solid var(--v3-d-line);
  padding: 20px 0 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 24px;
  font-size: 13px;
  color: var(--v3-d-faint);
}
body .v3-footer.f_site .copy_right {               /* (0,3,1): ties auth.css `body.login .f_site .copy_right` */
  margin: 0;
  font: 400 13px/1.5 var(--v3-font-body);
  color: var(--v3-d-faint);
  text-align: start;
}
.v3-foot-legal { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.v3-foot-legal a {
  font: 400 13px/1.5 var(--v3-font-body);
  color: var(--v3-d-faint);
  text-decoration: none;
  transition: color var(--v3-dur-1);
}
.v3-foot-legal a:hover { color: #F6F5F1; }
.v3-foot-marks {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-inline-start: auto;
  flex-wrap: wrap;
}
.v3-foot-marks img { height: 18px; width: auto; }

@media (max-width: 1199.98px) {
  .v3-foot-grid { grid-template-columns: 1fr 1fr; }
  .v3-foot--brand { grid-column: 1 / -1; }
}
@media (max-width: 991.98px) {
  /* the `auto` button column (≈380px) would leave the text ≈170px in the 720px container: stack from tablet down */
  .v3-cta { grid-template-columns: 1fr; gap: 24px; }
  .v3-cta:has(> .v3-t-dsm) { grid-template-rows: none; }
  .v3-cta:has(> .v3-t-dsm) > .v3-cta__btns { grid-column: 1; grid-row: auto; margin-top: 8px; }
}
@media (max-width: 767.98px) {
  body .v3-footer.f_site { margin-top: 96px; }
  body .v3-footer--nocta.f_site { margin-top: 0; }
  .v3-cta { margin-top: -48px; padding: 32px 24px; }
  .v3-cta__btns > .v3-btn { flex: 1 1 100%; }
}
@media (max-width: 575.98px) {
  .v3-foot-grid { grid-template-columns: 1fr; gap: 32px; padding: 48px 0 32px; }
  .v3-foot-certs img { height: 22px; }
  .v3-cta { border-radius: var(--v3-r-lg); }
}


/* ==========================================================================
   10  Buttons  .v3-btn
   ========================================================================== */

.v3-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding: 0 20px;
  border-radius: var(--v3-r-md);
  font: 600 15px/1 var(--v3-font-body);
  border: 1px solid transparent;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  background: none;
  color: inherit;
  position: relative;
  transition: background-color var(--v3-dur-1), color var(--v3-dur-1), border-color var(--v3-dur-1),
              transform var(--v3-dur-1), box-shadow var(--v3-dur-1);
}
.v3-btn .v3-i { width: 18px; height: 18px; }
.v3-btn__label { display: inline; }
.v3-btn:active { transform: translateY(1px); }

/* sizes */
.v3-btn--sm { height: 40px; padding: 0 16px; font-size: 14px; }
.v3-btn--sm .v3-i { width: 16px; height: 16px; }
.v3-btn--lg { height: 56px; padding: 0 24px; font-size: 16px; }
.v3-btn--block { width: 100%; }

/* primary — gold */
.v3-btn--primary {
  background: #FBBC04;
  color: #1C1B19;
  box-shadow: var(--v3-sh-gold);
  --v3-focus: #1C1B19;
}
.v3-btn--primary:hover { background: #FFC72E; color: #1C1B19; transform: translateY(-1px); box-shadow: var(--v3-sh-gold-hover); }
.v3-btn--primary:active { background: #EAB000; transform: translateY(0); box-shadow: var(--v3-sh-sm); }

/* dark — ink with off-white label and a gold icon */
.v3-btn--dark {
  background: #1C1B19;
  color: #F6F5F1;
  box-shadow: var(--v3-sh-md);
}
.v3-btn--dark .v3-i { color: #FBBC04; }
.v3-btn--dark:hover { background: #000; color: #F6F5F1; }
.v3-btn--dark:active { transform: translateY(1px); }

/* inverse (on dark) — reserved */
.v3-btn--inverse { background: #F6F5F1; color: #1C1B19; }
.v3-btn--inverse:hover { background: #fff; transform: translateY(-1px); }

/* ghost — transparent with a 3:1 border; remaps automatically on dark */
.v3-btn--ghost {
  background: transparent;
  border-color: var(--v3-line-input);
  color: var(--v3-ink);
}
.v3-btn--ghost:hover { background: var(--v3-surface-2); color: var(--v3-ink); }
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas) .v3-btn--ghost:hover { border-color: rgba(251,188,4,.6); }
.v3-btn--ghost .v3-btn__play {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #FBBC04;
  color: #1C1B19;
  display: grid;
  place-items: center;
  margin-inline-start: -6px;
  flex: none;
}
.v3-btn--ghost .v3-btn__play .v3-i { width: 14px; height: 14px; }

/* on-gold — inside .v3-cta */
.v3-btn--on-gold {
  background: transparent;
  border-color: rgba(28,27,25,.6);
  color: #1C1B19;
}
.v3-btn--on-gold:hover { background: rgba(28,27,25,.08); border-color: rgba(28,27,25,.8); color: #1C1B19; }

/* link — underlined text */
.v3-btn--link {
  background: transparent;
  border: 0;
  padding: 0;
  height: auto;
  gap: 6px;
  color: var(--v3-gold-ink);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  white-space: normal;
  transition: text-decoration-thickness var(--v3-dur-1), color var(--v3-dur-1);
}
.v3-btn--link .v3-i { width: 16px; height: 16px; }
.v3-btn--link:hover { text-decoration-thickness: 2px; color: var(--v3-gold-ink); }
.v3-btn--link:active { transform: none; }

/* auth primary — light = exactly the --dark look; dark theme flips to gold via the --au-* tokens */
.v3-btn--auth {
  background: var(--au-btn, #1C1B19);
  color: var(--au-btn-ink, #F6F5F1);
  box-shadow: var(--v3-sh-md);
  height: 56px;
  padding: 0 24px;
  font-size: 16px;
  width: 100%;
}
.v3-btn--auth .v3-i { color: var(--au-btn-icon, #FBBC04); }
.v3-btn--auth:hover { background: var(--au-btn-hover, #000); color: var(--au-btn-hover-ink, #F6F5F1); }
.v3-btn--auth:active { transform: translateY(1px); }

/* disabled / busy — .8 keeps the "Sending…" label ≥ 6:1 (at .6 it fell to 4.3:1 while still the focused status carrier) */
.v3-btn[disabled], .v3-btn[aria-busy="true"] { opacity: .8; pointer-events: none; }
.v3-btn[aria-busy="true"] .v3-i { display: none; }
.v3-btn[aria-busy="true"]::after {
  content: '';
  flex: none;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: v3-spin .8s linear infinite;
}

@media (max-width: 575.98px) {
  .v3-btn--lg, .v3-btn--auth { height: 52px; }
}


/* ==========================================================================
   11  Eyebrow + section head
   ========================================================================== */

.v3-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  height: auto;
  padding: 6px 12px;
  border-radius: var(--v3-r-pill);
  font: 600 12px/1.3 var(--v3-font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: start;
  white-space: normal;
  background: var(--v3-gold-soft);
  color: var(--v3-gold-ink);
  border: 1px solid rgba(251,188,4,.35);
  margin-bottom: 16px;
}
.v3-eyebrow::before {
  content: '';
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #F59E0B;
}
.v3-eyebrow--long { align-items: flex-start; }
.v3-eyebrow--long::before { margin-top: 5px; }
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas) .v3-eyebrow {
  color: #FFD45C;
  background: var(--v3-d-gold-soft);
  border-color: rgba(251,188,4,.3);
}
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas) .v3-eyebrow::before { background: #FBBC04; }

.v3-sec-head {
  max-width: 760px;
  margin: 0 auto 48px;
  text-align: center;
}
.v3-sec-head .v3-t-dmd, .v3-sec-head .v3-t-dsm { margin: 0 0 16px; }
.v3-sec-head .v3-t-blg, .v3-sec-head .v3-t-b { color: var(--v3-muted); max-width: 60ch; margin: 0 auto; }
.v3-sec-head--left { margin: 0 0 40px; text-align: start; max-width: none; }
.v3-sec-head--left .v3-t-blg, .v3-sec-head--left .v3-t-b { margin: 0; }
.v3-sec-head__meta { margin-top: 12px; }
@media (min-width: 992px) {
  .v3-sec-head:has(.v3-sec-head__meta) {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 24px;
    text-align: start;
    max-width: none;
  }
  .v3-sec-head:has(.v3-sec-head__meta) > * { grid-column: 1; justify-self: start; }
  .v3-sec-head:has(.v3-sec-head__meta) .v3-t-blg { margin: 0; }
  .v3-sec-head:has(.v3-sec-head__meta) > .v3-sec-head__meta { margin-top: 0; grid-column: 2; grid-row: 1 / span 3; align-self: end; justify-self: end; }
}
@media (max-width: 991.98px) { .v3-sec-head { margin-bottom: 40px; } }
@media (max-width: 575.98px) { .v3-sec-head { margin-bottom: 32px; } }


/* ==========================================================================
   12  Chips  .v3-chip
   ========================================================================== */

.v3-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 10px;
  border-radius: var(--v3-r-pill);
  font: 600 12px/1 var(--v3-font-body);
  font-variant-numeric: tabular-nums;
  border: 1px solid transparent;
  white-space: nowrap;
  vertical-align: middle;
}
.v3-chip__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.v3-chip img { width: 20px; height: 14px; border-radius: var(--v3-r-2xs); object-fit: cover; flex: none; }

.v3-chip--neutral { background: var(--v3-surface-2); border-color: var(--v3-line); color: var(--v3-ink-2); }
.v3-chip--gold { background: var(--v3-gold-soft); border-color: rgba(251,188,4,.4); color: var(--v3-gold-ink); }
.v3-chip--ok { background: var(--v3-ok-soft); border-color: rgba(30,122,79,.25); color: var(--v3-ok); }
.v3-chip--dark, .v3-chip--sample { background: rgba(255,255,255,.06); border-color: var(--v3-d-line); color: var(--v3-d-ink); }
.v3-chip--on-gold { background: rgba(28,27,25,.12); border-color: transparent; color: #1C1B19; }

:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas, .v3-modal) .v3-chip--neutral { background: rgba(255,255,255,.06); border-color: var(--v3-d-line); color: var(--v3-d-ink); }
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas, .v3-modal) .v3-chip--gold { background: var(--v3-d-gold-soft); border-color: rgba(251,188,4,.35); color: #FFD45C; }
:is(.v3-dark, .v3-header, .v3-footer, .v3-offcanvas, .v3-modal) .v3-chip--ok { background: rgba(46,158,107,.14); border-color: transparent; color: var(--v3-d-ok); }


/* ==========================================================================
   13  Cards, tiles, ledgers, console, 95-bar
   ========================================================================== */

/* card */
.v3-card, .v3-tile--card, .v3-step {
  background: var(--v3-surface);
  border: 1px solid var(--v3-line);
  border-radius: var(--v3-r-lg);
  padding: 32px;
  box-shadow: var(--v3-sh-sm);
  position: relative;
}
.v3-card--elevated { box-shadow: var(--v3-sh-lg); }
.v3-card--featured { border-color: rgba(251,188,4,.6); overflow: hidden; }
.v3-card--featured::before {
  content: '';
  position: absolute;
  left: 24px;
  right: 24px;
  top: 0;
  height: 3px;
  background: linear-gradient(90deg, #FBBC04, #F59E0B);
  border-radius: 0 0 3px 3px;
}
/* hover lift — only interactive cards / lift grids */
.v3-tile--card, .v3-step, .v3-card--lift {
  transition: border-color var(--v3-dur-1), transform var(--v3-dur-1), box-shadow var(--v3-dur-1);
}
.v3-tile--card:hover, .v3-step:hover, .v3-card--lift:hover {
  border-color: var(--v3-line-strong);
  transform: translateY(-2px);
  box-shadow: var(--v3-sh-md);
}
.v3-card--featured:hover { border-color: rgba(251,188,4,.8); }

/* tile — visual order is fixed regardless of DOM order (dt/dd cells in the hero) */
.v3-tile { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.v3-tile--card { min-height: 232px; padding: 28px; }
.v3-tile--bare { background: none; border: 0; padding: 0; box-shadow: none; }
.v3-tile--dark { background: var(--v3-d-surface); border: 1px solid var(--v3-d-line); }
.v3-tile__ic {
  order: 0;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: var(--v3-r-md);
  background: var(--v3-gold-soft);
  color: var(--v3-gold-ink);
  display: grid;
  place-items: center;
  margin-bottom: 16px;
}
.v3-tile__value {
  order: 1;
  color: var(--v3-ink);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.v3-tile__label {
  order: 2;
  font: 600 12px/1.3 var(--v3-font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v3-muted);
  margin-top: 8px;
}
.v3-tile__body {
  order: 3;
  font: 400 14px/1.55 var(--v3-font-body);
  color: var(--v3-muted);
  margin-top: 8px;
}
.v3-tile__viz { order: 4; margin-top: 16px; width: 100%; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.v3-tile__viz .v3-95bar { width: 100%; }
.v3-tile__viz .v3-t-cap { color: var(--v3-muted); width: 100%; }
.v3-tile__viz .v3-btn--link { margin-top: 0; }
.v3-tile .v3-t-hsm { color: var(--v3-ink); }   /* unclassed children keep DOM order (order 0) */
:is(.v3-dark, .v3-header, .v3-footer) .v3-tile__value { color: var(--v3-d-gold); }

/* ledger */
.v3-ledger {
  display: grid;
  border: 1px solid var(--v3-line);
  border-radius: var(--v3-r-lg);
  overflow: hidden;
  background: var(--v3-surface);
}
.v3-ledger__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 16px;
  align-items: center;
  min-height: 56px;
  padding: 12px 20px;
  border-top: 1px solid var(--v3-line);
  min-width: 0;
}
.v3-ledger__row:has(> .v3-ledger__ic) { grid-template-columns: 36px minmax(0, 1fr) auto; }
.v3-ledger > :first-child { border-top: 0; }
.v3-ledger__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: var(--v3-surface-2);
  border-top: 1px solid var(--v3-line);
  font: 600 12px/1.3 var(--v3-font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v3-muted);
  min-height: 48px;
}
.v3-ledger__head-meta { display: flex; gap: 8px; align-items: center; text-transform: none; letter-spacing: 0; }
.v3-ledger__ic {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  width: 36px;
  height: 36px;
  border-radius: var(--v3-r-md);
  background: var(--v3-gold-soft);
  color: var(--v3-gold-ink);
  display: grid;
  place-items: center;
  flex: none;
}
.v3-ledger__k {
  font: 600 14px/1.4 var(--v3-font-body);
  color: var(--v3-ink);
  min-width: 0;
  overflow-wrap: anywhere;
}
.v3-ledger__sub {
  grid-column: 1;
  font: 400 13px/1.45 var(--v3-font-body);
  color: var(--v3-muted);
  margin-top: 2px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.v3-ledger__ic ~ .v3-ledger__k, .v3-ledger__ic ~ .v3-ledger__sub { grid-column: 2; }
.v3-ledger__ic ~ div, .v3-ledger__ic ~ p { grid-column: 2; min-width: 0; }   /* wrapping block (h3 + p) in feature / format rows */
.v3-ledger__ic ~ .v3-ledger__v { grid-column: 3; }                           /* (0,2,0): a div.v3-ledger__v must not be caught by the rule above */
.v3-ledger__v {
  grid-column: -2 / -1;
  grid-row: 1 / span 2;
  justify-self: end;
  text-align: end;
  font: 600 15px/1.4 var(--v3-font-body);
  font-variant-numeric: tabular-nums;
  color: var(--v3-ink);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.v3-ledger__v a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.v3-ledger__v a:hover { color: var(--v3-gold-ink); }
.v3-ledger__k a { color: inherit; text-decoration: none; }

.v3-ledger--hover .v3-ledger__row { transition: background-color var(--v3-dur-1); }
.v3-ledger--hover .v3-ledger__row:hover { background: var(--v3-surface-2); }

.v3-ledger--bare { border: 0; background: none; border-radius: 0; overflow: visible; }
.v3-ledger--bare .v3-ledger__row { min-height: 40px; padding: 8px 0; }
.v3-ledger--bare .v3-ledger__k { font: 500 13px/1.4 var(--v3-font-body); color: var(--v3-muted); }
.v3-ledger--bare .v3-ledger__v { font: 600 14px/1.4 var(--v3-font-body); color: var(--v3-ink); }

.v3-ledger--cols { grid-auto-flow: column; grid-auto-columns: 1fr; }
.v3-ledger--cols .v3-ledger__row {
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  align-items: start;
  row-gap: 6px;
  border-top: 0;
  border-inline-start: 1px solid var(--v3-line);
  padding: 12px 20px;
}
.v3-ledger--cols > .v3-ledger__row:first-child { border-inline-start: 0; padding-inline-start: 0; }
/* KPI cell: the value renders above its key (same visual order as .v3-tile) although the dl keeps dt → dd order */
.v3-ledger--cols .v3-ledger__k, .v3-ledger--cols .v3-ledger__sub { grid-column: 1; grid-row: 2; }
.v3-ledger--cols .v3-ledger__v { grid-column: 1; grid-row: 1; justify-self: start; text-align: start; justify-content: flex-start; }
.v3-ledger--cols .v3-ledger__v.v3-t-kpi, .v3-ledger--cols .v3-ledger__v.v3-t-hsm { font-family: var(--v3-font-display); }
.v3-ledger--cols .v3-ledger__v.v3-t-kpi { font-size: 28px; font-weight: 700; line-height: 1.05; letter-spacing: -.015em; }
.v3-ledger--cols .v3-ledger__v.v3-t-hsm { font: 600 17px/1.4 var(--v3-font-body); }
:is(.v3-dark, .v3-footer) .v3-ledger--cols .v3-ledger__v.v3-t-kpi,
:is(.v3-dark, .v3-footer) .v3-ledger--cols .v3-ledger__v.v3-t-hsm { color: var(--v3-d-gold); }

.v3-ledger--dark, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger { background: var(--v3-d-surface); border-color: var(--v3-d-line); }
.v3-ledger--dark .v3-ledger__row, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__row { border-top-color: var(--v3-d-line); }
.v3-ledger--dark .v3-ledger__head, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__head { background: var(--v3-d-surface-hover); border-top-color: var(--v3-d-line); color: var(--v3-d-muted); }
.v3-ledger--dark .v3-ledger__k, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__k { color: var(--v3-d-ink); }
.v3-ledger--dark .v3-ledger__sub, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__sub { color: var(--v3-d-muted); }
.v3-ledger--dark .v3-ledger__v, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__v { color: var(--v3-d-ink); }
.v3-ledger--dark .v3-ledger__ic, :is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__ic { background: var(--v3-d-gold-soft); color: var(--v3-d-gold); }
:is(.v3-dark, .v3-header, .v3-footer) .v3-ledger--bare, .v3-ledger--dark.v3-ledger--bare { background: none; border: 0; }
:is(.v3-dark, .v3-header, .v3-footer) .v3-ledger--bare .v3-ledger__k { color: var(--v3-d-muted); }
:is(.v3-dark, .v3-header, .v3-footer) .v3-ledger--cols .v3-ledger__row { border-inline-start-color: var(--v3-d-line); }
:is(.v3-dark, .v3-header, .v3-footer) .v3-ledger__v a:hover { color: var(--v3-d-gold); }

@media (max-width: 575.98px) {
  .v3-ledger__row { min-height: 48px; padding: 10px 16px; }
  .v3-ledger__head { padding: 10px 16px; }
  .v3-ledger--bare .v3-ledger__row { padding: 8px 0; }
}

/* console frame around a screenshot */
.v3-console {
  background: var(--v3-d-bg-2);
  border: 1px solid var(--v3-d-line-strong);
  border-radius: var(--v3-r-xl);
  box-shadow: var(--v3-sh-panel), inset 0 1px 0 rgba(255,255,255,.05);
  overflow: hidden;
  color: var(--v3-d-ink);
}
.v3-console__bar {
  height: 44px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--v3-d-line);
  min-width: 0;
}
.v3-console__mark {
  flex: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #FBBC04;
  border-right-color: transparent;
  transform: rotate(-45deg);
}
.v3-console__title {
  font: 600 12px/1.3 var(--v3-font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v3-d-muted);
  min-width: 0;
}
.v3-console__meta { margin-inline-start: auto; flex: none; display: flex; align-items: center; }
.v3-console__screen { background: var(--v3-d-bg-3); padding: 0; position: relative; }
.v3-console__screen img { display: block; width: 100%; height: auto; }
@media (max-width: 575.98px) {
  .v3-console { border-radius: var(--v3-r-lg); }
  .v3-console__bar { height: 40px; padding: 0 12px; }
  .v3-console__title { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }
}
@media (max-width: 399.98px) {
  /* the nowrap sample-data chip (≈197px) left the title ≈19px at 360 (a bare "…"): let the bar wrap instead */
  .v3-console__bar { height: auto; min-height: 40px; flex-wrap: wrap; row-gap: 6px; padding: 8px 12px; }
  .v3-console__meta { margin-inline-start: 0; flex-basis: 100%; }
  .v3-console__title { white-space: normal; overflow: visible; text-overflow: clip; }
}

/* the 95 / 5 proportion bar — a literal proportion, not a chart */
.v3-95bar {
  display: grid;
  grid-template-columns: 95fr 5fr;
  gap: 3px;
  height: 10px;
  border-radius: 5px;
  overflow: hidden;
}
.v3-95bar > span { display: block; height: 100%; }
.v3-95bar > span:first-child { background: #1C1B19; }
.v3-95bar > span:last-child { background: #FBBC04; }


/* ==========================================================================
   14  Trust marks, dark panel, page head
   ========================================================================== */

/* dark strip for the two official Google marks — never filtered */
.v3-marks {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  padding: 12px 20px;
  border-radius: var(--v3-r-lg);
  background: #1C1B19;
  border: 1px solid var(--v3-d-line);
  max-width: 100%;
}
.v3-marks img { height: 28px; width: auto; max-width: 100%; filter: none; }
.v3-marks--card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 24px;
  width: 100%;
}
.v3-marks--card .v3-t-eye { color: var(--v3-d-faint); }
.v3-marks--card img { height: 24px; }
.v3-auth .v3-marks--card img { height: 20px; }   /* spec §4.3: h20 in the auth aside — google_f.svg (353×28) fits the 259px minimum */
.v3-marks--card .v3-btn--link { color: var(--v3-d-gold); }
@media (max-width: 575.98px) {
  .v3-marks img { height: 22px; }
  .v3-marks--card img { height: 20px; }
}
@media (max-width: 479.98px) {
  .v3-marks { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* dark hero / page-head panel (photo texture + one gold glow; no grid here) */
.v3-panel {
  position: relative;
  overflow: clip;
  border-radius: var(--v3-r-2xl);
  background: #1C1B19 url(../images/2025/bg_hero.webp) center top / cover no-repeat;
  box-shadow: var(--v3-sh-panel);
  color: var(--v3-d-ink);
  isolation: isolate;
  padding: 64px 64px 48px;
}
.v3-panel::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background: radial-gradient(640px 420px at 8% -10%, rgba(251,188,4,.20), transparent 62%);
}
@media (max-width: 991.98px) { .v3-panel { padding: 48px 40px 40px; } }
@media (max-width: 575.98px) {
  .v3-panel {
    background-image: url(../images/2025/bg_hero_mob.webp);
    border-radius: var(--v3-r-xl);
    padding: 40px 24px 32px;
  }
}

/* page head (contact) */
.v3-page-head {
  position: relative;
  overflow-x: clip;
  background: var(--v3-bg);
  padding: 24px 0 0;
}
.v3-page-head__panel { padding: 56px 64px; }
.v3-page-head__panel .v3-t-dlg { color: #F6F5F1; margin: 0 0 16px; }
.v3-page-head__panel .v3-t-blg { color: var(--v3-d-text); max-width: 52ch; margin: 0; }
.v3-page-head__panel > .v3-ledger { display: none; }
@media (min-width: 992px) {
  .v3-page-head__panel {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: 40px;
    align-items: center;
  }
  .v3-page-head__panel > .v3-ledger { display: grid; }
}
@media (max-width: 575.98px) { .v3-page-head__panel { padding: 40px 24px; } }


/* ==========================================================================
   15  Payout timeline + steps
   ========================================================================== */

.v3-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
  counter-reset: none;
  font-variant-numeric: tabular-nums;
}
.v3-timeline::before {
  content: '';
  position: absolute;
  left: 8px;
  right: 8px;
  top: 7px;
  height: 1px;
  background: linear-gradient(90deg, rgba(251,188,4,.25), rgba(251,188,4,.9) 20%, rgba(251,188,4,.9) 80%, rgba(251,188,4,.25));
}
.v3-timeline > li { position: relative; padding-top: 28px; min-width: 0; }
.v3-timeline > li::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #FBBC04;
  box-shadow: 0 0 0 4px rgba(251,188,4,.18);
}
.v3-timeline__step {
  display: block;
  font: 600 12px/1.3 var(--v3-font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v3-gold-ink);
}
.v3-timeline__t {
  display: block;
  margin-top: 4px;
  font: 600 17px/1.4 var(--v3-font-body);
  color: var(--v3-ink);
}
.v3-timeline__t .v3-chip { margin-inline-start: 8px; vertical-align: 2px; }
.v3-timeline > li > .v3-t-bsm, .v3-timeline > li > p { color: var(--v3-muted); margin-top: 6px; }
:is(.v3-dark, .v3-footer) .v3-timeline__step { color: #FFD45C; }
:is(.v3-dark, .v3-footer) .v3-timeline__t { color: #F6F5F1; }
:is(.v3-dark, .v3-footer) .v3-timeline > li > .v3-t-bsm, :is(.v3-dark, .v3-footer) .v3-timeline > li > p { color: var(--v3-d-muted); }

/* vertical variant (auth asides; home timeline below 768) */
.v3-timeline--vertical { grid-template-columns: 1fr; gap: 20px; padding-inline-start: 32px; }
.v3-timeline--vertical::before {
  inset-inline-start: 7px;
  inset-inline-end: auto;
  top: 8px;
  bottom: 8px;
  width: 1px;
  height: auto;
  background: linear-gradient(180deg, rgba(251,188,4,.25), rgba(251,188,4,.9) 20%, rgba(251,188,4,.9) 80%, rgba(251,188,4,.25));
}
.v3-timeline--vertical > li { padding-top: 0; }
.v3-timeline--vertical > li::before { inset-inline-start: -32px; top: 4px; }
.v3-timeline > li.is-current::before { box-shadow: 0 0 0 4px rgba(251,188,4,.18), 0 0 0 8px rgba(251,188,4,.08); }

/* steps */
.v3-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
  position: relative;
}
.v3-step {
  padding: 24px;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
.v3-step__num { align-self: flex-start; }
.v3-step .v3-tile__ic { order: 0; margin: 16px 0; }
.v3-step .v3-t-hsm { color: var(--v3-ink); margin: 0; }
.v3-step .v3-t-bsm { color: var(--v3-muted); margin-top: 6px; }
.v3-step__meta { margin-top: 16px; }
.v3-step > .v3-t-bsm + .v3-step__meta { margin-top: auto; padding-top: 16px; }
@media (min-width: 1200px) {
  .v3-steps::before {
    content: '';
    position: absolute;
    left: 5%;
    right: 5%;
    top: 70px;
    border-top: 1px dashed var(--v3-line-strong);
  }
}
@media (max-width: 1199.98px) {
  .v3-steps { grid-template-columns: repeat(2, 1fr); }
  .v3-steps > li:last-child { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
  .v3-steps { grid-template-columns: 1fr; gap: 16px; }
}


/* ==========================================================================
   16  Partner logo wall  .v3-partners__strip
   ========================================================================== */

/* The strip is a .v3-ledger (display:grid). Its implicit column must be minmax(0,1fr) and the body must be
   allowed to shrink (min-width:0): with the default `auto` track Owl's stage width feeds back into the track
   width on every refresh and the carousel grows without bound (measured 955,000px on staging). */
.v3-partners__strip { overflow: hidden; grid-template-columns: minmax(0, 1fr); }
.v3-partners__strip > * { min-width: 0; }
.v3-partners__body {
  padding: 24px 32px;
  position: relative;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}
/* Owl hides the root until it is initialised (.owl-loaded). Before scripts.js runs — or without JS — show ONE row
   instead of a 12-logo column (a ~700px layout shift); Owl's own `.owl-carousel.owl-loaded{display:block}` takes
   over afterwards. */
.v3-partners__body .owl-carousel { width: 100%; max-width: 100%; }
.v3-partners__body .owl-carousel:not(.owl-loaded) { display: flex; gap: 10px; overflow: hidden; height: 64px; }
.v3-partners__body .owl-carousel:not(.owl-loaded) .item { flex: none; }
.v3-partners__body .owl-nav, .v3-partners__body .owl-dots { display: none; }
.v3-partners__body .item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
}
.v3-partners__body .item img,
.v3-partners__body .owl-carousel .owl-item img {     /* (0,3,1): beats owl's .owl-carousel .owl-item img{width:100%} */
  height: 40px;
  width: auto;
  max-width: min(150px, 100%);      /* owl items are ≈138px at 360: never wider than the item */
  object-fit: contain;
  filter: grayscale(1);
  opacity: .7;
  transition: filter 240ms var(--v3-ease), opacity 240ms var(--v3-ease);
}
.v3-partners__body .item:hover img, .v3-partners__body .item:focus-within img { filter: none; opacity: 1; }
#partners_toggle { flex: none; }
@media (max-width: 575.98px) {
  .v3-partners__body {
    padding: 16px 20px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
  }
  .v3-partners__body .item img, .v3-partners__body .owl-carousel .owl-item img { height: 32px; }
  #partners_toggle { width: 40px; height: 40px; padding: 0; }
  #partners_toggle .v3-btn__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}


/* ==========================================================================
   17  Feature rows (Platform) + ad formats
   ========================================================================== */

.v3-feat .v3-ledger__row, .v3-formats .v3-ledger__row {
  padding: 16px 20px;
  min-height: 72px;
  grid-template-columns: 36px minmax(0, 1fr) auto;
}
.v3-formats .v3-ledger__row { grid-template-columns: 36px minmax(0, 1fr); }
.v3-feat .v3-ledger__row > div, .v3-formats .v3-ledger__row > div { min-width: 0; grid-column: 2; }
.v3-feat .v3-t-hsm, .v3-formats .v3-t-hsm { margin: 0; color: var(--v3-ink); }
.v3-feat .v3-t-bsm, .v3-formats .v3-t-bsm { margin-top: 4px; color: var(--v3-muted); }
.v3-feat .v3-t-hsm { color: #F6F5F1; }
.v3-feat .v3-t-bsm { color: var(--v3-d-muted); }
.v3-feat .v3-ledger__ic { background: var(--v3-d-gold-soft); color: var(--v3-d-gold); }
.v3-feat .v3-ledger__v { grid-column: 3; grid-row: 1 / span 2; }
.v3-formats__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 992px) {
  .v3-formats__grid { grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: start; }
}
@media (max-width: 575.98px) {
  .v3-feat .v3-ledger__row { grid-template-columns: 36px minmax(0, 1fr); }
  .v3-feat .v3-ledger__v { grid-column: 2; grid-row: auto; justify-self: start; justify-content: flex-start; text-align: start; margin-top: 8px; }
}


/* ==========================================================================
   18  FAQ tabs + accordion (Bootstrap, restyled through --bs-* variables)
   ========================================================================== */

.v3-faq__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
.v3-faq__head .v3-sec-head--left { margin: 0; }

.v3-faq__tabs {
  --bs-nav-tabs-border-width: 0;
  --bs-nav-tabs-border-color: transparent;
  --bs-nav-tabs-border-radius: var(--v3-r-pill);
  --bs-nav-tabs-link-hover-border-color: transparent;
  --bs-nav-tabs-link-active-border-color: transparent;
  --bs-nav-tabs-link-active-bg: #1C1B19;
  --bs-nav-tabs-link-active-color: #F6F5F1;
  --bs-nav-link-color: var(--v3-muted);
  --bs-nav-link-hover-color: var(--v3-ink);
  --bs-nav-link-padding-x: 16px;
  --bs-nav-link-padding-y: 0;
  --bs-nav-link-font-size: 14px;
  --bs-nav-link-font-weight: 600;
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 4px;
  padding: 4px;
  background: var(--v3-surface-2);
  border: 1px solid var(--v3-line);
  border-radius: var(--v3-r-pill);
  margin: 0;
  list-style: none;
}
.v3-faq__tabs .nav-item { flex: none; }
.v3-faq__tabs .nav-link {
  height: 36px;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border-radius: var(--v3-r-pill);
  border: 0;
  margin: 0;
  font-family: var(--v3-font-body);
  transition: color var(--v3-dur-2), background-color var(--v3-dur-2);
}

.v3-faq .accordion {
  --bs-accordion-bg: #fff;
  --bs-accordion-color: var(--v3-ink);
  --bs-accordion-border-color: var(--v3-line);
  --bs-accordion-border-width: 1px;
  --bs-accordion-border-radius: var(--v3-r-lg);
  --bs-accordion-inner-border-radius: var(--v3-r-lg);
  --bs-accordion-btn-padding-x: 24px;
  --bs-accordion-btn-padding-y: 20px;
  --bs-accordion-btn-color: var(--v3-ink);
  --bs-accordion-btn-bg: #fff;
  --bs-accordion-active-bg: #fff;
  --bs-accordion-active-color: var(--v3-ink);
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-btn-focus-border-color: var(--v3-line);
  /* Bootstrap paints its ::after from these two variables in both states — give it the v3 plus (gold-ink) for both,
     so the open state keeps the glyph and only rotates it (+ → ×) */
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A4F00' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A4F00' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E");
  --bs-accordion-btn-icon-width: 16px;
  --bs-accordion-btn-icon-transform: rotate(45deg);
  --bs-accordion-btn-icon-transition: transform var(--v3-dur-2) var(--v3-ease);
  --bs-accordion-body-padding-x: 24px;
  --bs-accordion-body-padding-y: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: start;
}
.v3-faq .accordion-item { border: 1px solid var(--v3-line); border-radius: var(--v3-r-lg) !important; overflow: hidden; box-shadow: var(--v3-sh-sm); background: #fff; transition: border-color var(--v3-dur-2); }
.v3-faq .accordion-item:has(.accordion-button:not(.collapsed)) { border-color: rgba(251,188,4,.55); }
.v3-faq .accordion-header { margin: 0; font: inherit; }
.v3-faq .accordion-button {
  font: 600 17px/1.4 var(--v3-font-body);
  gap: 16px;
  text-align: start;
  letter-spacing: 0;
  color: var(--v3-ink);
  box-shadow: none;
}
.v3-faq .accordion-button::after {
  content: '';
  width: 28px;
  height: 28px;
  flex: none;
  margin-inline-start: auto;
  border-radius: var(--v3-r-sm);
  background-color: var(--v3-gold-soft);
  background-position: center;
  background-size: 16px 16px;
  background-repeat: no-repeat;
  transition: transform var(--v3-dur-2) var(--v3-ease);
}
.v3-faq .accordion-button:not(.collapsed)::after { transform: rotate(45deg); }
.v3-faq .accordion-body {
  padding: 0 24px 20px;
  font: 400 15px/1.6 var(--v3-font-body);
  color: var(--v3-muted);
}
.v3-faq .tab-pane { outline: 0; }
@media (max-width: 991.98px) {
  .v3-faq .accordion { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .v3-faq__head { margin-bottom: 32px; }
  .v3-faq__tabs {
    --bs-nav-link-padding-x: 14px;
    display: flex;
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .v3-faq__tabs::-webkit-scrollbar { display: none; }
  .v3-faq__tabs .nav-item { flex: none; }
  .v3-faq__tabs .nav-link { white-space: nowrap; }
  .v3-faq .accordion-button { font-size: 16px; padding: 16px 20px; }
  .v3-faq .accordion-body { padding: 0 20px 16px; }
}


/* ==========================================================================
   19  Forms — field, input, hint, checkbox, password, rules, alerts, Turnstile
   ========================================================================== */

.v3-form { display: block; }
.v3-field { margin-bottom: 20px; min-width: 0; }
.v3-label {
  display: block;
  margin-bottom: 8px;
  font: 600 14px/1.4 var(--v3-font-body);
  color: var(--v3-ink);
}
.v3-label__opt { color: var(--v3-muted); font-weight: 400; }

/* control wrapper (contract name .ctl; #pw_ctl on login) */
.ctl { position: relative; }
.ctl .ic {
  position: absolute;
  inset-inline-start: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: var(--v3-faint);
  pointer-events: none;
  transition: color var(--v3-dur-1);
}
.ctl--area .ic { top: 14px; transform: none; }
.ctl:focus-within .ic { color: var(--v3-ink); }
.ctl:has(.v3-input[aria-invalid="true"]) .ic, .ctl:has(.v3-input.is-invalid) .ic { color: var(--v3-danger); }

.v3-input {
  width: 100%;
  height: 48px;
  padding-block: 0;
  padding-inline: 44px 14px;
  border: 1px solid var(--v3-line-input);
  border-radius: var(--v3-r-md);
  background: var(--v3-surface);
  color: var(--v3-ink);
  font: 500 15px/1.4 var(--v3-font-body);
  appearance: none;
  -webkit-appearance: none;
  outline: 0;
  margin: 0;
  box-shadow: none;
  transition: border-color var(--v3-dur-1), background-color var(--v3-dur-1), color var(--v3-dur-1);
}
textarea.v3-input {
  height: auto;
  min-height: 168px;
  padding-block: 12px;
  padding-inline: 44px 14px;
  resize: vertical;
  line-height: 1.5;
}
.ctl.has-eye .v3-input { padding-inline-end: 48px; }
.v3-input::placeholder { color: var(--v3-faint); opacity: 1; }
.v3-input:hover { border-color: var(--v3-ink-2); }
.v3-input:focus, .v3-input:focus-visible {
  border-color: #F59E0B;
  outline: 2px solid var(--v3-focus);
  outline-offset: 2px;
}
.v3-input[aria-invalid="true"], .v3-input.is-invalid { border-color: var(--v3-danger); }
.v3-input[disabled] { background: var(--v3-surface-2); color: var(--v3-faint); border-style: dashed; }
.v3-input[readonly] { background: var(--v3-surface-2); }
.v3-input:-webkit-autofill,
.v3-input:-webkit-autofill:hover,
.v3-input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--v3-surface) inset;
  -webkit-text-fill-color: var(--v3-ink);
  caret-color: var(--v3-ink);
}
/* auth pages read the --au-* tokens directly (complete light form on /?ref= without v3-auth.css) */
.v3-auth .v3-input {
  background: var(--au-input, var(--v3-surface));
  border-color: var(--au-line-input, var(--v3-line-input));
  color: var(--au-ink, var(--v3-ink));
}
.v3-auth .v3-input::placeholder { color: var(--au-faint, var(--v3-faint)); }
.v3-auth .v3-input:hover { border-color: var(--au-input-hover-line, var(--v3-ink-2)); }
.v3-auth .v3-input:focus, .v3-auth .v3-input:focus-visible {
  border-color: var(--au-focus-border, #F59E0B);
  outline-color: var(--au-focus, var(--v3-focus));
}
.v3-auth .v3-input[aria-invalid="true"], .v3-auth .v3-input.is-invalid { border-color: var(--au-danger, var(--v3-danger)); }
.v3-auth .v3-input[readonly], .v3-auth .v3-input[disabled] { background: var(--au-ground-2, var(--v3-surface-2)); }
.v3-auth .v3-input:-webkit-autofill,
.v3-auth .v3-input:-webkit-autofill:hover,
.v3-auth .v3-input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--au-input, var(--v3-surface)) inset;
  -webkit-text-fill-color: var(--au-ink, var(--v3-ink));
  caret-color: var(--au-ink, var(--v3-ink));
}

/* password reveal button (constant label; aria-pressed is the state) — 44×44 touch target inside the 48px input */
.ctl .eye {
  position: absolute;
  inset-inline-end: 2px;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--v3-r-sm);
  background: none;
  color: var(--v3-faint);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: color var(--v3-dur-1), background-color var(--v3-dur-1);
}
.ctl .eye:hover { color: var(--v3-ink); background: var(--v3-surface-2); }
.ctl .eye svg { width: 18px; height: 18px; display: block; }
.ctl .eye-off { display: none; }
.ctl.revealed .eye-on { display: none; }
.ctl.revealed .eye-off { display: block; }

/* hint / error row — a plain block: no display rule (jQuery fades set inline display) */
.v3-hint {
  position: relative;
  padding-inline-start: 22px;
  margin-top: 8px;
  font: 400 13px/1.45 var(--v3-font-body);
  color: var(--v3-danger);
}
.v3-hint::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 1px;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Ccircle cx='12' cy='16.5' r='.6' fill='%23000' stroke='none'/%3E%3C/svg%3E") center / 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Ccircle cx='12' cy='16.5' r='.6' fill='%23000' stroke='none'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.v3-hint--info { color: var(--v3-muted); }
.v3-hint--info::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='8' r='.6' fill='%23000' stroke='none'/%3E%3Cpath d='M12 11v5'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='8' r='.6' fill='%23000' stroke='none'/%3E%3Cpath d='M12 11v5'/%3E%3C/svg%3E");
}
.v3-auth .v3-hint { color: var(--au-danger, var(--v3-danger)); }
.v3-auth .v3-hint--info { color: var(--au-muted, var(--v3-muted)); }

/* checkbox */
.v3-check {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 500 14px/1.4 var(--v3-font-body);
  color: var(--v3-ink-2);
  cursor: pointer;
  position: relative;
  margin: 0;
}
.v3-check input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}
.v3-check i {
  width: 20px;
  height: 20px;
  border-radius: var(--v3-r-xs);
  border: 1px solid var(--v3-line-input);
  background: var(--v3-surface);
  display: grid;
  place-items: center;
  flex: none;
  transition: background-color var(--v3-dur-1), border-color var(--v3-dur-1);
}
.v3-check input:checked + i {
  background: #FBBC04;
  border-color: #FBBC04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1B19' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 12px 12px;
}
.v3-check input:focus-visible + i { outline: 2px solid var(--v3-focus); outline-offset: 2px; }
.v3-check:hover i { border-color: var(--v3-ink-2); }

/* login row: remember + forgot */
.row-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 4px 0 20px;
}
.v3-forget { color: var(--v3-muted); font: 400 14px/1.4 var(--v3-font-body); margin: 0; }
.v3-forget .v3-btn--link { font-size: 14px; }

/* password rules (signup) — the check is an inline sprite icon so it survives forced-colours mode */
.rules {
  list-style: none;
  margin: -4px 0 20px;
  padding: 0;
  display: grid;
  gap: 6px;
}
.rules li {
  display: flex;
  align-items: center;
  gap: 10px;
  font: 400 13px/1.4 var(--v3-font-body);
  min-height: 24px;
}
.rules li i {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid var(--v3-line-input);
  flex: none;
  display: grid;
  place-items: center;
  color: #fff;
  transition: background-color var(--v3-dur-1), border-color var(--v3-dur-1);
}
.rules li i .v3-i { width: 10px; height: 10px; }   /* stroke-width is fixed by the sprite symbol's own attribute (1.75) */
.pwdCheckerGray { color: var(--v3-muted); }
.pwdCheckerGray i .v3-i { display: none; }
.pwdCheckerGreen { color: var(--v3-ink); }
.pwdCheckerGreen i { background: var(--v3-ok); border-color: var(--v3-ok); }
.v3-auth .pwdCheckerGreen i { background: var(--au-ok, var(--v3-ok)); border-color: var(--au-ok, var(--v3-ok)); }

/* two-column rows */
.v3-form__grid, .grid2 { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
@media (min-width: 768px) { .v3-form__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 633px) { .grid2 { grid-template-columns: 1fr 1fr; } }

/* live wrapper — always in the accessibility tree (role=status / role=alert lives here, not on the hidden alert),
   so showing the alert ADDS its subtree inside an existing live region and every browser announces it */
.v3-live { display: block; }

/* alerts — no child icon elements, no display rule (jQuery fades + inline style="display:none") */
.v3-alert {
  position: relative;
  margin-top: 16px;
  padding-block: 14px;
  padding-inline: 44px 16px;
  border-radius: var(--v3-r-md);
  border: 1px solid;
  font: 400 14px/1.5 var(--v3-font-body);
  overflow-wrap: anywhere;
}
.v3-alert::before {
  content: '';
  position: absolute;
  inset-inline-start: 16px;
  top: 15px;
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: 18px;
  mask-size: 18px;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}
.v3-alert--ok {
  background: var(--v3-ok-soft);
  border-color: rgba(30,122,79,.25);
  color: var(--v3-ok);
}
.v3-alert--ok::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12l3 3 5-6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12l3 3 5-6'/%3E%3C/svg%3E");
}
.v3-alert--ok b, .v3-alert--ok p { color: var(--v3-ink); }
.v3-alert--ok b { display: block; font-weight: 600; margin-bottom: 2px; }
.v3-alert--ok p { margin: 0; }
.v3-alert--err {
  background: var(--v3-danger-soft);
  border-color: rgba(180,35,24,.25);
  color: var(--v3-danger);
}
.v3-alert--err::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Ccircle cx='12' cy='16.5' r='.6' fill='%23000' stroke='none'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Ccircle cx='12' cy='16.5' r='.6' fill='%23000' stroke='none'/%3E%3C/svg%3E");
}
.v3-auth .v3-alert--ok { background: var(--au-ok-bg, var(--v3-ok-soft)); color: var(--au-ok, var(--v3-ok)); }
.v3-auth .v3-alert--ok b, .v3-auth .v3-alert--ok p { color: var(--au-ink, var(--v3-ink)); }
.v3-auth .v3-alert--err { background: var(--au-danger-bg, var(--v3-danger-soft)); color: var(--au-danger, var(--v3-danger)); }

/* Turnstile wrapper — reserves the 300×65 "normal" widget */
.v3-turnstile {
  min-height: 65px;
  margin: 4px 0 20px;
  display: flex;
  justify-content: flex-start;
  max-width: 100%;
}
@media (max-width: 379.98px) {
  /* the contact card's content box is 280px at 360 (wrap 16 + card 24 each side); the fixed 300×65 iframe is scaled
     to fit — the wrapper's min-height still reserves the layout (scaled height ≈ 61px) */
  .v3-contact__card .v3-turnstile > * { transform: scale(.9333); transform-origin: 0 0; }
}


/* ==========================================================================
   20  Video modal  .modal-content.v3-modal
   ========================================================================== */

.v3-modal {
  --bs-modal-bg: #0D0E10;
  --bs-modal-color: #F6F5F1;
  --bs-modal-border-width: 1px;
  --bs-modal-border-color: var(--v3-d-line-strong);
  --bs-modal-border-radius: var(--v3-r-xl);
  --bs-modal-inner-border-radius: calc(var(--v3-r-xl) - 1px);
  --bs-modal-header-border-color: var(--v3-d-line);
  --bs-modal-header-border-width: 1px;
  --bs-modal-header-padding: 16px 20px;
  background: #0D0E10;
  border: 1px solid var(--v3-d-line-strong);
  border-radius: var(--v3-r-xl);
  color: #F6F5F1;
  font-family: var(--v3-font-body);
  overflow: hidden;
}
.v3-modal .modal-header {
  border-bottom: 1px solid var(--v3-d-line);
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.v3-modal .modal-title { margin: 0; color: #F6F5F1; min-width: 0; }
.v3-modal .btn-close { margin: 0 0 0 auto; padding: 14px; }   /* 1em glyph + 28 = 44×44 touch target */
.v3-modal .modal-body { padding: 0; }
.v3-video {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0 0 var(--v3-r-xl) var(--v3-r-xl);
  background: #000;
}
.v3-modal .modal-body p { padding: 16px 20px; color: var(--v3-d-muted); }


/* ==========================================================================
   21  Hero  section.v3-sec.v3-hero
   ========================================================================== */

.v3-hero { padding: 24px 0 0; background: var(--v3-bg); }
.v3-hero__panel { padding: 64px 64px 48px; }

.v3-hero__content { max-width: 720px; text-align: start; }
.v3-hero__h1 { color: #F6F5F1; margin: 0 0 20px; }
.v3-hero__h1-static { display: block; }
.v3-hero__lede { color: var(--v3-d-text); max-width: 52ch; margin: 0 0 28px; }
.v3-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }
.v3-hero__note { color: var(--v3-d-faint); margin-top: 16px; }

/* hero stagger — CSS only, content visible by default */
.v3-hero__content > * { animation: v3-rise var(--v3-dur-3) var(--v3-ease) both; }
.v3-hero__content > :nth-child(2) { animation-delay: 60ms; }
.v3-hero__content > :nth-child(3) { animation-delay: 120ms; }
.v3-hero__content > :nth-child(4) { animation-delay: 180ms; }
.v3-hero__content > :nth-child(5) { animation-delay: 240ms; }
.v3-hero__media { animation: v3-rise var(--v3-dur-3) var(--v3-ease) 300ms both; }

/* media — full panel width, capped, a normal flow child (no negative margins) */
.v3-hero__media {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 48px auto 0;
}
.v3-play {
  position: absolute;
  inset-inline-start: 24px;
  bottom: 24px;
  z-index: 2;
  width: 64px;
  height: 64px;
  padding: 0;
  border-radius: 50%;
  background: #FBBC04;
  color: #1C1B19;
  border: 0;
  display: grid;
  place-items: center;
  box-shadow: var(--v3-sh-lg);
  cursor: pointer;
  transition: transform var(--v3-dur-1), background-color var(--v3-dur-1);
  --v3-focus: #1C1B19;
}
.v3-play .v3-i { width: 24px; height: 24px; margin-inline-start: 2px; }
.v3-play:hover { transform: scale(1.05); background: #FFC72E; }
.v3-play::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(251,188,4,.45);
  animation: v3-pulse 2.4s var(--v3-ease) infinite;
  pointer-events: none;
}

/* fact strip — the class sits on the dl itself (dl.v3-ledger.v3-ledger--cols.v3-ledger--bare.v3-hero__facts);
   a wrapping element around the dl is tolerated too */
.v3-hero__facts { margin-top: 48px; }
.v3-hero__facts.v3-ledger, .v3-hero__facts .v3-ledger {
  grid-auto-flow: row;
  grid-template-columns: repeat(2, minmax(0, 1fr));      /* 2×2 up to 991 */
  gap: 24px;
  border: 0;
  border-top: 1px solid var(--v3-d-line);
  border-radius: 0;
  padding-top: 32px;
  background: none;
  overflow: visible;
}
@media (min-width: 992px) {
  /* one row, one equal column per tile (auto-fit minmax(200px) gave 3 + 1 orphan at 992–1199);
     deleting a tile still just removes its column */
  .v3-hero__facts.v3-ledger, .v3-hero__facts .v3-ledger {
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    grid-template-columns: none;
  }
}
.v3-hero__facts .v3-tile {
  padding: 0 24px;
  border-inline-start: 1px solid var(--v3-d-line);
  min-height: 0;
}
.v3-hero__facts .v3-tile:first-child { border-inline-start: 0; padding-inline-start: 0; }
@media (min-width: 576px) and (max-width: 991.98px) {
  /* 2×2: the first tile of EACH row starts flush (no hairline / indent on tile 3) */
  .v3-hero__facts .v3-tile:nth-child(odd) { border-inline-start: 0; padding-inline-start: 0; }
}
.v3-hero__facts .v3-tile__label { color: var(--v3-d-muted); margin-top: 8px; }
.v3-hero__facts .v3-tile__value { color: var(--v3-d-gold); }
.v3-hero__facts .v3-tile__body { color: var(--v3-d-faint); font: 400 12px/1.45 var(--v3-font-body); }

/* trust rail — below the panel */
.v3-hero__trust {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px 24px;
  flex-wrap: wrap;
}
.v3-hero__trust > .v3-t-eye { color: var(--v3-muted); }

@media (max-width: 991.98px) {
  .v3-hero__panel { padding: 48px 40px 40px; }
  .v3-hero__media { margin-top: 40px; }
  .v3-hero__cta > * { flex: 1 1 100%; }
  .v3-hero__facts { margin-top: 40px; }
}
@media (max-width: 575.98px) {
  .v3-hero__panel { padding: 40px 24px 32px; }
  .v3-hero__media { margin-top: 32px; }
  .v3-play { width: 52px; height: 52px; inset-inline-start: 16px; bottom: 16px; }
  .v3-play .v3-i { width: 20px; height: 20px; }
  /* "Watch the dashboard demo" (≈292px min-content with 24px padding) must fit the 280px content box at 360 */
  .v3-hero__cta .v3-btn--lg {
    padding: 12px 16px;
    height: auto;
    min-height: 52px;
    white-space: normal;
    text-align: center;
  }
  .v3-hero__facts.v3-ledger, .v3-hero__facts .v3-ledger {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding-top: 0;
    border-top: 0;
  }
  .v3-hero__facts .v3-tile, .v3-hero__facts .v3-tile:first-child {
    border-inline-start: 0;
    border-top: 1px solid var(--v3-d-line);
    padding: 16px 0 0;
  }
  .v3-hero__facts .v3-tile__value { font-size: 28px; line-height: 1.05; letter-spacing: -.015em; }
  .v3-hero__trust { margin-top: 24px; gap: 12px 16px; }
}


/* ==========================================================================
   22  Home sections
   ========================================================================== */

/* partners */
.v3-partners { padding: 80px 0; background: var(--v3-bg); }
@media (max-width: 575.98px) { .v3-partners { padding: 64px 0; } }

/* why VisualAds — terms tiles */
.v3-terms { background: var(--v3-bg); }
.v3-terms__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.v3-terms__grid .v3-tile--card .v3-t-hmd { color: var(--v3-ink); }
.v3-terms__grid .v3-tile__value.v3-t-kpi { font-size: 28px; }
@media (max-width: 991.98px) { .v3-terms__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) {
  .v3-terms__grid { grid-template-columns: 1fr; gap: 16px; }
  .v3-tile--card { padding: 24px; min-height: 0; }
  .v3-terms__grid .v3-tile__value.v3-t-kpi-lg { font-size: 32px; }
}

/* platform — the one dark body band */
.v3-platform {
  background: #1C1B19;
  padding: 96px 0;
  position: relative;
  overflow: clip;
  isolation: isolate;
  color: var(--v3-d-ink);
}
.v3-platform::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 100%);
}
.v3-platform::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(640px 420px at 85% 0%, rgba(251,188,4,.14), transparent 62%);
}
.v3-platform__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 56px;
  align-items: center;
}
.v3-platform__grid > .v3-sec-head--left { margin-bottom: 32px; }
.v3-platform__grid .v3-feat + .v3-btn { margin-top: 32px; }
.v3-platform__shot {
  position: relative;
  margin: 0;
  border-radius: var(--v3-r-xl);
  overflow: hidden;
  box-shadow: var(--v3-sh-panel);
  border: 1px solid var(--v3-d-line-strong);
  background: var(--v3-d-bg-3);
}
.v3-platform__shot img { display: block; width: 100%; height: auto; }
.v3-platform__shot figcaption { position: absolute; top: 16px; inset-inline-end: 16px; margin: 0; }
@media (max-width: 1199.98px) {
  .v3-platform__grid { grid-template-columns: 1fr; gap: 40px; }
  .v3-platform__shot { max-width: 560px; margin: 0 auto; width: 100%; }
}
@media (max-width: 575.98px) {
  .v3-platform { padding: 64px 0; }
  .v3-platform__shot { max-width: none; border-radius: var(--v3-r-lg); }
}

/* ad formats */
.v3-formats { background: var(--v3-bg); }

/* payouts */
.v3-payouts {
  background: var(--v3-surface);
  border-top: 1px solid var(--v3-line);
  border-bottom: 1px solid var(--v3-line);
}
.v3-payouts__ledger {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin: 0 0 56px;
}
.v3-payouts__item {
  border-top: 1px solid var(--v3-line-gold);
  padding-top: 20px;
  min-width: 0;
}
.v3-payouts__item dt { color: var(--v3-gold-ink); }
.v3-payouts__item .v3-t-nxl { color: var(--v3-ink); margin: 12px 0 8px; }
.v3-payouts__item .v3-t-nxl small {
  font-family: var(--v3-font-display);
  font-size: 22px;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--v3-muted);
  margin-inline-start: 6px;
  white-space: nowrap;
}
.v3-payouts__item .v3-t-bsm { color: var(--v3-muted); max-width: 30ch; }
.v3-payouts__facts {
  margin-top: 40px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.v3-payouts__facts .v3-btn--ghost { margin-inline-start: auto; }
@media (max-width: 767.98px) {
  .v3-payouts__ledger { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
  .v3-payouts .v3-timeline { grid-template-columns: 1fr; gap: 20px; padding-inline-start: 32px; }
  .v3-payouts .v3-timeline::before {
    inset-inline-start: 7px;
    inset-inline-end: auto;
    top: 8px;
    bottom: 8px;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, rgba(251,188,4,.25), rgba(251,188,4,.9) 20%, rgba(251,188,4,.9) 80%, rgba(251,188,4,.25));
  }
  .v3-payouts .v3-timeline > li { padding-top: 0; }
  .v3-payouts .v3-timeline > li::before { inset-inline-start: -32px; top: 4px; }
}
@media (max-width: 575.98px) {
  .v3-payouts__facts .v3-btn { flex: 1 1 100%; margin-inline-start: 0; }
}

/* how it works */
.v3-steps-sec { background: var(--v3-bg); }

/* faq */
.v3-faq { background: var(--v3-surface); }


/* ==========================================================================
   23  Contact page
   ========================================================================== */

.v3-contact { padding: 0 0 96px; background: var(--v3-bg); }
.v3-contact__grid {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 32px;
  margin-top: -24px;
  position: relative;
  z-index: 1;
  align-items: start;
}
.v3-contact__card { padding: 40px; }
.v3-contact__card .v3-t-dsm { margin: 0; }
.v3-contact__card .v3-hint--info { margin: 12px 0 24px; }
.v3-contact__card .v3-form .v3-btn { margin-top: 4px; }
.v3-contact__card > .v3-t-cap { color: var(--v3-muted); margin-top: 16px; }
.v3-contact__aside { display: grid; gap: 24px; align-content: start; min-width: 0; }
.v3-contact__aside .v3-tile--card { min-height: 0; }
.v3-contact__aside .v3-tile__body { margin-top: 8px; }
.v3-contact__aside .v3-tile--card .v3-btn--link { margin-top: 12px; }
/* aside ledger: where the aside is narrower than ≈450px (992–1199 at 5/12, and phones) the `auto` value column
   would take all the free space (three nowrap office chips ≈287px) and the key column would collapse to 0px —
   stack the value under the key/sub block instead (mirrors .v3-feat below 576) */
@media (min-width: 992px) and (max-width: 1199.98px), (max-width: 575.98px) {
  .v3-contact__aside .v3-ledger__row,
  .v3-contact__aside .v3-ledger__row:has(> .v3-ledger__ic) { grid-template-columns: 36px minmax(0, 1fr); }
  .v3-contact__aside .v3-ledger__ic ~ .v3-ledger__v,
  .v3-contact__aside .v3-ledger__v {
    grid-column: 2;
    grid-row: auto;
    justify-self: start;
    justify-content: flex-start;
    text-align: start;
    margin-top: 8px;
  }
}
@media (max-width: 991.98px) {
  .v3-contact { padding-bottom: 72px; }
  .v3-contact__grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 575.98px) {
  .v3-contact { padding-bottom: 64px; }
  .v3-contact__card { padding: 24px; }
  .v3-card { padding: 24px; }
}


/* ==========================================================================
   24  Auth shell  section.auth.v3-auth  (tokens via var(--au-*, light fallback))
   ========================================================================== */

.v3-auth {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42%;
  min-height: 720px;
}
.v3-auth .left {
  display: flex;
  justify-content: center;
  padding: 48px 56px 56px;
  min-width: 0;
}
.v3-auth .form-wrap { width: 100%; max-width: 440px; }
.v3-auth .form-wrap.wide { max-width: 560px; }

/* the form-column eyebrow is themed through the body.login .v3 remap (--v3-gold-ink → --au-accent-ink);
   the aside eyebrow keeps its .v3-dark look — no .v3-auth override, or it would out-cascade the dark rule */
.v3-auth .title { margin: 0 0 12px; color: var(--au-ink, var(--v3-ink)); }
.v3-auth .title b, .v3-auth .title strong { color: inherit; }
.v3-auth .lede { color: var(--au-muted, var(--v3-muted)); max-width: 44ch; margin: 0 0 28px; }
.v3-auth .v3-label { color: var(--au-ink, var(--v3-ink)); }
.v3-auth .v3-check { color: var(--au-ink-2, var(--v3-ink-2)); }
.v3-auth .v3-forget { color: var(--au-muted, var(--v3-muted)); }
/* consent line under "Create account" (06 §1.13); the link inherits the muted colour and is underlined so it stays visible in both themes */
.v3-auth .v3-consent { margin: 12px 0 0; color: var(--au-muted, var(--v3-muted)); }
.v3-auth .v3-consent a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.v3-auth .v3-consent a:hover { color: var(--au-ink, var(--v3-ink)); }

/* auth ghost (secondary) */
.v3-auth .v3-btn--ghost {
  border-color: var(--au-sec-line, var(--v3-line-input));
  color: var(--au-sec-ink, var(--v3-ink));
}
.v3-auth .v3-btn--ghost:hover { border-color: #FBBC04; background: rgba(251,188,4,.08); color: var(--au-sec-ink, var(--v3-ink)); }

.v3-auth .foot {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--au-line, var(--v3-line));
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 14px;
  color: var(--au-muted, var(--v3-muted));
}
.v3-auth .foot p { margin: 0; }

/* aside — charcoal in both themes, ledger grid + one glow */
.v3-auth aside.right {
  background: var(--au-panel, #1C1B19);
  color: #F6F5F1;
  position: relative;
  overflow: hidden;
  padding: 56px 48px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  isolation: isolate;
  min-width: 0;
}
.v3-auth aside.right::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(var(--au-aside-grid, rgba(255,255,255,.04)) 1px, transparent 1px),
                    linear-gradient(90deg, var(--au-aside-grid, rgba(255,255,255,.04)) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 90%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 90%);
}
.v3-auth aside.right::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(520px 360px at 85% 5%, var(--au-aside-glow, rgba(251,188,4,.16)), transparent 62%);
}
.v3-auth .pitch { display: grid; gap: 12px; justify-items: start; }
.v3-auth .pitch .v3-eyebrow { margin-bottom: 4px; }
.v3-auth .pitch .v3-t-dsm { margin: 0; color: rgba(246,245,241,.85); }
.v3-auth .pitch .v3-t-dsm strong, .v3-auth .pitch .v3-t-dsm b { color: #F6F5F1; }
.v3-auth .pitch .v3-t-bsm { color: var(--v3-d-text); max-width: 40ch; margin: 0; }
.v3-auth aside.right .v3-marks--card { margin-top: auto; }

/* login aside facts (5 % · Net 30 · USD · EUR · TRY): content-sized cells so the currency value never breaks
   mid-list; below 1200 the aside is ≈307–394px, so the currencies take a full row of their own */
.v3-auth .v3-ledger--cols { grid-auto-columns: auto; }
.v3-auth .v3-ledger--cols .v3-ledger__v { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1199.98px) {
  .v3-auth .v3-ledger--cols { grid-auto-flow: row; grid-template-columns: auto auto; }
  .v3-auth .v3-ledger--cols > .v3-ledger__row:last-child {
    grid-column: 1 / -1;
    border-inline-start: 0;
    padding-inline-start: 0;
    border-top: 1px solid var(--v3-d-line);
  }
}

@media (max-width: 991.98px) {
  .v3-auth { grid-template-columns: 1fr; min-height: 0; }
  .v3-auth .left { padding: 40px 24px 48px; }
  .v3-auth aside.right { display: none; }
}
@media (max-width: 575.98px) {
  .v3-auth .left { padding: 32px 16px 40px; }
}


/* ==========================================================================
   25  Typing headline  span.typing#text_anim  (engine: JS sets el.style.animation)
   ========================================================================== */

.typing {
  position: relative;
  display: block;
  width: fit-content;
  max-width: 100%;
  padding-inline-end: 8px;
  white-space: nowrap;
  clip-path: inset(0 100% 0 0);
  color: #FBBC04;
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  min-height: 1.05em;
}
.typing::after {
  content: '';
  position: absolute;
  top: .08em;
  bottom: .08em;
  inset-inline-end: 2px;
  width: 3px;
  border-radius: 1px;
  background: #FBBC04;
  animation: blink 1s step-end infinite;
}
.typing.done::after { display: none; }
@media (max-width: 575.98px) {
  /* one-line reserve: every owner phrase (≤ 14 characters) fits one line at 30/36px in the 280px+ box.
     Restore `calc(2 * 1.08em)` if a phrase longer than ~15 characters is ever added. */
  .typing { white-space: normal; min-height: 1.08em; }
}


/* ==========================================================================
   25b  Language switcher  (v3.1 — i18n)
        .v3-lang (header, Bootstrap dropdown with data-bs-display="static", no Popper)
        .v3-m-lang (offcanvas 2-column chip list) · .v3-foot-lang (footer row, the no-JS path)
        The header is a dark scope (§02 remaps --v3-surface to a 4% white), so the floating
        menu uses the explicit dark-panel tokens: it reads as an extension of the header bar
        on every page (light home/contact and both auth themes). Written with logical
        properties only; v3-rtl.css does not need to touch it.
   ========================================================================== */

.v3-lang { position: relative; }
.v3-lang__btn {                                        /* same box family as .v3-nav__login */
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 36px;
  padding-block: 0;
  padding-inline: 12px 10px;
  border: 1px solid transparent;
  border-radius: var(--v3-r-sm);
  background: none;
  color: rgba(246,245,241,.85);
  font: 600 14px/1 var(--v3-font-body);
  letter-spacing: .01em;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--v3-dur-1), background-color var(--v3-dur-1), border-color var(--v3-dur-1);
}
.v3-lang__btn:hover,
.v3-lang__btn[aria-expanded="true"] { color: #F6F5F1; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.10); }
.v3-lang__btn:focus-visible { outline: 2px solid var(--v3-focus); outline-offset: 2px; }
.v3-lang__btn > .v3-i:first-child { color: var(--v3-d-gold); }
.v3-lang__name { display: inline-block; max-width: 11ch; overflow: hidden; text-overflow: ellipsis; }
.v3-lang__chev { opacity: .7; transition: transform var(--v3-dur-2) var(--v3-ease), opacity var(--v3-dur-1); }
.v3-lang__btn:hover .v3-lang__chev { opacity: 1; }
.v3-lang__btn[aria-expanded="true"] .v3-lang__chev { transform: rotate(180deg); opacity: 1; }

.v3-lang__menu {                                       /* Bootstrap .dropdown-menu re-themed as a dark panel */
  --bs-dropdown-zindex: 1030;
  --bs-dropdown-min-width: 236px;
  --bs-dropdown-padding-y: 6px;
  --bs-dropdown-padding-x: 6px;
  --bs-dropdown-spacer: 8px;
  --bs-dropdown-font-size: 14px;
  --bs-dropdown-bg: #23231B;
  --bs-dropdown-color: #F6F5F1;
  --bs-dropdown-border-color: rgba(255,255,255,.14);
  --bs-dropdown-border-radius: var(--v3-r-md);
  --bs-dropdown-border-width: 1px;
  --bs-dropdown-box-shadow: 0 24px 48px -20px rgba(0,0,0,.6), 0 0 0 1px rgba(0,0,0,.35);
  --bs-dropdown-link-color: rgba(246,245,241,.88);
  --bs-dropdown-link-hover-color: #F6F5F1;
  --bs-dropdown-link-hover-bg: rgba(255,255,255,.07);
  --bs-dropdown-link-active-color: #F6F5F1;
  --bs-dropdown-link-active-bg: rgba(251,188,4,.16);
  --bs-dropdown-item-padding-y: 10px;
  --bs-dropdown-item-padding-x: 12px;
  --bs-dropdown-item-border-radius: var(--v3-r-sm);
  top: calc(100% + 8px);                               /* data-bs-display="static": plain CSS placement, no Popper */
  inset-inline-end: 0;
  inset-inline-start: auto;
  margin: 0;
  border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
  border-radius: var(--bs-dropdown-border-radius);
  box-shadow: var(--bs-dropdown-box-shadow);
  color-scheme: dark;
}
.v3-lang__menu.show { animation: v3-lang-in var(--v3-dur-2) var(--v3-ease) both; }
.v3-lang__item {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: var(--v3-r-sm);
  font: 500 14px/1.2 var(--v3-font-body);
  transition: background-color var(--v3-dur-1), color var(--v3-dur-1);
}
.v3-lang__item .v3-lang__hint {
  margin-inline-start: auto;
  font: 600 11px/1 var(--v3-font-body);
  letter-spacing: .06em;
  color: rgba(246,245,241,.55);
  font-variant-numeric: tabular-nums;
}
.v3-lang__item[aria-current="true"] { font-weight: 600; color: #F6F5F1; background: rgba(251,188,4,.16); }
.v3-lang__item[aria-current="true"] .v3-lang__hint { color: var(--v3-d-gold); }
.v3-lang__check { color: var(--v3-d-gold); }
.v3-lang__item:focus-visible { outline: 2px solid var(--v3-d-focus); outline-offset: -2px; }

/* offcanvas list */
.v3-m-lang { display: grid; gap: 10px; padding-top: 4px; }
.v3-m-lang__h { color: rgba(246,245,241,.62); }
.v3-m-lang__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v3-m-lang__item {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding-block: 0;
  padding-inline: 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--v3-r-md);
  background: rgba(255,255,255,.06);
  color: #F6F5F1;
  font: 600 14px/1.2 var(--v3-font-body);
  text-decoration: none;
  transition: border-color var(--v3-dur-1), background-color var(--v3-dur-1);
}
.v3-m-lang__item:hover { border-color: rgba(251,188,4,.6); color: #F6F5F1; }
.v3-m-lang__item[aria-current="true"] { border-color: #FBBC04; background: rgba(251,188,4,.12); color: #FBBC04; }
.v3-m-lang__item:focus-visible { outline: 2px solid var(--v3-d-focus); outline-offset: 2px; }

/* footer row */
.v3-foot-lang { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; color: rgba(246,245,241,.62); }
.v3-foot-lang a {
  color: rgba(246,245,241,.72);
  font: 500 13px/1.5 var(--v3-font-body);
  text-decoration: none;
  transition: color var(--v3-dur-1);
}
.v3-foot-lang a:hover { color: #F6F5F1; }
.v3-foot-lang a[aria-current="true"] { color: #FBBC04; font-weight: 600; }
@media (max-width: 575.98px) {
  .v3-foot-lang { flex-basis: 100%; }                  /* wraps under the legal links as its own row */
}
@media (max-width: 991.98px) {
  .v3-lang { display: none; }                          /* header control is desktop-only; the offcanvas has the list */
}


/* ==========================================================================
   26  Keyframes (defined here and nowhere else)
   ========================================================================== */

@keyframes v3-spin  { to { transform: rotate(360deg); } }
@keyframes v3-pulse { 0% { transform: scale(1); opacity: .9; } 70%, 100% { transform: scale(1.35); opacity: 0; } }
@keyframes v3-rise  { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes reveal   { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes hide     { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(0 100% 0 0); } }
@keyframes blink    { 50% { opacity: 0; } }
@keyframes v3-lang-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }


/* ==========================================================================
   27  Reduced motion — the single block (last rule in the file)
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .v3 *, .v3 *::before, .v3 *::after,
  .v3-header *, .v3-header *::before, .v3-header *::after,
  .v3-footer *, .v3-footer *::before, .v3-footer *::after,
  .v3-offcanvas *, .v3-modal *, body.login * {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .v3-play::after { display: none; }
  .typing { clip-path: inset(0); animation: none !important; }      /* re-provides style.css:2002-2007 */
  .typing::after { display: none; }
  .v3-hero__content > *, .v3-hero__media { animation: none; opacity: 1; transform: none; }
  [aria-busy="true"]::after { animation-duration: .8s !important; animation-iteration-count: infinite !important; }  /* essential status indicator */
}
