.cfg-head { padding-bottom: clamp(28px, 3.6vw, 56px); }
.cfg-head__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 48px; }
.cfg-head__lede { max-width: 52ch; }
.cfg-head__tel { font: 600 var(--t-ui)/1.3 var(--f-cond); color: var(--fg-2); }
.cfg-head__tel a { color: var(--fg); white-space: nowrap; text-underline-offset: .2em; }
.cfg { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "steps" "main" "nav" "sum" "bar"; align-items: start; }
.cfg__steps { grid-area: steps; }
.cfg__main { grid-area: main; min-width: 0; }
.cfg-nav { grid-area: nav; }
.cfg-sum { grid-area: sum; margin-top: clamp(48px, 7vw, 72px); }
.cfg-bar { grid-area: bar; }
.js .cfg[data-at="contact"] { grid-template-areas: "steps" "main" "sum" "nav" "bar"; }
.js .cfg[data-at="contact"] .cfg-sum { margin-top: 40px; }
@media (min-width: 1024px) {
.cfg, .js .cfg[data-at="contact"] {
grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); column-gap: clamp(48px, 5.5vw, 112px);
grid-template-areas: "steps sum" "main sum" "nav sum";
grid-template-rows: auto auto 1fr;
}
.cfg-sum, .js .cfg[data-at="contact"] .cfg-sum { margin-top: 0; align-self: start; }
}
.cfg__steps { margin-bottom: clamp(28px, 3.4vw, 48px); }
@media (max-width: 1023.98px) {
.cfg__steps { position: sticky; top: var(--header-h); z-index: var(--z-sticky); margin-inline: calc(-1 * var(--m)); padding-inline: var(--m); background: var(--bg); }
}
.cfg-stepper .stepper__b { font-size: clamp(15px, 14px + .25vw, 17px); }
.js .cfg-step:not(.is-active) { display: none; }
.js .cfg-step__n { display: none; }
.no-js .cfg-step + .cfg-step { margin-top: clamp(56px, 8vw, 104px); padding-top: 24px; border-top: 2px solid var(--fg); }
.cfg-step__n { margin-bottom: 12px; color: var(--fg-2); }
.cfg-step__t { font: 900 clamp(36px, 26px + 2.6vw, 72px)/.9 var(--f-display); text-transform: uppercase; letter-spacing: -.003em; text-wrap: balance; }
.cfg-step__t:focus { outline: none; }
.cfg-step__t:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.cfg-step__help { margin: 12px 0 clamp(24px, 3vw, 36px); max-width: 52ch; font-size: var(--t-lede); line-height: 1.45; color: var(--fg-2); }
.cfg-services .choices__grid { gap: 10px; }
@media (min-width: 600px) and (max-width: 1023.98px) { .cfg-services .choices__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) {
.cfg-services .choice { padding: 16px 50px 16px 16px; }
.cfg-services .choice__name { font-size: 26px; }
}
.cfg-notsure { margin-top: 22px; }
.cfg-notsure__b {
display: inline-flex; align-items: baseline; gap: 10px; min-height: 48px; padding: 12px 0; border: 0; background: none; color: var(--fg);
font: 600 var(--t-ui)/1.3 var(--f-cond); text-align: left; cursor: pointer;
}
.cfg-notsure__b .rg { flex: none; align-self: center; }
.cfg-notsure__t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
.cfg-notsure__b:hover .cfg-notsure__t { font-style: italic; }
.cfg-notsure__b:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.cfg-grp { min-width: 0; margin: 0; padding: 18px 0 0; border: 0; border-top: 2px solid var(--fg); }
.cfg-grp + .cfg-grp { margin-top: clamp(40px, 5vw, 64px); }
.js .cfg-grp:not(.is-on) { display: none; }
.cfg-grp__lg { float: left; width: 100%; padding: 0; margin-bottom: 22px; }
.cfg-grp__lg + * { clear: both; }
.cfg-grp__t { font-size: clamp(30px, 24px + 1.5vw, 48px); }
.cfg-grp__qs { display: grid; gap: clamp(26px, 3vw, 36px); }
.cfg-q .choices__legend, .cfg-q .tiers__legend { font: 700 clamp(17px, 16px + .3vw, 20px)/1.25 var(--f-cond); letter-spacing: 0; text-transform: none; color: var(--fg); margin-bottom: 12px; }
.cfg-q .choices__hint { margin-top: -6px; }
.cfg-q .choices__hint a { color: var(--fg); text-underline-offset: .2em; }
.cfg-q .choices__grid { gap: 8px; }
.cfg-q .choice { padding: 13px 44px 13px 14px; min-height: 56px; justify-content: center; }
.cfg-q .choice__name { font-size: clamp(19px, 17px + .45vw, 24px); font-weight: 800; line-height: 1; }
.cfg-q .choice__box { top: 50%; right: 14px; margin-top: -11px; }
.cfg-q .choice__run { width: 40px; height: 4px; margin-top: 7px; }
.cfg-q .choice:not(.is-on):not(:has(.choice__in:checked)) .choice__run { height: 0; margin: 0; }
.cfg-q .field__label { font: 700 clamp(17px, 16px + .3vw, 20px)/1.25 var(--f-cond); letter-spacing: 0; text-transform: none; color: var(--fg); }
.cfg-q .field__label .field__opt { font: 400 var(--t-meta)/1 var(--f-sans); color: var(--fg-2); }
.cfg-q--text { max-width: 36rem; }
.cfg-other { margin-top: 14px; max-width: 36rem; }
.js .cfg-other:not(.is-on) { display: none; }
.cfg-other .field__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cfg-empty { font-size: var(--t-lede); }
.cfg-link { display: inline; min-height: 44px; padding: 10px 0; border: 0; background: none; color: var(--fg); font: 600 var(--t-ui)/1.3 var(--f-cond); text-transform: uppercase; text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.cfg-link:hover { font-style: italic; }
.cfg-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.cfg-step .form-errors { margin-bottom: 32px; }
.cfg-step .form-errors ul { margin-top: 8px; display: grid; gap: 6px; }
.cfg-step .form-errors a { color: var(--fg); text-underline-offset: .2em; }
.cfg-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px 32px; margin-bottom: 32px; }
@media (min-width: 768px) {
.cfg-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfg-c--site, .cfg-c--deadline, .cfg-c--message { grid-column: 1 / -1; }
.cfg-c--site { max-width: calc(50% - 16px); }
}
.cfg-deadline .choices__legend { font: 600 var(--t-label)/1.25 var(--f-cond); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--fg-2); }
.cfg-deadline .choices__grid { gap: 8px; }
.cfg-deadline .choice { padding: 13px 44px 13px 14px; min-height: 56px; justify-content: center; }
.cfg-deadline .choice__name { font-size: clamp(18px, 16px + .45vw, 23px); line-height: 1; }
.cfg-deadline .choice__box { top: 50%; right: 14px; margin-top: -11px; }
.cfg-deadline .choice__run { width: 40px; height: 4px; margin-top: 7px; }
.cfg-deadline .choice:not(.is-on):not(:has(.choice__in:checked)) .choice__run { height: 0; margin: 0; }
@media (min-width: 1024px) { .cfg-deadline .choices__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cfg-c .field__input { min-height: 48px; font-size: max(16px, var(--t-body)); }
.cfg-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: clamp(36px, 4.4vw, 56px); padding-top: 24px; border-top: 1px solid var(--hair); }
.cfg-nav__back {
display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 4px; border: 0; background: none; color: var(--fg);
font: 700 var(--t-ui)/1 var(--f-cond); text-transform: uppercase; cursor: pointer;
}
.cfg-nav__back:hover { font-style: italic; }
.cfg-nav__back:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.cfg-nav__send { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.cfg-nav__note { max-width: 46ch; }
.no-js .cfg-nav__back, .no-js .cfg-nav__next, .no-js .cfg__steps, .no-js .cfg-sum, .no-js .cfg-notsure, .no-js .cfg-bar { display: none; }
.js .cfg[data-at="services"] .cfg-nav__back { display: none; }
.js .cfg:not([data-at="contact"]) .cfg-nav__send { display: none; }
.js .cfg[data-at="contact"] .cfg-nav__next { display: none; }
.cfg-nav__next { margin-left: auto; }
@media (max-width: 599.98px) {
.cfg-nav { gap: 12px 16px; }
.cfg-nav__next { flex: 1 1 60%; margin-left: 0; }
.js .cfg[data-at="services"] .cfg-nav__next { flex-basis: 100%; }
.cfg-nav__send { flex-basis: 100%; }
.cfg-nav__send .btn { width: 100%; }
}
.cfg-sum__ans { display: grid; gap: 12px; }
.cfg-sum__svc { font: 700 italic var(--t-ui)/1.2 var(--f-cond); text-transform: uppercase; }
.cfg-sum__qa { margin-top: 2px; color: var(--fg-2); }
.cfg-sum .summary__list { gap: 6px; }
.cfg-sum__promise, .cfg-sum__phone { font-size: var(--t-meta); color: var(--fg-2); }
.cfg-sum__phone a { color: var(--fg); white-space: nowrap; text-underline-offset: .2em; }
.cfg-bar { margin-top: 24px; }
@media (max-width: 1023.98px) { .cfg-sum:has(> [data-summary-empty]:not([hidden])) { display: none; } }
.cfg-ok { padding-top: 8px; }
.cfg-ok:focus { outline: none; }
.cfg-ok__label { color: var(--fg-2); margin-bottom: 18px; }
.cfg-ok__stage { position: relative; overflow: hidden; padding: clamp(36px, 6vw, 96px) clamp(20px, 4vw, 64px) clamp(48px, 7vw, 110px); background: var(--stage); color: var(--paper); }
.cfg-ok__stage .cfg-ok__label { color: var(--stage-label); }
.cfg-ok__line { margin: 0; color: var(--paper); text-wrap: balance; overflow-wrap: anywhere; }
.cfg-ok__line--xl { font-size: clamp(46px, 18px + 7.4vw, 168px); }
.cfg-ok__line--m { font-size: clamp(36px, 20px + 4vw, 96px); }
.cfg-ok__pre { color: var(--paper); }
.cfg-ok__co.is-quiet { color: var(--stage-label); }
.cfg-ok__co.is-called { color: var(--paper); }
.cfg-ok__runner { position: absolute; left: 0; right: 0; bottom: 0; height: clamp(14px, 1.6vw, 22px); background: var(--red); clip-path: polygon(6% 0, 94% 0, 100% 100%, 0 100%); transform: scaleX(0); transform-origin: 50% 100%; transition: transform var(--d-unroll) var(--ease); }
.cfg-ok__stage.is-called .cfg-ok__runner { transform: scaleX(1); transition-delay: .3s; }
.cfg-ok__stage::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 40%, rgba(255, 236, 200, .9), transparent 60%); opacity: 0; pointer-events: none; }
.cfg-ok__stage.is-flash::after { animation: rc-flash .5s ease-out .1s 1 both; }
.cfg-ok__text { margin-top: 24px; max-width: 56ch; font-size: var(--t-lede); line-height: 1.5; }
.cfg-ok__text a { color: var(--fg); text-underline-offset: .2em; }
.cfg-ok__do { font-size: clamp(44px, 18px + 6vw, 140px); color: var(--fg); }
.cfg-ok__full { margin-top: 24px; max-width: 46rem; }
.cfg-ok__full summary { display: inline-flex; align-items: center; min-height: 44px; font: 600 var(--t-ui)/1.2 var(--f-cond); text-transform: uppercase; text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.cfg-ok__full .field { margin: 12px 0 14px; }
.cfg-ok__full .field__area { font-size: var(--t-meta); }
.cfg-ok__stage--s { margin-top: clamp(40px, 5vw, 64px); }
.cfg-ok__more { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; margin-top: clamp(32px, 4vw, 48px); }
@media (prefers-reduced-motion: reduce) {
.cfg-ok__runner { transition: none; }
.cfg-ok__stage.is-flash::after { animation: none; }
}