/* Shared internal pages: catalog, services, information and errors. */
.breadcrumbs{padding-block:24px;font-size:var(--text-caption);color:var(--muted)}
.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px 11px}
.breadcrumbs li{display:flex;align-items:center;gap:11px}
.breadcrumbs li+li::before{content:"/";color:var(--muted)}
.breadcrumbs a:hover{color:var(--blue)}
.service-hero{padding:24px 0 65px}
.service-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center}
.service-hero h1{font-size:clamp(2.5rem,4.05vw,3.75rem);line-height:1.12}
.service-hero h1 em{color:var(--blue)}
.service-intro{font-size:1rem;line-height:1.85;margin-top:25px;max-width:610px}
.service-hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:22px;margin-top:29px}
.quiet-note{display:flex;align-items:center;gap:8px;font-size:var(--text-ui);margin-top:20px}
.quiet-note .icon{width:17px;height:17px}



.service-jump{border-block:1px solid var(--line);background:var(--white)}
.service-jump>.container{display:flex;gap:38px;flex-wrap:wrap;padding-block:17px}
.service-jump a{font-size:var(--text-ui);font-weight:700;text-decoration:none;min-height:32px;display:flex;align-items:center}
.service-jump a:hover{text-decoration:underline}
.scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.scope-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.scope-card{position:relative;background:var(--white);padding:32px;border:1px solid var(--line);border-radius:var(--radius)}
.scope-number{display:block;font-size:var(--text-caption);font-weight:800;color:var(--blue);margin-bottom:23px}
.scope-card h3{font-size:1.35rem;margin-bottom:17px}
.scope-card p{font-size:1rem;line-height:1.85}
.preparation-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:start}
.check-list{list-style:none;margin:32px 0 0;padding:0}
.check-list li{display:flex;gap:15px;margin-bottom:23px;font-size:1rem;color:var(--muted)}
.check-list .icon{color:var(--blue);width:21px;height:21px;margin-top:5px}
.budget-panel{background:var(--ink);color:var(--white);padding:40px;border-radius:var(--radius)}
.budget-panel .eyebrow{color:var(--gold)}
.budget-panel h3{font-size:1.8rem;line-height:1.2}
.budget-panel ul{padding-left:19px;margin-block:26px;font-size:.88rem}
.budget-panel li{padding-left:5px;margin-bottom:13px}
.budget-panel li::marker{color:var(--gold)}
.budget-panel>p:not(.eyebrow){color:var(--white);font-size:var(--text-ui);margin-top:22px;padding-top:22px;border-top:1px solid var(--border)}
.budget-panel .button{margin-top:24px}
.service-process-section{background:var(--surface)}
.process-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin:45px 0 0;padding:0}
.process-list li{border-top:1px solid var(--border);padding-top:22px}
.process-number{display:block;font-size:2.7rem;color:var(--blue);letter-spacing:-.06em;line-height:1.2;margin-bottom:24px}
.process-list h3{font-size:1.25rem;margin-bottom:15px}
.process-list p{font-size:1rem}
.faq-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:80px}
.faq-intro>p:last-child{margin-top:25px;max-width:340px;font-size:.87rem}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.related-card{position:relative;padding:28px 24px 65px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;transition:border-color var(--motion-fast),transform var(--motion-fast) var(--ease-out)}
.related-card:hover{border-color:var(--blue);transform:translateY(-3px)}
.related-card .micro-label{font-size:var(--text-caption);color:var(--muted);line-height:1.9;margin-bottom:18px}
.related-card h3{font-size:1.15rem;line-height:1.35}
.related-card>.icon{position:absolute;bottom:25px;right:25px;color:var(--blue)}
.service-cta{background:var(--blue-hover);color:var(--white);padding:78px 0;text-align:center}
.service-cta .eyebrow{color:var(--gold)}
.service-cta h2 em{color:var(--gold)}
.service-cta p:not(.eyebrow){color:var(--white);margin:24px auto;max-width:510px;font-size:.94rem}
.catalog-hero{padding:42px 0 75px}
.catalog-hero h1{max-width:890px;font-size:clamp(2.8rem,5.5vw,5rem)}
.catalog-hero h1 em{color:var(--blue)}
.catalog-hero .lead{font-size:1.05rem;max-width:660px;margin-top:28px}
.catalog-anchors{display:flex;flex-wrap:wrap;gap:15px;margin-top:30px}
.catalog-grid,.trades-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.trade-card{padding:32px;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column}
.trade-number{font-size:var(--text-caption);font-weight:800;color:var(--blue);margin-bottom:24px}
.trade-card h3{font-size:1.3rem;margin-bottom:15px}
.trade-card h3 a{text-decoration:none}
.trade-card h3 a:hover{text-decoration:underline}
.trade-card p{font-size:1rem;margin-bottom:28px}
.trade-card .text-link{margin-top:auto;font-size:.9375rem}
.legal-page{max-width:880px;padding-block:32px 90px}
.contact-page{padding-block:32px 90px}
.contact-page-heading{max-width:850px;margin-bottom:45px}
.contact-page-heading>p:last-child{font-size:1.0625rem;max-width:670px;margin-top:25px}
.contact-cards .scope-card{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.contact-cards .scope-number{margin:0}
.contact-cards .scope-number .icon{width:32px;height:32px}
.contact-cards h2,.contact-page-info h2{font-size:1.6rem;letter-spacing:-.025em}
.contact-cards .phone-link,.contact-cards .contact-email{font-size:1.0625rem;font-weight:750;margin-top:auto}
.contact-cards address{font-size:1rem;font-style:normal;line-height:1.8}
.contact-page-info{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:60px;padding-top:45px;border-top:1px solid var(--line)}
.contact-page-info h2{margin-bottom:20px}
.contact-page-info p{font-size:1rem}
.contact-page-info .text-link,.contact-page-info .button{margin-top:25px}
@media(max-width:767px){.contact-page{padding-block:24px 60px}.contact-page h1{font-size:2.6rem}.contact-page-info{grid-template-columns:1fr;gap:35px;margin-top:35px;padding-top:30px}.contact-cards .scope-card{gap:17px}}
.legal-page h1{font-size:clamp(2.4rem,5vw,4rem);margin-bottom:30px}
.legal-notice{padding:22px 25px;background:var(--surface);border-left:3px solid var(--blue);font-size:.9rem;margin-bottom:35px}
.legal-page h2{font-size:1.6rem;margin:38px 0 18px}
.legal-page h3{font-size:1.15rem;margin:26px 0 14px}
.legal-page p{font-size:1rem;line-height:1.85}
.legal-page ul{padding-left:22px;margin:16px 0 24px;font-size:1rem;line-height:1.85;color:var(--muted)}
.legal-page li+li{margin-top:8px}
.legal-page dt{font-weight:700}
.legal-page dd{margin:0 0 12px}
.legal-page .contact-details{margin-bottom:25px}
.legal-details{display:grid;grid-template-columns:minmax(160px,230px) minmax(0,1fr);gap:14px 25px;margin-block:24px;line-height:1.75;font-size:var(--text-ui)}
.legal-details dt{color:var(--muted)}
.legal-details dd{margin:0;overflow-wrap:anywhere}
.legal-page p+p{margin-top:16px}
@media(max-width:575px){.legal-details{display:block}.legal-details dt{margin-top:18px}.legal-details dd{margin-top:4px}}
.error-page{padding-block:80px 100px;max-width:850px}
.error-page h1{font-size:3rem;margin-bottom:25px}
.error-page p{margin-bottom:30px}
@media(max-width:1199px){.service-hero-grid{gap:45px}.scope-card{padding:27px}.preparation-grid{gap:55px}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.faq-grid{gap:45px}.budget-panel{padding:33px}.service-jump>.container{gap:30px}}
@media(max-width:991px){.service-hero-grid{grid-template-columns:1fr;gap:35px}.service-hero h1{font-size:3.2rem;max-width:700px}.service-intro{max-width:680px}.service-hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap}.scope-grid,.catalog-grid,.trades-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preparation-grid{grid-template-columns:1fr;gap:35px}.budget-panel{max-width:650px}.faq-grid{grid-template-columns:1fr;gap:35px}.faq-intro>p:last-child{max-width:500px}.process-list{gap:24px}.process-list h3{font-size:1.2rem}.service-jump>.container{gap:23px}}
@media(max-width:767px){.breadcrumbs{font-size:var(--text-caption);padding-block:19px}.service-hero{padding:14px 0 40px}.service-hero h1{font-size:2.7rem}.service-intro{margin-top:21px}.service-hero-actions{flex-direction:column;align-items:flex-start;gap:20px;margin-top:25px}.service-jump>.container{gap:8px 20px;padding-block:12px}.scope-grid,.catalog-grid,.trades-grid{grid-template-columns:1fr;gap:18px}.scope-card{padding:27px}.scope-number{margin-bottom:18px}.budget-panel{padding:29px}.budget-panel h3{font-size:1.7rem}.budget-panel .button{padding-inline:20px;font-size:1rem;gap:17px}.process-list{grid-template-columns:1fr;gap:28px;margin-top:30px}.process-list li{position:relative;padding:22px 0 0 64px;min-height:140px}.process-number{position:absolute;top:22px;left:0;font-size:2.3rem}.process-list h3{font-size:1.25rem}.related-grid{grid-template-columns:1fr;gap:15px}.related-card{padding:24px 65px 24px 24px}.related-card h3{font-size:1.17rem}.related-card .micro-label{margin-bottom:10px}.related-card>.icon{top:50%;right:23px;bottom:auto;transform:translateY(-50%)}.service-cta{padding-block:55px}.service-cta h2 br{display:none}.service-cta p:not(.eyebrow){font-size:.9rem}.catalog-hero{padding:25px 0 50px}.catalog-hero h1{font-size:2.9rem}.catalog-hero .lead{font-size:.94rem;margin-top:22px}.catalog-anchors{gap:10px}.catalog-anchors .button{font-size:.9375rem;padding-inline:18px;gap:15px}.trade-card{padding:27px}.legal-page{padding-block:24px 60px}.legal-page h1{font-size:2.35rem;overflow-wrap:anywhere}.legal-notice{padding:20px;font-size:.85rem}.legal-page h2{font-size:1.45rem}.error-page{padding-block:60px}.error-page h1{font-size:2.5rem}}
@media(max-width:359px){.service-hero h1{font-size:2.3rem}.catalog-hero h1{font-size:2.5rem}.scope-card,.budget-panel{padding:23px}.service-hero .button,.service-cta .button{font-size:1rem;padding-inline:17px;gap:12px}.catalog-anchors .button{padding-inline:14px;gap:10px}}

