:root {
    --dark: #102a23;
    --green: #1f7a4d;
    --gold: #f2b84b;
    --text: #111827;
}

body {
    font-family: Inter, Arial, sans-serif;
    color: var(--text);
}

.site-header {
    background: var(--dark);
}

.hero-section {
    background: radial-gradient(circle at top right, rgba(242,184,75,.38), transparent 35%), linear-gradient(135deg, #102a23, #1f7a4d);
    color: white;
    padding: 110px 0;
}

.hero-section h1 {
    font-size: clamp(2.4rem, 5vw, 4.5rem);
    font-weight: 800;
    line-height: 1.05;
}

.hero-section .lead {
    color: #ecfdf5;
}

.btn-primary {
    background: var(--green);
    border-color: var(--green);
}

.btn-primary:hover {
    background: #16623d;
    border-color: #16623d;
}

.hero-image {
    border-radius: 2rem;
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
}

.section-padding {
    padding: 90px 0;
}

.section-heading {
    max-width: 720px;
    margin: 0 auto 45px;
    text-align: center;
}

.section-heading h2 {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
}

.service-card,
.package-card,
.contact-card,
.auth-card {
    background: white;
    border-radius: 1.5rem;
    padding: 2rem;
    box-shadow: 0 16px 45px rgba(15,23,42,.08);
    border: 1px solid #e5e7eb;
}

.auth-card {
    max-width: 760px;
}

.service-icon {
    font-size: 2.5rem;
    color: var(--green);
    margin-bottom: 1rem;
    display: inline-block;
}

.package-card.featured {
    border: 2px solid var(--gold);
}

.popular-badge {
    background: var(--gold);
    color: #111827;
    padding: .35rem .75rem;
    border-radius: 999px;
    font-size: .85rem;
    font-weight: 700;
}

.price {
    font-size: 2rem;
    font-weight: 800;
    color: var(--green);
}

.contact-section,
.auth-section {
    background: #f8fafc;
}

.form-control,
.form-select {
    border-radius: .9rem;
    padding: .8rem 1rem;
}

.footer {
    background: #071b16;
    color: #d1fae5;
}


.quote-card {
    max-width: 980px;
}

.form-section-title {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--green);
}

.quote-checks .form-check {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 1rem 1rem 1rem 2.75rem;
}


.section-padding-sm {
    padding: 55px 0;
}

.quote-cta-box {
    background: #fff7ed;
}

.quote-cta-box h2 {
    font-weight: 800;
    color: var(--dark);
}

.quote-cta-box p {
    color: #64748b;
    max-width: 760px;
    margin: 0 auto 1.5rem;
}
