/* UK Timber configurator layout (shared: door now, pergola cart module next). Everything is scoped to .ukt-cfg. */
.ukt-cfg{--bg:#f4f1ea;--surface:#fffdf8;--ink:#1a1f16;--muted:#5c6554;--line:#d4cfc3;--accent:#2f5d3a;--accent-ink:#fff;--warn:#7a4b00;--bad:#8b1a1a;--radius:10px;
  --shadow:0 1px 3px rgba(26,31,22,.08),0 8px 24px rgba(26,31,22,.06);--bar-h:72px;
  font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45;padding-bottom:calc(var(--bar-h) + 1rem)}
.ukt-cfg *{box-sizing:border-box}
.ukt-cfg .ukt-wrap{max-width:1760px;margin:0 auto;padding:1rem 1.5rem 2rem}
.ukt-cfg .ukt-brand{display:inline-block;line-height:0;margin:0 0 .6rem}
.ukt-cfg .ukt-brand img{width:220px;height:auto;display:block}
.ukt-cfg h1{font-size:clamp(1.35rem,2.4vw,1.8rem);margin:0 0 1rem}
.ukt-cfg .ukt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,460px);gap:1.25rem;align-items:start}
.ukt-cfg .ukt-preview{position:sticky;top:1rem;align-self:start}
.ukt-cfg .ukt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.ukt-cfg .ukt-stage{position:relative;overflow:hidden;height:min(68vh,760px);min-height:360px;background:linear-gradient(#eef0ec,#dfe2dc)}
.ukt-cfg .ukt-stage canvas{display:block;width:100%!important;height:100%!important;touch-action:none}
.ukt-cfg .ukt-views{position:absolute;left:.75rem;bottom:.75rem;display:flex;flex-wrap:wrap;gap:.35rem;z-index:3}
.ukt-cfg .ukt-views button{font:inherit;font-size:.82rem;font-weight:600;padding:.4rem .7rem;border-radius:999px;border:1px solid var(--line);background:rgba(255,253,248,.94);color:var(--ink);cursor:pointer}
.ukt-cfg .ukt-views button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.ukt-cfg .ukt-dim{position:absolute;z-index:2;transform:translate(-50%,-50%);background:rgba(255,253,248,.95);border:1px solid var(--line);border-radius:6px;padding:.1rem .4rem;
  font:600 .78rem/1.3 ui-monospace,"Cascadia Code",Consolas,monospace;white-space:nowrap;pointer-events:none}
.ukt-cfg .ukt-dim[hidden]{display:none}
.ukt-cfg .ukt-parts{padding:.9rem 1rem;margin-top:1rem}
.ukt-cfg .ukt-parts h2,.ukt-cfg .ukt-opts h2{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem}
.ukt-cfg .ukt-parts table{width:100%;border-collapse:collapse;font-size:.88rem}
.ukt-cfg .ukt-parts td{padding:.3rem .25rem;border-top:1px solid var(--line);vertical-align:top}
.ukt-cfg .ukt-parts td.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ukt-cfg .ukt-parts tr.sub td{color:var(--muted);font-size:.82rem;border-top:0;padding-top:0}
.ukt-cfg .ukt-opts{padding:1rem}
.ukt-cfg .ukt-field{margin:0 0 1rem}
.ukt-cfg .ukt-field[hidden]{display:none}
.ukt-cfg .ukt-lbl{display:block;font-weight:600;font-size:.9rem;margin:0 0 .35rem}
.ukt-cfg .ukt-btns{display:flex;flex-wrap:wrap;gap:.4rem}
.ukt-cfg .ukt-btns button{flex:1 1 auto;min-width:4.5rem;font:inherit;font-size:.88rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}
.ukt-cfg .ukt-btns button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.ukt-cfg .ukt-btns button:focus-visible,.ukt-cfg .ukt-views button:focus-visible{outline:3px solid #e0b84a;outline-offset:2px}
.ukt-cfg .ukt-hint{color:var(--muted);font-size:.82rem;margin:.3rem 0 0}
.ukt-cfg input[type=number],.ukt-cfg input[type=text],.ukt-cfg input[type=email],.ukt-cfg input[type=tel],.ukt-cfg textarea{width:100%;font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;background:#fff}
.ukt-cfg textarea{min-height:4.5rem;resize:vertical}
.ukt-cfg .ukt-notice{border-radius:8px;padding:.6rem .75rem;font-size:.88rem;margin:.5rem 0}
.ukt-cfg .ukt-notice[hidden]{display:none}
.ukt-cfg .ukt-warn{background:#fff3cd;border:1px solid #e0b84a;color:#5c4500}
.ukt-cfg .ukt-ok{background:#e8f2ea;border:1px solid #9cc5a5}
.ukt-cfg .ukt-fail{background:#fbeaea;border:1px solid #e3a1a1}
.ukt-cfg .ukt-was{color:var(--muted);text-decoration:line-through;font-weight:400;margin-right:.35rem}
.ukt-cfg .ukt-save{color:var(--accent);font-weight:700;font-size:.8rem;margin-left:.35rem}
.ukt-cfg .ukt-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.ukt-cfg .ukt-btn{font:inherit;font-weight:700;padding:.65rem 1.1rem;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none;display:inline-block}
.ukt-cfg .ukt-btn[disabled]{opacity:.55;cursor:not-allowed}
.ukt-cfg .ukt-ghost{background:#fff;color:var(--accent)}
/* sticky price / qty / add bar */
.ukt-cfg .ukt-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,253,248,.98);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(26,31,22,.08)}
.ukt-cfg .ukt-bar-in{max-width:1760px;margin:0 auto;padding:.6rem 1.5rem;display:flex;align-items:center;gap:1rem;min-height:var(--bar-h)}
.ukt-cfg .ukt-bar-price{flex:1 1 auto;min-width:0}
.ukt-cfg .ukt-bar-now{font-size:1.35rem;font-weight:800}
.ukt-cfg .ukt-bar-sub{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ukt-cfg .ukt-qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff}
.ukt-cfg .ukt-qty button{font:inherit;font-size:1.1rem;width:2.3rem;height:2.5rem;border:0;background:transparent;cursor:pointer}
.ukt-cfg .ukt-qty input{width:3rem;text-align:center;border:0;font:inherit;font-weight:700;background:transparent;-moz-appearance:textfield}
.ukt-cfg .ukt-qty input::-webkit-inner-spin-button{-webkit-appearance:none}
@media (max-width:860px){
  .ukt-cfg .ukt-wrap{padding:.75rem .75rem 1.5rem}
  .ukt-cfg .ukt-brand img{width:160px}
  .ukt-cfg .ukt-grid{grid-template-columns:1fr}
  .ukt-cfg .ukt-preview{position:sticky;top:0;z-index:20}
  .ukt-cfg .ukt-stage{height:38vh;min-height:240px;border-radius:0 0 var(--radius) var(--radius)}
  .ukt-cfg .ukt-views{top:.5rem;bottom:auto;left:.5rem;right:.5rem;justify-content:center}
  .ukt-cfg .ukt-views button{padding:.3rem .6rem;font-size:.78rem}
  .ukt-cfg .ukt-parts{display:none}
  .ukt-cfg .ukt-parts-m{display:block}
  .ukt-cfg .ukt-bar-in{padding:.5rem .75rem;gap:.5rem}
  .ukt-cfg .ukt-bar-now{font-size:1.15rem}
  .ukt-cfg .ukt-btn.ukt-add{padding:.65rem .8rem}
}
@media (min-width:861px){.ukt-cfg .ukt-parts-m{display:none}}

/* r2: 3D movement hint (fades after the first drag) */
.ukt-cfg .ukt-hint3d{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:4;pointer-events:none;transition:opacity .6s ease}
.ukt-cfg .ukt-hint3d span{display:inline-block;background:rgba(32,36,30,.72);color:#fff;font-size:.85rem;font-weight:600;padding:.5rem .85rem;border-radius:999px;white-space:nowrap}
.ukt-cfg .ukt-hint3d.gone{opacity:0}
@media (prefers-reduced-motion:reduce){.ukt-cfg .ukt-hint3d{transition:none}}
