:root {
    --font-sans: "Rubik", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --brand: #1E4ED8;
    --brand-hover: #1B46C4;
    --ink: #0F172A;
    --body: #1F2937;
    --muted: #475569;
    --line: #CBD5E1;
    --surface: #FFFFFF;
    --surface-soft: #F1F5F9;
    --canvas: #F6F7F9;
}
body {
    font-family: var(--font-sans);
    overflow-x: hidden;
    background: var(--canvas);
    color: var(--body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.glass-card {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}
.kv-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.25rem 1rem;
}
@media (min-width: 640px) {
    .kv-row {
        grid-template-columns: 150px 1fr;
    }
}
.kv-row span:last-child {
    min-width: 0;
    word-break: break-word;
}
.dd.is-open .soft-elev {
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08);
}
.bg-canvas {
    background: var(--canvas) !important;
}
.bg-surface {
    background: var(--surface) !important;
}
.bg-surface-soft {
    background: var(--surface-soft) !important;
}
.text-ink {
    color: var(--ink) !important;
}
.text-body {
    color: var(--body) !important;
}
.text-muted {
    color: var(--muted) !important;
}
.border-line {
    border-color: var(--line) !important;
}
.btn-primary {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
}
.btn-primary:hover {
    background: var(--brand-hover);
    border-color: var(--brand-hover);
}
.btn-secondary {
    background: var(--surface);
    border-color: var(--line);
    color: var(--body);
}
.btn-secondary:hover {
    border-color: var(--brand);
    color: var(--brand);
}
.hero-dark {
    background: radial-gradient(1100px 420px at 84% 10%, rgba(30, 78, 216, 0.18), transparent 56%), linear-gradient(180deg, #0d1e40 0%, #0f2244 52%, #0b1a38 100%);
    color: #e2e8f0;
}
.specialty-hero-inner {
    padding-bottom: 1.9rem;
}
.reveal {
    opacity: 0;
    transform: translateY(10px);
    animation: fade-up 520ms ease-out forwards;
}
.reveal-1 {
    animation-delay: 60ms;
}
.reveal-2 {
    animation-delay: 140ms;
}
.reveal-3 {
    animation-delay: 220ms;
}
.reveal-4 {
    animation-delay: 300ms;
}
@keyframes fade-up {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        animation: none;
    }
}


.engineering-intro-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}
@media (min-width: 1024px) {
    .engineering-intro-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
        gap: 2.5rem;
        align-items: start;
    }
}

.contract-intro-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}
@media (min-width: 1024px) {
    .contract-intro-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
        gap: 2.5rem;
        align-items: start;
    }
}
@media (max-width: 1023px) {
    .contract-hero-inner {
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }
}
p { text-wrap: pretty; }

/* Page-specific hero accents */
.hero-dark--engineering {
    background: radial-gradient(1100px 420px at 84% 10%, rgba(45, 212, 191, 0.16), transparent 56%), linear-gradient(180deg, #0d1e40 0%, #0f2244 52%, #0b1a38 100%);
}
.hero-dark--contract {
    background: radial-gradient(1100px 420px at 84% 10%, rgba(251, 191, 36, 0.16), transparent 56%), linear-gradient(180deg, #0d1e40 0%, #0f2244 52%, #0b1a38 100%);
}
.hero-dark--fluxgate {
    background: radial-gradient(1100px 420px at 84% 10%, rgba(167, 139, 250, 0.16), transparent 56%), linear-gradient(180deg, #0d1e40 0%, #0f2244 52%, #0b1a38 100%);
}
.hero-dark--bobbin {
    background: radial-gradient(1100px 420px at 84% 10%, rgba(251, 113, 133, 0.16), transparent 56%), linear-gradient(180deg, #0d1e40 0%, #0f2244 52%, #0b1a38 100%);
}

/* Engineering hub hero */
.eng-hero-breadcrumb {
    padding-top: 1.25rem;
}
.eng-hero-inner,
.hero-content-inner.eng-hero-inner {
    padding-top: 1.25rem !important;
}
.eng-hero-title {
    font-size: clamp(2.55rem, 10.5vw, 3.75rem);
    font-weight: 300;
    line-height: 0.93;
    letter-spacing: -0.02em;
    color: #fff;
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.4);
    margin: 0;
}
.eng-hero-accent {
    color: #60a5fa;
    -webkit-text-fill-color: #60a5fa;
}
.eng-hero-accent--teal {
    color: #2dd4bf;
    -webkit-text-fill-color: #2dd4bf;
}
.eng-hero-accent--amber {
    color: #fbbf24;
    -webkit-text-fill-color: #fbbf24;
}
.eng-hero-accent--violet {
    color: #a78bfa;
    -webkit-text-fill-color: #a78bfa;
}
.eng-hero-accent--rose {
    color: #fb7185;
    -webkit-text-fill-color: #fb7185;
}
.eng-made-in-usa {
    color: rgba(148, 163, 184, 0.85);
}
.eng-hero-ctas a {
    min-height: 44px;
    box-sizing: border-box;
}
@media (min-width: 640px) {
    .eng-hero-breadcrumb {
        padding-top: 2rem;
    }
    .eng-hero-inner,
    .hero-content-inner.eng-hero-inner {
        padding-top: 2rem !important;
    }
}
.hub-mobile-hero-strip {
    overflow: hidden;
    line-height: 0;
    width: 100%;
    max-width: 100%;
}
.hub-mobile-hero-strip--tall {
    height: 320px;
}
.hub-mobile-hero-strip img {
    display: block;
    width: 100%;
    max-width: 100%;
    transform: none !important;
}
.hub-mobile-hero-strip--tall img {
    height: 320px;
    object-fit: cover;
}
@media (max-width: 639px) {
    .hero-mobile-bump,
    .hero-mobile-bump-long,
    .hero-mobile-bump-xlong {
        min-height: auto !important;
    }
    .eng-hero-title {
        font-size: 2.35rem !important;
        line-height: 1.02 !important;
    }
    .eng-hero-inner .reveal,
    .hero-content-inner .reveal {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
}
