/* CyFair Window Cleaning: Divi 5 site layer.
 * Brand palette from the client's logo (hippo lavender) and current site (sky/steel blue).
 * Sections carry .cwc plus a section class; modules are styled through those classes. */

@font-face { font-family: "Cabinet Grotesk"; src: url("fonts/cabinet-grotesk-800.woff2") format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "Cabinet Grotesk"; src: url("fonts/cabinet-grotesk-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Inter Tight"; src: url("fonts/inter-tight.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("fonts/jetbrains-mono-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }

:root {
  --glass: #f4f7fa; --glass-2: #e9f0f6; --sky: #c6d9ea; --steel: #6895ba;
  --ink: #152030; --ink-2: #3d4b5e; --hippo: #ddccff; --hippo-ink: #5e4b9c;
  --mullion: 2px;
  --display: "Cabinet Grotesk", "Inter Tight", system-ui, sans-serif;
  --body: "Inter Tight", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --gutter: clamp(16px, 4vw, 56px);
  --wrap: min(1320px, calc(100% - 2 * var(--gutter)));
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html { scroll-behavior: smooth; scroll-padding-top: 100px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body, body #page-container, body .et_pb_text, body .et_pb_text_inner {
  font-family: var(--body); color: var(--ink); font-size: 17px; line-height: 1.6;
}
body { background: var(--glass); -webkit-font-smoothing: antialiased; }
body #page-container { background: var(--glass); }
body .cwc h1, body .cwc h2, body .cwc h3, body .cwc h4,
body .cwc .et_pb_module_header {
  font-family: var(--display); color: var(--ink); letter-spacing: -0.02em; padding-bottom: 0; margin: 0; line-height: 1;
}
body .cwc p { padding-bottom: 0; }
body .cwc p + p { margin-top: 1em; }
body .cwc a { color: inherit; }
:focus-visible { outline: 3px solid var(--hippo-ink); outline-offset: 3px; }

/* layout reset for every cwc section */
.et_pb_section.cwc { padding: 0; background-color: transparent; }
.cwc > .et_pb_row, .cwc .et_pb_row {
  width: var(--wrap); max-width: none; margin-left: auto; margin-right: auto; padding: 0;
}
.cwc .et_pb_module { margin-bottom: 0; }
.cwc .et_pb_column { margin-bottom: 0; }

/* shared type scale */
.cwc .cwc-h2 h2, .cwc h2.cwc-h2, .cwc .cwc-h2 .et_pb_module_header { font-weight: 800; font-size: clamp(2.3rem, 4.8vw, 4.4rem); line-height: 0.98; max-width: 18ch; }
.cwc .cwc-lead, .cwc .cwc-lead p { font-size: clamp(1.05rem, 1.3vw, 1.2rem); color: var(--ink-2); max-width: 60ch; }
.cwc .cwc-body p, .cwc .cwc-body li { color: var(--ink-2); max-width: 64ch; }
.cwc .cwc-body h3 { font-weight: 800; font-size: clamp(1.4rem, 2vw, 1.8rem); margin: 1.4em 0 0.4em; }
.cwc .cwc-body ul { padding-left: 1.1em; margin-top: 0.6em; }
.cwc .cwc-body li { margin: 0.35em 0; }

/* buttons: Divi button module restyled per garment */
.cwc .et_pb_button, .cwc .et_pb_button:hover {
  font-family: var(--display); font-weight: 800; letter-spacing: -0.01em; border-radius: 0; padding: 0.55em 0;
  border: 0; background: none; color: var(--ink); font-size: 1.35rem; line-height: 1.2;
}
.cwc .et_pb_button::after, .cwc .et_pb_button::before { display: none !important; }
.cwc-cta-blade .et_pb_button, .et_pb_button.cwc-cta-blade, .cwc-cta-blade.et_pb_button:hover, .cwc-cta-blade .et_pb_button:hover { position: relative; color: #fff !important; }
.cwc-cta-blade .et_pb_button, .et_pb_button.cwc-cta-blade { background-image: linear-gradient(var(--hippo), var(--hippo)), linear-gradient(rgba(255,255,255,0.4), rgba(255,255,255,0.4)) !important;
  background-size: 28% 3px, 100% 3px !important; background-position: 0 100%, 0 100% !important; background-repeat: no-repeat !important;
  transition: background-size 0.55s var(--ease); padding-bottom: 12px !important; }
.cwc-cta-blade .et_pb_button:hover, .et_pb_button.cwc-cta-blade:hover { background-size: 100% 3px, 100% 3px !important; padding: 0.55em 0 12px !important; }
.cwc-cta-pane .et_pb_button, .cwc-cta-pane .et_pb_button:hover {
  display: inline-block; padding: 16px 24px !important; font-size: 1.1rem; background: var(--hippo) !important; color: var(--ink) !important;
  border: var(--mullion) solid var(--ink) !important; transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.cwc-cta-pane .et_pb_button:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--ink); }
.cwc-cta-pane .et_pb_button:active { transform: none; box-shadow: none; }

/* ---------------- header (Theme Builder) ---------------- */
.et-l--header { position: sticky; top: 0; z-index: 99; }
.cwc-header.et_pb_section {
  background: color-mix(in srgb, var(--glass) 86%, transparent) !important;
  backdrop-filter: blur(14px) saturate(1.3);
  border-bottom: var(--mullion) solid color-mix(in srgb, var(--steel) 35%, transparent);
}
.cwc-header .et_pb_row { display: flex; align-items: center; gap: 28px; min-height: 96px; flex-wrap: nowrap; }
.cwc-header .et_pb_column { width: auto !important; margin: 0 !important; flex: 0 0 auto; }
.cwc-header .et_pb_column:nth-child(2) { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.cwc-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.cwc-brand img { width: 72px; height: 72px; object-fit: contain; transform-origin: 50% 85%; animation: hippo-wiggle 1.1s 0.5s var(--ease) both; }
.cwc-brand:hover img { animation: hippo-spin 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.cwc-brand span { font-family: var(--display); font-weight: 800; font-size: 34px; line-height: 0.9; letter-spacing: -0.02em; color: var(--ink); }
.cwc-brand small { display: block; font-family: var(--body); font-weight: 600; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--steel); margin-top: 5px; }
@keyframes hippo-wiggle { 0% { transform: rotate(0) scale(1); } 20% { transform: rotate(-14deg) scale(1.08); } 40% { transform: rotate(11deg) scale(1.08); } 60% { transform: rotate(-7deg) scale(1.04); } 80% { transform: rotate(3deg); } 100% { transform: rotate(0) scale(1); } }
@keyframes hippo-spin { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(200deg) scale(1.15); } 100% { transform: rotate(360deg) scale(1); } }

.cwc-header .et_pb_menu, .cwc-header .et_pb_menu__wrap { background: transparent !important; }
.cwc-header .et-menu > li > a { font-family: var(--body); font-weight: 500; font-size: 15.5px; color: var(--ink-2) !important; padding-bottom: 8px !important; }
.cwc-header .et-menu > li > a:hover { color: var(--ink) !important; opacity: 1; }
.cwc-header .et-menu > li { padding-left: 14px; padding-right: 14px; }
.cwc-header .et-menu .sub-menu { border-top: var(--mullion) solid var(--ink) !important; background: var(--glass) !important; box-shadow: 0 18px 40px rgba(21,32,48,0.14); width: 260px; }
.cwc-header .et-menu .sub-menu li { padding: 0 14px; }
.cwc-header .et-menu .sub-menu a { width: 100%; font-size: 15px; color: var(--ink) !important; padding: 7px 6px !important; }
.cwc-header .et-menu .sub-menu a:hover { background: var(--hippo) !important; opacity: 1; }
.cwc-header .mobile_menu_bar::before { color: var(--ink) !important; }
.cwc-header .et_mobile_menu { border-top: var(--mullion) solid var(--ink) !important; background: var(--glass) !important; }
.cwc-header .et_mobile_menu a { color: var(--ink) !important; }

.nav-phone { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; border: var(--mullion) solid var(--ink); padding: 8px 14px; background: var(--glass); white-space: nowrap; }
.nav-phone__label { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--hippo-ink); }
.nav-phone__digits { display: inline-flex; font-family: var(--mono); font-size: 15px; line-height: 1.2; color: var(--ink); }
.nav-phone__cell { display: inline-flex; flex-direction: column; height: 1.2em; overflow: hidden; }
.nav-phone__cell > span { display: block; transition: transform 0.4s var(--ease); transition-delay: inherit; }
.nav-phone:hover .nav-phone__cell > span { transform: translateY(-100%); }
.nav-phone:hover { background: var(--hippo); }

/* ---------------- home hero (glass wipe) ---------------- */
.cwc-hero.et_pb_section { position: relative; min-height: calc(100dvh - 96px); display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; padding: 120px 0 clamp(40px, 7vh, 88px) !important; cursor: crosshair; }
.cwc-hero .et_pb_row, .cwc-hero .et_pb_column { position: static; }
.cwc-hero .et_pb_code, .cwc-hero .et_pb_code_inner { position: static; }
.cwc-hero .et_pb_code.cwc-wipe-host { position: absolute; inset: 0; z-index: -1; margin: 0; }
.cwc-hero .et_pb_code.cwc-wipe-host .et_pb_code_inner { position: absolute; inset: 0; }
.hero-wipe { position: absolute; inset: 0; }
.hero-wipe img, .hero-wipe canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; max-width: none; }
.hero-wipe__dirty { clip-path: inset(0 0 0 36%); }
.hero-wipe[data-live="false"] canvas { visibility: hidden; }
.hero-wipe[data-live="true"] .hero-wipe__dirty { visibility: hidden; }
.hero-wipe__blade { position: absolute; top: 0; bottom: 0; left: 36%; width: 0; pointer-events: none; }
.hero-wipe[data-live="true"] .hero-wipe__blade { left: 0; }
.hero-wipe__blade span { position: absolute; top: 0; bottom: 0; left: -4px; width: 8px; background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.95) 45%, var(--ink) 50%, rgba(255,255,255,0.85) 56%, rgba(255,255,255,0) 100%); box-shadow: 0 0 24px rgba(255,255,255,0.6); }
.hero-wipe__scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(14,22,34,0.8) 0%, rgba(14,22,34,0.42) 34%, rgba(14,22,34,0) 60%), linear-gradient(90deg, rgba(14,22,34,0.45) 0%, rgba(14,22,34,0) 55%); }
.cwc-hero .et_pb_heading, .cwc-hero .et_pb_text, .cwc-hero .et_pb_button_module_wrapper { position: relative; pointer-events: none; }
.cwc-hero .et_pb_button_module_wrapper a { pointer-events: auto; }
.cwc-hero h1 { color: #fff !important; font-weight: 800; font-size: clamp(2.9rem, 6.6vw, 6.2rem) !important; line-height: 0.92 !important; letter-spacing: -0.035em; max-width: 13ch; text-shadow: 0 2px 30px rgba(14,22,34,0.35); }
.cwc-hero .et_pb_text, .cwc-hero .et_pb_text p { color: rgba(255,255,255,0.92) !important; font-size: clamp(1rem, 1.3vw, 1.2rem); max-width: 46ch; margin-top: 22px; }
.cwc-hero .et_pb_button_module_wrapper { margin-top: 22px; }
.hero__seal { position: absolute; right: var(--gutter); top: 40px; width: 168px; height: 168px; display: grid; place-items: center; border-radius: 50%; background: var(--hippo); box-shadow: 0 18px 50px rgba(21,32,48,0.28); }
.hero__seal svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(var(--fx-r, 0deg)); }
.hero__seal text { font-family: var(--mono); font-size: 13.5px; letter-spacing: 0.2em; fill: var(--ink); }
.hero__seal img { width: 84px; height: 84px; object-fit: contain; }
.hero__hint { position: absolute; right: var(--gutter); bottom: clamp(40px, 7vh, 88px); font-family: var(--mono); font-size: 12.5px; color: rgba(255,255,255,0.88); border: 1.5px solid rgba(255,255,255,0.5); padding: 8px 12px; background: rgba(14,22,34,0.35); }
@media (hover: none), (max-width: 860px) { .hero__hint { display: none; } }

