/*
 * VA-TEK Main Stylesheet
 * Complete component library — loaded asynchronously
 *
 * Google Fonts (place in <head>):
 * <link rel="preconnect" href="https://fonts.googleapis.com">
 * <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 * <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
 */

/* ==========================================================================
   SECTION 1: CSS Custom Properties
   ========================================================================== */
:root {
    /* === Colors === */
    --color-primary:             #1A56DB;
    --color-primary-hover:       #1E40AF;
    --color-primary-light:       #EFF6FF;
    --color-primary-dark:        #1E3A5F;

    --color-secondary:           #0D9488;
    --color-secondary-hover:     #0F766E;
    --color-secondary-light:     #F0FDFA;

    --color-accent:              #EA580C;
    --color-accent-hover:        #C2410C;
    --color-accent-light:        #FFF7ED;

    --color-bg:                  #F8FAFC;
    --color-card:                #FFFFFF;
    --color-dark-bg:             #0F172A;
    --color-dark-bg-secondary:   #1E293B;

    --color-text:                #1E293B;
    --color-text-secondary:      #64748B;
    --color-text-light:          #94A3B8;
    --color-text-inverse:        #FFFFFF;

    --color-success:             #16A34A;
    --color-success-light:       #F0FDF4;
    --color-warning:             #D97706;
    --color-warning-light:       #FFFBEB;
    --color-error:               #EF4444;
    --color-error-light:         #FEF2F2;

    --color-border:              #E2E8F0;
    --color-border-medium:       #CBD5E1;
    --color-border-dark:         #94A3B8;

    --color-whatsapp:            #25D366;

    /* === Typography === */
    --font-heading:    'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-body:       'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-mono:       'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace;

    --font-size-xs:    0.75rem;    /* 12px */
    --font-size-sm:    0.875rem;   /* 14px */
    --font-size-base:  1rem;       /* 16px */
    --font-size-lg:    1.125rem;   /* 18px */
    --font-size-xl:    1.25rem;    /* 20px */
    --font-size-2xl:   1.5rem;     /* 24px */
    --font-size-3xl:   1.875rem;   /* 30px */
    --font-size-4xl:   2.25rem;    /* 36px */
    --font-size-5xl:   3rem;       /* 48px */

    --font-weight-normal:   400;
    --font-weight-medium:   500;
    --font-weight-semibold: 600;
    --font-weight-bold:     700;
    --font-weight-extrabold:800;

    --line-height-body:      1.6;
    --line-height-heading:   1.2;
    --line-height-tech:      1.4;

    /* === Spacing (8px grid) === */
    --space-0:   0;
    --space-1:   4px;
    --space-2:   8px;
    --space-3:   12px;
    --space-4:   16px;
    --space-5:   20px;
    --space-6:   24px;
    --space-8:   32px;
    --space-10:  40px;
    --space-12:  48px;
    --space-16:  64px;
    --space-20:  80px;
    --space-24:  96px;

    /* === Shadows === */
    --shadow-sm:       0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-base:     0 1px 3px rgba(0, 0, 0, 0.10), 0 1px 2px rgba(0, 0, 0, 0.06);
    --shadow-md:       0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06);
    --shadow-lg:       0 10px 25px rgba(0, 0, 0, 0.10), 0 4px 10px rgba(0, 0, 0, 0.06);
    --shadow-xl:       0 20px 50px rgba(0, 0, 0, 0.12), 0 8px 20px rgba(0, 0, 0, 0.08);
    --shadow-2xl:      0 25px 60px rgba(0, 0, 0, 0.15);

    /* === Border Radius === */
    --radius-sm:   4px;
    --radius-base: 6px;
    --radius-md:   8px;
    --radius-lg:   12px;
    --radius-xl:   16px;
    --radius-2xl:  24px;
    --radius-full: 9999px;

    /* === Transitions === */
    --transition-fast:   0.15s ease;
    --transition-base:   0.2s ease;
    --transition-slow:   0.3s ease;
    --transition-slower: 0.5s ease;

    /* === Z-Index Scale === */
    --z-dropdown:     100;
    --z-sticky:       500;
    --z-overlay:      1000;
    --z-modal:        2000;
    --z-toast:        3000;

    /* === Legacy --va-* token bridge ===
     * template-parts/content-product-card.php and the product/category page
     * templates were written against a second, earlier token set (--va-navy,
     * --va-gold, --va-border, --va-gray-*). Those names are never defined
     * anywhere in this theme, so every rule that used them silently fell back
     * to the literals baked into the var() calls — a gold #d4a843 / near-black
     * #0a1628 palette that has nothing to do with the blue+slate palette the
     * rest of the site uses. That is why product cards looked like they came
     * from a different website. Map the legacy names onto the real tokens here,
     * at the source, instead of rewriting every var() call site. */
    --va-navy:    var(--color-text);
    --va-navy-2:  var(--color-primary-dark);
    --va-gold:    var(--color-primary);
    --va-border:  var(--color-border);
    --va-gray-50: #F8FAFC;
    --va-gray-100:#F1F5F9;
    --va-gray-200:#E2E8F0;
    --va-gray-300:var(--color-border-medium);
    --va-gray-400:var(--color-text-light);
    --va-gray-500:var(--color-text-secondary);
}

/* ==========================================================================
   SECTION 2: Reset & Base
   ========================================================================== */

/* ----- 2.1 Complete Reset ----- */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-body);
    color: var(--color-text);
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

/* ----- 2.2 Headings ----- */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-heading);
    color: var(--color-text);
    margin-bottom: var(--space-4);
}

h1 { font-size: var(--font-size-4xl); font-weight: var(--font-weight-extrabold); letter-spacing: -0.02em; }
h2 { font-size: var(--font-size-3xl); font-weight: var(--font-weight-bold); }
h3 { font-size: var(--font-size-2xl); font-weight: var(--font-weight-semibold); }
h4 { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); }
h5 { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); }
h6 { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); }

/* ----- 2.3 Paragraphs & Text ----- */
p {
    margin-bottom: var(--space-5);
    max-width: 70ch;
}
p:last-child { margin-bottom: 0; }

strong, b { font-weight: var(--font-weight-semibold); }

small {
    font-size: var(--font-size-sm);
}

/* ----- 2.4 Lists ----- */
ul, ol {
    padding-left: var(--space-6);
    margin-bottom: var(--space-5);
}
li {
    margin-bottom: var(--space-2);
}
li:last-child { margin-bottom: 0; }

ul ul, ol ol, ul ol, ol ul {
    margin-top: var(--space-2);
    margin-bottom: 0;
}

/* ----- 2.5 Links ----- */
a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
}
a:hover {
    color: var(--color-primary-hover);
}
a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

/* ----- 2.6 Images ----- */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ----- 2.7 Horizontal Rule ----- */
hr {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: var(--space-12) 0;
}

/* ----- 2.8 Selection ----- */
::selection {
    background: var(--color-primary);
    color: #fff;
}
::-moz-selection {
    background: var(--color-primary);
    color: #fff;
}

/* ----- 2.9 Focus Visible ----- */
:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* ----- 2.10 Reduced Motion ----- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ==========================================================================
   SECTION 3: Utilities
   ========================================================================== */

/* ----- 3.1 Container Variants ----- */
.container {
    max-width: 1280px;
    padding: 0 var(--space-5);
    margin: 0 auto;
}
.container-sm { max-width: 800px; }
.container-lg { max-width: 1440px; }

/* ----- 3.2 Screen Reader Only ----- */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ----- 3.3 Text Alignment ----- */
.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }

/* ----- 3.4 Spacing Helpers ----- */
.mb-0  { margin-bottom: 0 !important; }
.mb-1  { margin-bottom: var(--space-2) !important; }
.mb-2  { margin-bottom: var(--space-4) !important; }
.mb-3  { margin-bottom: var(--space-6) !important; }
.mb-4  { margin-bottom: var(--space-8) !important; }
.mb-5  { margin-bottom: var(--space-12) !important; }

.mt-0  { margin-top: 0 !important; }
.mt-1  { margin-top: var(--space-2) !important; }
.mt-2  { margin-top: var(--space-4) !important; }
.mt-3  { margin-top: var(--space-6) !important; }
.mt-4  { margin-top: var(--space-8) !important; }
.mt-5  { margin-top: var(--space-12) !important; }

/* ----- 3.5 Visibility ----- */
.hidden-mobile  { display: none; }
.hidden-tablet  { display: none; }
.hidden-desktop { display: block; }

@media (min-width: 768px) {
    .hidden-mobile  { display: block; }
    .hidden-tablet  { display: none; }
    .hidden-desktop { display: block; }
}
@media (min-width: 1024px) {
    .hidden-tablet  { display: block; }
    .hidden-desktop { display: none; }
}

/* ----- 3.6 Text Colors ----- */
.text-primary   { color: var(--color-primary) !important; }
.text-secondary { color: var(--color-text-secondary) !important; }
.text-muted     { color: var(--color-text-light) !important; }

/* ----- 3.7 Backgrounds ----- */
.bg-light     { background-color: var(--color-bg) !important; }
.bg-dark      { background-color: var(--color-dark-bg) !important; color: var(--color-text-inverse); }
.bg-primary   { background-color: var(--color-primary) !important; color: var(--color-text-inverse); }
.bg-secondary { background-color: var(--color-secondary) !important; color: var(--color-text-inverse); }