/* Catalog hierarchy and shared before/after landings. */
.service-hero-grid>*{min-width:0}
.service-hero h1{overflow-wrap:break-word;hyphens:auto}
.service-visual{min-width:0}
.service-visual .comparison{border-radius:var(--radius)}
.service-visual .comparison.is-interactive{aspect-ratio:4/3}
.comparison-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 15px;font-size:var(--text-caption);font-weight:700;margin-top:13px}
.comparison-caption span{font-weight:400}
.service-visual .comparison:not(.is-interactive) figure{height:auto;aspect-ratio:3/4}
.object-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.object-filters button{display:flex;align-items:center;gap:10px;min-height:46px;border:1px solid var(--border);border-radius:4px;padding:10px 15px;font-size:var(--text-ui);font-weight:700;background:var(--white);transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}
.object-filters button::before{content:"";width:.85em;flex-shrink:0}
.object-filters button span{font-size:var(--text-caption);min-width:21px}
.object-filters button[aria-pressed="true"]{color:var(--white);background:var(--ink);border-color:var(--ink);box-shadow:inset 0 -3px var(--gold)}
.object-filters button:hover{border-color:var(--blue)}
.object-filters button[aria-pressed="true"]::before{content:"✓";font-weight:800}
@media(prefers-reduced-motion:reduce){.related-card:hover{transform:none}}
.project-body h3 a{text-decoration:none}
.project-body h3 a:hover{text-decoration:underline}
.project-body .object-benefit{font-size:.9rem;line-height:1.7;margin-top:15px;margin-bottom:23px}
.project-body>.project-caption{margin:0 0 13px}
.catalog-more{margin-top:32px}
.catalog-tree{border-top:1px solid var(--border)}
.catalog-tree>details{border-bottom:1px solid var(--border)}
.catalog-tree>details>summary{display:flex;justify-content:space-between;align-items:center;gap:22px;list-style:none;padding:25px 0;font-size:1.4rem;line-height:1.35;font-weight:700;cursor:pointer}
.catalog-tree-content{padding:0 0 35px}
.catalog-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:26px}
.catalog-groups h3{font-size:1.1rem}
.catalog-groups ul,.child-links{padding-left:18px;margin:16px 0 0}
.catalog-groups li,.child-links li{font-size:.88rem;margin-bottom:10px}
.catalog-groups li::marker,.child-links li::marker{color:var(--blue)}
.catalog-groups a,.child-links a{display:inline-block;padding-block:3px}
.child-links{margin:0 0 25px}
.has-scope{margin-top:32px}
.materials{margin-top:35px;padding-top:28px;border-top:1px solid var(--line)}
.materials h3{margin-bottom:18px}
.materials p{font-size:1rem}
.project-details>summary{padding-right:5px}
.landing-catalog .trade-card{background:var(--white)}
.seo-content{border-top:1px solid var(--line);background:var(--white)}
.seo-content-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.seo-content h2{font-size:clamp(1.65rem,2.5vw,2.4rem);line-height:1.22;max-width:24ch;overflow-wrap:anywhere}
.seo-content-copy{max-width:72ch;margin-top:24px;line-height:1.8}
.seo-content-links{border-left:2px solid var(--gold);padding-left:24px}
.seo-content-links h3{font-size:1.05rem;margin-bottom:15px}
.seo-content-links ul{list-style:none;margin:0;padding:0}
.seo-content-links li+li{border-top:1px solid var(--line)}
.seo-content-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:12px 0;text-decoration:none;overflow-wrap:anywhere}
.seo-content-links a:hover{text-decoration:underline}
.seo-content-links svg{flex-shrink:0;width:18px;height:18px}
@media(max-width:767px){.seo-content-grid{grid-template-columns:1fr}.seo-content-links{padding-left:18px}}
@media(max-width:991px){.catalog-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.service-visual{max-width:720px}}
@media(max-width:767px){.catalog-groups{grid-template-columns:1fr;gap:25px}.object-filters{gap:8px;margin-bottom:24px}.object-filters button{padding:9px 11px}.catalog-tree>details>summary{font-size:1.15rem}.service-hero h1{font-size:clamp(2rem,7.5vw,2.7rem)}.service-visual .comparison.is-interactive{aspect-ratio:1.2}}
