/* ==========================================================================
   Our Work · Testimonials · Contact.

   Loaded only on those three pages. Shares the About page's tokens and a few of
   its primitives (.abt-head, .abt-cta) so the set reads as one family without
   any of them reusing the service-page section classes.
   ========================================================================== */

/* ---------- Shared page hero ---------- */
.pg-hero{background:var(--brand-ink);color:var(--white)}
.pg-hero__inner{padding-block:var(--s-6) var(--s-9);max-width:62ch}
.pg-hero h1{
  margin:0;font-size:var(--fs-h1);line-height:var(--lh-h1);
  letter-spacing:var(--tr-h1);color:var(--white);text-wrap:balance;
}
.pg-hero__lede{
  margin:var(--s-5) 0 0;font-size:var(--fs-lede);line-height:var(--lh-lede);color:#c8dccf;
}
.pg-hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-4);margin-top:var(--s-7)}

/* ==========================================================================
   Our Work
   ========================================================================== */

/* ---------- Animated score counters ---------- */
.pg-scores{background:var(--white);padding-block:var(--s-8)}
.pg-scoregrid{display:grid;gap:var(--s-6);margin:0}
.pg-score{display:flex;align-items:center;gap:var(--s-4)}
.pg-score__ico{
  width:64px;height:64px;flex:none;border-radius:50%;
  display:grid;place-content:center;
  border:2px solid var(--brand-line);color:var(--brand-deep);
}
.pg-score__ico svg{width:30px;height:30px}
.pg-score__l{margin:0;font-size:var(--fs-sm);color:var(--ink-3);letter-spacing:var(--tr-ui)}
.pg-score__v{
  margin:0;font-family:var(--font-head);font-size:var(--fs-h2);line-height:1.05;
  font-weight:800;letter-spacing:var(--tr-h2);color:var(--brand-deep);
}
.pg-score__pc{font-size:.55em;font-weight:700;margin-left:2px}

/* ---------- Why us ---------- */
.pg-why{background:var(--surface);padding-block:var(--sec-y)}
.pg-whygrid{display:grid;gap:var(--s-5);list-style:none;margin:0;padding:0}
.pg-whycard{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-7) var(--s-6);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),
             box-shadow var(--dur) var(--ease);
}
.pg-whycard:hover{border-color:var(--brand-line);transform:translateY(-3px);box-shadow:var(--sh-2)}
.pg-whycard__ico{
  width:56px;height:56px;border-radius:50%;display:grid;place-content:center;
  background:var(--brand-deep);color:var(--white);margin-bottom:var(--s-5);
}
.pg-whycard__ico svg{width:26px;height:26px}
.pg-whycard h3{
  margin:0 0 var(--s-3);font-family:var(--font-head);font-size:var(--fs-h4);
  line-height:var(--lh-h4);letter-spacing:var(--tr-h4);color:var(--ink);
}
.pg-whycard p{margin:0;font-size:var(--fs-xs);line-height:1.75;color:var(--ink-3)}

/* ---------- Galleries ---------- */
.pg-work{padding-block:var(--sec-y)}
.pg-galblock + .pg-galblock{margin-top:var(--s-10)}
.pg-galblock__head{
  display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:flex-end;
  justify-content:space-between;margin-bottom:var(--s-5);
  padding-bottom:var(--s-4);border-bottom:1px solid var(--line);
}
.pg-galblock__head h3{
  margin:0 0 var(--s-2);font-family:var(--font-head);font-size:var(--fs-h3);
  line-height:var(--lh-h3);letter-spacing:var(--tr-h3);color:var(--ink);
}
.pg-galblock__head p{margin:0;font-size:var(--fs-xs);color:var(--ink-3);max-width:60ch}
.pg-galblock__link{
  display:inline-flex;align-items:center;gap:var(--s-2);flex:none;
  font-family:var(--font-head);font-weight:600;font-size:var(--fs-sm);
  color:var(--brand-deep);text-decoration:none;
}
.pg-galblock__link svg{width:16px;height:16px;transition:transform var(--dur) var(--ease)}
.pg-galblock__link:hover svg{transform:translateX(3px)}