/* ==========================================================================
   SECTION 4: Header
   ========================================================================== */

/* ----- 4.1 Site Header ----- */
.site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
    background: var(--color-card);
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-base);
}
.site-header.is-scrolled {
    box-shadow: var(--shadow-md);
}

/* ----- 4.2 Top Bar ----- */
.top-bar {
    background: var(--color-dark-bg);
    color: var(--color-text-light);
    font-size: var(--font-size-xs);
    height: 40px;
    display: flex;
    align-items: center;
}
.top-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
.top-bar a {
    color: #CBD5E1;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
}
.top-bar a:hover {
    color: var(--color-text-inverse);
}
.top-bar__left,
.top-bar__right {
    display: flex;
    align-items: center;
    gap: var(--space-5);
}
.top-bar__right {
    gap: var(--space-4);
}
.top-bar__icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* ----- 4.3 Header Main (Logo + Nav + Actions) ----- */
.header-main {
    height: 72px;
    display: flex;
    align-items: center;
}
.header-main .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.site-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: var(--font-weight-extrabold);
    font-size: var(--font-size-2xl);
    color: var(--color-primary-dark);
    text-decoration: none;
    flex-shrink: 0;
    letter-spacing: -0.03em;
}
.site-logo img {
    height: 42px;
    width: auto;
}
.site-logo__tagline {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-normal);
    color: var(--color-text-secondary);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    display: block;
    margin-top: -2px;
}

/* ----- 4.4 Main Navigation ----- */
.main-navigation {
    display: none;
}
.main-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--space-1);
}
.main-navigation li {
    margin: 0;
}

.main-navigation a {
    display: block;
    padding: 10px 16px;
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    font-size: 0.9375rem;
    border-radius: var(--radius-base);
    transition: all var(--transition-fast);
    white-space: nowrap;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a {
    color: var(--color-primary);
    background: var(--color-primary-light);
}

/* Navigation arrow for dropdown items */
.menu-item-has-children {
    position: relative;
}
.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-left: 7px;
    vertical-align: middle;
    margin-top: -2px;
    transition: transform var(--transition-fast);
}
.menu-item-has-children:hover > a::after {
    transform: rotate(-135deg);
}

/* ----- 4.5 Navigation Dropdown ----- */
.nav-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--color-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xl);
    min-width: 240px;
    padding: var(--space-2) 0;
    z-index: var(--z-dropdown);
    border: 1px solid var(--color-border);
    animation: dropdownFadeIn 0.2s ease;
}
.menu-item-has-children:hover > .nav-dropdown {
    display: block;
}
.nav-dropdown li {
    margin: 0;
}
.nav-dropdown a {
    padding: 10px 24px;
    font-size: 0.875rem;
    border-radius: 0;
    color: var(--color-text);
}
.nav-dropdown a:hover {
    color: var(--color-primary);
    background: var(--color-primary-light);
}

/* Mega dropdown (2 columns for Products) */
.nav-dropdown--mega {
    left: 50%;
    transform: translateX(-50%);
    min-width: 560px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2);
    padding: var(--space-4);
}
.nav-dropdown--mega .nav-dropdown__column {
    padding: var(--space-3) var(--space-4);
}
.nav-dropdown--mega .nav-dropdown__heading {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-text-secondary);
    margin-bottom: var(--space-2);
    padding: 0 var(--space-4);
}
.nav-dropdown--mega a {
    padding: 6px 16px;
    font-size: 0.875rem;
}

@keyframes dropdownFadeIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ----- 4.6 Header Actions ----- */
.header-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.header-search-toggle,
.language-switcher-toggle {
    background: none;
    border: none;
    cursor: pointer;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    color: var(--color-text-secondary);
    font-size: 1.1rem;
    transition: all var(--transition-fast);
    font-family: inherit;
}
.header-search-toggle:hover,
.language-switcher-toggle:hover {
    background: var(--color-bg);
    color: var(--color-text);
}
.language-switcher-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    width: auto;
    padding: 0 var(--space-3);
    font-size: 0.8125rem;
    font-weight: var(--font-weight-medium);
}
.language-switcher-toggle img {
    width: 20px;
    height: 14px;
    border-radius: 2px;
    object-fit: cover;
}

/* Search dropdown */
.header-search-panel {
    position: absolute;
    top: 112px;
    left: 0;
    right: 0;
    background: var(--color-card);
    padding: var(--space-4);
    border-top: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
    z-index: var(--z-dropdown);
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
}
.header-search-panel.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}
.header-search-panel .container {
    display: flex;
    gap: var(--space-3);
}
.header-search-panel input {
    flex: 1;
    padding: 12px 16px;
    border: 2px solid var(--color-border-medium);
    border-radius: var(--radius-base);
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    transition: border-color var(--transition-fast);
}
.header-search-panel input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);
}
.header-search-panel button {
    padding: 12px 24px;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-base);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    transition: background var(--transition-fast);
    font-family: inherit;
}
.header-search-panel button:hover {
    background: var(--color-primary-hover);
}

/* Language switcher dropdown */
.language-switcher {
    position: relative;
}
.language-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: var(--color-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    min-width: 160px;
    padding: var(--space-2) 0;
    border: 1px solid var(--color-border);
    z-index: var(--z-dropdown);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: all var(--transition-fast);
}
.language-dropdown.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.language-dropdown a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    color: var(--color-text);
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium);
    transition: background var(--transition-fast);
}
.language-dropdown a:hover {
    background: var(--color-bg);
    color: var(--color-primary);
}
.language-dropdown img {
    width: 20px;
    height: 14px;
    border-radius: 2px;
}

/* ----- 4.7 Mobile Menu ----- */
.mobile-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: var(--radius-md);
    color: var(--color-text);
    transition: background var(--transition-fast);
}
.mobile-menu-toggle:hover {
    background: var(--color-bg);
}

.hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 22px;
}
.hamburger span {
    display: block;
    height: 2px;
    background: var(--color-text);
    border-radius: 2px;
    transition: all 0.3s ease;
    transform-origin: center;
}
.hamburger span:nth-child(1) { width: 22px; }
.hamburger span:nth-child(2) { width: 16px; }
.hamburger span:nth-child(3) { width: 22px; }

.mobile-menu-toggle.is-active .hamburger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.mobile-menu-toggle.is-active .hamburger span:nth-child(2) {
    opacity: 0;
    width: 0;
}
.mobile-menu-toggle.is-active .hamburger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Mobile nav panel */
.mobile-nav-panel {
    position: fixed;
    top: 0;
    right: -100%;
    width: 320px;
    max-width: 85vw;
    height: 100vh;
    height: 100dvh;
    background: var(--color-card);
    z-index: var(--z-modal);
    overflow-y: auto;
    padding: var(--space-6);
    transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: var(--shadow-2xl);
}
.mobile-nav-panel.is-open {
    right: 0;
}

.mobile-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.5);
    z-index: 1999;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-slow);
}
.mobile-nav-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}

.mobile-nav-close {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--color-text-secondary);
    border-radius: var(--radius-base);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
}
.mobile-nav-close:hover {
    background: var(--color-bg);
    color: var(--color-text);
}

.mobile-nav-panel ul {
    list-style: none;
    padding: 0;
    margin-top: var(--space-12);
}
.mobile-nav-panel li {
    border-bottom: 1px solid var(--color-border);
    margin: 0;
}
.mobile-nav-panel a {
    display: block;
    padding: 14px 0;
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    font-size: var(--font-size-base);
    transition: color var(--transition-fast);
}
.mobile-nav-panel a:hover {
    color: var(--color-primary);
}

.mobile-nav-panel .menu-item-has-children > a {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.mobile-nav-panel .menu-item-has-children > a::after {
    content: '+';
    font-size: 1.25rem;
    font-weight: var(--font-weight-normal);
    color: var(--color-text-secondary);
    transition: transform var(--transition-fast);
}
.mobile-nav-panel .menu-item-has-children.is-open > a::after {
    content: '\2212';
}
.mobile-nav-panel .nav-dropdown {
    display: none;
    position: static;
    box-shadow: none;
    border: none;
    padding: 0 0 var(--space-2) var(--space-4);
    background: transparent;
    min-width: auto;
}
.mobile-nav-panel .menu-item-has-children.is-open > .nav-dropdown {
    display: block;
}
.mobile-nav-panel .nav-dropdown a {
    font-size: 0.9375rem;
    padding: 10px 0;
}

/* ==========================================================================
   SECTION 5: Hero
   ========================================================================== */

/* ----- 5.1 Base Hero ----- */
.hero {
    position: relative;
    min-height: 500px;
    display: flex;
    align-items: center;
    background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 50%, var(--color-secondary) 100%);
    color: var(--color-text-inverse);
    overflow: hidden;
    padding: var(--space-20) 0;
}
.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(13, 148, 136, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 50%, rgba(26, 86, 219, 0.1) 0%, transparent 50%);
    pointer-events: none;
}
.hero .container {
    position: relative;
    z-index: 1;
    width: 100%;
}

