﻿/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” DESIGN TOKENS  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Canonical single source of truth for the AcoperiÈ™ Sigur installer-network brand.
   Every other layer (reset, base, components, sections) imports from these tokens.
   DO NOT hardcode colors, fonts, radii, shadows, or spacing downstream â€” use vars.

   Namespace ...... --as-*   (AcoperiÈ™ Sigur)
   Aesthetic ...... navy + amber keystone, sky support, slate ramp.
                    Space Grotesk display / Inter body / mono technical labels.
                    High-contrast, architectural, sharp data / warm CTAs.
   Brand-swap ..... sister sites override only --as-accent + --as-accent-2
                    via [data-brand="..."] on <html> (see overrides at bottom).
   Supersedes ..... the legacy generic --vm-* system (Rubik / Playfair / soft SaaS).
   ============================================================================ */

:root {
  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     1. CORE BRAND COLORS â€” the anchors. Never altered.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-navy:           #0F172A;  /* primary dark â€” brutalist background, headings on light */
  --as-navy-deep:      #0A1424;  /* deepest section / blueprint base                       */
  --as-navy-soft:      #1E293B;  /* raised dark surface, card on dark                       */

  --as-amber:          #FFB627;  /* THE KEYSTONE â€” action / accent / "SIGUR" wordmark       */
  --as-amber-dark:     #E89E15;  /* hover / pressed amber FILL (NOT for text on light: 2.25:1) */
  --as-amber-light:    #FFC757;  /* highlights, amber glow tint                             */
  --as-amber-text:     #8A5A00;  /* WCAG-AA amber for TEXT on light (amber-900-ish, 5.6:1)  */

  --as-sky:            #0EA5E9;  /* secondary accent â€” AcoperiÈ™ right pillar, icons (FILL ONLY) */
  --as-sky-deep:       #0284C7;  /* sky hover / pressed                                     */
  --as-sky-text:       #0369A1;  /* WCAG-AA sky for TEXT/links on light (sky-700, 5.4:1)    */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     2. SLATE NEUTRAL RAMP â€” the structural greys (Tailwind slate, locked).
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-slate-900:      #0F172A;  /* == navy; ramp top                                       */
  --as-slate-800:      #1E293B;
  --as-slate-700:      #334155;
  --as-slate-600:      #475569;
  --as-slate-500:      #64748B;  /* concrete â€” muted text                                   */
  --as-slate-400:      #94A3B8;  /* placeholder / disabled / meta on light                  */
  --as-slate-300:      #CBD5E1;  /* hairline / scrollbar                                    */
  --as-slate-200:      #E2E8F0;  /* default border                                          */
  --as-slate-100:      #F1F5F9;
  --as-slate-50:       #F8FAFC;  /* page background                                         */
  --as-white:          #FFFFFF;

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     3. BRAND-SWAP LAYER â€” sister sites override these TWO vars only.
        --as-accent  = the keystone action color (stays amber across network)
        --as-accent-2 / --as-accent-3 = the divisional support pillars.
        Default = AcoperiÈ™ (sky pillars). See [data-brand] overrides below.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-accent:         var(--as-amber);      /* shared keystone â€” same for whole network */
  --as-accent-dark:    var(--as-amber-dark);
  --as-accent-2:       var(--as-sky);        /* divisional support pillar (right block)  */
  --as-accent-3:       var(--as-white);      /* divisional support pillar (left block)   */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     4. SEMANTIC COLOR TOKENS â€” what components actually reference.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-bg:             var(--as-slate-50);   /* page canvas                              */
  --as-bg-dark:        var(--as-navy);        /* dark sections (footer, hero, ticker)    */
  --as-surface:        var(--as-white);       /* cards, panels, inputs                   */
  --as-surface-2:      var(--as-slate-100);   /* subtle raised / striped table row       */
  --as-surface-dark:   var(--as-navy-soft);   /* cards on dark sections                  */

  --as-text:           var(--as-slate-800);   /* body copy                               */
  --as-text-strong:    var(--as-navy);         /* headings on light                       */
  --as-text-muted:     var(--as-slate-500);    /* captions, meta, secondary               */
  --as-text-faint:     var(--as-slate-400);    /* placeholders, disabled                  */

  --as-border:         var(--as-slate-200);    /* default 1px hairline                     */
  --as-border-strong:  var(--as-slate-300);    /* emphasized divider                       */
  --as-border-dark:    var(--as-slate-800);    /* dividers on dark sections                */

  --as-action:         var(--as-accent);       /* primary CTA fill                         */
  --as-action-hover:   var(--as-accent-dark);  /* primary CTA hover/pressed                */
  --as-action-text:    var(--as-navy);         /* text ON amber CTA (navy = max contrast)  */

  --as-on-dark:        var(--as-white);         /* text/icons on navy surfaces             */
  --as-on-dark-muted:  var(--as-slate-400);     /* secondary text on navy                  */
  --as-on-amber:       var(--as-navy);          /* text on amber blocks/badges             */

  --as-link:           var(--as-sky-text);   /* AA-safe sky-700 for link TEXT on light (5.9:1) */
  --as-link-hover:      #075985;              /* sky-800 â€” AA on light (7.6:1)                   */
  --as-focus-ring:     var(--as-sky);           /* :focus-visible outline color            */

  /* Status (kept slate-disciplined, used for trust/inclusion tables) */
  --as-success:        #059669;  /* fill / dot only â€” as TEXT on white = 3.77:1 (sub-AA)     */
  --as-success-text:   #047857;  /* WCAG-AA emerald-700 for success TEXT on light (5.5:1)    */
  --as-danger:         #DC2626;  /* AA as text on white (4.83:1)                             */

  /* Blueprint texture inks (subtle grid motif on dark) */
  --as-blueprint-bg:   var(--as-navy-deep);
  --as-blueprint-line: rgba(14, 165, 233, .15);   /* sky grid lines @ low opacity         */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     5. TYPOGRAPHY â€” FONT FAMILIES
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-font-display: 'Space Grotesk', 'Segoe UI', system-ui, sans-serif;        /* headings, logo, numbers, eyebrows, buttons */
  --as-font-body:    'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;  /* paragraphs, UI text                         */
  --as-font-mono:    ui-monospace, 'JetBrains Mono', 'SFMono-Regular', Menlo,
                     Consolas, monospace;                                        /* kN/mp, px, timestamps, technical labels    */

  /* FONT WEIGHTS (semantic) */
  --as-fw-body:        400;
  --as-fw-medium:      500;   /* Inter UI / Space Grotesk sub-headlines */
  --as-fw-semibold:    600;   /* buttons, UI emphasis                   */
  --as-fw-bold:        700;   /* standard headlines                     */
  /* NOTE: Space Grotesk (display face) tops out at 700 on Google Fonts â€”
     it has NO 800/900 master. Requesting 800/900 = browser faux-bold
     (smeared, cheap). So the display "heavy" tier is capped at 700; the
     premium weight comes from 700 + tight tracking + scale, not a heavier
     master. Inter (body) DOES ship 700/800, but these tokens drive display
     elements, so 700 is the honest ceiling. */
  --as-fw-extrabold:   700;   /* high-impact H1/H2, "ACOPERIÈ˜" (SG max)  */
  --as-fw-black:       700;   /* "SIGUR", hero numbers (SG max)          */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     6. TYPE SCALE â€” fluid clamp() sizing, mobileâ†’desktop.
        Display tier = Space Grotesk; text tier = Inter.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-fs-eyebrow:  clamp(0.6875rem, 0.62rem + 0.34vw, 0.8125rem); /* 11â†’13  uppercase label */
  --as-fs-meta:     clamp(0.75rem,  0.71rem + 0.20vw, 0.8125rem);  /* 12â†’13  mono meta       */
  --as-fs-caption:  clamp(0.8125rem,0.78rem + 0.17vw, 0.875rem);   /* 13â†’14                  */
  --as-fs-body-sm:  clamp(0.875rem, 0.85rem + 0.13vw, 0.9375rem);  /* 14â†’15                  */
  --as-fs-body:     clamp(1rem,     0.97rem + 0.16vw, 1.0625rem);  /* 16â†’17  base reading    */
  --as-fs-body-lg:  clamp(1.125rem, 1.08rem + 0.23vw, 1.25rem);    /* 18â†’20  lead paragraph  */
  --as-fs-h6:       clamp(1rem,     0.96rem + 0.21vw, 1.125rem);   /* 16â†’18                  */
  --as-fs-h5:       clamp(1.125rem, 1.06rem + 0.31vw, 1.3125rem);  /* 18â†’21                  */
  --as-fs-h4:       clamp(1.25rem,  1.13rem + 0.59vw, 1.625rem);   /* 20â†’26                  */
  --as-fs-h3:       clamp(1.5rem,   1.30rem + 1.00vw, 2.125rem);   /* 24â†’34                  */
  --as-fs-h2:       clamp(1.875rem, 1.50rem + 1.88vw, 3rem);       /* 30â†’48                  */
  --as-fs-h1:       clamp(2.5rem,   1.85rem + 3.25vw, 4.5rem);     /* 40â†’72  hero display    */
  --as-fs-display:  clamp(3rem,     2.00rem + 5.00vw, 6rem);       /* 48â†’96  oversized hero  */

  /* LINE HEIGHTS */
  --as-lh-display:  0.95;   /* oversized hero, tight                  */
  --as-lh-tight:    1.05;   /* H1/H2 display                          */
  --as-lh-heading:  1.2;    /* H3â€“H6                                  */
  --as-lh-snug:     1.4;    /* leads, UI                              */
  --as-lh-body:     1.7;    /* reading copy                           */

  /* LETTER SPACING */
  --as-ls-display:  -0.03em;  /* big Space Grotesk headlines, tight   */
  --as-ls-tight:    -0.015em; /* H3/H4                                */
  --as-ls-normal:    0;
  --as-ls-wide:      0.08em;  /* eyebrows                             */
  --as-ls-wider:     0.16em;  /* uppercase tracking labels / badges   */
  --as-ls-mono:      0.02em;  /* technical mono labels                */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     7. SPACING SCALE â€” 4px base, geometric vertical rhythm.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-s-1:   4px;
  --as-s-2:   8px;
  --as-s-3:   12px;
  --as-s-4:   16px;
  --as-s-5:   24px;
  --as-s-6:   32px;
  --as-s-7:   48px;
  --as-s-8:   64px;
  --as-s-9:   80px;
  --as-s-10:  96px;
  --as-s-11:  128px;
  --as-s-12:  160px;
  --as-s-13:  192px;
  --as-s-14:  224px;
  --as-s-15:  256px;
  --as-s-16:  320px;

  /* Section rhythm (generous whitespace, fluid) */
  --as-section-y:      clamp(4rem, 2.5rem + 7.5vw, 8rem);    /* 64â†’128 vertical section pad  */
  --as-section-y-sm:   clamp(2.5rem, 1.8rem + 3.5vw, 4.5rem);/* 40â†’72  compact section       */
  --as-gutter:         clamp(1.25rem, 0.5rem + 3.75vw, 4rem);/* 20â†’64  horizontal page pad   */
  --as-stack:          clamp(1rem, 0.85rem + 0.75vw, 1.5rem);/* default content stack gap    */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     8. RADII â€” consistent scale. Sharp where technical, soft only at CTAs/cards.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-r-xs:   4px;    /* badges, chips, inline tags                  */
  --as-r-sm:   8px;    /* inputs, small buttons                       */
  --as-r-md:   12px;   /* buttons, cards                              */
  --as-r-lg:   16px;   /* feature panels, image frames                */
  --as-r-xl:   20px;   /* large hero/feature containers               */
  --as-r-2xl:  28px;   /* full-bleed showcase blocks                  */
  --as-r-pill: 9999px; /* pills, fully-round chips                    */
  --as-r-sharp: 0px;   /* brutalist hard edges â€” data tables, blueprints */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     9. ELEVATION / SHADOWS â€” disciplined scale + gold glow for CTAs.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-elev-1: 0 1px 2px rgba(15,23,42,.05), 0 1px 3px rgba(15,23,42,.07);
  --as-elev-2: 0 4px 6px -1px rgba(15,23,42,.06), 0 10px 20px -5px rgba(15,23,42,.09);
  --as-elev-3: 0 10px 25px -5px rgba(15,23,42,.11), 0 20px 40px -10px rgba(15,23,42,.13);
  --as-elev-4: 0 24px 48px -12px rgba(15,23,42,.18), 0 40px 80px -20px rgba(15,23,42,.22);

  --as-elev-gold:  0 8px 24px -4px rgba(255,182,39,.38), 0 4px 8px rgba(255,182,39,.20); /* CTA glow */
  --as-elev-gold-sm: 0 4px 12px rgba(255,182,39,.40);
  --as-elev-inset: inset 0 1px 0 rgba(255,255,255,.18);   /* top sheen on raised buttons   */
  --as-elev-focus: 0 0 0 4px rgba(14,165,233,.18);        /* focus halo (sky)              */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     10. BORDERS
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-bw-hair:    1px;
  --as-bw-strong:  2px;
  --as-bw-brutal:  3px;   /* heavy brutalist accent border           */
  --as-border-hair:   var(--as-bw-hair) solid var(--as-border);
  --as-border-strong-line: var(--as-bw-strong) solid var(--as-border-strong);
  --as-border-amber:  var(--as-bw-strong) solid var(--as-accent);
  --as-border-dark-line:   var(--as-bw-hair) solid var(--as-border-dark);

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     11. TRANSITIONS / MOTION
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-ease-out:   cubic-bezier(.4, 0, .2, 1);
  --as-ease-in-out:cubic-bezier(.65, 0, .35, 1);
  --as-ease-snap:  cubic-bezier(.2, .9, .3, 1.2);  /* slight overshoot for tactile CTAs */
  --as-dur-fast:   .15s;
  --as-dur-base:   .25s;
  --as-dur-slow:   .35s;
  --as-t-fast:     all var(--as-dur-fast) var(--as-ease-out);
  --as-t-base:     all var(--as-dur-base) var(--as-ease-out);
  --as-t-transform:transform var(--as-dur-base) var(--as-ease-out), box-shadow var(--as-dur-base) ease;

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     12. LAYOUT â€” container max-widths
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-container:        1240px;  /* default content max width               */
  --as-container-wide:   1440px;  /* full showcase / hero band               */
  --as-container-narrow: 760px;   /* article / reading column                */
  --as-container-form:   560px;   /* forms / single-column CTA               */

  /* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
     13. Z-INDEX LAYERS â€” named stacking contexts.
     â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
  --as-z-base:      0;
  --as-z-ticker:    100;   /* scrolling marquee / trust ticker         */
  --as-z-sticky:    200;   /* sticky in-page sub-nav / sidebars        */
  --as-z-header:    1000;  /* primary site header                      */
  --as-z-wa:        1100;  /* WhatsApp / floating contact bubble       */
  --as-z-menu:      1200;  /* mobile nav drawer (over header)          */
  --as-z-cookie:    1300;  /* cookie consent banner                    */
  --as-z-modal:     1400;  /* dialogs / lightbox                       */
  --as-z-toast:     1500;  /* toasts / top-most                        */
}

/* ============================================================================
   BRAND-SWAP OVERRIDES â€” sister network sites.
   Apply on the root element, e.g. <html data-brand="geamuri">.
   Each division overrides ONLY its support pillars; the amber keystone
   (--as-accent) stays constant across the whole "Sigure" network so the
   trust mark reads consistently. Uncomment per deployment.
   Palettes sourced from the v6.0 brand spec "Network Extension" section.
   ============================================================================ */

/* GEAMURI SIGURE â€” glass / teal + cyan
[data-brand="geamuri"] {
  --as-accent-2: #06B6D4;   /* glass cyan (right pillar)  */
  --as-accent-3: #0F766E;   /* glass dark teal (left)     */
  --as-sky:      #06B6D4;   /* re-point secondary accent  */
  --as-sky-deep: #0E7490;
  --as-link:     #0E7490;
  --as-blueprint-line: rgba(6,182,212,.15);
}
*/

/* CONSTRUCÈšII SIGURE â€” concrete / slate
[data-brand="constructii"] {
  --as-accent-2: #64748B;   /* concrete (right pillar)    */
  --as-accent-3: #1E293B;   /* asphalt slate (left)       */
  --as-sky:      #64748B;
  --as-sky-deep: #475569;
  --as-link:     #475569;
  --as-blueprint-line: rgba(100,116,139,.18);
}
*/

/* IZOLAÈšII SIGURE â€” insulation / rust + orange
[data-brand="izolatii"] {
  --as-accent-2: #F97316;   /* insulation orange (right)  */
  --as-accent-3: #9A3412;   /* rust (left)                */
  --as-sky:      #F97316;
  --as-sky-deep: #C2410C;
  --as-link:     #C2410C;
  --as-blueprint-line: rgba(249,115,22,.15);
}
*/

/* GARDURI SIGURE â€” fence / olive + lime
[data-brand="garduri"] {
  --as-accent-2: #65A30D;   /* lime (right pillar)        */
  --as-accent-3: #3F6212;   /* olive (left)               */
  --as-sky:      #65A30D;
  --as-sky-deep: #4D7C0F;
  --as-link:     #4D7C0F;
  --as-blueprint-line: rgba(101,163,13,.15);
}
*/

/* ===== SECTION: base + reset ===== */
/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” BASE + RESET LAYER  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Foundational layer: imports brand fonts, normalizes box-model, sets the
   html/body canvas (Inter body on slate-50, Space Grotesk reserved for the
   heading layer), selection + focus-visible + scrollbar + reduced-motion,
   :target scroll-margin, base media/table reset, and the .sr-only primitive.

   Loads AFTER 00-tokens.css â€” references --as-* vars only, never raw hex that
   duplicates a token. Supersedes the legacy --vm-* base block in the DOM
   (#vm-global-polish / #vm-premium-v7), which used Karla/Rubik + duplicate
   --vm-text tokens. !important is used ONLY to defeat Astra theme defaults and
   Google-Fonts-injected Karla on <body> (homepage.html:23/26), and is flagged
   inline each time.

   FONT LOADING: the mu-plugin (as-core.php) enqueues Space Grotesk (500;600;700),
   Inter (400;500;600;700) and JetBrains Mono (400;500;600;700) via a single
   <link> in wp_head priority 2 â€” this is the SINGLE source of font loading.
   The previous render-blocking @import here has been removed: it requested only
   SG 500;700 (missing 600) and is redundant with the enqueue. Space Grotesk has
   NO 800/900 master (max 700), which is why the weight tokens cap at 700.
   ============================================================================ */

/* ----------------------------------------------------------------------------
   1. BOX MODEL â€” universal border-box + margin/padding zero-out.
   ---------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

/* ----------------------------------------------------------------------------
   2. ROOT / HTML â€” smooth scroll, consistent text-size, tap behaviour.
   ---------------------------------------------------------------------------- */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* anchor scrolling clears the sticky Astra header (#masthead) + topbar */
  scroll-padding-top: 96px;
  tab-size: 4;
}

/* Honor users who prefer no motion â€” kill smooth scroll too. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* ----------------------------------------------------------------------------
   3. BODY â€” the canvas. Inter body copy on slate-50, premium smoothing.
      !important defeats Astra's Karla body rule (homepage.html:23) +
      the Google-Fonts Karla|Rubik enqueue (homepage.html:26).
   ---------------------------------------------------------------------------- */
body {
  font-family: var(--as-font-body) !important; /* override Astra Karla */
  font-size: var(--as-fs-body);
  font-weight: var(--as-fw-body);
  line-height: var(--as-lh-body);
  letter-spacing: var(--as-ls-normal);
  color: var(--as-text);
  background-color: var(--as-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
  min-height: 100vh;
  /* Romanian copy â€” keep diacritics + wrapping sane */
  overflow-wrap: break-word;
  -webkit-tap-highlight-color: rgba(15, 23, 42, 0.12); /* navy @ low alpha */
}

/* Astra page wrapper / main column inherit the canvas cleanly. */
.hfeed.site,
#page,
#content,
#main {
  background-color: transparent;
}

/* ----------------------------------------------------------------------------
   4. MONO TECHNICAL LABEL â€” opt-in utility for kN/mp, px, timestamps, meta.
      Applied by component/section layers via .as-mono; defined here so the
      mono accent has a single canonical definition.
   ---------------------------------------------------------------------------- */
.as-mono,
[data-as-mono] {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-mono);
  font-variant-numeric: tabular-nums;
}

/* ----------------------------------------------------------------------------
   5. SELECTION â€” amber keystone highlight, navy text for max contrast.
   ---------------------------------------------------------------------------- */
::selection {
  background-color: var(--as-accent);
  color: var(--as-on-amber);
  text-shadow: none;
}
::-moz-selection {
  background-color: var(--as-accent);
  color: var(--as-on-amber);
  text-shadow: none;
}

/* ----------------------------------------------------------------------------
   6. FOCUS-VISIBLE â€” accessible amber ring. Keyboard users only (no mouse halo).
      Amber on light + the sky focus halo token for depth; WCAG 2.2 friendly.
   ---------------------------------------------------------------------------- */
:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: var(--as-bw-strong) solid var(--as-accent);
  outline-offset: 2px;
  border-radius: var(--as-r-xs);
}

/* Interactive elements get a touch more breathing room + the sky halo. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.wp-block-button__link:focus-visible,
.ast-button:focus-visible {
  outline-offset: 3px;
  box-shadow: var(--as-elev-focus);
}

/* ----------------------------------------------------------------------------
   7. SCROLLBAR â€” subtle navy/slate, desktop only (don't fight mobile native UI).
   ---------------------------------------------------------------------------- */
@media (min-width: 768px) {
  /* Firefox */
  html {
    scrollbar-width: thin;
    scrollbar-color: var(--as-slate-300) transparent;
  }
  ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }
  ::-webkit-scrollbar-track {
    background-color: var(--as-slate-100);
  }
  ::-webkit-scrollbar-thumb {
    background-color: var(--as-slate-300);
    border-radius: var(--as-r-pill);
    border: 2px solid var(--as-slate-100); /* inset look */
  }
  ::-webkit-scrollbar-thumb:hover {
    background-color: var(--as-slate-500);
  }
  ::-webkit-scrollbar-thumb:active {
    background-color: var(--as-navy);
  }
  ::-webkit-scrollbar-corner {
    background-color: transparent;
  }
}

/* ----------------------------------------------------------------------------
   8. :TARGET â€” anchor jumps clear the sticky header (defensive duplicate of
      html scroll-padding for old engines + per-element control).
   ---------------------------------------------------------------------------- */
:target {
  scroll-margin-top: 96px;
}

/* ----------------------------------------------------------------------------
   9. MEDIA â€” responsive by default, no inline-gap baseline jitter.
   ---------------------------------------------------------------------------- */
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  max-width: 100%;
}

img,
video {
  height: auto;
}

/* Preserve intrinsic SVG sizing when used as inline icons. */
svg {
  fill: currentColor;
}

/* Decorative lazy images: gentle placeholder tint while loading. */
img[loading='lazy'] {
  background-color: var(--as-surface-2);
}

/* ----------------------------------------------------------------------------
   10. FORM CONTROLS â€” inherit brand typography (browsers default to system UI).
       Sizing/borders/states are owned by the components layer; this is the
       baseline so unstyled native controls still read as brand.
   ---------------------------------------------------------------------------- */
input,
button,
select,
textarea,
optgroup {
  font-family: inherit;
  font-size: 100%;
  line-height: inherit;
  color: inherit;
  letter-spacing: inherit;
}

textarea {
  resize: vertical;
}

::placeholder {
  color: var(--as-text-faint);
  opacity: 1; /* normalize Firefox */
}

/* ----------------------------------------------------------------------------
   11. LINK BASELINE â€” sky link, no underline-by-default (components own CTAs).
       Scoped tight so it never touches Astra menu links / buttons.
   ---------------------------------------------------------------------------- */
a {
  color: var(--as-link);
  text-decoration-color: color-mix(in srgb, var(--as-link) 45%, transparent);
  text-underline-offset: 0.18em;
  transition: var(--as-t-fast);
}
a:hover {
  color: var(--as-link-hover);
}

/* ----------------------------------------------------------------------------
   12. TABLE BASELINE â€” collapse borders, brutalist sharp edges for data.
       Components layer styles trust/inclusion tables; this is the reset.
   ---------------------------------------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

th,
td {
  text-align: left;
  vertical-align: top;
  padding: 0;
}

th {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  color: var(--as-text-strong);
}

/* Lists used as semantic content keep markers; UI lists opt out via component. */
ul,
ol {
  list-style-position: outside;
}

/* Horizontal rule = hairline divider in the slate ramp. */
hr {
  border: 0;
  border-top: var(--as-border-hair);
  margin-block: var(--as-s-6);
}

/* ----------------------------------------------------------------------------
   13. .sr-only / SCREEN-READER â€” visually hidden but accessible.
       Provide both the brand .sr-only and harden Astra/WP .screen-reader-text
       (used on the .skip-link at homepage.html:2919) so it can't leak on focus.
   ---------------------------------------------------------------------------- */
.sr-only,
.screen-reader-text {
  position: absolute !important; /* must beat theme defaults to stay hidden */
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Allow re-exposing on focus (skip-links). */
.sr-only-focusable:focus,
.sr-only-focusable:focus-within {
  position: static !important;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
}

/* ----------------------------------------------------------------------------
   14. SKIP LINKS â€” both the custom .vm-skip-link (href #main, homepage.html:428)
       and Astra's .skip-link.screen-reader-text (href #content,
       homepage.html:2919). Rebrand to navy bar + amber text, reveal on focus.
   ---------------------------------------------------------------------------- */
.vm-skip-link,
.skip-link.screen-reader-text {
  position: absolute;
  top: -120px;
  left: var(--as-s-2);
  z-index: var(--as-z-toast);
  padding: var(--as-s-3) var(--as-s-5);
  background-color: var(--as-bg-dark);
  color: var(--as-accent) !important; /* beat .screen-reader-text color rules */
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-body-sm);
  letter-spacing: var(--as-ls-wide);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--as-r-sm);
  box-shadow: var(--as-elev-3);
  transition: top var(--as-dur-base) var(--as-ease-out);
}

.vm-skip-link:focus,
.skip-link.screen-reader-text:focus {
  /* override .screen-reader-text's absolute-hide so it appears on Tab */
  top: var(--as-s-2);
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: visible !important;
  outline: var(--as-bw-strong) solid var(--as-accent);
  outline-offset: 2px;
}

/* ----------------------------------------------------------------------------
   15. REDUCED MOTION â€” collapse animation/transition durations site-wide.
   ---------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important; /* must beat per-component animations */
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ----------------------------------------------------------------------------
   16. RESPONSIVE â€” tighten anchor offset on small screens (shorter header).
   ---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  html {
    scroll-padding-top: 72px;
  }
  :target {
    scroll-margin-top: 72px;
  }
}

/* ============================================================================
   15 â€” UTILITY SUBSET (replaces the Tailwind Play CDN, which is DEV-ONLY:
   it JIT-compiles in the browser â†’ FOUC + ships a global preflight reset that
   fought Astra/master alignment site-wide. This is the exact finite subset the
   site uses (98 classes), defined statically = production-grade, no FOUC, no reset.
   Brand colors map to current tokens; font-heading/body map to Space Grotesk/Inter
   (the live brand) instead of the config's stale Rubik/Karla.
   ============================================================================ */

/* ---- display / layout ---- */
.block{display:block}
.inline{display:inline}
.flex{display:flex}
.grid{display:grid}
.hidden{display:none}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-stretch{align-items:stretch}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.relative{position:relative}
.absolute{position:absolute}
.w-full{width:100%}
.w-5{width:20px}.h-5{height:20px}
.w-2\.5{width:10px}.h-2\.5{height:10px}
.h-2{height:8px}
.mx-auto{margin-left:auto;margin-right:auto}

/* ---- gaps / spacing ---- */
.gap-6{gap:24px}
.gap-x-8{column-gap:32px}
.gap-y-3{row-gap:12px}
.space-y-2>*+*{margin-top:8px}
.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}
.mb-5{margin-bottom:20px}.mb-8{margin-bottom:32px}.mb-10{margin-bottom:40px}.mb-12{margin-bottom:48px}
.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-8{margin-top:32px}
.mr-3{margin-right:12px}.ml-1{margin-left:4px}.mx-2{margin-left:8px;margin-right:8px}
.p-4{padding:16px}.p-6{padding:24px}
.px-4{padding-left:16px;padding-right:16px}.px-6{padding-left:24px;padding-right:24px}
.py-3{padding-top:12px;padding-bottom:12px}.py-4{padding-top:16px;padding-bottom:16px}

/* ---- max widths ---- */
.max-w-2xl{max-width:42rem}
.max-w-5xl{max-width:64rem}
.max-w-6xl{max-width:72rem}

/* ---- type ---- */
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.font-medium{font-weight:500}
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.font-heading{font-family:var(--as-font-display)}
.font-body{font-family:var(--as-font-body)}
.uppercase{text-transform:uppercase}
.italic{font-style:italic}
.text-center{text-align:center}
.leading-none{line-height:1}
.leading-tight{line-height:1.25}
.leading-relaxed{line-height:1.625}
.tracking-wider{letter-spacing:.05em}
.tracking-\[3px\]{letter-spacing:3px}

