/* Roots Outdoor Living and Design — pitch concept
   Mobile-first, earthy warm palette: cream, sand, clay/terracotta, olive, bark. */
:root{
  --cream:#FAF5EE;
  --sand:#F1E7D7;
  --sand-deep:#E5D6BE;
  --clay:#A34A28;
  --clay-dark:#84391F;
  --terra:#C06B3E;
  --gold:#C98F3D;
  --olive:#4A5240;
  --moss:#5C6650;
  --bark:#3B2F2A;
  --bark-soft:#5D4C43;
  --line:#DFCFB8;
  --white:#FFFDF9;
  --shadow:0 10px 30px rgba(59,47,42,.14);
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Manrope",system-ui,-apple-system,sans-serif;
  background:var(--cream);
  color:var(--bark);
  line-height:1.6;
  font-size:16px;
  padding-bottom:60px; /* room for the sticky mobile bar */
}
img{max-width:100%;height:auto;display:block}
a{color:var(--clay);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{width:min(1160px,100% - 2.5rem);margin-inline:auto}
.narrow{width:min(780px,100% - 2.5rem)}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;line-height:1.15;color:var(--bark)}
h2{font-size:clamp(1.7rem,5.5vw,2.6rem);font-weight:600;margin-bottom:.6em}
h3{font-size:1.25rem;font-weight:600}
.eyebrow{
  font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--clay);margin-bottom:.7rem;
}
.section{padding:4rem 0}
.section-alt{background:var(--sand)}
.section-lead{max-width:46rem;color:var(--bark-soft);font-size:1.05rem;margin-bottom:2.2rem}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-weight:800;font-size:1rem;border-radius:999px;padding:.85rem 1.6rem;
  border:2px solid transparent;cursor:pointer;transition:transform .15s ease, background .15s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:var(--clay);color:var(--white)}
.btn-primary:hover{background:var(--clay-dark)}
.btn-ghost{background:rgba(250,245,238,.12);color:var(--white);border-color:rgba(250,245,238,.75)}
.btn-ghost:hover{background:rgba(250,245,238,.25)}
.btn-small{padding:.5rem 1.1rem;font-size:.92rem}
.btn-block{width:100%}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(250,245,238,.96);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
}
.header-inner{
  width:min(1160px,100% - 2.5rem);margin-inline:auto;
  display:flex;align-items:center;gap:1rem;padding:.65rem 0;
}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--bark)}
.brand:hover{text-decoration:none}
.brand-mark{width:42px;height:42px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-family:"Fraunces",Georgia,serif;font-size:1.3rem;letter-spacing:.12em;color:var(--olive)}
.brand-text small{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bark-soft)}
.main-nav{
  display:none;position:absolute;top:100%;left:0;right:0;
  background:var(--cream);border-bottom:1px solid var(--line);
  flex-direction:column;padding:.5rem 1.25rem 1rem;
}
.main-nav.open{display:flex}
.main-nav a{
  color:var(--bark);font-weight:700;padding:.65rem 0;border-bottom:1px solid var(--sand);
}
.main-nav a:last-child{border-bottom:none}
.header-cta{margin-left:auto;display:flex;align-items:center;gap:.7rem}
.header-phone{display:none;font-weight:800;color:var(--olive)}
.header-cta .btn{display:none}
.nav-toggle{
  display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.5rem;
}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--bark);border-radius:2px}

