/**/.dmNewParagraph[data-version] .text-align-left{text-align:left!important}.dmNewParagraph[data-version] .text-align-center{text-align:center!important}.dmNewParagraph[data-version] .text-align-right{text-align:right!important}
.dmNewParagraph[data-version] .text-align-justify{text-align:justify!important}.dmNewParagraph[data-version] .ql-indent-1{padding:0 1em;padding-inline-end:0;padding-inline-start:3em}.dmNewParagraph[data-version] .ql-indent-2{padding:0 2em;padding-inline-end:0;padding-inline-start:6em}
.dmNewParagraph[data-version] .ql-indent-3{padding:0 3em;padding-inline-end:0;padding-inline-start:9em}.dmNewParagraph[data-version] .ql-indent-4{padding:0 4em;padding-inline-end:0;padding-inline-start:12em}
.dmNewParagraph[data-version] .ql-indent-5{padding:0 5em;padding-inline-end:0;padding-inline-start:15em}.dmNewParagraph[data-version] .ql-indent-6{padding:0 6em;padding-inline-end:0;padding-inline-start:18em}
.dmNewParagraph[data-version] .ql-indent-7{padding:0 7em;padding-inline-end:0;padding-inline-start:21em}.dmNewParagraph[data-version] .ql-indent-8{padding:0 8em;padding-inline-end:0;padding-inline-start:24em}
.dmNewParagraph[data-version] .ql-indent-9{padding:0 9em;padding-inline-end:0;padding-inline-start:27em}.dmNewParagraph[data-version]{line-height:initial}.dmNewParagraph[data-version] [class*=size-]{width:auto!important;height:auto!important}
.dmNewParagraph[data-version] h1,.dmNewParagraph[data-version] h2,.dmNewParagraph[data-version] h3,.dmNewParagraph[data-version] h4,.dmNewParagraph[data-version] h5,.dmNewParagraph[data-version] h6,.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] p,.dmNewParagraph[data-version] ul{margin-top:0;margin-bottom:0}
.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] ul{padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.dmNewParagraph[data-version] ol>li,.dmNewParagraph[data-version] ul>li{list-style-type:none;text-indent:-1.5em;margin:0 1em;margin-inline-end:0;margin-inline-start:2em}
.dmNewParagraph[data-version] ol>li:before,.dmNewParagraph[data-version] ul>li:before{min-width:1em;display:inline-block;margin-right:.5em;margin-inline-start:0;margin-inline-end:.5em;text-align:right;text-align:end}
.dmNewParagraph[data-version] ul .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ul .ql-indent-1:before{font-weight:700;content:"○"}
.dmNewParagraph[data-version] ul .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ul .ql-indent-2:before,.dmNewParagraph[data-version] ul .ql-indent-3:before,.dmNewParagraph[data-version] ul .ql-indent-4:before,.dmNewParagraph[data-version] ul .ql-indent-5:before,.dmNewParagraph[data-version] ul .ql-indent-6:before,.dmNewParagraph[data-version] ul .ql-indent-7:before,.dmNewParagraph[data-version] ul .ql-indent-8:before,.dmNewParagraph[data-version] ul .ql-indent-9:before{font-weight:700;content:"■"}
.dmNewParagraph[data-version] ul .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ul .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}
.dmNewParagraph[data-version] ul .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ul .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}
.dmNewParagraph[data-version] ul .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ul .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ul .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}
.dmNewParagraph[data-version] ul>li:before{font-weight:700;content:"•";font-family:Arial}.dmNewParagraph[data-version] ul.custom-list-1>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"○";transform:scale(1);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-2>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"★";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-3>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"➞";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-4>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"＋";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-5>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"－";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-6>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"✓";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-7>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"✗";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ol .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ol .ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ol .ql-indent-2:before{content:counter(list-2,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ol .ql-indent-3:before{content:counter(list-3,decimal) ". "}
.dmNewParagraph[data-version] ol .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}.dmNewParagraph[data-version] ol .ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ol .ql-indent-5:before{content:counter(list-5,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}.dmNewParagraph[data-version] ol .ql-indent-6:before{content:counter(list-6,decimal) ". "}
.dmNewParagraph[data-version] ol .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ol .ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ol .ql-indent-8:before{content:counter(list-8,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}.dmNewParagraph[data-version] ol .ql-indent-9:before{content:counter(list-9,decimal) ". "}
.dmNewParagraph[data-version] ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.dmNewParagraph[data-version] ol li:before{content:counter(list-0,decimal) ". "}
.dmNewParagraph[data-version] a{vertical-align:initial}@media(min-width:768px) and (max-width:1024px){.dmNewParagraph[data-version] .t-text-align-left{text-align:left!important}.dmNewParagraph[data-version] .t-text-align-center{text-align:center!important}
.dmNewParagraph[data-version] .t-text-align-right{text-align:right!important}.dmNewParagraph[data-version] .t-text-align-justify{text-align:justify!important}}@media(max-width:767px){.dmRoot .dmNewParagraph[data-version] .m-text-align-left{text-align:left!important}
.dmRoot .dmNewParagraph[data-version] .m-text-align-center{text-align:center!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-right{text-align:right!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-justify{text-align:justify!important}
}.inlineBindingLink{color:inherit!important;text-decoration:inherit!important}/**/.hamburgerButton{display:block;background-color:transparent;border:0;padding:0;margin:0}.hamburgerButton,.hamburgerButton svg{width:100%;height:100%}/**/.imageWidget{position:relative}.imageWidget a,.imageWidget span.image-caption{font-style:italic;text-align:center}.imageWidget a[data-caption]::after,.imageWidget span[data-caption]::after{content:attr(data-caption);display:block;line-height:100%}
.imageWidget.with-caption a::after,.imageWidget.with-caption span.image-caption::after{margin-top:12px}.imageWidget img[width][height]{height:auto}[data-flex-site] #fcontainer .imageWidget:after,[data-flex-site] #flex-footer .imageWidget:after,[data-flex-site] #flex-header .imageWidget:after{content:none}
[data-flex-site] #fcontainer .imageWidget:before,[data-flex-site] #flex-footer .imageWidget:before,[data-flex-site] #flex-header .imageWidget:before{font-size:80px;transform:none}.imageWidget.hover img.hover-image,.imageWidget:hover img.hover-image{display:initial}
.imageWidget.hover.hasHover img:not(.hover-image),.imageWidget:hover.hasHover img:not(.hover-image){display:none!important}.imageWidget img.hover-image,.imageWidget img.logo-on-scroll{display:none}
/* Custom Widgets Styles */
@charset "UTF-8";
/*
  RealWork widget: service-area-child-page (CSS pane)
  Source of record: stacks/websites/site/widgets/service-area-child-page/widget.css
  Deployed from: <set commit/PR at deploy>

  font-family is deliberately never set — typography inherits the site's fonts.
  Color tokens resolve from the site theme palette (--color_N on :root; slot roles
  in docs/conventions/DUDA-REFERENCE.md, Site Theme) with the approved mock's
  values as fallbacks. Tokens with no theme slot (grey ramp, divider, star,
  shadows, radii) stay fixed.
*/
.service-area-child {
  --sac-primary: var(--color_13, #006DFF);
  --sac-primary-dark: var(--color_2, #115AED);
  --sac-primary-border: rgba(17, 92, 237, 0.5);
  --sac-btn-bg: var(--color_1, #006DFF);
  --sac-btn-bg-hover: var(--color_2, #115AED);
  --sac-btn-text: var(--color_3, #fff);
  --sac-btn-text-hover: var(--color_4, #fff);
  --sac-navy: var(--color_20, #00072D);
  --sac-grey-50: var(--color_18, #F7F8FA);
  --sac-grey-100: #F0F2F5;
  --sac-grey-200: #E4E8EE;
  --sac-grey-300: #D3D7E0;
  --sac-text: var(--color_11, #1A1D21);
  --sac-text-secondary: var(--color_12, rgba(26, 29, 33, 0.65));
  --sac-divider: rgba(26, 29, 33, 0.12);
  --sac-star: #F99300;
  --sac-shadow-card: 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  --sac-shadow-lift: 0px 6px 17px rgba(21, 41, 50, 0.10);
  --sac-radius-card: 10px;
  --sac-radius-btn: 6px;
  --sac-gap: 20px;
  --sac-reviews-per-page: 3;
  color: var(--sac-text);
  width: 100%;
  overflow: clip;
}

/* Brand-derived tints where the palette has no slot. Guarded so browsers
   without color-mix keep the fixed fallbacks above (a var() that resolves
   invalid would drop the whole declaration, not fall back). */
@supports (color: color-mix(in srgb, red 50%, transparent)) {
  .service-area-child {
    --sac-primary-border: color-mix(in srgb, var(--color_13, #115AED) 50%, transparent);
    --sac-hero-sheen: color-mix(in oklab, var(--sac-navy) 82%, white);
    --sac-fade-mid: color-mix(in srgb, var(--sac-grey-50) 75%, transparent);
  }
}
.service-area-child *,
.service-area-child *::before,
.service-area-child *::after {
  box-sizing: border-box;
}

.service-area-child__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 32px;
}

.service-area-child__section {
  padding: 64px 0;
}

.service-area-child__section-title {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0;
}

.service-area-child__section-sub {
  font-size: 16px;
  line-height: 1.5;
  color: var(--sac-text-secondary);
  margin: 8px 0 0;
}

.service-area-child__section-head {
  margin-bottom: 32px;
}

/* ═══════════════ HERO ═══════════════ */
.service-area-child__hero {
  background: radial-gradient(87.72% 87.72% at 82.44% 12.28%, var(--sac-hero-sheen, #003F79) 0%, var(--sac-navy) 100%);
  color: #fff;
}

.service-area-child__hero .service-area-child__inner {
  padding-top: 76px;
  padding-bottom: 68px;
}

.service-area-child__eyebrow {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
  margin: 0 0 14px;
}

.service-area-child__headline {
  font-size: clamp(34px, 5vw, 50px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0;
  max-width: 16ch;
}

.service-area-child__intro {
  font-size: 16px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.88);
  max-width: 62ch;
  margin: 18px 0 0;
}

/* Clamp is applied by JS (is-clamped) so no-JS clients keep the full intro.
   Trims the initial text to 3 lines; the toggle sits just below it. */
.service-area-child__intro.is-clamped {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.service-area-child__intro-toggle {
  /* Shown/hidden inline by JS (measure) — no CSS display here, or an inline
     `display:""` reset would fall back to it and never reveal the toggle. */
  margin: 10px 0 0;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.service-area-child__intro-toggle:hover {
  opacity: 0.85;
}

.service-area-child__stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-top: 30px;
  font-size: 14.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.service-area-child__stat {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.service-area-child__stat-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

/* The filled star's visual mass sits above the geometric center; nudge down
   to align with the text's optical middle. */
.service-area-child__stat-icon--star {
  color: var(--sac-star);
  transform: translateY(-2.5px);
}

.service-area-child__stat-divider {
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.28);
}

.service-area-child__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 38px;
}

.service-area-child__btn {
  /* The primary quote CTA is a <button>; the secondary is an <a>. Reset the UA
     button chrome so both match — colors/border come from the modifiers. */
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  background: none;
  border: none;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 700;
  padding: 15px 26px;
  border-radius: var(--sac-radius-btn);
  text-decoration: none;
  transition: background 0.15s;
}

.service-area-child__btn:focus-visible {
  outline: 2px solid var(--sac-primary);
  outline-offset: 2px;
}

.service-area-child__btn--primary {
  background: var(--sac-btn-bg);
  color: var(--sac-btn-text);
  box-shadow: var(--sac-shadow-lift);
}

.service-area-child__btn--primary:hover {
  background: var(--sac-btn-bg-hover);
  color: var(--sac-btn-text-hover);
}

.service-area-child__btn--secondary {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.38);
  color: #fff;
}

.service-area-child__btn--secondary:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

/* ═══════════════ RECENT PROJECTS ═══════════════ */
.service-area-child__jobs {
  background: var(--sac-grey-50);
}

.service-area-child__crumbs {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 14px;
  font-size: 13.5px;
  font-weight: 600;
}

.service-area-child__crumbs a {
  color: var(--sac-text-secondary);
  text-decoration: none;
}

.service-area-child__crumbs a:hover {
  color: var(--sac-primary);
}

.service-area-child__crumb-chevron {
  width: 14px;
  height: 14px;
  color: var(--sac-grey-300);
  flex: 0 0 auto;
}

.service-area-child__jobs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  gap: var(--sac-gap);
  align-items: stretch;
}

.service-area-child__job {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: var(--sac-radius-card);
  box-shadow: var(--sac-shadow-card);
  overflow: hidden;
  transition: box-shadow 0.15s, transform 0.15s;
}

/* Placeholder as background: an image-less job shows it with no extra markup,
   and a broken image's onerror removal reveals it. Single shared URL — the
   browser fetches it once for the whole grid. */
.service-area-child__job-media {
  position: relative;
  flex: 0 0 auto;
  height: 176px;
  background: var(--sac-grey-100) url("https://app.realworklabs.com/placeholder.png") center/cover no-repeat;
}

.service-area-child__job-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-area-child__job-body {
  padding: 18px 20px 20px;
  flex: 1 1 auto;
}

.service-area-child__job.has-overflow {
  cursor: pointer;
}

.service-area-child__job.has-overflow:hover {
  box-shadow: var(--sac-shadow-lift);
  transform: translateY(-2px);
}

.service-area-child__job.is-collapsed {
  display: none;
}

.service-area-child__job-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}

/* The design panel's text styles compile to #dmRoot #dm-anchored selectors
   that outrank any class-scoped widget rule (the .widget-{hash} wrapper is
   class specificity only) — without !important the theme's h3 display style
   (44px, uppercase) replaces the card title's. font-family is deliberately
   not pinned: titles render in the theme's heading face at card scale. */
.service-area-child__job-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  margin: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.service-area-child__job-date {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sac-text-secondary);
  white-space: nowrap;
}

.service-area-child__job-desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--sac-text-secondary);
  margin: 6px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 44px;
}

.service-area-child__job.is-expanded .service-area-child__job-desc {
  display: block;
  -webkit-line-clamp: none;
  max-height: 240px;
  overflow-y: auto;
  overscroll-behavior: contain;
  line-height: 1.6;
}

/* Keyboard-operable expand trigger. Hidden until the card's description
   overflows (or is expanded); the inner hint spans swap Read more / Show less
   via the card-state rules below. */
.service-area-child__more-toggle {
  appearance: none;
  -webkit-appearance: none;
  display: none;
  margin: 12px 0 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  color: var(--sac-primary);
}

.service-area-child__job.has-overflow .service-area-child__more-toggle,
.service-area-child__job.is-expanded .service-area-child__more-toggle {
  display: inline-flex;
}

.service-area-child__more-toggle:focus-visible {
  outline: 2px solid var(--sac-primary);
  outline-offset: 2px;
}

.service-area-child__more-hint {
  display: none;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 700;
  color: var(--sac-primary);
}

.service-area-child__more-hint svg {
  width: 14px;
  height: 14px;
}

.service-area-child__job.has-overflow:not(.is-expanded) .service-area-child__more-hint--open {
  display: inline-flex;
}

.service-area-child__job.is-expanded .service-area-child__more-hint--close {
  display: inline-flex;
}

.service-area-child__jobs-actions {
  display: flex;
  justify-content: center;
}

.service-area-child__show-more {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 36px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px 4px;
  font-size: 15px;
  font-weight: 700;
  color: var(--sac-primary);
  transition: color 0.15s;
}

.service-area-child__show-more:hover {
  color: var(--sac-primary-dark);
}

.service-area-child__show-more svg {
  width: 16px;
  height: 16px;
}

/* ═══════════════ REVIEWS ═══════════════ */
.service-area-child__reviews {
  background: #fff;
}

.service-area-child__reviews-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.service-area-child__reviews-head .service-area-child__section-head {
  margin-bottom: 32px;
}

.service-area-child__reviews-nav {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
  margin-bottom: 32px;
}

.service-area-child__arrow {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  border: 1px solid var(--sac-grey-200);
  background: #fff;
  color: var(--sac-text);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--sac-shadow-card);
  transition: border-color 0.15s, color 0.15s;
}

.service-area-child__arrow:hover {
  border-color: var(--sac-primary-border);
  color: var(--sac-primary);
}

.service-area-child__arrow svg {
  width: 18px;
  height: 18px;
}

/* No-JS default: flat wrapping grid. JS adds .is-carousel to the section. */
.service-area-child__reviews-viewport {
  overflow: visible;
}

.service-area-child__reviews-track {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sac-gap);
  align-items: stretch;
}

.service-area-child__reviews.is-carousel .service-area-child__reviews-viewport {
  overflow: hidden;
  margin: -4px;
  padding: 4px;
}

.service-area-child__reviews.is-carousel .service-area-child__reviews-track {
  display: flex;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Reduced-motion: pages jump instead of sliding (autoplay is also off in JS). */
@media (prefers-reduced-motion: reduce) {
  .service-area-child__reviews.is-carousel .service-area-child__reviews-track {
    transition: none;
  }
}
.service-area-child__reviews.is-carousel .service-area-child__review {
  flex: 0 0 calc((100% - (var(--sac-reviews-per-page) - 1) * var(--sac-gap)) / var(--sac-reviews-per-page));
}

.service-area-child__review {
  background: var(--sac-grey-50);
  border-radius: 12px;
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
}

.service-area-child__review-head {
  display: flex;
  align-items: center;
  gap: 13px;
}

/* Letter disc is the base layer (grey until JS colors it from the author
   name); the photo, when present, covers it. */
.service-area-child__avatar {
  position: relative;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  flex: 0 0 auto;
  overflow: hidden;
  background: var(--sac-grey-300);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 700;
}

.service-area-child__avatar-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-area-child__review-who {
  min-width: 0;
}

.service-area-child__review-author {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

.service-area-child__review-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 5px;
}

.service-area-child__source-icon {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

.service-area-child__review-stars {
  display: inline-flex;
  gap: 1px;
  color: var(--sac-star);
}

.service-area-child__review-stars svg {
  width: 16px;
  height: 16px;
}

.service-area-child__review-date {
  font-size: 13px;
  color: var(--sac-text-secondary);
  white-space: nowrap;
}

.service-area-child__review-link {
  color: var(--sac-text-secondary);
  display: inline-flex;
}

.service-area-child__review-link:hover {
  color: var(--sac-primary);
}

.service-area-child__review-link svg {
  width: 14px;
  height: 14px;
}

.service-area-child__review-body {
  position: relative;
}

.service-area-child__review-text {
  font-size: 15px;
  line-height: 1.6;
  margin: 16px 0 0;
}

.service-area-child__reviews.is-carousel .service-area-child__review-text.is-clamped {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.service-area-child__read-more {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 44px;
  display: flex;
  align-items: flex-end;
  cursor: pointer;
  border: none;
  padding: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--sac-primary);
  background: linear-gradient(to top, var(--sac-grey-50) 42%, var(--sac-fade-mid, rgba(247, 248, 250, 0.75)) 72%, transparent 100%);
}

.service-area-child__read-less {
  margin-top: 8px;
  align-self: flex-start;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--sac-primary);
}

.service-area-child__reviews-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 28px;
}

.service-area-child__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: none;
  padding: 0;
  background: var(--sac-grey-200);
  cursor: pointer;
  transition: all 0.25s;
}

.service-area-child__dot.is-active {
  width: 24px;
  background: var(--sac-primary);
}

/* ═══════════════ NEARBY ZIPS ═══════════════ */
.service-area-child__zips {
  background: var(--sac-grey-50);
  border-top: 1px solid var(--sac-divider);
}

.service-area-child__zips .service-area-child__section-head {
  margin-bottom: 28px;
}

.service-area-child__zip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.service-area-child__zip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--sac-grey-200);
  border-radius: 999px;
  padding: 9px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--sac-text);
  text-decoration: none;
  transition: border-color 0.15s, box-shadow 0.15s, color 0.15s;
}

.service-area-child__zip:hover {
  border-color: var(--sac-primary-border);
  box-shadow: var(--sac-shadow-card);
  color: var(--sac-primary);
}

.service-area-child__zip-icon {
  width: 15px;
  height: 15px;
  color: var(--sac-primary);
  flex: 0 0 auto;
}

/* ═══════════════ RESPONSIVE ═══════════════ */
@media (max-width: 900px) {
  .service-area-child {
    --sac-reviews-per-page: 2;
  }
  .service-area-child__jobs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .service-area-child__reviews-track {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .service-area-child {
    --sac-reviews-per-page: 1;
  }
  .service-area-child__inner {
    padding: 0 20px;
  }
  .service-area-child__jobs-grid {
    grid-template-columns: 1fr;
  }
  .service-area-child__reviews-track {
    grid-template-columns: 1fr;
  }
  .service-area-child__reviews-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .service-area-child__section {
    padding: 48px 0;
  }
}

.widget-1f5975 .copyright {
    font-size: 13px;
    display: flex;
    text-align: left;
    justify-content: flex-start;
}