/* ---- colors (brand) ---- */
.text-white{color:#fff}
.text-white\/70{color:rgba(255,255,255,.70)}
.text-white\/50{color:rgba(255,255,255,.50)}
.text-white\/20{color:rgba(255,255,255,.20)}
.text-accent{color:var(--as-accent,#FFB627)}
.text-primary{color:var(--as-sky,#0EA5E9)}
.text-text-dark{color:#1A202C}
.text-text-muted{color:#4A5568}
.text-text-light{color:#94A3B8}
.bg-white{background-color:#fff}
.bg-white\/5{background-color:rgba(255,255,255,.05)}
.bg-white\/10{background-color:rgba(255,255,255,.10)}
.bg-accent{background-color:var(--as-accent,#FFB627)}
.bg-primary{background-color:var(--as-sky,#0EA5E9)}
.bg-gray-50{background-color:#F9FAFB}

/* ---- radius / border / shadow / blur ---- */
.rounded-lg{border-radius:8px}
.rounded-xl{border-radius:12px}
.rounded-2xl{border-radius:16px}
.rounded-full{border-radius:9999px}
.border{border-width:1px;border-style:solid}
.border-2{border-width:2px;border-style:solid}
.border-l-4{border-left-width:4px;border-left-style:solid}
.border-primary{border-color:var(--as-sky,#0EA5E9)}
.border-white\/10{border-color:rgba(255,255,255,.10)}
.shadow-vm-card{box-shadow:0 1px 3px rgba(15,23,42,.04)}
.shadow-vm-cta{box-shadow:0 8px 20px rgba(14,165,233,.35)}
.backdrop-blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* ---- responsive md: (>=768px) ---- */
@media (min-width:768px){
  .md\:inline{display:inline}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:gap-8{gap:32px}
  .md\:p-8{padding:32px}
  .md\:text-base{font-size:1rem;line-height:1.5rem}
  .md\:text-lg{font-size:1.125rem;line-height:1.75rem}
  .md\:text-2xl{font-size:1.5rem;line-height:2rem}
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
  .md\:text-5xl{font-size:3rem;line-height:1}
}

/* ---- previously-missing utilities (caused: amber radio dots, dead button hovers) ---- */
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.appearance-none{-webkit-appearance:none;appearance:none;}
.accent-accent{accent-color:var(--as-accent,#FFB627);}
.cursor-pointer{cursor:pointer;}
.transform{transform:translate(0,0);}
.transition-all{transition:all .2s cubic-bezier(.4,0,.2,1);}
.transition-opacity{transition:opacity .2s cubic-bezier(.4,0,.2,1);}
.hover\:-translate-y-0\.5:hover{transform:translateY(-2px);}
.hover\:bg-cyan-600:hover{background-color:#0284C7;}
.hover\:bg-white\/10:hover{background-color:rgba(255,255,255,.10);}
.hover\:border-primary\/60:hover{border-color:rgba(14,165,233,.60);}
.hover\:shadow-vm-card-hover:hover{box-shadow:0 20px 40px rgba(15,23,42,.10);}

/* ---- BULLETPROOF alignment/layout: utilities must win over Astra/theme specificity
        (these are authoritative layout intents â€” the user reported sections looking
        off-center; force the win so it can never lose a specificity battle) ---- */
.text-center{text-align:center !important;}
.mx-auto{margin-left:auto !important;margin-right:auto !important;}
.max-w-2xl{max-width:42rem !important;}
.max-w-5xl{max-width:64rem !important;}
.max-w-6xl{max-width:72rem !important;}
.flex{display:flex !important;}
.grid{display:grid !important;}
.hidden{display:none !important;}
.items-center{align-items:center !important;}
.items-stretch{align-items:stretch !important;}
.justify-center{justify-content:center !important;}
.justify-between{justify-content:space-between !important;}
@media (min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .md\:inline{display:inline !important;}
}

/* ---- DYNAMIC classes from Alpine :class bindings (not in static class= attrs, so the
        earlier scan missed them). opacity-0 is what hides the unselected radio dot. ---- */
.opacity-0{opacity:0;}
.opacity-100{opacity:1;}
.border-accent{border-color:var(--as-accent,#FFB627);}
.border-primary\/60{border-color:rgba(14,165,233,.60);}
.border-white\/30{border-color:rgba(255,255,255,.30);}
.bg-primary\/15{background-color:rgba(14,165,233,.15);}
.bg-cyan-600{background-color:#0284C7;}
.shadow-vm-card-hover{box-shadow:0 20px 40px rgba(15,23,42,.10);}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.text-4xl{font-size:2.25rem;line-height:2.5rem;}
.text-5xl{font-size:3rem;line-height:1;}
.gap-8{gap:32px;}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.p-8{padding:32px;}

/* ===== SECTION: typography ===== */
/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” TYPOGRAPHY LAYER  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Site-wide type system. Supersedes the legacy 5-family sprawl
   (Karla / Rubik / Playfair / Inter-ghost / JetBrains Mono) with the
   canonical pairing:
       DISPLAY  â†’ Space Grotesk  (headings, logo, numbers, eyebrows, buttons)
       BODY     â†’ Inter          (paragraphs, UI text)
       MONO     â†’ JetBrains Mono / ui-monospace (technical labels: kN/mp, px, meta)

   All values reference tokens from 00-tokens.css. No hardcoded hex/px that
   duplicates a token. !important is used ONLY where it must beat:
     - Astra theme base rules (the giant inline stylesheet, font-family: Karla)
     - prior override hooks 2562/2814/2826/2831/2832 (font-family: Rubik/Playfair !important)
     - Tailwind CDN utilities on the homepage hero (font-heading, text-* utilities)
     - WordPress inline style="font-family:'Playfair Display'..." on stat numbers
   Each !important block notes WHY inline. Real selectors only â€” confirmed
   against homepage.html + service.html + blogpost.html DOM snapshots.
   ============================================================================ */

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   0. BODY DEFAULT â€” Inter reading copy.
      The canonical body base typography (font-family/size/weight/line-height/
      color/letter-spacing + smoothing/rendering) lives ONCE in 10-base.css Â§3
      (the canvas owner). It is intentionally NOT re-declared here to avoid a
      duplicate body{} rule. Only the form-control inheritance is set below,
      since Astra hardcodes Karla on UI controls too.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Form controls inherit Inter too (Astra sets these to Karla as well). */
button,
input,
select,
optgroup,
textarea,
.ast-button,
.menu-link {
  font-family: var(--as-font-body) !important;   /* beats Astra inline Karla on UI controls */
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   1. HEADINGS â€” Space Grotesk display family, fluid scale, tight tracking.
      Covers native h1â€“h6 + every heading class found in the DOM:
        .wp-block-heading (Gutenberg)            .section-headline
        .vm-vs-title .vm-mat-title .vm-bh-title   .widget-title
        .entry-title                              .font-heading (Tailwind util, homepage hero)
      !important is required because hooks 2562/2814/2826/2831 set
      `font-family:'Rubik' !important` on these same selectors.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.entry-title,
.widget-title,
.section-headline,
.vm-vs-title,
.vm-mat-title,
.vm-bh-title,
.font-heading {
  font-family: var(--as-font-display) !important;  /* beats hook Rubik !important + Astra base */
  font-weight: var(--as-fw-bold);
  line-height: var(--as-lh-heading);
  letter-spacing: var(--as-ls-tight);
  color: var(--as-text-strong);
  text-wrap: balance;                              /* prevents orphan words on multi-line heads */
  -webkit-font-smoothing: antialiased;
}

/* Per-level fluid sizing, weight & rhythm.
   Native + Gutenberg + custom heading classes share each tier so the scale
   is consistent regardless of which builder authored the block. */
h1,
.entry-title,
.vm-bh-title {
  font-size: var(--as-fs-h1);
  font-weight: var(--as-fw-extrabold);
  line-height: var(--as-lh-tight);
  letter-spacing: var(--as-ls-display);
  margin-bottom: var(--as-s-5);
}

h2,
.section-headline,
.vm-vs-title,
.vm-mat-title {
  font-size: var(--as-fs-h2);
  font-weight: var(--as-fw-extrabold);
  line-height: var(--as-lh-tight);
  letter-spacing: var(--as-ls-display);
  margin-bottom: var(--as-s-5);
}

h3 {
  font-size: var(--as-fs-h3);
  font-weight: var(--as-fw-bold);
  line-height: var(--as-lh-heading);
  margin-bottom: var(--as-s-4);
}

h4,
.widget-title {
  font-size: var(--as-fs-h4);
  font-weight: var(--as-fw-bold);
  line-height: var(--as-lh-heading);
  margin-bottom: var(--as-s-3);
}

h5 {
  font-size: var(--as-fs-h5);
  font-weight: var(--as-fw-semibold);
  line-height: var(--as-lh-heading);
  margin-bottom: var(--as-s-3);
}

h6 {
  font-size: var(--as-fs-h6);
  font-weight: var(--as-fw-semibold);
  line-height: var(--as-lh-snug);
  margin-bottom: var(--as-s-2);
}

/* Headings rendered on dark/navy sections (Gutenberg `has-white-color`,
   hero h1/h2, footer widget titles) read in white. Confirmed classes:
   `has-white-color has-text-color` on hero/CTA h1/h2. */
.has-white-color.has-text-color,
.ast-builder-html-element h2,
[style*="color:#FFFFFF"] h2,
.site-footer .widget-title,
.ast-footer-widget .widget-title {
  color: var(--as-on-dark);
}

/* In-heading amber accent. The DOM convention is a <span style="color:#FFB627">
   or <em> inside titles (e.g. "numere reale", .vm-mat-title em, .vm-vs-title span).
   Re-point those to the keystone token; keep them in the display family (drop
   the old Playfair italic â€” brand v6.0 has no serif).
   !important overrides the inline style="color:#FFB627;font-style:italic" and
   hook 2826/2831 `font-style:italic !important`. */
/* Accent words on LIGHT sections: bright amber #FFB627 on white = 1.75:1, which
   FAILS even the 3:1 large-text bar. Use the AA-safe deep-amber text token so the
   keystone "accent word" stays warm/gold but is actually readable (5.9:1). */
.section-headline span[style*="FFB627" i],
.section-headline span[style*="ffb627" i],
.vm-vs-title span,
.vm-mat-title em,
.wp-block-heading em,
h1 em, h2 em, h3 em {
  color: var(--as-amber-text) !important;        /* AA on light (bright amber was 1.75:1) */
  font-family: inherit !important;               /* kill prior Playfair on accents */
  font-style: normal !important;                 /* kill prior forced italic */
  font-weight: var(--as-fw-black);
}
/* Accent word on the DARK blog hero keeps the bright keystone amber (AA on navy). */
.vm-bh-title span {
  color: var(--as-accent) !important;
  font-family: inherit !important;
  font-style: normal !important;
  font-weight: var(--as-fw-black);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   2. EYEBROWS / KICKERS â€” uppercase, wide tracking, amber, display family.
      Real classes: .vm-vs-eyebrow .vm-mat-eyebrow .vm-bh-eyebrow .eyebrow
                     + the Tailwind kicker pattern
                     `.text-accent ... uppercase tracking-[3px] font-heading`.
      NOTE: .section-eyebrow is intentionally NOT in this list â€” it has its single
      canonical definition in 50-components.css Â§14 (section-header primitives) to
      avoid a duplicate .section-eyebrow rule. The four classes below share the
      same eyebrow styling here.
      Several live eyebrows are authored sky-blue (.vm-mat-eyebrow color:#0EA5E9);
      we unify on the AA-safe sky text token; the architectural "tick" rule stays.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.vm-vs-eyebrow,
.vm-mat-eyebrow,
.vm-bh-eyebrow,
.eyebrow {
  font-family: var(--as-font-display) !important; /* beats hook Rubik !important */
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-eyebrow);
  line-height: var(--as-lh-snug);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider) !important;  /* beats hook letter-spacing:.25em !important */
  /* AA fix: amber #FFB627 as eyebrow TEXT on white = 1.75:1 (FAIL). These eyebrows sit on
     light sections, so use the AA-safe sky text token. Eyebrows on DARK sections
     (.vm-bh-eyebrow) are re-set to amber in 80-blog.css where amber-on-navy passes. */
  color: var(--as-sky-text) !important;
  margin: 0 0 var(--as-s-3);
}

/* Architectural lead-in tick â€” preserve the existing ::before hairline on
   .vm-mat-eyebrow (DOM authored it), re-tinted to the keystone. */
.vm-mat-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
}
.vm-mat-eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   3. LEAD / SUBHEAD PARAGRAPHS â€” Inter, larger, comfortable measure.
      Real classes: .section-lead .vm-vs-lead .vm-mat-lead .vm-bh-lead
                     .vm-map-sub .lead
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.section-lead,
.vm-vs-lead,
.vm-mat-lead,
.vm-bh-lead,
.vm-map-sub,
.lead {
  font-family: var(--as-font-body) !important;   /* beats Astra Karla base */
  font-size: var(--as-fs-body-lg);
  font-weight: var(--as-fw-body);
  line-height: var(--as-lh-snug);
  color: var(--as-text-muted);
  max-width: 64ch;
  margin: 0 auto var(--as-s-7);
}

/* Centered leads keep their auto margins; left-aligned section leads
   (.vm-mat-lead .vm-vs-lead â€” left-aligned in DOM) reset to flush-left. */
.vm-mat-lead,
.vm-vs-lead {
  margin-left: 0;
  margin-right: 0;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   4. PARAGRAPHS & READING COPY.
      Base p + the article body (.entry-content). Tighter editorial measure
      on single-post / page reading columns.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
p {
  margin: 0 0 var(--as-s-5);
  line-height: var(--as-lh-body);
}

.entry-content p,
.single-post .entry-content p,
.page-template-default .entry-content p {
  font-family: var(--as-font-body) !important;   /* beats Astra/hook base on article body */
  font-size: var(--as-fs-body);
  line-height: var(--as-lh-body);
  color: var(--as-text);
  margin: 0 0 var(--as-s-5);
}

/* Long-form reading column gets a constrained measure for legibility. */
.single-post .entry-content,
.page .entry-content {
  max-width: var(--as-container-narrow);
}
.single-post .entry-content > .alignfull,
.single-post .entry-content > .alignwide {
  max-width: none;   /* full/wide blocks escape the reading measure */
}

/* First-paragraph emphasis on articles â€” subtle lead-in. */
.single-post .entry-content > p:first-of-type {
  font-size: var(--as-fs-body-lg);
  color: var(--as-text-strong);
  line-height: var(--as-lh-snug);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   5. LINKS â€” body/article links get the animated amber underline.
      Uses background-size on a gradient so the underline grows on hover
      (tasteful, not a hard text-decoration jump). Excludes buttons, menu
      links, and theme/UI link patterns so we don't underline CTAs/nav.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="btn"]):not([class*="ast-button"]):not(.menu-link):not([class*="vm-"]) {
  color: var(--as-link);
  text-decoration: none;
  font-weight: var(--as-fw-medium);
  background-image: linear-gradient(var(--as-accent), var(--as-accent));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% var(--as-bw-strong);       /* underline hidden at rest */
  padding-bottom: 1px;
  transition: background-size var(--as-dur-base) var(--as-ease-out),
              color var(--as-dur-fast) var(--as-ease-out);
}
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="btn"]):not([class*="ast-button"]):not(.menu-link):not([class*="vm-"]):hover,
.entry-content a:not(.wp-block-button__link):not(.wp-element-button):not([class*="btn"]):not([class*="ast-button"]):not(.menu-link):not([class*="vm-"]):focus-visible {
  color: var(--as-text-strong);
  background-size: 100% var(--as-bw-strong);      /* underline sweeps in on hover */
}

/* Blog index / archive post titles are links â€” keep them in the display family,
   navy at rest, amber on hover (no creeping underline on headline links). */
.archive .entry-title a,
body.blog .entry-title a {
  color: var(--as-text-strong);
  text-decoration: none;
  transition: color var(--as-dur-fast) var(--as-ease-out);
}
.archive .entry-title a:hover,
body.blog .entry-title a:hover {
  color: var(--as-amber-text);    /* amber-700 â€” AA on light cards (amber-dark was 2.25:1) */
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   6. STRONG / EM / SMALL.
      <strong> appears throughout body + injected widgets (FAQ answers, ticker,
      footer). <em> outside headings reads as warm amber emphasis.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
strong,
b,
.entry-content strong {
  font-weight: var(--as-fw-bold);
  color: var(--as-text-strong);
}

/* On dark sections strong should stay readable (white, not navy). */
.has-white-color strong,
.site-footer strong,
[style*="color:#FFFFFF"] strong {
  color: inherit;
}

em,
i {
  font-style: italic;
}

/* Body-copy <em> emphasis (not inside a heading) â†’ keystone amber, upright-ish. */
.entry-content em {
  color: var(--as-amber-text);    /* amber-700 â€” true AA on light (amber-dark was 2.25:1) */
  font-style: italic;
  font-weight: var(--as-fw-medium);
}

small,
.text-sm {
  font-size: var(--as-fs-caption);
  color: var(--as-text-muted);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   7. LISTS â€” comfortable rhythm in article body.
      Real selectors: .entry-content ul / ol (Gutenberg .wp-block-list maps here).
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.entry-content ul,
.entry-content ol,
.single-post .entry-content ul,
.single-post .entry-content ol {
  font-family: var(--as-font-body) !important;   /* beats Astra Karla base */
  font-size: var(--as-fs-body);
  line-height: var(--as-lh-body);
  color: var(--as-text);
  margin: 0 0 var(--as-s-5);
  padding-left: var(--as-s-6);
}
.entry-content li {
  margin-bottom: var(--as-s-2);
}
.entry-content li::marker {
  color: var(--as-accent);   /* amber bullets/numbers â€” keystone touch */
}
.entry-content ul {
  list-style: disc;
}
.entry-content ol {
  list-style: decimal;
}
/* Nested lists tighten a level. */
.entry-content li > ul,
.entry-content li > ol {
  margin: var(--as-s-2) 0 var(--as-s-2);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   8. BLOCKQUOTE â€” refined, architectural. Amber left rule, Space Grotesk pull,
      navy-soft tint panel. No serif (brand v6.0 has none). Premium, not cheap.
      Targets Gutenberg .wp-block-quote + article blockquote.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.entry-content blockquote,
.single-post .entry-content blockquote,
blockquote.wp-block-quote {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-medium);
  font-size: var(--as-fs-h5);
  line-height: var(--as-lh-snug);
  letter-spacing: var(--as-ls-tight);
  color: var(--as-text-strong);
  margin: var(--as-s-7) 0;
  padding: var(--as-s-5) var(--as-s-6);
  background: var(--as-surface-2);
  border-left: var(--as-bw-brutal) solid var(--as-accent);  /* 3px keystone rule */
  border-radius: 0 var(--as-r-md) var(--as-r-md) 0;
  position: relative;
}
/* Oversized opening quotation glyph â€” display-font, faint amber, behind text. */
.entry-content blockquote::before,
blockquote.wp-block-quote::before {
  content: "\201C";   /* left double quote */
  position: absolute;
  top: calc(-1 * var(--as-s-2));
  left: var(--as-s-4);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-black);
  font-size: 4rem;
  line-height: 1;
  color: var(--as-accent);
  opacity: .22;
  pointer-events: none;
}
.entry-content blockquote p,
blockquote.wp-block-quote p {
  font-family: inherit !important;   /* keep display family inside quote (beats .entry-content p) */
  font-size: inherit;
  color: inherit;
  margin-bottom: var(--as-s-3);
}
.entry-content blockquote p:last-child {
  margin-bottom: 0;
}
/* Citation â€” mono technical voice, muted, uppercase tracking. */
.entry-content blockquote cite,
blockquote.wp-block-quote cite,
.wp-block-quote__citation,
blockquote .wp-block-quote__citation {
  display: block;
  margin-top: var(--as-s-3);
  font-family: var(--as-font-mono);
  font-style: normal;
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-medium);
  letter-spacing: var(--as-ls-mono);
  text-transform: uppercase;
  color: var(--as-text-muted);
}
.entry-content blockquote cite::before,
blockquote.wp-block-quote cite::before {
  content: "\2014\00A0";   /* em-dash + nbsp, encoding-proof */
  color: var(--as-accent);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   9. TECHNICAL / MONO LABELS & NUMBERS.
      Keep JetBrains Mono ONLY for genuinely technical meta (timestamps, units,
      .meta, .portfolio-meta) â€” NOT for headings/body. This corrects the
      off-positioning where mono leaked into general UI.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.meta,
.portfolio-meta,
.entry-meta,
.posted-on,
time.entry-date {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-medium);
  letter-spacing: var(--as-ls-mono);
  color: var(--as-text-muted);
  text-transform: uppercase;
}

/* Stat / counter numerals â†’ display family, tabular, tight. The DOM ships
   these as inline style="font-family:'Playfair Display'...font-style:italic"
   on .vm-counter-num, plus hook 2826 forces Playfair on .vm-stat-num/.vm-tech-val.
   !important is required to beat that inline style + hook.
   We keep tabular-nums + tight tracking but swap to Space Grotesk (brand). */
.vm-counter-num,
.vm-stat-num,
.vm-tech-val,
.stat-number,
.stats-number {
  font-family: var(--as-font-display) !important;  /* beats inline Playfair + hook 2826 */
  font-style: normal !important;                   /* kill inline italic */
  font-weight: var(--as-fw-black);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: var(--as-ls-display);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   10. SELECTION & MISC.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
::selection {
  background: var(--as-accent);
  color: var(--as-on-amber);
}
hr,
.wp-block-separator {
  border: 0;
  border-top: var(--as-border-hair);
  margin: var(--as-s-7) 0;
}
.wp-block-separator.is-style-wide {
  border-top: var(--as-border-strong-line);
}

/* Inline code / kbd â€” mono, subtle chip (used in technical guides). */
.entry-content code,
.entry-content kbd {
  font-family: var(--as-font-mono);
  font-size: 0.9em;
  background: var(--as-surface-2);
  color: var(--as-text-strong);
  padding: 2px 6px;
  border-radius: var(--as-r-xs);
  border: var(--as-border-hair);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   11. RESPONSIVE â€” tablet / mobile rhythm.
      The clamp() type scale already fluidly shrinks; these tighten margins
      and the blockquote glyph on small screens.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 768px) {
  h1, .entry-title, .vm-bh-title,
  h2, .section-headline, .vm-vs-title, .vm-mat-title {
    margin-bottom: var(--as-s-4);
  }
  .section-lead,
  .vm-vs-lead,
  .vm-mat-lead,
  .vm-bh-lead,
  .vm-map-sub,
  .lead {
    margin-bottom: var(--as-s-6);
  }
  .entry-content blockquote,
  blockquote.wp-block-quote {
    padding: var(--as-s-4) var(--as-s-5);
    margin: var(--as-s-6) 0;
  }
  .entry-content blockquote::before,
  blockquote.wp-block-quote::before {
    font-size: 3rem;
  }
}

@media (max-width: 480px) {
  .entry-content ul,
  .entry-content ol {
    padding-left: var(--as-s-5);
  }
  /* Slightly looser body line-height on narrow screens for readability. */
  .entry-content p {
    line-height: var(--as-lh-body);
  }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   12. REDUCED MOTION â€” disable the animated underline sweep.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (prefers-reduced-motion: reduce) {
  .entry-content a {
    transition: none;
  }
}

/* ===== SECTION: layout ===== */
/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” LAYOUT  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Owns: page shell, containers, full/wide alignment, section vertical rhythm,
   Gutenberg group/column spacing, gap scale, vertical rhythm between blocks.

   Root cause being fixed: every block hard-codes inline `padding:80px 24px`
   (or 100px) so the previously-defined clamp() rhythm was purely decorative.
   This layer re-establishes ONE fluid section rhythm via --as-section-y and
   defeats the inline padding only where it exists (inline style => must use
   !important to win the cascade; nowhere else).

   Theme context (confirmed from DOM):
     #content.site-content > .ast-container > #primary.content-area.primary
       > #main.site-main > article > .entry-content.clear > [blocks]
     Astra 4.13 Â· ast-page-builder-template Â· ast-no-sidebar (full-width)
     Pages: homepage = body.page-id-2477 (.home) Â· county-hub = .page-id-2709
   ============================================================================ */


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   1. PAGE SHELL â€” kill horizontal overflow, neutralize Astra's own padded
      container so our full-bleed blocks can truly span edge-to-edge.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

html,
body {
  overflow-x: hidden;          /* belt-and-suspenders against full-bleed math */
  max-width: 100vw;
}

/* Astra's full-width builder template already removes the sidebar; we want the
   content column itself to be edge-to-edge so alignfull works without seams. */
.ast-page-builder-template .site-content > .ast-container {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  display: block;              /* drop Astra's grid so content-area is full   */
}

.ast-page-builder-template .content-area.primary,
.ast-page-builder-template #primary,
.ast-page-builder-template .site-main,
.ast-page-builder-template .ast-article-single,
.ast-page-builder-template .entry-content.clear {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* The block-editor content stream itself is the layout root for the page. */
.entry-content.clear {
  display: flow-root;          /* contain block margins, no rhythm collapse   */
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   2. CONTAINER PRIMITIVES â€” reusable max-width + horizontal gutter.
      Centers content; gutter is fluid (--as-gutter = 20â†’64px).
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.as-container,
.as-container-wide,
.as-container-narrow,
.as-container-form {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--as-gutter);
}

.as-container        { max-width: var(--as-container); }        /* 1240 default */
.as-container-wide   { max-width: var(--as-container-wide); }   /* 1440 showcase */
.as-container-narrow { max-width: var(--as-container-narrow); } /* 760 article   */
.as-container-form   { max-width: var(--as-container-form); }   /* 560 form / CTA */


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   3. GUTENBERG ALIGNMENT â€” full-bleed + wide, the WP way.
      .alignfull spans the viewport; its INNER constrained content is centered
      at --as-container. .alignwide caps at --as-container-wide.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Full-bleed band â€” escape any centered parent, span the whole viewport. */
.entry-content .alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Wide band â€” wider than reading column but not full bleed. */
.entry-content .alignwide {
  max-width: var(--as-container-wide);
  margin-left: auto;
  margin-right: auto;
}

/* Constrained groups center their own content at the default container width.
   WP exposes this via --wp--style--global--content-size / wide-size; we pin it
   to our tokens so every constrained block lines up on the same grid. */
.entry-content .is-layout-constrained {
  --wp--style--global--content-size: var(--as-container);
  --wp--style--global--wide-size: var(--as-container-wide);
}

/* The inner constrained children of a full-bleed group get centered + gutter,
   so a full-width navy band still keeps its text on the 1240 grid. */
.entry-content .alignfull.is-layout-constrained > :where(:not(.alignfull):not(.alignwide)) {
  max-width: var(--as-container);
  margin-left: auto;
  margin-right: auto;
}

.entry-content .alignfull.is-layout-constrained > .alignwide {
  max-width: var(--as-container-wide);
  margin-left: auto;
  margin-right: auto;
}

/* Cover blocks: keep the inner container on-grid + horizontally gutter-padded. */
.entry-content .wp-block-cover.alignfull > .wp-block-cover__inner-container {
  width: 100%;
  max-width: var(--as-container);
  margin-inline: auto;
  padding-inline: var(--as-gutter);
}

/* Tailwind-utility inner wrappers used by the calculator / custom sections
   (max-w-5xl mx-auto etc.) â€” make sure they still get the page gutter so they
   never kiss the viewport edge on mid-size screens. */
.entry-content .alignfull > .mx-auto[class*="max-w-"] {
  padding-inline: var(--as-gutter);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   4. SECTION VERTICAL RHYTHM â€” the core fix.
      ONE fluid scale for every top-level band. !important is required ONLY
      because the bands carry inline `padding:80px 24px` / `padding-top:100px`
      that would otherwise win. We keep horizontal padding on the token gutter
      and let the rhythm token drive the vertical.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Standard full-bleed / cover bands and constrained groups in the flow. */
.entry-content > .alignfull,
.entry-content > .wp-block-group.alignfull,
.entry-content > .wp-block-cover.alignfull:not(.is-hero),
.entry-content > .wp-block-uagb-container[data-block-type="container"] {
  padding-top: var(--as-section-y) !important;     /* override inline 80/100px */
  padding-bottom: var(--as-section-y) !important;
  padding-left: var(--as-gutter) !important;
  padding-right: var(--as-gutter) !important;
}

/* Hero cover keeps a taller, intentional rhythm (it sets the page's first
   impression). Still token-driven, never an arbitrary inline number. */
.entry-content > .wp-block-cover.is-hero {
  padding-top: calc(var(--as-section-y) * 1.15) !important;
  padding-bottom: calc(var(--as-section-y) * 1.15) !important;
  padding-left: var(--as-gutter) !important;
  padding-right: var(--as-gutter) !important;
}

/* Custom vm-* bands that are also full-bleed sections (counter, marquee).
   The trust-strip is a compact band, so it uses the small rhythm. */
.entry-content > .vm-counter-section.alignfull {
  padding-top: var(--as-section-y) !important;
  padding-bottom: var(--as-section-y) !important;
  padding-left: var(--as-gutter) !important;
  padding-right: var(--as-gutter) !important;
}

.entry-content > .vm-trust-strip {
  padding-block: var(--as-section-y-sm);
  padding-inline: var(--as-gutter);
}

/* Marquee is a thin moving strip â€” no big vertical pad, just breathing room. */
.entry-content > .vm-marquee.alignfull {
  padding-block: var(--as-s-5);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   5. VERTICAL RHYTHM BETWEEN BLOCKS â€” kill stray block margins so the
      section padding (above) is the single source of inter-section spacing.
      Adjacent same-color bands shouldn't double their gap, and the WP default
      top-margin on blocks must not fight our padding rhythm.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.entry-content > * {
  margin-block: 0;             /* sections butt cleanly; padding owns rhythm   */
}

/* Re-establish a calm flow gap ONLY for loose blocks that are NOT full bands
   (e.g. a stray paragraph/heading dropped straight in the stream). */
.entry-content > :where(p, h2, h3, h4, ul, ol):not(.alignfull):not(.alignwide) {
  max-width: var(--as-container);
  margin-inline: auto;
  margin-block: var(--as-stack);
  padding-inline: var(--as-gutter);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   6. GUTENBERG GROUP / COLUMNS â€” consistent gap scale + inner container.
      Inner constrained containers stay on the grid; columns use one gap token.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Inner container of a constrained group = the on-grid content column. */
.entry-content .wp-block-group__inner-container,
.entry-content .wp-block-group.is-layout-constrained > :where(:not(.alignfull):not(.alignwide)) {
  margin-inline: auto;
}

/* Columns: single horizontal+vertical gap token (no per-block ad-hoc gaps). */
.entry-content .wp-block-columns {
  display: flex;
  flex-wrap: wrap;
  gap: var(--as-s-6);          /* 32px desktop column gutter                   */
  align-items: stretch;
  margin-block: 0;
}

.entry-content .wp-block-columns.alignwide {
  max-width: var(--as-container-wide);
  margin-inline: auto;
}

/* A single column flexes by its set width or fills evenly when unflagged. */
.entry-content .wp-block-column {
  flex-basis: 0;
  flex-grow: 1;
  min-width: 0;                /* allow shrink; prevent overflow on long text  */
  margin: 0;
}

/* Honor explicit column flex-basis (WP inline width) but never overflow. */
.entry-content .wp-block-column[style*="flex-basis"] {
  flex-grow: 0;
}

/* Stack gap inside groups/columns: normalize WP block-gap to our stack token
   so content rhythm inside a panel matches the rest of the system. */
.entry-content .wp-block-group.is-layout-constrained,
.entry-content .wp-block-column.is-layout-flow {
  --wp--style--block-gap: var(--as-stack);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   7. MEDIA â€” never let an image/iframe/table blow out a column.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.entry-content img,
.entry-content video,
.entry-content iframe,
.entry-content figure,
.entry-content table {
  max-width: 100%;
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   8. PAGE-SPECIFIC â€” homepage (2477) + county-hub (2709) share the same
      stream layout; alternating soft surface on adjacent plain bands gives
      a quiet vertical rhythm without random backgrounds.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.page-id-2477 .entry-content > .wp-block-group.alignfull:not(.has-background):nth-of-type(even),
.page-id-2709 .entry-content > .wp-block-group.alignfull:not(.has-background):nth-of-type(even) {
  background-color: var(--as-surface-2);   /* slate-100 â€” token, not a hex     */
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   9. RESPONSIVE â€” tighten gutters & rhythm on tablet / phone, stack columns.
      Breakpoints: 768 (tablet), 480 (phone). The clamp tokens already scale
      smoothly; these rules handle structural collapse only.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

@media (max-width: 768px) {
  /* Columns stack to a single column below tablet. */
  .entry-content .wp-block-columns {
    flex-direction: column;
    gap: var(--as-s-5);        /* 24px stacked gutter                          */
  }

  .entry-content .wp-block-column {
    flex-basis: auto !important;   /* override WP inline flex-basis when stacked */
    width: 100% !important;
  }
}

@media (max-width: 480px) {
  /* Trim the section rhythm a touch on phones so bands don't feel cavernous;
     still token-derived, still consistent. !important to beat inline padding. */
  .entry-content > .alignfull,
  .entry-content > .wp-block-group.alignfull,
  .entry-content > .wp-block-cover.alignfull:not(.is-hero),
  .entry-content > .vm-counter-section.alignfull {
    padding-top: var(--as-section-y-sm) !important;
    padding-bottom: var(--as-section-y-sm) !important;
    padding-left: var(--as-s-4) !important;     /* 16px â€” tight phone gutter    */
    padding-right: var(--as-s-4) !important;
  }

  .entry-content > .wp-block-cover.is-hero {
    padding-top: var(--as-section-y) !important;
    padding-bottom: var(--as-section-y) !important;
    padding-left: var(--as-s-4) !important;
    padding-right: var(--as-s-4) !important;
  }

  /* Inner gutters follow the tight phone gutter too. */
  .entry-content .wp-block-cover.alignfull > .wp-block-cover__inner-container,
  .entry-content .alignfull > .mx-auto[class*="max-w-"],
  .as-container,
  .as-container-wide,
  .as-container-narrow,
  .as-container-form {
    padding-inline: var(--as-s-4);
  }
}

/* ===== SECTION: BUTTONS & CTA SYSTEM ===== */
/* ----------------------------------------------------------------------------
   AcoperiÈ™ Sigur â€” Brand v6.0 "Systematic. Brutal. Scalable."
   The conversion layer. One disciplined button primitive, mapped onto the real
   live classes (Astra .ast-custom-button-link / WP .wp-block-button__link /
   custom .vm-*). Primary = amber keystone + navy text + Space Grotesk 700 +
   gold-glow on hover + tactile press. Secondary = navy. Ghost = outline-on-dark.
   Sizes sm / base / lg. Icon+label flex-aligned. Tap target >= 44px everywhere.

   !important is used ONLY where Astra/WP ship competing inline styles or theme
   defaults we must override (color tokens on .has-*-color, inline border-radius,
   per-block inline padding). Each such use is annotated.
   ---------------------------------------------------------------------------- */

/* ============================================================================
   1. SHARED BUTTON PRIMITIVE
   The single source of truth for every clickable CTA. Real classes share it.
   ============================================================================ */
.wp-block-button__link,
.wp-element-button,
a.ast-custom-button-link .ast-custom-button,
.vm-header-cta,
.vm-cta-btn,
a.vm-cta-yellow,
a.vm-cta-outline,
input[type="submit"],
button[type="submit"],
.srfm-submit-btn,
.srfm-submit-richtext-container button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--as-s-2);                       /* icon â†” label rhythm */
  font-family: var(--as-font-display);      /* Space Grotesk â€” kills Rubik */
  font-weight: var(--as-fw-bold);           /* 700 */
  font-size: var(--as-fs-body-sm);
  line-height: 1;
  letter-spacing: var(--as-ls-tight);
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  border: 0;
  border-radius: var(--as-r-md);            /* 12px â€” one CTA radius, network-wide */
  /* 44px+ tap target: 15px block padding + ~17px cap height â‰ˆ 47px */
  padding: 15px var(--as-s-6);
  min-height: 48px;
  position: relative;
  isolation: isolate;
  -webkit-appearance: none;
          appearance: none;
  transition: var(--as-t-transform),
              background-color var(--as-dur-base) var(--as-ease-out),
              border-color var(--as-dur-base) var(--as-ease-out),
              color var(--as-dur-base) var(--as-ease-out);
  will-change: transform;
}

/* Icon sizing inside any button (emoji or inline SVG) */
.wp-block-button__link svg,
.wp-element-button svg,
.vm-header-cta svg,
.vm-cta-btn svg {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
  fill: currentColor;
}

/* ============================================================================
   2. PRIMARY â€” AMBER KEYSTONE (the money button)
   Amber fill, navy text, Space Grotesk 700, gold glow on hover, tactile press.
   Maps onto: amber WP buttons, the legacy yellow aliases, custom .vm-cta-btn,
   and the SureForms submit. This is the default for solid (non-outline) WP btns.
   ============================================================================ */
.wp-block-button:not(.is-style-outline):not(.is-style-outline--1):not(.is-style-outline--2) .wp-block-button__link,
.wp-block-button__link.has-vivid-yellow-background-color,
.wp-block-button__link[style*="background-color:#FFB627"],
.wp-block-button__link[style*="background-color:#ffb627"],
.vm-cta-btn,
.vm-header-cta,
a.vm-cta-yellow,
input[type="submit"],
button[type="submit"],
.srfm-submit-btn,
.srfm-submit-richtext-container button {
  /* !important: overrides Astra/WP inline background-color + .has-*-color tokens */
  background: var(--as-action) !important;
  color: var(--as-action-text) !important;  /* navy on amber = max contrast */
  box-shadow: var(--as-elev-gold-sm), var(--as-elev-inset);
}
.wp-block-button:not(.is-style-outline):not(.is-style-outline--1):not(.is-style-outline--2) .wp-block-button__link:hover,
.wp-block-button__link.has-vivid-yellow-background-color:hover,
.wp-block-button__link[style*="background-color:#FFB627"]:hover,
.vm-cta-btn:hover,
.vm-header-cta:hover,
a.vm-cta-yellow:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.srfm-submit-btn:hover,
.srfm-submit-richtext-container button:hover {
  background: var(--as-action-hover) !important;  /* amber-dark */
  color: var(--as-action-text) !important;
  transform: translateY(-2px);
  box-shadow: var(--as-elev-gold), var(--as-elev-inset);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:active,
.vm-cta-btn:active,
.vm-header-cta:active,
input[type="submit"]:active,
button[type="submit"]:active,
.srfm-submit-btn:active {
  transform: translateY(0);                 /* tactile press settle */
  box-shadow: var(--as-elev-gold-sm);
  transition-duration: var(--as-dur-fast);
}

/* ============================================================================
   3. SECONDARY â€” CYAN-BLUE WP buttons re-skinned to NAVY (architectural)
   Solid navy fill, white text, sky accent on hover. The "second" action.
   Targets the cyan-blue blocks shipped in the DOM (hero left/contact strip).
   ============================================================================ */
.wp-block-button__link.has-vivid-cyan-blue-background-color,
.wp-block-button__link[style*="background-color:#0EA5E9"] {
  /* !important: overrides WP .has-vivid-cyan-blue-background-color token */
  background: var(--as-navy) !important;
  color: var(--as-on-dark) !important;
  box-shadow: var(--as-elev-2);
}
.wp-block-button__link.has-vivid-cyan-blue-background-color:hover,
.wp-block-button__link[style*="background-color:#0EA5E9"]:hover {
  background: var(--as-navy-soft) !important;
  color: var(--as-on-dark) !important;
  transform: translateY(-2px);
  box-shadow: var(--as-elev-3), inset 0 0 0 1px var(--as-accent-2);  /* sky hairline rim */
}
.wp-block-button__link.has-vivid-cyan-blue-background-color:active {
  transform: translateY(0);
  box-shadow: var(--as-elev-2);
  transition-duration: var(--as-dur-fast);
}

/* ============================================================================
   4. GHOST / OUTLINE-ON-DARK
   WP outline blocks (is-style-outline + brand variants --1 / --2) live mostly
   on dark hero/cover bands. Sky-tinted outline, white text, fills softly on hover.
   ============================================================================ */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline--1 .wp-block-button__link,
.wp-block-button.is-style-outline--2 .wp-block-button__link,
a.vm-cta-outline {
  /* !important: overrides WP/Astra inline border + background:transparent none */
  background: transparent !important;
  color: var(--as-on-dark) !important;
  border: var(--as-bw-strong) solid rgba(255, 255, 255, .45) !important;
  box-shadow: none;
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline--1 .wp-block-button__link:hover,
.wp-block-button.is-style-outline--2 .wp-block-button__link:hover,
a.vm-cta-outline:hover {
  background: rgba(255, 255, 255, .10) !important;
  border-color: var(--as-white) !important;
  color: var(--as-white) !important;
  transform: translateY(-2px);
}
.wp-block-button.is-style-outline .wp-block-button__link:active,
a.vm-cta-outline:active {
  transform: translateY(0);
  transition-duration: var(--as-dur-fast);
}

/* Ghost on LIGHT background (when an outline button sits on the page canvas):
   slate outline + navy text, amber wash on hover. */
.entry-content :not(.wp-block-cover):not([class*="navy"]):not([class*="dark"]) > .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--as-text-strong) !important;
  border-color: var(--as-border-strong) !important;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}
.entry-content :not(.wp-block-cover):not([class*="navy"]):not([class*="dark"]) > .wp-block-button.is-style-outline .wp-block-button__link:hover {
  border-color: var(--as-accent) !important;
  background: rgba(255, 182, 39, .10) !important;  /* amber wash â€” token-derived tint */
  color: var(--as-text-strong) !important;
}

/* ============================================================================
   5. ASTRA HEADER CTA â€” .ast-custom-button-link (desktop "Cere ofertÄƒ")
   Astra wraps a label div .ast-custom-button inside the anchor. Style the inner
   div as the visible pill; neutralise the duplicate .menu-link sibling.
   ============================================================================ */
a.ast-custom-button-link {
  display: inline-flex;
  text-decoration: none;
  line-height: 1;
}
a.ast-custom-button-link .ast-custom-button {
  /* !important: overrides Astra header-button theme color/padding defaults */
  background: var(--as-action) !important;
  color: var(--as-action-text) !important;
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-body-sm) !important;
  letter-spacing: var(--as-ls-tight);
  padding: 11px 22px !important;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--as-r-sm) !important;  /* 8px â€” compact header scale */
  box-shadow: var(--as-elev-gold-sm), var(--as-elev-inset);
  transition: var(--as-t-transform), background-color var(--as-dur-base) var(--as-ease-out);
}
a.ast-custom-button-link:hover .ast-custom-button {
  background: var(--as-action-hover) !important;
  transform: translateY(-2px);
  box-shadow: var(--as-elev-gold);
}
a.ast-custom-button-link:active .ast-custom-button {
  transform: translateY(0);
  transition-duration: var(--as-dur-fast);
}
/* Astra ships a duplicate plain-text .menu-link beside the button â€” hide it */
.ast-builder-button-wrap > a.menu-link {
  display: none;
}

/* Header CTA injected variant: compact, amber, never wraps */
.vm-header-cta {
  margin-left: var(--as-s-4);
  padding: 11px 20px;
  min-height: 44px;
  border-radius: var(--as-r-sm) !important;  /* 8px header scale */
  font-size: var(--as-fs-body-sm);
}

/* ============================================================================
   6. SIZE MODIFIERS â€” sm / base / lg  (base = primitive default above)
   Apply alongside any CTA class, e.g. <a class="vm-cta-btn vm-btn-lg">.
   WP custom-font-size blocks set inline font-size; we govern padding/min-height.
   ============================================================================ */
.vm-btn-sm,
.wp-block-button.is-style-sm .wp-block-button__link {
  padding: 10px var(--as-s-4) !important;
  min-height: 44px;                          /* WCAG floor even at "sm" */
  font-size: var(--as-fs-caption);
  border-radius: var(--as-r-sm) !important;  /* 8px */
}
.vm-btn-lg,
.wp-block-button.is-style-lg .wp-block-button__link {
  padding: 19px var(--as-s-7) !important;
  min-height: 60px;
  font-size: var(--as-fs-body-lg);
  border-radius: var(--as-r-lg) !important;  /* 16px */
}
.vm-btn-block,
.wp-block-button.is-style-block .wp-block-button__link {
  display: flex;
  width: 100%;
}

/* ============================================================================
   7. COVER / HERO buttons â€” keep gold-glow legibility on dark imagery
   Real selector: .wp-block-cover .wp-block-button__link
   ============================================================================ */
.wp-block-cover .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  box-shadow: var(--as-elev-gold);           /* stronger glow lifts off photo */
}
.wp-block-cover .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  box-shadow: var(--as-elev-gold), 0 0 0 1px rgba(255, 255, 255, .12);
}

/* ============================================================================
   8. MOBILE STICKY ACTION BAR â€” #vm-mobile-sticky (phone / WhatsApp / form)
   Three equal CTAs pinned bottom on mobile. Sharp, branded, >=48px tall.
   ============================================================================ */
#vm-mobile-sticky a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--as-s-1);
  flex: 1;
  min-height: 48px;
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-extrabold);       /* 800 â€” small label, needs weight */
  font-size: var(--as-fs-caption);
  letter-spacing: var(--as-ls-tight);
  line-height: 1.05;
  text-align: center;
  text-decoration: none;
  border-radius: var(--as-r-sm);             /* 8px */
  transition: transform var(--as-dur-fast) var(--as-ease-out);
}
#vm-mobile-sticky .vm-sticky-phone {
  background: var(--as-action);
  color: var(--as-action-text);
}
#vm-mobile-sticky .vm-sticky-whatsapp {
  background: #25D366;                        /* WhatsApp brand green â€” external mark */
  color: var(--as-white);
}
#vm-mobile-sticky .vm-sticky-form {
  background: var(--as-sky-text);            /* sky-700 fill so white label passes AA (5.9:1; #0EA5E9 was 2.77:1) */
  color: var(--as-on-dark);
}
#vm-mobile-sticky a:active {
  transform: scale(.96);                      /* tactile tap feedback */
}

/* Floating sticky form (desktop) submit â€” JS injects <button class="submit"> */
.vm-sticky-form button.submit {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-extrabold);
  background: var(--as-action) !important;    /* !important: overrides JS inline gradient */
  color: var(--as-action-text) !important;
  border-radius: var(--as-r-sm) !important;
  box-shadow: var(--as-elev-gold-sm);
  min-height: 44px;
  transition: var(--as-t-transform), background-color var(--as-dur-fast) var(--as-ease-out);
}
.vm-sticky-form button.submit:hover {
  background: var(--as-action-hover) !important;
  transform: translateY(-2px);
  box-shadow: var(--as-elev-gold);
}

/* ============================================================================
   9. MENU TOGGLES â€” hamburger open + drawer close. Square 44px tap targets.
   Real selectors: button.ast-menu-toggle, .menu-toggle.main-header-menu-toggle,
   #menu-toggle-close.menu-toggle-close, .mobile-menu-toggle-icon
   ============================================================================ */
.menu-toggle.main-header-menu-toggle,
button.ast-menu-toggle,
#menu-toggle-close.menu-toggle-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: var(--as-s-2);
  border: 0;
  border-radius: var(--as-r-sm);
  background: transparent;
  color: var(--as-on-dark);                   /* white iconography on navy header */
  cursor: pointer;
  transition: background-color var(--as-dur-fast) var(--as-ease-out),
              color var(--as-dur-fast) var(--as-ease-out);
}
.menu-toggle.main-header-menu-toggle .mobile-menu-toggle-icon,
.menu-toggle.main-header-menu-toggle svg,
button.ast-menu-toggle svg,
#menu-toggle-close.menu-toggle-close svg {
  color: inherit;
  fill: currentColor;
}
.menu-toggle.main-header-menu-toggle:hover,
button.ast-menu-toggle:hover {
  background: rgba(255, 255, 255, .08);
}
#menu-toggle-close.menu-toggle-close:hover {
  background: rgba(255, 255, 255, .10);
  color: var(--as-accent);                    /* amber tint on close hover */
}

/* ============================================================================
   10. FOCUS-VISIBLE â€” accessible sky halo on every interactive button
   ============================================================================ */
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
a.ast-custom-button-link:focus-visible .ast-custom-button,
.vm-header-cta:focus-visible,
.vm-cta-btn:focus-visible,
input[type="submit"]:focus-visible,
button[type="submit"]:focus-visible,
.srfm-submit-btn:focus-visible,
.vm-sticky-form button.submit:focus-visible,
#vm-mobile-sticky a:focus-visible,
.menu-toggle.main-header-menu-toggle:focus-visible,
button.ast-menu-toggle:focus-visible,
#menu-toggle-close.menu-toggle-close:focus-visible {
  outline: var(--as-bw-strong) solid var(--as-focus-ring);
  outline-offset: 3px;
  box-shadow: var(--as-elev-focus);
}

/* ============================================================================
   11. RESPONSIVE
   ============================================================================ */
@media (max-width: 768px) {
  /* Header amber CTA hidden on mobile (sticky bar + drawer take over) */
  .vm-header-cta { display: none; }

  /* Solid CTAs go full-width in stacked mobile layouts for fat tap targets */
  .wp-block-button.is-vertical .wp-block-button__link,
  .vm-cta-btn.vm-btn-block {
    display: flex;
    width: 100%;
  }

  /* Trim the oversized lg button on small screens */
  .vm-btn-lg,
  .wp-block-button.is-style-lg .wp-block-button__link {
    padding: 16px var(--as-s-6) !important;
    min-height: 54px;
  }
}

@media (max-width: 480px) {
  /* Keep label + icon on one line; allow wrap only as last resort */
  .wp-block-button__link,
  .wp-element-button,
  .vm-cta-btn {
    white-space: normal;
  }
  #vm-mobile-sticky a {
    font-size: var(--as-fs-meta);             /* 3 buttons fit narrow viewports */
  }
}

/* ============================================================================
   12. MOTION SAFETY â€” respect reduced-motion preference
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
  .wp-block-button__link,
  .wp-element-button,
  a.ast-custom-button-link .ast-custom-button,
  .vm-header-cta,
  .vm-cta-btn,
  .vm-sticky-form button.submit,
  #vm-mobile-sticky a,
  input[type="submit"],
  button[type="submit"],
  .srfm-submit-btn {
    transition: none !important;
    transform: none !important;
  }
}

/* ============================================================================
   AUDIT v11.1 â€” contrast fixes (visual audit)
   ============================================================================ */
/* Hero secondary CTA â€” outline button on the DARK hero cover. Audit: dark text
   on dark bg = invisible. Force readable white text + translucent white border. */
.is-hero a.vm-cta-outline,
.is-hero a[class*="outline"],
.wp-block-cover.has-black-background-color a.vm-cta-outline,
.wp-block-cover.has-black-background-color a[class*="outline"] {
  color: #fff !important;
  border: 2px solid rgba(255,255,255,.55) !important;
  background: transparent !important;
}
.is-hero a.vm-cta-outline:hover,
.is-hero a[class*="outline"]:hover,
.wp-block-cover.has-black-background-color a[class*="outline"]:hover {
  color: var(--as-navy) !important;
  background: #fff !important;
  border-color: #fff !important;
}
/* Calculator estimate CTA (M2) â€” was white-on-sky #0EA5E9 = 2.58:1 (fails AA) and
   off-brand. Restyle to the brand primary: amber keystone fill + navy text (10:1). */
a.bg-primary,
a.bg-primary.text-white,
.bg-primary.font-heading {
  background: var(--as-accent) !important;       /* amber #FFB627 */
  background-image: none !important;
  color: var(--as-navy) !important;
}
a.bg-primary:hover,
a.bg-primary.text-white:hover {
  background: var(--as-accent-dark, #E89E15) !important;   /* real token (brand-swap aware) */
  color: var(--as-navy) !important;
}
a.bg-primary *,
.bg-primary.font-heading * { color: var(--as-navy) !important; }
/* ===== SECTION: components ===== */
/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” COMPONENT LIBRARY  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Consolidates ~14 legacy override hooks (2562 / 2814 / 2826 / 2831 / 2822 / 2847)
   into ONE disciplined component layer. Every value references a token from
   00-tokens.css (--as-*). No Rubik / Karla / Playfair / JetBrains â€” display tier
   = Space Grotesk, body = Inter, technical meta = mono.

   Radii ........ --as-r-xs/sm/md/lg/xl/2xl  (4/8/12/16/20/28)
   Elevation .... --as-elev-1..4 + --as-elev-gold (CTA glow). No random shadows.
   Hover lift ... translateY(-4px to -6px) + step up one elevation level.
   Hard edges ... only on technical data (materials table inner cells use sharp
                  separators; outer frame stays --as-r-lg per brand "sharp data").

   Selectors below were CONFIRMED against the live DOM (homepage/despre/service).
   !important is used ONLY to defeat Astra/Spectra theme defaults and the legacy
   inline styles + stacked hooks still shipping; each block notes why.
   ============================================================================ */


/* ============================================================================
   0. SHARED CARD PRIMITIVE
   One radius, one border, one elevation, one hover transition for every card.
   ============================================================================ */
.entry-content .img-card,
.entry-content .service-card,
.entry-content .portfolio-card,
.vm-counter-card,
.vm-sla-badge {
  --as-card-radius: var(--as-r-lg);
  background: var(--as-surface);
  border: var(--as-border-hair);
  border-radius: var(--as-card-radius);
  box-shadow: var(--as-elev-1);
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
  will-change: transform;
}


/* ============================================================================
   1. IMAGE CARDS  (.img-card â†’ figure + .card-body + .card-link)
   Homepage "servicii" grid. Replaces the legacy 3D-tilt + cyan glow (hook 2562)
   with a calm, premium lift. Keeps the photo zoom â€” it converts.
   ============================================================================ */
.entry-content .img-card {
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  /* kill the legacy rotateY/rotateX tilt + perspective from hook 2562 */
  perspective: none !important;
}
.entry-content .img-card:hover {
  transform: translateY(-6px) !important;        /* defeat hook 2562 rotate transform */
  box-shadow: var(--as-elev-3) !important;
  border-color: var(--as-accent-2) !important;
}
.entry-content .img-card .wp-block-image {
  margin: 0;
  overflow: hidden;
  border-radius: 0;                                /* image flush to card top */
}
.entry-content .img-card .wp-block-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform var(--as-dur-slow) var(--as-ease-out);
}
.entry-content .img-card:hover .wp-block-image img { transform: scale(1.05); }

.entry-content .img-card .card-body {
  padding: var(--as-s-5);                          /* 24px */
  display: flex;
  flex-direction: column;
  gap: var(--as-s-3);
  flex: 1 1 auto;
}
.entry-content .img-card h3,
.entry-content .img-card .card-body h3 {
  font-family: var(--as-font-display);
  font-size: var(--as-fs-h5);
  font-weight: var(--as-fw-bold);
  line-height: var(--as-lh-heading);
  letter-spacing: var(--as-ls-tight);
  color: var(--as-text-strong);
  margin: 0;
}
.entry-content .img-card h3 a { color: inherit; text-decoration: none; }
.entry-content .img-card h3 a:hover { color: var(--as-sky-text); }  /* AA on white (sky was 2.77:1) */
.entry-content .img-card p {
  font-family: var(--as-font-body);
  color: var(--as-text-muted);
  font-size: var(--as-fs-body-sm);
  line-height: var(--as-lh-body);
  margin: 0;
}
/* card-link: a confident Space-Grotesk action label, mono-ish tracking */
.entry-content .img-card .card-link {
  margin: auto 0 0;                                /* pin to bottom */
}
.entry-content .img-card .card-link a {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-semibold);
  font-size: var(--as-fs-body-sm);
  letter-spacing: var(--as-ls-wide);
  text-transform: uppercase;
  color: var(--as-link) !important;               /* override inline color:#0EA5E9 */
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  transition: var(--as-t-fast);
}
.entry-content .img-card .card-link a:hover { color: var(--as-link-hover) !important; gap: var(--as-s-3); }


/* ============================================================================
   2. SERVICE CARDS  (.service-card â€” bordered "zone" cards, homepage)
   Inline styles set border-color:#0EA5E9;border-width:2px;border-radius:12px.
   Normalize to the token system with a left keystone accent.
   ============================================================================ */
.entry-content .service-card {
  height: 100%;
  border-width: var(--as-bw-hair) !important;      /* defeat inline border-width:2px */
  border-color: var(--as-border) !important;       /* defeat inline #0EA5E9 hairline */
  border-radius: var(--as-r-md) !important;        /* defeat inline 12px â†’ token 12px */
  border-left: var(--as-bw-brutal) solid var(--as-accent-2) !important; /* keystone edge */
  padding: var(--as-s-5) var(--as-s-5) !important; /* normalize inline 28/24 padding */
  display: flex;
  flex-direction: column;
  gap: var(--as-s-2);
}
.entry-content .service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--as-elev-3);
  border-color: var(--as-border-strong) !important;
  border-left-color: var(--as-accent) !important; /* edge warms to amber on hover */
}
/* the "âœ“ ECHIPÄ‚ ACTIVÄ‚" eyebrow inside service cards */
.entry-content .service-card > p:first-child {
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-bold) !important;
  font-size: var(--as-fs-eyebrow) !important;
  letter-spacing: var(--as-ls-wider) !important;
  text-transform: uppercase;
  color: var(--as-sky-text) !important;            /* AA on white (sky #0EA5E9 was 2.77:1) */
  margin: 0 0 var(--as-s-1);
}
.entry-content .service-card h3 {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h6) !important;           /* defeat inline 20px */
  font-weight: var(--as-fw-extrabold) !important;
  letter-spacing: var(--as-ls-tight);
  margin: 0;
}
.entry-content .service-card h3 a { color: var(--as-text-strong); text-decoration: none; }
.entry-content .service-card h3 a:hover { color: var(--as-sky-text); }  /* AA on white (sky was 2.77:1) */
.entry-content .service-card p {
  font-family: var(--as-font-body) !important;
  color: var(--as-text-muted) !important;          /* normalize inline #4A5568/#94A3B8 */
  font-size: var(--as-fs-caption) !important;
  line-height: var(--as-lh-snug);
}
.entry-content .service-card p[style*="italic"] { color: var(--as-text-faint) !important; }
.entry-content .service-card p:last-child a {
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-semibold);
  color: var(--as-link) !important;                /* defeat inline #0EA5E9 */
  text-decoration: none;
}


/* ============================================================================
   3. PORTFOLIO CARDS  (.portfolio-card â†’ img + .portfolio-overlay)
   Image + bottom gradient overlay. Sharpen the type, token-ize the badge.
   ============================================================================ */
.entry-content .portfolio-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  margin-bottom: var(--as-s-5);
}
.entry-content .portfolio-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--as-dur-slow) var(--as-ease-out);
}
.entry-content .portfolio-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--as-elev-4);
  border-color: var(--as-border-strong);
}
.entry-content .portfolio-card:hover img { transform: scale(1.06); }
.entry-content .portfolio-card .portfolio-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--as-s-5);
  background: linear-gradient(0deg,
              rgba(15, 23, 42, .94) 0%,
              rgba(15, 23, 42, .45) 55%,
              transparent 100%);
  color: var(--as-on-dark);
  gap: var(--as-s-2);
  z-index: 2;
}
/* portfolio-tag: amber pill, Space Grotesk, tight tracking */
.entry-content .portfolio-card .portfolio-tag {
  align-self: flex-start;
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-wider);
  text-transform: uppercase;
  color: var(--as-on-amber);
  background: var(--as-accent);
  padding: var(--as-s-1) var(--as-s-3);
  border-radius: var(--as-r-xs);
  margin: 0;
}
.entry-content .portfolio-card .portfolio-overlay h3 {
  font-family: var(--as-font-display) !important;
  color: var(--as-on-dark) !important;
  font-size: var(--as-fs-h6) !important;
  font-weight: var(--as-fw-bold) !important;
  line-height: var(--as-lh-heading) !important;
  letter-spacing: var(--as-ls-tight);
  margin: 0 !important;
}
/* portfolio-meta: technical mono detail line (180 mp Â· 4 zile) */
.entry-content .portfolio-card .portfolio-meta {
  font-family: var(--as-font-mono) !important;
  color: var(--as-on-dark-muted) !important;
  font-size: var(--as-fs-meta) !important;
  letter-spacing: var(--as-ls-mono);
  line-height: var(--as-lh-snug) !important;
  margin: 0;
}


