*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --green: #485935;
  --green-dark: #35432a;
  --green-light: #cadbb7;
  --green-mid: #93a267;
  --green-glow: rgba(72,89,53,0.25);
  --red: #a67b5b;
  --red-dark: #6f4e37;
  --red-light: #ecdccd;
  --red-glow: rgba(166,123,91,0.25);
  --black: #141b10;
  --black-soft: #1f2a18;
  --white: #ffffff;
  --gray-50: #f6f7f1;
  --gray-100: #eef0e4;
  --gray-200: #e1e5d6;
  --gray-300: #cfd5bf;
  --gray-400: #a0a98d;
  --gray-500: #7a8368;
  --gray-600: #5d664f;
  --gray-700: #3f4733;
  --gray-800: #2a3322;

  --font-main: 'Inter', sans-serif;
  --font-display: 'Poppins', sans-serif;
  --font-grotesk: 'Space Grotesk', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow: 0 4px 16px rgba(0,0,0,0.10);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.15);
  --shadow-xl: 0 16px 48px rgba(0,0,0,0.20);
  --shadow-green: 0 8px 32px rgba(72,89,53,0.30);
  --shadow-red: 0 8px 32px rgba(166,123,91,0.30);

  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --transition: 0.3s ease;
  --transition-spring: 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-main);
  color: var(--black-soft);
  background: var(--white);
  overflow-x: hidden;
  line-height: 1.6;
}

img { max-width: 100%; display: block; }

a { text-decoration: none; color: inherit; }

ul { list-style: none; }

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: 30px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  font-family: var(--font-mono);
}

.badge-green { background: var(--green-light); color: var(--green-dark); }

.badge-red { background: var(--red-light);   color: var(--red-dark);   }

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--transition);
  font-family: var(--font-main);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0);
  transition: background 0.2s;
}

.btn:hover::after { background: rgba(255,255,255,0.12); }

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

.btn-green:hover { background: var(--green-dark); border-color: var(--green-dark); transform: translateY(-2px); box-shadow: var(--shadow-green); }

.btn-red { background: var(--red); color: var(--white); border-color: var(--red); }

.btn-red:hover { background: var(--red-dark); border-color: var(--red-dark); transform: translateY(-2px); box-shadow: var(--shadow-red); }

.btn-outline-white { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.6); }

.btn-outline-white:hover { background: var(--white); color: var(--black-soft); transform: translateY(-2px); }

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

.btn-outline-green:hover { background: var(--green); color: var(--white); transform: translateY(-2px); }

.section { padding: 100px 0; }

.section-header {
  text-align: center;
  margin-bottom: 64px;
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3.2vw, 2.5rem);
  font-weight: 700;
  color: var(--black-soft);
  margin-top: 14px;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.section-subtitle {
  font-size: 1rem;
  color: var(--gray-600);
  max-width: 580px;
  margin: 12px auto 0;
  line-height: 1.75;
}

.eyebrow-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(72,89,53,0.1);
  border: 1px solid rgba(72,89,53,0.25);
  color: var(--green-dark);
  font-size: 0.73rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 100px;
  font-family: var(--font-mono);
}

.eyebrow-pill .dot {
  width: 6px; height: 6px;
  background: var(--green);
  border-radius: 50%;
  animation: blink-dot 1.6s ease-in-out infinite;
}


@keyframes blink-dot {
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.25; transform: scale(0.6); }
}
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal-left.visible { opacity: 1; transform: translateX(0); }

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal-right.visible { opacity: 1; transform: translateX(0); }

