/* ============================================================
   F.O.M. Landscaping — Concept 1: "Heritage Crest"
   Collegiate / soccer-club badge feel. Maroon + cream + gold.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700;9..144,900&family=Libre+Franklin:wght@400;500;600;700&display=swap');

:root{
  --maroon:#141e30;
  --maroon-deep:#0e1521;
  --cream:#f3ead4;
  --paper:#fbf6ea;
  --gold:#c39a4d;
  --gold-deep:#7a5a24;
  --ink:#241014;
  --shadow:0 18px 40px -22px rgba(36,16,20,.55);
  --maxw:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Libre Franklin',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--gold);outline-offset:2px;
}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;line-height:1.05;margin:0 0 .4em;font-weight:700}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{
  font-family:'Libre Franklin',sans-serif;
  text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;font-weight:700;
  color:var(--gold-deep);margin:0 0 14px;
}
.hero .eyebrow{color:var(--gold)}

/* ---- Crest ---- */
.crest{object-fit:contain}

/* ---- Top bar ---- */
.topbar{background:var(--maroon-deep);color:var(--cream);font-size:.82rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;gap:16px}
.topbar a{color:var(--cream);text-decoration:none;font-weight:600;letter-spacing:.02em}
.topbar .dot{opacity:.5;margin:0 10px}

/* ---- Nav ---- */
.nav{
  background:var(--maroon);color:var(--cream);
  border-bottom:4px solid var(--gold);
  position:sticky;top:0;z-index:50;
}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:20px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--cream)}
.brand .crest{width:44px;height:auto}
.brand b{font-family:'Fraunces',serif;font-size:1.15rem;letter-spacing:.02em;display:block;line-height:1}
.brand span{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;opacity:.8}
.menu{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.menu a{
  color:var(--cream);text-decoration:none;font-weight:600;font-size:.9rem;
  text-transform:uppercase;letter-spacing:.08em;padding:6px 0;position:relative;
}
.menu a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--gold);transition:right .25s}
.menu a:hover::after,.menu a.active::after{right:0}
.menu a.active{color:#fff}

/* ---- Skip link ---- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--gold);color:var(--maroon-deep);padding:12px 20px;font-weight:700;text-decoration:none;
}
.skip-link:focus{left:24px;top:8px}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---- Mobile nav toggle + drawer ---- */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:40px;height:40px;padding:0;background:transparent;border:0;cursor:pointer;
}
.nav-toggle span{display:block;width:100%;height:2px;background:var(--cream);transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.drawer-overlay{
  position:fixed;inset:0;background:rgba(14,21,33,.55);opacity:0;pointer-events:none;
  transition:opacity .25s;z-index:60;
}
.drawer-overlay.open{opacity:1;pointer-events:auto}

.mobile-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(320px,84vw);
  background:var(--maroon);color:var(--cream);z-index:70;
  transform:translateX(100%);transition:transform .28s ease;
  padding:26px 26px 40px;overflow-y:auto;
  box-shadow:-18px 0 40px -22px rgba(0,0,0,.6);
}
.mobile-drawer.open{transform:translateX(0)}
.mobile-drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.mobile-drawer-head .crest{width:36px}
.mobile-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.mobile-menu a{
  display:block;color:var(--cream);text-decoration:none;font-weight:600;font-size:1.05rem;
  text-transform:uppercase;letter-spacing:.06em;padding:14px 4px;border-bottom:1px solid rgba(243,234,212,.14);
}
.mobile-menu a.active{color:var(--gold)}
.mobile-drawer .btn{display:block;text-align:center;margin-top:22px}
.mobile-drawer .drawer-phone{display:block;margin-top:18px;text-align:center;color:var(--cream);font-weight:700;text-decoration:none}
body.drawer-lock{overflow:hidden}