/* ---------------- inner-page hero (photo) ---------------- */
.cwc-pagehero.et_pb_section { position: relative; overflow: hidden; isolation: isolate; padding: clamp(110px, 16vh, 180px) 0 clamp(48px, 7vw, 90px) !important; background-color: var(--ink) !important; }
.cwc-pagehero .et_pb_row, .cwc-pagehero .et_pb_column { position: static; }
.cwc-pagehero .cwc-bg { position: absolute; inset: 0; z-index: -1; margin: 0; }
.cwc-pagehero .cwc-bg .et_pb_image_wrap, .cwc-pagehero .cwc-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; max-width: none; }
.cwc-pagehero .cwc-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,22,34,0.86) 0%, rgba(14,22,34,0.5) 45%, rgba(14,22,34,0.25) 100%), linear-gradient(90deg, rgba(14,22,34,0.55), rgba(14,22,34,0) 70%); }
.cwc-pagehero h1 { color: #fff !important; font-weight: 800; font-size: clamp(2.5rem, 5.6vw, 5.2rem) !important; line-height: 0.95 !important; max-width: 16ch; }
.cwc-pagehero .et_pb_text, .cwc-pagehero .et_pb_text p { color: rgba(255,255,255,0.92) !important; max-width: 54ch; margin-top: 20px; font-size: clamp(1rem, 1.3vw, 1.2rem); }
.cwc-pagehero .cwc-crumbs, .cwc-pagehero .cwc-crumbs p, .cwc-pagehero .cwc-crumbs a { font-family: var(--mono); font-size: 13px !important; color: rgba(255,255,255,0.8) !important; margin: 0 0 18px !important; text-decoration: none; }
.cwc-pagehero .cwc-crumbs a:hover { color: var(--hippo) !important; }
.cwc-pagehero .et_pb_button_module_wrapper { margin-top: 18px; }

/* ---------------- marquee ---------------- */
.cwc-marquee.et_pb_section { background: var(--hippo) !important; border-bottom: var(--mullion) solid var(--ink); overflow: hidden; }
.cwc-marquee .et_pb_row { width: 100%; }
.marquee { overflow: hidden; padding: clamp(18px, 2.4vw, 30px) 0; }
.marquee__track { display: flex; width: max-content; animation: marquee 38s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__run { display: flex; list-style: none !important; margin: 0; padding: 0 !important; }
.marquee__run li { display: inline-flex; align-items: center; gap: clamp(20px, 2.6vw, 40px); padding-right: clamp(20px, 2.6vw, 40px); font-family: var(--display); font-weight: 800; text-transform: uppercase; white-space: nowrap; font-size: clamp(1.9rem, 4.4vw, 4rem); line-height: 1; letter-spacing: -0.02em; color: var(--ink); }
.marquee__spark { width: 0.62em; height: 0.62em; fill: var(--glass); stroke: var(--ink); stroke-width: 1.2; }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation-duration: 70s; } }

