/* Motion supports orientation and feedback; reduced motion keeps immediate states. */
.button,.gallery-arrow,.service-menu button,.hero-choice,.nav-toggle{transition:background-color .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s}.button:active,.gallery-arrow:active,.hero-choice:active{transform:scale(.97)}.button>svg,.button>span[aria-hidden]{transition:transform .18s}.button:hover>span[aria-hidden]{transform:translate(2px,-2px)}.button:disabled{opacity:.65;cursor:wait}.header-contact a{min-height:44px}.text-link{min-height:44px;align-items:center}.contact-launcher{transition:opacity .18s,transform .25s}.contact-is-open .contact-launcher{opacity:0;pointer-events:none;transform:translateY(8px)}.contact-dialog,.callback-dialog{transform-origin:center;will-change:auto}.contact-dialog[open],.callback-dialog[open]{border-radius:16px}.is-morphing{will-change:transform}.is-morphing>*{animation:contact-content .26s ease-out both}@keyframes contact-content{from{opacity:0}60%{opacity:0}to{opacity:1}}.contact-head{padding-right:65px}.contact-dialog::backdrop,.callback-dialog::backdrop{backdrop-filter:none;background:#18293860}.contact-head h2{margin:0}.contact-head .dialog-close{background:transparent}.contact-field textarea{resize:none;min-height:52px;max-height:120px}.contact-messages{scroll-behavior:auto}.contact-prompts button{min-height:44px}.contact-photo-item button{width:32px;height:32px;right:-8px;top:-8px}.contact-label{font-size:13px}.chat-message{animation:message-arrive .2s ease-out}@keyframes message-arrive{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}.contact-status{padding-top:7px}.contact-dialog .contact-compose-actions .button{min-width:120px}.contact-dialog .contact-switch{min-height:44px}.contact-keyboard-open .contact-privacy,.contact-keyboard-open .contact-switch{display:none}.contact-dialog .contact-cart ul{max-height:60px}#search-clear{min-width:44px;min-height:44px;margin:-10px -10px -10px 0}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:4px}.intro h1{animation:none}.intro h1>span,.client-intro h1>span{position:relative;display:inline-block}.intro h1>span::after,.client-intro h1>span::after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--accent);opacity:.35;transform-origin:left;animation:ink-line .65s cubic-bezier(.2,.8,.2,1) both}@keyframes ink-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}.price-row .expand{transition:transform .2s}.price-row[open] .expand{transform:rotate(45deg)}.price-row.is-selected{background:linear-gradient(90deg,#f0e9df55,transparent)}.estimate-total strong{font-variant-numeric:tabular-nums}@keyframes price-tick{from{transform:translateY(4px);opacity:.35}to{transform:none;opacity:1}}.site-header nav.is-open{animation:menu-arrive .2s ease-out}@keyframes menu-arrive{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(max-width:600px){.site-header{gap:10px;padding:12px 0}.site-header .header-contact{padding-block:4px}.site-header .brand-mark{width:40px;height:40px}.site-header .brand{font-size:21px}.site-header .brand-caption{font-size:9px}.header-contact a{font-size:20px}.site-header .city-form{max-width:200px}.intro{padding-top:26px;padding-bottom:26px}.intro .eyebrow{margin-bottom:13px}.intro h1{font-size:clamp(34px,10.4vw,43px);letter-spacing:-2px;line-height:1.08}.intro-aside{margin-top:20px}.intro-aside p{font-size:14px;line-height:1.65}.hero-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:17px}.hero-actions .button{font-size:12px;padding:10px 12px}.hero-actions .button.secondary{font-size:11px}.intro-aside .hero-action-note{font-size:11px;line-height:1.6;margin-top:10px}.intro-aside .text-link{margin-top:8px;font-size:12px}.contact-dialog[open]{inset:var(--contact-top,0px) 0 auto 0;height:var(--contact-vh,100dvh);max-height:var(--contact-vh,100dvh);width:100%;max-width:100%;border-radius:0;margin:0}.contact-head{padding:14px 65px 12px 18px;min-height:69px}.contact-head img{width:36px;height:36px}.contact-head .dialog-close{top:12px;right:12px}.contact-head h2{font-size:18px}.contact-messages{padding:18px;min-height:60px}.contact-composer{padding:12px 18px calc(10px + env(safe-area-inset-bottom));max-height:62%;overflow:auto}.contact-welcome h3{font-size:25px}.contact-field textarea{min-height:52px;max-height:110px;font-size:16px;padding:10px 12px}.contact-privacy{font-size:10px!important;line-height:1.5!important}.contact-compose-actions{margin-top:8px}.contact-switch{padding:6px 0}.contact-keyboard-open .contact-composer{padding-bottom:10px;max-height:65%}.contact-keyboard-open .contact-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.contact-keyboard-open .contact-head{padding-block:8px;min-height:58px}.callback-dialog[open]{max-height:calc(var(--contact-vh,100dvh) - 24px);top:var(--contact-top,0px);bottom:auto;margin:12px auto;padding:30px 22px}.contact-launcher{padding:8px 14px calc(8px + env(safe-area-inset-bottom));gap:8px}.contact-launcher .launcher-callback{max-width:115px}.sheet-bottom .text-link,.estimate-callback{min-height:44px}.search{min-height:48px}.client-main{padding-top:24px}.client-intro h1{font-size:clamp(34px,10.4vw,43px);line-height:1.08}.service-menu{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.service-menu button{min-height:90px;padding:10px 8px;font-size:11px}.service-menu .offer-label{gap:6px}.service-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.service-directory-grid a{flex-direction:column;align-items:flex-start;gap:9px;font-size:12px;padding:15px 12px;position:relative;min-height:104px}.service-directory-grid a>span:last-child{position:absolute;right:10px;top:10px}.gallery-filter select{min-height:48px}.footer-bottom a{min-height:44px;display:flex;align-items:center}.work-viewer::backdrop{backdrop-filter:none}.viewer-tools{position:sticky;top:0;background:#1c2c36;z-index:4}.client-tabs button{min-height:48px}}
@media(max-width:359px){.hero-actions{grid-template-columns:1fr}.service-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.header-contact a{font-size:18px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.hero-calculator{margin-top:27px;border:1px solid #d9d5cd;border-radius:10px;background:linear-gradient(125deg,#f2ece3 0%,#fafaf7 75%);max-width:590px;overflow:hidden}.hero-calculator-top{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 12px;gap:12px;font-size:11px;color:var(--muted)}.hero-calculator-top>span:last-child{font-size:9px;letter-spacing:2px;white-space:nowrap}.hero-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 10px;gap:5px}.hero-choice{display:flex;align-items:center;gap:7px;text-align:left;min-height:52px;border:1px solid transparent;border-radius:5px;padding:8px 10px;font-size:12px;position:relative;min-width:0}.hero-choice>span:last-child{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}.hero-choice .offer-icon{width:26px;height:26px}.hero-choice-number{display:none}.hero-choice[aria-pressed=true]{border-color:#c6b09a;background:#fffaf2;box-shadow:0 2px 4px #253c4c06;color:#844b32}.hero-choice:hover{background:#fffaf2}.hero-quote{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;margin:0 10px;border-bottom:1px dashed #c9c9be;min-height:95px}.hero-quote-caption{font-size:10px;color:var(--muted)}.hero-quote p{font-size:14px;line-height:1.45;margin-top:5px;max-width:330px}.hero-quote strong{font-size:25px;font-weight:500;letter-spacing:-.7px;white-space:nowrap;color:var(--accent);font-variant-numeric:tabular-nums}.hero-quote-actions{display:flex;align-items:center;gap:14px;padding:10px 18px}.hero-add{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;border-radius:5px;background:var(--ink);color:white;font-size:12px;padding:9px 14px}.hero-add[aria-disabled=true]{background:#e3eadf;color:#34503c}.hero-add>span{font-size:20px;line-height:1}.hero-details{font-size:11px;min-height:44px;border-bottom:1px solid transparent}.hero-details:hover{border-bottom-color:var(--ink)}.hero-quote-actions>span{font-size:10px;color:var(--muted);margin-left:auto}.hero-calculator.is-changing .hero-quote{animation:quote-change .25s ease-out}.hero-calculator.is-changing~*{animation:none}@keyframes quote-change{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}.intro:has(.hero-calculator){align-items:center}.intro-aside .hero-actions{margin-top:22px}.client-access-steps{display:flex;align-items:center;gap:0;margin:24px 0;max-width:360px}.client-access-step{flex:1;position:relative;display:flex;flex-direction:column;gap:9px;font-size:11px;color:var(--muted)}.client-access-step:not(:last-child)::after{content:'';position:absolute;left:37px;right:8px;top:16px;height:1px;background:var(--line);transition:background .25s}.client-access-step>span{display:grid;place-items:center;width:33px;height:33px;border:1px solid var(--line);border-radius:50%;background:var(--paper);font-size:12px;transition:background .25s,color .25s}.client-access-step[aria-current=step]>span{background:var(--ink);color:white;border-color:var(--ink)}.client-access-step.is-complete>span{background:#e3eadf;color:#34503c;border-color:#bfd0b9}.client-access-step.is-complete::after{background:#9eb59a}.client-auth-card{transition:box-shadow .2s}.client-code-note{max-width:420px}.client-panel-enter{animation:message-arrive .22s ease-out}
@media(max-width:600px){.hero-calculator{margin-top:23px;border-radius:8px}.hero-calculator-top{padding:12px 13px 9px;font-size:10px}.hero-choices{padding:0 7px;gap:4px}.hero-choice{padding:8px 6px;min-height:50px;font-size:11px;gap:5px}.hero-choice .offer-icon{width:23px;height:23px}.service-intro .hero-choice{flex-direction:column;align-items:flex-start;min-height:82px}.hero-quote{padding:13px 6px;margin:0 12px;gap:12px;min-height:88px}.hero-quote p{font-size:12px;line-height:1.5}.hero-quote strong{font-size:21px}.hero-quote-caption{font-size:9px}.hero-quote-actions{padding:8px 12px;gap:10px;flex-wrap:wrap}.hero-add{padding:8px 12px;font-size:11px;min-height:44px}.hero-details{font-size:11px}.hero-quote-actions>span{font-size:9px;max-width:74px;line-height:1.5}.client-access-steps{margin:20px 0 10px}.client-login{gap:24px}.client-intro>p:not(.eyebrow){font-size:14px;line-height:1.7}.client-intro>.text-link{display:none}.client-auth-card{padding:23px 20px}.client-code-input{font-size:32px!important;letter-spacing:16px}.client-auth-card h2{font-size:25px}.client-auth-card form>p{font-size:13px}.client-tabs{position:relative}.client-tabs [aria-selected=true]{transition:border-color .18s,color .18s}.client-access-step{font-size:10px}}

.intro.is-choosing h1>span::after{animation:ink-line .45s ease-out both}

.viewer-image-area{position:relative}.viewer-loading{display:none;position:absolute;font-size:12px;padding:9px 14px;background:#1c2c36dd;border-radius:5px;z-index:1}.is-loading .viewer-loading{display:block}#viewer-image-error{position:absolute;inset:20px;display:grid;place-items:center;text-align:center;font-size:14px;background:#1c2c36;z-index:2}.hero-choice .offer-icon{transition:transform .2s}.hero-choice[aria-pressed=true] .offer-icon{transform:rotate(-6deg)}

@media(max-width:600px){.work-viewer[open] .viewer-tools{position:fixed;inset:0 0 auto;min-height:52px;background:#1c2c36f5}.work-viewer .viewer-image-area{grid-row:2}.work-viewer .viewer-thumbnails{grid-row:3}}

/* Mobile utility placement is shared by home, services and cabinet. */
.mobile-menu-tools{display:none}
@media(max-width:600px){.site-header>.city-form,.site-header>.account-link{display:none}.site-header #main-nav{grid-row:3}.mobile-menu-tools{display:flex;flex-direction:column;gap:12px;grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;margin-top:6px}.site-header .mobile-menu-tools .city-form{display:flex;width:100%;max-width:none;min-height:48px}.mobile-menu-tools .city-form select{width:100%;font-size:16px}.site-header .mobile-menu-tools .account-link{display:flex;gap:10px;align-items:center;min-height:48px;padding:10px 12px;background:#eee9df;border-radius:6px}}

/* Small-screen audit: actions precede detailed examples, labels remain complete. */
.service-intro .hero-choice>span:last-child{display:block;overflow:visible;-webkit-line-clamp:unset}
@media(max-width:600px){
 .service-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
 .service-intro>div:first-child{display:contents}
 .service-intro>div:first-child>.eyebrow{grid-row:1;margin-bottom:0}
 .service-intro h1{grid-row:2}
 .service-intro .intro-aside{grid-row:3;margin-top:5px}
 .service-intro .hero-calculator{grid-row:4;margin-top:5px;width:100%}
 .service-intro .hero-choice{min-height:106px}
 .service-intro .hero-actions{margin-top:14px}
 .service-intro .hero-action-note{margin-top:8px}
 .service-intro .intro-aside .text-link{margin-top:0}
 .client-intro h1{font-size:clamp(29px,8.7vw,36px);letter-spacing:-1.5px}
 .client-intro>p:not(.eyebrow){font-size:13px;line-height:1.6;margin-top:16px}
 .client-access-steps{margin:17px 0 0}
 .client-access-step{gap:7px;font-size:9px}
 .client-access-step>span{width:27px;height:27px;font-size:10px}
 .client-access-step:not(:last-child)::after{top:13px;left:33px}
 .client-login{gap:22px}
 .client-auth-card{padding:20px}
 .client-auth-label{display:none}
 .client-auth-card h2{margin:0 0 12px;font-size:24px}
 .client-auth-card form>p{line-height:1.65;margin-bottom:17px}
 .client-auth-card .contact-consent{margin-block:14px}
 .client-auth-card .button{min-height:46px}
}

#client-change-phone{margin-bottom:16px}

/* A single mobile action dock: contact and a contextual estimate share one row. */
.contact-launcher .launcher-mobile-label,.contact-launcher .launcher-compact-label,.mobile-estimate{display:none}
.contact-launcher .launcher-callback{display:flex;align-items:center;justify-content:center;gap:7px}
.contact-launcher svg{flex:none;stroke-linecap:round;stroke-linejoin:round}
.icon-accent{stroke:var(--accent)}
.estimate.is-updated .estimate-total strong,.mobile-estimate.is-updated strong{animation:price-tick .3s ease-out}
.site-header #main-nav>a{display:inline-flex;align-items:center;gap:8px}
.site-header .nav-icon{width:20px;height:20px;flex:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:600px){
 body,body.has-estimate{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 .contact-launcher{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:6px;padding:6px;background:#fafaf7;border:1px solid #d8dedc;border-radius:18px;box-shadow:0 6px 24px #253c4c20}
 .contact-launcher .launcher-desktop-label{display:none}
 .contact-launcher .launcher-mobile-label{display:inline}
 .contact-launcher>button{min-width:0;min-height:48px;border-radius:12px;white-space:nowrap}
 .contact-launcher .button{padding:10px 8px;gap:7px;font-size:14px;line-height:1.2}
 .contact-launcher .button span{font-size:inherit;line-height:inherit}
 .contact-launcher .launcher-callback{max-width:none;padding:10px 6px;font-size:12px;line-height:1.2;background:#eef0ec}
 .contact-launcher svg{width:20px;height:20px}
 .contact-launcher .launcher-callback:hover{background:#e6eae4}
 .has-estimate .contact-launcher{grid-template-columns:minmax(0,1fr) 64px minmax(122px,1.45fr)}
 .has-estimate .contact-launcher .launcher-mobile-label{display:none}
 .has-estimate .contact-launcher .launcher-compact-label{display:inline}
 .has-estimate .contact-launcher .launcher-callback{flex-direction:column;gap:3px;font-size:10px;padding:5px 3px}
 .has-estimate .contact-launcher .launcher-callback svg{width:19px;height:19px}
 .contact-launcher .mobile-estimate:not([hidden]){position:relative;display:flex;justify-content:space-between;align-items:center;gap:5px;padding:6px 9px;background:#eee7dc;text-align:left;border:1px solid #e3d9ca}
 .mobile-estimate-copy{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}
 .mobile-estimate-copy>span{font-size:10px;color:#5e6a72;padding-right:18px}
 .mobile-estimate strong{font-size:12px;font-weight:500;line-height:1.35;font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:anywhere}
 .contact-launcher .mobile-estimate svg{position:absolute;right:8px;top:6px;width:14px;height:14px}
 .mobile-estimate:hover{background:#e6ddcf}
 .site-header #main-nav>a{display:flex;gap:13px;min-height:54px;padding:10px 8px;font-size:14px}
 .site-header .nav-icon{width:27px;height:27px;padding:2px}
 .site-header #main-nav>a::after{display:none}
 .site-header #main-nav>a:hover,.site-header #main-nav>a[aria-current=page]{background:#f0ece4;border-radius:6px}
 .contact-is-open .contact-launcher{opacity:0;pointer-events:none;transform:translateY(8px)}
 .contact-launcher:has(~dialog[open]){visibility:hidden}
 .estimate{scroll-margin-bottom:100px}
}
@media(max-width:600px){
 .site-header .mobile-menu-tools{border-top:0;padding-top:8px;margin-top:0}
 .site-header .mobile-menu-tools .city-form>label{display:flex;pointer-events:none}
 .site-header .mobile-menu-tools .city-form>label svg{width:22px;height:22px;stroke-linecap:round;stroke-linejoin:round}
 .site-header .mobile-menu-tools .city-form select{padding-left:42px}
 .page-keyboard-open .contact-launcher{visibility:hidden;pointer-events:none}
}
