/* VSG Quote Platform — frontend (WordPress theme-safe, same brand colours) */
.vsg-quote-root{display:block;width:100%;max-width:100%;clear:both;isolation:isolate;contain:layout style;}
#vsg-quote-app{--blue:#1FA9E4;--blue-d:#0E7FB5;--navy:#12303F;--ink:#22282D;--mut:#5C6B75;--line:#DCE7EE;--bg:#F4F9FC;--ok:#12B76A;--warn:#F04438;--gold:#C9A227;
  font-family:'Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);line-height:1.45;max-width:1080px;margin:0 auto;padding:8px 14px 48px;-webkit-font-smoothing:antialiased;text-size-adjust:100%;-webkit-text-size-adjust:100%}

/*
 * Theme reset — neutralize global theme rules that leak into short class names
 * (.btn, .nav, .grid, button, input). Colours/layout stay VSG; no redesign.
 */
#vsg-quote-app,#vsg-quote-app *{box-sizing:border-box}
#vsg-quote-app *,#vsg-quote-app *::before,#vsg-quote-app *::after{font-family:inherit}
#vsg-quote-app h1,#vsg-quote-app h2,#vsg-quote-app h3,#vsg-quote-app h4,#vsg-quote-app p,#vsg-quote-app ul,#vsg-quote-app ol,#vsg-quote-app li,#vsg-quote-app figure,#vsg-quote-app figcaption{margin:0;padding:0;float:none;max-width:none;text-transform:none;letter-spacing:normal;background:transparent;border:0;box-shadow:none}
#vsg-quote-app ul,#vsg-quote-app ol{list-style:none}
#vsg-quote-app a{color:inherit;text-decoration:none;box-shadow:none;background:transparent}
#vsg-quote-app img{max-width:100%;height:auto;border:0;display:inline-block;vertical-align:middle}
#vsg-quote-app button,#vsg-quote-app input,#vsg-quote-app select,#vsg-quote-app textarea{
  font:inherit;color:inherit;letter-spacing:normal;text-transform:none;margin:0;vertical-align:middle;
  -webkit-appearance:none;appearance:none;border-radius:0;background-image:none;box-shadow:none}
#vsg-quote-app button{cursor:pointer;width:auto;max-width:none;height:auto;min-height:0;line-height:inherit}
#vsg-quote-app input[type=checkbox],#vsg-quote-app input[type=radio]{-webkit-appearance:auto;appearance:auto;width:auto;height:auto;padding:0}
#vsg-quote-app[aria-busy=true]{min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--mut);font-size:15px;font-weight:600;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:28px 18px;margin:8px 0 24px}

