
:root{--navy:#102c43;--navy-2:#173c56;--red:#86283a;--red-dark:#6e1f30;--ink:#1b2d3c;--muted:#607281;--cream:#f5f2ed;--white:#fff;--line:#e5e4df;--gold:#bc985b;--shadow:0 18px 50px rgba(15,42,62,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d5a6ac;outline-offset:3px}
.sitebar{background:white;border-bottom:1px solid #e6e4e0}.barinner{max-width:1200px;margin:auto;min-height:82px;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:13px;color:var(--navy)}.brandicon{height:52px;width:54px;flex:0 0 auto}.brandmain{font-family:Georgia,serif;font-weight:700;letter-spacing:.055em;font-size:clamp(22px,3vw,32px);line-height:.92}.brandsmall{letter-spacing:.13em;font-size:10px;color:var(--red);font-weight:800;margin-top:7px}.barlinks{display:flex;align-items:center;gap:18px;font-size:12px;font-weight:700;color:var(--navy)}.barlinks .borderlink{border:1px solid #d3d9dc;border-radius:5px;padding:10px 14px}.barlinks a:hover{color:var(--red)}
.previewflag{background:#fff9ed;border-bottom:1px solid #eee2cb;padding:8px 20px;text-align:center;color:#74583c;font-size:11px;letter-spacing:.02em;font-weight:700}
.page{max-width:1200px;margin:auto;padding:38px 24px 60px}.kicker{font-weight:800;text-transform:uppercase;letter-spacing:.17em;font-size:11px;color:var(--red)}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.12}h1{font-size:clamp(34px,4.4vw,57px);margin:9px 0 10px;max-width:860px;letter-spacing:-.035em}h2{font-size:clamp(27px,3.1vw,38px);margin:5px 0 10px;letter-spacing:-.03em}h3{font-size:22px;margin:0 0 8px}p{color:var(--muted);margin:5px 0 15px}.topline{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:23px}.previewtag{border:1px solid #e8c5c9;background:#fff8f8;color:var(--red);font-size:11px;letter-spacing:.08em;border-radius:50px;padding:6px 12px;font-weight:800;white-space:nowrap}
.progressrail{background:white;border:1px solid var(--line);padding:16px 22px;border-radius:12px 12px 0 0;display:flex;gap:8px;align-items:center}.progressstep{flex:1;min-width:0}.progressstep .track{height:5px;border-radius:20px;background:#e9e7e2;margin-bottom:6px;transition:background .2s}.progressstep.done .track{background:var(--red)}.progressstep small{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:#97a0a5}.progressstep.current small{color:var(--red)}
.stageframe{background:white;border:1px solid var(--line);border-top:0;border-radius:0 0 15px 15px;box-shadow:var(--shadow);overflow:hidden}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:510px}.previewpanel{background:linear-gradient(150deg,#e4e7e5,#f2f0eb 52%,#e7dfd4);padding:25px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:13px;min-width:0}.previewheading{display:flex;justify-content:space-between;align-items:center;gap:12px}.previewheading strong{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#405363}.previewheading span{font-size:11px;color:#668075}.hero-art{background:linear-gradient(180deg,#d5e1e4,#ede8db);border:1px solid #d2dad8;border-radius:14px;overflow:hidden;box-shadow:0 15px 40px #23394b14}.hero-art svg{width:100%;height:auto;display:block}.hero-caption{font-size:12px;color:#61707a}.livechip{display:inline-flex;align-items:center;gap:6px;background:white;border:1px solid #dfe5df;padding:7px 10px;border-radius:100px;color:#2f6044;font-size:11px;font-weight:800}.livedot{width:6px;height:6px;border-radius:50%;background:#49805a}
.configpanel{padding:30px 30px 23px;min-width:0}.stage-top{display:flex;justify-content:space-between;gap:15px;align-items:center}.stage-tag{font-weight:800;color:var(--red);letter-spacing:.13em;text-transform:uppercase;font-size:10px}.stage-intro{font-size:13px;max-width:520px}.sectionname{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:800;color:#294155;margin:22px 0 11px}.sectionname button{background:none;border:0;color:var(--red);font-size:12px;font-weight:700;text-decoration:underline}
.choicegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.choicegrid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-card{text-align:left;background:#fff;border:1px solid #dce1e2;border-radius:12px;overflow:hidden;color:var(--ink);transition:transform .14s,border-color .14s,box-shadow .14s;position:relative;padding:0;min-width:0}.visual-card:hover{transform:translateY(-1px);box-shadow:0 6px 16px #102c4310}.visual-card.selected{border:2px solid var(--red);box-shadow:0 0 0 2px #8d2e3c18}.card-art{display:block;aspect-ratio:1.8;overflow:hidden;background:linear-gradient(135deg,#eaf0f2,#dce3e2);border-bottom:1px solid #e2e6e4}.card-art svg{display:block;width:100%;height:100%}
/* Only actual garage scenes share the 480:318 viewBox. Equipment graphics retain their own proportions. */
.card-art:has(svg[viewBox="0 0 480 350"]){aspect-ratio:480 / 350}.card-meta{padding:11px 11px 13px;min-height:60px;display:flex;align-items:start;gap:8px;justify-content:space-between}.card-meta b{display:block;font-size:12px;line-height:1.25}.card-meta small{display:block;margin-top:3px;font-size:10px;color:#72808a;line-height:1.25}.checkcircle{display:grid;place-items:center;flex:0 0 19px;width:19px;height:19px;border-radius:50%;background:var(--red);color:#fff;font-size:12px;font-weight:800}.textchoice{background:#fff;border:1px solid #dce1e2;border-radius:10px;padding:12px;text-align:left;min-height:65px;display:flex;align-items:center;gap:10px;color:var(--ink)}.textchoice.selected{border:2px solid var(--red);padding:11px;background:#fff8f8}.textchoice b{font-size:12px}.textchoice small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.swatch{width:30px;height:30px;border-radius:8px;border:1px solid #bbc5c8;flex:0 0 30px;box-shadow:inset 0 0 0 2px #ffffff42}.fieldrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{margin:12px 0}.field label{font-size:12px;font-weight:800;color:#405260;display:block;margin-bottom:6px}.field input,.field textarea{width:100%;background:white;border:1px solid #cfd7d9;border-radius:9px;padding:11px;color:var(--ink)}.field textarea{min-height:88px;resize:vertical}
.note{background:#f7f8f7;border:1px solid #e8e9e6;border-radius:10px;padding:13px;margin:17px 0 4px;color:#4c5b64;font-size:12px}.note.warning{background:#fff9ed;border-color:#eedcb9;color:#78604a}.note strong{color:var(--ink)}.miniopt{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.miniopt .textchoice{flex:1}
.bottomnav{padding:17px 24px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;background:white}.btn{border:1px solid var(--navy);border-radius:7px;padding:12px 17px;min-height:44px;background:var(--navy);color:white;font-size:12px;font-weight:800;letter-spacing:.02em}.btn.primary{background:var(--red);border-color:var(--red)}.btn.ghost{background:white;color:var(--navy);border-color:#ccd5d8}.btn.subtle{background:#f4f6f6;border-color:#e0e6e8;color:#234054}.btn:hover:not(:disabled){filter:brightness(.96)}.savehint{font-size:11px;color:#71848a;text-align:center}
.summaryitem{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #e6e8e7;font-size:13px}.summaryitem span:last-child{font-weight:800;text-align:right}.summaryarea{background:#f7f8f7;border-radius:12px;padding:15px}.emptyprice{font-family:Georgia,serif;font-size:27px;margin:0 0 4px}.noticebadge{display:inline-flex;border-radius:100px;background:#f7e5dc;color:#8c442f;padding:5px 9px;font-size:10px;font-weight:800;letter-spacing:.06em}.previewactions{display:flex;gap:8px;flex-wrap:wrap}.previewactions .btn{flex:1}
.picker{background:#fafbfa;border:1px dashed #adbcc2;padding:22px 14px;border-radius:14px;text-align:center}.picker input{display:block;max-width:100%;margin:12px auto}.picker-icon{font-size:36px}.photo-wrap{position:relative;max-width:100%;background:#1f2d32;overflow:hidden;border-radius:12px;line-height:0;touch-action:auto}.photo-wrap canvas{width:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}.loupe{position:absolute;z-index:5;display:none;width:130px;height:130px;border-radius:50%;border:4px solid white;box-shadow:0 8px 28px #0009;pointer-events:none;overflow:hidden;background:white}.loupe.show{display:block}.loupe canvas{width:100%;height:100%;display:block}.toolstrip{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.toolstrip .btn{font-size:11px;padding:8px 10px;min-height:38px}.photohelp{font-size:12px;color:#5c6d76;margin:9px 0}.tipchips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.tipchips span{background:#fff;border:1px solid #d5dddf;color:#536778;border-radius:100px;padding:5px 9px;font-size:10px;font-weight:700}
.img-help{background:linear-gradient(145deg,#edf0ed,#e3dfd8);border-radius:12px;padding:17px;margin-top:15px}.img-help strong{font-size:13px}.corner-options{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0}.corner-options button{border:1px solid #d5dadd;background:white;border-radius:30px;padding:7px 10px;font-size:11px;font-weight:700;color:#415869}.corner-options button.active{background:var(--navy);color:#fff}.nudgegrid{display:flex;gap:6px;align-items:center}.nudgegrid .btn{min-width:43px;padding:8px}.photostate{padding:12px 0;color:#68808a;font-size:12px}
footer{max-width:1200px;margin:0 auto;padding:0 24px 30px;display:flex;justify-content:space-between;gap:12px;color:#849098;font-size:11px}
@media(max-width:880px){.workspace{display:flex;flex-direction:column;grid-template-columns:1fr}.previewpanel{border-right:0;border-bottom:1px solid var(--line);padding:19px}.previewpanel .hero-art{max-height:350px;display:flex;align-items:center;justify-content:center}.previewpanel .hero-art svg{max-height:350px}.configpanel{padding:24px}.page{padding:23px 15px 40px}.topline{margin-bottom:17px}}
@media(max-width:530px){.barinner{padding:12px 15px;min-height:72px}.brandicon{height:42px;width:43px}.brandsmall{font-size:8px}.barlinks a:first-child{display:none}.barlinks .borderlink{padding:9px;font-size:10px}.previewtag{font-size:9px}.topline{gap:8px}h1{font-size:32px}.page{padding:20px 11px 32px}.progressrail{padding:13px 13px 10px;gap:4px}.progressstep small{display:none}.progressstep.current small{display:block;font-size:8px;white-space:nowrap}.previewpanel{padding:14px}.configpanel{padding:20px 14px}.choicegrid{gap:9px}.choicegrid.cols3{grid-template-columns:repeat(2,minmax(0,1fr))}.card-meta{padding:9px;min-height:59px}.card-meta b{font-size:12px}.card-meta small{font-size:10px}.bottomnav{padding:13px}.btn{padding:11px 13px}.fieldrow{grid-template-columns:1fr}.photo-wrap{border-radius:8px}.loupe{width:112px;height:112px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Preview estimate and Jobber testing */
.vision-price{font:400 clamp(30px,4.8vw,48px)/1.14 Georgia,'Times New Roman',serif;color:#172d3c;margin:10px 0 12px;letter-spacing:-.025em}
.vision-conditions{margin-top:15px;padding-top:11px;border-top:1px solid #dce3e4;color:#5b6c76;font-size:12px}
.vision-conditions strong{display:block;font-size:12px;color:#2e4456;margin-bottom:6px}
.vision-conditions p{margin:5px 0;font-size:12px;line-height:1.45}
.configpanel form{margin-top:10px}
.configpanel .field select{width:100%;border:1px solid #cfd7d9;border-radius:9px;padding:11px;color:#1b2d3c;background:white;min-height:46px}
.configpanel input[type="tel"],.configpanel input[type="email"],.configpanel input[name="service-address"]{min-height:44px}
#vision-submit-message[data-state="warning"]{background:#fff5e9;border-color:#ead2ae;color:#7d5337}
#vision-submit-message[data-state="success"]{background:#eef7f0;border-color:#bdd8c2;color:#28633a}
#vision-submit-message{overflow-wrap:anywhere}
.vision-verification{margin:12px 0;min-height:60px}
.vision-confirmed{background:#f0f8f1;border:1px solid #b4d5bd;border-radius:12px;padding:17px;margin:15px 0}
.vision-confirmed h3{color:#1c623b;margin:0 0 5px}
.vision-confirmed p{font-size:13px;color:#295740;margin:0}
#vision-upload-progress{padding:14px 0}
@media(max-width:530px){#vision-submit{width:100%;font-size:12px;min-height:48px}#vision-quote-form .toolstrip{flex-direction:column}#vision-quote-form .toolstrip button{width:100%}}

@media(max-width:880px){.workspace.pricing-view .configpanel{order:-1}.workspace.pricing-view .previewpanel{order:0}}

/* Step 5: keep the photo and its positioning controls together, especially on phones. */
.previewpanel:has(.photo-control-dock){gap:8px;scroll-margin-top:8px}
.photo-wrap{margin-inline:auto}
.photo-help-top{margin:4px 0 2px;text-align:center;line-height:1.35}
.photo-control-dock{background:#fff;border:1px solid #d8e0e1;border-radius:12px;padding:13px;box-shadow:0 5px 20px #12324910}
.photo-control-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.photo-control-heading strong{font-size:13px;color:var(--navy)}
.photo-control-heading span{font-size:11px;color:#607581}
.photo-corner-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.photo-corner-btn{display:flex;align-items:center;justify-content:center;gap:5px;min-height:43px;background:#f6f8f8;border:1px solid #d7dfe1;border-radius:8px;color:#455a68;font-size:11px;font-weight:700;padding:7px 4px}
.photo-corner-btn.active{background:#fff1f3;border:2px solid var(--red);color:#712535;padding:6px 3px}
.photo-corner-number{display:grid;place-items:center;flex:0 0 21px;width:21px;height:21px;background:#dce5e7;color:#2c4858;border-radius:50%;font-size:11px}
.photo-corner-btn.active .photo-corner-number{background:var(--red);color:white}
.photo-adjust-row{display:flex;align-items:center;justify-content:center;gap:19px;margin:12px auto}
.photo-arrowpad{display:grid;grid-template-columns:repeat(3,47px);grid-template-rows:repeat(2,47px);gap:4px;flex:0 0 auto}
.photo-arrow{display:grid;place-items:center;border:1px solid #c6d3d7;background:#f3f6f6;border-radius:9px;color:var(--navy);font-size:23px;font-weight:750;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.photo-arrow:active{background:#e6c9ce;border-color:var(--red)}
.photo-arrow.up{grid-column:2;grid-row:1}
.photo-arrow.left{grid-column:1;grid-row:2}
.photo-arrow.down{grid-column:2;grid-row:2}
.photo-arrow.right{grid-column:3;grid-row:2}
.photo-adjust-copy{flex:1;max-width:200px;min-width:0;display:flex;flex-direction:column;gap:6px}
.photo-adjust-copy b{font-size:12px;color:var(--navy);line-height:1.25}
.photo-adjust-copy span{font-size:11px;color:#667a82;line-height:1.4}
.photo-quick-actions{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;border-top:1px solid #e9eceb;padding-top:11px}
.photo-quick-actions .btn{min-height:39px;font-size:11px;padding:7px 10px}
.photo-control-note{color:#73818a;font-size:10px;line-height:1.4;margin:9px 0 0;text-align:center}
@media(max-width:530px){
 .photo-control-dock{padding:10px}
 .photo-control-heading{margin-bottom:8px}
 .photo-control-heading span{font-size:10px}
 .photo-corner-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .photo-corner-btn{justify-content:flex-start;min-height:39px;padding:6px 8px}
 .photo-corner-btn.active{padding:5px 7px}
 .photo-adjust-row{margin:9px auto;gap:12px}
 .photo-arrowpad{grid-template-columns:repeat(3,45px);grid-template-rows:repeat(2,45px);gap:4px}
 .photo-adjust-copy span{font-size:10px}
 .photo-quick-actions{gap:5px;padding-top:8px}
 .photo-quick-actions .btn{flex:1 1 auto;min-height:38px;padding:7px 9px}
 .photo-save-control{flex:1 1 100%!important}
}

/* One clearly presented upload control. The native file input remains keyboard accessible. */
.picker .photo-file-label{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:190px;margin:5px 0 12px;padding:11px 18px;border-radius:8px;background:var(--red);color:#fff;font-size:13px;font-weight:800;cursor:pointer;text-align:center}
.picker .photo-file-label:hover{background:var(--red-dark)}
.picker #photo-file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.picker:focus-within .photo-file-label{outline:3px solid #d5a6ac;outline-offset:3px}

/* Vision 6: one real preview surface. The blue divider marks the pinned region.
   Cards and hero use the same native 480:318 SVG proportions, never stretched. */
.vision-condensed-copy{display:none}
.vision-live-dot{display:inline-block;width:7px;height:7px;background:#3b8762;border-radius:50%;box-shadow:0 0 0 3px #3b87621a}
.hardware-info{font-size:11.5px;line-height:1.55;color:#596c76;margin:10px 2px 0}
@media(max-width:880px){
  /* Sticky must be allowed to traverse the tall 6-step workspace in iOS Safari. */
  .stageframe{overflow:visible}
  .workspace:not(.photo-stage):not(.pricing-view) .previewpanel{
    position:sticky;top:0;z-index:25;align-self:start;width:100%;
    border-bottom:4px solid #084a7a;
    background:rgba(251,252,250,.99);
    box-shadow:0 5px 13px rgba(16,44,67,.12);
  }
  .workspace:not(.photo-stage):not(.pricing-view).vision-preview-condensed .previewpanel{
    display:grid;grid-template-columns:minmax(0,56%) minmax(0,1fr);
    align-items:center;gap:9px;
    padding:8px 12px;
    border-radius:0;
  }
  .vision-preview-condensed .previewheading,
  .vision-preview-condensed .hero-caption,
  .vision-preview-condensed .tipchips{display:none}
  .vision-preview-condensed .hero-art{
    margin:0;max-height:none!important;min-width:0;
    border:0;border-radius:5px;box-shadow:none;background:#f5f8f7;
  }
  .vision-preview-condensed .hero-art svg{
    max-height:none!important;width:100%;height:auto;display:block;
    transform:none;object-fit:contain;
  }
  .vision-preview-condensed .vision-condensed-copy{
    display:flex;min-width:0;flex-direction:column;gap:5px;
    color:#19364a;font-size:12px;line-height:1.3;
  }
  .vision-condensed-copy strong{font-size:10px;letter-spacing:.075em;color:#84263b;white-space:nowrap}
  .vision-condensed-copy b{font-size:15px}
  .vision-condensed-copy small{font-size:11px;color:#596e7b}
}
@media(max-width:530px){
 .workspace:not(.photo-stage):not(.pricing-view).vision-preview-condensed .previewpanel{
  grid-template-columns:minmax(0,57%) minmax(0,1fr);padding:6px 9px;gap:8px
 }
 .vision-condensed-copy strong{font-size:9px}
 .vision-condensed-copy b{font-size:13px}
 .vision-condensed-copy small{font-size:10px}
}
@media(max-width:360px){
 .vision-condensed-copy strong{letter-spacing:0;font-size:8.4px}
}

/* Readable product/service proposals. Price stays as ONE provisional installed range. */
.vision-work-items{margin:22px 0 10px}
.vision-work-items h3{font-family:Georgia,serif;font-size:22px;margin:0 0 5px;color:#18394b}
.vision-work-items>p{font-size:12px;line-height:1.55;color:#627782;margin:0 0 12px}
.vision-work-list{border:1px solid #dae1e2;border-radius:12px;overflow:hidden}
.vision-work-row{position:relative;padding:12px 12px 13px;border-bottom:1px solid #e3e9e9;background:#fbfcfc}
.vision-work-row:nth-child(2n){background:white}
.vision-work-row:last-child{border-bottom:0}
.vision-work-row strong{display:block;padding-right:58px;font-size:12px;line-height:1.4;color:#243d50}
.vision-work-row>span{position:absolute;top:12px;right:12px;font-size:10px;border-radius:40px;padding:3px 8px;color:#742438;background:#f9e9ec;font-weight:800}
.vision-work-row p{margin:4px 0;font-size:11.5px;color:#617682}
.vision-work-row small{display:block;font-size:10.5px;color:#7c8688;line-height:1.4}
@media(max-width:530px){.vision-work-row{padding:11px}.vision-work-row strong{font-size:12px}.vision-work-row p{font-size:11px}}

/* Vision Step 5 rebuild: one focused photo workspace, no second "upload" page. */
.workspace.photo-stage{display:block;min-height:0}
.workspace.photo-stage .configpanel{display:none}
.workspace.photo-stage .previewpanel{
 display:block;border-right:0;background:linear-gradient(160deg,#eff0ed,#ecece7);
 padding:22px 22px 27px;min-height:0
}
.vision-photo-flow{width:100%;max-width:700px;margin:0 auto}
.vision-photo-intro{margin:0 0 18px}
.vision-photo-intro h2,.vision-photo-editor-head h2{
 font-family:Georgia,"Times New Roman",serif;font-size:clamp(26px,3vw,35px);margin:5px 0 8px;color:var(--navy)
}
.vision-photo-intro p{max-width:550px;font-size:13px;color:#637780;line-height:1.5;margin:0}
.vision-photo-first-upload{
 background:#fff;border:1px dashed #aebfc4;border-radius:14px;padding:27px 18px;
 display:flex;align-items:center;flex-direction:column;gap:8px;text-align:center
}
.vision-photo-upload-illustration{
 display:grid;place-items:center;width:60px;height:60px;border-radius:15px;
 background:#f5e9eb;color:var(--red);font-size:36px;line-height:1
}
.vision-photo-first-upload>strong{color:var(--navy);font-size:18px}
.vision-photo-first-upload>p{font-size:12px;color:#5d7380;margin:0}
.vision-photo-file-control{display:flex;align-items:center;gap:9px;min-width:0}
.vision-photo-file-control.is-first{flex-direction:column;margin-top:7px;gap:7px}
.vision-photo-file-control .photo-file-label{
 display:inline-flex;align-items:center;justify-content:center;
 min-height:43px;margin:0;padding:10px 17px;background:var(--red);border-radius:8px;
 border:1px solid var(--red);color:#fff;font-size:12px;font-weight:800;
 cursor:pointer;text-align:center;white-space:nowrap
}
.vision-photo-file-control .photo-file-label:hover{background:var(--red-dark)}
.vision-photo-file-control.is-replace .photo-file-label{
 background:#fff;border-color:#c9d3d6;color:var(--navy);min-height:39px
}
.vision-photo-file-control.is-replace .photo-file-label:hover{background:#f6f7f7}
.vision-photo-file-control #photo-file{
 position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
 clip-path:inset(50%);white-space:nowrap;border:0
}
.vision-photo-file-control:focus-within .photo-file-label{outline:3px solid #d5a6ac;outline-offset:3px}
.vision-photo-privacy{font-size:11px;color:#74838a;max-width:330px;text-align:center;line-height:1.4}
.vision-photo-editor-head{
 display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px
}
.vision-photo-editor-head h2{font-size:clamp(24px,2.5vw,32px);margin:5px 0 0}
.vision-photo-canvas-label{margin-bottom:12px}
.workspace.photo-stage .photo-wrap{margin:0 auto}
.workspace.photo-stage .photo-control-dock{margin-top:4px}
.vision-photo-smallprint{
 color:#74838a;font-size:11px;line-height:1.5;margin:13px 0 2px;text-align:center
}
.vision-photo-notes{border:1px solid #d6dcde;border-radius:10px;background:#fff;margin:14px 0 0;overflow:hidden}
.vision-photo-notes summary{
 list-style:none;display:flex;align-items:center;justify-content:space-between;
 min-height:46px;padding:11px 13px;font-weight:800;font-size:12px;
 color:#234154;cursor:pointer
}
.vision-photo-notes summary::-webkit-details-marker{display:none}
.vision-photo-notes summary:after{content:"＋";color:var(--red);font-size:20px;font-weight:400;line-height:1}
.vision-photo-notes[open] summary:after{content:"−"}
.vision-photo-notes summary span{margin-left:auto;margin-right:16px;font-size:11px;color:#7e8d96;font-weight:500}
.vision-photo-notes .field{margin:0;padding:0 13px 13px}
.vision-photo-notes .field textarea{width:100%}
@media(max-width:880px){
 .workspace.photo-stage .previewpanel{padding:17px 14px 21px}
 .vision-photo-editor-head h2{font-size:25px}
 .vision-photo-flow{max-width:660px}
}
@media(max-width:530px){
 .workspace.photo-stage .previewpanel{padding:13px 11px 18px}
 .vision-photo-editor-head{align-items:center;gap:6px}
 .vision-photo-editor-head h2{font-size:23px;max-width:228px}
 .vision-photo-file-control.is-replace .photo-file-label{
  padding:7px 9px;min-height:39px;font-size:11px;white-space:normal;max-width:115px
 }
 .vision-photo-canvas-label{margin-bottom:9px}
 .vision-photo-canvas-label strong{font-size:11px}
 .vision-photo-canvas-label .livechip{padding:5px 8px;font-size:10px}
 .vision-photo-first-upload{padding:27px 14px}
 .vision-photo-notes{margin-top:11px}
}

/* Vision customer-language and equipment refinements, Oct 2026. */
.vision-style-explainer{
 border-left:3px solid #9a3746;background:#fbf7f5;color:#485d68;
 margin:13px 0 9px;padding:9px 12px;border-radius:0 8px 8px 0;font-size:11.5px;line-height:1.45
}
.vision-custom-finish{
 display:flex;justify-content:space-between;align-items:center;gap:14px;
 background:#f9fbfa;border:1px solid #dbe1e1;border-radius:10px;
 margin-top:12px;padding:13px
}
.vision-custom-finish strong{display:block;font-size:12px;color:#244457;margin-bottom:3px}
.vision-custom-finish p{font-size:11px;color:#637985;margin:0;max-width:380px;line-height:1.45}
.vision-color-picker{
 display:flex;align-items:center;gap:7px;flex:0 0 auto;cursor:pointer;
 border:1px solid #ced9da;background:white;border-radius:8px;padding:6px 10px
}
.vision-color-picker input[type=color]{width:44px;height:42px;display:block;border:0;background:none;padding:0;cursor:pointer}
.vision-color-picker span{font-size:10.5px;font-weight:800;color:#344b5a;white-space:nowrap}
.vision-design-note{
 margin:15px 0 4px;border:1px solid #e0d4bf;border-left:4px solid #ad8650;
 border-radius:9px;padding:12px 14px;background:#fffaf1;
 font-size:11.5px;color:#645e53;line-height:1.55
}
.vision-design-note strong{color:#5e4128}
.vision-installation-section{
 margin:26px 0 8px;padding:19px;border:2px solid #cbd8db;
 background:#f9fbfa;border-radius:13px;
}
.vision-installation-intro{
 background:#edf2f3;border-radius:9px;padding:12px 14px;margin-bottom:16px
}
.vision-installation-intro .stage-tag{color:#873041}
.vision-installation-intro h3{margin:5px 0 6px;font-size:24px;color:#183447}
.vision-installation-intro p{color:#506d7b;font-size:12px;line-height:1.5;margin:0}
.vision-installation-section .sectionname{margin-top:15px}
.vision-installation-section .choicegrid{gap:8px}
.vision-installation-section .textchoice{min-height:58px}
@media(max-width:530px){
 .vision-custom-finish{flex-wrap:wrap;gap:11px}
 .vision-color-picker{width:100%;justify-content:center}
 .vision-installation-section{margin:22px -2px 4px;padding:11px}
 .vision-installation-intro{padding:11px}
 .vision-installation-intro h3{font-size:22px}
 .vision-installation-section .textchoice{padding:10px}
}

/* A downloadable PDF, not a raw configuration export. */
.vision-pdf-card{
 margin:22px 0 12px;padding:17px 18px;border:1px solid #d0dce0;border-radius:13px;
 background:linear-gradient(105deg,#faf8f3,#f1f6f6);
 box-shadow:0 4px 16px #17354b0a;
}
.vision-pdf-card strong{display:block;color:var(--navy);font-size:14px;font-weight:800}
.vision-pdf-card p{font-size:12px;color:#627583;line-height:1.52;margin:4px 0 12px}
.vision-pdf-download{display:block;width:100%;min-height:48px;font-size:13px}
.vision-pdf-status{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#355d69;line-height:1.4}
.vision-pdf-status:empty{display:none}
.vision-pdf-status span{display:block;margin-top:10px}
.vision-pdf-status .vision-pdf-open{
 display:inline-flex;align-items:center;justify-content:center;
 min-height:42px;padding:9px 13px;border-radius:8px;
 background:white;color:var(--red);border:1px solid #d3b6bc;
 font-weight:800;text-decoration:none;
}
.vision-pdf-status .vision-pdf-open:focus-visible{outline:3px solid #d5a6ac;outline-offset:3px}
@media(max-width:530px){.vision-pdf-card{padding:14px}.vision-pdf-download{min-height:50px}}

/* Previous choices remain visible, but basic style samples never inherit them. */
.vision-glass-reminder{
 margin:10px 0 17px;padding:11px 13px;
 background:#f6f8f8;border:1px solid #d6e0e2;border-left:3px solid #81283e;
 border-radius:7px;color:#506677;font-size:11.5px;line-height:1.55
}
.vision-glass-reminder strong{color:#18394b}
@media(max-width:530px){.vision-glass-reminder{font-size:11px;padding:10px 11px}}

/* Vision 3 Preview: beta is a release status, not a decoration. */
.previewflag{
 display:flex;align-items:center;justify-content:center;gap:12px 16px;
 flex-wrap:wrap;padding:11px 22px;background:#faf4ef;
 border-bottom:1px solid #e5cad0;color:#455b66;text-align:left;letter-spacing:normal;
}
.vision-beta-stamp{
 display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;
 color:var(--navy);font-size:11px;font-weight:900;letter-spacing:.07em;white-space:nowrap;
}
.vision-beta-stamp span{
 display:inline-flex;align-items:center;padding:6px 9px;border-radius:5px;
 background:var(--red);color:white;font-size:12px;font-weight:900;letter-spacing:.12em;
}
.vision-beta-explainer{font-size:11.5px;line-height:1.45;font-weight:600;max-width:525px}
.vision-beta-testing{font-size:9px;line-height:1.4;color:#8a5360;font-weight:800;letter-spacing:.05em}
@media(max-width:650px){
 .previewflag{display:grid;grid-template-columns:1fr;gap:5px;padding:10px 14px;text-align:left}
 .vision-beta-stamp{font-size:10px}
 .vision-beta-stamp span{font-size:11px;padding:5px 8px}
 .vision-beta-explainer{font-size:10.5px;max-width:none}
 .vision-beta-testing{font-size:9px}
}

/* Release-ready contact consent: compact, legible, and accessible on a phone. */
.vision-consent{display:flex;align-items:flex-start;gap:11px;margin:15px 0;padding:14px 15px;border:1px solid #d6e0e1;background:#f7f9f8;border-radius:9px;font-size:12px;line-height:1.55;color:var(--navy);cursor:pointer}
.vision-consent input{width:18px;height:18px;min-width:18px;margin:1px 0 0;accent-color:var(--red)}
.vision-consent a{font-weight:800;color:var(--red);text-decoration:underline;text-underline-offset:2px}
.vision-consent:focus-within{outline:2px solid #d5a6ac;outline-offset:2px}
footer a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:530px){.vision-consent{font-size:11.5px;padding:12px;gap:9px}}

/* Vision 6 UX: dimensions belong to the exact opening being configured. */
.vision-door-picker{margin:17px 0 16px;padding:14px;border:1px solid #b9ccd4;border-radius:12px;background:linear-gradient(135deg,#f1f7f8,#fbfcfc)}
.vision-door-picker-heading{display:grid;gap:3px;margin-bottom:10px}
.vision-door-picker-heading strong{font-size:13px;color:#17394d}
.vision-door-picker-heading small{font-size:11px;color:#5d7480;line-height:1.45}
.vision-door-picker-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.vision-door-tab{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:65px;border-radius:9px;padding:10px 12px;background:#fff;border:1px solid #cddadf;color:#234358;text-align:left}
.vision-door-tab.selected{border:2px solid #86283a;background:#fff6f7;padding:9px 11px;box-shadow:0 0 0 2px #86283a12}
.vision-door-tab strong{font-size:12px}.vision-door-tab span{font-size:10.5px;color:#627780}
/* Help-me-decide means a conversation, not a fifth window design. */
.visual-card[data-opt="windows"][data-val="unsure"] .card-art{position:relative}
.visual-card[data-opt="windows"][data-val="unsure"] .card-art:after{content:"?";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.94);border:2px solid #084a7a;color:#084a7a;font:700 33px/1 Georgia,serif;box-shadow:0 5px 18px #102c4333}
@media(max-width:530px){.vision-door-picker{padding:11px}.vision-door-picker-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-card[data-opt="windows"][data-val="unsure"] .card-art:after{width:39px;height:39px;font-size:28px}}

/* Pin the Vision 3 Beta/pricing disclosure beneath the sticky site navigation. */
.previewflag{position:sticky!important;top:82px;z-index:55;box-shadow:0 3px 12px rgba(10,35,52,.09)}
@media(max-width:700px){.previewflag{top:73px}}