.pg-galgrid{display:grid;gap:var(--s-4);list-style:none;margin:0;padding:0}
.pg-galbtn{
  position:relative;display:block;width:100%;padding:0;border:0;cursor:zoom-in;
  border-radius:var(--r-lg);overflow:hidden;background:var(--surface-2);
  aspect-ratio:4/3;
}
.pg-galbtn img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.pg-galbtn:hover img,.pg-galbtn:focus-visible img{transform:scale(1.05)}
.pg-galbtn__cap{
  position:absolute;left:0;right:0;bottom:0;padding:var(--s-5) var(--s-4) var(--s-3);
  background:linear-gradient(to top,rgba(4,39,14,.85),transparent);
  color:var(--white);text-align:left;font-size:var(--fs-xs);
}
.pg-galbtn__zoom{
  position:absolute;top:var(--s-3);right:var(--s-3);
  width:34px;height:34px;border-radius:50%;display:grid;place-content:center;
  background:rgba(255,255,255,.9);color:var(--brand-deep);
  opacity:0;transition:opacity var(--dur) var(--ease);
}
.pg-galbtn__zoom svg{width:17px;height:17px}
.pg-galbtn:hover .pg-galbtn__zoom,.pg-galbtn:focus-visible .pg-galbtn__zoom{opacity:1}
.pg-galbtn:focus-visible{outline:3px solid var(--brand-deep);outline-offset:3px}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.pg-rating{background:var(--brand-ink);padding-bottom:var(--s-8)}
.pg-rating__card{
  background:var(--white);border-radius:var(--r-lg);box-shadow:var(--sh-3);
  padding:var(--s-7);display:grid;gap:var(--s-7);align-items:center;
}
.pg-rating__score{text-align:center}
.pg-rating__n{
  display:block;font-family:var(--font-head);font-size:3.5rem;line-height:1;
  font-weight:800;letter-spacing:var(--tr-h1);color:var(--ink);
}
.pg-rating__stars{display:flex;gap:3px;justify-content:center;margin-top:var(--s-3)}
.pg-rating__meta{display:block;margin-top:var(--s-2);font-size:var(--fs-xs);color:var(--ink-3)}

.pg-rating__bars{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.pg-rating__bars li{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-xs);color:var(--ink-3)}
.pg-rating__lab{display:inline-flex;align-items:center;gap:3px;min-width:34px}
.pg-rating__lab svg{width:13px;height:13px}
.pg-rating__bar{flex:1;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.pg-rating__bar span{display:block;height:100%;border-radius:999px;background:var(--warn)}
.pg-rating__pct{min-width:38px;text-align:right}
.pg-rating__note{text-align:center}
.pg-rating__note p{margin:0 0 var(--s-4);font-size:var(--fs-xs);color:var(--ink-2);line-height:1.6}

.pg-reviews{padding-block:var(--sec-y)}
.pg-filter{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center;margin-bottom:var(--s-8)}
.pg-filter__chip{
  display:inline-flex;align-items:center;gap:var(--s-2);
  min-height:40px;padding:0 var(--s-4);cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r-pill);background:var(--white);
  font-family:var(--font-head);font-size:.875rem;font-weight:600;
  color:var(--ink-2);letter-spacing:var(--tr-ui);
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),
             border-color var(--dur) var(--ease);
}
.pg-filter__chip:hover{border-color:var(--brand);color:var(--brand-deep)}
.pg-filter__n{font-size:.75rem;font-weight:700;opacity:.7;padding:1px 6px;border-radius:999px;background:rgba(0,0,0,.06)}
.pg-filter input:focus-visible + .pg-filter__chip{outline:2px solid var(--brand-deep);outline-offset:2px}
.pg-filter input:checked + .pg-filter__chip{
  background:var(--brand-deep);border-color:var(--brand-deep);color:var(--white);
}
.pg-filter input:checked + .pg-filter__chip .pg-filter__n{background:rgba(255,255,255,.18);opacity:.9}

.pg-revgrid{
  display:grid;gap:var(--s-5);list-style:none;margin:0;padding:0;
  grid-column:1 / -1;width:100%;
}
.pg-rev figure{
  margin:0;height:100%;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:var(--s-6);
  display:flex;flex-direction:column;gap:var(--s-4);
}
.pg-rev__top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}
.pg-rev__stars{display:flex;gap:2px}
.pg-rev__g{width:18px;height:18px;flex:none}
.pg-rev blockquote{margin:0;font-size:var(--fs-sm);line-height:1.7;color:var(--ink-2);flex:1}
.pg-rev figcaption{font-size:var(--fs-xs);color:var(--ink-3)}
.pg-rev figcaption strong{display:block;color:var(--ink);font-family:var(--font-head)}

/*
 * CSS-only filtering. Each chip is a radio; the checked one scopes which cards
 * remain displayed. No JavaScript, no layout shift, works with scripting off.
 */
.pg-filter input[value="all"]:checked ~ .pg-revgrid .pg-rev{display:block}
.pg-filter input:checked:not([value="all"]) ~ .pg-revgrid .pg-rev{display:none}
.pg-filter input#\3 :checked{}
.pg-reviews__foot{margin-top:var(--s-8);text-align:center;font-size:var(--fs-xs);color:var(--ink-3)}

/* ==========================================================================
   Contact
   ========================================================================== */
.pg-quick{background:var(--brand-wash);border-bottom:1px solid var(--brand-line)}
.pg-quickgrid{
  list-style:none;margin:0;padding:var(--s-6) 0;
  display:grid;gap:var(--s-5);
}
.pg-quickgrid li{display:flex;gap:var(--s-4);align-items:flex-start}
.pg-quickgrid svg{width:24px;height:24px;flex:none;color:var(--brand-deep);margin-top:2px}
.pg-quickgrid strong{display:block;font-family:var(--font-head);color:var(--ink);margin-bottom:2px}
.pg-quickgrid span{font-size:var(--fs-xs);line-height:1.6;color:var(--ink-3)}

