/* Wilson Exterior Washing: multi-page additions (nav dropdowns, subpage layouts) */
/* Desktop dropdowns */
.primary-nav .has-drop{position:relative}
.primary-nav .caret{display:inline-block;width:7px;height:7px;margin-left:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg)}
.primary-nav .drop{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,6px);display:block;min-width:250px;padding:10px;background:var(--green);border-radius:18px;box-shadow:0 20px 40px -12px rgba(17,17,17,.5);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility 0s linear .2s}
.primary-nav .drop::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.primary-nav .has-drop:hover .drop,.primary-nav .has-drop:focus-within .drop{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .2s,transform .2s,visibility 0s}
.primary-nav .drop a{padding:10px 16px;border-radius:12px;font-size:15px;white-space:nowrap}
.primary-nav .drop .drop-all{color:var(--orange);font-weight:600}
/* Tight mobile menu */
.mobile-menu-inner{gap:22px}
.mobile-nav a,.mobile-nav summary{font-size:clamp(26px,7vw,32px);padding:5px 16px;line-height:1.2}
.mobile-nav summary{font-family:var(--head);cursor:pointer;list-style:none;display:block;transform:translateY(14px);opacity:0;transition:transform .45s var(--ease),opacity .45s}
.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav summary::after{content:"+";font-family:var(--body);font-size:.7em;margin-left:10px;color:var(--orange)}
.mobile-nav details[open] summary::after{content:"\2212"}
.menu-open .mobile-nav summary{transform:none;opacity:1}
.mobile-nav .m-sub{display:grid;gap:0;padding:4px 0 8px}
.mobile-nav .m-sub a{font-family:var(--body);font-size:16px;font-weight:500;padding:6px 16px;color:var(--orange)}
/* Page hero */
.page-hero{position:relative;color:var(--white);overflow:hidden;isolation:isolate;padding:170px 0 96px;text-align:center}
.page-hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.page-hero .hero-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(17,17,17,.55),rgba(5,53,25,.82))}
.page-hero-inner{max-width:900px}
.page-hero h1{font-size:clamp(48px,6.4vw,92px);line-height:1.04;text-shadow:0 4px 30px rgba(17,17,17,.35)}
.page-hero-copy{max-width:560px;margin:20px auto 32px;font-size:18px;line-height:1.55;text-wrap:balance}
.page-hero-copy:last-child{margin-bottom:0}
/* Shared blocks */
.tint{background:var(--sky)}
.tint .section-head h2{color:var(--green)}
.narrow{max-width:820px}
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
.split-text h2{font-size:clamp(42px,4.6vw,64px);color:var(--green);margin-bottom:22px}
.split-text p{font-size:17px;margin-bottom:16px}
.split-text .btn{margin-top:14px}
.split-img img{width:100%;border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover;box-shadow:0 24px 50px -24px rgba(17,17,17,.5)}
.split-img img.contain{object-fit:contain;box-shadow:none;max-height:420px;margin:0 auto}
.check-list{display:grid;gap:12px;margin-bottom:12px}
.check-list li{position:relative;padding-left:36px;font-size:17px;font-weight:500}
.check-list li::before{content:"";position:absolute;left:0;top:4px;width:22px;height:22px;border-radius:50%;background:var(--orange)}
.check-list li::after{content:"";position:absolute;left:8px;top:8px;width:6px;height:11px;border:solid var(--green);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.why-grid,.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.why-card{background:var(--white);border-radius:var(--radius);padding:34px 30px;text-align:center;box-shadow:0 18px 40px -24px rgba(17,17,17,.4)}
.why-card h3{font-family:var(--body);font-weight:700;font-size:20px;color:var(--green);margin-bottom:10px}
.why-card p{font-size:16px}
.why-card a{color:var(--green);font-weight:600;overflow-wrap:anywhere}
.contact-grid .why-card{border:2px solid var(--green)}
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mini-card{display:block;background:var(--white);border-radius:18px;overflow:hidden;text-decoration:none;box-shadow:0 14px 30px -20px rgba(17,17,17,.45);height:100%;transition:transform .25s var(--ease)}
.mini-card:hover{transform:translateY(-3px)}
.mini-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.mini-card span{display:block;padding:16px 18px 18px;font-weight:700;color:var(--green);line-height:1.3}
.center-cta{text-align:center;margin-top:44px}
.faq-list{display:grid;gap:14px}
.faq-item{background:var(--green);color:var(--white);border-radius:18px;padding:0 24px}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:14px 0;font-weight:600;font-size:18px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--orange);color:var(--green);font-size:22px;line-height:1}
.faq-item[open] summary::after{content:"\2212"}
.faq-item p{padding:0 0 22px;font-size:16px;opacity:.92}
.faq-item a{color:var(--orange)}
.services-more a{color:inherit;font-weight:600}
.review-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.review-wall .review-card{min-height:0}
.subpage .areas .section-head,.subpage .reviews .section-head{margin-bottom:40px}
.hub-grid .service-card h3{font-size:clamp(22px,1.9vw,26px)}
@media (max-width:1024px){
  .split{grid-template-columns:1fr;gap:40px}
  .mini-grid{grid-template-columns:repeat(2,1fr)}
  .review-wall{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .why-grid,.contact-grid,.review-wall{grid-template-columns:1fr}
  .hub-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .page-hero{padding:130px 0 72px}
  .page-hero h1{font-size:clamp(42px,12vw,56px)}
  .page-hero-copy{font-size:16px}
  .page-hero .btn-lg{width:100%}
  .split-text .btn{width:100%}
  .mini-grid{grid-template-columns:1fr 1fr;gap:14px}
  .mini-card span{padding:12px 14px 14px;font-size:14px}
  .why-card{padding:28px 22px}
  .faq-item{padding:0 18px}
  .faq-item summary{font-size:16px}
  .center-cta{margin-top:32px}
  .center-cta .btn{width:100%;white-space:normal;text-align:center}
}
/* Location links */
.city-list a{color:inherit;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px}
.city-list a:hover{color:var(--orange)}
.chip-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.chip-list a{display:inline-flex;align-items:center;min-height:46px;padding:10px 22px;border-radius:999px;background:var(--green);color:var(--white);font-weight:600;text-decoration:none}
.chip-list a:hover{background:var(--black)}
.footer-locs{padding-top:8px;padding-bottom:28px}
.footer-locs ul{display:flex;flex-wrap:wrap;gap:6px 18px}
.footer-locs a{font-size:14px;text-decoration:none;opacity:.85}
.footer-locs a:hover{color:var(--orange);opacity:1}

/* Mobile scale: 8px rhythm, 20px+ side padding, one size set for every page */
@media (max-width:640px){
  .container{width:min(100% - 40px, var(--container))}
  .section{padding:64px 0}
  .section-head{margin-bottom:32px}
  .section-head h2,.split-text h2{font-size:clamp(36px,10.5vw,44px);line-height:1.08}
  .page-hero{padding:120px 0 56px}
  .page-hero h1{font-size:clamp(38px,11vw,48px)}
  .page-hero-copy{margin:16px auto 24px;max-width:340px}
  .hero-kicker{margin-bottom:16px}
  .split{gap:32px}
  .split-text h2{margin-bottom:20px}
  .split-text p,.check-list li{font-size:16px}
  .check-list{gap:10px}
  .split-img img{border-radius:18px}
  .why-grid,.contact-grid{gap:16px}
  .why-card{padding:24px 20px}
  .why-card h3{font-size:18px;margin-bottom:6px}
  .why-card p{font-size:15px}
  .faq-list{gap:12px}
  .faq-item summary{min-height:60px;font-size:16px;line-height:1.35}
  .faq-item summary::after{width:30px;height:30px;font-size:20px}
  .faq-item p{font-size:15px;padding-bottom:18px}
  .mini-grid{gap:12px}
  .mini-card{border-radius:14px}
  .mini-card span{font-size:13px;padding:10px 12px 12px;line-height:1.3}
  .chip-list{gap:10px}
  .chip-list a{min-height:44px;padding:10px 18px;font-size:14px}
  .center-cta{margin-top:32px}
  .btn{padding-left:24px;padding-right:24px}
  .btn-lg{min-height:54px;font-size:14px}
  .plan-grid{gap:24px}
  .review-wall{gap:16px}
  .review-wall .review-card{padding:24px 20px}
  .review-card blockquote{font-size:15px}
  .final-cta{padding:72px 0 80px}
  .final-cta h2{font-size:clamp(38px,11vw,48px)}
  .cta-copy{margin:14px auto 28px}
  .quote-form{margin-top:28px}
  .site-footer{padding-top:56px}
  .footer-grid{gap:32px}
  .footer-locs{padding-top:0;padding-bottom:24px}
  .footer-locs ul{gap:4px 14px}
  .areas-grid{gap:28px}
  .city-list{font-size:14px;line-height:1.9}
}
@media (max-width:370px){
  .mini-grid{grid-template-columns:1fr 1fr}
  .page-hero h1,.final-cta h2{font-size:36px}
  .section-head h2,.split-text h2{font-size:34px}
  .header-pill{gap:10px}
}
.footer-bottom{border-top:0}
@media (max-width:640px){.footer-grid{padding-bottom:32px}}
.split-img img,.mini-card img{height:auto}
@media (max-width:640px){
  .split-img img{aspect-ratio:3/2}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px 20px}
  .footer-grid .footer-brand{grid-column:1/-1}
  .footer-grid .footer-col:nth-child(3){grid-column:1/-1;order:4}
}
/* Reveal staggers on inner pages (reuses homepage [data-reveal]) */
.why-grid>:nth-child(3n+2)[data-reveal],.mini-grid>:nth-child(4n+2)[data-reveal],.review-wall>:nth-child(3n+2)[data-reveal],.hub-grid>:nth-child(3n+2)[data-reveal]{transition-delay:.08s}
.why-grid>:nth-child(3n)[data-reveal],.mini-grid>:nth-child(4n+3)[data-reveal],.review-wall>:nth-child(3n)[data-reveal],.hub-grid>:nth-child(3n)[data-reveal]{transition-delay:.16s}
.mini-grid>:nth-child(4n)[data-reveal]{transition-delay:.24s}
.split-img[data-reveal]{transition-delay:.1s}
/* Smooth FAQ accordion: one icon, plus rotates to X */
.faq-item summary{list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{content:""}
.faq-item summary::before,.faq-item summary::after,.faq-item[open] summary::after{content:none!important;display:none!important}
.faq-ico{position:relative;flex:none;display:block;width:34px;height:34px;border-radius:50%;background:var(--orange);transition:transform .3s var(--ease)}
.faq-ico::before,.faq-ico::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;background:var(--green);border-radius:2px;transform:translate(-50%,-50%)}
.faq-ico::after{width:2px;height:14px}
.faq-item.is-open .faq-ico{transform:rotate(45deg)}
.js .faq-a{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s var(--ease),opacity .32s var(--ease)}
.js .faq-item.is-open .faq-a{grid-template-rows:1fr;opacity:1}
.faq-a>div{overflow:hidden;min-height:0}
@media (max-width:640px){.faq-ico{width:30px;height:30px}}
@media (prefers-reduced-motion:reduce){.js .faq-a{transition:none}}