/* ---------------- section paddings ---------------- */
.cwc-pad.et_pb_section { padding: clamp(70px, 10vw, 140px) 0 !important; }
.cwc-pad-sm.et_pb_section { padding: clamp(48px, 6vw, 84px) 0 !important; }
.cwc-tint.et_pb_section { background: var(--glass-2) !important; border-top: var(--mullion) solid var(--sky); border-bottom: var(--mullion) solid var(--sky); }
.cwc-sky.et_pb_section { background: var(--sky) !important; border-top: var(--mullion) solid var(--ink); border-bottom: var(--mullion) solid var(--ink); }
.cwc .cwc-gap-top { margin-top: clamp(28px, 4vw, 52px) !important; }

/* ---------------- services bento ---------------- */
.cwc-bento .et_pb_row.cwc-grid { display: grid !important; grid-template-columns: 1.15fr 1fr; gap: var(--mullion); background: var(--ink); border: var(--mullion) solid var(--ink); margin-top: clamp(32px, 5vw, 56px); }
.cwc-bento .cwc-grid > .et_pb_column { width: auto !important; margin: 0 !important; background: var(--glass); position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 320px; }
.cwc-bento .cwc-grid > .et_pb_column.cwc-pane-photo { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto auto 1fr; }
.cwc-bento .cwc-pane-photo .cwc-pane-img { grid-column: 2; grid-row: 1 / -1; height: 100%; overflow: hidden; }
.cwc-bento .cwc-pane-photo .cwc-pane-img .et_pb_image_wrap, .cwc-bento .cwc-pane-photo .cwc-pane-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.cwc-bento .cwc-pane-photo:hover .cwc-pane-img img { transform: scale(1.05); }
.cwc-bento .cwc-pane-photo > .et_pb_module:not(.cwc-pane-img) { grid-column: 1; }
.cwc-bento .cwc-grid > .et_pb_column.cwc-pane-hippo { background: var(--hippo); }
.cwc-bento .cwc-grid > .et_pb_column.cwc-pane-sky { background: var(--sky); }
.cwc-bento .cwc-grid > .et_pb_column.cwc-pane-wide { grid-column: 1 / -1; min-height: 0; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 0 32px; background: var(--glass); }
.cwc-bento .cwc-icon { padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) 0; }
.cwc-bento .cwc-icon img { width: 56px; height: 56px; }
.cwc-bento .cwc-pane-title { padding: 14px clamp(24px, 3vw, 40px) 0; }
.cwc-bento .cwc-pane-title h3 { font-weight: 800; font-size: clamp(1.7rem, 2.5vw, 2.3rem) !important; text-transform: uppercase; letter-spacing: -0.01em; }
.cwc-bento .cwc-pane-text { padding: 12px clamp(24px, 3vw, 40px) 0; }
.cwc-bento .cwc-pane-text p { color: var(--ink-2); font-size: 16px; max-width: 36ch; }
.cwc-bento .cwc-pane-link { padding: 18px clamp(24px, 3vw, 40px) clamp(24px, 3vw, 36px); margin-top: auto !important; }
.cwc-bento .cwc-pane-link a { font-weight: 600; font-size: 14.5px; color: var(--hippo-ink) !important; text-decoration: none; }
.cwc-bento .cwc-pane-link a::after { content: " \2192"; display: inline-block; transition: transform 0.4s var(--ease); }
.cwc-bento .et_pb_column:hover .cwc-pane-link a::after { transform: translateX(4px); }
.cwc-bento .cwc-pane-hippo .cwc-pane-link a, .cwc-bento .cwc-pane-hippo p { color: var(--ink) !important; }
.cwc-bento .cwc-grid > .et_pb_column::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,0.55) 48%, rgba(255,255,255,0.15) 52%, transparent 62%); transform: translateX(-110%); transition: transform 0.9s var(--ease); }
.cwc-bento .cwc-grid > .et_pb_column:hover::after { transform: translateX(110%); }

