/**
Theme Name: aivonyx App
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest,
fully customizable & beautiful theme suitable for blogs,
personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind,
Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore,
we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed,
Developed,
Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast,
fully customizable and beautiful theme!
Version: 1.28.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aivonyx
Template: astra
*/

/**
 * aivonyx Landing Pages — Combined Gutenberg Styles
 * LP1: Founder Circle (.fc-page)
 * LP2: VIP Klienten  (.vk-page)
 *
 * Shared design tokens in :root,
page-specific styles scoped.
 * Enqueue via child-theme functions.php
 */

/* ============================================================
   SELF-HOSTED FONTS (v1.3.0 · DSGVO)
   ------------------------------------------------------------
   Vorher per wp_enqueue_style von fonts.googleapis.com gehotlinkt
   → übertrug die Besucher-IP ohne Einwilligung an Google (LG
   München I, Az. 3 O 17493/20). Jetzt lokal aus aivonyx/fonts/.
   Quelle: fontsource (Google-Fonts-Upstream), latin-Subset, woff2.
   Familien-Namen sind 1:1 die in --ax-font-* referenzierten Namen,
   damit kein einziger Komponenten-Selektor angefasst werden muss.
   url() ist relativ zu DIESER Datei (Theme-Root) → fonts/…
   ============================================================ */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(fonts/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(fonts/inter-latin-wght-italic.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 100 700;
  src: url(fonts/roboto-mono-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Merriweather';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/merriweather-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Merriweather';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/merriweather-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ============================================================
   DESIGN TOKENS (shared)
   ------------------------------------------------------------
   Brand-Farben primär aus den Astra-Customizer-Variablen
   (--ast-global-color-N). Hex-Werte hier nur als Fallback, wenn
   die Astra-Variable im Theme nicht gesetzt ist.

   Astra-Mapping (Default-Reihenfolge im Customizer):
     0 = Primary  · 1 = Secondary · 2 = Text   · 3 = Link
     4 = Link-Hover · 5 = Heading · 6 = Content-BG · 7 = Container-BG

   Was Astra nicht direkt deckt (Surface-Töne, Glow-Layer,
   Hilfs-Grays), wird darunter als eigene Custom-Property ergänzt.
   ============================================================ */
:root {
  /* --- Colors: aivonyx.de Basis --- */
  --ax-web-blue:       #1d7bff;
  --ax-web-heading:    #14161d;
  --ax-web-body:       #1f222b;
  --ax-web-muted:      #7c85a3;
  --ax-web-btn:        #32373c;

  /* --- Brand-Farben · Astra-first --- */
  --ax-deep:           var(--ast-global-color-0, #0A3A52);
  --ax-cyan:           var(--ast-global-color-1, #00D9FF);
  --ax-black:          var(--ast-global-color-2, #1A1A1A);
  --ax-white:          var(--ast-global-color-6, #FFFFFF);

  /* --- Erweiterungen, die Astra nicht abbildet --- */
  --ax-cyan-hover:     #00B8D9;
  --ax-deep-700:       #12517A;
  --ax-deep-900:       #07283A;
  /* v1.22.0: #808080 → #6B6B6B. Gemessen 2026-08-12: #808080 erreichte auf
     Karte nur 3,95:1, auf der Bühne 3,62:1 — beides unter WCAG-AA (4,5:1),
     und --ax-gray trägt Labels, Einheiten und Meta-Zeilen in 13–15px, also
     Normaltext ohne Large-Text-Ausnahme. #6B6B6B hält 4,63:1 selbst auf der
     dunkelsten hellen Fläche (Rille #EFEFEF, Segmented-Control-Track). */
  --ax-gray:           #6B6B6B;
  --ax-gray-subtle:    #F5F5F5;
  --ax-border:         #E5E5E5;

  /* --- Active accent (cyan) --- */
  --ax-accent:         var(--ax-cyan);
  --ax-accent-hover:   var(--ax-cyan-hover);

  /* --- Surface-Töne auf dunklem Brand-Hintergrund (Hero/Insight) --- */
  --ax-on-dark:        var(--ax-white);
  --ax-on-dark-strong: rgba(255, 255, 255, 0.85);
  --ax-on-dark-soft:   rgba(255, 255, 255, 0.7);
  --ax-on-dark-mute:   rgba(255, 255, 255, 0.6);
  --ax-on-dark-faint:  rgba(255, 255, 255, 0.55);
  --ax-on-dark-hair:   rgba(255, 255, 255, 0.14);
  --ax-on-dark-line:   rgba(255, 255, 255, 0.1);

  /* --- Cyan-Glow für Hero/Insight-Decorations + Chart-Fills --- */
  --ax-cyan-glow-strong: rgba(0, 217, 255, 0.18);
  --ax-cyan-glow-soft:   rgba(0, 217, 255, 0.16);
  --ax-cyan-glow-faint:  rgba(0, 217, 255, 0.08);
  --ax-cyan-glow-zero:   rgba(0, 217, 255, 0);

  /* --- Typography --- */
  --ax-font-mono:      'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --ax-font-sans:      'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --ax-font-serif:     'Merriweather', Georgia, serif;
  --ax-font-display:   var(--ax-font-mono);

  /* --- Layout --- */
  --ax-container:      1480px;
  --ax-space-section:  7rem; /* 112px — REM-Konvention (Review 2026-07, C10) */

  /* --- Motion --- */
  --ax-ease:           cubic-bezier(0.2, 0.8, 0.2, 1);
  --ax-dur-base:       240ms;
  --ax-dur-slow:       480ms;

  /* ============================================================
     ELEMENT-BASIS-TOKENS (global · v1.1.0)
     Nur hier dürfen Hex/rgba-Literale stehen (Token-Ownership).
     Werte harmonieren mit der Plugin-Palette (tokens.css),
     werden dort aber NICHT re-deklariert.
     ============================================================ */

  /* Text & Links auf hellem Grund */
  /* Die EINZIGE Cyan-Variante für Text auf hellem Grund (Rolle, nicht Ton).
     v1.22.0: #007A99 → #00738F. #007A99 hielt AA auf Weiß (4,95:1), fiel aber
     auf dem Cyan-Tint (rgba(0,217,255,0.16) → #D6F9FF) auf 4,44:1 — genau dort
     sitzt der Hover-Zustand von .ax-more und .ax-account__avatar. #00738F
     hält 4,90:1 auf dem Tint und 5,46:1 auf Weiß.
     NIE auf Petrol verwenden (2,21:1) — dort gilt --ax-cyan. */
  --ax-cyan-text:      #00738F;
  --ax-link:           var(--ax-deep-700);
  --ax-link-hover:     var(--ax-cyan-text);
  --ax-surface-50:     #FAFAFA;            /* Zebra-Streifen, Code-Flächen hell */

  /* Status (global, für Formulare/Inhalte; Plugin-Pendants bleiben gescoped) */
  --ax-state-success:      #00C896;
  --ax-state-success-fg:   #00764F;
  --ax-state-success-tint: rgba(0, 200, 150, 0.10);
  --ax-state-warning:      #F5A623;
  --ax-state-warning-fg:   #9B5B00;
  --ax-state-warning-tint: rgba(245, 166, 35, 0.12);
  --ax-state-error:        #E5484D;
  --ax-state-error-fg:     #A01A20;
  --ax-state-error-tint:   rgba(229, 72, 77, 0.10);

  /* Fokus-Ringe — opak: Alpha-Cyan stand bei 1,3:1 auf Weiß, WCAG 1.4.11
     verlangt 3:1. #00738F = 5,46:1, #E5484D = 3,9:1 (Dark-Remap s. u.). */
  --ax-focus-ring:        0 0 0 0.1875rem #00738F;
  --ax-focus-ring-error:  0 0 0 0.1875rem #E5484D;

  /* Element-Geometrie */
  --ax-el-radius:      0.5rem;     /*  8px — Inputs, Buttons, Cards */
  --ax-el-radius-sm:   0.25rem;    /*  4px — Code, Kbd, kleine Flächen */
  --ax-el-border:      0.0625rem;  /*  1px */

  /* Heading-Scale (fluid, rem) */
  --ax-h1: clamp(2rem,     1.7rem   + 1.5vw,   2.75rem);  /* 32 → 44px */
  --ax-h2: clamp(1.625rem, 1.4rem   + 1.125vw, 2.25rem);  /* 26 → 36px */
  --ax-h3: clamp(1.375rem, 1.225rem + 0.75vw,  1.75rem);  /* 22 → 28px */
  --ax-h4: clamp(1.125rem, 1.05rem  + 0.375vw, 1.375rem); /* 18 → 22px */
  --ax-h5: 1.0625rem;                                     /* 17px */
  --ax-h6: 0.9375rem;                                     /* 15px */
}

/* ============================================================
   SHARED KEYFRAMES
   ============================================================ */
@keyframes lp-blink { to { visibility: hidden; } }
@keyframes lp-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(0,217,255,0.6); }
  100% { box-shadow: 0 0 0 10px rgba(0,217,255,0); }
}
/* Aliases retained for backwards compatibility with any inline class hooks */
@keyframes fc-blink { to { visibility: hidden; } }
@keyframes vk-blink { to { visibility: hidden; } }
@keyframes fc-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(0,217,255,0.6); }
  100% { box-shadow: 0 0 0 10px rgba(0,217,255,0); }
}
@keyframes vk-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(0,217,255,0.6); }
  100% { box-shadow: 0 0 0 10px rgba(0,217,255,0); }
}

/* ============================================================
   DASHBOARD-KOMPONENTEN · Surface-Pins (v1.2.4)
   ------------------------------------------------------------
   Dashboard-Komponenten (.aivonyx-dashboard) rendern überall —
   auch auf Seiten OHNE body.ax-dashboard-page (z. B. Changelog-
   Shortcode). Die Brand-/Surface-Tokens werden deshalb direkt am
   Komponenten-Scope gepinnt, unabhängig von Astra-Customizer-
   Slots (Lesson #15/#20). Dark-Variante darunter — muss am
   selben Scope liegen, weil die nähere Token-Definition die
   body-Level-Remaps (dashboard.css) sonst überdecken würde.
   ============================================================ */
.aivonyx-dashboard {
	--ax-white:       #FFFFFF;
	--ax-black:       #1A1A1A;
	--ax-gray-subtle: #F5F5F5;
	--ax-border:      #E5E5E5;
	--ax-gray:        #6B6B6B;
	--ax-deep:        #0A3A52;
	--ax-cyan:        #00D9FF;
}

html.ax-dark .aivonyx-dashboard {
	/* Werte synchron zu html.ax-dark body.ax-dashboard-page in dashboard.css */
	--ax-white:       #121A21;
	--ax-black:       #EDF2F5;
	--ax-gray-subtle: #0C141B;
	--ax-border:      #28343F;
	--ax-gray:        #93A4B0;
	/* v1.22.0: MUSS hier stehen, nicht nur auf body.ax-dashboard-page.
	   Komponenten mit .aivonyx-dashboard rendern auch außerhalb der Bühne
	   (z. B. die öffentliche Changelog-Seite). Ohne diesen Remap stünde dort
	   im Dunkelmodus #00738F auf #121A21 = 2,0:1. */
	--ax-cyan-text:   #4FD4EE;
	/* Fokus-Ring auf dunklem Grund: Marken-Cyan (13,2:1 auf #121A21) */
	--ax-focus-ring:  0 0 0 0.1875rem #00D9FF;
}

/* ============================================================
   ELEMENT-BASIS (global · v1.1.0)
   ------------------------------------------------------------
   Durchgestaltete HTML-Elemente für die gesamte DATA-Instanz.
   Regeln: REM-only · nur Token-Variablen · niedrige Spezifität
   (reine Element-Selektoren), damit gescopte LP- (.fc-page/.vk-page)
   und Plugin-Styles (.aivonyx-dashboard) weiterhin gewinnen.
   Lädt nach Astra → überschreibt Astra-Defaults bei gleicher
   Spezifität durch Quellreihenfolge.
   WICHTIG (v1.1.1): Alle Element-Regeln tragen :not(.aivonyx-dashboard *)
   — der Dashboard-Plugin-Scope ist komplett abgeschirmt, weil dessen
   Komponenten Textfarben auf dunklen Cards per VERERBUNG setzen und
   direkte Element-Regeln Vererbung immer schlagen (Regression v1.1.0:
   dunkle Headings/Links/Summaries auf dunklen Sections).
   ============================================================ */

/* ---------- Grundgerüst & Typografie ---------- */
body {
  font-family: var(--ax-font-sans);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ax-black);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection {
  background: var(--ax-cyan-glow-strong);
  color: var(--ax-black);
}

h1:not(.aivonyx-dashboard *), h2:not(.aivonyx-dashboard *), h3:not(.aivonyx-dashboard *), h4:not(.aivonyx-dashboard *), h5:not(.aivonyx-dashboard *), h6:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-display);
  color: var(--ax-deep);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 0 0 0.75em;
}

