/* Priority Plumbing Melbourne, v2: the whole site (the approved blank-page home, extended).
   Every rule is scoped under body.pv2 (page-templates/v2-page.php sets it on every page). */

/* ── Tokens ─────────────────────────────────────────────────────────────── */
body.pv2 {
  --ink: #0B0D10;          /* brand black */
  --ink-2: #15191E;        /* raised black */
  --ink-3: #1D232A;        /* hover on black */
  --line-d: #2B323A;       /* hairline on black */
  --dim: #A7B1BA;          /* secondary text on black, 8.9:1 */
  --blue: #00BFFE;         /* electric blue: text only on black */
  --blue-hi: #5DD6FF;      /* hover fill for blue buttons */
  --deep: #005A7E;         /* blue for text on light grounds, 6.6:1 on paper */
  --paper: #F2EEE7;        /* warm job-sheet paper */
  --paper-2: #FBF9F5;      /* the docket card */
  --paper-3: #E7E1D6;      /* hover on paper */
  --line-l: #D6CEC0;       /* hairline on paper */
  --grey: #4A535C;         /* secondary text on paper, 6.8:1 */
  --white: #FFFFFF;

  --g: clamp(20px, 5vw, 72px);                         /* page gutter */
  --col-gap: clamp(16px, 2.2vw, 32px);
  --wrap-pad: max(var(--g), calc((100% - 1296px) / 2)); /* centred 1296 grid via padding, no text caps */
  --sec: clamp(64px, 6.4vw, 90px);                      /* section padding */

  /* Type scale: five sizes, reused everywhere */
  --t-display: clamp(52px, 9.3vw, 148px);
  --t-h2: clamp(44px, 5.8vw, 88px);
  --t-h3: clamp(22px, 1.9vw, 26px);
  --t-lead: clamp(18px, 1.5vw, 21px);
  --t-body: 18px;
  --t-label: 14px;
  --t-small: 16px;
  --t-name: 21px;                                       /* item names, FAQ questions */
  --t-sub: clamp(28px, 2.7vw, 40px);                    /* condensed sub-display */
  --t-num: clamp(44px, 4.4vw, 64px);                    /* numerals, the closing phone */
  --t-h1: clamp(44px, 7.4vw, 120px);

  --wd-cond: 62%;
  --wd-wide: 118%;
  --ease: cubic-bezier(.2, .7, .2, 1);

  margin: 0;
  background: var(--ink);
  color: var(--white);
  font-family: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: var(--t-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
body.pv2 *, body.pv2 *::before, body.pv2 *::after { box-sizing: border-box; }
body.pv2 :where(h1, h2, h3, p, ul, ol, figure, blockquote) { margin: 0; padding: 0; }
body.pv2 :where(ul, ol) { list-style: none; }
body.pv2 img { display: block; max-width: 100%; height: auto; }
body.pv2 button { font: inherit; }
body.pv2 a { color: inherit; }
body.pv2 :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 2px; }
body.pv2 .pv2-paper :focus-visible, body.pv2 .pv2-cta :focus-visible { outline-color: var(--ink); }

/* Grain: a quiet texture on every ground, so nothing reads as a flat render */
body.pv2 .pv2-hero, body.pv2 .pv2-paper, body.pv2 .pv2-fix, body.pv2 .pv2-areas, body.pv2 .pv2-cta, body.pv2 .pv2-foot { position: relative; isolation: isolate; }
body.pv2 .pv2-hero::before, body.pv2 .pv2-paper::before, body.pv2 .pv2-fix::before, body.pv2 .pv2-areas::before, body.pv2 .pv2-cta::before, body.pv2 .pv2-foot::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── Primitives ─────────────────────────────────────────────────────────── */
body.pv2 .pv2-wrap { padding-inline: var(--wrap-pad); }
body.pv2 .pv2-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.pv2 .pv2-skip { position: absolute; left: 12px; top: -80px; z-index: 100; background: var(--blue); color: var(--ink); padding: 12px 16px; font-weight: 700; }
body.pv2 .pv2-skip:focus { top: 12px; }
body.pv2 .pv2-i { width: 1.1em; height: 1.1em; flex: none; }

body.pv2 .pv2-display {
  font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase;
  font-size: var(--t-display); line-height: .86; letter-spacing: -.005em;
}
body.pv2 .pv2-h2 {
  font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase;
  font-size: var(--t-h2); line-height: .9; letter-spacing: 0;
}
body.pv2 .pv2-h3 { font-size: var(--t-h3); font-weight: 750; line-height: 1.15; letter-spacing: -.01em; }
body.pv2 .pv2-lead { font-size: var(--t-lead); line-height: 1.55; }
body.pv2 .pv2-body { font-size: var(--t-body); line-height: 1.6; }
body.pv2 .pv2-body--dim { color: var(--dim); }
body.pv2 .pv2-label {
  font-size: var(--t-label); font-stretch: var(--wd-wide); font-weight: 650;
  text-transform: uppercase; letter-spacing: .09em; line-height: 1.3;
}
body.pv2 .pv2-label--blue { color: var(--blue); }
body.pv2 .pv2-label--deep { color: var(--deep); }

/* Buttons: hover moves the ground, the label colour never changes */
body.pv2 .pv2-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 22px; border-radius: 4px; border: 2px solid transparent;
  font: inherit; font-size: 18px; font-weight: 750; text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);
}
body.pv2 .pv2-btn:active { transform: translateY(1px); }
body.pv2 .pv2-btn--lg { min-height: 58px; padding: 0 28px; font-size: 18px; }
body.pv2 .pv2-btn--blue { background: var(--blue); color: var(--ink); border-color: var(--blue); }
body.pv2 .pv2-btn--blue:hover { background: var(--blue-hi); border-color: var(--blue-hi); }
body.pv2 .pv2-btn--blue:active { background: #93E4FF; }
body.pv2 .pv2-btn--line { background: transparent; color: var(--white); border-color: rgba(255,255,255,.75); }
body.pv2 .pv2-btn--line:hover { background: rgba(255,255,255,.12); border-color: var(--white); }
body.pv2 .pv2-btn--line:active { background: rgba(255,255,255,.2); }

body.pv2 .pv2-textlink {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 2px;
  color: var(--white); font-weight: 700; text-decoration: underline; text-decoration-color: var(--blue);
  text-decoration-thickness: 2px; text-underline-offset: 6px; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-textlink:hover { background: var(--ink-3); }
body.pv2 .pv2-textlink .pv2-i { color: var(--blue); }
body.pv2 .pv2-textlink--dark { color: var(--ink); text-decoration-color: var(--deep); }
body.pv2 .pv2-textlink--dark:hover { background: var(--paper-3); }
body.pv2 .pv2-textlink--dark .pv2-i { color: var(--deep); }

/* ── Signature: the marker ring ─────────────────────────────────────────── */
body.pv2 .pv2-ring { position: relative; display: inline-block; white-space: nowrap; margin-inline: .16em .24em; }
body.pv2 .pv2-ring__svg {
  position: absolute; left: -10%; top: -17%; width: 120%; height: 134%;
  overflow: visible; pointer-events: none; fill: none; stroke-linecap: round; stroke-linejoin: round;
}
body.pv2 .pv2-ring__svg path { stroke-width: 5; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
body.pv2 .pv2-ring__svg--blue path { stroke: var(--blue); }
body.pv2 .pv2-ring__svg--ink path { stroke: var(--ink); }
body.pv2 .pv2-hero__h1 .pv2-ring { color: var(--blue); }
body.pv2 .pv2-hero__h1 .pv2-ring__svg path { stroke-width: 6; }
@media (prefers-reduced-motion: no-preference) {
  body.pv2.pv2-js [data-pv2-ring] .pv2-ring__svg path { stroke-dashoffset: 1; transition: stroke-dashoffset 1.1s var(--ease); }
  body.pv2.pv2-js [data-pv2-ring].is-drawn .pv2-ring__svg path { stroke-dashoffset: 0; }
}

/* ── Header ─────────────────────────────────────────────────────────────── */
body.pv2 .pv2-head { position: sticky; top: 0; z-index: 50; background: var(--ink); border-bottom: 1px solid var(--line-d); }
body.pv2 .pv2-head__bar { display: flex; align-items: center; gap: 24px; min-height: 76px; padding-inline: var(--wrap-pad); }
body.pv2 .pv2-head__logo { display: inline-flex; align-items: center; min-height: 48px; flex: none; }
body.pv2 .pv2-head__logo img { width: 176px; height: auto; }
body.pv2 .pv2-head__actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }
body.pv2 .pv2-head__tel {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; border-radius: 4px;
  color: var(--white); text-decoration: none; font-weight: 750; font-size: 18px; letter-spacing: .01em;
  transition: background-color .18s var(--ease);
}
body.pv2 .pv2-head__tel .pv2-i { color: var(--blue); }
body.pv2 .pv2-head__tel:hover { background: var(--ink-3); }
body.pv2 .pv2-head__menu {
  display: none; width: 48px; height: 48px; border-radius: 4px; border: 1px solid var(--line-d);
  background: transparent; color: var(--white); cursor: pointer; align-items: center; justify-content: center;
}
body.pv2 .pv2-head__menu:hover { background: var(--ink-3); }
body.pv2 .pv2-head__menu .pv2-i { width: 24px; height: 24px; }
body.pv2 .pv2-head__menu-close { display: none; }
body.pv2 .pv2-head__menu[aria-expanded="true"] .pv2-head__menu-open { display: none; }
body.pv2 .pv2-head__menu[aria-expanded="true"] .pv2-head__menu-close { display: inline-flex; }

/* Desktop nav with dropdowns (hover, click and keyboard) */
body.pv2 .pv2-nav__list { display: flex; align-items: center; gap: 4px; }
body.pv2 .pv2-nav__item { position: relative; display: flex; align-items: center; }
body.pv2 .pv2-nav__link {
  display: inline-flex; align-items: center; min-height: 48px; padding: 0 12px; border-radius: 4px;
  color: var(--white); text-decoration: none; font-weight: 650; font-size: 18px; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-nav__item--has .pv2-nav__link { padding-right: 4px; border-radius: 4px 0 0 4px; }
body.pv2 .pv2-nav__link:hover, body.pv2 .pv2-nav__toggle:hover { background: var(--ink-3); }
body.pv2 .pv2-nav__toggle {
  display: inline-flex; align-items: center; justify-content: center; width: 32px; min-height: 48px; padding: 0;
  border: 0; border-radius: 0 4px 4px 0; background: transparent; color: var(--blue); cursor: pointer;
  transition: background-color .18s var(--ease);
}
body.pv2 .pv2-nav__toggle .pv2-i { transition: transform .2s var(--ease); }
body.pv2 .pv2-nav__toggle[aria-expanded="true"] .pv2-i { transform: rotate(180deg); }
body.pv2 .pv2-nav__foot { display: none; }
body.pv2 .pv2-dd {
  position: absolute; top: calc(100% + 14px); left: -12px; z-index: 60;
  background: var(--ink-2); border: 1px solid var(--line-d); border-radius: 6px; padding: 24px;
  box-shadow: 0 24px 48px -16px rgba(0,0,0,.6);
  visibility: hidden; opacity: 0; transform: translateY(-6px);
  transition: opacity .16s var(--ease), transform .16s var(--ease), visibility 0s linear .16s;
}
body.pv2 .pv2-dd::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; } /* hover bridge */
body.pv2 .pv2-dd--services { width: 720px; }
body.pv2 .pv2-dd--areas { width: 420px; }
body.pv2 .pv2-nav__item--has:hover > .pv2-dd,
body.pv2 .pv2-nav__item--has.is-open > .pv2-dd {
  visibility: visible; opacity: 1; transform: none; transition-delay: 0s;
}
body.pv2 .pv2-dd__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 28px; }
body.pv2 .pv2-dd__label { color: var(--blue); font-size: 14px; font-stretch: var(--wd-wide); font-weight: 650; text-transform: uppercase; letter-spacing: .09em; margin-bottom: 6px; }
body.pv2 .pv2-dd a {
  display: flex; align-items: center; min-height: 44px; padding: 0 10px; margin-inline: -10px; border-radius: 4px;
  color: var(--white); text-decoration: none; font-size: 16px; font-weight: 550; transition: background-color .15s var(--ease);
}
body.pv2 .pv2-dd a:hover { background: var(--ink-3); }
body.pv2 .pv2-dd__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
body.pv2 .pv2-dd .pv2-dd__all { margin: 16px -10px 0; padding-top: 0; gap: 10px; font-weight: 700; border-top: 1px solid var(--line-d); border-radius: 0 0 4px 4px; padding-block: 8px; }
body.pv2 .pv2-dd__all .pv2-i { color: var(--blue); }

/* ── Hero ───────────────────────────────────────────────────────────────── */
body.pv2 .pv2-hero { background: var(--ink); padding-top: clamp(40px, 5vw, 72px); }
body.pv2 .pv2-hero__eyebrow { display: flex; align-items: center; gap: 12px; color: var(--blue); margin-bottom: clamp(20px, 2.4vw, 32px); }
body.pv2 .pv2-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 5px rgba(0,191,254,.18); flex: none; }
@media (prefers-reduced-motion: no-preference) {
  body.pv2 .pv2-dot { animation: pv2-pulse 2.4s var(--ease) infinite; }
  @keyframes pv2-pulse { 0%, 100% { box-shadow: 0 0 0 4px rgba(0,191,254,.22); } 50% { box-shadow: 0 0 0 9px rgba(0,191,254,0); } }
}
body.pv2 .pv2-hero__h1 { padding-block: .06em; }
body.pv2 .pv2-br-md { display: none; }
body.pv2 .pv2-hero__grid {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap);
  padding-right: var(--wrap-pad); margin-top: clamp(32px, 4vw, 56px); align-items: end;
}
body.pv2 .pv2-hero__photo { grid-column: 1 / 9; position: relative; }
body.pv2 .pv2-hero__photo img { width: 100%; aspect-ratio: 16 / 8.4; object-fit: cover; object-position: 50% 72%; }
body.pv2 .pv2-hero__copy { grid-column: 9 / 13; display: flex; flex-direction: column; gap: 24px; padding-bottom: 4px; }
body.pv2 .pv2-hero__copy .pv2-lead { color: #E3E8EC; }
body.pv2 .pv2-hero__actions { display: flex; flex-direction: column; gap: 12px; }
body.pv2 .pv2-hero__actions .pv2-btn { width: 100%; }
body.pv2 .pv2-rating {
  display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; min-height: 44px; padding: 6px 10px; margin-left: -10px;
  border-radius: 4px; color: var(--white); text-decoration: none; font-size: 16px; transition: background-color .18s var(--ease);
  align-self: flex-start;
}
body.pv2 .pv2-rating:hover { background: var(--ink-3); }
body.pv2 .pv2-rating__stars { display: inline-flex; gap: 2px; color: var(--blue); }
body.pv2 .pv2-rating__stars .pv2-i { width: 18px; height: 18px; stroke-width: 1; }
body.pv2 .pv2-rating__text strong { font-weight: 800; }

/* Proof row: four facts, set like the header of a docket */
body.pv2 .pv2-proof {
  display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(48px, 6vw, 88px);
  border-top: 1px solid var(--line-d);
}
body.pv2 .pv2-proof li { display: flex; flex-direction: column; gap: 6px; padding: 28px 24px 56px; border-left: 1px solid var(--line-d); }
body.pv2 .pv2-proof li:first-child { border-left: 0; padding-left: 0; }
body.pv2 .pv2-proof__big { font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: var(--t-sub); line-height: .95; }
body.pv2 .pv2-proof li:first-child .pv2-proof__big { color: var(--blue); }
body.pv2 .pv2-proof__small { color: var(--dim); font-size: 16px; }

/* ── How it works: the job sheet ────────────────────────────────────────── */
body.pv2 .pv2-paper { background: var(--paper); color: var(--ink); }
body.pv2 .pv2-paper--light { background: var(--paper-2); }
body.pv2 .pv2-sheet { padding-block: var(--sec); }
body.pv2 .pv2-sheet__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); align-items: start; }
body.pv2 .pv2-sheet__intro { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 24px; position: sticky; top: 112px; }
body.pv2 .pv2-sheet__fee { font-weight: 700; padding-top: 20px; border-top: 2px solid var(--ink); }
body.pv2 .pv2-docket {
  grid-column: 6 / 13; background: var(--paper-2); border: 1px solid var(--line-l); border-radius: 3px;
  box-shadow: 0 1px 0 var(--line-l), 0 30px 50px -36px rgba(40,30,10,.45);
  padding: clamp(20px, 3vw, 40px);
  background-image: repeating-linear-gradient(to bottom, transparent 0 39px, rgba(0,106,145,.07) 39px 40px);
}
body.pv2 .pv2-docket__head .pv2-label { white-space: nowrap; }
body.pv2 .pv2-docket__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 16px; border-bottom: 3px solid var(--ink); }
body.pv2 .pv2-docket__brand { display: inline-flex; align-items: center; gap: 10px; color: var(--grey); text-align: right; }
body.pv2 .pv2-docket__brand img { width: 28px; height: 28px; }
body.pv2 .pv2-docket__steps li {
  display: grid; grid-template-columns: clamp(44px, 5vw, 72px) 1fr 64px; gap: 16px; align-items: start;
  padding: 28px 0; border-bottom: 1px dashed var(--line-l);
}
body.pv2 .pv2-docket__steps li:last-child { border-bottom: 0; padding-bottom: 4px; }
body.pv2 .pv2-docket__n { font-stretch: var(--wd-cond); font-weight: 850; font-size: var(--t-num); line-height: .8; color: var(--ink); }
body.pv2 .pv2-docket__steps p { margin-top: 8px; color: var(--grey); }
body.pv2 .pv2-tick { position: relative; width: 56px; height: 48px; display: grid; place-items: center; color: var(--ink); justify-self: end; }
body.pv2 .pv2-tick > .pv2-i { width: 28px; height: 28px; stroke-width: 2.6; }
body.pv2 .pv2-tick .pv2-ring__svg { left: -4%; top: -6%; width: 108%; height: 112%; }
body.pv2 .pv2-tick .pv2-ring__svg path { stroke-width: 3.5; }