/* ---------------- steps ---------------- */
.cwc-steps .et_pb_row.cwc-steprow { position: relative; margin-top: clamp(40px, 6vw, 72px); display: grid !important; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 64px); }
.cwc-steps .cwc-steprow > .et_pb_column { width: auto !important; margin: 0 !important; position: static; }
.cwc-steps .cwc-steprow > .et_pb_column > .et_pb_module { position: relative; z-index: 1; }
.cwc-steps .cwc-steprow::before { content: ""; position: absolute; left: 0; right: 0; top: 39px; height: 2px; background: var(--sky); }
.cwc-steps .cwc-steprow > .et_pb_column > .et_pb_module.cwc-line { position: absolute !important; z-index: 0; left: 0; right: 0; top: 38px; height: 4px; z-index: 0; }
.cwc-steps .steps__line { position: absolute; inset: 0; background: var(--hippo); transform-origin: left; transform: scaleX(var(--fx-s, 1)); }
.cwc-steps .steps__line::after { content: ""; position: absolute; right: -3px; top: -14px; width: 6px; height: 32px; background: var(--ink); }
.cwc-steps .cwc-node { width: 80px; height: 80px; display: grid !important; place-items: center; background: var(--glass); border: var(--mullion) solid var(--ink); }
.cwc-steps .cwc-node img { width: 52px; height: 52px; }
.cwc-steps h3 { margin-top: 22px !important; font-weight: 800; font-size: clamp(1.6rem, 2.4vw, 2.2rem) !important; }
.cwc-steps .et_pb_text p { margin-top: 10px; color: var(--ink-2); max-width: 34ch; }

