/* Homepage-wide polish and the September 2026 content expansion. */

/* One arrow language everywhere: 24px line icons in round controls and CTAs. */
.rg-circle-arrow {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid var(--rg-border-cool);
  border-radius: 50%;
  background: var(--rg-surface);
  color: var(--rg-navy);
  box-shadow: 0 8px 20px rgba(0,27,74,.14);
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.rg-circle-arrow svg,
.rg-amber-arrow svg,
.rg-servicecard__link svg,
.rg-blogcard a svg,
.rg-workwall__feature span svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.rg-circle-arrow:hover { background: var(--rg-navy); border-color: var(--rg-navy); color: #fff; transform: translateY(-1px); }
.rg-carousel-controls { display: flex; gap: 10px; flex: 0 0 auto; }
.rg-amber-arrow { gap: 12px; }

/* Rotating utility message. */
.rg-utility__hours { position: relative; min-height: 18px; }
.rg-utility__hours > span {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: translateY(7px);
  transition: opacity 260ms ease, transform 260ms ease;
}
.rg-utility__hours > span.is-active { opacity: 1; transform: none; }
.rg-utility__action > span {
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-shadow: 0 1px 2px rgba(0,20,56,.55);
}
.rg-drawer__trust { display:flex; align-items:center; gap:11px; padding:16px 18px; color:var(--rg-navy); font-family:var(--rg-font-head); font-weight:800; }
.rg-drawer__trust svg { width:20px; height:20px; flex:0 0 auto; fill:none; stroke:var(--rg-blue); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* Hero call and quote-form trust ribbon. */
.rg-btn-call { background: var(--rg-navy); color: #fff; }
.rg-btn-call img { filter: brightness(0) invert(1); }
.rg-btn-call:hover { background: var(--rg-blue); color: #fff; }
.rg-qf__head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.rg-qf__trust { flex: 0 0 auto; padding-left: 17px; border-left: 1px solid rgba(255,255,255,.26); }
.rg-qf__trust > span { display: block; color: var(--rg-cyan-light); font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.rg-qf__trust b { display: flex; align-items: center; gap: 6px; margin-top: 4px; color: #fff; font-family: var(--rg-font-head); font-size: .78rem; white-space: nowrap; }
.rg-qf__trust svg { width: 16px; height: 16px; fill: none; stroke: var(--rg-cyan-light); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.rg-qf__next { display: inline-flex; align-items: center; justify-content: center; gap: 11px; }
.rg-qf__next svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }

/* Fact band: labels now use the same visual language as section eyebrows. */
.rg-stat__label {
  color: var(--rg-cyan-light);
  font-family: var(--rg-font-head);
  font-size: var(--rg-eyebrow);
  font-weight: 700;
  letter-spacing: 2px;
}

/* Services: controls belong to the header and the track runs edge-to-edge. */
.rg-services .rg-sec__head { align-items: flex-end; flex-wrap: nowrap; }
.rg-services__carousel { padding: 0; }
.rg-services__dots { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 22px; }
.rg-servicecard li { padding-left: 24px; }
.rg-servicecard li::before {
  content: "✓";
  top: 0;
  width: auto;
  height: auto;
  background: none;
  color: var(--rg-blue);
  font-family: var(--rg-font-head);
  font-size: .9rem;
  font-weight: 900;
}
.rg-servicecard__link { gap: 9px; }
.rg-servicecard__link svg { transition: transform 160ms ease; }
.rg-servicecard__link:hover svg { transform: translateX(3px); }
.rg-services__cta { margin: 22px 0 0; }
.rg-services__cta p { color: var(--rg-navy); font-family: var(--rg-font-head); font-size: 1.15rem; }
.rg-services__quote { gap: 10px; }
.rg-services__quote svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.rg-services__call { gap: 9px; }
.rg-services__call img { width: 18px; height: 18px; object-fit: contain; filter: brightness(0) saturate(100%) invert(16%) sepia(75%) saturate(2209%) hue-rotate(202deg) brightness(87%); }

/* Reviews: compact header, clean lower CTA, no orphaned final word. */
.rg-reviews__head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; }
.rg-reviews__head > div:first-child { min-width: 550px; }
.rg-reviews__lede { max-width: 58ch; }
.rg-reviews__nav { position: relative; top: auto; transform: none; box-shadow: 0 8px 20px rgba(0,0,0,.2); }
.rg-reviews__nav:hover { transform: translateY(-1px); }
.rg-reviews__close { display: grid; justify-items: center; gap: 14px; }
.rg-reviews__close > p { margin: 0; color: #fff; font-family: var(--rg-font-head); font-size: clamp(1.15rem,1rem + .5vw,1.4rem); font-weight: 800; }
.rg-reviews__actions { gap: 12px; }
.rg-reviews__quote,
.rg-reviews__call { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: var(--rg-r-sm); font-family: var(--rg-font-head); font-weight: 800; text-decoration: none; }
.rg-reviews__quote { gap: 10px; background: var(--rg-action); color: var(--rg-action-ink); }
.rg-reviews__call { gap: 9px; border: 2px solid rgba(255,255,255,.76); color: #fff; }
.rg-reviews__call img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
.rg-reviews__bottom { gap: 20px; }

/* Infinite work wall.
   Side by side with the copy, the wall runs the full height of the section:
   it pulls itself back through the section padding by exactly that amount
   (--rg-sec-pad) so the tiles reach the top and bottom edges and fade out
   into them. The fade is a vertical and a horizontal gradient intersected,
   so the angled tile rows dissolve on every side instead of hitting a hard
   edge on the left and right. */
.rg-work { background: linear-gradient(180deg,#f9fbff 0%,#edf5ff 100%); }
.rg-work__layout { grid-template-columns: minmax(300px,.78fr) minmax(0,1.22fr); gap: clamp(34px,5vw,76px); }
.rg-work__copy .rg-h2 { max-width: 16ch; }
.rg-workwall {
  --rg-wall-fade-y: 22%;
  --rg-wall-fade-x: 12%;
  position: relative;
  display: block;
  height: calc(520px + 2 * var(--rg-sec-pad, 0px));
  margin-block: calc(-1 * var(--rg-sec-pad, 0px));
  overflow: hidden;
  background: transparent;
  -webkit-mask-image: linear-gradient(transparent 0,#000 var(--rg-wall-fade-y),#000 calc(100% - var(--rg-wall-fade-y)),transparent 100%), linear-gradient(90deg,transparent 0,#000 var(--rg-wall-fade-x),#000 calc(100% - var(--rg-wall-fade-x)),transparent 100%);
  mask-image: linear-gradient(transparent 0,#000 var(--rg-wall-fade-y),#000 calc(100% - var(--rg-wall-fade-y)),transparent 100%), linear-gradient(90deg,transparent 0,#000 var(--rg-wall-fade-x),#000 calc(100% - var(--rg-wall-fade-x)),transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}
/* Overscan on every side so the rotated grid still covers the corners. */
.rg-workwall__grid { position: absolute; inset: -12%; display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; transform: rotate(8deg); }
.rg-workwall__column { display: flex; flex-direction: column; gap: 0; align-self:start; animation: rg-workwall-rise 70s linear infinite; animation-delay: var(--rg-work-delay); }
.rg-workwall__group { display:flex; flex-direction:column; gap:8px; padding-bottom:8px; }
.rg-workwall__column:nth-child(even) { animation-duration: 82s; }
.rg-workwall__column img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 9px; filter: saturate(.82) brightness(.78); }
@keyframes rg-workwall-rise { to { transform: translateY(-50%); } }
.rg-workwall__feature { position: absolute; left: 50%; top: 50%; width: min(62%,430px); aspect-ratio: 4/3; transform: translate(-50%,-50%) rotate(1.5deg); padding: 4px; border-radius: 12px; background: #fff; box-shadow: 0 30px 70px rgba(0,10,36,.62); transition: transform 300ms ease; }
.rg-workwall:hover .rg-workwall__feature { transform: translate(-50%,-50%) rotate(0) scale(1.035); }
.rg-workwall__feature > img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 8px; transition: opacity 260ms ease; }
.rg-workwall__feature > span { position: absolute; right: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 9px; min-height: 42px; padding: 0 15px; border-radius: var(--rg-r-sm); background: var(--rg-action); color: var(--rg-action-ink); font-family: var(--rg-font-head); font-size: .88rem; font-weight: 800; }

/* Color sample ring. */
/* Water droplets behind the colour fan: the rain photo baked down to light
   drops on a transparent ground (assets/water-droplets-light.webp), sitting
   at low opacity and fading out before the edges, same as the trailer photo
   behind the process steps. */
.rg-colors { position: relative; overflow: hidden; background: var(--rg-navy-ink); color: #fff; }
.rg-colors::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: url("/assets/water-droplets-light.webp") center / cover no-repeat;
  opacity: .2;
  /* Drops live behind the colour fan and are gone before the copy column starts. */
  -webkit-mask-image: linear-gradient(transparent 0,#000 18%,#000 82%,transparent 100%), linear-gradient(90deg,transparent 0,#000 10%,#000 42%,transparent 66%);
  mask-image: linear-gradient(transparent 0,#000 18%,#000 82%,transparent 100%), linear-gradient(90deg,transparent 0,#000 10%,#000 42%,transparent 66%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}
.rg-colors > .rg-in { position: relative; z-index: 1; }
.rg-colors__layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(310px,.9fr); gap: clamp(36px,6vw,88px); align-items: center; }
.rg-colors__visual { position: relative; min-height: 470px; display: grid; place-items: center; }
.rg-colors__halo { position: absolute; width: 78%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,rgba(0,200,255,.3),transparent 67%); filter: blur(8px); }
.rg-colors__visual img { position: relative; z-index: 1; width: min(100%,740px); height: auto; filter: drop-shadow(0 26px 35px rgba(0,0,0,.34)); transform: rotate(-3deg); }
.rg-colors .rg-eyebrow { color: var(--rg-cyan-light); }
.rg-colors .rg-h2 { color: #fff; max-width: 16ch; }
.rg-colors .rg-lede { color: var(--rg-on-dark-dim); max-width: 46ch; }
.rg-colors__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 26px; }
.rg-colors__chips span { display: inline-flex; align-items: center; gap: 8px; min-height: 35px; padding: 0 12px 0 8px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.86); font-size: .78rem; }
.rg-colors__chips span::before { content:""; width: 19px; height: 19px; border-radius: 50%; background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(0,0,0,.18); }

/* Bigger, vertically centered house. */
.rg-transform__layout { grid-template-columns: minmax(0,1.78fr) minmax(320px,.82fr); min-height: clamp(500px,48vw,720px); }
.rg-transform__stage { justify-content: center; }
.rg-transform__viewport { width: 116%; margin-left: -8%; }
.rg-transform__copy { max-width: 450px; }
.rg-transform__copy h2 { font-size: clamp(2rem,3vw,3.2rem); }
.rg-transform__lede { max-width: 42ch; }

/* Process.
   The Ricky's trailer sits behind the last two steps as a soft navy mark:
   assets/process-trailer-navy.webp is the trailer photo cropped, pushed to a
   navy duotone, and given its own fade on every side, so on the white
   section it reads as a faint brand watermark with the logo knocked out.
   Swap it by changing --rg-process-photo. */
.rg-process { --rg-process-photo: url("/assets/process-trailer-navy.webp"); position: relative; overflow: hidden; background: #fff; }
.rg-process::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--rg-process-photo) right center / auto 100% no-repeat;
  opacity: .12;
}
.rg-process .rg-in { position: relative; z-index: 1; }
.rg-process__head { max-width: 720px; margin-bottom: 42px; }
.rg-process__steps { position: relative; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; list-style: none; counter-reset: none; }
/* Runs from the centre of the first number to the centre of the last. */
.rg-process__steps::before { content:""; position:absolute; left:12.5%; right:12.5%; top:31px; height:2px; background:linear-gradient(90deg,var(--rg-blue),var(--rg-cyan)); opacity:.35; }
.rg-process__steps li { position:relative; z-index:1; display:grid; gap:20px; align-content:start; padding:0 12px; text-align:center; }
.rg-process__steps li > span { display:grid; place-items:center; justify-self:center; width:64px; height:64px; border-radius:50%; background:var(--rg-navy); color:#fff; box-shadow:0 0 0 8px #fff; font:900 1rem/1 var(--rg-font-head); }
.rg-process__steps h3 { margin:0; color:var(--rg-text); font:800 1.15rem/1.25 var(--rg-font-head); text-wrap:balance; }
.rg-process__steps p { margin:10px 0 0; color:var(--rg-text-body); font-size:.94rem; line-height:1.6; }

/* About: remove the plate and replace the generic rule with a quote card. */
.rg-people__portrait { border-radius: 22px; }
.rg-people__quote { position:relative; margin-top:28px; padding:24px 26px 22px 60px; border:0; border-radius:14px; background:var(--rg-surface-alt); box-shadow:inset 0 0 0 1px var(--rg-border-cool); }
.rg-people__quote::before { content:"“"; position:absolute; left:20px; top:8px; color:var(--rg-cyan); font:900 4rem/1 Georgia,serif; }
.rg-people__quote cite { color:var(--rg-blue); font-family:var(--rg-font-head); font-weight:700; }
.rg-people__actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; }
.rg-people__actions .rg-btn-solid { gap:11px; }
.rg-people__actions .rg-link { display:inline-flex; align-items:center; gap:9px; }
.rg-people__actions .rg-link svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; }

/* Four key guarantees. */
.rg-guarantees { background:var(--rg-navy-deep); color:#fff; }
.rg-guarantees__head { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:34px; }
.rg-guarantees .rg-eyebrow { color:var(--rg-cyan-light); }
.rg-guarantees .rg-h2 { color:#fff; }
.rg-guarantees__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid rgba(255,255,255,.16); border-radius:18px; overflow:hidden; }
.rg-guarantees__grid article { padding:30px 25px; border-right:1px solid rgba(255,255,255,.14); }
.rg-guarantees__grid article:last-child { border-right:0; }
.rg-guarantees__grid svg { width:34px; height:34px; fill:none; stroke:var(--rg-cyan-light); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.rg-guarantees__grid h3 { margin:20px 0 9px; font:800 1.1rem/1.25 var(--rg-font-head); }
.rg-guarantees__grid p { margin:0; color:var(--rg-on-dark-dim); font-size:.9rem; line-height:1.6; }

/* Blog carousel. */
.rg-blog { overflow:hidden; background:var(--rg-surface-alt); }
.rg-blog .rg-sec__head { flex-wrap:nowrap; }
.rg-blog__viewport { overflow:hidden; }
.rg-blog__track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 20px)/2); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; scroll-behavior:smooth; }
.rg-blog__track::-webkit-scrollbar { display:none; }
.rg-blogcard { scroll-snap-align:start; display:flex; flex-direction:column; overflow:hidden; min-height:470px; border:1px solid var(--rg-border-cool); border-radius:14px; background:#fff; }
.rg-blogcard__image { display:block; aspect-ratio:16/10; overflow:hidden; }
.rg-blogcard__image img { width:100%; height:100%; object-fit:cover; transition:transform 400ms ease; }
.rg-blogcard:hover .rg-blogcard__image img { transform:scale(1.04); }
.rg-blogcard > div { flex:1; display:flex; flex-direction:column; padding:24px; }
.rg-blogcard > div > span { color:var(--rg-blue); font:800 .72rem/1 var(--rg-font-head); letter-spacing:.12em; text-transform:uppercase; }
.rg-blogcard h3 { margin:12px 0 0; color:var(--rg-text); font:800 1.35rem/1.25 var(--rg-font-head); }
.rg-blogcard p { margin:13px 0 22px; color:var(--rg-text-body); font-size:.94rem; line-height:1.6; }
.rg-blogcard > div > a { display:inline-flex; align-items:center; gap:9px; margin-top:auto; color:var(--rg-navy); font:800 .94rem/1 var(--rg-font-head); text-decoration:none; }
.rg-blogcard--cta { background:var(--rg-navy); color:#fff; }
.rg-blogcard--cta > div { justify-content:center; padding:36px; }
.rg-blogcard--cta > div > span { color:var(--rg-cyan-light); }
.rg-blogcard--cta h3 { color:#fff; font-size:1.7rem; }
.rg-blogcard--cta p { color:var(--rg-on-dark-dim); }
.rg-blogcard--cta > div > .rg-btn-solid { align-self:flex-start; margin-top:8px; color:var(--rg-action-ink); padding-inline:20px; }

/* Service-area map: visual left, copy right, moving town names below. */
.rg-area { background:var(--rg-navy-ink); }
.rg-area__layout { grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr); gap:clamp(40px,6vw,90px); }
.rg-area__intro { max-width:none; margin:0; }
.rg-area__intro .rg-lede { max-width:46ch; }
.rg-area-map { min-height:470px; display:grid; place-items:center; padding:30px; overflow:visible; background:transparent; border:0; }
.rg-area-map__slab { width:118%; margin-left:-9%; }
.rg-area-map__terrain { display:block; width:100%; height:auto; object-fit:contain; filter:drop-shadow(0 24px 18px rgba(0,0,0,.28)); }
.rg-area-map__slab .rg-florida-map { width:100%; }
.rg-area-map__slab .rg-florida-map__ripple,
.rg-area-map__slab .rg-florida-map__pin,
.rg-area-map__slab .rg-florida-map__coverage,
.rg-area-map__slab .rg-florida-map__region,
.rg-area-map__slab .rg-florida-map__small { display:none; }
.rg-area-map__circle { position:absolute; left:64%; top:49%; width:26%; aspect-ratio:1.18; transform:translate(-50%,-50%) rotate(-8deg); border:6px solid var(--rg-action); border-radius:50% 46% 52% 44%; box-shadow:0 0 0 2px rgba(249,168,37,.28); }
.rg-area-map__circle::after { content:""; position:absolute; inset:-11px -7px -8px -12px; border:2px solid rgba(249,168,37,.64); border-radius:47% 52% 45% 55%; }
.rg-area-map__callout { position:absolute; left:64%; top:49%; transform:translate(-50%,-50%) rotate(-7deg); color:var(--rg-action); font:700 clamp(.86rem,1.15vw,1.08rem)/1.06 "Segoe Print","Comic Sans MS",cursive; text-align:center; text-shadow:0 2px 4px rgba(0,0,0,.55); }
.rg-area__note { display:grid; gap:5px; margin-top:28px; padding-top:22px; }
.rg-area__ticker { margin-top:50px; padding-top:24px; border-top:1px solid rgba(255,255,255,.14); }
.rg-area__ticker-viewport { overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.rg-area__ticker-track { display:flex; width:max-content; animation:rg-town-roll 40s linear infinite; }
.rg-area__ticker-track > span { display:inline-flex; align-items:center; gap:24px; padding-right:24px; color:#fff; font:800 clamp(1.15rem,1rem + .7vw,1.55rem)/1 var(--rg-font-head); text-decoration:none; white-space:nowrap; }
.rg-area__ticker-track > span span { color:var(--rg-action); }
@keyframes rg-town-roll { to { transform:translateX(-50%); } }

/* CTA and footer. */
.rg-cta__call { gap:12px; }
.rg-cta__quote svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; }
.rg-footer__contact li { display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; }
.rg-footer__contact li > svg { width:18px; height:18px; margin-top:2px; fill:none; stroke:var(--rg-cyan-light); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.rg-footer__map { display:grid; grid-template-columns:minmax(190px,.35fr) minmax(0,760px); justify-content:space-between; gap:30px; align-items:center; margin-top:44px; padding-top:32px; border-top:1px solid rgba(255,255,255,.14); }
.rg-footer__map .rg-eyebrow { margin-bottom:7px; color:var(--rg-cyan-light); }
.rg-footer__map h3 { max-width:18ch; margin:0; color:#fff; font-size:1.2rem; letter-spacing:0; line-height:1.3; text-transform:none; }
.rg-footer__map-link { position:relative; display:grid; place-items:center; min-height:260px; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:radial-gradient(circle at 62% 42%,rgba(0,200,255,.2),transparent 48%),rgba(255,255,255,.045); text-decoration:none; }
.rg-footer__map-link > img { width:min(92%,620px); height:235px; object-fit:contain; object-position:center; filter:drop-shadow(0 16px 12px rgba(0,0,0,.35)); transition:transform 260ms ease; }
.rg-footer__map-link > span { position:absolute; right:18px; bottom:16px; display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border-radius:999px; background:var(--rg-action); color:var(--rg-action-ink); font:800 .8rem/1 var(--rg-font-head); }
.rg-footer__map-link svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; }
.rg-footer__map-link:hover > img { transform:scale(1.025); }

@media (max-width:1100px) {
  .rg-reviews__head { grid-template-columns:1fr; }
  .rg-reviews__head > div:first-child { min-width:0; }
  .rg-reviews__tools { flex-direction:row; align-items:center; justify-content:space-between; width:100%; }
  .rg-work__layout { grid-template-columns:1fr; }
  .rg-work__copy { max-width:760px; }
  .rg-workwall { --rg-wall-fade-y:14%; height:560px; margin-block:0; }
  .rg-process__steps { grid-template-columns:repeat(2,1fr); gap:34px 20px; }
  .rg-process__steps::before { display:none; }
  .rg-process__steps li { grid-template-columns:64px 1fr; padding:0; text-align:left; }
  .rg-guarantees__grid { grid-template-columns:repeat(2,1fr); }
  .rg-guarantees__grid article:nth-child(2) { border-right:0; }
  .rg-guarantees__grid article:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.14); }
  .rg-blog__track { grid-auto-columns:calc((100% - 20px)/2); }
}

@media (max-width:860px) {
  .rg-colors__layout { grid-template-columns:1fr; }
  .rg-colors__copy { order:-1; }
  .rg-colors__visual { min-height:360px; }
  .rg-transform__viewport { width:110%; margin-left:-5%; }
  .rg-area__layout { grid-template-columns:1fr; }
  .rg-area__intro { order:-1; }
  .rg-area-map { min-height:400px; }
  .rg-footer__map { grid-template-columns:1fr; }
}

@media (max-width:750px) {
  .rg-carousel-controls,
  .rg-reviews__controls { display:none; }
  .rg-utility__hours { font-size:.72rem; }
  .rg-qf__head { align-items:flex-start; padding:17px 18px; }
  .rg-qf__trust { padding-left:12px; }
  .rg-qf__trust > span { font-size:.56rem; }
  .rg-qf__trust b { font-size:.68rem; }
  .rg-stat__label { font-size:.7rem; }
  .rg-services__dots { margin-top:17px; }
  .rg-services__cta-actions,
  .rg-reviews__actions { width:100%; }
  .rg-services__quote,
  .rg-services__call,
  .rg-reviews__quote,
  .rg-reviews__call { flex:0 0 auto; width:100%; }
  .rg-reviews__tools { display:block; }
  .rg-reviews__tools .rg-hero__reviews { width:100%; }
  .rg-workwall { height:460px; }
  .rg-workwall__grid { grid-template-columns:repeat(4,1fr); gap:7px; }
  .rg-workwall__column { gap:0; }
  .rg-workwall__column img { border-radius:6px; aspect-ratio:3/4; }
  .rg-workwall__feature { width:72%; padding:4px; }
  .rg-colors__visual { min-height:280px; }
  .rg-colors__chips { margin-top:20px; }
  .rg-process__head { margin-bottom:30px; }
  .rg-process__steps { grid-template-columns:1fr; gap:24px; }
  .rg-process__steps li { grid-template-columns:52px 1fr; gap:15px; }
  .rg-process__steps li > span { width:52px; height:52px; box-shadow:none; }
  .rg-process::before { background-size:auto 46%; background-position:right bottom; }
  .rg-people__quote { padding:22px 20px 20px 48px; }
  .rg-people__quote::before { left:14px; }
  .rg-guarantees__head { flex-direction:column; align-items:flex-start; gap:10px; }
  .rg-guarantees__grid { grid-template-columns:1fr; }
  .rg-guarantees__grid article { border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
  .rg-guarantees__grid article:last-child { border-bottom:0; }
  .rg-blog__track { grid-auto-columns:88%; }
  .rg-blogcard { min-height:440px; }
  .rg-area-map { min-height:310px; padding:10px 0; }
  .rg-area-map__slab { width:100%; margin-left:0; }
  .rg-area-map__circle { width:22%; border-width:4px; }
  .rg-area-map__callout { font-size:.76rem; }
  .rg-area__ticker { margin-top:28px; }
  .rg-area__ticker-track { animation-duration:30s; }
  .rg-footer__map-link { min-height:220px; }
  .rg-footer__map-link > img { height:205px; }
}

@media (max-width:390px) {
  .rg-qf__trust > span { display:none; }
  .rg-qf__trust { padding-left:10px; }
  .rg-qf__trust b { max-width:86px; white-space:normal; line-height:1.15; }
  .rg-workwall { height:410px; }
}

@media (prefers-reduced-motion:reduce) {
  .rg-utility__hours > span { transition:none; }
  .rg-workwall__column,
  .rg-area__ticker-track { animation-play-state:paused; }
}

/* Shared finishing rules: readable headings, stable illustrations, clear controls. */
.rg-icon { display:inline-block; width:19px; height:19px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.rg-header__phone-mobile { place-items:center; color:var(--rg-navy); }
.rg-header__phone-mobile .rg-icon { width:26px; height:26px; }
.rg-btn-call, .rg-header__call, .rg-sticky-call, .rg-drawer__phone { gap:10px; align-items:center; justify-content:center; }
.rg-header__call .rg-icon, .rg-btn-call .rg-icon { width:21px; height:21px; }
.rg-home .rg-sec { --rg-sec-pad:clamp(44px,4.5vw,64px); padding-block:var(--rg-sec-pad); }
.rg-h2, .rg-transform__copy h2 { text-wrap:balance; }
.rg-lede { text-wrap:pretty; }
.rg-people__copy .rg-h2, .rg-colors .rg-h2 { max-width:22ch; }
.rg-process__head { max-width:820px; }
.rg-process__head .rg-lede { max-width:76ch; }
.rg-qf__trust > a { display:flex; align-items:center; gap:5px; margin-top:6px; color:#fff; font-size:.66rem; text-decoration:underline; text-underline-offset:3px; }
.rg-qf__trust > a svg { width:13px; height:13px; }
.rg-qf__head { gap:12px; }
.rg-qf__trust { padding-left:12px; }
.rg-servicecard__media { aspect-ratio:16/9; }
.rg-workwall__feature > span { right:12px; bottom:12px; min-height:32px; padding:0 10px; background:rgba(0,27,74,.9); color:#fff; font-size:.75rem; }
.rg-workwall:hover .rg-workwall__column, .rg-workwall:focus-visible .rg-workwall__column { animation-play-state:paused; }
.rg-transform__layout { grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr); min-height:530px; gap:40px; }
.rg-transform__viewport { width:100%; margin:0; }
.rg-transform__copy h2 { font-size:var(--rg-h2); font-weight:800; line-height:1.15; letter-spacing:normal; }
.rg-transform__stage { align-self:center; }
.rg-transform__copy { max-width:none; padding-block:48px; }
.rg-guarantees__head { display:block; margin-bottom:26px; }
.rg-guarantees__head .rg-eyebrow { margin-bottom:12px; }
.rg-guarantees__grid article { padding:24px; }
.rg-guarantees__grid h3 { margin-top:14px; }
.rg-guarantees__grid svg { stroke-width:2; }
.rg-blog__track { grid-auto-columns:calc((100% - 24px)/2); gap:24px; }
.rg-blogcard { min-height:0; }
.rg-blogcard__image { aspect-ratio:2.5; }
.rg-blogcard h3 { text-wrap:balance; }
.rg-blog__dots { display:flex; justify-content:center; gap:4px; margin-top:18px; }
.rg-blog__dots button { display:grid; place-items:center; width:36px; height:36px; border:0; background:transparent; cursor:pointer; }
.rg-blog__dots button::after { content:""; width:9px; height:9px; border-radius:99px; background:#9fadc2; transition:width 180ms ease; }
.rg-blog__dots button[aria-current="true"]::after { width:26px; background:var(--rg-navy); }
.rg-blog__dots[hidden], .rg-blog .rg-carousel-controls[hidden] { display:none; }
.rg-circle-arrow:disabled { opacity:.35; box-shadow:none; cursor:default; transform:none; }
.rg-circle-arrow:disabled:hover { color:var(--rg-navy); background:#fff; border-color:var(--rg-border-cool); }
.rg-area-map { min-height:0; padding:0; }
.rg-area-map__slab { position:relative; width:100%; margin:0; }
.rg-area-map__annotation { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:var(--rg-action); stroke-linecap:round; stroke-linejoin:round; }
.rg-area-map__mark { stroke-width:4; vector-effect:non-scaling-stroke; }
.rg-area-map__leader { stroke-width:2; vector-effect:non-scaling-stroke; }
.rg-area-map figcaption.rg-area-map__callout { display:block; position:absolute; left:7%; top:63%; width:36%; margin:0; transform:rotate(-5deg); color:var(--rg-action); font:700 clamp(14px,1.2vw,18px)/1.35 "Segoe Print","Comic Sans MS",cursive; text-align:center; text-shadow:none; }
.rg-area-map__callout strong { color:#fff; font-weight:700; }
.rg-area__ticker { margin-top:28px; }
.rg-area__ticker:hover .rg-area__ticker-track, .rg-area__ticker:focus-within .rg-area__ticker-track { animation-play-state:paused; }
.rg-footer__map { grid-template-columns:minmax(200px,.5fr) minmax(0,1fr); gap:36px; margin-top:32px; padding-top:28px; }
.rg-footer__interactive-map { display:block; width:100%; height:280px; border:0; border-radius:12px; background:#e9eff7; }
.rg-footer__map h3 { max-width:none; }
.rg-footer__map p:not(.rg-eyebrow) { margin:12px 0; }
.rg-footer__directions { display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--rg-cyan-light); text-underline-offset:4px; }
.rg-review__details summary { list-style:none; }
.rg-review__details summary::-webkit-details-marker { display:none; }
.rg-review__details summary::before { content:""; display:inline-block; width:7px; height:7px; margin-right:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); }
.rg-review__details[open] summary::before { transform:translateY(2px) rotate(225deg); }
.rg-colors__matching { margin:20px 0; padding-left:16px; border-left:2px solid var(--rg-action); color:var(--rg-on-dark-dim); font-size:.92rem; line-height:1.65; }
.rg-colors__matching b { display:block; color:#fff; margin-bottom:5px; }
.rg-colors__sample-note { margin:10px 0 0; color:var(--rg-on-dark-dim); font-size:.78rem; }

@media (min-width:861px) {
  .rg-home .rg-blog { background:#edf5ff; }
  .rg-home .rg-faq { background:#fff; }
}
@media (max-width:1100px) {
  .rg-transform__layout { grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr); min-height:450px; gap:24px; }
  .rg-workwall { height:480px; }
  .rg-blog__track { grid-auto-columns:72%; }
  .rg-blogcard__image { aspect-ratio:2.2; }
}
@media (max-width:860px) {
  .rg-transform__layout { display:flex; min-height:0; gap:0; }
  .rg-transform__copy { padding:44px 0 12px; }
  .rg-transform__stage { width:100%; margin:0; }
  .rg-transform__viewport { width:100%; margin:0; }
  .rg-area-map { max-width:600px; width:100%; justify-self:center; }
  .rg-footer__map { grid-template-columns:1fr; gap:18px; }
}
@media (max-width:750px) {
  .rg-workwall { height:390px; }
  .rg-blog__track { grid-auto-columns:88%; gap:16px; }
  .rg-blogcard__image { aspect-ratio:1.8; }
  .rg-blogcard > div { padding:20px; }
  .rg-blogcard h3 { font-size:1.15rem; }
  .rg-area-map figcaption.rg-area-map__callout { left:2%; top:65%; width:42%; font-size:13px; }
  .rg-area-map__mark { stroke-width:3; }
  .rg-guarantees__grid article { padding:20px; }
  .rg-guarantees__grid { grid-template-columns:1fr; }
  .rg-guarantees__grid article { display:grid; grid-template-columns:32px 1fr; gap:6px 14px; }
  .rg-guarantees__grid article svg { grid-row:1 / 3; width:28px; height:28px; }
  .rg-guarantees__grid h3 { margin:0; }
  .rg-guarantees__grid article p { grid-column:2; }
  .rg-footer__grid { grid-template-columns:1fr 1fr; gap:28px 20px; }
  .rg-footer__grid > :first-child, .rg-footer__contact { grid-column:1 / -1; }
  .rg-footer__contact ul { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .rg-footer__logo { max-width:120px; }
  .rg-colors__visual { min-height:0; }
  .rg-colors__layout { gap:26px; }
  .rg-qf__trust > a { max-width:100px; font-size:.62rem; }
  .rg-qf__trust > a svg { display:none; }
}

/* The quote header uses one small trust badge, not a second content block. */
.rg-qf__trust {
 display:inline-flex;
 align-items:center;
 gap:7px;
 flex:0 0 auto;
 padding:8px 12px;
 border:1px solid rgba(255,255,255,.3);
 border-radius:999px;
 background:rgba(0,200,255,.12);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
 color:#fff;
}
.rg-qf__trust strong { font-family:var(--rg-font-head); font-size:.72rem; font-weight:800; line-height:1; white-space:nowrap; }
.rg-qf__trust > svg { width:17px; height:17px; fill:none; stroke:var(--rg-cyan-light); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:390px) {
 .rg-qf__trust { gap:5px; padding:7px 9px; }
 .rg-qf__trust strong { font-size:.64rem; }
 .rg-qf__trust > svg { width:15px; height:15px; }
}
