/* Wine room builder (wine-room-builder.html). Uses the tokens from site.css. */

/* The site header normally sticks to the top. Here the 3D view sticks instead,
 * so the header scrolls away and the room gets the screen. */
.wb-page .site-header{position:relative}
.wb-app [hidden]{display:none!important}

.wb-aside{background:#FBF0E4;border-bottom:1px solid #EFDCC4;font-size:.86rem;color:var(--ink-2);padding:9px 0}
.wb-aside strong{color:var(--ink)}

.wb-intro{padding:4px 0 22px}
.wb-intro h1{font-size:clamp(1.9rem,4vw,2.8rem);margin-top:.4em}
.wb-intro .lede{font-size:1.05rem}

/* ---------- app layout: 3D stage left, steps right ---------- */
.wb-app{
  display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:0;
  max-width:1440px;margin:0 auto 64px;padding:0 24px;align-items:start;
}
.wb-stage{
  position:sticky;top:12px;height:min(78vh,760px);min-height:420px;
  background:#efe9df;border:1px solid var(--line);border-radius:var(--radius-lg) 0 0 var(--radius-lg);
  overflow:hidden;
}
.wb-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.wb-stage canvas:active{cursor:grabbing}
.wb-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:28px;background:#fff}
.wb-fallback svg{width:100%;height:100%}
.wb-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--ink-3);font-size:.9rem}
.wb-loading[hidden]{display:none}
.wb-loading span{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:wb-spin .8s linear infinite}
@keyframes wb-spin{to{transform:rotate(360deg)}}
.wb-stage-tools{position:absolute;top:12px;left:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px}
.wb-tool{
  font:600 .8rem/1 var(--sans);padding:9px 12px;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.88);border:1px solid rgba(42,38,34,.12);color:var(--ink);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.wb-tool:hover{background:#fff;border-color:var(--navy)}
.wb-tool[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
#wb-door-toggle{margin-right:auto}
.wb-hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:.78rem;color:var(--ink-3);margin:0;pointer-events:none}

.wb-panel{
  background:var(--white);border:1px solid var(--line);border-left:0;
  border-radius:0 var(--radius-lg) var(--radius-lg) 0;
  display:flex;flex-direction:column;min-height:min(78vh,760px);
}

/* ---------- step tabs ---------- */
.wb-steps{list-style:none;margin:0;padding:12px 12px 0;display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}
.wb-steps li{flex:1 1 auto}
.wb-steps button{
  width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;
  background:none;border:0;border-bottom:3px solid transparent;padding:4px 2px 9px;cursor:pointer;
  font:600 .72rem/1.1 var(--sans);color:var(--ink-3);
}
.wb-steps button span{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  border:1px solid var(--line);font-size:.72rem;color:var(--ink-2);background:var(--cream);
}
.wb-steps button.done span{background:var(--leaf-2);border-color:#CBE0D4;color:var(--leaf)}
.wb-steps button[aria-current="step"]{color:var(--navy);border-bottom-color:var(--navy)}
.wb-steps button[aria-current="step"] span{background:var(--navy);border-color:var(--navy);color:#fff}

.wb-body{padding:22px 24px 8px;flex:1}
.wb-step h2{font-size:1.45rem;margin-bottom:.35em}
.wb-step h2:focus{outline:none}
.wb-step .eyebrow{margin-bottom:.4em}
.wb-sub{font-size:.92rem;color:var(--ink-2);margin-bottom:1em}
.wb-q{font:700 .82rem/1.2 var(--sans);letter-spacing:.02em;margin:1.35em 0 .6em;color:var(--ink)}
.wb-tip{font-size:.82rem;color:var(--ink-3);margin:.6em 0 0}
.wb-tip:empty{display:none}
.wb-row{display:flex;flex-wrap:wrap;gap:0 22px}

/* ---------- choices ---------- */
.wb-choices{display:grid;gap:8px}
.wb-choices[hidden]{display:none}
.wb-choices button{
  text-align:left;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);
  padding:11px 13px;cursor:pointer;font-family:var(--sans);color:var(--ink);
  display:flex;flex-direction:column;gap:3px;transition:border-color .12s,background .12s;
}
.wb-choices button:hover{border-color:var(--navy-2)}
.wb-choices button[aria-checked="true"]{background:var(--glass-2);border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.wb-choices button:disabled{opacity:.4;cursor:not-allowed}
.wb-choices button:focus-visible,.wb-steps button:focus-visible,.wb-tool:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.wb-lbl{font-weight:650;font-size:.92rem;line-height:1.25}
.wb-lbl em{font-style:normal;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--leaf);background:var(--leaf-2);padding:2px 6px;border-radius:3px;margin-left:4px;vertical-align:1px}
.wb-desc{font-size:.8rem;color:var(--ink-2);line-height:1.4}

.wb-cards{grid-template-columns:1fr 1fr}
.wb-cards-2{grid-template-columns:1fr 1fr}
.wb-cards-3{grid-template-columns:1fr 1fr 1fr}
.wb-cards-4{grid-template-columns:1fr 1fr}
[data-choice="layout"] button{align-items:flex-start}
.wb-plan svg{width:64px;height:54px;display:block;margin-bottom:4px}

.wb-chips{display:flex;flex-wrap:wrap;gap:6px}
.wb-chips button{flex-direction:row;align-items:baseline;gap:6px;padding:8px 13px;border-radius:999px}
.wb-chips .wb-desc{font-size:.76rem;color:var(--ink-3)}
.wb-side{margin-top:10px}

.wb-swatches{display:flex;flex-wrap:wrap;gap:8px}
.wb-swatches button{flex-direction:row;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px}
.wb-sw{width:28px;height:28px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex:none;background-size:cover;background-position:center}
.wb-swatches-img .wb-lbl{font-size:.82rem}
.wb-swatches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px}
.wb-swatches-grid button{padding:4px 8px 4px 4px}
.wb-swatches-grid .wb-sw{width:24px;height:24px}
.wb-swatches-grid .wb-lbl{font-size:.8rem;font-weight:600}
.wb-tip-top{margin:-.2em 0 .6em}
.wb-paint-custom{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:.86rem;font-weight:600}
.wb-paint-custom input[type=color]{width:52px;height:34px;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;cursor:pointer}
.wb-paint-hex-val{font:500 .82rem/1 ui-monospace,Menlo,Consolas,monospace;color:var(--ink-3)}

/* ---------- dimensions ---------- */
.wb-dims{margin-top:18px;display:grid;gap:16px}
.wb-dims:empty{display:none}
.wb-dim[hidden]{display:none}
.wb-dim-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.wb-dim-head label{font-weight:650;font-size:.88rem}
.wb-dim-val{font-weight:700;color:var(--navy);font-size:.95rem;white-space:nowrap}
.wb-dim input[type=range]{width:100%;margin:8px 0 4px;accent-color:var(--navy)}
.wb-dim-exact{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-3)}
.wb-dim-exact input{width:58px;padding:5px 6px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);background:#fff}
.wb-dim-exact span{margin-right:2px}