h1:not(.aivonyx-dashboard *) { font-size: var(--ax-h1); line-height: 1.12; letter-spacing: -0.02em; }
h2:not(.aivonyx-dashboard *) { font-size: var(--ax-h2); line-height: 1.16; letter-spacing: -0.015em; }
h3:not(.aivonyx-dashboard *) { font-size: var(--ax-h3); }
h4:not(.aivonyx-dashboard *) { font-size: var(--ax-h4); }
h5:not(.aivonyx-dashboard *) { font-size: var(--ax-h5); }
h6:not(.aivonyx-dashboard *) {
  font-size: var(--ax-h6);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ax-gray);
}

p:not(.aivonyx-dashboard *) {
  margin: 0 0 1.25em;
}

a:not(.aivonyx-dashboard *) {
  color: var(--ax-link);
  text-decoration: underline;
  text-decoration-color: var(--ax-cyan);
  text-decoration-thickness: 0.09375rem;
  text-underline-offset: 0.1875rem;
  transition: color var(--ax-dur-base) var(--ax-ease);
}

a:hover:not(.aivonyx-dashboard *) {
  color: var(--ax-link-hover);
  text-decoration-thickness: 0.125rem;
}

a:focus-visible:not(.aivonyx-dashboard *) {
  outline: none;
  border-radius: var(--ax-el-radius-sm);
  box-shadow: var(--ax-focus-ring);
}

strong:not(.aivonyx-dashboard *), b:not(.aivonyx-dashboard *) { font-weight: 700; }
em:not(.aivonyx-dashboard *), i:not(.aivonyx-dashboard *) { font-style: italic; }

small:not(.aivonyx-dashboard *) {
  font-size: 0.875rem;
  color: var(--ax-gray);
}

mark:not(.aivonyx-dashboard *) {
  background: var(--ax-cyan-glow-soft);
  color: var(--ax-black);
  padding: 0.0625rem 0.25rem;
  border-radius: var(--ax-el-radius-sm);
}

abbr[title]:not(.aivonyx-dashboard *) {
  text-decoration: underline dotted;
  text-decoration-color: var(--ax-gray);
  cursor: help;
}

sub:not(.aivonyx-dashboard *), sup:not(.aivonyx-dashboard *) { font-size: 0.75em; }

/* ---------- Listen ---------- */
ul:not(.aivonyx-dashboard *), ol:not(.aivonyx-dashboard *) {
  margin: 0 0 1.25em;
  padding-left: 1.5rem;
}

li:not(.aivonyx-dashboard *) {
  margin-bottom: 0.375em;
}

li:not(.aivonyx-dashboard *)::marker {
  color: var(--ax-cyan-text);
}

ul ul:not(.aivonyx-dashboard *), ul ol:not(.aivonyx-dashboard *), ol ul:not(.aivonyx-dashboard *), ol ol:not(.aivonyx-dashboard *) {
  margin-top: 0.375em;
  margin-bottom: 0;
}

dl:not(.aivonyx-dashboard *) {
  margin: 0 0 1.25em;
}

dt:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ax-deep);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

dd:not(.aivonyx-dashboard *) {
  margin: 0.25em 0 0.875em;
  padding-left: 1rem;
  border-left: var(--ax-el-border) solid var(--ax-border);
}

/* ---------- Zitate & Trenner ---------- */
blockquote:not(.aivonyx-dashboard *) {
  margin: 0 0 1.5em;
  padding: 1rem 1.25rem;
  background: var(--ax-gray-subtle);
  border-left: 0.1875rem solid var(--ax-cyan);
  border-radius: 0 var(--ax-el-radius) var(--ax-el-radius) 0;
  font-family: var(--ax-font-serif);
  font-style: italic;
  color: var(--ax-deep-900);
}

blockquote p:last-child:not(.aivonyx-dashboard *) {
  margin-bottom: 0;
}

blockquote cite:not(.aivonyx-dashboard *) {
  display: block;
  margin-top: 0.75em;
  font-family: var(--ax-font-mono);
  font-style: normal;
  font-size: 0.8125rem;
  color: var(--ax-gray);
}

hr:not(.aivonyx-dashboard *) {
  border: 0;
  border-top: var(--ax-el-border) solid var(--ax-border);
  margin: 2.5rem 0;
}

/* ---------- Code & Tasten ---------- */
code:not(.aivonyx-dashboard *), kbd:not(.aivonyx-dashboard *), samp:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.875em;
}

code:not(.aivonyx-dashboard *) {
  background: var(--ax-gray-subtle);
  color: var(--ax-deep-900);
  padding: 0.125rem 0.375rem;
  border-radius: var(--ax-el-radius-sm);
}

pre:not(.aivonyx-dashboard *) {
  background: var(--ax-deep-900);
  color: var(--ax-on-dark-strong);
  padding: 1.25rem 1.5rem;
  border-radius: var(--ax-el-radius);
  overflow-x: auto;
  margin: 0 0 1.5em;
  line-height: 1.6;
}

pre code:not(.aivonyx-dashboard *) {
  background: none;
  color: inherit;
  padding: 0;
  border-radius: 0;
  font-size: 0.875rem;
}

kbd:not(.aivonyx-dashboard *) {
  background: var(--ax-white);
  border: var(--ax-el-border) solid var(--ax-border);
  border-bottom-width: 0.125rem;
  border-radius: var(--ax-el-radius-sm);
  padding: 0.125rem 0.4375rem;
  color: var(--ax-deep);
}

/* ---------- Tabellen ---------- */
table:not(.aivonyx-dashboard *) {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.5em;
  font-size: 0.9375rem;
}

caption:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.8125rem;
  color: var(--ax-gray);
  text-align: left;
  padding-bottom: 0.5rem;
}

th:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ax-deep);
  text-align: left;
  padding: 0.625rem 0.875rem;
  border-bottom: 0.125rem solid var(--ax-deep);
}

td:not(.aivonyx-dashboard *) {
  padding: 0.625rem 0.875rem;
  border-bottom: var(--ax-el-border) solid var(--ax-border);
  vertical-align: top;
}

tbody tr:nth-child(even):not(.aivonyx-dashboard *) {
  background: var(--ax-surface-50);
}

tfoot td:not(.aivonyx-dashboard *) {
  font-weight: 600;
  border-bottom: 0;
  border-top: 0.125rem solid var(--ax-border);
}

/* ---------- Medien ---------- */
img, svg, video {
  max-width: 100%;
  height: auto;
}

figure:not(.aivonyx-dashboard *) {
  margin: 0 0 1.5em;
}

figure img:not(.aivonyx-dashboard *) {
  border-radius: var(--ax-el-radius);
}

figcaption:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.8125rem;
  color: var(--ax-gray);
  margin-top: 0.5rem;
}

/* ---------- Details / Accordion ---------- */
details:not(.aivonyx-dashboard *) {
  border: var(--ax-el-border) solid var(--ax-border);
  border-radius: var(--ax-el-radius);
  padding: 0.875rem 1.125rem;
  margin: 0 0 1em;
  background: var(--ax-white);
}

details[open]:not(.aivonyx-dashboard *) {
  padding-bottom: 1.125rem;
}

summary:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--ax-deep);
  cursor: pointer;
  list-style-position: inside; /* Pfeil rückt vom Rahmen ab (Standard-Abstand = details-Padding) */
}

summary:not(.aivonyx-dashboard *)::marker {
  color: var(--ax-cyan-text);
}

summary:focus-visible:not(.aivonyx-dashboard *) {
  outline: none;
  border-radius: var(--ax-el-radius-sm);
  box-shadow: var(--ax-focus-ring);
}

details[open] summary:not(.aivonyx-dashboard *) {
  margin-bottom: 0.75em;
}

/* ---------- Formulare: Struktur ---------- */
fieldset:not(.aivonyx-dashboard *) {
  border: var(--ax-el-border) solid var(--ax-border);
  border-radius: var(--ax-el-radius);
  padding: 1.25rem 1.5rem 1.5rem;
  margin: 0 0 1.5em;
}

legend:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ax-deep);
  padding: 0 0.5rem;
}

label:not(.aivonyx-dashboard *) {
  display: inline-block;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ax-black);
  margin-bottom: 0.375rem;
}

/* ---------- Formulare: Eingabefelder ---------- */
input[type="text"]:not(.aivonyx-dashboard *),
input[type="email"]:not(.aivonyx-dashboard *),
input[type="url"]:not(.aivonyx-dashboard *),
input[type="password"]:not(.aivonyx-dashboard *),
input[type="search"]:not(.aivonyx-dashboard *),
input[type="number"]:not(.aivonyx-dashboard *),
input[type="tel"]:not(.aivonyx-dashboard *),
input[type="date"]:not(.aivonyx-dashboard *),
input[type="time"]:not(.aivonyx-dashboard *),
input[type="datetime-local"]:not(.aivonyx-dashboard *),
select:not(.aivonyx-dashboard *),
textarea:not(.aivonyx-dashboard *) {
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--ax-black);
  background: var(--ax-white);
  border: var(--ax-el-border) solid var(--ax-border);
  border-radius: var(--ax-el-radius);
  padding: 0.625rem 0.875rem;
  transition: border-color var(--ax-dur-base) var(--ax-ease):not(.aivonyx-dashboard *),
              box-shadow var(--ax-dur-base) var(--ax-ease);
}

