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

/* 2. Base reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Nunito Sans', sans-serif;
    overflow-x: hidden;
    color: #0b2545;
    background-color: #f4f7fa;
}
h1, h2, h3, .font-display { font-family: 'Barlow', sans-serif; letter-spacing: -0.01em; }

/* Brand color helpers */
.text-maritime { color: #0b2545; }
.bg-maritime   { background-color: #0b2545; }
.bg-maritime-deep { background-color: #071a33; }
.text-cargo  { color: #4d7c0f; }
.bg-cargo    { background-color: #84cc16; }
.border-maritime { border-color: #0b2545; }

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

/* 4. Custom utility classes */
.cta-cargo {
    background: linear-gradient(135deg, #a3e635 0%, #84cc16 55%, #4d7c0f 100%);
    color: #0b2545;
    font-weight: 700;
    box-shadow: 0 14px 30px -12px rgba(77, 124, 15, 0.5);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.cta-cargo:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -12px rgba(77, 124, 15, 0.62); filter: brightness(1.03); }

.cta-outline {
    border: 2px solid #0b2545;
    color: #0b2545;
    font-weight: 600;
    transition: background-color .18s ease, color .18s ease;
}
.cta-outline:hover { background-color: #0b2545; 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: #0b2545; }

/* Route-dot background pattern for hero */
.route-dots {
    background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.16) 1.5px, transparent 0);
    background-size: 28px 28px;
}

.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(11, 37, 69, 0.3); }

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

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

.pill { background: #ecfccb; color: #3f6212; }

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

.avatar-initial { background: linear-gradient(135deg, #0b2545, #84cc16); color: #fff; }

.step-num { font-family: 'Barlow', sans-serif; background: #0b2545; color: #ecfccb; }

.quote-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1.25rem;
    box-shadow: 0 34px 64px -30px rgba(11, 37, 69, 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, #071a33 0%, #071a33 46%, transparent 46.5%);
    z-index: 0;
}

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

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

/* 7. Form inputs */
.form-input {
    width: 100%;
    padding: .8rem 1rem;
    border: 1px solid #cbd5e1;
    border-radius: .7rem;
    background: #ffffff;
    font-family: 'Nunito Sans', sans-serif;
    color: #0b2545;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.form-input:focus {
    outline: none;
    border-color: #84cc16;
    box-shadow: 0 0 0 4px rgba(132, 204, 22, 0.18);
}

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