/* Clone overrides — fixes for JS-applied behaviors that differ on clone */

/* Footer Instagram grid: Squarespace's image loader normally fades these in.
   On the static clone it never runs, so the 16 thumbnails stayed at opacity 0. */
.sqs-block-instagram .sqs-gallery .slide .image-slide-anchor {
  display: block;
  overflow: hidden;
  position: relative;
}
.sqs-block-instagram .sqs-gallery .slide img.thumb-image {
  opacity: 1 !important;
  display: block;
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* Desktop nav: folder titles are now links to their hub pages. */
a.header-nav-folder-title { text-decoration: none; color: inherit; }

/* Mobile menu: folder row split into hub link + chevron that opens the dropdown. */
.header-menu-nav-item.rc-split-folder {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25em;
}
.header-menu-nav-item.rc-split-folder > a { display: inline-block; width: auto; flex: 0 0 auto; padding: 0 !important; margin: 0 !important; }
.header-menu-nav-item.rc-split-folder .rc-split-folder-link .header-menu-nav-item-content { white-space: nowrap; padding-left: 0 !important; padding-right: 0 !important; }
/* invisible spacer on the left balances the chevron so the label stays centered */
.header-menu-nav-item.rc-split-folder::before { content: ""; flex: 0 0 1.4em; }
.header-menu-nav-item.rc-split-folder .rc-split-folder-toggle { flex: 0 0 1.4em; }
.header-menu-nav-item.rc-split-folder .rc-split-folder-toggle .header-menu-nav-item-content {
  padding: 0 !important;
  width: 1.4em;
  min-height: 1em;
  position: relative;
}

/* Footer "& Surrounding Areas" line: was a second <h1>, now a <p> with the H1 look (cutover parity fix 2026-10-12). */
.sqs-html-content p.rc-h1-look {
  font-family: var(--heading-font-font-family) !important;
  font-weight: var(--heading-font-font-weight) !important;
  font-style: var(--heading-font-font-style) !important;
  letter-spacing: var(--heading-font-letter-spacing) !important;
  text-transform: var(--heading-font-text-transform) !important;
  font-size: calc((var(--heading-1-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem) !important;
  line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-1-size-value))/25)) !important;
  margin: 0 !important;
  color: inherit;
}
@media screen and (min-width: 768px) { .sqs-html-content p.rc-h1-look { font-size: calc(var(--heading-1-size-value) * 1rem) !important; } }

/* Heading hierarchy fix (scripts/heading-fixes.py, 2026-10-18): some headings got a new tag
   (h4 -> h3 under an h2; About/Contact's top heading -> h1). class rc-look-hN keeps the old
   look: the theme sizes and colors each tag from its own variables, so point the new tag's
   variables at the old tag's values on that element only. */
h3.rc-look-h4 {
  --heading-3-size-value: var(--heading-4-size-value);
  --headingMediumColor: var(--headingSmallColor);
  --tweak-heading-medium-color-on-background: var(--tweak-heading-small-color-on-background);
}
h1.rc-look-h3 {
  --heading-1-size-value: var(--heading-3-size-value);
  --headingExtraLargeColor: var(--headingMediumColor);
  --tweak-heading-extra-large-color-on-background: var(--tweak-heading-medium-color-on-background);
}
h1.rc-look-h2 {
  --heading-1-size-value: var(--heading-2-size-value);
  --headingExtraLargeColor: var(--headingLargeColor);
  --tweak-heading-extra-large-color-on-background: var(--tweak-heading-large-color-on-background);
}

/* Phone layout uses the same content-sized flow instead of fixed tracks that
   vertically center short copy and leave a false gap above its CTA. */
@media screen and (max-width: 767px) {
  .fluid-engine.fe-68caf11a1171fc1595ae3f6a {
    grid-template-rows: 339px repeat(3, max-content);
    row-gap: 24px;
    align-content: start;
  }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-3a83273c32d08bd55425 { grid-row: 1 / 2; min-height: 0; contain: size; }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-181cadb5901262341bac { grid-row: 2 / 3; }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-c238676631a678fa737a { grid-row: 3 / 4; }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-1cc3e89278e4ee2b17ec { grid-row: 4 / 5; }
}

/* Kitchen's two-column tablet/desktop layout: consecutive content-sized copy
   rows, with image size contained so it cannot inflate the CTA gap. */
@media screen and (min-width: 768px) {
  .fluid-engine.fe-68caf11a1171fc1595ae3f6a {
    grid-template-rows: repeat(3, max-content);
    row-gap: 24px;
    align-content: start;
  }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-3a83273c32d08bd55425 { grid-area: 1 / 2 / 4 / 14; min-height: 0; contain: size; }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-181cadb5901262341bac { grid-area: 1 / 15 / 2 / 26; }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-c238676631a678fa737a { grid-area: 2 / 15 / 3 / 26; }
  .fe-68caf11a1171fc1595ae3f6a > .fe-block-1cc3e89278e4ee2b17ec { grid-area: 3 / 15 / 4 / 21; }
}

/* October QA: the shared banner's fixed desktop rows cannot accommodate a wrapped
   city list at 1272px. Use content-sized flow only for this three-text-block banner.
   Keep the existing phone/tablet grid and its stack correction untouched. */
@media screen and (min-width: 1272px) {
  .fluid-engine.fe-69038752c080d354a3f5db8a { display: flex; flex-direction: column; gap: 24px; padding-block: 24px; }
  .fluid-engine.fe-69038752c080d354a3f5db8a > .fe-block { width: 100%; }
  .fluid-engine:has(> .fe-block a[href="/service-areas/georgetown-in-pools-spas"]):has(> .fe-block h2) {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-block: 24px;
  }
  .fluid-engine:has(> .fe-block a[href="/service-areas/georgetown-in-pools-spas"]):has(> .fe-block h2) > .fe-block {
    width: 100%;
    min-width: 0;
  }
  /* The original scaled-text title was constrained to six grid columns. In
     content flow it must not scale up to the full-width city-list container. */
  .fluid-engine:has(> .fe-block a[href="/service-areas/georgetown-in-pools-spas"]):has(> .fe-block h2) > .fe-block:has(h2) {
    max-width: 28rem;
    margin-inline: auto;
  }
  /* Pool intro: keep the site's 26-column grid (so both side gutters stay), size rows
     from the copy, and stretch the photo to the full copy height (Jakob 2026-10-27:
     text sat against the right edge; white space under the photo). */
  .fluid-engine.fe-6838d21125659f368d7ff0d0 {
    grid-template-rows: repeat(5, max-content);
    row-gap: 24px;
    align-content: start;
  }
  .fluid-engine.fe-6867d76a685ef62f5dd2eb7e > .fe-block-252f5a269f6428d39875 { grid-row: 8 / 14; }
  .fe-6838d21125659f368d7ff0d0 > .fe-block-d3fccd593243b3c1665f { grid-area: 1 / 2 / 4 / 14; min-height: 0; contain: size; }
  .fe-6838d21125659f368d7ff0d0 > .fe-block-f411bfee6b4547e30055 { grid-area: 1 / 15 / 2 / 26; }
  .fe-6838d21125659f368d7ff0d0 > .fe-block-50a54164905481ef6a02 { grid-area: 2 / 15 / 3 / 26; }
  .fe-6838d21125659f368d7ff0d0 > .fe-block-a96f2c2e6d539e6fe15c { grid-area: 3 / 15 / 4 / 21; }
  /* Thursday row: dealer badge left, heading + copy right (same arrangement as the tablet layout). */
  .fe-6838d21125659f368d7ff0d0 > .fe-block-3ecb9c37b0363ca56c9b { grid-area: 4 / 2 / 6 / 7; align-self: center; justify-self: start; margin-top: 40px; width: min(180px, 100%); aspect-ratio: 1 / 1; height: auto; }
  .fe-6838d21125659f368d7ff0d0 > .fe-block-a5f6b2b9ffd0499c4a86 { grid-area: 4 / 8 / 5 / 26; margin-top: 40px; }
  .fe-6838d21125659f368d7ff0d0 > .fe-block-88b752d49773e888e86c { grid-area: 5 / 8 / 6 / 26; }
}

