@font-face { font-family:'Geist'; src: url('https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-sans/Geist-Variable.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@keyframes kenburns { 0% { transform: scale(1) translate(0,0); } 100% { transform: scale(1.12) translate(-1%,-1%); } }
@keyframes fadeRise { from { opacity:0; transform: translateY(24px); } to { opacity:1; transform: translateY(0); } }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:'Geist',system-ui,sans-serif; font-size:18px; line-height:1.55; color:oklch(24% 0.08 142); background:oklch(97% 0.007 90); -webkit-font-smoothing:antialiased; }
a { color:#1e3d24; text-decoration:none; }
a:hover { color:#4f9d5c; }
img { max-width:100%; display:block; }
::selection { background: rgba(30,61,36,0.22); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:0.001ms !important; transition-duration:0.001ms !important; } }

header { position:sticky; top:0; z-index:100; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; padding:14px 24px; background:oklch(97% 0.007 90 / 0.98); border-bottom:1px solid oklch(85% 0.014 90); }
.brand { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.brand img { height:34px; width:auto; }
.brand span { font-size:16px; letter-spacing:0.06em; text-transform:uppercase; white-space:nowrap; }
nav#site-nav { display:flex; align-items:center; justify-content:center; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:18px; }
.desktop-nav a { font-size:14.5px; font-weight:500; color:oklch(42% 0.06 142); padding-bottom:3px; border-bottom:2px solid transparent; white-space:nowrap; }
.header-actions { display:flex; align-items:center; gap:14px; flex-shrink:0; justify-self:end; }
.contact-dropdown { position:relative; }
.contact-dropdown > .phone-btn { background:transparent; border:none; color:oklch(24% 0.08 142); font-size:14px; font-weight:600; cursor:pointer; padding:8px 6px; font-family:inherit; border-radius:8px; }
.contact-dropdown .dropdown-menu { position:absolute; top:36px; right:0; min-width:180px; background:oklch(94% 0.009 90); border:1px solid oklch(85% 0.014 90); border-radius:12px; padding:8px; box-shadow:0 20px 40px oklch(0% 0 0 / 0.14); display:none; flex-direction:column; gap:2px; }
.contact-dropdown:hover .dropdown-menu, .contact-dropdown:focus-within .dropdown-menu { display:flex; }
.contact-dropdown .dropdown-menu a { padding:10px 12px; border-radius:8px; color:oklch(24% 0.08 142); font-size:15px; }
.contact-dropdown .dropdown-menu a:hover { background:oklch(55% 0.09 140 / 0.15); }
.cta-btn { padding:9px 16px; border-radius:999px; background-color:#1e3d24; color:#f4f7f5 !important; font-size:14px; font-weight:600; letter-spacing:0.02em; white-space:nowrap; transition:transform .3s ease; }
.cta-btn:hover { transform:translateY(-2px); color:#f4f7f5 !important; }
.mobile-phone-link { display:none; font-size:14px; font-weight:600; color:oklch(24% 0.08 142); white-space:nowrap; justify-self:end; }
.menu-toggle { display:none; width:44px; height:44px; border-radius:8px; border:none; background:transparent; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.menu-toggle span { width:22px; height:2px; background:oklch(24% 0.08 142); display:block; }
.mobile-drawer { display:none; }

@media (max-width: 768px) {
  html, body { overflow-x:hidden; }
  header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 16px; }
  .brand { gap:8px; min-width:0; }
  .brand img { height:32px; }
  .brand span { font-size:15px; font-weight:600; overflow:hidden; text-overflow:ellipsis; }
  nav#site-nav { flex:0 1 auto; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
  .desktop-nav, .header-actions { display:none; }
  .mobile-phone-link { display:block; font-size:16px; }
  .menu-toggle { display:flex; width:36px; height:36px; flex-shrink:0; }
  .about-grid, .our-story, .service-row { grid-template-columns:1fr !important; gap:28px; }
  .about-grid img, .our-story-media img { height:280px; }
  .our-story { position:static; }
  .our-story-media { position:static; }
  .service-row img, .service-row.reverse img { order:1 !important; }
  .service-row .text, .service-row.reverse .text { order:2 !important; }
  .service-row .btn-lg { border-radius:14px; text-align:center; max-width:100%; }
}
@media (max-width: 360px) {
  .brand span { display:none; }
}
  .mobile-drawer { display:flex; position:fixed; inset:0; z-index:950; background:oklch(97% 0.007 90 / 0.98); backdrop-filter:blur(6px); flex-direction:column; overflow-y:auto; transform:translateX(100%); transition:transform .3s ease; }
  .mobile-drawer.open { transform:translateX(0); }
  .mobile-drawer-inner { max-width:440px; margin:0 auto; width:100%; padding:8px 28px 48px; display:flex; flex-direction:column; gap:26px; }
  .mobile-drawer-close { align-self:flex-end; margin:16px 20px 0; width:44px; height:44px; background:transparent; border:none; color:oklch(24% 0.08 142); font-size:26px; cursor:pointer; }
  .mobile-nav-links { display:flex; flex-direction:column; gap:18px; }
  .mobile-nav-links a { font-size:24px; font-weight:500; color:oklch(42% 0.06 142); }
  .mobile-drawer .cta-btn { text-align:center; padding:16px; font-size:16px; }
  .mobile-contact { display:flex; flex-direction:column; gap:2px; border-top:1px solid oklch(85% 0.014 90); border-bottom:1px solid oklch(85% 0.014 90); padding:12px 0; }
  .mobile-contact a { padding:14px 4px; font-size:16px; color:oklch(24% 0.08 142); }
}

body.page-home nav#site-nav a[href="index.html"],
body.page-about nav#site-nav a[href="about.html"],
body.page-services nav#site-nav a[href="services.html"],
body.page-contact nav#site-nav a[href="contact.html"] { color:oklch(24% 0.08 142); font-weight:700; border-bottom-color:#1e3d24; }

.hero { position:relative; display:flex; align-items:flex-end; overflow:hidden; }
.hero img.bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:kenburns 22s ease-in-out infinite alternate; }
.hero .scrim { position:absolute; inset:0; background:linear-gradient(180deg, oklch(19% 0.06 142 / 0.55) 0%, oklch(19% 0.06 142 / 0.75) 65%, oklch(19% 0.06 142 / 0.95) 100%); }
.hero-content { position:relative; max-width:1200px; margin:0 auto; width:100%; padding:0 24px 64px; display:flex; flex-direction:column; gap:18px; animation:fadeRise .7s ease both; }
.eyebrow { font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:oklch(85% 0.09 100); }
.hero h1 { font-size:clamp(32px,5.5vw,60px); line-height:1.08; margin:0; max-width:20ch; font-weight:600; text-wrap:pretty; color:oklch(98% 0.008 90); }
.hero p { font-size:clamp(17px,1.8vw,21px); color:oklch(92% 0.012 90); max-width:60ch; margin:0; text-wrap:pretty; }

section { padding:0 24px; }
.section-inner { max-width:1200px; margin:0 auto; }
.eyebrow-dark { font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:#1e3d24; }
h2 { font-size:clamp(26px,3.2vw,40px); margin:0; font-weight:600; }

.about-grid { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:56px; align-items:center; padding:80px 0; }
.about-grid img { border-radius:20px; height:440px; width:100%; object-fit:cover; }
.about-grid p { font-size:18px; color:oklch(34% 0.07 142); margin:0; text-wrap:pretty; }
.stats { display:flex; gap:34px; margin-top:12px; }
.stat-num { font-size:40px; font-weight:600; color:#1e3d24; }
.stat-label { font-size:14px; color:oklch(46% 0.06 142); }

.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:28px; padding:20px 0 90px; }
.service-card { display:flex; flex-direction:column; border-radius:16px; overflow:hidden; background:oklch(94% 0.009 90); border:1px solid oklch(85% 0.014 90); transition:transform .3s ease, box-shadow .3s ease; }
.service-card:hover { transform:translateY(-6px) scale(1.015); box-shadow:0 24px 48px oklch(0% 0 0 / 0.14); }
.service-card img { height:220px; object-fit:cover; transition:transform .7s ease; }
.service-card:hover img { transform:scale(1.06); }
.service-card .body { padding:24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.service-card h3 { margin:0; font-size:20px; font-weight:600; }
.service-card p { margin:0; font-size:15.5px; color:oklch(42% 0.06 142); flex:1; }
.learn-more { display:flex; align-items:center; gap:6px; color:#1e3d24; font-size:14.5px; font-weight:600; }

.testimonial-section { background:oklch(94% 0.009 90); padding:90px 24px; border-top:1px solid oklch(85% 0.014 90); border-bottom:1px solid oklch(85% 0.014 90); }
.testimonial-wrap { max-width:900px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:40px; text-align:center; }
.testimonial-card { width:100%; max-width:680px; background:oklch(98% 0.005 90); border:1px solid oklch(85% 0.014 90); border-radius:20px; padding:48px 56px; box-shadow:0 24px 48px oklch(0% 0 0 / 0.08); display:flex; flex-direction:column; align-items:center; gap:16px; }
.stars { color:#1e3d24; font-size:18px; }
.testimonial-quote { font-size:21px; font-weight:500; margin:0; text-wrap:pretty; }
.testimonial-person { display:flex; align-items:center; gap:10px; margin-top:8px; }
.testimonial-avatar { width:38px; height:38px; border-radius:50%; background:#1e3d24; color:#f4f7f5; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:14px; }

.promo { position:relative; padding:110px 24px; overflow:hidden; text-align:center; }
.promo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.promo .scrim { position:absolute; inset:0; background:oklch(19% 0.06 142 / 0.82); }
.promo-content { position:relative; max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:20px; align-items:center; }
.promo h2 { color:oklch(98% 0.008 90); }
.promo p { margin:0; color:oklch(92% 0.012 90); font-size:18px; }
.btn-lg { padding:16px 32px; border-radius:999px; background-color:#1e3d24; color:#f4f7f5 !important; font-weight:600; font-size:17px; display:inline-block; transition:transform .3s ease; }
.btn-lg:hover { transform:translateY(-3px); color:#f4f7f5 !important; }

.pillars { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:28px; padding:60px 0; }
.pillar { display:flex; flex-direction:column; gap:12px; padding:32px 28px; background:oklch(94% 0.009 90); border:1px solid oklch(85% 0.014 90); border-radius:16px; transition:transform .3s ease; }
.pillar:hover { transform:translateY(-6px); box-shadow:0 24px 48px oklch(0% 0 0 / 0.12); }
.pillar-num { font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:#1e3d24; }
.pillar h3 { margin:0; font-size:20px; font-weight:600; }
.pillar p { margin:0; font-size:15.5px; color:oklch(42% 0.06 142); }

.our-story { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:60px; align-items:start; padding:90px 0 60px; }
.our-story-media { display:flex; flex-direction:column; gap:24px; }
.our-story-media img { height:320px; border-radius:20px; object-fit:cover; }
.our-story-text { display:flex; flex-direction:column; gap:20px; }
.our-story-text p { margin:0; font-size:19px; color:oklch(34% 0.07 142); text-wrap:pretty; }

.service-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; padding:50px 0; }
.service-row img { height:340px; border-radius:16px; object-fit:cover; }
.service-row .text { display:flex; flex-direction:column; gap:16px; }
.service-row p { margin:0; font-size:16.5px; color:oklch(38% 0.03 142); text-wrap:pretty; }
.service-row ul { margin:6px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; }
.service-row li { display:flex; gap:10px; font-size:15px; color:oklch(38% 0.03 142); }
.service-row li::before { content:"✓"; color:#1e3d24; flex-shrink:0; }
.service-row .btn-lg { padding:14px 26px; font-size:15px; align-self:flex-start; }
.service-row.reverse img { order:2; }
.service-row.reverse .text { order:1; }

.contact-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:stretch; padding:80px 0 60px; }
.contact-form { display:flex; flex-direction:column; gap:16px; background:oklch(94% 0.009 90); border:1px solid oklch(85% 0.014 90); border-radius:16px; padding:36px; }
.contact-form h2 { margin:0 0 6px; font-size:24px; }
.contact-form label { display:flex; flex-direction:column; gap:6px; font-size:14px; color:oklch(46% 0.06 142); }
.contact-form label.grow { flex:1; }
.contact-form input, .contact-form select, .contact-form textarea { background:oklch(97% 0.007 90); border:1px solid oklch(85% 0.014 90); border-radius:8px; padding:12px 14px; color:oklch(24% 0.08 142); font-size:16px; font-family:inherit; }
.contact-form textarea { resize:vertical; flex:1; }
.contact-form button { margin-top:6px; padding:15px; border-radius:999px; border:none; background-color:#1e3d24; color:#f4f7f5; font-weight:600; font-size:16px; cursor:pointer; transition:transform .3s ease; }
.contact-form button:hover { transform:translateY(-2px); }
.map-embed { border-radius:16px; overflow:hidden; border:1px solid oklch(85% 0.014 90); min-height:340px; }
.map-embed iframe { width:100%; height:100%; border:0; }

.info-panel { max-width:1200px; margin:0 auto 110px; background:oklch(94% 0.009 90); border:1px solid oklch(85% 0.014 90); border-radius:16px; padding:44px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:36px; }
.info-col { display:flex; flex-direction:column; gap:10px; }
.info-col.divider { padding-left:36px; border-left:1px solid oklch(85% 0.014 90); }
.info-col .big-phone { font-size:26px; font-weight:600; color:oklch(24% 0.08 142); }
.badges { display:flex; flex-wrap:wrap; gap:10px; }
.badge { padding:8px 16px; border-radius:999px; background:oklch(97% 0.007 90); border:1px solid oklch(85% 0.014 90); font-size:14px; color:oklch(34% 0.07 142); }

footer { padding:72px 24px 32px; max-width:1200px; margin:0 auto; display:flex; flex-direction:column; gap:48px; }
.footer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:40px; }
.footer-col { display:flex; flex-direction:column; gap:10px; }
.footer-col h4 { font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:oklch(46% 0.06 142); margin:0 0 4px; font-weight:400; }
.footer-col p { margin:0; font-size:14.5px; color:oklch(46% 0.06 142); max-width:34ch; }
.footer-col a { font-size:15px; color:oklch(34% 0.07 142); width:fit-content; }
.footer-col span.area { font-size:15px; color:oklch(34% 0.07 142); }
.footer-bottom { border-top:1px solid oklch(85% 0.014 90); padding-top:24px; font-size:13.5px; color:oklch(52% 0.01 155); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