/* ----- 5.2 Hero Grid (2-column) ----- */
.hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-12);
    align-items: center;
}
.hero-content {
    max-width: 640px;
}

/* ----- 5.3 Hero Typography ----- */
.hero-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: var(--font-weight-extrabold);
    line-height: 1.15;
    margin-bottom: var(--space-5);
    letter-spacing: -0.02em;
    color: var(--color-text-inverse);
}
.hero-subtitle {
    font-size: 1.25rem;
    line-height: 1.7;
    max-width: 600px;
    opacity: 0.9;
    margin-bottom: var(--space-3);
    color: var(--color-text-inverse);
}

/* ----- 5.4 Hero CTA Group ----- */
.hero-cta-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-top: var(--space-8);
}

/* ----- 5.5 Hero Trust Bar ----- */
.hero-trust-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: var(--space-8);
    font-size: var(--font-size-sm);
    opacity: 0.85;
}
.hero-trust-bar span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.hero-trust-bar span::before {
    content: '\2713';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    flex-shrink: 0;
}

/* ----- 5.6 Hero Image ----- */
.hero-image {
    display: none;
    justify-content: center;
    align-items: center;
}
.hero-image img {
    max-height: 450px;
    width: auto;
    filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.25));
    animation: heroFloat 6s ease-in-out infinite;
}

@keyframes heroFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

/* ----- 5.7 Hero Breadcrumb (inner pages) ----- */
.hero-breadcrumb {
    font-size: var(--font-size-sm);
    opacity: 0.75;
    margin-bottom: var(--space-4);
}
.hero-breadcrumb a {
    color: inherit;
    text-decoration: none;
    transition: opacity var(--transition-fast);
}
.hero-breadcrumb a:hover {
    opacity: 1;
}
.hero-breadcrumb .separator {
    margin: 0 8px;
    opacity: 0.6;
}

/* ----- 5.8 Hero Variants ----- */

/* Hero - Centered */
.hero--centered {
    text-align: center;
}
.hero--centered .hero-content {
    max-width: 720px;
    margin: 0 auto;
}
.hero--centered .hero-subtitle {
    margin-left: auto;
    margin-right: auto;
}
.hero--centered .hero-cta-group {
    justify-content: center;
}

/* Hero - Dark BG with Image overlay */
.hero--image-bg {
    background: var(--color-dark-bg);
}
.hero--image-bg::before {
    background: linear-gradient(to right, rgba(15, 23, 42, 0.92) 0%, rgba(15, 23, 42, 0.6) 100%);
}

/* Hero - Short (inner pages) */
.hero--short {
    min-height: 280px;
    padding: var(--space-16) 0;
}
.hero--short .hero-title {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
}

/* ==========================================================================
   SECTION 6: Buttons
   ========================================================================== */

/* ----- 6.1 Button Base ----- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 12px 24px;
    border-radius: var(--radius-base);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-base);
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all var(--transition-base);
    white-space: nowrap;
    font-family: var(--font-body);
    position: relative;
    overflow: hidden;
}
.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}
.btn:active {
    transform: translateY(0);
    box-shadow: var(--shadow-sm);
}
.btn:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* ----- 6.2 Button Variants ----- */
.btn-primary {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}
.btn-primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.btn-secondary {
    background: var(--color-secondary);
    color: #fff;
    border-color: var(--color-secondary);
}
.btn-secondary:hover {
    background: var(--color-secondary-hover);
    border-color: var(--color-secondary-hover);
}

.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.btn-outline:hover {
    background: var(--color-primary);
    color: #fff;
}

.btn-outline-white {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.4);
}
.btn-outline-white:hover {
    background: #fff;
    color: var(--color-primary-dark);
    border-color: #fff;
}

.btn-accent {
    background: var(--color-accent);
    color: #fff;
    border-color: var(--color-accent);
}
.btn-accent:hover {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
}

.btn-white {
    background: #fff;
    color: var(--color-primary-dark);
    border-color: #fff;
}
.btn-white:hover {
    background: var(--color-bg);
    border-color: var(--color-bg);
}

.btn-success {
    background: var(--color-success);
    color: #fff;
    border-color: var(--color-success);
}
.btn-success:hover {
    background: #15803D;
    border-color: #15803D;
}

.btn-warning {
    background: var(--color-warning);
    color: #fff;
    border-color: var(--color-warning);
}
.btn-warning:hover {
    background: #B45309;
    border-color: #B45309;
}

/* ----- 6.3 Button Sizes ----- */
.btn-sm {
    padding: 8px 16px;
    font-size: var(--font-size-sm);
    border-radius: var(--radius-sm);
}

.btn-lg {
    padding: 16px 32px;
    font-size: var(--font-size-lg);
    border-radius: var(--radius-md);
}

.btn-xl {
    padding: 20px 40px;
    font-size: var(--font-size-xl);
    border-radius: var(--radius-lg);
}

/* ----- 6.4 Button Block ----- */
.btn-block {
    width: 100%;
    justify-content: center;
}

/* ----- 6.5 Button Icon ----- */
.btn-icon {
    padding-left: 12px;
    padding-right: 16px;
}
.btn-icon .btn__icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.btn--icon-only {
    padding: 12px;
    gap: 0;
}
.btn--icon-only.btn-sm { padding: 8px; }
.btn--icon-only.btn-lg { padding: 16px; }

/* ----- 6.6 Button Disabled ----- */
.btn:disabled,
.btn[disabled],
.btn-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
    transform: none !important;
    box-shadow: none !important;
}

/* ----- 6.7 Button Loading ----- */
.btn-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}
.btn-loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btnSpin 0.6s linear infinite;
}
.btn-outline.btn-loading::after {
    border-color: rgba(26, 86, 219, 0.2);
    border-top-color: var(--color-primary);
}

@keyframes btnSpin {
    to { transform: rotate(360deg); }
}

/* ----- 6.8 WhatsApp Floating Button ----- */
.whatsapp-btn {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 60px;
    height: 60px;
    background: #25D366;
    color: #fff;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 999;
    box-shadow: var(--shadow-lg);
    transition: all var(--transition-base);
    text-decoration: none;
    font-size: 1.5rem;
    animation: whatsappPulse 2s ease-in-out infinite;
}
.whatsapp-btn:hover {
    transform: scale(1.1);
    box-shadow: var(--shadow-xl);
    color: #fff;
}
.whatsapp-btn__label {
    position: absolute;
    right: 72px;
    background: var(--color-card);
    color: var(--color-text);
    padding: 8px 16px;
    border-radius: var(--radius-base);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateX(8px);
    transition: all var(--transition-base);
    pointer-events: none;
}
.whatsapp-btn:hover .whatsapp-btn__label {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}
@keyframes whatsappPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.4); }
    50% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
}

/* ==========================================================================
   SECTION 7: Cards
   ========================================================================== */

/* ----- 7.1 Base Card ----- */
.card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-base);
    overflow: hidden;
    transition: all var(--transition-base);
}
.card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}
.card__body {
    padding: var(--space-6);
}
.card__header {
    padding: var(--space-6);
    border-bottom: 1px solid var(--color-border);
}
.card__footer {
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--color-border);
    background: var(--color-bg);
}

/* ----- 7.2 Product Card ----- */
.product-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    overflow: hidden;
    transition: all var(--transition-base);
    display: flex;
    flex-direction: column;
}
.product-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
    border-color: var(--color-primary);
}
.product-card__image {
    position: relative;
    padding: var(--space-6);
    background: var(--color-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
}
.product-card__image img {
    max-height: 180px;
    width: auto;
    transition: transform 0.4s ease;
}
.product-card:hover .product-card__image img {
    transform: scale(1.05);
}
.product-card__badge {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    padding: 4px 10px;
    background: var(--color-accent);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-full);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.product-card__body {
    padding: var(--space-5) var(--space-6);
    flex: 1;
    display: flex;
    flex-direction: column;
}
.product-card__title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-2);
    color: var(--color-text);
    line-height: var(--line-height-heading);
}
.product-card__title a {
    color: inherit;
    text-decoration: none;
}
.product-card__title a:hover {
    color: var(--color-primary);
}
.product-card__specs {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
    margin: var(--space-3) 0 var(--space-4);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}
.product-card__specs span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.product-card__specs strong {
    color: var(--color-text);
    font-family: var(--font-mono);
}
.product-card__actions {
    display: flex;
    gap: var(--space-3);
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

/* ----- 7.3 Category Card ----- */
.category-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    padding: var(--space-8) var(--space-6);
    text-align: center;
    transition: all var(--transition-base);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
}
.category-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}
.category-card__icon {
    width: 64px;
    height: 64px;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
}
.category-card__title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}
.category-card__description {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.6;
}
.category-card__link {
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    text-decoration: none;
}
.category-card__link:hover {
    text-decoration: underline;
}

/* ----- 7.4 Case Study Card ----- */
.case-study-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--color-border);
    transition: all var(--transition-base);
}
.case-study-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}
.case-study-card__image {
    height: 200px;
    background: var(--color-dark-bg-secondary);
    position: relative;
    overflow: hidden;
}
.case-study-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.case-study-card__industry {
    position: absolute;
    top: var(--space-4);
    left: var(--space-4);
    padding: 4px 12px;
    background: var(--color-primary);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-full);
}
.case-study-card__body {
    padding: var(--space-5) var(--space-6);
}
.case-study-card__title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-2);
}
.case-study-card__result {
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-sm);
    margin-top: var(--space-3);
}