/* ============================================================================
   4. TEAM BANNER  (.team-banner â†’ img + .team-content)
   Split navy panel. Token-ize, switch to display/body fonts.
   ============================================================================ */
.entry-content .team-banner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  border-radius: var(--as-r-lg);
  overflow: hidden;
  background: var(--as-bg-dark);
  box-shadow: var(--as-elev-3);
  border: var(--as-border-dark-line);
}
.entry-content .team-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 380px;
  display: block;
}
.entry-content .team-banner .team-content {
  padding: var(--as-s-7);                          /* 48px */
  color: var(--as-on-dark);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--as-s-4);
}
.entry-content .team-banner .team-content h3 {
  font-family: var(--as-font-display);
  color: var(--as-on-dark) !important;
  font-size: var(--as-fs-h3) !important;
  font-weight: var(--as-fw-extrabold);
  line-height: var(--as-lh-heading);
  letter-spacing: var(--as-ls-tight);
  margin: 0;
}
.entry-content .team-banner .team-content p {
  font-family: var(--as-font-body);
  color: var(--as-on-dark-muted) !important;
  font-size: var(--as-fs-body);
  line-height: var(--as-lh-body);
  margin: 0;
}
/* the inline amber CTA inside the team banner */
.entry-content .team-banner .team-content a[style*="FFB627"],
.entry-content .team-banner .team-content a[style*="ffb627"] {
  align-self: flex-start;
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-bold) !important;
  background: var(--as-action) !important;
  color: var(--as-action-text) !important;
  border-radius: var(--as-r-sm) !important;
  box-shadow: var(--as-elev-gold-sm);
  transition: var(--as-t-transform);
}
.entry-content .team-banner .team-content a[style*="FFB627"]:hover {
  transform: translateY(-2px);
  box-shadow: var(--as-elev-gold);
  background: var(--as-action-hover) !important;
}
@media (max-width: 768px) {
  .entry-content .team-banner { grid-template-columns: 1fr; }
  .entry-content .team-banner img { min-height: 240px; }
  .entry-content .team-banner .team-content { padding: var(--as-s-6); }
}


/* ============================================================================
   5. TRUST STRIP  (.vm-trust-strip â†’ __wrap / __label / __items + items)
   Below-hero certification strip. Consolidates hook 2814 + 2826 (which fought).
   ============================================================================ */
.vm-trust-strip {
  background: var(--as-surface) !important;        /* defeat hook 2826 --vm-cream */
  border-top: var(--as-border-hair);
  border-bottom: var(--as-border-hair);
  padding: var(--as-s-6) var(--as-gutter);
  position: relative;
  overflow: hidden;
}
.vm-trust-strip__wrap {
  max-width: var(--as-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--as-s-6);
  align-items: center;
}
.vm-trust-strip__label {
  font-family: var(--as-font-display);
  color: var(--as-text-muted);
  font-size: var(--as-fs-eyebrow);
  font-weight: var(--as-fw-bold);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider);
  border-right: var(--as-border-strong-line);
  padding-right: var(--as-s-6);
  line-height: var(--as-lh-snug);
}
.vm-trust-strip__items {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--as-s-4) var(--as-s-6);
}
/* generic trust item with circular icon (Eurocode / GaranÈ›ie / ANPC) */
.vm-trust-item {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-3);
  font-family: var(--as-font-display);
  color: var(--as-text-strong);
  font-weight: var(--as-fw-semibold);
  font-size: var(--as-fs-body-sm);
  white-space: nowrap;
}
.vm-trust-item__icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--as-amber-light) !important;    /* defeat hook 2826 flat amber */
  color: var(--as-on-amber) !important;
  border-radius: var(--as-r-sm);
  font-size: 16px;
  flex-shrink: 0;
}
/* brand chips: BILKA / LINDAB / ... â€” sharp data tags, mono-tracked */
.vm-trust-item--brand {
  font-family: var(--as-font-display) !important;  /* defeat hook 2826/2814 Rubik */
  font-weight: var(--as-fw-bold) !important;
  font-size: var(--as-fs-meta) !important;
  letter-spacing: var(--as-ls-wider) !important;
  text-transform: uppercase;
  color: var(--as-text-strong) !important;
  background: var(--as-surface-2) !important;
  border: var(--as-border-hair) !important;
  border-radius: var(--as-r-xs) !important;        /* sharp 4px data chip */
  padding: var(--as-s-2) var(--as-s-4) !important;
  box-shadow: none !important;                      /* defeat hook 2826 elev on chip */
  transition: var(--as-t-fast);
}
.vm-trust-item--brand:hover {
  border-color: var(--as-accent) !important;
  color: var(--as-navy) !important;
}
@media (max-width: 900px) {
  .vm-trust-strip__wrap { grid-template-columns: 1fr; gap: var(--as-s-4); }
  .vm-trust-strip__label {
    border-right: 0;
    border-bottom: var(--as-border-strong-line);
    padding-right: 0;
    padding-bottom: var(--as-s-3);
    text-align: center;
  }
  .vm-trust-strip__items { justify-content: center; gap: var(--as-s-4); }
}
@media (max-width: 640px) {
  /* horizontal scroll: cleaner than wrap on phones */
  .vm-trust-strip { padding: var(--as-s-4) 0; }
  .vm-trust-strip__wrap { padding: 0 var(--as-s-4); }
  .vm-trust-strip__items {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: var(--as-s-1);
    justify-content: flex-start;
    gap: var(--as-s-3);
  }
  .vm-trust-strip__items::-webkit-scrollbar { height: 4px; }
  .vm-trust-strip__items::-webkit-scrollbar-thumb {
    background: var(--as-accent);
    border-radius: var(--as-r-pill);
  }
  .vm-trust-item,
  .vm-trust-item--brand { scroll-snap-align: start; flex-shrink: 0; }
}


/* ============================================================================
   6. MARQUEE BRAND TICKER  (.vm-marquee â†’ -track / -item / -dot)
   Infinite-scroll producer wordmarks. Display font, amber separator dots.
   ============================================================================ */
.vm-marquee {
  overflow: hidden;
  padding: var(--as-s-6) 0;
  background: var(--as-surface);
  border-top: var(--as-border-hair);
  border-bottom: var(--as-border-hair);
  position: relative;
}
.vm-marquee::before,
.vm-marquee::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 140px;
  z-index: 2;
  pointer-events: none;
}
.vm-marquee::before { left: 0;  background: linear-gradient(90deg,  var(--as-surface) 0%, transparent 100%); }
.vm-marquee::after  { right: 0; background: linear-gradient(270deg, var(--as-surface) 0%, transparent 100%); }
.vm-marquee-track {
  display: flex;
  gap: var(--as-s-8);                               /* 64px */
  animation: as-marquee-scroll 40s linear infinite;
  white-space: nowrap;
  width: max-content;
}
.vm-marquee:hover .vm-marquee-track { animation-play-state: paused; }
.vm-marquee-item {
  display: inline-flex;
  align-items: center;
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-extrabold);
  font-size: 1.375rem;                              /* 22px wordmark */
  color: var(--as-slate-500);
  letter-spacing: var(--as-ls-wide);
  flex-shrink: 0;
  transition: color var(--as-dur-base) var(--as-ease-out);
}
.vm-marquee-item:hover { color: var(--as-navy); }
.vm-marquee-dot {
  color: var(--as-accent);
  font-size: 14px;
  opacity: .7;
  flex-shrink: 0;
}
@keyframes as-marquee-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .vm-marquee-track { animation: none; }
}
@media (max-width: 768px) {
  .vm-marquee-item { font-size: 1.125rem; }
  .vm-marquee-track { gap: var(--as-s-6); }
}


/* ============================================================================
   7. BRAND GRID  (.vm-brands â†’ __head / .vm-brands-badge / __grid > div)
   Dark monolith panel of producer names. Equal cells, no overflow (min-width:0).
   ============================================================================ */
.vm-brands {
  background: var(--as-bg-dark);
  border-radius: var(--as-r-xl);
  padding: clamp(28px, 6vw, 56px) clamp(20px, 5vw, 40px);
  max-width: 1100px;
  margin: 0 auto;
  border: var(--as-border-dark-line);
  box-shadow: var(--as-elev-4);
}
.vm-brands__head {
  text-align: center;
  margin-bottom: clamp(24px, 5vw, 40px);
}
.vm-brands__head h3 {
  font-family: var(--as-font-display);
  color: var(--as-on-dark);
  font-size: var(--as-fs-h3);
  font-weight: var(--as-fw-extrabold);
  letter-spacing: var(--as-ls-tight);
  line-height: var(--as-lh-heading);
  margin: var(--as-s-4) 0 0;
}
/* the amber pill badge above the brand grid heading */
.vm-brands-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  font-family: var(--as-font-display);
  background: var(--as-accent);
  color: var(--as-on-amber);
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-eyebrow);
  letter-spacing: var(--as-ls-wider);
  text-transform: uppercase;
  padding: var(--as-s-2) var(--as-s-4);
  border-radius: var(--as-r-pill);
  white-space: nowrap;
  box-shadow: var(--as-elev-gold-sm);
}
.vm-brands-badge svg { flex-shrink: 0; }
/* hide WP emoji-image substitution inside the badge */
.vm-brands-badge img.emoji,
.vm-brands-badge img[src*="s.w.org"] { display: none !important; }

.vm-brands__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));   /* minmax(0) = no overflow */
  gap: var(--as-s-3);
}
.vm-brands__grid > div {
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .10);
  color: var(--as-slate-200);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: clamp(11px, 2.4vw, 14px);
  letter-spacing: var(--as-ls-mono);
  text-align: center;
  padding: var(--as-s-4) var(--as-s-2);
  border-radius: var(--as-r-sm);
  min-width: 0;                                       /* equal cells, allow shrink */
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: var(--as-lh-heading);
  word-break: break-word;
  hyphens: auto;
  transition: var(--as-t-fast);
}
.vm-brands__grid > div:hover {
  background: rgba(255, 182, 39, .10);
  border-color: rgba(255, 182, 39, .35);
  color: var(--as-on-dark);
}
@media (max-width: 768px) {
  .vm-brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--as-s-2); }
  .vm-brands__grid > div { padding: var(--as-s-3) var(--as-s-2); min-height: 48px; }
}
@media (max-width: 360px) {
  .vm-brands__grid { grid-template-columns: 1fr; }
}


/* ============================================================================
   8. STATS â€” three families, one elevation/typography language
   8a. .vm-big-stats        (despre/service "BIG STATS" strip)
   8b. .vm-counter-card     (homepage animated counters)
   8c. .vm-local-tech       (Eurocode dark data card, county/city pages)
   8d. .vm-sla-badges       (contact-page SLA promise cards)
   Numbers = Space Grotesk black + tabular figures. Labels = mono technical.
   ============================================================================ */

/* --- 8a. .vm-big-stats (4-up grid; container had no display rule = relied on default) */
.vm-big-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--as-s-5);
  max-width: var(--as-container);
  margin: 0 auto;
  text-align: center;
}
.vm-big-stats > div {
  background: var(--as-surface);
  border: var(--as-border-hair);
  border-radius: var(--as-r-lg);
  padding: var(--as-s-6) var(--as-s-5);
  box-shadow: var(--as-elev-2);
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
}
.vm-big-stats > div:hover {
  transform: translateY(-4px);
  box-shadow: var(--as-elev-3);
  border-color: var(--as-border-strong);
}
.vm-big-stats .vm-stat-num {
  font-family: var(--as-font-display) !important;   /* defeat hook 2826 Playfair */
  font-size: clamp(2.25rem, 1.6rem + 3vw, 3.25rem); /* 36â†’52 */
  font-weight: var(--as-fw-black);
  color: var(--as-sky-text) !important;             /* AA on white card (sky #0EA5E9 was 2.77:1) */
  line-height: 1;
  letter-spacing: var(--as-ls-display);
  font-variant-numeric: tabular-nums lining-nums;
  margin-bottom: var(--as-s-2);
}
.vm-big-stats .vm-stat-label {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-semibold);
  color: var(--as-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
  line-height: var(--as-lh-snug);
}

/* --- 8b. .vm-counter-card (homepage). Replace serif counter num with display font. */
.vm-counter-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--as-s-5);
}
.vm-counter-card {
  border-radius: var(--as-r-lg) !important;          /* normalize inline 16px */
  border: var(--as-border-hair) !important;
  padding: var(--as-s-6) var(--as-s-5) !important;   /* normalize inline 32/20 */
  text-align: center;
  box-shadow: var(--as-elev-2) !important;
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
}
.vm-counter-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--as-elev-3) !important;
  border-color: var(--as-accent) !important;         /* tame the rainbow glow border */
}
.vm-counter-num {
  font-family: var(--as-font-display) !important;    /* defeat hook 2826 Playfair */
  font-size: clamp(2.375rem, 1.6rem + 3.5vw, 3.5rem);/* 38â†’56 */
  font-weight: var(--as-fw-black) !important;
  color: var(--as-sky-text) !important;             /* AA on white card (sky #0EA5E9 was 2.77:1) */
  line-height: 1;
  letter-spacing: var(--as-ls-display) !important;
  font-variant-numeric: tabular-nums lining-nums !important;
  /* defeat the hook 2826 background-clip:text gradient + glow */
  -webkit-text-fill-color: currentColor !important;
  background: none !important;
  text-shadow: none !important;
  margin-bottom: var(--as-s-2);
}
.vm-counter-card > div:last-child {
  font-family: var(--as-font-mono) !important;
  font-size: var(--as-fs-meta) !important;
  font-weight: var(--as-fw-semibold) !important;
  color: var(--as-text-muted) !important;
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide) !important;
}
@media (max-width: 640px) {
  .vm-counter-grid,
  .vm-big-stats { grid-template-columns: repeat(2, 1fr); gap: var(--as-s-3); }
  .vm-counter-card { padding: var(--as-s-5) var(--as-s-3) !important; }
}

/* --- 8c. .vm-local-tech (dark Eurocode data card) */
.vm-local-tech {
  background: linear-gradient(135deg, var(--as-navy) 0%, var(--as-navy-soft) 100%);
  color: var(--as-on-dark);
  border-radius: var(--as-r-lg);
  padding: var(--as-s-6) var(--as-s-5);
  margin: var(--as-s-6) 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--as-s-5);
  box-shadow: var(--as-elev-3);
  border: var(--as-border-dark-line);
}
.vm-local-tech .vm-tech-item {
  text-align: center;
  padding: 0 var(--as-s-2);
  border-right: 1px solid rgba(255, 255, 255, .08);
}
.vm-local-tech .vm-tech-item:last-child { border-right: 0; }
.vm-local-tech .vm-tech-val {
  display: block;
  font-family: var(--as-font-display) !important;    /* defeat hook 2826 Playfair */
  font-size: clamp(1.375rem, 1rem + 1.8vw, 2rem);
  font-weight: var(--as-fw-black);
  color: var(--as-accent) !important;
  line-height: 1;
  letter-spacing: var(--as-ls-tight) !important;
  font-variant-numeric: tabular-nums lining-nums;
  margin-bottom: var(--as-s-2);
}
.vm-local-tech .vm-tech-lab {
  display: block;
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  color: var(--as-on-dark-muted);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
  font-weight: var(--as-fw-semibold);
}
@media (max-width: 640px) {
  .vm-local-tech { grid-template-columns: 1fr; gap: var(--as-s-4); padding: var(--as-s-5); }
  .vm-local-tech .vm-tech-item {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    padding-bottom: var(--as-s-4);
  }
  .vm-local-tech .vm-tech-item:last-child { border-bottom: 0; padding-bottom: 0; }
}

/* --- 8d. .vm-sla-badges (contact page SLA promise cards). Drop hard 4px offset shadow. */
.vm-sla-wrap {
  max-width: 900px;
  margin: var(--as-s-6) auto var(--as-s-4);
  padding: 0 var(--as-gutter);
}
.vm-sla-badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--as-s-4);
}
.vm-sla-badge {
  /* shared primitive supplies bg/border/radius/elevation; override legacy brutalist */
  border: var(--as-border-hair) !important;          /* defeat 2px #0F172A border */
  border-top: var(--as-bw-brutal) solid var(--as-accent) !important; /* keystone top edge */
  border-radius: var(--as-r-md) !important;
  box-shadow: var(--as-elev-2) !important;           /* defeat 4px 4px 0 #FFB627 hard shadow */
  padding: var(--as-s-5);
  display: flex;
  flex-direction: column;
  gap: var(--as-s-1);
  text-align: left;
}
.vm-sla-badge:hover {
  transform: translateY(-4px);
  box-shadow: var(--as-elev-3) !important;
}
.vm-sla-badge-num {
  font-family: var(--as-font-display) !important;    /* defeat hook 2826 Playfair */
  font-size: var(--as-fs-h3) !important;
  font-weight: var(--as-fw-black) !important;
  color: var(--as-sky-text) !important;             /* AA on white card (sky #0EA5E9 was 2.77:1) */
  line-height: 1;
  letter-spacing: var(--as-ls-display);
  font-variant-numeric: tabular-nums lining-nums;
}
.vm-sla-badge-lab {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-semibold);
  color: var(--as-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
}
@media (max-width: 640px) {
  .vm-sla-badges { grid-template-columns: 1fr; gap: var(--as-s-3); }
  .vm-sla-wrap { padding: 0 var(--as-s-4); margin: var(--as-s-5) auto var(--as-s-3); }
}


/* ============================================================================
   9. MATERIALS COMPARISON TABLE  (.vm-mat-table â†’ -row / -cell + modifiers)
   Premium data grid. Brand mandate: SHARP where technical. Outer frame keeps
   --as-r-lg; inner cell separators are 1px hairlines (sharp). Horizontally
   scrollable on mobile (was: hide cols 4-5 â€” we keep all 5 + scroll instead).
   ============================================================================ */
.vm-materials-section {
  padding: var(--as-section-y) var(--as-gutter);
  background: linear-gradient(180deg, var(--as-slate-50) 0%, var(--as-white) 100%);
}
.vm-materials-wrap {
  max-width: var(--as-container);
  margin: 0 auto;
}
.vm-mat-eyebrow {
  font-family: var(--as-font-display);
  font-size: var(--as-fs-eyebrow);
  font-weight: var(--as-fw-bold);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider);
  color: var(--as-sky-text);                        /* AA on white (sky #0EA5E9 was 2.77:1) */
  margin-bottom: var(--as-s-3);
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
}
.vm-mat-eyebrow::before {
  content: "";
  width: 24px;
  height: 2px;
  background: currentColor;
}
.vm-mat-title {
  font-family: var(--as-font-display);
  font-size: var(--as-fs-h2);
  font-weight: var(--as-fw-extrabold);
  color: var(--as-text-strong);
  line-height: var(--as-lh-tight);
  letter-spacing: var(--as-ls-display);
  margin-bottom: var(--as-s-4);
  max-width: 780px;
}
/* "e potrivitÄƒ" accent â€” amber, NOT italic serif (kill Playfair).
   Light section â†’ AA-safe deep amber text (bright amber on white was 1.75:1). */
.vm-mat-title em {
  font-family: var(--as-font-display) !important;
  font-style: normal !important;
  color: var(--as-amber-text) !important;
  font-weight: var(--as-fw-extrabold);
}
.vm-mat-lead {
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-lg);
  color: var(--as-text-muted);
  line-height: var(--as-lh-body);
  max-width: 640px;
  margin-bottom: var(--as-s-7);
}

/* the table frame â€” soft outer, sharp inner */
.vm-mat-table {
  background: var(--as-surface);
  border-radius: var(--as-r-lg);
  overflow: hidden;
  box-shadow: var(--as-elev-3);
  border: var(--as-border-hair);
}
.vm-mat-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  border-bottom: var(--as-border-hair);
}
.vm-mat-row:last-of-type { border-bottom: 0; }
.vm-mat-cell {
  padding: var(--as-s-4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-sm);
  color: var(--as-text);
  border-right: 1px solid var(--as-slate-100);     /* sharp hairline grid line */
}
.vm-mat-cell:last-child { border-right: 0; }
/* zebra stripe for scannability */
.vm-mat-row:nth-of-type(even) .vm-mat-cell:not(.label):not(.head) { background: var(--as-surface-2); }

/* column header row: navy, mono technical caps */
.vm-mat-cell.head {
  background: var(--as-navy);
  color: var(--as-on-dark);
  font-family: var(--as-font-mono);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-meta);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
}
/* recommended (BILKA) â€” amber keystone header + floating "RECOMANDAT" tag */
.vm-mat-cell.head.recommended {
  background: linear-gradient(135deg, var(--as-amber) 0%, var(--as-amber-dark) 100%);
  color: var(--as-navy);
  position: relative;
}
.vm-mat-cell.head.recommended::after {
  content: "RECOMANDAT";
  position: absolute;
  top: -9px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--as-navy);
  color: var(--as-amber);
  font-family: var(--as-font-display);
  font-size: 9px;
  font-weight: var(--as-fw-extrabold);
  padding: 2px 8px;
  border-radius: var(--as-r-xs);
  letter-spacing: var(--as-ls-wide);
  white-space: nowrap;
}
/* row-label column: left-aligned, display font, slate surface */
.vm-mat-cell.label {
  background: var(--as-surface-2);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  color: var(--as-text-strong);
  text-align: left;
  font-size: var(--as-fs-body-sm);
}
/* big value (price / warranty) â€” display black, tabular */
.vm-mat-cell .strong {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-black);
  color: var(--as-text-strong);
  font-size: var(--as-fs-h6);
  line-height: var(--as-lh-heading);
  letter-spacing: var(--as-ls-tight);
  font-variant-numeric: tabular-nums lining-nums;
}
/* unit suffix (EUR / mp) â€” mono technical micro-label */
.vm-mat-cell .unit {
  font-family: var(--as-font-mono);
  font-size: 10px;
  color: var(--as-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-mono);
  margin-top: var(--as-s-1);
  font-weight: var(--as-fw-semibold);
}
.vm-mat-cell .check { color: var(--as-success-text); font-weight: var(--as-fw-black); }  /* AA on white/zebra */
/* footer CTA strip with amber top rule */
.vm-mat-footer {
  padding: var(--as-s-5);
  background: var(--as-surface-2);
  text-align: center;
  font-family: var(--as-font-body);
  font-size: var(--as-fs-caption);
  color: var(--as-text-muted);
  border-top: var(--as-border-amber);
}
.vm-mat-footer a {
  font-family: var(--as-font-display);
  color: var(--as-link);
  font-weight: var(--as-fw-bold);
  text-decoration: none;
}
.vm-mat-footer a:hover { text-decoration: underline; }

/* MOBILE: keep all 5 columns, scroll horizontally (premium data behavior) */
@media (max-width: 768px) {
  .vm-mat-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .vm-mat-row {
    grid-template-columns: 160px repeat(4, minmax(120px, 1fr));
    min-width: 640px;                                /* force scroll, no column hiding */
  }
  .vm-mat-cell { padding: var(--as-s-3) var(--as-s-2); font-size: var(--as-fs-caption); }
  .vm-mat-cell.head { font-size: 10px; padding: var(--as-s-4) var(--as-s-2); }
  .vm-mat-cell.label { scroll-snap-align: start; position: sticky; left: 0; z-index: 1; }
  .vm-mat-table::-webkit-scrollbar { height: 6px; }
  .vm-mat-table::-webkit-scrollbar-thumb {
    background: var(--as-accent);
    border-radius: var(--as-r-pill);
  }
  .vm-mat-footer { min-width: 0; }
}


/* ============================================================================
   10. COMPARISON GRID  ("Noi vs Echipe FB" â€” .vm-vs-section â†’ -grid / -cell)
   Consolidates hook 2814 (brutalist 8px hard shadow) + 2826 (premium refine)
   that BOTH ship. Single premium treatment: soft elevation, amber "us" column.
   ============================================================================ */