/* Turf page: the October copy is shorter than the original fixed Squarespace
   row ranges, so the CTAs sat 120-270px below the copy. Size the copy rows from
   content (same approach as the kitchen intro) and keep media/background
   blocks size-contained so they follow the copy instead of inflating it. */
@media screen and (min-width: 768px) {
  .fluid-engine.fe-6838cb351790554ae485feeb,
  .fluid-engine.fe-6838cb351790554ae485fef7 { grid-template-rows: repeat(3, max-content); row-gap: 24px; align-content: start; }
  .fe-6838cb351790554ae485feeb > .fe-block-3191a7da422f66416d68 { grid-area: 1 / 2 / 4 / 14; min-height: 0; contain: size; }
  .fe-6838cb351790554ae485feeb > .fe-block-ef1f78d9e461446392cf { grid-area: 1 / 15 / 2 / 26; }
  .fe-6838cb351790554ae485feeb > .fe-block-9c5dba5cfa5b1be85b69 { grid-area: 2 / 15 / 3 / 26; }
  .fe-6838cb351790554ae485feeb > .fe-block-361bac705ec09b2db447 { grid-area: 3 / 15 / 4 / 21; }
  .fe-6838cb351790554ae485fef7 > .fe-block-9f050782f5689ded17e5 { grid-area: 1 / 2 / 4 / 11; min-height: 0; contain: size; }
  .fe-6838cb351790554ae485fef7 > .fe-block-e656a3f0c8866a685d3e { grid-area: 1 / 12 / 2 / 26; }
  .fe-6838cb351790554ae485fef7 > .fe-block-7aa4cd1c068bb9e2e614 { grid-area: 2 / 12 / 3 / 26; }
  .fe-6838cb351790554ae485fef7 > .fe-block-7deb92a60ce4674ebc9b { grid-area: 3 / 12 / 4 / 18; }
  .fluid-engine.fe-6838cb351790554ae485fef4 { grid-template-rows: 24px repeat(5, max-content) 24px; row-gap: 16px; align-content: start; }
  .fe-6838cb351790554ae485fef4 > .fe-block-aadbcaec1c2bb3fbc62a { grid-area: 1 / 2 / 8 / 26; min-height: 0; contain: size; }
  .fe-6838cb351790554ae485fef4 > .fe-block-efe02914f9cb17af1ebf { grid-area: 2 / 3 / 3 / 25; }
  .fe-6838cb351790554ae485fef4 > .fe-block-dd504190bfa7112f0c59 { grid-area: 3 / 3 / 4 / 25; }
  .fe-6838cb351790554ae485fef4 > .fe-block-cd150a17ca9f471e6bc8 { grid-area: 4 / 3 / 5 / 25; }
  .fe-6838cb351790554ae485fef4 > .fe-block-4fb8507f33facce36223 { grid-area: 5 / 3 / 6 / 25; }
  .fe-6838cb351790554ae485fef4 > .fe-block-9035f1c3ba5ef5d55a73 { grid-area: 6 / 11 / 7 / 17; }
}
@media screen and (max-width: 767px) {
  .fluid-engine.fe-6838cb351790554ae485feeb { grid-template-rows: 339px repeat(3, max-content); row-gap: 24px; align-content: start; }
  .fe-6838cb351790554ae485feeb > .fe-block-3191a7da422f66416d68 { grid-row: 1 / 2; min-height: 0; contain: size; }
  .fe-6838cb351790554ae485feeb > .fe-block-ef1f78d9e461446392cf { grid-row: 2 / 3; }
  .fe-6838cb351790554ae485feeb > .fe-block-9c5dba5cfa5b1be85b69 { grid-row: 3 / 4; }
  .fe-6838cb351790554ae485feeb > .fe-block-361bac705ec09b2db447 { grid-row: 4 / 5; }
  .fluid-engine.fe-6838cb351790554ae485fef7 { grid-template-rows: 199px repeat(3, max-content); row-gap: 24px; align-content: start; }
  .fe-6838cb351790554ae485fef7 > .fe-block-9f050782f5689ded17e5 { grid-row: 1 / 2; min-height: 0; contain: size; }
  .fe-6838cb351790554ae485fef7 > .fe-block-e656a3f0c8866a685d3e { grid-row: 2 / 3; }
  .fe-6838cb351790554ae485fef7 > .fe-block-7aa4cd1c068bb9e2e614 { grid-row: 3 / 4; }
  .fe-6838cb351790554ae485fef7 > .fe-block-7deb92a60ce4674ebc9b { grid-row: 4 / 5; }
  .fluid-engine.fe-6838cb351790554ae485fef4 { grid-template-rows: 24px repeat(5, max-content) 24px; row-gap: 16px; align-content: start; }
  .fe-6838cb351790554ae485fef4 > .fe-block-aadbcaec1c2bb3fbc62a { grid-row: 1 / 8; min-height: 0; contain: size; }
  .fe-6838cb351790554ae485fef4 > .fe-block-efe02914f9cb17af1ebf { grid-row: 2 / 3; }
  .fe-6838cb351790554ae485fef4 > .fe-block-dd504190bfa7112f0c59 { grid-row: 3 / 4; }
  .fe-6838cb351790554ae485fef4 > .fe-block-cd150a17ca9f471e6bc8 { grid-row: 4 / 5; }
  .fe-6838cb351790554ae485fef4 > .fe-block-4fb8507f33facce36223 { grid-row: 5 / 6; }
  .fe-6838cb351790554ae485fef4 > .fe-block-9035f1c3ba5ef5d55a73 { grid-row: 6 / 7; }
}

/* "Follow our journey" Instagram section (every page): the captured grid keeps fixed rows sized for
   Squarespace's full Instagram iframe, which leaves 300-700px of empty space under the post card and
   photo. Let the rows size to the embed and photo instead (Jakob QA 2026-10-26). */
.fluid-engine:has(blockquote.instagram-media, iframe.instagram-media) { grid-template-rows: none !important; }

