/* 1. Google Fonts import */
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@500;600;700;800&family=Karla:wght@300;400;500;600;700&display=swap');

/* 2. Base reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Karla', sans-serif;
    overflow-x: hidden;
    color: #1e1b4b;
    background-color: #f8fafc;
}
h1, h2, h3, .font-display { font-family: 'Jost', sans-serif; letter-spacing: -0.01em; }

/* Brand color helpers */
.text-navy { color: #312e81; }
.bg-navy   { background-color: #312e81; }
.bg-navy-deep { background-color: #1e1b4b; }
.text-volt { color: #a16207; }
.bg-volt   { background-color: #eab308; }
.border-navy { border-color: #312e81; }

/* 3. Sticky nav — scroll behavior */
#site-header {
    transition: background-color .3s ease, box-shadow .3s ease;
    background-color: rgba(248, 250, 252, 0.7);
    backdrop-filter: blur(9px);
}
#site-header.nav-scrolled {
    background-color: rgba(248, 250, 252, 0.97);
    box-shadow: 0 8px 30px -14px rgba(49, 46, 129, 0.32);
}

/* 4. Custom utility classes */
.cta-volt {
    background: linear-gradient(135deg, #facc15 0%, #eab308 55%, #ca8a04 100%);
    color: #1e1b4b;
    font-weight: 700;
    box-shadow: 0 14px 30px -12px rgba(202, 138, 4, 0.55);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.cta-volt:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -12px rgba(202, 138, 4, 0.68); filter: brightness(1.03); }

.cta-outline {
    border: 2px solid #312e81;
    color: #312e81;
    font-weight: 600;
    transition: background-color .18s ease, color .18s ease;
}
.cta-outline:hover { background-color: #312e81; color: #fff; }

.cta-light {
    border: 2px solid rgba(255,255,255,0.7);
    color: #ffffff;
    font-weight: 600;
    transition: background-color .18s ease, color .18s ease;
}
.cta-light:hover { background-color: #ffffff; color: #312e81; }

/* Voltage badge card floating over hero image */
.hero-photo-frame { position: relative; }
.volt-badge {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1.25rem;
    box-shadow: 0 30px 60px -30px rgba(30, 27, 75, 0.45);
}

.service-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    transition: transform .2s ease, box-shadow .2s ease;
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 26px 48px -26px rgba(49, 46, 129, 0.3); }

.testimonial-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    box-shadow: 0 16px 40px -30px rgba(30, 27, 75, 0.35);
}

.feature-card {
    background: linear-gradient(180deg, #ffffff 0%, #f5f5ff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
}

.pill { background: #ede9fe; color: #4338ca; }

.accent-line { width: 64px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, #312e81, #eab308); }

.avatar-initial { background: linear-gradient(135deg, #312e81, #eab308); color: #fff; }

.step-num { font-family: 'Jost', sans-serif; background: #312e81; color: #ede9fe; }

.quote-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1.25rem;
    box-shadow: 0 34px 64px -30px rgba(30, 27, 75, 0.4);
}

/* Diagonal backdrop used on quote.html */
.hero-diagonal { position: relative; overflow: hidden; }
.hero-diagonal::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(115deg, #1e1b4b 0%, #1e1b4b 46%, transparent 46.5%);
    z-index: 0;
}

/* 5. Address hidden state */
.site-addr.hidden { display: none; }

/* 6. Prose styles */
.prose h2 { font-family: 'Jost', sans-serif; color: #1e1b4b; font-size: 1.6rem; font-weight: 800; margin: 2rem 0 .75rem; }
.prose h3 { font-family: 'Jost', sans-serif; color: #312e81; font-size: 1.2rem; font-weight: 700; margin: 1.25rem 0 .5rem; }
.prose p  { line-height: 1.85; margin-bottom: 1rem; color: #44427a; }
.prose ul { list-style: disc; padding-left: 1.4rem; margin-bottom: 1rem; }
.prose li { line-height: 1.8; margin-bottom: .4rem; color: #44427a; }

/* 7. Form inputs */
.form-input {
    width: 100%;
    padding: .8rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: .7rem;
    background: #ffffff;
    font-family: 'Karla', sans-serif;
    color: #1e1b4b;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.form-input:focus {
    outline: none;
    border-color: #eab308;
    box-shadow: 0 0 0 4px rgba(234, 179, 8, 0.18);
}

/* 8. prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; animation: none !important; }
}