/* Hero */
.hero{position:relative;min-height:44svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--olive)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(43,36,28,.18) 0%,rgba(43,36,28,.28) 45%,rgba(43,36,28,.78) 100%);
}
.hero-content{position:relative;width:min(1160px,100% - 2.5rem);margin-inline:auto;padding:2.2rem 0 1.4rem;color:var(--cream)}
.hero-content .eyebrow{color:var(--sand-deep);text-shadow:0 1px 10px rgba(0,0,0,.55);font-size:.7rem;margin-bottom:.5rem}
.hero-content h1{color:var(--white);font-size:clamp(1.85rem,7.6vw,4.2rem);font-weight:600;margin-bottom:.45em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero-sub{font-size:clamp(.95rem,3.4vw,1.3rem);max-width:34rem;margin-bottom:1.1rem;color:#F5EBDD}
.hero-actions{display:none;flex-wrap:wrap;gap:.6rem}
.hero-actions .btn{padding:.68rem 1.1rem;font-size:.93rem}

/* Trust strip */
.trust-strip{background:var(--olive);color:var(--cream)}
.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;padding:1.4rem 0}
.trust-grid div{display:flex;flex-direction:column}
.trust-grid strong{font-family:"Fraunces",Georgia,serif;font-size:1.12rem;color:var(--white)}
.trust-grid span{font-size:.86rem;color:#D9D2BE}

/* Cards */
.cards{display:grid;gap:1.4rem}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.card img{width:100%;height:210px;object-fit:cover}
.card-body{padding:1.2rem 1.3rem 1.4rem}
.card-body h3{margin-bottom:.4rem;color:var(--olive)}
.card-body p{color:var(--bark-soft);font-size:.97rem}

/* Feature band (Irrigreen) */
.feature-band{background:linear-gradient(135deg,#434C39,#5C6650);color:var(--cream);padding:4rem 0}
.feature-grid{display:grid;gap:1.8rem;align-items:center}
.feature-copy .eyebrow{color:var(--gold)}
.feature-copy h2{color:var(--white)}
.feature-copy p{color:#E7DFCB;margin-bottom:1.5rem;max-width:32rem}
.feature-img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;height:auto}

/* Property care */
.care-grid{display:grid;gap:1.8rem;align-items:start}
.care-img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.care-list{list-style:none;display:grid;gap:1.15rem}
.care-list li{
  background:var(--white);border:1px solid var(--line);border-left:5px solid var(--terra);
  border-radius:12px;padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.15rem;
}
.care-list strong{font-family:"Fraunces",Georgia,serif;font-size:1.08rem;color:var(--olive)}
.care-list span{color:var(--bark-soft);font-size:.95rem}

/* Process */
.steps{display:grid;gap:1.3rem;margin-top:2rem}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow)}
.step-num{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;
  background:var(--clay);color:var(--white);font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.15rem;margin-bottom:.7rem;
}
.step h3{margin-bottom:.35rem;color:var(--olive)}
.step p{color:var(--bark-soft);font-size:.96rem}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.gallery-grid img{width:100%;height:160px;object-fit:cover;border-radius:12px}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;
  background:none;border:none;border-bottom:1px solid var(--line);cursor:pointer;
  font-family:"Fraunces",Georgia,serif;font-size:1.12rem;font-weight:600;color:var(--bark);padding:1.1rem .2rem;
}
.faq-icon{font-size:1.5rem;color:var(--clay);font-family:"Manrope",sans-serif;font-weight:400;transition:transform .2s ease}
.faq-q[aria-expanded="true"] .faq-icon{transform:rotate(45deg)}
.faq-a{display:none;border-bottom:1px solid var(--line);padding:0 .2rem 1.1rem;color:var(--bark-soft)}
.faq-a.open{display:block}

/* Contact */
.contact-grid{display:grid;gap:2.2rem}
.contact-details{font-style:normal;margin:1.2rem 0}
.contact-details p{margin-bottom:.9rem}
.hours{border-collapse:collapse;width:100%;max-width:340px;margin-bottom:1.2rem}
.hours th,.hours td{text-align:left;padding:.32rem .5rem .32rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.hours th{font-weight:800;color:var(--olive);width:52px}
.socials{display:flex;gap:1.2rem;font-weight:700}
.quote-form{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:1.6rem;
}
.quote-form h3{font-size:1.45rem;margin-bottom:1.1rem;color:var(--olive)}
.quote-form label{display:block;font-weight:700;font-size:.92rem;margin-bottom:1rem}
.quote-form input,.quote-form select,.quote-form textarea{
  width:100%;margin-top:.35rem;padding:.75rem .85rem;font:inherit;font-weight:500;
  border:1.5px solid var(--sand-deep);border-radius:10px;background:var(--cream);color:var(--bark);
}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.form-note{margin-top:.9rem;font-size:.9rem;color:var(--bark-soft);text-align:center}

/* Footer */
.site-footer{background:var(--bark);color:#E9DFCF;padding:2.6rem 0 2rem}
.footer-grid{display:grid;gap:1.4rem}
.footer-brand{font-family:"Fraunces",Georgia,serif;font-size:1.35rem;letter-spacing:.1em;color:var(--white)}
.footer-brand span{font-size:.85rem;letter-spacing:.04em;color:#CBB894;display:block;font-family:"Manrope",sans-serif;font-weight:700;text-transform:uppercase}
.site-footer a{color:#EFC98F}
.site-footer nav{display:flex;flex-wrap:wrap;gap:1.1rem}
.site-footer nav a{color:#E9DFCF;font-weight:700}
.footer-credit{font-size:.85rem;color:#A68F76}

/* Sticky mobile bar */
.mobile-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
  box-shadow:0 -4px 18px rgba(59,47,42,.22);
}
.mobile-bar a{
  flex:1;text-align:center;padding:.95rem .5rem;font-weight:800;font-size:1rem;color:var(--white);
}
.mobile-bar a:hover{text-decoration:none}
.mobile-bar-call{background:var(--olive)}
.mobile-bar-quote{background:var(--clay)}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* Tablet / desktop */
@media (min-width:720px){
  .hero-content h1{font-size:clamp(2.3rem,9vw,4.2rem)}
  .hero-sub{font-size:clamp(1.02rem,3.8vw,1.3rem)}
  .cards{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .gallery-grid img{height:210px}
  .trust-grid{grid-template-columns:repeat(4,1fr)}
}
@media (min-width:960px){
  body{padding-bottom:0}
  .mobile-bar{display:none}
  .nav-toggle{display:none}
  .main-nav{
    display:flex;position:static;flex-direction:row;background:none;border:none;padding:0;gap:1.6rem;margin-left:1.5rem;
  }
  .main-nav a{border:none;padding:.3rem 0}
  .header-phone{display:inline}
  .header-cta .btn{display:inline-flex}
  .cards{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .feature-grid{grid-template-columns:1fr 1.1fr}
  .care-grid{grid-template-columns:1fr 1.15fr}
  .contact-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1.4fr 1fr auto;align-items:start}
  .hero{min-height:60svh}
  .hero-content{padding:4.2rem 0 2.6rem}
  .hero-content .eyebrow{font-size:.78rem;margin-bottom:.7rem}
  .hero-actions{display:flex;gap:.8rem}
  .hero-actions .btn{padding:.85rem 1.6rem;font-size:1rem}
  .section{padding:5.5rem 0}
}