/* ----- 7.5 Blog Card ----- */
.blog-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--color-border);
    transition: all var(--transition-base);
}
.blog-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}
.blog-card__image {
    height: 200px;
    overflow: hidden;
    position: relative;
}
.blog-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.blog-card:hover .blog-card__image img {
    transform: scale(1.08);
}
.blog-card__date {
    position: absolute;
    bottom: var(--space-3);
    left: var(--space-3);
    padding: 4px 12px;
    background: rgba(15, 23, 42, 0.8);
    color: #fff;
    font-size: var(--font-size-xs);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
}
.blog-card__body {
    padding: var(--space-5) var(--space-6);
}
.blog-card__title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-2);
    line-height: var(--line-height-heading);
}
.blog-card__title a {
    color: var(--color-text);
    text-decoration: none;
}
.blog-card__title a:hover {
    color: var(--color-primary);
}
.blog-card__excerpt {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--space-4);
}
.blog-card__read-more {
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.blog-card__read-more::after {
    content: '\2192';
    transition: transform var(--transition-fast);
}
.blog-card__read-more:hover::after {
    transform: translateX(4px);
}

/* ----- 7.6 Solution Card ----- */
.solution-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    padding: var(--space-8) var(--space-6);
    transition: all var(--transition-base);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.solution-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-6px);
    border-color: var(--color-primary);
}
.solution-card__icon {
    font-size: 3rem;
    line-height: 1;
}
.solution-card__title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}
.solution-card__description {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.7;
}

/* ----- 7.7 Team Card ----- */
.team-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--color-border);
    text-align: center;
    transition: all var(--transition-base);
}
.team-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}
.team-card__photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    margin: var(--space-8) auto var(--space-4);
    overflow: hidden;
    background: var(--color-bg);
}
.team-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.team-card__name {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-1);
}
.team-card__title {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-4);
}
.team-card__linkedin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--color-bg);
    border-radius: 50%;
    color: var(--color-text-secondary);
    font-size: var(--font-size-lg);
    transition: all var(--transition-fast);
    margin-bottom: var(--space-6);
}
.team-card__linkedin:hover {
    background: var(--color-primary);
    color: #fff;
}

/* ----- 7.8 Download Card ----- */
.download-card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    padding: var(--space-5) var(--space-6);
    display: flex;
    align-items: center;
    gap: var(--space-4);
    transition: all var(--transition-base);
}
.download-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
}
.download-card__icon {
    width: 48px;
    height: 48px;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}
.download-card__info {
    flex: 1;
    min-width: 0;
}
.download-card__title {
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.download-card__meta {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

/* ----- 7.9 Trust Card (Stats) ----- */
.trust-card {
    text-align: center;
    padding: var(--space-8) var(--space-4);
}
.trust-card__number {
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-extrabold);
    color: var(--color-primary);
    font-family: var(--font-mono);
    line-height: 1;
    margin-bottom: var(--space-2);
}
.trust-card__number .suffix {
    font-size: 0.6em;
    font-weight: var(--font-weight-semibold);
}
.trust-card__label {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ==========================================================================
   SECTION 8: Product Page Styles
   ========================================================================== */

/* ----- 8.1 Product Hero ----- */
/* NOTE: .product-hero / .product-features / .product-applications /
   .product-accessories are <section> wrappers whose ONLY child is .container.
   They used to be the grids themselves, back when the template put the image,
   info, feature and application elements directly inside the section. The
   template now pairs each section with a .container plus an inner grid
   (.product-hero-grid, .features-grid, .applications-grid, .accessories-list),
   so a grid here has exactly one grid item — .container — and that item is
   laid into the FIRST track only. Measured on /products/vlf-30/: .container
   came out 464px wide inside a 1425px section (826px for the hero), so the
   cards ran down one narrow column with ~750px of dead space beside them.
   Keep these wrappers as plain blocks; the inner grids own the columns. */
.product-hero {
    display: block;
    padding: var(--space-12) 0;
}

.product-hero__image {
    background: var(--color-card);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    padding: var(--space-10);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
}
.product-hero__image img {
    max-height: 400px;
    width: auto;
}
.product-hero__info {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.product-hero__title {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-extrabold);
    margin-bottom: 0;
}
.product-hero__subtitle {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-top: calc(-1 * var(--space-3));
}
.product-hero__key-specs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
}
.product-hero__spec-item {
    background: var(--color-bg);
    padding: var(--space-4);
    border-radius: var(--radius-base);
}
.product-hero__spec-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-1);
}
.product-hero__spec-value {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    font-family: var(--font-mono);
    color: var(--color-text);
}
.product-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-top: var(--space-4);
}

/* ----- 8.2 Product Specs Table ----- */
.product-specs-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
    line-height: var(--line-height-tech);
}
.product-specs-table thead {
    background: #F1F5F9;
}
.product-specs-table thead th {
    position: sticky;
    top: 0;
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    font-size: var(--font-size-xs);
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    padding: var(--space-3) var(--space-4);
    text-align: left;
    border-bottom: 2px solid var(--color-border-medium);
}
.product-specs-table tbody tr {
    border-bottom: 1px solid var(--color-border);
}
.product-specs-table tbody tr:nth-child(even) {
    background: var(--color-bg);
}
.product-specs-table td {
    padding: var(--space-3) var(--space-4);
    vertical-align: top;
}
.product-specs-table td:first-child {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    white-space: nowrap;
    width: 35%;
}
.product-specs-table td:last-child {
    color: var(--color-text);
}
.product-specs-table td:last-child .num {
    font-family: var(--font-mono);
}
.product-specs-table .spec-group-header td {
    background: var(--color-border);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    font-size: var(--font-size-xs);
    letter-spacing: 0.08em;
    color: var(--color-text);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-border-medium);
}

/* ----- 8.3 Spec Cards Row ----- */
.spec-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
    margin: var(--space-8) 0;
}
.spec-row__card {
    background: var(--color-bg);
    border-radius: var(--radius-md);
    padding: var(--space-5) var(--space-6);
    border: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.spec-row__label {
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
}
.spec-row__value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    font-family: var(--font-mono);
    color: var(--color-primary-dark);
    line-height: 1;
}
.spec-row__unit {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-normal);
}

/* ----- 8.4 Product Features ----- */
/* Wrapper is a plain block — see the note above .product-hero. Columns belong
   to .features-grid (auto-fit minmax(280px,1fr), in the product template). */
.product-features {
    display: block;
    margin: var(--space-8) 0;
}
.product-features__item {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-4);
    border-radius: var(--radius-md);
    transition: background var(--transition-fast);
}
.product-features__item:hover {
    background: var(--color-bg);
}
.product-features__icon {
    width: 48px;
    height: 48px;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
}
.product-features__text h4 {
    font-size: var(--font-size-base);
    margin-bottom: var(--space-1);
}
.product-features__text p {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

/* ----- 8.5 Product Applications ----- */
/* Wrapper is a plain block — see the note above .product-hero. Columns belong
   to .applications-grid (auto-fit minmax(280px,1fr), in the product template). */
.product-applications {
    display: block;
    margin: var(--space-8) 0;
}
.product-applications__item {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    min-height: 200px;
    background: var(--color-dark-bg-secondary);
    display: flex;
    align-items: flex-end;
    padding: var(--space-6);
    background-size: cover;
    background-position: center;
}
.product-applications__item::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(15, 23, 42, 0.85) 0%, rgba(15, 23, 42, 0.2) 100%);
    z-index: 1;
}
.product-applications__item h4 {
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: var(--font-size-lg);
    margin: 0;
}

/* ----- 8.6 Product Accessories ----- */
/* Same story as .product-features above: this is now the <section> wrapper and
   the list of items is .accessories-list inside .container. */
.product-accessories {
    display: block;
    margin: var(--space-8) 0;
}
/* The old `.product-accessories li` / `li::before` pair styled the section's own
   list items back when it was a <ul>. It still matched the <li class="accessory-item">
   rows of .accessories-list, and the ::before put a '✓' disc next to the checkmark
   SVG the template already draws — every accessory row showed two ticks. The list
   itself is styled by .accessories-list / .accessory-item in the product template. */

/* ----- 8.7 Product Video ----- */
.product-video-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%; /* 16:9 */
    background: var(--color-dark-bg-secondary);
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
}
.product-video-wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}
.product-video-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    z-index: 1;
}
.product-video-placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
}
.product-video-play {
    position: relative;
    z-index: 2;
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--color-primary-dark);
    transition: all var(--transition-base);
    box-shadow: var(--shadow-lg);
}
.product-video-play::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border-left: 22px solid var(--color-primary-dark);
    border-top: 14px solid transparent;
    border-bottom: 14px solid transparent;
    margin-left: 4px;
}
.product-video-wrapper:hover .product-video-play {
    transform: scale(1.1);
    box-shadow: var(--shadow-xl);
}

/* ----- 8.8 Product FAQ ----- */
.product-faq {
    margin: var(--space-8) 0;
    border-top: 1px solid var(--color-border);
}

