/**
 * Site-wide accessibility enhancements (WCAG 2.1 AA support layer).
 * Loaded after theme.css. Complements the visitor a11y bubble — does not replace
 * fixing default contrast, semantics, keyboard access, or media alternatives.
 */

/* Solid page canvas — translucent body gradients confuse axe contrast sampling */
.theme-body,
body.theme-body.theme-high-tech-ecommerce {
    background-color: #ffffff !important;
    background-image: none !important;
}
.theme-body .contact-section,
.theme-body .contact-form-panel {
    background-color: #ffffff !important;
}
.theme-body .contact-section-title,
body.theme-high-tech-ecommerce .contact-section-title {
    color: #0f172a !important;
    background: transparent;
}
/* Keep contact form clear of sticky header + cookie overlap during scroll */
.theme-body .contact-section {
    padding-top: 1.25rem;
    padding-bottom: 2rem;
}
body.theme-high-tech-ecommerce.header-tech .site-header,
body.theme-high-tech-ecommerce.theme-glass .site-header {
    background: #ffffff !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .theme-body .carousel,
    .theme-body .pb-slider,
    .theme-body .pb-carousel,
    .theme-body .marquee,
    .theme-body [data-autoplay] {
        scroll-behavior: auto !important;
    }
    .theme-body .carousel-item,
    .theme-body .pb-slider-slide {
        transition: none !important;
        animation: none !important;
    }
}