/* ── What we fix ────────────────────────────────────────────────────────── */
body.pv2 .pv2-fix { background: var(--ink); padding-block: var(--sec); }
body.pv2 .pv2-fix__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px 48px; padding-bottom: clamp(32px, 4vw, 56px); }
body.pv2 .pv2-fix__brands { display: flex; flex-wrap: wrap; gap: 8px 12px; }
body.pv2 .pv2-fix__brands li { border: 1px solid var(--line-d); border-radius: 999px; padding: 8px 16px; color: var(--dim); font-size: 16px; }
body.pv2 .pv2-fix__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--col-gap); }
body.pv2 .pv2-fix__group { background: var(--ink-2); border-radius: 6px; overflow: hidden; display: flex; flex-direction: column; }
body.pv2 .pv2-fix__photo { position: relative; }
body.pv2 .pv2-fix__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
body.pv2 .pv2-tag {
  position: absolute; left: 16px; bottom: 16px; background: var(--ink); color: var(--white); padding: 8px 12px; border-radius: 3px;
  font-size: 14px; font-stretch: var(--wd-wide); font-weight: 700; text-transform: uppercase; letter-spacing: .09em; line-height: 1.2;
  border-left: 0;
}
body.pv2 .pv2-tag::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--blue); margin-right: 8px; vertical-align: 1px; }
body.pv2 .pv2-fix__list { padding: 8px 12px 12px; }
body.pv2 .pv2-fix__list li + li { border-top: 1px solid var(--line-d); }
body.pv2 .pv2-fix__list a {
  display: grid; grid-template-columns: 1fr 24px; column-gap: 12px; align-items: center; padding: 16px 12px; border-radius: 4px;
  text-decoration: none; color: var(--white); transition: background-color .18s var(--ease);
}
body.pv2 .pv2-fix__list a:hover { background: var(--ink-3); }
body.pv2 .pv2-fix__name { font-weight: 750; font-size: var(--t-name); line-height: 1.25; grid-column: 1; }
body.pv2 .pv2-fix__desc { color: var(--dim); font-size: 16px; line-height: 1.45; grid-column: 1; margin-top: 4px; }
body.pv2 .pv2-fix__list .pv2-i { grid-column: 2; grid-row: 1 / 3; color: var(--blue); transition: transform .18s var(--ease); }
body.pv2 .pv2-fix__list a:hover .pv2-i { transform: translateX(3px); }
body.pv2 .pv2-fix__more {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 20px;
  padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line-d); border-radius: 6px;
}
body.pv2 .pv2-fix__more-text { font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: var(--t-sub); line-height: .95; }

/* ── Owners ─────────────────────────────────────────────────────────────── */
body.pv2 .pv2-owners { padding-block: var(--sec) 0; }
body.pv2 .pv2-owners__grid {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap);
  padding-left: var(--wrap-pad); align-items: stretch;
}
body.pv2 .pv2-owners__copy { grid-column: 1 / 6; display: flex; flex-direction: column; gap: 24px; padding-bottom: var(--sec); }
body.pv2 .pv2-owners__copy .pv2-h2 { margin-top: -8px; }
body.pv2 .pv2-quote {
  margin: 8px 0; padding: 28px 0; border-block: 2px solid var(--ink);
}
body.pv2 .pv2-quote p { font-stretch: var(--wd-cond); font-weight: 800; text-transform: uppercase; font-size: var(--t-sub); line-height: .98; }
body.pv2 .pv2-quote p::before { content: "\201C"; color: var(--deep); }
body.pv2 .pv2-quote p::after { content: "\201D"; color: var(--deep); }
body.pv2 .pv2-quote footer { margin-top: 14px; color: var(--deep); }
body.pv2 .pv2-owners__photo { grid-column: 7 / 13; position: relative; min-height: 100%; }
body.pv2 .pv2-owners__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 38% 50%; }

/* ── Areas ──────────────────────────────────────────────────────────────── */
body.pv2 .pv2-areas { background: var(--ink); padding-block: var(--sec); }
body.pv2 .pv2-areas__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); align-items: stretch; }
body.pv2 .pv2-areas__copy { grid-column: 1 / 6; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
body.pv2 .pv2-areas__copy h3 { margin-top: 12px; }
body.pv2 .pv2-areas__list { display: flex; flex-wrap: wrap; gap: 8px; }
body.pv2 .pv2-areas__list a, body.pv2 .pv2-areas__list span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px;
  border: 1px solid var(--line-d); color: var(--white); text-decoration: none; font-size: 16px; font-weight: 600;
  transition: background-color .18s var(--ease), border-color .18s var(--ease);
}
body.pv2 .pv2-areas__list span { background: var(--blue); border-color: var(--blue); color: var(--ink); }
body.pv2 .pv2-areas__list a:hover { background: var(--ink-3); border-color: var(--dim); }
body.pv2 .pv2-areas__map { grid-column: 7 / 13; min-height: 520px; border-radius: 6px; overflow: hidden; border: 1px solid var(--line-d); background: var(--ink-2); }
body.pv2 .pv2-areas__map iframe { display: block; width: 100%; height: 100%; min-height: 520px; border: 0; }

/* ── FAQ ────────────────────────────────────────────────────────────────── */
body.pv2 .pv2-faq { padding-block: var(--sec); }
body.pv2 .pv2-faq__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); align-items: start; }
body.pv2 .pv2-faq__intro { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 24px; position: sticky; top: 112px; }
body.pv2 .pv2-inline { color: var(--deep); font-weight: 750; text-decoration-thickness: 2px; text-underline-offset: 4px; white-space: nowrap; border-radius: 2px; transition: background-color .18s var(--ease); }
body.pv2 .pv2-inline:hover { background: var(--paper-3); }
body.pv2 .pv2-faq__list { grid-column: 6 / 13; border-top: 2px solid var(--ink); }
body.pv2 .pv2-faq__item { border-bottom: 1px solid var(--line-l); }
body.pv2 .pv2-faq__item summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px;
  min-height: 72px; padding: 16px 12px; margin-inline: -12px; border-radius: 4px;
  font-size: var(--t-name); font-weight: 750; line-height: 1.3; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-faq__item summary::-webkit-details-marker { display: none; }
body.pv2 .pv2-faq__item summary:hover { background: var(--paper-3); }
body.pv2 .pv2-faq__icon { position: relative; width: 28px; height: 28px; flex: none; border-radius: 50%; border: 2px solid var(--ink); }
body.pv2 .pv2-faq__icon::before, body.pv2 .pv2-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--ink); transform: translate(-50%, -50%); transition: transform .2s var(--ease); }
body.pv2 .pv2-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
body.pv2 .pv2-faq__item[open] .pv2-faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
body.pv2 .pv2-faq__item p { padding: 0 48px 24px 0; color: var(--grey); }

/* ── Closing band: the one blue ground ──────────────────────────────────── */
body.pv2 .pv2-cta { background: var(--blue); color: var(--ink); padding-block: var(--sec); }
body.pv2 .pv2-cta::before { opacity: .35; }
body.pv2 .pv2-cta__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 48px; align-items: start; }
body.pv2 .pv2-cta__copy { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 28px; }
body.pv2 .pv2-cta__h2 { font-size: var(--t-h1); }
body.pv2 .pv2-cta__h2 { line-height: .94; }
body.pv2 .pv2-cta__h2 .pv2-ring { margin-inline: .22em .34em; }
body.pv2 .pv2-cta__h2 .pv2-ring__svg { left: -18%; width: 136%; top: -20%; height: 140%; }
body.pv2 .pv2-cta__h2 .pv2-ring__svg path { stroke-width: 6; }
body.pv2 .pv2-cta__tel {
  display: inline-flex; align-items: center; gap: 16px; align-self: flex-start; min-height: 64px; padding: 4px 20px 4px 16px; margin-left: -16px;
  border-radius: 4px; color: var(--ink); text-decoration: none; transition: background-color .18s var(--ease);
  font-stretch: var(--wd-cond); font-weight: 850; font-size: var(--t-num); line-height: 1; letter-spacing: .01em;
}
body.pv2 .pv2-cta__tel:hover { background: rgba(11,13,16,.1); }
body.pv2 .pv2-cta__tel .pv2-i { width: .7em; height: .7em; stroke-width: 2.4; }
body.pv2 .pv2-cta__facts { border-top: 2px solid var(--ink); }
body.pv2 .pv2-cta__facts li { display: flex; align-items: center; gap: 14px; min-height: 56px; border-bottom: 1px solid rgba(11,13,16,.28); font-weight: 650; }
body.pv2 .pv2-cta__facts .pv2-i { width: 22px; height: 22px; stroke-width: 2.6; }
body.pv2 .pv2-form {
  grid-column: 8 / 13; background: var(--white); color: var(--ink); border-radius: 6px; padding: clamp(24px, 3vw, 40px);
  box-shadow: 0 30px 60px -30px rgba(0,40,60,.55);
}
body.pv2 .pv2-form__note { color: var(--grey); margin: 8px 0 20px; }