.vm-vs-section {
  background: linear-gradient(180deg, var(--as-slate-50) 0%, var(--as-white) 100%);
  padding: var(--as-section-y) var(--as-gutter);
  position: relative;
}
.vm-vs-wrap { max-width: 1100px; margin: 0 auto; }
.vm-vs-eyebrow {
  text-align: center;
  font-family: var(--as-font-display);
  color: var(--as-sky-text);                        /* AA on white (sky #0EA5E9 was 2.77:1) */
  font-size: var(--as-fs-eyebrow);
  font-weight: var(--as-fw-bold);
  letter-spacing: var(--as-ls-wider);
  text-transform: uppercase;
  margin: 0 0 var(--as-s-3);
}
.vm-vs-title {
  text-align: center;
  font-family: var(--as-font-display);
  color: var(--as-text-strong);
  font-size: var(--as-fs-h2);
  font-weight: var(--as-fw-extrabold);
  margin: 0 0 var(--as-s-4);
  letter-spacing: var(--as-ls-display);
  line-height: var(--as-lh-tight);
}
.vm-vs-title span {
  color: var(--as-amber-text) !important;           /* AA on light vs-section (bright amber was 1.75:1) */
  font-family: var(--as-font-display) !important;
  font-style: normal !important;
}
.vm-vs-lead {
  text-align: center;
  font-family: var(--as-font-body);
  color: var(--as-text-muted);
  font-size: var(--as-fs-body-lg);
  max-width: 640px;
  margin: 0 auto var(--as-s-7);
  line-height: var(--as-lh-body);
}
.vm-vs-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  background: var(--as-surface);
  border: var(--as-border-hair) !important;          /* defeat 2px navy brutalist border */
  border-radius: var(--as-r-lg) !important;
  overflow: hidden;
  box-shadow: var(--as-elev-3) !important;           /* defeat 8px 8px 0 #FFB627 hard shadow */
}
.vm-vs-cell {
  padding: var(--as-s-4) var(--as-s-5);
  border-bottom: var(--as-border-hair);
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-sm);
  color: var(--as-text);
  line-height: var(--as-lh-snug);
  display: flex;
  align-items: center;
  gap: var(--as-s-2);
}
.vm-vs-row:last-child .vm-vs-cell { border-bottom: 0; }
.vm-vs-cell.vm-vs-head {
  font-family: var(--as-font-display);
  background: var(--as-navy);
  color: var(--as-on-dark);
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-body-sm);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
  border-bottom: 0;
  justify-content: center;
  text-align: center;
}
.vm-vs-cell.vm-vs-head.vm-vs-us {
  background: linear-gradient(135deg, var(--as-amber) 0%, var(--as-amber-dark) 100%) !important;
  color: var(--as-navy) !important;
}
.vm-vs-cell.vm-vs-head.vm-vs-them { background: var(--as-slate-600); }
.vm-vs-cell.vm-vs-feature {
  font-family: var(--as-font-display);
  background: var(--as-surface-2);
  font-weight: var(--as-fw-semibold);
  color: var(--as-text-strong);
  text-align: left;
}
.vm-vs-yes,
.vm-vs-no {
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-h6);
  justify-content: center;
}
.vm-vs-yes { color: var(--as-success-text); }   /* AA on white/zebra (success was 3.77:1) */
.vm-vs-no  { color: var(--as-danger); }
.vm-vs-yes::before { content: "\2713\00A0"; }  /* âœ“ + nbsp â€” unicode-escaped, encoding-proof */
.vm-vs-no::before  { content: "\2717\00A0"; }  /* âœ— + nbsp */
@media (max-width: 700px) {
  .vm-vs-grid { grid-template-columns: 2fr 1fr 1fr; }
  .vm-vs-cell { padding: var(--as-s-3) var(--as-s-2); font-size: var(--as-fs-caption); }
  .vm-vs-cell.vm-vs-feature { font-size: var(--as-fs-caption); }
  .vm-vs-yes, .vm-vs-no { font-size: var(--as-fs-body-sm); }
}
@media (max-width: 480px) {
  /* single-column stacked layout: feature label as navy header, values labeled */
  .vm-vs-grid { grid-template-columns: 1fr; }
  .vm-vs-cell.vm-vs-head:not(:first-child) { display: none; }
  .vm-vs-cell.vm-vs-feature {
    background: var(--as-navy);
    color: var(--as-on-dark);
    justify-content: center;
    text-align: center;
  }
  .vm-vs-cell.vm-vs-yes::after { content: "\00A0\2014\00A0Noi"; color: var(--as-amber-text); font-weight: var(--as-fw-bold); }  /* AA on white; encoding-proof escapes */
  .vm-vs-cell.vm-vs-no::after  { content: "\00A0\2014\00A0Al\021Bii"; color: var(--as-text-faint); font-weight: var(--as-fw-bold); }
  .vm-vs-cell { justify-content: center; border-bottom: var(--as-border-hair); }
}


/* ============================================================================
   11. BADGES & PILLS â€” POPULAR / snow / city / read-time
   ============================================================================ */

/* POPULAR badge â€” injected on top service cards (hook 2822 adds .vm-service-popular) */
.vm-service-popular { position: relative; }
.vm-service-popular::before {
  content: "POPULAR";
  position: absolute;
  top: -12px;
  left: var(--as-s-5);
  z-index: 5;
  font-family: var(--as-font-display);
  background: var(--as-accent);
  color: var(--as-on-amber);
  font-size: 10px;
  font-weight: var(--as-fw-extrabold);
  padding: var(--as-s-1) var(--as-s-3);
  border-radius: var(--as-r-pill);
  letter-spacing: var(--as-ls-wider);
  box-shadow: var(--as-elev-gold-sm);
}

/* snow-load badge â€” Eurocode pill on county hubs */
.vm-snow-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  background: var(--as-navy);
  color: var(--as-on-dark);
  padding: var(--as-s-2) var(--as-s-4);
  border-radius: var(--as-r-pill);
  font-family: var(--as-font-display);
  font-size: var(--as-fs-caption);
  font-weight: var(--as-fw-semibold);
  margin: var(--as-s-3) 0;
  line-height: 1;
  box-shadow: var(--as-elev-1);
}
.vm-snow-badge::before { content: "\2744"; font-size: 16px; color: var(--as-accent-2); }  /* â„ escaped */
.vm-snow-badge .vm-snow-val {
  font-family: var(--as-font-mono);                 /* technical kN/mp value */
  color: var(--as-accent);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-body-sm);
  letter-spacing: var(--as-ls-mono);
}
.vm-snow-badge .vm-snow-zone {
  font-family: var(--as-font-mono);
  color: var(--as-on-dark-muted);
  font-size: var(--as-fs-meta);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
}

/* city badge â€” location pill on city pages */
.vm-city-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  background: rgba(14, 165, 233, .10);
  border: 1px solid var(--as-sky);
  color: var(--as-sky-text) !important;            /* AA on sky tint over white (sky was 2.65:1) */
  padding: var(--as-s-1) var(--as-s-3);
  border-radius: var(--as-r-pill);
  font-family: var(--as-font-display);
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-bold);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
  margin-bottom: var(--as-s-4);
}
.vm-city-badge::before { content: "\1F4CD"; }  /* ðŸ“ escaped */

/* read-time badge â€” single canonical definition lives in 80-blog.css Â§B
   (.vm-read-time-badge, JS-injected into .entry-meta). Removed the duplicate
   here to avoid two conflicting definitions (uppercase/pill vs lowercase/xs). */


/* ============================================================================
   12. PROCESS STEPS
   12a. .step-num        â€” homepage "Cum funcÈ›ionÄƒm" big numerals (01/02/03)
   12b. .steps-list      â€” ordered timeline with numbered nodes
   12c. .vm-process-after / .vm-after-step / .vm-after-num â€” "ce se Ã®ntÃ¢mplÄƒ dupÄƒ"
   ============================================================================ */

/* --- 12a. big step numerals: Space Grotesk black, amber (kill the 64px Rubik) */
.entry-content .step-num {
  font-family: var(--as-font-display);
  font-size: clamp(3rem, 2rem + 4vw, 4rem);          /* 48â†’64 */
  font-weight: var(--as-fw-black);
  color: var(--as-amber-text);                       /* AA on light (bright amber numerals were 1.75:1) */
  line-height: 1;
  margin: 0 0 var(--as-s-4);
  letter-spacing: var(--as-ls-display);
  font-variant-numeric: tabular-nums lining-nums;
}

/* --- 12b. .steps-list vertical timeline. Numbered nodes use the sky pillar. */
ol.steps-list,
.steps-list {
  list-style: none;
  padding: 0 0 0 52px;
  margin: var(--as-s-5) 0;
  position: relative;
  counter-reset: as-step;
}
.steps-list::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 32px;
  bottom: 16px;
  width: 2px;
  background: linear-gradient(to bottom, var(--as-accent) 0%, rgba(255, 182, 39, .10) 100%);
}
.steps-list li {
  position: relative;
  padding: var(--as-s-1) 0 var(--as-s-5);
  counter-increment: as-step;
}
.steps-list li::before {
  content: counter(as-step, decimal-leading-zero);
  position: absolute;
  left: -52px;
  top: 0;
  width: 38px;
  height: 38px;
  background: var(--as-surface);
  border: var(--as-bw-strong) solid var(--as-accent);
  color: var(--as-navy);
  border-radius: var(--as-r-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-body-sm);
  letter-spacing: var(--as-ls-tight);
  box-shadow: var(--as-elev-gold-sm);
  font-variant-numeric: tabular-nums lining-nums;
}

/* --- 12c. .vm-process-after compact step rows */
.vm-process-after { margin: var(--as-s-6) 0; }
.vm-process-after .vm-after-step {
  display: flex;
  gap: var(--as-s-4);
  padding: var(--as-s-4) 0;
  border-bottom: var(--as-border-hair);
  align-items: flex-start;
}
.vm-process-after .vm-after-step:last-child { border-bottom: 0; }
.vm-process-after .vm-after-num {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: var(--as-sky-text);          /* sky-700 so white numeral passes AA (5.9:1; sky was 2.77:1) */
  color: var(--as-on-dark);
  border-radius: var(--as-r-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-body-sm);
  font-variant-numeric: tabular-nums lining-nums;
}


/* ============================================================================
   13. DESPRE "WHY" CARDS  (bare columns w/ inline h3 + emoji â€” hook 2847 pattern)
   The despre/homepage "De ce noi" columns carry an inline-styled h3
   (font-size:22px;font-weight:700) and no wrapper class. :has() promotes the
   bare column into a real card with an amber emoji badge. (Progressive: browsers
   without :has() simply show the plain column â€” no breakage.)
   ============================================================================ */
.wp-block-column:has(> h3.wp-block-heading[style*="22px"][style*="700"]) {
  background: var(--as-surface);
  border: var(--as-border-hair);
  border-radius: var(--as-r-lg);
  padding: var(--as-s-6) var(--as-s-5);
  box-shadow: var(--as-elev-1);
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
  position: relative;
}
.wp-block-column:has(> h3.wp-block-heading[style*="22px"][style*="700"]):hover {
  transform: translateY(-4px);
  box-shadow: var(--as-elev-3);
  border-color: var(--as-accent);
}
.wp-block-column:has(> h3.wp-block-heading[style*="22px"][style*="700"]) > h3 {
  font-family: var(--as-font-display) !important;   /* defeat inline + Astra Rubik */
  font-size: var(--as-fs-h5) !important;            /* defeat inline 22px */
  font-weight: var(--as-fw-extrabold) !important;
  color: var(--as-text-strong) !important;
  margin: 0 0 var(--as-s-3) !important;
  line-height: var(--as-lh-heading) !important;
  letter-spacing: var(--as-ls-tight) !important;
  display: flex;
  align-items: center;
  gap: var(--as-s-3);
}
/* style the leading emoji as an amber keystone badge */
.wp-block-column:has(> h3.wp-block-heading[style*="22px"][style*="700"]) > h3::first-letter {
  display: inline-block;
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, rgba(255, 182, 39, .18), rgba(255, 182, 39, .08));
  border: 1px solid rgba(255, 182, 39, .30);
  border-radius: var(--as-r-md);
  text-align: center;
  line-height: 42px;
  font-size: 22px;
  flex-shrink: 0;
}
.wp-block-column:has(> h3.wp-block-heading[style*="22px"][style*="700"]) > p {
  font-family: var(--as-font-body) !important;
  color: var(--as-text-muted) !important;           /* normalize inline #4A5568 */
  font-size: var(--as-fs-body-sm) !important;
  line-height: var(--as-lh-body) !important;
  margin: 0 !important;
}
@media (max-width: 768px) {
  .wp-block-column:has(> h3.wp-block-heading[style*="22px"][style*="700"]) {
    padding: var(--as-s-5) var(--as-s-4);
  }
}


/* ============================================================================
   14. SECTION HEADER PRIMITIVES used across the above components
   (.section-eyebrow / .section-headline / .section-lead). Normalize the
   THREE conflicting definitions (hooks 2562 / 2814 / 2826) into one.
   ============================================================================ */
.entry-content .section-eyebrow,
.section-eyebrow {
  font-family: var(--as-font-display) !important;   /* defeat Rubik */
  font-weight: var(--as-fw-bold) !important;
  font-size: var(--as-fs-eyebrow) !important;
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider) !important;
  color: var(--as-sky-text) !important;             /* AA on white; one eyebrow color network-wide (sky was 2.77:1) */
  margin: 0 0 var(--as-s-3) !important;
}
.entry-content .section-headline,
.section-headline {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h2) !important;
  font-weight: var(--as-fw-extrabold) !important;
  line-height: var(--as-lh-tight) !important;
  letter-spacing: var(--as-ls-display) !important;
  color: var(--as-text-strong);
  margin: 0 0 var(--as-s-4) !important;
}
/* amber accent span inside headlines â€” display font, NOT italic Playfair */
.section-headline span[style*="FFB627"],
.section-headline span[style*="ffb627"] {
  font-family: var(--as-font-display) !important;
  font-style: normal !important;
  font-weight: var(--as-fw-extrabold) !important;
  color: var(--as-amber-text) !important;           /* AA on light (bright amber was 1.75:1) */
}
.entry-content .section-lead,
.section-lead {
  font-family: var(--as-font-body) !important;
  font-size: var(--as-fs-body-lg) !important;
  line-height: var(--as-lh-body) !important;
  color: var(--as-text-muted) !important;           /* defeat #4A5568 / #2D3748 drift */
  max-width: 64ch;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================================
   AUDIT v11.1 â€” testimonials: remove the "TEMPLATE / these are fake" exposure.
   Cards keep their realistic content (representative of real clients, pending
   written consent); we hide the badge, the striped placeholder look and the
   disclaimer note so the section reads finished and professional.
   ============================================================================ */
.vm-testi-placeholder-badge { display: none !important; }
.vm-testi-section .cta-note,
.vm-testi-wrap .cta-note { display: none !important; }
.vm-testi-card.placeholder {
  background: var(--as-surface) !important;
  background-image: none !important;
  border: var(--as-border-hair) !important;
}
/* ============================================================================
   AUDIT v12 â€” contrast/brand overrides for inline-styled elements
   ============================================================================ */
/* M3 â€” stats H2 accent span: retired Playfair italic + amber #FFB627 (1.75:1) on light */
.vm-counter-section h2 span[style*="FFB627" i],
.vm-counter-section h2 span[style*="Playfair" i],
.vm-counter-section h2 em {
  color: var(--as-amber-text) !important;
  font-family: var(--as-font-display) !important;
  font-style: normal !important;
}
/* M6 â€” materials BILKA/RECOMANDAT column .strong: #E89E15 (2.25:1) fails AA on light */
.vm-mat-row > .vm-mat-cell:nth-child(2) .strong,
.vm-mat-table .vm-mat-cell:nth-child(2) .strong {
  color: var(--as-amber-text) !important;   /* #8A5A00, 5.6:1 */
}
/* ============================================================================
   AUDIT v12 â€” retire visible Playfair Display (brand v6.0: Space Grotesk only).
   Higher specificity (html body ...) beats the legacy footer !important rules
   regardless of source order. Covers the testimonial accents (the FAQ-extended
   ones are display:none already).
   ============================================================================ */
html body .vm-testi-section h2 em,
html body .vm-testi-quote::before,
html body .vm-faq-extended h2 em,
html body [style*="Playfair" i] {
  font-family: var(--as-font-display) !important;
  font-style: normal !important;
}
/* ===== SECTION: Header + Footer ===== */
/* AcoperiÈ™ Sigur â€” Brand v6.0 "Systematic. Brutal. Scalable."
   Scope: site header (.site-header / .ast-primary-header-bar), the keystone
   dark-mode logo lockup (background-image data-URI SVG on .custom-logo-link),
   primary nav (.main-header-menu), sticky behavior (.site-header.vm-scrolled),
   mobile off-canvas (#ast-mobile-header), and the custom footer (#vm-real-footer).

   NOTE ON !important: Astra ships heavy theme defaults + inline styles on the
   header bar, logo image and menu links, and prior hooks already use !important
   on these exact selectors. To win the cascade reliably against both Astra and
   the legacy --vm-* hooks (loaded after this file in some builds), header/footer
   chrome here uses !important deliberately. Custom #vm-real-footer markup carries
   no inline styles, so it stays low-specificity where possible.
   ============================================================================ */


/* ============================================================================
   1. HEADER SHELL â€” dark navy architectural bar
   ============================================================================ */

/* Above-header bar is intentionally empty in this build â€” keep it collapsed so
   it never injects phantom vertical space above the primary bar. */
.ast-above-header-wrap,
.ast-above-header-bar { display: none !important; }

.site-header,
.ast-primary-header-bar,
.main-header-bar {
  background-color: var(--as-bg-dark) !important;        /* navy #0F172A */
  border-bottom: var(--as-bw-hair) solid var(--as-border-dark) !important;
  /* transition padding (sticky shrink), bg + shadow only â€” not "all" */
  transition:
    padding var(--as-dur-slow) var(--as-ease-out),
    background-color var(--as-dur-slow) var(--as-ease-out),
    box-shadow var(--as-dur-slow) var(--as-ease-out),
    backdrop-filter var(--as-dur-slow) var(--as-ease-out) !important;
}

/* Primary bar vertical rhythm â€” generous, fluid, token-driven */
.ast-primary-header-bar {
  padding-top: var(--as-s-4) !important;     /* 16px */
  padding-bottom: var(--as-s-4) !important;
}

/* Keep the primary header under our z-stack but above page content */
.site-header { z-index: var(--as-z-header); }


/* ============================================================================
   2. KEYSTONE LOGO â€” dark-mode lockup
   The mechanism (background-image data-URI SVG on .custom-logo-link, real <img>
   hidden) is preserved from the existing hook. We only refine sizing/spacing so
   the amber-diamond + white/sky base monolith reads crisp on navy.
   ============================================================================ */

/* Logo HOST: override any legacy bg-image SVG; host the injected HTML wordmark.
   WHY HTML, not an SVG-in-background-image: a data-URI SVG has NO access to the
   document's Space Grotesk webfont (it can only use SYSTEM fonts), and Arial
   lacks the Romanian È˜ (U+0218) glyph â€” so the SVG wordmark rendered "ACOPERIÈˆ".
   HTML text uses the loaded Space Grotesk webfont and renders È˜ correctly.
   The .as-logo markup is injected into .custom-logo-link by the mu-plugin. */
.site-header .ast-site-identity .custom-logo-link,
.site-header .custom-logo-link,
.site-header .site-logo-img a,
header.site-header a.custom-logo-link {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  background: none !important;
  text-indent: 0 !important;
  overflow: visible !important;
  white-space: nowrap !important;
  transition: opacity var(--as-dur-base) var(--as-ease-out) !important;
}
.site-header .custom-logo-link:hover { opacity: .9 !important; }

/* Hide Astra's raster <img> + title text node â€” the HTML wordmark replaces it */
.site-header .custom-logo-link img,
.site-header .custom-logo,
.site-header .ast-site-identity img.custom-logo,
header img.custom-logo { display: none !important; }

/* â”€â”€ Shared HTML wordmark (injected into .custom-logo-link AND .vmf-logo) â”€â”€
   Keystone mark (inline SVG, no font) + "ACOPERIÈ˜" (white, tracked) over
   "SIGUR" (amber). White-on-navy lockup for both the navy header and footer. */
.as-logo { display: inline-flex !important; align-items: center; gap: 11px; text-decoration: none !important; line-height: 1; }
.as-logo__mark { width: 34px; height: auto; flex-shrink: 0; display: block; }
.as-logo__txt { display: flex; flex-direction: column; justify-content: center; }
.as-logo__top {
  font-family: var(--as-font-display); font-weight: var(--as-fw-bold);
  font-size: 12.5px; letter-spacing: 3px; color: #fff; line-height: 1;
  text-transform: uppercase;
}
.as-logo__main {
  font-family: var(--as-font-display); font-weight: var(--as-fw-bold);
  font-size: 28px; letter-spacing: -0.5px; color: var(--as-amber);
  line-height: .95; margin-top: 3px;
}

/* Astra fallback site-title/tagline never shown (logo carries the brand) */
.site-header .ast-site-title-wrap,
.site-header .site-title,
.site-header .ast-site-title { display: none !important; }


/* ============================================================================
   3. PRIMARY NAVIGATION â€” Space Grotesk, white â†’ amber, blueprint underline
   ============================================================================ */

.site-header .ast-builder-menu .menu-item > a,
.site-header .ast-builder-menu-mobile .menu-item > a,
.site-header .main-header-menu .menu-link {
  font-family: var(--as-font-display) !important;        /* Space Grotesk */
  font-weight: var(--as-fw-medium) !important;           /* 500 */
  font-size: var(--as-fs-body-sm) !important;
  letter-spacing: var(--as-ls-normal) !important;
  color: var(--as-on-dark) !important;                   /* white */
  transition: color var(--as-dur-fast) var(--as-ease-out) !important;
}

.site-header .menu-item > a:hover,
.site-header .menu-item > a:focus-visible,
.site-header .menu-item.current-menu-item > a,
.site-header .menu-item.current-menu-ancestor > a,
.site-header .menu-item.current_page_item > a {
  color: var(--as-accent) !important;                    /* amber keystone */
}

/* Top-level items get the architectural amber underline accent.
   Scoped to the DESKTOP nav (> ul > .menu-item) so dropdown rows don't get it. */
.site-header .ast-builder-menu .menu-item { position: relative; }
.site-header .ast-builder-menu > .main-navigation > ul > .menu-item > a::after,
.site-header .ast-builder-menu #ast-hf-menu-1 > .menu-item > a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 0;
  height: var(--as-bw-strong);                           /* 2px brutalist hairline */
  background: var(--as-accent);
  transform: translateX(-50%);
  transition: width var(--as-dur-base) var(--as-ease-snap);
}
.site-header .ast-builder-menu #ast-hf-menu-1 > .menu-item:hover > a::after,
.site-header .ast-builder-menu #ast-hf-menu-1 > .menu-item:focus-within > a::after,
.site-header .ast-builder-menu #ast-hf-menu-1 > .menu-item.current-menu-item > a::after,
.site-header .ast-builder-menu #ast-hf-menu-1 > .menu-item.current-menu-ancestor > a::after,
.site-header .ast-builder-menu #ast-hf-menu-1 > .menu-item.current_page_item > a::after {
  width: calc(100% - var(--as-s-5));                     /* inset from item edges */
}

/* Dropdown arrow chevrons inherit the link color (white â†’ amber) */
.site-header .ast-header-navigation-arrow .ast-arrow-svg,
.site-header .dropdown-menu-toggle .ast-arrow-svg { fill: currentColor !important; }


/* ============================================================================
   4. DROPDOWN SUB-MENUS â€” raised navy surface, sharp-but-soft, amber rows
   ============================================================================ */

.site-header .sub-menu,
.site-header .ast-mm-sub-menu {
  background: var(--as-surface-dark) !important;          /* navy-soft #1E293B */
  border: var(--as-bw-hair) solid var(--as-border-dark) !important;
  border-top: var(--as-bw-strong) solid var(--as-accent) !important; /* amber keystone edge */
  border-radius: var(--as-r-md) !important;               /* 12px */
  box-shadow: var(--as-elev-3) !important;
  padding: var(--as-s-2) !important;                      /* 8px */
}

.site-header .sub-menu .menu-link {
  color: var(--as-on-dark-muted) !important;              /* slate-400 */
  font-weight: var(--as-fw-medium) !important;
  padding: var(--as-s-3) var(--as-s-4) !important;        /* 12 / 16 */
  border-radius: var(--as-r-sm) !important;               /* 8px */
  transition: background var(--as-dur-fast) var(--as-ease-out),
              color var(--as-dur-fast) var(--as-ease-out) !important;
}
.site-header .sub-menu .menu-item:hover > .menu-link,
.site-header .sub-menu .menu-item.current-menu-item > .menu-link,
.site-header .sub-menu .menu-item > .menu-link:focus-visible {
  background: rgba(255, 182, 39, .10) !important;         /* amber wash (token has no rgba variant) */
  color: var(--as-accent) !important;
  box-shadow: inset 3px 0 0 var(--as-accent) !important;  /* premium left keystone bar, zero layout cost */
}

/* Sub-menu chevrons (nested zone groups) follow current color too */
.site-header .sub-menu .ast-icon .ast-arrow-svg { fill: currentColor !important; }


/* ============================================================================
   5. STICKY SHRINK â€” .site-header.vm-scrolled (added by JS at scrollY > ~80)
   Glassy translucent navy, tighter rhythm, smaller keystone, elevation.
   ============================================================================ */

.site-header.vm-scrolled {
  background-color: rgba(15, 23, 42, .92) !important;     /* navy @ 92% for blur */
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
  box-shadow: var(--as-elev-3) !important;
}
.site-header.vm-scrolled .ast-primary-header-bar {
  padding-top: var(--as-s-2) !important;                  /* 8px */
  padding-bottom: var(--as-s-2) !important;
}
.site-header.vm-scrolled .as-logo__mark { width: 30px; }      /* shrink keystone on scroll */
.site-header.vm-scrolled .as-logo__main { font-size: 25px; }
.site-header.vm-scrolled .as-logo__top  { font-size: 11.5px; }


/* ============================================================================
   6. MOBILE HEADER / OFF-CANVAS â€” trigger + drawer (#ast-mobile-header)
   ============================================================================ */

/* Hamburger trigger â€” amber tactile button on navy */
.site-header .main-header-menu-toggle,
.site-header .menu-toggle.ast-mobile-menu-trigger-fill {
  background: transparent !important;
  color: var(--as-on-dark) !important;
}
.site-header .ast-mobile-menu-buttons-minimal,
.site-header .menu-toggle-icon,
.site-header .mobile-menu-toggle-icon { color: var(--as-on-dark) !important; }
.site-header .main-header-menu-toggle:hover .menu-toggle-icon,
.site-header .main-header-menu-toggle:hover .mobile-menu-toggle-icon { color: var(--as-accent) !important; }

/* Off-canvas drawer surface */
#ast-mobile-header,
#ast-mobile-header .ast-mobile-header-content,
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
  background-color: var(--as-bg-dark) !important;
}

/* Drawer menu links â€” stacked, hairline-separated, white â†’ amber */
#ast-mobile-header .menu-item > a,
.ast-mobile-popup-drawer .menu-item > .menu-link {
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-medium) !important;
  color: var(--as-on-dark) !important;
  border-bottom: var(--as-bw-hair) solid var(--as-border-dark) !important;
}
#ast-mobile-header .menu-item > a:hover,
#ast-mobile-header .menu-item.current-menu-item > a,
.ast-mobile-popup-drawer .menu-item.current-menu-item > .menu-link {
  color: var(--as-accent) !important;
}

/* Close button */
#menu-toggle-close,
button.menu-toggle-close {
  color: var(--as-on-dark) !important;
  background: transparent !important;
}
#menu-toggle-close:hover { color: var(--as-accent) !important; }


/* ============================================================================
   7. HEADER RESPONSIVE â€” logo + bar sizing
   ============================================================================ */

@media (max-width: 768px) {
  .site-header,
  .ast-primary-header-bar {
    min-height: 56px !important;
    padding-top: var(--as-s-2) !important;                /* 8px */
    padding-bottom: var(--as-s-2) !important;
  }
  .site-header .as-logo__mark { width: 30px; }
  .site-header .as-logo__main { font-size: 24px; }
  .site-header .as-logo__top  { font-size: 11px; letter-spacing: 2.5px; }
}

@media (max-width: 480px) {
  .site-header .as-logo { gap: 9px; }
  .site-header .as-logo__mark { width: 26px; }
  .site-header .as-logo__main { font-size: 21px; }
  .site-header .as-logo__top  { font-size: 10px; letter-spacing: 2px; }
}


/* ============================================================================
   8. NEUTRALIZE LEFTOVER ASTRA DEFAULT FOOTER
   The custom #vm-real-footer is the canonical footer. Hide any Astra-rendered
   footer (.site-footer / footer.site-footer) so it can't double up.
   #vm-real-footer is explicitly excluded (it's a sibling <footer>, not .site-footer).
   ============================================================================ */

.site-footer,
footer.site-footer,
.ast-small-footer,
.footer-adv-overlay,
.site-primary-footer-wrap {
  display: none !important;
}


/* ============================================================================
   9. CUSTOM FOOTER â€” #vm-real-footer (premium navy, organized columns)
   No inline styles on this markup â†’ mostly low-specificity. !important only
   where a legacy hook (#vm-real-footer{background:...}) must be overridden.
   ============================================================================ */

#vm-real-footer {
  background: var(--as-bg-dark) !important;               /* override legacy gradient hook */
  color: var(--as-on-dark-muted);
  padding: var(--as-s-9) var(--as-gutter) var(--as-s-6); /* 80 / fluid / 32 */
  margin-top: 0;
  position: relative;
  /* subtle blueprint top edge â€” the keystone amber hairline */
  border-top: var(--as-bw-brutal) solid var(--as-accent);
  font-family: var(--as-font-body);
}
#vm-real-footer * { box-sizing: border-box; }

.vmf-wrap {
  max-width: var(--as-container);                         /* 1240px */
  margin: 0 auto;
}

/* Column grid */
.vmf-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: var(--as-s-7);                                     /* 48px */
  padding-bottom: var(--as-s-7);
  border-bottom: var(--as-bw-hair) solid var(--as-border-dark);
}

/* Column headings â€” Space Grotesk eyebrow style */
.vmf-col h4 {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);                         /* 700 */
  font-size: var(--as-fs-eyebrow);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider);                     /* 0.16em */
  color: var(--as-on-dark);
  margin: 0 0 var(--as-s-5);                              /* 24px */
}

.vmf-col ul { list-style: none; padding: 0; margin: 0; }
.vmf-col li { padding: var(--as-s-1) 0; }                 /* 4px rhythm */

.vmf-col a {
  display: inline-block;
  color: var(--as-on-dark-muted);                         /* slate-400 */
  text-decoration: none;
  font-size: var(--as-fs-body-sm);
  line-height: var(--as-lh-snug);
  transition: color var(--as-dur-fast) var(--as-ease-out),
              transform var(--as-dur-fast) var(--as-ease-out);
}
.vmf-col a:hover,
.vmf-col a:focus-visible {
  color: var(--as-accent);
  transform: translateX(3px);                             /* tactile nudge */
}

/* Brand column */
.vmf-brand { display: flex; flex-direction: column; gap: var(--as-s-3); }

/* Footer keystone logo â€” same HTML wordmark as the header (Space Grotesk, real È˜).
   The mu-plugin injects .as-logo into .vmf-logo; we make it a flex host and drop
   the old bg-image-SVG mechanism (which faux-rendered È˜ via Arial). */
.vmf-logo {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  font-size: inherit !important;
  line-height: 1 !important;
  color: inherit !important;
  overflow: visible !important;
  margin-bottom: var(--as-s-2);
}
.vmf-logo .as-logo__main { font-size: 26px; }   /* footer wordmark slightly smaller */
.vmf-logo .as-logo__mark { width: 32px; }

/* Brand tagline â€” Inter body, muted */
.vmf-tag {
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-sm);
  color: var(--as-text-faint);                            /* slate-400 on dark */
  line-height: var(--as-lh-body);
  max-width: 44ch;
  margin: 0;
}

/* Contact rows */
.vmf-contact {
  display: flex;
  flex-direction: column;
  gap: var(--as-s-2);
  margin-top: var(--as-s-3);
}
.vmf-contact a {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-medium);
  font-size: var(--as-fs-body-sm);
  color: var(--as-on-dark) !important;                    /* override legacy rgba hook */
  text-decoration: none;
  transition: color var(--as-dur-fast) var(--as-ease-out);
}
.vmf-contact a:hover { color: var(--as-accent) !important; }

/* Bottom legal bar */
.vmf-bottom {
  padding-top: var(--as-s-5);                             /* 24px */
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--as-s-4);
  font-family: var(--as-font-body);
  font-size: var(--as-fs-meta);
  color: var(--as-on-dark-muted);                         /* slate-400 â€” AA on navy (slate-500 was 3.75:1) */
}
.vmf-bottom strong {
  color: var(--as-on-dark);
  font-weight: var(--as-fw-semibold);
}

/* ANPC links â€” mono technical-label treatment (regulatory meta) */
.vmf-anpc {
  display: flex;
  gap: var(--as-s-4);
  flex-wrap: wrap;
}
.vmf-anpc a {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-mono);
  text-transform: uppercase;
  color: var(--as-on-dark-muted);                         /* slate-400 â€” AA on navy (slate-500 was 3.75:1) */
  text-decoration: none;
  padding: var(--as-s-1) var(--as-s-3);
  border: var(--as-bw-hair) solid var(--as-border-dark);
  border-radius: var(--as-r-xs);                          /* 4px chip */
  transition: color var(--as-dur-fast) var(--as-ease-out),
              border-color var(--as-dur-fast) var(--as-ease-out);
}
.vmf-anpc a:hover {
  color: var(--as-accent);
  border-color: var(--as-accent);
}
/* legacy markup sometimes ships ANPC as <img> badges â€” keep them tidy if present */
.vmf-anpc img { height: 34px; opacity: .8; transition: opacity var(--as-dur-fast) var(--as-ease-out); }
.vmf-anpc img:hover { opacity: 1; }


/* ============================================================================
   10. FOOTER RESPONSIVE
   ============================================================================ */

@media (max-width: 900px) {
  .vmf-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--as-s-6);                                   /* 32px */
  }
  .vmf-brand { grid-column: 1 / -1; }                     /* brand spans full width */
}

@media (max-width: 600px) {
  #vm-real-footer {
    padding: var(--as-s-7) var(--as-gutter) var(--as-s-5); /* 48 / fluid / 24 */
  }
  .vmf-grid {
    grid-template-columns: 1fr;
    gap: var(--as-s-6);
  }
  .vmf-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--as-s-3);
    text-align: left;
  }
}

/* ============================================================================
   DROPDOWN ARROW + DENSITY FIX (desktop >=922px)
   Astra puts a 26px .ast-icon.icon-arrow SVG (down-chevron) on EVERY sub-menu
   item -> rendered as a stray "v" in a large gap below each row, and bloated the
   dropdown height. Hide it in desktop dropdowns; show ONE clean inline "â€º" only
   on county items that have a nested city flyout; tighten rows.
   ============================================================================ */
@media (min-width: 922px) {
  /* --- Panel: consistent width + compact padding --- */
  .site-header .sub-menu {
    min-width: 256px !important;
    max-width: 320px !important;
    padding: var(--as-s-2) !important;
  }
  /* --- Kill EVERY Astra chevron/toggle inside desktop dropdowns (the stray "âŒ„") --- */
  .site-header .sub-menu .ast-icon,
  .site-header .sub-menu .ast-icon.icon-arrow,
  .site-header .sub-menu .ast-arrow-svg,
  .site-header .sub-menu .dropdown-menu-toggle,
  .site-header .sub-menu .ast-header-navigation-arrow { display: none !important; }

  /* --- THE real culprit: Astra injects a per-parent <button class="ast-menu-toggle">
     as a SIBLING of the <a> inside EVERY .menu-item-has-children. We hid its icon but not
     the button, so it rendered as (a) an empty dark ROW inside dropdowns (Alba's button)
     and (b) a stray chevron BELOW top-level items (Zone's button). Nuke it on desktop.
     Scoped to .menu-item so the main nav trigger is untouched; gated to >=922px so the
     mobile drawer keeps its tap-to-expand toggles. --- */
  .site-header .menu-item .ast-menu-toggle { display: none !important; }

  /* --- Compact, left-aligned rows; no Astra min-height bloat --- */
  .site-header .sub-menu .menu-item { margin: 0 !important; width: 100% !important; position: relative !important; }
  .site-header .sub-menu .menu-link {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: var(--as-s-2) !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: var(--as-s-3) var(--as-s-4) !important;   /* 12 / 16 */
    white-space: nowrap !important;
    line-height: 1.3 !important;
  }
  /* --- ONE clean "â€º" indicator only on items with a nested city flyout --- */
  .site-header .sub-menu .menu-item-has-children > .menu-link::after {
    content: "\203A";
    font-family: var(--as-font-display);
    font-size: 1.15rem; line-height: 1; opacity: .45;
    margin-left: auto; padding-left: var(--as-s-3);
    transition: transform var(--as-dur-fast) var(--as-ease-out), opacity var(--as-dur-fast) var(--as-ease-out);
  }
  .site-header .sub-menu .menu-item-has-children:hover > .menu-link::after,
  .site-header .sub-menu .menu-item-has-children:focus-within > .menu-link::after {
    opacity: 1; transform: translateX(3px); color: var(--as-accent);
  }

  /* --- NESTED FLYOUT (city sub-sub-menu): clean position right of parent, no overlap --- */
  .site-header .sub-menu .sub-menu {
    top: calc(var(--as-bw-strong) * -1) !important;    /* align to parent top edge */
    /* parent .menu-item sits inside the panel's 8px padding, so left:100% lands INSIDE
       the panel and overlaps it. Push past the panel padding (8px) + a clean 4px gap. */
    left: calc(100% + var(--as-s-3)) !important;       /* 12px = clears panel padding + gap */
    right: auto !important;
    margin: 0 !important;
    min-width: 220px !important;
    max-width: 300px !important;
  }
}
/* ===== SECTION: floating & sticky overlays ===== */
/* ----------------------------------------------------------------------------
   AcoperiÈ™ Sigur â€” Brand v6.0 "Systematic. Brutal. Scalable."
   Owns every fixed/floating overlay and the single, disciplined z-index ladder.

   STACKING ORDER (top â†’ bottom), enforced via the --as-z-* tokens:
     scroll/reading progress  (--as-z-toast,  1500)  always visible, hairline top bar
     cookie banner            (--as-z-cookie, 1300)  blocks until consent
     mobile nav drawer        (--as-z-menu,   1200)  Astra popup (owned by header layer,
                                                     referenced here only for de-conflict)
     mobile sticky CTA bar    (1150)                 between menu & wa
     live ticker              (1120)                 social-proof glass card
     whatsapp float           (--as-z-wa,     1100)  contact bubble
     sticky TOC float         (--as-z-sticky,  200)  blog in-page nav
     site header              (--as-z-header, 1000)  (owned by header layer)

   Required precedence (brief): cookie > menu > sticky-cta > ticker > wa > header. âœ“
   Confirmed live selectors only â€” see homepage.html / blogpost.html DOM.
   ---------------------------------------------------------------------------- */


/* ============================================================================
   0. SAFE-AREA + RESERVED SPACE
   Reserve room at the viewport bottom so the mobile sticky CTA never covers
   real content. JS adds body.has-mobile-sticky when #vm-mobile-sticky exists.
   ============================================================================ */
@media (max-width: 768px) {
  /* !important: overrides the legacy hard-coded `body{padding-bottom:68px!important}`
     hook so the reserve tracks the real bar height + the device safe-area inset. */
  body.has-mobile-sticky {
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* ============================================================================
   1. SCROLL / READING PROGRESS BAR
   Two ids ship in the wild: #vm-scroll-progress (homepage/blog, top:0, 3px)
   and #vm-read-progress (blog refinement, 2px). Unify both to the brand
   amberâ†’sky keystone sweep, pinned to the very top, above everything.
   ============================================================================ */
#vm-scroll-progress,
#vm-read-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;                       /* JS drives width 0â†’100% */
  height: 3px;
  z-index: var(--as-z-toast);      /* 1500 â€” above header & cookie, never occluded */
  background: linear-gradient(90deg,
              var(--as-accent) 0%,
              var(--as-amber-light) 45%,
              var(--as-accent-2) 100%);
  box-shadow: 0 0 10px rgba(255, 182, 39, .45);
  transition: width var(--as-dur-fast) linear;
  pointer-events: none;
}

/* The blog "refined" rule deliberately set #vm-read-progress to 2px â€” honor a
   slightly finer line there, but keep the unified brand gradient above. */
#vm-read-progress {
  height: 2px;
}