/* ---------------- reels ---------------- */
.cwc-reels .et_pb_row { display: grid !important; grid-template-columns: minmax(260px, 0.32fr) 1fr; gap: clamp(24px, 4vw, 56px); width: auto; margin-left: var(--gutter); }
.cwc-reels .et_pb_row > .et_pb_column { width: auto !important; margin: 0 !important; min-width: 0; }
.cwc-reels .et_pb_row > .et_pb_column:first-child { position: sticky; top: 130px; align-self: start; display: flex; flex-direction: column; gap: 18px; }
.cwc-reels h2 { font-weight: 800; font-size: clamp(2.4rem, 4.4vw, 4rem) !important; line-height: 0.95 !important; }
.cwc-reels .et_pb_text p { color: var(--ink-2); max-width: 32ch; }
.ig-badge { position: relative; width: 150px; height: 150px; margin-top: 8px; display: grid; place-items: center; border-radius: 50%; background: var(--hippo); }
.ig-badge svg { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform 1.2s var(--ease); }
.ig-badge text { font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.16em; fill: var(--ink); }
.ig-badge img { width: 64px; height: 64px; object-fit: contain; }
.ig-badge:hover svg { transform: rotate(180deg); }
.reels__rail { list-style: none !important; margin: 0; padding: 0 var(--gutter) 8px 0 !important; display: grid; grid-auto-flow: column; grid-auto-columns: clamp(220px, 24vw, 300px); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.reels__rail::-webkit-scrollbar { display: none; }
.reels__rail li { scroll-snap-align: start; }
.reels__frame { position: relative; aspect-ratio: 9 / 16; background: var(--ink); overflow: hidden; border: var(--mullion) solid var(--ink); }
.reels__frame video { width: 100%; height: 100%; object-fit: cover; display: block; }
.reels__play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; cursor: pointer; background: transparent; display: grid; place-items: center; }
.reels__play svg { width: 64px; height: 64px; padding: 18px 16px 18px 20px; border-radius: 50%; fill: var(--ink); background: var(--hippo); transition: transform 0.3s var(--ease), opacity 0.3s; }
.reels__frame[data-playing="true"] .reels__play svg { opacity: 0; transform: scale(0.8); }
.reels__frame[data-playing="true"]:hover .reels__play svg { opacity: 0.85; transform: none; }
.reels__rail p { margin-top: 10px; font-size: 14px; font-weight: 500; color: var(--ink-2); }
.reels__nav { display: flex; gap: 10px; margin-top: 20px; }
.reels__nav button { width: 52px; height: 52px; display: grid; place-items: center; cursor: pointer; border: var(--mullion) solid var(--ink); background: transparent; color: var(--ink); }
.reels__nav button:hover { background: var(--sky); }
.reels__nav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; }

/* ---------------- split (Leo, service intros) ---------------- */
.cwc-split .et_pb_row { display: grid !important; grid-template-columns: minmax(280px, 0.42fr) 1fr; border: var(--mullion) solid var(--ink); }
.cwc-split.cwc-flip .et_pb_row { grid-template-columns: 1fr minmax(280px, 0.46fr); }
.cwc-split .et_pb_row > .et_pb_column { width: auto !important; margin: 0 !important; }
.cwc-split .cwc-photo-col { position: relative; min-height: 520px; background: var(--ink); overflow: hidden; border-right: var(--mullion) solid var(--ink); }
.cwc-split.cwc-flip .cwc-photo-col { border-right: 0; border-left: var(--mullion) solid var(--ink); order: 2; }
.cwc-split .cwc-photo-col .et_pb_image, .cwc-split .cwc-photo-col .et_pb_image_wrap { position: absolute; inset: 0; }
.cwc-split .cwc-photo-col img { position: absolute; inset: -40px 0; width: 100%; height: calc(100% + 80px); object-fit: cover; object-position: 50% 42%; max-width: none; transform: translate3d(0, var(--fx-y, 0px), 0); }
.cwc-split .cwc-text-col { padding: clamp(28px, 5vw, 72px) !important; display: flex; flex-direction: column; gap: 18px; }
.cwc-split h2 { font-weight: 800; font-size: clamp(2.4rem, 5vw, 4.6rem) !important; line-height: 0.95 !important; }
.cwc-split .et_pb_text p { color: var(--ink-2); max-width: 58ch; }
.cwc-split .cwc-logo-mark { align-self: flex-end; width: clamp(150px, 16vw, 220px) !important; }
.cwc-facts dl, dl.cwc-facts { margin: 8px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: var(--mullion) solid var(--ink); }
.cwc-facts dl > div { padding: 18px 14px 0 0; display: grid; gap: 4px; }
.cwc-facts dl > div + div { padding-left: 14px; border-left: 1.5px solid var(--sky); }
.cwc-facts img { width: 36px; height: 36px; }
.cwc-facts dt { font-family: var(--display); font-weight: 800; font-size: 1.15rem; color: var(--ink); }
.cwc-facts dd { margin: 0; font-size: 14px; color: var(--ink-2); }