/* WPForms, restyled inside our card only */
body.pv2 .pv2-form .wpforms-container { margin: 0 !important; }
body.pv2 .pv2-form .wpforms-field { padding: 0 0 16px !important; }
body.pv2 .pv2-form .wpforms-field-label { display: block; font-size: 16px !important; font-weight: 700 !important; color: var(--ink) !important; margin: 0 0 6px !important; }
body.pv2 .pv2-form .wpforms-required-label { color: var(--deep) !important; }
body.pv2 .pv2-form input[type="text"], body.pv2 .pv2-form input[type="email"], body.pv2 .pv2-form input[type="tel"], body.pv2 .pv2-form textarea {
  width: 100% !important; max-width: none !important; min-height: 52px; padding: 12px 14px !important;
  font: inherit !important; font-size: 18px !important; color: var(--ink) !important;
  background: #F1F3F5 !important; border: 2px solid #7A838C !important; border-radius: 4px !important; box-shadow: none !important;
  transition: border-color .15s var(--ease), background-color .15s var(--ease);
}
body.pv2 .pv2-form textarea { min-height: 112px !important; height: 112px; resize: vertical; }
body.pv2 .pv2-form input:hover, body.pv2 .pv2-form textarea:hover { background: #E7EAED !important; border-color: #5E666E !important; }
body.pv2 .pv2-form input:focus, body.pv2 .pv2-form textarea:focus { outline: none !important; border-color: var(--ink) !important; background: var(--white) !important; }
body.pv2 .pv2-form ::placeholder { color: #5E666E; opacity: 1; }
body.pv2 .pv2-form .wpforms-submit-container { padding: 4px 0 0 !important; }
body.pv2 .pv2-form button.wpforms-submit {
  width: 100% !important; min-height: 58px !important; padding: 0 24px !important; border: 0 !important; border-radius: 4px !important;
  background: var(--ink) !important; color: var(--white) !important; font: inherit !important; font-size: 18px !important; font-weight: 750 !important;
  cursor: pointer; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-form button.wpforms-submit:hover { background: #2A3139 !important; }
body.pv2 .pv2-form button.wpforms-submit:focus-visible { outline: 3px solid var(--deep) !important; outline-offset: 3px; }
body.pv2 .pv2-form label.wpforms-error, body.pv2 .pv2-form em.wpforms-error { color: #B3261E !important; font-size: 16px !important; }
body.pv2 .pv2-form .wpforms-confirmation-container-full { background: #E7F7EE !important; border: 0 !important; color: var(--ink) !important; font-size: 18px; border-radius: 4px; }

/* ── Footer ─────────────────────────────────────────────────────────────── */
body.pv2 .pv2-foot { background: var(--ink); color: var(--white); padding-top: clamp(56px, 6vw, 84px); }
body.pv2 .pv2-foot__grid { display: grid; grid-template-columns: 4fr 3fr 2fr 2fr; gap: 48px var(--col-gap); }
body.pv2 .pv2-foot__brand { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
body.pv2 .pv2-foot__brand > img { width: 208px; }
body.pv2 .pv2-foot__contact a {
  display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 8px; margin-left: -8px; border-radius: 4px;
  color: var(--white); text-decoration: none; font-weight: 650; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-foot__contact a:hover, body.pv2 .pv2-foot__col a:hover, body.pv2 .pv2-foot__social a:hover { background: var(--ink-3); }
body.pv2 .pv2-foot__contact .pv2-i { color: var(--blue); }
body.pv2 .pv2-break { overflow-wrap: anywhere; }
body.pv2 .pv2-foot__meta { color: var(--dim); font-size: 16px; }
body.pv2 .pv2-foot__social { display: flex; gap: 8px; flex-wrap: wrap; }
body.pv2 .pv2-foot__social a {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; border: 1px solid var(--line-d); border-radius: 999px;
  color: var(--white); text-decoration: none; font-weight: 650; font-size: 16px; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-foot__social .pv2-i { color: var(--blue); }
body.pv2 .pv2-foot__col .pv2-label { margin-bottom: 12px; }
body.pv2 .pv2-foot__col a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 8px; margin-left: -8px; border-radius: 4px;
  color: var(--white); text-decoration: none; font-size: 16px; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-foot__base { margin-top: 64px; padding-block: 24px; border-top: 1px solid var(--line-d); color: var(--dim); font-size: 14px; }

/* ── Mobile sticky bar ──────────────────────────────────────────────────── */
body.pv2 .pv2-bar { display: none; }

/* ── 1280 and down ──────────────────────────────────────────────────────── */
@media (max-width: 1279px) {
  body.pv2 .pv2-head__quote { display: none; }
}

/* ── 1100 and down: tablet landscape / small laptop ─────────────────────── */
@media (max-width: 1100px) {
  body.pv2 .pv2-hero__photo { grid-column: 1 / 8; }
  body.pv2 .pv2-hero__grid { align-items: center; }
  body.pv2 .pv2-hero__photo img { aspect-ratio: 4 / 3; object-position: 40% 70%; }
  body.pv2 .pv2-docket__brand span { display: none; }
  body.pv2 .pv2-hero__copy { grid-column: 8 / 13; }
  body.pv2 .pv2-fix__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.pv2 .pv2-foot__grid { grid-template-columns: 1fr 1fr 1fr; }
  body.pv2 .pv2-foot__brand { grid-column: 1 / -1; }
}

/* ── 1023 and down: menu drawer replaces the inline nav ─────────────────── */
@media (max-width: 1023px) {
  body.pv2 .pv2-head__bar { min-height: 68px; gap: 12px; }
  body.pv2 .pv2-head__menu { display: inline-flex; }
  body.pv2 .pv2-nav {
    position: fixed; inset: 68px 0 0 0; z-index: 49; background: var(--ink); overflow-y: auto;
    padding: 16px var(--g) 32px; display: none; flex-direction: column; gap: 24px; border-top: 1px solid var(--line-d);
  }
  body.pv2.pv2-menu-open .pv2-nav { display: flex; }
  body.pv2.pv2-menu-open { overflow: hidden; }
  body.pv2 .pv2-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  body.pv2 .pv2-nav__item { flex-wrap: wrap; border-bottom: 1px solid var(--line-d); }
  body.pv2 .pv2-nav__link { flex: 1; min-height: 60px; font-size: 26px; font-weight: 750; padding: 0 4px; }
  body.pv2 .pv2-nav__toggle { width: 60px; min-height: 60px; border-radius: 4px; border-left: 1px solid var(--line-d); }
  body.pv2 .pv2-nav__toggle .pv2-i { width: 24px; height: 24px; }
  body.pv2 .pv2-dd {
    position: static; width: 100% !important; display: none; visibility: visible; opacity: 1; transform: none;
    box-shadow: none; border: 0; border-radius: 0; background: transparent; padding: 0 0 16px 4px; transition: none;
  }
  body.pv2 .pv2-dd::before { display: none; }
  body.pv2 .pv2-nav__item--has:hover > .pv2-dd { display: none; }
  body.pv2 .pv2-nav__item--has.is-open > .pv2-dd { display: block; }
  body.pv2 .pv2-dd__grid { grid-template-columns: 1fr 1fr; gap: 16px 24px; }
  body.pv2 .pv2-nav__foot { display: flex; flex-direction: column; gap: 12px; }
  body.pv2 .pv2-nav__foot .pv2-btn { min-height: 56px; }
}

/* ── 900 and down: stack the hero and two-column sections ───────────────── */
@media (max-width: 900px) {
  body.pv2 .pv2-br-md { display: none; }
  body.pv2 .pv2-hero__grid { padding-right: 0; }
  body.pv2 .pv2-hero__copy { grid-column: 1 / -1; grid-row: 1; padding: 0 var(--g) 40px; }
  body.pv2 .pv2-hero__photo { grid-column: 1 / -1; grid-row: 2; }
  body.pv2 .pv2-hero__photo img { aspect-ratio: 16 / 10; }
  body.pv2 .pv2-hero__actions { flex-direction: row; flex-wrap: wrap; }
  body.pv2 .pv2-hero__actions .pv2-btn { width: auto; flex: 1 1 220px; }
  body.pv2 .pv2-proof { grid-template-columns: 1fr 1fr; margin-top: 0; border-top: 0; }
  body.pv2 .pv2-proof li { padding: 24px 0 24px 20px; border-top: 1px solid var(--line-d); }
  body.pv2 .pv2-proof li:nth-child(odd) { border-left: 0; padding-left: 0; }
  body.pv2 .pv2-proof li:nth-last-child(-n+2) { padding-bottom: 48px; }
  body.pv2 .pv2-sheet__intro, body.pv2 .pv2-faq__intro { grid-column: 1 / -1; position: static; margin-bottom: 40px; }
  body.pv2 .pv2-docket, body.pv2 .pv2-faq__list { grid-column: 1 / -1; }
  body.pv2 .pv2-owners__grid { padding-left: 0; }
  body.pv2 .pv2-owners__copy { grid-column: 1 / -1; padding: 0 var(--g) 48px; }
  body.pv2 .pv2-owners__photo { grid-column: 1 / -1; min-height: 0; }
  body.pv2 .pv2-owners__photo img { position: static; height: auto; aspect-ratio: 4 / 3; }
  body.pv2 .pv2-areas__copy, body.pv2 .pv2-areas__map { grid-column: 1 / -1; }
  body.pv2 .pv2-areas__map { margin-top: 40px; min-height: 360px; }
  body.pv2 .pv2-areas__map iframe { min-height: 360px; }
  body.pv2 .pv2-cta__copy, body.pv2 .pv2-form { grid-column: 1 / -1; }
}

/* ── 767 and down: phones ───────────────────────────────────────────────── */
@media (max-width: 767px) {
  body.pv2 { padding-bottom: 76px; }
  body.pv2 .pv2-head__bar { min-height: 64px; }
  body.pv2 .pv2-nav { inset: 64px 0 0 0; }
  body.pv2 .pv2-head__logo img { width: 132px; }
  body.pv2 .pv2-head__tel { padding: 0 10px; font-size: 16px; gap: 8px; }
  body.pv2 .pv2-head__actions { gap: 6px; }
  body.pv2 { --t-display: clamp(50px, 15vw, 72px); --t-h1: clamp(40px, 11.4vw, 60px); }
  body.pv2 .pv2-hero__h1 { font-size: var(--t-display); }
  body.pv2 .pv2-fix__grid { grid-template-columns: 1fr; }
  body.pv2 .pv2-proof__big { font-size: 27px; white-space: nowrap; }
  body.pv2 .pv2-docket__steps li { grid-template-columns: 44px 1fr; gap: 8px 14px; padding: 24px 0; }
  body.pv2 .pv2-docket__steps li > div { grid-column: 2; grid-row: 1 / 3; }
  body.pv2 .pv2-tick { grid-column: 1; grid-row: 2; justify-self: start; width: 44px; height: 40px; margin-top: 8px; }
  body.pv2 .pv2-tick > .pv2-i { width: 22px; height: 22px; }
  body.pv2 .pv2-docket__brand { display: none; }
  body.pv2 .pv2-foot__grid { grid-template-columns: 1fr 1fr; }
  body.pv2 .pv2-foot__col:last-child { grid-column: 1 / -1; }
  body.pv2 .pv2-bar {
    display: grid; grid-template-columns: 1.3fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: var(--ink); border-top: 1px solid var(--line-d);
    transform: translateY(0); transition: transform .25s var(--ease);
  }
  body.pv2 .pv2-bar .pv2-btn { min-height: 52px; padding: 0 12px; }
  body.pv2 .pv2-bar.is-tucked { transform: translateY(110%); }
  body.pv2.pv2-menu-open .pv2-bar { display: none; }
}

/* ── 400 and down ───────────────────────────────────────────────────────── */
@media (max-width: 400px) {
  body.pv2 .pv2-head__tel .pv2-i { display: none; }
  body.pv2 .pv2-dd__grid { grid-template-columns: 1fr; }
}

/* ── Wide desktop: the H1 breaks after "Melton" ─────────────────────────── */
@media (min-width: 901px) {
  body.pv2 .pv2-br-md { display: inline; }
}

@media (prefers-reduced-motion: reduce) {
  body.pv2 *, body.pv2 *::before, body.pv2 *::after { transition: none !important; animation: none !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Site layer (2026-10-14): the inner page types in the same system.
   Grounds carry their own colour roles, so one component reads right on
   black or paper. Neighbouring sections alternate ground (inc/v2/render.php).
   ══════════════════════════════════════════════════════════════════════════ */


body.pv2 .pv2-g-ink   { --bg: var(--ink);   --fg: var(--white); --fg-dim: var(--dim);  --rule: var(--line-d); --rule-strong: rgba(255,255,255,.85); --accent: var(--blue); --hover: var(--ink-3);   --card: var(--ink-2); }
body.pv2 .pv2-g-paper { --bg: var(--paper); --fg: var(--ink);   --fg-dim: var(--grey); --rule: var(--line-l); --rule-strong: var(--ink);           --accent: var(--deep); --hover: var(--paper-3); --card: var(--paper-2); }
body.pv2 .pv2-sec { position: relative; isolation: isolate; padding-block: var(--sec); background: var(--bg); color: var(--fg); }
body.pv2 .pv2-sec::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}
body.pv2 .pv2-label--accent { color: var(--accent, var(--blue)); }
body.pv2 .pv2-dim { color: var(--fg-dim); }
body.pv2 .pv2-nb { white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; }
body.pv2 .pv2-textlink { color: var(--fg, var(--white)); text-decoration-color: var(--accent, var(--blue)); }
body.pv2 .pv2-textlink:hover { background: var(--hover, var(--ink-3)); }
body.pv2 .pv2-textlink .pv2-i { color: var(--accent, var(--blue)); }
body.pv2 .pv2-btn--ink { background: var(--ink); color: var(--white); border-color: var(--ink); }
body.pv2 .pv2-btn--ink:hover { background: #2A3139; border-color: #2A3139; }
body.pv2 .pv2-btn--ink:active { background: #3A434D; }
body.pv2 .pv2-btn--ghost { background: transparent; color: var(--fg); border-color: var(--fg); }
body.pv2 .pv2-btn--ghost:hover { background: var(--hover); }
body.pv2 .pv2-btn--ghost:active { background: var(--rule); }
body.pv2 .pv2-btn--ghost .pv2-i { color: var(--accent); }
body.pv2 .pv2-paper .pv2-btn--blue:focus-visible, body.pv2 .pv2-paper .pv2-btn--ink:focus-visible { outline-color: var(--ink); }

/* ── Inner heroes ───────────────────────────────────────────────────────── */
body.pv2 .pv2-display--inner { font-size: var(--t-h1); line-height: .9; }
body.pv2 .pv2-hero--suburb .pv2-display--inner { font-size: var(--t-display); line-height: .88; }
body.pv2 .pv2-hero:not(.pv2-hero--home) { padding-bottom: var(--sec); }
body.pv2 .pv2-hero .pv2-ring--plain { color: var(--blue); margin-inline: 0; }
body.pv2 .pv2-hero__h1 .pv2-ring { color: var(--blue); }
body.pv2 .pv2-crumbs { margin: -12px 0 12px; }
body.pv2 .pv2-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; column-gap: 4px; }
body.pv2 .pv2-crumbs li { display: inline-flex; align-items: center; color: var(--dim); font-size: 16px; }
body.pv2 .pv2-crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--line-d); color: #5C6670; }
body.pv2 .pv2-crumbs a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; border-radius: 3px; color: var(--white); text-decoration: underline; text-decoration-color: var(--blue); text-underline-offset: 4px; transition: background-color .18s var(--ease); }
body.pv2 .pv2-crumbs a:hover { background: var(--ink-3); }
body.pv2 .pv2-crumbs span[aria-current] { padding: 0 4px; }
body.pv2 .pv2-hero__lead { color: #E3E8EC; }
body.pv2 .pv2-hero__actions--row { flex-direction: row; flex-wrap: wrap; }
body.pv2 .pv2-hero__actions--row .pv2-btn { width: auto; }
body.pv2 .pv2-hero .pv2-form { box-shadow: 0 40px 70px -40px rgba(0,0,0,.9); }
body.pv2 .pv2-form { grid-column: auto; }
body.pv2 .pv2-form__title { margin: 0; }
body.pv2 .pv2-form__after { margin-top: 16px; padding-top: 16px; border-top: 1px solid #E1E4E7; color: var(--grey); font-size: 16px; }

/* Service: H1 across, lead + photo left, the form right */
body.pv2 .pv2-hs { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 40px; margin-top: clamp(28px, 3vw, 44px); align-items: start; }
body.pv2 .pv2-hs__copy { grid-column: 1 / 8; grid-row: 1; display: flex; flex-direction: column; gap: 24px; }
body.pv2 .pv2-hs__form { grid-column: 8 / 13; grid-row: 1 / 3; }
body.pv2 .pv2-hs__photo { grid-column: 1 / 8; grid-row: 2; margin-left: calc(-1 * var(--wrap-pad)); }
body.pv2 .pv2-hs__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* Suburb: the place name big; lead | real map | form */
body.pv2 .pv2-hb { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 32px; margin-top: clamp(28px, 3vw, 44px); align-items: stretch; }
body.pv2 .pv2-hb__copy { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 24px; }
body.pv2 .pv2-hb__map { grid-column: 5 / 9; grid-row: 1; }
body.pv2 .pv2-hb__map .pv2-map { height: 100%; min-height: 420px; }
body.pv2 .pv2-hb__form { grid-column: 9 / 13; grid-row: 1; }
body.pv2 .pv2-hb .pv2-hero__actions .pv2-btn { width: 100%; }

/* Contact: lead + the phone large, form beside */
body.pv2 .pv2-hc { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 40px; margin-top: clamp(28px, 3vw, 44px); align-items: start; }
body.pv2 .pv2-hc__copy { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
body.pv2 .pv2-hc__form { grid-column: 8 / 13; }
body.pv2 .pv2-bigtel {
  display: inline-flex; align-items: center; gap: 16px; min-height: 64px; padding: 4px 16px; margin-left: -16px; border-radius: 4px;
  color: var(--blue); text-decoration: none; font-stretch: var(--wd-cond); font-weight: 850; font-size: var(--t-num); line-height: 1;
  transition: background-color .18s var(--ease);
}
body.pv2 .pv2-bigtel:hover { background: var(--ink-3); }
body.pv2 .pv2-bigtel .pv2-i { width: .62em; height: .62em; stroke-width: 2.4; }

/* About: lead row, then the owners full width (portrait slot) */
body.pv2 .pv2-ha { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 48px; margin-top: clamp(28px, 3vw, 44px); padding-inline: var(--wrap-pad); }
body.pv2 .pv2-ha__copy { grid-column: 1 / 8; display: flex; flex-direction: column; gap: 24px; }
body.pv2 .pv2-ha__copy .pv2-hero__actions { flex-direction: row; flex-wrap: wrap; }
body.pv2 .pv2-ha__copy .pv2-hero__actions .pv2-btn { width: auto; }
body.pv2 .pv2-ha__photo { grid-column: 1 / -1; margin-inline: calc(-1 * var(--wrap-pad)); }
body.pv2 .pv2-ha__photo img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; object-position: 40% 45%; }

/* Hubs: the home's composition */
body.pv2 .pv2-hero--hub-services .pv2-hero__grid, body.pv2 .pv2-hero--hub-areas .pv2-hero__grid { align-items: end; }

/* Simple (privacy, terms, thank-you, 404) */
body.pv2 .pv2-hero--simple .pv2-hero__top { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
body.pv2 .pv2-legal__body { grid-column: 1 / 9; font-size: 18px; }
body.pv2 .pv2-legal__body h2 { font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: var(--t-sub); line-height: .95; margin: 48px 0 16px; }
body.pv2 .pv2-legal__body h3 { font-size: var(--t-name); font-weight: 750; margin: 28px 0 8px; }
body.pv2 .pv2-legal__body p, body.pv2 .pv2-legal__body ul { margin: 0 0 16px; }
body.pv2 .pv2-legal__body ul { list-style: disc; padding-left: 1.2em; }
body.pv2 .pv2-legal__body a { color: var(--deep); font-weight: 700; }

/* ── Section heads ──────────────────────────────────────────────────────── */
body.pv2 .pv2-sechead { display: flex; flex-direction: column; gap: 16px; margin-bottom: clamp(32px, 4vw, 56px); }
body.pv2 .pv2-sechead--row { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px 48px; }
body.pv2 .pv2-sechead__aside { flex: 0 1 46ch; }
body.pv2 .pv2-sechead__aside .pv2-body { color: var(--fg-dim); }
body.pv2 .pv2-sechead--alert { flex-direction: row; align-items: center; gap: 20px; }
body.pv2 .pv2-alert { display: inline-grid; place-items: center; width: 64px; height: 64px; flex: none; border-radius: 4px; background: var(--accent); color: var(--bg); }
body.pv2 .pv2-alert .pv2-i { width: 34px; height: 34px; }

/* ── Prose: split, photo, statement ─────────────────────────────────────── */
body.pv2 .pv2-split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 32px; align-items: start; }
body.pv2 .pv2-split__head { grid-column: 1 / 6; display: flex; flex-direction: column; gap: 20px; position: sticky; top: 112px; }
body.pv2 .pv2-split__body { grid-column: 7 / 13; }
body.pv2 .pv2-prose .pv2-body + .pv2-body { margin-top: 1em; }
body.pv2 .pv2-prose .pv2-body a, body.pv2 .pv2-note a { color: var(--fg); text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: 4px; border-radius: 2px; transition: background-color .18s var(--ease); }
body.pv2 .pv2-prose .pv2-body a:hover, body.pv2 .pv2-note a:hover { background: var(--hover); }
body.pv2 .pv2-links { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 28px; }
body.pv2 .pv2-fine { margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--rule); color: var(--fg-dim); font-size: 14px; }

body.pv2 .pv2-pp { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 40px; align-items: center; }
body.pv2 .pv2-pp__copy { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 20px; }
body.pv2 .pv2-pp__copy .pv2-prose { margin-top: 4px; }
body.pv2 .pv2-pp__photo { grid-column: 8 / 13; margin-right: calc(-1 * var(--wrap-pad)); }
body.pv2 .pv2-pp__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
body.pv2 .pv2-pp--flip .pv2-pp__copy { grid-column: 7 / 13; grid-row: 1; }
body.pv2 .pv2-pp--flip .pv2-pp__photo { grid-column: 1 / 6; grid-row: 1; margin-right: 0; margin-left: calc(-1 * var(--wrap-pad)); }

body.pv2 .pv2-ps { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); }
body.pv2 .pv2-ps > .pv2-label, body.pv2 .pv2-ps > .pv2-h2 { grid-column: 1 / -1; }
body.pv2 .pv2-ps > .pv2-h2 { margin-bottom: clamp(24px, 3vw, 40px); }
body.pv2 .pv2-ps__big { grid-column: 1 / 10; font-size: var(--t-sub); font-weight: 700; line-height: 1.2; letter-spacing: -.01em; }
body.pv2 .pv2-ps__rest { grid-column: 5 / 13; margin-top: clamp(28px, 3vw, 44px); padding-top: 28px; border-top: 2px solid var(--rule-strong); }

/* ── Points: grid of ticks, or a ledger of rows ─────────────────────────── */
body.pv2 .pv2-pts--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--col-gap); }
body.pv2 .pv2-pts--grid.pv2-pts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.pv2 .pv2-pts--grid li { position: relative; display: grid; grid-template-columns: 44px 1fr; column-gap: 16px; align-content: start; padding: 24px 0 28px; border-top: 1px solid var(--rule); }
body.pv2 .pv2-pts__tick { grid-row: 1 / 3; display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 4px; background: var(--card); color: var(--accent); border: 1px solid var(--rule); }
body.pv2 .pv2-pts__tick .pv2-i { width: 20px; height: 20px; stroke-width: 2.6; }
body.pv2 .pv2-pts__title { grid-column: 2; font-size: var(--t-name); font-weight: 750; line-height: 1.3; }
body.pv2 .pv2-pts__desc { grid-column: 2; margin-top: 6px; color: var(--fg-dim); font-size: var(--t-small); }
body.pv2 .pv2-pts__more { position: absolute; inset: 0; display: flex; align-items: flex-start; justify-content: flex-end; padding: 26px 8px 0; color: var(--accent); border-radius: 4px; transition: background-color .18s var(--ease); }
body.pv2 .pv2-pts__more:hover { background: color-mix(in srgb, var(--hover) 60%, transparent); }
body.pv2 .pv2-pts li.has-link .pv2-pts__desc, body.pv2 .pv2-pts li.has-link .pv2-pts__title { padding-right: 40px; }

body.pv2 .pv2-pts--ledger { border-top: 2px solid var(--rule-strong); }
body.pv2 .pv2-pts--ledger li { position: relative; display: grid; grid-template-columns: 5fr 7fr; column-gap: var(--col-gap); padding: 22px 0; border-bottom: 1px dashed var(--rule); }
body.pv2 .pv2-pts--ledger .pv2-pts__tick { display: none; }
body.pv2 .pv2-pts--ledger .pv2-pts__title, body.pv2 .pv2-pts--ledger .pv2-pts__desc { grid-column: auto; margin: 0; }
body.pv2 .pv2-pts--ledger .pv2-pts__desc { color: var(--fg-dim); }
body.pv2 .pv2-note { margin-top: 8px; padding-top: 20px; border-top: 2px solid var(--rule-strong); font-weight: 700; }
body.pv2 .pv2-note--foot { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; }
body.pv2 .pv2-note__p + .pv2-note__p { margin-top: .6em; }
body.pv2 .pv2-split__head .pv2-note { margin-top: 12px; }

/* ── Right now: numbered emergency steps ────────────────────────────────── */
body.pv2 .pv2-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px var(--col-gap); counter-reset: s; }
body.pv2 .pv2-steps li { padding-top: 18px; border-top: 3px solid var(--accent); }
body.pv2 .pv2-steps__n { display: block; font-stretch: var(--wd-cond); font-weight: 850; font-size: var(--t-num); line-height: .9; color: var(--accent); margin-bottom: 14px; }
body.pv2 .pv2-steps__title { font-size: var(--t-name); font-weight: 750; line-height: 1.25; }
body.pv2 .pv2-steps p { margin-top: 8px; color: var(--fg-dim); font-size: var(--t-small); }
body.pv2 .pv2-aside { display: flex; gap: 18px; align-items: flex-start; margin-top: 48px; padding: clamp(20px, 2.4vw, 32px); background: var(--card); border: 1px solid var(--rule); border-radius: 6px; }
body.pv2 .pv2-aside > .pv2-i { width: 28px; height: 28px; color: var(--accent); margin-top: 2px; }

/* ── Link cards (hot water brands) ──────────────────────────────────────── */
body.pv2 .pv2-lcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--col-gap); }
body.pv2 .pv2-lcards a {
  display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 220px; padding: clamp(24px, 2.6vw, 36px);
  border: 1px solid var(--rule); border-radius: 6px; color: var(--fg); text-decoration: none; transition: background-color .18s var(--ease), border-color .18s var(--ease);
}
body.pv2 .pv2-lcards a:hover { background: var(--hover); border-color: var(--fg-dim); }
body.pv2 .pv2-lcards__name { font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: var(--t-sub); line-height: .9; }
body.pv2 .pv2-lcards__desc { color: var(--fg-dim); }
body.pv2 .pv2-lcards .pv2-i { margin-top: auto; color: var(--accent); width: 28px; height: 28px; transition: transform .18s var(--ease); }
body.pv2 .pv2-lcards a:hover .pv2-i { transform: translateX(4px); }

/* ── Process on either ground ───────────────────────────────────────────── */
body.pv2 .pv2-sec--process .pv2-sheet__intro .pv2-h2 { color: var(--fg); }
body.pv2 .pv2-sheet__call { align-self: flex-start; }
body.pv2 .pv2-g-ink .pv2-docket { box-shadow: 0 40px 70px -40px rgba(0,0,0,.9); }

/* ── Reviews: the live figure, big ──────────────────────────────────────── */
body.pv2 .pv2-rev { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 24px; align-items: end; }
body.pv2 .pv2-rev__head { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 16px; }
body.pv2 .pv2-rev__score { grid-column: 7 / 13; grid-row: 1; display: flex; align-items: flex-end; gap: 24px; justify-self: end; }
body.pv2 .pv2-rev__num { font-stretch: var(--wd-cond); font-weight: 900; font-size: var(--t-display); line-height: .78; color: var(--accent); }
body.pv2 .pv2-rev__meta { display: flex; flex-direction: column; gap: 10px; padding-bottom: 6px; }
body.pv2 .pv2-rev__meta .pv2-rating__stars { color: var(--accent); }
body.pv2 .pv2-rev__meta .pv2-rating__stars .pv2-i { width: 26px; height: 26px; }
body.pv2 .pv2-rev__count { font-size: 18px; color: var(--fg-dim); }
body.pv2 .pv2-rev__count strong { color: var(--fg); }
body.pv2 .pv2-rev__btn { grid-column: 1 / 7; justify-self: start; }

/* ── Areas: pills on either ground, groups ledger, coverage map ─────────── */
body.pv2 .pv2-pills { display: flex; flex-wrap: wrap; gap: 8px; }
body.pv2 .pv2-pills a, body.pv2 .pv2-pills span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px;
  border: 1px solid var(--rule); color: var(--fg); text-decoration: none; font-size: 16px; font-weight: 600;
  transition: background-color .18s var(--ease), border-color .18s var(--ease);
}
body.pv2 .pv2-pills a:hover { background: var(--hover); border-color: var(--fg-dim); }
body.pv2 .pv2-g-ink .pv2-pills span, body.pv2 .pv2-g-ink .pv2-pills .is-base { background: var(--blue); border-color: var(--blue); color: var(--ink); }
body.pv2 .pv2-g-ink .pv2-pills .is-base:hover { background: var(--blue-hi); border-color: var(--blue-hi); }
body.pv2 .pv2-g-paper .pv2-pills span, body.pv2 .pv2-g-paper .pv2-pills .is-base { background: var(--ink); border-color: var(--ink); color: var(--white); }
body.pv2 .pv2-g-paper .pv2-pills .is-base:hover { background: #2A3139; }
body.pv2 .pv2-pills--inner a { border-style: dashed; }
body.pv2 .pv2-areas .pv2-pills--inner { margin-top: -8px; }
body.pv2 .pv2-g-paper .pv2-pills a { border-color: #BDB3A3; }
body.pv2 .pv2-areas2 { padding-block: var(--sec); }
body.pv2 .pv2-areas.pv2-g-paper { background: var(--paper); color: var(--ink); }
body.pv2 .pv2-map { overflow: hidden; border-radius: 6px; border: 1px solid var(--rule, var(--line-d)); background: var(--card, var(--ink-2)); }
body.pv2 .pv2-map iframe { display: block; width: 100%; height: 100%; border: 0; }
body.pv2 .pv2-hb__map .pv2-map iframe { min-height: 420px; }
body.pv2 .pv2-coverage__map { height: clamp(360px, 42vw, 600px); }

body.pv2 .pv2-ag { border-top: 2px solid var(--rule-strong); }
body.pv2 .pv2-ag__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 12px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--rule); }
body.pv2 .pv2-ag__name { grid-column: 1 / 4; font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: var(--t-sub); line-height: .95; }
body.pv2 .pv2-ag__links { grid-column: 4 / 9; }
body.pv2 .pv2-ag__desc { grid-column: 9 / 13; color: var(--fg-dim); font-size: 16px; }

/* ── Services: list (suburbs) and groups (hub) ──────────────────────────── */
body.pv2 .pv2-svc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--col-gap); border-top: 2px solid var(--rule-strong); }
body.pv2 .pv2-svc--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.pv2 .pv2-svc li { border-bottom: 1px solid var(--rule); }
body.pv2 .pv2-svc a {
  display: grid; grid-template-columns: 1fr 24px; column-gap: 12px; align-items: center; height: 100%; padding: 18px 12px; margin-inline: -12px;
  border-radius: 4px; color: var(--fg); text-decoration: none; transition: background-color .18s var(--ease);
}
body.pv2 .pv2-svc a:hover { background: var(--hover); }
body.pv2 .pv2-svc__name { grid-column: 1; font-weight: 750; font-size: var(--t-name); line-height: 1.25; }
body.pv2 .pv2-svc__desc { grid-column: 1; margin-top: 4px; color: var(--fg-dim); font-size: 16px; line-height: 1.45; }
body.pv2 .pv2-svc .pv2-i { grid-column: 2; grid-row: 1 / 3; color: var(--accent); transition: transform .18s var(--ease); }
body.pv2 .pv2-svc a:hover .pv2-i { transform: translateX(3px); }

body.pv2 .pv2-sg { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 24px; padding-block: 40px; border-top: 2px solid var(--rule-strong); }
body.pv2 .pv2-sg:last-child { padding-bottom: 0; }
body.pv2 .pv2-sg__head { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 20px; }
body.pv2 .pv2-sg__name { font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: var(--t-sub); line-height: .92; }
body.pv2 .pv2-sg__photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 4px; }
body.pv2 .pv2-sg .pv2-svc { grid-column: 6 / 13; border-top: 0; align-self: start; }
body.pv2 .pv2-sg .pv2-svc li:first-child, body.pv2 .pv2-sg .pv2-svc--2 li:nth-child(2) { border-top: 0; }

