/* Base */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
    body { margin: 0; background: #FFFFFF; }
    * { box-sizing: border-box; }
    a { color: #1E4D3B; text-decoration: none; }
    a:hover { color: #1E4D3B; }
    input, textarea, select, button { font-family: Geist, 'Helvetica Neue', Arial, sans-serif; }
    a:focus-visible, button:focus-visible { outline: 2px solid #1E4D3B; outline-offset: 2px; }
@keyframes zArrowDrift { from { transform: translate(0px, 0px); } to { transform: translate(190px, -190px); } } @media (prefers-reduced-motion: reduce) { .z-arrow-drift { animation: none !important; } }

/* Layout breakpoints: 900px separates the desktop and mobile layouts */
@media (max-width: 899.98px) {
  .desktop-only { display: none !important; }
  .services-grid { grid-template-columns:repeat(1,minmax(0,1fr)); }
  .why-image { min-height:420px; }
  .service-panel { padding:24px 20px; }
}
@media (min-width: 900px) {
  .mobile-only { display: none !important; }
  .services-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .why-image { position:sticky; top:104px; }
  .sticky-intro { position:sticky; top:104px; }
  .service-panel { padding:32px; }
}
@media (max-width: 647.98px) {
  .contact-aside { order: 2; }
}

/* Mobile menu icon */
[data-menu-toggle][aria-expanded="true"] .menu-icon-closed,
[data-menu-toggle][aria-expanded="false"] .menu-icon-open { display: none; }

/* FAQ accordion */
.faq-row { background: #F4F4F2; }
.faq-row.is-open { background: #1E4D3B; }
.faq-question { color: #15231D; }
.faq-row.is-open .faq-question { color: #FFFFFF; }
.faq-icon { color: #5E6661; }
.faq-row.is-open .faq-icon { color: #C5F23A; }
.faq-row.is-open .faq-icon-closed,
.faq-row:not(.is-open) .faq-icon-open { display: none; }

/* Hover, focus and active states. !important is needed to override inline styles. */
.hover-text-green:hover { color:#2E7D4F !important; }
.hover-fill-forest:hover { background:#173D2F !important; color:#FFFFFF !important; }
.hover-bg-forest:hover { background:#173D2F !important; }
.hover-fill-lime:hover { background:#B3DE26 !important; color:#15231D !important; }
.hover-fill-glass:hover { background:rgba(255,255,255,0.16) !important; color:#FFFFFF !important; }
.hover-text-forest:hover { color:#173D2F !important; }
.hover-lift:hover { transform:translateY(-6px) !important; box-shadow:0 4px 8px rgba(21,35,29,0.08), 0 24px 48px rgba(21,35,29,0.18) !important; }
.hover-fill-glass-soft:hover { background:rgba(255,255,255,0.1) !important; color:#FFFFFF !important; }
.hover-bg-lime:hover { background:#C5F23A !important; }
.hover-text-white:hover { color:#FFFFFF !important; }
.hover-bg-grey:hover { background:#F4F4F2 !important; }
.hover-fill-pale-lime:hover { background:#EEF9CC !important; color:#15231D !important; }
.focus-outline-white:focus { outline:2px solid #FFFFFF !important; outline-offset:2px !important; }
.focus-field:focus { outline:none !important; border-color:#1E4D3B !important; box-shadow:0 0 0 3px rgba(30,77,59,0.12) !important; }
.active-press:active { transform:translateY(1px) !important; }
.active-lift:active { transform:translateY(-2px) !important; }
