/* Find Dog Wash
   Palette: rinse blue, rubber-duck yellow, cool tile, steel. */
:root{
  --rinse:#0B3D5C;      /* deep water blue: hero, headings, primary buttons */
  --rinse-2:#145B85;    /* lighter rinse for links/hover */
  --duck:#FFD23F;       /* rubber-duck yellow: the one bold accent */
  --tile:#EEF3F6;       /* cool bathroom tile background */
  --steel:#C9D4DC;      /* stainless rules and borders */
  --ink:#1D2B36;        /* body text */
  --muted:#5A6B78;      /* secondary text */
  --white:#FFFFFF;
  --green:#1F7A55;
  --radius-lg:22px; --radius:12px; --radius-sm:8px;
  --display:"Bricolage Grotesque", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", system-ui, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 1.0625rem/1.6 var(--body);color:var(--ink);background:var(--white)}
img,svg{display:block;max-width:100%}
a{color:var(--rinse-2);text-underline-offset:3px}
a:hover{color:var(--rinse)}
:focus-visible{outline:3px solid var(--duck);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--display);color:var(--rinse);line-height:1.08;letter-spacing:-.015em;margin:0}
h2{font-size:1.6rem;font-weight:700;margin-bottom:1rem}
p{margin:0 0 1rem}
.wrap{width:min(1120px, 100% - 2.5rem);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;background:var(--duck);color:var(--rinse);padding:.6rem 1rem;z-index:9}
.skip:focus{left:1rem}
.sample-bar{background:var(--duck);color:var(--rinse);text-align:center;font-size:.9rem;padding:.4rem 1rem;font-weight:700}

/* Header */
.site-head{background:var(--rinse);color:var(--white)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--white);text-decoration:none;font:700 1.2rem/1 var(--display);letter-spacing:-.01em}
.brand:hover{color:var(--white)}
.brand-mark{width:36px;height:36px}
.nav{display:flex;gap:1.4rem}
.nav a{color:#DCE8F0;text-decoration:none;font-weight:700;font-size:.98rem}
.nav a:hover{color:var(--duck)}

/* Home hero */
.hero{position:relative;background:var(--rinse);color:var(--white);padding:3.5rem 0 5.5rem;overflow:visible}
.hero-inner{max-width:none}
.hero-inner>*{max-width:880px}
.hero-title{color:var(--white);font-size:clamp(2.6rem,7vw,5.2rem);font-weight:800;line-height:.98;letter-spacing:-.03em;max-width:14ch;margin-bottom:1.1rem}
.hero-sub{font-size:1.2rem;color:#D4E3EC;max-width:52ch;margin-bottom:2rem}
.hero-edge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:46px;fill:var(--white)}
.finder{position:relative;display:flex;background:var(--white);border-radius:999px;padding:.4rem;max-width:620px;box-shadow:0 0 0 4px var(--duck)}
.finder-input{flex:1;min-width:0;border:0;background:transparent;font:400 1.15rem var(--body);color:var(--ink);padding:.75rem 1.2rem}
.finder-input:focus{outline:none}
.finder:focus-within{box-shadow:0 0 0 4px var(--duck),0 0 0 8px rgba(255,210,63,.35)}
.finder-go{border:0;border-radius:999px;background:var(--duck);color:var(--rinse);font:700 1.05rem var(--display);padding:.75rem 1.5rem;cursor:pointer}
.finder-go:hover{background:#FFDD66}
.finder-list{position:absolute;left:0;right:0;top:calc(100% + .6rem);margin:0;padding:.4rem;list-style:none;background:var(--white);border-radius:16px;box-shadow:0 12px 32px rgba(11,61,92,.25);z-index:5;color:var(--ink)}
.finder-list li{padding:.6rem .9rem;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;gap:1rem}
.finder-list li[aria-selected="true"],.finder-list li:hover{background:var(--tile)}
.finder-list .count{color:var(--muted);font-size:.9rem}
.finder-alt{margin:1rem 0 0;color:#D4E3EC}
.link-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--duck);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.finder-msg{min-height:1.5rem;margin:.5rem 0 0;font-size:.95rem}
.hero .finder-msg{color:var(--duck)}

/* Blocks */
.block{padding:3.5rem 0 1rem}
.block-sm{padding:1.5rem 0}
.band{background:var(--tile);margin-top:3rem}
.band .block{padding:3.5rem 0}
.lede{font-size:1.15rem;color:var(--muted);max-width:62ch}
.count{font-variant-numeric:tabular-nums}

.state-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 2rem}
.state-grid a{display:flex;justify-content:space-between;align-items:baseline;padding:.75rem 0;border-bottom:1px solid var(--steel);color:var(--ink);text-decoration:none;font-weight:700}
.state-grid a:hover{color:var(--rinse-2)}
.state-grid .count{color:var(--muted);font-weight:400}

.city-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.city-pills a{display:inline-flex;gap:.55rem;align-items:baseline;padding:.5rem 1rem;border:1.5px solid var(--steel);border-radius:999px;color:var(--rinse);text-decoration:none;font-weight:700}
.city-pills a:hover{border-color:var(--rinse);background:var(--tile)}
.city-pills .count{color:var(--muted);font-weight:400;font-size:.9rem}

.split{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start}
.steps{margin:0;padding:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding:0 0 1.4rem 3.4rem;color:var(--muted)}
.steps li::before{content:counter(s);position:absolute;left:0;top:-.1rem;width:2.3rem;height:2.3rem;border-radius:50%;background:var(--duck);color:var(--rinse);font:800 1.1rem/2.3rem var(--display);text-align:center}
.steps strong{display:block;color:var(--ink)}

.faq details{border-bottom:1px solid var(--steel);max-width:760px}
.faq summary{cursor:pointer;padding:1.05rem 0;font:700 1.15rem var(--display);color:var(--rinse);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:500;font-size:1.5rem;line-height:1;color:var(--muted)}
.faq details[open] summary::after{content:"−"}
.faq details p{color:var(--muted);max-width:64ch}

/* Inner pages */
.crumbs ol{list-style:none;margin:0;padding:1.4rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem;font-size:.92rem;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--steel)}
.crumbs a{color:var(--muted)}
.page-head{padding:1.2rem 0 1rem}
.page-head h1{font-size:clamp(2rem,4.6vw,3.3rem);font-weight:800;letter-spacing:-.025em;max-width:22ch;margin-bottom:.8rem}