input[type="text"]:hover:not(.aivonyx-dashboard *),
input[type="email"]:hover:not(.aivonyx-dashboard *),
input[type="url"]:hover:not(.aivonyx-dashboard *),
input[type="password"]:hover:not(.aivonyx-dashboard *),
input[type="search"]:hover:not(.aivonyx-dashboard *),
input[type="number"]:hover:not(.aivonyx-dashboard *),
input[type="tel"]:hover:not(.aivonyx-dashboard *),
input[type="date"]:hover:not(.aivonyx-dashboard *),
input[type="time"]:hover:not(.aivonyx-dashboard *),
input[type="datetime-local"]:hover:not(.aivonyx-dashboard *),
select:hover:not(.aivonyx-dashboard *),
textarea:hover:not(.aivonyx-dashboard *) {
  border-color: var(--ax-gray);
}

input[type="text"]:focus:not(.aivonyx-dashboard *),
input[type="email"]:focus:not(.aivonyx-dashboard *),
input[type="url"]:focus:not(.aivonyx-dashboard *),
input[type="password"]:focus:not(.aivonyx-dashboard *),
input[type="search"]:focus:not(.aivonyx-dashboard *),
input[type="number"]:focus:not(.aivonyx-dashboard *),
input[type="tel"]:focus:not(.aivonyx-dashboard *),
input[type="date"]:focus:not(.aivonyx-dashboard *),
input[type="time"]:focus:not(.aivonyx-dashboard *),
input[type="datetime-local"]:focus:not(.aivonyx-dashboard *),
select:focus:not(.aivonyx-dashboard *),
textarea:focus:not(.aivonyx-dashboard *) {
  outline: none;
  border-color: var(--ax-cyan-text);
  box-shadow: var(--ax-focus-ring);
}

:not(.aivonyx-dashboard *)::placeholder {
  color: var(--ax-gray);
  opacity: 1;
}

textarea:not(.aivonyx-dashboard *) {
  min-height: 7.5rem;
  resize: vertical;
}

select:not(.aivonyx-dashboard *) {
  padding-right: 2rem;
}

/* Checkbox / Radio / Range / Progress — native, brand-akzentuiert */
input[type="checkbox"]:not(.aivonyx-dashboard *),
input[type="radio"]:not(.aivonyx-dashboard *) {
  width: 1.125rem;
  height: 1.125rem;
  accent-color: var(--ax-cyan-text);
  cursor: pointer;
}

input[type="checkbox"]:focus-visible:not(.aivonyx-dashboard *),
input[type="radio"]:focus-visible:not(.aivonyx-dashboard *) {
  outline: none;
  box-shadow: var(--ax-focus-ring);
  border-radius: var(--ax-el-radius-sm);
}

input[type="range"]:not(.aivonyx-dashboard *),
progress:not(.aivonyx-dashboard *),
meter:not(.aivonyx-dashboard *) {
  accent-color: var(--ax-cyan-text);
}

/* ---------- Formulare: Zustände ---------- */
input:disabled:not(.aivonyx-dashboard *),
select:disabled:not(.aivonyx-dashboard *),
textarea:disabled:not(.aivonyx-dashboard *) {
  background: var(--ax-gray-subtle);
  color: var(--ax-gray);
  border-color: var(--ax-border);
  cursor: not-allowed;
}

input[readonly]:not(.aivonyx-dashboard *),
textarea[readonly]:not(.aivonyx-dashboard *) {
  background: var(--ax-surface-50);
}

input[aria-invalid="true"]:not(.aivonyx-dashboard *),
select[aria-invalid="true"]:not(.aivonyx-dashboard *),
textarea[aria-invalid="true"]:not(.aivonyx-dashboard *),
input:user-invalid:not(.aivonyx-dashboard *),
select:user-invalid:not(.aivonyx-dashboard *),
textarea:user-invalid:not(.aivonyx-dashboard *) {
  border-color: var(--ax-state-error);
}

input[aria-invalid="true"]:focus:not(.aivonyx-dashboard *),
select[aria-invalid="true"]:focus:not(.aivonyx-dashboard *),
textarea[aria-invalid="true"]:focus:not(.aivonyx-dashboard *),
input:user-invalid:focus:not(.aivonyx-dashboard *),
select:user-invalid:focus:not(.aivonyx-dashboard *),
textarea:user-invalid:focus:not(.aivonyx-dashboard *) {
  box-shadow: var(--ax-focus-ring-error);
}

/* Hilfs-/Fehlertexte (Klassen-Hooks für ACF/Gutenberg-Forms) */
.ax-form-hint {
  display: block;
  font-size: 0.8125rem;
  color: var(--ax-gray);
  margin-top: 0.25rem;
}

.ax-form-error {
  display: block;
  font-size: 0.8125rem;
  color: var(--ax-state-error-fg);
  margin-top: 0.25rem;
}

.ax-form-success {
  display: block;
  font-size: 0.8125rem;
  color: var(--ax-state-success-fg);
  margin-top: 0.25rem;
}

/* Status-Hinweisflächen */
.ax-notice {
  padding: 0.875rem 1.125rem;
  border-radius: var(--ax-el-radius);
  border: var(--ax-el-border) solid var(--ax-border);
  background: var(--ax-gray-subtle);
  margin: 0 0 1.25em;
  font-size: 0.9375rem;
}

.ax-notice--success {
  background: var(--ax-state-success-tint);
  border-color: var(--ax-state-success);
  color: var(--ax-state-success-fg);
}

.ax-notice--warning {
  background: var(--ax-state-warning-tint);
  border-color: var(--ax-state-warning);
  color: var(--ax-state-warning-fg);
}

.ax-notice--error {
  background: var(--ax-state-error-tint);
  border-color: var(--ax-state-error);
  color: var(--ax-state-error-fg);
}

/* ---------- Buttons ---------- */
button:not(.aivonyx-dashboard *),
input[type="submit"]:not(.aivonyx-dashboard *),
input[type="button"]:not(.aivonyx-dashboard *),
input[type="reset"]:not(.aivonyx-dashboard *) {
  font-family: var(--ax-font-mono);
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ax-white);
  background: var(--ax-deep);
  border: var(--ax-el-border) solid var(--ax-deep);
  border-radius: var(--ax-el-radius);
  padding: 0.6875rem 1.5rem;
  cursor: pointer;
  /* v1.2.7: Shield-Regex hatte :not(...) in den transition-WERT injiziert
     — ungültiges CSS, Deklaration wurde komplett verworfen (Buttons ohne
     Transition). :not() gehört nur in Selektoren, nie in Werte. */
  transition: background var(--ax-dur-base) var(--ax-ease),
              border-color var(--ax-dur-base) var(--ax-ease),
              color var(--ax-dur-base) var(--ax-ease);
}

button:hover:not(.aivonyx-dashboard *),
input[type="submit"]:hover:not(.aivonyx-dashboard *),
input[type="button"]:hover:not(.aivonyx-dashboard *),
input[type="reset"]:hover:not(.aivonyx-dashboard *) {
  background: var(--ax-deep-700);
  border-color: var(--ax-deep-700);
}

button:focus-visible:not(.aivonyx-dashboard *),
input[type="submit"]:focus-visible:not(.aivonyx-dashboard *),
input[type="button"]:focus-visible:not(.aivonyx-dashboard *),
input[type="reset"]:focus-visible:not(.aivonyx-dashboard *) {
  outline: none;
  box-shadow: var(--ax-focus-ring);
}

button:disabled:not(.aivonyx-dashboard *),
input[type="submit"]:disabled:not(.aivonyx-dashboard *),
input[type="button"]:disabled:not(.aivonyx-dashboard *),
input[type="reset"]:disabled:not(.aivonyx-dashboard *) {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Button-Varianten (Klassen-Hooks) */
.ax-btn--accent {
  background: var(--ax-cyan);
  border-color: var(--ax-cyan);
  color: var(--ax-deep-900);
}

.ax-btn--accent:hover {
  background: var(--ax-cyan-hover);
  border-color: var(--ax-cyan-hover);
  color: var(--ax-deep-900);
}

.ax-btn--ghost {
  background: transparent;
  border-color: var(--ax-deep);
  color: var(--ax-deep);
}

.ax-btn--ghost:hover {
  background: var(--ax-deep);
  color: var(--ax-white);
}

.ax-btn--danger {
  background: var(--ax-state-error);
  border-color: var(--ax-state-error);
}

.ax-btn--danger:hover {
  background: var(--ax-state-error-fg);
  border-color: var(--ax-state-error-fg);
}

/* ---------- Charts (Charts.css · chartscss.org) ----------
   Brand-Skin für die Charts.css-Library. Die Library selbst wird
   vom Plugin geladen (assets/charts.min.css, Dashboard-Seiten)
   bzw. direkt im Styleguide. Hier nur Farb-/Achsen-Theming via
   Tokens — das Library-Layout bleibt unangetastet.
   Achtung (HANDOFF Lesson #14): Astra-Resets können Charts.css-
   Table-Display auf Live-Seiten stören — auf der Dashboard-Seite
   rendert der Header-Sparkline daher weiter über .ax-spark. */
.charts-css {
  --color-1:  var(--ax-cyan);
  --color-2:  var(--ax-deep);
  --color-3:  var(--ax-deep-700);
  --color-4:  var(--ax-state-success);
  --color-5:  var(--ax-state-warning);
  --color-6:  var(--ax-state-error);
  --color-7:  var(--ax-gray);
  --color-8:  var(--ax-cyan-text);
  --color-9:  var(--ax-deep-900);
  --color-10: var(--ax-border);
  --chart-bg-color:       transparent;
  --primary-axis-color:   var(--ax-deep);
  --secondary-axes-color: var(--ax-border);
  --data-axes-color:      var(--ax-border);
  --legend-border-color:  var(--ax-border);
  font-family: var(--ax-font-mono);
  font-size: 0.75rem;
  color: var(--ax-gray);
}

/* Element-Basis-Tabellen-Styles innerhalb von Charts neutralisieren */
.charts-css th,
.charts-css td {
  padding: 0;
}

.charts-css .data {
  font-size: 0.6875rem;
  color: var(--ax-deep);
}

.charts-css.legend {
  font-family: var(--ax-font-mono);
  font-size: 0.75rem;
  color: var(--ax-black);
}

/* ============================================================
   PAGE SCOPE — BASE (shared)
   ============================================================ */
.fc-page,
.vk-page {
  font-family: var(--ax-font-sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ax-web-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
:is(.fc-page, .vk-page) ::selection {
  background: var(--ax-accent);
  color: var(--ax-web-heading);
}
:is(.fc-page, .vk-page) img { max-width: 100%; display: block; }
:is(.fc-page, .vk-page) a { color: inherit; text-decoration: none; }

/* Reset WP block default spacing */
.fc-page .wp-block-group,
:is(.fc-page, .vk-page) .wp-block-columns,
.vk-page .wp-block-group {
  margin-top: 0;
  margin-bottom: 0;
}
:is(.fc-page, .vk-page) p,
:is(.fc-page, .vk-page) h1,
:is(.fc-page, .vk-page) h2,
:is(.fc-page, .vk-page) h3 {
  margin-top: 0;
  margin-bottom: 0;
}

/* ============================================================
   REUSABLE COMPONENTS (shared)
   ============================================================ */

/* Eyebrow label */
.fc-page .eyebrow,
.vk-page .eyebrow {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-accent);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
}
:is(.fc-page, .vk-page) .eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--ax-accent);
  display: inline-block;
  flex-shrink: 0;
}