/* ----- 8.9 Product Downloads ----- */
.product-downloads {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin: var(--space-6) 0;
}

/* ----- 8.10 Sticky CTA Bar (Mobile) ----- */
.product-cta-sticky {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--color-card);
    padding: var(--space-3) var(--space-4);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12);
    z-index: 998;
    gap: var(--space-3);
}
.product-cta-sticky .btn {
    flex: 1;
}

/* ----- 8.11 Related Products ----- */
.related-products {
    margin: var(--space-12) 0;
}
.related-products__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}
.related-products__scroll {
    display: flex;
    gap: var(--space-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--space-4);
}
.related-products__scroll > * {
    min-width: 280px;
    scroll-snap-align: start;
    flex-shrink: 0;
}

/* The .product-hero / .product-features / .product-applications /
   .product-accessories column rules that used to live here are gone: those are
   now plain block <section> wrappers, so a grid-template-columns on them did
   nothing but sit in the cascade waiting to confuse the next reader. Their
   columns are owned by .product-hero-grid, .features-grid, .applications-grid
   and .accessories-list, which are defined in the product template itself. */
@media (min-width: 768px) {
    .spec-row {
        grid-template-columns: repeat(4, 1fr);
    }
    .related-products__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .related-products__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 767px) {
    .product-cta-sticky {
        display: flex;
    }
    .product-cta-sticky ~ .whatsapp-btn {
        bottom: 80px;
    }
}

/* ==========================================================================
   SECTION 9: Specs Table Component (AI Overview Optimized)
   ========================================================================== */

table.specs-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
    line-height: var(--line-height-tech);
    border: 1px solid var(--color-border);
}
.specs-table thead {
    background: #F1F5F9;
}
.specs-table thead th {
    position: sticky;
    top: 0;
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    font-size: var(--font-size-xs);
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    padding: var(--space-3) var(--space-4);
    text-align: left;
    border-bottom: 2px solid var(--color-border-medium);
    background: #F1F5F9;
    z-index: 1;
}
.specs-table tbody tr {
    border-bottom: 1px solid var(--color-border);
}
.specs-table tbody tr:nth-child(even) {
    background: var(--color-bg);
}
.specs-table td {
    padding: var(--space-3) var(--space-4);
    vertical-align: top;
}
.specs-table td:first-child {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    width: 35%;
    white-space: nowrap;
}
.specs-table td:last-child {
    color: var(--color-text);
}
.specs-table td:last-child,
.specs-table .spec-numeric {
    font-family: var(--font-mono);
}
.specs-table .spec-group-header td {
    background: var(--color-border);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    font-size: var(--font-size-xs);
    letter-spacing: 0.08em;
    color: var(--color-text);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-border-medium);
}

/* Horizontal scroll on mobile with sticky first column */
.specs-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin: var(--space-6) 0;
}
.specs-table-wrapper .specs-table {
    min-width: 650px;
    border: none;
}
.specs-table-wrapper .specs-table td:first-child {
    position: sticky;
    left: 0;
    background: var(--color-card);
    z-index: 1;
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.04);
}
.specs-table-wrapper .specs-table tr:nth-child(even) td:first-child {
    background: var(--color-bg);
}
.specs-table-wrapper .specs-table thead th:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #F1F5F9;
}

/* ==========================================================================
   SECTION 10: Forms
   ========================================================================== */

/* ----- 10.1 Form Group ----- */
.form-group {
    margin-bottom: var(--space-5);
}
.form-group:last-child {
    margin-bottom: 0;
}

/* ----- 10.2 Form Label ----- */
.form-label {
    display: block;
    font-weight: var(--font-weight-medium);
    margin-bottom: 6px;
    color: #374151;
    font-size: var(--font-size-sm);
}
.form-label .required {
    color: var(--color-error);
    margin-left: 2px;
}

/* ----- 10.3 Form Inputs ----- */
.form-input,
.form-select,
.form-textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--color-border-medium);
    border-radius: var(--radius-base);
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    color: var(--color-text);
    background: var(--color-card);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);
}
.form-input::placeholder,
.form-textarea::placeholder {
    color: var(--color-text-light);
}
.form-input:disabled {
    background: var(--color-bg);
    cursor: not-allowed;
    opacity: 0.6;
}

/* ----- 10.4 Textarea ----- */
.form-textarea {
    min-height: 120px;
    resize: vertical;
    line-height: 1.6;
}

/* ----- 10.5 Select ----- */
.form-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748B' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 40px;
    cursor: pointer;
}

/* ----- 10.6 Checkbox & Radio ----- */
.form-checkbox,
.form-radio {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    cursor: pointer;
    font-size: var(--font-size-sm);
    line-height: 1.5;
    margin-bottom: var(--space-3);
}
.form-checkbox input,
.form-radio input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--color-primary);
    cursor: pointer;
}

/* ----- 10.7 File Upload ----- */
.form-file-upload {
    position: relative;
    border: 2px dashed var(--color-border-medium);
    border-radius: var(--radius-md);
    padding: var(--space-10) var(--space-6);
    text-align: center;
    cursor: pointer;
    transition: all var(--transition-base);
    background: var(--color-bg);
    min-height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
}
.form-file-upload:hover,
.form-file-upload.is-dragover {
    border-color: var(--color-primary);
    background: var(--color-primary-light);
}
.form-file-upload__icon {
    font-size: 2.5rem;
    color: var(--color-text-secondary);
    margin-bottom: var(--space-2);
}
.form-file-upload__text {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}
.form-file-upload__text strong {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}
.form-file-upload input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

/* ----- 10.8 Validation States ----- */
.form-input.form-error,
.form-select.form-error,
.form-textarea.form-error {
    border-color: var(--color-error);
}
.form-input.form-error:focus,
.form-select.form-error:focus,
.form-textarea.form-error:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.form-input.form-success,
.form-select.form-success,
.form-textarea.form-success {
    border-color: var(--color-success);
}
.form-input.form-success:focus,
.form-select.form-success:focus,
.form-textarea.form-success:focus {
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

.form-error-message {
    font-size: var(--font-size-xs);
    color: var(--color-error);
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.form-success-message {
    font-size: var(--font-size-xs);
    color: var(--color-success);
    margin-top: 4px;
}

/* ----- 10.9 Form Hint ----- */
.form-hint {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    margin-top: 4px;
}

/* ----- 10.10 Honeypot (Anti-spam) ----- */
.honeypot {
    position: absolute;
    left: -9999px;
    opacity: 0;
    height: 0;
    width: 0;
    overflow: hidden;
}

/* ----- 10.11 RFQ Form ----- */
.rfq-form {
    max-width: 640px;
    background: var(--color-card);
    padding: var(--space-8);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
}
.rfq-form__title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-6);
}
.rfq-form .form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}
@media (min-width: 768px) {
    .rfq-form .form-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
   SECTION 11: Navigation & Breadcrumbs
   ========================================================================== */

/* ----- 11.1 Breadcrumbs ----- */
.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    padding: var(--space-4) 0;
    list-style: none;
    margin: 0;
}
.breadcrumbs a {
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast);
}
.breadcrumbs a:hover {
    color: var(--color-primary);
}
.breadcrumbs .separator {
    margin: 0 4px;
    color: var(--color-text-light);
    user-select: none;
}
.breadcrumbs .current {
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
}

/* ----- 11.2 Pagination ----- */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-10) 0;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
}
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-base);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    text-decoration: none;
    transition: all var(--transition-fast);
}
.pagination .page-numbers:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.pagination .current {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}
.pagination .page-numbers.next,
.pagination .page-numbers.prev {
    gap: 4px;
}

/* ==========================================================================
   SECTION 12: Blog & Content Styles
   ========================================================================== */

/* ----- 12.1 Post Content ----- */
.post-content {
    max-width: 720px;
    margin: 0 auto;
    font-size: 1.05rem;
    line-height: 1.8;
}

/* Headings */
.post-content h2 {
    font-size: var(--font-size-3xl);
    margin-top: var(--space-12);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 2px solid var(--color-border);
}
.post-content h3 {
    font-size: var(--font-size-xl);
    margin-top: var(--space-8);
    margin-bottom: var(--space-4);
}
.post-content h4 {
    font-size: var(--font-size-lg);
    margin-top: var(--space-6);
    margin-bottom: var(--space-3);
}

/* Paragraphs */
.post-content p {
    margin-bottom: var(--space-5);
}

/* Lists */
.post-content ul,
.post-content ol {
    padding-left: var(--space-6);
    margin-bottom: var(--space-5);
}
.post-content li {
    margin-bottom: var(--space-2);
}
.post-content ul ul,
.post-content ol ol {
    margin-top: var(--space-2);
}

/* Blockquote */
.post-content blockquote {
    border-left: 4px solid var(--color-primary);
    padding: var(--space-4) var(--space-6);
    margin: var(--space-6) 0;
    background: var(--color-bg);
    font-style: italic;
    color: var(--color-text-secondary);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.post-content blockquote p:last-child {
    margin-bottom: 0;
}

/* Inline Code */
.post-content code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    background: #F1F5F9;
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    color: var(--color-primary);
}

