/* Ultra Tune Gympie designs: workshop gallery and Google reviews (November 6, 2026).
   Shared by d4, d9, d11 and d12. Each design sets the --pf-* tokens in its own CSS; nothing here
   reaches outside the .pf sections. */
.pf{padding:72px 0;background:var(--pf-bg,transparent);color:var(--pf-text)}
@media(min-width:980px){.pf{padding:88px 0}}
.pf+.pf{padding-top:0}
.pf-in{max-width:var(--pf-wrap,1180px);margin:0 auto;padding:0 16px}
@media(min-width:768px){.pf-in{padding:0 32px}}
.pf--inline{padding:44px 0 0;background:none}
.pf--inline .pf-in{max-width:none;padding:0}

.pf-h{font-size:clamp(30px,4.2vw,46px);line-height:1.04;margin:0}
.pf .kicker{margin-bottom:10px}
.pf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 28px;margin-bottom:22px}
.pf-note{display:flex;align-items:center;gap:8px;font:500 16px/1.45 var(--pf-b);color:var(--pf-muted);margin:0}
.pf-note svg{flex:none;width:18px;height:18px;fill:none;stroke:var(--pf-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* gallery: an uneven wall of the shop's own phone photos, not a uniform stock grid */
.pf-mosaic{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:140px;
  grid-template-areas:"a a" "a a" "b c" "b c" "d e" "d e" "f g" "f h"}
@media(min-width:760px){.pf-mosaic{gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:172px;
  grid-template-areas:"a a b c" "a a b c" "d e f g" "d e f h"}}
.pf--inline .pf-mosaic{grid-auto-rows:150px}
.pf-ph{position:relative;margin:0;overflow:hidden;border-radius:6px;background:#2a2f2c}
.pf-ph img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.pf-ph figcaption{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);font:600 14px/1.25 var(--pf-b);color:#fff;background:rgba(14,17,15,.82);padding:5px 9px;border-radius:4px}

/* reviews: the rating card on the left, the reviews as cards on the right */
.pf-rv-grid{display:grid;gap:20px}
@media(min-width:980px){.pf-rv-grid{grid-template-columns:320px minmax(0,1fr);gap:36px;align-items:start}}
.pf--inline .pf-rv-grid{grid-template-columns:1fr;gap:18px}
.pf-score{background:var(--pf-card);border:1px solid var(--pf-line);border-radius:14px;padding:24px}
@media(min-width:980px){.pf-score{position:sticky;top:96px}}
.pf--inline .pf-score{position:static;display:grid;grid-template-columns:1fr;gap:4px}
@media(min-width:700px){.pf--inline .pf-score{grid-template-columns:minmax(0,1fr) auto;column-gap:28px;align-items:center}
  .pf--inline .pf-score .pf-acts{grid-column:2;grid-row:1 / span 3;margin:0}}
.pf-src{display:flex;align-items:center;gap:8px;font:700 15px/1.2 var(--pf-b);color:var(--pf-ink);margin:18px 0 0}
.pf-src svg{width:20px;height:20px;flex:none}
.pf-big{display:flex;align-items:center;gap:14px;margin:12px 0 0}
.pf-num{font:800 64px/.9 var(--pf-b);color:var(--pf-ink)}
.pf-big .pf-st{display:block;color:#f5b400;font-size:24px;letter-spacing:3px;line-height:1}
.pf-big small{display:block;font:600 16px/1.3 var(--pf-b);color:var(--pf-muted);margin-top:6px}
.pf-acts{display:grid;gap:10px;margin-top:22px}
.pf-acts .cta{width:100%}

.pf-feat{background:var(--pf-feat-bg,var(--pf-card));border:1px solid var(--pf-line);border-left:4px solid var(--pf-accent);border-radius:14px;padding:24px 26px;margin:0 0 16px}
.pf-feat blockquote{font:500 clamp(19px,2vw,22px)/1.5 var(--pf-b);color:var(--pf-ink);margin:14px 0 0}
.pf-cards{columns:2 260px;column-gap:16px}
.pf-card{break-inside:avoid;display:block;background:var(--pf-card);border:1px solid var(--pf-line);border-radius:12px;padding:18px 18px 20px;margin:0 0 16px}
.pf-who{display:flex;align-items:center;gap:12px}
.pf-av{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font:700 17px/1 var(--pf-b);color:#fff;background:var(--c,#5f6b73)}
.pf-name{display:block;font:700 16px/1.2 var(--pf-b);color:var(--pf-ink)}
.pf-meta{display:flex;align-items:center;gap:7px;margin-top:4px;font:500 14px/1 var(--pf-b);color:var(--pf-muted)}
.pf-meta .pf-st{color:#f5b400;letter-spacing:1.5px;font-size:15px}
.pf-meta svg{width:14px;height:14px}
.pf-card blockquote{font:400 16px/1.6 var(--pf-b);color:var(--pf-text);margin:12px 0 0}

/* reviews header (November 6, 2026, Joseph): heading breaks evenly, the stars and the count line up with the
   big number's top and bottom, "Google reviews" said once (the G logo sits in the count line), and on PC the
   heading, score and buttons run across the top so nothing sticks or leaves a gap beside the reviews */
.pf-h{text-wrap:balance}
.pf-big{align-items:stretch;gap:14px;margin-top:20px}
.pf-big>span:last-child{display:flex;flex-direction:column;justify-content:space-between;padding:4px 0 3px}
.pf-big .pf-st{font-size:27px;letter-spacing:2px}
.pf-big small{margin:0;display:flex;align-items:center;gap:7px;white-space:nowrap}
.pf-big small svg{width:17px;height:17px;flex:none}
.pf-src.is-moved{display:none}
@media(min-width:980px){
  .pf-rv .pf-rv-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .pf-rv .pf-score{position:static;background:none;border:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(250px,280px);column-gap:48px;align-items:end}
  .pf-rv .pf-score>div:first-child{grid-column:1}
  .pf-rv .pf-big{grid-column:2;grid-row:1;margin:0}
  .pf-rv .pf-acts{grid-column:3;grid-row:1;margin:0}
  .pf-rv .pf-h{font-size:clamp(36px,3.6vw,50px)}
}