/* Display headings (mono,
tight tracking) */
.fc-page .display,
.vk-page .display {
  font-family: var(--ax-font-display);
  font-weight: 600;
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--ax-web-heading);
  text-wrap: balance;
}
:is(.fc-page, .vk-page) .display--sm { font-size: clamp(32px, 4.2vw, 52px); }
:is(.fc-page, .vk-page) .display--xs {
  font-family: var(--ax-font-display);
  font-weight: 600;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--ax-web-heading);
}

/* Lead / Subheading */
.fc-page .lead,
.vk-page .lead {
  font-size: 20px;
  line-height: 1.55;
  color: var(--ax-web-muted);
  max-width: 56ch;
  text-wrap: pretty;
}
@media (max-width: 768px) {
  :is(.fc-page, .vk-page) .lead { font-size: 17px; }
}

/* ============================================================
   BUTTONS (shared)
   Override WP button defaults — both pages reuse fc-btn class names
   ============================================================ */
.fc-page .wp-block-button__link,
.vk-page .wp-block-button__link {
  font-family: var(--ax-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 18px 28px;
  transition: background var(--ax-dur-base) var(--ax-ease),
              color var(--ax-dur-base) var(--ax-ease),
              border-color var(--ax-dur-base) var(--ax-ease);
}

/* Primary button */
.fc-page .fc-btn--primary .wp-block-button__link,
.vk-page .fc-btn--primary .wp-block-button__link {
  background: var(--ax-accent) !important;
  color: var(--ax-web-heading) !important;
}
:is(.fc-page, .vk-page) .fc-btn--primary .wp-block-button__link:hover {
  background: var(--ax-accent-hover) !important;
}

/* Ghost button (dark text) */
.fc-page .fc-btn--ghost .wp-block-button__link,
.vk-page .fc-btn--ghost .wp-block-button__link {
  background: transparent !important;
  color: var(--ax-web-heading) !important;
  border-color: var(--ax-web-heading);
}
:is(.fc-page, .vk-page) .fc-btn--ghost .wp-block-button__link:hover {
  background: var(--ax-web-heading) !important;
  color: var(--ax-white) !important;
}

/* Ghost-light button (white text,
for dark sections) */
.fc-page .fc-btn--ghost-light .wp-block-button__link,
.vk-page .fc-btn--ghost-light .wp-block-button__link {
  background: transparent !important;
  color: var(--ax-white) !important;
  border-color: rgba(255,255,255,0.4);
}
:is(.fc-page, .vk-page) .fc-btn--ghost-light .wp-block-button__link:hover {
  background: var(--ax-white) !important;
  color: var(--ax-web-heading) !important;
  border-color: var(--ax-white);
}

/* ============================================================
   SCROLL REVEAL (shared)
   ============================================================ */
.fc-page .animate-on-scroll,
.vk-page .animate-on-scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms var(--ax-ease), transform 700ms var(--ax-ease);
}
:is(.fc-page, .vk-page) .animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Delay classes */
.fc-page .fc-delay-1,
.vk-page .vk-delay-1 { transition-delay: 80ms; }
.fc-page .fc-delay-2,
.vk-page .vk-delay-2 { transition-delay: 160ms; }
.fc-page .fc-delay-3,
.vk-page .vk-delay-3 { transition-delay: 240ms; }
.fc-page .fc-delay-4,
.vk-page .vk-delay-4 { transition-delay: 320ms; }


/* ============================================================
   HERO (shared) — .fc-hero + .vk-hero
   Identical: bg,
grid pattern,
glow,
columns,
type,
terminal
   ============================================================ */
.fc-page .fc-hero,
.vk-page .vk-hero {
  position: relative;
  background: var(--ax-deep) !important;
  color: var(--ax-white);
  overflow: hidden;
  isolation: isolate;
  padding-top: 140px !important;
  padding-bottom: 120px !important;
}
.fc-page .fc-hero::before,
.vk-page .vk-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,217,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,217,255,0.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 60% 40%, black 20%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 60% 40%, black 20%, transparent 75%);
  z-index: 0;
  pointer-events: none;
}
.fc-page .fc-hero::after,
.vk-page .vk-hero::after {
  content: "";
  position: absolute;
  top: -200px;
  right: -200px;
  width: 700px;
  height: 700px;
  background: radial-gradient(circle, rgba(0,217,255,0.22) 0%, transparent 60%);
  z-index: 0;
  pointer-events: none;
}
.fc-page .fc-hero .wp-block-columns,
.vk-page .vk-hero .wp-block-columns {
  position: relative;
  z-index: 1;
  gap: 80px;
  align-items: center;
}
@media (max-width: 1000px) {
  .fc-page .fc-hero .wp-block-columns,
.vk-page .vk-hero .wp-block-columns { flex-direction: column !important; gap: 48px; }
}
.fc-page .fc-hero .display,
.fc-page .fc-hero h1,
.vk-page .vk-hero .display,
.vk-page .vk-hero h1 {
  font-family: var(--ax-font-display);
  font-weight: 600;
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--ax-white) !important;
  text-wrap: balance;
}
.fc-page .fc-terminal,
.vk-page .vk-terminal {
  font-family: var(--ax-font-mono);
  font-size: 14px;
  color: var(--ax-accent);
  margin-bottom: 28px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.fc-page .fc-terminal .cursor,
.vk-page .vk-terminal .cursor {
  display: inline-block;
  width: 10px;
  height: 14px;
  background: var(--ax-accent);
  margin-left: 4px;
  vertical-align: -1px;
  animation: lp-blink 1.1s steps(2, start) infinite;
}
.fc-page .fc-hero__sub,
.vk-page .vk-hero__sub {
  margin-top: 32px;
  font-size: 20px;
  line-height: 1.55;
  color: rgba(255,255,255,0.72);
  max-width: 52ch;
}
.fc-page .fc-hero__ctas,
.vk-page .vk-hero__ctas {
  margin-top: 48px !important;
  gap: 16px;
}

/* ============================================================
   COUNTER CARD (shared base) — .counter-card
   Differences: padding (32px FC,
40px VK),
VK-only huge/num/of/caption
   ============================================================ */
.fc-page .counter-card,
.vk-page .counter-card {
  position: relative;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.12);
}
.fc-page .counter-card { padding: 32px !important; }
.vk-page .counter-card { padding: 40px !important; }

:is(.fc-page, .vk-page) .counter-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 40px;
  background: var(--ax-accent);
}

:is(.fc-page, .vk-page) .counter-card__label {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  display: flex;
  align-items: center;
  gap: 8px;
}
/* VK adds bottom margin under the label (LP2 large-number layout) */
.vk-page .counter-card__label { margin-bottom: 32px; }

:is(.fc-page, .vk-page) .counter-card__label .dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--ax-accent);
  box-shadow: 0 0 0 0 rgba(0,217,255,0.6);
  animation: lp-pulse 2.2s var(--ax-ease) infinite;
}

/* FC: rows + per-item progress bars */
.fc-page .counter-card__rows {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.fc-page .counter-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fc-page .counter-row__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.fc-page .counter-row__title {
  font-family: var(--ax-font-sans);
  font-size: 14px;
  color: rgba(255,255,255,0.8);
}
.fc-page .counter-row__nums {
  font-family: var(--ax-font-mono);
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.fc-page .counter-row__nums .taken {
  color: var(--ax-white);
  font-weight: 600;
}
.fc-page .counter-row__nums .slash {
  color: rgba(255,255,255,0.3);
  margin: 0 4px;
}
.fc-page .counter-row__nums .total {
  color: rgba(255,255,255,0.55);
}

/* VK-only large "8/25" display */
.vk-page .counter-card__huge {
  display: flex;
  align-items: baseline;
  gap: 0;
  line-height: 1;
  margin-bottom: 16px;
}
.vk-page .counter-card__num {
  font-family: var(--ax-font-display);
  font-size: clamp(80px, 12vw, 120px);
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--ax-white);
  line-height: 1;
}
.vk-page .counter-card__of {
  font-family: var(--ax-font-display);
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 400;
  color: rgba(255,255,255,0.35);
  margin-left: 8px;
  align-self: flex-end;
  padding-bottom: 8px;
}
.vk-page .counter-card__caption {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-top: 8px;
}

/* Progress bar (shared base) */
.fc-page .counter-bar,
.vk-page .counter-bar {
  height: 6px;
  background: rgba(255,255,255,0.08);
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  min-height: 0 !important;
}
.vk-page .counter-bar { margin-top: 24px; }
:is(.fc-page, .vk-page) .counter-bar::after {
  content: "";
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 0;
  background: var(--ax-accent);
  transition: width 1600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.fc-page .counter-bar.is-animated.fc-bar-30::after { width: 30%; }
.fc-page .counter-bar.is-animated.fc-bar-35::after { width: 35%; }
.vk-page .counter-bar.is-animated.vk-bar-32::after { width: 32%; }

/* Counter-card footer (shared) */
.fc-page .counter-card__footer,
.vk-page .counter-card__footer {
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
}
.fc-page .counter-card__footer { margin-top: 32px; }
.vk-page .counter-card__footer { margin-top: 28px; }


/* ============================================================
   PROBLEM SECTIONS (shared) — .fc-problem + .vk-problem
   ============================================================ */
.fc-page .fc-problem,
.vk-page .vk-problem {
  background: var(--ax-white) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.fc-page .fc-problem .display,
.vk-page .vk-problem .display { color: var(--ax-web-heading); }

:is(.fc-page, .vk-page) .problem__list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--ax-border);
}
@media (max-width: 900px) {
  :is(.fc-page, .vk-page) .problem__list { grid-template-columns: 1fr; }
}
:is(.fc-page, .vk-page) .problem__item {
  padding: 40px 32px 40px 0;
  border-bottom: 1px solid var(--ax-border);
  border-right: 1px solid var(--ax-border);
  display: flex;
  flex-direction: column;
  gap: 20px;
}
:is(.fc-page, .vk-page) .problem__item:last-child { border-right: 0; }
@media (max-width: 900px) {
  :is(.fc-page, .vk-page) .problem__item { border-right: 0; padding-right: 0; }
}
:is(.fc-page, .vk-page) .problem__num {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--ax-web-muted);
}
:is(.fc-page, .vk-page) .problem__text {
  font-size: 19px;
  line-height: 1.5;
  color: var(--ax-web-heading);
  font-weight: 500;
  text-wrap: pretty;
}


/* ============================================================
   SOLUTION WRAPPERS (shared) — .fc-solution + .vk-solution
   Card-style differences (.sol-card vs .feature) kept page-specific.
   ============================================================ */
