/* Stairlift repair price check (partials/repair-estimator.php) and the private quote page
   (repair-quote.php). Everything is scoped under .sre / .sreq so nothing leaks into the existing
   site. Same navy/amber palette, Space Grotesk / Instrument Sans / JetBrains Mono (loaded by the
   public page; the private page uses an installed copy or the system fallback), rounded 16–22px
   cards, pill buttons and dot-grid navy. Sizes are in rem so the reader's own text size applies:
   17–18px for reading and controls, with a 16px floor for anything that carries meaning. Amber is
   for actions and accents; Standard prices use green and Urgent prices use gold. */

.sre, .sreq{
  --sre-navy:#17406D; --sre-ink:#0C1D36; --sre-amber:#E8862A; --sre-amber-dk:#C96E15; --sre-hi:#FFC069; --sre-green:#157347;
  --sre-light:#F5F7FA; --sre-tint:#FBF2E6; --sre-text:#25395A; --sre-muted:#4A5670; --sre-soft:#C5D0E6;
  --sre-line:rgba(10,18,40,0.1); --sre-edge:rgba(10,18,40,0.28); --sre-field:rgba(10,18,40,0.5); --sre-err:#B3261E;
  --sre-head:'Space Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --sre-body:'Instrument Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --sre-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-family:var(--sre-body); font-size:1.0625rem; line-height:1.6;
}
.sre [hidden], .sreq [hidden]{display:none !important}
/* Keep the quote's fields and buttons clear of the site's floating phone pill.
   Header, form fallback and footer telephone links remain available. */
body:has(.sre[data-sre-on="1"])>.mr-call-pill{display:none!important}
.sre-sr{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}

/* ── Section shell (clip rather than hidden, so the sticky aside can still stick) ── */
.sre{position:relative; overflow:hidden; overflow:clip; scroll-margin-top:88px; background:linear-gradient(155deg,#17406D 0%,#0C1D36 68%); color:#FFFFFF}
.sre-dots{position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,0.045) 1px, transparent 1px); background-size:26px 26px; pointer-events:none}
.sre-wrap{position:relative; max-width:1280px; margin:0 auto; padding:clamp(52px,8vw,92px) 24px}
.sre-intro{display:flex; flex-direction:column; gap:14px; max-width:780px; margin-bottom:26px}
.sre-eyebrow{font-family:var(--sre-mono); font-size:0.8125rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--sre-hi)}
.sre-title{margin:0; font-family:var(--sre-head); font-weight:700; font-size:clamp(1.875rem,3.8vw,3rem); line-height:1.06; letter-spacing:-0.03em; color:#FFFFFF; text-wrap:balance}
.sre-lead{margin:0; font-size:1.0625rem; line-height:1.65; color:var(--sre-soft); max-width:680px}

.sre-safety{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px 18px; align-items:center; max-width:980px; margin:0 0 28px; padding:18px 20px; border-radius:16px; background:rgba(255,192,105,0.1); border:1px solid rgba(255,192,105,0.38)}
.sre-safety p{margin:0; font-size:1rem; line-height:1.6; color:#FDEBD0}
.sre-safety strong{color:#FFFFFF}
.sre-phone-nowrap,.sre a[href^="tel:"],.sreq a[href^="tel:"]{white-space:nowrap}
.sre-safety-icon{width:32px; height:32px; border-radius:50%; background:var(--sre-amber); color:var(--sre-ink); display:grid; place-items:center; font-family:var(--sre-head); font-weight:700; font-size:1.0625rem; line-height:1}

.sre-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,340px); gap:28px; align-items:start}
.sre-card{scroll-margin-top:100px; min-width:0; background:#FFFFFF; color:var(--sre-ink); border-radius:22px; padding:clamp(20px,3.6vw,44px); box-shadow:0 30px 70px rgba(4,10,26,0.45)}
.sre-card a:not(.sre-btn), .sreq-card a:not(.sre-btn){color:var(--sre-navy); font-weight:600; text-decoration:underline; text-decoration-color:var(--sre-amber); text-decoration-thickness:2px; text-underline-offset:3px}
.sre-card a:not(.sre-btn):hover, .sreq-card a:not(.sre-btn):hover{color:var(--sre-ink); text-decoration-color:var(--sre-navy)}
.sre-card a:not(.sre-btn):focus-visible{outline:3px solid var(--sre-navy); outline-offset:3px; border-radius:4px}
.sre-newtab{font-weight:400}

/* ── Fallback (no JS, unavailable, or the script could not start) ── */
.sre-fallback{display:flex; flex-direction:column; gap:14px}
.sre-kicker{font-family:var(--sre-mono); font-size:0.8125rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--sre-muted)}
.sre-kicker::before, .sre-stepcount::before, .sreq-kind::before{content:""; display:inline-block; width:8px; height:8px; margin-right:10px; border-radius:50%; background:var(--sre-amber); vertical-align:1px}
.sre-fallback-head{margin:0; font-family:var(--sre-head); font-weight:700; font-size:clamp(1.375rem,2.4vw,1.75rem); line-height:1.2; letter-spacing:-0.02em; color:var(--sre-ink)}
.sre-fallback p{margin:0; color:var(--sre-muted)}
.sre-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:6px}
/* Where scripts run, hold the phone fallback back so it does not flash before the form takes over.
   If the script never starts, it appears after three seconds. */
@media (scripting:enabled){
  .sre:not([data-sre-on]):not([data-sre-state="unavailable"]) .sre-fallback{animation:sreLate .01s linear 3s both}
}
@keyframes sreLate{from{visibility:hidden} to{visibility:visible}}