/* ---------------- reviews ---------------- */
.cwc-reviews .et_pb_row { display: grid !important; grid-template-columns: minmax(300px, 0.4fr) 1fr; width: 100%; }
.cwc-reviews .et_pb_row > .et_pb_column { width: auto !important; margin: 0 !important; }
.cwc-reviews .et_pb_row > .et_pb_column:first-child { padding: clamp(48px, 6vw, 90px) var(--gutter) !important; border-right: var(--mullion) solid var(--ink); display: flex; flex-direction: column; gap: 18px; }
.cwc-numeral, .cwc-numeral p { font-family: var(--display); font-weight: 800; color: var(--ink); font-size: clamp(9rem, 19vw, 17rem) !important; line-height: 0.78 !important; letter-spacing: -0.06em; }
.cwc-reviews h2 { font-weight: 700; font-size: clamp(1.4rem, 2vw, 1.8rem) !important; line-height: 1.15 !important; max-width: 18ch; }
.viewfinder { position: relative; display: inline-block; margin-top: 10px; padding: 14px 20px; font-weight: 700; font-size: 15px; text-decoration: none; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink) !important; }
.viewfinder::before, .viewfinder::after { content: ""; position: absolute; width: 16px; height: 16px; border: 0 solid var(--ink); transition: all 0.4s var(--ease); }
.viewfinder::before { top: 0; left: 0; border-top-width: 2px; border-left-width: 2px; }
.viewfinder::after { bottom: 0; right: 0; border-bottom-width: 2px; border-right-width: 2px; }
.viewfinder:hover::before, .viewfinder:hover::after { width: 100%; height: 100%; }
.viewfinder:hover { color: var(--hippo-ink) !important; }
.cwc-quotes ul { list-style: none !important; margin: 0; padding: 0 !important; display: grid; grid-template-columns: 1fr 1fr; }
.cwc-quotes li { padding: clamp(28px, 4vw, 52px) !important; display: flex; flex-direction: column; gap: 14px; border-bottom: 1.5px solid color-mix(in srgb, var(--ink) 30%, transparent); }
.cwc-quotes li:nth-child(odd) { border-right: 1.5px solid color-mix(in srgb, var(--ink) 30%, transparent); }
.cwc-quotes li:nth-last-child(-n + 2) { border-bottom: 0; }
.cwc-quotes li:nth-child(2), .cwc-quotes li:nth-child(3) { background: color-mix(in srgb, var(--glass) 35%, transparent); }
.cwc-quotes .stars { font-size: 18px; letter-spacing: 3px; color: var(--ink); }
.cwc-quotes blockquote { margin: 0; padding: 0; border: 0; font-family: var(--display); font-weight: 700; font-size: clamp(1.25rem, 1.9vw, 1.7rem); line-height: 1.18; letter-spacing: -0.01em; color: var(--ink); }
.cwc-quotes .who { margin-top: auto; font-weight: 600; font-size: 15px; }
.cwc-quotes .who span { display: block; font-weight: 400; font-size: 13.5px; color: var(--ink-2); }

/* ---------------- link lists (areas, services) ---------------- */
.cwc-arealist ul { list-style: none !important; margin: 0; padding: 0 !important; columns: 2; column-gap: clamp(24px, 4vw, 56px); border-top: var(--mullion) solid var(--ink); }
.cwc-arealist li { break-inside: avoid; padding: 0 !important; border-bottom: 1.5px solid var(--sky); }
.cwc-arealist a { display: block; padding: 14px 0 12px; font-family: var(--display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.4rem, 2.6vw, 2.3rem); line-height: 1; letter-spacing: -0.01em; color: var(--ink) !important; text-decoration: none; transition: transform 0.35s var(--ease), color 0.25s; }
.cwc-arealist a:hover { color: var(--hippo-ink) !important; transform: translateX(10px); }
.cwc-arealist a::after { content: " \2197"; font-size: 0.6em; vertical-align: top; color: var(--steel); }
.cwc-2col .et_pb_row { display: grid !important; grid-template-columns: 0.36fr 1fr; gap: clamp(28px, 5vw, 80px); }
.cwc-2col .et_pb_row > .et_pb_column { width: auto !important; margin: 0 !important; }
.cwc-2col .et_pb_text p { margin-top: 16px; color: var(--ink-2); max-width: 34ch; }
.cwc-2col h2 { font-weight: 800; font-size: clamp(2rem, 3.4vw, 3rem) !important; line-height: 1 !important; }

/* chips: neighborhoods */
.cwc-chips ul { list-style: none !important; padding: 0 !important; margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.cwc-chips li { padding: 8px 14px !important; border: 1.5px solid var(--ink); font-weight: 600; font-size: 15px; background: var(--glass); }

/* included list with icons */
.cwc-checks ul { list-style: none !important; padding: 0 !important; margin: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: var(--mullion) solid var(--ink); }
.cwc-checks li { position: relative; padding: 18px 18px 18px 46px !important; border-bottom: 1.5px solid var(--sky); color: var(--ink); font-weight: 500; }
.cwc-checks li:nth-child(odd) { border-right: 1.5px solid var(--sky); }
.cwc-checks li::before { content: ""; position: absolute; left: 12px; top: 22px; width: 18px; height: 12px; border-left: 3px solid var(--hippo-ink); border-bottom: 3px solid var(--hippo-ink); transform: rotate(-45deg); }

/* service cards on location pages */
.cwc-svc .et_pb_row.cwc-svcgrid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--mullion); background: var(--ink); border: var(--mullion) solid var(--ink); margin-top: clamp(28px, 4vw, 48px); }
.cwc-svc .cwc-svcgrid > .et_pb_column { width: auto !important; margin: 0 !important; background: var(--glass); padding: 26px !important; display: flex; flex-direction: column; gap: 10px; transition: background 0.3s; }
.cwc-svc .cwc-svcgrid > .et_pb_column:hover { background: var(--hippo); }
.cwc-svc .cwc-svcgrid img { width: 48px; height: 48px; }
.cwc-svc h3 { font-weight: 800; font-size: 1.45rem !important; }
.cwc-svc .et_pb_text p { color: var(--ink-2); font-size: 15.5px; }
.cwc-svc .cwc-pane-link a { font-weight: 600; font-size: 14.5px; color: var(--hippo-ink) !important; text-decoration: none; }