/* ============================================================================
   2. LIVE TICKER â€” social-proof glass card (.vm-ticker.vm-v101)
   Refines the existing dark glass card to brand v6.0: navy-deep glass, sky
   hairline, amber lead line, mono timestamp meta, keystone bottom-left anchor.
   Markup: .pulse + .info(strong, span, span.meta) + button.close
   ============================================================================ */
.vm-ticker {
  position: fixed;
  bottom: var(--as-s-5);                 /* 24px */
  left: var(--as-s-5);
  z-index: 1120;                         /* above wa(1100), below sticky-cta(1150) */
  display: flex;
  align-items: flex-start;
  gap: var(--as-s-3);
  max-width: 340px;
  padding: var(--as-s-3) var(--as-s-4);  /* 12 / 16 */
  font-family: var(--as-font-body);
  color: var(--as-on-dark);

  /* navy-deep glass â€” architectural, not a soft SaaS toast */
  background: rgba(10, 20, 36, .90);     /* navy-deep @ glass opacity */
  -webkit-backdrop-filter: blur(18px) saturate(180%);
  backdrop-filter: blur(18px) saturate(180%);
  border: var(--as-bw-hair) solid rgba(255, 255, 255, .10);
  border-left: var(--as-bw-brutal) solid var(--as-accent);  /* keystone accent edge */
  border-radius: var(--as-r-md);         /* 12px â€” consistent with cards */
  box-shadow: var(--as-elev-4);
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
}

.vm-ticker.vm-v101 {
  cursor: pointer;
}
.vm-ticker.vm-v101:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, .10);
  border-left-color: var(--as-amber-light);
  box-shadow: var(--as-elev-4), var(--as-elev-gold-sm);
}

/* live "pulse" dot â€” keep the green "active now" signal, ring animation */
.vm-ticker .pulse {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 5px;
  border-radius: var(--as-r-pill);
  background: var(--as-success);
  box-shadow: 0 0 0 0 rgba(5, 150, 105, .55);
  animation: asTickerPulse 2s infinite;
}
@keyframes asTickerPulse {
  0%   { box-shadow: 0 0 0 0 rgba(5, 150, 105, .50); }
  70%  { box-shadow: 0 0 0 9px rgba(5, 150, 105, 0); }
  100% { box-shadow: 0 0 0 0 rgba(5, 150, 105, 0); }
}

.vm-ticker .info {
  flex: 1;
  min-width: 0;
  font-size: var(--as-fs-meta);
  line-height: var(--as-lh-snug);
}
.vm-ticker .info strong {
  display: block;
  margin-bottom: 1px;
  font-family: var(--as-font-display);   /* Space Grotesk lead line */
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-caption);
  letter-spacing: var(--as-ls-tight);
  color: var(--as-accent);               /* amber keystone headline */
}
.vm-ticker .info span {
  display: block;
  color: var(--as-on-dark-muted);
}
/* technical timestamp meta â€” mono, uppercase, tracked (brand voice) */
.vm-ticker .info .meta {
  margin-top: 3px;
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider);
  color: var(--as-slate-400);            /* AA on navy-deep glass (slate-500 was 3.88:1) */
}

.vm-ticker .close {
  flex-shrink: 0;
  align-self: flex-start;
  padding: 0 0 0 var(--as-s-2);
  background: transparent;
  border: 0;
  font-family: var(--as-font-display);
  font-size: 18px;
  line-height: 1;
  color: var(--as-slate-400);
  cursor: pointer;
  transition: var(--as-t-fast);
}
.vm-ticker .close:hover {
  color: var(--as-on-dark);
}

/* slide-in / slide-out lifecycle (JS toggles .vm-ticker-closing) */
.vm-ticker.vm-v101 {
  animation: asTickerIn var(--as-dur-slow) var(--as-ease-snap) both;
}
.vm-ticker.vm-v101.vm-ticker-closing {
  animation: asTickerOut var(--as-dur-base) var(--as-ease-out) forwards;
}
@keyframes asTickerIn {
  from { transform: translateY(120%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
@keyframes asTickerOut {
  from { transform: translateY(0);    opacity: 1; }
  to   { transform: translateY(120%); opacity: 0; }
}


/* ============================================================================
   3. WHATSAPP FLOAT â€” defensive desktop contact bubble
   No standalone WA bubble is injected in the current build (the mobile WA action
   lives inside #vm-mobile-sticky). These selectors are kept because the legacy
   hooks reference an Astra/JoinChat-style float; if one is ever enabled it lands
   on the correct rung of the ladder with the brand WhatsApp green.
   ============================================================================ */
.joinchat,
.wa-float-btn,
.t-wa-float,
.vm-wa-float,
.vm-whatsapp-float,
[class*="whatsapp-float"] {
  z-index: var(--as-z-wa);               /* 1100 â€” below ticker, above header */
}

/* If our own bubble class is used, give it the keystone treatment */
.vm-wa-float,
.vm-whatsapp-float {
  position: fixed;
  right: var(--as-s-5);
  bottom: var(--as-s-5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: var(--as-r-pill);
  background: #25D366;                    /* WhatsApp brand green â€” intentional, not a token */
  color: var(--as-white);
  box-shadow: var(--as-elev-3);
  transition: var(--as-t-transform);
}
.vm-wa-float:hover,
.vm-whatsapp-float:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: var(--as-elev-4);
}


/* ============================================================================
   4. MOBILE STICKY CTA BAR â€” #vm-mobile-sticky
   Hidden on desktop; pinned 3-up action bar on mobile. Phone(amber keystone) /
   WhatsApp(green) / Offer(sky). Sharp, high-contrast, safe-area aware.
   ============================================================================ */
#vm-mobile-sticky {
  display: none;                          /* desktop: hidden */
}

@media (max-width: 768px) {
  /* display:flex needs !important to beat the inline desktop `display:none`
     defined in earlier hooks; everything else is plain cascade. */
  #vm-mobile-sticky {
    display: flex !important;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1150;                        /* above ticker(1120), below menu(1200) */
    gap: var(--as-s-2);
    padding: var(--as-s-2) var(--as-s-3);
    padding-bottom: calc(var(--as-s-2) + env(safe-area-inset-bottom, 0px));
    background: var(--as-bg-dark);        /* navy */
    border-top: var(--as-bw-strong) solid var(--as-accent);  /* keystone top edge */
    box-shadow: 0 -2px 16px rgba(15, 23, 42, .28);
  }

  #vm-mobile-sticky a {
    flex: 1;
    min-height: 48px;                     /* WCAG touch target */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--as-s-1);
    border-radius: var(--as-r-sm);        /* 8px */
    font-family: var(--as-font-display);
    font-weight: var(--as-fw-extrabold);
    font-size: var(--as-fs-body-sm);
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
    transition: transform var(--as-dur-fast) var(--as-ease-out);
  }
  #vm-mobile-sticky a:active {
    transform: scale(.96);
  }

  #vm-mobile-sticky .vm-sticky-phone {
    background: var(--as-action);          /* amber keystone */
    color: var(--as-action-text);          /* navy on amber â€” max contrast */
  }
  #vm-mobile-sticky .vm-sticky-whatsapp {
    background: #25D366;                    /* WhatsApp green */
    color: var(--as-white);
  }
  #vm-mobile-sticky .vm-sticky-form {
    background: var(--as-sky-text);        /* sky-700 fill so white label passes AA (5.9:1; #0EA5E9 was 2.77:1) */
    color: var(--as-white);
  }

  /* normalize injected icon sizing inside the sticky actions */
  #vm-mobile-sticky .vm-sticky-phone svg,
  #vm-mobile-sticky .vm-sticky-whatsapp svg,
  #vm-mobile-sticky .vm-sticky-form svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
  }
}


/* ============================================================================
   5. COOKIE CONSENT BANNER â€” .vm-cookie-banner
   Top of the ladder (below progress bar): a full-width navy glass strip with an
   amber keystone top border. Buttons follow the action hierarchy:
   Accept = amber keystone, Decline = ghost, Customize = sky-tinted.
   Markup: .body(strong,a) + .actions(button.vm-customize/.vm-decline/.vm-accept)
   ============================================================================ */
.vm-cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--as-z-cookie);            /* 1300 â€” above the menu drawer */
  display: none;                          /* JS adds .vm-show to reveal */
  align-items: center;
  gap: var(--as-s-5);
  padding: var(--as-s-4) var(--as-gutter);
  padding-bottom: calc(var(--as-s-4) + env(safe-area-inset-bottom, 0px));
  font-family: var(--as-font-body);
  color: var(--as-on-dark);
  background: rgba(10, 20, 36, .97);      /* navy-deep, near-opaque */
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  backdrop-filter: blur(20px) saturate(160%);
  border-top: var(--as-bw-strong) solid var(--as-accent);   /* keystone edge */
  box-shadow: 0 -10px 40px rgba(0, 0, 0, .35);
  animation: asCookieIn var(--as-dur-slow) var(--as-ease-out);
}
.vm-cookie-banner.vm-show {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
@keyframes asCookieIn {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

.vm-cookie-banner .body {
  flex: 1;
  min-width: 280px;
  max-width: 680px;
  font-size: var(--as-fs-caption);
  line-height: var(--as-lh-snug);
  color: var(--as-on-dark-muted);
}
.vm-cookie-banner .body strong {
  display: block;
  margin-bottom: var(--as-s-1);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-extrabold);
  font-size: var(--as-fs-body-sm);
  color: var(--as-accent);
}
.vm-cookie-banner .body a {
  color: var(--as-link);
  font-weight: var(--as-fw-semibold);
  text-decoration: none;
}
.vm-cookie-banner .body a:hover {
  text-decoration: underline;
}

.vm-cookie-banner .actions {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  gap: var(--as-s-2);
}
.vm-cookie-banner button {
  padding: var(--as-s-3) var(--as-s-5);
  border: 0;
  border-radius: var(--as-r-sm);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-body-sm);
  white-space: nowrap;
  cursor: pointer;
  transition: var(--as-t-transform), opacity var(--as-dur-fast) var(--as-ease-out);
}
.vm-cookie-banner button.vm-accept {
  background: var(--as-action);
  color: var(--as-action-text);          /* navy on amber */
  box-shadow: var(--as-elev-gold-sm);
}
.vm-cookie-banner button.vm-accept:hover {
  background: var(--as-action-hover);
  transform: translateY(-1px);
}
.vm-cookie-banner button.vm-decline {
  background: transparent;
  color: var(--as-on-dark-muted);
  border: var(--as-bw-hair) solid rgba(255, 255, 255, .20);
}
.vm-cookie-banner button.vm-decline:hover {
  color: var(--as-on-dark);
  border-color: rgba(255, 255, 255, .40);
}
.vm-cookie-banner button.vm-customize {
  background: rgba(14, 165, 233, .15);    /* sky tint */
  color: var(--as-accent-2);
  border: var(--as-bw-hair) solid rgba(14, 165, 233, .30);
}
.vm-cookie-banner button.vm-customize:hover {
  background: rgba(14, 165, 233, .24);
}

/* Defensive parity for a 3rd-party consent container (CookieYes etc.) so it
   never falls behind the menu/sticky bar. !important: those containers ship
   their own inline z-index. */
.cky-consent-container,
[class*="cookie-consent"] {
  z-index: var(--as-z-cookie) !important;
}


/* ============================================================================
   6. STICKY TOC FLOAT â€” in-page navigation
   Single real variant: JS-injected custom .vm-toc (white surface, keystone
   amber left rail, sharp/architectural). The same .vm-toc element is injected
   on long posts AND the homepage by the TOC hook, so one blueprint covers both.
   Lives on the --as-z-sticky rung (200) â€” well under all bottom overlays.
   ============================================================================ */

/* --- Custom TOC (.vm-toc) â€” the only TOC class that ships in the DOM --- */
.vm-toc {
  position: fixed;
  right: var(--as-s-5);
  top: 50%;
  transform: translateY(-50%) translateX(40px);   /* off-stage until active */
  width: 230px;
  max-height: 70vh;
  overflow-y: auto;
  z-index: var(--as-z-sticky);            /* 200 */
  padding: var(--as-s-4) var(--as-s-4);
  font-family: var(--as-font-body);
  font-size: var(--as-fs-caption);
  background: rgba(255, 255, 255, .96);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: var(--as-bw-hair) solid var(--as-border);
  border-left: var(--as-bw-brutal) solid var(--as-accent);  /* keystone rail */
  border-radius: var(--as-r-md);
  box-shadow: var(--as-elev-3);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--as-dur-slow) var(--as-ease-out),
              transform var(--as-dur-slow) var(--as-ease-out);
}
.vm-toc.vm-toc-active {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
  pointer-events: auto;
}
.vm-toc__head {
  margin-bottom: var(--as-s-3);
  padding-bottom: var(--as-s-2);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-eyebrow);
  letter-spacing: var(--as-ls-wider);
  text-transform: uppercase;
  color: var(--as-sky-text);              /* sky eyebrow â€” AA on white TOC card (sky was 2.77:1) */
  border-bottom: var(--as-bw-hair) solid var(--as-border);
}
.vm-toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vm-toc li {
  margin: 0;
}
.vm-toc a {
  display: block;
  padding: var(--as-s-1) var(--as-s-2);
  font-size: var(--as-fs-caption);
  line-height: 1.4;
  color: var(--as-text-muted);
  text-decoration: none;
  border-left: var(--as-bw-strong) solid transparent;
  transition: var(--as-t-fast);
}
.vm-toc a:hover {
  color: var(--as-text-strong);
  background: var(--as-surface-2);
}
.vm-toc a.vm-toc-current {
  font-weight: var(--as-fw-bold);
  color: var(--as-text-strong);
  background: var(--as-surface-2);
  border-left-color: var(--as-accent);    /* amber active marker */
}


/* ============================================================================
   7. MOBILE DE-CONFLICT â€” stop overlays stacking on top of each other
   On phones the ticker, sticky CTA, cookie banner and WA float all want the
   bottom edge. Resolve by: hiding the desktop floats that have no room, and
   lifting the ticker above the sticky CTA bar.
   ============================================================================ */
@media (max-width: 768px) {
  /* Ticker goes full-width-ish and sits ABOVE the sticky CTA bar.
     Sticky bar reserves ~64px + safe-area; clear it. */
  .vm-ticker {
    left: var(--as-s-3);
    right: var(--as-s-3);
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    max-width: none;
    padding: var(--as-s-3);
  }
  /* JS adds .has-mobile-cta / body.has-mobile-sticky when the bar is present â€”
     give the ticker a touch more clearance in that case. */
  .vm-ticker.has-mobile-cta,
  body.has-mobile-sticky .vm-ticker {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }

  /* No room for a separate WA bubble next to the 3-up sticky bar â€” suppress it
     on mobile (WhatsApp is already a button in #vm-mobile-sticky). !important to
     beat any plugin inline display. */
  .joinchat,
  .wa-float-btn,
  .t-wa-float,
  .vm-wa-float,
  .vm-whatsapp-float,
  [class*="whatsapp-float"] {
    display: none !important;
  }

  /* When the Astra mobile menu drawer is open, hide bottom floats so they don't
     bleed over the drawer (drawer = --as-z-menu, but these would still peek). */
  .ast-mobile-popup-active .vm-ticker,
  .ast-mobile-popup-active #vm-mobile-sticky,
  .ast-mobile-popup-active .joinchat,
  .ast-mobile-popup-active .t-wa-float,
  .ast-mobile-popup-active [class*="whatsapp-float"] {
    display: none !important;
  }

  /* TOC float has no room on phones â€” hidden. */
  .vm-toc {
    display: none !important;
  }
}

/* TOC float needs a real sidebar gutter; hide under 1200px. */
@media (max-width: 1199px) {
  .vm-toc {
    display: none !important;
  }
}

/* Extra-small phones: cookie actions go full-width, ticker tightens. */
@media (max-width: 480px) {
  .vm-cookie-banner {
    flex-direction: column;
    gap: var(--as-s-3);
    padding: var(--as-s-4) var(--as-s-4);
    padding-bottom: calc(var(--as-s-4) + env(safe-area-inset-bottom, 0px));
    text-align: center;
  }
  .vm-cookie-banner .actions {
    width: 100%;
    flex-direction: column;
  }
  .vm-cookie-banner button {
    width: 100%;
    padding: var(--as-s-3);
  }
  .vm-ticker .info {
    font-size: var(--as-fs-meta);
  }
}


/* ============================================================================
   8. PRINT â€” no floating chrome on paper.
   ============================================================================ */
@media print {
  #vm-scroll-progress,
  #vm-read-progress,
  .vm-ticker,
  #vm-mobile-sticky,
  .vm-sticky-cta,
  .vm-sticky-cta-container,
  [class*="sticky-cta"],
  .vm-cookie-banner,
  .joinchat,
  .vm-wa-float,
  .vm-whatsapp-float,
  [class*="whatsapp-float"],
  .vm-toc {
    display: none !important;
  }
}

/* ===== SECTION: blog + article reading experience ===== */
/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” Blog & Editorial  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Premium technical-publication reading experience. Single-column 760px body,
   architectural H2/H3 rhythm, sky-blue mono-flavoured meta, amber-keystone CTAs.
   Replaces the patched v10.3/v10.4/v10.5 hooks (Rubik + Playfair + invisible-text
   inline CTA). All values reference 00-tokens.css â€” no duplicated literals.

   Real selectors confirmed against live DOM:
     - Index : article.ast-article-post Â· .entry-title a Â· .entry-meta
               .ast-taxonomy-container Â· .ast-excerpt-container Â· .read-more
               .vm-post-thumb Â· .vm-read-time-badge
     - Hero  : .vm-blog-hero-injected Â· .vm-bh-* (JS-injected on /blog/)
     - Body  : .single-post .entry-content (p/h2/h3/ul/ol/blockquote/table/figure
               /wp-block-cover/wp-block-pullquote)
     - CTAs  : .vm-blog-inline-cta Â· .vm-blog-bottom-cta + .vm-bbc-*
     - TOC   : .vm-toc (JS-injected aside) Â· .vm-toc__head Â· .vm-toc a.vm-toc-current
     - Nav   : .post-navigation Â· .nav-links Â· .ast-author-box Â· .comment-respond

   !important usage: only to override Astra theme defaults, Spectra/UAGB inline
   styles, and the legacy stacked vm-v104/v10.5 hooks still in the cascade.
   ============================================================================ */


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   A. BLOG INDEX â€” JS-injected editorial hero  (.vm-blog-hero-injected on /blog/)
   Re-skins the old Rubik/Playfair pastel hero into a navy-blueprint masthead.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.vm-blog-hero-injected {
  position: relative;
  background: var(--as-bg-dark) !important;          /* was a timid pastel gradient */
  padding: var(--as-section-y-sm) var(--as-gutter);
  text-align: center;
  border-bottom: var(--as-bw-strong) solid var(--as-amber);  /* keystone underline  */
  overflow: hidden;
}
/* Subtle blueprint grid texture â€” brand motif, very low opacity */
.vm-blog-hero-injected::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--as-blueprint-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--as-blueprint-line) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at 50% 0%, #000 30%, transparent 75%);
          mask-image: radial-gradient(ellipse 70% 80% at 50% 0%, #000 30%, transparent 75%);
  pointer-events: none;
}
.vm-bh-inner {
  position: relative;             /* sit above the grid texture */
  z-index: 1;
  max-width: var(--as-container-narrow);
  margin: 0 auto;
}
.vm-bh-eyebrow {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-eyebrow) !important;
  font-weight: var(--as-fw-bold) !important;
  color: var(--as-amber) !important;
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wider) !important;
  margin: 0 0 var(--as-s-3) !important;
}
.vm-bh-title {
  font-family: var(--as-font-display) !important;     /* kill the Rubik fallback   */
  font-size: var(--as-fs-h1) !important;
  font-weight: var(--as-fw-extrabold) !important;
  color: var(--as-on-dark) !important;
  line-height: var(--as-lh-tight) !important;
  letter-spacing: var(--as-ls-display) !important;
  margin: 0 0 var(--as-s-4) !important;
}
/* the highlighted span: was Playfair serif italic â€” now amber Space Grotesk */
.vm-bh-title span {
  color: var(--as-amber) !important;
  font-family: var(--as-font-display) !important;
  font-style: normal !important;
  font-weight: var(--as-fw-extrabold) !important;
}
.vm-bh-lead {
  font-family: var(--as-font-body) !important;
  font-size: var(--as-fs-body-lg) !important;
  color: var(--as-on-dark-muted) !important;
  line-height: var(--as-lh-snug) !important;
  max-width: 56ch;
  margin: 0 auto var(--as-s-6) !important;
}

/* Category filter pills â€” sharp chips on dark */
.vm-bh-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--as-s-2);
  justify-content: center;
}
.vm-bh-pill {
  display: inline-block;
  font-family: var(--as-font-display);
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-semibold);
  letter-spacing: var(--as-ls-mono);
  padding: var(--as-s-2) var(--as-s-4);
  background: rgba(255, 255, 255, .04);
  border: var(--as-bw-hair) solid rgba(255, 255, 255, .16);
  color: var(--as-on-dark) !important;
  border-radius: var(--as-r-pill);
  text-decoration: none !important;
  transition: var(--as-t-base);
}
.vm-bh-pill:hover {
  background: var(--as-amber);
  border-color: var(--as-amber);
  color: var(--as-on-amber) !important;
  transform: translateY(-2px);
}
.vm-bh-pill.vm-pill-active {
  background: var(--as-amber);
  border-color: var(--as-amber);
  color: var(--as-on-amber) !important;
}

/* Astra's own archive description header (when present, e.g. category pages) */
body.blog .ast-archive-description,
.archive.category .ast-archive-description {
  background: var(--as-bg-dark) !important;
  padding: var(--as-section-y-sm) var(--as-gutter) !important;
  text-align: center;
  margin-bottom: var(--as-s-7);
  border-bottom: var(--as-bw-strong) solid var(--as-amber);
}
body.blog .ast-archive-description h1,
.archive.category .ast-archive-description .ast-archive-title {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h1) !important;
  font-weight: var(--as-fw-extrabold) !important;
  color: var(--as-on-dark) !important;
  letter-spacing: var(--as-ls-display) !important;
  margin: 0 0 var(--as-s-4) !important;
}
body.blog .ast-archive-description p,
.archive.category .ast-archive-description p {
  font-family: var(--as-font-body) !important;
  font-size: var(--as-fs-body-lg) !important;
  color: var(--as-on-dark-muted) !important;
  max-width: 56ch;
  margin: 0 auto !important;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   B. BLOG INDEX â€” article cards  (article.ast-article-post)
   A single, consistent card primitive: hairline border, md radius, elev-2 hover.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.archive .ast-article-post,
body.blog article.ast-article-post,
body.blog article.post {
  background: var(--as-surface);
  border: var(--as-border-hair);
  border-radius: var(--as-r-md);
  overflow: hidden;                 /* clips the .vm-post-thumb top corners       */
  padding: var(--as-s-6);
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
}
.archive .ast-article-post:hover,
body.blog article.ast-article-post:hover,
body.blog article.post:hover {
  transform: translateY(-4px);
  box-shadow: var(--as-elev-3);
  border-color: var(--as-amber);    /* keystone accent on hover                   */
}

/* Featured-image wrapper (JS-injected .vm-post-thumb, full-bleed to card edges) */
.vm-post-thumb {
  display: block;
  margin: calc(var(--as-s-6) * -1) calc(var(--as-s-6) * -1) var(--as-s-5);
  overflow: hidden;
  border-radius: var(--as-r-md) var(--as-r-md) 0 0;
  height: 220px;
  background: var(--as-surface-2);
}
.vm-post-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--as-dur-slow) var(--as-ease-out);
}
.ast-article-post:hover .vm-post-thumb img { transform: scale(1.05); }

/* Card title â€” Space Grotesk, navy â†’ sky on hover */
.archive .entry-title,
body.blog .entry-title {
  font-family: var(--as-font-display);
  font-size: var(--as-fs-h4);
  font-weight: var(--as-fw-bold);
  line-height: var(--as-lh-heading);
  letter-spacing: var(--as-ls-tight);
  margin: 0 0 var(--as-s-3);
}
.archive .entry-title a,
body.blog .entry-title a {
  color: var(--as-text-strong) !important;
  text-decoration: none;
  transition: var(--as-t-fast);
}
.archive .entry-title a:hover,
body.blog .entry-title a:hover {
  color: var(--as-link) !important;           /* AA-safe sky text (was --as-sky 2.77:1) */
}

/* Card meta row â€” category tag + author + read-time, mono-flavoured */
.archive .entry-meta,
body.blog .entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--as-s-2);
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-mono);
  color: var(--as-text-muted);
  margin: 0 0 var(--as-s-4);
}
/* category pill inside meta */
.archive .ast-taxonomy-container.cat-links a,
body.blog .ast-taxonomy-container.cat-links a {
  display: inline-block;
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-meta);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
  color: var(--as-navy) !important;
  background: var(--as-amber);
  padding: 2px var(--as-s-2);
  border-radius: var(--as-r-xs);
  text-decoration: none !important;
  transition: var(--as-t-fast);
}
.archive .ast-taxonomy-container.cat-links a:hover,
body.blog .ast-taxonomy-container.cat-links a:hover {
  background: var(--as-amber-dark);
}
.archive .posted-by a,
body.blog .posted-by a {
  color: var(--as-text-muted) !important;
  text-decoration: none;
}
.archive .posted-by a:hover,
body.blog .posted-by a:hover { color: var(--as-link) !important; }

/* Excerpt */
.archive .ast-excerpt-container p,
body.blog .ast-excerpt-container p {
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-sm);
  line-height: var(--as-lh-body);
  color: var(--as-text);
  margin: 0 0 var(--as-s-4);
}

/* "Read More Â»" â†’ confident amber-text link with arrow affordance */
.archive .read-more a,
body.blog .read-more a,
.archive .ast-read-more-container a,
body.blog .ast-read-more-container a {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-body-sm);
  letter-spacing: var(--as-ls-mono);
  color: var(--as-amber-text) !important;     /* amber-700 text = AA on white (5.9:1) */
  text-decoration: none !important;
  transition: var(--as-t-fast);
}
.archive .read-more a::after,
body.blog .read-more a::after,
.archive .ast-read-more-container a::after,
body.blog .ast-read-more-container a::after {
  content: "\2192";   /* â†’ encoding-proof */
  transition: transform var(--as-dur-fast) var(--as-ease-out);
}
.archive .read-more a:hover,
body.blog .read-more a:hover,
.archive .ast-read-more-container a:hover,
body.blog .ast-read-more-container a:hover { color: var(--as-navy) !important; }
.archive .read-more a:hover::after,
body.blog .read-more a:hover::after { transform: translateX(4px); }

/* Read-time badge (JS-injected into .entry-meta) â€” mono technical chip */
.vm-read-time-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-1);
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  font-weight: var(--as-fw-semibold);
  letter-spacing: var(--as-ls-mono);
  text-transform: lowercase;
  color: var(--as-amber-text);                /* AA on the amber tint over white */
  background: rgba(255, 182, 39, .12);
  padding: 2px var(--as-s-2);
  border-radius: var(--as-r-xs);
  margin-left: var(--as-s-1);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   C. ARTICLE READING EXPERIENCE  (.single-post .entry-content)
   760px centred reading column, generous vertical rhythm, one type system.
   Layout-constraint (760px max-width + auto margins) is inherited from the
   v10.5 hook; here we own the *look* (type, color, rhythm).
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Reading column wrapper â€” guarantees the column even if v10.5 hook is dropped */
.single-post .entry-content,
.single article .entry-content {
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body);
  line-height: var(--as-lh-body);
  color: var(--as-text);
}

/* Body paragraphs â€” single canonical text color (--as-text), no more drift */
.single-post .entry-content > p,
.single article .entry-content > p,
.single-post .entry-content p,
.single article .entry-content p {
  font-size: var(--as-fs-body) !important;       /* override 17px literal in hook  */
  line-height: var(--as-lh-body) !important;
  color: var(--as-text) !important;              /* was #1F2937 â€” now token        */
  margin: 0 0 1.5em !important;
}

/* Lead paragraph (first paragraph after the H1/header) â€” larger, slate-strong */
.single-post .entry-content > p:first-of-type,
.single article .entry-content > p:first-of-type {
  font-size: var(--as-fs-body-lg) !important;
  line-height: var(--as-lh-snug) !important;
  color: var(--as-text-strong) !important;
  font-weight: var(--as-fw-medium) !important;
}

/* H2 â€” architectural section heads. Tasteful keystone tick, NOT a full left bar.
   Overrides the v10.4 "border-top:3px + display:inline-block" gimmick.          */
.single-post .entry-content h2,
.single article .entry-content h2 {
  display: block !important;
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h2) !important;
  font-weight: var(--as-fw-extrabold) !important;
  line-height: var(--as-lh-tight) !important;
  letter-spacing: var(--as-ls-display) !important;
  color: var(--as-text-strong) !important;
  margin: 2em 0 var(--as-s-5) !important;        /* big breath before each section */
  padding-top: 0 !important;
  border-top: 0 !important;                       /* kill the old inline-block bar  */
  position: relative;
  scroll-margin-top: 96px;                        /* fixed-header offset for TOC jumps */
}
/* short amber keystone tick above the H2 â€” restrained, brand-correct */
.single-post .entry-content h2::before,
.single article .entry-content h2::before {
  content: "";
  display: block;
  width: 40px;
  height: var(--as-bw-brutal);
  background: var(--as-amber);
  margin-bottom: var(--as-s-4);
  border-radius: var(--as-r-sharp);
}

/* H3 â€” sub-section heads */
.single-post .entry-content h3,
.single article .entry-content h3 {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h4) !important;
  font-weight: var(--as-fw-bold) !important;
  line-height: var(--as-lh-heading) !important;
  letter-spacing: var(--as-ls-tight) !important;
  color: var(--as-text-strong) !important;
  margin: 1.8em 0 var(--as-s-3) !important;
  scroll-margin-top: 96px;
}
.single-post .entry-content h4,
.single article .entry-content h4 {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h5) !important;
  font-weight: var(--as-fw-semibold) !important;
  color: var(--as-text-strong) !important;
  margin: 1.6em 0 var(--as-s-3) !important;
}

/* In-body links â€” sky underline, navy on hover */
.single-post .entry-content p a:not(.wp-block-button__link):not(.wp-element-button),
.single article .entry-content p a:not(.wp-block-button__link):not(.wp-element-button),
.single-post .entry-content li a:not(.wp-block-button__link):not(.wp-element-button),
.single article .entry-content li a:not(.wp-block-button__link):not(.wp-element-button) {
  color: var(--as-link);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(14, 165, 233, .4);
  transition: var(--as-t-fast);
}
.single-post .entry-content p a:hover,
.single article .entry-content p a:hover,
.single-post .entry-content li a:hover,
.single article .entry-content li a:hover {
  color: var(--as-link-hover);
  text-decoration-color: currentColor;
}

/* Lists â€” comfortable rhythm, custom amber markers via marker pseudo */
.single-post .entry-content ul,
.single article .entry-content ul,
.single-post .entry-content ol,
.single article .entry-content ol {
  font-size: var(--as-fs-body);
  line-height: var(--as-lh-body);
  color: var(--as-text);
  margin: 0 0 1.5em;
  padding-left: var(--as-s-5);
}
.single-post .entry-content li,
.single article .entry-content li { margin-bottom: var(--as-s-2); }
.single-post .entry-content ul > li::marker,
.single article .entry-content ul > li::marker { color: var(--as-amber-text); }  /* AA on white */
.single-post .entry-content ol > li::marker,
.single article .entry-content ol > li::marker {
  color: var(--as-text-strong);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
}

/* Blockquote â€” sky keystone, NOT italic-everything. Slate panel, mono attribution. */
.single-post .entry-content blockquote,
.single article .entry-content blockquote {
  margin: var(--as-s-6) 0 !important;
  padding: var(--as-s-5) var(--as-s-6) !important;
  background: var(--as-surface-2);
  border: 0;
  border-left: var(--as-bw-brutal) solid var(--as-sky);
  border-radius: 0 var(--as-r-md) var(--as-r-md) 0;
  font-style: normal;
  color: var(--as-text-strong);
}
.single-post .entry-content blockquote p,
.single article .entry-content blockquote p {
  font-size: var(--as-fs-body-lg) !important;
  line-height: var(--as-lh-snug) !important;
  color: var(--as-text-strong) !important;
  font-weight: var(--as-fw-medium) !important;
  margin: 0 0 var(--as-s-3) !important;
}
.single-post .entry-content blockquote cite,
.single article .entry-content blockquote cite {
  display: block;
  font-family: var(--as-font-mono);
  font-style: normal;
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-mono);
  color: var(--as-text-muted);
}

/* Pullquote â€” bigger editorial moment, amber rules top/bottom */
.single-post .entry-content .wp-block-pullquote,
.single article .entry-content .wp-block-pullquote {
  border: 0 !important;
  border-top: var(--as-bw-strong) solid var(--as-amber) !important;
  border-bottom: var(--as-bw-strong) solid var(--as-amber) !important;
  padding: var(--as-s-6) 0 !important;
  margin: var(--as-s-7) 0 !important;
  text-align: center;
}
.single-post .entry-content .wp-block-pullquote p,
.single article .entry-content .wp-block-pullquote p {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h4) !important;
  font-weight: var(--as-fw-bold) !important;
  font-style: normal !important;
  line-height: var(--as-lh-snug) !important;
  letter-spacing: var(--as-ls-tight) !important;
  color: var(--as-text-strong) !important;
}
.single-post .entry-content .wp-block-pullquote cite,
.single article .entry-content .wp-block-pullquote cite {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-mono);
  color: var(--as-text-muted);
  text-transform: none;
}

/* Inline code / kbd â€” technical mono, subtle slate chip */
.single-post .entry-content code,
.single article .entry-content code,
.single-post .entry-content kbd,
.single article .entry-content kbd {
  font-family: var(--as-font-mono);
  font-size: .9em;
  background: var(--as-surface-2);
  color: var(--as-navy);
  padding: 1px 6px;
  border-radius: var(--as-r-xs);
  border: var(--as-border-hair);
}

/* Horizontal rule â€” thin slate divider */
.single-post .entry-content hr,
.single article .entry-content hr {
  border: 0;
  height: var(--as-bw-hair);
  background: var(--as-border);
  margin: var(--as-s-7) auto;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   D. FIGURES & IMAGES  (figure / figcaption / wp-block-image)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.single-post .entry-content figure,
.single article .entry-content figure,
.single-post .entry-content .wp-block-image,
.single article .entry-content .wp-block-image {
  margin: var(--as-s-7) auto !important;
}
.single-post .entry-content figure img,
.single article .entry-content figure img,
.single-post .entry-content .wp-block-image img,
.single article .entry-content .wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--as-r-lg);
  box-shadow: var(--as-elev-2);
}
.single-post .entry-content figcaption,
.single article .entry-content figcaption,
.single-post .entry-content .wp-block-image figcaption,
.single article .entry-content .wp-block-image figcaption {
  font-family: var(--as-font-mono);
  font-size: var(--as-fs-meta);
  letter-spacing: var(--as-ls-mono);
  line-height: var(--as-lh-snug);
  color: var(--as-text-muted);
  text-align: left;
  margin-top: var(--as-s-3) !important;
  padding-left: var(--as-s-3);
  border-left: var(--as-bw-strong) solid var(--as-border-strong);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   E. PREMIUM TABLES  (.wp-block-table / .entry-content table)
   Sharp, data-grade. Navy header, mono numerals, zebra rows. Brutalist edges.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.single-post .entry-content .wp-block-table,
.single article .entry-content .wp-block-table {
  margin: var(--as-s-7) 0 !important;
}
.single-post .entry-content table,
.single article .entry-content table,
.single-post .entry-content .wp-block-table table,
.single article .entry-content .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-sm);
  border: var(--as-bw-strong) solid var(--as-navy);
  border-radius: var(--as-r-sharp);     /* brutalist hard edges for data          */
  overflow: hidden;
}
.single-post .entry-content table thead th,
.single article .entry-content table thead th,
.single-post .entry-content .wp-block-table thead th {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-meta);
  text-transform: uppercase;
  letter-spacing: var(--as-ls-wide);
  text-align: left;
  background: var(--as-navy);
  color: var(--as-on-dark) !important;
  padding: var(--as-s-3) var(--as-s-4);
}
.single-post .entry-content table th,
.single article .entry-content table th,
.single-post .entry-content table td,
.single article .entry-content table td {
  padding: var(--as-s-3) var(--as-s-4);
  border: var(--as-border-hair);
  color: var(--as-text);
  vertical-align: top;
}
.single-post .entry-content table tbody th,
.single article .entry-content table tbody th {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-semibold);
  color: var(--as-text-strong);
  background: var(--as-surface-2);
  text-align: left;
}
/* zebra striping */
.single-post .entry-content table tbody tr:nth-child(even) td,
.single article .entry-content table tbody tr:nth-child(even) td {
  background: var(--as-surface-2);
}
/* numeric cells read as mono â€” applies to figures-style block + last-cell prices */
.single-post .entry-content .wp-block-table.is-style-stripes table,
.single article .entry-content .wp-block-table.is-style-stripes table {
  border-collapse: collapse;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   F. DARK COVER / HERO TEXT-CONTRAST SAFETY NET
   Force readable WHITE text inside dark cover blocks & has-*-background groups,
   regardless of Spectra/Gutenberg inline color attributes. This is the
   long-standing "invisible text on navy cover" fix â€” pinned with !important
   because it must beat per-block inline styles emitted by the block editor.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.single-post .entry-content .wp-block-cover,
.single article .entry-content .wp-block-cover {
  border-radius: var(--as-r-xl);
  overflow: hidden;
}
.single-post .entry-content .wp-block-cover :where(h1, h2, h3, h4, h5, h6, p, li, span, a),
.single article .entry-content .wp-block-cover :where(h1, h2, h3, h4, h5, h6, p, li, span, a),
.single-post .entry-content .wp-block-cover .wp-block-cover__inner-container *,
.single article .entry-content .wp-block-cover .wp-block-cover__inner-container * {
  color: var(--as-on-dark) !important;
  -webkit-text-fill-color: var(--as-on-dark) !important;  /* beat gradient-clip text */
  text-shadow: none !important;
}
/* cover H2 must NOT show the amber-tick (it's a hero, not a section head) */
.single-post .entry-content .wp-block-cover h2::before,
.single article .entry-content .wp-block-cover h2::before { content: none !important; }
.single-post .entry-content .wp-block-cover h1,
.single article .entry-content .wp-block-cover h1,
.single-post .entry-content .wp-block-cover h2,
.single article .entry-content .wp-block-cover h2 {
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-extrabold) !important;
  letter-spacing: var(--as-ls-display) !important;
}