/* Code Block */
.post-content pre {
    background: var(--color-dark-bg);
    color: var(--color-border);
    padding: var(--space-5);
    border-radius: var(--radius-md);
    overflow-x: auto;
    margin: var(--space-6) 0;
    font-family: var(--font-mono);
    font-size: 0.875rem;
    line-height: 1.7;
}
.post-content pre code {
    background: transparent;
    padding: 0;
    color: inherit;
    font-size: inherit;
    border-radius: 0;
}

/* Tables in Content */
.post-content table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-6) 0;
    font-size: 0.9375rem;
}
.post-content table th {
    background: #F1F5F9;
    font-weight: var(--font-weight-semibold);
    padding: var(--space-3) var(--space-4);
    text-align: left;
    border-bottom: 2px solid var(--color-border-medium);
}
.post-content table td {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-border);
}
.post-content table tr:nth-child(even) td {
    background: var(--color-bg);
}

/* Images */
.post-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    margin: var(--space-6) 0;
}
.post-content figure {
    margin: var(--space-8) 0;
}
.post-content figcaption {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-align: center;
    margin-top: var(--space-2);
}

/* ----- 12.2 Post Meta ----- */
.post-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-6);
}
.post-meta__item {
    display: flex;
    align-items: center;
    gap: 4px;
}
.post-meta__categories {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}
.post-meta__category {
    display: inline-block;
    padding: 2px 10px;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    transition: all var(--transition-fast);
}
.post-meta__category:hover {
    background: var(--color-primary);
    color: #fff;
}

/* ----- 12.3 Post Tags ----- */
.post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--color-border);
}
.post-tags__label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}
.post-tags a {
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-bg);
    color: var(--color-text-secondary);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    transition: all var(--transition-fast);
}
.post-tags a:hover {
    background: var(--color-primary-light);
    color: var(--color-primary);
}

/* ----- 12.4 Author Box ----- */
.author-box {
    display: flex;
    gap: var(--space-6);
    padding: var(--space-8);
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    margin: var(--space-12) 0;
    align-items: center;
}
.author-box__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--color-bg);
}
.author-box__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.author-box__name {
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-lg);
    margin-bottom: var(--space-1);
}
.author-box__bio {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.6;
}
@media (max-width: 575px) {
    .author-box {
        flex-direction: column;
        text-align: center;
    }
}

/* ----- 12.5 Related Posts ----- */
.related-posts {
    margin: var(--space-16) 0 var(--space-10);
}
.related-posts__title {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--space-6);
}
.related-posts__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}
@media (min-width: 768px) {
    .related-posts__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1024px) {
    .related-posts__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ==========================================================================
   SECTION 13: Case Study Styles
   ========================================================================== */

/* ----- 13.1 Case Study Hero ----- */
.case-study-hero {
    background: var(--color-dark-bg);
    color: var(--color-text-inverse);
    padding: var(--space-20) 0;
    position: relative;
    overflow: hidden;
}
.case-study-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 50%, rgba(26, 86, 219, 0.2) 0%, transparent 60%);
    pointer-events: none;
}
.case-study-hero .container {
    position: relative;
    z-index: 1;
}
.case-study-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
}
.case-study-hero__badge {
    padding: 6px 16px;
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(4px);
}
.case-study-hero__badge--industry {
    background: rgba(26, 86, 219, 0.3);
    border-color: rgba(26, 86, 219, 0.5);
}
.case-study-hero__badge--country {
    background: rgba(13, 148, 136, 0.3);
    border-color: rgba(13, 148, 136, 0.5);
}
.case-study-hero__title {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: var(--font-weight-extrabold);
    margin-bottom: var(--space-6);
    line-height: 1.2;
}
.case-study-hero__result-highlight {
    display: inline-block;
    padding: var(--space-4) var(--space-8);
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: var(--space-6);
}

/* ----- 13.2 Case Study Section (Challenge/Solution/Result) ----- */
.case-study-section {
    margin: var(--space-16) 0;
}
.case-study-section__title {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-4);
    padding-left: var(--space-4);
    border-left: 4px solid var(--color-primary);
}
.case-study-section__content {
    color: var(--color-text-secondary);
    line-height: 1.8;
}

/* ----- 13.3 Case Study Result Big Number ----- */
.case-study-result-big {
    text-align: center;
    padding: var(--space-10) 0;
}
.case-study-result-big__number {
    font-size: clamp(3rem, 8vw, 5rem);
    font-weight: var(--font-weight-extrabold);
    color: var(--color-primary);
    font-family: var(--font-mono);
    line-height: 1;
    margin-bottom: var(--space-2);
}
.case-study-result-big__label {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

/* ----- 13.4 Client Quote ----- */
.case-study-client-quote {
    position: relative;
    padding: var(--space-10) var(--space-12);
    background: var(--color-card);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    margin: var(--space-12) 0;
    font-size: var(--font-size-xl);
    font-style: italic;
    line-height: 1.8;
    color: var(--color-text);
}
.case-study-client-quote::before {
    content: '\201C';
    position: absolute;
    top: var(--space-4);
    left: var(--space-6);
    font-size: 5rem;
    font-family: Georgia, serif;
    color: var(--color-primary);
    opacity: 0.15;
    line-height: 1;
    font-style: normal;
}
.case-study-client-quote__author {
    margin-top: var(--space-6);
    font-style: normal;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}
.case-study-client-quote__role {
    font-weight: var(--font-weight-normal);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

/* ----- 13.5 Case Studies Grid ----- */
.case-studies-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}
@media (min-width: 768px) {
    .case-studies-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
   SECTION 14: FAQ Styles
   ========================================================================== */

details.faq-item {
    border-bottom: 1px solid var(--color-border);
}
details.faq-item:first-of-type {
    border-top: 1px solid var(--color-border);
}

summary.faq-question {
    padding: var(--space-4) 0;
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-base);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
    color: var(--color-text);
    transition: color var(--transition-fast);
    user-select: none;
}
summary.faq-question:hover {
    color: var(--color-primary);
}
summary.faq-question::-webkit-details-marker {
    display: none;
}
summary.faq-question::after {
    content: '+';
    font-size: 1.5rem;
    font-weight: var(--font-weight-normal);
    color: var(--color-primary);
    transition: transform var(--transition-base);
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}
details.faq-item[open] summary.faq-question::after {
    content: '\2212';
}

.faq-answer {
    padding: 0 0 var(--space-4) 0;
    color: #475569;
    max-width: 640px;
    line-height: 1.7;
    font-size: var(--font-size-sm);
}
.faq-answer p:last-child {
    margin-bottom: 0;
}

/* FAQ as accordion in a group */
.faq-group {
    max-width: 800px;
    margin: 0 auto;
}
.faq-group__title {
    text-align: center;
    margin-bottom: var(--space-8);
}

/* ==========================================================================
   SECTION 15: Footer
   ========================================================================== */

/* ----- 15.1 Site Footer ----- */
.site-footer {
    background: var(--color-dark-bg);
    color: #CBD5E1;
    padding: var(--space-20) 0 var(--space-10);
    font-size: var(--font-size-sm);
}
.site-footer a {
    color: var(--color-text-light);
    text-decoration: none;
    transition: color var(--transition-fast);
}
.site-footer a:hover {
    color: var(--color-text-inverse);
}

/* ----- 15.2 Footer Grid ----- */
.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-10);
}
@media (min-width: 768px) {
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1024px) {
    .footer-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ----- 15.3 Footer Widget Title ----- */
.footer-widget-title {
    color: var(--color-text-inverse);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-5);
}

/* ----- 15.4 Footer Links ----- */
.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-links li {
    margin-bottom: var(--space-1);
}
.footer-links a {
    display: inline-block;
    padding: 6px 0;
    color: var(--color-text-light);
    font-size: var(--font-size-sm);
    transition: color var(--transition-fast), transform var(--transition-fast);
}
.footer-links a:hover {
    color: var(--color-text-inverse);
    transform: translateX(3px);
}

/* Footer Company Description */
.footer-company-desc {
    color: var(--color-text-light);
    font-size: var(--font-size-sm);
    line-height: 1.7;
    margin-bottom: var(--space-6);
}

/* Footer Contact Info */
.footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
    color: var(--color-text-light);
    font-size: var(--font-size-sm);
    line-height: 1.5;
}
.footer-contact__icon {
    flex-shrink: 0;
    color: var(--color-text-secondary);
    font-size: var(--font-size-base);
    margin-top: 2px;
}

/* ----- 15.5 Footer Social Icons ----- */
.footer-social-icons {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-5);
}
.footer-social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: var(--color-text-light);
    font-size: var(--font-size-lg);
    transition: all var(--transition-base);
}
.footer-social-icons a:hover {
    background: var(--color-primary);
    color: #fff;
    transform: translateY(-2px);
}

/* ----- 15.6 Footer Newsletter ----- */
.footer-newsletter {
    display: flex;
    margin-top: var(--space-4);
}
.footer-newsletter input {
    flex: 1;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.05);
    color: var(--color-text-inverse);
    border-radius: var(--radius-base) 0 0 var(--radius-base);
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    outline: none;
    transition: border-color var(--transition-fast);
}
.footer-newsletter input::placeholder {
    color: var(--color-text-light);
}
.footer-newsletter input:focus {
    border-color: var(--color-primary);
}
.footer-newsletter button {
    padding: 10px 18px;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 0 var(--radius-base) var(--radius-base) 0;
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: background var(--transition-fast);
    font-family: var(--font-body);
    white-space: nowrap;
}
.footer-newsletter button:hover {
    background: var(--color-primary-hover);
}

