:root{--bg:#fff6ef;--peach:#ffe6d5;--peach-2:#ffd9c2;--orange:#ff6b1a;--orange-d:#e85500;--green:#1fa24a;--green-l:#e7f7ec;--ink:#151515;--ink-2:#5f5a57;--line:#f1e6dd;--r:16px;--sh:0 2px 6px rgba(80,40,20,.04),0 10px 30px -12px rgba(80,40,20,.14)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:15px/1.6 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,legend,button,.brand,.nav,.btn-orange{font-family:Poppins,Inter,system-ui,sans-serif}
.app{display:grid;grid-template-columns:230px minmax(0,1fr) 380px;gap:24px;max-width:1440px;margin:0 auto;padding:24px;align-items:start}
/* sidebar */
.side{position:sticky;top:24px;background:#fff;border-radius:24px;padding:22px 16px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:22px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem;padding:0 6px}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--orange);display:grid;place-items:center}.brand-mark svg{width:20px;height:20px}
.nav{display:flex;flex-direction:column;gap:4px}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:var(--ink-2);text-decoration:none;font-weight:500;font-size:.92rem;transition:background .15s,color .15s}
.nav a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav a:hover{background:#fff3ea;color:var(--ink)}
.nav a.active{background:var(--peach);color:var(--ink);font-weight:600}
.promo{background:var(--peach);border-radius:18px;padding:14px;text-align:center}
.promo-art{width:100%;height:70px}
.promo p{margin:6px 0 12px;font-family:Poppins,sans-serif;font-weight:600;font-size:.88rem;line-height:1.35}
/* main */
.main{display:flex;flex-direction:column;gap:20px;min-width:0}
.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:8px;background:linear-gradient(135deg,#ffe3cf,#ffd2b8);border-radius:24px;padding:28px 28px 28px 32px;overflow:hidden}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:#ffffff40}
.eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-d);background:#fff;padding:4px 10px;border-radius:999px;margin-bottom:12px}
.hero h1{margin:0 0 10px;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:700;line-height:1.2;letter-spacing:-.01em}
.hero p{margin:0 0 18px;color:#5a4a42;max-width:460px;font-size:.93rem}
.hero-art{position:relative;z-index:1;width:100%;max-height:220px}
.btn-orange,button.primary{display:inline-block;background:var(--orange);color:#fff;text-decoration:none;font-weight:600;font-size:.92rem;border:0;border-radius:12px;padding:12px 22px;box-shadow:0 8px 18px -8px #ff6b1aaa;transition:transform .15s,box-shadow .15s,background .15s;cursor:pointer}
.btn-orange:hover,button.primary:hover{background:var(--orange-d);transform:translateY(-1px);box-shadow:0 12px 22px -10px #ff6b1acc}
.btn-orange.small{padding:9px 16px;font-size:.82rem}
.disclaimer{background:#fff;border-radius:var(--r);padding:12px 16px;font-size:.87rem;color:var(--ink-2);box-shadow:var(--sh);border-left:4px solid var(--orange)}
.disclaimer strong{color:var(--ink)}.disclaimer a{color:var(--orange-d);font-weight:600}
form{display:flex;flex-direction:column;gap:20px}
.card{background:#fff;border-radius:var(--r);padding:22px 24px;box-shadow:var(--sh);scroll-margin-top:24px}
h2{margin:0 0 6px;font-size:1.08rem;font-weight:700;display:flex;align-items:center;gap:10px}
.ic{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:.85rem;font-weight:700}
.ic-pink{background:#ffe1ea;color:#c2185b}.ic-orange{background:var(--peach);color:var(--orange-d)}.ic-green{background:var(--green-l);color:#157a37}.ic-butter{background:#fff1c7;color:#8a5a00}
label{display:block;margin:14px 0 0;font-weight:500;font-size:.9rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input:not([type=checkbox]):not([type=radio]),textarea,select{display:block;width:100%;margin-top:6px;padding:11px 14px;border:1px solid #efe2d8;border-radius:12px;font:inherit;color:var(--ink);background:#fffaf6;transition:border-color .15s,box-shadow .15s,background .15s}
input::placeholder,textarea::placeholder{color:#a8988f}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--orange);background:#fff;box-shadow:0 0 0 4px #ff6b1a22}
input[type=checkbox],input[type=radio]{accent-color:var(--green);width:17px;height:17px;margin:0}
fieldset{border:0;padding:0;margin:14px 0 0}legend{font-weight:600;font-size:.9rem;margin-bottom:4px}
.seg{display:flex;flex-wrap:wrap;gap:8px}.seg legend{width:100%}
.seg label{margin:0;font-weight:500;display:flex;gap:8px;align-items:center;padding:8px 14px;border-radius:999px;background:#fff6ef;border:1px solid var(--line);cursor:pointer}
.seg label:has(input:checked){background:var(--green);border-color:var(--green);color:#fff}
.seg input{accent-color:#fff}
.check{display:flex;gap:10px;align-items:center;font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.chips label{margin:0;display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 2px 6px rgba(80,40,20,.05);cursor:pointer;font-weight:500;font-size:.88rem;transition:transform .15s,background .15s,color .15s}
.chips label:hover{transform:translateY(-1px)}
.chips label input{position:absolute;opacity:0;width:1px;height:1px}
.chips label::before{width:28px;height:28px;border-radius:50%;background:var(--peach);display:grid;place-items:center;font-size:15px;content:"•"}
.chips label:has([value="Milk"])::before{content:"🥛"}.chips label:has([value="Eggs"])::before{content:"🥚"}.chips label:has([value="Wheat"])::before{content:"🌾"}
.chips label:has([value="Soy"])::before{content:"🫘"}.chips label:has([value="Peanuts"])::before{content:"🥜"}.chips label:has([value="Tree nuts"])::before{content:"🌰"}
.chips label:has([value="Sesame"])::before{content:"🥯"}.chips label:has([value="Fish"])::before{content:"🐟"}.chips label:has([value="Crustacean shellfish"])::before{content:"🦐"}
.chips label:has(input:checked){background:var(--green);border-color:var(--green);color:#fff}
.chips label:has(input:checked)::before{background:#fff}
.chips label:has(input:focus-visible){outline:2px solid var(--orange);outline-offset:2px}
.opt,.hint{font-weight:400;color:var(--ink-2);font-size:.84rem}
footer{text-align:center;padding:8px 0 20px}
/* right panel */
.panel{position:sticky;top:24px;background:#fff;border-radius:24px;padding:22px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:6px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.panel-head h2{font-size:1.2rem;margin:0}
.dots{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);font-size:.7rem;letter-spacing:1px}
.tile{background:var(--peach);border-radius:var(--r);padding:16px}
canvas{display:block;width:100%;height:auto;border-radius:10px;background:#fff;box-shadow:0 10px 24px -12px rgba(120,60,20,.35);transition:transform .25s}
canvas:hover{transform:translateY(-2px)}
.sub{margin:14px 0 6px;font-size:.92rem;font-weight:600}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:.84rem}
.checks li{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:12px;background:#fbf7f3}
.checks li::before{content:"✓";flex:none;width:20px;height:20px;border-radius:50%;background:var(--green);color:#fff;font-size:.7rem;font-weight:700;display:grid;place-items:center}
.checks li.bad{background:#fff0ec;color:#a3260b;font-weight:600}.checks li.bad::before{content:"!";background:#e5482a}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.btns button{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 12px 8px 8px;font-size:.86rem;font-weight:600;color:var(--ink);cursor:pointer;box-shadow:0 2px 6px rgba(80,40,20,.05);transition:transform .15s,box-shadow .15s}
.btns button:hover{transform:translateY(-1px);box-shadow:0 8px 16px -8px rgba(80,40,20,.25)}
.dot-g{width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:.9rem;flex:none}
button:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}
button:focus-visible,.btn-orange:focus-visible,.nav a:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
button.primary{width:100%;padding:14px;font-size:1rem;margin-top:4px}
.email{margin-top:14px;padding-top:16px;border-top:1px solid var(--line)}
.email h3{margin:0 0 10px;font-size:.92rem;font-weight:600}
.row{display:flex;gap:8px}.row input{margin:0}
#emailBtn{white-space:nowrap;background:var(--green);color:#fff;border:0;border-radius:12px;padding:0 16px;font-weight:600;cursor:pointer}
#emailBtn:hover{background:#178a3e}
/* responsive */
@media(max-width:1180px){.app{grid-template-columns:minmax(0,1fr) 360px}.side{display:none}}
@media(max-width:860px){
  .app{grid-template-columns:1fr;padding:14px;gap:16px}
  .panel{position:static}
  .hero{grid-template-columns:1fr;padding:22px}
  .hero-art{max-height:160px;order:-1}
  .two{grid-template-columns:1fr;gap:0}
  .card{padding:18px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
#printArea{display:none}
@media print{
  @page{size:letter;margin:0}
  body>*:not(#printArea){display:none!important}
  #printArea{display:block}#printArea img{width:8.5in;height:11in;display:block}
}
[hidden]{display:none!important}
/* v6 multi-state */
.state-card{padding:16px 24px}
.state-pick{margin:0;font-weight:600;font-family:Poppins,Inter,sans-serif;font-size:1rem}
.state-pick select{font-weight:600;font-size:1rem;background:#fff6ef;border-color:var(--peach-2)}
#soonCard p{margin:8px 0}
#soonBtn{white-space:nowrap;background:var(--orange);color:#fff;border:0;border-radius:12px;padding:0 18px;font-weight:600;cursor:pointer}
#soonBtn:hover{background:var(--orange-d)}
.st-info{background:#fbf7f3;border-radius:14px;padding:12px 14px;font-size:.86rem}
.st-info p{margin:0 0 8px}.st-info p:last-child{margin:0}
.st-stmt{font-weight:600;color:var(--ink)}
.st-info a{color:var(--orange-d);font-weight:600;word-break:break-word}
.pending{background:#fff1c7;color:#6a4a00;border-radius:10px;padding:8px 10px;font-size:.84rem}
body.soon .panel #panelLive{display:none}

.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.hint.consent{margin-top:6px;font-size:12px}
#emailMsg.ok,#soonMsg.ok{color:#1a8a4a;font-weight:600}
#emailMsg.err,#soonMsg.err{color:#c0392b;font-weight:600}