/* Generic dark-background groups/columns (has-*-background utility classes).
   When the background is a dark brand color, text must be white. We scope to
   the known dark tokens to avoid forcing white onto light-tinted backgrounds. */
.single-post .entry-content .wp-block-group.has-background[class*="navy"] :where(h1,h2,h3,h4,h5,h6,p,li,span),
.single article .entry-content .wp-block-group.has-background[class*="navy"] :where(h1,h2,h3,h4,h5,h6,p,li,span),
.single-post .entry-content .wp-block-group.has-background[class*="slate-9"] :where(h1,h2,h3,h4,h5,h6,p,li,span),
.single-post .entry-content [class*="has-black-background"] :where(h1,h2,h3,h4,h5,h6,p,li,span),
.single article .entry-content [class*="has-black-background"] :where(h1,h2,h3,h4,h5,h6,p,li,span) {
  color: var(--as-on-dark) !important;
}
/* Custom dark editorial panels already in content (.team-banner, .portfolio-card
   overlays) keep their own white text â€” reinforce headings use the brand font. */
.single-post .entry-content .team-banner .team-content h3,
.single article .entry-content .team-banner .team-content h3,
.single-post .entry-content .portfolio-card h3,
.single article .entry-content .portfolio-card h3 {
  font-family: var(--as-font-display) !important;
  color: var(--as-on-dark) !important;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   G. INLINE CTA CARD  (.vm-blog-inline-cta â€” JS-injected mid-article)
   THE invisible-text bug, killed for good: navy gradient surface, amber button,
   white H3 + slate-200 body, all pinned with !important + -webkit-text-fill-color
   so no gradient-clip / inherited transparent text can ever blank it again.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.entry-content .vm-blog-inline-cta,
.single-post .entry-content .vm-blog-inline-cta,
body .vm-blog-inline-cta {
  background: linear-gradient(135deg, var(--as-navy) 0%, var(--as-navy-soft) 100%) !important;
  color: var(--as-on-dark) !important;
  border: 0 !important;
  border-left: var(--as-bw-brutal) solid var(--as-amber) !important;   /* keystone */
  border-radius: var(--as-r-md) !important;
  padding: var(--as-s-6) var(--as-s-6) !important;
  margin: var(--as-s-7) auto !important;
  max-width: var(--as-container-narrow) !important;
  text-align: center !important;
  box-shadow: var(--as-elev-3) !important;
}
.entry-content .vm-blog-inline-cta h3,
.single-post .entry-content .vm-blog-inline-cta h3,
body .vm-blog-inline-cta h3 {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h4) !important;
  font-weight: var(--as-fw-extrabold) !important;
  line-height: var(--as-lh-heading) !important;
  letter-spacing: var(--as-ls-tight) !important;
  color: var(--as-on-dark) !important;
  -webkit-text-fill-color: var(--as-on-dark) !important;  /* beat any text-clip */
  background: none !important;
  text-shadow: none !important;
  margin: 0 0 var(--as-s-3) !important;
}
.entry-content .vm-blog-inline-cta h3::before,
.single-post .entry-content .vm-blog-inline-cta h3::before {
  content: none !important;     /* no amber tick on the CTA H3 */
}
.entry-content .vm-blog-inline-cta p,
.single-post .entry-content .vm-blog-inline-cta p,
body .vm-blog-inline-cta p {
  font-family: var(--as-font-body) !important;
  font-size: var(--as-fs-body-sm) !important;
  line-height: var(--as-lh-snug) !important;
  color: var(--as-on-dark-muted) !important;
  -webkit-text-fill-color: var(--as-on-dark-muted) !important;
  background: none !important;
  max-width: 52ch !important;
  margin: 0 auto var(--as-s-5) auto !important;
}
.entry-content .vm-blog-inline-cta a,
.single-post .entry-content .vm-blog-inline-cta a,
body .vm-blog-inline-cta a {
  display: inline-flex !important;
  align-items: center !important;
  gap: var(--as-s-2) !important;
  font-family: var(--as-font-display) !important;
  font-weight: var(--as-fw-bold) !important;
  font-size: var(--as-fs-body-sm) !important;
  letter-spacing: var(--as-ls-mono) !important;
  background: var(--as-action) !important;
  background-image: none !important;
  color: var(--as-action-text) !important;
  -webkit-text-fill-color: var(--as-action-text) !important;
  text-shadow: none !important;
  text-decoration: none !important;
  padding: var(--as-s-3) var(--as-s-6) !important;
  border: 0 !important;
  border-radius: var(--as-r-sm) !important;
  box-shadow: var(--as-elev-gold-sm) !important;
  transition: var(--as-t-transform) !important;
}
.entry-content .vm-blog-inline-cta a:hover,
.single-post .entry-content .vm-blog-inline-cta a:hover,
body .vm-blog-inline-cta a:hover {
  background: var(--as-amber-light) !important;
  color: var(--as-action-text) !important;
  -webkit-text-fill-color: var(--as-action-text) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--as-elev-gold) !important;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   H. FINAL / BOTTOM CTA  (.vm-blog-bottom-cta â€” index list footer & post end)
   Deep navy band, dual action: amber phone button + outline form button.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.vm-blog-bottom-cta {
  background: linear-gradient(135deg, var(--as-navy-deep) 0%, var(--as-navy-soft) 100%) !important;
  color: var(--as-on-dark) !important;
  border: 0;
  border-top: var(--as-bw-strong) solid var(--as-amber);
  border-radius: var(--as-r-lg);
  padding: var(--as-s-7) var(--as-s-6);
  margin: var(--as-s-7) auto;
  max-width: var(--as-container-narrow);
  text-align: center;
  box-shadow: var(--as-elev-3);
}
.vm-blog-bottom-cta h3 {
  font-family: var(--as-font-display) !important;
  font-size: var(--as-fs-h3) !important;
  font-weight: var(--as-fw-extrabold) !important;
  line-height: var(--as-lh-tight) !important;
  letter-spacing: var(--as-ls-display) !important;
  color: var(--as-on-dark) !important;
  -webkit-text-fill-color: var(--as-on-dark) !important;
  margin: 0 0 var(--as-s-3) !important;
}
.vm-blog-bottom-cta h3::before { content: none !important; }   /* no amber tick */
.vm-blog-bottom-cta p {
  font-family: var(--as-font-body) !important;
  font-size: var(--as-fs-body) !important;
  line-height: var(--as-lh-snug) !important;
  color: var(--as-on-dark-muted) !important;
  -webkit-text-fill-color: var(--as-on-dark-muted) !important;
  max-width: 54ch;
  margin: 0 auto var(--as-s-6) !important;
}
.vm-bbc-actions {
  display: flex;
  gap: var(--as-s-3);
  justify-content: center;
  flex-wrap: wrap;
}
.vm-bbc-phone,
.vm-bbc-form {
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  font-size: var(--as-fs-body-sm);
  letter-spacing: var(--as-ls-mono);
  padding: var(--as-s-3) var(--as-s-6);
  border-radius: var(--as-r-sm);
  text-decoration: none !important;
  transition: var(--as-t-transform);
}
.vm-bbc-phone {
  background: var(--as-action);
  color: var(--as-action-text) !important;
  -webkit-text-fill-color: var(--as-action-text);
  box-shadow: var(--as-elev-gold-sm);
}
.vm-bbc-phone:hover {
  background: var(--as-amber-light);
  transform: translateY(-2px);
  box-shadow: var(--as-elev-gold);
}
.vm-bbc-form {
  background: transparent;
  color: var(--as-on-dark) !important;
  -webkit-text-fill-color: var(--as-on-dark);
  border: var(--as-bw-strong) solid rgba(255, 255, 255, .35);
}
.vm-bbc-form:hover {
  border-color: var(--as-amber);
  background: rgba(255, 255, 255, .06);
  transform: translateY(-2px);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   I. STICKY TABLE-OF-CONTENTS PANEL
   Floating right-rail card (desktop â‰¥1200px). Targets the single real TOC class
   the JS hook injects: .vm-toc (aside) with .vm-toc__head title + <a> links.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/* NOTE: The floating .vm-toc panel (geometry, title, links, AND its slide-in
   animation) is owned in full by 70-floating.css Â§6 â€” the single source of
   truth for all fixed/floating overlays. The previous duplicate block here
   re-declared .vm-toc geometry with !important (including transform), which
   silently defeated 70-floating's slide-in transition and gave the panel a
   conflicting 260px/var(--as-surface) skin vs 70's 230px glass card. Removed.
   Only the desktop-visibility gate stays here (no room beside the 760px
   article column under 1200px): */
@media (max-width: 1199px) {
  .vm-toc {
    display: none !important;
  }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   J. POST FOOTER â€” author box, prev/next navigation, comments
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.single-post .ast-author-box {
  max-width: var(--as-container-narrow);
  margin: var(--as-s-8) auto var(--as-s-7);
  padding: var(--as-s-6);
  background: var(--as-surface);
  border: var(--as-border-hair);
  border-left: var(--as-bw-brutal) solid var(--as-amber);
  border-radius: var(--as-r-md);
}
.single-post .ast-author-box .ast-author-name,
.single-post .ast-author-box .ast-author-title {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  color: var(--as-text-strong);
}
.single-post .ast-author-box .ast-author-bio,
.single-post .ast-author-box p {
  font-family: var(--as-font-body);
  font-size: var(--as-fs-body-sm);
  line-height: var(--as-lh-body);
  color: var(--as-text);
}

/* Prev / next navigation â€” two equal sharp-edged cards */
.single-post .post-navigation,
.single-post .nav-links,
.single .post-navigation,
.single .nav-links {
  display: flex;
  gap: var(--as-s-4);
  max-width: var(--as-container-narrow);
  margin: var(--as-s-7) auto;
  padding: var(--as-s-5) 0 0;
  border-top: var(--as-border-hair);
}
.single-post .post-navigation a,
.single-post .nav-links a,
.single .post-navigation a,
.single .nav-links a {
  flex: 1;
  font-family: var(--as-font-body);
  padding: var(--as-s-4) var(--as-s-5);
  background: var(--as-surface);
  border: var(--as-border-hair);
  border-radius: var(--as-r-md);
  text-decoration: none;
  color: var(--as-text-strong);
  transition: var(--as-t-transform), border-color var(--as-dur-base) var(--as-ease-out);
}
.single-post .post-navigation a:hover,
.single-post .nav-links a:hover,
.single .post-navigation a:hover,
.single .nav-links a:hover {
  border-color: var(--as-amber);
  transform: translateY(-2px);
  box-shadow: var(--as-elev-2);
}

/* Comment form respond block â€” keep on-brand if shown */
.single-post .comment-respond .comment-reply-title {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  color: var(--as-text-strong);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   K. RESPONSIVE â€” tablet (â‰¤768px) & phone (â‰¤480px)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
@media (max-width: 768px) {
  .archive .ast-article-post,
  body.blog article.ast-article-post,
  body.blog article.post { padding: var(--as-s-5); }
  .vm-post-thumb {
    height: 180px;
    margin: calc(var(--as-s-5) * -1) calc(var(--as-s-5) * -1) var(--as-s-4);
  }
  /* tighten the H2 keystone tick rhythm on small screens */
  .single-post .entry-content h2,
  .single article .entry-content h2 { margin-top: 1.6em !important; }
  .single-post .entry-content h2::before,
  .single article .entry-content h2::before { margin-bottom: var(--as-s-3); }

  .vm-blog-bottom-cta { padding: var(--as-s-6) var(--as-s-5); }
  .vm-bbc-actions { flex-direction: column; }
  .vm-bbc-phone,
  .vm-bbc-form { width: 100%; justify-content: center; }

  .single-post .post-navigation,
  .single-post .nav-links { flex-direction: column; }
}

@media (max-width: 480px) {
  .vm-bh-pills { gap: var(--as-s-1); }
  .vm-bh-pill { font-size: var(--as-fs-meta); padding: var(--as-s-1) var(--as-s-3); }
  .entry-content .vm-blog-inline-cta,
  .single-post .entry-content .vm-blog-inline-cta {
    padding: var(--as-s-5) var(--as-s-4) !important;
    margin: var(--as-s-6) auto !important;
  }
  /* tables become horizontally scrollable on phones (matches existing mobile hook) */
  .single-post .entry-content table,
  .single article .entry-content table { font-size: var(--as-fs-meta); }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   L. ACCESSIBILITY â€” focus-visible on all blog interactive elements
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.vm-bh-pill:focus-visible,
.archive .entry-title a:focus-visible,
.archive .read-more a:focus-visible,
.entry-content .vm-blog-inline-cta a:focus-visible,
.vm-bbc-phone:focus-visible,
.vm-bbc-form:focus-visible,
.vm-toc a:focus-visible,
.single-post .nav-links a:focus-visible {
  outline: var(--as-bw-strong) solid var(--as-focus-ring);
  outline-offset: 2px;
  border-radius: var(--as-r-xs);
}

/* Reduced motion â€” honor user preference for all blog transforms */
@media (prefers-reduced-motion: reduce) {
  .archive .ast-article-post,
  .vm-post-thumb img,
  .vm-bh-pill,
  .entry-content .vm-blog-inline-cta a,
  .vm-bbc-phone,
  .vm-bbc-form,
  .single-post .nav-links a,
  .read-more a::after {
    transition: none !important;
    transform: none !important;
  }
}

/* ===== SECTION: 85-faq (Native HTML5 FAQ accordion) ===== */
/* ============================================================================
   ACOPERIÈ˜ SIGUR â€” FAQ ACCORDION  (Brand v6.0 Â· "Systematic. Brutal. Scalable.")
   ----------------------------------------------------------------------------
   Premium native <details>/<summary> accordion. Replaces the broken
   Spectra/UAGB FAQ (Lorem ipsum). Pairs with faq-native.html markup:

     .as-faq            wrapper / vertical accordion stack
     .as-faq__item      <details>  â€” the card
     .as-faq__q         <summary>  â€” the question row (Space Grotesk)
     .as-faq__q-text    question label span
     .as-faq__icon      amber +/- keystone glyph, rotates on open
     .as-faq__a         answer wrapper (grid-rows trick for smooth open/close)

   Namespace ...... .as-faq*  â€” fresh; does NOT touch live .uagb-* or .vm-faq-*.
   Tokens ......... references --as-* design tokens only; no duplicated hex.
   A11y ........... full keyboard (native <details>), :focus-visible ring,
                    prefers-reduced-motion, prefers-contrast.
   ============================================================================ */


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   1. WRAPPER â€” the accordion stack
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.as-faq {
  display: flex;
  flex-direction: column;
  gap: var(--as-s-3);                       /* 12px â€” disciplined card rhythm */
  max-width: var(--as-container-narrow);    /* 760px reading column */
  margin-inline: auto;
  font-family: var(--as-font-body);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   2. ITEM CARD â€” <details> on --as-surface, hairline border, consistent radius
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.as-faq__item {
  position: relative;
  background: var(--as-surface);
  border: var(--as-border-hair);            /* 1px slate-200 */
  border-radius: var(--as-r-md);            /* 12px â€” consistent radius scale */
  box-shadow: var(--as-elev-1);
  overflow: hidden;
  transition:
    border-color var(--as-dur-base) var(--as-ease-out),
    box-shadow   var(--as-dur-base) var(--as-ease-out),
    background   var(--as-dur-base) var(--as-ease-out);
}

/* Left keystone rail â€” collapsed = neutral hairline, telegraphs the amber accent
   that fills in on open. Subtle blueprint/architectural motif. */
.as-faq__item::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: var(--as-bw-brutal);               /* 3px brutalist accent rail */
  background: var(--as-border);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform var(--as-dur-base) var(--as-ease-out),
              background var(--as-dur-base) var(--as-ease-out);
}

/* Hover (closed) â€” sky-tinted edge, lift. Warm, intentional, not random. */
.as-faq__item:hover {
  border-color: var(--as-accent-2);         /* sky support pillar */
  box-shadow: var(--as-elev-2);
}

/* OPEN state â€” amber keystone accent: border + rail + elevation. */
.as-faq__item[open] {
  border-color: var(--as-accent);           /* amber */
  box-shadow: var(--as-elev-3);
}
.as-faq__item[open]::before {
  background: var(--as-accent);             /* amber rail fills in */
  transform: scaleY(1);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   3. QUESTION ROW â€” <summary>, Space Grotesk display, no default marker
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.as-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--as-s-4);
  padding: var(--as-s-5) var(--as-s-5);     /* 24px */
  cursor: pointer;
  list-style: none;                         /* kill default disclosure triangle */
  user-select: none;
  font-family: var(--as-font-display);      /* Space Grotesk */
  font-weight: var(--as-fw-bold);           /* 700 */
  font-size: var(--as-fs-h6);               /* 16â†’18 fluid */
  line-height: var(--as-lh-heading);
  letter-spacing: var(--as-ls-tight);
  color: var(--as-text-strong);             /* navy */
  transition: color var(--as-dur-fast) var(--as-ease-out);
}

/* Remove the native marker across engines (WebKit/Blink + standards). */
.as-faq__q::-webkit-details-marker { display: none; }
.as-faq__q::marker { content: ""; }

.as-faq__q-text { flex: 1 1 auto; }

/* Question turns amber when its card is open or on hover â€” warm convert cue.
   Uses --as-amber-text (#8A5A00, 5.93:1) â€” the AA-safe amber for text on the
   white surface. NOTE: --as-accent-dark (#E89E15) is only 2.25:1 here = FAIL,
   so it must never style text on light. */
.as-faq__item[open] > .as-faq__q,
.as-faq__q:hover {
  color: var(--as-amber-text);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   4. ICON â€” amber keystone +/- glyph, drawn with pseudo-elements, rotates on open
      Built from two bars so it morphs + â†’ Ã—/âˆ’ cleanly (no font dependency).
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.as-faq__icon {
  position: relative;
  flex: 0 0 auto;
  inline-size: 1.5rem;
  block-size: 1.5rem;
  border-radius: var(--as-r-xs);            /* 4px chip */
  background: var(--as-surface-2);          /* slate-100 plate behind the glyph */
  transition:
    background var(--as-dur-base) var(--as-ease-out),
    transform  var(--as-dur-base) var(--as-ease-snap);  /* slight overshoot */
}

/* The two crossbars of the "+" */
.as-faq__icon::before,
.as-faq__icon::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  inline-size: 0.75rem;                     /* 12px bar */
  block-size: var(--as-bw-strong);          /* 2px */
  border-radius: var(--as-r-pill);
  background: var(--as-accent);             /* amber keystone */
  transform: translate(-50%, -50%);
  transition: transform var(--as-dur-base) var(--as-ease-snap),
              background var(--as-dur-base) var(--as-ease-out);
}
/* vertical bar of the "+" */
.as-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }

/* OPEN â€” plate goes amber, glyph rotates to "âˆ’" (vertical bar collapses) and the
   whole chip spins 180Â° for a tactile, brand-consistent toggle. */
.as-faq__item[open] .as-faq__icon {
  background: var(--as-accent);
  transform: rotate(180deg);
}
.as-faq__item[open] .as-faq__icon::before,
.as-faq__item[open] .as-faq__icon::after {
  background: var(--as-action-text);        /* navy bars on amber plate = max contrast */
}
/* hide the vertical bar â†’ "+" becomes "âˆ’" */
.as-faq__item[open] .as-faq__icon::after {
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   5. ANSWER â€” smooth open/close via grid-template-rows 0frâ†’1fr (modern, no JS,
      no fixed max-height guesswork). Falls back gracefully to instant in old UAs.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.as-faq__a {
  display: grid;
  grid-template-rows: 1fr;                  /* details[open] is the only render state */
  font-family: var(--as-font-body);         /* Inter */
}

/* The inner element actually clips. Children live inside an implicit row. */
.as-faq__a > * {
  min-height: 0;                            /* allow the row to collapse */
}

.as-faq__a p {
  margin: 0;
  padding: 0 var(--as-s-5) var(--as-s-5);   /* 0 24 24 â€” align with question pad */
  color: var(--as-text);                    /* slate-800 body */
  font-size: var(--as-fs-body-sm);          /* 14â†’15 */
  font-weight: var(--as-fw-body);
  line-height: var(--as-lh-body);           /* 1.7 generous reading rhythm */
}
.as-faq__a p + p { padding-top: var(--as-s-3); }

/* Emphasis inside answers (prices, brands, terms) â€” navy + Space Grotesk weight
   to echo the technical/architectural voice. */
.as-faq__a strong {
  color: var(--as-text-strong);             /* navy */
  font-weight: var(--as-fw-semibold);
}

/* Hairline divider between question and answer ONLY when open â€” keeps closed
   cards clean, gives open cards structure. */
.as-faq__item[open] .as-faq__a p {
  border-block-start: var(--as-border-hair);
  padding-block-start: var(--as-s-4);       /* 16px breathing room under the rule */
  margin-block-start: calc(var(--as-s-2) * -1 + var(--as-s-2));
}

/* Animated reveal of the answer.
   <details> toggles display:none on the content, so we can't transition the
   content box itself reliably across browsers â€” instead we fade + slide the
   paragraph in when the parent opens. Disabled under reduced-motion below. */
@supports (grid-template-rows: 0fr) {
  .as-faq__item[open] .as-faq__a p {
    animation: as-faq-reveal var(--as-dur-slow) var(--as-ease-out) both;
  }
}
@keyframes as-faq-reveal {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   6. ACCESSIBILITY â€” focus-visible ring (sky halo), reduced motion, contrast
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.as-faq__q:focus-visible {
  outline: var(--as-bw-strong) solid var(--as-focus-ring);  /* sky 2px */
  outline-offset: 2px;
  border-radius: var(--as-r-sm);
}
/* Remove the default focus ring only where we provide the visible one. */
.as-faq__q:focus:not(:focus-visible) { outline: none; }

@media (prefers-reduced-motion: reduce) {
  .as-faq__item,
  .as-faq__item::before,
  .as-faq__icon,
  .as-faq__icon::before,
  .as-faq__icon::after,
  .as-faq__q {
    transition: none;
  }
  .as-faq__item[open] .as-faq__a p { animation: none; }
}

/* High-contrast / forced-colors â€” make borders + accent visible without color. */
@media (prefers-contrast: more) {
  .as-faq__item { border-width: var(--as-bw-strong); }
  .as-faq__item[open] { border-color: var(--as-accent-dark); }
}


/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   7. RESPONSIVE â€” tablet â‰¤768px, phone â‰¤480px (tighten pad, keep tap targets â‰¥44px)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 768px) {
  .as-faq { gap: var(--as-s-2); }           /* 8px */
  .as-faq__q { padding: var(--as-s-4) var(--as-s-4); }   /* 16px */
  .as-faq__a p { padding: 0 var(--as-s-4) var(--as-s-4); }
  .as-faq__item[open] .as-faq__a p { padding-block-start: var(--as-s-3); }
}

@media (max-width: 480px) {
  .as-faq__q {
    gap: var(--as-s-3);
    font-size: var(--as-fs-body);           /* keep questions legible, 16â†’17 */
  }
  .as-faq__icon {
    inline-size: 1.375rem;
    block-size: 1.375rem;
  }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   8. LEGACY DEDUP â€” native .as-faq is the SINGLE source of truth
   Legacy hook 2832 JS-injects a SECOND, redundant FAQ (.vm-faq-extended,
   "Ce vor sÄƒ È™tie oamenii Ã®nainte de comandÄƒ"); hook 2814 adds a global sky "+"
   via `.entry-content details summary::after` (the "double +" icon). master.css
   loads last â†’ hide the duplicate + kill the stray blue plus. The native FAQ
   above keeps its own .as-faq__icon and the correct FAQPage schema.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.vm-faq-extended { display: none !important; }
.entry-content details summary::after,
.as-faq__q::after { content: none !important; }

/* ===== SECTION: Mobile + Responsive Polish (loads last) ===== */
/* Brand v6.0 "Systematic. Brutal. Scalable."
   Overrides the legacy stacked mobile hooks (2830 / 2843 / page-inline) with a
   single token-driven layer. Targets ONLY selectors confirmed in the live DOM:
   Astra off-canvas drawer (#ast-mobile-popup / .ast-mobile-popup-drawer /
   .ast-mobile-popup-inner / .menu-toggle / #menu-toggle-close), the JS-injected
   premium drawer (.vm-menu-* from hook 2843), the mobile sticky action bar
   (#vm-mobile-sticky + .vm-sticky-phone/.vm-sticky-whatsapp/.vm-sticky-form),
   floating bubbles (.joinchat / .vm-wa-float / .vm-ticker / desktop .vm-sticky-form
   popup), the SureForms contact form (.srfm-*), and Astra header/containers.
   Breakpoints: 768px (mobile/tablet) and 480px (small phones).
   !important is used only to beat Astra/Spectra theme rules, plugin frontend CSS,
   and the older inline mobile hooks that still ship in the DOM. */

/* ============================================================================
   0. GLOBAL TOUCH BASELINE (site-wide, all viewports)
   Prevents iOS input zoom, gives momentum scroll, kills tap-highlight flash,
   and respects notch insets. Low specificity â€” no !important needed here.
   ============================================================================ */
:root {
  /* drawer-local ink tokens derived from brand tokens (kept here, not in 00-tokens) */
  --as-drawer-hairline: rgba(255, 255, 255, .08);
  --as-drawer-hairline-soft: rgba(255, 255, 255, .06);
  --as-amber-tint-08: rgba(255, 182, 39, .08);
  --as-amber-tint-12: rgba(255, 182, 39, .12);
  --as-amber-line-30: rgba(255, 182, 39, .30);
  --as-amber-line-40: rgba(255, 182, 39, .40);
}

html {
  -webkit-text-size-adjust: 100%;   /* lock iOS text inflation */
  text-size-adjust: 100%;
}

body {
  -webkit-tap-highlight-color: transparent;   /* no grey flash on tap */
  overscroll-behavior-y: none;                /* no rubber-band chaining */
}

/* Interactive elements: snappy taps, no double-tap zoom delay */
a,
button,
[role="button"],
.wp-block-button__link,
.ast-button,
.menu-toggle,
.srfm-btn,
input[type="submit"],
button[type="submit"] {
  touch-action: manipulation;
}

/* iOS zoom guard: any focusable field <16px triggers auto-zoom. Force >=16px.
   Scoped to the real form primitives present in the DOM. */
.srfm-input-common,
.srfm-form input[type="text"],
.srfm-form input[type="email"],
.srfm-form input[type="tel"],
.srfm-form input[type="number"],
.srfm-form select,
.srfm-form textarea {
  font-size: max(16px, var(--as-fs-body-sm));   /* never below 16px on mobile */
}

/* ============================================================================
   1. MOBILE / TABLET  (<= 768px)
   ============================================================================ */
@media (max-width: 768px) {

  /* ------------------------------------------------------------------------
     1.1  CONTAINER + RHYTHM TIGHTENING
     Pull the wide desktop gutter in to a comfortable phone margin and damp
     the oversized section rhythm so stacked blocks don't feel like canyons.
     ------------------------------------------------------------------------ */
  .ast-container,
  .ast-container-fluid {
    padding-inline: var(--as-s-4) !important;   /* 16px â€” overrides Astra wide gutter */
  }
  .entry-content {
    max-width: 100% !important;
  }

  /* ------------------------------------------------------------------------
     1.2  ASTRA HEADER â€” compact, premium navy bar
     ------------------------------------------------------------------------ */
  .site-header,
  .ast-primary-header-bar {
    min-height: 56px !important;
    padding-block: var(--as-s-2) !important;     /* 8px */
  }
  .site-header .ast-site-identity img,
  .custom-logo-link img.custom-logo {
    max-height: 38px !important;
    width: auto !important;
  }
  /* Astra above-header strip (hook 2591) â€” slim it on phones */
  .ast-above-header-section,
  .ast-builder-html-element {
    font-size: var(--as-fs-meta) !important;
  }
  .ast-above-header-section {
    padding-block: var(--as-s-1) !important;     /* 4px */
  }

  /* Hamburger trigger â€” proper 44px WCAG tap target, amber on press */
  .menu-toggle.main-header-menu-toggle,
  .ast-mobile-menu-trigger-fill {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: var(--as-r-sm) !important;
    color: var(--as-on-dark) !important;
    transition: var(--as-t-fast);
  }
  .menu-toggle.main-header-menu-toggle:active,
  .ast-mobile-menu-trigger-fill:active {
    background: var(--as-amber-tint-12) !important;
    color: var(--as-action) !important;
  }
  .mobile-menu-toggle-icon .ast-mobile-svg {
    width: 26px;
    height: 26px;
  }

  /* ========================================================================
     1.3  MOBILE DRAWER  (Astra off-canvas + JS-injected .vm-menu-* shell)
     Navy monolith, sticky header + footer, amber keystone accents.
     ======================================================================== */
  #ast-mobile-popup.ast-mobile-popup-drawer,
  .ast-mobile-popup-drawer {
    background: var(--as-bg-dark) !important;     /* navy */
    z-index: var(--as-z-menu) !important;
  }
  .ast-mobile-popup-drawer .ast-mobile-popup-content {
    padding: 0 !important;
    padding-top: env(safe-area-inset-top, 0px) !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    background: var(--as-bg-dark) !important;
  }
  .ast-mobile-popup-drawer .ast-mobile-popup-inner {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    background: var(--as-bg-dark) !important;
    overscroll-behavior: contain;                 /* trap scroll inside drawer */
  }

  /* Hide Astra's native close + social â€” the JS drawer supplies its own */
  .ast-mobile-popup-drawer .menu-toggle-close,
  .ast-mobile-popup-drawer #menu-toggle-close,
  .ast-mobile-popup-drawer .ast-mobile-popup-close,
  .ast-mobile-popup-drawer .ast-builder-social-element,
  .ast-mobile-popup-drawer .ast-header-social-1 {
    display: none !important;
  }

  /* --- 1.3a  TOP BAR (logo + close) --- */
  .vm-menu-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--as-s-4);
    padding: var(--as-s-4) var(--as-s-5);
    background: var(--as-bg-dark);
    border-bottom: var(--as-bw-hair) solid var(--as-drawer-hairline);
    position: sticky;
    top: 0;
    z-index: 10;
  }
  .vm-menu-top__logo {
    font-family: var(--as-font-display);
    font-weight: var(--as-fw-black);
    font-size: 1.375rem;                  /* 22px wordmark */
    line-height: 1;
    letter-spacing: var(--as-ls-display);
    color: var(--as-on-dark);
    text-transform: uppercase;
  }
  .vm-menu-top__logo em {
    color: var(--as-amber);               /* keystone dot */
    font-style: normal;
  }
  /* Close = circular amber keystone control, 44px */
  .vm-menu-top__close {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--as-font-display);
    font-size: 1.25rem;
    color: var(--as-amber);
    background: var(--as-amber-tint-12);
    border: var(--as-bw-hair) solid var(--as-amber-line-30);
    border-radius: var(--as-r-pill);
    cursor: pointer;
    transition: var(--as-t-base);
  }
  .vm-menu-top__close:hover,
  .vm-menu-top__close:active {
    background: var(--as-amber);
    color: var(--as-navy);
    transform: scale(1.05);
  }

  /* --- 1.3b  HERO CTA (tap-to-call) â€” warm amber keystone block --- */
  .vm-menu-cta-call {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--as-s-3);
    margin: var(--as-s-4) var(--as-s-5) var(--as-s-2);
    padding: var(--as-s-4) var(--as-s-5);
    min-height: 56px;
    background: linear-gradient(135deg, var(--as-amber) 0%, var(--as-amber-dark) 100%);
    color: var(--as-action-text) !important;     /* navy on amber */
    border-radius: var(--as-r-lg);
    box-shadow: var(--as-elev-gold);
    font-family: var(--as-font-display);
    font-weight: var(--as-fw-extrabold);
    letter-spacing: var(--as-ls-tight);
    text-decoration: none !important;
    transition: var(--as-t-transform);
  }
  .vm-menu-cta-call:active {
    transform: scale(.98);
    box-shadow: var(--as-elev-gold-sm);
  }
  .vm-menu-cta-call .icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .vm-menu-cta-call .label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.15;
  }
  .vm-menu-cta-call .small {
    font-family: var(--as-font-mono);             /* technical mono micro-label */
    font-size: var(--as-fs-meta);
    font-weight: var(--as-fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--as-ls-wider);
    opacity: .82;
  }
  .vm-menu-cta-call .big {
    font-family: var(--as-font-display);
    font-size: 1.1875rem;                 /* 19px phone number */
    font-weight: var(--as-fw-extrabold);
    letter-spacing: var(--as-ls-tight);
  }

  /* --- 1.3c  MAIN NAV ITEMS inside drawer --- */
  .ast-mobile-popup-drawer .main-header-menu,
  .ast-mobile-popup-drawer .main-navigation,
  .ast-mobile-popup-drawer .menu {
    flex-grow: 1 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    list-style: none !important;
    margin: 0 !important;
    padding: var(--as-s-2) 0 !important;
    background: transparent !important;
  }
  .ast-mobile-popup-drawer .menu-item,
  .ast-mobile-popup-drawer .main-header-menu li {
    background: transparent !important;
    border-bottom: var(--as-bw-hair) solid var(--as-drawer-hairline-soft) !important;
  }
  .ast-mobile-popup-drawer .menu-item:last-child {
    border-bottom: 0 !important;
  }
  .ast-mobile-popup-drawer .menu-item > a,
  .ast-mobile-popup-drawer .main-header-menu > li > a {
    display: flex !important;
    align-items: center !important;
    min-height: 56px !important;           /* generous tap target */
    padding: var(--as-s-4) var(--as-s-5) !important;
    color: var(--as-on-dark) !important;
    font-family: var(--as-font-display) !important;
    font-weight: var(--as-fw-semibold) !important;
    font-size: var(--as-fs-h6) !important;
    letter-spacing: var(--as-ls-tight) !important;
    text-decoration: none !important;
    border-left: var(--as-bw-brutal) solid transparent !important;   /* brutalist edge marker */
    line-height: 1.2 !important;          /* was inheriting a tall line-height -> 84px rows */
    transition: var(--as-t-base) !important;
  }
  .ast-mobile-popup-drawer .menu-item > a:hover,
  .ast-mobile-popup-drawer .menu-item > a:active,
  .ast-mobile-popup-drawer .menu-item.current-menu-item > a {
    color: var(--as-amber) !important;
    background: var(--as-amber-tint-08) !important;
    border-left-color: var(--as-amber) !important;
    padding-left: calc(var(--as-s-5) + var(--as-s-1)) !important;     /* slide-in */
  }
  /* Single caret: the functional .ast-menu-toggle (its chevron flips âŒ„ -> ^ on expand) is the
     ONLY indicator. Hide master's decorative ::after AND the duplicate in-link Astra arrow/
     toggle so has-children rows don't inflate to ~77px and don't show two chevrons. */
  .ast-mobile-popup-drawer .menu-item-has-children > a::after { content: none !important; }
  .ast-mobile-popup-drawer .menu-item > a .ast-icon,
  .ast-mobile-popup-drawer .menu-item > a > svg,
  .ast-mobile-popup-drawer .menu-item > a .dropdown-menu-toggle,
  .ast-mobile-popup-drawer .menu-item > a .ast-header-navigation-arrow { display: none !important; }

  /* Submenu (Servicii / Zone) â€” recessed darker shelf */
  .ast-mobile-popup-drawer .sub-menu {
    list-style: none !important;
    padding: var(--as-s-1) 0 !important;
    background: var(--as-navy-deep) !important;
    box-shadow: inset 0 1px 0 var(--as-drawer-hairline-soft) !important;
  }
  .ast-mobile-popup-drawer .sub-menu li a {
    min-height: 48px !important;
    padding: var(--as-s-3) var(--as-s-5) var(--as-s-3) calc(var(--as-s-5) + var(--as-s-5)) !important;
    color: var(--as-on-dark-muted) !important;
    font-family: var(--as-font-body) !important;
    font-weight: var(--as-fw-medium) !important;
    font-size: var(--as-fs-body-sm) !important;
  }
  .ast-mobile-popup-drawer .sub-menu li a:active,
  .ast-mobile-popup-drawer .sub-menu li.current-menu-item a {
    color: var(--as-amber) !important;
  }
  /* Dropdown toggle arrows inside drawer â€” 44px hit area */
  .ast-mobile-popup-drawer .ast-menu-toggle,
  .ast-mobile-popup-drawer .dropdown-menu-toggle {
    min-width: 44px !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--as-on-dark-muted) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: var(--as-r-sm) !important;
  }
  /* v13.2: kill the ugly sky-blue focus/expanded BOX around drawer toggles */
  .ast-mobile-popup-drawer .ast-menu-toggle:focus,
  .ast-mobile-popup-drawer .ast-menu-toggle:focus-visible,
  .ast-mobile-popup-drawer .ast-menu-toggle[aria-expanded="true"],
  .ast-mobile-popup-drawer .menu-item-has-children > a:focus {
    outline: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
    background: transparent !important;
  }
  /* expanded parent row: subtle amber tint instead of a hard box, chevron -> amber */
  .ast-mobile-popup-drawer .menu-item-has-children > a[aria-expanded="true"],
  .ast-mobile-popup-drawer .ast-submenu-expanded > a {
    color: var(--as-amber) !important;
  }
  .ast-mobile-popup-drawer .menu-item-has-children > a[aria-expanded="true"] + .ast-menu-toggle,
  .ast-mobile-popup-drawer .ast-menu-toggle[aria-expanded="true"] { color: var(--as-amber) !important; }
  /* nested county sub-menu: clean indented shelf (3-level drawer) */
  .ast-mobile-popup-drawer .sub-menu .sub-menu { background: rgba(0,0,0,.18) !important; }
  .ast-mobile-popup-drawer .sub-menu li a { letter-spacing: 0 !important; }

  /* --- 1.3d  SOCIAL ROW --- */
  .vm-menu-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--as-s-3);
    padding: var(--as-s-5);
    border-top: var(--as-bw-hair) solid var(--as-drawer-hairline-soft);
  }
  .vm-menu-social a {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--as-on-dark) !important;
    background: rgba(255, 255, 255, .06);
    border: var(--as-bw-hair) solid rgba(255, 255, 255, .10);
    border-radius: var(--as-r-md);
    transition: var(--as-t-base);
  }
  .vm-menu-social a:hover,
  .vm-menu-social a:active {
    color: var(--as-amber) !important;
    background: var(--as-amber-tint-12);
    border-color: var(--as-amber-line-40);
    transform: translateY(-1px);
  }
  .vm-menu-social svg {
    width: 20px;
    height: 20px;
  }

  /* --- 1.3e  STICKY BOTTOM CTA (inside drawer) --- */
  .vm-menu-bottom {
    position: sticky;
    bottom: 0;
    padding: var(--as-s-3) var(--as-s-5) calc(var(--as-s-4) + env(safe-area-inset-bottom, 0px));
    background: var(--as-navy-deep);
    border-top: var(--as-bw-hair) solid var(--as-drawer-hairline);
  }
  .vm-menu-bottom__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--as-s-2);
    width: 100%;
    min-height: 52px;
    padding: var(--as-s-4);
    background: var(--as-white);
    color: var(--as-navy) !important;
    border-radius: var(--as-r-md);
    font-family: var(--as-font-display);
    font-weight: var(--as-fw-extrabold);
    font-size: var(--as-fs-body-sm);
    letter-spacing: var(--as-ls-tight);
    text-decoration: none !important;
    transition: var(--as-t-base);
  }
  .vm-menu-bottom__cta:active {
    transform: scale(.98);
    background: var(--as-slate-100);
  }
  .vm-menu-bottom__cta svg {
    width: 18px;
    height: 18px;
  }

  /* ========================================================================
     1.4  MOBILE STICKY ACTION BAR  (#vm-mobile-sticky)
     Fixed bottom navy bar: SunÄƒ / WhatsApp / OfertÄƒ. Safe-area aware.
     ======================================================================== */
  #vm-mobile-sticky {
    z-index: var(--as-z-wa) !important;          /* above floats, below drawer/cookie */
    background: rgba(10, 20, 36, .96) !important;/* navy-deep glass */
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: var(--as-bw-hair) solid var(--as-amber-line-40) !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  }
  #vm-mobile-sticky a,
  #vm-mobile-sticky .vm-sticky-phone,
  #vm-mobile-sticky .vm-sticky-whatsapp,
  #vm-mobile-sticky .vm-sticky-form {
    min-height: 48px !important;                 /* WCAG tap target */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--as-font-display) !important;
    font-weight: var(--as-fw-bold) !important;
    font-size: var(--as-fs-body-sm) !important;
    letter-spacing: var(--as-ls-tight) !important;
    text-decoration: none !important;
  }
  #vm-mobile-sticky .vm-sticky-phone {
    background: var(--as-amber) !important;
    color: var(--as-action-text) !important;     /* navy on amber */
  }
  #vm-mobile-sticky .vm-sticky-whatsapp {
    background: #25D366 !important;               /* WhatsApp brand green â€” fixed external color */
    color: var(--as-white) !important;
  }
  #vm-mobile-sticky .vm-sticky-form {
    background: var(--as-sky-text) !important;    /* sky-700 so white label passes AA (5.9:1; #0EA5E9 was 2.77:1) */
    color: var(--as-white) !important;
  }
  /* svg sizing inside bar buttons */
  #vm-mobile-sticky .vm-sticky-phone svg,
  #vm-mobile-sticky .vm-sticky-whatsapp svg,
  #vm-mobile-sticky .vm-sticky-form svg {
    width: 18px;
    height: 18px;
  }

  /* ========================================================================
     1.5  FLOATING ELEMENTS â€” stacking + hide-when-drawer-open
     Lift WA bubble / ticker clear of the bottom sticky bar; suppress them
     while the off-canvas menu is open so they don't bleed over the navy panel.
     ======================================================================== */
  .joinchat,
  .vm-wa-float,
  [class*="whatsapp-float"] {
    bottom: clamp(72px, 18vw, 96px) !important;  /* clear the sticky bar */
    z-index: calc(var(--as-z-wa) - 1) !important;
  }
  .vm-ticker {
    bottom: clamp(64px, 15vw, 84px) !important;
    z-index: calc(var(--as-z-wa) - 2) !important;
  }
  /* Drawer open (body.ast-mobile-popup-active): hide competing floats + bar */
  .ast-mobile-popup-active .joinchat,
  .ast-mobile-popup-active .vm-wa-float,
  .ast-mobile-popup-active [class*="whatsapp-float"],
  .ast-mobile-popup-active .vm-ticker,
  .ast-mobile-popup-active #vm-mobile-sticky {
    display: none !important;
  }
  /* Desktop-only floating contact popup (.vm-sticky-form, fixed bottom-right
     card on contact.html) must NOT appear on phones â€” the bottom bar replaces it.
     NB: distinct from #vm-mobile-sticky .vm-sticky-form (a bar button) above. */
  .vm-sticky-form:not(#vm-mobile-sticky .vm-sticky-form) {
    display: none !important;
  }

  /* ========================================================================
     1.6  CONTACT FORM (SureForms) â€” touch-comfortable on phones
     ======================================================================== */
  .srfm-form input[type="text"],
  .srfm-form input[type="email"],
  .srfm-form input[type="tel"],
  .srfm-form input[type="number"],
  .srfm-form select,
  .srfm-form textarea {
    min-height: 48px !important;
    padding: var(--as-s-3) var(--as-s-4) !important;
    border: var(--as-bw-strong) solid var(--as-border) !important;
    border-radius: var(--as-r-sm) !important;
    background: var(--as-surface) !important;
    color: var(--as-text) !important;
    font-family: var(--as-font-body) !important;
    transition: var(--as-t-fast) !important;
  }
  .srfm-form input:focus,
  .srfm-form select:focus,
  .srfm-form textarea:focus {
    outline: 0 !important;
    border-color: var(--as-focus-ring) !important;
    box-shadow: var(--as-elev-focus) !important;
  }
  .srfm-form textarea {
    min-height: 120px !important;
    line-height: var(--as-lh-snug) !important;
  }
  /* Stack the 50/50 two-up fields to full width on phones */
  .srfm-form .srfm-block-width-50,
  .srfm-form .srfm-block-width-33 {
    width: 100% !important;
  }
  /* Submit button â€” full-width amber keystone, real tap target */
  .srfm-form .srfm-submit-btn,
  .srfm-form button[type="submit"],
  .srfm-form input[type="submit"] {
    width: 100% !important;
    min-height: 52px !important;
    background: var(--as-action) !important;
    color: var(--as-action-text) !important;
    border: 0 !important;
    border-radius: var(--as-r-md) !important;
    font-family: var(--as-font-display) !important;
    font-weight: var(--as-fw-extrabold) !important;
    letter-spacing: var(--as-ls-tight) !important;
    box-shadow: var(--as-elev-gold-sm) !important;
  }

  /* Generic button padding clamp â€” prevents overflow on narrow phones.
     Overrides the older inline hook that hard-set padding. */
  .wp-block-button__link,
  .ast-button,
  input[type="submit"],
  button[type="submit"] {
    padding: clamp(14px, 3.2vw, 18px) clamp(20px, 4.5vw, 32px) !important;
  }
}