/* ----- 15.7 Footer Bottom ----- */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: var(--space-6);
    margin-top: var(--space-12);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
    font-size: var(--font-size-xs);
    color: var(--color-text-light);
}
.footer-bottom a {
    color: var(--color-text-light);
}
.footer-bottom a:hover {
    color: var(--color-text-inverse);
}
/* The .footer-bottom flex row above only ever had one child — an inner
   .container — so the copyright and the legal links stacked instead of
   sitting at opposite ends. The .container is what needs to be the row
   (keeping .footer-bottom's border-top spanning the full footer width). */
.footer-bottom > .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
}

.footer-bottom__legal {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

/* ----- 15.8 Back to Top ----- */
.back-to-top {
    position: fixed;
    bottom: 24px;
    left: 24px;
    width: 44px;
    height: 44px;
    background: var(--color-card);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 997;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: all var(--transition-base);
    box-shadow: var(--shadow-md);
    text-decoration: none;
    font-size: 1.2rem;
}
.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.back-to-top:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

/* ==========================================================================
   CARD GRID LAYOUT FIX
   Mobile-first base grid behaviour for card containers that previously only
   received grid-template-columns inside media queries (or none at all).
   A single-column stack on mobile; breakpoints expand to multi-column.
   ========================================================================== */

/* Utility grids (.grid-2/.grid-3/.grid-4) — mobile-first base.
   The existing responsive rules in Section 16 set the final column
   counts at 768 / 1024 / 1280px.

   .solution-grid belongs here too: the /solutions/ page markup wraps its
   .solution-card items in .solution-grid, but no rule for that wrapper ever
   shipped, so the cards stacked full-width. .solution-card itself has always
   been styled, so the wrapper is the only missing piece. */
.grid-2,
.grid-3,
.grid-4 {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6, 1.5rem);
}

/* Solutions cards. Unlike .grid-3 above, this container sits inside the
   narrower .post-content column (~760px), where a forced 3-up would squeeze
   the cards to ~237px. auto-fit picks the column count from the space
   actually available, so it needs no breakpoints of its own. */
.solution-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--space-6, 1.5rem);
    margin-bottom: var(--space-10, 2.5rem);
}

/* Blog / archive / search post grids (index.php, archive-post.php, search.php). */
.va-tek-post-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6, 1.5rem);
}

/* Blog / search two-column layout: main list + optional sidebar. */
.va-tek-blog-archive__layout,
.va-tek-content-area {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-10, 2.5rem);
}