/* Home "what we fix": the closing cell carries the one-page group */
body.pv2 .pv2-fix__em { display: flex; flex-direction: column; gap: 8px; padding: 6px 8px; margin: -6px -8px 0; border-radius: 4px; color: var(--white); text-decoration: none; transition: background-color .18s var(--ease); }
body.pv2 .pv2-fix__em:hover { background: var(--ink-3); }
body.pv2 .pv2-fix__more { justify-content: flex-start; }

/* ── FAQ on either ground ───────────────────────────────────────────────── */
body.pv2 .pv2-faq.pv2-g-ink, body.pv2 .pv2-faq.pv2-g-paper { background: var(--bg); color: var(--fg); }
body.pv2 .pv2-faq .pv2-inline { color: var(--fg); text-decoration-color: var(--accent); }
body.pv2 .pv2-faq .pv2-inline:hover { background: var(--hover); }
body.pv2 .pv2-faq__list { border-top-color: var(--rule-strong); }
body.pv2 .pv2-faq__item { border-bottom-color: var(--rule); }
body.pv2 .pv2-faq__item summary:hover { background: var(--hover); }
body.pv2 .pv2-faq__icon { border-color: var(--fg); }
body.pv2 .pv2-faq__icon::before, body.pv2 .pv2-faq__icon::after { background: var(--fg); }
body.pv2 .pv2-faq__item p { color: var(--fg-dim); }
body.pv2 .pv2-faq__item[open] summary .pv2-faq__icon { border-color: var(--accent); }