.fc-page .fc-solution,
.vk-page .vk-solution {
  background: var(--ax-gray-subtle) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.fc-page .fc-solution .display,
.vk-page .vk-solution .display { color: var(--ax-web-heading); }

/* FC solution cards (.sol-card) */
.fc-page .sol-card {
  background: var(--ax-white);
  padding: 40px 32px;
  border: 1px solid var(--ax-border);
  transition: border-color var(--ax-dur-base) var(--ax-ease),
              transform var(--ax-dur-base) var(--ax-ease);
  height: 100%;
}
.fc-page .sol-card:hover {
  border-color: var(--ax-accent);
  transform: translateY(-4px);
}
.fc-page .sol-card__icon {
  width: 40px;
  height: 40px;
  margin-bottom: 24px;
  color: var(--ax-accent);
}
.fc-page .sol-card__icon svg { width: 100%; height: 100%; }
.fc-page .sol-card__title {
  font-family: var(--ax-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ax-web-heading);
  margin: 0 0 16px;
}
.fc-page .sol-card__body {
  font-size: 16px;
  line-height: 1.55;
  color: var(--ax-web-body);
  margin: 0;
}

/* VK 2x2 features grid (.feature) */
.vk-page .features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--ax-border);
  border-left: 1px solid var(--ax-border);
  margin-top: 56px;
}
@media (max-width: 768px) {
  .vk-page .features { grid-template-columns: 1fr; }
}
.vk-page .feature {
  background: var(--ax-white);
  padding: 40px 36px;
  border-right: 1px solid var(--ax-border);
  border-bottom: 1px solid var(--ax-border);
  transition: border-color var(--ax-dur-base) var(--ax-ease),
              transform var(--ax-dur-base) var(--ax-ease);
}
.vk-page .feature:hover {
  border-color: var(--ax-accent);
  transform: translateY(-4px);
  z-index: 1;
  position: relative;
}
.vk-page .feature__key {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ax-accent);
  margin-bottom: 16px;
}
.vk-page .feature__title {
  font-family: var(--ax-font-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ax-web-heading);
  margin-bottom: 14px;
}
.vk-page .feature__body {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ax-web-body);
}


/* ============================================================
   FC SECTION 4 — TIERS  (LP1-only)
   ============================================================ */
.fc-page .fc-tiers {
  background: var(--ax-white) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.fc-page .fc-tiers .display { color: var(--ax-web-heading); }

.fc-page .tier {
  border: 1px solid var(--ax-border);
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  background: var(--ax-white);
  position: relative;
  transition: border-color var(--ax-dur-base) var(--ax-ease);
  height: 100%;
}
.fc-page .tier:hover { border-color: var(--ax-web-heading); }

/* Featured tier (Strategic Member) */
.fc-page .tier--featured {
  background: var(--ax-web-heading);
  color: var(--ax-white);
  border-color: var(--ax-web-heading);
}
.fc-page .tier--featured:hover { border-color: var(--ax-accent); }
.fc-page .tier--featured h3,
.fc-page .tier--featured .tier__sub,
.fc-page .tier--featured .tier__li,
.fc-page .tier--featured .tier__investment-num { color: var(--ax-white); }
.fc-page .tier--featured .tier__meta { color: rgba(255,255,255,0.55); }
.fc-page .tier--featured .tier__li::before { color: var(--ax-accent); }
.fc-page .tier--featured .tier__divider { background: rgba(255,255,255,0.15); }

.fc-page .tier__badge {
  position: absolute;
  top: 32px; right: 32px;
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-accent);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.fc-page .tier__badge::before {
  content: "";
  width: 6px; height: 6px;
  background: var(--ax-accent);
}
.fc-page .tier__meta {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
}
.fc-page .tier h3 {
  font-family: var(--ax-font-display);
  font-weight: 600;
  font-size: 36px;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--ax-web-heading);
  margin-top: 16px;
}
.fc-page .tier__sub {
  font-size: 17px;
  color: var(--ax-web-body);
  margin-top: 8px;
}
.fc-page .tier__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.fc-page .tier__li {
  position: relative;
  padding-left: 28px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ax-web-body);
}
.fc-page .tier__li::before {
  content: "\2192";
  position: absolute;
  left: 0;
  font-family: var(--ax-font-mono);
  color: var(--ax-accent);
  font-weight: 600;
}
.fc-page .tier__divider {
  height: 1px;
  background: var(--ax-border);
}
.fc-page .tier__investment-label {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
}
.fc-page .tier--featured .tier__investment-label { color: rgba(255,255,255,0.55); }
.fc-page .tier__investment-num {
  font-family: var(--ax-font-display);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ax-web-heading);
}
.fc-page .tier__rev-share {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  color: var(--ax-web-muted);
  letter-spacing: 0.04em;
  margin-top: 8px;
}
.fc-page .tier--featured .tier__rev-share { color: rgba(255,255,255,0.55); }
.fc-page .tier__limit {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 16px;
  background: rgba(0,217,255,0.14);
  color: var(--ax-accent);
  border-left: 2px solid var(--ax-accent);
}


/* ============================================================
   COMPARISON TABLES (shared) — .matrix__table + .compare__table
   Structurally identical. Differences: badge text + extra
   right-border on VK featured column.
   ============================================================ */
.fc-page .fc-matrix,
.vk-page .vk-compare {
  background: var(--ax-gray-subtle) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.fc-page .fc-matrix .display,
.vk-page .vk-compare .display { color: var(--ax-web-heading); }

.fc-page .matrix__table,
.vk-page .compare__table {
  width: 100%;
  border-collapse: collapse;
  background: var(--ax-white);
  border: 1px solid var(--ax-border);
}
.fc-page .matrix__table th,
.fc-page .matrix__table td,
.vk-page .compare__table th,
.vk-page .compare__table td {
  padding: 22px 28px;
  text-align: left;
  font-size: 15px;
  vertical-align: middle;
  border-bottom: 1px solid var(--ax-border);
}
.fc-page .matrix__table tr:last-child td,
.vk-page .compare__table tr:last-child td { border-bottom: 0; }
.fc-page .matrix__table thead th,
.vk-page .compare__table thead th {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
  background: transparent;
  padding-top: 28px;
  padding-bottom: 28px;
}

/* Featured column header — shared */
.fc-page .matrix__table thead th.col-featured,
.vk-page .compare__table thead th.col-featured {
  color: var(--ax-web-heading);
  background: rgba(0,217,255,0.06);
  border-left: 2px solid var(--ax-accent);
  position: relative;
}
/* VK adds right border to featured column */
.vk-page .compare__table thead th.col-featured { border-right: 2px solid var(--ax-accent); }

/* Page-specific badge text */
.fc-page .matrix__table thead th.col-featured::after,
.vk-page .compare__table thead th.col-featured::after {
  position: absolute;
  top: 8px; right: 16px;
  font-family: var(--ax-font-mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  color: var(--ax-accent);
  font-weight: 600;
}
.fc-page .matrix__table thead th.col-featured::after { content: "FOUNDER CIRCLE"; }
.vk-page .compare__table thead th.col-featured::after { content: "SWEET SPOT"; }

/* Featured column body cells */
.fc-page .matrix__table td.col-featured,
.vk-page .compare__table td.col-featured {
  background: rgba(0,217,255,0.04);
  border-left: 2px solid var(--ax-accent);
  font-weight: 500;
  color: var(--ax-web-heading);
}
.vk-page .compare__table td.col-featured { border-right: 2px solid var(--ax-accent); }

.fc-page .matrix__table td.dim,
.vk-page .compare__table td.dim {
  font-family: var(--ax-font-mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--ax-web-heading);
}
.fc-page .matrix__table .dash,
.vk-page .compare__table .dash {
  color: var(--ax-web-muted);
  opacity: 0.5;
}
.fc-page .matrix__table .check,
.vk-page .compare__table .check {
  color: var(--ax-accent);
  font-weight: 600;
}

/* Mobile: horizontal scroll, keep table layout */
@media (max-width: 800px) {
  .fc-page .matrix__table,
.vk-page .compare__table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  .fc-page .matrix__table table,
.vk-page .compare__table table,
.fc-page table.matrix__table,
.vk-page table.compare__table {
    min-width: 36rem;
    width: 36rem;
    table-layout: auto;
  }
  .fc-page .matrix__table th,
.fc-page .matrix__table td,
.vk-page .compare__table th,
.vk-page .compare__table td {
    padding: 1rem;
    font-size: 1rem;
    white-space: nowrap;
  }
  .fc-page .matrix__table td.dim,
.vk-page .compare__table td.dim {
    white-space: normal;
  }
}


/* ============================================================
   DARK GRID SECTIONS (shared) — .fc-why-now + .vk-contrast
   Identical dark bg + grid pattern + z-index reset.
   ============================================================ */
.fc-page .fc-why-now,
.vk-page .vk-contrast {
  background: var(--ax-web-heading) !important;
  color: var(--ax-white);
  position: relative;
  overflow: hidden;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.fc-page .fc-why-now::before,
.vk-page .vk-contrast::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,217,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,217,255,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, transparent, black 30%, black 70%, transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 30%, black 70%, transparent);
  pointer-events: none;
}
.fc-page .fc-why-now > *,
.vk-page .vk-contrast > * { position: relative; z-index: 1; }
.fc-page .fc-why-now .display,
.fc-page .fc-why-now h2,
.vk-page .vk-contrast .display,
.vk-page .vk-contrast h2 { color: var(--ax-white) !important; }

/* FC why-now grid (LP1-only) */
.fc-page .why-now__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  margin-top: 72px;
}
@media (max-width: 900px) {
  .fc-page .why-now__grid { grid-template-columns: 1fr; }
}
.fc-page .why-now__item {
  padding: 48px 32px 48px 0;
  border-right: 1px solid rgba(255,255,255,0.1);
}
.fc-page .why-now__item:last-child { border-right: 0; padding-right: 0; }
.fc-page .why-now__item:not(:first-child) { padding-left: 32px; }
@media (max-width: 900px) {
  .fc-page .why-now__item {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    padding: 32px 0 !important;
  }
  .fc-page .why-now__item:last-child { border-bottom: 0; }
}
.fc-page .why-now__num {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--ax-accent);
  margin-bottom: 20px;
}
.fc-page .why-now__title {
  font-family: var(--ax-font-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ax-white);
  margin-bottom: 16px;
}
.fc-page .why-now__body {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,0.72);
}
.fc-page .why-now__close {
  margin-top: 80px;
  font-family: var(--ax-font-display);
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ax-white);
  max-width: 720px;
}
.fc-page .why-now__close .accent { color: var(--ax-accent); }

/* VK contrast inner (LP2-only) */
.vk-page .contrast__inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.vk-page .contrast__body {
  font-size: 19px;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  margin-top: 32px;
  text-wrap: pretty;
}
.vk-page .contrast__body strong {
  color: var(--ax-white);
  font-weight: 600;
}
.vk-page .contrast__ctas {
  margin-top: 48px !important;
  gap: 16px;
  justify-content: center;
}


/* ============================================================
   FC SECTION 7 — WHO  (LP1-only)
   ============================================================ */
