/* Motion for controls belongs to the controls, separate from chapter entrances. */
:root{scrollbar-gutter:stable}
html:has(dialog[open]){overflow:hidden}
.disclosure-body{display:flow-root}
.calculator-controls,.estimate-panel,.city-choice{position:relative;align-self:start;overflow-anchor:none}
.ui-layout-exit{z-index:1;pointer-events:none}
.ui-value{position:relative;isolation:isolate}
.ui-value>.ui-value-previous{position:absolute!important;inset:0 auto auto 0!important;width:100%!important;height:auto!important;margin:0!important;pointer-events:none;z-index:1}
.counter output.ui-value{display:inline-block;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums}
.estimate-amount{font-size:inherit;font-weight:400;line-height:inherit;letter-spacing:inherit}
.estimate-total{min-height:1.12em}
.estimate-total>.estimate-total.ui-value-previous{min-height:0}
.disclosure-body{overflow-anchor:none}
.rate-photo-visual{position:relative}
.rate-photo-transition{position:absolute;inset:0;z-index:1;pointer-events:none}
.rate-photo img.rate-photo-previous{position:absolute;inset:0;z-index:1;pointer-events:none}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}
.faq-detail summary{transition:background .2s ease,color .2s ease}
.faq-detail summary>svg{width:34px;height:34px;padding:7px;border-radius:50%;background:#edf3f8;transition:transform .32s cubic-bezier(.22,.75,.25,1),background .2s ease,color .2s ease}
.faq-detail[open]>summary>svg,.extra-disclosure[open]>summary>svg{transform:rotate(45deg)}
.faq .faq-detail[data-expanded=false]>summary>svg,.extra-disclosure[data-expanded=false]>summary>svg{transform:rotate(0)}
.service-inclusions[data-expanded=false]>summary>svg{transform:rotate(0)}
.service-inclusions summary>svg,.extra-disclosure summary>svg{transition:transform .32s cubic-bezier(.22,.75,.25,1)}
.summary-details summary{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:40px}
.summary-details summary:after{content:'';width:7px;height:7px;margin:0 5px;flex:none;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s cubic-bezier(.22,.75,.25,1)}
.summary-details[open]>summary:after{transform:rotate(225deg)}
.summary-details[data-expanded=false]>summary:after{transform:rotate(45deg)}
.summary-details .disclosure-body pre{margin-block:4px 0;padding-bottom:12px}
.faq-detail .disclosure-body>p{padding-top:2px}
.faq-detail[open]>summary{background:#f3f7fb;color:var(--action)}
.faq .faq-detail[data-expanded=false]>summary{background:transparent;color:var(--ink)}
.service-inclusions .disclosure-body>p{margin-top:4px}
.contact-menu{transform-origin:100% 0}
.contact-menu>a,.contact-menu>button{transition:background .2s ease,color .2s ease}
.contact-menu>a>svg:last-child,.contact-menu>button>svg:last-child{transition:transform .24s cubic-bezier(.22,.75,.25,1)}
.choice-group button,.counter button,.phone-actions button,.phone-actions a,.back-top{transition:background .28s ease,color .28s ease,border-color .28s ease,transform .16s ease}
.languages button{transition:background .2s ease,color .2s ease}
.site-nav a,.footer-bottom nav a{transition:color .2s ease}
.faq-topics button{transition:background .3s cubic-bezier(.22,.75,.25,1),color .3s ease}
.faq-topics button svg{transition:transform .3s cubic-bezier(.22,.75,.25,1),opacity .25s ease}
.normal-motion .process-scenes>li .process-count{background:#fff;color:var(--blue);transition:background-color .4s cubic-bezier(.22,.75,.25,1),color .4s ease}
.normal-motion .process-scenes>li.is-current .process-count{background:var(--blue);color:#fff}
#processStep{display:inline-grid;min-width:2ch;font-variant-numeric:tabular-nums}
#processStep>span{grid-area:1/1;opacity:0;transition:opacity .35s ease}
#processStep>span.is-active{opacity:1}
@media(hover:hover) and (pointer:fine){
 .faq-detail summary:hover{background:#f3f7fb;color:var(--action)}
 .faq-detail summary:hover>svg{background:#dce9fa}
 .service-inclusions summary:hover,.summary-details summary:hover{color:var(--action)}
 .estimate-panel .summary-details summary:hover{color:#fff}
 .counter button:not(:disabled):hover{background:#e0eaf8;color:var(--action)}
 .choice-group button:not([aria-pressed=true]):hover{background:#edf3fc;border-color:#8fa9cd}
 .contact-menu>a:hover>svg:last-child,.contact-menu>button:hover>svg:last-child{transform:translate(3px,-3px)}
 .faq-topics button:not([aria-selected=true]):hover{background:#ffffff16;color:white}
 .faq-topics button:not([aria-selected=true]):hover svg{transform:translateX(4px);opacity:1}
 .back-top:hover{background:#ffffff16}
 .languages button:not([aria-pressed=true]):hover{background:#edf3fc}
 .phone-actions a:hover,.phone-actions button:hover{color:#6de2c3}
}
.choice-group button:active,.counter button:not(:disabled):active,.size-choices button:active{transform:scale(.975)}
.extra-option{transition:background-color .24s ease,border-color .24s ease}
.extra-option:has(input:checked){background:#edf4ff;border-color:#8fa9cd}
.extra-option input{accent-color:var(--blue)}
.estimate-panel dl>div{transition:opacity .3s ease;@starting-style{opacity:0}}
.size-choices button{transition:background-color .3s ease,color .3s ease,transform .16s ease}
.size-choices button[aria-pressed=true]{background:var(--blue);color:#fff}
.phone-actions button:active,.back-top:active{transform:scale(.97)}
::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal}
::view-transition-old(root){animation:language-out .16s ease both}
::view-transition-new(root){animation:language-in .26s ease both}
@keyframes language-out{to{opacity:0}}
@keyframes language-in{from{opacity:0}to{opacity:1}}
.request-dialog[open]::backdrop{animation:language-in .24s ease both}
.request-dialog::backdrop{transition:background-color .17s ease,backdrop-filter .17s ease}
.request-dialog[data-closing]::backdrop{background-color:#071a3e00;backdrop-filter:blur(0)}
.promo-controls button:not(:disabled){transition:background-color .2s ease,color .2s ease,transform .16s ease}
.promo-controls button:not(:disabled):active{transform:scale(.95)}
@media(prefers-reduced-motion:reduce){
 .normal-motion .process-count,#processStep>span,.faq-detail summary,.faq-detail summary>svg,.service-inclusions summary>svg,.extra-disclosure summary>svg,.summary-details summary:after,.faq-topics button,.faq-topics button svg{transition:none}
 ::view-transition-old(root),::view-transition-new(root),.request-dialog[open]::backdrop{animation:none}
}
