
:root { --accent:#1f6f3a; --charcoal:#111514; --clay:#9f5d35; --sun:#f1c45d; --mist:#f5f7f2; --line:#dfe5d7; --text:#24312b; --muted:#657267; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--text); background:#fff; line-height:1.55; letter-spacing:0; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }
.site-header { position:fixed; top:18px; left:0; right:0; z-index:20; pointer-events:none; }
.nav-shell { display:flex; justify-content:center; padding:0 18px; pointer-events:auto; }
.nav-pill { display:inline-flex; align-items:center; gap:30px; width:fit-content; margin:0 auto; padding:10px 14px 10px 18px; border:1px solid rgba(17,21,20,.12); border-radius:999px; background:rgba(255,255,255,.86); backdrop-filter:blur(18px); box-shadow:0 18px 42px rgba(25,38,30,.12); }
.brand { display:flex; align-items:center; min-width:150px; }
.brand img { width:150px; height:auto; max-height:54px; object-fit:contain; }
.nav-links { display:flex; align-items:center; gap:22px; margin:0; font-size:14px; font-weight:700; }
.nav-links a { padding:8px 0; }
.nav-cta,.button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 18px; border-radius:7px; font-weight:800; line-height:1.1; }
.nav-cta,.button.primary { background:var(--accent); color:#fff; }
.button.secondary { background:#fff; color:var(--charcoal); border:1px solid var(--line); }
.mobile-menu-toggle { display:none; width:44px; height:44px; border:0; background:var(--charcoal); border-radius:7px; align-items:center; justify-content:center; flex-direction:column; gap:4px; }
.mobile-menu-toggle span { width:18px; height:2px; background:#fff; display:block; }
.mobile-menu { position:absolute; top:70px; left:18px; right:18px; background:#fff; border:1px solid var(--line); border-radius:8px; padding:14px; box-shadow:0 20px 60px rgba(0,0,0,.16); }
.mobile-menu a { display:block; padding:12px; font-weight:800; }
.hero { min-height:92vh; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); align-items:end; position:relative; overflow:hidden; padding:120px max(28px,6vw) 54px; background:#fff; }
.hero-media { position:absolute; inset:0; z-index:0; }
.hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,14,10,.66), rgba(6,14,10,.12) 52%, rgba(255,255,255,.9)); }
.hero-media img { width:100%; height:100%; object-fit:cover; }
.hero-copy { position:relative; z-index:1; max-width:710px; color:#fff; padding-bottom:5vh; }
.hero-copy h1 { font-size:92px; line-height:.92; margin:10px 0 22px; text-transform:uppercase; font-weight:950; letter-spacing:0; }
.hero-copy p { font-size:21px; max-width:620px; }
.eyebrow { color:var(--clay); text-transform:uppercase; font-weight:900; font-size:12px; letter-spacing:0; margin:0 0 10px; }
.hero-copy .eyebrow { color:#ffe29a; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.intro-band { display:grid; grid-template-columns:1fr auto; gap:28px; align-items:end; padding:58px max(28px,6vw); background:#f7f4ea; }
.intro-copy h2,.section-head h2,.feature-band h2,.page-hero h1,.service-hero h1 { margin:0; color:var(--charcoal); line-height:1.02; letter-spacing:0; }
.intro-copy h2 { font-size:54px; max-width:850px; }
.stat-strip { display:grid; gap:8px; font-weight:900; color:var(--charcoal); }
.stat-strip span { border-left:4px solid var(--sun); padding-left:12px; white-space:nowrap; }
.section { padding:78px max(28px,6vw); }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:28px; }
.section-head h2,.feature-band h2 { font-size:52px; }
.section-head a { font-weight:900; color:var(--accent); }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.service-card { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; display:grid; grid-template-rows:220px 1fr; }
.service-card img { width:100%; height:220px; object-fit:cover; }
.service-card div { padding:22px; }
.service-card h3 { margin:0 0 8px; font-size:22px; line-height:1.15; color:var(--charcoal); }
.service-card p:last-child { margin-bottom:0; color:var(--muted); }
.feature-band { display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:center; background:#eef4ea; }
.feature-band.flip { background:#f7f4ea; }
.feature-band > div { min-width:0; }
.feature-band > div:last-child { padding:70px max(28px,6vw); }
.feature-band img { width:100%; height:620px; object-fit:cover; }
.contact-strip { display:flex; justify-content:space-between; align-items:center; gap:24px; background:#fff; border-top:1px solid var(--line); }
.contact-strip h2 { margin:0; font-size:44px; }
.page-hero,.service-hero { padding:150px max(28px,6vw) 70px; background:#fff; }
.page-hero h1,.service-hero h1 { font-size:74px; max-width:980px; }
.page-hero p:not(.eyebrow),.service-hero p:not(.eyebrow) { max-width:780px; font-size:20px; color:var(--muted); }
.split-hero,.service-hero { display:grid; grid-template-columns:1fr .75fr; gap:44px; align-items:center; }
.split-hero img,.service-hero img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:8px; }
.gallery-grid { padding:0 max(28px,6vw) 84px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.gallery-grid figure { margin:0; position:relative; overflow:hidden; border-radius:8px; background:#eee; }
.gallery-grid img { width:100%; aspect-ratio:1/1; object-fit:cover; transition:transform .25s ease; }
.gallery-grid figure:hover img { transform:scale(1.04); }
.gallery-grid figcaption { position:absolute; left:10px; bottom:10px; background:rgba(255,255,255,.88); border-radius:999px; padding:6px 10px; font-size:12px; font-weight:800; }
.prose { max-width:900px; }
.prose h2,.feature-list h2,.faq-list h2 { font-size:48px; margin:0 0 18px; color:var(--charcoal); }
.area-panel { display:grid; grid-template-columns:1fr .7fr; gap:30px; background:#eef4ea; align-items:center; }
.map-card { min-height:310px; border:1px solid #bdd1b8; border-radius:8px; display:grid; place-items:center; text-align:center; background:radial-gradient(circle at 24% 22%, rgba(241,196,93,.42), transparent 26%), linear-gradient(135deg,#fff,#e6efe2); }
.map-card span { display:block; font-size:80px; font-weight:950; color:var(--accent); line-height:1; }
.faq-list { max-width:980px; }
details { border:1px solid var(--line); border-radius:8px; padding:18px 20px; margin-bottom:12px; background:#fff; }
summary { cursor:pointer; font-weight:900; color:var(--charcoal); }
details p { color:var(--muted); }
.contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:24px; background:#f7f4ea; }
.contact-card,.contact-form { background:#fff; border:1px solid var(--line); border-radius:8px; padding:26px; }
.contact-card h2 { margin-top:0; color:var(--charcoal); }
.contact-card a { font-size:28px; font-weight:950; color:var(--accent); }
.contact-form { display:grid; gap:14px; }
label { display:grid; gap:6px; font-weight:800; }
input,select,textarea { width:100%; border:1px solid #cfd9ca; border-radius:7px; padding:13px 14px; font:inherit; background:#fff; }
.site-footer { background:var(--charcoal); color:#f4f7ef; padding:62px max(28px,6vw) 96px; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:38px; }
.footer-logo { font-size:24px; font-weight:950; margin-top:0; }
.site-footer h2 { font-size:14px; text-transform:uppercase; letter-spacing:0; color:#c5d8bd; }
.site-footer ul { list-style:none; padding:0; margin:0; display:grid; gap:9px; }
.site-footer a { color:#fff; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.16); margin-top:36px; padding-top:20px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; color:#d7dfd4; }
.footer-credit a { text-decoration:underline; }
.sticky-cta { display:none; }
.feature-list ul { display:grid; gap:12px; font-size:20px; }
@media (min-width:1024px) { .mobile-menu-toggle { display:none !important; } }
@media (max-width:1023px) {
  .site-header { top:12px; }
  .nav-pill { width:calc(100vw - 24px); justify-content:space-between; gap:14px; }
  .brand { min-width:0; } .brand img { width:132px; }
  .nav-links,.nav-cta { display:none; }
  .mobile-menu-toggle { display:flex; }
  .hero { min-height:86vh; grid-template-columns:1fr; padding:118px 22px 52px; }
  .hero-media:after { background:linear-gradient(180deg, rgba(8,16,12,.5), rgba(8,16,12,.7)); }
  .hero-copy { padding-bottom:0; }
  .hero-copy h1 { font-size:60px; }
  .hero-copy p { font-size:19px; }
  .intro-copy h2,.section-head h2,.feature-band h2,.prose h2,.feature-list h2,.faq-list h2 { font-size:42px; }
  .page-hero h1,.service-hero h1 { font-size:52px; }
  .contact-strip h2 { font-size:38px; }
  .intro-band,.feature-band,.split-hero,.service-hero,.area-panel,.contact-layout,.footer-grid { grid-template-columns:1fr; }
  .stat-strip { grid-template-columns:1fr; }
  .section-head,.contact-strip,.footer-bottom { align-items:flex-start; flex-direction:column; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .feature-band img { height:420px; }
  .page-hero,.service-hero { padding-top:120px; }
  .sticky-cta { position:fixed; bottom:0; left:0; right:0; display:grid; grid-template-columns:1fr 1fr; z-index:30; }
  .sticky-cta a { min-height:56px; display:grid; place-items:center; color:#fff; font-weight:950; }
  .sticky-cta a:first-child { background:var(--accent); } .sticky-cta a:last-child { background:#0a0a0a; }
  .site-footer { padding-bottom:128px; }
}
@media (max-width:640px) {
  .service-grid,.gallery-grid { grid-template-columns:1fr; }
  .hero-copy h1 { font-size:46px; }
  .hero-copy p { font-size:17px; }
  .intro-copy h2,.section-head h2,.feature-band h2,.prose h2,.feature-list h2,.faq-list h2 { font-size:34px; }
  .page-hero h1,.service-hero h1 { font-size:40px; }
  .contact-strip h2 { font-size:32px; }
  .section,.intro-band,.page-hero,.service-hero { padding-left:18px; padding-right:18px; }
  .service-card { grid-template-rows:200px 1fr; } .service-card img { height:200px; }
}