/* ---- Buttons ---- */
.btn{
  display:inline-block;text-decoration:none;font-weight:700;
  padding:14px 26px;border-radius:2px;letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;
  transition:transform .15s,box-shadow .2s;cursor:pointer;border:0;
}
.btn-gold{background:var(--gold);color:var(--maroon-deep);box-shadow:var(--shadow)}
.btn-gold:hover{transform:translateY(-2px)}
.btn-outline{background:transparent;border:2px solid var(--cream);color:var(--cream)}
.btn-outline:hover{background:var(--cream);color:var(--maroon)}
.btn-maroon{background:var(--maroon);color:var(--cream)}
.btn-maroon:hover{transform:translateY(-2px)}

/* ---- Hero ---- */
.hero{
  position:relative;color:var(--cream);
  background:
    radial-gradient(120% 90% at 80% 0%,rgba(195,154,77,.22),transparent 55%),
    linear-gradient(160deg,var(--maroon) 0%,var(--maroon-deep) 100%);
  overflow:hidden;
}
.hero::before{ /* subtle field-stripe texture */
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 60px,transparent 60px 120px);
  pointer-events:none;
}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding:70px 24px 84px;position:relative}
.hero h1{font-size:clamp(2.6rem,6vw,4.4rem);color:#fff}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero p.lead{font-size:1.15rem;max-width:46ch;opacity:.92;margin:0 0 30px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-cta .phone{font-weight:700;letter-spacing:.04em;text-decoration:none;color:var(--cream)}
.hero-badge{display:flex;justify-content:center}
.hero-badge .crest{width:min(320px,80%);height:auto;filter:drop-shadow(0 24px 40px rgba(0,0,0,.4))}
.trust{display:flex;gap:26px;flex-wrap:wrap;margin-top:38px;padding-top:24px;border-top:1px solid rgba(243,234,212,.25)}
.trust div{font-size:.86rem;opacity:.9}
.trust b{display:block;font-family:'Fraunces',serif;font-size:1.5rem;color:var(--gold)}

/* ---- Section base ---- */
section{padding:78px 0}
.section-head{max-width:60ch;margin-bottom:48px}
.section-head h2{font-size:clamp(2rem,4vw,3rem)}
.muted{color:#6a5459}

/* ---- Services grid ---- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--maroon);border:2px solid var(--maroon);border-radius:4px;overflow:hidden}
.svc{background:var(--paper);padding:30px 26px;transition:background .2s,color .2s}
.svc .num{font-family:'Fraunces',serif;font-size:.9rem;color:var(--gold-deep);letter-spacing:.1em}
.svc h3{font-size:1.3rem;margin:.4em 0 .3em}
.svc p{margin:0;font-size:.92rem;color:#6a5459}
.svc:hover{background:var(--maroon);color:var(--cream)}
.svc:hover .num{color:var(--gold)}
.svc:hover p{color:rgba(243,234,212,.85)}

/* ---- Split band ---- */
.band{background:var(--cream)}
.band .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.figure{
  aspect-ratio:4/3;border-radius:6px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--maroon),var(--maroon-deep));
  box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;
}
.figure .figure-photo{width:100%;height:100%;object-fit:cover}
.figure .cap{position:absolute;bottom:0;left:0;right:0;padding:14px 18px;background:linear-gradient(transparent,rgba(0,0,0,.5));color:var(--cream);font-size:.8rem;letter-spacing:.04em}
.checklist{list-style:none;margin:22px 0 0;padding:0}
.checklist li{padding:10px 0 10px 34px;position:relative;border-bottom:1px dashed rgba(110,34,48,.25)}
.checklist li::before{content:"✦";position:absolute;left:0;color:var(--gold);font-size:1.1rem}

/* ---- Quote ---- */
.quote{background:var(--maroon);color:var(--cream);text-align:center}
.quote blockquote{max-width:800px;margin:0 auto;font-family:'Fraunces',serif;font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.3;font-style:italic}
.quote .who{margin-top:22px;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;color:var(--gold)}