/* ── Closing band ───────────────────────────────────────────────────────── */
body.pv2 .pv2-cta__side { grid-column: 8 / 13; }
body.pv2 .pv2-cta--noform .pv2-cta__grid { align-items: end; }
body.pv2 .pv2-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
body.pv2 .pv2-cta .pv2-ring--plain { color: inherit; }

/* ── Contact lines ──────────────────────────────────────────────────────── */
body.pv2 .pv2-cl { border-top: 2px solid var(--rule-strong); }
body.pv2 .pv2-cl li { border-bottom: 1px solid var(--rule); }
body.pv2 .pv2-cl__link { display: flex; flex-direction: column; gap: 10px; padding: 28px 12px; margin-inline: -12px; border-radius: 4px; color: var(--fg); text-decoration: none; transition: background-color .18s var(--ease); }
body.pv2 .pv2-cl__link:hover { background: var(--hover); }
body.pv2 .pv2-cl__val { display: inline-flex; align-items: center; gap: 16px; font-weight: 800; font-size: var(--t-sub); line-height: 1.1; min-width: 0; }
body.pv2 .pv2-cl__link--tel .pv2-cl__val { font-stretch: var(--wd-cond); font-weight: 850; font-size: var(--t-h2); line-height: .95; }
body.pv2 .pv2-cl__val .pv2-i { flex: none; width: .7em; height: .7em; color: var(--accent); }
body.pv2 .pv2-cl__link--tel .pv2-cl__val .pv2-i { width: .5em; height: .5em; }

/* ── Inner pages: 1100 and down ─────────────────────────────────────────── */
@media (max-width: 1100px) {
  body.pv2 .pv2-hb__copy { grid-column: 1 / 7; }
  body.pv2 .pv2-hb__form { grid-column: 7 / 13; }
  body.pv2 .pv2-hb__map { grid-column: 1 / -1; grid-row: 2; }
  body.pv2 .pv2-hb__map .pv2-map, body.pv2 .pv2-hb__map .pv2-map iframe { min-height: 340px; }
  body.pv2 .pv2-hs__copy { grid-column: 1 / 7; }
  body.pv2 .pv2-hs__form { grid-column: 7 / 13; }
  body.pv2 .pv2-hs__photo { grid-column: 1 / 7; }
  body.pv2 .pv2-pts--grid.pv2-pts--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.pv2 .pv2-svc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.pv2 .pv2-ag__name { grid-column: 1 / 5; }
  body.pv2 .pv2-ag__links { grid-column: 5 / 13; }
  body.pv2 .pv2-ag__desc { grid-column: 5 / 13; }
  body.pv2 .pv2-lcards { grid-template-columns: 1fr 1fr 1fr; }
  body.pv2 .pv2-sg__head { grid-column: 1 / 5; }
  body.pv2 .pv2-sg .pv2-svc { grid-column: 5 / 13; grid-template-columns: 1fr; }
  body.pv2 .pv2-sg .pv2-svc--2 li:nth-child(2) { border-top: 0; }
}

/* ── Inner pages: 900 and down (stack) ──────────────────────────────────── */
@media (max-width: 900px) {
  body.pv2 .pv2-hs__copy, body.pv2 .pv2-hs__form, body.pv2 .pv2-hb__copy, body.pv2 .pv2-hb__form, body.pv2 .pv2-hb__map,
  body.pv2 .pv2-hc__copy, body.pv2 .pv2-hc__form, body.pv2 .pv2-ha__copy { grid-column: 1 / -1; grid-row: auto; }
  body.pv2 .pv2-hs__photo { grid-column: 1 / -1; grid-row: auto; margin-inline: calc(-1 * var(--wrap-pad)); }
  body.pv2 .pv2-hb .pv2-hero__actions { flex-direction: row; flex-wrap: wrap; }
  body.pv2 .pv2-hb .pv2-hero__actions .pv2-btn { width: auto; flex: 1 1 220px; }
  body.pv2 .pv2-ha__photo img { aspect-ratio: 4 / 3; }
  body.pv2 .pv2-split__head { grid-column: 1 / -1; position: static; }
  body.pv2 .pv2-split__body { grid-column: 1 / -1; }
  body.pv2 .pv2-pp__copy, body.pv2 .pv2-pp--flip .pv2-pp__copy { grid-column: 1 / -1; grid-row: 1; }
  body.pv2 .pv2-pp__photo, body.pv2 .pv2-pp--flip .pv2-pp__photo { grid-column: 1 / -1; grid-row: 2; margin-inline: calc(-1 * var(--wrap-pad)); }
  body.pv2 .pv2-ps__big, body.pv2 .pv2-ps__rest { grid-column: 1 / -1; }
  body.pv2 .pv2-rev__head, body.pv2 .pv2-rev__score, body.pv2 .pv2-rev__btn { grid-column: 1 / -1; grid-row: auto; justify-self: start; }
  body.pv2 .pv2-lcards { grid-template-columns: 1fr; }
  body.pv2 .pv2-lcards a { min-height: 0; }
  body.pv2 .pv2-sg__head, body.pv2 .pv2-sg .pv2-svc { grid-column: 1 / -1; }
  body.pv2 .pv2-sg__head { flex-direction: row; align-items: center; justify-content: space-between; }
  body.pv2 .pv2-sg__photo { width: 42%; flex: none; }
  body.pv2 .pv2-cta__side { grid-column: 1 / -1; }
}