.fc-page .fc-who {
  background: var(--ax-white) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.fc-page .fc-who .display { color: var(--ax-web-heading); }

.fc-page .who__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--ax-border);
  border-left: 1px solid var(--ax-border);
}
@media (max-width: 700px) {
  .fc-page .who__grid { grid-template-columns: 1fr; }
}
.fc-page .who__item {
  padding: 40px;
  border-right: 1px solid var(--ax-border);
  border-bottom: 1px solid var(--ax-border);
  transition: background var(--ax-dur-base) var(--ax-ease);
}
.fc-page .who__item:hover { background: var(--ax-gray-subtle); }
.fc-page .who__item-num {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--ax-accent);
  margin-bottom: 20px;
}
.fc-page .who__item-title {
  font-family: var(--ax-font-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ax-web-heading);
  margin-bottom: 12px;
}
.fc-page .who__item-body {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ax-web-body);
}


/* ============================================================
   FINAL CTA (shared) — .fc-final-cta + .vk-final-cta
   Identical bg,
radial glow,
z-index,
heading override,
body.
   ============================================================ */
.fc-page .fc-final-cta,
.vk-page .vk-final-cta {
  background: var(--ax-black) !important;
  color: var(--ax-white);
  position: relative;
  overflow: hidden;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
  text-align: center;
}
.fc-page .fc-final-cta::before,
.vk-page .vk-final-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(0,217,255,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.fc-page .fc-final-cta > *,
.vk-page .vk-final-cta > * { position: relative; z-index: 1; }
.fc-page .fc-final-cta .display,
.fc-page .fc-final-cta h2,
.vk-page .vk-final-cta .display,
.vk-page .vk-final-cta h2 { color: var(--ax-white) !important; }

.fc-page .fc-final-cta__body,
.vk-page .final-cta__body {
  margin: 32px auto 0;
  max-width: 620px;
  font-size: 19px;
  line-height: 1.55;
  color: rgba(255,255,255,0.72);
}
.fc-page .fc-final-cta__ctas,
.vk-page .final-cta__ctas {
  margin-top: 48px !important;
  gap: 16px;
}

/* FC-specific note */
.fc-page .fc-final-cta__note {
  margin-top: 40px;
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
}

/* VK-specific secondary line with link */
.vk-page .final-cta__secondary {
  margin-top: 28px;
  font-family: var(--ax-font-mono);
  font-size: 13px;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.45);
}
.vk-page .final-cta__secondary a {
  color: var(--ax-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--ax-dur-base) var(--ax-ease);
}
.vk-page .final-cta__secondary a:hover { color: var(--ax-accent-hover); }


/* ============================================================
   VK SECTION 4 — CREDENTIALS  (LP2-only)
   ============================================================ */
.vk-page .vk-cred {
  background: var(--ax-white) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.vk-page .vk-cred .display { color: var(--ax-web-heading); }

.vk-page .cred__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--ax-border);
  margin-top: 56px;
}
@media (max-width: 768px) {
  .vk-page .cred__grid { grid-template-columns: 1fr; }
}
.vk-page .cred__item {
  padding: 40px 32px 40px 0;
  border-bottom: 1px solid var(--ax-border);
  border-right: 1px solid var(--ax-border);
}
.vk-page .cred__item:last-child { border-right: 0; }
@media (max-width: 768px) {
  .vk-page .cred__item { border-right: 0; padding-right: 0; }
}
.vk-page .cred__title {
  font-family: var(--ax-font-display);
  font-size: clamp(36px, 5vw, 52px);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ax-web-heading);
  line-height: 1;
  margin-bottom: 12px;
}
.vk-page .cred__title .accent { color: var(--ax-accent); }
.vk-page .cred__body {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ax-web-body);
}


/* ============================================================
   VK SECTION 5 — STATUS  (LP2-only)
   ============================================================ */
.vk-page .vk-status {
  background: var(--ax-gray-subtle) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.vk-page .vk-status .display { color: var(--ax-web-heading); }

.vk-page .status__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 56px;
}
@media (max-width: 768px) {
  .vk-page .status__grid { grid-template-columns: 1fr; }
}
.vk-page .status__item {
  background: var(--ax-white);
  border: 1px solid var(--ax-border);
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: border-color var(--ax-dur-base) var(--ax-ease);
}
.vk-page .status__item:hover { border-color: var(--ax-web-heading); }
.vk-page .status__num {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ax-accent);
}
.vk-page .status__title {
  font-family: var(--ax-font-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ax-web-heading);
}
.vk-page .status__body {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ax-web-body);
}


/* ============================================================
   VK SECTION 6 — PACKAGES  (LP2-only)
   ============================================================ */
.vk-page .vk-packages {
  background: var(--ax-white) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.vk-page .vk-packages .display { color: var(--ax-web-heading); }

.vk-page .packages__grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr 1fr;
  gap: 24px;
  margin-top: 64px;
  align-items: start;
}
@media (max-width: 1000px) {
  .vk-page .packages__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1rem;
  }
}

.vk-page .pkg {
  border: 1px solid var(--ax-border);
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  background: var(--ax-white);
  position: relative;
  transition: border-color var(--ax-dur-base) var(--ax-ease);
}
@media (max-width: 1000px) {
  .vk-page .pkg { padding: 1rem; gap: 1rem; }
  .vk-page .pkg__badge { left: 1rem; }
}
.vk-page .pkg:hover { border-color: var(--ax-web-heading); }

.vk-page .pkg--featured {
  background: var(--ax-web-heading);
  color: var(--ax-white);
  border-color: var(--ax-web-heading);
  transform: translateY(-12px);
  box-shadow: 0 32px 64px rgba(0,0,0,0.25);
}
.vk-page .pkg--featured:hover { border-color: var(--ax-accent); }
@media (max-width: 1000px) {
  .vk-page .pkg--featured { transform: none; }
}

.vk-page .pkg__badge {
  position: absolute;
  top: -12px; left: 36px;
  padding: 6px 14px;
  background: var(--ax-accent);
  color: var(--ax-web-heading);
  font-family: var(--ax-font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.vk-page .pkg__tag {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
}
.vk-page .pkg--featured .pkg__tag { color: rgba(255,255,255,0.55); }

.vk-page .pkg__name {
  font-family: var(--ax-font-display);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.15;
  color: var(--ax-web-heading);
  margin-top: 8px;
}
.vk-page .pkg--featured .pkg__name { color: var(--ax-white); }

.vk-page .pkg__price {
  font-family: var(--ax-font-display);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ax-web-heading);
  line-height: 1;
}
.vk-page .pkg--featured .pkg__price { color: var(--ax-white); }
.vk-page .pkg__price-label {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
  margin-top: 6px;
}
.vk-page .pkg--featured .pkg__price-label { color: rgba(255,255,255,0.5); }

.vk-page .pkg__subtitle {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ax-web-body);
}
.vk-page .pkg--featured .pkg__subtitle { color: rgba(255,255,255,0.72); }

.vk-page .pkg__features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.vk-page .pkg__feature {
  position: relative;
  padding-left: 24px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ax-web-body);
}
.vk-page .pkg__feature::before {
  content: "\2192";
  position: absolute;
  left: 0;
  font-family: var(--ax-font-mono);
  color: var(--ax-accent);
  font-weight: 600;
}
.vk-page .pkg--featured .pkg__feature { color: rgba(255,255,255,0.85); }
.vk-page .pkg--featured .pkg__feature::before { color: var(--ax-accent); }

.vk-page .pkg__feature--plus {
  padding-left: 0;
  font-family: var(--ax-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-accent);
  margin-top: 4px;
  margin-bottom: 4px;
}
.vk-page .pkg__feature--plus::before { display: none; }

.vk-page .pkg__divider {
  height: 1px;
  background: var(--ax-border);
}
.vk-page .pkg--featured .pkg__divider { background: rgba(255,255,255,0.15); }

.vk-page .pkg__outcome-label {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
  margin-bottom: 8px;
}
.vk-page .pkg--featured .pkg__outcome-label { color: rgba(255,255,255,0.5); }
.vk-page .pkg__outcome {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--ax-web-heading);
}
.vk-page .pkg--featured .pkg__outcome { color: var(--ax-white); }

.vk-page .pkg__wins {
  background: rgba(0,217,255,0.07);
  border-left: 2px solid var(--ax-accent);
  padding: 16px 20px;
}
.vk-page .pkg--featured .pkg__wins { background: rgba(0,217,255,0.12); }
.vk-page .pkg__wins-label {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-accent);
  margin-bottom: 8px;
  display: block;
}
.vk-page .pkg__wins p,
.vk-page .pkg__wins li {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ax-web-body);
}
.vk-page .pkg--featured .pkg__wins p,
.vk-page .pkg--featured .pkg__wins li { color: rgba(255,255,255,0.8); }


/* ============================================================
   VK SECTION 8 — PROOF / TESTIMONIALS  (LP2-only)
   ============================================================ */
.vk-page .vk-proof {
  background: var(--ax-white) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.vk-page .vk-proof .display { color: var(--ax-web-heading); }

.vk-page .proof__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 56px;
}
@media (max-width: 768px) {
  .vk-page .proof__grid { grid-template-columns: 1fr; }
}

.vk-page .quote {
  background: var(--ax-gray-subtle);
  padding: 48px 40px;
  border-left: 2px solid var(--ax-accent);
  position: relative;
}
.vk-page .quote__mark {
  font-family: var(--ax-font-serif);
  font-size: 64px;
  color: var(--ax-accent);
  position: absolute;
  top: 24px; right: 32px;
  opacity: 0.5;
  line-height: 1;
  user-select: none;
}
.vk-page .quote__text {
  font-family: var(--ax-font-serif);
  font-size: 19px;
  line-height: 1.65;
  color: var(--ax-web-heading);
  font-style: italic;
  text-wrap: pretty;
}
.vk-page .quote__author {
  margin-top: 28px;
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-web-muted);
}
.vk-page .quote__author strong {
  color: var(--ax-web-heading);
  font-weight: 600;
}


/* ============================================================
   VK SECTION 10 — URGENCY  (LP2-only)
   ============================================================ */
.vk-page .vk-urgency {
  background: var(--ax-gray-subtle) !important;
  padding-top: var(--ax-space-section) !important;
  padding-bottom: var(--ax-space-section) !important;
}
.vk-page .vk-urgency .display { color: var(--ax-web-heading); }

.vk-page .urgency__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  margin-top: 64px;
}
@media (max-width: 900px) {
  .vk-page .urgency__layout { grid-template-columns: 1fr; gap: 48px; }
}

.vk-page .urgency__copy {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.vk-page .urgency__copy p {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ax-web-body);
}
.vk-page .urgency__copy strong { color: var(--ax-web-heading); }

.vk-page .urgency__card {
  background: var(--ax-web-heading);
  padding: 48px 40px;
  position: relative;
  border: 1px solid rgba(255,255,255,0.05);
}
.vk-page .urgency__card::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 40px;
  background: var(--ax-accent);
}

.vk-page .urgency__card-label {
  font-family: var(--ax-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 28px;
}
.vk-page .urgency__card-label .dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--ax-accent);
  box-shadow: 0 0 0 0 rgba(0,217,255,0.6);
  animation: lp-pulse 2.2s var(--ax-ease) infinite;
}