/* Blog post / search-result cards. */
.va-tek-post-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.va-tek-post-card:hover {
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
    transform: translateY(-3px);
}
.va-tek-post-card__image img,
.va-tek-post-card__img {
    width: 100%;
    display: block;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.va-tek-post-card__content,
.va-tek-post-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem;
    flex: 1;
}
.va-tek-post-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.8125rem;
    color: var(--color-text-light, #94a3b8);
}
.va-tek-post-card__title {
    font-size: 1.125rem;
    line-height: 1.4;
    margin: 0;
}
.va-tek-post-card__title a {
    color: var(--color-heading, #0f172a);
    text-decoration: none;
}
.va-tek-post-card__title a:hover {
    color: var(--color-primary, #1a56db);
}
.va-tek-post-card__excerpt {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--color-text-secondary, #64748b);
    flex: 1;
    margin: 0;
}
.va-tek-post-card__read-more,
.va-tek-read-more {
    margin-top: 0.25rem;
    font-weight: 600;
    color: var(--color-primary, #1a56db);
    text-decoration: none;
}
.va-tek-post-card__read-more:hover,
.va-tek-read-more:hover {
    text-decoration: underline;
}
/* Intro copy that sits above a post grid (blog landing page). Must out-specify
   the `.post-content` width rules in section 12/16 so it spans the grid. */
.post-content.va-tek-blog-intro {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: var(--space-10, 2.5rem);
}

/* Migrated content hero blocks (.wp-block-cover) without a background image
   would otherwise render as a blank band with invisible white text. */
.wp-block-cover {
    background-color: var(--color-dark-bg, #0f172a);
}
.wp-block-cover h1,
.wp-block-cover h2,
.wp-block-cover h3,
.wp-block-cover p {
    color: #fff;
}

/* Page header (index.php, new page.php). */
.va-tek-page-header {
    margin-bottom: var(--space-8, 2rem);
}
.va-tek-page-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    line-height: 1.2;
    margin: 0;
    color: var(--color-heading, #0f172a);
}

/* Responsive expansion for post grids and archive sidebar layout. */
@media (min-width: 768px) {
    .va-tek-post-grid {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
}
@media (min-width: 1024px) {
    /* Sidebar column only when a sidebar is actually rendered — otherwise the
       content column keeps the full available width. */
    .va-tek-blog-archive__layout,
    .va-tek-content-area:has(> .va-tek-sidebar) {
        grid-template-columns: minmax(0, 1fr) 320px;
    }
    .va-tek-content-area__inner {
        min-width: 0;
    }
}

/* ==========================================================================
   SECTION 16: Responsive Design
   ========================================================================== */

/* Mobile-first: all base styles above are for mobile (< 768px) */

/* ----- 16.1 Tablet: 768px+ ----- */
@media (min-width: 768px) {
    /* Grids */
    .grid-2, .grid-3, .grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Section */
    .section {
        padding: var(--space-24) 0;
    }

    /* Hero */
    .hero {
        min-height: 520px;
        padding: var(--space-24) 0;
    }
    .hero-grid {
        grid-template-columns: 1fr 1fr;
    }
    .hero-image {
        display: flex;
    }

    /* Two-column layouts */
    .spec-row {
        grid-template-columns: repeat(4, 1fr);
    }

    /* Specs table: enable sticky header */
    .specs-table thead th {
        position: sticky;
        top: 0;
    }

    /* Footer bottom */
    .footer-bottom {
        flex-direction: row;
    }
}

/* ----- 16.2 Desktop: 1024px+ ----- */
@media (min-width: 1024px) {
    /* Grids */
    .grid-3 { grid-template-columns: repeat(3, 1fr); }
    .grid-4 { grid-template-columns: repeat(3, 1fr); }

    /* Navigation */
    .main-navigation { display: flex; }
    .mobile-menu-toggle { display: none; }

    /* Hero */
    .hero {
        min-height: 600px;
    }

    /* Post content wider for big screens */
    .post-content {
        max-width: 800px;
    }
}

/* ----- 16.3 Large Desktop: 1280px+ ----- */
@media (min-width: 1280px) {
    .grid-4 { grid-template-columns: repeat(4, 1fr); }

    .container {
        padding: 0 var(--space-8);
    }

    .hero {
        min-height: 640px;
    }
    .hero-image img {
        max-height: 500px;
    }

    .post-content {
        max-width: 760px;
    }
}

/* ==========================================================================
   SECTION 17: Animations
   ========================================================================== */

/* ----- 17.1 Scroll-triggered Fade In ----- */
.fade-in {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fade-in--left {
    opacity: 0;
    transform: translateX(-24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in--left.is-visible {
    opacity: 1;
    transform: translateX(0);
}

.fade-in--right {
    opacity: 0;
    transform: translateX(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in--right.is-visible {
    opacity: 1;
    transform: translateX(0);
}

/* Stagger children */
.stagger-children > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.stagger-children.is-visible > *:nth-child(1) { transition-delay: 0.05s; }
.stagger-children.is-visible > *:nth-child(2) { transition-delay: 0.1s; }
.stagger-children.is-visible > *:nth-child(3) { transition-delay: 0.15s; }
.stagger-children.is-visible > *:nth-child(4) { transition-delay: 0.2s; }
.stagger-children.is-visible > *:nth-child(5) { transition-delay: 0.25s; }
.stagger-children.is-visible > *:nth-child(6) { transition-delay: 0.3s; }
.stagger-children.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}

/* ----- 17.2 Skeleton Loading ----- */
.skeleton {
    background: linear-gradient(90deg, var(--color-border) 25%, var(--color-bg) 50%, var(--color-border) 75%);
    background-size: 200% 100%;
    animation: skeletonShimmer 1.5s ease-in-out infinite;
    border-radius: var(--radius-base);
    color: transparent !important;
    pointer-events: none;
}
.skeleton--text {
    height: 1em;
    margin-bottom: 8px;
    width: 80%;
}
.skeleton--text:last-child { width: 60%; }
.skeleton--title {
    height: 1.5em;
    margin-bottom: 12px;
    width: 70%;
}
.skeleton--image {
    height: 200px;
    width: 100%;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.skeleton--button {
    height: 44px;
    width: 120px;
    border-radius: var(--radius-base);
}
.skeleton--card {
    background: var(--color-card);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--color-border);
}

@keyframes skeletonShimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* ----- 17.3 Smooth Scroll ----- */
html {
    scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* ----- 17.4 Count Up Animation ----- */
.count-up {
    font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
 * 17.5 Facility Gallery (About page factory photos)
 *
 * The plant photos are stitched panoramas, roughly 1600x360 — a 4.4:1 band.
 * The About page renders inside .post-content, which caps at 720px, so at the
 * natural ratio each photo would be a ~165px-tall sliver; two of them in the
 * side-by-side columns the page previously used would be ~80px and read as
 * broken. So the gallery opts out of the text column: from 1200px up it is a
 * fixed 1080px wide, re-centred on the column with negative inline margins.
 *
 * Negative margins rather than the usual `100vw` full-bleed trick on purpose:
 * 100vw includes the scrollbar, so it would overhang by ~15px and either add a
 * horizontal scrollbar or (because body sets overflow-x:hidden) clip the right
 * edge. Sizing off `100%` of the parent and re-centring keeps it exact.
 * -------------------------------------------------------------------------- */
.va-facility-gallery {
    display: grid;
    gap: var(--space-6);
    margin-top: var(--space-10);
    margin-bottom: var(--space-10);
}

figure.va-facility-figure {
    margin: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-card);
    overflow: hidden;
}

figure.va-facility-figure img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: 0;
}

figure.va-facility-figure figcaption {
    margin: 0;
    padding: var(--space-3) var(--space-5);
    border-top: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-align: left;
}

/* Narrow screens: the panorama would be under 100px tall, so crop to the
   centre of the frame instead and give the band a usable height. */
@media (max-width: 767px) {
    figure.va-facility-figure img {
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }
}

/* Wide screens: break out of the 720px text column to 1080px. (1200px is the
   narrowest viewport where 1080px still fits inside .va-tek-container.) */
@media (min-width: 1200px) {
    .va-facility-gallery {
        width: 1080px;
        max-width: none;
        margin-left: calc((100% - 1080px) / 2);
        margin-right: calc((100% - 1080px) / 2);
        gap: var(--space-8);
    }
}

/* ==========================================================================
   SECTION 17.6: Product Archive  (/products/)
   --------------------------------------------------------------------------
   Styles for archive-product.php. Same discipline as the product sections in
   section 8: every <section> here is a plain block whose only child is
   .container, and the grids live one level deeper so no container ever ends up
   squeezed into a single grid track. compat.css already gives .site-main 2rem
   of top padding — the hero supplies its own, so it is zeroed below.
   ========================================================================== */

body.va-tek-product-archive .site-main,
body.va-tek-product-page .site-main {
    padding-top: 0;
}

/* --------------------------------------------------------------------------
 * 17.6.1 The nested <main> that used to live in the page templates
 * --------------------------------------------------------------------------
 * header.php opens <main id="site-main" class="site-main"> and footer.php closes
 * it. Every page template then opened a SECOND <main class="site-main"> of its
 * own — page.php, page-blog, page-contact, page-privacy, page-rfq, page-terms,
 * page-product-category and single-product. Measured on /contact/ and
 * /products/vlf-90/: document.mainCount === 2.
 *
 * Two consequences, both visible:
 *   1. compat.css gives .site-main `padding-top: 2rem; padding-bottom: 3rem`.
 *      Both elements matched, so every page carried double that padding — an
 *      unexplained 4rem gap above the content and 6rem below it.
 *   2. <main> is only allowed once per document; everything inside the second
 *      one is invisible to assistive technology's landmark navigation.
 *
 * The templates now use <div class="va-tek-page-body">, so this wrapper only
 * needs to be a neutral block. Do NOT give it padding — the outer .site-main
 * already owns the vertical rhythm of the page.
 * -------------------------------------------------------------------------- */
.va-tek-page-body {
    display: block;
}

/* ----- Hero ----- */
.va-archive-hero {
    background:
        radial-gradient(1200px 420px at 78% -10%, rgba(26, 86, 219, 0.35), transparent 70%),
        linear-gradient(160deg, #0F172A 0%, #1E3A5F 100%);
    color: var(--color-text-inverse);
    padding: var(--space-16) 0 var(--space-12);
}
.va-archive-hero .va-tek-breadcrumb,
.va-archive-hero .va-tek-breadcrumb a,
.va-archive-hero .va-tek-breadcrumbs a {
    color: rgba(255, 255, 255, 0.66);
}
.va-archive-hero .va-tek-breadcrumb [aria-current] {
    color: rgba(255, 255, 255, 0.92);
}
.va-archive-hero__title {
    color: var(--color-text-inverse);
    font-size: clamp(2rem, 1.2rem + 2.6vw, 3rem);
    font-weight: var(--font-weight-extrabold);
    line-height: 1.12;
    letter-spacing: -0.02em;
    margin: 0 0 var(--space-4);
    max-width: 18ch;
}
.va-archive-hero__lead {
    font-size: var(--font-size-lg);
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.82);
    max-width: 62ch;
    margin: 0 0 var(--space-8);
}
.va-archive-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: var(--space-8);
}
.va-archive-stat {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.07);
    font-size: var(--font-size-sm);
    color: rgba(255, 255, 255, 0.85);
}
.va-archive-stat strong {
    font-weight: var(--font-weight-bold);
    color: #fff;
}
.va-archive-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

/* ----- Category jump bar (sticky under the header) ----- */
.va-archive-jump {
    position: sticky;
    top: 0;
    z-index: 60;
    background: rgba(248, 250, 252, 0.94);
    backdrop-filter: saturate(1.4) blur(10px);
    border-bottom: 1px solid var(--color-border);
}
.va-archive-jump__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    list-style: none;
    margin: 0;
    padding: var(--space-3) 0;
    overflow-x: auto;
    scrollbar-width: thin;
}
.va-archive-jump__list a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    background: var(--color-card);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}
.va-archive-jump__list a:hover,
.va-archive-jump__list a:focus-visible {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background: var(--color-primary-light);
}
.va-archive-jump__count {
    font-size: var(--font-size-xs);
    font-variant-numeric: tabular-nums;
    color: var(--color-text-light);
}

/* Scroll target offset so the sticky bar doesn't cover the heading. */
.va-archive-cat {
    padding: var(--space-16) 0 var(--space-4);
    scroll-margin-top: 84px;
}
.va-archive-cat--alt {
    background: var(--color-card);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-16);
    margin-bottom: var(--space-4);
}
.va-archive-cat__head {
    max-width: 74ch;
    margin-bottom: var(--space-8);
}
.va-archive-cat__eyebrow {
    display: inline-block;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: var(--space-2);
}
.va-archive-cat__desc {
    font-size: var(--font-size-base);
    line-height: 1.7;
    color: var(--color-text-secondary);
    margin: 0;
}
.va-archive-cat__desc + .va-archive-cat__desc {
    margin-top: var(--space-3);
}

/* ----- Closer / sister-brand band ----- */
.va-archive-sister {
    padding: var(--space-12) 0;
}
.va-archive-sister__card {
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--radius-lg);
    background: var(--color-card);
    padding: var(--space-8);
}
.va-archive-sister__card h2 {
    font-size: var(--font-size-xl);
    margin: 0 0 var(--space-3);
}
.va-archive-sister__card p {
    color: var(--color-text-secondary);
    line-height: 1.7;
    margin: 0 0 var(--space-5);
    max-width: 72ch;
}

@media (max-width: 767px) {
    .va-archive-hero {
        padding: var(--space-10) 0 var(--space-8);
    }
    .va-archive-cat,
    .va-archive-cat--alt {
        padding-top: var(--space-10);
    }
    .va-archive-jump {
        top: 0;
    }
}

/* ==========================================================================
   SECTION 18: Print Styles
   ========================================================================== */

@media print {
    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    body {
        font-size: 12pt;
        line-height: 1.5;
    }

    /* Hide non-content elements */
    .site-header,
    .site-footer,
    .top-bar,
    .whatsapp-btn,
    .back-to-top,
    .product-cta-sticky,
    .mobile-nav-panel,
    .mobile-nav-overlay,
    .header-search-panel,
    .hero-cta-group,
    .btn,
    .pagination,
    .post-tags,
    .footer-newsletter,
    .footer-social-icons,
    .language-switcher,
    nav {
        display: none !important;
    }

    /* Full width content */
    .container {
        max-width: 100%;
        padding: 0;
        margin: 0;
    }

    /* Links: show full URL */
    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        font-weight: normal;
        color: #666;
    }
    a[href^="#"]::after,
    a[href^="javascript:"]::after,
    a[href^="mailto:"]::after {
        content: "";
    }

    /* Images */
    img {
        max-width: 100% !important;
        page-break-inside: avoid;
    }

    /* Avoid orphans */
    p, h2, h3 {
        orphans: 3;
        widows: 3;
    }
    h2, h3, h4 {
        page-break-after: avoid;
    }

    /* Tables */
    table {
        border-collapse: collapse;
        width: 100%;
    }
    th, td {
        border: 1px solid #ccc;
        padding: 8px;
    }

    /* Hero */
    .hero {
        background: none !important;
        min-height: auto;
        padding: 20px 0;
        color: #000 !important;
    }
    .hero-title,
    .hero-subtitle {
        color: #000 !important;
    }
}
