/* ============================================================
   TIDY MOM CLEANING — shared site styles
   Brand: lime #DFFF18 + ink #0E0E0E, grunge/industrial
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Anton&family=Space+Mono:wght@400;700&display=swap');

:root{
  --lime:#DFFF18;
  --lime-deep:#c4e600;
  --ink:#0E0E0E;
  --char:#141414;
  --char-2:#1b1b1b;
  --char-3:#232323;
  --line:rgba(255,255,255,.10);
  --text:#c8c8c4;
  --text-dim:#8d8d88;
  --white:#f5f5f0;
  --maxw:1240px;
  --nav-h:74px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Archivo',system-ui,sans-serif;
  background:var(--char);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}

/* ---------- grain texture overlay ---------- */
.grain{position:relative;}
.grain::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.grain > *{position:relative;z-index:1;}

/* ---------- typography helpers ---------- */
.mono{font-family:'Space Mono',monospace;}
.eyebrow{font-family:'Space Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--lime);}
.display{font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:.01em;line-height:.92;font-weight:400;}
h1,h2,h3{letter-spacing:-.02em;line-height:1;}
.section-title{font-family:'Anton',sans-serif;font-weight:400;letter-spacing:.01em;line-height:.94;text-transform:uppercase;font-size:clamp(36px,5.2vw,72px);}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.section{padding:clamp(64px,9vw,120px) 0;position:relative;}
.section--lime{background:var(--lime);color:var(--ink);}
.section--ink{background:var(--ink);}
.section--char{background:var(--char);}

/* ---------- buttons ---------- */
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:14px;letter-spacing:.03em;text-transform:uppercase;padding:15px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-lime{background:var(--lime);color:var(--ink);}
.btn-lime:hover{background:#fff;}
.btn-dark{background:var(--ink);color:var(--lime);}
.btn-dark:hover{background:#000;}
.btn-outline{background:transparent;border-color:currentColor;}
.btn-outline-light{background:transparent;border-color:#fff;color:#fff;}
.btn-outline-light:hover{background:#fff;color:var(--ink);}
.btn-ghost-ink{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn-ghost-ink:hover{background:var(--ink);color:var(--lime);}

/* ---------- tape label ---------- */
.tape{display:inline-block;background:#fff;color:var(--ink);font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:9px 18px;transform:rotate(-2.5deg);}
.tape--lime{background:var(--lime);}

.stars{color:var(--lime);letter-spacing:.16em;font-size:18px;}
.section--lime .stars{color:var(--ink);}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;
  transition:background .25s ease,box-shadow .25s ease,backdrop-filter .25s ease;}
.nav.scrolled{background:rgba(14,14,14,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line);}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;width:100%;}
.nav-logo{display:flex;flex-direction:column;line-height:.9;color:#fff;}
.nav-logo b{font-weight:900;font-size:19px;letter-spacing:-.02em;text-transform:uppercase;}
.nav-logo span{font-family:'Space Mono',monospace;font-size:8.5px;letter-spacing:.3em;font-weight:700;color:var(--lime);margin-top:3px;text-align:justify;text-align-last:justify;}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{font-size:13.5px;font-weight:600;color:#e9e9e6;letter-spacing:.01em;white-space:nowrap;transition:color .15s;}
.nav-links a:hover,.nav-links a.active{color:var(--lime);}
.nav-right{display:flex;align-items:center;gap:18px;}
.nav-phone{font-weight:800;font-size:14px;color:#fff;letter-spacing:.02em;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px;}
.nav-toggle span{display:block;width:24px;height:2.5px;background:#fff;transition:.2s;}

/* tablet: tighten the desktop nav before it collapses */
@media(max-width:1180px){
  .nav-links{gap:22px;}
  .nav-phone{display:none;}
}
/* tablet & below: switch to the hamburger menu */
@media(max-width:1024px){
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .nav-menu-open .nav-links{display:flex;position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:center;text-align:center;
    background:rgba(14,14,14,.98);backdrop-filter:blur(10px);padding:24px 28px 32px;gap:18px;border-top:1px solid var(--line);
    max-height:calc(100vh - var(--nav-h));overflow-y:auto;}
  .nav-menu-open .nav-links a{font-size:18px;}
}
/* small phones: keep the logo + CTA from crowding the toggle */
@media(max-width:430px){
  .nav-right{gap:11px;}
  .nav .btn-lime{padding:11px 15px;font-size:12px;}
  .nav-logo b{font-size:17px;}
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--ink);padding:72px 0 36px;border-top:1px solid var(--line);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;}
.footer-logo b{font-family:'Anton',sans-serif;font-size:34px;color:#fff;text-transform:uppercase;letter-spacing:.01em;line-height:.9;display:block;}
.footer-logo span{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.28em;color:var(--lime);text-transform:uppercase;}
.footer p{color:var(--text-dim);font-size:14px;margin-top:14px;max-width:30ch;}
.footer h4{color:#fff;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-family:'Space Mono',monospace;margin-bottom:18px;}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
.footer ul a{color:var(--text);font-size:14px;transition:color .15s;}
.footer ul a:hover{color:var(--lime);}
.footer-badges{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;}
.footer-badges span{font-family:'Space Mono',monospace;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);border:1px solid var(--line);border-radius:999px;padding:5px 12px;}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);color:var(--text-dim);font-size:12.5px;font-family:'Space Mono',monospace;letter-spacing:.04em;}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;gap:28px;}}
@media(max-width:460px){.footer-grid{grid-template-columns:1fr;}}

/* ============================================================
   REUSABLE BLOCKS
   ============================================================ */
/* trust bar */
.trustbar{background:var(--lime);color:var(--ink);}
.trustbar .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding-top:22px;padding-bottom:22px;}
.trustbar .ti{display:flex;align-items:center;gap:11px;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.04em;}
.trustbar .ti b{font-family:'Anton',sans-serif;font-size:26px;font-weight:400;line-height:1;}

/* service cards */
.cards{display:grid;gap:22px;}
.cards-3{grid-template-columns:repeat(3,1fr);}
.cards-2{grid-template-columns:repeat(2,1fr);}
.card{background:var(--char-2);border:1px solid var(--line);border-radius:16px;padding:34px 30px;transition:border-color .2s,transform .2s;position:relative;overflow:hidden;}
.card:hover{border-color:var(--lime);transform:translateY(-4px);}
.card .num{font-family:'Space Mono',monospace;font-size:12px;color:var(--lime);letter-spacing:.1em;}
.card h3{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;color:#fff;font-size:28px;margin:14px 0 12px;letter-spacing:.01em;line-height:.95;}
.card p{font-size:14.5px;color:var(--text);line-height:1.6;}
.card .price{margin-top:18px;font-weight:800;color:var(--lime);font-size:15px;}
.card .link{margin-top:18px;display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#fff;}
.card:hover .link{color:var(--lime);}

/* checklist */
.checklist{list-style:none;display:grid;gap:13px;}
.checklist li{display:flex;gap:13px;align-items:flex-start;font-size:15px;color:var(--text);line-height:1.45;}
.checklist li::before{content:"";flex:none;width:20px;height:20px;margin-top:2px;border-radius:5px;background:var(--lime);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/16px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/16px no-repeat;}
.section--lime .checklist li{color:#1c1c1c;}
.section--lime .checklist li::before{background:var(--ink);}

/* pricing rows */
.pricerow{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);}
.pricerow:last-child{border-bottom:none;}
.pricerow .pr-name{font-weight:800;font-size:17px;color:#fff;}
.pricerow .pr-desc{font-size:13.5px;color:var(--text-dim);margin-top:4px;max-width:48ch;}
.pricerow .pr-price{font-family:'Anton',sans-serif;font-weight:400;font-size:28px;color:var(--lime);white-space:nowrap;}
.pricerow .pr-price small{font-family:'Space Mono',monospace;font-size:11px;color:var(--text-dim);display:block;text-align:right;letter-spacing:.08em;}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.step .n{font-family:'Anton',sans-serif;font-size:54px;color:var(--lime);line-height:1;}
.section--lime .step .n{color:var(--ink);}
.step h4{color:#fff;font-size:18px;font-weight:800;margin:10px 0 8px;text-transform:uppercase;letter-spacing:.01em;}
.section--lime .step h4{color:var(--ink);}
.step p{font-size:14px;color:var(--text);line-height:1.55;}
.section--lime .step p{color:#2a2a2a;}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.review{background:var(--char-2);border:1px solid var(--line);border-radius:16px;padding:30px 28px;}
.review .stars{font-size:15px;}
.review p{margin:14px 0 20px;font-size:15px;color:var(--white);line-height:1.55;}
.review .who{font-weight:800;font-size:14px;color:#fff;}
.review .where{font-family:'Space Mono',monospace;font-size:11.5px;color:var(--text-dim);letter-spacing:.06em;margin-top:3px;}

/* CTA band */
.ctaband{background:var(--lime);color:var(--ink);text-align:center;}
.ctaband h2{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(40px,6.5vw,88px);line-height:.94;letter-spacing:.01em;}
.ctaband p{font-size:17px;font-weight:600;margin:18px auto 32px;max-width:46ch;}
.ctaband .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* page hero (interior) */
.phero{position:relative;padding-top:calc(var(--nav-h) + 70px);padding-bottom:70px;overflow:hidden;}
.phero .eyebrow{margin-bottom:18px;}
.phero h1{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;color:var(--lime);
  font-size:clamp(50px,9vw,128px);line-height:.9;letter-spacing:.01em;text-shadow:0 0 44px rgba(223,255,24,.25);}
.phero .lede{color:var(--text);font-size:clamp(16px,2vw,19px);max-width:54ch;margin-top:22px;line-height:1.6;}
.phero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px;}

/* misc */
.split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center;}
.split-img{position:relative;border-radius:18px;overflow:hidden;min-height:420px;border:1px solid var(--line);}
.split-img image-slot{position:absolute;inset:0;width:100%;height:100%;min-height:420px;}
.lede{color:var(--text);font-size:18px;line-height:1.65;}
.mt-sm{margin-top:14px;}.mt{margin-top:24px;}.mt-lg{margin-top:44px;}
.area-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px;}
.area-tags span{font-family:'Space Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:7px 14px;}
.section--lime .area-tags span{color:var(--ink);border-color:rgba(0,0,0,.2);}

/* scroll reveal */
@media (prefers-reduced-motion: no-preference){
  [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
  [data-reveal].in{opacity:1;transform:none;}
}

@media(max-width:900px){
  .cards-3,.reviews,.steps{grid-template-columns:1fr 1fr;}
  .split{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:620px){
  .cards-3,.cards-2,.reviews,.steps{grid-template-columns:1fr;}
  .trustbar .wrap{gap:14px;}
}

/* ============================================================
   NAV — SERVICE AREAS MEGA-MENU
   ============================================================ */
.nav-dd{position:relative;}
.nav-dd-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:#e9e9e6;letter-spacing:.01em;cursor:pointer;transition:color .15s;}
.nav-dd-toggle:hover,.nav-dd:hover .nav-dd-toggle,.nav-dd-toggle.active{color:var(--lime);}
.nav-dd-toggle .caret{width:10px;height:10px;flex:none;transition:transform .2s ease;}
.nav-dd:hover .nav-dd-toggle .caret{transform:rotate(180deg);}
.nav-dd-panel{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(8px);
  width:min(860px,92vw);background:rgba(14,14,14,.98);backdrop-filter:blur(12px);
  border:1px solid var(--line);border-radius:18px;padding:24px 26px;opacity:0;visibility:hidden;
  transition:opacity .2s ease,transform .2s ease;box-shadow:0 30px 70px rgba(0,0,0,.55);z-index:120;}
.nav-dd-panel::before{content:"";position:absolute;top:-18px;left:0;right:0;height:18px;}
.nav-dd:hover .nav-dd-panel,.nav-dd:focus-within .nav-dd-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-dd-head{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.nav-dd-head .t{font-family:'Anton',sans-serif;text-transform:uppercase;color:#fff;font-size:21px;letter-spacing:.01em;line-height:1;}
.nav-dd-head .t span{color:var(--lime);}
.nav-dd-head .all{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);white-space:nowrap;}
.nav-dd-head .all:hover{text-decoration:underline;}
.nav-dd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px 16px;}
.nav-dd-grid a{font-size:12.5px;color:#cfcfca;padding:6px 9px;border-radius:8px;font-weight:600;transition:background .15s,color .15s;}
.nav-dd-grid a:hover{background:rgba(223,255,24,.12);color:var(--lime);}

@media(max-width:1024px){
  .nav-dd{width:100%;}
  .nav-dd-toggle{justify-content:center;width:100%;font-size:18px;gap:8px;}
  .nav-dd-panel{position:static;transform:none;opacity:1;visibility:visible;width:100%;
    background:transparent;border:none;border-radius:0;box-shadow:none;backdrop-filter:none;padding:0;display:none;}
  .nav-dd.open .nav-dd-panel{display:block;padding:14px 0 4px;}
  .nav-dd .nav-dd-toggle .caret{transition:transform .2s ease;}
  .nav-dd.open .nav-dd-toggle .caret{transform:rotate(180deg);}
  .nav-dd-panel::before{display:none;}
  .nav-dd-head{margin-bottom:12px;padding-bottom:10px;flex-direction:column;align-items:center;text-align:center;gap:7px;}
  .nav-dd-head .t{font-size:16px;}
  .nav-dd-grid{grid-template-columns:1fr 1fr;gap:2px 12px;max-height:46vh;overflow-y:auto;}
  .nav-dd-grid a{font-size:13.5px;padding:7px 8px;text-align:center;}
}

/* ============================================================
   FOOTER — SERVICE AREAS STRIP
   ============================================================ */
.footer-areas{margin-top:48px;padding-top:30px;border-top:1px solid var(--line);}
.footer-areas .fa-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;}
.footer-areas h4{color:#fff;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-family:'Space Mono',monospace;margin:0;}
.footer-areas .fa-all{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lime);}
.footer-areas .fa-all:hover{text-decoration:underline;}
.footer-areas .fa-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.footer-areas .fa-grid a{font-family:'Space Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--text-dim);border:1px solid var(--line);border-radius:999px;padding:6px 12px;transition:color .15s,border-color .15s;}
.footer-areas .fa-grid a:hover{color:var(--lime);border-color:var(--lime);}

/* ============================================================
   AREA PAGE — service keyword blocks
   ============================================================ */
.svcgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.svcgrid .svc{background:var(--char-2);border:1px solid var(--line);border-radius:16px;padding:32px 30px;transition:border-color .2s,transform .2s;}
.svcgrid .svc:hover{border-color:var(--lime);transform:translateY(-4px);}
.svcgrid .svc .k{font-family:'Space Mono',monospace;font-size:12px;color:var(--lime);letter-spacing:.1em;text-transform:uppercase;}
.svcgrid .svc h3{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;color:#fff;font-size:25px;margin:13px 0 11px;letter-spacing:.01em;line-height:1.02;}
.svcgrid .svc p{font-size:14.5px;color:var(--text);line-height:1.6;}
.svcgrid .svc .price{margin-top:16px;font-weight:800;color:var(--lime);font-size:14px;}
.svcgrid .svc .link{margin-top:16px;display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:#fff;}
.svcgrid .svc:hover .link{color:var(--lime);}
@media(max-width:760px){.svcgrid{grid-template-columns:1fr;}}

/* FAQ */
.faq{display:grid;gap:14px;}
.faq details{background:var(--char-2);border:1px solid var(--line);border-radius:14px;padding:4px 26px;transition:border-color .2s;}
.faq details[open]{border-color:rgba(223,255,24,.4);}
.faq summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:18px;
  font-weight:800;font-size:16.5px;color:#fff;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .pm{flex:none;width:22px;height:22px;position:relative;}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;background:var(--lime);border-radius:2px;}
.faq summary .pm::before{top:10px;left:2px;right:2px;height:2.5px;}
.faq summary .pm::after{left:10px;top:2px;bottom:2px;width:2.5px;transition:transform .2s ease;}
.faq details[open] summary .pm::after{transform:scaleY(0);}
.faq details p{font-size:15px;color:var(--text);line-height:1.65;padding:0 0 24px;max-width:74ch;}
.faq details p a{color:var(--lime);font-weight:700;}

/* nearby areas */
.nearby{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}
.nearby a{display:inline-flex;align-items:center;gap:9px;background:var(--char-2);border:1px solid var(--line);border-radius:12px;
  padding:14px 18px;font-weight:800;font-size:14.5px;color:#fff;transition:border-color .2s,transform .2s,color .2s;}
.nearby a:hover{border-color:var(--lime);color:var(--lime);transform:translateY(-3px);}
.nearby a span{font-family:'Space Mono',monospace;font-size:11px;color:var(--lime);font-weight:700;}
.section--lime .nearby a{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.18);color:var(--ink);}
.section--lime .nearby a span{color:var(--ink);}
.section--lime .nearby a:hover{border-color:var(--ink);}
