/* Refined public components: homepage facts strip, package comparison table, fundraiser
   steps, FAQ layout and rows, Google rating summary and review wall.
   Loaded after every other stylesheet. Colors come from the tokens in site.css
   (--navy, --text, --muted, --gold, --orange); the only additions are translucent
   whites for hairlines and quiet surfaces. No animation, so nothing to reduce. */
:root{--refined-surface:#ffffff08;--refined-rule:#ffffff1f;--refined-rule-strong:#ffffff38;--refined-radius:14px;--refined-star:#ffbf47}

/* Homepage facts strip (replaces the numbered link board) */
.fact-strip{position:relative;z-index:5;margin-top:-66px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--refined-rule);border-radius:var(--refined-radius);background:#07122bf0;overflow:hidden}
.fact-strip a{display:flex;flex-direction:column;gap:6px;padding:22px 26px;color:var(--text);text-decoration:none;min-width:0}
.fact-strip a+a{border-left:1px solid var(--refined-rule)}
.fact-strip strong{font:700 clamp(26px,3vw,34px)/1 Bricolage,system-ui,sans-serif;letter-spacing:-.01em;white-space:nowrap}
.fact-strip span{color:var(--muted);font-size:15px;line-height:1.4}
.fact-strip a:hover span,.fact-strip a:focus-visible span{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.fact-strip a:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
@media (max-width:720px){
  .fact-strip{grid-template-columns:minmax(0,1fr);margin-top:-36px}
  .fact-strip a{flex-direction:row;align-items:baseline;gap:14px;padding:15px 18px}
  .fact-strip a+a{border-left:0;border-top:1px solid var(--refined-rule)}
  .fact-strip strong{font-size:22px;min-width:6.2ch}
}

/* Package comparison table (replaces the three "What's in each wash" cards) */
.compare-table-scroll{position:relative;max-width:880px;margin:0 auto;overflow-x:auto;border:1px solid var(--refined-rule);border-radius:var(--refined-radius);background:#07122bb8}
.compare-table{width:100%;min-width:520px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.compare-table th,.compare-table td{padding:14px 18px;border-bottom:1px solid var(--refined-rule);text-align:center;font-size:15px}
.compare-table thead th{vertical-align:bottom;padding-top:22px;font-weight:500}
.compare-table thead th:first-child,.compare-table th[scope=row]{text-align:left;font-weight:500;color:var(--muted)}
.compare-table__tier{display:block;font:700 19px/1.2 Bricolage,system-ui,sans-serif;color:var(--text)}
.compare-table__price{display:block;margin-top:4px;color:var(--muted);font-size:14px}
.compare-table .is-yes{color:var(--text);font-weight:700}
.compare-table .is-no{color:#ffffff40}
.compare-table .is-top{background:var(--refined-surface)}
.compare-table thead .is-top{box-shadow:inset 0 2px 0 var(--orange)}
.compare-table tfoot th,.compare-table tfoot td{border-bottom:0;color:var(--muted);font-size:14px}
.compare-table__unit{white-space:nowrap}
@media (max-width:560px){
  .compare-table{min-width:0;table-layout:fixed}
  .compare-table thead th:first-child,.compare-table th[scope=row]{width:36%;padding-left:12px}
  .compare-table th,.compare-table td{padding:11px 5px;font-size:13px}
  .compare-table__tier{font-size:14px;line-height:1.15}
  .compare-table__price{font-size:12px}
  .compare-table__unit{display:block}
}

/* Community fundraiser steps (a real sequence, so the numbers stay) */
.steps{list-style:none;margin:0 auto;padding:0;max-width:680px}
.steps__item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:20px;padding-bottom:30px}
.steps__item:last-child{padding-bottom:0}
.steps__item:not(:last-child):before{content:'';position:absolute;left:19.5px;top:46px;bottom:6px;width:1px;background:var(--refined-rule-strong)}
.steps__marker{width:40px;height:40px;border-radius:50%;border:1px solid var(--refined-rule-strong);display:grid;place-items:center;font:700 16px/1 Bricolage,system-ui,sans-serif;color:var(--gold);background:var(--navy)}
.steps__body h3{margin:7px 0 6px;font-size:20px}
.steps__body p{margin:0;color:var(--muted)}

/* FAQ page: topics and a call card beside the questions */
.faq-layout{display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:56px;align-items:start}
.faq-aside{position:sticky;top:110px;display:grid;gap:28px}
.faq-aside__label{margin:0 0 8px;color:var(--muted);font-size:13px;font-weight:600}
.faq-topics ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.faq-topics a{display:block;padding:6px 0;color:var(--text);text-decoration:none}
.faq-topics a:hover,.faq-topics a:focus-visible{color:var(--gold)}
.faq-call{padding:22px;border:1px solid var(--refined-rule);border-radius:var(--refined-radius);background:var(--refined-surface)}
.faq-call h2{margin:0 0 8px;font-size:20px}
.faq-call p{margin:0 0 12px;color:var(--muted);font-size:15px}
.faq-call__phone{display:block;margin:4px 0;font:700 24px/1.2 Bricolage,system-ui,sans-serif;color:var(--text);text-decoration:none}
.faq-call .micro{margin-bottom:16px}
.faq-main .faq-group:first-child h2{margin-top:0}
@media (max-width:900px){
  .faq-layout{grid-template-columns:minmax(0,1fr);gap:36px}
  .faq-aside{position:static;order:2}
  .faq-topics{display:none}
}

/* FAQ rows everywhere: hairline dividers and a chevron instead of boxed rows and a plus */
.faq-group details{background:transparent;border:0;border-bottom:1px solid var(--refined-rule);border-radius:0;margin:0}
.faq-group h2+details{border-top:1px solid var(--refined-rule)}
.faq-group summary{padding:20px 44px 20px 0}
.faq-group summary:hover{background:transparent;color:var(--gold)}
.faq-group summary:after{content:'';right:8px;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);font-size:0;transform:translateY(-70%) rotate(45deg)}
.faq-group details[open] summary:after{transform:translateY(-25%) rotate(225deg)}
.faq-group details>p{margin:0;padding:0 44px 20px 0;color:var(--muted)}

/* Google rating: fractional stars, full summary and inline line */
.rating-stars{--rating:5;display:inline-block;font-size:18px;line-height:1;letter-spacing:.12em;background:linear-gradient(90deg,var(--refined-star) calc(var(--rating) / 5 * 100%),#ffffff2e 0);-webkit-background-clip:text;background-clip:text;color:transparent}
.rating-stars:before{content:'★★★★★'}
.rating-stars--large{font-size:24px}
.rating-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px 48px;align-items:center;max-width:880px;margin:0 auto 40px;padding:28px 32px;border:1px solid var(--refined-rule);border-radius:var(--refined-radius);background:#07122bb8}
.rating-summary__score{display:grid;gap:6px;justify-items:start}
.rating-summary__value{margin:0;font:700 56px/1 Bricolage,system-ui,sans-serif;color:var(--text)}
.rating-summary__count{margin:0;color:var(--text);font-weight:600}
.rating-summary__score .micro{margin:0}
.rating-summary__bars{list-style:none;margin:0;padding:0;display:grid;gap:8px;min-width:0}
.rating-summary__bars li{display:grid;grid-template-columns:3.2em minmax(0,1fr) 3.5ch;gap:12px;align-items:center;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}
.rating-summary__bar{height:6px;border-radius:99px;background:#ffffff14;overflow:hidden}
.rating-summary__bar span{display:block;width:var(--share);height:100%;border-radius:inherit;background:var(--refined-star)}
.rating-summary__n{text-align:right}
.rating-summary__link{justify-self:end;white-space:nowrap}
.rating-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:14px 0 0;color:var(--muted);font-size:15px}
.rating-inline__value{font:700 20px/1 Bricolage,system-ui,sans-serif;color:var(--text)}
@media (max-width:760px){
  .rating-summary{grid-template-columns:minmax(0,1fr);padding:22px}
  .rating-summary__link{justify-self:start}
}

/* Reviews page: every approved review at once, quiet cards, no autoplay */
.review-wall__panel{max-width:1100px;margin:0 auto}
.review-wall__panel>[data-google-review-disclosure]{margin:0 0 16px;text-align:center}
.review-grid{columns:3 280px;column-gap:20px}
.review-grid .review,.review-grid .review:last-child{break-inside:avoid;margin:0 0 20px;padding:22px 24px;border:1px solid var(--refined-rule);border-radius:var(--refined-radius);background:var(--refined-surface)}
.review-grid .review .stars{font-size:16px}
.review-grid .review blockquote{margin:12px 0 16px;font-size:17px;line-height:1.6;color:var(--text)}
.review-grid .review strong{color:var(--gold)}
.review-grid .review .micro{margin:4px 0 0}
.review-grid .empty-reviews{column-span:all;text-align:center}
.review-grid .review p.micro{text-transform:capitalize}
