:root {
    --forest: #1a3a2f;
    --forest-light: #245242;
    --sage: #7d9a8c;
    --sage-light: #a8c5b8;
    --cream: #f9f7f4;
    --cream-dark: #f0ebe4;
    --sand: #d4c5b5;
    --terracotta: #c17f59;
    --text: #2b2f2d;
    --muted: #6b726f;
}
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { font-family: 'DM Sans', sans-serif; background: var(--cream); color: var(--text); }
h1, h2, h3, h4, .serif { font-family: 'Playfair Display', Georgia, serif; color: var(--forest); font-weight: 600; }
a { color: var(--forest-light); }

/* Top bar + nav */
.topbar { background: var(--forest-light); color: #dfe9e4; font-size: .85rem; }
.topbar a { color: #dfe9e4; text-decoration: none; }
.topbar a:hover { color: #fff; }
.topbar .bi { margin-right: .35rem; opacity: .8; }
.site-nav { background: var(--forest); position: sticky; top: 0; z-index: 1030; box-shadow: 0 2px 12px rgba(0,0,0,.15); }
.site-nav .navbar-brand { color: #fff; font-family: 'Playfair Display', serif; font-weight: 600; letter-spacing: .02em; display: flex; align-items: center; gap: .75rem; }
.site-nav .navbar-brand img { height: 44px; width: auto; background: #fff; border-radius: 8px; padding: 2px; }
.site-nav .nav-link { color: #d6e3dc !important; font-weight: 500; padding: .6rem .75rem !important; white-space: nowrap; border-radius: 8px; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: #fff !important; background: rgba(255,255,255,.1); }
.site-nav .dropdown-menu { border: 0; border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,.2); padding: .5rem; }
.site-nav .dropdown-item { border-radius: 8px; padding: .5rem .9rem; color: var(--forest); }
.site-nav .dropdown-item:hover, .site-nav .dropdown-item.active { background: var(--cream-dark); color: var(--forest); }
@media (min-width: 992px) { .site-nav .dropdown:hover > .dropdown-menu { display: block; } }
.btn-shop { white-space: nowrap; background: var(--terracotta); border-color: var(--terracotta); color: #fff; font-weight: 600; border-radius: 10px; }
.btn-shop:hover { background: #a96a45; border-color: #a96a45; color: #fff; }
.navbar-toggler { border-color: rgba(255,255,255,.4); }
.navbar-toggler-icon { filter: invert(1); }

/* Hero (home) */
.hero {
    position: relative; overflow: hidden; color: #fff;
    background: linear-gradient(135deg, rgba(26,58,47,.88) 0%, rgba(36,82,66,.72) 100%), var(--hero-img) center/cover no-repeat;
    padding: 7rem 0 6.5rem;
}
.hero h1 { color: #fff; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.1; margin-bottom: 1.5rem; }
.btn-forest { background: var(--forest); border-color: var(--forest); color: #fff; font-weight: 600; border-radius: 10px; padding: .75rem 1.5rem; }
.btn-forest:hover { background: var(--forest-light); border-color: var(--forest-light); color: #fff; }
.btn-outline-forest { border: 2px solid var(--forest); color: var(--forest); font-weight: 600; border-radius: 10px; padding: .7rem 1.5rem; background: transparent; }
.btn-outline-forest:hover { background: var(--forest); color: #fff; }
.btn-light-outline { border: 2px solid rgba(255,255,255,.8); color: #fff; font-weight: 600; border-radius: 10px; padding: .7rem 1.5rem; }
.btn-light-outline:hover { background: #fff; color: var(--forest); }
.btn-light-solid { background: #fff; color: var(--forest); font-weight: 600; border-radius: 10px; padding: .75rem 1.5rem; border: 2px solid #fff; }
.btn-light-solid:hover { background: var(--cream-dark); color: var(--forest); }

/* Inner page banner */
.page-banner {
    color: #fff; padding: 4.5rem 0 4rem;
    background: linear-gradient(135deg, rgba(26,58,47,.9) 0%, rgba(36,82,66,.75) 100%), var(--banner-img) center/cover no-repeat;
}
.page-banner h1 { color: #fff; font-size: clamp(2rem, 4vw, 3rem); margin: 0; }
.page-banner .crumbs { font-size: .9rem; opacity: .8; margin-bottom: .5rem; }
.page-banner .crumbs a { color: #fff; }

/* Sections */
section.block { padding: 4.5rem 0; }
.section-alt { background: var(--cream-dark); }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; color: var(--sage); }
.lead-muted { color: var(--muted); font-size: 1.15rem; }
.feature-card {
    background: #fff; border-radius: 16px; padding: 2rem; height: 100%;
    box-shadow: 0 4px 24px rgba(26,58,47,.07); transition: transform .2s, box-shadow .2s;
}
a.feature-card, .feature-card.hover { text-decoration: none; color: inherit; display: block; }
a.feature-card:hover, .feature-card.hover:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(26,58,47,.12); }
.icon-badge { width: 52px; height: 52px; border-radius: 50%; background: var(--forest); color: #fff; display: grid; place-items: center; font-size: 1.4rem; margin-bottom: 1.1rem; }
.feature-card h3, .feature-card h2 { font-size: 1.3rem; }
.feature-card p { color: var(--muted); }
.more-link { font-weight: 600; color: var(--forest); text-decoration: none; }
.more-link:hover { text-decoration: underline; }
.mv-card { border-left: 4px solid var(--terracotta); padding-left: 1.5rem; }
.img-card { border-radius: 16px; overflow: hidden; box-shadow: 0 4px 24px rgba(26,58,47,.1); background: #fff; }
.img-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bg-panel {
    border-radius: 16px; color: #fff; padding: 2.5rem; height: 100%;
    background: linear-gradient(135deg, rgba(26,58,47,.88), rgba(36,82,66,.78)), var(--panel-img) center/cover no-repeat;
}
.bg-panel h2, .bg-panel h3 { color: #fff; }
.store-band { background: linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%); color: #e6efe9; border-radius: 20px; padding: 3rem; }
.store-band h2 { color: #fff; }
.stats-section {
    color: #fff;
    background: linear-gradient(135deg, rgba(26,58,47,.92), rgba(26,58,47,.82)), var(--stats-img) center/cover no-repeat;
}
.stats-section h2 { color: #fff; }
.stat-box { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 14px; padding: 1.5rem; text-align: center; height: 100%; backdrop-filter: blur(3px); }
.stat-box .num { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 600; line-height: 1.1; }
.stat-box .what { font-size: .95rem; opacity: .9; }
.contact-card { background: #fff; border-radius: 16px; padding: 2rem; box-shadow: 0 4px 24px rgba(26,58,47,.07); height: 100%; }
.contact-card .bi { color: var(--terracotta); }
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { padding: .45rem 0 .45rem 1.9rem; position: relative; color: var(--text); }
.check-list li::before { content: "\F26A"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: .5rem; color: var(--terracotta); }
.prose p { color: var(--text); line-height: 1.75; margin-bottom: 1.1rem; }
.prose-narrow { max-width: 46rem; margin-inline: auto; }
.thumb-card { display: block; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(26,58,47,.1); text-decoration: none; color: var(--text); height: 100%; transition: transform .2s; }
.thumb-card:hover { transform: translateY(-3px); }
.thumb-card img { width: 100%; aspect-ratio: 3/4; object-fit: cover; object-position: top; background: #fff; }
.thumb-card .cap { padding: .75rem 1rem; font-size: .88rem; color: var(--muted); }
.form-card { background: #fff; border-radius: 16px; padding: 2rem; box-shadow: 0 4px 24px rgba(26,58,47,.08); }
.form-card .form-label { font-weight: 600; color: var(--forest); }
.form-card .form-control, .form-card .form-select { border-radius: 8px; padding: .65rem .85rem; }
.form-card .form-control:focus, .form-card .form-select:focus { border-color: var(--forest-light); box-shadow: 0 0 0 .2rem rgba(36,82,66,.15); }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.job-card { border: 2px solid var(--cream-dark); border-radius: 14px; background: #fff; }
.job-card .accordion-button { font-family: 'Playfair Display', serif; font-weight: 600; color: var(--forest); background: #fff; border-radius: 14px; }
.job-card .accordion-button:not(.collapsed) { background: var(--cream); box-shadow: none; }
.person { display: flex; gap: 1.5rem; align-items: flex-start; }
footer.site-footer { background: var(--forest); color: #b9cbc2; padding: 3rem 0 2rem; font-size: .92rem; }
footer.site-footer a { color: #d6e3dc; text-decoration: none; }
footer.site-footer a:hover { color: #fff; text-decoration: underline; }
footer.site-footer h4 { color: #fff; font-size: 1.05rem; }
footer.site-footer .bi { margin-right: .4rem; color: var(--sage-light); }

/* Same size as .btn-forest so mixed button rows line up */
.btn-cta { padding: .75rem 1.5rem; }