/* Grouped "Other Services" menu (Jakob 2026-10-27): four labelled columns on desktop, labelled runs in the phone menu. */
.header-nav-folder-content:has(.rc-nav-col) { min-width: 0; width: max-content; padding: .9em 1.2em; left: 50%; right: auto; transform: translateX(-50%); }
.header-nav .header-nav-item--folder:hover .header-nav-folder-content:has(.rc-nav-col),
.header-nav .header-nav-item--folder:focus-within .header-nav-folder-content:has(.rc-nav-col),
.header-nav .header-nav-item--folder [aria-expanded='true'] + .header-nav-folder-content:has(.rc-nav-col) { display: flex; gap: 0 2.2em; pointer-events: auto; }
.header-nav-folder-content .rc-nav-col { display: flex; flex-direction: column; }
.rc-nav-group span { display: block; font-size: .72em; letter-spacing: .08em; text-transform: uppercase; opacity: .65; pointer-events: none; font-weight: 600; }
.header-nav-folder-content .rc-nav-group span { margin: 0 0 .35em; color: #fff; }
.header-menu-nav-item.rc-nav-group span { margin: 1.1em 0 .1em; font-size: .9rem; color: #fff; }

/* Landscape Designer hub: its first section sits straight under the hero (the problem section was cut),
   so give it the same top space the other service pages get after the hero (48px desktop, 65px phone). */
article .page-section:first-child + section[data-section-id="6902d240f639ea2bfb4d099e"] > .content-wrapper { padding-top: 48px !important; }
@media (max-width: 767px) {
  article .page-section:first-child + section[data-section-id="6902d240f639ea2bfb4d099e"] > .content-wrapper { padding-top: 65px !important; }
}

/* /services: service cards (Jakob 2026-10-27). Grouped like the header menu; site accent green + heading font. */
.rc-svc { width: 100%; }
.rc-svc-group { margin: 1.6em 0 .7em !important; font-size: 1.25rem !important; color: hsla(var(--accent-hsl),1); }
.rc-svc-group:first-child { margin-top: .4em !important; }
.rc-svc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; }
.rc-svc-card { display: flex; flex-direction: column; background: #fff; border-radius: 10px; overflow: hidden; text-decoration: none !important; color: #000 !important; box-shadow: 0 2px 14px rgba(0,0,0,.10); transition: transform .2s, box-shadow .2s; }
.rc-svc-card:hover { transform: translateY(-3px); box-shadow: 0 6px 22px rgba(0,0,0,.16); }
.rc-svc-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.rc-svc-name { font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 700; font-size: 1.05rem; padding: .8em 1em .2em; color: hsla(var(--accent-hsl),1); }
.rc-svc-desc { font-size: .92rem; line-height: 1.45; padding: 0 1em 1.1em; color: #333; }
@media (max-width: 767px) { .rc-svc-grid { grid-template-columns: 1fr 1fr; gap: 12px; } .rc-svc-name { font-size: .95rem; padding: .7em .75em .15em; } .rc-svc-desc { font-size: .82rem; padding: 0 .75em .9em; } }

/* /services intro (photo + "Custom Outdoor Living Solutions"): copy was shortened, so size rows
   from the copy and make the photo match the copy height (Jakob 2026-10-27). */
@media screen and (min-width: 768px) {
  .fluid-engine.fe-6838fac0a160cf186719e7e7 { grid-template-rows: repeat(3, max-content); row-gap: 24px; align-content: start; }
  .fe-6838fac0a160cf186719e7e7 > .fe-block-0a05de0c207ae9a09535 { grid-area: 1 / 2 / 4 / 14; min-height: 0; contain: size; }
  .fe-6838fac0a160cf186719e7e7 > .fe-block-9215eedc07377d66cb23 { grid-area: 1 / 15 / 2 / 26; }
  .fe-6838fac0a160cf186719e7e7 > .fe-block-cad8c7c8e4225bd268b9 { grid-area: 2 / 15 / 3 / 26; }
  .fe-6838fac0a160cf186719e7e7 > .fe-block-e878c023581e8d6ff803 { grid-area: 3 / 15 / 4 / 21; }
}
/* /services "Tired of..." intro: copy was shortened; size rows from content so no blank band under it. */
@media screen and (min-width: 768px) {
  .fluid-engine.fe-6838fac0a160cf186719e7e4 { grid-template-rows: repeat(2, max-content); row-gap: 24px; align-content: start; }
  .fe-6838fac0a160cf186719e7e4 > .fe-block-0d967e883e5d154386b0 { grid-area: 1 / 5 / 2 / 23; }
  .fe-6838fac0a160cf186719e7e4 > .fe-block-3297e387fe8733a3471f { grid-area: 2 / 2 / 3 / 26; }
}

/* Phone: "How we build" step cards were sized by fixed Squarespace rows, leaving ~140px blank
   under each card's text. Size rows from the card text; keep the same 12px spacing between cards. */
@media screen and (max-width: 767px) {
  .fluid-engine.fe-6838aa596a51c45b883b5d05,
  .fluid-engine.fe-6838cb351790554ae485feee,
  .fluid-engine.fe-6838d21125659f368d7ff0d3,
  .fluid-engine.fe-6838fac0a160cf186719e7ea,
  .fluid-engine.fe-6867e6375bd764515af0d597,
  .fluid-engine.fe-68cad4b38f0eda2a17e64a2f,
  .fluid-engine.fe-68caf11a1171fc1595ae3f70,
  .fluid-engine.fe-68cb37588d34f6136f016804,
  .fluid-engine.fe-68cb3d8b8326354b92084c89,
  .fluid-engine.fe-690264e8151f17055aa1aa66,
  .fluid-engine.fe-6902d240f639ea2bfb4d09a3,
  .fluid-engine.fe-69038752c080d354a3f5db96,
  .fluid-engine.fe-69039871ad7f97429cb8a833 { grid-template-rows: repeat(60, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-6838aa596a51c45b883b5d05 > .fe-block,
  .fluid-engine.fe-6838cb351790554ae485feee > .fe-block,
  .fluid-engine.fe-6838d21125659f368d7ff0d3 > .fe-block,
  .fluid-engine.fe-6838fac0a160cf186719e7ea > .fe-block,
  .fluid-engine.fe-6867e6375bd764515af0d597 > .fe-block,
  .fluid-engine.fe-68cad4b38f0eda2a17e64a2f > .fe-block,
  .fluid-engine.fe-68caf11a1171fc1595ae3f70 > .fe-block,
  .fluid-engine.fe-68cb37588d34f6136f016804 > .fe-block,
  .fluid-engine.fe-68cb3d8b8326354b92084c89 > .fe-block,
  .fluid-engine.fe-690264e8151f17055aa1aa66 > .fe-block,
  .fluid-engine.fe-6902d240f639ea2bfb4d09a3 > .fe-block,
  .fluid-engine.fe-69038752c080d354a3f5db96 > .fe-block,
  .fluid-engine.fe-69039871ad7f97429cb8a833 > .fe-block { margin-bottom: 12px; }
  /* /services intro + "Tired of" intro: shortened copy, so size rows from it too. */
  .fluid-engine.fe-6838fac0a160cf186719e7e7,
  .fluid-engine.fe-6838fac0a160cf186719e7e4 { grid-template-rows: repeat(30, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-6838fac0a160cf186719e7e7 > .fe-block,
  .fluid-engine.fe-6838fac0a160cf186719e7e4 > .fe-block { margin-bottom: 16px; }
  .fe-6838fac0a160cf186719e7e7 > .fe-block-0a05de0c207ae9a09535 { aspect-ratio: 4 / 3; }
}
@media screen and (max-width: 767px) { .fe-6838fac0a160cf186719e7e7 > .fe-block-e878c023581e8d6ff803 .sqs-block-button-element { white-space: nowrap; } }

/* Phone: text+photo sections with shortened lists left 130-200px blank under the list. Size rows from content; photos keep their phone shape. */
@media screen and (max-width: 767px) {
  .fluid-engine.fe-68caf11a1171fc1595ae3f6d { grid-template-rows: repeat(40, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-68caf11a1171fc1595ae3f6d > .fe-block { margin-bottom: 11px; }
  .fe-68caf11a1171fc1595ae3f6d > .fe-block-a0ecb4fb56987be67fcd { aspect-ratio: 343 / 199; }
  .fluid-engine.fe-69039871ad7f97429cb8a836 { grid-template-rows: repeat(40, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-69039871ad7f97429cb8a836 > .fe-block { margin-bottom: 11px; }
  .fe-69039871ad7f97429cb8a836 > .fe-block-6a29c5f683e3464cd236 { aspect-ratio: 343 / 199; }
  .fluid-engine.fe-69038752c080d354a3f5db93 { grid-template-rows: repeat(40, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-69038752c080d354a3f5db93 > .fe-block { margin-bottom: 11px; }
  .fe-69038752c080d354a3f5db93 > .fe-block-16cf79a208995fb5541e { aspect-ratio: 343 / 199; }
  .fluid-engine.fe-690264e8151f17055aa1aa60 { grid-template-rows: repeat(40, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-690264e8151f17055aa1aa60 > .fe-block { margin-bottom: 11px; }
  .fe-690264e8151f17055aa1aa60 > .fe-block-61371bbf5c3fba93a366 { aspect-ratio: 390 / 339; }
  .fluid-engine.fe-68cb3d8b8326354b92084c86 { grid-template-rows: repeat(40, minmax(0, max-content)); row-gap: 0; }
  .fluid-engine.fe-68cb3d8b8326354b92084c86 > .fe-block { margin-bottom: 11px; }
  .fe-68cb3d8b8326354b92084c86 > .fe-block-9310a1ed67bd9fa296b9 { aspect-ratio: 343 / 199; }
}

/* Phone: same sections, one row per block in reading order (blocks shared rows and the button overlapped the list). */
@media screen and (max-width: 767px) {
  .fe-68caf11a1171fc1595ae3f6d > .fe-block-a0ecb4fb56987be67fcd { grid-area: 1 / 2 / 2 / 10; }
  .fe-68caf11a1171fc1595ae3f6d > .fe-block-b5b3d9464364f6dafbf3 { grid-area: 2 / 2 / 3 / 10; }
  .fe-68caf11a1171fc1595ae3f6d > .fe-block-9a0950a5c181535d7cad { grid-area: 3 / 2 / 4 / 10; }
  .fe-68caf11a1171fc1595ae3f6d > .fe-block-eb207d41776862284ed8 { grid-area: 4 / 2 / 5 / 6; }
  .fe-69039871ad7f97429cb8a836 > .fe-block-6a29c5f683e3464cd236 { grid-area: 1 / 2 / 2 / 10; }
  .fe-69039871ad7f97429cb8a836 > .fe-block-32bd642f1e7e21c58931 { grid-area: 2 / 2 / 3 / 10; }
  .fe-69039871ad7f97429cb8a836 > .fe-block-23716024bbbabec568d1 { grid-area: 3 / 2 / 4 / 10; }
  .fe-69039871ad7f97429cb8a836 > .fe-block-ca21642d1612374be7a1 { grid-area: 4 / 2 / 5 / 6; }
  .fe-69038752c080d354a3f5db93 > .fe-block-16cf79a208995fb5541e { grid-area: 1 / 2 / 2 / 10; }
  .fe-69038752c080d354a3f5db93 > .fe-block-8d6af608e1066d4c771a { grid-area: 2 / 2 / 3 / 10; }
  .fe-69038752c080d354a3f5db93 > .fe-block-4da32ecd878002fb0eeb { grid-area: 3 / 2 / 4 / 10; }
  .fe-69038752c080d354a3f5db93 > .fe-block-173008c73d86364974fb { grid-area: 4 / 2 / 5 / 6; }
  .fe-690264e8151f17055aa1aa60 > .fe-block-61371bbf5c3fba93a366 { grid-area: 1 / 1 / 2 / 11; }
  .fe-690264e8151f17055aa1aa60 > .fe-block-b4e7078240a95cc3710b { grid-area: 2 / 2 / 3 / 10; }
  .fe-690264e8151f17055aa1aa60 > .fe-block-881d591e252cb379d075 { grid-area: 3 / 2 / 4 / 10; }
  .fe-690264e8151f17055aa1aa60 > .fe-block-7077db898b94c7928a83 { grid-area: 4 / 2 / 5 / 6; }
  .fe-68cb3d8b8326354b92084c86 > .fe-block-9310a1ed67bd9fa296b9 { grid-area: 1 / 2 / 2 / 10; }
  .fe-68cb3d8b8326354b92084c86 > .fe-block-98fc349b715ea18b687f { grid-area: 2 / 2 / 3 / 10; }
  .fe-68cb3d8b8326354b92084c86 > .fe-block-e4898265d1f285b70585 { grid-area: 3 / 2 / 4 / 10; }
  .fe-68cb3d8b8326354b92084c86 > .fe-block-255546f471889a3f9d31 { grid-area: 4 / 2 / 5 / 6; }
}
/* Pool page, tablet (768-1271): Thursday dealer badge was 217px wide and ran under the heading; cap it so it sits beside the text. */
@media screen and (min-width: 768px) and (max-width: 1271px) {
  .fe-6838d21125659f368d7ff0d0 > .fe-block-3ecb9c37b0363ca56c9b { justify-self: start; width: min(160px, 100%); aspect-ratio: 1 / 1; height: auto; align-self: center; }
}
/* /services cards: groups are 5 / 5 / 3 / 3, so 5 across on desktop (no single orphan card), 3 on tablet, 2 on phone; a leftover card is centred. */
.rc-svc-grid { display: flex !important; flex-wrap: wrap; justify-content: flex-start; gap: 18px; }
.rc-svc-grid > .rc-svc-card { flex: 0 0 calc((100% - 4 * 18px) / 5); }
@media (max-width: 1100px) { .rc-svc-grid { justify-content: center; } .rc-svc-grid > .rc-svc-card { flex-basis: calc((100% - 2 * 18px) / 3); } }
@media (max-width: 767px) { .rc-svc-grid { gap: 12px; } .rc-svc-grid > .rc-svc-card { flex-basis: calc((100% - 12px) / 2); } }

/* Services dropdowns (home + service-area pages): lists grew from 4/3/2 to 5/4/6 items. Pin each list to the
   top of the same rows (29-36) so the button sits a normal gap under the longest list. */
@media screen and (min-width: 1272px) {
  .fluid-engine.fe-697bdf4a0bc22f69aab164bb > .fe-block:has(> .sqs-block-accordion),
  .fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block:has(> .sqs-block-accordion),
  .fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block:has(> .sqs-block-accordion),
  .fluid-engine.fe-697be1755a96b6525262db6c > .fe-block:has(> .sqs-block-accordion),
  .fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block:has(> .sqs-block-accordion),
  .fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block:has(> .sqs-block-accordion),
  .fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block:has(> .sqs-block-accordion) { grid-row: 29 / 36; align-self: start; }
  .fluid-engine.fe-697bdf4a0bc22f69aab164bb > .fe-block:last-child:has(.sqs-block-button),
  .fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block:last-child:has(.sqs-block-button),
  .fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block:last-child:has(.sqs-block-button),
  .fluid-engine.fe-697be1755a96b6525262db6c > .fe-block:last-child:has(.sqs-block-button),
  .fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block:last-child:has(.sqs-block-button),
  .fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block:last-child:has(.sqs-block-button),
  .fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block:last-child:has(.sqs-block-button) { margin-top: 72px; }
}

/* Premium "Other Services" mega menu (Jakob 2026-10-27): grouped links on the left, a photo preview of the
   hovered service on the right (public/scripts/rc-mega.js). Desktop only; the phone menu keeps its grouped list. */
@media screen and (min-width: 1024px) {
  .header-nav .header-nav-folder-content.rc-mega { width: min(1120px, calc(100vw - 64px)); max-width: none; padding: 0; background: #0b0b0b; border-radius: 0 0 14px 14px; border-top: 3px solid hsla(var(--accent-hsl),1); box-shadow: 0 24px 60px rgba(0,0,0,.45); overflow: hidden; }
  .header-nav .header-nav-item--folder:hover .header-nav-folder-content.rc-mega,
  .header-nav .header-nav-item--folder:focus-within .header-nav-folder-content.rc-mega,
  .header-nav .header-nav-item--folder [aria-expanded='true'] + .header-nav-folder-content.rc-mega { display: grid; grid-template-columns: 1fr 360px; gap: 0; animation: rcMegaIn .22s ease-out; }
  @keyframes rcMegaIn { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
  .rc-mega .rc-mega-links { display: grid; grid-template-columns: 1.1fr 1.2fr 1.05fr 1fr; gap: 0 26px; padding: 30px 32px 26px; grid-template-rows: auto 1fr; }
  .rc-mega .rc-nav-col { display: flex; flex-direction: column; }
  .rc-mega .rc-nav-group span { margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.12); font-size: .7rem; letter-spacing: .14em; opacity: 1; color: hsla(var(--accent-hsl),1); }
  .rc-mega .header-nav-folder-item { padding: 0 !important; margin: 0 !important; }
  .rc-mega .rc-nav-col a { display: block; position: relative; padding: 7px 0 7px 0 !important; font-size: .95rem; line-height: 1.3; color: rgba(255,255,255,.82) !important; white-space: normal; transition: color .18s, padding-left .18s; }
  .rc-mega .rc-nav-col a::before { content: ''; position: absolute; left: 0; top: 50%; width: 0; height: 2px; background: hsla(var(--accent-hsl),1); transition: width .18s; }
  .rc-mega .rc-nav-col a.rc-on, .rc-mega .rc-nav-col a:hover, .rc-mega .rc-nav-col a:focus-visible { color: #fff !important; padding-left: 16px !important; }
  .rc-mega .rc-nav-col a.rc-on::before, .rc-mega .rc-nav-col a:hover::before, .rc-mega .rc-nav-col a:focus-visible::before { width: 10px; }
  .header-nav .rc-mega a.rc-mega-all { grid-column: 1 / -1; justify-self: start; align-self: end; margin: 22px 0 0 !important; padding: 16px 0 0 !important; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: hsla(var(--accent-hsl),1) !important; border-top: 1px solid rgba(255,255,255,.12); width: 100%; }
  .rc-mega .rc-mega-all:hover span { margin-left: 6px; }
  .rc-mega .rc-mega-all span, .rc-mega .rc-mega-cta span { display: inline-block; transition: margin .18s; }
  .header-nav .rc-mega a.rc-mega-preview { display: flex; flex-direction: column; align-items: flex-start; text-align: left; background: #161616 !important; padding: 22px 22px 24px !important; margin: 0 !important; border-left: 1px solid rgba(255,255,255,.08); color: #fff !important; text-decoration: none !important; }
  .rc-mega .rc-mega-photo { position: relative; display: block; width: 100%; align-self: stretch; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: #222; }
  .rc-mega .rc-mega-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .35s ease, transform 1.2s ease; }
  .rc-mega .rc-mega-photo img.rc-show { opacity: 1; transform: scale(1); }
  .rc-mega .rc-mega-name { margin-top: 14px; font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 600; font-size: 1.2rem; color: hsla(var(--accent-hsl),1); }
  .rc-mega .rc-mega-preview > span { white-space: normal; max-width: 100%; }
  .rc-mega .rc-mega-desc { margin-top: 4px; font-size: .88rem; line-height: 1.45; color: rgba(255,255,255,.75); min-height: 2.6em; }
  .rc-mega .rc-mega-cta { margin-top: 10px; font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
  .rc-mega .rc-mega-preview:hover .rc-mega-cta span { margin-left: 6px; }
}
@media screen and (min-width: 1024px) and (max-width: 1239px) {
  .header-nav .header-nav-item--folder:hover .header-nav-folder-content.rc-mega,
  .header-nav .header-nav-item--folder:focus-within .header-nav-folder-content.rc-mega,
  .header-nav .header-nav-item--folder [aria-expanded='true'] + .header-nav-folder-content.rc-mega { grid-template-columns: 1fr 280px; }
  .rc-mega .rc-mega-links { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 18px; }
}
@media screen and (max-width: 1023px) { .rc-mega .rc-mega-preview { display: none; } }
@media (prefers-reduced-motion: reduce) { .rc-mega, .rc-mega * { animation: none !important; transition: none !important; } }

/* Homepage services section (Jakob 2026-10-27): the accordion dropdowns were replaced with the /services cards
   and a featured Pools highlight. One html block sits between the heading (rows 1-3) and the last button. */
.fluid-engine.fe-680d30ddca94aa26c4a71186 { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-680d30ddca94aa26c4a71186 > .fe-block-yui_3_17_2_1_1745693441578_4682 { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-680d30ddca94aa26c4a71186 > .fe-block-rchomesvc0a1b2c3d4e5 { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-680d30ddca94aa26c4a71186 > .fe-block-yui_3_17_2_1_1745699086886_2030 { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-680d30ddca94aa26c4a71186 > .fe-block-yui_3_17_2_1_1745693441578_4682 { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-680d30ddca94aa26c4a71186 > .fe-block-rchomesvc0a1b2c3d4e5 { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-680d30ddca94aa26c4a71186 > .fe-block-yui_3_17_2_1_1745699086886_2030 { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}
.rc-svc--home .rc-svc-feature { display: grid; grid-template-columns: 1.15fr 1fr; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 6px 28px rgba(0,0,0,.28); margin-bottom: 8px; }
.rc-svc--home .rc-svc-feature-img { display: block; overflow: hidden; min-height: 100%; }
.rc-svc--home .rc-svc-feature-img img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.rc-svc--home .rc-svc-feature:hover .rc-svc-feature-img img { transform: scale(1.04); }
.rc-svc--home .rc-svc-feature-body { padding: 36px 40px 34px; color: #222; }
.rc-svc--home .rc-svc-eyebrow { margin: 0 0 .5em !important; font-size: .78rem !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: hsla(var(--accent-hsl),1) !important; }
.rc-svc--home .rc-svc-feature-title { margin: 0 0 .55em !important; font-size: 1.7rem !important; line-height: 1.2; color: #111 !important; }
.rc-svc--home .rc-svc-feature-title span { color: hsla(var(--accent-hsl),1); }
.rc-svc--home .rc-svc-feature ul { margin: 0 0 1.4em; padding-left: 1.2em; }
.rc-svc--home .rc-svc-feature li { color: #333; margin: .2em 0; }
.rc-svc--home .rc-svc-feature li p { margin: 0 !important; color: #333 !important; font-size: 1rem; line-height: 1.5; }
.rc-svc--home .rc-svc-feature-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.rc-svc--home .rc-svc-feature-btns a { text-decoration: none !important; }
.rc-svc--home .rc-btn-ghost { background: transparent !important; color: hsla(var(--accent-hsl),1) !important; border: 2px solid hsla(var(--accent-hsl),1) !important; }
.rc-svc--home .rc-svc-group { color: #fff !important; }
@media (max-width: 900px) { .rc-svc--home .rc-svc-feature { grid-template-columns: 1fr; } .rc-svc--home .rc-svc-feature-img img { min-height: 0; aspect-ratio: 16/10; } }
@media (max-width: 767px) {
  .rc-svc--home .rc-svc-feature-body { padding: 22px 20px 24px; }
  .rc-svc--home .rc-svc-feature-title { font-size: 1.35rem !important; }
  .rc-svc--home .rc-svc-feature-btns a { flex: 1 1 auto; text-align: center; }
}

/* Site-wide motion (Jakob 2026-10-27): subtle and premium. Entrance fade-up via public/scripts/rc-motion.js
   (only elements below the first screen; .rc-in is never added without JS). Interaction polish on buttons,
   cards, images and links. All of it is switched off for visitors who ask for reduced motion. */
.rc-in { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.rc-in.rc-in--on { opacity: 1; transform: none; }
.sqs-block-button-element, .header-actions .btn, a.btn { transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s, background-color .25s, color .25s, opacity .25s !important; }
.sqs-block-button-element:hover, .header-actions .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); opacity: 1 !important; }
.sqs-block-button-element:active, .header-actions .btn:active { transform: translateY(0); box-shadow: 0 3px 8px rgba(0,0,0,.15); }
.rc-svc-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s !important; }
.rc-svc-card:hover { transform: translateY(-5px) !important; box-shadow: 0 14px 32px rgba(0,0,0,.20) !important; }
.rc-svc-card img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.rc-svc-card { isolation: isolate; }
.rc-svc-card:hover img { transform: scale(1.05); }
.rc-svc-card .rc-svc-name { transition: color .25s; }
.sqs-html-content a:not(.sqs-block-button-element) { transition: color .2s, text-decoration-color .2s, opacity .2s; }
.header-nav-item > a, .header-nav-folder-item a { transition: opacity .2s, color .2s; }
.sqs-block-accordion .accordion-item__click-target { transition: opacity .2s; }
.sqs-block-accordion .accordion-item__click-target:hover { opacity: .8; }
@media (prefers-reduced-motion: reduce) {
  .rc-in { opacity: 1 !important; transform: none !important; transition: none !important; }
  .sqs-block-button-element, .rc-svc-card, .rc-svc-card img, .rc-svc--home .rc-svc-feature-img img { transition: none !important; }
  .sqs-block-button-element:hover, .rc-svc-card:hover, .rc-svc-card:hover img, .rc-svc--home .rc-svc-feature:hover .rc-svc-feature-img img { transform: none !important; }
}

/* Services menu: featured Pools tile first (Jakob 2026-10-27). Desktop: a photo tile column left of the grouped links
   (rc-mega.js). Phone: a "Featured" Pools row at the top of the Services folder. */
.header-nav-folder-content .rc-nav-feature { display: none; }
@media screen and (min-width: 1024px) {
  .header-nav .header-nav-folder-content.rc-mega.rc-mega--feat { width: min(1240px, calc(100vw - 48px)); }
  .header-nav .header-nav-item--folder:hover .header-nav-folder-content.rc-mega--feat,
  .header-nav .header-nav-item--folder:focus-within .header-nav-folder-content.rc-mega--feat,
  .header-nav .header-nav-item--folder [aria-expanded='true'] + .header-nav-folder-content.rc-mega--feat { grid-template-columns: 250px 1fr 300px; }
  .rc-mega--feat > .rc-nav-feature { display: flex; order: -1; padding: 22px 0 24px 22px; }
  .rc-mega--feat > .rc-nav-feature { flex-direction: column; padding: 30px 0 26px 26px; }
  .rc-mega--feat > .rc-nav-feature .header-nav-folder-item:not(.rc-nav-group) { flex: 1; }
  .rc-mega--feat a.rc-feature-link::before { display: none !important; }
  .rc-mega--feat > .rc-nav-feature .header-nav-folder-item { display: flex; width: 100%; padding: 0 !important; margin: 0 !important; }
  .header-nav .rc-mega--feat a.rc-feature-link { position: relative; display: flex !important; flex-direction: column; justify-content: flex-end; width: 100%; min-height: 300px; padding: 20px !important; margin: 0 !important; border-radius: 12px; overflow: hidden; color: #fff !important; text-decoration: none !important; white-space: normal; text-align: left; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
  .rc-mega--feat .rc-feat-photo { position: absolute; inset: 0; background: #1b2a10; }
  .rc-mega--feat .rc-feat-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.2s ease; }
  .rc-mega--feat .rc-feat-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.82) 100%); }
  .rc-mega--feat a.rc-feature-link:hover .rc-feat-photo img, .rc-mega--feat a.rc-feature-link:focus-visible .rc-feat-photo img { transform: scale(1.07); }
  .rc-mega--feat .rc-feature-link > span:not(.rc-feat-photo) { position: relative; z-index: 1; display: block; width: 100%; text-align: left !important; }
  .rc-mega--feat .rc-feat-kicker { align-self: flex-start; padding: 4px 9px; border-radius: 999px; background: hsla(var(--accent-hsl),1); color: #111; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
  .rc-mega--feat .rc-feat-name { margin-top: 10px; font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 700; font-size: 1.35rem; line-height: 1.15; }
  .rc-mega--feat .rc-feat-desc { margin-top: 6px; font-size: .85rem; line-height: 1.45; color: rgba(255,255,255,.85); }
  .rc-mega--feat .rc-feat-cta { margin-top: 12px; font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: hsla(var(--accent-hsl),1); }
  .rc-mega--feat .rc-feat-cta span { display: inline-block; transition: margin .18s; }
  .rc-mega--feat a.rc-feature-link:hover .rc-feat-cta span { margin-left: 6px; }
}
@media screen and (min-width: 1024px) and (max-width: 1239px) {
  .header-nav .header-nav-item--folder:hover .header-nav-folder-content.rc-mega--feat,
  .header-nav .header-nav-item--folder:focus-within .header-nav-folder-content.rc-mega--feat,
  .header-nav .header-nav-item--folder [aria-expanded='true'] + .header-nav-folder-content.rc-mega--feat { grid-template-columns: 210px 1fr 240px; }
}
.header-menu-nav-item.rc-nav-feature-m a { display: block; padding: .55em .8em !important; margin: .2em 0 .4em; border-left: 3px solid hsla(var(--accent-hsl),1); background: rgba(255,255,255,.06); border-radius: 0 8px 8px 0; font-weight: 600; }
.header-menu-nav-item.rc-nav-feature-m a em { display: block; font-style: normal; font-weight: 400; font-size: .72em; opacity: .75; margin-top: .15em; }

/* Two-photo collages where the second photo sat on top of the bullet list (Jakob 2026-10-27 item 4).
   Text keeps columns 2-16; both photos stack in the right column with a gap, so nothing covers the copy. */
@media (min-width: 768px) {
  .fe-block-6e245dad9d6b17d6dd68 { grid-area: 5/2/14/16 !important; }
  .fe-block-a79617654754034623e4 { grid-area: 1/17/8/26 !important; }
  .fe-block-8531ea01e15d8f723e3e { grid-area: 8/17/16/26 !important; z-index: 4 !important; }
  .fe-block-0f075fd1b6382b7ea407 { grid-area: 5/2/17/16 !important; }
  .fe-block-d7b82cdccadf816f7e7b { grid-area: 1/17/10/26 !important; }
  .fe-block-82cb36359c783d4ecc73 { grid-area: 10/17/19/26 !important; }
}

/* City pages: homepage service card grid instead of dropdowns (Jakob 2026-10-27). Mirrors the homepage rules. */
.fluid-engine.fe-697be2b6f14d6e15edca0b8c { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block-1cea379850cc238b327c { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block-rcsvcelkhartinpaverp { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block-62697c56acc482b99f7a { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block-1cea379850cc238b327c { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block-rcsvcelkhartinpaverp { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-697be2b6f14d6e15edca0b8c > .fe-block-62697c56acc482b99f7a { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}
.fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block-e68e161129d428c7eae9 { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block-rcsvcgeorgetowninpoo { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block-4c243f31a81637cf4a09 { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block-e68e161129d428c7eae9 { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block-rcsvcgeorgetowninpoo { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-697bfe19f2c2f06ea9f0b0ca > .fe-block-4c243f31a81637cf4a09 { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}
.fluid-engine.fe-697be1755a96b6525262db6c { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-697be1755a96b6525262db6c > .fe-block-ba919621c419133a35f9 { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-697be1755a96b6525262db6c > .fe-block-rcsvcgrangerin3ddesi { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-697be1755a96b6525262db6c > .fe-block-720fc16d7b1398d2355b { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-697be1755a96b6525262db6c > .fe-block-ba919621c419133a35f9 { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-697be1755a96b6525262db6c > .fe-block-rcsvcgrangerin3ddesi { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-697be1755a96b6525262db6c > .fe-block-720fc16d7b1398d2355b { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}
.fluid-engine.fe-697be32e9fedcf1075e823b4 { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block-00e2dd8aa5488eb4b888 { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block-rcsvcnotredameinarti { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block-ffc6368581b9bb8ab988 { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block-00e2dd8aa5488eb4b888 { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block-rcsvcnotredameinarti { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-697be32e9fedcf1075e823b4 > .fe-block-ffc6368581b9bb8ab988 { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}
.fluid-engine.fe-697be3ce72fdd5649022860f { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block-fa0857fc2a0372c30275 { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block-rcsvcroselandinlands { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block-ac783a09b9704bada8af { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block-fa0857fc2a0372c30275 { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block-rcsvcroselandinlands { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-697be3ce72fdd5649022860f > .fe-block-ac783a09b9704bada8af { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}
.fluid-engine.fe-697be253e12ec52e77f511d3 { grid-template-rows: auto auto auto auto auto !important; }
.fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block-a44c69ae49df0bc6d004 { grid-area: 1/2/2/10 !important; }
.fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block-rcsvcsouthbendinpool { grid-area: 2/2/3/10 !important; margin-top: 18px; }
.fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block-b4d2f0fcf3ec341c9b17 { grid-area: 3/2/4/10 !important; margin: 34px 0 6px; }
@media (min-width: 768px) {
  .fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block-a44c69ae49df0bc6d004 { grid-area: 1/6/2/22 !important; }
  .fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block-rcsvcsouthbendinpool { grid-area: 2/2/3/26 !important; margin-top: 26px; }
  .fluid-engine.fe-697be253e12ec52e77f511d3 > .fe-block-b4d2f0fcf3ec341c9b17 { grid-area: 3/10/4/18 !important; margin: 44px 0 6px; }
}

/* Contact "What Happens Next": four equal cards on white, sized from their text (Jakob 2026-10-28: cards too long, styled weird). */
.rc-steps-sec { background: #fff; padding: 90px 4vw; }
.rc-steps-wrap { max-width: 1500px; margin: 0 auto; }
.rc-steps-h { text-align: center; color: #000 !important; margin: 0 0 48px !important; }
.rc-accent { color: hsla(var(--accent-hsl),1) !important; }
.rc-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; align-items: stretch; }
.rc-step { background: #f6f6f3; border-radius: 12px; padding: 30px 26px 28px; border-top: 4px solid hsla(var(--accent-hsl),1); box-shadow: 0 2px 14px rgba(0,0,0,.06); transition: transform .2s, box-shadow .2s; }
.rc-step:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.10); }
.rc-step-num { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: hsla(var(--accent-hsl),1); color: #fff; font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 700; margin-bottom: 16px; }
.rc-step-title { font-size: 1.3rem !important; margin: 0 0 10px !important; color: #000 !important; }
.rc-step p { margin: 0; font-size: 1rem; line-height: 1.6; color: #333; text-align: left; }
.rc-step p a { color: #000; text-decoration: underline; text-decoration-color: hsla(var(--accent-hsl),1); }
@media (max-width: 1023px) { .rc-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .rc-steps-sec { padding: 64px 6vw; } .rc-steps { grid-template-columns: 1fr; gap: 14px; } .rc-steps-h { margin-bottom: 30px !important; } }

/* Footer revamp (Jakob 2026-10-28): CTA band, brand + services + areas + contact columns, bottom bar. */
.rc-footer { background: #0f0f0f; color: #d6d6d6; padding: 0 4vw; font-size: .98rem; }
.rc-footer a { color: #d6d6d6; text-decoration: none; transition: color .15s; }
.rc-footer a:hover { color: hsla(var(--accent-hsl),1); }
.rc-footer-cta { max-width: 1500px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 54px 0 46px; border-bottom: 1px solid rgba(255,255,255,.12); flex-wrap: wrap; }
.rc-footer-cta-text { margin: 0; font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 700; font-size: clamp(1.4rem, 2.4vw, 2.1rem); line-height: 1.2; color: #fff; }
.rc-footer-cta-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.rc-fbtn { display: inline-block; padding: 15px 28px; border-radius: 6px; font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; font-size: .9rem; }
.rc-footer a.rc-fbtn--solid { background: hsla(var(--accent-hsl),1); color: #fff; }
.rc-footer a.rc-fbtn--solid:hover { color: #fff; filter: brightness(1.08); }
.rc-footer a.rc-fbtn--line { border: 2px solid rgba(255,255,255,.7); color: #fff; }
.rc-footer a.rc-fbtn--line:hover { border-color: hsla(var(--accent-hsl),1); color: hsla(var(--accent-hsl),1); }
.rc-footer-grid { max-width: 1500px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 40px; padding: 54px 0 46px; }
.rc-footer-logo img { width: 190px; height: auto; display: block; margin-bottom: 18px; }
.rc-footer-brand p { margin: 0 0 20px; line-height: 1.6; max-width: 340px; color: #bdbdbd; }
.rc-footer-social { display: flex; gap: 12px; }
.rc-footer-social a { display: inline-flex; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); align-items: center; justify-content: center; }
.rc-footer-social svg { width: 19px; height: 19px; fill: currentColor; }
.rc-footer-social a:hover { border-color: hsla(var(--accent-hsl),1); }
.rc-footer-col h4, .rc-footer-col .rc-foot-title { margin: 0 0 16px !important; font-size: 1.05rem !important; font-weight: 700 !important; line-height: 1.3 !important; color: #fff !important; letter-spacing: .02em; }
.rc-footer-col ul { list-style: none; margin: 0; padding: 0; }
.rc-footer-col li { margin: 0 0 10px; padding: 0; line-height: 1.45; }
.rc-footer-col li::before { display: none !important; }
.rc-footer-hours { color: #bdbdbd; }
.rc-footer-bar { max-width: 1500px; margin: 0 auto; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 20px 0 26px; border-top: 1px solid rgba(255,255,255,.12); font-size: .85rem; color: #9a9a9a; }
@media (max-width: 1023px) { .rc-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
  .rc-footer { padding: 0 6vw; }
  .rc-footer-cta { padding: 44px 0 36px; }
  .rc-footer-cta-btns, .rc-fbtn { width: 100%; text-align: center; }
  .rc-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; padding: 40px 0 34px; }
  .rc-footer-brand { grid-column: 1 / -1; }
  .rc-footer-contact { grid-column: 1 / -1; }
  .rc-footer-bar { flex-direction: column; }
}

/* About reviews (static Google review excerpts; Trustindex widget does not render). */
.rc-revs-sec { background: #000; padding: 90px 4vw; color: #fff; }
.rc-revs-wrap { max-width: 1500px; margin: 0 auto; }
.rc-revs-h { text-align: center; color: #fff !important; margin: 0 0 12px !important; }
.rc-revs-sub { text-align: center; margin: 0 0 44px; display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; color: #ddd; }
.rc-revs-sub svg { width: 18px; height: 18px; fill: #f5b400; }
.rc-revs-sub .rc-revs-score { font-family: var(--heading-font-font-family, Poppins, sans-serif); font-weight: 700; font-size: 1.3rem; color: #fff; }
.rc-revs-sub a { color: #fff; text-decoration: underline; text-decoration-color: hsla(var(--accent-hsl),1); text-underline-offset: 3px; }
.rc-revs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.rc-rev { margin: 0; background: #fff; color: #222; border-radius: 12px; padding: 28px 26px 24px; display: flex; flex-direction: column; box-shadow: 0 4px 18px rgba(0,0,0,.25); transition: transform .2s; }
.rc-rev:hover { transform: translateY(-3px); }
.rc-rev-stars svg { width: 17px; height: 17px; fill: #f5b400; margin-right: 2px; }
.rc-rev blockquote { margin: 14px 0 18px; padding: 0; border: 0; font-size: 1rem; line-height: 1.6; color: #222; flex: 1; font-style: normal; }
.rc-rev blockquote::before, .rc-rev blockquote::after { display: none; }
.rc-rev figcaption { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid #eee; padding-top: 14px; }
.rc-rev figcaption strong { font-family: var(--heading-font-font-family, Poppins, sans-serif); color: #000; }
.rc-rev figcaption span { font-size: .85rem; color: #777; }
@media (max-width: 1023px) { .rc-revs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .rc-revs-sec { padding: 64px 6vw; } .rc-revs { grid-template-columns: 1fr; gap: 14px; } }
/* Footer buttons: center the label vertically (theme link padding pushed it up). */
.rc-footer a.rc-fbtn { display: inline-flex; align-items: center; justify-content: center; height: 54px; padding: 0 28px; line-height: 1; box-sizing: border-box; }
/* About "Meet Richard" on phones: plain stack (photo, heading, bio, button) instead of fixed grid rows that left a gap under the heading. */
@media (max-width: 767px) {
  #sections [data-section-id="6902d240f639ea2bfb4d099e"] .fluid-engine { display: flex !important; flex-direction: column; gap: 18px; padding: 0 6vw; }
  #sections [data-section-id="6902d240f639ea2bfb4d099e"] .fe-block { grid-area: auto !important; height: auto !important; }
  #sections [data-section-id="6902d240f639ea2bfb4d099e"] .fe-block-d4d1d38566d4bdc8cf1e { aspect-ratio: 4/5; }
}

/* Phones: no sideways scroll. Instagram's embed sets min-width 326px (wider than a 320px phone) and the home gallery strip runs 1px wide. */
@media (max-width: 767px) {
  html, body { overflow-x: clip; max-width: 100%; }
  iframe.instagram-media { min-width: 0 !important; width: 100% !important; }
  .gallery-strips, .gallery-strips-wrapper { max-width: 100%; overflow-x: clip; }
}

/* Phone polish (round 3): buttons keep their label on one line, city names never split, step-card copy reads evenly. */
@media (max-width: 767px) {
  .sqs-block-button-element, .rc-btn-ghost { white-space: nowrap !important; min-width: max-content; padding-left: 1.6em !important; padding-right: 1.6em !important; }
  .sqs-block-button .sqs-block-button-container { text-align: center !important; }
  .fe-block .sqs-block-content a[href*="/service-areas/"] { white-space: nowrap; }
  .fluid-engine .sqs-html-content p { text-align: inherit; }
}

/* Home, phones: 40px under "Learn More About Pools" so it doesn't sit flush on the photo below (Jakob 2026-10-28). */
@media (max-width: 767px) {
  .fe-block-fb4ff679c690c6d1e251 { padding-bottom: 40px !important; box-sizing: content-box; }
}

/* Tablet: the home gallery strip ran 1px past the screen edge (sideways scroll at 820px). */
@media (min-width: 768px) and (max-width: 1271px) {
  html, body { overflow-x: clip; max-width: 100%; }
  .gallery-strips, .gallery-strips-wrapper { max-width: 100%; overflow-x: clip; }
}

/* Tablet /service-areas services block: rows size to content (big gap above column titles; quote button tight on the lists). */
@media (min-width: 768px) and (max-width: 1271px) {
  .fe-697bdf4a0bc22f69aab164bb { grid-template-rows: none !important; grid-auto-rows: auto !important; row-gap: 0 !important; }
  .fe-697bdf4a0bc22f69aab164bb > .fe-block { align-self: start; }
  .fe-697bdf4a0bc22f69aab164bb > .fe-block-7818b9, .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-7818b9"] { height: 354px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-633bd7"],
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-a574d0"],
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-b7328f"] { height: 322px; margin-top: 40px; margin-bottom: 24px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-7818b9"] { margin-bottom: 32px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-4301f1"] { margin-bottom: 8px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-efaa28"] { margin-top: 8px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-d7a622"],
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-52de4e"],
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-d22a6e"] { margin-bottom: 16px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-160c30"] { margin-top: 40px; }
  .fe-697bdf4a0bc22f69aab164bb > [class*="fe-block-bb87f9"] { margin-bottom: 32px; }
}

/* Tablet polish: button labels stay on one line (they wrapped to "Get / Started"), like phones. */
@media (min-width: 768px) and (max-width: 1271px) {
  .sqs-block-button-element, .rc-btn-ghost { white-space: nowrap !important; min-width: max-content; padding-left: 1.6em !important; padding-right: 1.6em !important; }
}

/* Tablet: plain (no background photo) sections no longer stretch to 66% of the screen height. On a tall tablet
   screen that left 200px+ of blank space above and below short sections such as the FAQ. */
@media (min-width: 768px) and (max-width: 1271px) {
  .page-section.section-height--medium:not(:has(> .section-background img)):not(:has(> .section-background video)) { min-height: 0 !important; }
}