/* ---- CTA strip ---- */
.cta{background:var(--gold);color:var(--maroon-deep);text-align:center}
.cta h2{font-size:clamp(1.8rem,4vw,2.8rem)}
.cta .phone-big{font-family:'Fraunces',serif;font-size:clamp(1.8rem,5vw,3rem);text-decoration:none;color:var(--maroon-deep);display:inline-block;margin-top:8px}

/* ---- Contact ---- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.info-card{background:var(--cream);border-left:5px solid var(--gold);padding:26px 28px;border-radius:0 6px 6px 0;margin-bottom:18px}
.info-card h3{margin:0 0 4px;font-size:1.1rem}
.info-card a{color:var(--maroon);font-weight:700;text-decoration:none;font-size:1.25rem}
.info-card p{margin:0;color:#6a5459}
form label{display:block;font-weight:600;font-size:.85rem;margin:16px 0 6px;text-transform:uppercase;letter-spacing:.05em}
form input,form select,form textarea{
  width:100%;padding:13px 14px;border:1.5px solid #d8c9b0;border-radius:3px;background:#fff;font:inherit;color:var(--ink);
}
form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--maroon)}
.form-status{margin-top:18px;padding:14px 18px;border-radius:3px;font-size:.92rem;display:none}
.form-status.show{display:block}
.form-status.success{background:var(--cream);border-left:5px solid var(--gold);color:var(--ink)}
.form-status.error{background:#fbeceb;border-left:5px solid #b8443a;color:var(--ink)}

/* ---- Page hero (inner) ---- */
.page-hero{background:linear-gradient(160deg,var(--maroon),var(--maroon-deep));color:var(--cream);padding:56px 0}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);color:#fff}
.page-hero p{max-width:56ch;opacity:.9;margin:0}
.crumbs{font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}

/* ---- Footer ---- */
.footer{background:var(--maroon-deep);color:var(--cream);padding:52px 0 26px}
.footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.footer .crest{width:64px;margin-bottom:14px}
.footer h3{font-family:'Fraunces',serif;color:var(--gold);margin:0 0 14px;font-size:1rem}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin-bottom:8px}
.footer a{color:rgba(243,234,212,.85);text-decoration:none;font-size:.92rem}
.footer a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(243,234,212,.2);margin-top:34px;padding-top:20px;font-size:.78rem;opacity:.7;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ---- Responsive ---- */
@media(max-width:900px){
  .hero .wrap,.band .wrap,.contact-grid,.footer .wrap{grid-template-columns:1fr}
  .hero-badge{order:-1}
  .hero-badge .crest{width:220px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .menu,.nav .btn-gold{display:none}
  .nav-toggle{display:flex}
  .gallery-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .svc-grid{grid-template-columns:1fr}
  .topbar{display:none}
  .gallery-grid{grid-template-columns:1fr}
}

/* ---- Gallery ---- */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery-item{
  aspect-ratio:4/3;border-radius:6px;overflow:hidden;position:relative;
  background:linear-gradient(135deg,var(--maroon),var(--maroon-deep));
  box-shadow:var(--shadow);cursor:pointer;border:0;padding:0;display:block;width:100%;
}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item.placeholder{
  cursor:default;color:var(--cream);display:flex;align-items:center;justify-content:center;
  text-align:center;padding:20px;font-size:.85rem;letter-spacing:.04em;opacity:.75;
}
.lightbox{
  position:fixed;inset:0;background:rgba(14,21,33,.9);z-index:80;
  display:none;align-items:center;justify-content:center;padding:32px;
}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1100px,92vw);max-height:88vh;border-radius:6px;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.lightbox-close{
  position:absolute;top:22px;right:26px;background:transparent;border:0;color:var(--cream);
  font-size:2rem;line-height:1;cursor:pointer;padding:8px;
}

/* ---- Legal pages ---- */
.legal p,.legal li{color:#6a5459}
.legal h2{margin-top:1.6em}