.reveal-scale {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal-scale.visible { opacity: 1; transform: scale(1); }

.delay-1 { transition-delay: 0.08s; }

.delay-2 { transition-delay: 0.16s; }

.delay-3 { transition-delay: 0.24s; }

.delay-4 { transition-delay: 0.32s; }

.delay-5 { transition-delay: 0.40s; }

.delay-6 { transition-delay: 0.48s; }

#marquee {background:var(--green-dark);color:#fff;padding:12px 0;overflow:hidden}

.marquee-inner {display:flex;white-space:nowrap;animation:marqueeScroll 28s linear infinite}

.marquee-inner:hover {animation-play-state:paused}

.marquee-item {padding:0 40px;font-size:.9rem;display:flex;align-items:center;gap:10px}

.marquee-item i {color:var(--green-light)}

.marquee-sep {color:var(--green-mid);padding:0 10px}


@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.addr-hero {
  background:var(--black-soft);position:relative;overflow:hidden;
  padding:90px 0 70px;min-height:480px;display:flex;align-items:center
}

.circuit-bg {position:absolute;inset:0;pointer-events:none;overflow:hidden}

.circuit-bg svg {width:100%;height:100%;opacity:.07}

.addr-hero-gradient {
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(72,89,53,.22) 0%,transparent 60%),
             radial-gradient(ellipse at 80% 20%,rgba(166,123,91,.12) 0%,transparent 50%)
}

.addr-hero-inner {position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}

.addr-hero-text .eyebrow {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(72,89,53,.12);border:1px solid rgba(72,89,53,.3);
  color:var(--green-mid);padding:8px 18px;border-radius:30px;
  font-size:.78rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:22px
}

.addr-hero-text h1 {font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.5rem);font-weight:800;color:#fff;line-height:1.15;margin-bottom:18px}

.addr-hero-text h1 span {color:var(--green-mid)}

.addr-hero-text p {color:rgba(255,255,255,.65);font-size:1rem;line-height:1.75;margin-bottom:28px}

.addr-quick-links {display:flex;gap:12px;flex-wrap:wrap}

.aq-link {
  display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;
  font-size:.85rem;font-weight:600;transition:all .25s;border:1.5px solid rgba(255,255,255,.2);
  color:rgba(255,255,255,.75)
}

.aq-link:hover {background:var(--green);border-color:var(--green);color:#fff;transform:translateY(-2px)}

.aq-link i {font-size:.9rem}

.addr-hero-cards {display:flex;flex-direction:column;gap:14px}

.mini-info-card {
  background:rgba(255,255,255,.07);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);
  padding:18px 22px;display:flex;align-items:center;gap:16px;
  transition:all .3s;cursor:default
}

.mini-info-card:hover {background:rgba(255,255,255,.12);transform:translateX(6px)}

.mini-card-icon {
  width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0
}

.mci-green {background:rgba(72,89,53,.18);color:var(--green-mid)}