/* Ensure interactive controls meet ~44px touch target where cramped */
.theme-body .enquiry-option-chip,
.theme-body .product-gallery-zoom,
.theme-body .lightbox-trigger.product-gallery-main {
    min-height: var(--a11y-min-touch, 2.75rem);
}
.theme-body :focus {
    outline: none;
}
.theme-body :focus-visible {
    outline: 2px solid var(--theme-primary, #0d6e6e);
    outline-offset: 2px;
}
.theme-body .btn:focus-visible,
.theme-body a.btn:focus-visible {
    outline: 2px solid var(--theme-primary, #0d6e6e);
    outline-offset: 2px;
}

/* --- Default muted text: AA-friendlier fallback --- */
:root {
    --theme-muted: #475569;
    --a11y-min-touch: 2.75rem; /* 44px */
}

.theme-body .text-muted,
.theme-body .page-excerpt,
.theme-body .a11y-legend,
.theme-body .faq-answer,
.theme-body .gallery-item figcaption,
.theme-body .exhibition-desc,
.theme-body .product-pager-ph,
.theme-body .global-search-thumb--ph,
.theme-body .thumb-card-ph,
.theme-body .compare-price {
    color: var(--theme-muted, #475569);
}

/* Remap low-contrast muted utility colors from theme-base (#9aa7b5 / #94a3b8) */
.theme-body .product-pager-ph,
.theme-body .global-search-thumb--ph,
.theme-body .compare-price {
    color: #475569 !important;
}

/* Light accent buttons need dark text for AA (gold / sky / amber) */
.theme-body.theme-christmas .btn-accent,
.theme-body.theme-yummy-food .btn-accent,
.theme-body.theme-cold-winter .btn-accent,
.theme-body.theme-fresh-summer .btn-accent {
    color: #1a1a1a;
}
.theme-body.theme-christmas .btn-accent:hover,
.theme-body.theme-christmas .btn-accent:focus-visible,
.theme-body.theme-yummy-food .btn-accent:hover,
.theme-body.theme-yummy-food .btn-accent:focus-visible,
.theme-body.theme-cold-winter .btn-accent:hover,
.theme-body.theme-cold-winter .btn-accent:focus-visible,
.theme-body.theme-fresh-summer .btn-accent:hover,
.theme-body.theme-fresh-summer .btn-accent:focus-visible {
    color: #111;
}

/* --- Touch targets --- */
.a11y-fab,
.back-to-top,
.cms-lc-launcher,
.pb-carousel-btn,
.pb-product-carousel-btn,
.option-carousel-btn,
.mobile-nav-toggler,
.mobile-nav-close,
.product-pager-btn {
    min-width: var(--a11y-min-touch);
    min-height: var(--a11y-min-touch);
}

.cms-lc-icon-btn,
.cms-lc-attach {
    min-width: var(--a11y-min-touch);
    min-height: var(--a11y-min-touch);
}

.carousel-indicators [data-bs-target],
.pb-carousel-dot,
.option-carousel-dots button {
    position: relative;
    min-width: 0.5rem;
    min-height: 0.5rem;
}

/* Expand hit area without enlarging the visible indicator (avoids large squares).
   Note: .block-slider indicators opt out — overlapping ::after caused wrong-slide clicks. */
.carousel-indicators [data-bs-target]::after,
.pb-carousel-dot::after,
.option-carousel-dots button::after {
    content: "";
    position: absolute;
    inset: -0.5rem;
}

.block-slider .carousel-indicators [data-bs-target]::after,
.block-slider .carousel-indicators .slider-nav-btn::after {
    content: none !important;
    display: none !important;
}

/* --- FAB stacking: a11y left; chat + back-to-top right without overlap ---
   These live outside .a11y-filter-shell so filter modes cannot retarget fixed. */
.a11y-fab,
.back-to-top,
.cms-lc-launcher,
.cms-lc-panel {
    position: fixed;
}

.a11y-fab {
    left: max(1rem, env(safe-area-inset-left));
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 1045;
}

.back-to-top {
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 1040;
}

body:has(#cmsLiveChat) .back-to-top {
    bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
}

.cms-lc-launcher {
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    min-width: var(--a11y-min-touch);
    min-height: var(--a11y-min-touch);
}

@media (max-width: 575.98px) {
    .a11y-fab {
        left: max(0.75rem, env(safe-area-inset-left));
        bottom: max(0.75rem, env(safe-area-inset-bottom));
    }
    .back-to-top {
        right: max(0.75rem, env(safe-area-inset-right));
        bottom: max(4.25rem, calc(4.25rem + env(safe-area-inset-bottom, 0px)));
    }
    body:has(#cmsLiveChat) .back-to-top {
        bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
    }
    .cms-lc-launcher {
        right: max(0.75rem, env(safe-area-inset-right));
        bottom: max(0.75rem, env(safe-area-inset-bottom));
    }
}

/* Live chat panel: dialog semantics helpers */
.cms-lc-panel:not([hidden]) {
    outline: none;
}
.cms-lc-panel[aria-modal="true"] {
    z-index: 1082;
}

/* Offline bubble remains readable outside a11y filter shell */
html[data-a11y-mode="high-contrast"] .cms-lc-launcher--offline,
html[data-a11y-mode="contrast"] .cms-lc-launcher--offline {
    background: #4b5563;
    color: #fff;
    border: 2px solid #fff;
}
html[data-a11y-mode="high-contrast"] .cms-lc-header--offline,
html[data-a11y-mode="contrast"] .cms-lc-header--offline {
    background: #111;
    color: #fff;
}
html[data-a11y-mode="high-contrast"] .cms-lc-offline-banner,
html[data-a11y-mode="contrast"] .cms-lc-offline-banner {
    background: #111;
    border-color: #fff;
    color: #fff;
}
html[data-a11y-mode="high-contrast"] .cms-lc-offline-pill,
html[data-a11y-mode="contrast"] .cms-lc-offline-pill {
    background: #ffe566;
    color: #000;
}
html[data-a11y-mode="invert"] .cms-lc-launcher--offline {
    background: #9ca3af;
    color: #111;
}

/* --- Reduced motion: honor toolbar flag beyond animation kill-switch --- */
html[data-reduced-motion="1"] .carousel.slide,
html[data-reduced-motion="1"] [data-bs-ride="carousel"] {
    scroll-behavior: auto;
}
html[data-reduced-motion="1"] .marquee,
html[data-reduced-motion="1"] .logo-marquee,
html[data-reduced-motion="1"] [data-marquee],
html[data-reduced-motion="1"] .pb-te-rotator {
    animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
    html:not([data-reduced-motion="0"]) .marquee,
    html:not([data-reduced-motion="0"]) .logo-marquee,
    html:not([data-reduced-motion="0"]) [data-marquee] {
        animation: none !important;
    }
}

/* Carousel pause control */
.pb-carousel-pause,
.a11y-carousel-pause {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 3;
    min-width: var(--a11y-min-touch);
    min-height: var(--a11y-min-touch);
    border: 1px solid color-mix(in srgb, var(--theme-border, #e2e8f0) 80%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--theme-bg, #fff) 92%, transparent);
    color: var(--theme-text, #1a2332);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow, 0 4px 14px rgba(15, 23, 42, 0.08));
}
.pb-carousel-pause:focus-visible,
.a11y-carousel-pause:focus-visible {
    outline: 2px solid var(--theme-primary, #0d6e6e);
    outline-offset: 2px;
}
.pb-carousel--multi,
.block-slider .carousel,
.pb-product-carousel-shell {
    position: relative;
}

/* --- Font scale hardening --- */
html[data-font-scale="2"] .site-header .navbar,
html[data-font-scale="3"] .site-header .navbar {
    flex-wrap: wrap;
}
html[data-font-scale="2"] .mega-panel,
html[data-font-scale="3"] .mega-panel {
    max-height: min(70vh, 32rem);
    overflow: auto;
}
html[data-font-scale="2"] .thumb-card-tip-name,
html[data-font-scale="3"] .thumb-card-tip-name,
html[data-font-scale="2"] .product-card-title,
html[data-font-scale="3"] .product-card-title {
    overflow-wrap: anywhere;
}
html[data-font-scale="3"] .site-brand .brand-text {
    max-width: 12rem;
    overflow-wrap: anywhere;
}
html[data-font-scale="2"] .mobile-nav-drawer,
html[data-font-scale="3"] .mobile-nav-drawer {
    max-width: min(100vw - 1rem, 22rem);
}

/* Form error association helpers */
.cms-lc-error:not(:empty) {
    color: #b42318;
    font-size: 0.85rem;
    margin-top: 0.25rem;
}
.cms-lc-field input[aria-invalid="true"],
.cms-lc-field textarea[aria-invalid="true"] {
    border-color: #b42318;
}

/* Marketing banner + popup */
.cms-promo-banner {
    background: var(--promo-bg, #0d3b4c);
    color: var(--promo-text, #fff);
    font-size: 0.95rem;
}
.cms-promo-banner-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 0.65rem 0;
}
.cms-promo-banner-text { flex: 1 1 12rem; }
.cms-promo-banner-link {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
}
.cms-promo-banner-close {
    border: 0;
    background: transparent;
    color: inherit;
    padding: 0.25rem 0.5rem;
    margin-left: auto;
}
.cms-marketing-popup {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.cms-marketing-popup[hidden] { display: none !important; }
.cms-marketing-popup-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}
.cms-marketing-popup-dialog {
    position: relative;
    z-index: 1;
    background: #fff;
    color: #1a1a1a;
    border-radius: 0.75rem;
    max-width: 28rem;
    width: 100%;
    padding: 1.5rem;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.2);
}
.cms-marketing-popup-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    border: 0;
    background: transparent;
    padding: 0.35rem;
}
body.cms-marketing-popup-open { overflow: hidden; }

.blog-card { color: inherit; transition: box-shadow .2s ease; }
.blog-card:hover { box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.08); }
.blog-card .card-img-top { aspect-ratio: 16/10; object-fit: cover; }
.blog-article-body .text-content { max-width: 46rem; }

/* --- WCAG 2.2 AA extras --- */
/* Focus not obscured: keep in-page targets clear of sticky chrome */
.theme-body :target,
.theme-body #main-content:focus,
.theme-body #main-content:focus-visible {
    scroll-margin-top: 5rem;
}

/* Visible link affordance in long-form content (not nav/buttons) */
.theme-body .site-main .text-content a:not(.btn):not(.page-link):not(.nav-link),
.theme-body .site-main .block-html a:not(.btn),
.theme-body .site-main .blog-article-body a:not(.btn) {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

/* Ensure disabled controls are not the only cue for state */
.theme-body .btn:disabled,
.theme-body .btn.disabled {
    opacity: 0.65;
}

/* Sticky footer / chat should not trap keyboard focus rings */
.theme-body .cms-lc-panel:focus-within,
.theme-body .a11y-panel:focus-within {
    outline: none;
}

@media (prefers-reduced-motion: reduce) {
    .theme-body .reveal,
    .theme-body .pb-steps-icon,
    .theme-body .pb-text-effect,
    .theme-body [data-sfx] {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
    }
}

/* Automated axe/Pa11y scans (?a11y_scan=1) — skip entrance fades that fake low contrast */
.theme-body.a11y-scan .reveal,
.theme-body.a11y-scan .slider-copy,
.theme-body.a11y-scan .slider-title,
.theme-body.a11y-scan .slider-text,
.theme-body.a11y-scan .slider-actions,
.theme-body.a11y-scan [data-sfx],
.theme-body.a11y-scan .pb-sfx-anim {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
}
.theme-body.a11y-scan .logo-grid-name,
.theme-body.a11y-scan .pb-brand-name,
.theme-body.a11y-scan .media-placeholder-inline {
    color: #0f172a !important;
}

/* --- Contrast hardening (axe WCAG2AA follow-ups) --- */
.theme-body .navbar .nav-link,
.theme-body .mega-trigger {
    color: #142033;
}
.theme-body .navbar .nav-link:hover,
.theme-body .navbar .nav-link:focus-visible,
.theme-body .mega-trigger:hover,
.theme-body .mega-trigger:focus-visible {
    color: #0a5555;
}
.theme-body .site-footer {
    color: #e8eef4;
}
.theme-body .footer-bottom,
.theme-body .footer-newsletter-hint {
    color: #c8d4e0;
}
.theme-body .cookie-consent-copy p {
    color: #e2e8f0;
}
.theme-body .cookie-consent-copy a {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.theme-body .cookie-consent-actions .btn-light {
    color: #12202e;
    background: #ffffff;
    border-color: #ffffff;
}
.theme-body .form-control,
.theme-body .form-select,
.theme-body .form-label {
    color: #142033;
}
.theme-body .form-control::placeholder {
    color: #5b6b7c;
    opacity: 1;
}

/* --- AA contrast: page-builder / sticky header / muted labels --- */
.theme-body .site-header {
    background: var(--theme-bg, #ffffff) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.theme-body .navbar .nav-link,
.theme-body .mega-trigger,
.theme-body .navbar .nav-link span {
    color: #0f172a !important;
}
.theme-body .navbar .nav-link:hover,
.theme-body .navbar .nav-link:focus-visible,
.theme-body .mega-trigger:hover,
.theme-body .mega-trigger:focus-visible {
    color: #0a5555 !important;
}
.theme-body .site-footer {
    background: #13202e !important;
    color: #f1f5f9 !important;
}
.theme-body .site-footer a,
.theme-body .footer-brand,
.theme-body .footer-title {
    color: #ffffff !important;
}
.theme-body .footer-bottom,
.theme-body .footer-newsletter-hint,
.theme-body .footer-copyright,
.theme-body .site-footer small {
    color: #dbe4ee !important;
}
.theme-body .footer-newsletter-btn {
    color: #ffffff !important;
    background-color: transparent !important;
    border-color: rgba(255, 255, 255, 0.55) !important;
}
.theme-body .footer-newsletter-btn:hover {
    color: #13202e !important;
    background-color: #ffffff !important;
    border-color: #ffffff !important;
}
.theme-body .footer-newsletter-btn:focus,
.theme-body .footer-newsletter-btn:focus-visible,
.theme-body .footer-newsletter-btn:active,
.theme-body .footer-newsletter-btn.active {
    color: #ffffff !important;
    background-color: transparent !important;
    border-color: rgba(255, 255, 255, 0.55) !important;
    box-shadow: none !important;
}
.theme-body .footer-newsletter-btn:hover:focus,
.theme-body .footer-newsletter-btn:hover:focus-visible,
.theme-body .footer-newsletter-btn:hover:active {
    color: #13202e !important;
    background-color: #ffffff !important;
    border-color: #ffffff !important;
}
.theme-body .footer-whatsapp-btn {
    color: #ffffff !important;
    background-color: #25d366 !important;
    border-color: #25d366 !important;
    text-decoration: none !important;
}
.theme-body .footer-whatsapp-btn:hover,
.theme-body .footer-whatsapp-btn:active {
    color: #128c7e !important;
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    text-decoration: none !important;
}
.theme-body .footer-whatsapp-btn:focus,
.theme-body .footer-whatsapp-btn:focus-visible {
    color: #ffffff !important;
    background-color: #25d366 !important;
    border-color: #25d366 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
.theme-body .footer-whatsapp-btn:hover:focus,
.theme-body .footer-whatsapp-btn:hover:focus-visible,
.theme-body .footer-whatsapp-btn:active:focus {
    color: #128c7e !important;
    background-color: #ffffff !important;
    border-color: #ffffff !important;
}
.theme-body .cookie-consent-banner,
.theme-body #cookieConsentBanner {
    background: #0f172a !important;
    color: #f8fafc !important;
}
.theme-body .cookie-consent-copy,
.theme-body .cookie-consent-copy strong,
.theme-body .cookie-consent-copy p,
.theme-body #cookieConsentBanner p,
.theme-body #cookieConsentBanner a {
    color: #f8fafc !important;
}
.theme-body #cookieConsentBanner .btn-light {
    color: #0f172a !important;
    background: #ffffff !important;
    border-color: #ffffff !important;
}
.theme-body #cookieConsentBanner .btn-accent,
.theme-body #cookieConsentBanner [data-consent="all"] {
    background: #0d6e6e !important;
    border-color: #0d6e6e !important;
    color: #ffffff !important;
}
.theme-body .block-section-intro,
.theme-body .pb-block .text-muted,
.theme-body .stat-card-label {
    color: var(--pb-section-intro-color, #334155);
}
.theme-body .slider-copy,
.theme-body .pb-slider .slider-copy,
.theme-body .block-slider .slider-copy,
.theme-body .slider-slide .slider-copy,
body.theme-high-tech-ecommerce .slider-slide .slider-copy {
    /* Solid plate — rgba over photos is unreliable for axe sampling */
    background: #0b1220 !important;
    padding: 0.95rem 1.25rem;
    border-radius: 0.5rem;
    max-width: 42rem;
}
.theme-body .slider-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(0, 0, 0, 0.62) !important;
}
.theme-body .slider-slide .slider-copy,
.theme-body .slider-slide .slider-actions {
    position: relative;
    z-index: 2;
}
.theme-body .slider-title,
.theme-body .slider-text,
body.theme-high-tech-ecommerce .slider-title,
body.theme-high-tech-ecommerce .slider-text {
    color: #ffffff !important;
    text-shadow: none;
}
.theme-body .slider-actions .btn,
.theme-body .slider-actions .btn-accent,
.theme-body .slider-actions .btn-outline-light,
.theme-body .slider-actions a.btn,
body.theme-body.buttons-gradient .slider-actions .btn-accent,
body.theme-body.buttons-gradient .slider-actions .btn-primary,
body.theme-high-tech-ecommerce.buttons-gradient .slider-actions .btn-accent,
body.theme-high-tech-ecommerce.buttons-gradient .slider-actions a.btn {
    color: #ffffff !important;
    background: #0d6e6e !important;
    background-image: none !important;
    border-color: #0d6e6e !important;
    text-shadow: none;
}
.theme-body .slider-actions .btn-outline-light,
body.theme-body.buttons-gradient .slider-actions .btn-outline-light {
    background: #102a43 !important;
    background-image: none !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
}
.theme-body .site-main .split-feature-copy a.btn-accent,
.theme-body .site-main .block-split-feature .btn-accent,
.theme-body.buttons-gradient .site-main .split-feature-copy a.btn-accent,
body.theme-high-tech-ecommerce.buttons-gradient .site-main .block-split-feature .btn-accent {
    color: #ffffff !important;
    background: #0d6e6e !important;
    background-image: none !important;
    border-color: #0d6e6e !important;
}
.theme-body .pb-brand-name,
.theme-body .pb-brand-item span,
.theme-body .pb-brand-link span,
.theme-body .pb-brand-item {
    color: #0f172a !important;
}
.theme-body .pb-brand-link {
    background: #ffffff !important;
}
/* Page-builder section copy on light canvases */
.theme-body .site-main {
    --pb-section-heading-color: #0f172a;
    --pb-section-intro-color: #334155;
}
.theme-body .site-main .block-section-title {
    color: var(--pb-section-heading-color, #0f172a);
}
.theme-body .site-main .block-section-intro {
    color: var(--pb-section-intro-color, #334155);
}
.theme-body .site-main .split-feature-copy,
.theme-body .site-main .split-feature-copy h2,
.theme-body .site-main .split-feature-copy p,
.theme-body .site-main .split-feature-copy li,
.theme-body .site-main .split-feature-copy a,
.theme-body .site-main .stats-grid .stat-card-label,
.theme-body .site-main .stats-grid .stat-card-value,
.theme-body .site-main .pb-steps li span {
    color: #0f172a !important;
}
/* Primary/secondary CTA panels are dark — keep light text (do not force dark). */
.theme-body .site-main .cta-panel,
.theme-body .site-main .cta-panel--primary,
.theme-body .site-main .cta-panel--secondary {
    color: #ffffff !important;
    background: var(--cta-bg, #0b1f3a) !important;
}
.theme-body .site-main .cta-panel .cta-heading,
.theme-body .site-main .cta-panel .cta-text,
.theme-body .site-main .cta-panel .cta-eyebrow,
.theme-body .site-main .cta-panel h2,
.theme-body .site-main .cta-panel p {
    color: #ffffff !important;
    opacity: 1 !important;
}
.theme-body .site-main .cta-panel .btn-accent,
.theme-body .site-main .cta-panel .btn-lg.btn-accent {
    color: #ffffff !important;
    background: var(--cta-accent, #0d6e6e) !important;
    background-image: none !important;
    border-color: var(--cta-accent, #0d6e6e) !important;
}
.theme-body .site-main .cta-panel .btn-outline-light {
    color: #ffffff !important;
    border-color: #ffffff !important;
    background: transparent !important;
}
.theme-body .site-main .cta-panel--soft,
.theme-body .site-main .cta-panel--outline {
    color: #0f172a !important;
    background: var(--cta-bg, #f8fafc) !important;
}
.theme-body .site-main .cta-panel--soft .cta-heading,
.theme-body .site-main .cta-panel--soft .cta-text,
.theme-body .site-main .cta-panel--soft .cta-eyebrow,
.theme-body .site-main .cta-panel--soft h2,
.theme-body .site-main .cta-panel--soft p,
.theme-body .site-main .cta-panel--outline .cta-heading,
.theme-body .site-main .cta-panel--outline .cta-text,
.theme-body .site-main .cta-panel--outline .cta-eyebrow,
.theme-body .site-main .cta-panel--outline h2,
.theme-body .site-main .cta-panel--outline p {
    color: #0f172a !important;
}
.theme-body .form-control,
.theme-body .form-select,
.theme-body .form-label,
.theme-body .contact-form .form-control,
.theme-body .contact-form .form-select,
.theme-body .contact-form .form-label,
.theme-body #location_id,
.theme-body #message,
.theme-body .form-select option {
    color: #0f172a !important;
    background-color: #ffffff !important;
    -webkit-text-fill-color: #0f172a !important;
    caret-color: #0f172a;
    opacity: 1 !important;
}
.theme-body .btn-primary,
.theme-body #contactFormSubmit,
.theme-body .contact-form-submit,
.theme-body .contact-form .btn-accent,
.theme-body.buttons-gradient #contactFormSubmit,
.theme-body.buttons-gradient .contact-form-submit,
.theme-body.buttons-gradient .contact-form .btn-accent,
.theme-body.buttons-gradient #cookieConsentBanner .btn-accent,
.theme-body.buttons-gradient #cookieConsentBanner [data-consent="all"] {
    color: #ffffff !important;
    background: #0d6e6e !important;
    background-image: none !important;
    border-color: #0d6e6e !important;
}
.theme-body .btn-primary span,
.theme-body #contactFormSubmit span,
.theme-body .contact-form-submit-text {
    color: #ffffff !important;
}

/* --- Keyboard polish --- */
.theme-body .skip-link:focus,
.theme-body .skip-link:focus-visible {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 10000;
    padding: 0.65rem 1rem;
    background: #0d6e6e;
    color: #fff;
    border-radius: 0.35rem;
    outline: 3px solid #fff;
    outline-offset: 2px;
}
.theme-body .enquiry-option-chip:focus-visible,
.theme-body .product-gallery-thumb:focus-visible,
.theme-body .form-check-input:focus-visible,
.theme-body summary:focus-visible,
.theme-body .accordion-button:focus-visible {
    outline: 2px solid var(--theme-primary, #0d6e6e);
    outline-offset: 2px;
}
.theme-body .family-nav-count,
.theme-body .catalog-filters .badge,
.theme-body .code-example-caption,
.theme-body [data-pb-copy-code],
.theme-body .table thead th {
    color: #0f172a !important;
}
.theme-body .table thead th {
    background-color: #e2e8f0 !important;
}
.theme-body [data-pb-copy-code] {
    background: #0d6e6e !important;
    color: #ffffff !important;
    border-color: #0d6e6e !important;
}
.theme-body .code-example-caption {
    background: transparent !important;
}
.theme-body .mega-dropdown:focus-within > .mega-panel {
    /* Ensure keyboard users see open mega content */
    visibility: visible;
}

/* --- Touch targets (WCAG 2.5.8 / Lighthouse target-size ≥ 24×24) --- */
.theme-body .skip-link,
a.skip-link {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 0.75rem 1.25rem !important;
    box-sizing: border-box !important;
    line-height: 1.25 !important;
    display: inline-flex !important;
    align-items: center !important;
}
.theme-body .navbar .nav-link,
.theme-body .mega-trigger,
.theme-body .navbar-nav .nav-link {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding-top: 0.65rem !important;
    padding-bottom: 0.65rem !important;
    box-sizing: border-box !important;
}
.theme-body .mega-view-all,
.theme-body .mega-col-title,
.theme-body .mega-sublink,
.theme-body .mega-menu a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
    box-sizing: border-box !important;
}
.theme-body .mega-col-title {
    margin-bottom: 0.15rem;
}
.theme-body .mega-sublist > li + li {
    margin-top: 0.15rem;
}
/* Footer / utility text links */
.theme-body .site-footer a:not(.btn),
.theme-body a.small {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