.city-group h2 a{color:inherit;text-decoration:none}
.city-group h2 a:hover{text-decoration:underline}
.loc-list{border-top:2px solid var(--rinse)}
.loc{display:flex;justify-content:space-between;gap:1.5rem;padding:1.3rem 0;border-bottom:1px solid var(--steel)}
.loc-main{min-width:0}
.loc-type{display:inline-block;font-size:.82rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;margin-bottom:.45rem;background:var(--tile);color:var(--rinse)}
.loc-type.t-car_wash{background:#E3EEF9}
.loc-type.t-standalone{background:#FFF3C4}
.loc-name{font-size:1.35rem;font-weight:700;margin-bottom:.25rem}
.loc-name a{color:var(--rinse);text-decoration:none}
.loc-name a:hover{text-decoration:underline}
.loc-addr{color:var(--muted);margin-bottom:.6rem}
.facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem 1.2rem;font-size:.95rem}
.facts li{display:flex;align-items:center;gap:.4rem;color:var(--ink)}
.facts svg{width:18px;height:18px;fill:none;stroke:var(--rinse-2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.facts li.hi span{font-weight:700;color:var(--green)}
.facts li.hi svg{stroke:var(--green)}
.facts li.no{color:var(--muted)}
.facts li.no svg{stroke:var(--muted)}
.loc-actions{display:flex;flex-direction:column;gap:.5rem;flex:none;align-items:stretch}
.btn{display:inline-flex;justify-content:center;align-items:center;padding:.6rem 1.15rem;border-radius:999px;font:700 .98rem var(--display);text-decoration:none;white-space:nowrap;border:2px solid var(--rinse);cursor:pointer}
.btn-solid{background:var(--rinse);color:var(--white)}
.btn-solid:hover{background:var(--rinse-2);border-color:var(--rinse-2);color:var(--white)}
.btn-line{background:var(--white);color:var(--rinse)}
.btn-line:hover{background:var(--tile);color:var(--rinse)}

.city-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2.5rem;align-items:start}
.map-col{position:sticky;top:1rem}
.map{height:460px;border-radius:var(--radius-lg);background:var(--tile);overflow:hidden;border:1px solid var(--steel)}
.map-sm{height:280px}
.fix-note{color:var(--muted);font-size:.95rem;padding:1rem 0 3rem}

.detail{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:3rem;padding:1rem 0 3.5rem}
.detail-title{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800;letter-spacing:-.025em;margin-bottom:.6rem}
.detail-addr{display:flex;gap:.5rem;align-items:flex-start;color:var(--muted);font-size:1.1rem}
.detail-addr svg{width:22px;height:22px;fill:none;stroke:var(--rinse-2);stroke-width:1.8;flex:none;margin-top:.15rem}
.detail-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.2rem 0 2.2rem}
.detail h2{font-size:1.3rem;margin:1.8rem 0 .8rem}
.detail .facts{flex-direction:column;gap:.7rem;font-size:1.05rem}
.detail .facts svg{width:22px;height:22px}
.detail-notes{margin-top:1rem;padding:1rem 1.2rem;background:var(--tile);border-radius:var(--radius);max-width:60ch}
.hours{list-style:none;margin:0;padding:0}
.hours li{padding:.35rem 0;border-bottom:1px dashed var(--steel);max-width:420px}
.promo{margin-top:2rem;padding:1.3rem 1.4rem;background:#FFF3C4;border-left:6px solid var(--duck);border-radius:var(--radius)}
.promo h2{margin:0 0 .4rem;font-size:1.2rem}
.promo p{color:var(--ink);max-width:56ch}
.checked{color:var(--muted);font-size:.92rem;margin-top:2rem}
.side-h{font-size:1.15rem;margin:1.8rem 0 .6rem}
.nearby{list-style:none;margin:0;padding:0}
.nearby li{padding:.7rem 0;border-bottom:1px solid var(--steel)}
.nearby a{display:block;font-weight:700;text-decoration:none;color:var(--rinse)}
.nearby a:hover{text-decoration:underline}
.nearby span{color:var(--muted);font-size:.92rem}

.near-controls{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin:.5rem 0}
.near-or{margin:0;color:var(--muted)}
.near-list{list-style:none;margin:1rem 0 3rem;padding:0;border-top:2px solid var(--rinse)}
.near-list:empty{border:0}
.near-list li{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--steel)}
.near-list .dist{font:800 1.3rem var(--display);color:var(--rinse);white-space:nowrap}
.near-list .dist small{display:block;font:400 .85rem var(--body);color:var(--muted);text-align:right}
.near-list a{font:700 1.2rem var(--display);color:var(--rinse);text-decoration:none}
.near-list a:hover{text-decoration:underline}
.near-list p{margin:.15rem 0 0;color:var(--muted)}
.near-list .open{color:var(--green);font-weight:700}

.prose{max-width:720px;padding-bottom:3.5rem}
.prose h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:800;letter-spacing:-.025em;margin:1rem 0 1.2rem}
.guide-list{padding-left:1.2rem}
.guide-list li{margin-bottom:.5rem;color:var(--muted)}

