@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;font-display:swap;src:url("./assets/open-sans-latin.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url("./assets/playfair-display-latin.woff2") format("woff2")}
:root{font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:weight;color:#242b25;background:#edf0ea;--ink:#242b25;--muted:#60695f;--accent:#336b39;--line:#e0e6dc;--highlight:#c7dfa8}*{box-sizing:border-box}body{margin:0;max-width:580px;min-height:100dvh;background:#ffffff;margin-inline:auto;box-shadow:0 0 80px #26392309}button,input,select{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #458447;outline-offset:3px}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;line-height:1.16;font-weight:720;letter-spacing:-.045em;margin-bottom:15px;outline:none}h2{font-size:1.25rem;line-height:1.3;letter-spacing:-.02em}p{line-height:1.55}.header{padding:calc(17px + env(safe-area-inset-top)) 24px 17px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#ffffff}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:1.1rem;font-weight:680;letter-spacing:-.02em}.brand svg{width:34px;height:34px;padding:5px;background:var(--ink);border-radius:10px;fill:none;stroke:var(--highlight);stroke-width:2.6;stroke-linecap:round}.app-label{font-size:.75rem;color:var(--muted)}.workspace{padding:25px 24px calc(32px + env(safe-area-inset-bottom));outline:none}.flow{min-width:0}.eyebrow{font-size:.6875rem;letter-spacing:.09em;color:var(--accent);font-weight:650;margin-bottom:12px}.intro{font-size:1rem;color:var(--muted);line-height:1.5;margin-bottom:22px;max-width:460px}.intro:empty{display:none}.steps{display:flex;gap:0;justify-content:space-between;list-style:none;padding:0;margin:0 0 32px;position:relative}.steps:before{content:"";height:1px;background:#dce5d7;position:absolute;top:13px;left:10px;right:10px}.step{display:flex;align-items:center;gap:8px;color:#687466;font-size:.8125rem;position:relative;background:#ffffff;padding-right:12px}.step:last-child{padding:0 0 0 12px}.step-number{display:grid;place-items:center;width:27px;height:27px;background:#eff3eb;border-radius:9px;font-size:.75rem;font-weight:600}.step.current{color:var(--ink);font-weight:650}.current .step-number,.done .step-number{background:var(--ink);color:#fff}.choices{display:grid;gap:12px;margin:25px 0}.choice{width:100%;border:1.5px solid var(--line);background:#fff;border-radius:17px;min-height:87px;padding:17px;display:flex;align-items:center;gap:15px;text-align:left;transition:background .15s,border-color .15s}.choice:hover{border-color:#b3c1aa}.choice.selected{border-color:var(--accent);background:#f0f5e9;box-shadow:inset 0 0 0 .5px var(--accent)}.choice-icon{height:49px;width:49px;flex-shrink:0;background:#f1f4ed;border-radius:14px;display:grid;place-items:center}.choice-icon svg{width:30px;height:30px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.choice strong{display:block;font-size:1rem;font-weight:650;margin-bottom:5px}.choice small{display:block;font-size:.8125rem;color:var(--muted);line-height:1.4}.radio{margin-left:auto;border:1.5px solid #becbbb;flex-shrink:0;width:23px;height:23px;border-radius:50%}.selected .radio{border:7px solid var(--accent);background:#fff}.actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:27px;padding-top:18px}.primary{min-height:53px;background:var(--accent);color:#fff;border:0;border-radius:15px;padding:15px 21px;display:inline-flex;align-items:center;justify-content:center;gap:19px;font-weight:650;font-size:.9375rem}.primary:hover{background:#25552b}.arrow{font-size:1.25rem}.back{border:0;background:none;font-size:.8125rem;min-height:46px;padding:10px 0;text-align:left}.hint{font-size:.8125rem;line-height:1.6;color:var(--muted);margin-top:20px}.help{margin-top:24px;border-top:1px solid var(--line);padding-top:5px}.help summary{padding:14px 0;font-size:.875rem;min-height:48px;cursor:pointer;color:var(--muted)}.help p{font-size:.875rem;color:var(--muted);margin-top:8px}.lengths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:25px 0}.length-option{justify-content:center;font-weight:650;font-size:1.3rem;padding:14px;min-height:73px;gap:4px}.length-option span{font-size:.8125rem;font-weight:400;color:var(--muted)}.selection-summary{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.chip{background:#f0f3eb;border-radius:7px;padding:7px 10px;font-size:.75rem}.colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:25px 0}.color-option{flex-direction:column;justify-content:center;text-align:center;min-height:100px;font-size:.8125rem;padding:12px 6px;gap:11px}.swatch{height:31px;width:31px;border-radius:50%;background:var(--swatch);border:1px solid #242b2520;box-shadow:inset 0 0 0 3px #ffffff30;display:inline-block;flex-shrink:0}.result-position{padding:22px;background:#f0f5e9;border:1px solid #dce7ce;border-radius:18px;margin:23px 0 17px}.result-position .eyebrow{color:#527044}.code{font-size:2.1rem;letter-spacing:-.04em;font-weight:750;margin:8px 0 16px}.position-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:15px;border-top:1px solid #d6e2cd}.position-steps strong{font-size:1rem;font-weight:650}.position-steps small{display:block;font-size:.75rem;color:var(--muted);margin-top:5px}.result-info{display:flex;gap:12px;align-items:center;margin:23px 0 13px}.result-info h2{font-size:1.125rem;margin:0 0 5px}.result-info p{font-size:.875rem;color:var(--muted);margin:0}.availability{font-size:.8125rem;color:var(--muted);line-height:1.55}.notice{font-size:.875rem;padding:14px;background:#fff5df;border:1px solid #ead8b0;border-radius:12px;color:#695027;line-height:1.5}.variants{display:grid;gap:10px;margin:15px 0}.variant{min-height:72px;padding:14px;gap:12px}.variant strong{font-size:.875rem}.variant small{font-size:.75rem}.code-small{margin-left:auto;font-size:.75rem;font-weight:600;white-space:nowrap}.quiet-button{background:none;border:0;text-decoration:underline;text-underline-offset:4px;font-size:.875rem;padding:10px 0;min-height:44px}.cabinet-panel{background:var(--ink);border-radius:18px;color:white;padding:17px 16px;margin:20px 0 23px}.cabinet-panel[hidden]{display:none}.cabinet-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.cabinet-top h2{font-size:.9375rem;font-weight:600;margin:0}.cabinet-top h2:empty{display:none}.cabinet-top>span{font-size:.6875rem;color:#c0d0be}.compartment-labels{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;color:#c0cfbb;font-size:.6875rem;margin-bottom:10px;gap:9px}.compartments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.compartment{display:flex;flex-direction:column;gap:8px;border:1px solid #657e5e;border-radius:9px;background:#304a38;color:#e5ece0;min-height:90px;padding:9px 8px;text-align:left}.compartment:hover{background:#3b5b40}.compartment.chosen{background:#dcecc9;color:#242b25;border:2px solid #a6cc82;padding:8px 7px;box-shadow:0 0 0 2px #a6cc8230}.compartment-number{font-size:.8125rem;font-weight:700;line-height:1}.mini-shelves{display:grid;gap:5px}.mini-shelf{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;border-bottom:2px solid #9cad8d50;padding-bottom:2px}.mini-slot{height:7px;background:var(--swatch);opacity:.7;border-radius:1px}.mini-slot.empty{background:none;border:1px solid #809175}.mini-slot.selected{outline:2px solid #336b39;outline-offset:1px;background:#336b39!important;opacity:1}.chosen-row{border-color:#547c3c}.browse-controls{display:flex;align-items:center;gap:14px;margin:28px 0 17px}.browse-controls h2{margin:0;flex:1}.browse-controls select{min-height:46px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;font-size:.875rem;max-width:65%}.browse-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.browse-item{min-height:106px;gap:10px;padding:13px;align-items:flex-start}.browse-item .swatch{height:23px;width:23px}.browse-item strong{font-size:.8125rem}.browse-item small{font-size:.75rem}.display-guide{margin:0;font-size:.9375rem}.skip-link{position:fixed;left:20px;top:-80px;z-index:10;background:white;padding:15px}.skip-link:focus{top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.error{padding:25px 0}
@media(max-width:370px){.header{padding-inline:18px}.workspace{padding:24px 18px calc(28px + env(safe-area-inset-bottom))}.app-label{font-size:.6875rem}.choice{gap:12px;padding:14px}.choice-icon{width:43px;height:43px}.choice small{font-size:.75rem}.primary{padding:15px 17px;font-size:.875rem}.actions{gap:12px}.compartments{gap:7px}.compartment{padding:8px 5px}.compartment.chosen{padding:7px 4px}.position-steps strong{font-size:.9375rem}.browse-item{padding:11px;gap:8px}.browse-item .swatch{width:19px;height:19px}}
body[data-step="3"][data-view="wizard"] .steps,body[data-step="3"][data-view="wizard"] #flow>.eyebrow{display:none}body[data-step="3"][data-view="wizard"] h1{font-size:1.65rem;margin-bottom:12px}body[data-step="3"][data-view="wizard"] h1 br{display:none}body[data-step="3"][data-view="wizard"] .selection-summary{margin:13px 0}body[data-step="3"][data-view="wizard"] .result-position{padding:16px 18px;margin:17px 0 14px}body[data-step="3"][data-view="wizard"] .code{font-size:1.8rem;margin:5px 0 10px}body[data-step="3"][data-view="wizard"] .position-steps{padding-top:10px}body[data-step="3"][data-view="wizard"] .compartment{min-height:74px;gap:5px}body[data-step="3"][data-view="wizard"] .mini-shelves{gap:3px}body[data-step="3"][data-view="wizard"] .mini-slot{height:6px}body[data-step="3"][data-view="wizard"] .cabinet-panel{margin:14px 0 20px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Hans & Emma: monochrome branding, classic typography and green accents. */
.header{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px;background:#fff;border-bottom:1px solid #e2e5dd}
.brand{display:block;flex-shrink:0;line-height:0}.brand img{width:136px;height:auto;display:block}.brand svg{display:none}
.app-label{font:400 1.1rem/1.3 "Playfair Display",Georgia,serif;text-align:right;color:var(--ink)}.app-label>span{display:block;font:600 .5625rem/1.5 "Open Sans",sans-serif;letter-spacing:.12em;color:var(--muted);margin-top:5px}
h1{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.15;font-size:2.15rem}
.eyebrow{letter-spacing:.11em}.step.current .step-number,.step.done .step-number{background:var(--accent)}
.choice{border-radius:13px}.choice-icon{border-radius:11px}.choice.selected .choice-icon{background:#e3eed8}.choice.selected .choice-icon svg{stroke:var(--accent)}
.choice.selected{box-shadow:inset 0 0 0 .5px var(--accent),0 3px 10px #336b3906}.primary{border-radius:12px;box-shadow:0 3px 8px #25472710}
.result-position{border-radius:14px}.code{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:-.025em}
.cabinet-panel{background:#233b2c;border-radius:14px}.compartment{border-radius:7px}
.cabinet-top h2{font-family:"Open Sans",sans-serif}.compartment-number{font-variant-numeric:tabular-nums}
body[data-step="3"][data-view="wizard"] h1{font-size:1.9rem}
body[data-step="3"][data-view="wizard"] .code{font-size:2rem}
.browse-controls h2{font-family:"Playfair Display",Georgia,serif;font-weight:400;font-size:1.5rem}
@media(max-width:370px){.brand img{width:122px}.app-label{font-size:1rem}h1{font-size:2rem}.choice small{font-size:.8125rem}.choices .choice{padding:14px 12px;gap:10px}.choice-icon{width:38px;height:43px}.primary{font-size:.8125rem;padding-inline:14px;gap:12px}body[data-step="3"][data-view="wizard"] h1{font-size:1.7rem}}

/* A shared app canvas on iPad and tablets; the phone flow stays compact. */
@media (min-width:768px) {
  body{max-width:1180px}
  .header{padding:calc(16px + env(safe-area-inset-top)) 32px 16px}
  .brand img{width:150px}
  .app-label{font-size:1.35rem}
  .app-label>span{font-size:.625rem}
  .workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);align-items:start;gap:32px;padding:32px 32px calc(40px + env(safe-area-inset-bottom))}
  .flow{padding-top:4px}
  .steps{margin-bottom:28px}
  h1{font-size:2.2rem}
  .intro{font-size:.9375rem}
  .choices{gap:14px}
  .choices .choice{min-height:94px;padding:16px 14px;gap:12px}
  .choices .choice-icon{width:43px;height:46px}
  .choices .choice small{font-size:.75rem}
  .actions{gap:12px;margin-top:22px}
  .actions .primary{padding-inline:17px;gap:12px}
  .length-option{min-height:76px}
  .color-option{min-height:103px}
  #inline-map{display:none}
  .cabinet-panel,body[data-step="3"][data-view="wizard"] .cabinet-panel{margin:0;padding:20px 16px}
  .cabinet-top{align-items:flex-start;flex-direction:column;gap:6px;margin-bottom:20px}
  .cabinet-top h2{font-size:1.125rem}
  .cabinet-top>span,.compartment-labels{font-size:.75rem}
  .compartment,body[data-step="3"][data-view="wizard"] .compartment{min-height:80px;gap:8px}
  .compartment-number{font-size:.9375rem}
  .mini-shelves,body[data-step="3"][data-view="wizard"] .mini-shelves{gap:4px}
  .mini-slot,body[data-step="3"][data-view="wizard"] .mini-slot{height:7px}






  .browse-controls{margin-top:26px}
  .browse-item{padding:12px;gap:9px}
  .browse-item .swatch{width:22px;height:22px}
  body[data-step="3"][data-view="wizard"] h1{font-size:2.2rem}
  body[data-step="3"][data-view="wizard"] .result-position{padding:22px;margin-top:23px}
  body[data-step="3"][data-view="wizard"] .code{font-size:2.5rem;margin:9px 0 17px}
  body[data-step="3"][data-view="wizard"] .position-steps{padding-top:15px}
}
@media (min-width:1000px) {
  .workspace{gap:48px;padding:36px 48px calc(40px + env(safe-area-inset-bottom))}
  .header{padding-inline:48px}
  h1{font-size:2.6rem}
  .intro{font-size:1rem}
  .choices .choice{padding:18px;gap:16px}
  .choices .choice small{font-size:.8125rem}
  .choices .choice-icon{width:49px;height:49px}
  .cabinet-panel,body[data-step="3"][data-view="wizard"] .cabinet-panel{padding:22px}
  .cabinet-top{flex-direction:row;align-items:center}

}
@media (min-width:768px) and (min-height:900px) {
  .cabinet-panel{position:sticky;top:24px}
  .compartment,body[data-step="3"][data-view="wizard"] .compartment{min-height:96px;gap:11px}
  .mini-slot,body[data-step="3"][data-view="wizard"] .mini-slot{height:9px}
}
@media (min-width:768px) and (max-height:850px) {
  .header{padding-top:calc(10px + env(safe-area-inset-top));padding-bottom:10px}
  .brand img{width:126px}
  .workspace{padding-top:24px}
  h1{font-size:2.2rem}
  h1 br{display:none}
  .steps{margin-bottom:22px}
  .choices{gap:10px;margin:20px 0}
  .choices .choice{min-height:82px;padding-block:13px}
  .actions{margin-top:14px;padding-top:10px}
  .help{margin-top:16px}
  .hint{margin-top:14px}
  .cabinet-panel,body[data-step="3"][data-view="wizard"] .cabinet-panel{padding:18px 16px}
  .cabinet-top{margin-bottom:15px}
  .compartment,body[data-step="3"][data-view="wizard"] .compartment{min-height:74px;gap:5px}
  .mini-shelves,body[data-step="3"][data-view="wizard"] .mini-shelves{gap:3px}
  .mini-slot,body[data-step="3"][data-view="wizard"] .mini-slot{height:6px}
  body[data-step="3"][data-view="wizard"] .result-position{padding:16px 18px;margin-top:17px}
  body[data-step="3"][data-view="wizard"] .code{font-size:2.1rem;margin:5px 0 10px}
  body[data-step="3"][data-view="wizard"] .position-steps{padding-top:10px}
}

@media (min-width:1000px) and (max-height:850px) {
  .selection-summary{margin:14px 0}
  .colors{grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}
  .color-option{min-height:78px;gap:8px;padding:8px 6px;font-size:.75rem}
  .color-option .swatch{width:27px;height:27px}
}

.browse-back{margin-bottom:12px}

/* Point out the exact position inside the cabinet itself. */
.compartments.has-selection .compartment:not(.chosen){background:#294432;border-color:#4d6b55}
.compartments.has-selection .compartment:not(.chosen) .mini-shelves{opacity:.4}
.compartment.chosen{background:#f5fbe9;border-color:#fbd166;box-shadow:0 0 0 3px #fbd166;color:#233b2c}
.compartment.chosen .compartment-number{align-self:flex-start;background:#233b2c;color:#fff;border-radius:5px;padding:4px 6px;font-size:.875rem;line-height:1.2}
.compartment.chosen .mini-slot:not(.selected){opacity:.45}
.chosen-row{padding-top:32px;border-bottom-color:#b37b0c}
.mini-slot.selected{position:relative;z-index:1;background:#da7615!important;outline:2px solid #713b00;outline-offset:1px;box-shadow:0 0 0 4px #fff;border-radius:2px;opacity:1}
.slot-pointer{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);display:grid;place-items:center;width:25px;height:25px;border:2px solid #fff;border-radius:50%;background:#fbd166;color:#233b2c;font-style:normal;font-size:.875rem;font-weight:750;line-height:1;box-shadow:0 1px 4px #233b2c25}
.slot-pointer:after{content:"";position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #fbd166}
.mini-slot:first-child .slot-pointer{left:-3px;transform:none}
.mini-slot:first-child .slot-pointer:after{left:6px}
.mini-slot:last-child .slot-pointer{left:auto;right:-3px;transform:none}
.mini-slot:last-child .slot-pointer:after{left:auto;right:1px;transform:none}