.wb-spec{font-size:.88rem;color:var(--ink-2);background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.wb-spec strong{color:var(--ink)}
.wb-monogram{margin-top:14px;max-width:260px}
.wb-words{max-width:340px}
.wb-note{font-size:.84rem;line-height:1.5;color:var(--ink-2);margin:-.2em 0 .9em;padding-left:12px;border-left:2px solid var(--line);font-style:italic}
.wb-sub-q{font:600 .76rem/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:1.1em 0 .55em}
.wb-why{font-size:.88rem;color:var(--ink-2);margin:0 0 .8em}
.wb-why strong{color:var(--ink)}
.wb-link{background:none;border:0;padding:0;font:inherit;color:var(--navy);text-decoration:underline;cursor:pointer}
.wb-lbl em[hidden]{display:none}
.wb-monogram input{text-transform:uppercase;letter-spacing:.2em;font-weight:600}
/* The example text reads as written ("e.g. CELLAR or THE SMITHS"); only what people type is capitals. */
.wb-monogram input::placeholder{text-transform:none;letter-spacing:normal;font-weight:400}

/* ---------- notes ---------- */
.wb-notes:empty{display:none}
.wb-notes{margin-top:20px;background:#FBF0E4;border:1px solid #EFDCC4;border-radius:var(--radius);padding:10px 14px 10px 4px;font-size:.84rem;color:var(--ink-2)}
.wb-notes ul{margin:0;padding-left:24px}
.wb-notes li+li{margin-top:5px}

/* ---------- back / next ---------- */
.wb-nav{display:flex;justify-content:space-between;gap:10px;padding:14px 24px 18px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--white);border-radius:0 0 var(--radius-lg) 0}
.wb-nav .btn{margin:0}
.wb-nav #wb-next{margin-left:auto}
.wb-nav [hidden]{display:none}

/* ---------- review ---------- */
.wb-summary{margin:0 0 18px;font-size:.87rem;border-top:1px solid var(--line)}
.wb-summary div{display:grid;grid-template-columns:118px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.wb-summary dt{color:var(--ink-3);font-weight:600}
.wb-summary dd{margin:0;color:var(--ink)}
.wb-drawings{display:grid;gap:14px}
.wb-drawing{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px}
.wb-drawing figcaption{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.wb-drawing svg{width:100%;height:auto;max-height:300px;display:block}
.wb-share{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.wb-share .btn{font-size:.86rem;padding:10px 14px}
.wb-linkbox{width:100%;margin-top:6px;padding:6px 8px;font:inherit;font-size:.78rem;border:1px solid var(--line);border-radius:var(--radius)}
.wb-form{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.wb-form h3{font-size:1.15rem;margin-bottom:.3em}
.wb-form .small{margin-bottom:16px}
.wb-form .field-row{gap:12px}
.wb-form .field{margin-bottom:12px}
.wb-check{display:flex;align-items:flex-start;gap:.6em;font-size:.9rem;line-height:1.45;color:var(--ink-2);margin:4px 0 14px;cursor:pointer}
.wb-check input{width:auto;padding:0;margin-top:.25em;flex:none}
.wb-rack-note{margin:1.1em 0 1.4em;padding:16px 18px;font-size:.88rem}

/* ---------- narrow screens: stage on top, steps below ---------- */
@media(max-width:1080px){
  .wb-app{grid-template-columns:minmax(0,1fr) 390px;padding:0 16px}
}
@media(max-width:860px){
  .wb-app{grid-template-columns:1fr;padding:0;margin-bottom:0}
  .wb-stage{position:sticky;top:0;z-index:5;height:44vh;min-height:280px;border-radius:0;border-left:0;border-right:0}
  .wb-panel{border:0;border-radius:0;min-height:0}
  .wb-steps{padding:8px 6px 0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .wb-steps li{flex:1 0 auto}
  .wb-body{padding:18px 16px 8px}
  .wb-nav{padding:12px 16px calc(12px + env(safe-area-inset-bottom));bottom:0;border-radius:0;z-index:4}
  .wb-tool{padding:8px 10px;font-size:.75rem}
  .wb-intro{padding-bottom:14px}
  .wb-intro .lede{font-size:.98rem}
  /* The site's mobile call bar would sit on top of Back/Next. */
  .wb-page .callbar{display:none}
}
@media(max-width:420px){
  .wb-cards,.wb-cards-3{grid-template-columns:1fr 1fr}
  .wb-cards-3 .wb-desc{display:none}
  .wb-summary div{grid-template-columns:96px 1fr}
}

/* ---------- print: only the summary sheet ---------- */
.wb-print{display:none}
@media print{
  @page{margin:12mm}
  body.wb-page>*{display:none!important}
  body.wb-page>#wb-print{display:block!important;font-size:10.5pt;color:#1d1a16;background:#fff}
  .wb-print header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:2px solid #0F3D6E;padding-bottom:8px;margin-bottom:10px}
  .wb-print header img{height:34px;width:auto}
  .wb-print header h1{font-size:18pt;margin:0;text-align:right}
  .wb-print header p{margin:0;text-align:right;color:#5b5349}
  .wb-print-shot{display:block;margin-left:auto;margin-right:auto;max-width:100%;max-height:82mm;object-fit:contain;border-radius:3px;margin-bottom:10px}
  .wb-print-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .wb-print dl{margin:0;display:grid;grid-template-columns:30mm 1fr;gap:2px 10px;align-content:start;font-size:9.5pt;line-height:1.35}
  .wb-print dt{font-weight:700;color:#5b5349}
  .wb-print dd{margin:0}
  .wb-print-draw{display:grid;gap:8px}
  .wb-print .wb-drawing{border:1px solid #ddd;padding:6px;break-inside:avoid}
  .wb-print .wb-drawing figcaption{font-size:7.5pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8a8073;margin-bottom:3px}
  .wb-print .wb-drawing svg{width:100%;height:auto;max-height:52mm}
  .wb-print footer{margin-top:12px;border-top:1px solid #ccc;padding-top:6px;font-size:9pt;color:#5b5349}
  .wb-print footer p{margin:0 0 3px}
  .wb-print-link{word-break:break-all;font-size:6.5pt;line-height:1.3}
}
