/* Guided studio: one calm question at a time. */
#quote-panel{min-width:0}#quote-panel[hidden],#piano-controls[hidden],#quote-scene[hidden]{display:none!important}.quote-progress{display:flex;gap:5px;margin:0 0 25px}.quote-progress span{height:2px;background:#ffffff13;flex:1}.quote-progress .passed{background:var(--accent-gold)}.quote-kicker{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent-gold);margin:0 0 12px}#quote-panel h3{font-size:27px;line-height:1.18;font-weight:400;letter-spacing:-.6px;margin:0 0 14px;outline:none}.quote-hint{font-size:14px;line-height:1.6;color:#c5b7ce;margin:0 0 23px}.quote-assurance{border-left:1px solid #c9ad7666;padding-left:14px;margin:20px 0 23px;font-size:12px;line-height:1.6;color:#baadc4}.quote-assurance strong{font-weight:400;color:#ece4ef}.quote-assurance p{margin:5px 0 0}#quote-input{box-sizing:border-box;width:100%;padding:14px 12px;border:1px solid #786583;border-radius:4px;background:#ffffff05;color:#f6eff9;font:inherit;font-size:15px;color-scheme:dark}#quote-input:focus-visible,.quote-choices button:focus-visible,.quote-next:focus-visible{outline:2px solid var(--accent-gold);outline-offset:3px}.quote-next{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;margin:14px 0 0;padding:14px 16px;background:#79d99b;color:#102719;border:0;border-radius:4px;font:inherit;font-size:14px;text-decoration:none;cursor:pointer}.quote-next span{color:inherit}.quote-next:hover:not(:disabled){background:#92e5af}.quote-next:active:not(:disabled){background:#63c886}.quote-next:focus-visible{outline:2px solid #79d99b;outline-offset:3px}.quote-next:disabled{opacity:.55;cursor:wait}.quote-small{font-size:11px;line-height:1.6;color:#b2a5bc;margin-top:17px}.quote-small a{color:inherit}.quote-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:23px;font-size:11px;color:#b2a5bc}.quote-bottom button{background:transparent;color:inherit;border:0;padding:8px 0;cursor:pointer;font:inherit}.quote-bottom a{color:#d4c7dd;text-underline-offset:4px}.quote-choices{display:grid;gap:9px}.quote-choices button{background:#ffffff04;color:#e7dfea;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #ffffff18;border-radius:4px;padding:17px 14px;font:inherit;font-size:15px;cursor:pointer;text-align:left;transition:background .2s,border-color .2s}.quote-choices button span{color:var(--accent-gold);opacity:.65}.quote-choices button:hover,.quote-choices button[aria-pressed=true]{background:#c9ad760d;border-color:#c9ad7666}.quote-error{color:#eacba3;font-size:13px;line-height:1.5}.quote-error:empty{display:none}.quote-call{display:block;text-align:center;color:#d9cbe2;font-size:13px;margin-top:24px}#piano-controls .selection{display:none}#piano-controls{margin-bottom:30px}#quote-scene{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 65%,#3e2d4966 0%,#241d2e33 40%,transparent 78%);animation:scene-in .45s ease-out}.quote-visual #piano-portrait,.quote-visual .viewer-bottom{visibility:hidden}.quote-visual::before,.quote-visual::after{display:none!important}#quote-scene svg{width:100%;max-width:650px;height:auto;max-height:75%}.scene-caption{font-size:11px;letter-spacing:3px;color:#c9b8d6;margin-top:22px}.scene-label{font-size:23px;color:#eee4f2;margin:0;text-align:center;font-weight:300}.scene-label span{display:block;font-size:12px;color:#b4a2c0;margin-top:10px}.calendar-day{fill:#6f5e7c;opacity:.4}.calendar-day.selected{fill:#c9ad76;opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes scene-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1000px){.studio-grid{grid-template-columns:minmax(0,1fr) 340px}}@media(max-width:850px){#quote-panel h3{font-size:25px}.quote-visual{height:380px!important}}@media(max-width:600px){.studio-grid{display:grid;grid-template-columns:1fr}#studio .viewer{height:350px}.quote-visual{height:300px!important}#quote-panel{padding:0 5px}#quote-panel h3{font-size:29px}.quote-assurance{font-size:13px}.quote-hint{font-size:15px}.quote-progress{margin-top:15px}.scene-caption{font-size:9px}.scene-label{font-size:19px}.scene-label span{font-size:11px}.quote-next,.quote-choices button{min-height:48px}}@media(prefers-reduced-motion:reduce){#quote-scene{animation:none!important}}