/* ── Inner pages: phones ────────────────────────────────────────────────── */
@media (max-width: 767px) {
  body.pv2 .pv2-display--inner { font-size: var(--t-h1); }
  body.pv2 .pv2-hero--suburb .pv2-display--inner { font-size: var(--t-h1); }
  body.pv2 .pv2-pts--grid, body.pv2 .pv2-pts--grid.pv2-pts--3 { grid-template-columns: 1fr; }
  body.pv2 .pv2-pts--ledger li { grid-template-columns: 1fr; row-gap: 6px; }
  body.pv2 .pv2-svc, body.pv2 .pv2-svc--2 { grid-template-columns: 1fr; }
  body.pv2 .pv2-svc li:first-child { border-top: 0; }
  body.pv2 .pv2-ag__row { grid-template-columns: 1fr; }
  body.pv2 .pv2-ag__name, body.pv2 .pv2-ag__links, body.pv2 .pv2-ag__desc { grid-column: 1; }
  body.pv2 .pv2-sg__head { flex-direction: column; align-items: stretch; }
  body.pv2 .pv2-sg__photo { width: 100%; }
  body.pv2 .pv2-rev__score { gap: 16px; }
  body.pv2 .pv2-steps { grid-template-columns: 1fr; gap: 24px; }
  body.pv2 .pv2-sechead--alert { align-items: flex-start; }
  body.pv2 .pv2-alert { width: 52px; height: 52px; }
  body.pv2 .pv2-cl__link--tel .pv2-cl__val { font-size: var(--t-num); }
  body.pv2 .pv2-cl__val { font-size: 21px; }
  body.pv2 .pv2-bigtel { font-size: var(--t-num); }
  body.pv2 .pv2-crumbs span[aria-current] { display: none; }
  body.pv2 .pv2-crumbs li:last-child::before { display: none; }
}

/* ── Home proof ledger: the deck's six trust lines, 3 x 2 ───────────────── */
body.pv2 .pv2-proof--deck { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; margin-top: clamp(48px, 6vw, 80px); }
body.pv2 .pv2-proof--deck li { flex-direction: row; align-items: flex-start; gap: 14px; padding: 26px 24px 30px; border-top: 1px solid var(--line-d); border-left: 1px solid var(--line-d); }
body.pv2 .pv2-proof--deck li:nth-child(3n+1) { border-left: 0; padding-left: 0; }
body.pv2 .pv2-proof--deck li:nth-last-child(-n+3) { padding-bottom: 56px; }
body.pv2 .pv2-proof__tick { flex: none; color: var(--blue); margin-top: 4px; }
body.pv2 .pv2-proof__tick .pv2-i { width: 22px; height: 22px; stroke-width: 2.6; }
body.pv2 .pv2-proof__text { font-stretch: var(--wd-cond); font-weight: 800; text-transform: uppercase; font-size: var(--t-sub); line-height: 1; letter-spacing: .005em; }
body.pv2 .pv2-proof__rating a { display: flex; flex-direction: column; gap: 8px; color: var(--white); text-decoration: none; border-radius: 4px; padding: 4px 8px; margin: -4px -8px; transition: background-color .18s var(--ease); }
body.pv2 .pv2-proof__rating a:hover { background: var(--ink-3); }
body.pv2 .pv2-proof__num { display: inline-flex; align-items: flex-end; gap: 14px; font-stretch: var(--wd-cond); font-weight: 900; font-size: var(--t-num); line-height: .82; color: var(--blue); }
body.pv2 .pv2-proof__num .pv2-rating__stars { padding-bottom: 4px; }
body.pv2 .pv2-proof__num .pv2-i { width: 18px; height: 18px; }
body.pv2 .pv2-proof__rating .pv2-proof__small { color: var(--dim); font-size: 16px; }
@media (max-width: 900px) {
  body.pv2 .pv2-proof--deck { grid-template-columns: 1fr 1fr; margin-top: 0; }
  body.pv2 .pv2-proof--deck li, body.pv2 .pv2-proof--deck li:nth-child(3n+1) { padding: 22px 0 24px 18px; border-left: 1px solid var(--line-d); }
  body.pv2 .pv2-proof--deck li:nth-child(odd) { border-left: 0; padding-left: 0; }
  body.pv2 .pv2-proof--deck li:nth-last-child(-n+3) { padding-bottom: 24px; }
  body.pv2 .pv2-proof--deck li:nth-last-child(-n+2) { padding-bottom: 48px; }
}
@media (max-width: 767px) {
  body.pv2 .pv2-proof--deck li { flex-direction: column; gap: 8px; }
  body.pv2 .pv2-proof__text { font-size: 21px; white-space: normal; }
}
body.pv2 .pv2-docket { color: var(--ink); }
body.pv2 .pv2-docket .pv2-h3 { color: var(--ink); }
body.pv2 .pv2-cta:not(.pv2-cta--home) .pv2-cta__h2 { font-size: var(--t-h2); line-height: .92; }
body.pv2 .pv2-fix__more .pv2-textlink { flex-wrap: wrap; }
body.pv2 .pv2-hs__main { grid-column: 1 / 8; display: flex; flex-direction: column; gap: 40px; }
body.pv2 .pv2-hs__main .pv2-hs__copy, body.pv2 .pv2-hs__main .pv2-hs__photo { grid-column: auto; grid-row: auto; }
body.pv2 .pv2-hs__form { grid-row: 1; }
body.pv2 .pv2-hs__photo img { aspect-ratio: 16 / 10; }
body.pv2 .pv2-svc--1 { grid-template-columns: 1fr !important; }
body.pv2 .pv2-sg .pv2-svc--1 li:first-child { border-top: 0; }
@media (max-width: 1100px) { body.pv2 .pv2-hs__main { grid-column: 1 / 7; } }
@media (max-width: 900px) {
  body.pv2 .pv2-hs { display: flex; flex-direction: column; }
  body.pv2 .pv2-hs__main { display: contents; }
  body.pv2 .pv2-hs__copy { order: 1; } body.pv2 .pv2-hs__form { order: 2; } body.pv2 .pv2-hs__photo { order: 3; }
}
body.pv2 .pv2-docket__steps .pv2-docket__title { margin-top: 0; color: var(--ink); }
body.pv2 .pv2-steps .pv2-steps__title { margin-top: 0; color: var(--fg); font-size: var(--t-name); }
body.pv2 .pv2-faq__links { display: flex; flex-wrap: wrap; gap: 0 24px; margin: -12px 0 20px; }
body.pv2 .pv2-foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px; }
body.pv2 .pv2-foot__credit a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; border-radius: 4px; color: var(--white); text-decoration: underline; text-decoration-color: var(--blue); text-underline-offset: 4px; transition: background-color .18s var(--ease); }
body.pv2 .pv2-foot__credit a:hover { background: var(--ink-3); }
body.pv2 .pv2-glue { white-space: nowrap; }
body.pv2 .pv2-glue .pv2-ring { margin-right: .02em; }
body.pv2 .pv2-ring__punct { margin-left: .14em; }
/* Ring at phone widths: hug the word so a long place name never pushes past the page */
@media (max-width: 767px) {
  body.pv2 .pv2-hero { overflow-x: clip; }
  body.pv2 .pv2-hero__h1 .pv2-ring { margin-inline: .08em .12em; }
  body.pv2 .pv2-hero__h1 .pv2-ring__svg { left: -5%; width: 110%; }
}
/* Photo beside copy: the photo matches the copy panel's height */
body.pv2 .pv2-pp { align-items: stretch; }
body.pv2 .pv2-pp__photo { display: flex; }
body.pv2 .pv2-pp__photo img { height: 100%; min-height: 320px; aspect-ratio: auto; }
@media (max-width: 900px) { body.pv2 .pv2-pp__photo img { min-height: 0; aspect-ratio: 4 / 3; height: auto; } }
@media (min-width: 768px) {
  body.pv2 .pv2-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body.pv2 .pv2-steps--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1101px) { body.pv2 .pv2-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 768px) and (max-width: 1100px) { body.pv2 .pv2-steps--5 { grid-template-columns: repeat(6, minmax(0, 1fr)); } body.pv2 .pv2-steps--5 li { grid-column: span 2; } body.pv2 .pv2-steps--5 li:nth-child(4) { grid-column: 2 / span 2; } }

/* ── Review round fixes (2026-10-14) ────────────────────────────────────── */
/* Text links: one text run, so the underline is continuous (as on the approved home) */
body.pv2 .pv2-textlink { text-decoration: none; }
body.pv2 .pv2-textlink__t { text-decoration: underline; text-decoration-color: var(--accent, var(--blue)); text-decoration-thickness: 2px; text-underline-offset: 6px; }
body.pv2 .pv2-textlink .pv2-i { flex: none; }
body.pv2 .pv2-fix__more .pv2-textlink { flex-wrap: nowrap; white-space: normal; }
body.pv2 .pv2-fix__more { justify-content: flex-end; }
/* Long place names: a taller, wider ring so the stroke clears the letters */
body.pv2 .pv2-ring--long .pv2-ring__svg { left: -5%; width: 110%; top: -30%; height: 160%; }
/* Statement: condensed, sentence case (sub-display size) */
body.pv2 .pv2-ps__big { font-stretch: var(--wd-cond); font-weight: 800; line-height: 1.02; letter-spacing: 0; }
body.pv2 .pv2-ps__links { grid-column: 1 / -1; margin-top: 28px; }
/* Closing band without a form: heading across, then copy | facts */
body.pv2 .pv2-cta__head { grid-column: 1 / -1; }
body.pv2 .pv2-cta--noform .pv2-cta__grid { row-gap: 32px; align-items: start; }
body.pv2 .pv2-cta--noform .pv2-cta__side { align-self: start; padding-top: 6px; }
/* Reviews: the figure sits straight after the heading column */
body.pv2 .pv2-rev__score { justify-self: start; }
body.pv2 .pv2-rev__btn { align-self: start; }
/* Emergency steps: neutral rules, the number carries the accent */
body.pv2 .pv2-steps li { border-top: 1px solid var(--rule-strong); }
/* Home job sheet: the call-out fee beside it */
body.pv2 .pv2-sheet__fee { padding-top: 20px; border-top: 2px solid var(--ink); font-weight: 400; }
body.pv2 .pv2-sheet__q { font-weight: 750; font-size: var(--t-name); line-height: 1.3; margin-bottom: 8px; }
/* Contact: the ute under the phone, and the email in the same family as the phone */
body.pv2 .pv2-hc__photo { align-self: stretch; margin-left: calc(-1 * var(--wrap-pad)); margin-top: 8px; }
body.pv2 .pv2-hc__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: 50% 70%; }
body.pv2 .pv2-cl__val { font-stretch: var(--wd-cond); font-weight: 800; }
body.pv2 .pv2-break { overflow-wrap: normal; }
/* Service link rows: titles align to the top */
body.pv2 .pv2-svc a { align-items: start; }
body.pv2 .pv2-svc .pv2-i { align-self: center; }
/* Header phone never wraps */
body.pv2 .pv2-head__tel { white-space: nowrap; }
@media (max-width: 900px) { body.pv2 .pv2-hc__photo { margin-inline: calc(-1 * var(--wrap-pad)); } }
@media (max-width: 767px) {
  body.pv2 .pv2-cta--home .pv2-cta__h2 { font-size: var(--t-display); }
  body.pv2 .pv2-proof__num { flex-wrap: wrap; row-gap: 8px; }
}
@media (max-width: 400px) {
  body.pv2 .pv2-head__logo img { width: 116px; }
  body.pv2 .pv2-head__bar { gap: 8px; }
  body.pv2 .pv2-head__tel { padding: 0 6px; }
}
body.pv2 .pv2-ring--long { margin-inline: .3em .34em; }
body.pv2 .pv2-ring--long .pv2-ring__svg { left: -8%; width: 116%; top: -36%; height: 172%; }
body.pv2 .pv2-glue .pv2-ring--long { margin-right: .3em; }
body.pv2 .pv2-ring__punct { margin-left: 0; }
@media (max-width: 767px) {
  body.pv2 .pv2-hero__h1 .pv2-ring--long { margin-inline: .22em .24em; }
  body.pv2 .pv2-hero__h1 .pv2-ring--long .pv2-ring__svg { left: -6%; width: 112%; }
}
body.pv2 .pv2-ring--long { margin-inline: .22em .26em; }
body.pv2 .pv2-ring--long .pv2-ring__svg { left: -6%; width: 112%; top: -22%; height: 144%; }
body.pv2 .pv2-glue .pv2-ring--long { margin-right: .2em; }
@media (max-width: 767px) { body.pv2 .pv2-display--inner { line-height: 1.02; } }
body.pv2 .pv2-docket__brand { text-transform: none; letter-spacing: 0; font-stretch: 100%; font-weight: 650; font-size: 16px; }
/* Contact hero: the ute photo fills down to the form's foot */
@media (min-width: 901px) {
  body.pv2 .pv2-hc { align-items: stretch; }
  body.pv2 .pv2-hc__photo { flex: 1 1 auto; display: flex; min-height: 280px; }
  body.pv2 .pv2-hc__photo img { height: 100%; aspect-ratio: auto; }
}
body.pv2 .pv2-cl .pv2-label { font-weight: 800; color: var(--ink); }

