/* PRS Pneumatic Restoration South — Astra child theme styles
   Layout concept: full-bleed project photography in dark bands, clean white reading bands,
   PRS red used as the "injection" line that runs through the page (eyebrows, crack line, CTAs). */
:root {
  --prs-ink: #0d0e10;        /* logo black */
  --prs-steel: #1b1d21;      /* raised dark surface */
  --prs-red: #e3120b;        /* PRS red, from the logo highlight */
  --prs-red-deep: #9f0000;   /* logo shadow red */
  --prs-concrete: #eef0f1;   /* cool concrete grey band */
  --prs-line: #d6d9dc;
  --prs-muted: #5d636b;
  --prs-gray: #1e2023;       /* header: dark dark gray */
  --prs-gray-2: #1a1c1f;     /* footer */
  --prs-gray-3: #2c2f33;     /* footer bottom bar, dividers on dark gray */
  --prs-white: #ffffff;
  --prs-display: "Barlow Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --prs-stencil: var(--prs-display);
  --prs-body: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --prs-wrap: 1320px;
  --prs-gutter: clamp(18px, 4vw, 48px);
  --prs-band: clamp(64px, 9vw, 128px);
  --prs-radius: 2px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { background: var(--prs-white); color: var(--prs-ink); font-family: var(--prs-body); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
.prs-main { display: block; overflow-x: clip; }
.prs-main :is(h1, h2, h3, h4, p, ul, ol, figure) { margin: 0; }
.prs-main :where(a) { color: inherit; }
.prs-main a:focus-visible, .prs-header a:focus-visible, .prs-header button:focus-visible, .prs-footer a:focus-visible, .prs-form :focus-visible { outline: 3px solid var(--prs-red); outline-offset: 3px; }
.prs-main img { display: block; max-width: 100%; height: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.skip-link:focus { clip: auto; width: auto; height: auto; z-index: 100000; top: 8px; left: 8px; padding: 10px 16px; background: var(--prs-white); color: var(--prs-ink); }

.prs-wrap { width: 100%; max-width: var(--prs-wrap); margin-inline: auto; padding-inline: var(--prs-gutter); box-sizing: border-box; }

/* Type scale */
.prs-main h1, .prs-main h2, .prs-display { font-family: var(--prs-display); font-stretch: 118%; font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; line-height: 0.98; text-wrap: balance; color: inherit; }
.prs-main h1 { font-size: clamp(2.5rem, 6.2vw, 5.4rem); }
.prs-main h2 { font-size: clamp(2rem, 4.2vw, 3.5rem); }
.prs-main h3 { font-family: var(--prs-display); font-stretch: 105%; font-weight: 700; font-size: clamp(1.2rem, 1.7vw, 1.45rem); line-height: 1.2; text-wrap: balance; color: inherit; }
.prs-main h4 { font-family: var(--prs-display); font-weight: 700; font-size: 1.05rem; color: inherit; }
.prs-main p, .prs-main li { max-width: 68ch; }
.prs-lead { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.55; }
.prs-eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--prs-body); font-size: 0.78rem !important; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--prs-red); }
.prs-eyebrow::before { content: ""; width: 34px; height: 3px; background: var(--prs-red); transform: skewX(-30deg); flex: none; }
.prs-red { color: var(--prs-red); }

/* ---------- Header ---------- */
.prs-header { position: sticky; top: 0; z-index: 999; background: var(--prs-gray); color: var(--prs-white); font-family: var(--prs-body); box-shadow: 0 6px 18px rgba(0,0,0,.35); }
.admin-bar .prs-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .prs-header { top: 0; position: relative; } }
.prs-topbar { background: var(--prs-red); color: var(--prs-white); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.prs-topbar .prs-wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; }
.prs-topbar a { color: var(--prs-white); text-decoration: none; }
.prs-topbar a:hover { text-decoration: underline; }
.prs-topbar__links { display: flex; gap: 22px; white-space: nowrap; }
.prs-nav .prs-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 96px; }
.prs-nav { background: var(--prs-gray); color: var(--prs-white); border-bottom: 3px solid var(--prs-red); }
.prs-logo { display: flex; align-items: center; flex: none; line-height: 0; padding-block: 10px; }
.prs-logo img { width: 228px; height: auto; }
.prs-menu { display: flex; align-items: center; gap: 20px; }
.prs-menu > .prs-btn { white-space: nowrap; padding-inline: 22px; }
.prs-menu__list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.prs-menu__list > li { position: relative; }
.prs-menu__list a { white-space: nowrap; display: block; color: var(--prs-white); text-decoration: none; font-size: 0.84rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; padding: 36px 11px; position: relative; }
.prs-menu__list > li > a::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: 26px; height: 3px; background: var(--prs-red); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.prs-menu__list > li:hover > a::after, .prs-menu__list > li:focus-within > a::after, .prs-menu__list > .current-menu-item > a::after, .prs-menu__list > .current-menu-ancestor > a::after { transform: scaleX(1); }
.prs-menu__list .menu-item-has-children > a { padding-right: 26px; }
.prs-menu__list .menu-item-has-children > a::before { content: ""; position: absolute; right: 10px; top: 50%; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-70%) rotate(45deg); }
.prs-menu__list .sub-menu { position: absolute; top: calc(100% + 3px); left: -20px; display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 0 24px; padding: 22px 26px; margin: 0; list-style: none; background: var(--prs-white); border-top: 4px solid var(--prs-red); box-shadow: 0 24px 50px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.prs-menu__list .sub-menu:not(:has(> li:nth-child(4))) { grid-template-columns: minmax(240px, 1fr); }
.prs-menu__list li:hover > .sub-menu, .prs-menu__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.prs-menu__list .sub-menu a { color: var(--prs-ink); padding: 10px 0; font-size: 0.82rem; letter-spacing: 0.06em; border-bottom: 1px solid var(--prs-line); }
.prs-menu__list .sub-menu a:hover { color: var(--prs-red); }
.prs-sub-toggle { display: none; }
.prs-burger { display: none; }

.prs-btn, .prs-main .wp-block-button .wp-block-button__link { display: inline-flex; align-items: center; gap: 10px; font-family: var(--prs-body); font-size: 0.86rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; padding: 17px 28px; border-radius: var(--prs-radius); border: 2px solid var(--prs-red); background: var(--prs-red); color: var(--prs-white); line-height: 1.1; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.prs-btn:hover, .prs-main .wp-block-button .wp-block-button__link:hover { background: var(--prs-red-deep); border-color: var(--prs-red-deep); color: var(--prs-white); }
.prs-main .wp-block-button .wp-block-button__link::after, .prs-btn--arrow::after { content: ""; width: 18px; height: 2px; background: currentColor; box-shadow: none; clip-path: none; transition: width .2s; }
.prs-main .wp-block-button .wp-block-button__link:hover::after { width: 26px; }
.prs-main .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: currentColor; color: inherit; }
.prs-main .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--prs-white); color: var(--prs-ink); border-color: var(--prs-white); }
.prs-section--light .wp-block-button.is-style-outline .wp-block-button__link:hover, .prs-section--concrete .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--prs-ink); color: var(--prs-white); border-color: var(--prs-ink); }
.prs-main .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
.prs-main .wp-block-button { margin: 0; }

/* ---------- Hero ---------- */
.prs-hero { position: relative; isolation: isolate; color: var(--prs-white); background: var(--prs-ink); min-height: clamp(560px, 82vh, 820px); display: flex; align-items: flex-end; }
.prs-hero--inner { min-height: clamp(420px, 58vh, 560px); }
.prs-hero > .prs-hero__media { position: absolute; inset: 0; z-index: -2; margin: 0; }
.prs-hero > .prs-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.prs-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(13,14,16,.92) 0%, rgba(13,14,16,.72) 45%, rgba(13,14,16,.25) 100%), linear-gradient(0deg, rgba(13,14,16,.85) 0%, rgba(13,14,16,0) 55%); }
/* the red "injected crack" that draws across the hero */
.prs-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; z-index: -1; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 90' preserveAspectRatio='none'%3E%3Cpath d='M0 62 L120 58 L170 70 L260 44 L330 52 L410 30 L470 41 L560 22 L600 36 L700 18 L780 40 L840 34 L930 56 L1010 46 L1080 64 L1170 50 L1230 60 L1320 38 L1400 46 L1480 28 L1600 34' fill='none' stroke='%23ff2a1f' stroke-width='3' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M560 22 L590 4 M930 56 L950 82 M1320 38 L1350 14' fill='none' stroke='%23ff2a1f' stroke-width='2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%; filter: drop-shadow(0 0 6px rgba(255,42,31,.7)); clip-path: inset(0 0 0 0); animation: prs-inject 2.2s cubic-bezier(.6,.05,.2,1) .3s both; }
@keyframes prs-inject { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.prs-hero > .prs-hero__inner { width: 100%; max-width: var(--prs-wrap); margin-inline: auto; padding: clamp(120px, 14vw, 180px) var(--prs-gutter) clamp(90px, 9vw, 130px); box-sizing: border-box; display: grid; gap: 26px; }
.prs-hero h1 { max-width: 16ch; }
.prs-hero--inner h1 { max-width: 20ch; font-size: clamp(2.2rem, 5vw, 4.3rem); }
.prs-hero .prs-lead { max-width: 58ch; color: rgba(255,255,255,.88); }
.prs-hero .prs-eyebrow { color: var(--prs-white); }
.prs-hero .wp-block-button.is-style-outline .wp-block-button__link { color: var(--prs-white); }

/* ---------- Sections ---------- */
.prs-section { padding-block: var(--prs-band); position: relative; }
.prs-section--light { background: var(--prs-white); color: var(--prs-ink); }
.prs-section--concrete { background: var(--prs-concrete); color: var(--prs-ink); }
.prs-section--ink { background: var(--prs-ink); color: var(--prs-white); }
.prs-section--red { background: var(--prs-red); color: var(--prs-white); }
.prs-section--ink .prs-muted, .prs-section--ink p:not(.prs-eyebrow) { color: rgba(255,255,255,.8); }
.prs-section > .prs-wrap { display: grid; gap: clamp(36px, 5vw, 64px); }
.prs-head { display: grid; gap: 18px; max-width: 860px; }
.prs-head--split { max-width: none; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: end; gap: 24px 64px; }
.prs-head--split > .prs-eyebrow { grid-column: 1 / -1; }
.prs-muted { color: var(--prs-muted); }

/* Trust strip */
.prs-strip { background: var(--prs-steel); color: var(--prs-white); }
.prs-strip > .prs-wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prs-strip .prs-stat { padding: 30px 26px; border-left: 1px solid rgba(255,255,255,.12); display: grid; gap: 4px; align-content: start; }
.prs-strip .prs-stat:first-child { border-left: 0; padding-left: 0; }
.prs-stat__num { font-family: var(--prs-display); font-stretch: 120%; font-weight: 800; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1; color: var(--prs-white); font-variant-numeric: tabular-nums; }
.prs-stat__num strong, .prs-stat__num mark { color: var(--prs-red); background: none; }
.prs-stat__label { font-size: 0.82rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,.7); }

/* Split */
.prs-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.prs-split--wide-text { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.prs-split--top { align-items: start; }
.prs-stack { display: grid; gap: 22px; align-content: start; min-width: 0; }
.prs-photo { position: relative; }
.prs-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.prs-photo--wide img { aspect-ratio: 4 / 3; }
.prs-photo::after { content: ""; position: absolute; width: 38%; height: 12px; background: var(--prs-red); left: -14px; bottom: -14px; transform: skewX(-30deg); }

/* Service tiles */
.prs-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.prs-tile { position: relative; isolation: isolate; overflow: hidden; background: var(--prs-ink); color: var(--prs-white); min-height: 320px; display: flex; flex-direction: column; justify-content: flex-end; padding: 26px; gap: 8px; }
.prs-tile--feature { grid-column: span 2; min-height: 420px; }
.prs-tile > .wp-block-image { position: absolute; inset: 0; z-index: -2; }
.prs-tile > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.prs-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(13,14,16,.95) 10%, rgba(13,14,16,.35) 70%, rgba(13,14,16,.15)); transition: background .3s; }
.prs-tile::after { content: ""; position: absolute; left: 0; bottom: 0; height: 5px; width: 100%; background: var(--prs-red); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.prs-tile:hover::after, .prs-tile:focus-within::after { transform: scaleX(1); }
.prs-tile:hover > .wp-block-image img { transform: scale(1.05); }
.prs-tile h3 a { text-decoration: none; color: var(--prs-white); }
.prs-tile h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.prs-tile p { font-size: 0.95rem; line-height: 1.5; color: rgba(255,255,255,.82); }
.prs-tile--feature h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-stretch: 118%; text-transform: uppercase; }

/* Checklists & chips */
.prs-checklist { list-style: none; padding: 0; display: grid; gap: 12px; }
.prs-checklist li { position: relative; padding-left: 34px; }
.prs-checklist li::before { content: ""; position: absolute; left: 0; top: .45em; width: 18px; height: 10px; border-left: 3px solid var(--prs-red); border-bottom: 3px solid var(--prs-red); transform: rotate(-45deg); }
.prs-checklist--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 36px; }
.prs-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.prs-chips li { border: 1px solid currentColor; padding: 8px 14px; font-size: 0.84rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.prs-section--ink .prs-chips li { border-color: rgba(255,255,255,.3); }

/* Cards (signs, audiences) */
.prs-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--prs-line); border-left: 1px solid var(--prs-line); }
.prs-card { padding: 34px 30px; border-right: 1px solid var(--prs-line); border-bottom: 1px solid var(--prs-line); display: grid; gap: 12px; align-content: start; transition: background .25s; }
.prs-card:hover { background: var(--prs-white); }
.prs-section--light .prs-card:hover { background: var(--prs-concrete); }
.prs-card h3::before { content: ""; display: block; width: 26px; height: 4px; background: var(--prs-red); margin-bottom: 18px; transform: skewX(-30deg); }
.prs-card p { color: var(--prs-muted); font-size: 0.98rem; }
.prs-section--ink .prs-cards, .prs-section--ink .prs-card { border-color: rgba(255,255,255,.14); }
.prs-section--ink .prs-card:hover { background: var(--prs-steel); }