#vsg-quote-app h1{font-size:clamp(22px,3.4vw,30px);font-weight:800;color:var(--navy);margin:6px 0 8px;letter-spacing:-.02em;line-height:1.25}
#vsg-quote-app .sub{color:var(--mut);font-size:15px;margin:0 0 18px;line-height:1.5}
#vsg-quote-app .eyebrow{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--blue-d);background:#E4F4FC;border-radius:99px;padding:4px 12px}
#vsg-quote-app .fine,.vsg-app .fine{font-size:12px;color:var(--mut)}
/* progress band */
.vsg-app .band{background:var(--navy);border-radius:14px;padding:14px 18px;margin-bottom:18px}
.vsg-app .steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vsg-app .bstep{display:flex;align-items:center;gap:8px;color:#7d97a6;font-size:13px;font-weight:700}
.vsg-app .bstep.active{color:#fff}.vsg-app .bstep.done{color:var(--blue)}
.vsg-app .bnum{width:24px;height:24px;border-radius:50%;background:#1d4356;display:grid;place-items:center;font-size:12px}
.vsg-app .bstep.active .bnum{background:var(--blue);color:#fff}
.vsg-app .bstep.done .bnum{background:var(--ok);color:#fff}
.vsg-app .bline{flex:1;height:2px;background:#1d4356;min-width:14px}.vsg-app .bline.fill{background:var(--ok)}
/* layout */
.vsg-app .grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.vsg-app .grid>*{min-width:0}
.vsg-app .panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 4px 24px rgba(18,48,63,.06)}
.vsg-app .nav{display:flex;justify-content:space-between;margin-top:16px}
.vsg-app .btn{border:0;border-radius:10px;padding:13px 26px;font-weight:800;font-size:15px;cursor:pointer}
.vsg-app .btn.primary{background:var(--blue);color:#fff;box-shadow:0 6px 16px rgba(31,169,228,.35)}
.vsg-app .btn.primary:hover{background:var(--blue-d)}
.vsg-app .btn.ghost{background:transparent;color:var(--mut)}
/* sidebar */
.vsg-app .side{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;max-width:100%;position:sticky;top:max(14px, env(safe-area-inset-top, 0px) + 14px);z-index:2}
.vsg-app .side-head{background:var(--navy);padding:14px;display:flex;gap:10px;align-items:center}
.vsg-app .side-head img{height:30px;background:#fff;border-radius:6px;padding:3px}
.vsg-app .side-head .k{color:#fff;font-weight:800;font-size:13.5px}
.vsg-app .side-head .p{color:var(--blue);font-size:12.5px;font-weight:700}
.vsg-app .side-body{padding:14px}
/* paintSide() — quote summary card */
.vsg-app .side-card{padding:0;display:flex;flex-direction:column;min-height:100%;min-width:0;max-width:100%;overflow:hidden;background:#fff}
.vsg-app .side-brand{background:var(--navy);padding:16px 18px;display:flex;gap:12px;align-items:center;min-width:0;max-width:100%;overflow:hidden;box-sizing:border-box}
.vsg-app .side-brand img{height:34px;width:auto;max-width:100px;object-fit:contain;background:#fff;border-radius:6px;padding:4px;flex:0 0 auto}
.vsg-app .side-brand b{color:#fff;font-weight:800;font-size:14px;line-height:1.35;flex:1 1 auto;min-width:0;overflow-wrap:break-word;word-break:break-word;white-space:normal}
.vsg-app .side-main{padding:18px 18px 16px;display:flex;flex-direction:column;gap:14px;flex:1 1 auto}
.vsg-app .side-title{padding:0;margin:0;font-weight:800;font-size:15px;color:var(--navy);letter-spacing:-.01em;line-height:1.3}
.vsg-app .side-summary{display:flex;flex-direction:column;gap:0;margin:0}
.vsg-app .side-empty{margin:0;padding:0;font-size:13.5px;line-height:1.55;color:var(--mut);background:transparent;border:0}
.vsg-app .side-card .sline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:13.5px;padding:10px 0;border-bottom:1px dashed var(--line);margin:0;background:transparent}
.vsg-app .side-card .sline:last-child{border-bottom:0}
.vsg-app .side-card .sline span{color:var(--mut);flex:0 1 auto;line-height:1.4}
.vsg-app .side-card .sline b{color:var(--navy);text-align:right;text-transform:capitalize;font-weight:700;word-break:break-word;line-height:1.4}
.vsg-app .side-note{margin:0;padding:12px 14px;font-size:12.5px;line-height:1.5;color:var(--mut);background:var(--bg);border:1px solid var(--line);border-radius:10px}
.vsg-app .side-card details{margin:0;border:1px solid var(--line);border-radius:10px;background:#F7FCFF;overflow:hidden}
.vsg-app .side-card details summary{cursor:pointer;font-weight:800;color:var(--blue-d);font-size:13px;list-style:none;padding:12px 14px;line-height:1.4}
.vsg-app .side-card details summary::-webkit-details-marker{display:none}
.vsg-app .side-card details .sc-area,.vsg-app .side-card details ul{padding-left:14px;padding-right:14px}
.vsg-app .side-card details ul{padding-bottom:12px;margin:0}
.vsg-app .side-call{padding:14px 18px 16px;font-size:13px;color:var(--mut);border-top:1px solid var(--line);margin:0;line-height:1.45;background:#FAFBFC}
.vsg-app .side-call b{color:var(--navy)}
.vsg-app .sline{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:7px 0;border-bottom:1px dashed var(--line)}
.vsg-app .sline span{color:var(--mut)}.vsg-app .sline b{color:var(--navy);text-align:right;text-transform:capitalize}
.vsg-app .sline.est b{color:var(--blue-d);font-size:17px}
.vsg-app .gate{font-size:12.5px;color:var(--mut);background:var(--bg);border-radius:10px;padding:10px;margin:8px 0 0}
/* tiles / choices */
.vsg-app .tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.vsg-app .tiles.two{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.vsg-app .choice{text-align:left;background:#fff;border:2px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:6px}
.vsg-app .choice:hover{border-color:var(--blue);transform:translateY(-2px)}
.vsg-app .choice.selected{border-color:var(--blue);background:#F1FAFE;box-shadow:0 0 0 3px rgba(31,169,228,.18)}
.vsg-app .choice .ic{font-size:24px}.vsg-app .choice .t{font-weight:800;color:var(--navy)}
.vsg-app .choice .d{font-size:12.8px;color:var(--mut)}
/* pills */
.vsg-app .pillrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.vsg-app .plabel{font-size:13px;font-weight:700;color:var(--mut);min-width:110px}
.vsg-app .pill{border:2px solid var(--line);background:#fff;border-radius:99px;padding:9px 16px;font-weight:700;font-size:13.5px;cursor:pointer;color:var(--ink)}
.vsg-app .pill.sel{border-color:var(--blue);background:#F1FAFE;color:var(--blue-d)}
.vsg-app .pill .save{display:block;font-size:10.5px;color:var(--ok);font-weight:800}
/* counters — fixed circles; symbols centred (not stretched by theme/line-height) */
.vsg-app .counter-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);gap:12px}
.vsg-app .cl{font-weight:700}.vsg-app .cd{font-size:12px;color:var(--mut)}
.vsg-app .counter{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}
.vsg-app .counter button{width:34px;height:34px;min-width:34px;min-height:34px;padding:0;border-radius:50%;border:2px solid var(--line);background:#fff;font-size:20px;font-weight:800;cursor:pointer;color:var(--blue-d);display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 auto;box-sizing:border-box}
.vsg-app .counter button span{display:block;line-height:1;transform:translateY(-1px)}
.vsg-app .counter button:disabled{opacity:.35;cursor:default}
.vsg-app .inlinecnt{display:inline-flex}
/* radio list */
.vsg-app .rlist{display:flex;flex-direction:column;gap:10px}
.vsg-app .ritem{display:flex;gap:12px;align-items:flex-start;text-align:left;border:2px solid var(--line);border-radius:12px;padding:14px;background:#fff;cursor:pointer;color:var(--ink)}
.vsg-app .ritem.selected{border-color:var(--blue);background:#F1FAFE}
.vsg-app .rdot{width:18px;height:18px;min-width:18px;min-height:18px;border-radius:50%;border:2px solid var(--line);margin-top:2px;flex:0 0 auto;box-sizing:border-box;background:#fff}
.vsg-app .ritem.selected .rdot{border-color:var(--blue);background:radial-gradient(circle,var(--blue) 45%,#fff 50%)}
.vsg-app .rl{font-weight:800;color:var(--navy)}.vsg-app .rd{font-size:12.5px;color:var(--mut)}
/* checkbox items */
.vsg-app .cbitem{display:flex;gap:12px;width:100%;align-items:center;text-align:left;border:2px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff;cursor:pointer;margin:0 0 12px;color:var(--ink);min-height:52px}
.vsg-app .cbitem:last-child{margin-bottom:0}
.vsg-app .cbitem .box{width:22px;height:22px;min-width:22px;min-height:22px;border-radius:6px;border:2px solid var(--line);color:transparent;display:grid;place-items:center;font-size:12px;flex:0 0 auto;background:#fff;box-sizing:border-box;line-height:1}
.vsg-app .cbitem.selected{border-color:var(--blue);background:#F1FAFE}
.vsg-app .cbitem.selected .box{background:var(--blue);border-color:var(--blue);color:#fff}
.vsg-app .cbitem .pr{margin-left:auto;font-size:12px;color:var(--mut);font-weight:700;flex:0 0 auto;padding-left:8px}
.vsg-app .cbitem .rl{flex:1 1 auto;line-height:1.4;font-weight:700;color:var(--navy);text-align:left}
.vsg-app .m2row{margin:-4px 0 10px 46px;font-size:13px;color:var(--mut)}
.vsg-app .m2row input{width:84px;padding:6px;border:1.5px solid var(--line);border-radius:8px;margin:0 6px}
/* forms */
.vsg-app .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vsg-app .field.wide{grid-column:1/-1}
.vsg-app .field label{display:block;font-size:12.5px;font-weight:800;color:var(--navy);margin-bottom:5px}
.vsg-app .field input,.vsg-app .field textarea,.vsg-app .q select,.vsg-app .q input:not(.cv-in),.vsg-app .q textarea{width:100%;padding:12px;border:2px solid var(--line);border-radius:10px;font-size:15px;background:#fff}
.vsg-app .field textarea{min-height:96px;resize:vertical}
.vsg-app .field input:focus,.vsg-app textarea:focus{outline:none;border-color:var(--blue)}
.vsg-app .field.err input{border-color:var(--warn);background:#FFF6F5}
.vsg-app .hint{font-size:12px;color:var(--mut);margin-top:4px}
.vsg-app .hp{position:absolute!important;left:-5000px!important;height:1px;width:1px;opacity:0}
/* questionnaire */
.vsg-app .qgroup{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-d);margin:20px 0 6px;border-top:1px solid var(--line);padding-top:14px}
.vsg-app .q{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed var(--line)}
.vsg-app .q>label{font-weight:700;font-size:14px}
.vsg-app .q select,.vsg-app .q input[type=date],.vsg-app .q input:not([type]),.vsg-app .q textarea{max-width:260px}
.vsg-app .q .pillrow{margin:0}
/* postcode */
.vsg-app .pc-row input{font-size:24px;font-weight:800;letter-spacing:.25em;text-align:center;width:190px;padding:14px;border:2px solid var(--line);border-radius:12px}
.vsg-app .pc-msg{margin-top:12px;font-weight:700;font-size:14px;min-height:20px}
.vsg-app .pc-msg.ok{color:var(--ok)}.vsg-app .pc-msg.no{color:var(--warn)}
/* photos */
.vsg-app .ph-area{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.vsg-app .ph-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.vsg-app .ph-btn{background:#F1FAFE;border:2px dashed var(--blue);color:var(--blue-d);font-weight:800;font-size:13px;padding:8px 14px;border-radius:10px;cursor:pointer}
.vsg-app .ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:10px}
.vsg-app .ph-grid:empty{margin:0}
.vsg-app .ph-item{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}
.vsg-app .ph-item img{width:100%;height:86px;object-fit:cover;display:block}
.vsg-app .ph-item input{width:100%;border:0;border-top:1px solid var(--line);padding:7px;font-size:11.5px}
.vsg-app .ph-item button{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(18,48,63,.8);color:#fff;cursor:pointer;font-size:11px}
.vsg-app .ph-msg{color:var(--warn);font-weight:700;font-size:13px;min-height:18px}
/* calendar & slots */
.vsg-app .cal{border:1px solid var(--line);border-radius:14px;padding:14px;max-width:420px}
.vsg-app .cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.vsg-app .cal-head button{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--line);background:#fff;cursor:pointer;font-size:16px;color:var(--ink)}
.vsg-app .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.vsg-app .dow{font-size:11px;font-weight:800;color:var(--mut);padding:4px 0}
.vsg-app .day{aspect-ratio:1;border:1.5px solid transparent;background:transparent;border-radius:9px;font-weight:700;cursor:pointer;font-size:13.5px;color:var(--ink)}
.vsg-app .day:hover:not(:disabled){border-color:var(--blue)}
.vsg-app .day.sel{background:var(--blue);color:#fff}
.vsg-app .day:disabled{color:#6B7C88;cursor:default;opacity:.85;font-weight:700;background:#EEF2F5;border-color:#E0E7EC}
.vsg-app .slot-label{font-weight:800;color:var(--navy);font-size:13.5px;margin:16px 0 8px}
.vsg-app .slots{display:flex;flex-wrap:wrap;gap:8px}
.vsg-app .slot{border:2px solid var(--line);border-radius:10px;background:#fff;padding:10px 14px;font-weight:700;cursor:pointer;font-size:13.5px;color:var(--ink)}
.vsg-app .slot.sel{border-color:var(--blue);background:#F1FAFE;color:var(--blue-d)}
/* result */
.vsg-app .done{text-align:center;padding:14px 4px}
.vsg-app .badge-ok{width:58px;height:58px;margin:0 auto 12px;border-radius:50%;background:var(--ok);color:#fff;font-size:26px;display:grid;place-items:center}
.vsg-app .big-price{font-size:clamp(34px,6vw,52px);font-weight:800;color:var(--navy);margin:8px 0 2px;letter-spacing:-.02em}
.vsg-app .big-price small{display:block;font-size:13px;color:var(--mut);font-weight:700}
.vsg-app .ref{color:var(--mut);font-size:14px;margin-bottom:14px}
.vsg-app .qtable{max-width:460px;margin:0 auto 12px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:6px 14px}
.vsg-app .qline{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;padding:7px 0;border-bottom:1px dashed var(--line)}
.vsg-app .qline:last-child{border-bottom:0}
.vsg-app .disclaimer{max-width:560px;margin:0 auto 14px;background:var(--bg);border-radius:10px;padding:10px 14px;text-align:left}
.vsg-app .spin{width:40px;height:40px;margin:14px auto;border:4px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:vsgspin .8s linear infinite}
@keyframes vsgspin{to{transform:rotate(360deg)}}
/* responsive */
@media(max-width:860px){
  .vsg-app .grid{grid-template-columns:1fr}
  .vsg-app .side{position:static;order:-1}
  .vsg-app .side-main{padding:16px 16px 14px;gap:12px}
  .vsg-app .side-call{padding:12px 16px 14px}
  .vsg-app .side-card .sline{padding:10px 0}
}
@media(max-width:560px){.vsg-app .panel{padding:18px 14px}.vsg-app .grid2{grid-template-columns:1fr}.vsg-app .blabel{display:none}}
/* scope / what's included */
.vsg-app .scope{margin:16px 0 0;border:1px solid var(--line);border-radius:12px;background:#F7FCFF;overflow:hidden}
.vsg-app .scope summary{cursor:pointer;font-weight:800;color:var(--blue-d);padding:12px 14px;font-size:14px;list-style:none}
.vsg-app .scope summary::-webkit-details-marker{display:none}
.vsg-app .scope summary::after{content:"▾";float:right;transition:.15s}
.vsg-app .scope[open] summary::after{transform:rotate(180deg)}
.vsg-app .scope ul{margin:0;padding:0 16px 12px 16px;list-style:none}
.vsg-app .scope li{font-size:13px;color:var(--ink);padding:5px 0 5px 22px;position:relative;border-top:1px dashed var(--line)}
.vsg-app .scope li:before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:800}
.vsg-app .side .scope{margin:10px 0 0}
.vsg-app .side .scope li{font-size:12px}
.vsg-app .scope-done{max-width:460px;margin:0 auto 14px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:12px 16px;background:#F7FCFF}
.vsg-app .scope-done ul{margin:8px 0 0;padding:0;list-style:none}
.vsg-app .scope-done li{font-size:13px;padding:4px 0 4px 22px;position:relative}
.vsg-app .scope-done li:before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:800}
.vsg-app .sc-area{font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--blue-d);padding:10px 16px 0}
.vsg-app .scope-done .sc-area{padding:10px 0 0}
.vsg-app .scope-done ul{margin:4px 0 0;padding:0;list-style:none}
.vsg-app .privacy-note{margin:16px 0 10px;font-size:12px;color:var(--mut);background:var(--bg);border-radius:10px;padding:10px 14px;line-height:1.5}
.vsg-app .consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin:8px 0;cursor:pointer}
.vsg-app .consent input{width:18px;height:18px;margin-top:1px;accent-color:var(--blue);flex:0 0 auto}
.vsg-app .consent.optional{color:var(--mut)}
.vsg-app .consent.err span{color:var(--warn);font-weight:700}
.vsg-app .linkbtn{background:none;border:none;color:var(--blue-d);font-weight:700;cursor:pointer;padding:0;font-size:inherit}
.vsg-app .linkbtn:disabled{color:var(--mut);cursor:default}
.vsg-app .q.fm{border-bottom:0;padding-bottom:0}
.vsg-app .qnote{font-size:12px;color:var(--mut);background:var(--bg);border-left:3px solid var(--blue);border-radius:0 8px 8px 0;padding:8px 12px;margin:6px 0;line-height:1.5}
.vsg-app .cv-in{width:74px;max-width:74px;flex:0 0 74px;text-align:center;border:1.5px solid var(--line);border-radius:10px;padding:8px 4px;font-weight:800;font-size:16px;color:var(--ink);background:#fff;-moz-appearance:textfield;box-sizing:border-box}
.vsg-app .cv-in::-webkit-outer-spin-button,.vsg-app .cv-in::-webkit-inner-spin-button{-webkit-appearance:none}
.vsg-app .sc-tag{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:1px 6px;margin-right:6px;vertical-align:1px}
.vsg-app .sc-opt .sc-tag{background:#e8f4fd;color:var(--blue-d)}
.vsg-app .sc-ex{opacity:.72}
.vsg-app .sc-ex .sc-tag{background:#f4f4f5;color:#666}
.vsg-app .cal-fallback{background:var(--bg);border:1.5px dashed var(--line);border-radius:14px;padding:18px;text-align:center}
.vsg-app .cal-fallback p{font-size:13px;color:var(--mut);margin:8px auto 12px;max-width:420px}
.vsg-app .confirm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;max-width:640px;margin:14px auto;text-align:left}
.vsg-app .confirm-grid>div{background:var(--bg);border-radius:10px;padding:10px 12px}
.vsg-app .confirm-grid span{display:block;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.vsg-app .confirm-grid b{font-size:13px;word-break:break-word}
.vsg-app .next-steps{max-width:560px;margin:10px auto;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:14px 18px;font-size:13px}
.vsg-app .next-steps ol{margin:8px 0 0 18px;padding:0}
.vsg-app .next-steps li{margin:4px 0}
.vsg-app .card h1:focus{outline:none}

/* v2.0.0 — upload progress, floor composition, consumables detail */
.vsg-app .ph-prog{height:4px;background:var(--line);border-radius:2px;overflow:hidden;margin:0}
.vsg-app .ph-bar{height:100%;width:0;background:var(--blue,#1c7ed6);transition:width .2s}
.vsg-app .ph-item.failed .ph-bar{background:#d64545}
.vsg-app .ph-state{font-size:10.5px;padding:3px 7px;color:#3c6255;min-height:16px}
.vsg-app .ph-item.failed .ph-state{color:#b02a2a}
.vsg-app .ph-item.uploading img{opacity:.65}
.vsg-app .fmix-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-top:10px}
.vsg-app .fmix-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.vsg-app .fmix-row span{flex:1;font-weight:600;font-size:13.5px}
.vsg-app .fmix-row input{width:74px;text-align:center;border:1.5px solid var(--line);border-radius:8px;padding:7px 4px;font-weight:700}
.vsg-app .fmix-row em{font-style:normal;color:#6a7a82;font-size:12px}
.vsg-app .fmix-total{margin-top:8px;font-size:12.5px;color:#3c6255;min-height:16px}
.vsg-app .fmix-total.over{color:#b02a2a;font-weight:700}
.vsg-app .cons-row{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:10px}
.vsg-app .cons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:8px}
.vsg-app .cons-grid label{font-size:11px;color:#6a7a82;display:block;margin-bottom:3px}
.vsg-app .cons-grid input,.vsg-app .cons-grid select{width:100%;border:1.5px solid var(--line);border-radius:8px;padding:7px}
.vsg-app .btn.sm{padding:7px 13px;font-size:13px}

/* v2.0.0 accessibility & mobile-usability pass (handover item 6) */
.vsg-app button:focus-visible,.vsg-app .opt:focus-visible,.vsg-app a:focus-visible,
.vsg-app select:focus-visible,.vsg-app input:focus-visible,.vsg-app textarea:focus-visible,
.vsg-app [tabindex]:focus-visible{outline:3px solid var(--gold,#C9A227);outline-offset:2px;border-radius:6px}
.vsg-app select:focus{border-color:var(--blue)}
@media(max-width:560px){
  /* Touch targets — exclude calendar days / tiny chrome so they are not stretched */
  .vsg-app .btn,.vsg-app .pill,.vsg-app .choice,.vsg-app .slot,.vsg-app .ritem,.vsg-app .cbitem,.vsg-app .opt,.vsg-app .ph-btn{min-height:44px}
  .vsg-app .counter button{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;font-size:22px}
  .vsg-app .cv-in{min-height:44px;height:44px;font-size:16px;width:74px;max-width:74px}
  .vsg-app .field input,.vsg-app .field textarea,.vsg-app .q select,.vsg-app .q input:not(.cv-in),.vsg-app .q textarea,.vsg-app select{font-size:16px}
}

/*
 * Theme conflict fixes — do not redesign.
 * Re-assert original colours with high specificity (+ !important only where
 * themes commonly force button { color/background } and wipe .sel/.selected).
 */
#vsg-quote-app button.day{color:var(--ink)!important;background:transparent!important;border-color:transparent}
#vsg-quote-app button.day:hover:not(:disabled){border-color:var(--blue)!important;color:var(--ink)!important;background:transparent!important}
#vsg-quote-app button.day.sel{background:var(--blue)!important;border-color:var(--blue)!important;color:#fff!important;opacity:1}
#vsg-quote-app button.day:disabled{color:#5A6B76!important;background:#EEF2F5!important;border-color:#D5DEE4!important;opacity:1;cursor:default;font-weight:700!important}
#vsg-quote-app .cal-head button{color:var(--ink)!important;background:#fff!important}
#vsg-quote-app button.slot{color:var(--ink)!important;background:#fff!important;border-color:var(--line)!important}
#vsg-quote-app button.slot.sel{border-color:var(--blue)!important;background:#F1FAFE!important;color:var(--blue-d)!important}
#vsg-quote-app button.pill{color:var(--ink)!important;background:#fff!important;border-color:var(--line)!important}
#vsg-quote-app button.pill.sel{border-color:var(--blue)!important;background:#F1FAFE!important;color:var(--blue-d)!important}
#vsg-quote-app button.choice{background:#fff!important;color:var(--ink)!important;border-color:var(--line)!important;box-shadow:none}
#vsg-quote-app button.choice.selected{border-color:var(--blue)!important;background:#F1FAFE!important;box-shadow:0 0 0 3px rgba(31,169,228,.18)!important}
#vsg-quote-app button.choice .t{color:var(--navy)!important}
#vsg-quote-app button.choice .d{color:var(--mut)!important}
#vsg-quote-app button.ritem{background:#fff!important;color:var(--ink)!important;border-color:var(--line)!important}
#vsg-quote-app button.ritem.selected{border-color:var(--blue)!important;background:#F1FAFE!important}
#vsg-quote-app button.ritem .rl{color:var(--navy)!important}
#vsg-quote-app button.ritem .rd{color:var(--mut)!important}
#vsg-quote-app button.cbitem .rl{color:var(--navy)!important;font-weight:700!important}
#vsg-quote-app button.cbitem{margin:0 0 12px!important;padding:14px 16px!important;min-height:52px!important;width:100%!important;display:flex!important;align-items:center!important;gap:12px!important}
#vsg-quote-app button.cbitem.selected{border-color:var(--blue)!important;background:#F1FAFE!important}
#vsg-quote-app button.cbitem .box{color:transparent!important;background:#fff!important;border-color:var(--line)!important}
#vsg-quote-app button.cbitem.selected .box{background:var(--blue)!important;border-color:var(--blue)!important;color:#fff!important}
#vsg-quote-app button.cbitem .pr{color:var(--mut)!important}
#vsg-quote-app button.btn.primary{background:var(--blue)!important;color:#fff!important;box-shadow:0 6px 16px rgba(31,169,228,.35)}
#vsg-quote-app button.btn.ghost{background:transparent!important;color:var(--mut)!important;box-shadow:none}
#vsg-quote-app button.linkbtn{background:none!important;border:none!important;color:var(--blue-d)!important;box-shadow:none}
#vsg-quote-app .counter button{color:var(--blue-d)!important;background:#fff!important;border-radius:50%!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center;line-height:1!important}
#vsg-quote-app .cv-in{color:var(--ink)!important;background:#fff!important;width:74px!important;max-width:74px!important}
#vsg-quote-app .rdot,#vsg-quote-app .cbitem .box{flex:0 0 auto!important}
#vsg-quote-app .ph-btn{background:#F1FAFE!important;border-color:var(--blue)!important;color:var(--blue-d)!important}
#vsg-quote-app .ph-item button{background:rgba(18,48,63,.8)!important;color:#fff!important}
#vsg-quote-app .grid{grid-template-columns:minmax(0,1fr) 300px!important}
#vsg-quote-app .grid>*{min-width:0!important}
#vsg-quote-app .side{min-width:0!important;max-width:100%!important;overflow:hidden!important}
#vsg-quote-app .side-card{min-width:0!important;max-width:100%!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
#vsg-quote-app .side-brand{background:var(--navy)!important;display:flex!important;align-items:center!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important}
#vsg-quote-app .side-brand img{max-width:100px!important;flex:0 0 auto!important}
#vsg-quote-app .side-brand b{color:#fff!important;flex:1 1 auto!important;min-width:0!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:break-word!important}
#vsg-quote-app .side-main{padding:18px 18px 16px!important;display:flex!important;flex-direction:column!important;gap:14px!important}
#vsg-quote-app .side-title{color:var(--navy)!important;padding:0!important;margin:0!important;font-size:15px!important;font-weight:800!important}
#vsg-quote-app .side-empty{color:var(--mut)!important;background:transparent!important;border:0!important;padding:0!important;margin:0!important;font-size:13.5px!important;line-height:1.55!important}
#vsg-quote-app .side-note{color:var(--mut)!important;background:var(--bg)!important;border:1px solid var(--line)!important;border-radius:10px!important;padding:12px 14px!important;margin:0!important;line-height:1.5!important}
#vsg-quote-app .side-card .sline{padding:10px 0!important;margin:0!important;border-bottom:1px dashed var(--line)!important;background:transparent!important}
#vsg-quote-app .side-card .sline span{color:var(--mut)!important}
#vsg-quote-app .side-card .sline b{color:var(--navy)!important}
#vsg-quote-app .side-call{color:var(--mut)!important;padding:14px 18px 16px!important;margin:0!important;border-top:1px solid var(--line)!important;background:#FAFBFC!important}
#vsg-quote-app .side-call b{color:var(--navy)!important}
#vsg-quote-app .field input,#vsg-quote-app .field textarea,
#vsg-quote-app .q input,#vsg-quote-app .q select,#vsg-quote-app .q textarea{color:var(--ink)!important;background:#fff!important;border-color:var(--line)!important;width:100%!important;max-width:100%!important;box-shadow:none!important}
#vsg-quote-app .field input:focus,#vsg-quote-app .field textarea:focus,
#vsg-quote-app .q input:focus,#vsg-quote-app .q select:focus,#vsg-quote-app .q textarea:focus{border-color:var(--blue)!important;outline:none!important;box-shadow:0 0 0 3px rgba(31,169,228,.18)!important}
#vsg-quote-app .pc-row input{color:var(--ink)!important;background:#fff!important;border-color:var(--line)!important;width:190px!important;max-width:100%!important;font-size:24px!important;font-weight:800!important;text-align:center!important}
#vsg-quote-app .consent input{width:18px!important;height:18px!important;min-width:18px!important;flex:0 0 auto!important;accent-color:var(--blue)}
#vsg-quote-app button.btn{width:auto!important;min-width:0!important;max-width:none!important}
#vsg-quote-app .counter button{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;max-width:34px!important}
#vsg-quote-app .confirm-grid>div{background:var(--bg)!important}
#vsg-quote-app .confirm-grid span{color:var(--mut)!important}
#vsg-quote-app .confirm-grid b{color:var(--navy)!important}
#vsg-quote-app .next-steps{background:#fff!important;border-color:var(--line)!important;color:var(--ink)!important}
#vsg-quote-app .done h1{color:var(--navy)!important}
#vsg-quote-app .done .sub,#vsg-quote-app .done .ref,#vsg-quote-app .done .fine{color:var(--mut)!important}
#vsg-quote-app .band{background:var(--navy)!important}
#vsg-quote-app .panel,#vsg-quote-app .side{background:#fff!important;border-color:var(--line)!important}
#vsg-quote-app .grid{display:grid!important}
#vsg-quote-app .nav{display:flex!important;width:100%!important}
#vsg-quote-app .consent{color:var(--ink)!important}
#vsg-quote-app .privacy-note{color:var(--mut)!important;background:var(--bg)!important}
@media(max-width:560px){
  #vsg-quote-app .counter button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important}
}