/* ── Round 1 changes (Luc 2026-10-23) ───────────────────────────────────── */
/* Section links are the primary button: big blue, arrow after the label. */
body.pv2 .pv2-linkbtn .pv2-i { width: 20px; height: 20px; transition: transform .18s var(--ease); }
body.pv2 .pv2-linkbtn:hover .pv2-i { transform: translateX(3px); }
body.pv2 .pv2-links { gap: 12px 16px; }
body.pv2 .pv2-paper .pv2-linkbtn:focus-visible { outline-color: var(--ink); }

/* Suburb hero: lead | form, no map. */
body.pv2 .pv2-hb__copy { grid-column: 1 / 7; }
body.pv2 .pv2-hb__form { grid-column: 8 / 13; }

/* Suburb local section: copy beside the map. */
body.pv2 .pv2-lm { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 40px; align-items: center; }
body.pv2 .pv2-lm__copy { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 20px; }
body.pv2 .pv2-lm__copy .pv2-links { margin-top: 8px; }
body.pv2 .pv2-lm__map { grid-column: 8 / 13; }
body.pv2 .pv2-lm__map .pv2-map, body.pv2 .pv2-lm__map .pv2-map iframe { width: 100%; height: 440px; border: 0; border-radius: 6px; display: block; }

/* Suburb service list: a photo on each row. */
body.pv2 .pv2-svclist--thumbs .pv2-svc a { grid-template-columns: 76px 1fr 24px; column-gap: 16px; }
body.pv2 .pv2-svclist--thumbs .pv2-svc__thumb { grid-column: 1; grid-row: 1 / 3; width: 76px; height: 76px; border-radius: 4px; overflow: hidden; }
body.pv2 .pv2-svclist--thumbs .pv2-svc__thumb img { width: 100%; height: 100%; object-fit: cover; }
body.pv2 .pv2-svclist--thumbs .pv2-svc__name, body.pv2 .pv2-svclist--thumbs .pv2-svc__desc { grid-column: 2; }
body.pv2 .pv2-svclist--thumbs .pv2-svc .pv2-i { grid-column: 3; }
body.pv2 .pv2-svclist--thumbs .pv2-svc__name { align-self: end; }
body.pv2 .pv2-svclist--thumbs .pv2-svc__desc { align-self: start; }

/* Prose photo: the blue pen ring drawn behind the photo. */
body.pv2 .pv2-pp__photo { position: relative; isolation: isolate; }
body.pv2 .pv2-pp__photo img { position: relative; z-index: 1; }
body.pv2 .pv2-pp__ring { position: absolute; z-index: 0; inset: -16% -12% -18% -14%; pointer-events: none; }
body.pv2 .pv2-pp__ring .pv2-ring__svg { position: absolute; inset: 0; left: 0; top: 0; width: 100%; height: 100%; }
body.pv2 .pv2-pp__ring .pv2-ring__svg path { stroke-width: 5; }
body.pv2 .pv2-sec--prose.pv2-prose--photo { overflow: hidden; }
body.pv2 .pv2-pp__photo, body.pv2 .pv2-pp--flip .pv2-pp__photo { margin-inline: 0; }

/* Home: the emergency cell gets a photo. */
body.pv2 .pv2-fix__emphoto { width: 100%; margin: 0; }
body.pv2 .pv2-fix__emphoto img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 4px; }