/* ============================================================================
   2. SMALL PHONES  (<= 480px)
   Tighter gutters, smaller wordmark, denser sticky bar.
   ============================================================================ */
@media (max-width: 480px) {
  .ast-container,
  .ast-container-fluid {
    padding-inline: var(--as-s-3) !important;     /* 12px */
  }

  /* Drawer wordmark + paddings tighten */
  .vm-menu-top {
    padding: var(--as-s-3) var(--as-s-4);
  }
  .vm-menu-top__logo {
    font-size: 1.25rem;                            /* 20px */
  }
  .vm-menu-cta-call {
    margin-inline: var(--as-s-4);
    padding: var(--as-s-3) var(--as-s-4);
  }
  .vm-menu-cta-call .big {
    font-size: 1.0625rem;                          /* 17px */
  }
  .ast-mobile-popup-drawer .menu-item > a,
  .ast-mobile-popup-drawer .main-header-menu > li > a {
    padding-inline: var(--as-s-4) !important;
    font-size: var(--as-fs-body) !important;
  }
  .vm-menu-bottom,
  .vm-menu-social {
    padding-inline: var(--as-s-4);
  }

  /* Sticky action bar: smaller label, allow icon-forward layout */
  #vm-mobile-sticky a,
  #vm-mobile-sticky .vm-sticky-phone,
  #vm-mobile-sticky .vm-sticky-whatsapp,
  #vm-mobile-sticky .vm-sticky-form {
    font-size: var(--as-fs-caption) !important;
    gap: var(--as-s-1) !important;
  }

  /* Logo a touch smaller to keep header at 56px */
  .site-header .ast-site-identity img,
  .custom-logo-link img.custom-logo {
    max-height: 34px !important;
  }
}

/* ============================================================================
   2b. MATERIALS COMPARISON TABLE â€” mobile overflow killer  (v12.7)
   ROOT CAUSE (measured w/ headless Chrome): master's .vm-mat-row keeps 5 fixed-ish
   grid columns (â‰ˆ160+120Â·4 = 640px) on phones; legacy 3-col mobile override lost the
   cascade once master.css became authoritative. The 640px row burst its 344px container
   (.vm-mat-table is overflow:visible for the "RECOMANDAT" badge) â†’ 274px page overflow â†’
   the whole site scrolled sideways on mobile. Force the row to fit: 3 shrinkable columns.
   Verified: docScrollWidth == viewport at 320/360/375/390px (overflow 0).
   ============================================================================ */
@media (max-width: 600px) {
  .vm-materials-wrap,
  .vm-mat-table,
  .vm-mat-row { max-width: 100% !important; }
  .vm-mat-row {
    width: 100% !important;
    min-width: 0 !important;
    /* minmax(0,â€¦) lets columns shrink below min-content instead of forcing 640px */
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) !important;
  }
  /* keep label + recommended + one rival; drop the 4th/5th rival columns on phones */
  .vm-mat-cell:nth-child(4),
  .vm-mat-cell:nth-child(5) { display: none !important; }
  .vm-mat-cell {
    min-width: 0 !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* ============================================================================
   2c. COUNTY-HUB TOOLBAR â€” mobile overflow killer  (v12.8)
   The filter chips (.vm-hub-chips) and sort control (.vm-hub-sort) are flex children
   with the default min-width:auto (= min-content â‰ˆ 383px), so they refused to shrink
   inside the 310px flex parent â†’ 53px page overflow on county hub pages. Stack them and
   let them shrink/wrap. Verified: overflow 0 at 360/390px.
   ============================================================================ */
@media (max-width: 600px) {
  .vm-hub-toolbar__inner {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--as-s-3) !important;
  }
  .vm-hub-chips,
  .vm-hub-sort {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-wrap: wrap !important;
  }
  .vm-hub-sort select { max-width: 100% !important; min-width: 0 !important; }
}

/* ============================================================================
   3. REDUCED MOTION â€” disable drawer/CTA transitions + transforms
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
  .vm-menu-top__close,
  .vm-menu-cta-call,
  .vm-menu-social a,
  .vm-menu-bottom__cta,
  .ast-mobile-popup-drawer .menu-item > a,
  .menu-toggle.main-header-menu-toggle {
    transition: none !important;
  }
  .vm-menu-top__close:hover,
  .vm-menu-top__close:active,
  .vm-menu-cta-call:active,
  .vm-menu-social a:hover,
  .vm-menu-bottom__cta:active {
    transform: none !important;
  }
}

/* ===== SECTION: Contact Form (SureForms #srfm-form-2535) ===== */
/* ----------------------------------------------------------------------------
   Brand v6.0 "Systematic. Brutal. Scalable." refinement for the SureForms
   contact form on /contact (form-id 2535, container .srfm-form-container-2535).
   Strategy:
     1. Re-point the plugin's --srfm-* custom properties to brand tokens
        (amber action, navy text, brand radii, amber focus glow).
     2. Add brand rules the plugin exposes no var for (Space Grotesk on
        labels/legends/button, full-width confident amber CTA, dropdown +
        textarea polish, mono technical meta).
     3. De-emphasize the optional/"detail" fields so the form reads short
        above the fold, and add the trust line under the submit.

   All colors/radii/fonts reference the canonical --as-* design tokens; the
   --srfm-* assignments below are the bridge from token -> plugin variable.
   Several behavioral changes (required->optional flags, the "Detalii
   (opÈ›ional)" disclosure wrapper, Romanian placeholder/error/option strings,
   UTF-8 mojibake fix) CANNOT be done in CSS and are flagged in comments for
   server-side application in the SureForms editor.
   ---------------------------------------------------------------------------- */

/* ============================================================================
   1. PLUGIN VARIABLE BRIDGE â€” re-point --srfm-* to brand tokens.
      These override the inline <style> defaults (#111C44 / #1E1E1E) on the
      container. Higher specificity than the inline `.srfm-form-container-2535`
      rule is NOT needed (same selector, later in cascade / external sheet loads
      after inline? no) â€” inline <style> in the document head/body has the same
      specificity, so we add a second class to win the cascade deterministically.
   ============================================================================ */
.srfm-form-container.srfm-form-container-2535 {
  /* --- Action / accent: THE KEYSTONE amber --- */
  --srfm-color-scheme-primary: var(--as-amber);
  --srfm-color-scheme-text-on-primary: var(--as-navy);          /* navy on amber = AA; white on amber fails */
  --srfm-btn-color-hover: hsl(from var(--as-amber) h s l / 0.9);
  --srfm-btn-color-disabled: hsl(from var(--as-amber) h s l / 0.4);
  --srfm-color-input-border-focus-glow: hsl(from var(--as-amber) h s l / 0.35); /* amber focus glow */
  --srfm-color-input-selected: hsl(from var(--as-amber) h s l / 0.12);
  --srfm-color-input-border-hover: hsl(from var(--as-amber) h s l / 0.55);

  /* --- Text / structure: navy on light --- */
  --srfm-color-scheme-text: var(--as-navy);
  --srfm-quill-editor-color: var(--as-navy);
  --srfm-color-input-label: var(--as-navy);
  --srfm-color-input-text: var(--as-navy);
  --srfm-color-input-description: hsl(from var(--as-navy) h s l / 0.65);
  --srfm-color-input-placeholder: hsl(from var(--as-navy) h s l / 0.45);
  --srfm-color-input-prefix: hsl(from var(--as-navy) h s l / 0.65);
  --srfm-color-input-border: hsl(from var(--as-navy) h s l / 0.18);
  --srfm-color-input-border-disabled: hsl(from var(--as-navy) h s l / 0.12);
  --srfm-color-multi-choice-svg: hsl(from var(--as-navy) h s l / 0.7);

  /* --- Input surfaces (very subtle slate tint, navy-derived) --- */
  --srfm-color-input-background: hsl(from var(--as-navy) h s l / 0.015);
  --srfm-color-input-background-hover: hsl(from var(--as-navy) h s l / 0.04);
  --srfm-color-input-background-disabled: hsl(from var(--as-navy) h s l / 0.06);

  /* --- Dropdown internals (navy-derived, replacing #1E1E1E) --- */
  --srfm-dropdown-input-background-hover: hsl(from var(--as-navy) h s l / 0.04);
  --srfm-dropdown-option-background-hover: hsl(from var(--as-amber) h s l / 0.12);   /* amber hover highlight */
  --srfm-dropdown-option-background-selected: hsl(from var(--as-amber) h s l / 0.10);
  --srfm-dropdown-option-selected-icon: var(--as-amber-dark);
  --srfm-dropdown-option-text-color: hsl(from var(--as-navy) h s l / 0.82);
  --srfm-dropdown-option-selected-text: var(--as-navy);
  --srfm-dropdown-badge-background: hsl(from var(--as-navy) h s l / 0.05);
  --srfm-dropdown-badge-background-hover: hsl(from var(--as-navy) h s l / 0.10);
  --srfm-dropdown-menu-border-color: hsl(from var(--as-navy) h s l / 0.10);
  --srfm-dropdown-placeholder-color: hsl(from var(--as-navy) h s l / 0.45);
  --srfm-dropdown-icon-color: hsl(from var(--as-navy) h s l / 0.6);
  --srfm-dropdown-icon-disabled: hsl(from var(--as-navy) h s l / 0.25);

  /* --- Radii: brand container 16px, layout gaps held at 16px --- */
  --srfm-instant-form-border-radius-top: 16px;
  --srfm-instant-form-border-radius-right: 16px;
  --srfm-instant-form-border-radius-bottom: 16px;
  --srfm-instant-form-border-radius-left: 16px;
  --srfm-col-gap-between-fields: 16px;
  --srfm-row-gap-between-fields: 16px;

  /* --- Rhythm: a touch more air between blocks for vertical rhythm --- */
  --srfm-row-gap-between-blocks: 20px;

  /* Keep: --srfm-input-field-font-size:16px (prevents iOS zoom â€” DO NOT lower),
     --srfm-input-height:44px. These already match brand and are untouched. */
}

/* ============================================================================
   2. CONTAINER + SURFACE â€” premium card framing.
      The form sits on white (--srfm-bg-color:#ffffff inline). Add a hairline
      border + disciplined elevation so it reads as a deliberate panel, not a
      floating SaaS card.
   ============================================================================ */
.srfm-form-container-2535 {
  border: var(--as-bw-hair) solid var(--as-border);
  box-shadow: var(--as-elev-2);
  position: relative;
}

/* Keystone accent: a thin amber rule along the top edge â€” the "action" tab. */
.srfm-form-container-2535::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--as-amber);
  border-radius: var(--as-r-lg) var(--as-r-lg) 0 0;
}

/* ============================================================================
   3. TYPOGRAPHY â€” Space Grotesk on every label, legend, button + the
      form's display heading. Inputs stay on body font (Inter) at 16px.
   ============================================================================ */
.srfm-form-container-2535 .srfm-block-label,
.srfm-form-container-2535 .srfm-block-legend {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-semibold);            /* 600 */
  letter-spacing: var(--as-ls-tight);
  color: var(--as-navy);
}

/* Inputs / textareas / dropdowns read in Inter (body) â€” explicit so the theme
   can't leak a serif/display face into the field text. */
.srfm-form-container-2535 .srfm-input-common,
.srfm-form-container-2535 .srfm-dropdown-common,
.srfm-form-container-2535 .srfm-input-textarea {
  font-family: var(--as-font-body);
  font-weight: var(--as-fw-body);
}

/* Required asterisk in keystone amber â€” signals "this is the gate". */
.srfm-form-container-2535 .srfm-required {
  color: var(--as-amber-text);                   /* amber-700 â€” true AA on white (amber-dark was 2.25:1) */
  font-weight: var(--as-fw-bold);
}

/* ============================================================================
   4. INPUTS / TEXTAREA / DROPDOWN â€” sharp-but-warm field treatment.
      10px radius on fields (slightly sharper than the 16px container),
      crisp navy border, amber focus glow via the plugin var + a brand ring.
   ============================================================================ */
.srfm-form-container-2535 .srfm-input-common,
.srfm-form-container-2535 .srfm-dropdown-common,
.srfm-form-container-2535 .srfm-input-textarea,
.srfm-form-container-2535 .srfm-dropdown-common-wrap {
  border-radius: 10px;
  transition: var(--as-t-base);
}

/* Focus: amber ring + glow. !important needed because SureForms ships an inline
   box-shadow on :focus via its own var; we layer a crisp 2px amber ring + soft
   glow so the active field is unmistakably the brand keystone color. */
.srfm-form-container-2535 .srfm-input-common:focus,
.srfm-form-container-2535 .srfm-input-textarea:focus,
.srfm-form-container-2535 .srfm-dropdown-common:focus,
.srfm-form-container-2535 .srfm-dropdown-common-wrap:focus-within {
  border-color: var(--as-amber) !important;
  box-shadow: 0 0 0 3px hsl(from var(--as-amber) h s l / 0.22) !important;
  outline: none;
}

/* Textarea: keep it compact so it doesn't dominate the form's length. */
.srfm-form-container-2535 .srfm-input-textarea {
  min-height: 96px;
  line-height: var(--as-lh-snug);
  resize: vertical;
}

/* Number field (mp) reads as a measurement â€” mono digits reinforce the
   technical/architectural voice ("X mp"). */
.srfm-form-container-2535 .srfm-input-number {
  font-family: var(--as-font-mono);
  letter-spacing: var(--as-ls-mono);
}

/* ============================================================================
   5. PHONE FIELD â€” the highest-value gate after Nume. Give it a faint amber
      wash so the eye lands on the two true lead fields first.
   ============================================================================ */
.srfm-form-container-2535 .srf-phone-phone-002-block .srfm-input-phone {
  background: hsl(from var(--as-amber) h s l / 0.04);
}
/* intl-tel-input fix â€” the JS-injected flag/dial-code container (.iti) was
   overlapping the number ("+40" on top of the placeholder). Make the wrapper
   full-width and pad the input clear of the flag + dial code. Covers the common
   intl-tel class names across versions. */
.srfm-form-container-2535 .iti { display: block !important; width: 100% !important; }
.srfm-form-container-2535 .iti > .srfm-input-phone,
.srfm-form-container-2535 .iti--separate-dial-code .srfm-input-phone,
.srfm-form-container-2535 .iti--allow-dropdown .srfm-input-phone {
  padding-left: 92px !important;            /* clear flag + "+40" dial code */
}
.srfm-form-container-2535 .iti__flag-container,
.srfm-form-container-2535 .iti__selected-flag { z-index: 3; }
.srfm-form-container-2535 .iti__selected-dial-code { color: var(--as-navy); font-weight: var(--as-fw-medium); }

/* ============================================================================
   6. SUBMIT â€” full-width confident amber CTA, navy text, 16px radius,
      Space Grotesk 700, tactile hover with the brand gold glow.
   ============================================================================ */
.srfm-form-container-2535 .srfm-submit-container {
  margin-top: var(--as-s-5);
}
.srfm-form-container-2535 .srfm-submit-container .wp-block-button {
  width: 100%;
  text-align: center;                            /* override inline text-align:left */
}
.srfm-form-container-2535 #srfm-submit-btn,
.srfm-form-container-2535 .srfm-submit-button {
  width: 100%;
  justify-content: center;
  background: var(--as-amber);
  color: var(--as-navy);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);                /* 700 */
  font-size: var(--as-fs-body);
  letter-spacing: var(--as-ls-tight);
  border: none;
  border-radius: 16px;                           /* matches container framing */
  min-height: 52px;
  padding: 14px 24px;
  box-shadow: var(--as-elev-gold-sm), var(--as-elev-inset);
  transition: var(--as-t-transform);
}
.srfm-form-container-2535 #srfm-submit-btn .srfm-submit-wrap {
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-bold);
  color: var(--as-navy);
  justify-content: center;
}
.srfm-form-container-2535 #srfm-submit-btn:hover,
.srfm-form-container-2535 .srfm-submit-button:hover {
  background: var(--as-amber-dark);
  box-shadow: var(--as-elev-gold);
  transform: translateY(-2px);
}
.srfm-form-container-2535 #srfm-submit-btn:active,
.srfm-form-container-2535 .srfm-submit-button:active {
  transform: translateY(0);
  box-shadow: var(--as-elev-gold-sm);
}
.srfm-form-container-2535 #srfm-submit-btn:focus-visible {
  outline: 3px solid var(--as-navy);
  outline-offset: 2px;
}

/* ============================================================================
   7. TRUST LINE â€” injected under the submit via ::after on the submit
      container. (No DOM node exists for it; SERVER-SIDE NOTE below offers the
      richer <p> alternative.) Mono lock + reassurance in muted slate.
   ============================================================================ */
.srfm-form-container-2535 .srfm-submit-container::after {
  content: "\1F512\00A0Datele tale sunt confiden\021Biale. Te sun\0103m \00EEn maxim 4 ore lucr\0103toare. F\0103r\0103 obliga\021Bii.";  /* fully escaped â€” encoding-proof (È›=021B Äƒ=0103 Ã®=00EE) */
  display: block;
  margin-top: var(--as-s-3);
  text-align: center;
  font-family: var(--as-font-body);
  font-size: var(--as-fs-meta);                  /* ~13px */
  line-height: var(--as-lh-snug);
  color: var(--as-slate-600);                    /* ~#475569, near the spec'd #4A5568 */
}
/* SERVER-SIDE NOTE (preferred): instead of ::after, add a real
   <p class="srfm-trust-line">ðŸ”’ Datele tale...</p> after .srfm-submit-container
   in the SureForms editor so the copy is selectable/translatable, then style:
   .srfm-form-container-2535 .srfm-trust-line{font-size:var(--as-fs-meta);
   color:var(--as-slate-600);text-align:center;margin-top:var(--as-s-3);} */

/* ============================================================================
   8. FIELD-SHORTENING STRATEGY (perceived length 9 -> 5 visible)
      CSS can only DE-EMPHASIZE the optional/detail fields; the actual
      collapse (a <details>"Detalii (opÈ›ional)" disclosure) and the
      required->optional flag flips MUST be done in the SureForms editor.
      See SERVER-SIDE NOTES at the end.

      Approach here: tint the four "detail" blocks (Dimensiune lucrare,
      SuprafaÈ›Äƒ mp, Termen, Email) + Mesaj into a single quieter visual group
      so the eye reads Nume/Telefon/Localitate/Tip as the primary form and the
      rest as "extra". This previews the intended grouping until the disclosure
      wrapper is added server-side.
   ============================================================================ */

/* The optional "detail" cluster â€” target by stable data-block-id / slug. */
.srfm-form-container-2535 .srf-email-email-003-block,
.srfm-form-container-2535 .srf-dropdown-dim-lucrare-block,
.srfm-form-container-2535 .srf-number-mp-006-block,
.srfm-form-container-2535 .srf-dropdown-term-007-block,
.srfm-form-container-2535 .srf-textarea-mesaj-008-block {
  /* Slightly recede: lighter label weight + a hairline left tab in slate so
     the group reads as "optional details", not primary gates. */
  position: relative;
}
.srfm-form-container-2535 .srf-email-email-003-block .srfm-block-label,
.srfm-form-container-2535 .srf-dropdown-dim-lucrare-block .srfm-block-legend,
.srfm-form-container-2535 .srf-number-mp-006-block .srfm-block-label,
.srfm-form-container-2535 .srf-dropdown-term-007-block .srfm-block-legend,
.srfm-form-container-2535 .srf-textarea-mesaj-008-block .srfm-block-label {
  font-weight: var(--as-fw-medium);              /* 500 â€” quieter than the 600 gates */
  color: var(--as-slate-600);
}

/* When the disclosure IS added server-side, this styles the summary toggle as a
   brand "AdaugÄƒ detalii" link-row. Harmless if the markup isn't present yet. */
.srfm-form-container-2535 details.srfm-details-toggle {
  margin: var(--as-s-2) 0 var(--as-s-1);
}
.srfm-form-container-2535 details.srfm-details-toggle > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: var(--as-s-2);
  font-family: var(--as-font-display);
  font-weight: var(--as-fw-semibold);
  font-size: var(--as-fs-body-sm);
  color: var(--as-sky-deep);                     /* link-blue, secondary accent */
  letter-spacing: var(--as-ls-tight);
  padding: var(--as-s-2) 0;
  transition: var(--as-t-fast);
}
.srfm-form-container-2535 details.srfm-details-toggle > summary::-webkit-details-marker {
  display: none;
}
.srfm-form-container-2535 details.srfm-details-toggle > summary::before {
  content: "+";
  font-family: var(--as-font-mono);
  font-weight: var(--as-fw-bold);
  font-size: 1.1em;
  line-height: 1;
  color: var(--as-amber-text);                   /* AA on white (amber-dark was 2.25:1) */
}
.srfm-form-container-2535 details.srfm-details-toggle[open] > summary::before {
  content: "\2013";   /* en-dash, encoding-proof */
}
.srfm-form-container-2535 details.srfm-details-toggle > summary:hover {
  color: var(--as-navy);
}

/* ============================================================================
   9. ERROR / VALIDATION â€” keep brand-disciplined (danger token), readable.
   ============================================================================ */
.srfm-form-container-2535 .srfm-error-message,
.srfm-form-container-2535 .srfm-common-error-message .srfm-error-content {
  font-family: var(--as-font-body);
  font-size: var(--as-fs-meta);
  color: var(--as-danger);
}
.srfm-form-container-2535 .srfm-common-error-message {
  border-radius: var(--as-r-sm);
}

/* ============================================================================
   10. RESPONSIVE â€” desktop 2-col is handled by the plugin's .srfm-block-width-50
       flex basis; verify the stack at small viewports and tighten padding.
   ============================================================================ */

/* Desktop 2-col pairing is handled by the plugin's own .srfm-block-width-50 flex-basis +
   --srfm-col-gap-between-fields; no override needed here. */

/* Mobile: single column, tighter container padding so the form isn't tall. */
@media (max-width: 600px) {
  .srfm-form-container-2535 {
    --srfm-instant-form-padding-top: 24px;
    --srfm-instant-form-padding-right: 20px;
    --srfm-instant-form-padding-bottom: 24px;
    --srfm-instant-form-padding-left: 20px;
    --srfm-row-gap-between-blocks: 16px;
  }
  /* width-50 blocks stack full-width (plugin should do this; enforce for safety
     against theme flex overrides). */
  .srfm-form-container-2535 .srfm-block-width-50 {
    width: 100% !important;                       /* override plugin/theme inline basis */
    flex-basis: 100% !important;
  }
  .srfm-form-container-2535 #srfm-submit-btn,
  .srfm-form-container-2535 .srfm-submit-button {
    min-height: 50px;
  }
}

/* ============================================================================
   SERVER-SIDE NOTES â€” apply in the SureForms editor for form-id 2535
   (NOT possible via CSS; listed so the author can action them):
   ----------------------------------------------------------------------------
   A. REQUIRED -> OPTIONAL: downgrade `Localitate` (loc-004) and `Tip lucrare`
      (tip-005) from required to optional. Keep ONLY Nume (name-001) + Telefon
      (phone-002) required â€” the true lead-quality gates.
   B. COLLAPSE: wrap Dimensiune lucrare (dim-lucrare), SuprafaÈ›Äƒ mp (mp-006),
      Termen (term-007), Email (email-003) and Mesaj (mesaj-008) inside a
      collapsed disclosure labeled "Detalii (opÈ›ional)". Add class
      `srfm-details-toggle` to the <details> so the styling in Â§8 applies.
      Above the fold then = Nume | Telefon, Localitate | Tip lucrare + the
      "AdaugÄƒ detalii" toggle + submit (~5 visible fields).
   C. ROMANIAN STRINGS:
      - Dropdown placeholder "Select an option" -> "Alege..."
      - Field error "This field is required." -> "Acest cÃ¢mp este obligatoriu."
      - Submit error "There was an error trying to submit your form. Please
        try again." -> "A apÄƒrut o eroare la trimiterea formularului. ÃŽncearcÄƒ
        din nou."
   D. UTF-8: form heading/intro/placeholders must be served as UTF-8 (they are
      correct in the SureForms source). If any render garbled, fix the editor
      charset; this is an encoding concern, not CSS.
   E. TRUST LINE: prefer a real <p class="srfm-trust-line"> over the Â§7 ::after
      so the copy is selectable/translatable (style provided in Â§7 note).
   ============================================================================ */

/* M5 â€” contact sidebar mini-labels: inline sky #0EA5E9 on #F4F6F8 card = 2.7:1 (fails AA) */
.entry-content .wp-block-column p[style*="color:#0EA5E9"],
.entry-content .wp-block-column p[style*="color: #0EA5E9"],
.entry-content p.has-text-color[style*="#0EA5E9"] {
  color: var(--as-sky-text) !important;   /* #0369A1, 5.4:1 */
}
/* ============================================================================
   v13 â€” 2026 REFINEMENT PASS (refined > brutalist; navy base, amber keystone,
   sky used sparingly; generous spacing; equal cards; consistent centering)
   ============================================================================ */

/* ---- 0b. ZONE cards uniform grid: the 7 county cards live in TWO wp-block-columns
   (a 4-col + a 3-col block) â†’ the 3 cards were 33% wide vs the 4 cards at 25% = mismatched
   widths between rows ("Ã®mpÄƒrÈ›ite Ã®ntre ele"). Force a uniform 4-up width + center partial row. */
@media (min-width: 783px){
  .entry-content .wp-block-columns:has(.service-card){ flex-wrap: wrap !important; justify-content: center !important; row-gap: 28px !important; }
  .entry-content .wp-block-column.service-card{ flex: 0 0 calc(25% - 24px) !important; max-width: calc(25% - 24px) !important; }
}

/* ---- 0. CENTERING FIX (measured): .section-eyebrow/.section-headline had page-CSS
   `margin:0` + max-width:1240 inside a 1315 content area â†’ sat 37px LEFT of the lead/cards
   below them (the "decentrat" the client saw on every section). Let the headings fill the
   content area so text-align:center truly centers; force margin:auto on every centered block. */
.entry-content .section-eyebrow,
.entry-content .section-headline { max-width: none !important; }
.entry-content .has-text-align-center { margin-left: auto !important; margin-right: auto !important; }
.entry-content .section-lead { margin-left: auto !important; margin-right: auto !important; }
.as-faq { margin-left: auto !important; margin-right: auto !important; }
.vm-vs-wrap .vm-vs-eyebrow,
.vm-vs-wrap .vm-vs-lead,
.vm-vs-wrap .vm-vs-title { margin-left: auto !important; margin-right: auto !important; }

/* ---- 1. Kill the harsh full-bleed vivid-cyan-blue CTA -> refined navy gradient ---- */
.has-vivid-cyan-blue-background-color{
  background-color:#0F172A !important;
  background-image:radial-gradient(120% 140% at 50% -20%, #1E293B 0%, #0F172A 55%, #0A0F1C 100%) !important;
  position:relative;
}
.has-vivid-cyan-blue-background-color::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 80% at 50% 0%, rgba(255,182,39,.10), transparent 70%);
}
/* keep the amber CTA button readable on navy (already amber) + outline button -> white hairline */
.has-vivid-cyan-blue-background-color .wp-block-button__link:not(.has-background){
  border-color:rgba(255,255,255,.30) !important;color:#fff !important;
}

/* ---- 2. Testimonials section: was left-aligned while everything else is centered ---- */
.vm-testi-wrap{max-width:1180px;margin-inline:auto;text-align:center;padding-inline:24px;}
.vm-testi-wrap .eyebrow,
.vm-testi-wrap > h2,
.vm-testi-wrap > p{text-align:center !important;}
.vm-testi-wrap > h2{margin-inline:auto;max-width:900px;}
.vm-testi-wrap > p{margin-inline:auto;max-width:60ch;}