.vk-page .urgency__huge {
  display: flex;
  align-items: baseline;
  gap: 0;
  line-height: 1;
  margin-bottom: 12px;
}
.vk-page .urgency__num {
  font-family: var(--ax-font-display);
  font-size: 88px;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--ax-white);
  line-height: 1;
}
.vk-page .urgency__of {
  font-family: var(--ax-font-display);
  font-size: 36px;
  font-weight: 400;
  color: rgba(255,255,255,0.35);
  margin-left: 8px;
  align-self: flex-end;
  padding-bottom: 6px;
}
.vk-page .urgency__caption {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 24px;
}

.vk-page .urgency__bar {
  height: 6px;
  background: rgba(255,255,255,0.08);
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  min-height: 0 !important;
}
.vk-page .urgency__bar::after {
  content: "";
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 0;
  background: var(--ax-accent);
  transition: width 1600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.vk-page .urgency__bar.is-animated::after { width: 32%; }

.vk-page .urgency__card-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-family: var(--ax-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
}


/* ============================================================
   VK FOOTER  (LP2-only)
   ============================================================ */
.vk-page .vk-footer {
  background: var(--ax-web-heading) !important;
  color: rgba(255,255,255,0.45);
  padding-top: 48px !important;
  padding-bottom: 48px !important;
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-align: center;
}
.vk-page .vk-footer a {
  color: rgba(255,255,255,0.45);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.vk-page .vk-footer a:hover { color: var(--ax-accent); }


/* ************************************************************
   SHARED TAIL — Responsive,
Reduced Motion,
Editor Guards
   ************************************************************ */

/* ============================================================
   RESPONSIVE — Section padding
   ============================================================ */
@media (max-width: 768px) {
  .fc-page .fc-hero,
.vk-page .vk-hero {
    padding-top: 100px !important;
    padding-bottom: 80px !important;
  }
  .fc-page .fc-problem,
.fc-page .fc-solution,
.fc-page .fc-tiers,
.fc-page .fc-matrix,
.fc-page .fc-why-now,
.fc-page .fc-who,
.fc-page .fc-final-cta,
.vk-page .vk-problem,
.vk-page .vk-solution,
.vk-page .vk-cred,
.vk-page .vk-status,
.vk-page .vk-packages,
.vk-page .vk-compare,
.vk-page .vk-proof,
.vk-page .vk-contrast,
.vk-page .vk-urgency,
.vk-page .vk-final-cta {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *,
*::before,
*::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  :is(.fc-page, .vk-page) .animate-on-scroll {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ============================================================
   EDITOR VISIBILITY — keep content visible while editing
   ============================================================ */
.editor-styles-wrapper .animate-on-scroll,
.editor-styles-wrapper .fc-delay-1,
.editor-styles-wrapper .fc-delay-2,
.editor-styles-wrapper .fc-delay-3,
.editor-styles-wrapper .fc-delay-4,
.editor-styles-wrapper .vk-delay-1,
.editor-styles-wrapper .vk-delay-2,
.editor-styles-wrapper .vk-delay-3,
.editor-styles-wrapper .vk-delay-4 {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

/* ============================================================
   JETFORMBUILDER — shared form styling for LP1 & LP2
   Scoped to .fc-page and .vk-page so it never leaks site-wide.
   ============================================================ */
.fc-page .jet-form-builder,
.vk-page .jet-form-builder {
  font-family: var(--ax-font-sans);
  color: var(--ax-web-body);
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Section headings inside form */
.fc-page .jet-form-builder__heading,
.vk-page .jet-form-builder__heading {
  font-family: var(--ax-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ax-web-heading);
  margin: 32px 0 4px;
  padding-top: 24px;
  border-top: 1px solid var(--ax-border);
}
:is(.fc-page, .vk-page) .jet-form-builder__heading:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
:is(.fc-page, .vk-page) .jet-form-builder__heading-desc {
  font-family: var(--ax-font-sans);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ax-web-muted);
  margin: 6px 0 12px;
}

/* Group break divider */
.fc-page .jet-form-builder__group-break,
.vk-page .jet-form-builder__group-break {
  border: 0;
  border-top: 1px solid var(--ax-border);
  margin: 8px 0;
}

/* Field rows: layout-row variant — label column left,
field column right */
.fc-page .jet-form-builder-row,
.vk-page .jet-form-builder-row {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 16px 24px;
}
:is(.fc-page, .vk-page) .jet-form-builder-col__start {
  flex: 0 0 30%;
  max-width: 30%;
  padding-top: 12px;
}
:is(.fc-page, .vk-page) .jet-form-builder-col__end {
  flex: 1 1 0;
  min-width: 0;
}
:is(.fc-page, .vk-page) .jet-form-builder-col__end.content-fullwidth {
  flex: 1 1 100%;
  max-width: 100%;
}
/* Heading + group-break + submit + messages: full-width row */
.fc-page .jet-form-builder-row.field-type-heading-field,
:is(.fc-page, .vk-page) .jet-form-builder-row.field-type-group-break-field,
:is(.fc-page, .vk-page) .jet-form-builder-row.field-type-submit-field,
.vk-page .jet-form-builder-row.field-type-heading-field {
  flex-direction: column;
  gap: 0;
}
:is(.fc-page, .vk-page) .jet-form-builder-row.field-type-heading-field .jet-form-builder-col__start,
:is(.fc-page, .vk-page) .jet-form-builder-row.field-type-group-break-field .jet-form-builder-col__start,
:is(.fc-page, .vk-page) .jet-form-builder-row.field-type-submit-field .jet-form-builder-col__start {
  flex: 1 1 100%;
  max-width: 100%;
  padding-top: 0;
}
@media (max-width: 720px) {
  :is(.fc-page, .vk-page) .jet-form-builder-row {
    flex-direction: column;
    gap: 8px;
  }
  :is(.fc-page, .vk-page) .jet-form-builder-col__start,
:is(.fc-page, .vk-page) .jet-form-builder-col__end {
    flex: 1 1 100%;
    max-width: 100%;
    padding-top: 0;
  }
}

/* Labels */
.fc-page .jet-form-builder__label,
.vk-page .jet-form-builder__label {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-web-heading);
  display: block;
  margin-bottom: 8px;
}
:is(.fc-page, .vk-page) .jet-form-builder__label-text { display: inline; }
:is(.fc-page, .vk-page) .jet-form-builder__label .required-mark {
  color: var(--ax-accent);
  margin-left: 4px;
}

/* Inputs / Selects / Textareas */
.fc-page .jet-form-builder__field.text-field,
:is(.fc-page, .vk-page) .jet-form-builder__field.select-field,
:is(.fc-page, .vk-page) .jet-form-builder__field.textarea-field,
.vk-page .jet-form-builder__field.text-field {
  width: 100%;
  font-family: var(--ax-font-sans);
  font-size: 16px;
  line-height: 1.5;
  color: var(--ax-web-heading);
  background: var(--ax-white);
  border: 1px solid var(--ax-border);
  border-radius: 0;
  padding: 14px 16px;
  transition: border-color var(--ax-dur-base) var(--ax-ease),
              box-shadow var(--ax-dur-base) var(--ax-ease);
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
:is(.fc-page, .vk-page) .jet-form-builder__field.textarea-field {
  min-height: 140px;
  resize: vertical;
}
:is(.fc-page, .vk-page) .jet-form-builder__field.select-field {
  background-image: linear-gradient(45deg, transparent 50%, var(--ax-web-heading) 50%),
                    linear-gradient(135deg, var(--ax-web-heading) 50%, transparent 50%);
  background-position: calc(100% - 20px) center, calc(100% - 14px) center;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 40px;
  cursor: pointer;
}

/* Focus state */
.fc-page .jet-form-builder__field.text-field:focus,
:is(.fc-page, .vk-page) .jet-form-builder__field.select-field:focus,
:is(.fc-page, .vk-page) .jet-form-builder__field.textarea-field:focus,
.vk-page .jet-form-builder__field.text-field:focus {
  outline: none;
  border-color: var(--ax-accent);
  box-shadow: var(--ax-focus-ring);
}

/* Placeholder */
.fc-page .jet-form-builder__field::placeholder,
.vk-page .jet-form-builder__field::placeholder {
  color: var(--ax-web-muted);
  opacity: 1;
}

/* Radio + checkbox groups */
.fc-page .jet-form-builder__fields-group.checkradio-wrap,
.vk-page .jet-form-builder__fields-group.checkradio-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
:is(.fc-page, .vk-page) .jet-form-builder__field-wrap.checkradio-wrap {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--ax-border);
  background: var(--ax-white);
  cursor: pointer;
  transition: border-color var(--ax-dur-base) var(--ax-ease),
              background var(--ax-dur-base) var(--ax-ease);
}
:is(.fc-page, .vk-page) .jet-form-builder__field-wrap.checkradio-wrap:hover {
  border-color: var(--ax-web-heading);
}
:is(.fc-page, .vk-page) .jet-form-builder__field-wrap.checkradio-wrap:has(input:checked) {
  border-color: var(--ax-accent);
  background: rgba(0, 217, 255, 0.06);
}

/* Native radio/checkbox restyle */
.fc-page .jet-form-builder__field.radio-field,
:is(.fc-page, .vk-page) .jet-form-builder__field.checkboxes-field,
.vk-page .jet-form-builder__field.radio-field {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  border: 1.5px solid var(--ax-web-muted);
  background: var(--ax-white);
  flex-shrink: 0;
  cursor: pointer;
  position: relative;
  transition: border-color var(--ax-dur-base) var(--ax-ease),
              background var(--ax-dur-base) var(--ax-ease);
}
:is(.fc-page, .vk-page) .jet-form-builder__field.radio-field {
  border-radius: 50%;
}
:is(.fc-page, .vk-page) .jet-form-builder__field.radio-field:checked,
:is(.fc-page, .vk-page) .jet-form-builder__field.checkboxes-field:checked {
  border-color: var(--ax-accent);
  background: var(--ax-accent);
}
:is(.fc-page, .vk-page) .jet-form-builder__field.radio-field:checked::after {
  content: "";
  position: absolute;
  inset: 3px;
  background: var(--ax-web-heading);
  border-radius: 50%;
}
:is(.fc-page, .vk-page) .jet-form-builder__field.checkboxes-field:checked::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0;
  width: 6px;
  height: 11px;
  border-right: 2px solid var(--ax-web-heading);
  border-bottom: 2px solid var(--ax-web-heading);
  transform: rotate(45deg);
}
:is(.fc-page, .vk-page) .jet-form-builder__field.radio-field:focus-visible,
:is(.fc-page, .vk-page) .jet-form-builder__field.checkboxes-field:focus-visible {
  outline: none;
  box-shadow: var(--ax-focus-ring);
}

/* Inline label next to radio/checkbox */
.fc-page .jet-form-builder__field-label.for-radio,
:is(.fc-page, .vk-page) .jet-form-builder__field-label.for-checkbox,
.vk-page .jet-form-builder__field-label.for-radio {
  font-family: var(--ax-font-sans);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ax-web-body);
  line-height: 1.5;
  margin: 0;
  cursor: pointer;
}

/* Privacy/consent single checkbox row */
.fc-page .jet-form-builder-row.field-type-checkbox-field .jet-form-builder__fields-group,
.vk-page .jet-form-builder-row.field-type-checkbox-field .jet-form-builder__fields-group {
  gap: 8px;
}

/* Submit button — reuse primary button look */
.fc-page .jet-form-builder-row.field-type-submit-field,
.vk-page .jet-form-builder-row.field-type-submit-field {
  margin-top: 16px;
}
:is(.fc-page, .vk-page) .jet-form-builder__action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ax-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ax-web-heading);
  background: var(--ax-accent);
  border: 1px solid var(--ax-accent);
  border-radius: 0;
  padding: 18px 36px;
  cursor: pointer;
  transition: background var(--ax-dur-base) var(--ax-ease),
              border-color var(--ax-dur-base) var(--ax-ease),
              transform var(--ax-dur-base) var(--ax-ease);
}
:is(.fc-page, .vk-page) .jet-form-builder__action-button:hover {
  background: var(--ax-accent-hover);
  border-color: var(--ax-accent-hover);
  transform: translateY(-1px);
}
:is(.fc-page, .vk-page) .jet-form-builder__action-button:focus-visible {
  outline: none;
  box-shadow: var(--ax-focus-ring);
}
:is(.fc-page, .vk-page) .jet-form-builder__action-button[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

/* Validation / error states */
.fc-page .jet-form-builder__field.field-has-error,
.vk-page .jet-form-builder__field.field-has-error {
  border-color: #d83a3a;
  box-shadow: 0 0 0 3px rgba(216, 58, 58, 0.15);
}
:is(.fc-page, .vk-page) .jet-form-builder-row__desc.error-message,
:is(.fc-page, .vk-page) .jet-form-builder-messages-wrap .jet-form-builder-message--error {
  font-family: var(--ax-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: #d83a3a;
  margin-top: 6px;
}

/* Success / global form messages */
.fc-page .jet-form-builder-messages-wrap,
.vk-page .jet-form-builder-messages-wrap {
  margin-top: 8px;
}
:is(.fc-page, .vk-page) .jet-form-builder-message {
  padding: 14px 18px;
  border: 1px solid var(--ax-border);
  background: var(--ax-gray-subtle);
  font-size: 14px;
  line-height: 1.5;
}
:is(.fc-page, .vk-page) .jet-form-builder-message.jet-form-builder-message--success {
  border-color: var(--ax-accent);
  background: rgba(0, 217, 255, 0.08);
  color: var(--ax-web-heading);
}

/* Field description (helper text) */
.fc-page .jet-form-builder-row__desc,
.vk-page .jet-form-builder-row__desc {
  font-size: 13px;
  color: var(--ax-web-muted);
  margin-top: 6px;
}

/* Hide field decoration when field is conditionally hidden */
.fc-page .jet-form-builder__conditional[style*="display: none"],
.vk-page .jet-form-builder__conditional[style*="display: none"] {
  display: none !important;
}

/* ============================================================
   FORM-IN-DARK-SECTION — white card around form when placed
   in fc-final-cta / vk-final-cta (black bg) so labels stay readable
   ============================================================ */
.fc-page .fc-final-cta__form,
.vk-page .vk-final-cta__form {
  background: var(--ax-white);
  padding: 48px 48px 40px;
  margin: 48px auto 0;
  max-width: 820px;
  text-align: left;
  box-shadow: 0 30px 80px rgba(0, 217, 255, 0.08);
}
@media (max-width: 720px) {
  .fc-page .fc-final-cta__form,
.vk-page .vk-final-cta__form {
    padding: 28px 22px;
    margin-top: 32px;
  }
}
/* Inside the white card,
form inherits standard light-on-white look already */
.fc-page .fc-final-cta__form .jet-form-builder,
.vk-page .vk-final-cta__form .jet-form-builder {
  margin: 0;
}

/* Fallback: if form somehow renders directly in dark section without card,
force light label colors so it's still readable */
.fc-page .fc-final-cta > .jet-form-builder .jet-form-builder__label,
.fc-page .fc-final-cta > .jet-form-builder .jet-form-builder__heading,
.vk-page .vk-final-cta > .jet-form-builder .jet-form-builder__label,
.vk-page .vk-final-cta > .jet-form-builder .jet-form-builder__heading {
  color: var(--ax-white);
}

/* ============================================================
   ASTRA RESET — kill default block padding on outer page wrapper
   so colored full-width sections (Hero,
Why-Now,
Final-CTA,
etc.)
   actually go edge-to-edge instead of being eaten by Astra's
   .entry-content > .wp-block-group horizontal padding.
   ============================================================ */
.entry-content > .wp-block-group.fc-page,
.entry-content > .wp-block-group.vk-page,
:is(.fc-page, .vk-page) {
  --wp--custom--ast-default-block-top-padding:    0 !important;
  --wp--custom--ast-default-block-right-padding:  0 !important;
  --wp--custom--ast-default-block-bottom-padding: 0 !important;
  --wp--custom--ast-default-block-left-padding:   0 !important;
  padding: 0 !important;
}
/* Restore inner horizontal padding ONLY on direct section children
   (e.g. .fc-hero,
.fc-why-now,
.fc-final-cta) so text doesn't touch
   viewport edges. Outer .fc-page wrapper stays at 0 → full bleed. */
.fc-page > .wp-block-group,
.vk-page > .wp-block-group {
  padding-left: clamp(20px, 5vw, 48px) !important;
  padding-right: clamp(20px, 5vw, 48px) !important;
  box-sizing: border-box;
}

/* ============================================================
   Fullwidth-Override für Astra + Gutenberg
   Aivonyx LPs sollen Bildschirm-randlos rendern,
Inhalte mit
   großzügigem horizontalen Padding (statt Astra-Container max-width).
   Page-Layout in Astra: "Page Builder" / "Stretched" empfohlen.
   ============================================================ */
.fc-page,
.vk-page {
  width: 100%;
  max-width: 100%;
  --wp--style--global--content-size: 1480px;
  --wp--style--global--wide-size: 100%;
}
body:has(.fc-page) .ast-container,
body:has(.fc-page) .entry-content,
body:has(.fc-page) .site-content > .ast-container,
body:has(.vk-page) .ast-container,
body:has(.vk-page) .entry-content,
body:has(.vk-page) .site-content > .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
:is(.fc-page, .vk-page) .wp-block-group.is-layout-constrained {
  padding-left: 4rem;
  padding-right: 4rem;
}
@media (max-width: 1024px) {
  :is(.fc-page, .vk-page) .wp-block-group.is-layout-constrained {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
@media (max-width: 640px) {
  :is(.fc-page, .vk-page) .wp-block-group.is-layout-constrained {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

/* Cyan-Glows: bewusst als rgba-LITERALE im :root (oben) belassen.
   Relative Color aus --ax-cyan ist hier NICHT geeignet: --ax-cyan ist
   kontextabhängig (Astra-Customizer-Blau auf :root, erst auf
   body.ax-dashboard-page auf #00D9FF gepinnt). Eine im :root deklarierte
   rgb(from var(--ax-cyan) …) friert auf den :root-Wert (Astra-Blau) ein
   → die Glows würden auf dem Dashboard blau statt cyan. Verifiziert
   2026-06-14 im Browser. Relative Color nur bei stabilen Basisfarben
   (Status-Tints in tokens.css). */

/* ── Hell/Dunkel-Toggle im Header (Theme v1.7.1) ──────────────────
   Globaler Farbschema-Switch, ausgegeben per Shortcode
   [aivonyx_theme_toggle] (functions.php) — frei platzierbar, z. B. im
   Astra-Header-Builder-HTML-Element neben dem Hamburger. Klick-Logik:
   custom.js. Bewusst NICHT auf .aivonyx-dashboard gescoped — der Toggle
   lebt im Astra-Header und muss auf allen Seiten greifen. Farbe wird vom
   Header geerbt (color: inherit), die Icons via stroke=currentColor. */
.ax-theme-toggle-wrap {
  display: inline-flex;
  align-items: center;
}
.ax-theme-toggle {
  /* Reset gegen Astras Button-Skin. Verifiziert (Screenshot 2026-06-15):
     Astra füllt den Button mit Deep-Petrol + Padding + Radius, das Icon
     verschwindet. Astras Selektor ist spezifischer als eine Ein-Klassen-
     Regel und UNGELAYERT (→ @layer würde verlieren), daher gezieltes
     !important auf genau den überschriebenen Eigenschaften. color:inherit
     lässt das Icon die Header-Textfarbe annehmen (hell im Dark-Mode). */
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.25rem !important;
  height: 2.25rem !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: var(--ax-el-radius, 0.5rem) !important;
  box-shadow: none !important;
  color: inherit !important;
  font: inherit;
  cursor: pointer;
  line-height: 0;
  transition: background-color var(--ax-dur-base, 240ms) var(--ax-ease, ease);
}
.ax-theme-toggle:hover {
  background: var(--ax-cyan-glow-faint, rgba(0, 217, 255, 0.08)) !important;
}
.ax-theme-toggle:focus-visible {
  outline: none;
  box-shadow: var(--ax-focus-ring, 0 0 0 0.1875rem #00738F);
}
.ax-theme-toggle__icon {
  display: block;
  width: 1.125rem !important;
  height: 1.125rem !important;
  flex: none;
}
/* Hell aktiv → Mond anbieten (Klick = nach Dunkel). Dunkel aktiv → Sonne. */
.ax-theme-toggle__icon--sun {
  display: none;
}
html.ax-dark .ax-theme-toggle__icon--sun {
  display: block;
}
html.ax-dark .ax-theme-toggle__icon--moon {
  display: none;
}

/* ── aivonyx-Logo (inline-SVG, Theme v1.7.2) ──────────────────────
   Ausgegeben via get_custom_logo-Filter bzw. [aivonyx_logo]. Zwei
   Markenfarben über CSS-Variablen steuerbar (style="fill:var(...)" im
   SVG). Größe hier zentral; bei Bedarf anpassen. */
.ax-logo {
  display: block;
  height: 2.25rem;
  width: auto;
}
/* Dark-Mode NUR wo der Astra-Header dunkel ist (App-Bühne, Variante A):
   Wortmarke hell, Stern bleibt Cyan. #FFFFFF bewusst LITERAL — die
   Astra-gemappte --ax-white kippt auf body.ax-dashboard-page im Dark-Mode
   auf eine dunkle Surface, wäre als Logo-Farbe also falsch. Auf Nicht-App-
   Seiten (heller Header) bleibt die Wortmarke deep-petrol = lesbar. */
html.ax-dark body.ax-dashboard-page .ax-logo {
  --ax-logo-fg: #FFFFFF;
}

/* ============================================================
   Forced Colors (Windows-Kontrastmodus)
   ------------------------------------------------------------
   box-shadow wird dort vom Browser entfernt — unsere outline:none-
   Fokus-Styles ließen sonst gar keinen Indikator übrig (WCAG 2.4.7).
   ============================================================ */
@media (forced-colors: active) {
  :focus-visible {
    outline: 2px solid CanvasText !important;
    outline-offset: 2px;
  }
}
