/* Service distinction and request controls: same square, tactile visual world. */
.service-strip{display:block;overflow:hidden;padding:19px 0}
.strip-track{display:flex;width:max-content;animation:neighbourhood-drift 36s linear infinite;animation-play-state:paused}
.strip-group{display:flex;align-items:center;justify-content:space-around;flex-shrink:0;gap:52px;min-width:100vw;padding:0 26px;white-space:nowrap}
.strip-group>span:nth-child(even){color:var(--lime);font-size:25px}
.service-strip.is-inview:not(.is-background) .strip-track{animation-play-state:running}
@keyframes neighbourhood-drift{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.motion-paused .strip-track{animation-play-state:paused!important}
.service-window .service-copy h3{color:#23596b}
.service-renovation .service-copy h3{color:#79482f}
.service-renovation .detailed-service>img{image-rendering:auto}
.process-route{--route-color:#23596b;--route-progress:0;padding:30px 0 38px;border-top:1px solid var(--line)}
.renovation-route{--route-color:#79482f}
.route-heading{display:flex;align-items:center;gap:18px;margin-bottom:30px;color:var(--route-color)}
.route-heading h3{font:700 30px/1.2 var(--pixel)}
.route-heading img{width:70px;height:54px;object-fit:contain}
.windows-route .route-heading img{width:42px;margin-right:28px}
.process-route .steps{position:relative;isolation:isolate;gap:36px}
.process-route .steps:before,.process-route .steps:after{content:'';position:absolute;z-index:-1;top:22px;left:23px;right:calc(33.333% - 8px);height:2px;background:var(--line)}
.process-route .steps:after{background:var(--route-color);transform:scaleX(var(--route-progress));transform-origin:left;transition:transform .15s linear}
.process-route .steps li:after{display:none}
.process-route .step-number{background:var(--paper);border:1px solid var(--route-color);color:var(--route-color);box-shadow:3px 3px 0 #243f4220;transition:background .2s,color .2s,transform .2s}
.process-route .is-reached .step-number{background:var(--route-color);color:var(--paper);transform:translateY(-2px)}
.process-route h4{font-size:17px;line-height:1.35;margin:0 0 12px;font-weight:650}
.process-route p{font-size:14px;color:#53675f}
.service-guidance{font-size:13px;color:var(--green);padding:0 0 14px;border-bottom:1px solid var(--line)}
.window-details{padding:20px;background:#edf1e5;display:grid;gap:10px}
.window-details legend{float:left;width:100%;font:700 25px/1.2 var(--pixel);margin-bottom:10px}
.window-details label{font-size:13px;font-weight:600}
.window-details small{font-size:12px;line-height:1.6;color:#53675f;margin-bottom:8px}
.window-details textarea{margin-bottom:8px}
.spec-field{min-width:0;margin-top:8px}
.spec-label{display:flex;align-items:center;gap:9px;margin-bottom:8px;position:relative}
.term-help summary{list-style:none;display:grid;place-items:center;width:30px;height:30px;border:1px solid #6e8873;color:var(--green);font-weight:700;cursor:pointer;background:var(--field)}
.term-help summary::-webkit-details-marker{display:none}
.term-help[open] summary{background:var(--green);color:var(--paper)}
.term-help p{position:absolute;z-index:6;top:calc(100% + 4px);left:0;right:0;max-width:100%;background:var(--green);color:var(--paper);padding:16px;font-size:13px;font-weight:400;box-shadow:4px 5px 8px #243f4225}
.request-form select{width:100%;min-height:46px;background:var(--field);color:var(--ink);border:1px solid #b9c2b2;padding:12px 35px 12px 13px;font-size:14px;border-radius:0}
.request-form select:focus-visible{outline:3px solid #277080;outline-offset:4px}
.request-form .callback-choice{display:flex;flex-direction:row;align-items:flex-start;font-weight:400;font-size:13px;gap:10px}
.callback-choice input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0;margin:3px 0 0}
.date-field{position:relative;font-size:13px;font-weight:600}
#date-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;width:100%;margin:7px 0;background:var(--field);border:1px solid #b9c2b2;padding:12px 13px;text-align:left;color:var(--ink);font-size:14px}
#date-toggle[aria-expanded=true]{border-color:var(--green)}
.date-field>small{font-weight:400;color:#53675f;display:block;font-size:12px}
.booking-calendar{position:absolute;z-index:8;top:78px;left:0;width:min(100%,370px);max-height:calc(100svh - 112px);overflow-y:auto;padding:18px;background:var(--paper);border:1px solid var(--green);box-shadow:5px 6px 12px #243f4225}
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:16px}
.calendar-header strong{font:700 24px/1.2 var(--pixel);text-transform:capitalize;text-align:center}
.booking-calendar button{color:var(--ink);background:none;border:0;min-width:40px;min-height:42px}
.calendar-header button{background:var(--lime);font-size:21px}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:3px}
.calendar-weekdays{font-size:12px;color:#53675f;margin-bottom:8px}
.calendar-days button{min-width:0;min-height:40px;padding:4px;font-size:14px}
.booking-calendar button:hover:not(:disabled){background:var(--lime)}
.calendar-days button[aria-current=date]{box-shadow:inset 0 0 0 1px var(--green)}
.calendar-days button[aria-pressed=true],.calendar-days button[aria-pressed=true]:hover{background:var(--green);color:var(--paper)}
.calendar-days button:disabled{color:#53675f;opacity:.55;cursor:not-allowed}
.calendar-actions{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:14px;padding-top:8px;gap:10px}
.calendar-actions button{text-decoration:underline;text-underline-offset:4px;font-size:13px}
.calendar-note{font-size:11px;font-weight:400;color:#53675f;line-height:1.6;margin-top:9px}
@media(max-width:800px){.request-form select{font-size:16px}.process-route .steps{gap:24px}}
@media(max-width:600px){
  .strip-group{gap:32px;padding:0 16px}.service-strip{padding:16px 0}
  .process-route{padding:25px 0 28px}.route-heading{margin-bottom:24px}.route-heading h3{font-size:28px}
  .process-route .steps{gap:28px}.process-route .steps li{min-height:112px}
  .process-route .steps:before,.process-route .steps:after{top:22px;bottom:80px;left:19px;right:auto;width:2px;height:auto}
  .process-route .steps:after{transform:scaleY(var(--route-progress));transform-origin:top}
  .process-route h4{font-size:17px}.process-route p{font-size:13px}
  .window-details{padding:16px}.booking-calendar{padding:12px;top:78px}.calendar-header strong{font-size:22px}
  .calendar-days{gap:1px}.calendar-days button{min-height:38px;font-size:13px}
  .service-options{grid-template-columns:1fr}
}