.quote-preview-note{font-size:12px;line-height:1.6;color:#d8c39b;border-left:1px solid #c9ad7666;padding-left:12px}

.studio-grid{scroll-margin-top:calc(var(--header-height,100px) + 22px)}

.quote-assurance-persistent{margin:0 0 26px}.quote-assurance-persistent strong{color:#ed8585}

/* Lift the form alongside the piano and give controls more room. */
@media(min-width:1000px){.studio-grid{grid-template-columns:minmax(0,1fr) 390px}.studio-grid>aside{margin-top:-48px;padding-top:0}}
#piano-controls .type{min-height:104px;padding:22px 16px;box-sizing:border-box}
#piano-controls .type strong{font-size:24px;line-height:1.25}
#piano-controls .type small{font-size:14px;line-height:1.5;margin-top:8px}
#piano-controls .measurement{font-size:15px}
#piano-controls input[type=range]{min-height:44px;cursor:pointer}
#piano-controls .unknown{min-height:44px;display:flex;align-items:center;font-size:14px;gap:10px}
#piano-controls .unknown input{width:20px;height:20px;flex-shrink:0}
#quote-panel .quote-next{min-height:56px;font-size:16px;padding:16px 18px}
@media(max-width:600px){#piano-controls .type{min-height:94px;padding:18px 14px}#piano-controls .type strong{font-size:23px}}

/* Fixed architectural miniatures with question-specific highlights. */
#quote-scene{animation:none}
.architecture-art{position:relative;width:min(94%,740px);max-height:78%;min-height:0;display:flex;align-items:center;justify-content:center;margin:16px 0 12px}
#quote-scene .architecture-art svg{display:block;width:100%;height:100%;max-width:none;max-height:100%;overflow:visible}
.architecture-highlight{fill:#e1be77;fill-opacity:.24;stroke:#e6c88e;stroke-opacity:.85;stroke-width:1.4;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
#quote-scene:has(.architecture-art){justify-content:center}
@media(max-width:600px){.architecture-art{width:88%;max-height:76%;margin:8px 0}.scene-caption{margin-top:8px}.scene-label{font-size:17px}.scene-label span{margin-top:4px}}

.architecture-art{height:76%;aspect-ratio:auto!important}

.quote-bottom>a{font-size:17px;font-weight:600;color:#fff;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.quote-phone-cta{display:flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;width:100%;min-height:54px;margin-top:16px;padding:14px 18px;border:1px solid #d9bf8b;border-radius:4px;background:#d9bf8b;color:#201928;font-size:16px;font-weight:600;text-decoration:none}
.quote-phone-cta:hover{background:#e7cfa3}
.quote-phone-cta:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:400px){.quote-bottom{flex-wrap:wrap;gap:4px 12px}}

/* Clear, consistent reassurance above the quote flow. */
.quote-assurance-persistent{font-size:16px;line-height:1.7;color:#f4f0eb;padding-left:18px;margin-bottom:30px}
.quote-assurance-persistent strong{display:block;font-size:20px;line-height:1.4;font-weight:600;color:inherit}
.quote-assurance-persistent p{margin:12px 0 0;color:inherit}

/* Original NYC artwork, without overlays, lens, or darkening. */
.nyc-location-scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
#quote-scene .nyc-location-art{display:block;width:100%;height:100%;object-fit:contain;max-width:none;max-height:none;mask-image:none;-webkit-mask-image:none;filter:none;opacity:1}

/* Larger, higher-contrast quote copy and controls for easier reading. */
.quote-assurance-persistent{font-size:18px;line-height:1.65}
.quote-assurance-persistent strong{font-size:32px;line-height:1.25;font-weight:700;color:#fff}
#quote-panel .quote-kicker{font-size:16px;font-weight:700;letter-spacing:1.5px;color:#e4ce96}
#quote-panel h3{font-size:34px;line-height:1.2;font-weight:600;letter-spacing:-.4px;color:#fff}
#quote-panel .quote-hint{font-size:19px;line-height:1.55;color:#e4dce9}
#quote-input{font-size:18px;line-height:1.5;padding:15px 14px}
#quote-input::placeholder{color:#c5bdcd;opacity:1}
#quote-panel .quote-next{font-size:18px;min-height:56px}
#quote-panel .quote-bottom{font-size:16px;line-height:1.5}
@media(max-width:600px){.quote-assurance-persistent strong{font-size:30px}#quote-panel h3{font-size:32px}}

/* Stop drawing the piano and its animated dust behind address/building scenes. */
.quote-visual #piano-portrait{display:none}

/* Keep decoded artwork mounted while access highlights change. */
.building-scene{display:contents}
.architecture-art{display:grid;place-items:center}
.architecture-art>img,#quote-scene .architecture-art>svg{grid-area:1 / 1;width:100%;height:100%;object-fit:contain;min-height:0}
#quote-scene:has(.building-scene){justify-content:center}
/* Dynamic questions must not become browser scroll anchors. */
body{overflow-anchor:none}

#mobile-piano { display: none; }

/* Mobile quote flow: questions first, without decorative scene work. */
@media(max-width:700px), (hover:none) and (max-height:500px) and (max-width:950px){
 #studio .studio-grid{display:block}#studio .viewer{display:none!important}
 #studio .studio-grid>aside{margin:0;padding:0;min-width:0}
 #piano-controls{margin-bottom:20px}#piano-controls .type{min-height:64px;padding:12px;gap:12px}
 #piano-controls .type img{width:64px;height:48px;object-fit:contain}
 #piano-controls .type strong{font-size:19px}#piano-controls .type small{font-size:13px;margin-top:3px}
 #quote-panel{padding:0;min-height:360px}#quote-panel h3{font-size:27px}
 #quote-panel .quote-hint{font-size:16px;line-height:1.6}#quote-panel .quote-kicker{font-size:12px}
 #quote-input{font-size:18px;min-height:56px}#quote-panel .quote-choices button{font-size:16px;min-height:54px}
 #quote-panel .quote-bottom button{min-width:64px;min-height:48px;text-align:left}
 #quote-panel .quote-small{font-size:13px}.quote-assurance-persistent{font-size:16px;margin-bottom:24px}
 .quote-assurance-persistent strong{font-size:24px}
 #studio .studio-grid{padding-bottom:env(safe-area-inset-bottom)}
}


.quote-disposal{display:flex;align-items:center;gap:12px;min-height:52px;margin:0 0 16px;font-size:16px;color:#eee4f2}.quote-disposal input{width:20px;height:20px;flex:none}.quote-skip{min-height:48px;border:0;background:transparent;color:#e0d2e9;text-decoration:underline;font:inherit;font-size:14px;text-align:left;margin-top:12px;cursor:pointer}

/* A stable, compact form aligned with its illustration. */
#studio .studio-grid{align-items:start}#studio .studio-grid>aside{padding-top:0;min-height:550px;display:flex;flex-direction:column;overflow-anchor:none}#studio .viewer{height:550px}#studio .quote-assurance-persistent{margin:0 0 14px;padding:0;border:0;font-size:13px}#studio .quote-assurance-persistent strong{font-size:22px}#studio .quote-assurance-persistent p{margin:4px 0}#studio #piano-controls{margin-bottom:0}#studio #types{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}#studio .type{display:flex;align-items:center;justify-content:center;padding:12px 6px;min-height:50px;margin:0;border:1px solid #796886;border-radius:6px}#studio .type[aria-pressed=true]{border-color:#d9bb84;background:#d9bb8412}#studio .type strong{font-size:15px}#studio .type small,#studio .type>img{display:none}#studio .measurement{margin:18px 0 10px;font-size:15px}#studio input[type=range]{min-height:36px;margin:8px 0 0}#studio .unknown{margin-top:8px;min-height:40px;font-size:14px}#studio .unknown input{width:18px;height:18px}#studio .quote-disposal{min-height:40px;margin:0 0 10px;font-size:14px}#studio #quote-panel{min-height:0;flex:1}#studio #quote-panel[data-step=piano] .quote-progress,#studio #quote-panel[data-step=piano] .quote-kicker{display:none}#studio .quote-progress{margin:12px 0 18px}#studio .quote-next{min-height:50px;margin-top:12px}#studio .quote-bottom{margin-top:10px}#studio .quote-choices{gap:8px}#studio .quote-choices button{min-height:48px;padding:12px 14px}#studio .quote-hint:empty{display:none}#studio .quote-hint{margin-bottom:14px}#studio .quote-kicker{margin-bottom:10px}
@media(max-width:700px), (hover:none) and (max-height:500px) and (max-width:950px){#studio .studio-grid>aside{min-height:520px}#studio .quote-assurance-persistent strong{font-size:22px}#studio #types{grid-template-columns:repeat(3,1fr)}#studio .type strong{font-size:14px}#studio .quote-next{min-height:52px}}

@media (max-width: 700px), (hover: none) and (max-height: 500px) and (max-width: 950px) {
  #studio, .customer-reviews {
    padding-inline-start: max(5%, env(safe-area-inset-left));
    padding-inline-end: max(5%, env(safe-area-inset-right));
  }
  #studio .quote-assurance-persistent {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(76px, 26vw, 108px);
    align-content: center;
    align-items: end;
    column-gap: 10px;
  }
  #studio .quote-assurance-persistent p { align-self: start; }
  #mobile-piano {
    display: block;
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  #studio .section-top { flex-direction: column; align-items: stretch; gap: 4px; }
  #studio .section-top > div, #studio #quote-panel { min-inline-size: 0; }
  #studio .section-top h2 { max-width: none; }
  #studio .quote-scroll-cue { display: none; }
  #studio .studio-grid > aside { min-height: clamp(380px, 58svh, 500px); }
  #studio #types { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #studio .type { min-width: 0; }
  #studio #size { touch-action: pan-y pinch-zoom; }
  #studio .quote-bottom { flex-wrap: wrap; }
  footer { flex-wrap: wrap; justify-content: flex-start; gap: 4px 18px; }
  footer a { display: inline-flex; min-height: 44px; align-items: center; }
}

html.quote-framed, html.quote-framed body { overflow: hidden; overscroll-behavior: none; }
#quote-frame {
  position: fixed;
  inset: calc(var(--quote-top, 0px) + max(8px, env(safe-area-inset-top))) 0 auto;
  margin: 0 auto;
  width: min(calc(100% - 20px), 34rem);
  height: calc(var(--quote-height, 100dvh) - max(8px, env(safe-area-inset-top)) - max(8px, env(safe-area-inset-bottom)));
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d2c7dd;
  border-radius: 18px;
  background: #fff;
  color: #302737;
  color-scheme: light;
  --form-purple: #593879;
}
#quote-frame[open] { display: flex; flex-direction: column; }
#quote-frame::backdrop { background: rgb(20 14 25 / 72%); }
.frame-bar { display: flex; align-items: center; justify-content: space-between; padding: 4px 16px; border-bottom: 1px solid #ddd4e6; background: #f5f1f8; color: #432857; }
.frame-bar button, .frame-confirm button { min-height: 44px; padding: 6px 12px; color: inherit; background: transparent; border: 0; text-decoration: underline; }
.frame-body, .frame-confirm { overflow-y: auto; overscroll-behavior: contain; overflow-anchor: none; padding: 16px; min-height: 0; }
#quote-frame .frame-body aside { margin: 0; padding: 0; min-height: 0; }
#quote-frame .quote-assurance-persistent { display: none; }
#quote-frame input, #quote-frame textarea { font-size: max(16px, 1em); }
.frame-confirm h3 { margin: 4px 0 8px; }
.frame-confirm p { line-height: 1.5; }
#frame-keep { color: #fff; background: var(--form-purple); border-radius: 7px; text-decoration: none; }

.simple-fields { display: grid; gap: 14px; }
.simple-fields label { display: grid; gap: 6px; font-size: 16px; font-weight: 600; }
.simple-fields input, .simple-fields textarea {
  width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px;
  font: 400 16px/1.4 Arial,sans-serif; color: #fff; background: #574463;
  border: 1px solid #b7a5c0; border-radius: 7px;
}
.simple-fields :is(input,textarea)::placeholder { color: #e3d9e9; }
#studio.quote-in-progress .section-top { visibility: hidden; }
#studio .size-entry { grid-column: 1 / -1; width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #b7a5c0; border-radius: 7px; background: #574463; color: white; font-size: 16px; }
#studio .size-entry::placeholder { color: #e3d9e9; }

#quote-frame #quote-panel h3, #quote-frame .frame-confirm h3 { color: #392546; }
#quote-frame .simple-fields label, #quote-frame .unknown, #quote-frame .measurement { color: #352b3b; }
#quote-frame .simple-fields :is(input,textarea), #quote-frame .size-entry, #quote-frame .type {
  background: white; color: #302737; border-color: #998aa4;
}
#quote-frame :is(input,textarea)::placeholder { color: #73677b; }
#quote-frame .type[aria-pressed=true] { background: #efe8f5; border-color: var(--form-purple); color: #432857; }
#studio #quote-frame .quote-next { background: var(--form-purple); color: white; border-color: var(--form-purple); box-shadow: none; letter-spacing: normal; }
#studio #quote-frame .quote-next:active { background: #43295c; }
#quote-frame .quote-bottom button, #frame-exit { color: var(--form-purple); }
#quote-frame .quote-error { color: #9c233c; }
#quote-frame .quote-receipt { background: #f8f5fb; border-color: #d2c7dd; }
#studio #quote-frame :is(button,input,textarea):focus-visible { outline: 2px solid var(--form-purple); outline-offset: 2px; }