/* Footer */
.site-foot{background:var(--rinse);color:#C8D9E4;margin-top:2rem}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;padding:3rem 0 2rem}
.foot-brand{font:700 1.3rem var(--display);color:var(--white);margin-bottom:.4rem}
.foot-note{max-width:44ch;font-size:.95rem}
.site-foot nav{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem;align-content:start}
.site-foot nav a{color:#E4EEF4;text-decoration:none;font-size:.95rem}
.site-foot nav a:hover{color:var(--duck)}
.foot-base{border-top:1px solid rgba(255,255,255,.15);padding:1.2rem 0 1.6rem;font-size:.85rem}

/* Leaflet pin */
.fdw-pin{width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--duck);border:3px solid var(--rinse);transform:rotate(-45deg)}

@media (max-width:860px){
  .split,.city-layout,.detail{grid-template-columns:1fr;gap:1.5rem}
  .map-col{position:static;order:-1}
  .map{height:260px}
  .foot-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:1rem}
  .nav{gap:1rem}
  .nav a[href$="guides/"]{display:none}
  .hero{padding:2.4rem 0 4.5rem}
  .hero-sub{font-size:1.05rem}
  .finder-go{padding:.75rem 1.1rem}
  .loc{flex-direction:column;gap:.9rem}
  .loc-actions{flex-direction:row}
  .loc-actions .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Tags, controls, hours table */
.loc-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .45rem}
.loc-tags .loc-type{margin:0}
.tag-verified,.tag-open,.tag-chain{display:inline-block;font-size:.82rem;font-weight:700;padding:.15rem .6rem;border-radius:999px}
.tag-verified{background:var(--rinse);color:var(--white)}
.tag-verified::before{content:"✓ "}
.tag-chain{background:var(--white);border:1.5px solid var(--steel);color:var(--rinse);text-decoration:none}
.tag-open.is-open{background:#E2F3EA;color:var(--green)}
.tag-open.is-closed{background:var(--tile);color:var(--muted)}
.loc-fix{margin:.55rem 0 0;font-size:.85rem}
.loc-fix a{color:var(--muted)}
.controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1rem}
.sort{display:flex;align-items:center;gap:.4rem;font-weight:700;color:var(--rinse);margin-right:.4rem}
.sort select{font:inherit;font-weight:400;padding:.4rem .6rem;border:1.5px solid var(--steel);border-radius:10px;background:var(--white);color:var(--ink)}
.chip{font:700 .92rem var(--body);padding:.42rem .9rem;border-radius:999px;border:1.5px solid var(--steel);background:var(--white);color:var(--rinse);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--rinse);border-color:var(--rinse);color:var(--white)}
.controls-count{color:var(--muted);font-size:.9rem;margin-left:.3rem}
.empty-note{padding:1.2rem 0;color:var(--muted)}
.link-btn.dark{color:var(--rinse-2)}
table.hours{border-collapse:collapse;max-width:420px;width:100%}
table.hours th,table.hours td{text-align:left;padding:.4rem 0;border-bottom:1px dashed var(--steel);font-weight:400}
table.hours th{width:9rem;color:var(--muted)}
table.hours tr.today th,table.hours tr.today td{font-weight:700;color:var(--ink)}
.faq details:first-of-type{border-top:1px solid var(--steel)}