/* Brand cards: the brand's logo. */
/* White chip so every brand logo reads on any ground, matching the brand tiles (Thermann vanished on ink; Luc 2026-10-29). */
body.pv2 .pv2-lcards__logo { display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; height: 80px; padding: 16px 20px; background: #fff; border: 1px solid var(--rule); border-radius: 8px; }
body.pv2 .pv2-lcards__logo img { height: 48px; max-width: 200px; width: auto; object-fit: contain; }

@media (max-width: 1100px) {
  body.pv2 .pv2-hb__copy { grid-column: 1 / 7; }
  body.pv2 .pv2-hb__form { grid-column: 7 / 13; }
}
@media (max-width: 900px) {
  body.pv2 .pv2-lm__copy, body.pv2 .pv2-lm__map { grid-column: 1 / -1; }
  body.pv2 .pv2-lm__map .pv2-map, body.pv2 .pv2-lm__map .pv2-map iframe { height: 340px; }
  body.pv2 .pv2-hb__copy, body.pv2 .pv2-hb__form { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  body.pv2 .pv2-linkbtn { width: 100%; white-space: normal; text-align: center; }
  body.pv2 .pv2-svclist--thumbs .pv2-svc a { grid-template-columns: 64px 1fr 24px; }
  body.pv2 .pv2-svclist--thumbs .pv2-svc__thumb { width: 64px; height: 64px; }
  body.pv2 .pv2-pp__ring { inset: -6% -4% -7% -5%; }
}

/* ── Round 2 changes (Luc 2026-10-23) ───────────────────────────────────── */
/* Hero ring: thinner pen. */
body.pv2 .pv2-hero__h1 .pv2-ring__svg path { stroke-width: 3.5; }

/* Review badge in the eyebrow slot: Google G, big score, stars, count. */
body.pv2 .pv2-gbadge {
  display: inline-flex; align-items: center; gap: 12px; margin-bottom: clamp(20px, 2.4vw, 32px); padding: 10px 18px 10px 12px;
  border: 1px solid var(--line-d); border-radius: 999px; background: rgba(255,255,255,.04); color: var(--white); text-decoration: none;
  transition: background-color .18s var(--ease), border-color .18s var(--ease);
}
body.pv2 .pv2-gbadge:hover { background: var(--ink-3); border-color: rgba(255,255,255,.4); }
body.pv2 .pv2-gbadge__g { width: 30px; height: 30px; flex: none; background: var(--white); border-radius: 50%; padding: 4px; }
body.pv2 .pv2-gbadge__num { font-stretch: var(--wd-cond); font-weight: 850; font-size: 34px; line-height: 1; }
body.pv2 .pv2-gbadge__meta { display: flex; flex-direction: column; gap: 3px; }
body.pv2 .pv2-gbadge .pv2-rating__stars .pv2-i { width: 18px; height: 18px; color: #FBBC04; fill: #FBBC04; }
body.pv2 .pv2-gbadge__count { font-size: 15px; font-weight: 650; color: #E3E8EC; line-height: 1.1; }

/* Suburb hero: proof points under the buttons (desktop), under the form (mobile). */
body.pv2 .pv2-hb { grid-template-rows: auto 1fr; }
body.pv2 .pv2-hb__copy { grid-row: 1; }
body.pv2 .pv2-hb__form { grid-row: 1 / 3; align-self: start; }
body.pv2 .pv2-hb__proof { grid-column: 1 / 7; grid-row: 2; align-self: start; }
body.pv2 .pv2-hproof { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
body.pv2 .pv2-hproof li {
  display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 6px;
  background: linear-gradient(135deg, rgba(0,191,254,.10), rgba(255,255,255,.03) 60%); border: 1px solid rgba(0,191,254,.22);
}
body.pv2 .pv2-hproof li:last-child:nth-child(odd) { grid-column: 1 / -1; }
body.pv2 .pv2-hproof__icon { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--blue); color: var(--ink); box-shadow: 0 0 0 6px rgba(0,191,254,.14); }
body.pv2 .pv2-hproof__icon .pv2-i { width: 24px; height: 24px; stroke-width: 2.2; }
body.pv2 .pv2-hproof__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
body.pv2 .pv2-hproof__big { font-stretch: var(--wd-cond); font-weight: 850; text-transform: uppercase; font-size: 26px; line-height: .95; color: var(--white); }
body.pv2 .pv2-hproof__small { font-size: 15px; line-height: 1.3; color: #C9D1D8; }

/* Job sheet ticks on small screens: number | words | tick on the right. */
@media (max-width: 767px) {
  body.pv2 .pv2-docket__steps li { grid-template-columns: 34px 1fr 44px; gap: 12px; align-items: start; }
  body.pv2 .pv2-docket__steps li > div { grid-column: 2; grid-row: 1; }
  body.pv2 .pv2-tick { grid-column: 3; grid-row: 1; justify-self: end; margin-top: 0; }
}

@media (max-width: 1100px) { body.pv2 .pv2-hb__proof { grid-column: 1 / 7; } }
@media (max-width: 900px) {
  body.pv2 .pv2-hb { grid-template-rows: none; }
  body.pv2 .pv2-hb__copy, body.pv2 .pv2-hb__form, body.pv2 .pv2-hb__proof { grid-column: 1 / -1; grid-row: auto; }
}
@media (max-width: 767px) {
  body.pv2 .pv2-hero__h1, body.pv2 .pv2-display--inner, body.pv2 .pv2-hero--suburb .pv2-display--inner { font-size: 44px; } /* was 50px (Luc 2026-11-02: a little smaller) */
  body.pv2 .pv2-hero__h1 .pv2-ring__svg path { stroke-width: 2.5; }
  body.pv2 .pv2-form { padding: 20px; }
  body.pv2 .pv2-gbadge__num { font-size: 30px; }
  /* Photo ring visible: photo sits inside the gutter with room for the ring. */
  body.pv2 .pv2-pp__photo, body.pv2 .pv2-pp--flip .pv2-pp__photo { margin: 16px 14px 20px; }
  body.pv2 .pv2-pp__ring { inset: -17% -7% -19% -9%; }
}

/* Home proof strip: icon in a blue ring, big line + small line. */
body.pv2 .pv2-proof__ico { display: grid; place-items: center; width: 44px; height: 44px; margin-top: -4px; border-radius: 50%; border: 2px solid var(--blue); }
body.pv2 .pv2-proof__ico .pv2-i { width: 22px; height: 22px; stroke-width: 2.2; }
body.pv2 .pv2-proof__sub { display: block; margin-top: 8px; font-stretch: normal; font-weight: 500; text-transform: none; font-size: 16px; line-height: 1.35; letter-spacing: 0; color: var(--dim, #C9D1D8); }
@media (max-width: 767px) {
  body.pv2 .pv2-hproof { grid-template-columns: 1fr; }
  body.pv2 .pv2-hproof__big { font-size: 24px; }
}

/* Owners photo overlaps the section below (Luc 2026-10-23: not butted against the edge). */
body.pv2 .pv2-owners { position: relative; z-index: 2; overflow: visible; }
body.pv2 .pv2-owners__photo { margin-bottom: -112px; box-shadow: 0 40px 70px -30px rgba(0,0,0,.6); }
body.pv2 .pv2-owners + section { padding-top: calc(var(--sec) + 112px); }
@media (max-width: 900px) {
  body.pv2 .pv2-owners__photo { margin: 0 var(--g) -64px; }
  body.pv2 .pv2-owners__photo img { border-radius: 4px; }
  body.pv2 .pv2-owners + section { padding-top: calc(var(--sec) + 64px); }
}

/* ── Tighter above the fold (Luc 2026-10-23): smaller H1, shorter photo, copy and buttons up. ── */
@media (min-width: 768px) {
  body.pv2 .pv2-hero { padding-top: clamp(28px, 3vw, 44px); }
  body.pv2 .pv2-hero__h1, body.pv2 .pv2-hero--suburb .pv2-display--inner { font-size: clamp(46px, 5.4vw, 88px); } /* ~12% smaller (Luc 2026-11-02) */
  body.pv2 .pv2-display--inner { font-size: clamp(40px, 4.7vw, 76px); }
  body.pv2 .pv2-gbadge, body.pv2 .pv2-hero__eyebrow { margin-bottom: clamp(14px, 1.6vw, 22px); }
  body.pv2 .pv2-hero__grid { margin-top: clamp(24px, 2.6vw, 40px); align-items: start; }
  body.pv2 .pv2-hero__photo img { aspect-ratio: 16 / 7; }
  body.pv2 .pv2-hero__copy { gap: 18px; padding-bottom: 0; }
  body.pv2 .pv2-hb, body.pv2 .pv2-hs, body.pv2 .pv2-hc { margin-top: clamp(20px, 2.4vw, 36px); }
}
@media (min-width: 768px) and (max-height: 860px) {
  body.pv2 .pv2-hero__h1, body.pv2 .pv2-hero--suburb .pv2-display--inner { font-size: clamp(42px, 4.75vw, 74px); }
  body.pv2 .pv2-display--inner { font-size: clamp(38px, 4.2vw, 66px); }
  body.pv2 .pv2-hero__photo img { aspect-ratio: 16 / 6.4; }
}

/* ── Home hero CRO fixes (Luc 2026-10-23, audit fixes 2, 4, 5) ─────────── */
/* Licence line under the review badge. */
body.pv2 .pv2-hcred { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: clamp(20px, 2.4vw, 32px); }
body.pv2 .pv2-hcred .pv2-gbadge { margin-bottom: 0; }
body.pv2 .pv2-hcred__lic { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 600; line-height: 1.3; color: #E3E8EC; }
body.pv2 .pv2-hcred__lic .pv2-i, body.pv2 .pv2-hfee .pv2-i { width: 18px; height: 18px; flex: none; color: var(--blue); }
/* Three short tags under the buttons, then the call-out line. */
body.pv2 .pv2-htags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.pv2 .pv2-htags li {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
  border: 1px solid rgba(0,191,254,.35); background: rgba(0,191,254,.10);
  font-size: 16px; font-weight: 700; line-height: 1.2; color: var(--white);
}
body.pv2 .pv2-htags .pv2-i { width: 18px; height: 18px; flex: none; color: var(--blue); }
body.pv2 .pv2-hfee { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 600; line-height: 1.3; color: #E3E8EC; }
@media (min-width: 768px) {
  body.pv2 .pv2-hcred { margin-bottom: clamp(14px, 1.6vw, 22px); }
}

/* House-check fix (2026-10-23): a long ringed phrase wraps inside the H1 on phones instead of running off the edge. */
@media (max-width: 767px) {
  body.pv2 .pv2-hero__h1 .pv2-ring--long { white-space: normal; width: min-content; margin-inline: .1em .14em; }
}

/* House-check fix (2026-10-23): suburb hero copy and proof tiles share one left column, so the
   grid holds two items (no stranded third). Under 900px the column dissolves: copy, form, proof. */
body.pv2 .pv2-hb { grid-template-rows: none; }
@media (min-width: 901px) {
  body.pv2 .pv2-hb__main { grid-column: 1 / 7; grid-row: 1; align-self: start; display: flex; flex-direction: column; gap: 32px; min-width: 0; }
  body.pv2 .pv2-hb__main > * { flex: none; height: auto; width: 100%; align-self: stretch; }
  body.pv2 .pv2-hb__form { grid-row: 1; }
}
@media (max-width: 900px) {
  body.pv2 .pv2-hb__main { display: contents; }
  body.pv2 .pv2-hb__copy { order: 1; }
  body.pv2 .pv2-hb__form { order: 2; }
  body.pv2 .pv2-hb__proof { order: 3; }
}

/* House-check fix (2026-10-23): suburb local section copy starts at the top beside the map, not centred (no dead band above the heading). */
body.pv2 .pv2-lm { align-items: start; }

/* ── Review badge placement (Luc 2026-10-23): not at the top on desktop; a chip under the buttons there.
      Mobile keeps it at the top. Rating proof cells are blue with black text. ── */
body.pv2 .pv2-gbadge--chip { display: none; margin: 0; align-self: flex-start; }
@media (min-width: 768px) {
  body.pv2 .pv2-gbadge--top { display: none; }
  body.pv2 .pv2-gbadge--chip { display: inline-flex; }
  body.pv2 .pv2-hcred { margin-bottom: 10px; }
}
body.pv2 .pv2-hproof__rating { padding: 0 !important; background: var(--blue) !important; border-color: var(--blue) !important; }
body.pv2 .pv2-hproof__rating a { display: flex; align-items: center; gap: 16px; width: 100%; padding: 18px 20px; color: var(--ink); text-decoration: none; border-radius: 6px; }
body.pv2 .pv2-hproof__rating a:hover { background: var(--blue-hi); }
body.pv2 .pv2-hproof__rating .pv2-hproof__big, body.pv2 .pv2-hproof__rating .pv2-hproof__small { color: var(--ink); }
body.pv2 .pv2-hproof__rating .pv2-hproof__small { font-weight: 650; }
body.pv2 .pv2-hproof__icon--g { background: var(--white); box-shadow: none; }
body.pv2 .pv2-hproof__icon--g .pv2-gbadge__g { width: 30px; height: 30px; padding: 0; background: none; }
body.pv2 .pv2-hproof__rating .pv2-rating__stars { display: inline-flex; gap: 2px; vertical-align: middle; }
body.pv2 .pv2-hproof__rating .pv2-rating__stars .pv2-i { width: 16px; height: 16px; color: var(--ink); fill: var(--ink); }
/* Home proof strip: the rating cell in blue. */
body.pv2 .pv2-proof--deck li.pv2-proof__rating { background: var(--blue); padding-left: 24px; padding-right: 24px; border-left: 0; }
body.pv2 .pv2-proof--deck li.pv2-proof__rating a { color: var(--ink); }
body.pv2 .pv2-proof--deck li.pv2-proof__rating a:hover { background: transparent; }
body.pv2 .pv2-proof--deck .pv2-proof__rating .pv2-proof__num, body.pv2 .pv2-proof--deck .pv2-proof__rating .pv2-rating__stars { color: var(--ink); }
body.pv2 .pv2-proof--deck .pv2-proof__rating .pv2-rating__stars .pv2-i { fill: var(--ink); }
body.pv2 .pv2-proof--deck .pv2-proof__rating .pv2-proof__small { color: var(--ink); font-weight: 650; }

/* Service-area map (Leaflet, shaded suburbs). Leaflet needs a real height. */
body.pv2 .pv2-areamap { position: relative; z-index: 0; min-height: 420px; }
body.pv2 .pv2-areas__map.pv2-areamap { min-height: 520px; }
body.pv2 .pv2-coverage__map.pv2-areamap { height: clamp(420px, 46vw, 640px); }
body.pv2 .pv2-areamap .leaflet-tooltip { font: 600 15px/1.2 var(--font-body, sans-serif); }
body.pv2 .pv2-areamap .leaflet-control-attribution { font-size: 14px; } /* house floor 14px (comb 2026-11-02) */
@media (max-width: 900px) { body.pv2 .pv2-areas__map.pv2-areamap { min-height: 380px; } }
body.pv2 .pv2-lcards__more { list-style: none; margin: 24px 0 0; padding: 0; }
body.pv2 .pv2-lcards__more li { display: contents; }
body.pv2 .pv2-areamap img, body.pv2 .pv2-areamap .leaflet-tile { max-width: none !important; max-height: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
body.pv2 .pv2-areamap .leaflet-control-zoom a { color: #0B0D10 !important; background: #fff; font: 700 22px/30px var(--font-body, sans-serif); text-decoration: none; }
body.pv2 .pv2-areamap .leaflet-control-zoom a:hover { background: #E6F8FF; }
/* Home "What we fix": the Emergency cell spans two columns on desktop, photo left, words right (Luc 2026-10-27). */
@media (min-width: 1101px) {
  body.pv2 .pv2-fix__more { grid-column: span 2; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-rows: 1fr auto auto auto 1fr; column-gap: 32px; row-gap: 20px; align-content: stretch; justify-items: start; }
  body.pv2 .pv2-fix__more > .pv2-label { grid-row: 2; }
  body.pv2 .pv2-fix__more > .pv2-fix__em { grid-row: 3; }
  body.pv2 .pv2-fix__more > .pv2-btn { grid-row: 4; }
  body.pv2 .pv2-fix__more > * { grid-column: 2; }
  /* Photo bleeds to the card's top, left and bottom edges; the column gap keeps space to the words. */
  body.pv2 .pv2-fix__more { --em-pad: clamp(24px, 3vw, 40px); overflow: hidden; }
  body.pv2 .pv2-fix__more > .pv2-fix__emphoto { grid-column: 1; grid-row: 1 / -1; align-self: stretch; width: calc(100% + var(--em-pad)); margin: calc(-1 * var(--em-pad)) 0 calc(-1 * var(--em-pad)) calc(-1 * var(--em-pad)); }
  body.pv2 .pv2-fix__more > .pv2-fix__emphoto { position: relative; }
  body.pv2 .pv2-fix__more > .pv2-fix__emphoto img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; border-radius: 0; }
}
body.pv2 .pv2-fix__all { display: flex; justify-content: center; margin-top: clamp(32px, 4vw, 48px); }
body.pv2 .pv2-fix__more { background: var(--ink-2); border-color: transparent; } /* same colour as the other cards (Luc 2026-10-27) */

/* Home proof row heading (Billy 2026-10-28: "Why choose Priority Plumbing Melbourne?"). */
body.pv2 .pv2-proof__head { margin: clamp(48px, 6vw, 80px) 0 0; }
body.pv2 .pv2-proof__head + .pv2-proof--deck { margin-top: 18px; }
@media (max-width: 767px) { body.pv2 .pv2-proof__head { margin-top: 32px; } }

/* Hot water brands without their own page: logo tiles (Luc 2026-10-28). White tile so full-colour logos read on any ground. */
body.pv2 .pv2-brandtiles { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
body.pv2 .pv2-brandtiles li { display: flex; align-items: center; justify-content: center; height: 80px; padding: 16px 20px; background: #fff; border: 1px solid var(--rule); border-radius: 8px; }
body.pv2 .pv2-brandtiles img { max-height: 40px; max-width: 100%; width: auto; height: auto; }


/* ── Quote form CRO (Luc 2026-11-02) ── */
body.pv2 .pv2-form { border-top: 6px solid var(--blue); }
body.pv2 .pv2-form__title { font-size: clamp(26px, 2.2vw, 32px); }
body.pv2 .pv2-form__call { color: var(--ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
body.pv2 .pv2-form__call:hover { color: var(--ink); text-decoration-thickness: 2px; }
body.pv2 .pv2-form button.wpforms-submit { background: var(--blue) !important; color: var(--ink) !important; display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; }
body.pv2 .pv2-form button.wpforms-submit::after { content: "\2192"; font-size: 20px; line-height: 1; transition: transform .18s var(--ease); }
body.pv2 .pv2-form button.wpforms-submit:hover, body.pv2 .pv2-form button.wpforms-submit:focus { background: var(--blue-hi, #33CCFF) !important; color: var(--ink) !important; }
body.pv2 .pv2-form button.wpforms-submit:hover::after { transform: translateX(3px); }
body.pv2 .pv2-form__assure { display: grid; gap: 8px; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid #E1E5E9; list-style: none; }
body.pv2 .pv2-form__assure li { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 650; color: var(--ink); }
body.pv2 .pv2-form__assure .pv2-i { width: 20px; height: 20px; stroke-width: 2.6; color: var(--deep); flex: none; }
/* Service hero: the review pill sits under the form card. */
body.pv2 .pv2-hs__rating { margin-top: 18px; display: flex; justify-content: center; }
/* Closing band: Google reviews banner on white above the heading. */
body.pv2 .pv2-gbadge--cta { align-self: flex-start; display: inline-flex; align-items: center; gap: 14px; background: var(--white); color: var(--ink); padding: 12px 20px 12px 14px; border-radius: 999px; text-decoration: none; box-shadow: 0 10px 30px -18px rgba(0,0,0,.6); margin-bottom: clamp(20px, 2.4vw, 28px); }
body.pv2 .pv2-gbadge--cta:hover, body.pv2 .pv2-gbadge--cta:focus { color: var(--ink); background: #F1F3F5; }
body.pv2 .pv2-gbadge--cta .pv2-gbadge__g { width: 30px; height: 30px; }
body.pv2 .pv2-gbadge--cta .pv2-gbadge__num { font-stretch: var(--wd-cond); font-weight: 900; font-size: 34px; line-height: 1; color: var(--ink); }
body.pv2 .pv2-gbadge--cta .pv2-gbadge__meta { display: flex; flex-direction: column; gap: 2px; }
body.pv2 .pv2-gbadge--cta .pv2-rating__stars .pv2-i { width: 16px; height: 16px; color: #F5A623; fill: #F5A623; }
body.pv2 .pv2-gbadge--cta .pv2-gbadge__count { font-size: 16px; font-weight: 650; color: var(--ink); }
body.pv2 .pv2-cta__head .pv2-gbadge--cta { display: inline-flex; }
/* Quote form photo upload (Luc 2026-11-02): the component's control, dressed for the v2 card. */
body.pv2 .pv2-form .ds-photo-upload { margin: 0 0 22px; column-gap: 16px; row-gap: 8px; align-items: center; }
body.pv2 .pv2-form .ds-photo-upload__drop { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 18px; border: 2px dashed #7A838C; border-radius: 4px; background: #F1F3F5; color: var(--ink); font-size: 16px; font-weight: 700; cursor: pointer; transition: border-color .15s var(--ease), background-color .15s var(--ease); }
body.pv2 .pv2-form .ds-photo-upload__drop:hover, body.pv2 .pv2-form .ds-photo-upload__drop:focus-within { border-color: var(--ink); background: #E7EAED; }
body.pv2 .pv2-form .ds-photo-upload__icon, body.pv2 .pv2-form .ds-photo-upload__icon svg { width: 22px; height: 22px; flex: none; }
body.pv2 .pv2-form .ds-photo-upload__hint { display: block; margin: 0; font-size: 16px; line-height: 1.4; color: var(--grey); }

/* Home hero: Billy and Jake beside the ute. Keep both faces in frame at every crop (Billy 2026-11-04). */
body.pv2 .pv2-hero__photo img.pv2-hero__img--owners { object-position: 50% 45%; }