/* ---------------- FAQ (Divi toggles) ---------------- */
.cwc-faq .et_pb_toggle { border: 0 !important; border-bottom: 1.5px solid var(--sky) !important; background: transparent !important; padding: 20px 0 !important; margin: 0 !important; }
.cwc-faq .et_pb_toggle:first-of-type { border-top: var(--mullion) solid var(--ink) !important; }
.cwc-faq .et_pb_toggle_title, .cwc-faq .et_pb_toggle h3 { font-family: var(--display) !important; font-weight: 800 !important; font-size: clamp(1.2rem, 1.8vw, 1.5rem) !important; color: var(--ink) !important; padding-right: 40px; }
.cwc-faq .et_pb_toggle_title::before { color: var(--hippo-ink) !important; font-size: 22px; }
.cwc-faq .et_pb_toggle_content { color: var(--ink-2); padding-top: 12px; max-width: 70ch; }

/* ---------------- final CTA ---------------- */
.cwc-final.et_pb_section { position: relative; overflow: hidden; isolation: isolate; padding: clamp(60px, 9vw, 130px) 0 !important; background-color: var(--sky) !important; }
.cwc-final .cwc-plate { position: absolute !important; inset: 0; z-index: -1 !important; margin: 0; overflow: hidden; }
.cwc-final .et_pb_row:has(.cwc-plate) { height: 0; }
.cwc-final .et_pb_row:has(.cwc-plate) > .et_pb_column { z-index: auto !important; }
.cwc-final .cwc-plate .et_pb_image_wrap, .cwc-final .cwc-plate img { position: absolute; inset: -70px 0; width: 100%; height: calc(100% + 140px); object-fit: cover; max-width: none; transform: translate3d(0, var(--fx-y, 0px), 0); }
.cwc-final .et_pb_row, .cwc-final .et_pb_column { position: static; }
.cwc-final .et_pb_row.cwc-frame { position: relative; z-index: 1; display: grid !important; grid-template-columns: 1.1fr 0.9fr; background: color-mix(in srgb, var(--glass) 88%, transparent); border: var(--mullion) solid var(--ink); backdrop-filter: blur(6px); }
.cwc-final .cwc-frame > .et_pb_column { width: auto !important; margin: 0 !important; }
.cwc-final .cwc-frame > .et_pb_column:first-child { padding: clamp(32px, 5vw, 72px) !important; border-right: var(--mullion) solid var(--ink); display: flex; flex-direction: column; gap: 20px; }
.cwc-final .cwc-frame > .et_pb_column:last-child { padding: clamp(28px, 4vw, 56px) !important; display: flex; flex-direction: column; justify-content: center; }
.cwc-final h2 { font-weight: 800; font-size: clamp(2.6rem, 5.2vw, 4.8rem) !important; line-height: 0.95 !important; }
.cwc-final .et_pb_text p { color: var(--ink-2); max-width: 44ch; }
.flip { display: flex; flex-direction: column; gap: 18px; perspective: 1200px; }
.flip__card { position: relative; display: block; min-height: 190px; text-decoration: none; transform-style: preserve-3d; transition: transform 0.7s var(--ease); }
.flip__face { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 28px; backface-visibility: hidden; border: var(--mullion) solid var(--ink); }
.flip__face--front { background: var(--hippo); color: var(--ink); }
.flip__face--back { background: var(--ink); color: var(--glass); transform: rotateY(180deg); }
.flip__face img { width: 48px; height: 48px; }
.flip__label { font-weight: 700; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; }
.flip__num { font-family: var(--mono); font-size: clamp(1.7rem, 3.3vw, 2.8rem); letter-spacing: -0.02em; line-height: 1; }
.flip__card:hover, .flip__card:focus-visible { transform: rotateY(180deg); }
.final__call { font-weight: 600; font-size: 15px; color: var(--hippo-ink) !important; text-underline-offset: 4px; }

/* ---------------- footer (Theme Builder) ---------------- */
.cwc-footer.et_pb_section { border-top: var(--mullion) solid var(--ink); padding: 56px 0 0 !important; overflow: hidden; background: var(--glass) !important; }
.cwc-footer .et_pb_row.cwc-footcols { display: grid !important; grid-template-columns: 1.2fr 1fr 1fr 1.2fr; gap: 32px 48px; }
.cwc-footer .cwc-footcols > .et_pb_column { width: auto !important; margin: 0 !important; }
.cwc-footer h4 { font-family: var(--display); font-weight: 800; font-size: 1.15rem; margin-bottom: 12px !important; }
.cwc-footer ul { list-style: none !important; padding: 0 !important; margin: 0; display: grid; gap: 6px; }
.cwc-footer li { padding: 0 !important; }
.cwc-footer a { text-decoration: none; border-bottom: 1.5px solid var(--sky); color: var(--ink) !important; }
.cwc-footer a:hover { border-color: var(--hippo-ink); }
.cwc-footer p, .cwc-footer li { font-size: 15px; }
.cwc-footer .cwc-waiver p { font-size: 13px; color: var(--ink-2); }
.cwc-footer .cwc-legal { border-top: 1.5px solid var(--sky); margin-top: 32px !important; padding-top: 18px; }
.cwc-footer .cwc-legal p { font-size: 13px; color: var(--ink-2); }
.cwc-footer p.foot__word, .foot__word { margin: 8px 0 -0.22em; text-align: center; line-height: 0.8; font-family: var(--display); font-weight: 800; letter-spacing: -0.06em; font-size: clamp(6rem, 27vw, 26rem); color: var(--sky); white-space: nowrap; }
.foot__word span { display: inline-block; transform: translate3d(0, var(--fx-y, 0px), 0); }

