/* Editorial composition for the family business. Existing behavior stays intact. */
:root { --ink:#153a53; --muted:#536a79; --radius:12px; }
h1,h2,h3 { font-weight:550; letter-spacing:-.035em; text-wrap:balance; }
h2 { font-size:clamp(34px,3.7vw,52px); }
h2 span { color:inherit; }
.eyebrow { font-size:11px; letter-spacing:1.7px; font-weight:550; }
.topline { background:#f0f7fa; color:var(--ink); font-size:11px; border-bottom:1px solid #dae8ef; }
.header-inner { min-height:94px; }
.button { border-radius:4px; box-shadow:none; font-weight:600; }
.button:hover { transform:translateY(-2px); box-shadow:none; }
.hero { display:block; padding-block:50px 0; min-height:0; }
.hero-copy { display:grid; grid-template-columns:1.45fr 1fr; column-gap:70px; align-items:start; max-width:none; }
.hero-copy>.eyebrow { grid-column:1; grid-row:1; margin-bottom:24px; }
.hero h1 { grid-column:1; grid-row:2 / span 4; font-size:clamp(50px,5vw,72px); letter-spacing:-.04em; line-height:1.02; font-weight:550; margin:0; text-wrap:initial; }
.hero-description { grid-column:2; grid-row:2; font-size:17px; line-height:1.75; max-width:410px; }
.hero-actions { grid-column:2; grid-row:3; margin-top:22px; gap:9px 20px; }
.hero-actions .quiet-link { font-size:13px; }
.hero .button { font-size:14px; padding:15px 20px; }
.hero .button .arrow { display:none; }
.microcopy { grid-column:2; grid-row:4; font-size:12px; margin-top:8px; }
.hero-visual { height:370px; min-height:0; padding:0; margin:42px 0 0; z-index:1; }
.photo-frame { border-radius:3px; height:100%; width:100%; }
.hero-photo { object-position:center 65%; }
.photo-frame::after { border-radius:0; inset:14px; border-color:#ffffff70; }
.hero-visual:hover .hero-photo { transform:none; }
.photo-label { top:24px; left:24px; right:auto; background:#fffef0eb; font-size:10px; letter-spacing:1.1px; border-radius:0; padding:10px 14px; }
.image-caption { left:18px; right:auto; bottom:15px; font-size:11px; }
.floating-note { left:auto; right:42px; bottom:-25px; width:300px; border:0; border-radius:0; padding:25px 26px; background:var(--blue); color:white; box-shadow:none; animation:none; gap:18px; }
.floating-note:after { content:''; position:absolute; width:115px; height:115px; right:0; top:0; border-top:1px solid #ffffff50; border-right:1px solid #ffffff50; border-top-right-radius:100%; pointer-events:none; }
.floating-note strong { font-family:var(--heading); font-size:25px; font-weight:550; }
.floating-note small { color:#dceefb; font-size:12px; line-height:1.6; display:block; margin-top:5px; }
.note-icon { background:none; color:white; width:28px; }
.note-icon .icon { width:27px; height:27px; }
.benefit-strip { background:#fff; border-top:0; border-bottom:1px solid var(--line); }
.benefit-strip .container { padding-block:38px 26px; padding-right:360px; flex-wrap:wrap; justify-content:flex-start; gap:10px 32px; }
.benefit-strip span { font-size:12px; }
.benefit-strip span:first-child { display:none; }
.section { padding-block:85px; }
.section-heading { align-items:end; margin-bottom:35px; }
.section-heading>p { font-size:16px; max-width:380px; }
.services-layout { grid-template-columns:1fr; gap:0; }
.service-main { background:#edf6fa; color:var(--ink); display:grid; grid-template-columns:.9fr 1.2fr; gap:0 50px; border-radius:0; padding:37px 40px; }
.service-title { grid-column:1; grid-row:1; margin-bottom:16px; }
.service-title .icon-tile { display:none; }
.service-number { color:#466d82; font-size:10px; letter-spacing:1px; }
.service-main h3 { grid-column:1; grid-row:2 / span 2; font-size:43px; font-weight:550; margin:0; }
.service-tabs { grid-column:2; grid-row:1; margin-bottom:0; gap:0; border-bottom:1px solid #c2d9e6; flex-wrap:nowrap; }
.service-tabs button { background:none; color:#526b7b; border:0; border-bottom:2px solid transparent; border-radius:0; font-size:14px; padding:10px 16px; flex:1; white-space:nowrap; }
.service-tabs button[aria-selected=true], .service-tabs button:hover { background:none; color:var(--blue); border-bottom-color:var(--blue); }
.service-tabs button:focus-visible { outline-color:var(--blue); }
#service-panel { grid-column:2; grid-row:2 / span 2; }
#service-description { color:var(--muted); font-size:16px; max-width:none; min-height:85px; margin:20px 0; }
.service-link { color:var(--blue); border-top:0; font-size:14px; min-height:44px; padding-top:5px; margin-top:auto; justify-content:flex-start; gap:20px; }
.service-watermark { display:none; }
.service-main::before { border-color:#0759bb20; right:auto; left:-205px; top:70px; }
.service-main::after { border-color:#0759bb15; right:auto; left:-226px; top:48px; }
.service-side { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.service-card { display:grid; grid-template-columns:35px 1fr; gap:12px 15px; padding:30px 0 28px; border:0; border-bottom:1px solid #c7dce8; border-radius:0; }
.service-card>div { grid-column:1; grid-row:1 / span 3; margin:0; align-items:flex-start; }
.service-card .icon-tile { display:none; }
.service-card .service-number { color:#427c9b; margin-top:6px; }
.service-card h3 { grid-column:2; font-size:30px; font-weight:500; margin:0; }
.service-card p { grid-column:2; font-size:15px; margin:0; max-width:460px; }
.service-card .text-link { grid-column:2; margin-top:0; font-size:13px; }
.service-card:hover { transform:none; box-shadow:none; border-color:var(--blue); }
.service-card::after { display:none; }
.other-services { font-size:13px; margin-top:18px; }
.about-section { background:#fff; padding-block:0 80px; }
.about-grid { grid-template-columns:1fr 1.1fr; gap:90px; align-items:center; border-top:1px solid var(--line); padding-top:70px; }
.about-image { width:100%; max-width:480px; padding:0; }
.cleaning-photo { border-radius:0; aspect-ratio:1.17; }
.about-image-caption { position:static; padding:15px 0 0; border-radius:0; background:none; box-shadow:none; color:var(--muted); gap:12px; font-size:12px; }
.about-image-caption .icon { width:20px; height:20px; }
.about-image-caption br { display:none; }
.about-image-caption strong { font-weight:400; margin-left:5px; }
.about-copy h2 { font-size:clamp(38px,4vw,54px); line-height:1.08; margin-bottom:24px; }
.about-signature { border-top:1px solid var(--line); padding-top:20px; margin-top:24px; }
.about-signature strong { font-size:20px; font-weight:500; }
.process { background:#f1f7fa; width:100%; padding:48px max(48px,calc((100% - 1240px)/2)); }
.process .section-heading { margin-bottom:30px; }
.process h2 { font-size:38px; }
.process .eyebrow { display:none; }
.steps { gap:50px; }
.step { border-top:0; border-left:1px solid #b9d2df; padding:0 0 0 22px; }
.step-top { margin-bottom:15px; }
.step-top>span { font-size:28px; color:var(--blue); font-weight:450; }
.step-top>.icon { display:none; }
.step h3 { font-size:25px; font-weight:500; }
.step p { font-size:14px; }
.reviews-section { background:#fff; padding-block:80px; }
.reviews-section .section-heading { margin-bottom:32px; }
.reviews-section h2 { font-size:42px; }
.featured-review { display:grid; grid-template-columns:1fr 3fr; gap:16px 55px; padding:38px 0; margin-bottom:32px; border-block:1px solid #c7dce8; }
.featured-review .eyebrow { margin-top:8px; font-size:11px; }
.featured-review blockquote { margin:0; font-family:var(--heading); font-size:clamp(27px,3vw,40px); line-height:1.2; letter-spacing:-.5px; font-weight:450; color:var(--ink); }
.featured-author { grid-column:2; display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; margin-top:10px; font-size:12px; }
.featured-author strong { font-weight:650; }
.featured-author>span:last-child { color:var(--muted); }
.featured-author .stars { font-size:13px; }
.review-track { gap:28px; }
.review-card { border:0; border-radius:0; border-bottom:1px solid var(--line); flex-basis:calc((100% - 56px)/3); padding:12px 12px 26px 0; min-height:220px; }
.review-card::after { display:none; }
.review-card blockquote { font-size:17px; line-height:1.6; }
.review-person .avatar { display:none; }
.review-person strong { font-size:13px; }
.reviews-section::before { opacity:.65; }
.faq-section { border-top:1px solid var(--line); padding-top:65px; }
.faq-section h2 { font-size:40px; }
.contact-card { border-radius:2px; padding:50px; grid-template-columns:1.4fr 1fr; }
.contact-copy h2 { font-size:clamp(42px,4vw,58px); font-weight:500; }
.contact-copy .eyebrow { font-size:10px; }
.hours h3 { font-weight:500; }
.hours dl>div { font-size:14px; }
.footer-top p { font-size:12px; }
@media (max-width:1100px) {
 .hero-copy { gap:0 36px; grid-template-columns:1.2fr 1fr; }
 .hero h1 { font-size:58px; }
 .hero-visual { min-height:0; height:330px; }
 .hero-description { font-size:16px; }
 .hero-actions .quiet-link { min-height:36px; }
 .hero-copy>.eyebrow { font-size:10px; }
 .service-main { column-gap:32px; padding:30px; }
 .service-tabs button { padding-inline:10px; }
 .service-main h3 { font-size:38px; }
 .about-grid { gap:50px; }
 .featured-review { grid-template-columns:.75fr 2fr; gap:18px 30px; }
 .contact-card { gap:40px; padding:38px; }
}
@media (max-width:900px) {
 .hero h1 { font-size:50px; }
 .hero-copy { grid-template-columns:1.1fr 1fr; gap:0 30px; }
 .hero-visual { height:310px; }
 .floating-note { right:24px; width:280px; padding:22px; }
 .benefit-strip .container { padding-right:320px; }
 .service-side { gap:25px; }
 .service-card h3 { font-size:26px; }
 .about-copy h2 { font-size:42px; }
 .process { padding-inline:30px; }
 .steps { gap:28px; }
 .step p { font-size:15px; }
 .faq-section { grid-template-columns:1fr; }
 .contact-card { grid-template-columns:1fr 1fr; }
 .hours { border-top:0; border-left:1px solid #ffffff35; padding:0 0 0 25px; }
 .hours dl>div { gap:12px; font-size:13px; }
 .hours>p { margin-top:14px; }
}
@media (max-width:700px) {
 .header-inner { min-height:78px; }
 .topline .container>span:first-child { font-size:10px; }
 .hero { padding-top:28px; }
 .hero-copy { display:block; }
 .hero-copy>.eyebrow { margin-bottom:18px; font-size:10px; }
 .hero h1 { font-size:clamp(41px,8vw,56px); max-width:580px; line-height:1.04; margin-bottom:23px; }
 .hero-description { font-size:16px; max-width:550px; }
 .hero-actions { display:flex; flex-wrap:wrap; margin-top:23px; gap:8px 24px; }
 .hero .button { width:auto; font-size:14px; min-height:54px; }
 .microcopy { font-size:11px; }
 .hero-visual { height:330px; min-height:0; margin-top:28px; padding:0; }
 .hero-photo { object-position:center 68%; }
 .photo-label { left:16px; top:16px; right:auto; padding:8px 10px; font-size:8px; max-width:calc(100% - 32px); }
 .floating-note { bottom:-44px; right:15px; width:248px; padding:18px; }
 .floating-note strong { font-size:23px; }
 .floating-note small { font-size:11px; }
 .floating-note .note-icon { width:24px; }
 .image-caption { bottom:90px; font-size:10px; }
 .benefit-strip .container { padding:65px 0 22px; gap:12px 25px; }
 .benefit-strip span { font-size:12px; }
 .section { padding-block:58px; }
 .section-heading { display:block; }
 .section-heading>p { margin-top:16px; font-size:15px; }
 h2 { font-size:36px; }
 .services-layout { display:block; }
 .service-main { display:block; padding:28px 24px; }
 .service-main h3 { font-size:36px; margin-bottom:25px; }
 .service-main h3 br { display:none; }
 .service-title { margin-bottom:15px; }
 .service-tabs { display:flex; }
 .service-tabs button { padding:10px 7px; font-size:13px; }
 #service-description { min-height:0; font-size:15px; }
 .service-main::before { top:-150px; left:auto; right:-155px; }
 .service-main::after { top:-172px; left:auto; right:-177px; }
 .service-side { display:block; }
 .service-card { padding:25px 0; grid-template-columns:25px 1fr; }
 .service-card h3 { font-size:28px; overflow-wrap:anywhere; }
 .service-card p { font-size:15px; }
 .other-services { font-size:13px; }
 .about-section { padding-bottom:58px; }
 .about-grid { grid-template-columns:1fr; gap:30px; padding-top:40px; }
 .about-image { max-width:100%; }
 .cleaning-photo { aspect-ratio:1.4; }
 .about-copy h2 { font-size:42px; }
 .about-copy p:not(.eyebrow) { font-size:16px; }
 .process { padding:35px max(16px,3vw); }
 .process h2 { font-size:34px; }
 .steps { display:grid; grid-template-columns:1fr; gap:25px; }
 .step { display:grid; grid-template-columns:34px 1fr; border:0; border-top:1px solid #bed4e0; padding:23px 0 0; gap:8px 16px; }
 .step-top { grid-row:span 2; margin:0; }
 .step-top>span { font-size:27px; }
 .step h3 { font-size:26px; margin:0; }
 .step p { font-size:15px; }
 .reviews-section { padding-block:58px; }
 .reviews-section h2 { font-size:36px; }
 .reviews-section .section-heading { display:block; }
 .review-nav { margin-top:24px; }
 .featured-review { display:block; padding-block:25px; }
 .featured-review .eyebrow { margin:0 0 18px; }
 .featured-review blockquote { font-size:29px; }
 .featured-author { margin-top:24px; gap:9px 18px; }
 .featured-author>span:last-child { flex-basis:100%; font-size:11px; }
 .review-card { flex-basis:86%; padding-right:12px; }
 .review-card blockquote { font-size:17px; }
 .faq-section h2 { font-size:36px; }
 .contact-card { display:block; padding:30px 24px; }
 .contact-copy h2 { font-size:43px; }
 .contact-copy .eyebrow { font-size:9px; }
 .contact-copy .button { width:100%; font-size:14px; }
 .hours { margin-top:25px; border-left:0; border-top:1px solid #ffffff35; padding:24px 0 0; }
 .hours dl>div { font-size:14px; }
}
@media(max-width:380px) {
 .hero h1 { font-size:41px; }
 .hero-actions { display:grid; grid-template-columns:1fr; }
 .hero .button { width:100%; }
 .hero-actions .quiet-link { justify-content:center; }
 .hero-visual { height:290px; }
 .topline .container>span:first-child { max-width:175px; font-size:9px; }
 .service-main { padding:24px 18px; }
 .service-tabs { display:grid; grid-template-columns:1fr 1fr; }
 .service-tabs button { font-size:14px; }
 .contact-copy h2 { font-size:38px; }
}
@media(max-width:980px) and (max-height:500px) {
 .header-inner { min-height:66px; }
 .header nav { max-height:calc(100dvh - 120px); }
}
