/* Services / an editorial collection of considered care. */
.services-page { --sv-ink:#092e3b; --sv-teal:#087d86; --sv-muted:#647578; --sv-line:#dbe4df; --sv-paper:#f7f8f4; --sv-space:clamp(56px,5.5vw,80px); background:var(--sv-paper); color:var(--sv-ink); }
.sv-shell { width:min(calc(100% - 2 * var(--page-gutter)),1280px); margin-inline:auto; }
.sv-section { padding-block:var(--sv-space); }
.services-page h2 { font-size:clamp(30px,3.05vw,43px); line-height:1.16; letter-spacing:-1.6px; }
.services-page h2 span { color:var(--sv-teal); }
.services-page .info-dialog h2 { font-size:28px; line-height:1.2; letter-spacing:-.8px; }
.sv-kicker { display:flex; align-items:center; gap:11px; margin:0 0 18px; color:var(--sv-teal); font-size:9px; line-height:1.5; font-weight:700; letter-spacing:2.3px; text-transform:uppercase; }
.sv-kicker::before { content:''; height:1px; width:28px; flex-shrink:0; background:currentColor; opacity:.6; }
.sv-copy { margin:0; font-size:15px; line-height:1.85; color:var(--sv-muted); }
.sv-button { position:relative; display:inline-flex; align-items:center; justify-content:space-between; gap:25px; min-height:52px; padding:13px 17px 13px 22px; border:1px solid #139b9a; border-radius:8px; background:linear-gradient(120deg,#087c84,#009ea0); color:#fff; box-shadow:0 9px 19px -12px #006d7780,inset 0 1px #ffffff1f; font:700 12px/1.4 Montserrat,Arial,sans-serif; transition:transform .3s,box-shadow .3s,background .3s; }
.sv-button:hover { transform:translateY(-3px); box-shadow:0 15px 28px -15px #00596380; }
.sv-button svg { width:27px; height:27px; padding:5px; box-sizing:content-box; border-left:1px solid #ffffff36; transition:translate .3s; }
.sv-button:hover svg { translate:3px 0; }
.sv-breadcrumb { display:flex; align-items:center; gap:12px; padding-block:19px; color:#7a8a87; font-size:10px; letter-spacing:.3px; }
.sv-breadcrumb svg { width:12px; height:12px; }
.sv-breadcrumb span { color:var(--sv-ink); }

/* The original three-photo collage, using separate generated photographs. */
.sv-banner { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:minmax(0,1fr); position:relative; height:335px; overflow:hidden; isolation:isolate; border:1px solid #e0e9df; border-radius:18px; background:radial-gradient(ellipse at 65% 100%,#e0f1e9,transparent 75%),#f4f8f2; }
.sv-banner-copy { position:relative; align-self:center; padding:25px 42px; z-index:2; }
.sv-banner-copy::before { content:''; position:absolute; left:0; top:31px; height:36px; width:3px; background:#188992; }
.sv-banner h1 { margin:0; font:800 clamp(32px,3.45vw,49px)/1.11 Montserrat,Arial,sans-serif; letter-spacing:-2px; transform:none; }
.sv-banner h1 em { color:var(--sv-teal); font-style:normal; }
.sv-banner-copy > p:not(.sv-kicker) { max-width:340px; margin:18px 0 0; font-size:14px; line-height:1.7; color:#637572; }
.sv-banner-link { display:inline-flex; align-items:center; gap:24px; margin-top:20px; font-size:11px; font-weight:700; color:var(--sv-ink); }
.sv-banner-link svg { width:26px; height:26px; padding:6px; border:1px solid #afc9c1; border-radius:50%; box-sizing:content-box; transition:translate .3s,background .3s; }
.sv-banner-link:hover svg { translate:4px 0; background:#fff8; }
.sv-collage { position:relative; align-self:center; display:grid; grid-template-columns:.9fr 1.2fr .85fr; align-items:center; gap:13px; height:283px; min-width:0; padding:0 30px 0 6px; isolation:isolate; }
.sv-collage::before { content:''; position:absolute; width:490px; height:490px; right:-160px; top:-250px; border:1px solid #bcd9cb40; border-radius:50%; box-shadow:0 0 0 48px #ffffff24; z-index:-1; }
.sv-collage figure { position:relative; margin:0; height:213px; min-width:0; overflow:hidden; border:5px solid #fff; border-radius:62px 62px 18px 18px; background:#fff; box-shadow:0 20px 30px -20px #1b584c77; rotate:-6deg; }
.sv-collage figure:nth-child(2) { height:265px; rotate:3deg; border-radius:22px; z-index:1; }
.sv-collage figure:nth-child(3) { height:207px; rotate:8deg; border-radius:65px 65px 18px 18px; }
.sv-collage img { display:block; width:100%; height:100%; object-fit:cover; }
.sv-collage figure:nth-child(1) img { object-position:25% center; }
.sv-collage figure:nth-child(2) img { object-position:60% center; }
.sv-collage figure:nth-child(3) img { object-position:70% center; }
.sv-collage-label { position:absolute; left:49%; bottom:17px; translate:-50% 0; z-index:2; display:flex; align-items:center; justify-content:center; gap:10px; padding:13px 18px; border:1px solid #fff; border-radius:40px; background:#fffffff2; color:#23615d; font-size:10px; font-weight:700; white-space:nowrap; box-shadow:0 12px 26px -20px #1b584c77; }
.sv-collage-label svg { width:19px; height:19px; color:#4c942d; flex-shrink:0; }
.sv-assurances { display:grid; grid-template-columns:repeat(4,1fr); padding:23px 0; border-bottom:1px solid var(--sv-line); }
.sv-assurances li { display:flex; align-items:center; justify-content:center; gap:12px; font-size:11px; color:#536d6e; border-right:1px solid #dbe4df; }
.sv-assurances li:last-child { border:0; }
.sv-assurances svg { width:21px; height:21px; color:var(--sv-teal); flex-shrink:0; }
.sv-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:35px; margin-bottom:33px; }
.sv-heading .sv-copy { max-width:320px; font-size:14px; padding-left:21px; border-left:1px solid #c3d5cd; }

/* A numbered, horizontal service collection. */
.sv-explorer { scroll-margin-top:24px; }
.sv-explorer-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; }
.sv-menu-label,.sv-menu-help { display:none; }
.sv-tablist { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; counter-reset:service; border-bottom:1px solid #d6e1da; }
.sv-service-tab { counter-increment:service; position:relative; display:grid; grid-template-columns:33px 1fr 16px; align-items:center; gap:13px; width:100%; min-height:91px; padding:15px 21px; border:0; border-bottom:2px solid transparent; background:transparent; color:#6c807e; text-align:left; transition:background .3s,color .3s,border-color .3s; }
.sv-service-tab::before { content:'0' counter(service); position:absolute; right:15px; top:8px; font-size:8px; color:#9aaba5; letter-spacing:.8px; }
.sv-service-tab:not(:last-child)::after { content:''; position:absolute; right:0; height:34px; width:1px; background:#d9e3db; }
.sv-service-tab > svg:first-child { width:29px; height:29px; color:#6f9b8f; }
.sv-service-tab > svg:last-child { width:16px; height:16px; color:#a0b6ac; }
.sv-service-tab strong { display:block; font-size:14px; font-weight:700; line-height:1.4; color:#365552; }
.sv-service-tab small { display:block; margin-top:5px; font-size:10px; line-height:1.3; color:#7a8f86; }
.sv-service-tab[aria-selected=true] { background:#e9efe6; border-bottom-color:#0c8084; }
.sv-service-tab[aria-selected=true] strong,.sv-service-tab[aria-selected=true] > svg { color:#075c62; }
.sv-service-tab:hover:not([aria-selected=true]) { background:#edf2eb; }
.sv-service-panel { display:grid; grid-template-columns:1.08fr 1fr; min-height:552px; overflow:hidden; border:1px solid #e0e7df; border-radius:15px; background:#fff; box-shadow:0 24px 48px -36px #163e3a45; scroll-margin-top:30px; animation:sv-panel-enter .5s ease both; }
.sv-service-panel[hidden] { display:none; }
.sv-service-photo { position:relative; margin:0; min-height:100%; background:#ecf2eb; overflow:hidden; }
.sv-service-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:34% center; transition:scale .85s cubic-bezier(.2,.6,.2,1); }
.sv-service-panel:hover .sv-service-photo img { scale:1.025; }
.sv-service-panel#commercial .sv-service-photo img { object-position:76% center; }
.sv-service-photo::after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#042b3ccc); pointer-events:none; }
.sv-service-photo figcaption { position:absolute; z-index:1; bottom:27px; left:29px; right:25px; color:#fff; font-size:12px; display:flex; gap:13px; align-items:center; letter-spacing:.3px; }
.sv-service-photo figcaption svg { width:23px; height:23px; flex-shrink:0; padding:11px; box-sizing:content-box; border:1px solid #ffffff5e; border-radius:50%; background:#ffffff0d; backdrop-filter:blur(6px); color:#c1f3e6; }
.sv-service-body { position:relative; padding:37px 43px; align-self:center; }
.sv-service-eyebrow { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:0 0 22px; font-size:8px; font-weight:700; letter-spacing:1.8px; color:#6c8c80; text-transform:uppercase; }
.sv-service-eyebrow span:last-child { color:#cad5ca; font:400 38px/1 Montserrat,Arial,sans-serif; letter-spacing:-2px; }
.services-page .sv-service-body h3 { margin:0 0 17px; font-size:31px; line-height:1.16; letter-spacing:-1.2px; font-weight:800; color:var(--sv-ink); }
.sv-service-body > .sv-copy { font-size:14px; line-height:1.8; }
.sv-scope-title { margin:24px 0 13px; padding-top:20px; border-top:1px solid #e5eae2; font-size:9px; font-weight:700; letter-spacing:1.7px; text-transform:uppercase; color:#3d6760; }
.sv-scope { display:grid; grid-template-columns:1fr 1fr; gap:10px 13px; }
.sv-scope li { display:flex; align-items:flex-start; gap:8px; color:#58716d; font-size:11px; line-height:1.5; }
.sv-scope svg { width:14px; height:14px; flex-shrink:0; margin-top:1px; color:#40916c; }
.sv-scope-note { margin:17px 0 23px; font-size:10px; line-height:1.6; color:#84948a; }
.sv-service-body .sv-button { font-size:10px; min-height:46px; padding-left:17px; gap:18px; }
.sv-service-body .sv-button svg { width:23px; height:23px; padding-block:2px; }
.sv-service-note { display:flex; align-items:center; justify-content:center; gap:12px; margin:24px 0 0; font-size:11px; color:#76867c; line-height:1.65; }
.sv-service-note svg { width:19px; height:19px; flex-shrink:0; color:#6e9b57; }

/* A quiet, inset navy chapter; the photo is layered below readable copy. */
.sv-journey { position:relative; width:min(calc(100% - 2 * var(--page-gutter)),1280px); margin:0 auto; padding:48px 42px; border-radius:18px; background:linear-gradient(105deg,#082f3cf0 0%,#082f3cde 46%,#082f3ccc 100%),url('assets/services/journey-interior-bg.png') center / cover no-repeat,#082f3c; color:#fff; overflow:hidden; }
.sv-journey > .sv-shell { width:100%; }
.sv-journey { scroll-margin-top:24px; }
.sv-journey::after { content:''; position:absolute; top:0; right:0; width:47%; height:100%; opacity:.18; background:repeating-linear-gradient(90deg,transparent 0,transparent 88px,#a8dbd018 89px,#a8dbd018 90px); pointer-events:none; }
.sv-journey-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:35px; }
.sv-journey .sv-kicker { color:#90d0c5; }
.services-page .sv-journey h2 { font-size:34px; max-width:510px; }
.sv-journey h2 span { color:#96ded0; }
.sv-journey-heading > p { max-width:280px; color:#a5c3c4; font-size:13px; line-height:1.8; margin:0; }
.sv-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; position:relative; z-index:1; }
.sv-step { position:relative; padding:23px 26px 0; border-top:1px solid #ffffff2b; border-right:1px solid #ffffff15; }
.sv-step:first-child { padding-left:0; }
.sv-step:last-child { padding-right:0; border-right:0; }
.sv-step-top { display:flex; align-items:center; gap:15px; margin-bottom:19px; }
.sv-step-top span { font:400 32px/1 Montserrat,Arial,sans-serif; color:#82ada8; letter-spacing:-1.8px; }
.sv-step-top svg { width:21px; height:21px; padding:10px; border:1px solid #ffffff20; border-radius:50%; color:#96d9cc; box-sizing:content-box; }
.sv-step h3 { margin:0 0 12px; font-size:15px; line-height:1.4; letter-spacing:-.3px; }
.sv-step p { margin:0; font-size:12px; line-height:1.85; color:#a2bec0; }

/* Material details: a photographic story opposite a precise service list. */
.sv-specialist { display:grid; grid-template-columns:1fr 1.05fr; align-items:center; gap:clamp(35px,7vw,100px); }
.sv-specialist .sv-copy { margin-top:18px; max-width:415px; font-size:14px; }
.sv-specialist-link { display:inline-flex; align-items:center; gap:19px; padding-block:12px; margin-top:8px; border-bottom:1px solid #a9c9b9; color:var(--sv-teal); font-size:11px; font-weight:700; }
.sv-specialist-link svg { width:19px; height:19px; }
.sv-specialist-photo { position:relative; height:212px; margin:26px 0 0; border-radius:10px 10px 65px 10px; overflow:hidden; }
.sv-specialist-photo img { width:100%; height:100%; object-fit:cover; object-position:center 60%; display:block; transition:scale .7s; }
.sv-specialist-photo:hover img { scale:1.035; }
.sv-specialist-photo::after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#082f3c99); }
.sv-specialist-photo figcaption { position:absolute; bottom:18px; left:22px; z-index:1; font-size:10px; color:#fff; letter-spacing:.5px; }
.sv-detail-list { display:grid; gap:0; }
.sv-detail-item { display:grid; grid-template-columns:54px 1fr; gap:24px; padding:29px 0; border-top:1px solid var(--sv-line); }
.sv-detail-item:first-child { padding-top:0; border:0; }
.sv-detail-item:last-child { padding-bottom:0; }
.sv-detail-item > span { display:grid; place-items:center; width:54px; height:54px; border:1px solid #cddfd1; border-radius:50%; background:linear-gradient(140deg,#f9fbf7,#eaf1e5); color:#3d835b; }
.sv-detail-item svg { width:27px; height:27px; }
.sv-detail-item h3 { margin:3px 0 10px; font-size:19px; letter-spacing:-.5px; }
.sv-detail-item p { margin:0; font-size:14px; line-height:1.85; color:var(--sv-muted); }
.sv-faq-section { background:radial-gradient(ellipse at 4% 100%,#e0eee4a3,transparent 55%),#f0f4ed; border-block:1px solid #e0e8dc; scroll-margin-top:24px; }
.sv-faq-layout { display:grid; grid-template-columns:.8fr 1.2fr; align-items:start; gap:clamp(35px,7vw,100px); }
.sv-faq-heading h2 { max-width:330px; }
.sv-faq-heading .sv-copy { margin-top:20px; max-width:260px; font-size:14px; }
.sv-faq-concierge { display:flex; align-items:center; gap:14px; max-width:300px; margin-top:30px; padding:18px; border:1px solid #d0dfd2; border-radius:13px; background:#ffffff80; }
.sv-faq-concierge-icon { display:grid; place-items:center; flex-shrink:0; width:43px; height:43px; border:1px solid #c2d9cd; border-radius:50%; color:#137c78; background:#eaf4eb; }
.sv-faq-concierge-icon svg { width:23px; height:23px; }
.sv-faq-concierge p { margin:0 0 6px; color:#72877c; font-size:11px; }
.sv-faq-concierge a { display:inline-flex; align-items:center; gap:12px; color:#175952; font-size:12px; font-weight:700; }
.sv-faq-concierge a > svg { width:18px; height:18px; transition:translate .25s; }
.sv-faq-concierge a:hover > svg { translate:3px 0; }
.sv-faq-list { display:grid; gap:12px; align-content:start; }
.sv-faq-item { position:relative; border:1px solid #dce5d9; border-radius:14px; background:#ffffffc9; overflow:hidden; box-shadow:0 5px 12px -10px #123b3026; transition:border-color .3s,box-shadow .3s,background .3s; }
.sv-faq-item.is-open { border-color:#a3c9bb; background:#fff; box-shadow:0 16px 30px -24px #104f3c70; }
.sv-faq-item h3 { margin:0; }
.sv-faq-question { display:grid; grid-template-columns:32px minmax(0,1fr) 35px; align-items:center; gap:16px; width:100%; min-height:85px; border:0; padding:23px; background:transparent; color:#193f44; font:700 15px/1.55 Lato,Arial,sans-serif; text-align:left; transition:color .3s; }
.sv-faq-number { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; background:#f0f4ec; color:#82988a; font:700 10px/1 Montserrat,Arial,sans-serif; letter-spacing:.5px; transition:background .3s,color .3s; }
.sv-faq-question > svg { width:17px; height:17px; padding:8px; box-sizing:content-box; border:1px solid #d3e1d5; border-radius:50%; color:var(--sv-teal); transition:rotate .3s,background .3s,color .3s,border-color .3s; }
.sv-faq-question:hover { color:#087b7a; }
.sv-faq-item.is-open .sv-faq-question { color:#146b66; }
.sv-faq-item.is-open .sv-faq-number { background:#0b5458; color:#c6f0dd; }
.sv-faq-item.is-open .sv-faq-question > svg { rotate:180deg; background:#0b5458; border-color:#0b5458; color:#dcf5e9; }
.sv-faq-answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s ease; }
.sv-faq-item.is-open .sv-faq-answer { grid-template-rows:1fr; }
.sv-faq-answer > div { overflow:hidden; }
.sv-faq-answer p { margin:0; padding:0 55px 27px 71px; color:var(--sv-muted); font-size:14px; line-height:1.85; }
.services-page .sv-faq-item .sv-faq-question:focus-visible { outline:2px solid #148d86; outline-offset:-5px; border-radius:13px; }
.sv-closing { position:relative; display:flex; justify-content:space-between; align-items:center; gap:45px; margin-block:var(--sv-space); padding:46px; min-height:242px; overflow:hidden; isolation:isolate; border-radius:18px; color:#fff; background:#082e3e; }
.sv-closing::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#062b3ff5 20%,#062b3fed 51%,#06344c9e),url('assets/aftercare/quote-room-bg.png') right 52%/cover no-repeat; z-index:-1; }
.sv-closing::after { content:''; position:absolute; inset:10px; border:1px solid #d0eee423; border-radius:10px; pointer-events:none; }
.sv-closing .sv-kicker { color:#9bd8cf; }
.sv-closing h2 { max-width:690px; font-size:clamp(28px,2.8vw,39px); }
.sv-closing h2 span { display:block; color:#a1e3d7; }
.sv-closing-actions { display:grid; justify-items:stretch; gap:14px; min-width:218px; text-align:center; z-index:1; }
.sv-closing-actions .sv-button { background:linear-gradient(110deg,#d1eee4,#a6ded0); color:#133e43; border-color:#dcf3e9; box-shadow:0 10px 30px -20px #a6e8df; }
.sv-closing-actions .sv-button svg { border-color:#719e9350; }
.sv-closing-actions > p { margin:0; font-size:9px; color:#b4cecb; }
.sv-closing-actions > a { font-size:11px; color:#c3ddda; }
.services-page :is(.sv-service-tab,.sv-button,.sv-faq-question,.sv-banner-link,.sv-specialist-link):focus-visible { outline:3px solid #18b4b1; outline-offset:4px; }
@keyframes sv-panel-enter { from { opacity:.3; translate:0 9px; } to { opacity:1; translate:0 0; } }

@media (max-width:1100px) {
  .sv-banner-copy { padding-inline:30px; }
  .sv-banner h1 { font-size:40px; }
  .sv-collage { padding-right:23px; gap:10px; }
  .sv-service-tab { gap:10px; padding-inline:14px; grid-template-columns:28px 1fr; }
  .sv-service-tab > svg:last-child { display:none; }
  .sv-service-body { padding:28px; }
  .services-page .sv-service-body h3 { font-size:28px; }
  .sv-service-panel { grid-template-columns:1fr 1.05fr; min-height:570px; }
  .sv-scope { grid-template-columns:1fr; gap:8px; }
  .sv-journey { padding:40px 30px; background-position:center,58% center; }
  .sv-step { padding-inline:20px; }
  .sv-closing { padding:40px 32px; }
}
@media (max-width:900px) {
  .sv-banner { height:305px; grid-template-columns:1.05fr 1fr; }
  .sv-banner-copy { padding:22px 25px; }
  .sv-banner h1 { font-size:34px; letter-spacing:-1.5px; }
  .sv-banner .sv-kicker { font-size:8px; letter-spacing:1.5px; margin-bottom:15px; }
  .sv-banner-copy > p:not(.sv-kicker) { font-size:12px; max-width:280px; margin-top:14px; }
  .sv-banner-link { margin-top:14px; font-size:10px; gap:17px; }
  .sv-banner-link svg { width:21px; height:21px; padding:5px; }
  .sv-collage { height:238px; padding:0 20px 0 3px; gap:9px; }
  .sv-collage figure { height:172px; border-width:4px; border-radius:43px 43px 13px 13px; }
  .sv-collage figure:nth-child(2) { height:222px; border-radius:17px; }
  .sv-collage figure:nth-child(3) { height:168px; border-radius:43px 43px 13px 13px; }
  .sv-collage-label { bottom:17px; gap:7px; padding:10px 13px; font-size:8px; }
  .sv-collage-label svg { width:16px; height:16px; }
  .sv-assurances li { gap:8px; font-size:10px; }
  .sv-assurances svg { width:18px; height:18px; }
  .sv-heading { gap:30px; }
  .sv-heading .sv-copy { max-width:260px; font-size:13px; }
  .sv-service-tab { gap:9px; min-height:88px; padding-inline:12px; grid-template-columns:24px 1fr; }
  .sv-service-tab > svg:first-child { width:24px; height:24px; }
  .sv-service-tab strong { font-size:12px; }
  .sv-service-tab small { font-size:9px; }
  .sv-service-panel { grid-template-columns:.9fr 1.1fr; min-height:560px; }
  .sv-service-body { padding:25px; }
  .sv-service-photo figcaption { left:20px; bottom:22px; font-size:10px; gap:10px; }
  .sv-service-photo figcaption svg { padding:8px; width:19px; height:19px; }
  .sv-service-eyebrow { font-size:7px; letter-spacing:1.3px; }
  .sv-service-eyebrow span:last-child { font-size:30px; }
  .sv-journey-heading { gap:25px; }
  .services-page .sv-journey h2 { font-size:29px; }
  .sv-journey-heading > p { max-width:220px; font-size:12px; }
  .sv-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 0; }
  .sv-step { padding:22px 27px 0; }
  .sv-step:nth-child(2n) { border-right:0; padding-right:0; }
  .sv-step:nth-child(3) { padding-left:0; }
  .sv-specialist,.sv-faq-layout { gap:38px; }
  .sv-detail-item { gap:16px; grid-template-columns:45px 1fr; padding-block:26px; }
  .sv-detail-item > span { width:45px; height:45px; }
  .sv-detail-item svg { width:23px; height:23px; }
  .sv-detail-item h3 { font-size:16px; }
  .sv-detail-item p { font-size:13px; }
  .sv-specialist-photo { height:185px; }
  .sv-closing { gap:25px; padding:36px 30px; }
  .sv-closing h2 { font-size:28px; }
  .sv-closing-actions { min-width:198px; }
  .sv-closing-actions .sv-button { font-size:10px; gap:12px; }
}
@media (max-width:650px) {
  .services-page { --sv-space:48px; }
  .sv-breadcrumb { padding-block:15px; font-size:9px; }
  .sv-banner { height:420px; display:block; border-radius:15px; }
  .sv-banner-copy { padding:25px 23px; }
  .sv-banner-copy::before { top:29px; height:27px; }
  .sv-banner h1 { font-size:clamp(26px,8.2vw,34px); line-height:1.1; letter-spacing:-1.5px; }
  .sv-banner .sv-kicker { font-size:7px; letter-spacing:1.7px; margin-bottom:13px; }
  .sv-banner-copy > p:not(.sv-kicker) { font-size:12px; line-height:1.7; margin-top:13px; max-width:285px; }
  .sv-banner-link { margin-top:12px; gap:16px; }
  .sv-banner-link svg { width:18px; height:18px; padding:4px; }
  .sv-collage { position:absolute; bottom:13px; right:22px; left:22px; height:162px; padding:0; gap:10px; max-width:330px; margin-inline:auto; }
  .sv-collage figure { height:123px; border-width:3px; border-radius:32px 32px 9px 9px; }
  .sv-collage figure:nth-child(2) { height:155px; border-radius:13px; }
  .sv-collage figure:nth-child(3) { height:120px; border-radius:32px 32px 9px 9px; }
  .sv-collage-label { left:49%; bottom:10px; font-size:7px; padding:8px 11px; gap:6px; }
  .sv-collage-label svg { width:14px; height:14px; }
  .sv-assurances { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 0; padding-block:21px; }
  .sv-assurances li { justify-content:flex-start; padding-inline:10px; gap:9px; font-size:10px; line-height:1.4; }
  .sv-assurances li:nth-child(2n) { border:0; padding-left:15px; }
  .sv-assurances li:nth-child(2n+1) { padding-left:0; }
  .sv-heading { flex-direction:column; align-items:flex-start; gap:18px; margin-bottom:24px; }
  .services-page h2 { font-size:30px; letter-spacing:-1.2px; }
  .sv-kicker { font-size:8px; letter-spacing:1.7px; margin-bottom:15px; }
  .sv-heading .sv-copy { max-width:none; font-size:14px; padding-left:15px; }
  .sv-tablist { grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid #d8e3d8; border-radius:12px; overflow:hidden; }
  .sv-service-tab { grid-template-columns:25px 1fr; gap:10px; min-height:80px; padding:17px 12px; }
  .sv-service-tab::before { font-size:6px; top:6px; right:9px; }
  .sv-service-tab::after { display:none; }
  .sv-service-tab:nth-child(odd) { border-right:1px solid #d8e3d8; }
  .sv-service-tab:nth-child(-n+2) { border-top:0; }
  .sv-service-tab:nth-child(n+3) { border-top:1px solid #d8e3d8; }
  .sv-service-tab strong { font-size:12px; }
  .sv-service-tab small { font-size:9px; margin-top:4px; }
  .sv-service-panel { grid-template-columns:1fr; min-height:0; border-radius:13px; }
  .sv-service-photo { height:255px; min-height:0; }
  .sv-service-photo img { object-position:35% 45%; }
  .sv-service-photo figcaption { bottom:19px; left:22px; font-size:11px; }
  .sv-service-body { padding:26px 24px 29px; }
  .sv-service-eyebrow { margin-bottom:18px; font-size:7px; }
  .sv-service-eyebrow span:last-child { font-size:32px; }
  .services-page .sv-service-body h3 { font-size:29px; max-width:300px; }
  .sv-service-body > .sv-copy { font-size:14px; }
  .sv-scope { gap:10px; grid-template-columns:1fr; }
  .sv-scope li { font-size:13px; }
  .sv-scope-note { font-size:10px; }
  .sv-service-body .sv-button { width:100%; min-height:49px; font-size:11px; }
  .sv-service-note { justify-content:flex-start; font-size:10px; gap:10px; margin-top:20px; }
  .sv-journey { padding:30px 24px; border-radius:15px; background-position:center,67% center; }
  .sv-journey-heading { flex-direction:column; align-items:flex-start; gap:17px; margin-bottom:28px; }
  .services-page .sv-journey h2 { font-size:28px; }
  .sv-journey-heading > p { max-width:none; font-size:13px; }
  .sv-steps { gap:25px 0; }
  .sv-step { padding:18px 14px 0; }
  .sv-step-top { gap:10px; margin-bottom:15px; }
  .sv-step-top span { font-size:26px; }
  .sv-step-top svg { width:17px; height:17px; padding:7px; }
  .sv-step h3 { font-size:13px; line-height:1.45; margin-bottom:9px; }
  .sv-step p { font-size:11px; line-height:1.8; }
  .sv-specialist,.sv-faq-layout { grid-template-columns:1fr; gap:31px; }
  .sv-specialist .sv-copy { max-width:none; font-size:14px; }
  .sv-specialist-link { font-size:12px; }
  .sv-specialist-photo { height:205px; margin-top:22px; border-bottom-right-radius:50px; }
  .sv-detail-item { grid-template-columns:45px 1fr; gap:17px; padding-block:25px; }
  .sv-detail-item h3 { font-size:17px; margin-top:0; }
  .sv-detail-item p { font-size:14px; }
  .sv-faq-heading h2,.sv-faq-heading .sv-copy { max-width:none; }
  .sv-faq-heading .sv-copy { margin-top:16px; }
  .sv-faq-concierge { margin-top:24px; padding:15px; max-width:none; }
  .sv-faq-list { gap:10px; }
  .sv-faq-item { border-radius:12px; }
  .sv-faq-question { grid-template-columns:26px minmax(0,1fr) 29px; font-size:14px; min-height:80px; gap:12px; padding:19px 17px; }
  .sv-faq-number { width:26px; height:29px; font-size:9px; border-radius:7px; }
  .sv-faq-question > svg { width:15px; height:15px; padding:6px; }
  .sv-faq-answer p { padding:0 23px 23px 55px; font-size:13px; }
  .sv-closing { align-items:flex-start; flex-direction:column; padding:31px 25px; gap:26px; border-radius:15px; }
  .sv-closing::before { background:linear-gradient(100deg,#062b3ff5,#06344cd6),url('assets/aftercare/quote-room-bg.png') 65% center/cover no-repeat; }
  .sv-closing h2 { font-size:29px; }
  .sv-closing-actions { width:100%; min-width:0; }
  .sv-closing-actions .sv-button { width:100%; font-size:12px; }
  .sv-closing-actions > p { font-size:9px; }
  .sv-closing-actions > a { font-size:12px; }
}
@media (max-width:360px) {
  .sv-banner { height:402px; }
  .sv-banner-copy { padding-inline:20px; }
  .sv-banner h1 { font-size:26px; letter-spacing:-1.3px; }
  .sv-banner-copy > p:not(.sv-kicker) { max-width:245px; font-size:11px; }
  .sv-collage { left:19px; right:19px; height:159px; gap:8px; }
  .sv-collage-label { font-size:6px; padding:8px 10px; }
  .sv-assurances li { font-size:9px; gap:7px; }
  .sv-assurances li:nth-child(2n) { padding-left:10px; }
  .sv-assurances svg { width:16px; height:16px; }
  .sv-service-tab { gap:8px; padding-inline:10px; }
  .sv-service-tab strong { font-size:11px; }
  .sv-service-tab small { font-size:8px; }
  .sv-service-body { padding-inline:20px; }
  .services-page .sv-service-body h3 { font-size:26px; }
  .sv-journey { padding-inline:20px; }
  .sv-step { padding-inline:11px; }
  .sv-step h3 { font-size:12px; }
  .sv-step p { font-size:10px; }
  .sv-closing { padding-inline:22px; }
  .sv-closing h2 { font-size:26px; }
}
@media (max-width:650px) {
  .sv-steps { grid-template-columns:minmax(0,1fr); gap:0; }
  .sv-step,.sv-step:first-child,.sv-step:nth-child(2n),.sv-step:nth-child(3) { display:grid; grid-template-columns:51px minmax(0,1fr); gap:7px 16px; padding:21px 0; border-right:0; }
  .sv-step:last-child { padding-bottom:0; }
  .sv-step-top { grid-column:1; grid-row:1 / span 2; flex-direction:column; align-items:flex-start; gap:10px; margin:0; }
  .sv-step-top span { font-size:28px; }
  .sv-step-top svg { width:19px; height:19px; padding:7px; }
  .sv-step h3 { grid-column:2; margin:0; font-size:15px; line-height:1.5; }
  .sv-step p { grid-column:2; font-size:13px; line-height:1.8; }
}
@media (prefers-reduced-motion:reduce) { .services-page *, .services-page *::before,.services-page *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
