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

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

/* Brand color helpers */
.text-steel { color: #334155; }
.bg-steel   { background-color: #334155; }
.bg-steel-deep { background-color: #1e293b; }
.text-signal { color: #c2410c; }
.bg-signal { background-color: #ea580c; }
.border-steel { border-color: #334155; }

/* 3. Sticky nav — scroll behavior */
#site-header {
    transition: background-color .3s ease, box-shadow .3s ease;
    background-color: rgba(245, 246, 248, 0.7);
    backdrop-filter: blur(9px);
}
#site-header.nav-scrolled {
    background-color: rgba(245, 246, 248, 0.97);
    box-shadow: 0 8px 30px -14px rgba(51, 65, 85, 0.3);
}

/* 4. Custom utility classes */
.cta-signal {
    background: linear-gradient(135deg, #fb923c 0%, #ea580c 55%, #c2410c 100%);
    color: #ffffff;
    font-weight: 700;
    box-shadow: 0 14px 30px -12px rgba(194, 65, 12, 0.55);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.cta-signal:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -12px rgba(194, 65, 12, 0.68); filter: brightness(1.04); }

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

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

/* Embedded quote-card */
.quote-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1.25rem;
    box-shadow: 0 34px 64px -30px rgba(15, 23, 42, 0.35);
}

.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(51, 65, 85, 0.28); }

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

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

.pill { background: #e2e8f0; color: #334155; }

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

.avatar-initial { background: linear-gradient(135deg, #334155, #ea580c); color: #fff; }

.step-num { font-family: 'Manrope', sans-serif; background: #334155; color: #f1f5f9; }

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

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

/* 7. Form inputs */
.form-input {
    width: 100%;
    padding: .8rem 1rem;
    border: 1px solid #cbd5e1;
    border-radius: .7rem;
    background: #ffffff;
    font-family: 'Source Sans 3', sans-serif;
    color: #1e293b;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.form-input:focus {
    outline: none;
    border-color: #ea580c;
    box-shadow: 0 0 0 4px rgba(234, 88, 12, 0.13);
}

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