/* ── RESET & VARIABLES ── */
:root {
  --green:      #0F2306;
  --green-mid:  #1a3a0a;
  --green-lt:   #2a5410;
  --green-tint: #eef3eb;
  --white:      #ffffff;
  --off-white:  #f7f9f5;
  --text:       #111;
  --text-mid:   #444;
  --text-light: #6b7a65;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Source Sans 3', sans-serif; color:var(--text); background:var(--white); overflow-x:hidden; padding-top:76px; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:var(--green);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 5%; height:76px;
  box-shadow:0 2px 24px rgba(0,0,0,0.25);
}
.nav-logo {
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
}
.nav-logo img { height:52px; width:auto; display:block; }
.nav-links { display:flex; align-items:center; gap:24px; list-style:none; }
.nav-links a:not(.nav-cta) {
  color:#ffffff !important; text-decoration:none !important;
  font-size:14px; font-weight:600; letter-spacing:0.4px;
  font-family:'Oswald', sans-serif; text-transform:uppercase;
  transition:color 0.2s; white-space:nowrap;
}
.nav-links a:not(.nav-cta):hover, .nav-links a.active:not(.nav-cta) { color:rgba(255,255,255,0.7) !important; }
nav a:not(.nav-cta), nav a:not(.nav-cta):visited, nav a:not(.nav-cta):link { color:#ffffff !important; }
nav a:not(.nav-cta):hover { color:rgba(255,255,255,0.7) !important; }
.nav-cta { background:#fff !important; color:#0F2306 !important; padding:9px 18px; border-radius:6px; font-weight:700 !important; }
.nav-cta:hover { background:#e8ede6 !important; }
.nav-toggle { display:none; background:none; border:none; color:#fff; font-size:24px; cursor:pointer; }

/* ── TRUST STRIP ── */
.trust {
  background:var(--green-lt); padding:16px 5%;
  display:flex; align-items:center; justify-content:center; gap:32px; flex-wrap:wrap;
}
.trust-item { display:flex; align-items:center; gap:8px; color:rgba(255,255,255,0.9); font-size:13px; font-weight:600; font-family:'Oswald', sans-serif; letter-spacing:0.5px; text-transform:uppercase; }
.trust-dot { width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,0.35); }

/* ── SECTION HELPERS ── */
.section-label { font-family:'Oswald', sans-serif; font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--green-lt); margin-bottom:12px; }
.section-title { font-family:'Oswald', sans-serif; font-size:clamp(30px, 4vw, 48px); color:var(--green); line-height:1.1; text-transform:uppercase; font-weight:700; margin-bottom:14px; }
.section-title.white { color:#fff; }
.section-sub { font-size:17px; color:var(--text-light); line-height:1.7; max-width:560px; margin-bottom:52px; }
.section-sub.white { color:rgba(255,255,255,0.92); }

/* ── HERO (inner pages) ── */
.page-hero {
  background:var(--green); padding:72px 5% 64px;
  position:relative; overflow:hidden;
}
.page-hero::after {
  content:''; position:absolute; top:0; right:0; bottom:0; width:40%;
  background:linear-gradient(135deg, var(--green-mid), var(--green-lt));
  clip-path:polygon(10% 0, 100% 0, 100% 100%, 0% 100%);
  opacity:0.45;
}
.page-hero-content { position:relative; z-index:2; max-width:680px; }
.page-hero-eyebrow { display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,0.85); font-size:12px; font-weight:600; letter-spacing:2px; text-transform:uppercase; margin-bottom:18px; font-family:'Oswald', sans-serif; }
.page-hero-eyebrow::before { content:''; display:block; width:28px; height:2px; background:rgba(255,255,255,0.35); }
.page-hero h1 { font-family:'Oswald', sans-serif; font-size:clamp(36px, 5vw, 64px); color:#fff; line-height:1.05; font-weight:700; text-transform:uppercase; margin-bottom:18px; }
.page-hero p { font-size:18px; color:rgba(255,255,255,0.92); line-height:1.7; max-width:520px; margin-bottom:32px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }

/* ── BUTTONS ── */
.btn-primary { display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--green); padding:15px 30px; border-radius:6px; font-family:'Oswald', sans-serif; font-size:16px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; text-decoration:none; transition:all 0.2s; box-shadow:0 4px 18px rgba(0,0,0,0.18); }
.btn-primary:hover { background:#e8ede6; transform:translateY(-2px); }
.btn-outline { display:inline-flex; align-items:center; gap:8px; background:transparent !important; color:#ffffff !important; padding:15px 30px; border-radius:6px; font-family:'Oswald', sans-serif; font-size:16px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; text-decoration:none !important; border:2px solid #ffffff !important; transition:all 0.2s; }
.btn-outline:hover { border-color:#fff; background:rgba(255,255,255,0.08); }
.btn-green { display:inline-flex; align-items:center; gap:8px; background:var(--green) !important; color:#ffffff !important; padding:15px 30px; border-radius:6px; font-family:'Oswald', sans-serif; font-size:16px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; text-decoration:none !important; transition:all 0.2s; border:none; }
.btn-green:hover { background:var(--green-lt); transform:translateY(-2px); }

/* ── CONTENT SECTIONS ── */
.content-section { padding:80px 5%; }
.content-section.bg-off { background:var(--off-white); }
.content-section.bg-green { background:var(--green); }
.content-section.bg-mid { background:var(--green-mid); }

.inner { max-width:1100px; margin:0 auto; }
.inner-sm { max-width:800px; margin:0 auto; }

/* ── 2-COL GRID ── */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.two-col.flip { direction:rtl; }
.two-col.flip > * { direction:ltr; }

/* ── SERVICE CARDS GRID ── */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(0,0,0,0.08); border-radius:16px; overflow:hidden; }
.svc-card { background:var(--white); padding:36px 28px; transition:background 0.25s; }
.svc-card:hover { background:var(--green); }
.svc-card:hover .svc-title, .svc-card:hover .svc-body, .svc-card:hover .svc-num { color:#fff; }
.svc-card:hover .svc-icon { background:rgba(255,255,255,0.12); }
.svc-num { font-family:'Oswald', sans-serif; font-size:11px; color:rgba(0,0,0,0.2); letter-spacing:2px; margin-bottom:16px; transition:color 0.25s; }
.svc-icon { width:48px; height:48px; background:var(--green-tint); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:16px; transition:background 0.25s; }
.svc-title { font-family:'Oswald', sans-serif; font-size:18px; color:var(--green); text-transform:uppercase; font-weight:700; margin-bottom:8px; transition:color 0.25s; }
.svc-body { font-size:14px; color:var(--text-light); line-height:1.7; transition:color 0.25s; }

/* ── CHECKLIST ── */
.checklist { list-style:none; display:flex; flex-direction:column; gap:16px; }
.checklist li { display:flex; align-items:flex-start; gap:14px; font-size:16px; color:var(--text-mid); line-height:1.6; }
.checklist.white li { color:rgba(255,255,255,0.8); }
.chk { width:24px; height:24px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; flex-shrink:0; margin-top:2px; }
.chk.white { background:rgba(255,255,255,0.2); }

/* ── FAQ ── */
.faq-list { display:flex; flex-direction:column; gap:0; border:1px solid rgba(0,0,0,0.08); border-radius:12px; overflow:hidden; }
.faq-item { border-bottom:1px solid rgba(0,0,0,0.08); }
.faq-item:last-child { border-bottom:none; }
.faq-q { width:100%; background:var(--white); border:none; padding:22px 24px; text-align:left; font-family:'Oswald', sans-serif; font-size:17px; color:var(--green); font-weight:600; cursor:pointer; display:flex; justify-content:space-between; align-items:center; transition:background 0.2s; }
.faq-q:hover { background:var(--green-tint); }
.faq-q.open { background:var(--green); color:#fff; }
.faq-q span { font-size:20px; transition:transform 0.2s; }
.faq-q.open span { transform:rotate(45deg); }
.faq-a { display:none; padding:20px 24px; background:var(--off-white); font-size:15px; color:var(--text-mid); line-height:1.8; }
.faq-a.open { display:block; }

/* ── CONTACT FORM ── */
.form-box { background:var(--white); border-radius:16px; padding:44px 40px; border:1px solid rgba(0,0,0,0.07); box-shadow:0 4px 40px rgba(0,0,0,0.06); }
.form-box h3 { font-family:'Oswald', sans-serif; font-size:24px; color:var(--green); text-transform:uppercase; margin-bottom:26px; }
.fg { margin-bottom:16px; }
.fg label { display:block; font-size:12px; font-weight:600; color:var(--text-mid); letter-spacing:0.5px; text-transform:uppercase; margin-bottom:6px; }
.fg input, .fg textarea, .fg select { width:100%; padding:13px 15px; border:1.5px solid rgba(0,0,0,0.12); border-radius:8px; font-family:'Source Sans 3', sans-serif; font-size:15px; color:var(--text); background:#fff; outline:none; transition:border-color 0.2s; }
.fg input:focus, .fg textarea:focus, .fg select:focus { border-color:var(--green); }
.fg textarea { height:110px; resize:vertical; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-btn { width:100%; background:var(--green); color:#fff; border:none; padding:16px; border-radius:8px; font-family:'Oswald', sans-serif; font-size:17px; font-weight:700; letter-spacing:1px; text-transform:uppercase; cursor:pointer; transition:all 0.2s; margin-top:4px; }
.form-btn:hover { background:var(--green-lt); transform:translateY(-1px); }

/* ── CONTACT DETAILS ── */
.cdet-list { display:flex; flex-direction:column; gap:18px; margin-top:30px; }
.cdet { display:flex; align-items:center; gap:14px; }
.cdet-icon { width:48px; height:48px; background:var(--green); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.cdet-lbl { font-size:11px; color:var(--text-light); text-transform:uppercase; letter-spacing:1px; margin-bottom:3px; }
.cdet-val { font-size:16px; font-weight:600; color:var(--green); text-decoration:none; }
.cdet-val:hover { color:var(--green-lt); }

/* ── AREA CARDS ── */
.area-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.area-card { background:var(--white); border:1px solid rgba(0,0,0,0.07); border-radius:14px; padding:32px 24px; text-align:center; transition:all 0.25s; text-decoration:none; }
.area-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,0.1); border-color:var(--green); }
.area-card-ico { font-size:32px; margin-bottom:12px; }
.area-card h3 { font-family:'Oswald', sans-serif; font-size:20px; color:var(--green); text-transform:uppercase; margin-bottom:8px; }
.area-card p { font-size:14px; color:var(--text-light); line-height:1.6; }

/* ── CTA BAND ── */
.cta-band { background:var(--green); padding:72px 5%; text-align:center; }
.cta-band h2 { font-family:'Oswald', sans-serif; font-size:clamp(28px, 4vw, 46px); color:#fff; text-transform:uppercase; margin-bottom:14px; }
.cta-band p { font-size:17px; color:#fff; margin-bottom:36px; max-width:520px; margin-left:auto; margin-right:auto; line-height:1.7; }
.cta-band p a, .cta-band p a:visited { color:#fff !important; text-decoration:none !important; }
.cta-band * { color:#fff !important; }
.cta-band a { color:#fff !important; text-decoration:none !important; }
.page-hero p { color:rgba(255,255,255,0.92) !important; }
.page-hero p a, .page-hero p a:visited { color:#fff !important; }
.home-hero p, .home-hero p a, .home-hero p a:visited { color:#fff !important; }
a:-webkit-any-link { color:inherit; }

.cta-actions { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ── FOOTER ── */
footer { background:var(--green); color:rgba(255,255,255,0.85); padding:60px 5% 28px; }
.footer-top { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1); margin-bottom:28px; }
.footer-brand img.footer-logo { height:44px; margin-bottom:14px; }
.footer-brand p { font-size:14px; line-height:1.8; max-width:280px; margin-bottom:16px; }
.footer-contact-quick { display:flex; flex-direction:column; gap:6px; }
.footer-contact-quick a { color:rgba(255,255,255,0.92); text-decoration:none; font-size:14px; transition:color 0.2s; }
.footer-contact-quick a:hover { color:#fff; }
.footer-col h4 { font-family:'Oswald', sans-serif; font-size:12px; color:#fff; letter-spacing:2px; text-transform:uppercase; margin-bottom:16px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:8px; font-size:14px; }
.footer-col ul li a { color:rgba(255,255,255,0.82); text-decoration:none; transition:color 0.2s; }
.footer-col ul li a:hover { color:#fff; }
.footer-bot { max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.footer-bot a { color:rgba(255,255,255,0.92); text-decoration:none; }

/* ── STAT CARDS ── */
.stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.stat-card { background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.3); border-radius:14px; padding:28px 20px; text-align:center; }
.stat-val { font-family:'Oswald', sans-serif; font-size:36px; color:#fff; line-height:1; margin-bottom:6px; }
.stat-lbl { font-size:13px; color:rgba(255,255,255,0.82); font-weight:500; }

/* ── RESPONSIVE ── */
@media (max-width:960px) {
  .two-col { grid-template-columns:1fr; gap:40px; }
  .two-col.flip { direction:ltr; }
  .svc-grid { grid-template-columns:1fr 1fr; }
  .area-grid { grid-template-columns:1fr 1fr; }
  .stat-row { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .svc-grid { grid-template-columns:1fr; }
  .area-grid { grid-template-columns:1fr; }
  .frow { grid-template-columns:1fr; }
  .trust { gap:16px; }
  .nav-links { display:none; flex-direction:column; position:absolute; top:76px; left:0; right:0; background:var(--green); padding:20px; gap:0; }
  .nav-links.open { display:flex; }
  .nav-links li { border-bottom:1px solid rgba(255,255,255,0.08); }
  .nav-links a { padding:14px 0; display:block; }
  .nav-toggle { display:block; }
  .footer-top { grid-template-columns:1fr; gap:28px; }
  .footer-bot { flex-direction:column; gap:8px; text-align:center; }
  .stat-row { grid-template-columns:1fr 1fr; }
  .cta-actions { flex-direction:column; align-items:center; }
}

/* ── REVIEWS ── */
.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.review-card { background:var(--white); border:1px solid rgba(0,0,0,0.07); border-radius:16px; padding:32px 28px; position:relative; box-shadow:0 2px 20px rgba(0,0,0,0.05); }
.review-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--green); border-radius:16px 16px 0 0; }
.review-stars { color:#f5a623; font-size:18px; letter-spacing:2px; margin-bottom:16px; }
.review-text { font-size:15px; color:var(--text-mid); line-height:1.8; margin-bottom:24px; font-style:italic; }
.review-author { display:flex; align-items:center; gap:12px; }
.review-avatar { width:40px; height:40px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Oswald',sans-serif; font-size:16px; font-weight:700; flex-shrink:0; }
.review-name { font-size:14px; font-weight:700; color:var(--green); }
.review-location { font-size:12px; color:var(--text-light); margin-top:2px; }

/* ── MOBILE STICKY CALL BUTTON ── */
.mobile-call-btn { display:none; }
@media (max-width:768px) {
  .mobile-call-btn {
    display:block;
    position:fixed; bottom:0; left:0; right:0; z-index:999;
    background:var(--green); padding:16px 24px;
    box-shadow:0 -4px 20px rgba(0,0,0,0.2);
  }
  .mobile-call-btn a {
    display:block; text-align:center;
    color:#fff; font-family:'Oswald',sans-serif;
    font-size:18px; font-weight:700; text-transform:uppercase;
    letter-spacing:1px; text-decoration:none;
  }
  body { padding-bottom:64px; }
  .reviews-grid { grid-template-columns:1fr; }
}
@media (min-width:769px) and (max-width:960px) {
  .reviews-grid { grid-template-columns:1fr 1fr; }
}

/* CTA Band button fixes */
.cta-band .btn-primary { background:#fff !important; color:var(--green) !important; }
.cta-band .btn-primary:hover { background:#e8ede6 !important; color:var(--green) !important; }
.cta-band .btn-outline { background:transparent !important; color:#fff !important; border:2px solid rgba(255,255,255,0.6) !important; }
.cta-band h2 { color:#fff !important; }
.cta-band p { color:#fff !important; }

/* Landscaping hero - richer gradient since no photo */
.landscaping-hero {
  background: var(--green);
}
.landscaping-hero::after {
  content:''; position:absolute; top:0; right:0; bottom:0; width:40%;
  background:linear-gradient(135deg, var(--green-mid), var(--green-lt));
  clip-path:polygon(10% 0, 100% 0, 100% 100%, 0% 100%);
  opacity:0.55;
}

/* Review CTA button fix */
.review-cta .btn-green,
.review-cta button.btn-green {
  background: var(--green) !important;
  color: #ffffff !important;
  border: none !important;
  cursor: pointer;
}

/* Force all buttons/links in dark sections to correct colors */
.home-hero .btn-outline,
.page-hero .btn-outline,
.cta-band .btn-outline {
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
  background: transparent !important;
}

.home-hero .btn-primary,
.page-hero .btn-primary,
.cta-band .btn-primary {
  background: #ffffff !important;
  color: #0F2306 !important;
}

/* Simple bullet dots replacing checkmarks/exclamation points */
.bullet-dot {
  width: 8px;
  height: 8px;
  min-width: 8px;
  border-radius: 50%;
  background: var(--green);
  display: inline-block;
  margin-top: 6px;
  flex-shrink: 0;
}
.checklist.white .bullet-dot { background: #fff; }

/* Company name in hero */
.company-name-hero {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 700;
  color: #ffffff !important;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 8px;
  opacity: 0.92;
}

/* Force btn-primary on dark bg to always be white bg + dark green text */
.home-hero .btn-primary,
.page-hero .btn-primary,
.cta-band .btn-primary {
  background: #ffffff !important;
  color: #0F2306 !important;
  border: none !important;
}

/* Force btn-outline on dark bg always white text + white border */
.home-hero .btn-outline,
.page-hero .btn-outline,
.cta-band .btn-outline {
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
  background: transparent !important;
}

/* Bilingual badge */
.trust-item { color: #0F2306 !important; }