/* Process steps (a real sequence, so numbered) */
.prs-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; counter-reset: prs-step; }
.prs-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.prs-step { counter-increment: prs-step; position: relative; padding: 0 26px 0 0; display: grid; gap: 12px; align-content: start; }
.prs-step::before { content: counter(prs-step, decimal-leading-zero); font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: 3.2rem; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--prs-red); }
.prs-step::after { content: ""; position: absolute; top: 1.6rem; left: 5.2rem; right: 18px; height: 2px; background: repeating-linear-gradient(90deg, var(--prs-red) 0 10px, transparent 10px 16px); opacity: .6; }
.prs-step:last-child::after { display: none; }
.prs-step p { font-size: 0.97rem; }
.prs-section--ink .prs-step p { color: rgba(255,255,255,.75); }

/* Equipment */
.prs-equip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.prs-equip__item { background: var(--prs-white); padding: 26px; display: grid; gap: 12px; align-content: start; border-bottom: 4px solid var(--prs-red); }
.prs-equip__item .wp-block-image { background: var(--prs-concrete); padding: 18px; }
.prs-equip__item img { width: 100%; height: 170px; object-fit: contain; }
.prs-equip__item p { font-size: 0.95rem; color: var(--prs-muted); }
.prs-equip__tag { font-size: 0.74rem !important; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--prs-red) !important; }

/* Facts panel on service pages */
.prs-facts { background: var(--prs-ink); color: var(--prs-white); padding: 34px; display: grid; gap: 16px; align-content: start; position: relative; }
.prs-facts::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 6px; background: var(--prs-red); }
.prs-facts h3 { font-stretch: 118%; text-transform: uppercase; }
.prs-facts ul { list-style: none; padding: 0; display: grid; gap: 0; }
.prs-facts li { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 0.97rem; color: rgba(255,255,255,.85); }
.prs-facts li strong { display: block; font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--prs-red); margin-bottom: 2px; }

/* Red band / CTA */
.prs-cta { background: var(--prs-red); color: var(--prs-white); position: relative; overflow: hidden; padding-block: clamp(56px, 7vw, 96px); }
.prs-cta::before { content: ""; position: absolute; right: -6%; top: -40%; width: 46%; height: 180%; background: var(--prs-red-deep); transform: skewX(-24deg); opacity: .55; }
.prs-cta > .prs-wrap { position: relative; display: grid; grid-template-columns: minmax(0, 1.4fr) auto; align-items: center; gap: 28px 48px; }
.prs-cta h2 { font-size: clamp(1.9rem, 3.8vw, 3.1rem); }
.prs-cta p:not(.prs-eyebrow) { color: rgba(255,255,255,.92); margin-top: 14px !important; }
.prs-cta .prs-eyebrow { color: var(--prs-white); }
.prs-cta .prs-eyebrow::before { --stripe: var(--prs-white); }
.prs-cta .wp-block-button .wp-block-button__link { background: var(--prs-ink); border-color: var(--prs-ink); }
.prs-cta .wp-block-button .wp-block-button__link:hover { background: var(--prs-white); color: var(--prs-ink); border-color: var(--prs-white); }
.prs-cta .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: var(--prs-white); color: var(--prs-white); }

/* SB 4-D feature band */
.prs-sb4d { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; background: var(--prs-ink); color: var(--prs-white); }
.prs-sb4d > .wp-block-image img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.prs-sb4d > .prs-stack { padding: clamp(36px, 6vw, 80px); }
.prs-sb4d p:not(.prs-eyebrow) { color: rgba(255,255,255,.82); }
.prs-sb4d .prs-badge, .prs-badge { display: inline-block; font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: clamp(3rem, 7vw, 6rem) !important; line-height: .9; color: var(--prs-red); letter-spacing: -0.02em; }

/* Gallery */
.prs-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.prs-gallery > .wp-block-image { grid-column: span 4; position: relative; overflow: hidden; background: var(--prs-ink); }
.prs-gallery > .wp-block-image:nth-child(5n+1) { grid-column: span 8; }
.prs-gallery > .wp-block-image img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease, opacity .3s; }
.prs-gallery > .wp-block-image:nth-child(5n+1) img { aspect-ratio: auto; min-height: 100%; }
.prs-gallery > .wp-block-image:hover img { transform: scale(1.04); opacity: .8; }
.prs-gallery figcaption { position: absolute; left: 0; bottom: 0; margin: 0; padding: 10px 14px; background: var(--prs-ink); color: var(--prs-white); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; border-left: 4px solid var(--prs-red); }
.prs-gallery--4 > .wp-block-image, .prs-gallery--4 > .wp-block-image:nth-child(5n+1) { grid-column: span 3; }
.prs-gallery--4 > .wp-block-image:nth-child(5n+1) img { aspect-ratio: 4 / 3; min-height: 0; }

/* FAQ */
.prs-faq { display: grid; border-top: 2px solid var(--prs-ink); }
.prs-faq .wp-block-details { border-bottom: 1px solid var(--prs-line); padding: 0; margin: 0; }
.prs-faq summary { cursor: pointer; list-style: none; padding: 24px 56px 24px 0; position: relative; font-family: var(--prs-display); font-stretch: 105%; font-weight: 700; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.3; }
.prs-faq summary::-webkit-details-marker { display: none; }
.prs-faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: linear-gradient(var(--prs-red), var(--prs-red)) center / 18px 3px no-repeat, linear-gradient(var(--prs-red), var(--prs-red)) center / 3px 18px no-repeat; transition: transform .25s; }
.prs-faq details[open] summary::after { transform: rotate(45deg); }
.prs-faq details > p { padding: 0 0 26px; color: var(--prs-muted); }
.prs-faq summary:hover { color: var(--prs-red); }

/* Related links */
.prs-related { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(255,255,255,.18); }
.prs-related li { max-width: none; border-bottom: 1px solid rgba(255,255,255,.18); }
.prs-related a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 22px 18px 22px 0; text-decoration: none; font-family: var(--prs-display); font-stretch: 110%; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; color: var(--prs-white); transition: color .2s, padding .2s; }
.prs-related a::after { content: "→"; color: var(--prs-red); font-family: var(--prs-body); }
.prs-related a:hover { color: var(--prs-red); padding-left: 8px; }

/* Area band */
.prs-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.prs-area { border-top: 3px solid var(--prs-red); padding-top: 18px; display: grid; gap: 10px; align-content: start; }
.prs-area p { color: var(--prs-muted); font-size: 0.97rem; }
.prs-section--ink .prs-area p { color: rgba(255,255,255,.7); }

/* Prose blocks */
.prs-prose { display: grid; gap: 20px; max-width: 760px; }
.prs-prose h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); margin-top: 18px; }
.prs-prose h3 { margin-top: 10px; }
.prs-prose ul:not(.prs-checklist) { padding-left: 1.2em; display: grid; gap: 8px; }

/* ---------- Form ---------- */
.prs-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; background: var(--prs-white); color: var(--prs-ink); padding: clamp(24px, 4vw, 44px); border-top: 6px solid var(--prs-red); box-shadow: 0 30px 60px rgba(13,14,16,.12); }
.prs-form__full { grid-column: 1 / -1; }
.prs-form label { display: grid; gap: 6px; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.prs-form input, .prs-form select, .prs-form textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--prs-ink); background: var(--prs-concrete); border: 1px solid transparent; border-bottom: 2px solid var(--prs-line); border-radius: 0; padding: 14px 14px; transition: border-color .2s, background .2s; }
.prs-form input:focus, .prs-form select:focus, .prs-form textarea:focus { outline: none; background: var(--prs-white); border-color: var(--prs-ink); border-bottom-color: var(--prs-red); }
.prs-form textarea { min-height: 130px; resize: vertical; }
.prs-form .prs-hp { position: absolute; left: -9999px; }
.prs-form button { justify-self: start; cursor: pointer; }
.prs-form__note { font-size: 0.85rem; color: var(--prs-muted); align-self: center; }
.prs-form__msg { grid-column: 1 / -1; padding: 14px 16px; font-weight: 600; }
.prs-form__msg--ok { background: #e7f5ea; color: #13532a; border-left: 4px solid #1f8a46; }
.prs-form__msg--err { background: #fdeceb; color: var(--prs-red-deep); border-left: 4px solid var(--prs-red); }

.prs-contact { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(36px, 6vw, 88px); align-items: start; }
.prs-contact__list { list-style: none; padding: 0; display: grid; gap: 0; border-top: 1px solid rgba(255,255,255,.18); }
.prs-contact__list li { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.18); display: grid; gap: 2px; max-width: none; }
.prs-contact__list strong { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--prs-red); }
.prs-contact__list a { color: var(--prs-white); text-decoration: none; font-family: var(--prs-display); font-stretch: 110%; font-weight: 700; font-size: 1.3rem; }
.prs-contact__list a:hover { color: var(--prs-red); }