/* ── Progress (decorative: each step heading announces "Step n of 5") ── */
.sre-steps{list-style:none; margin:0 0 30px; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px}
.sre-steps li{display:flex; flex-direction:column; gap:9px; min-width:0}
.sre-steps li::before{content:""; display:block; height:6px; border-radius:999px; background:#DCE2EC; transition:background .3s}
.sre-steps li.is-done::before{background:var(--sre-navy)}
.sre-steps li.is-now::before{background:var(--sre-amber)}
.sre-step-l{font-size:0.9375rem; font-weight:600; color:var(--sre-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sre-steps li.is-done .sre-step-l{color:var(--sre-navy)}
.sre-steps li.is-now .sre-step-l{color:var(--sre-ink)}

/* ── Panels & fields ── */
.sre-panel:not([hidden]){animation:sreIn .24s ease both}
@keyframes sreIn{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
.sre-h{margin:0 0 8px; font-family:var(--sre-head); font-weight:700; font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.15; letter-spacing:-0.022em; color:var(--sre-ink); outline:none}
.sre-stepcount{display:block; margin-bottom:10px; font-family:var(--sre-mono); font-size:0.9375rem; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--sre-muted)}
.sre-sub{margin:0 0 26px; font-size:1.0625rem; color:var(--sre-muted); max-width:680px}
.sre-row2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px}
.sre-field{display:flex; flex-direction:column; gap:8px; margin:0 0 24px; min-width:0}
.sre-fieldset{border:0; margin:0 0 28px; padding:0; min-width:0}
.sre-label{display:block; padding:0; font-family:var(--sre-head); font-weight:600; font-size:1.125rem; line-height:1.35; letter-spacing:-0.01em; color:var(--sre-ink)}
.sre-fieldset > .sre-label{margin-bottom:12px}
.sre-opt{margin-left:6px; font-family:var(--sre-body); font-weight:500; font-size:1rem; letter-spacing:0; color:var(--sre-muted)}
.sre-hint{margin:0; font-size:1rem; line-height:1.55; color:var(--sre-muted)}
.sre-hint--legend{margin:-4px 0 12px}
.sre-input, .sre-select, .sre-textarea{display:block; width:100%; min-height:56px; margin:0; padding:14px 16px; font-family:var(--sre-body); font-size:1.125rem; line-height:1.4; color:var(--sre-ink); background:#FFFFFF; border:1.5px solid var(--sre-field); border-radius:12px; transition:border-color .18s; -webkit-appearance:none; appearance:none}
.sre-input--short{max-width:260px}
.sre-select{padding-right:46px; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2317406D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 18px center; background-size:14px 9px}
.sre-textarea{min-height:128px; resize:vertical}
.sre-input:hover, .sre-select:hover, .sre-textarea:hover{border-color:var(--sre-navy)}
.sre-input:focus, .sre-select:focus, .sre-textarea:focus{outline:3px solid var(--sre-navy); outline-offset:2px; border-color:var(--sre-navy)}
.sre-input[aria-invalid="true"], .sre-select[aria-invalid="true"], .sre-textarea[aria-invalid="true"]{border-color:var(--sre-err); box-shadow:0 0 0 1px var(--sre-err)}
.sre-err{display:flex; gap:8px; align-items:flex-start; margin:2px 0 0; font-size:1rem; font-weight:600; line-height:1.45; color:var(--sre-err)}
.sre-err::before{content:"!"; flex:none; width:22px; height:22px; margin-top:1px; border-radius:50%; background:var(--sre-err); color:#FFFFFF; font-size:0.875rem; font-weight:700; line-height:22px; text-align:center}
.sre-privacy{margin:-4px 0 28px; padding:14px 16px; border-radius:12px; background:var(--sre-light); font-size:1rem; line-height:1.55; color:var(--sre-text)}
/* Paired fields share their rows, so labels, hints, controls and errors line up across the pair. */
@supports (grid-template-rows:subgrid){
  .sre-row2 > .sre-field{display:grid; grid-row:span 4; grid-template-rows:subgrid; gap:0; margin-bottom:16px}
  .sre-row2 > .sre-field > *{margin-bottom:8px}
}

/* Radio tiles (native radios, visually replaced; arrow keys still work) */
.sre-choices{display:grid; gap:12px}
.sre-choices--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sre-choices--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sre-choice{position:relative; display:block; cursor:pointer}
.sre-choice input, .sre-offer input{position:absolute; top:0; left:0; width:1px; height:1px; margin:0; opacity:0; pointer-events:none}
.sre-choice-box{display:flex; gap:14px; align-items:flex-start; height:100%; min-height:60px; padding:16px 18px; background:#FFFFFF; border:1.5px solid var(--sre-edge); border-radius:16px; transition:border-color .18s, background .18s, box-shadow .18s}
/* Hover is a mid-tone edge, clearly lighter than the navy ring and tint of the chosen tile. */
.sre-choice:hover .sre-choice-box{border-color:var(--sre-field)}
.sre-choice-mark{flex:none; width:24px; height:24px; margin-top:1px; border-radius:50%; background:#FFFFFF; border:2px solid var(--sre-navy); transition:background .18s, box-shadow .18s}
.sre-choice-text{display:flex; flex-direction:column; gap:3px; min-width:0}
.sre-choice-title{font-family:var(--sre-head); font-weight:600; font-size:1.125rem; line-height:1.3; color:var(--sre-ink)}
.sre-choice-sub{font-size:1rem; line-height:1.45; color:var(--sre-muted)}
.sre-choice input:checked + .sre-choice-box{background:#F2F6FB; border-color:var(--sre-navy); box-shadow:0 0 0 1.5px var(--sre-navy)}
.sre-choice input:checked + .sre-choice-box .sre-choice-mark{background:var(--sre-navy); box-shadow:inset 0 0 0 4px #FFFFFF}
.sre-choice input:focus-visible + .sre-choice-box{outline:3px solid var(--sre-navy); outline-offset:3px}
.sre-fieldset[aria-invalid="true"] .sre-choice-box, .sre-fieldset[aria-invalid="true"] .sre-offer-box{border-color:var(--sre-err)}
.sre-pic{flex:none; width:58px; height:auto; margin-left:auto; align-self:center}
.sre-pic path{fill:none; stroke-linecap:round; stroke-linejoin:round}
.sre-pic-steps{stroke:var(--sre-navy); stroke-width:2.5}
.sre-pic-rail{stroke:var(--sre-amber); stroke-width:3.5}

.sre-check{display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border-radius:14px; background:var(--sre-light); font-size:1.0625rem; line-height:1.5; color:var(--sre-text); cursor:pointer}
.sre-check input{flex:none; width:26px; height:26px; margin:0; accent-color:var(--sre-navy); cursor:pointer}
.sre-check input:focus{outline:3px solid var(--sre-navy); outline-offset:3px}
.sre-check input[aria-invalid="true"]{outline:3px solid var(--sre-err); outline-offset:3px}
.sre-hp{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden}

/* ── Buttons (ink on amber, 6.3:1, so the label stays readable) ── */
.sre-btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:14px 28px; border:1.5px solid transparent; border-radius:999px; font-family:var(--sre-head); font-weight:700; font-size:1.125rem; line-height:1.2; text-decoration:none; text-align:center; cursor:pointer; transition:background .2s, transform .2s, border-color .2s, box-shadow .2s}
.sre-btn--primary{background:var(--sre-amber); color:var(--sre-ink); box-shadow:0 8px 24px rgba(232,134,42,0.32)}
.sre-btn--primary:hover{background:var(--sre-hi); transform:translateY(-1px)}
.sre-btn--book{min-height:64px; padding:18px 24px; border-radius:14px; background:#157347; color:#FFFFFF; font-size:clamp(1.125rem,2vw,1.375rem); box-shadow:0 8px 22px rgba(21,115,71,0.22)}
.sre-btn--book:hover{background:#0F5B36; transform:translateY(-1px)}
.sre-btn--book .sre-spin{border-color:rgba(255,255,255,0.4); border-top-color:#FFFFFF}
.sre-btn--email{min-height:58px; padding:16px 24px; border-radius:14px; background:#FFFFFF; color:var(--sre-ink); border-color:var(--sre-navy)}
.sre-btn--email:hover{background:var(--sre-light); border-color:var(--sre-ink)}
.sre-btn--email svg{flex:none}
.sre-booking-action{display:flex; flex-direction:column; align-items:stretch; gap:12px; margin:22px 0 26px}
.sre-booking-action .sre-fine{margin:0; text-align:center}
.sre-booking-action .sre-link{align-self:center}
.sre-btn--ghost{background:#FFFFFF; color:var(--sre-ink); border-color:var(--sre-field)}
.sre-btn--ghost:hover{background:var(--sre-light); border-color:var(--sre-navy)}
.sre-btn--onnavy{background:transparent; color:#FFFFFF; border-color:rgba(255,255,255,0.6)}
.sre-btn--onnavy:hover{background:rgba(255,255,255,0.1); border-color:#FFFFFF}
.sre-btn--block{width:100%}
.sre-btn:focus-visible{outline:3px solid var(--sre-navy); outline-offset:3px}
.sre-btn[aria-disabled="true"]{opacity:0.85; cursor:progress; transform:none}
.sre-spin{flex:none; width:18px; height:18px; border-radius:50%; border:2.5px solid rgba(12,29,54,0.3); border-top-color:var(--sre-ink); animation:sreSpin .8s linear infinite}
@keyframes sreSpin{to{transform:rotate(360deg)}}
.sre-link{display:inline-flex; align-items:center; min-height:44px; margin:0 -6px; padding:0 6px; background:none; border:0; border-radius:6px; font:inherit; font-weight:600; color:var(--sre-navy); text-decoration:underline; text-decoration-color:var(--sre-amber); text-decoration-thickness:2px; text-underline-offset:3px; cursor:pointer}
.sre-link:hover{color:var(--sre-ink); text-decoration-color:var(--sre-navy)}
.sre-link:focus-visible{outline:3px solid var(--sre-navy); outline-offset:2px}
.sre-nav{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:32px; padding-top:24px; border-top:1px solid var(--sre-line)}
.sre-nav-end{margin-left:auto}
/* Focus rings on navy surfaces */
.sre-safety .sre-btn:focus-visible, .sre-receipt-band .sre-link:focus-visible, .sre-aside a:focus-visible, .sreq-foot a:focus-visible{outline:3px solid var(--sre-hi); outline-offset:3px}

/* ── Messages ── */
.sre-errsum{margin:0 0 24px; padding:18px 20px; border:2px solid var(--sre-err); border-radius:14px; background:#FDF1F0; color:var(--sre-ink); outline:none}
.sre-errsum:focus-visible{box-shadow:0 0 0 4px rgba(179,38,30,0.25)}
.sre-errsum-head{margin:0 0 8px; font-family:var(--sre-head); font-weight:700; font-size:1.125rem; color:var(--sre-err)}
.sre-errsum ul{margin:0; padding-left:22px}
.sre-errsum li{margin:6px 0}
.sre-card .sre-errsum a{color:var(--sre-err); text-decoration-color:var(--sre-err)}
.sre-problem{display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin:0 0 24px; padding:18px 20px; border:1.5px solid var(--sre-amber-dk); border-radius:14px; background:var(--sre-tint); outline:none}
.sre-problem p{margin:0; font-size:1.0625rem; color:var(--sre-text)}
.sre-problem p:first-child{font-weight:600; color:var(--sre-ink)}
.sre-problem .sre-btn{margin-top:4px}
.sre-address-field{gap:10px; margin-bottom:24px}
.sre-address-control{position:relative; min-width:0}
.sre-address-input{box-sizing:border-box; max-width:100%; min-height:64px; padding:18px 16px 18px 48px; border-width:2px; border-color:#7891AD; border-radius:14px; font-size:1.125rem}
.sre-address-input::placeholder{color:#64748B; opacity:1}
.sre-search-icon{position:absolute; z-index:1; top:23px; left:19px; width:16px; height:16px; border:2px solid var(--sre-navy); border-radius:50%; pointer-events:none}
.sre-search-icon::after{content:""; position:absolute; width:7px; height:2px; right:-6px; bottom:-3px; background:var(--sre-navy); transform:rotate(45deg); border-radius:2px}
.sre-address-dropdown{position:absolute; z-index:5; top:calc(100% + 8px); left:0; right:0; border:1.5px solid #7891AD; border-radius:14px; background:#FFFFFF; color:var(--sre-ink); box-shadow:0 14px 32px rgba(12,29,54,.18); overflow:hidden}
.sre-address-list{list-style:none; display:flex; flex-direction:column; margin:0; padding:6px; max-height:320px; max-height:min(320px,45vh); overflow-y:auto; overscroll-behavior:contain}
.sre-address-option{position:relative; display:flex; align-items:flex-start; gap:12px; min-height:56px; padding:14px 12px; border-radius:9px; font-size:1.0625rem; line-height:1.45; white-space:normal; overflow-wrap:anywhere; cursor:pointer; touch-action:manipulation; scroll-margin-block:6px}
.sre-address-option::before{content:""; flex:none; width:13px; height:13px; margin:5px 2px 0; border:2px solid #64748B; border-radius:50% 50% 50% 0; transform:rotate(-45deg)}
.sre-address-option+ .sre-address-option{border-top:1px solid #E8EDF3}
.sre-address-option:hover, .sre-address-option[aria-selected="true"]{background:#EAF1F9; color:var(--sre-ink)}
.sre-address-option[aria-selected="true"]{outline:2px solid var(--sre-navy); outline-offset:-2px}
.sre-address-attribution{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 16px; padding:10px 16px; border-top:1px solid #E8EDF3; background:#FFFFFF; color:#5E5E5E; font-size:0.875rem; line-height:1.5}
/* Official compact text attribution; Google Maps text must not be changed or translated. */
.sre-google-maps{font-family:Roboto,var(--sre-body),sans-serif; font-style:normal; font-weight:400; font-size:14px; letter-spacing:normal; white-space:nowrap; color:#5E5E5E}
.sre-address-status{margin:0; min-height:24px; font-size:1rem; line-height:1.5; color:var(--sre-muted)}
.sre-address-status.is-searching::before{content:""; display:inline-block; width:14px; height:14px; margin-right:9px; border:2px solid #B8C4D4; border-top-color:var(--sre-navy); border-radius:50%; vertical-align:-2px; animation:sreSpin .8s linear infinite}
/* The whole chosen match under the one-line input, which can cut a long address short on a phone.
   Neutral rather than green: choosing an address is not checking it. */
.sre-address-selected{min-width:0; margin:0; padding:12px 14px; border:1px solid var(--sre-soft); border-radius:10px; background:var(--sre-light); color:var(--sre-ink)}
.sre-address-selected-head{margin:0 0 2px; font-size:1rem; font-weight:600; line-height:1.5; color:var(--sre-muted)}
.sre-address-selected-text{margin:0; font-size:1.0625rem; font-weight:500; line-height:1.5; color:var(--sre-ink); white-space:normal; overflow-wrap:anywhere}
.sre-address-problem{display:flex; flex-direction:column; gap:14px; margin:24px 0; padding:22px; border:2px solid #B77915; border-radius:14px; background:#FFF1C2; color:#714409; outline:none}
.sre-address-problem>strong{font-family:var(--sre-head); font-size:1.25rem; line-height:1.4}
.sre-address-problem p{margin:0; font-size:1rem; line-height:1.6}
.sre-address-problem .sre-fine{color:#714409}
.sre-address-problem .sre-actions{margin:0}
.sre-address-problem .sre-link{align-self:flex-start}

/* ── Rate cards ── */
.sre-route{display:flex; flex-wrap:wrap; align-items:center; gap:0 10px; margin:-8px 0 20px; padding:6px 16px; border-radius:12px; background:var(--sre-light); font-size:1rem; color:var(--sre-muted)}
.sre-route strong{color:var(--sre-ink); overflow-wrap:anywhere}
.sre-flag{margin:0 0 20px; padding:14px 16px 14px 18px; border-left:4px solid var(--sre-amber); border-radius:0 12px 12px 0; background:var(--sre-tint); font-size:1rem; font-weight:500; color:var(--sre-text)}
.sre-echo{margin:0 0 14px; font-size:1rem; color:var(--sre-muted)}
.sre-pill{display:inline-flex; align-self:flex-start; padding:4px 12px; border-radius:999px; background:var(--sre-tint); font-family:var(--sre-body); font-size:1rem; font-weight:600; line-height:1.4; letter-spacing:0; color:var(--sre-ink)}
.sre-offers{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:16px}
.sre-offer{position:relative; display:block; cursor:pointer; container-type:inline-size}
.sre-offer-box{position:relative; display:flex; flex-direction:column; gap:12px; height:100%; padding:24px; background:#FFFFFF; border:2px solid var(--sre-edge); border-radius:20px; transition:border-color .2s, box-shadow .2s, transform .2s}
.sre-offer[data-sre-offer="standard"] .sre-offer-box{background:#F1FAF4; border-color:#A0CEAE}
.sre-offer:hover .sre-offer-box{box-shadow:0 16px 36px rgba(10,18,40,0.12)}
.sre-offer--urgent .sre-offer-box, .sre-receipt-band{background-color:#0C1D36; background-image:radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(155deg,#17406D,#0C1D36); background-size:22px 22px, auto; color:#DCE4F5}
.sre-offer--urgent .sre-offer-box{border-color:transparent}
.sre-recommended{position:absolute; top:-17px; left:22px; padding:5px 13px; border-radius:999px; background:var(--sre-green); color:#FFFFFF; box-shadow:0 0 0 3px #FFFFFF; font-family:var(--sre-body); font-size:1rem; font-weight:700; line-height:1.25}
.sre-offer--urgent .sre-recommended{background:var(--sre-hi); color:var(--sre-ink)}
.sre-offer-top{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; min-height:3.125rem}
.sre-offer-name{font-family:var(--sre-head); font-weight:700; font-size:1.25rem; line-height:1.25; letter-spacing:-0.015em; color:var(--sre-ink)}
.sre-offer-pick{flex:none; display:flex; align-items:center; gap:8px}
.sre-offer-picked{display:inline; visibility:hidden; font-family:var(--sre-head); font-weight:700; font-size:1rem; color:var(--sre-navy)}
.sre-offer-tick{flex:none; width:30px; height:30px; border-radius:50%; border:2px solid var(--sre-navy); display:grid; place-items:center; font-size:1rem; font-weight:700; line-height:1; color:transparent; transition:background .2s, border-color .2s, color .2s}
.sre-offer-tick::after{content:"\2713"}
.sre-offer-money{display:flex; flex-direction:column; gap:6px}
/* Sized to the card (cqi), not the viewport, so a longer figure never outgrows a narrow card. */
.sre-offer-price{display:flex; flex-wrap:wrap; align-items:flex-start; font-family:var(--sre-head); font-weight:700; font-size:clamp(3.5rem,5.4vw,4rem); font-size:clamp(3.5rem,19cqi,4rem); line-height:1; letter-spacing:-0.04em; color:var(--sre-ink); font-variant-numeric:tabular-nums}
.sre-offer[data-sre-offer="standard"] .sre-offer-price, .sre-offer[data-sre-offer="standard"] .sre-offer-picked{color:var(--sre-green)}
.sre-offer[data-sre-offer="standard"] .sre-offer-tick{border-color:var(--sre-green)}
.sre-dec{margin:0.1em 0 0 0.04em; font-size:0.45em; letter-spacing:-0.01em}
.sre-offer-price.is-tbc, .sre-receipt-price.is-tbc{display:inline-flex; flex-direction:column; align-items:flex-start; gap:7px; align-self:flex-start; max-width:100%; padding:14px 16px; border:2px solid #B77915; border-radius:12px; background:#FFF1C2; font-family:var(--sre-body); font-weight:600; font-size:1rem; line-height:1.5; letter-spacing:0; color:#714409; text-align:left}
.sre-no-price-title{display:block; font-family:var(--sre-head); font-size:1.0625rem; font-weight:700; line-height:1.4}
.sre-no-price-copy{display:block; font-size:1rem; line-height:1.5}
.sre-offer[data-sre-offer="standard"] .sre-offer-price.is-tbc{color:#714409}
.sre-offer-tax{font-size:1rem; line-height:1.45; color:var(--sre-muted)}
.sre-offer-time{display:flex; gap:10px; align-items:flex-start; margin-top:4px; padding-top:16px; border-top:1px solid var(--sre-line); font-family:var(--sre-head); font-weight:700; font-size:1.125rem; line-height:1.45; color:var(--sre-ink)}
.sre-offer-time-content{display:flex; flex-direction:column; gap:6px; min-width:0}
.sre-lead-label{display:block; font-family:var(--sre-body); font-size:1rem; font-weight:600; line-height:1.4}
.sre-offer-time .sre-lead-label{color:var(--sre-muted)}
.sre-offer--urgent .sre-lead-label{color:var(--sre-hi)}
.sre-offer-clock{flex:none; position:relative; width:20px; height:20px; margin-top:2px; border:2px solid currentColor; border-radius:50%}
.sre-offer-clock::before{content:""; position:absolute; left:7px; top:3px; width:2px; height:6px; border-radius:1px; background:currentColor}
.sre-offer-clock::after{content:""; position:absolute; left:7px; top:7px; width:5px; height:2px; border-radius:1px; background:currentColor}
.sre-offer-desc{font-size:1rem; line-height:1.5; color:var(--sre-text)}
.sre-offer--urgent .sre-offer-name, .sre-offer--urgent .sre-offer-time{color:#FFFFFF}
.sre-offer--urgent .sre-offer-price{color:var(--sre-hi)}
.sre-offer--urgent .sre-offer-picked{color:var(--sre-hi)}
.sre-offer--urgent .sre-offer-tick{border-color:rgba(255,255,255,0.75)}
.sre-offer--urgent .sre-offer-price.is-tbc, .sre-receipt-price.is-tbc{background:#3D2C13; border-color:#FFC069; color:#FFD686}
.sre-offer--urgent .sre-pill, .sre-receipt-band .sre-pill{background:var(--sre-hi)}
.sre-offer--urgent .sre-offer-tax{color:var(--sre-soft)}
.sre-offer--urgent .sre-offer-time{border-top-color:rgba(255,255,255,0.18)}
.sre-offer--urgent .sre-offer-desc{color:#DCE4F5}
/* Chosen: matching green/gold ring, filled tick and the word "Selected"; not colour alone. */
.sre-offer input:checked + .sre-offer-box{border-color:var(--sre-navy); box-shadow:0 0 0 2px var(--sre-navy), 0 18px 40px rgba(10,18,40,0.14)}
.sre-offer[data-sre-offer="standard"] input:checked + .sre-offer-box{border-color:var(--sre-green); box-shadow:0 0 0 2px var(--sre-green), 0 18px 40px rgba(21,115,71,0.14)}
.sre-offer--urgent input:checked + .sre-offer-box{border-color:var(--sre-hi); box-shadow:0 0 0 2px var(--sre-hi), 0 18px 40px rgba(10,18,40,0.2)}
.sre-offer input:checked + .sre-offer-box .sre-offer-tick{background:var(--sre-amber); border-color:var(--sre-amber); color:var(--sre-ink)}
.sre-offer[data-sre-offer="standard"] input:checked + .sre-offer-box .sre-offer-tick{background:var(--sre-green); border-color:var(--sre-green); color:#FFFFFF}
.sre-offer--urgent input:checked + .sre-offer-box .sre-offer-tick{background:var(--sre-hi); border-color:var(--sre-hi)}
.sre-offer input:checked + .sre-offer-box .sre-offer-picked{visibility:visible}
.sre-offer input:focus-visible + .sre-offer-box{outline:3px solid var(--sre-navy); outline-offset:5px}
.sre-offer--urgent input:focus-visible + .sre-offer-box{outline-color:var(--sre-hi)}
.sre-fine{margin:16px 0 0; font-size:1rem; line-height:1.55; color:var(--sre-muted)}

/* ── What the visit includes ── */
.sre-value{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:16px; margin-top:24px}
.sre-value-in{padding:22px 24px; border-radius:18px; background:var(--sre-light); border:1px solid var(--sre-line)}
.sre-value-out{padding:22px 24px; border-radius:18px; background:var(--sre-tint); border:1px solid rgba(232,134,42,0.4)}
.sre-value-head{margin:0 0 14px; font-family:var(--sre-head); font-weight:700; font-size:1.1875rem; line-height:1.3; letter-spacing:-0.01em; color:var(--sre-ink)}
.sre-value--offers{grid-template-columns:minmax(0,1fr); gap:12px}
.sre-value--offers .sre-value-in{padding:26px; background:#F1FAF4; border:1.5px solid #A0CEAE}
.sre-value--offers .sre-value-head{font-size:1.375rem; margin-bottom:8px}
.sre-value-intro{margin:0 0 20px; font-size:1.0625rem; line-height:1.5; color:var(--sre-muted)}
.sre-value--offers .sre-ticks{grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 22px}
.sre-value--offers .sre-ticks li{font-size:1.125rem; font-weight:600; line-height:1.5}
.sre-value--offers .sre-ticks li::before{background:var(--sre-green); margin-top:2px}
.sre-value--offers .sre-value-out{padding:18px 22px}
.sre-value--offers .sre-value-out .sre-value-head{font-size:1.125rem}
.sre-value-out p:not(.sre-value-head){margin:0; font-size:1.0625rem; line-height:1.6; color:var(--sre-text); white-space:pre-line}
.sre-ticks{display:grid; gap:10px; margin:0; padding:0; list-style:none}
.sre-ticks li{display:flex; gap:12px; align-items:flex-start; font-size:1.0625rem; font-weight:500; line-height:1.45; color:var(--sre-text)}
.sre-ticks li::before, .sreq-points li::before{content:"\2713"; flex:none; width:24px; height:24px; margin-top:1px; border-radius:50%; background:var(--sre-navy); color:#FFFFFF; font-size:0.8125rem; font-weight:700; line-height:24px; text-align:center}
.sre-note{margin:14px 0 0; font-size:1rem; line-height:1.55; color:var(--sre-muted); white-space:pre-line}
.sre-note--ok{padding:10px 12px; border-radius:10px; background:#FFFFFF; color:var(--sre-text); font-weight:500}
.sre-rules, .sre-what{margin-top:16px; padding:20px 24px; border-radius:18px; border:1px solid var(--sre-line)}
.sre-rules p{margin:0 0 6px; font-size:1rem; line-height:1.55; color:var(--sre-muted)}
.sre-rules p:last-child{margin-bottom:0}
.sre-rules strong{color:var(--sre-ink)}
.sre-rules .sre-value-head{margin-bottom:10px; font-size:1.0625rem}

/* ── Review receipt & done ── */
.sre-receipt{margin:8px 0 24px; border-radius:18px; background:var(--sre-light); border:1px solid var(--sre-line)}
.sre-receipt-head{margin:0; padding:20px 22px 0; font-family:var(--sre-head); font-weight:700; font-size:1.1875rem; color:var(--sre-ink)}
.sre-receipt-band{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 18px; align-items:center; margin:14px 14px 0; padding:18px 20px; border-radius:14px}
.sre-receipt-opt{display:flex; flex-direction:column; gap:4px; min-width:0}
.sre-receipt-name{font-family:var(--sre-head); font-weight:700; font-size:1.1875rem; line-height:1.3; color:#FFFFFF}
.sre-receipt-tax{font-size:1rem; line-height:1.45; color:var(--sre-soft)}
.sre-receipt-lead{grid-column:1 / -1; display:flex; align-items:flex-start; gap:12px; margin-top:14px; padding:16px; border:1px solid rgba(255,255,255,.2); border-radius:12px; background:rgba(255,255,255,.07)}
.sre-receipt-lead .sre-lead-label{margin-bottom:6px; color:var(--sre-hi)}
.sre-receipt-lead .sre-offer-clock{color:var(--sre-hi)}
.sre-receipt-time{display:block; font-family:var(--sre-head); font-size:1.1875rem; font-weight:700; line-height:1.45; color:#FFFFFF}
.sre-receipt-inclusions{padding:24px 22px 18px; border-bottom:1px solid var(--sre-line)}
.sre-receipt-inclusions .sre-ticks li{font-size:1.0625rem; font-weight:600}
.sre-receipt-inclusions .sre-ticks li::before{background:var(--sre-green)}
.sre-receipt-money{display:flex; flex-direction:column; align-items:flex-end; gap:4px; text-align:right}
.sre-receipt-price{display:flex; align-items:flex-start; font-family:var(--sre-head); font-weight:700; font-size:2.25rem; line-height:1; letter-spacing:-0.03em; color:#FFFFFF; font-variant-numeric:tabular-nums}
.sre-receipt-band .sre-link{grid-column:1 / -1; justify-self:start; color:#FFFFFF; text-decoration-color:var(--sre-hi)}
.sre-receipt-band .sre-link:hover{color:var(--sre-hi); text-decoration-color:var(--sre-hi)}
.sre-receipt-money .sre-pill{align-self:flex-end}
.sre-sumlist{display:grid; grid-template-columns:minmax(120px,190px) minmax(0,1fr); gap:0 18px; margin:0; padding:6px 22px}
.sre-sumlist dt, .sre-sumlist dd{border-bottom:1px solid var(--sre-line)}
.sre-sumlist dt{padding:13px 0; font-size:1rem; font-weight:600; color:var(--sre-muted)}
.sre-sumlist dd{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0 14px; margin:0; padding:4px 0; font-size:1.0625rem; color:var(--sre-ink); overflow-wrap:anywhere; white-space:pre-line}
.sre-sumlist dt:last-of-type, .sre-sumlist dd:last-of-type{border-bottom:0}
.sre-receipt-out{margin:0; padding:14px 22px 20px; border-top:1px solid var(--sre-line); font-size:1rem; line-height:1.55; color:var(--sre-text); white-space:pre-line}
.sre-done{display:flex; flex-direction:column; align-items:flex-start; gap:16px}
.sre-done-mark{width:60px; height:60px; border-radius:50%; background:var(--sre-navy); color:#FFFFFF; font-size:1.75rem; font-weight:700; line-height:60px; text-align:center}
.sre-ref{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin:0; padding:14px 18px; border-radius:14px; background:var(--sre-light); border:1.5px dashed var(--sre-field); font-size:1rem; color:var(--sre-muted)}
.sre-ref strong{font-family:var(--sre-mono); font-size:1.25rem; letter-spacing:0.06em; color:var(--sre-ink); -webkit-user-select:all; user-select:all}
.sre-done-msg{margin:0; font-size:1.0625rem; color:var(--sre-text); max-width:680px}
.sre-next{display:grid; gap:10px; width:100%; margin:6px 0 0; padding:18px 0 0; list-style:none; border-top:1px solid var(--sre-line)}
.sre-next li{display:flex; gap:12px; align-items:flex-start; font-size:1.0625rem; line-height:1.55; color:var(--sre-text)}
.sre-next li::before{content:""; flex:none; width:8px; height:8px; margin-top:10px; border-radius:50%; background:var(--sre-amber)}

/* ── Aside ── */
.sre-aside{position:sticky; top:104px; display:flex; flex-direction:column; gap:18px}
.sre-aside-card{padding:24px; border-radius:20px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14); color:var(--sre-soft)}
.sre-aside-card p{margin:0; font-size:1rem}
.sre-aside-phone{display:block; margin:10px 0 6px; font-family:var(--sre-head); font-weight:700; font-size:1.875rem; letter-spacing:-0.01em; color:#FFFFFF; text-decoration:none}
.sre-aside-phone:hover{color:var(--sre-hi)}
.sre-aside-card .sre-aside-head{margin:0 0 14px; font-family:var(--sre-head); font-weight:700; font-size:1.1875rem; color:#FFFFFF}
.sre-how{display:grid; gap:14px; margin:0; padding:0; list-style:none; counter-reset:sre}
.sre-how li{counter-increment:sre; display:grid; grid-template-columns:32px minmax(0,1fr); gap:12px; font-size:1rem; line-height:1.55}
.sre-how li::before{content:counter(sre); width:32px; height:32px; border-radius:10px; background:rgba(255,192,105,0.14); color:var(--sre-hi); font-family:var(--sre-mono); font-size:0.9375rem; line-height:32px; text-align:center}
.sre-how strong{color:#FFFFFF; font-weight:600}
.sre-how--light{color:var(--sre-text)}
.sre-how--light li{font-size:1.0625rem}
.sre-how--light li::before{background:var(--sre-tint); color:var(--sre-ink)}
.sre-how--light strong{color:var(--sre-ink)}

/* ── Responsive: desktop columns, mobile stacked ── */
@media (max-width:1023px){
  .sre-grid{grid-template-columns:minmax(0,1fr)}
  .sre-aside{position:static; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}
}
@media (max-width:760px){
  .sre-safety{grid-template-columns:auto minmax(0,1fr); align-items:start}
  .sre-safety .sre-btn{grid-column:1 / -1}
}
@media (max-width:720px){
  .sre-offers, .sre-value{grid-template-columns:minmax(0,1fr)}
  .sre-value--offers .sre-ticks{grid-template-columns:minmax(0,1fr); gap:16px}
  .sre-value--offers .sre-value-in{padding:22px 20px}
  .sre-offer-box{gap:10px; padding:18px}
  .sre-offer-top{min-height:0}
  .sre-offer-picked{display:none}
  .sre-offer input:checked + .sre-offer-box .sre-offer-picked{display:inline}
  .sre-offer-money{flex-direction:row; flex-wrap:wrap; align-items:center; gap:4px 12px}
  .sre-offer-money .sre-pill{align-self:center}
  .sre-offer-price{font-size:2.25rem}
  .sre-offer-time{margin-top:0; padding-top:12px}
}
@media (max-width:640px){
  .sre-wrap{padding-left:16px; padding-right:16px}
  .sre-row2, .sre-choices--2, .sre-choices--3{grid-template-columns:minmax(0,1fr)}
  .sre-input--short{max-width:none}
  .sre-step-l{display:none}
  .sre-steps{margin-bottom:22px}
  .sre-nav{flex-direction:column-reverse; align-items:stretch}
  .sre-nav .sre-btn, .sre-actions .sre-btn{width:100%}
  .sre-nav-end{margin-left:0}
  .sre-card{border-radius:18px}
}
@media (max-width:560px){
  .sre-sumlist{grid-template-columns:minmax(0,1fr)}
  .sre-sumlist dt{padding:12px 0 0; border-bottom:0}
  .sre-receipt-band{grid-template-columns:minmax(0,1fr)}
  .sre-receipt-money{align-items:flex-start; text-align:left}
  .sre-receipt-money .sre-pill{align-self:flex-start}
}

/* ═════ Private quote page (repair-quote.php) ═════ */
.sreq{min-height:100vh; display:flex; flex-direction:column; margin:0; background:var(--sre-light); color:var(--sre-ink)}
.sreq-skip{position:absolute; left:16px; top:-80px; z-index:10; padding:12px 18px; border-radius:999px; background:var(--sre-ink); color:#FFFFFF; font-weight:600; text-decoration:none}
.sreq-skip:focus{top:12px}
.sreq a:focus-visible, .sreq summary:focus-visible{outline:3px solid var(--sre-navy); outline-offset:3px; border-radius:6px}
.sreq-bar{background:#FFFFFF; border-bottom:1px solid var(--sre-line)}
.sreq-bar-in{max-width:1280px; min-height:76px; margin:0 auto; padding:10px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px}
.sreq-logo{display:flex; align-items:center; gap:12px; min-width:0; text-decoration:none}
.sreq-logo-mark{width:42px; height:42px; border-radius:12px; background:var(--sre-navy); display:grid; place-items:center; font-family:var(--sre-head); font-weight:700; font-size:1.3125rem; color:#FFFFFF; box-shadow:0 3px 10px rgba(23,64,109,0.28)}
.sreq-logo-name{font-family:var(--sre-head); font-weight:700; font-size:1.125rem; letter-spacing:-0.015em; color:var(--sre-ink)}
.sreq-logo-name span{color:var(--sre-amber)}
.sreq-phone{flex:none; display:flex; flex-direction:column; align-items:flex-end; line-height:1.3; text-decoration:none}
.sreq-phone small{font-size:1rem; color:var(--sre-muted)}
.sreq-phone strong{font-family:var(--sre-head); font-weight:700; font-size:1.25rem; color:var(--sre-ink); white-space:nowrap}

.sreq-hero{position:relative; overflow:hidden; background:linear-gradient(155deg,#17406D,#0C1D36 70%); color:#FFFFFF}
.sreq-hero-in{position:relative; max-width:1080px; margin:0 auto; padding:clamp(40px,6vw,64px) 24px clamp(96px,11vw,124px); display:flex; flex-direction:column; align-items:flex-start; gap:14px}
.sreq-h1{margin:0; max-width:780px; font-family:var(--sre-head); font-weight:700; font-size:clamp(1.875rem,4vw,3rem); line-height:1.07; letter-spacing:-0.03em; text-wrap:balance}
.sreq-lead{margin:0; max-width:700px; font-size:1.0625rem; line-height:1.65; color:var(--sre-soft)}
.sreq-status{display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:999px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.32); font-size:1rem; font-weight:600; color:#FFFFFF}
.sreq-status::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--sre-hi)}

.sreq-main{position:relative; flex:1; width:100%; max-width:1080px; margin:-76px auto 0; padding:0 24px 64px; outline:none}
.sreq-card{padding:clamp(22px,3.4vw,36px); background:#FFFFFF; border:1px solid var(--sre-line); border-radius:22px; box-shadow:0 20px 50px rgba(10,18,40,0.12)}
.sreq-h2{margin:0 0 12px; font-family:var(--sre-head); font-weight:700; font-size:clamp(1.375rem,2.2vw,1.625rem); line-height:1.2; letter-spacing:-0.02em; color:var(--sre-ink)}
.sreq-text{margin:0 0 14px; font-size:1.0625rem; color:var(--sre-text)}
.sreq-text:last-child{margin-bottom:0}
.sreq-flash{margin:0 0 22px; padding:16px 20px; border-radius:16px; font-size:1.0625rem; font-weight:600; box-shadow:0 12px 30px rgba(10,18,40,0.1)}
.sreq-flash--ok{background:#FFFFFF; border:2px solid var(--sre-navy); color:var(--sre-ink)}
.sreq-flash--error{background:#FDF1F0; border:2px solid var(--sre-err); color:var(--sre-ink)}

/* The quote: the amount and what to do on the left, what the visit includes right beside it. */
.sreq-quote{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(24px,4vw,44px); align-items:start}
.sreq-quote-main{display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0}
.sreq-quote-main > *{max-width:100%}
.sreq-kind{margin:0; font-family:var(--sre-mono); font-size:0.8125rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--sre-muted)}
.sreq-quote .sreq-h2{margin:0}
.sreq-amount{display:flex; flex-wrap:wrap; align-items:flex-start; margin:8px 0 0; font-family:var(--sre-head); font-weight:700; font-size:clamp(3.25rem,7vw,4.5rem); line-height:1; letter-spacing:-0.045em; color:var(--sre-ink); font-variant-numeric:tabular-nums}
.sreq-amount--tbc{font-size:clamp(1.5rem,3vw,2rem); line-height:1.2; letter-spacing:-0.02em; color:var(--sre-navy)}
.sreq-tax{margin:0; font-size:1rem; line-height:1.5; color:var(--sre-muted)}
.sreq-points{display:grid; gap:10px; width:100%; margin:8px 0 0; padding:18px 0 0; list-style:none; border-top:1px solid var(--sre-line)}
.sreq-points li{display:flex; gap:12px; align-items:flex-start; font-size:1.0625rem; line-height:1.5; color:var(--sre-text)}
.sreq-points .sreq-time{font-family:var(--sre-head); font-size:1.1875rem; font-weight:700; color:var(--sre-ink)}
.sreq-time .sre-lead-label{margin-bottom:6px; color:var(--sre-muted)}
.sreq-lines{width:100%; margin:10px 0 0; border-collapse:collapse; font-size:1.0625rem}
.sreq-lines caption{padding-bottom:4px; text-align:left; font-family:var(--sre-head); font-weight:700; font-size:1.0625rem; color:var(--sre-ink)}
.sreq-lines th, .sreq-lines td{padding:11px 0; border-bottom:1px solid var(--sre-line); text-align:left; font-weight:500; color:var(--sre-text)}
.sreq-lines td{padding-left:16px; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums}
.sreq-lines tfoot th, .sreq-lines tfoot td{border-bottom:0; font-weight:700; color:var(--sre-ink)}
.sreq-act{width:100%; margin-top:10px; padding-top:20px; border-top:1px solid var(--sre-line)}
.sreq-act form{margin:0}
.sreq-act-head{margin:0 0 12px; font-family:var(--sre-head); font-weight:700; font-size:1.1875rem; color:var(--sre-ink)}
.sreq-act .sre-next{margin:0; padding:0; border-top:0}
.sreq-valid{margin:14px 0 0; font-size:1rem; font-weight:600; color:var(--sre-ink)}
.sreq-decline{margin-top:10px}
.sreq-decline summary{padding:10px 0; cursor:pointer; font-size:1.0625rem; font-weight:600; color:var(--sre-navy)}
.sreq-decline[open] summary{margin-bottom:4px}
.sreq-quote-side{min-width:0; padding:22px 24px; border-radius:18px; background:var(--sre-light); border:1px solid var(--sre-line)}
.sreq-quote-side .sre-value-out{margin-top:18px}
.sreq-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; margin-top:22px}
.sreq-card .sre-sumlist{padding:0}
.sreq-forget{margin:6px 0 0}
.sreq-foot{background:var(--sre-ink); color:var(--sre-soft); font-size:1rem}
.sreq-foot-in{max-width:1280px; margin:0 auto; padding:26px 24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px}
.sreq-foot a{color:#FFFFFF; text-decoration:none}
.sreq-foot a:hover{text-decoration:underline}
@media (max-width:900px){
  .sreq-quote, .sreq-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:480px){
  .sreq-phone small{display:none}
  .sreq-logo-name{font-size:1rem}
  .sreq-phone strong{font-size:1.0625rem}
  .sreq-main, .sreq-hero-in, .sreq-bar-in{padding-left:16px; padding-right:16px}
}

/* ── Motion, forced colours, print ── */
@media (prefers-reduced-motion:reduce){
  .sre *, .sreq *{transition:none !important}
  .sre-panel:not([hidden]){animation:none}
  .sre-offer:hover .sre-offer-box, .sre-btn--primary:hover{transform:none}
}
/* Windows high contrast and similar: fills and shadows disappear, so state is redrawn in system colours. */
@media (forced-colors:active){
  .sre-address-option[aria-selected="true"]{outline:2px solid Highlight; background:Highlight; color:HighlightText}
  .sre-address-dropdown, .sre-address-input{border-color:CanvasText}
  .sre-choice input:checked + .sre-choice-box, .sre-offer input:checked + .sre-offer-box{outline:4px solid Highlight; outline-offset:2px}
  .sre-choice input:checked + .sre-choice-box .sre-choice-mark, .sre-offer input:checked + .sre-offer-box .sre-offer-tick{forced-color-adjust:none; background:Highlight; border-color:Highlight; color:HighlightText; box-shadow:none}
  .sre-choice input:focus-visible + .sre-choice-box, .sre-offer input:focus-visible + .sre-offer-box{outline:3px solid CanvasText; outline-offset:6px}
  .sre-btn{border-color:ButtonText}
  .sre-steps li::before{forced-color-adjust:none; background:GrayText}
  .sre-steps li.is-done::before, .sre-steps li.is-now::before{background:Highlight}
  .sre-ticks li::before, .sreq-points li::before, .sre-err::before, .sre-how li::before, .sre-done-mark, .sre-safety-icon{forced-color-adjust:none; background:CanvasText; color:Canvas}
  .sre-pic path{stroke:CanvasText}
}
@media print{
  .sreq-bar, .sreq-skip, .sreq-forget, .sreq-decline, .sreq-act form{display:none !important}
  .sreq{background:#FFFFFF}
  .sreq-hero{background:none; color:#000000}
  .sreq-hero .sre-dots{display:none}
  .sreq-hero-in{padding-bottom:16px}
  .sreq-hero .sre-eyebrow, .sreq-lead, .sreq-status{color:#000000}
  .sreq-status{border-color:#000000}
  .sreq-main{margin-top:0}
  .sreq-card{box-shadow:none}
  .sreq-foot{background:none; color:#000000}
  .sreq-foot a{color:#000000}
}