.pg-contact{padding-block:var(--sec-y)}
.pg-contact__grid{display:grid;gap:var(--s-8);align-items:start}
.pg-contact__info h2{
  margin:0 0 var(--s-3);font-family:var(--font-head);font-size:var(--fs-h2);
  line-height:var(--lh-h2);letter-spacing:var(--tr-h2);color:var(--ink);
}
.pg-contact__lede{margin:0 0 var(--s-7);color:var(--ink-3);font-size:var(--fs-lede);line-height:var(--lh-lede)}

.pg-details{list-style:none;margin:0 0 var(--s-7);padding:0;display:grid;gap:var(--s-5)}
.pg-details li{display:flex;gap:var(--s-4);align-items:flex-start}
.pg-details__ico{
  width:44px;height:44px;flex:none;border-radius:var(--r);
  display:grid;place-content:center;
  background:var(--brand-wash);color:var(--brand-deep);
}
.pg-details__ico svg{width:22px;height:22px}
.pg-details strong{display:block;font-family:var(--font-head);color:var(--ink);margin-bottom:3px}
.pg-details a{color:var(--brand-deep);font-weight:600;text-decoration:none}
.pg-details a:hover{text-decoration:underline}
.pg-details address{font-style:normal;color:var(--ink-2);line-height:1.6}
.pg-details small{display:block;margin-top:3px;font-size:.8125rem;color:var(--ink-3)}
.pg-details__hours{display:block;color:var(--ink-2);line-height:1.8;font-size:var(--fs-sm)}

.pg-areas{padding-top:var(--s-6);border-top:1px solid var(--line)}
.pg-areas__h{
  margin:0 0 var(--s-3);font-family:var(--font-head);font-size:.8125rem;font-weight:700;
  letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--ink-3);
}
.pg-areas ul{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0;padding:0}
.pg-areas a{
  display:inline-block;padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);
  border:1px solid var(--brand-line);background:var(--brand-wash);
  font-size:var(--fs-xs);font-weight:600;color:var(--brand-deep);text-decoration:none;
}
.pg-areas a:hover{background:var(--white)}

.pg-emerg{background:#1b1207;color:var(--white);padding-block:var(--s-8)}
.pg-emerg__inner{display:grid;gap:var(--s-5);align-items:center}
.pg-emerg__eyebrow{
  display:inline-flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-3);
  font-family:var(--font-head);font-size:.75rem;font-weight:700;
  letter-spacing:var(--tr-caps);text-transform:uppercase;color:#f0c88a;
}
.pg-emerg__eyebrow svg{width:15px;height:15px}
.pg-emerg h2{
  margin:0 0 var(--s-3);font-family:var(--font-head);font-size:var(--fs-h3);
  line-height:var(--lh-h3);letter-spacing:var(--tr-h3);color:var(--white);
}
.pg-emerg p{margin:0;color:#e0cfae;font-size:var(--fs-sm);line-height:1.65}
.btn--emerg{background:#f0a92a;color:#231603;border-color:#f0a92a}
.btn--emerg:hover{background:#ffc158;color:#231603;border-color:#ffc158}

.pg-map{padding-block:var(--sec-y) 0}
.pg-map__frame{
  border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--sh-2);line-height:0;background:var(--surface-2);
}
.pg-map__frame iframe{width:100%;height:420px;display:block;border:0}

.pg-faq{padding-block:var(--sec-y)}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (min-width:640px){
  .pg-scoregrid{grid-template-columns:repeat(2,1fr)}
  .pg-whygrid{grid-template-columns:repeat(2,1fr)}
  .pg-galgrid{grid-template-columns:repeat(2,1fr)}
  .pg-revgrid{grid-template-columns:repeat(2,1fr)}
  .pg-quickgrid{grid-template-columns:repeat(3,1fr)}
  .pg-rating__card{grid-template-columns:auto 1fr auto;padding:var(--s-8)}
}

@media (min-width:1024px){
  .pg-scoregrid{grid-template-columns:repeat(4,1fr)}
  .pg-whygrid{grid-template-columns:repeat(3,1fr)}
  .pg-galgrid{grid-template-columns:repeat(3,1fr)}
  .pg-revgrid{grid-template-columns:repeat(3,1fr)}
  .pg-contact__grid{grid-template-columns:1fr 460px;gap:var(--s-9)}
  .pg-emerg__inner{grid-template-columns:1fr auto;gap:var(--s-8)}
}

@media (prefers-reduced-motion:reduce){
  .pg-whycard,.pg-galbtn img,.pg-galbtn__zoom,.pg-galblock__link svg{transition:none!important}
  .pg-whycard:hover{transform:none}
  .pg-galbtn:hover img{transform:none}
}