/* ---------- Footer ---------- */
.prs-footer { background: var(--prs-gray-2); color: rgba(255,255,255,.72); font-family: var(--prs-body); font-size: 0.95rem; }
.prs-footer a { color: rgba(255,255,255,.88); text-decoration: none; }
.prs-footer a:hover { color: var(--prs-red); }
.prs-footer__call { position: relative; overflow: hidden; background: var(--prs-red); color: var(--prs-white); }
.prs-footer__call::before { content: ""; position: absolute; right: -6%; top: -60%; width: 40%; height: 220%; background: var(--prs-red-deep); transform: skewX(-24deg); opacity: .55; }
.prs-footer__call .prs-wrap { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 32px; padding-block: 40px; }
.prs-footer__call p { margin: 0; font-family: var(--prs-display); font-stretch: 120%; font-weight: 800; font-size: clamp(1.5rem, 3.2vw, 2.5rem); text-transform: uppercase; color: var(--prs-white); line-height: 1; }
.prs-footer__btns { display: flex; flex-wrap: wrap; gap: 14px; }
.prs-footer .prs-btn--dark { background: var(--prs-ink); border-color: var(--prs-ink); color: var(--prs-white); }
.prs-footer .prs-btn--dark:hover { background: var(--prs-white); border-color: var(--prs-white); color: var(--prs-ink); }
.prs-footer .prs-btn--outline { background: transparent; border-color: var(--prs-white); color: var(--prs-white); }
.prs-footer .prs-btn--outline:hover { background: var(--prs-white); color: var(--prs-ink); }
.prs-footer .prs-btn:hover { text-decoration: none; }
@media (max-width: 640px) { .prs-footer__btns { width: 100%; flex-direction: column; } .prs-footer__btns .prs-btn { justify-content: center; } }
.prs-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-block: 64px 48px; }
.prs-footer .prs-footer__title { margin: 0 0 18px; font-family: var(--prs-body); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--prs-red); }
.prs-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.prs-footer__logo { display: inline-block; margin-bottom: 18px; line-height: 0; }
.prs-footer__brand img { width: 228px; height: auto; }
.prs-footer__h-gap { margin-top: 32px !important; }
.prs-footer__cta { margin: 24px 0 0; }
.prs-footer__brand p { margin: 0 0 14px; max-width: 46ch; line-height: 1.65; font-size: 0.9rem; }
.prs-footer__brand p a { color: var(--prs-white); text-decoration: underline; text-decoration-color: var(--prs-red); text-underline-offset: 3px; }
.prs-footer__bottom { background: #141517; font-size: 0.82rem; }
.prs-footer__bottom .prs-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-block: 22px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .prs-menu__list a { padding-inline: 9px; font-size: 0.8rem; }
  .prs-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-tile--feature { grid-column: span 1; min-height: 360px; }
  .prs-equip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-steps, .prs-steps--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 0; }
  .prs-step::after { display: none; }
  .prs-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1400px) {
  .prs-logo img { width: 200px; }
  .prs-menu { gap: 12px; }
  .prs-menu__list a { padding-inline: 8px; font-size: 0.8rem; letter-spacing: 0.06em; }
  .prs-menu__list > li > a::after { left: 8px; right: 8px; }
  .prs-menu > .prs-btn { padding-inline: 18px; }
}
@media (max-width: 1200px) {
  .prs-burger { display: inline-flex; align-items: center; gap: 10px; background: none; border: 2px solid rgba(255,255,255,.3); color: var(--prs-white); font: 700 0.8rem/1 var(--prs-body); letter-spacing: 0.14em; text-transform: uppercase; padding: 12px 14px; cursor: pointer; border-radius: var(--prs-radius); }
  .prs-burger span, .prs-burger span::before, .prs-burger span::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; transition: transform .2s; }
  .prs-burger span::before, .prs-burger span::after { content: ""; position: absolute; left: 0; }
  .prs-burger span::before { top: -6px; } .prs-burger span::after { top: 6px; }
  .prs-burger[aria-expanded="true"] span { background: transparent; }
  .prs-burger[aria-expanded="true"] span::before { transform: translateY(6px) rotate(45deg); }
  .prs-burger[aria-expanded="true"] span::after { transform: translateY(-6px) rotate(-45deg); }
  .prs-menu { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 3px); background: var(--prs-gray); border-top: 1px solid var(--prs-gray-3); flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--prs-gutter) 28px; max-height: calc(100vh - 120px); overflow-y: auto; box-shadow: 0 30px 40px rgba(0,0,0,.4); }
  .prs-menu.is-open { display: flex; }
  .prs-nav .prs-wrap { position: static; min-height: 76px; }
  .prs-nav { position: relative; }
  .prs-logo img { width: 170px; }
  .prs-logo { padding-block: 8px; }
  .prs-menu__list { flex-direction: column; align-items: stretch; gap: 0; }
  .prs-menu__list > li { border-bottom: 1px solid var(--prs-gray-3); display: flex; flex-wrap: wrap; align-items: center; }
  .prs-menu__list > li > a { flex: 1; padding: 18px 0; font-size: 0.95rem; }
  .prs-menu__list > li > a::after, .prs-menu__list .menu-item-has-children > a::before { display: none; }
  .prs-sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; background: none; border: 0; color: var(--prs-white); cursor: pointer; }
  .prs-sub-toggle::before { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
  .prs-sub-toggle[aria-expanded="true"]::before { transform: rotate(-135deg); }
  .prs-menu__list .sub-menu { position: static; display: none; width: 100%; grid-template-columns: 1fr; padding: 0 0 12px 14px; background: none; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .prs-menu__list .sub-menu.is-open { display: grid; }
  .prs-menu__list .sub-menu a { color: rgba(255,255,255,.82); border-bottom: 0; padding: 9px 0; }
  .prs-menu > .prs-btn { margin-top: 22px; justify-content: center; }
}
@media (max-width: 1040px) {
  .prs-head--split, .prs-split, .prs-split--wide-text, .prs-contact, .prs-sb4d { grid-template-columns: minmax(0, 1fr); }
  .prs-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-related, .prs-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-strip > .prs-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-strip .prs-stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .prs-strip .prs-stat { border-top: 1px solid rgba(255,255,255,.12); }
  .prs-strip .prs-stat:nth-child(-n+2) { border-top: 0; }
  .prs-cta > .prs-wrap { grid-template-columns: minmax(0, 1fr); }
  .prs-gallery > .wp-block-image, .prs-gallery > .wp-block-image:nth-child(5n+1) { grid-column: span 6; }
  .prs-gallery > .wp-block-image:nth-child(5n+1) img { aspect-ratio: 4 / 3; }
  .prs-photo img { aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .prs-topbar__msg { display: none; }
  .prs-topbar .prs-wrap { justify-content: center; }
  .prs-topbar__links { gap: 16px; font-size: 0.76rem; }
  .prs-tiles, .prs-cards, .prs-equip, .prs-steps, .prs-steps--5, .prs-related, .prs-areas, .prs-checklist--cols, .prs-form, .prs-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .prs-tile { min-height: 280px; }
  .prs-gallery > .wp-block-image, .prs-gallery > .wp-block-image:nth-child(5n+1), .prs-gallery--4 > .wp-block-image { grid-column: span 12; }
  .prs-hero { min-height: 0; }
  .prs-hero > .prs-hero__inner { padding-top: 96px; }
  .prs-main .wp-block-buttons { flex-direction: column; align-items: stretch; }
  .prs-main .wp-block-button .wp-block-button__link { justify-content: center; width: 100%; box-sizing: border-box; }
  .prs-strip .prs-stat { padding: 22px 14px; }
}

/* ---------- Location pages ---------- */
.prs-areas-line { font-size: 0.98rem; }
.prs-areas-line a { color: var(--prs-red); font-weight: 700; text-decoration: none; border-bottom: 2px solid currentColor; }
.prs-areas-line a:hover { color: inherit; }
.prs-section--concrete .prs-chips li { border-color: var(--prs-line); background: var(--prs-white); }

/* ---------- Service area map (above the footer on every page) ---------- */
.prs-areamap { background: var(--prs-steel); color: var(--prs-white); padding-block: clamp(56px, 8vw, 104px); font-family: var(--prs-body); }
.prs-areamap__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.prs-areamap__intro { display: grid; gap: 18px; align-content: start; min-width: 0; }
.prs-areamap__title { margin: 0; font-family: var(--prs-display); font-stretch: 118%; font-weight: 800; text-transform: uppercase; font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1; letter-spacing: -0.01em; text-wrap: balance; color: var(--prs-white); }
.prs-areamap__lead { margin: 0; color: rgba(255,255,255,.75); max-width: 52ch; }
.prs-areamap__list { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.14); }
.prs-areamap__item { border-bottom: 1px solid rgba(255,255,255,.14); }
.prs-areamap__btn { width: 100%; display: flex; align-items: center; gap: 14px; background: none; border: 0; color: var(--prs-white); cursor: pointer; text-align: left; padding: 20px 0; font-family: var(--prs-display); font-stretch: 112%; font-weight: 700; font-size: clamp(1.1rem, 1.6vw, 1.35rem); text-transform: uppercase; letter-spacing: 0.01em; transition: color .2s; }
.prs-areamap__btn:hover { color: var(--prs-red); }
.prs-areamap__btn:focus-visible, .prs-areamap__link:focus-visible, .prs-map-county:focus-visible { outline: 3px solid var(--prs-red); outline-offset: 3px; }
.prs-areamap__dot { width: 12px; height: 12px; flex: none; border: 2px solid rgba(255,255,255,.5); transform: skewX(-20deg); transition: background .2s, border-color .2s; }
.prs-areamap__item.is-active .prs-areamap__dot { background: var(--prs-red); border-color: var(--prs-red); }
.prs-areamap__item.is-active .prs-areamap__btn { color: var(--prs-white); }
.prs-areamap__detail { padding: 0 0 22px 26px; display: grid; gap: 10px; }
.prs-areamap__detail p { margin: 0; color: rgba(255,255,255,.78); font-size: 0.97rem; }
.prs-areamap__cities { font-size: 0.86rem !important; color: rgba(255,255,255,.6) !important; line-height: 1.7; }
.prs-areamap__link { justify-self: start; color: var(--prs-white); text-decoration: none; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; border-bottom: 2px solid var(--prs-red); padding-bottom: 3px; }
.prs-areamap__link::after { content: "\00a0\00a0→"; color: var(--prs-red); }
.prs-areamap__link:hover { color: var(--prs-red); }
.prs-areamap.is-ready .prs-areamap__item:not(.is-active) .prs-areamap__detail { display: none; }
.prs-areamap__map { min-width: 0; }
.prs-areamap__map svg { display: block; width: 100%; height: auto; max-height: 720px; }
.prs-areamap__note { margin: 8px 0 0; font-size: 0.72rem; color: rgba(255,255,255,.4); text-align: right; }
.prs-map-wave { stroke: rgba(255,255,255,.05); stroke-width: 1; }
.prs-map-land { fill: #23262b; stroke: rgba(255,255,255,.1); stroke-width: 1; }
.prs-map-lake { fill: var(--prs-steel); stroke: rgba(255,255,255,.12); stroke-width: 1; }
.prs-map-county path { fill: #33373d; stroke: var(--prs-steel); stroke-width: 3; stroke-linejoin: round; transition: fill .25s; }
.prs-map-county:hover path, .prs-map-county:focus path { fill: #464b52; }
.prs-map-county.is-active path { fill: var(--prs-red); filter: drop-shadow(0 0 18px rgba(227,18,11,.45)); }
.prs-map-label { font-family: var(--prs-display); font-stretch: 120%; font-weight: 800; font-size: 15px; letter-spacing: 0.06em; fill: rgba(255,255,255,.75); text-anchor: middle; pointer-events: none; }
.prs-map-county.is-active .prs-map-label { fill: var(--prs-white); }
.prs-map-city circle { fill: var(--prs-white); stroke: var(--prs-steel); stroke-width: 2; }
.prs-map-city text { font-family: var(--prs-body); font-size: 12.5px; font-weight: 700; fill: var(--prs-white); text-anchor: end; paint-order: stroke; stroke: var(--prs-steel); stroke-width: 4px; stroke-linejoin: round; pointer-events: none; }
.prs-map-neighbor { font-family: var(--prs-body); font-size: 10px; font-weight: 700; letter-spacing: 0.2em; fill: rgba(255,255,255,.22); text-anchor: middle; }
.prs-map-note { font-family: var(--prs-body); font-size: 11px; font-style: italic; fill: rgba(255,255,255,.45); text-anchor: middle; }
.prs-map-ocean { font-family: var(--prs-display); font-stretch: 125%; font-weight: 700; font-size: 13px; letter-spacing: 0.5em; fill: rgba(255,255,255,.28); text-anchor: middle; }
@media (max-width: 1040px) {
  .prs-areamap__grid { grid-template-columns: minmax(0, 1fr); }
  .prs-areamap__map { order: -1; max-width: 520px; width: 100%; justify-self: center; }
}

/* ---------- SB 4-D milestone band (above the map on every page) ---------- */
.prs-mile { position: relative; overflow: hidden; background: var(--prs-concrete); color: var(--prs-ink); padding-block: clamp(64px, 8vw, 112px); font-family: var(--prs-body);
  background-image: repeating-linear-gradient(-60deg, transparent 0 22px, rgba(13,14,16,.035) 22px 23px); }
.prs-mile::before { content: ""; position: absolute; left: 0; top: 0; width: min(38%, 520px); height: 8px; background: var(--prs-red); transform: skewX(-30deg); transform-origin: top left; }
.prs-mile__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.prs-mile__copy { display: grid; gap: 18px; min-width: 0; position: relative; }
.prs-mile__big { white-space: nowrap; margin: -6px 0 -10px; font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: clamp(3rem, 7vw, 6.5rem); line-height: .85; letter-spacing: -0.03em; color: var(--prs-red); user-select: none; }
.prs-mile__title { margin: 0; font-family: var(--prs-display); font-stretch: 118%; font-weight: 800; text-transform: uppercase; font-size: clamp(1.8rem, 3.4vw, 2.8rem); line-height: 1; letter-spacing: -0.01em; text-wrap: balance; color: var(--prs-ink); max-width: 18ch; }
.prs-mile__text { margin: 0; max-width: 60ch; font-size: 1.05rem; color: #3a3f45; }
.prs-mile__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: prs-mile; border-top: 1px solid rgba(255,255,255,.14); }
.prs-mile__steps li { counter-increment: prs-mile; padding: 18px 20px 22px; display: grid; gap: 4px; align-content: start; font-size: 0.88rem; line-height: 1.45; color: rgba(255,255,255,.66); border-left: 1px solid rgba(255,255,255,.14); }
.prs-mile__steps li:first-child { border-left: 0; }
.prs-mile__steps li::before { content: counter(prs-mile, decimal-leading-zero); font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: 1.5rem; line-height: 1; color: var(--prs-red); }
.prs-mile__steps strong { font-size: 0.76rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--prs-white); }
.prs-mile__cta { margin: 10px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
.prs-mile__cta > span { font-size: 0.92rem; color: var(--prs-muted); }
.prs-mile__art { min-width: 0; display: flex; }
.prs-mile__card { flex: 1; display: flex; flex-direction: column; gap: 0; background: var(--prs-ink); border-top: 6px solid var(--prs-red); box-shadow: 0 30px 60px rgba(13,14,16,.22); }
.prs-mile__card .prs-mile__svg { margin-top: 4px; }
.prs-mile__facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.14); }
.prs-mile__facts li { padding: 20px 22px 24px; display: grid; gap: 4px; align-content: start; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,.62); border-left: 1px solid rgba(255,255,255,.14); }
.prs-mile__facts li:first-child { border-left: 0; }
.prs-mile__facts strong { font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1; letter-spacing: -0.01em; color: var(--prs-white); }
.prs-mile__svg { display: block; width: 100%; height: auto; }
.prs-chart-bg { fill: var(--prs-ink); }
.prs-chart-topbar { fill: var(--prs-red); }
.prs-chart-kicker { font-family: var(--prs-body); font-weight: 800; font-size: 12px; letter-spacing: 0.18em; fill: var(--prs-red); }
.prs-chart-title { font-family: var(--prs-display); font-stretch: 115%; font-weight: 800; font-size: 26px; fill: var(--prs-white); text-transform: uppercase; }
.prs-chart-sub { font-family: var(--prs-body); font-size: 14px; fill: rgba(255,255,255,.6); }
.prs-chart-track { fill: #2c2f33; }
.prs-chart-track.is-live { fill: var(--prs-red-deep); }
.prs-chart-inner { font-family: var(--prs-body); font-weight: 700; font-size: 9.5px; letter-spacing: 0.07em; fill: rgba(255,255,255,.45); text-anchor: middle; }
.prs-chart-tick { stroke: rgba(255,255,255,.45); stroke-width: 1.5; }
.prs-chart-yr { font-family: var(--prs-display); font-stretch: 110%; font-weight: 700; font-size: 15px; fill: rgba(255,255,255,.55); text-anchor: middle; }
.prs-chart-yr.is-due { fill: var(--prs-white); }
.prs-chart-axis { font-family: var(--prs-body); font-weight: 700; font-size: 10.5px; letter-spacing: 0.16em; fill: rgba(255,255,255,.4); text-anchor: end; }
.prs-chart-local { stroke: rgba(255,255,255,.55); stroke-width: 2; stroke-dasharray: 4 4; }
.prs-chart-note { font-family: var(--prs-body); font-weight: 700; font-size: 10.5px; letter-spacing: 0.1em; fill: rgba(255,255,255,.55); text-anchor: end; }
.prs-chart-arc { fill: none; stroke: rgba(255,255,255,.5); stroke-width: 1.5; }
.prs-chart-arclabel { font-family: var(--prs-body); font-weight: 800; font-size: 11px; letter-spacing: 0.1em; fill: var(--prs-white); text-anchor: middle; }
.prs-chart-callline { stroke: var(--prs-red); stroke-width: 2; fill: none; }
.prs-chart-callnum { font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: 44px; fill: var(--prs-red); }
.prs-chart-calltitle { font-family: var(--prs-body); font-weight: 800; font-size: 13px; letter-spacing: 0.14em; fill: var(--prs-white); }
.prs-chart-calltext { font-family: var(--prs-body); font-size: 14px; fill: rgba(255,255,255,.75); }
.prs-chart-due { fill: var(--prs-red); stroke: var(--prs-white); stroke-width: 3; }
.prs-chart-pulse { fill: none; stroke: var(--prs-red); stroke-width: 2; opacity: .6; transform-box: fill-box; transform-origin: center; animation: prs-pulse 2.4s ease-out infinite; }
.prs-chart-re { fill: var(--prs-ink); stroke: var(--prs-white); stroke-width: 3; }
.prs-chart-legend { font-family: var(--prs-body); font-size: 12px; fill: rgba(255,255,255,.75); }
@keyframes prs-pulse { 0% { transform: scale(.7); opacity: .8; } 100% { transform: scale(1.35); opacity: 0; } }
@media (max-width: 1040px) {
  .prs-mile__grid { grid-template-columns: minmax(0, 1fr); }
  .prs-mile__art { max-width: 600px; width: 100%; justify-self: center; }
}
@media (max-width: 640px) {
  .prs-mile__steps { grid-template-columns: minmax(0, 1fr); }
  .prs-mile__steps li { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); padding: 14px 20px 16px; }
  .prs-mile__steps li:first-child { border-top: 0; }
}

.prs-mile__title .prs-red { color: var(--prs-red); }

/* ---------- Client benefits strip (home) ---------- */
.prs-strip--benefits > .prs-wrap { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prs-benefit { padding: 34px 28px 36px; border-left: 1px solid rgba(255,255,255,.12); display: grid; gap: 10px; align-content: start; position: relative; transition: background .25s; }
.prs-benefit:first-child { border-left: 0; padding-left: 0; }
.prs-benefit::before { content: ""; width: 44px; height: 44px; background: var(--prs-red); -webkit-mask: var(--prs-icon) center / contain no-repeat; mask: var(--prs-icon) center / contain no-repeat; margin-bottom: 6px; transition: transform .3s ease; }
.prs-benefit:hover::before { transform: translateY(-3px) scale(1.06); }
.prs-main .prs-benefit h3 { font-stretch: 115%; font-weight: 800; font-size: clamp(1.05rem, 1.4vw, 1.25rem); text-transform: uppercase; letter-spacing: 0.01em; color: var(--prs-white); }
.prs-main .prs-benefit p { font-size: 0.92rem; line-height: 1.55; color: rgba(255,255,255,.7); max-width: 34ch; }
.prs-benefit--shield { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7.5 3v5.5c0 4.8-3.2 8.3-7.5 9.9-4.3-1.6-7.5-5.1-7.5-9.9V6z'/%3E%3Cpath d='M8.5 12.2l2.4 2.4 4.6-4.8'/%3E%3C/svg%3E"); }
.prs-benefit--inject { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v5H7z'/%3E%3Cpath d='M7 8L2.5 9.5 7 11'/%3E%3Cpath d='M17 9.5h4.5'/%3E%3Cpath d='M21.5 7.5v4'/%3E%3Cpath d='M15.5 12l2 7.5h-2.5L13 12'/%3E%3Cpath d='M11 12l1.5 4.5'/%3E%3C/svg%3E"); }
.prs-benefit--building { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18'/%3E%3Cpath d='M6 21V4h9v17'/%3E%3Cpath d='M15 9h3v12'/%3E%3Cpath d='M9 8h3M9 11.5h3M9 15h3'/%3E%3Cpath d='M10 21v-2.5h1V21'/%3E%3C/svg%3E"); }
.prs-benefit--check { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4h6v3H9z'/%3E%3Cpath d='M7 5.5H5.5V21h13V5.5H17'/%3E%3Cpath d='M8.5 13.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
@media (max-width: 1040px) {
  .prs-strip--benefits > .prs-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-benefit:nth-child(3) { border-left: 0; padding-left: 0; }
  .prs-benefit:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.12); }
}
@media (max-width: 640px) {
  .prs-strip--benefits > .prs-wrap { grid-template-columns: minmax(0, 1fr); }
  .prs-benefit { border-left: 0; padding: 26px 0; }
  .prs-benefit + .prs-benefit { border-top: 1px solid rgba(255,255,255,.12); }
}
.prs-chart-coastline { stroke: #36b6e3; stroke-width: 2; stroke-dasharray: 3 4; }
.prs-chart-coast { fill: var(--prs-ink); stroke: #36b6e3; stroke-width: 2.5; stroke-dasharray: 3 2.5; }
.prs-chart-coastcore { fill: #36b6e3; }
.prs-chart-coastlabel { font-family: var(--prs-body); font-weight: 800; font-size: 10.5px; letter-spacing: 0.12em; fill: #36b6e3; text-anchor: end; }
.prs-chart-coastlabel.is-soft { fill: rgba(54,182,227,.8); }
.prs-chart-coastlabel.is-yr { text-anchor: middle; font-size: 11px; }
.prs-main .prs-callout { border-left: 4px solid #36b6e3; background: rgba(54,182,227,.08); padding: 16px 20px; }
.prs-main .prs-callout strong { display: block; color: var(--prs-ink); margin-bottom: 4px; }

/* Footer texture: faint concrete grain + hairline cracks */
.prs-footer { background-color: var(--prs-gray-2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 760' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M1480 130 L1462.0 138.3 L1444.2 133.2 L1425.2 140.2 L1412.4 154.4 L1389.6 158.2 L1380.4 171.6 L1367.2 190.9 L1354.7 191.6 L1330.9 182.3 L1310.5 185.0 L1302.7 194.3 L1290.5 198.4 L1280.0 209.7 L1271.0 225.8 L1249.4 235.9 L1229.5 242.4 L1209.5 249.6 L1194.9 255.9 L1171.0 245.8 L1149.4 242.5 L1137.2 251.6 L1127.1 259.8 L1109.5 259.1 L1092.3 256.5 L1069.6 249.1 L1063.3 262.6 L1045.3 258.3 L1028.7 252.5 L1018.1 270.4 L1002.3 269.9 L993.5 284.0 L972.0 277.0 L963.2 289.8 L956.1 300.5 L941.7 299.6 L924.2 304.9 L909.6 321.7 L897.1 338.6 L886.6 353.0 L875.5 364.2 L853.7 356.2 L834.4 371.1 L822.1 383.6 L801.5 379.9 L786.7 401.1 L775.6 412.0 L759.0 410.9 L748.7 418.8 L737.1 435.3 L721.6 448.7 L705.6 457.6 L688.1 450.8 L664.6 456.0 L654.8 466.2 L632.3 459.6 L621.3 469.2 L596.1 468.6 L578.6 486.9 L558.7 482.0 L546.7 488.0 L533.8 510.0 L517.2 524.3 L498.8 538.9 L482.9 541.2 L467.2 556.8 L458.0 568.9 L434.4 572.9 L418.6 574.3 L404.6 569.1 L396.3 582.5 L384.2 586.8 L371.6 598.5 L357.9 600.3 L335.9 611.0 L317.1 601.1 L297.0 600.7 L288.5 609.9 L274.9 630.6 L249.5 628.5 L237.6 645.6 L215.9 650.4 L192.6 662.1 L178.9 676.1 L155.0 670.1 L133.6 665.7 L109.6 659.7 L90.5 669.8 L68.0 660.9 L47.4 671.4 L27.9 666.9 L11.2 671.4 L-7.9 679.1 L-15.3 698.7 L-34.1 683.3 L-40 700' stroke='rgba(255,255,255,0.09)' stroke-width='1.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1412.4 154.4 L1403.8 147.5 L1396.0 138.9 L1389.0 132.1 L1381.6 132.0 L1381.8 123.8 L1377.8 111.8 L1366.4 102.4 L1358.9 98.6 L1352.0 89.3 L1348.0 80.1 L1346.7 68.8 L1336.2 67.1 L1323.9 64.6 L1319.7 51.7 L1310.7 50.8 L1296.1 48.1 L1288.0 46.1 L1275.5 38.2 L1267.8 37.7 L1271.9 24.2 L1260.8 23.4 L1263.0 9.3 L1252.4 4.7 L1245.9 -6.8 L1238.579344903218 -8.174228774813827' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1302.7 194.3 L1290.9 190.7 L1286.4 182.3 L1275.0 176.8 L1267.0 167.1 L1259.5 162.4 L1256.6 153.4 L1251.0 140.7 L1248.4 132.9 L1238.9 139.8 L1232.5 131.8 L1227.5882633500084 131.35377678190437' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1256.6 153.4 L1250.1 153.9 L1245.6 161.0 L1239.8 157.9 L1232.9 161.1 L1225.1 157.3 L1215.3 154.8 L1205.2 157.2 L1201.2 152.8 L1194.2 145.7 L1189.7 152.7 L1178.7 151.0 L1170.7 155.0 L1162.6 148.4 L1154.3 147.4 L1154.637654448514 156.17129746497312' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1194.9 255.9 L1197.6 270.4 L1182.9 275.1 L1178.2 288.1 L1179.0 302.9 L1170.6 308.6 L1175.9 318.1 L1169.8 330.3 L1167.4 337.3 L1161.3 342.1 L1155.4 348.4 L1159.4 361.7 L1155.3642598521262 370.25875677428377' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1175.9 318.1 L1173.4 326.4 L1175.3 334.3 L1174.2 343.3 L1177.7 352.9 L1184.8 358.3 L1185.8 367.1 L1194.4 367.0 L1194.0 374.0 L1200.4 383.4 L1204.1 391.9 L1209.6 388.9 L1216.4422321219133 390.52463265059' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1069.6 249.1 L1063.6 243.6 L1053.2 243.4 L1049.4 236.9 L1051.1 225.2 L1052.8 217.2 L1044.3 216.3 L1045.4 205.3 L1045.3 191.4 L1037.3 186.8 L1029.6 180.3 L1027.6 165.3 L1024.3 154.2 L1014.3 157.9 L1005.3 160.8 L998.6 146.9 L990.7 150.1 L981.1 149.7 L981.9110957116515 138.68416750887187' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M972.0 277.0 L973.0 289.0 L966.5 299.7 L963.5 312.4 L960.3 319.0 L960.9 333.1 L962.4 344.8 L959.3 356.0 L967.1 360.5 L971.3 371.9 L984.7 378.3 L980.4 387.5 L981.7079716453546 392.5930589894263' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M962.4 344.8 L956.7 348.4 L946.8 353.3 L951.3 358.5 L947.8 364.6 L955.3 372.2 L955.5 382.6 L960.0 389.2 L956.8 393.7 L960.5 402.7 L950.1 407.5 L955.3 414.3 L949.2 420.3 L945.9 426.1 L950.4 430.2 L955.8 437.2 L949.9 444.0 L944.960264699485 450.36919831393993' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M886.6 353.0 L890.4 366.7 L876.4 372.0 L880.2 378.7 L870.5 384.0 L864.5 391.9 L863.9 403.4 L863.9 415.7 L872.6 425.4 L865.3 430.2 L863.2 443.5 L862.2 452.2 L864.8 463.4 L855.9650102783107 467.9891186362953' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M863.9 415.7 L853.5 412.3 L843.0 408.1 L836.9 410.7 L829.9 413.5 L822.8 413.8 L820.9 423.7 L816.7 434.2 L813.2 440.8 L805.6 442.1 L799.6 444.7 L795.1 449.5 L788.7 446.0 L783.7 455.8 L780.2 445.3 L779.4 452.4 L775.3 446.4 L769.6179517270659 451.92009626519695' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M775.6 412.0 L780.6 418.1 L781.4 429.4 L786.1 436.1 L789.3 447.7 L794.9 453.6 L800.3 463.1 L800.3 476.7 L798.5 483.8 L802.7 492.3 L806.1 503.5 L807.5 515.0 L802.6 521.4 L803.9 533.9 L802.6 546.7 L795.0 553.8 L788.2 561.8 L779.2 573.0 L782.1 584.9 L787.1 595.1 L793.8 603.2 L799.9 613.2 L801.0 622.6 L792.8 632.4 L794.3 639.6 L802.7483296659905 645.4265798840113' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M664.6 456.0 L660.9 465.8 L653.3 476.9 L666.2 485.6 L661.1 491.6 L655.1 500.5 L658.5 515.5 L665.5 524.8 L657.5 535.4 L661.7 550.2 L657.4 561.7 L667.7 568.7 L670.0 577.3 L679.7 583.7 L687.0 591.9 L682.9 602.2 L687.9 613.2 L688.0 626.9 L683.7 641.9 L682.8803131642383 649.1368171805091' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M546.7 488.0 L544.5 497.5 L541.2 511.5 L543.5 523.6 L535.2 533.7 L538.5 542.7 L541.3 557.6 L536.1 569.2 L537.8 582.0 L532.1 586.6 L531.0 593.9 L531.3 603.0 L520.5800930375123 604.0980209145314' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M541.3 557.6 L533.1 560.9 L526.3 564.7 L521.8 569.6 L517.2 578.6 L511.3 579.0 L511.1 589.5 L501.8 593.8 L499.7 601.6 L495.1 611.1 L488.3 617.7 L482.0 613.8 L473.5 619.2 L465.4 618.3 L464.9 624.3 L461.2263171298748 630.0721002290857' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M434.4 572.9 L423.3 568.4 L418.1 558.6 L414.4 552.4 L399.6 551.4 L389.3 543.4 L376.9 537.8 L362.4 536.0 L349.7 535.0 L337.4 526.8 L337.20387841729064 519.2911019579847' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M389.3 543.4 L385.2 532.8 L381.4 525.6 L376.2 520.5 L368.5 522.4 L362.9 512.9 L356.1 516.5 L348.5 517.9 L340.7 518.5 L332.6 522.2 L327.6 514.9 L321.4 508.5 L315.0 516.5 L312.8 509.7 L307.0153753980769 512.2031964118021' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M335.9 611.0 L332.2 622.4 L321.1 628.5 L316.4 634.6 L314.4 648.3 L319.5 654.3 L311.6 666.8 L320.2 676.0 L325.5 688.3 L318.9 694.8 L320.4 708.4 L311.68093833392345 712.140679511336' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M215.9 650.4 L213.3 640.7 L202.0 639.9 L200.1 632.4 L195.7 626.2 L190.0 611.8 L183.4 608.9 L176.3 605.3 L166.9 598.2 L156.8 599.7 L148.7 600.4 L149.5 585.5 L141.2 583.1 L134.6 572.0 L125.0 567.8 L118.8 560.6 L117.8 549.5 L112.6 541.3 L97.9 543.9 L99.7 530.5 L87.93370817711518 529.5669409594366' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M148.7 600.4 L142.8 601.7 L136.0 600.8 L126.5 598.1 L123.1 592.2 L116.1 590.7 L106.3 588.1 L99.1 582.9 L100.2 574.6 L90.4 569.5 L93.0 562.4 L87.1 552.6 L82.6 547.5 L71.2 547.5 L76.1 541.4 L72.19261382782086 534.4635164639404' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M68.0 660.9 L66.0 651.9 L55.0 650.1 L46.5 639.1 L46.5 626.8 L39.0 622.8 L33.0 615.6 L37.0 604.7 L33.2 589.7 L23.0 584.0 L11.9 576.0 L18.192290452306807 569.6027269322208' stroke='rgba(255,255,255,0.09)' stroke-width='1.0' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M33.0 615.6 L30.4 610.0 L30.6 600.7 L34.8 590.5 L38.7 586.1 L45.1 580.0 L46.5 574.6 L44.0 568.5 L50.4 560.4 L51.0 554.8 L51.7 546.3 L62.3 542.0 L59.1 534.7 L61.5 523.3 L60.938375314686894 515.4229208612285' stroke='rgba(255,255,255,0.09)' stroke-width='0.7' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M900 780 L911.4 777.8 L918.0 767.1 L937.0 763.7 L957.6 762.1 L967.0 748.6 L986.7 750.4 L999.6 743.8 L1011.1 726.8 L1032.4 728.6 L1054.4 725.7 L1065.5 710.6 L1085.4 714.3 L1105.4 717.9 L1116.3 713.2 L1125.7 700.8 L1133.4 688.2 L1145.4 676.6 L1161.4 672.7 L1171.3 665.8 L1183.3 662.4 L1195.9 659.0 L1203.0 650.3 L1220.4 641.0 L1226.5 631.6 L1242.1 635.9 L1257.2 634.8 L1279.7 634.3 L1286.6 622.8 L1297.5 606.6 L1317.5 596.5 L1336.7 591.2 L1350.9 586.8 L1364.7 585.8 L1382.0 588.6 L1389.7 577.9 L1400.6 565.7 L1412.7 560.0 L1423.1 549.9 L1433.1 532.8 L1447.5 522.7 L1460.3 517.8 L1477.0 522.4 L1480 520' stroke='rgba(255,255,255,0.09)' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M972.0 277.0 L970.2 268.3 L976.7 254.2 L976.1 239.1 L973.7 232.1 L971.4 218.6 L961.2 213.9 L955.7 205.6 L942.4 199.7 L932.6 188.8 L928.2 176.2 L920.5 167.1 L920.1 159.4 L924.9 152.2 L927.3 137.7 L921.5 131.6 L924.4 125.0 L921.7 115.1 L917.6 105.7 L912.0 107.0' stroke='rgba(227,18,11,0.32)' stroke-width='1.4' vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .055 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23n)'/%3E%3C/svg%3E"), radial-gradient(ellipse at 85% 0%, rgba(255,255,255,.035), transparent 60%); background-repeat: no-repeat, repeat, no-repeat; background-size: cover, 220px 220px, 100% 100%; background-position: center, 0 0, 0 0; }
.prs-benefit--hardhat { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 18.5h19'/%3E%3Cpath d='M4.5 18.5v-3a7.5 7.5 0 0 1 15 0v3'/%3E%3Cpath d='M9.5 9V5.5h5V9'/%3E%3Cpath d='M12 5.5v6'/%3E%3C/svg%3E"); }
.prs-benefit--block { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='M13 5l-2.5 4 3 3-2.5 3.5 1 3.5'/%3E%3C/svg%3E"); }
.prs-benefit--gear { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E"); }
.prs-benefit--chat { --prs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4.5h16v11H9.5L4 20z'/%3E%3Cpath d='M8 9h8M8 12h5'/%3E%3C/svg%3E"); }

/* Headings on light backgrounds: dark red */
.prs-main .prs-section--light :is(h2, h3), .prs-main .prs-section--concrete :is(h2, h3),
.prs-main .prs-section--light .prs-card h3, .prs-main .prs-section--concrete .prs-equip__item h3,
.prs-mile__title { color: var(--prs-red-deep); }
.prs-main .prs-section--concrete .prs-equip__item h3 { color: var(--prs-red-deep); }
.prs-mile__title .prs-red { color: var(--prs-red); }

/* Outline buttons on light backgrounds: red */
.prs-main .prs-section--light .wp-block-button.is-style-outline .wp-block-button__link,
.prs-main .prs-section--concrete .wp-block-button.is-style-outline .wp-block-button__link { color: var(--prs-red); border-color: var(--prs-red); background: transparent; }
.prs-main .prs-section--light .wp-block-button.is-style-outline .wp-block-button__link:hover,
.prs-main .prs-section--concrete .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--prs-red); border-color: var(--prs-red); color: var(--prs-white); }

/* Benefit columns: icon on the left of the title and text */
.prs-benefit { grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; row-gap: 8px; }
.prs-benefit::before { grid-column: 1; grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; align-self: start; }
.prs-benefit > * { grid-column: 2; }
.prs-nw { white-space: nowrap; color: inherit; font: inherit; }

/* ---------- Services hub cards ---------- */
.prs-svc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.prs-svc-card { position: relative; display: flex; flex-direction: column; background: var(--prs-white); border-bottom: 4px solid var(--prs-red); box-shadow: 0 14px 34px rgba(13,14,16,.08); transition: transform .25s, box-shadow .25s; }
.prs-section--light .prs-svc-card { background: var(--prs-concrete); }
.prs-svc-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(13,14,16,.14); }
.prs-svc-card > .wp-block-image { overflow: hidden; }
.prs-svc-card > .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .5s ease; }
.prs-svc-card:hover > .wp-block-image img { transform: scale(1.05); }
.prs-svc-card__body { padding: 24px 24px 26px; display: grid; gap: 12px; align-content: start; flex: 1; }
.prs-main .prs-svc-card h3 { font-stretch: 115%; font-weight: 800; text-transform: uppercase; font-size: 1.2rem; }
.prs-main .prs-svc-card h3 a { text-decoration: none; color: var(--prs-red-deep); }
.prs-main .prs-svc-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.prs-svc-card p { font-size: 0.95rem; color: var(--prs-muted); }
.prs-svc-card__more { font-size: 0.8rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--prs-red) !important; text-decoration: none; }
.prs-svc-card__more::after { content: "\00a0\00a0→"; }
@media (max-width: 1040px) { .prs-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .prs-svc-grid { grid-template-columns: minmax(0, 1fr); } }
.prs-main .prs-facts h3, .prs-main .prs-section--light .prs-facts h3, .prs-main .prs-section--concrete .prs-facts h3 { color: var(--prs-white); }

/* ---------- Button colors: always PRS, regardless of Astra's global button/link colors ---------- */
.prs-main .wp-block-button .wp-block-button__link, .prs-btn { background-color: var(--prs-red) !important; border-color: var(--prs-red) !important; color: var(--prs-white) !important; }
.prs-main .wp-block-button .wp-block-button__link:hover, .prs-btn:hover { background-color: var(--prs-red-deep) !important; border-color: var(--prs-red-deep) !important; color: var(--prs-white) !important; }
/* outline buttons on dark backgrounds (hero, red CTA, dark sections): white */
.prs-main .wp-block-button.is-style-outline .wp-block-button__link { background-color: transparent !important; border-color: var(--prs-white) !important; color: var(--prs-white) !important; }
.prs-main .wp-block-button.is-style-outline .wp-block-button__link:hover { background-color: var(--prs-white) !important; border-color: var(--prs-white) !important; color: var(--prs-ink) !important; }
/* outline buttons on white / light gray: red */
.prs-main :is(.prs-section--light, .prs-section--concrete) .wp-block-button.is-style-outline .wp-block-button__link { border-color: var(--prs-red) !important; color: var(--prs-red) !important; }
.prs-main :is(.prs-section--light, .prs-section--concrete) .wp-block-button.is-style-outline .wp-block-button__link:hover { background-color: var(--prs-red) !important; border-color: var(--prs-red) !important; color: var(--prs-white) !important; }
/* solid button inside the red CTA band: black */
.prs-main .prs-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link { background-color: var(--prs-ink) !important; border-color: var(--prs-ink) !important; }
.prs-main .prs-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background-color: var(--prs-white) !important; border-color: var(--prs-white) !important; color: var(--prs-ink) !important; }
/* footer call bar buttons */
.prs-footer .prs-btn--dark { background-color: var(--prs-ink) !important; border-color: var(--prs-ink) !important; }
.prs-footer .prs-btn--dark:hover, .prs-footer .prs-btn--outline:hover { background-color: var(--prs-white) !important; border-color: var(--prs-white) !important; color: var(--prs-ink) !important; }
.prs-footer .prs-btn--outline { background-color: transparent !important; border-color: var(--prs-white) !important; }
/* Astra's back-to-top button */
#ast-scroll-top { background-color: var(--prs-red) !important; color: var(--prs-white) !important; border-radius: var(--prs-radius); }
#ast-scroll-top:hover { background-color: var(--prs-red-deep) !important; }
/* keep the quote button from being pushed out of the header */
.prs-menu > .prs-btn { flex: none; }
.prs-menu__list { flex-wrap: nowrap; }

/* Archivo renders wider than fallback fonts: ease the display width slightly */
.prs-main h1, .prs-main h2, .prs-display { font-stretch: 110%; }
.prs-main h1 { font-size: clamp(2.4rem, 5.4vw, 4.8rem); }
.prs-main .prs-benefit h3 { font-stretch: 100%; }

/* WordPress's block layout adds top margins to every child after the first; spacing here comes from grid/flex gaps instead. */
.prs-main .wp-block-group > *, .prs-main .wp-block-group > .wp-block-group { margin-block-start: 0; margin-block-end: 0; }
.prs-main .prs-section > .prs-wrap > *, .prs-main .prs-strip > .prs-wrap > *, .prs-main .prs-steps > *, .prs-main .prs-cards > *, .prs-main .prs-tiles > *, .prs-main .prs-equip > *, .prs-main .prs-svc-grid > *, .prs-main .prs-gallery > * { margin: 0; }

/* Footer headings: larger and easier to read */
.prs-footer .prs-footer__title { font-family: var(--prs-display); font-stretch: 110%; font-size: 1.05rem; font-weight: 800; letter-spacing: 0.08em; color: var(--prs-white); padding-bottom: 10px; margin-bottom: 18px; border-bottom: 2px solid var(--prs-red); display: inline-block; }

/* ---------- Project galleries: uniform, manageable tile sizes ---------- */
.prs-main .prs-gallery { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.prs-main .prs-gallery > .wp-block-image, .prs-main .prs-gallery > .wp-block-image:nth-child(5n+1) { grid-column: span 2; height: 250px; }
.prs-main .prs-gallery > .wp-block-image img, .prs-main .prs-gallery > .wp-block-image:nth-child(5n+1) img { width: 100% !important; height: 100% !important; aspect-ratio: auto !important; min-height: 0 !important; object-fit: cover; }
/* home: two larger tiles on top, three below */
.prs-main .prs-gallery--home > .wp-block-image:nth-child(-n+2) { grid-column: span 3; height: 320px; }
/* location pages: four across */
.prs-main .prs-gallery--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prs-main .prs-gallery--4 > .wp-block-image, .prs-main .prs-gallery--4 > .wp-block-image:nth-child(5n+1) { grid-column: span 1; height: 230px; }
@media (max-width: 1040px) {
  .prs-main .prs-gallery, .prs-main .prs-gallery--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prs-main .prs-gallery > .wp-block-image, .prs-main .prs-gallery > .wp-block-image:nth-child(5n+1), .prs-main .prs-gallery--home > .wp-block-image:nth-child(-n+2), .prs-main .prs-gallery--4 > .wp-block-image { grid-column: span 1; height: 220px; }
}
@media (max-width: 640px) {
  .prs-main .prs-gallery, .prs-main .prs-gallery--4 { grid-template-columns: minmax(0, 1fr); }
  .prs-main .prs-gallery > .wp-block-image, .prs-main .prs-gallery > .wp-block-image:nth-child(5n+1), .prs-main .prs-gallery--home > .wp-block-image:nth-child(-n+2), .prs-main .prs-gallery--4 > .wp-block-image { height: 220px; }
}

/* ---------- Process steps v2: "first call to finished repair" ----------
   Each step is a panel. A red bar along the top fills a little more on every step
   (like resin travelling along a crack), a "Step 01 / 04" label counts progress,
   and a large outlined numeral sits in the corner. The last step is fully filled. */
.prs-steps { --n: 4; counter-reset: prs-step prs-total var(--n); gap: 16px; }
.prs-steps--5 { --n: 5; }
.prs-steps:has(> .prs-step:nth-child(3):last-child) { --n: 3; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prs-step { --i: 1; --panel: var(--prs-concrete); --track: var(--prs-line); --mark: var(--prs-red-deep);
  position: relative; overflow: hidden; isolation: isolate; padding: 30px 26px 104px; gap: 10px; align-content: start;
  background:
    linear-gradient(var(--prs-red), var(--prs-red)) top left / calc(var(--i) / var(--n) * 100%) 4px no-repeat,
    linear-gradient(var(--track), var(--track)) top left / 100% 4px no-repeat,
    var(--panel);
  transition: transform .25s ease, background-size .6s ease; }
.prs-section--ink .prs-step { --panel: #17191c; --track: rgba(255,255,255,.12); --mark: rgba(255,255,255,.75); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); }
.prs-section--concrete .prs-step { --panel: var(--prs-white); }
.prs-step:nth-child(2) { --i: 2; } .prs-step:nth-child(3) { --i: 3; } .prs-step:nth-child(4) { --i: 4; } .prs-step:nth-child(5) { --i: 5; }
/* Step label: "STEP 01 / 04" */
.prs-step::before { content: "Step " counter(prs-step, decimal-leading-zero) " / " counter(prs-total, decimal-leading-zero);
  font-family: var(--prs-body); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.2;
  color: var(--mark); -webkit-text-stroke: 0; font-stretch: 100%; margin-bottom: 8px; }
/* Large outlined numeral in the bottom-right corner */
.prs-step::after { content: counter(prs-step); position: absolute; z-index: -1; inset: auto -6px -34px auto; top: auto; left: auto; height: auto; width: auto;
  background: none; opacity: 1; display: block;
  font-family: var(--prs-display); font-stretch: 125%; font-weight: 800; font-size: 10rem; line-height: 1; letter-spacing: -0.04em;
  color: transparent; -webkit-text-stroke: 2px var(--prs-red); opacity: .4; transition: opacity .25s ease, transform .25s ease; }
.prs-step:last-child::after { display: block; }
.prs-step:hover { transform: translateY(-3px); }
.prs-step:hover::after { opacity: .6; transform: translateY(-4px); }
/* Finished: last step's numeral turns solid red */
.prs-step:last-child::after { color: var(--prs-red); -webkit-text-stroke: 0; opacity: .22; }
.prs-step:last-child:hover::after { opacity: .4; }
.prs-section--light .prs-step::after, .prs-section--concrete .prs-step::after { opacity: .3; }
.prs-section--light .prs-step:last-child::after, .prs-section--concrete .prs-step:last-child::after { opacity: .16; }
.prs-main .prs-step h3 { font-size: clamp(1.2rem, 1.5vw, 1.4rem); }
.prs-section--ink .prs-step h3 { color: var(--prs-white); }
.prs-step p { font-size: 0.97rem; line-height: 1.6; }
.prs-section--ink .prs-step p { color: rgba(255,255,255,.78); }
@media (max-width: 1100px) {
  .prs-steps--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .prs-steps, .prs-steps--5, .prs-steps:has(> .prs-step:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .prs-step { padding-bottom: 84px; }
  .prs-step::after { display: block; font-size: 8rem; bottom: -28px; }
}
@media (max-width: 600px) {
  .prs-steps, .prs-steps--5, .prs-steps:has(> .prs-step:nth-child(3):last-child) { grid-template-columns: minmax(0, 1fr); }
  .prs-step { padding: 24px 22px 60px; }
  .prs-step::after { font-size: 6.5rem; bottom: -22px; }
}
@media (prefers-reduced-motion: reduce) { .prs-step, .prs-step::after { transition: none; } .prs-step:hover { transform: none; } }


/* ---------- Type v2 (sizes refined by v3 below) ---------- */
.prs-main h1, .prs-main h2, .prs-display { font-stretch: normal; font-weight: 900; letter-spacing: 0.005em; line-height: 0.92; }
.prs-main h1 { font-size: clamp(3rem, 7.4vw, 6.6rem); }
.prs-hero--inner h1 { font-size: clamp(2.7rem, 6vw, 5.4rem); max-width: 18ch; }
.prs-main h2 { font-size: clamp(2.4rem, 5vw, 4.2rem); }
.prs-main h3 { font-family: var(--prs-body); font-stretch: normal; font-weight: 700; font-size: clamp(1.18rem, 1.5vw, 1.36rem); letter-spacing: 0; }
.prs-main .prs-benefit h3 { font-family: var(--prs-display); font-weight: 800; font-size: clamp(1.3rem, 1.7vw, 1.55rem); letter-spacing: 0.02em; }
.prs-footer .prs-footer__title { font-stretch: normal; font-weight: 800; font-size: 1.3rem; letter-spacing: 0.06em; }
.prs-btn, .prs-main .wp-block-button .wp-block-button__link { font-weight: 700; font-size: 0.92rem; letter-spacing: 0.1em; }

/* Eyebrow: stencil type behind a short run of 45-degree caution stripes */
.prs-eyebrow { font-family: var(--prs-stencil); font-weight: 800; font-size: 1rem !important; letter-spacing: 0.14em; gap: 14px; }
.prs-eyebrow::before { --stripe: var(--prs-red); width: 46px; height: 14px; transform: none;
  background: repeating-linear-gradient(-45deg, var(--stripe) 0 5px, transparent 5px 10px); }
.prs-hero .prs-eyebrow::before { --stripe: var(--prs-red); }

/* Process steps: stencil labels and numerals */
.prs-step::before { font-family: var(--prs-stencil); font-weight: 800; font-size: 0.95rem; letter-spacing: 0.14em; }
.prs-step::after { font-family: var(--prs-stencil); font-stretch: normal; font-weight: 900; font-size: 11rem; letter-spacing: 0; bottom: -40px; }
@media (max-width: 900px) { .prs-step::after { font-size: 9rem; bottom: -32px; } }
@media (max-width: 600px) { .prs-step::after { font-size: 7.5rem; bottom: -26px; } }
/* Display headings sized for the condensed face */
.prs-areamap__title, .prs-mile__title { font-weight: 900; font-size: clamp(2.3rem, 4.4vw, 3.6rem); line-height: .94; letter-spacing: 0.005em; }
.prs-mile__big { font-family: var(--prs-stencil); font-weight: 900; letter-spacing: 0; font-size: clamp(3.6rem, 8.4vw, 7.6rem); }
.prs-footer__call p { font-weight: 900; font-size: clamp(1.9rem, 4vw, 3.2rem); letter-spacing: 0.01em; }
.prs-tile--feature h3, .prs-main .prs-svc-card h3, .prs-facts h3 { font-family: var(--prs-display); font-weight: 800; letter-spacing: 0.02em; }
.prs-tile--feature h3 { font-size: clamp(1.8rem, 2.8vw, 2.4rem); }
.prs-main .prs-svc-card h3 { font-size: 1.5rem; }
.prs-related a, .prs-areamap__btn { font-weight: 800; font-size: clamp(1.25rem, 1.8vw, 1.55rem); letter-spacing: 0.03em; }
.prs-contact__list a { font-weight: 800; font-size: 1.6rem; letter-spacing: 0.02em; }
.prs-faq summary { font-family: var(--prs-body); font-weight: 700; }
.prs-badge, .prs-sb4d .prs-badge { font-weight: 900; letter-spacing: 0; }
.prs-stat__num, .prs-mile__facts strong, .prs-mile__steps li::before { font-family: var(--prs-stencil); font-weight: 900; letter-spacing: 0; }
/* Eyebrow as a text line (not flex) so inline spans like "SB 4-D" keep normal word spacing */
.prs-eyebrow { display: block; }
.prs-eyebrow::before { display: inline-block; vertical-align: -1px; margin-right: 14px; }


/* ---------- Type v3: Barlow Condensed headlines (heavy but easy to read) + barricade eyebrows ---------- */
.prs-main h1, .prs-main h2, .prs-display { font-weight: 800; letter-spacing: 0; line-height: 0.95; }
.prs-main h1 { font-size: clamp(2.8rem, 6.6vw, 5.8rem); }
.prs-hero--inner h1 { font-size: clamp(2.5rem, 5.4vw, 4.8rem); max-width: 19ch; }
.prs-main h2 { font-size: clamp(2.2rem, 4.5vw, 3.8rem); }
.prs-main .prs-benefit h3 { font-weight: 700; font-size: clamp(1.2rem, 1.55vw, 1.4rem); letter-spacing: 0.02em; }
.prs-areamap__title, .prs-mile__title { font-weight: 800; font-size: clamp(2.1rem, 4vw, 3.3rem); line-height: .97; letter-spacing: 0; }
.prs-mile__big { font-weight: 800; font-size: clamp(3.4rem, 7.8vw, 7rem); }
.prs-footer__call p { font-weight: 800; font-size: clamp(1.8rem, 3.6vw, 2.9rem); letter-spacing: 0; }
.prs-tile--feature h3 { font-size: clamp(1.65rem, 2.6vw, 2.2rem); }
.prs-main .prs-svc-card h3 { font-size: 1.4rem; font-weight: 700; }
.prs-related a, .prs-areamap__btn { font-weight: 700; font-size: clamp(1.15rem, 1.7vw, 1.45rem); letter-spacing: 0.02em; }
.prs-contact__list a { font-weight: 700; font-size: 1.5rem; letter-spacing: 0.01em; }
.prs-footer .prs-footer__title { font-weight: 700; font-size: 1.25rem; letter-spacing: 0.06em; }
.prs-stat__num, .prs-mile__facts strong, .prs-mile__steps li::before, .prs-badge, .prs-sb4d .prs-badge { font-weight: 800; }

/* Eyebrow: a small red-and-white barricade panel, then the label */
.prs-eyebrow { font-family: var(--prs-display); font-weight: 700; font-size: 1.02rem !important; letter-spacing: 0.12em; }
.prs-eyebrow::before { width: 52px; height: 16px; vertical-align: -3px; margin-right: 14px; box-sizing: border-box; border-radius: 2px;
  background: repeating-linear-gradient(-45deg, var(--prs-red) 0 6px, #ffffff 6px 12px);
  box-shadow: inset 0 0 0 1px rgba(13,14,16,.18); }
.prs-cta .prs-eyebrow::before { box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 0 0 1px rgba(13,14,16,.25); }

/* Step labels and numerals */
.prs-step::before { font-weight: 700; font-size: 0.98rem; letter-spacing: 0.12em; }
.prs-step::after { font-weight: 800; font-size: 10rem; bottom: -34px; }
@media (max-width: 900px) { .prs-step::after { font-size: 8rem; bottom: -28px; } }
@media (max-width: 600px) { .prs-step::after { font-size: 6.5rem; bottom: -22px; } }

/* ---------- v4: PNG stripe eyebrow + readable step numbers ---------- */
.prs-eyebrow::before { width: 90px; height: 14px; vertical-align: -1px; border-radius: 0; box-shadow: none;
  background-position: center; background-size: 100% 100%; background-repeat: no-repeat; }
.prs-cta .prs-eyebrow::before { box-shadow: none; }

/* Step number: a large solid red "01" at the top of each panel, total ("/ 04") beside it. No faded corner numeral. */
.prs-step { padding: 28px 26px 32px; }
.prs-step::before { content: counter(prs-step, decimal-leading-zero); font-family: var(--prs-display); font-weight: 800;
  font-size: 3.4rem; line-height: 1; letter-spacing: 0; color: var(--prs-red); -webkit-text-stroke: 0; margin-bottom: 6px; }
.prs-step::after { content: "/ " counter(prs-total, decimal-leading-zero); position: absolute; z-index: auto; inset: 40px 26px auto auto;
  font-family: var(--prs-display); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.08em; line-height: 1;
  color: var(--mark); -webkit-text-stroke: 0; opacity: .8; transform: none; bottom: auto; }
.prs-step:last-child::after { color: var(--mark); opacity: .8; }
.prs-step:hover::after, .prs-step:last-child:hover::after { opacity: 1; transform: none; }
.prs-section--ink .prs-step::before { color: #ff2a1f; }
@media (max-width: 900px) { .prs-step { padding-bottom: 28px; } .prs-step::after { font-size: 1rem; bottom: auto; } }
@media (max-width: 600px) { .prs-step { padding: 24px 22px 26px; } .prs-step::before { font-size: 3rem; } .prs-step::after { font-size: 1rem; inset: 36px 22px auto auto; bottom: auto; } }
.prs-step::after, .prs-step:last-child::after { opacity: 1; color: var(--prs-muted); }
.prs-section--ink .prs-step::after, .prs-section--ink .prs-step:last-child::after { color: rgba(255,255,255,.62); }
.prs-section--light .prs-step::after, .prs-section--concrete .prs-step::after,
.prs-section--light .prs-step:last-child::after, .prs-section--concrete .prs-step:last-child::after { opacity: 1; color: var(--prs-muted); }

/* ---------- v5: shorter stripe PNG, "Phase 1" step labels ---------- */
.prs-eyebrow::before { width: 64px; height: 14px; }
.prs-step::before { content: "Phase " counter(prs-step); font-size: 2.3rem; letter-spacing: 0.01em; text-transform: uppercase; margin-bottom: 4px; }
.prs-step::after, .prs-step:last-child::after { content: none; display: none; }
@media (max-width: 600px) { .prs-step::before { font-size: 2rem; } }

/* ---------- v6 ---------- */
/* Stripe image renamed so browsers and Flywheel's cache fetch the new, shorter version. */
.prs-eyebrow::before { background-image: url("../img/prs-stripes-3-bright.png"); }

/* Cards: field panels with a survey-marker title, a hairline crack in the corner and
   a red bar that fills along the bottom on hover, like resin travelling along a crack. */
.prs-cards { border: 0; gap: 16px; }
.prs-card { --panel: var(--prs-white); --crack: rgba(13,14,16,.16); position: relative; isolation: isolate; overflow: hidden;
  border: 1px solid var(--prs-line); padding: 34px 30px 40px; gap: 14px; background: var(--panel);
  box-shadow: 0 1px 0 rgba(13,14,16,.04), 0 10px 26px rgba(13,14,16,.05); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.prs-section--light .prs-card { --panel: var(--prs-concrete); border-color: transparent; box-shadow: none; }
.prs-section--ink .prs-card { --panel: #17191c; --crack: rgba(255,255,255,.10); border-color: rgba(255,255,255,.08); box-shadow: none; }
.prs-card::before { content: ""; position: absolute; z-index: -1; right: -8px; bottom: -6px; width: 190px; height: 120px; pointer-events: none;
  background: var(--crack);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 190 120'%3E%3Cpath d='M190 18 L158 30 L146 52 L118 60 L104 84 L76 92 L58 118 M146 52 L170 70 L176 96 M104 84 L112 108 M118 60 L96 44 L72 48' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 190 120'%3E%3Cpath d='M190 18 L158 30 L146 52 L118 60 L104 84 L76 92 L58 118 M146 52 L170 70 L176 96 M104 84 L112 108 M118 60 L96 44 L72 48' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: background-color .3s ease; }
.prs-card::after { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; background: var(--prs-red);
  transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.6,.05,.2,1); }
.prs-card:hover, .prs-section--light .prs-card:hover, .prs-section--ink .prs-card:hover { background: var(--panel); transform: translateY(-4px); }
.prs-card:hover { box-shadow: 0 18px 40px rgba(13,14,16,.12); }
.prs-section--ink .prs-card:hover { box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.prs-card:hover::after { transform: scaleX(1); }

/* Survey-marker in front of the title: a red diamond and a short line */
.prs-card h3::before { width: 46px; height: 12px; margin-bottom: 18px; transform: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 12'%3E%3Cpath d='M6 0.5 L11.5 6 L6 11.5 L0.5 6 Z' fill='%23e3120b'/%3E%3Cpath d='M15 6 H46' stroke='%23e3120b' stroke-width='2'/%3E%3C/svg%3E") left center / 46px 12px no-repeat; }
.prs-card h3 a { text-decoration: none; }
.prs-card h3 a::after { content: " \2192"; color: var(--prs-red); }
.prs-section--ink .prs-card h3 { color: var(--prs-white); }
.prs-section--ink .prs-card p { color: rgba(255,255,255,.72); }
@media (prefers-reduced-motion: reduce) { .prs-card, .prs-card::after { transition: none; } .prs-card:hover { transform: none; } }

/* FAQ: question cards with a "Q" tag and a square toggle that turns into a red close button when open */
.prs-faq { border-top: 0; gap: 10px; counter-reset: prs-q; }
.prs-faq .wp-block-details { --panel: var(--prs-white); counter-increment: prs-q; background: var(--panel); border: 1px solid var(--prs-line); border-radius: 2px;
  transition: border-color .25s ease, box-shadow .25s ease; }
.prs-section--light .prs-faq .wp-block-details { --panel: var(--prs-concrete); border-color: transparent; }
.prs-section--ink .prs-faq .wp-block-details { --panel: #17191c; border-color: rgba(255,255,255,.08); }
.prs-faq summary { display: grid; grid-template-columns: 52px minmax(0, 1fr) 44px; align-items: center; gap: 16px;
  padding: 18px 20px 18px 22px; font-size: clamp(1.05rem, 1.4vw, 1.2rem); }
.prs-faq summary::before { content: "Q" counter(prs-q); font-family: var(--prs-display); font-weight: 800; font-size: 1.5rem; line-height: 1;
  color: var(--prs-red); letter-spacing: 0.02em; }
.prs-faq summary::after { position: static; margin: 0; width: 44px; height: 44px; box-sizing: border-box; border: 2px solid var(--prs-red); border-radius: 2px;
  background: linear-gradient(var(--prs-red), var(--prs-red)) center / 16px 2.5px no-repeat, linear-gradient(var(--prs-red), var(--prs-red)) center / 2.5px 16px no-repeat;
  transition: transform .3s ease, background-color .25s ease; }
.prs-faq summary:hover { color: var(--prs-red-deep); }
.prs-section--ink .prs-faq summary:hover { color: var(--prs-white); }
.prs-faq summary:hover::after { background-color: rgba(227,18,11,.1); }
.prs-faq details[open] { border-color: var(--prs-red); box-shadow: inset 4px 0 0 var(--prs-red); }
.prs-faq details[open] summary::after { transform: rotate(45deg); background: linear-gradient(#fff, #fff) center / 16px 2.5px no-repeat, linear-gradient(#fff, #fff) center / 2.5px 16px no-repeat, var(--prs-red); }
.prs-faq details > p { padding: 0 84px 26px 90px; max-width: none; color: var(--prs-muted); }
.prs-section--ink .prs-faq details > p { color: rgba(255,255,255,.75); }
@media (max-width: 600px) {
  .prs-faq summary { grid-template-columns: 38px minmax(0, 1fr) 40px; gap: 10px; padding: 16px 14px; }
  .prs-faq summary::before { font-size: 1.2rem; }
  .prs-faq summary::after { width: 40px; height: 40px; }
  .prs-faq details > p { padding: 0 18px 22px 62px; }
}
/* FAQ fixes: summary as a text block (inline spans like "SB 4-D" stay inline), toggle drawn as an X when open */
.prs-faq summary { display: block; position: relative; padding: 24px 84px 24px 90px; min-height: 44px; }
.prs-faq summary::before { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); }
.prs-faq summary::after { position: absolute; right: 20px; top: 50%; margin-top: -22px; transform: none; }
.prs-faq details[open] summary::after { transform: none;
  background: linear-gradient(45deg, transparent calc(50% - 1.3px), #fff calc(50% - 1.3px) calc(50% + 1.3px), transparent calc(50% + 1.3px)) center / 18px 18px no-repeat,
              linear-gradient(-45deg, transparent calc(50% - 1.3px), #fff calc(50% - 1.3px) calc(50% + 1.3px), transparent calc(50% + 1.3px)) center / 18px 18px no-repeat,
              var(--prs-red); }
.prs-card::before { width: 150px; height: 95px; }
.prs-card { --crack: rgba(13,14,16,.12); }
.prs-section--ink .prs-card { --crack: rgba(255,255,255,.08); }
@media (max-width: 600px) {
  .prs-faq summary { padding: 18px 66px 18px 58px; }
  .prs-faq summary::before { left: 16px; }
  .prs-faq summary::after { right: 14px; margin-top: -20px; }
}
.prs-faq summary { min-height: 0; }
.prs-faq details[open] summary::after, .prs-faq details[open] summary:hover::after { background-color: var(--prs-red); }

/* ---------- v7 ---------- */
/* Cards: the PRS triangle rises into the corner on hover (replaces the hairline crack) */
.prs-card::before { width: 120px; height: 112px; right: 14px; bottom: -14px; opacity: 0; transform: translateY(18px);
  -webkit-mask: none; mask: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 94'%3E%3Cpath d='M50 0 L50 94 L0 94 Z' fill='%23e3120b'/%3E%3Cpath d='M50 0 L100 94 L50 94 Z' fill='%239f0000'/%3E%3Cpath d='M50 8 V92' stroke='%23ffffff' stroke-opacity='.8' stroke-width='1.6'/%3E%3C/svg%3E") center bottom / contain no-repeat;
  transition: opacity .35s ease, transform .45s cubic-bezier(.2,.8,.2,1); }
.prs-card:hover::before { background-color: transparent; opacity: .2; transform: translateY(0); }
.prs-section--ink .prs-card:hover::before { opacity: .32; }

/* "Choosing the right repair": text beside a technical cross-section figure */
.prs-split--figure { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; }
.prs-fig { margin: 0; position: relative; }
.prs-fig::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; background: url("../img/prs-stripes-3-bright.png") repeat; opacity: .14; z-index: 0; }
.prs-fig__svg { position: relative; z-index: 1; display: block; width: 100%; height: auto; border: 1px solid var(--prs-line); box-shadow: 0 18px 44px rgba(13,14,16,.12); }
.prs-fig__lbl { font-family: var(--prs-display); font-weight: 700; font-size: 15px; letter-spacing: .02em; fill: var(--prs-ink); text-transform: uppercase; }
.prs-fig__lead { fill: none; stroke: var(--prs-ink); stroke-width: 1.2; }
.prs-fig__zone { font-family: var(--prs-display); font-weight: 800; font-size: 13px; letter-spacing: .22em; fill: #8a7a63; }
.prs-fig__zone--blue { fill: #1d86ad; }
.prs-fig__no { font-family: var(--prs-display); font-weight: 800; font-size: 16px; letter-spacing: .08em; fill: var(--prs-red); }
.prs-fig__cap { font-family: var(--prs-display); font-weight: 700; font-size: 15px; letter-spacing: .08em; fill: #ffffff; text-transform: uppercase; }
/* Resin and grout "inject" when the figure scrolls into view */
.prs-fig__resin { stroke-dasharray: 100; stroke-dashoffset: 0; }
.prs-fig__grout { transform-box: fill-box; transform-origin: left center; }
.prs-fig.is-ready .prs-fig__resin { stroke-dashoffset: 100; }
.prs-fig.is-ready .prs-fig__grout { transform: scaleX(.05); opacity: 0; }
.prs-fig.is-in .prs-fig__resin { stroke-dashoffset: 0; transition: stroke-dashoffset 2.2s cubic-bezier(.6,.05,.2,1) .3s; }
.prs-fig.is-in .prs-fig__grout { transform: none; opacity: 1; transition: transform 1.6s cubic-bezier(.2,.8,.2,1) .5s, opacity .6s ease .5s; }
@media (max-width: 1040px) { .prs-split--figure { grid-template-columns: minmax(0, 1fr); } .prs-fig { max-width: 640px; } }
@media (prefers-reduced-motion: reduce) { .prs-fig.is-ready .prs-fig__resin, .prs-fig.is-ready .prs-fig__grout { stroke-dashoffset: 0; transform: none; opacity: 1; } }
.prs-fig__lbl, .prs-fig__zone { paint-order: stroke; stroke: #ffffff; stroke-width: 4px; stroke-linejoin: round; }
/* Triangle sits in the empty top-right corner, full colour, so it never covers text */
.prs-card::before { width: 46px; height: 43px; top: 24px; right: 24px; bottom: auto; transform: translateY(10px) scale(.85); }
.prs-card:hover::before, .prs-section--ink .prs-card:hover::before { opacity: 1; transform: none; }

/* ---------- v8: cards - stripe marker above the title, check mark on hover ---------- */
.prs-card h3::before { width: 46px; height: 10px; margin-bottom: 18px;
  background: url("../img/prs-stripes-3-bright.png") left center / 46px 10px no-repeat; }
.prs-card::before { width: 38px; height: 38px; top: 22px; right: 22px; border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 22px 22px no-repeat, var(--prs-red);
  box-shadow: 0 6px 16px rgba(227,18,11,.35); opacity: 0; transform: scale(.4) rotate(-20deg);
  transition: opacity .2s ease, transform .35s cubic-bezier(.34,1.56,.64,1); }
.prs-card:hover::before, .prs-section--ink .prs-card:hover::before { opacity: 1; transform: none; }
.prs-card:hover::before, .prs-section--ink .prs-card:hover::before { background-color: var(--prs-red); }

/* ---------- v9 ---------- */
/* Card titles in capitals */
.prs-main .prs-card h3 { font-family: var(--prs-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; font-size: clamp(1.3rem, 1.7vw, 1.5rem); }

/* Desktop menu: condensed caps, a moving caution-tape underline, angled quote button
   and dark mega-dropdowns with a one-line description under each link. */
.prs-menu__desc { display: none; }
@keyframes prs-tape { to { background-position: 32px 0; } }
@media (min-width: 1201px) {
  .prs-menu__list a { font-family: var(--prs-display); font-size: 1.06rem; font-weight: 700; letter-spacing: 0.07em; padding: 35px 14px; }
  .prs-menu__list > li > a::after { left: 14px; right: 14px; bottom: 25px; height: 7px; background: url("../img/prs-stripes-3-bright.png") left center / 32px 7px repeat-x;
    transform: scaleX(0); transition: transform .3s cubic-bezier(.6,.05,.2,1); }
  .prs-menu__list > li:hover > a::after, .prs-menu__list > li:focus-within > a::after { animation: prs-tape .9s linear infinite; }
  .prs-menu__list .menu-item-has-children > a { padding-right: 30px; }
  .prs-menu__list .menu-item-has-children > a::before { right: 13px; transition: transform .25s ease; }
  .prs-menu__list .menu-item-has-children:hover > a::before { transform: translateY(-20%) rotate(225deg); }

  /* Quote button: angled like a ramp, stripe flash on hover */
  .prs-menu > .prs-btn { position: relative; overflow: hidden; font-family: var(--prs-display); font-size: 1.06rem; letter-spacing: 0.08em; padding: 18px 34px;
    clip-path: polygon(14px 0, 100% 0, calc(100% - 14px) 100%, 0 100%); border: 0; }
  .prs-menu > .prs-btn::after { content: ""; position: absolute; inset: auto 0 0 0; height: 5px; background: url("../img/prs-stripes-3-bright.png") left center / 24px 5px repeat-x;
    filter: brightness(0) invert(1); opacity: 0; transition: opacity .2s; }
  .prs-menu > .prs-btn:hover { background: var(--prs-red-deep); }
  .prs-menu > .prs-btn:hover::after { opacity: .9; animation: prs-tape .9s linear infinite; }

  /* Mega dropdowns */
  .prs-menu__list .sub-menu { top: 100%; left: -12px; padding: 26px 18px 18px; gap: 4px 10px; background: #17191c; border-top: 0;
    box-shadow: 0 30px 60px rgba(0,0,0,.5); grid-template-columns: repeat(2, minmax(270px, 1fr)); }
  .prs-menu__list .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px;
    background: url("../img/prs-stripes-3-bright.png") left center / 36px 8px repeat-x; }
  .prs-menu__list .sub-menu:not(:has(> li:nth-child(4))) { grid-template-columns: minmax(300px, 1fr); }
  .prs-menu__list .sub-menu a { display: grid; gap: 3px; padding: 12px 40px 12px 14px; border: 0; color: var(--prs-white); font-size: 1.02rem; letter-spacing: 0.05em; white-space: normal; transition: background .2s, color .2s; }
  .prs-menu__list .sub-menu a::after { content: "\2192"; position: absolute; right: 14px; top: 50%; transform: translate(-8px, -50%); opacity: 0; color: var(--prs-red); font-family: var(--prs-body); transition: transform .25s, opacity .25s; }
  .prs-menu__list .sub-menu a:hover, .prs-menu__list .sub-menu a:focus-visible { background: rgba(255,255,255,.06); color: var(--prs-white); }
  .prs-menu__list .sub-menu a:hover::after, .prs-menu__list .sub-menu a:focus-visible::after { transform: translate(0, -50%); opacity: 1; }
  .prs-menu__list .sub-menu .current-menu-item > a { background: rgba(227,18,11,.14); }
  .prs-menu__desc { display: block; font-family: var(--prs-body); font-size: 0.86rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: rgba(255,255,255,.6); line-height: 1.4; }
  .prs-menu__list .sub-menu a:hover .prs-menu__desc { color: rgba(255,255,255,.82); }
}
@media (min-width: 1201px) and (max-width: 1400px) {
  .prs-menu__list a { font-size: 0.98rem; padding-inline: 10px; }
  .prs-menu__list > li > a::after { left: 10px; right: 10px; }
  .prs-menu > .prs-btn { padding-inline: 26px; font-size: 0.98rem; }
}
@media (prefers-reduced-motion: reduce) { .prs-menu__list > li > a::after, .prs-menu > .prs-btn::after { animation: none !important; } }

/* ---------- v10 ---------- */
/* Graphite band: dark sections that hold card grids */
.prs-section--graphite { background: #1b1d20; }
.prs-section--graphite .prs-card { --panel: #24272b; border-color: rgba(255,255,255,.07); }
.prs-section--graphite .prs-lead, .prs-section--graphite .prs-head p { color: rgba(255,255,255,.78); }

/* Desktop menu: a short stripe block under the active / hovered link instead of a running line */
@media (min-width: 1201px) {
  .prs-menu__list > li > a::after, .prs-menu__list > li:hover > a::after, .prs-menu__list > li:focus-within > a::after {
    animation: none; left: 50%; right: auto; width: 34px; height: 8px; bottom: 22px; margin-left: -17px;
    background: url("../img/prs-stripes-3-bright.png") center / 34px 8px no-repeat;
    transform: translateY(6px); opacity: 0; transition: opacity .2s ease, transform .25s ease; }
  .prs-menu__list .menu-item-has-children > a::after { margin-left: -25px; }
  .prs-menu__list > li:hover > a::after, .prs-menu__list > li:focus-within > a::after,
  .prs-menu__list > .current-menu-item > a::after, .prs-menu__list > .current-menu-ancestor > a::after { opacity: 1; transform: none; }
}
.prs-section--graphite .prs-head .prs-eyebrow { color: var(--prs-red); }
/* Related links: block layout so "SB 4-D" stays inline with the rest of the label */
.prs-related a { display: block; position: relative; padding-right: 40px; }
.prs-related a::after { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); }

/* ---------- v11 ---------- */
/* Desktop menu: a solid red bar under the link, angled at both ends like the Get a Quote button */
@media (min-width: 1201px) {
  .prs-menu__list > li > a::after, .prs-menu__list > li:hover > a::after, .prs-menu__list > li:focus-within > a::after {
    left: 14px; right: 14px; width: auto; margin-left: 0; height: 5px; bottom: 24px; opacity: 1;
    background: var(--prs-red); clip-path: polygon(5px 0, 100% 0, calc(100% - 5px) 100%, 0 100%);
    transform: scaleX(0); transform-origin: left; transition: transform .3s cubic-bezier(.6,.05,.2,1); }
  .prs-menu__list .menu-item-has-children > a::after { margin-left: 0; right: 30px; }
  .prs-menu__list > li:hover > a::after, .prs-menu__list > li:focus-within > a::after,
  .prs-menu__list > .current-menu-item > a::after, .prs-menu__list > .current-menu-ancestor > a::after { transform: scaleX(1); }
}
@media (min-width: 1201px) and (max-width: 1400px) {
  .prs-menu__list > li > a::after, .prs-menu__list > li:hover > a::after { left: 10px; right: 10px; }
  .prs-menu__list .menu-item-has-children > a::after { right: 26px; }
}

/* Mobile sub-menu toggle: a down arrow drawn as an image, hardened against Astra's button styles */
@media (max-width: 1200px) {
  .prs-menu .prs-sub-toggle { width: 48px !important; height: 48px !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important; line-height: 0 !important; font-size: 0 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / 22px 22px no-repeat transparent !important;
    transition: transform .2s ease; }
  .prs-menu .prs-sub-toggle::before { display: none !important; }
  .prs-menu .prs-sub-toggle[aria-expanded="true"] { transform: rotate(180deg); }
  .prs-menu .prs-sub-toggle:hover, .prs-menu .prs-sub-toggle:focus { background-color: transparent !important; }
}
/* Dropdown top edge: solid red instead of stripes */
@media (min-width: 1201px) { .prs-menu__list .sub-menu::before { height: 4px; background: var(--prs-red); } .prs-menu__list .sub-menu { padding-top: 22px; } }
/* Footer column titles: same angled 5px red bar as the header menu */
.prs-footer .prs-footer__title { position: relative; border-bottom: 0; padding-bottom: 14px; }
.prs-footer .prs-footer__title::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--prs-red);
  clip-path: polygon(5px 0, 100% 0, calc(100% - 5px) 100%, 0 100%); }
/* Get a Quote hover: a solid white angled line under the label (replaces the stripes) */
@media (min-width: 1201px) {
  .prs-menu > .prs-btn::after { inset: auto 34px 9px 34px; height: 4px; background: #ffffff; filter: none; opacity: 1; animation: none;
    clip-path: polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%); transform: scaleX(0); transform-origin: left; transition: transform .3s cubic-bezier(.6,.05,.2,1); }
  .prs-menu > .prs-btn:hover::after, .prs-menu > .prs-btn:focus-visible::after { animation: none; opacity: 1; transform: scaleX(1); }
}

/* ---------- v12 ---------- */
/* Headings on light backgrounds use the same red as the Get a Quote button */
.prs-main .prs-section--light :is(h2, h3), .prs-main .prs-section--concrete :is(h2, h3),
.prs-main .prs-section--light .prs-card h3, .prs-main .prs-section--concrete .prs-equip__item h3,
.prs-mile__title, .prs-main .prs-svc-card h3 a, .prs-faq summary:hover { color: var(--prs-red); }

/* Get a Quote hover: white line along the full bottom edge of the button */
@media (min-width: 1201px) {
  .prs-menu > .prs-btn::after { inset: auto 0 0 0; height: 4px; clip-path: none; }
}
/* Step titles under the red "Phase" label stay dark so the two don't blur together */
.prs-main .prs-section--light .prs-step h3, .prs-main .prs-section--concrete .prs-step h3 { color: var(--prs-ink); }

/* Area map county buttons: designed hover (red bar, white marker), hardened against Astra's button styles */
.prs-areamap .prs-areamap__btn { display: flex !important; align-items: center !important; gap: 14px; width: 100%; margin: 0 !important;
  padding: 18px 16px !important; border: 0 !important; border-radius: 2px !important; box-shadow: none !important;
  background: transparent !important; color: var(--prs-white) !important; line-height: 1.1 !important; text-align: left;
  transition: background-color .2s ease, color .2s ease; }
.prs-areamap .prs-areamap__btn:hover, .prs-areamap .prs-areamap__btn:focus-visible { background: var(--prs-red) !important; color: #ffffff !important; }
.prs-areamap__dot { margin: 0; }
.prs-areamap .prs-areamap__btn:hover .prs-areamap__dot, .prs-areamap .prs-areamap__btn:focus-visible .prs-areamap__dot { background: #ffffff; border-color: #ffffff; }
.prs-areamap__detail { padding: 4px 16px 22px 42px; }

/* Project photo labels: red, squared on the left, angled on the right like the Get a Quote button */
.prs-gallery figcaption { background: var(--prs-red); border-left: 0; padding: 10px 30px 10px 14px; font-family: var(--prs-display); font-size: 0.92rem;
  clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); }

/* Eyebrow: capital letters exactly the height of the 14px stripe (cap height 0.7em x 20px = 14px), both sitting on the baseline */
.prs-eyebrow { font-size: 20px !important; line-height: 1; letter-spacing: 0.1em; }
.prs-eyebrow::before { height: 14px; vertical-align: baseline; }

/* Two-line hero eyebrow: stripe + "SOUTH FLORIDA", then "CONCRETE REPAIR SERVICES" aligned under the text */
.prs-eyebrow--stack { display: grid; grid-template-columns: 64px auto; justify-content: start; column-gap: 14px; row-gap: 8px; align-items: baseline; }
.prs-eyebrow--stack::before { grid-column: 1; grid-row: 1; margin: 0; }
.prs-eyebrow__top { grid-column: 2; grid-row: 1; }
.prs-eyebrow__sub { grid-column: 2; grid-row: 2; font-size: 15px; font-weight: 600; letter-spacing: 0.16em; opacity: .78; }
/* Stacked label below the intro paragraph: a little extra air above it, a little more before the buttons */
.prs-hero .prs-eyebrow--stack { margin-top: 6px; margin-bottom: 8px; }
@media (max-width: 600px) { .prs-eyebrow__sub { font-size: 14px; letter-spacing: 0.1em; } }
/* Figure backdrop: crisp drawn hatching instead of the tiled stripe image */
.prs-fig::before { background: repeating-linear-gradient(-45deg, rgba(227,18,11,.28) 0 2px, transparent 2px 11px); opacity: 1; }

/* Two-line eyebrow with both lines the same size (location pages: "Concrete repair in" / county) */
.prs-eyebrow--even .prs-eyebrow__sub, .prs-eyebrow--even .prs-eyebrow__top { font-size: 20px !important; font-weight: 700; letter-spacing: 0.1em; opacity: 1; }
.prs-eyebrow--even { row-gap: 6px; }
@media (max-width: 420px) { .prs-eyebrow--even .prs-eyebrow__sub, .prs-eyebrow--even .prs-eyebrow__top { font-size: 18px !important; letter-spacing: 0.08em; } }
/* White stripes on red banners */
.prs-cta .prs-eyebrow::before { filter: brightness(0) invert(1); }

/* SB 4-D chart steps: progress bar along the top that fills a third more each phase */
.prs-mile__steps li { --i: 1; padding-top: 22px;
  background: linear-gradient(var(--prs-red), var(--prs-red)) top left / calc(var(--i) / 3 * 100%) 4px no-repeat,
              linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,.12)) top left / 100% 4px no-repeat; }
.prs-mile__steps li:nth-child(2) { --i: 2; }
.prs-mile__steps li:nth-child(3) { --i: 3; }
.prs-mile__steps { border-top: 0; }
.prs-mile__steps li { background:
  linear-gradient(var(--prs-red), var(--prs-red)) 20px 0 / calc((100% - 40px) * var(--i) / 3) 4px no-repeat,
  linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,.12)) 20px 0 / calc(100% - 40px) 4px no-repeat; }

/* ---------- v13: brighter red (#ff2a1f) for reds on dark backgrounds ----------
   Inside every dark area the red token is swapped, so headings, labels, stripes, lines, numbers and icons
   all pick it up. Solid red fills (buttons, the red top bar, the red call bar, photo labels) stay #e3120b. */
:root { --prs-red-fill: #e3120b; --prs-red-bright: #ff2a1f; }
.prs-header, .prs-hero, .prs-strip--benefits, .prs-section--ink, .prs-tile, .prs-facts, .prs-sb4d, .prs-mile__card, .prs-areamap, .prs-footer {
  --prs-red: var(--prs-red-bright); }
:is(.prs-header, .prs-hero, .prs-strip--benefits, .prs-section--ink, .prs-tile, .prs-facts, .prs-sb4d, .prs-mile__card, .prs-areamap, .prs-footer) .prs-eyebrow::before,
:is(.prs-section--ink) .prs-card h3::before { background-image: url("../img/prs-stripes-3-bright.png"); }
/* keep solid fills at the button red */
:is(.prs-header, .prs-hero, .prs-section--ink, .prs-sb4d, .prs-mile__card, .prs-areamap, .prs-footer) :is(.prs-btn:not(.prs-btn--outline):not(.prs-btn--dark), .wp-block-button:not(.is-style-outline) .wp-block-button__link) {
  background-color: var(--prs-red-fill) !important; border-color: var(--prs-red-fill) !important; }
:is(.prs-header, .prs-hero, .prs-section--ink, .prs-sb4d, .prs-mile__card, .prs-areamap, .prs-footer) :is(.prs-btn:not(.prs-btn--outline):not(.prs-btn--dark), .wp-block-button:not(.is-style-outline) .wp-block-button__link):hover {
  background-color: var(--prs-red-deep) !important; border-color: var(--prs-red-deep) !important; }
.prs-topbar { background: var(--prs-red-fill); }
.prs-footer__call { background: var(--prs-red-fill); }
.prs-gallery figcaption { background: var(--prs-red-fill); }

/* Quote form dropdowns: own styling so iPhone Safari and Astra's select height can't clip the text */
.prs-form select { -webkit-appearance: none; appearance: none; height: auto !important; min-height: 54px; line-height: 1.35 !important;
  padding: 14px 46px 14px 14px !important; font-size: 16px !important; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
  background: var(--prs-concrete) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e3120b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center / 18px 18px no-repeat !important;
  border-radius: 0; color: var(--prs-ink); max-width: 100%; }
.prs-form select:focus { background-color: var(--prs-white) !important; }
.prs-form input, .prs-form textarea { height: auto; min-height: 54px; font-size: 16px; line-height: 1.35; }
.prs-form textarea { min-height: 130px; }
.prs-form label { min-width: 0; }

/* ---------- v14: three-stripe mark (48 x 14) ---------- */
.prs-eyebrow::before { width: 48px; height: 14px; background: url("../img/prs-stripes-3-bright.png") center / 48px 14px no-repeat; filter: none; }
.prs-eyebrow--stack { grid-template-columns: 48px auto; }
:is(.prs-header, .prs-hero, .prs-strip--benefits, .prs-section--ink, .prs-tile, .prs-facts, .prs-sb4d, .prs-mile__card, .prs-areamap, .prs-footer) .prs-eyebrow::before { background-image: url("../img/prs-stripes-3-bright.png"); }
.prs-cta .prs-eyebrow::before { background-image: url("../img/prs-stripes-3-white.png"); filter: none; }
.prs-card h3::before { width: 34px; height: 10px; background: url("../img/prs-stripes-3-bright.png") left center / 34px 10px no-repeat; }
.prs-section--ink .prs-card h3::before { background-image: url("../img/prs-stripes-3-bright.png"); }

/* Red banners: solid buttons are white with red text; on hover, dark red with white text */
.prs-main .prs-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.prs-footer .prs-btn--dark { background-color: var(--prs-white) !important; border-color: var(--prs-white) !important; color: var(--prs-red-fill, #e3120b) !important; }
.prs-main .prs-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.prs-main .prs-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible,
.prs-footer .prs-btn--dark:hover, .prs-footer .prs-btn--dark:focus-visible { background-color: var(--prs-red-deep) !important; border-color: var(--prs-red-deep) !important; color: var(--prs-white) !important; }

/* Buttons: one size for filled and outline buttons (Astra gives outline buttons different padding and border) */
.prs-main .wp-block-button .wp-block-button__link, .prs-btn {
  box-sizing: border-box !important; min-height: 54px; padding: 17px 28px !important; border-width: 2px !important; border-style: solid !important;
  line-height: 1.1 !important; font-size: 0.92rem !important; display: inline-flex !important; align-items: center; justify-content: center; }
@media (min-width: 1201px) { .prs-menu > .prs-btn { padding: 18px 34px !important; border-width: 0 !important; } }
/* Side-by-side buttons share one width */
.prs-main .wp-block-buttons .wp-block-button__link, .prs-footer__btns .prs-btn { min-width: 256px; }

/* ---------- v15: one heading system ----------
   H2: Barlow Condensed 800 caps (section titles, unchanged).
   H3: Barlow Condensed 700 caps everywhere (cards, tiles, steps, equipment, benefits, side panels), 1.4rem;
   the two large feature tiles on the home page stay larger. */
.prs-main h3, .prs-main .prs-card h3, .prs-main .prs-step h3, .prs-main .prs-equip__item h3, .prs-main .prs-tile h3,
.prs-main .prs-svc-card h3, .prs-main .prs-benefit h3, .prs-main .prs-facts h3, .prs-main .prs-stack h3 {
  font-family: var(--prs-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; font-stretch: normal;
  font-size: clamp(1.25rem, 1.6vw, 1.4rem); line-height: 1.15; }
.prs-main .prs-tile--feature h3 { font-size: clamp(1.8rem, 2.6vw, 2.2rem); font-weight: 800; line-height: 1.05; }

/* Sources line under FAQs */
.prs-main .prs-sources { font-size: 0.85rem; color: var(--prs-muted); max-width: none; border-top: 1px solid var(--prs-line); padding-top: 18px; }
.prs-main .prs-sources a { color: var(--prs-red-fill, #e3120b); }

/* v16: Cloudflare Turnstile on the quote form */
.prs-form .prs-turnstile { min-height: 65px; margin: 4px 0 2px; }
.prs-form .prs-turnstile .cf-turnstile { max-width: 100%; }
.prs-form .prs-turnstile br { display: none; }

/* v17: quote form success message in black (dark sections were turning it white) */
.prs-form p.prs-form__msg--ok, .prs-section--ink .prs-form p.prs-form__msg--ok { color: #0d0e10; }