/* ---------------- scroll motion (transform only) ---------------- */
html[data-fx="on"] [data-rise], html[data-fx="on"] .cwc-rise { transition: transform 0.9s var(--ease); }
html[data-fx="on"] [data-rise]:not([data-risen]), html[data-fx="on"] .cwc-rise:not([data-risen]) { transform: translate3d(0, 56px, 0); }

/* hide Divi's default page title/sidebars on these builder pages */
.cwc-page #sidebar, .cwc-page .et_post_meta_wrapper > h1 { display: none; }

/* ---------------- responsive ---------------- */
@media (max-width: 1080px) {
  .cwc-header .et-menu > li { padding-left: 9px; padding-right: 9px; }
  .cwc-reels .et_pb_row { grid-template-columns: 1fr; }
  .cwc-reels .et_pb_row > .et_pb_column:first-child { position: static; }
  .cwc-facts dl, dl.cwc-facts { grid-template-columns: repeat(2, 1fr); }
  .cwc-footer .et_pb_row.cwc-footcols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 980px) {
  .cwc-header .et_pb_row { min-height: 80px; }
  .nav-phone__label { display: none; }
}
@media (max-width: 860px) {
  .cwc-bento .et_pb_row.cwc-grid { grid-template-columns: 1fr; }
  .cwc-bento .cwc-grid > .et_pb_column.cwc-pane-photo { display: flex; flex-direction: column; }
  .cwc-bento .cwc-pane-photo .cwc-pane-img { order: -1; height: auto; aspect-ratio: 4 / 3; }
  .cwc-steps .et_pb_row.cwc-steprow { grid-template-columns: 1fr; gap: 36px; }
  .cwc-steps .cwc-steprow::before, .cwc-steps .cwc-line { display: none; }
  .cwc-split .et_pb_row, .cwc-split.cwc-flip .et_pb_row { grid-template-columns: 1fr; }
  .cwc-split .cwc-photo-col { min-height: 0; aspect-ratio: 4 / 5; border-right: 0; border-bottom: var(--mullion) solid var(--ink); }
  .cwc-split.cwc-flip .cwc-photo-col { order: 0; border-left: 0; }
  .cwc-reviews .et_pb_row { grid-template-columns: 1fr; }
  .cwc-reviews .et_pb_row > .et_pb_column:first-child { border-right: 0; border-bottom: var(--mullion) solid var(--ink); }
  .cwc-quotes ul { grid-template-columns: 1fr; }
  .cwc-quotes li:nth-child(odd) { border-right: 0; }
  .cwc-quotes li:nth-last-child(2) { border-bottom: 1.5px solid color-mix(in srgb, var(--ink) 30%, transparent); }
  .cwc-2col .et_pb_row { grid-template-columns: 1fr; }
  .cwc-final .et_pb_row.cwc-frame { grid-template-columns: 1fr; }
  .cwc-final .cwc-frame > .et_pb_column:first-child { border-right: 0; border-bottom: var(--mullion) solid var(--ink); }
  .cwc-checks ul { grid-template-columns: 1fr; }
  .cwc-checks li:nth-child(odd) { border-right: 0; }
  .hero__seal { width: 112px; height: 112px; top: 24px; }
  .hero__seal img { width: 56px; height: 56px; }
}
@media (max-width: 560px) {
  .cwc-brand img { width: 54px; height: 54px; }
  .cwc-brand span { font-size: 25px; }
  .cwc-brand small { font-size: 10.5px; }
  .cwc-header .et_pb_row { gap: 12px; }
  .nav-phone { padding: 8px 12px; }
  .nav-phone__digits { display: none; }
  .nav-phone__label { display: inline; font-size: 13px; }
  .cwc-arealist ul { columns: 1; }
  .cwc-footer .et_pb_row.cwc-footcols { grid-template-columns: 1fr; }
}

/* GHL quote form inside the final CTA frame */
.cwc-final .cwc-frame > .et_pb_column:last-child { padding: clamp(16px, 2.5vw, 32px) !important; background: #fff; }
.cwc-form iframe { display: block; width: 100%; min-height: 760px; }

/* legacy articles */
.cwc-article .et_pb_row { max-width: 820px; }
.cwc-article-body h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; margin: 1.6em 0 0.5em !important; }
.cwc-article-body h3 { font-size: 1.3rem !important; margin: 1.2em 0 0.4em !important; }
.cwc-article-body p { color: var(--ink-2); font-size: 18px; line-height: 1.7; }
.cwc-article-body a { color: var(--hippo-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
