/* TAPS Visual Design V11.8 */
:root {
    --taps-color-primary: #00d6ff;
    --taps-color-secondary: #2b6cff;
    --taps-color-accent: #f5b94b;
    --taps-color-ink: #eef7ff;
    --taps-color-muted: #9fb4c8;
    --taps-color-bg-dark: #06101d;
    --taps-color-bg-light: #f5f8fb;
    --taps-header-opacity: .78;
    --taps-header-glow-strength: .34;
    --taps-hero-font: var(--taps-font-heading);
    --taps-hero-weight: 800;
    --taps-hero-size: clamp(3.2rem, 6vw, 7.4rem);
    --taps-hero-letter-spacing: -0.035em;
    --taps-active-underline-height: 2px;
}
html[data-theme="dark"], body.theme-dark {
    background: radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--taps-color-primary) 12%, transparent), transparent 32%),
        linear-gradient(135deg, var(--taps-color-bg-dark), #020712 72%) !important;
    color: var(--taps-color-ink);
}
html[data-theme="light"], body.theme-light {
    background: radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--taps-color-primary) 8%, transparent), transparent 30%),
        linear-gradient(135deg, var(--taps-color-bg-light), #ffffff 72%) !important;
}
html[data-theme="dark"] .site-header, html[data-theme="dark"] .top-header, html[data-theme="dark"] .main-header, html[data-theme="dark"] .header, html[data-theme="dark"] .taps-header,
body.theme-dark .site-header, body.theme-dark .top-header, body.theme-dark .main-header, body.theme-dark .header, body.theme-dark .taps-header {
    background: rgba(7, 16, 28, var(--taps-header-opacity)) !important;
    border-bottom-color: color-mix(in srgb, var(--taps-color-primary) 24%, transparent) !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .34), 0 0 calc(42px * var(--taps-header-glow-strength)) color-mix(in srgb, var(--taps-color-primary) 38%, transparent) !important;
}
html[data-theme="light"] .site-header, html[data-theme="light"] .top-header, html[data-theme="light"] .main-header, html[data-theme="light"] .header, html[data-theme="light"] .taps-header,
body.theme-light .site-header, body.theme-light .top-header, body.theme-light .main-header, body.theme-light .header, body.theme-light .taps-header {
    background: rgba(255, 255, 255, var(--taps-header-opacity)) !important;
    border-bottom-color: color-mix(in srgb, var(--taps-color-primary) 14%, transparent) !important;
    box-shadow: 0 16px 34px rgba(8, 20, 36, .12), 0 0 calc(32px * var(--taps-header-glow-strength)) color-mix(in srgb, var(--taps-color-primary) 20%, transparent) !important;
}
.site-brand:hover, .site-logo:hover, .header-brand:hover, .brand-box:hover, .brand-logo-wrap:hover, .header-logo-box:hover, .navbar-brand-wrap:hover, .top-logo:hover, .logo-box:hover, .taps-brand-box:hover {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--taps-color-primary) 20%, transparent) inset, 0 0 calc(44px * var(--taps-header-glow-strength)) color-mix(in srgb, var(--taps-color-primary) 48%, transparent), 0 18px 44px rgba(0,0,0,.28) !important;
}
.hero-title, .site-hero-title, .taps-hero-title, .hero h1, .site-hero h1, .main-hero h1, .taps-hero h1, .home-hero h1, [class*="hero"] h1 {
    font-family: var(--taps-hero-font) !important;
    font-weight: var(--taps-hero-weight) !important;
    font-size: var(--taps-hero-size) !important;
    letter-spacing: var(--taps-hero-letter-spacing) !important;
    line-height: .92 !important;
}
a, .link, .text-accent, .hero-kicker, .site-hero-kicker, .section-kicker, .stat-value, .service-icon, .card-icon { color: var(--taps-color-primary); }
.btn-primary, .button-primary, .hero-button, .cta-primary, .quick-action.is-primary, button[type="submit"] {
    background: linear-gradient(135deg, var(--taps-color-primary), var(--taps-color-secondary)) !important;
    border-color: color-mix(in srgb, var(--taps-color-primary) 68%, #ffffff 0%) !important;
    box-shadow: 0 12px 30px color-mix(in srgb, var(--taps-color-primary) 24%, transparent) !important;
}
.header-nav a, .main-nav a, .top-nav a, .navbar a, .site-menu a, .drawer-menu a, .side-menu a, .mobile-menu a, .menu-link, nav a { position: relative; }
.header-nav a::after, .main-nav a::after, .top-nav a::after, .navbar a::after, .site-menu a::after, .drawer-menu a::after, .side-menu a::after, .mobile-menu a::after, .menu-link::after, nav a::after {
    content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: -8px;
    height: var(--taps-active-underline-height);
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, var(--taps-color-primary), var(--taps-color-accent), transparent);
    opacity: 0;
    box-shadow: 0 0 12px color-mix(in srgb, var(--taps-color-primary) 55%, transparent), 0 0 22px color-mix(in srgb, var(--taps-color-accent) 26%, transparent);
    transition: left .28s cubic-bezier(.2,.8,.2,1), right .28s cubic-bezier(.2,.8,.2,1), opacity .28s ease, transform .28s ease;
    transform: translateY(2px);
    pointer-events: none;
}
.header-nav a:hover::after, .main-nav a:hover::after, .top-nav a:hover::after, .navbar a:hover::after, .site-menu a:hover::after, .drawer-menu a:hover::after, .side-menu a:hover::after, .mobile-menu a:hover::after, .menu-link:hover::after, nav a:hover::after,
.header-nav a.active::after, .main-nav a.active::after, .top-nav a.active::after, .navbar a.active::after, .site-menu a.active::after, .drawer-menu a.active::after, .side-menu a.active::after, .mobile-menu a.active::after, .menu-link.active::after, nav a.active::after,
.header-nav a[aria-current="page"]::after, .main-nav a[aria-current="page"]::after, .top-nav a[aria-current="page"]::after, .navbar a[aria-current="page"]::after, .site-menu a[aria-current="page"]::after, .drawer-menu a[aria-current="page"]::after, .side-menu a[aria-current="page"]::after, .mobile-menu a[aria-current="page"]::after, nav a[aria-current="page"]::after {
    left: 12%;
    right: 12%;
    opacity: 1;
    transform: translateY(0);
}
.rail-menu a.active, .category-menu a.active, .drawer-menu a.active, .side-menu a.active, [data-section].active, [data-menu-section].active {
    color: var(--taps-color-primary) !important;
    text-shadow: 0 0 16px color-mix(in srgb, var(--taps-color-primary) 28%, transparent);
}
@media (max-width: 768px) { :root { --taps-hero-size: clamp(2.65rem, 13vw, 4.4rem); } }