:root {
  --green: #1d3b2c;
  --green-2: #2a5240;
  --brick: #a5432c;
  --gold: #f0c04f;
  --cream: #f8f3e8;
  --ink: #23302a;
}
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { font-family: 'Work Sans', system-ui, sans-serif; color: var(--ink); background: #fff; }
h1, h2, h3, .brand-name, .footer-name { font-family: 'Fraunces', Georgia, serif; }

/* Navbar */
.site-nav { background: var(--green); padding: .5rem 0; box-shadow: 0 2px 14px rgba(0,0,0,.18); }
.nav-logo { height: 39px; width: auto; border-radius: 3px; }
.brand-name { color: #fff; font-size: 1.2rem; font-weight: 700; letter-spacing: .01em; }
.site-nav .nav-link { color: rgba(255,255,255,.86); font-weight: 500; font-size: .95rem; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--gold); }
.site-nav .navbar-toggler { border-color: rgba(255,255,255,.5); }
.site-nav .navbar-toggler-icon { filter: invert(1); }
@media (max-width: 991.98px) {
  .site-nav .navbar-collapse { padding: .75rem 0 1rem; }
  .site-nav .btn-gold { margin-top: .5rem; }
}
@media (max-width: 400px) { .nav-logo { display: none; } }

/* Buttons */
.btn-gold { background: var(--gold); color: var(--green); font-weight: 600; border: 0; }
.btn-gold:hover { background: #ffd067; color: var(--green); }
.btn-green { background: var(--green); color: #fff; font-weight: 600; }
.btn-green:hover { background: var(--green-2); color: #fff; }

/* Hero: split panel */
.hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; padding-top: 56px; background: var(--green); }
.hero-panel { display: flex; align-items: center; padding: 4rem clamp(1.5rem, 5vw, 5rem); background: linear-gradient(160deg, var(--green) 0%, #16301f 100%); }
.hero-content { max-width: 560px; background: rgba(0,0,0,.20); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); padding: 2rem; border-left: 4px solid var(--gold); }
.hero-eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: .2em; font-size: .8rem; font-weight: 600; margin-bottom: .75rem; text-shadow: 0 0 3px rgba(0,0,0,1), 0 1px 12px rgba(0,0,0,0.95), 0 0 30px rgba(0,0,0,0.8); }
.hero-title { color: #fff; font-size: clamp(2.4rem, 5.2vw, 4.4rem); font-weight: 700; line-height: 1.05; margin-bottom: .5rem; text-shadow: 0 0 4px rgba(0,0,0,1), 0 2px 20px rgba(0,0,0,0.95), 0 0 60px rgba(0,0,0,0.8); }
.hero-subtitle { color: #fff; font-size: 1.3rem; font-weight: 500; margin-bottom: .75rem; text-shadow: 0 0 3px rgba(0,0,0,1), 0 2px 16px rgba(0,0,0,0.95), 0 0 40px rgba(0,0,0,0.85); }
.hero-tagline { color: rgba(255,255,255,.95); margin: 0; text-shadow: 0 0 3px rgba(0,0,0,1), 0 1px 12px rgba(0,0,0,0.95), 0 0 30px rgba(0,0,0,0.9); }
.hero-photo { background: url('img/hero.webp') 30% center/cover no-repeat; min-height: 360px; }
@media (max-width: 991.98px) {
  .hero { grid-template-columns: 1fr; min-height: 0; }
  .hero-photo { order: -1; min-height: 300px; margin-top: 0; }
  .hero-panel { padding: 2.5rem 1.25rem 3rem; }
  .hero-content { padding: 1.25rem; }
}

/* Sections */
.section { padding: clamp(4rem, 9vw, 7rem) 0; }
.section-green { background: var(--green); color: #fff; }
.section-cream { background: var(--cream); }
.section-head { max-width: 680px; margin-bottom: 3rem; }
.kicker { text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; font-weight: 600; color: var(--brick); margin-bottom: .6rem; }
.section-green .kicker { color: var(--gold); }
h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 700; line-height: 1.15; margin-bottom: 1rem; }
.lead-sm { font-size: 1.05rem; color: #51605a; }

.policy-card { height: 100%; padding: 1.75rem; background: #fff; border: 1px solid #e6e0d0; border-top: 4px solid var(--brick); border-radius: 6px; }
.policy-card i { font-size: 1.7rem; color: var(--brick); display: block; margin-bottom: .75rem; }
.policy-card h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: .75rem; }
.policy-card p { margin: 0; font-size: .96rem; line-height: 1.65; color: #46544d; }
.policy-dark { background: var(--green-2); border-color: rgba(255,255,255,.12); border-top-color: var(--gold); color: #fff; }
.policy-dark i { color: var(--gold); }
.policy-dark p { color: rgba(255,255,255,.88); }
.policy-plain { background: var(--cream); border-color: #e6e0d0; }

.office-photo { width: 100%; height: auto; border-radius: 6px; box-shadow: 14px 14px 0 var(--gold); }

/* Partners */
.partners { padding: 3.5rem 0; background: #fff; border-top: 1px solid #e9e4d6; border-bottom: 1px solid #e9e4d6; }
.partner-strip { max-width: 800px; margin: 0 auto 1rem; }
.partner-strip img { width: 100%; height: auto; }

/* Form */
.quote-form { background: #fff; padding: 2rem; border-radius: 6px; border: 1px solid #e6e0d0; box-shadow: 0 10px 30px rgba(29,59,44,.08); }
.form-label { font-weight: 500; font-size: .92rem; }
.form-control:focus, .form-select:focus { border-color: var(--green-2); box-shadow: 0 0 0 .2rem rgba(42,82,64,.2); }
.section a:not(.btn):not(.agent) { color: var(--brick); }

/* Contact */
.info-block { background: var(--cream); padding: 1.25rem 1.5rem; border-radius: 6px; margin-bottom: 1.5rem; }
.row > * > .info-block { margin-bottom: 0; }
.info-block h3 { font-size: 1rem; font-family: 'Work Sans', sans-serif; font-weight: 600; color: var(--green); margin-bottom: .5rem; }
.info-block h3 i { color: var(--brick); margin-right: .35rem; }
.info-block p { margin: 0; line-height: 1.6; }
.agent { display: flex; align-items: center; gap: .6rem; padding: .7rem 1rem; border: 1px solid #ddd6c3; border-radius: 6px; color: var(--green); text-decoration: none; font-weight: 500; }
.agent i { color: var(--brick); }
.agent:hover { background: var(--green); color: #fff; }
.agent:hover i { color: var(--gold); }
.map { width: 100%; height: 100%; min-height: 380px; border: 0; border-radius: 6px; }

/* Footer */
.site-footer { background: var(--green); color: rgba(255,255,255,.85); padding: 3.5rem 0 2.5rem; }
.footer-name { color: #fff; font-size: 1.6rem; margin-bottom: .25rem; }
.footer-sub { font-size: .92rem; margin: 0; }
.site-footer a { color: var(--gold); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.powered { display: inline-block; margin-top: 1rem; padding: .5rem 1.1rem; border: 1px solid rgba(240,192,79,.5); border-radius: 999px; font-size: .88rem; }