.loc-confirm{margin:.5rem 0 0;font-size:.9rem;color:#7A5A00;background:#FFF8DC;display:inline-block;padding:.2rem .6rem;border-radius:8px}
/* Guides */
.lede{font-size:1.15rem;color:var(--muted);max-width:60ch}
.guide-cards{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:1rem}
.guide-cards a{display:block;padding:1.1rem 1.25rem;border:1px solid var(--steel);border-radius:var(--radius);background:var(--white);text-decoration:none;color:var(--ink)}
.guide-cards a:hover{border-color:var(--rinse-2);box-shadow:0 2px 0 var(--duck)}
.guide-cards strong{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:1.2rem;color:var(--rinse);margin-bottom:.25rem}
.guide-cards span{display:block;color:var(--muted)}
.guide-cards em{display:block;margin-top:.4rem;font-style:normal;font-size:.85rem;color:var(--muted)}
.guide-cards.small strong{font-size:1.05rem}
.guide-meta{color:var(--muted);font-size:.95rem;margin:-.6rem 0 1.6rem}
.guide h2{font-size:1.55rem;margin:2.2rem 0 .6rem}
.guide h3{font-size:1.2rem;margin:1.6rem 0 .4rem}
.guide p,.guide li{line-height:1.7}
.guide ul,.guide ol{padding-left:1.3rem}
.guide li{margin-bottom:.4rem}
.guide table{border-collapse:collapse;width:100%;margin:1.2rem 0;font-size:.97rem}
.guide th,.guide td{border-bottom:1px solid var(--steel);padding:.55rem .6rem;text-align:left;vertical-align:top}
.guide th{background:var(--tile);font-weight:700}
.guide blockquote{margin:1.4rem 0;padding:.9rem 1.2rem;background:var(--tile);border-left:5px solid var(--rinse-2);border-radius:var(--radius)}
.guide blockquote p{margin:0}
.guide .sources{font-size:.9rem;color:var(--muted)}
.guide-find{margin:2.5rem 0 1rem;padding:1.4rem;background:var(--rinse);border-radius:var(--radius);color:#fff}
.guide-find h2{color:#fff;margin:0 0 .9rem;font-size:1.35rem}
.guide-find .finder-alt,.guide-find .finder-msg{color:#dfe9f0}
.guide-find .link-btn{color:var(--duck)}
.related-h{font-size:1.3rem;margin-top:2.4rem}