.mci-red {background:rgba(166,123,91,.18);color:#c99f80}

.mci-blue {background:rgba(122,150,178,.18);color:#a9c2d9}

.mci-yellow {background:rgba(201,163,74,.18);color:#e3c877}

.mini-card-label {font-size:.72rem;color:rgba(255,255,255,.45);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}

.mini-card-val {font-size:.92rem;color:#fff;font-weight:600;line-height:1.3}

.map-section {padding:70px 0;background:var(--gray-50)}

.map-container {
  border-radius:var(--radius-xl);overflow:hidden;
  box-shadow:0 12px 50px rgba(0,0,0,.12);
  border:1px solid var(--gray-200);position:relative
}

.map-placeholder {
  height:460px;
  background:linear-gradient(135deg,#1f2a18 0%,#1a2114 100%);
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:16px;text-align:center;position:relative;overflow:hidden
}

.map-placeholder::before {
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(72,89,53,.08) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(72,89,53,.08) 1px,transparent 1px);
  background-size:40px 40px
}

.map-pin {
  position:relative;z-index:1;
  width:64px;height:64px;background:var(--red);border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(166,123,91,.4);
  animation:mapBounce 2s ease-in-out infinite
}

.map-pin i {transform:rotate(45deg);color:#fff;font-size:1.4rem}


@keyframes mapBounce{0%,100%{transform:rotate(-45deg) translateY(0)}50%{transform:rotate(-45deg) translateY(-10px)}}
.map-pin-ripple {
  position:absolute;width:120px;height:120px;border-radius:50%;
  border:2px solid rgba(166,123,91,.4);animation:ripple 2s ease-out infinite;z-index:0
}

.map-pin-ripple:nth-child(2) {animation-delay:.7s}

.map-pin-ripple:nth-child(3) {animation-delay:1.4s}


@keyframes ripple{0%{transform:scale(.5);opacity:1}100%{transform:scale(2);opacity:0}}
.map-info-box {position:relative;z-index:1;color:#fff}

.map-info-box h3 {font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin-bottom:6px}

.map-info-box p {color:rgba(255,255,255,.6);font-size:.88rem}

.map-open-btn {
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;
  background:var(--green);color:#fff;padding:12px 24px;border-radius:8px;
  font-weight:700;font-size:.9rem;transition:all .3s;margin-top:8px
}

.map-open-btn:hover {background:var(--green-dark);transform:translateY(-2px)}

.contact-section {padding:80px 0 90px;background:var(--white)}

.contact-layout {display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}

.contact-info-header .label {color:var(--green-dark);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;display:flex;align-items:center;gap:8px;margin-bottom:14px}

.contact-info-header .label::after {content:'';flex:1;height:1px;background:var(--green-light)}

.contact-info-header h2 {font-family:var(--font-display);font-size:1.9rem;font-weight:700;color:var(--black-soft);margin-bottom:10px;line-height:1.2}

.contact-info-header p {color:var(--gray-600);line-height:1.75;margin-bottom:32px}

.contact-cards-list {display:flex;flex-direction:column;gap:16px}

.contact-card {
  display:flex;align-items:flex-start;gap:16px;padding:20px 22px;
  border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--gray-50);
  transition:all .3s;position:relative;overflow:hidden
}

.contact-card::before {content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);transform:scaleY(0);transition:transform .3s;transform-origin:top}

.contact-card:hover::before {transform:scaleY(1)}

.contact-card:hover {border-color:var(--green-light);box-shadow:0 4px 20px rgba(72,89,53,.15);background:#fff;transform:translateX(4px)}

.cc-icon {
  width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0
}

.cc-green {background:var(--green-light);color:var(--green-dark)}

.cc-red {background:var(--red-light);color:var(--red-dark)}

.cc-blue {background:#dce7ef;color:#3d6079}

.cc-yellow {background:#f2e6c8;color:#8a6d1f}

.cc-label {font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);margin-bottom:4px}

.cc-val {font-size:.95rem;font-weight:600;color:var(--black-soft);margin-bottom:2px}

.cc-sub {font-size:.78rem;color:var(--gray-400)}

.hours-card {margin-top:24px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--gray-200)}

.hours-header {background:var(--green-dark);color:#fff;padding:16px 22px;display:flex;align-items:center;gap:10px;font-weight:700;font-family:var(--font-display)}

.hours-header i {color:var(--green-mid)}

.hours-row {display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid var(--gray-100);font-size:.88rem}

.hours-row:last-child {border-bottom:none}

.hours-day {color:var(--gray-700);font-weight:500}

.hours-time {color:var(--green-dark);font-weight:700}

.hours-time.closed {color:var(--red-dark)}

.contact-form-wrap {background:var(--gray-50);border-radius:var(--radius-xl);padding:40px;border:1px solid var(--gray-200)}

.form-header {margin-bottom:28px}

.form-header h3 {font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--black-soft);margin-bottom:6px}

.form-header p {font-size:.88rem;color:var(--gray-600)}

.form-grid {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}

.form-group {display:flex;flex-direction:column;gap:6px;margin-bottom:16px}

.form-group label {font-size:.82rem;font-weight:600;color:var(--gray-700)}

.form-group input, .form-group select, .form-group textarea {
  padding:12px 16px;border:1.5px solid var(--gray-200);border-radius:8px;
  font-size:.9rem;font-family:var(--font-main);color:var(--black-soft);
  background:#fff;outline:none;transition:border-color .25s,box-shadow .25s
}

.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  border-color:var(--green);box-shadow:0 0 0 3px rgba(72,89,53,.15)
}

.form-group textarea {height:120px;resize:vertical}

.form-submit {
  width:100%;padding:14px;background:var(--green);color:#fff;border:none;
  border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-main);transition:all .3s
}

.form-submit:hover {background:var(--green-dark);transform:translateY(-2px);box-shadow:0 8px 24px rgba(72,89,53,.3)}

.form-note {text-align:center;margin-top:12px;font-size:.78rem;color:var(--gray-400);display:flex;align-items:center;justify-content:center;gap:5px}

.form-note i {color:var(--green)}

.success-msg {
  display:none;background:var(--green-light);border:1px solid var(--green-mid);
  border-radius:8px;padding:14px 20px;color:var(--green-dark);font-weight:600;
  text-align:center;margin-top:14px;font-size:.9rem
}

.find-section {padding:80px 0;background:var(--gray-50)}

.find-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:24px}

.find-card {
  background:#fff;border-radius:var(--radius);padding:28px;
  border:1px solid var(--gray-200);text-align:center;transition:all .3s
}

.find-card:hover {transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:var(--green-light)}

.find-icon {
  width:64px;height:64px;border-radius:16px;margin:0 auto 16px;
  display:flex;align-items:center;justify-content:center;font-size:1.4rem
}

.fi-green {background:var(--green-light);color:var(--green-dark)}

.fi-blue {background:#dce7ef;color:#3d6079}

.fi-orange {background:var(--red-light);color:var(--red-dark)}

.find-title {font-family:var(--font-display);font-weight:700;color:var(--black-soft);margin-bottom:8px}

.find-desc {font-size:.85rem;color:var(--gray-600);line-height:1.65;margin-bottom:16px}

.find-link {
  display:inline-flex;align-items:center;gap:6px;
  color:var(--green-dark);font-size:.85rem;font-weight:700;transition:gap .2s
}

.find-link:hover {gap:10px}

.faq-section {padding:80px 0;background:var(--white)}

.faq-grid {max-width:780px;margin:0 auto}

.faq-item {border:1px solid var(--gray-200);border-radius:var(--radius);margin-bottom:12px;overflow:hidden;transition:border-color .3s}

.faq-item.open {border-color:var(--green-mid)}

.faq-q {
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px;cursor:pointer;font-weight:600;font-size:.94rem;
  color:var(--black-soft);transition:background .2s;user-select:none
}

.faq-q:hover {background:var(--gray-50)}

.faq-item.open .faq-q {background:var(--green-light);color:var(--green-dark)}

.faq-icon {width:28px;height:28px;border-radius:50%;background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--gray-600);transition:transform .3s,background .3s;flex-shrink:0}

.faq-item.open .faq-icon {transform:rotate(180deg);background:var(--green);color:#fff}

.faq-a {
  max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease;
  padding:0 22px;font-size:.9rem;color:var(--gray-600);line-height:1.75
}

.faq-item.open .faq-a {max-height:200px;padding:14px 22px 18px}

.section-header {text-align:center;margin-bottom:52px}

.section-header h2 {font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;color:var(--black-soft);margin-top:12px}

.section-header p {color:var(--gray-600);max-width:540px;margin:12px auto 0}

.label-tag {display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:30px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}

.tag-green {background:var(--green-light);color:var(--green-dark)}

.tag-red {background:var(--red-light);color:var(--red-dark)}

.fade-up {opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}

.fade-up.visible {opacity:1;transform:translateY(0)}

.fade-left {opacity:0;transform:translateX(30px);transition:opacity .6s ease,transform .6s ease}

.fade-left.visible {opacity:1;transform:translateX(0)}

@media(max-width:1024px) {
.addr-hero-inner, .contact-layout {grid-template-columns:1fr}

.addr-hero-cards {display:grid;grid-template-columns:1fr 1fr}

.find-grid {grid-template-columns:1fr 1fr}

}

@media(max-width:768px) {
.find-grid {grid-template-columns:1fr}

.form-grid {grid-template-columns:1fr}

.addr-hero-cards {grid-template-columns:1fr}

}