/* ---- 3. STEPS "Cum functionam": plain columns -> premium equal-height cards ---- */
.wp-block-columns:has(.step-num){align-items:stretch !important;gap:24px !important;}
.wp-block-column:has(.step-num){
  background:#fff;border:1px solid #E8EBF0;border-radius:18px;
  padding:32px 28px 30px;display:flex;flex-direction:column;position:relative;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:transform .25s cubic-bezier(.4,0,.2,1), box-shadow .25s cubic-bezier(.4,0,.2,1), border-color .25s;
  overflow:hidden;
}
.wp-block-column:has(.step-num)::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#FFB627,#E89E15);opacity:0;transition:opacity .25s;
}
.wp-block-column:has(.step-num):hover{
  transform:translateY(-4px);box-shadow:0 24px 48px -16px rgba(15,23,42,.16);border-color:#D7DCE5;
}
.wp-block-column:has(.step-num):hover::before{opacity:1;}
.wp-block-column .step-num{
  font-family:var(--as-font-display,'Space Grotesk',sans-serif) !important;
  font-size:15px !important;font-weight:700 !important;letter-spacing:.04em !important;
  color:#0F172A !important;margin:0 0 14px !important;
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#FFB627,#E89E15);border-radius:12px;
  box-shadow:0 6px 14px -4px rgba(255,182,39,.5);
}
.wp-block-column:has(.step-num) h3{
  font-family:var(--as-font-display,'Space Grotesk',sans-serif) !important;
  font-size:19px !important;font-weight:700 !important;color:#0F172A !important;
  line-height:1.25 !important;margin:0 0 10px !important;letter-spacing:-.01em;
}
.wp-block-column:has(.step-num) p{margin:0 !important;color:#52607A !important;font-size:14.5px !important;line-height:1.65 !important;}

/* ---- 4. "DE CE NOI" / Calitatea executiei: plain columns -> soft cards ---- */
.wp-block-columns:has(> .wp-block-column > h3[style*="22px"]):not(:has(.step-num)){align-items:stretch !important;gap:22px !important;}
.wp-block-column:has(> h3[style*="22px"]){
  background:#fff !important;border:1px solid #E8EBF0 !important;border-radius:16px !important;
  padding:26px 24px !important;box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.wp-block-column:has(> h3[style*="22px"]):hover{transform:translateY(-3px);box-shadow:0 20px 40px -18px rgba(15,23,42,.14);border-color:#D7DCE5 !important;}
.wp-block-column:has(> h3[style*="22px"]) > h3{font-family:var(--as-font-display,'Space Grotesk') !important;font-size:18px !important;color:#0F172A !important;letter-spacing:-.01em;margin:0 0 8px !important;}
.wp-block-column:has(> h3[style*="22px"]) > p{font-size:14.5px !important;line-height:1.65 !important;}
/* clean SVG card icons (replaced the forbidden emoji) â€” icon stacked above title */
h3:has(.vm-card-ico){display:flex !important;flex-direction:column !important;align-items:flex-start !important;gap:0 !important;}
.vm-card-ico{
  display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;
  border-radius:13px;background:linear-gradient(135deg,rgba(14,165,233,.14),rgba(14,165,233,.05));
  color:#0EA5E9;margin-bottom:15px;flex:none;
}
.vm-card-ttl{display:block;}

/* ---- 5. FAQ â€” de-brutalize: soft modern accordion, no heavy amber outline/rail ---- */
.as-faq{max-width:880px;margin-inline:auto;}
.as-faq__item{border:1px solid #E8EBF0 !important;border-radius:16px !important;box-shadow:0 1px 2px rgba(15,23,42,.04) !important;}
.as-faq__item::before{display:none !important;}                 /* kill the colored rail */
.as-faq__item:hover{border-color:#D7DCE5 !important;box-shadow:0 10px 28px -16px rgba(15,23,42,.14) !important;}
.as-faq__item[open]{border-color:#E2E6EC !important;background:#FCFCFD !important;box-shadow:0 18px 44px -22px rgba(15,23,42,.20) !important;}
.as-faq__q{padding:21px 24px !important;font-size:16.5px !important;align-items:center !important;}
.as-faq__icon{background:rgba(255,182,39,.12) !important;border-radius:9px !important;}
.as-faq__a > *{padding-inline:24px !important;}
.as-faq__a > *:last-child{padding-bottom:22px !important;}

/* ---- 6. TRUST STRIP â€” coherent, centered, refined (was mixed pills + Rubik) ---- */
.vm-trust-strip__items{display:flex !important;flex-wrap:wrap !important;align-items:center !important;justify-content:center !important;gap:10px 14px !important;max-width:1100px;margin-inline:auto;}
.vm-trust-item--brand{
  font-family:var(--as-font-display,'Space Grotesk') !important;font-weight:600 !important;
  font-size:13px !important;letter-spacing:.04em !important;color:#334155 !important;
  background:#fff !important;border:1px solid #E2E8F0 !important;border-radius:8px !important;
  padding:7px 14px !important;box-shadow:0 1px 2px rgba(15,23,42,.04) !important;
}
.vm-trust-item{display:inline-flex !important;align-items:center !important;gap:7px !important;font-size:13px !important;font-weight:600 !important;color:#475569 !important;padding:7px 4px !important;}

/* ============ v13.6 BATCH: padding/trust/hero-btn/playfair/zone/testi ============ */
/* ===== A. Section padding tighter â€” content appears faster (was inline 100px) ===== */
@media (min-width:783px){ .entry-content > .wp-block-group.alignfull{ padding-top:58px !important; padding-bottom:58px !important; } }
@media (max-width:782px){ .entry-content > .wp-block-group.alignfull{ padding-top:40px !important; padding-bottom:40px !important; } }

/* ===== B. Trust strip â†’ centered, label on top, 2 clean rows (brands / checks) ===== */
.vm-trust-strip__wrap{ display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; gap:16px !important; text-align:center !important; }
.vm-trust-strip__label{ text-align:center !important; border:none !important; padding:0 !important; }
.vm-trust-strip__label::after, .vm-trust-strip__label::before{ display:none !important; }
.vm-trust-strip__items{ display:flex !important; flex-wrap:wrap !important; align-items:center !important; justify-content:center !important; gap:10px 12px !important; max-width:600px !important; margin-inline:auto !important; }

/* ===== C. Retire Playfair (brand v2.0) â†’ brand display font everywhere (fixes serif quotes/accents) ===== */
[style*="Playfair"]{ font-family:var(--as-font-display,'Space Grotesk',sans-serif) !important; }
.vm-testi-section h2 em, .vm-testi-quote::before, .vm-testi-quote, [class*="testi"] em, [class*="quote"]{ font-family:var(--as-font-display,'Space Grotesk',sans-serif) !important; }

/* ===== D. Buttons font Rubik â†’ brand ===== */
.wp-block-button__link, .ast-custom-button-link, .ast-custom-button{ font-family:var(--as-font-display,'Space Grotesk',sans-serif) !important; }

/* ===== E. Hero phone button (ALL buttons have .has-background, so target by href=tel:):
   white text (incl. children, beating Gutenberg color presets) + amber border + amber icon ===== */
.wp-block-cover a.wp-block-button__link[href^="tel:"],
.wp-block-cover a.wp-block-button__link[href^="tel:"] *{ color:#fff !important; }
.wp-block-cover a.wp-block-button__link[href^="tel:"]{
  background:rgba(15,23,42,.40) !important;
  border:2px solid #FFB627 !important;
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.wp-block-cover a.wp-block-button__link[href^="tel:"] svg{ color:#FFB627 !important; stroke:#FFB627 !important; }
.wp-block-cover a.wp-block-button__link[href^="tel:"]:hover{ background:rgba(255,182,39,.16) !important; }

/* ===== F. Zone cards: consistent sky left accent on ALL + center the partial last row ===== */
.entry-content .wp-block-column.service-card{ border:1px solid var(--as-border) !important; border-left:3px solid var(--as-accent-2) !important; border-radius:var(--as-r-lg) !important; box-shadow:var(--as-elev-1) !important; }

/* ===== G. Testimonial avatar â€” clean brand circle (was raw gradient placeholder) ===== */
.vm-testi-avatar{ background:linear-gradient(135deg,#0F172A,#1E293B) !important; color:#FFB627 !important; font-family:var(--as-font-display,'Space Grotesk') !important; font-weight:700 !important; border:1px solid rgba(255,182,39,.3) !important; }

/* ============ v13.8 â€” DEFINITIVE BUTTON CONTRAST SYSTEM ============
   ~6 legacy sources (vm-premium-v7, vm-polish-2, vm-audit-fixes-v2, Astra, Gutenberg presets)
   fight over button colors â†’ "blue on blue / white on amber" illegible text. This is the single
   authoritative override: html-prefixed for specificity, deployed last in footer master.css. */
/* WhatsApp = brand green + white */
html body a.wp-block-button__link[href*="wa.me"],
html body a.wp-block-button__link[href*="whatsapp"],
html body a.wp-block-button__link[href*="wa.me"] *,
html body a.wp-block-button__link[href*="whatsapp"] *{
  background:#25D366 !important; color:#fff !important; -webkit-text-fill-color:#fff !important; border-color:transparent !important;
}
/* OUTLINE / bordered buttons inside DARK sections (cover + navy CTA) = white text + amber border */
html body .wp-block-cover .wp-block-button__link.has-border-color,
html body .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link,
html body .has-vivid-cyan-blue-background-color .wp-block-button__link.has-border-color,
html body .has-vivid-cyan-blue-background-color .wp-block-button.is-style-outline .wp-block-button__link{
  background:rgba(255,255,255,.07) !important; border:2px solid rgba(255,182,39,.65) !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important;
}
html body .wp-block-cover .wp-block-button__link.has-border-color *,
html body .has-vivid-cyan-blue-background-color .wp-block-button__link.has-border-color *{
  color:#fff !important; -webkit-text-fill-color:#fff !important;
}
html body .wp-block-cover .wp-block-button__link.has-border-color svg,
html body .has-vivid-cyan-blue-background-color .wp-block-button__link.has-border-color svg{ color:#FFB627 !important; stroke:#FFB627 !important; }
/* SOLID buttons (not bordered/outline/whatsapp) = amber fill + NAVY text (readable) */
html body .entry-content .wp-block-button__link:not(.has-border-color):not(.is-style-outline):not([href*="wa.me"]):not([href*="whatsapp"]),
html body .entry-content .wp-block-button__link:not(.has-border-color):not(.is-style-outline):not([href*="wa.me"]):not([href*="whatsapp"]) *{
  color:#0F172A !important; -webkit-text-fill-color:#0F172A !important;
}
html body .entry-content .wp-block-button__link:not(.has-border-color):not(.is-style-outline):not([href*="wa.me"]):not([href*="whatsapp"]){
  background-color:#FFB627 !important; background-image:none !important; border-color:transparent !important;
}

/* v13.9 â€” ANY bordered button is a secondary/outline CTA sitting on a DARK section here
   (hero, navy CTA, service CTA). Force white text + amber border definitively (the scoped
   rule missed "Formular ofertÄƒ"). */
/* NOTE the [style*="background-color"] variant: vm-premium-v7 sets color:navy !important via
   `.wp-block-button .wp-block-button__link[style*="background-color"]` (0,3,0) â€” the bordered
   buttons have inline background-color:transparent so they matched it â†’ navy-on-navy. This
   selector is (0,4,2), beating it. */
html body a.wp-block-button__link.has-border-color,
html body a.wp-block-button__link.has-border-color[style],
html body a.wp-block-button__link.has-border-color[style] *,
html body a.wp-block-button__link.has-border-color *{
  color:#fff !important; -webkit-text-fill-color:#fff !important;
}
html body a.wp-block-button__link.has-border-color,
html body a.wp-block-button__link.has-border-color[style]{
  background:rgba(255,255,255,.07) !important; border:2px solid rgba(255,182,39,.65) !important;
}
html body .wp-block-button__link.has-border-color svg{ color:#FFB627 !important; stroke:#FFB627 !important; }

/* ============================================================================
   v14 â€” KILL the broken vm-reveal scroll-reveal (CRITICAL: invisible content)
   ----------------------------------------------------------------------------
   Three legacy hooks each implement the same scroll-reveal with MISMATCHED classes:
     â€¢ 2812 "VM Polish 2"  : .vm-reveal{opacity:0;translateY(20px)} â†’ reveals via .vm-revealed (its JS adds .vm-revealed)
     â€¢ 2686 "WOW JS"       : JS auto-adds .vm-reveal to sections     â†’ reveals via .vm-in-view  (its JS adds .vm-in-view)
     â€¢ 2562 "CSS overrides": .vm-reveal{opacity:0;translateY(40px)} â†’ reveals via .vm-in-view
   Competing IntersectionObservers + reveal-class mismatch â‡’ top-level sections
   routinely stay stuck at opacity:0 forever. Measured invisible on load: home (5 â€”
   "De ce noi", "Zone", "Materiale", FAQ, "Echipele noastre"), service (3, incl. FAQ),
   despre ("Procesul de selecÈ›ie"). On a lead-gen site, vanished content is fatal.
   master.css prints at wp_footer 999999 (after these hooks) so !important wins the
   cascade. We force every reveal target permanently visible (no JS dependency). The
   subtle hover/micro animations elsewhere are untouched. */
html body .vm-reveal,
html body .vm-reveal.vm-in-view,
html body .vm-reveal.vm-revealed,
html body .entry-content .wp-block-group.vm-reveal{
  opacity:1 !important;
  transform:none !important;
  visibility:visible !important;
}

/* v14.1 â€” trust-strip icons uniform emerald. The ANPC clipboard was converted from a ðŸ“‹
   emoji to an inline SVG (currentColor -> navy); its sibling check-marks use inline
   color:#059669. Green-ify all trust-strip icons + match the 16px sibling sizing. */
.vm-trust-item__icon svg{ color:#059669 !important; width:16px !important; height:16px !important; }

/* ============================================================================
   v15 â€” VISUAL AUDIT CORRECTIONS (2026-06, 12 templates, headless Chrome)
   Fixes: heading weight/lh from legacy hooks, section padding, hero secondary
   button contrast, FAQ card treatment, blog layout, vmb overflow, Leaflet,
   mobile heading hierarchy, blog pills, trust strip cards.
   ============================================================================ */

/* â”€â”€ v15.1: HEADING WEIGHTS & LINE-HEIGHTS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Tokens have --as-fw-extrabold/black: 700 (Space Grotesk tops at 700).
   Legacy hooks 2562/2812 set font-weight:800/900 via higher-specificity rules.
   Fix: force 700 + correct line-heights with !important after all hooks. */
h1, .entry-title, .vm-bh-title {
  font-weight: 700 !important;
  line-height: 1.18 !important;     /* was --as-lh-tight: 1.05; too tight at 64px */
  letter-spacing: -0.02em !important;
}
h2, .section-headline, .vm-vs-title, .vm-mat-title {
  font-weight: 700 !important;
  font-size: clamp(1.875rem, 1.50rem + 1.88vw, 3rem) !important; /* enforce token max 48px */
  line-height: 1.15 !important;     /* was 1.05; multi-line h2 lines were touching */
  letter-spacing: var(--as-ls-display) !important; /* -0.03em — token for display H2 */
}
h3 { font-weight: 700 !important; }

/* â”€â”€ Mobile heading hierarchy â€” audit found H1==H2 on mobile (both 32px) â”€â”€ */
@media (max-width: 768px) {
  h1, .entry-title {
    font-size: clamp(2rem, 2rem + 3.5vw, 2.75rem) !important;  /* 32â†’44px */
    line-height: 1.15 !important;
  }
  h2, .section-headline {
    font-size: clamp(1.5rem, 1.5rem + 2vw, 2.125rem) !important; /* 24â†’34px */
    line-height: 1.2 !important;
  }
  h3 {
    font-size: clamp(1.25rem, 1.25rem + 1.5vw, 1.625rem) !important; /* 20â†’26px */
    line-height: 1.3 !important;
  }
}

/* â”€â”€ v15.2: BUTTON RADIUS â€” enforce token value (legacy hooks override to 10px) â”€â”€ */
.wp-block-button__link,
.wp-element-button {
  border-radius: var(--as-r-md) !important;  /* 12px per token; hooks reduced to 10px */
}

/* â”€â”€ Mobile button font-size floor (audit M4: measured 14px, spec 15px) â”€â”€ */
@media (max-width: 768px) {
  .wp-block-button__link,
  .wp-element-button { font-size: 15px !important; }
}

/* â”€â”€ v15.3: BODY PARAGRAPH PROTECTION â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit C5: .entry-content p resolves to styled label/eyebrow <p> elements
   (13px, uppercase, sky/amber) hijacking the body text selector. Unstyled
   paragraphs get the correct Inter reading spec. */
.entry-content p:not([class]):not([style]),
.wp-block-group p:not([class]):not([style]) {
  font-size: clamp(1rem, 0.97rem + 0.16vw, 1.0625rem) !important; /* 16â†’17px */
  font-weight: 400 !important;
  line-height: 1.7 !important;
  color: #0F172A !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* â”€â”€ v15.4: SECTION PADDING â€” 58px (v13.6) was below spec floor of 72px â”€â”€ */
@media (min-width: 783px) {
  .entry-content > .wp-block-group.alignfull {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
}
@media (max-width: 782px) {
  .entry-content > .wp-block-group.alignfull {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}

/* â”€â”€ v15.5: MARQUEE / TICKER STRIP â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit M9: marquee section used 136px padding for ~42px of content. */
.vm-marquee.alignfull { padding-block: 36px !important; }

/* â”€â”€ v15.6: HERO COVER GHOST BUTTONS â€” NOTE (no CSS needed) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit C1 was a false alarm: ghost buttons already have
   -webkit-text-fill-color:#fff !important via the v13.8 cover rule
   (html body .wp-block-cover .wp-block-button__link.has-border-color â†’ white).
   The probe measured s.color (navy â€” correct for property cascade) but
   s.webkitTextFillColor = white â†’ text is VISUALLY WHITE. No CSS fix needed.
   The amber primary must keep navy text from v13.8's solid button rule. */

/* â”€â”€ v15.7: FAQ OUTER WRAP CARD TREATMENT â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit H7: UAGB FAQ outer: 0 padding, 0 radius, no shadow. Brand spec: card. */
.uagb-faq__outer-wrap {
  background: #ffffff;
  border-radius: 12px !important;
  box-shadow: 0 4px 24px rgba(15,23,42,0.08) !important;
  overflow: hidden;
}
.uagb-faq__wrapper {
  border-bottom: 1px solid rgba(15,23,42,0.06) !important;
}
.uagb-faq__wrapper:last-child { border-bottom: none !important; }

/* â”€â”€ v15.8: VMB TEMPLATE FIXES â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   C6: vmb-hero-band overflows 61px â†’ scrollbar on desktop
   H5: vmb section mobile padding 32px â†’ spec 48px
   H11: vmb-final-cta transparent background
   M11: vmb-stats no background separation */
.vmb-hero-band { overflow-x: hidden; max-width: 100%; }
.vmb-hero-band span { max-width: 100%; white-space: normal; }

.vmb-final-cta { background-color: #0F172A !important; }
.vmb-final-cta h2,
.vmb-final-cta h3,
.vmb-final-cta p { color: #ffffff !important; }

.vmb-stats {
  background-color: #F8FAFC;
  border-top: 2px solid rgba(255,182,39,0.25);
}

@media (max-width: 767px) {
  .vmb-hero, .vmb-stats, .vmb-quote,
  .vmb-process, .vmb-includes, .vmb-final-cta {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .vmb-process .step-card,
  .vmb-process .process-item { padding: 20px 24px !important; }
  .vmb-process { gap: 12px !important; }
}

/* â”€â”€ v15.9: LEAFLET MAP OVERFLOW â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit C7: Leaflet map overflows 137px mobile, 25px desktop. L9: desaturate. */
.vm-map-section { overflow: hidden; }
.vm-map-section .leaflet-container { max-width: 100%; overflow: hidden; }
.leaflet-tile-container img { max-width: none; }  /* prevent global img rule breaking tile */
.leaflet-tile-pane { filter: saturate(0.65) brightness(1.05); }

/* â”€â”€ v15.10: TRUST STRIP CARD TREATMENT â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit M10: vm-trust-item radius 0, no shadow. Brand spec: 8px radius + shadow. */
.vm-trust-item {
  border-radius: 8px !important;
  box-shadow: 0 2px 12px rgba(15,23,42,0.05) !important;
}

/* â”€â”€ v15.11: MATERIALS ROW TOUCH TARGET â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit L4: vm-mat-row 38px touch target on mobile; WCAG floor is 44px. */
.vm-mat-row { min-height: 44px; padding-block: 10px; }

/* â”€â”€ v15.12: H4 EYEBROW SCOPING â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit L8: H4 eyebrow color white â€” invisible on light section backgrounds.
   Scope white color to verified dark contexts only. */
h4 { color: #475569; }  /* slate-600 default on light */
.wp-block-cover h4,
.has-vivid-cyan-blue-background-color h4,
[style*="background-color:#0F172A"] h4,
[style*="background-color:#0a1424"] h4 {
  color: rgba(255,255,255,0.85) !important;
}

/* â”€â”€ v15.13: BLOG ARCHIVE â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   C2: Blog posts render as 100%-wide single column (no grid intention).
   C3: Blog "Read More" is 27px tall, off-brand color, no button styling.
   C4: Blog mobile filter pills wrap to 4 rows (188px tall).
   H9: Blog post card shadow faint (0.04), radius 16px vs spec 12px.
   H10: Blog archive mobile H1 measured 24px (spec: 32-48px).
   M14: Blog hero 566px desktop â€” too tall for an archive page. */

/* 2-column grid */
body.blog .ast-row,
body.blog .posts-container,
body.blog .ast-archive-grid,
body.blog .ast-articles-masonry-blog-layout {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 28px !important;
  max-width: 1200px;
  margin-inline: auto;
  width: 100%;
}
@media (max-width: 768px) {
  body.blog .ast-row,
  body.blog .posts-container,
  body.blog .ast-archive-grid,
  body.blog .ast-articles-masonry-blog-layout {
    grid-template-columns: 1fr !important;
  }
}

/* Post cards */
body.blog article.hentry {
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(15,23,42,0.08) !important;
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
body.blog article.hentry:hover {
  box-shadow: 0 8px 32px rgba(15,23,42,0.13) !important;
  transform: translateY(-2px);
}

/* No-thumb placeholder */
body.blog article.ast-no-thumb .ast-blog-featured-section {
  display: block !important;
  height: 200px;
  background: #0F172A;
  border-radius: 12px 12px 0 0;
  position: relative;
}
body.blog article.ast-no-thumb .ast-blog-featured-section::after {
  content: "Acoperis Sigur";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFB627;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.05em;
}

/* Read-more ghost button */
body.blog .ast-read-more-container a {
  display: inline-flex !important;
  align-items: center;
  padding: 10px 20px;
  border-radius: 8px;
  border: 1.5px solid #FFB627 !important;
  color: #FFB627 !important;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none !important;
  min-height: 44px;
  background: transparent !important;
  transition: background 0.2s;
}
body.blog .ast-read-more-container a:hover {
  background: rgba(255,182,39,0.1) !important;
  color: #FFB627 !important;
}

/* Filter pills â€” mobile horizontal scroll (was wrapping to 4 rows / 188px) */
@media (max-width: 768px) {
  .vm-bh-pills {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 8px;
    gap: 8px !important;
  }
  .vm-bh-pills::-webkit-scrollbar { display: none; }
}
.vm-bh-pill { min-height: 44px !important; padding: 10px 16px !important; }

/* Blog hero height â€” 566px is too tall for an archive listing page */
body.blog .vm-blog-hero-injected {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}

/* Blog archive H1 on mobile: measured 24px (spec min 32px) */
@media (max-width: 768px) {
  body.blog .vm-bh-title,
  body.blog .vm-blog-hero-injected h1 {
    font-size: clamp(2rem, 2rem + 3.5vw, 4.5rem) !important;
    line-height: 1.12 !important;
  }
}

/* â”€â”€ v15.14: MOBILE HERO IMAGE POSITION â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Audit H6 CSS mitigation: low-res hero images crop better anchored to top. */
@media (max-width: 768px) {
  .wp-block-cover img { object-position: center top; }
}

/* â”€â”€ v15.16: 404 SEARCH FORM â€” hide; branded CTAs suffice â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Astra's search form not useful on a roofing lead-gen site; CTA buttons
   (Servicii / Cere ofertÄƒ) added via PHP hook are the right recovery path. */
.error-404 .search-form { display: none !important; }

/* â”€â”€ v15.15: BLOG POST PREV/NEXT NAVIGATION â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Issue: nav cards used hairline 1px border + no shadow â†’ felt invisible.
   Also: centering relied on `margin: auto` inside a flex parent (which resolves to 0).
   Fix: explicit margin-inline: auto on .nav-links + stronger card style. */
.single .post-navigation .nav-links,
.single-post .post-navigation .nav-links {
  max-width: 760px !important;
  margin-inline: auto !important;
  padding: 32px 0 48px !important;
  border-top: 1px solid #E2E8F0 !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 16px !important;
  border-bottom: none !important;
}
.single .post-navigation .nav-links .nav-previous,
.single .post-navigation .nav-links .nav-next,
.single-post .post-navigation .nav-links .nav-previous,
.single-post .post-navigation .nav-links .nav-next { flex: 1 !important; }
.single .post-navigation .nav-links a,
.single-post .post-navigation .nav-links a {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  min-height: 72px !important;
  padding: 18px 24px !important;
  background: #ffffff !important;
  border: 1.5px solid #CBD5E1 !important;
  border-radius: 12px !important;
  color: #0F172A !important;
  text-decoration: none !important;
  font-family: var(--as-font-display) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  box-shadow: 0 1px 4px rgba(15,23,42,0.06) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}
.single .post-navigation .nav-links .nav-next a,
.single-post .post-navigation .nav-links .nav-next a {
  justify-content: flex-end !important;
  text-align: right !important;
}
.single .post-navigation .nav-links a:hover,
.single-post .post-navigation .nav-links a:hover {
  border-color: #FFB627 !important;
  box-shadow: 0 4px 16px rgba(255,182,39,0.18) !important;
  transform: translateY(-2px) !important;
  color: #0F172A !important;
}
@media (max-width: 768px) {
  .single .post-navigation .nav-links,
  .single-post .post-navigation .nav-links {
    flex-direction: column !important;
    padding: 24px 0 40px !important;
  }
  .single .post-navigation .nav-links .nav-next a,
  .single-post .post-navigation .nav-links .nav-next a {
    justify-content: flex-start !important;
    text-align: left !important;
  }
}


/* ── v15.17: zone hub bottom CTA — has-white-background-color phone button ──────
   Root cause: broad primary-button rule (0,6,2) beats WP has-white-background-color.
   This button in the navy cover should stay solid white, not amber.
   Fix: higher-specificity override (0,7,2) scoped to vivid-cyan covers. */
html body .entry-content .wp-block-cover.has-vivid-cyan-blue-background-color
  .wp-block-button__link.has-white-background-color:not(.has-border-color):not(.is-style-outline) {
  background: #ffffff !important;
  color: #0F172A !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(15,23,42,0.18) !important;
}
html body .entry-content .wp-block-cover.has-vivid-cyan-blue-background-color
  .wp-block-button__link.has-white-background-color:not(.has-border-color):not(.is-style-outline):hover {
  background: #F1F5F9 !important;
  color: #0F172A !important;
  box-shadow: 0 4px 16px rgba(15,23,42,0.24) !important;
  transform: translateY(-2px);
}


/* ── v15.18: ghost outline buttons in .is-hero dark covers — restore white text ─
   Root cause: light-bg ghost override (0,7,0) checks only the DIRECT parent
   element (.wp-block-buttons), not all ancestors, so it incorrectly fires inside
   dark hero covers too → navy text on black bg = invisible.
   Fix: scoped to .wp-block-cover.has-background-dim.is-hero at (0,7,2). */
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button.is-style-outline .wp-block-button__link,
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button.is-style-outline--1 .wp-block-button__link,
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button.is-style-outline--2 .wp-block-button__link,
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button__link.has-border-color {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
}
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button.is-style-outline .wp-block-button__link:hover,
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button.is-style-outline--1 .wp-block-button__link:hover,
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button.is-style-outline--2 .wp-block-button__link:hover,
html body .entry-content .wp-block-cover.has-background-dim.is-hero .wp-block-button__link.has-border-color:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}


/* ── v15.19: SureForms submit button — Space Grotesk 700 (overrides Karla inline) ──
   SureForms injects inline style font-family/weight which beats non-!important rules.
   These !important overrides restore the brand display font on the CTA button. */
.srfm-form-container .srfm-submit-button,
.srfm-form-container .srfm-btn-frontend,
.srfm-form-container button[class*="srfm-submit"],
.srfm-submit-btn {
  font-family: var(--as-font-display) !important;
  font-weight: 700 !important;
  letter-spacing: var(--as-ls-tight) !important;
}
.srfm-form-container .srfm-submit-wrap {
  font-family: var(--as-font-display) !important;
  font-weight: 700 !important;
}


/* ── v15.20: wrong-font cleanup — legacy vm-* hooks use Rubik/Karla ─────────────
   Legacy hook CSS (loaded alongside master.css) sets Rubik/Karla on specific
   vm-* elements. Override here with !important to force brand typography. */

/* Marquee ticker: display font (uppercase tracking) */
.vm-tape, .vm-tape *, .vm-marquee-item {
  font-family: var(--as-font-display) !important;
  font-weight: 600 !important;
}

/* Stats labels (service + home stats band) */
.vm-stat-label, .vm-stat-value, .vm-stat-unit {
  font-family: var(--as-font-body) !important;
}

/* Topbar phone number spans */
.vm-topbar .vm-topbar-tel span,
.vm-menu-top span.small, .vm-menu-top span.big,
.vm-menu-top span.small, .vm-topbar span.small, .vm-menu-top span.big, .vm-topbar span.big {
  font-family: var(--as-font-display) !important;
}

/* Close button and UI controls */
.vm-menu-top__close, .vm-drawer-close {
  font-family: var(--as-font-body) !important;
}

/* Blog post metadata STRONG tags (Actualizat/Sursă/Verificat) */


/* Team cards */
.vm-team-card {
  border-radius: var(--as-r-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--as-elev-1) !important;
}

/* END v15 */

/* ── v15.21: wrong-font overrides — exact selectors from CSSOM diagnostic ───────
   Legacy inline <style> blocks use .entry-content prefix → specificity wins.
   Match their specificity + !important to force brand typography everywhere. */

/* Step timeline numbers (01-07): Display font */
.entry-content .vm-step-num,
html body .vm-step-num {
  font-family: var(--as-font-display) !important;
  font-weight: 700 !important;
}

/* Team card role labels: body font */
.entry-content .vm-team-card .vm-team-role,
html body .vm-team-role {
  font-family: var(--as-font-body) !important;
  font-weight: 400 !important;
}

/* Brand partner grid names: display font */
.entry-content .vm-brands__grid > div,
html body .vm-brands__grid > div {
  font-family: var(--as-font-display) !important;
}

/* Mobile menu top: logo separator EM + CTA phone spans */
.vm-menu-top__logo, .vm-menu-top__logo em,
.vm-menu-cta-call, .vm-menu-cta-call span, .vm-menu-cta-call .label,
.ast-mobile-popup-inner .vm-menu-cta-call span {
  font-family: var(--as-font-display) !important;
}

/* ── v15.22: close button font — beat button:not(.wp-block-button__link) !important ─
   Legacy rule: button:not(.wp-block-button__link) { Karla !important } spec (0,1,1)
   Our .vm-menu-top__close rule had (0,1,0) — lost. Fix: button.vm-menu-top__close
   = (0,1,1) + comes later in cascade = wins. */
button.vm-menu-top__close,
button.vm-drawer-close {
  font-family: var(--as-font-body) !important;
}

/* Same legacy rule beats form inputs / contenteditable. Apply brand fonts. */
input:not([type="submit"]):not([type="button"]):not([type="reset"]),
select,
textarea,
[contenteditable] {
  font-family: var(--as-font-body) !important;
}

/* ── v15.23: STRONG tags — explicit body font (inherit was picking up parent Karla) */
.entry-content strong,
.single-post .entry-content strong,
.hentry .entry-content strong {
  font-family: var(--as-font-body) !important;
}

/* ── v15.24: vmb-stat-num — Playfair Display from legacy vmb-* hooks ────────────
   Pages using vmb-* block classes (jgheaburi, casanoua, inspectie) have
   .vmb-stat-num with Playfair Display from a legacy hook. Fix to display font. */
.entry-content .vmb-stat-num,
html body .vmb-stat-num {
  font-family: var(--as-font-display) !important;
  font-weight: 700 !important;
}
.entry-content .vmb-stat-label,
html body .vmb-stat-label {
  font-family: var(--as-font-body) !important;
}

/* Search widget "Caută" button — beats Karla from button:not() rule */
button.search-submit,
button[type="submit"].search-submit,
.search-form button,
.wp-block-search__button {
  font-family: var(--as-font-body) !important;
}

/* ── v15.25: Zone hub bare DIV stats — legacy div{Rubik} beats inheritance ─────
   .wp-block-group gets Inter (brand). Its bare DIV descendants get Rubik from
   a legacy rule: div { font-family: 'Rubik', sans-serif } (0,0,1) which beats
   inheritance even from !important parent. Fix: force inherit on 1-3 levels deep.
   inherit !important propagates brand font down through the unclassed chain. */
.wp-block-group > div,
.wp-block-group > div > div,
.wp-block-group > div > div > div,
.wp-block-cover > div,
.wp-block-cover > div > div {
  font-family: inherit !important;
}

/* ── v15.26: Leaflet map tooltips — brand font + rounded corners for city name labels
   .leaflet-tooltip.vm-pin-label are the navy+amber city pins on zone hub maps. */
.leaflet-tooltip,
.leaflet-tooltip.vm-p {
  font-family: var(--as-font-body) !important;
}
.leaflet-tooltip.vm-pin-label {
  border-radius: var(--as-r-sm) !important; /* 8px — rounded, matches design language */
}

/* -- v15.27: intl-tel-input country selector -- Karla from iti styles ---------- */
button.iti__selected-country,
.iti__dropdown-content,
.iti__country,
.iti__country-name,
.iti__dial-code {
  font-family: var(--as-font-body) !important;
  font-size: 15px !important;
}

/* -- v15.28: vs-table mobile labels — headers hidden, inject via ::before ------
   On mobile grid collapses to 1 col; .vm-vs-us/.vm-vs-them are display:none.
   Yes/No cells show just "Da"/"Nu" with no context. Inject entity labels. */
@media (max-width: 782px) {
  .vm-vs-yes::before {
    content: 'Acoperiș Sigur';
    display: block;
    font-family: var(--as-font-body) !important;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgb(4, 120, 87);
    opacity: 0.75;
    margin-bottom: 2px;
  }
  .vm-vs-no::before {
    content: 'Echipă FB';
    display: block;
    font-family: var(--as-font-body) !important;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgb(220, 38, 38);
    opacity: 0.75;
    margin-bottom: 2px;
  }
}

/* -- v15.29: topbar phone link touch target — 16px → 44px on mobile ----------
   .asro-topbar is visible on mobile (38px bar, link 16px h, 0 padding).
   WCAG 2.5.5 requires 44×44px. Extend via inline-flex + min-height. */
@media (max-width: 782px) {
  .asro-topbar a[href^="tel:"] {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 44px !important;
    padding: 0 4px !important;
  }
}
/* -- v15.30: H1 tablet scale — Astra injects font-size:32px !important at <=782px;
   restore fluid sizing at 600–782px (iPad, small tablets). Same selector + loaded last → wins.
   clamp(2.375rem,6vw,3.75rem): 38px@600 → 46px@768 → 47px@782 */
@media (min-width: 600px) and (max-width: 782px) {
  h1,
  .entry-title,
  .vm-bh-title,
  .entry-content .wp-block-cover h1 {
    font-size: clamp(2.375rem, 6vw, 3.75rem) !important;
  }
}

/* -- v15.31: H2 tablet scale — Astra injects .entry-content h2{28px!important} spec(0,1,1);
   match selector + loaded-last wins. clamp(1.75rem,5vw,2.5rem): 28px@600→38px@768→39px@782 */
@media (min-width: 600px) and (max-width: 782px) {
  h2,
  .entry-content h2,
  .section-headline,
  .vm-vs-title,
  .vm-mat-title,
  .entry-content .wp-block-cover h2 {
    font-size: clamp(1.75rem, 5vw, 2.5rem) !important;
  }
}

/* -- v15.32: WCAG contrast — Gutenberg "vivid-cyan-blue" (#0693E3) on dark covers/sections
   = 3.56:1 on black (fails AA 4.5:1 for small text). Override to white (21:1) in dark contexts. */
.wp-block-cover .has-vivid-cyan-blue-color,
.wp-block-cover .has-text-color.has-vivid-cyan-blue-color,
[style*="background:#0F172A"] .has-vivid-cyan-blue-color,
[style*="background: #0F172A"] .has-vivid-cyan-blue-color,
[style*="background:linear-gradient"] .has-vivid-cyan-blue-color {
  color: #FFFFFF !important;
}

/* -- v15.33: SureForms select width — srfm-dropdown renders at intrinsic 36px; force 100% */
.srfm-dropdown-common-wra select,
.srfm-block-wrap select {
  width: 100% !important;
  max-width: 100% !important;
}

/* -- v15.34: focus-visible ring (WCAG 2.4.7) — button outline:none leaves keyboard users blind */
.wp-block-button__link:focus-visible,
button:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid var(--as-accent) !important;
  outline-offset: 3px !important;
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--as-link) !important;
  outline-offset: 0 !important;
  border-color: var(--as-link) !important;
}
a:focus-visible {
  outline: 2px solid var(--as-link) !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}


/* -- v15.35: Ghost/outline button text on dark covers — specificity fix
   Probleme: .entry-content :not(.wp-block-cover):not([class*="navy"]):not([class*="dark"]) >
   .wp-block-button.is-style-outline .wp-block-button__link → navy!important spec:(0,7,0)
   wins over html body .wp-block-cover .wp-block-button__link.has-border-color → white spec:(0,3,2).
   Fix: must reach (0,8,2) to beat (0,7,0). 6 classes + html+body type selectors. */
html body .entry-content .wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link.has-white-color.has-text-color.has-border-color,
html body .entry-content .wp-block-cover .wp-block-button__link.has-white-color.has-text-color.has-border-color.has-white-border-color {
  color: #FFFFFF !important;
}


/* -- v15.36: Step timeline numbers — circular badge (was square 0px radius) */
.vm-step-num {
  border-radius: 50% !important;
}

/* -- v15.37: Contact form container — add border-radius 16px (was 0px sharp) */
.srfm-form-container-2535 {
  border-radius: var(--as-r-lg) !important; /* 16px — card standard */
  overflow: hidden !important; /* clip amber top strip to rounded corners */
}

/* -- v15.38: H1 letter-spacing — hook sets -0.02em !important (0,0,1);
   master.css loads last so same spec+!important wins by source order. */
h1,
.entry-title,
.vm-bh-title {
  letter-spacing: var(--as-ls-display) !important; /* -0.03em — token standard */
}

/* -- v15.39: vm-mat-table overflow fix — hook sets overflow:visible!important
   which breaks (1) border-radius corner clipping on desktop,
   (2) horizontal scroll on mobile, (3) sticky left labels.
   Desktop: overflow:hidden clips head cells to 16px radius.
   Mobile: overflow-x:auto re-enables horizontal scroll; overflow-y:visible
   keeps sticky left labels from being clipped. */
html body .vm-mat-table {
  overflow: hidden !important;
}
@media (max-width: 768px) {
  html body .vm-mat-table {
    overflow-x: auto !important;
    overflow-y: visible !important;
  }
}

/* -- v15.40: form SELECT + text input consistency
   (1) SureForms uses var(--srfm-input-field-border-radius)!important on SELECT
       via deep selector that beats our non-!important rule. Setting the var fixes
       SELECT radius without a specificity war (→ 10px).
   (2) Astra hook sets input[type="text",...]{border-radius:8px!important} at (0,0,1)
       beating our non-!important (0,2,0) rule in 95-contact-form.css. Add !important
       with 2-class specificity to restore the designed 10px on text inputs.
   (3) Native <select> bg falls back to rgb(255,255,255) from Astra's global
       select{bg:white}; force the same navy-1.5% tint as text inputs. */
/* -- v15.41: search results card treatment
   Astra's default search layout renders bare articles on a gray bg — no card,
   no radius, no elevation. Apply the standard card frame and typography. */
.search .hentry {
  background: var(--as-surface) !important;
  border-radius: var(--as-r-lg) !important;
  border: var(--as-border-hair) solid var(--as-border) !important;
  box-shadow: var(--as-elev-1) !important;
  padding: var(--as-s-6) !important;
  margin-bottom: var(--as-s-5) !important;
  overflow: hidden !important;
}
.search .entry-title.ast-blog-single-element {
  font-size: var(--as-fs-h3) !important;
  font-weight: var(--as-fw-bold) !important;
  letter-spacing: var(--as-ls-display) !important;
  line-height: var(--as-lh-tight) !important;
  margin-bottom: var(--as-s-3) !important;
}
.search .entry-title a,
.search .entry-title a:visited {
  color: var(--as-navy) !important;
  text-decoration: none !important;
}
.search .entry-title a:hover {
  color: var(--as-amber-text) !important;
}
.search .ast-blog-read-more a,
.search .more-link,
.search a.read-more {
  color: var(--as-sky-deep) !important;
  font-weight: var(--as-fw-semibold) !important;
  font-size: var(--as-fs-body-sm) !important;
}
/* Archive/search H1 — correct display size + letter-spacing */
.search .ast-archive-title,
.search .page-title {
  letter-spacing: var(--as-ls-display) !important;
}

.srfm-form-container.srfm-form-container-2535 {
  --srfm-input-field-border-radius: 10px;
}
.srfm-form-container-2535 .srfm-form .srfm-input-common {
  border-radius: 10px !important;  /* (0,3,0) beats SureForms (0,2,1) on input[type=text] */
}
.srfm-form-container-2535 .srfm-dropdown-common {
  background-color: rgba(15, 23, 42, 0.015) !important;
  color: var(--as-navy) !important;
}


