@font-face{font-family:"Poppins";font-weight:400;font-style:normal;font-display:swap;src:url("/assets/fonts/poppins-400.woff") format("woff")}
@font-face{font-family:"Poppins";font-weight:500;font-style:normal;font-display:swap;src:url("/assets/fonts/poppins-500.woff") format("woff")}
:root{
  --ink:#22130d; --ink-soft:#5b4a40; --paper:#fbf6ee; --card:#ffffff; --line:#eadfd0;
  --gold:#b9842a; --gold-soft:#f3e3c3; --green:#1f7a4d; --red:#a3261d;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 16px/1.45 "Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:inherit}
.top{background:var(--ink);color:#fbf2e3;padding:14px 16px calc(14px + env(safe-area-inset-top,0px));padding-top:max(14px,env(safe-area-inset-top));
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-family:Georgia,"Times New Roman",serif;font-size:20px;letter-spacing:.02em}
.secure{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#e7c98f;white-space:nowrap}
.wrap{max-width:520px;margin:0 auto;padding:16px 16px calc(28px + env(safe-area-inset-bottom,0px))}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 16px 16px;box-shadow:0 1px 2px rgba(34,19,13,.04)}
h1{font-weight:500;font-size:22px;line-height:1.2;margin:0 0 10px}
.lines{list-style:none;margin:0;padding:0}
.line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.name{font-weight:650;font-size:16px}
.sub{color:var(--ink-soft);font-size:13px}
.unit{font-size:13px;margin-top:2px}
.unit .now{font-weight:650}
.unit .was{color:#9a8b80;margin-left:6px}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.step{appearance:none;border:0;background:#fff;color:var(--ink);width:40px;height:40px;font-size:20px;line-height:1;cursor:pointer}
.step:active{background:var(--gold-soft)}
.step:disabled{color:#c9bdb2;cursor:default}
.step:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.count{min-width:22px;text-align:center;font-weight:650;font-variant-numeric:tabular-nums}
.linetotal{min-width:58px;text-align:right;font-weight:650;font-variant-numeric:tabular-nums}
.nudge{margin:14px 0 4px;background:var(--gold-soft);border-radius:12px;padding:10px 12px}
.nudge-text{font-size:14px;font-weight:600;color:#6b4a12}
.bar{height:6px;background:#fff;border-radius:999px;margin-top:8px;overflow:hidden}
.bar span{display:block;height:100%;width:4%;background:var(--gold);border-radius:999px;transition:width .25s ease}
.nudge.done{background:#e3f3ea}
.nudge.done .nudge-text{color:var(--green)}
.nudge.done .bar span{background:var(--green)}
.totals{margin:12px 0 4px}
.totals div{display:flex;justify-content:space-between;padding:5px 0;font-variant-numeric:tabular-nums}
.totals dt{color:var(--ink-soft)}
.totals dd{margin:0}
.totals .free{color:var(--green);font-weight:700}
.totals .grand{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-size:20px;font-weight:700}
.totals .grand dt{color:var(--ink)}
.pay{margin-top:14px;min-height:50px}
.fine{color:var(--ink-soft);font-size:13px;text-align:center;margin:8px 0 0}
.error{background:#fbeceb;color:var(--red);border-radius:10px;padding:10px 12px;font-size:14px;margin-top:12px}
.empty{text-align:center;padding:28px 18px}
.empty p{color:var(--ink-soft);margin:0 0 16px}
.btn{display:inline-block;background:var(--ink);color:#fbf2e3;text-decoration:none;border-radius:999px;padding:13px 22px;font-weight:650}
.check{width:54px;height:54px;border-radius:50%;background:#e3f3ea;color:var(--green);font-size:28px;line-height:54px;margin:0 auto 12px}
.ref{font-size:14px}
.trust{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 8px}
.trust li{font-size:12.5px;color:var(--ink-soft);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 10px}
.foot{margin-top:18px;color:var(--ink-soft);font-size:13px}
.foot p{margin:0 0 8px}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){.bar span{transition:none}}

/* ---- v2: black header with the wordmark ---- */
button{font-family:inherit}
.top{background:#000;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top))}
.back{display:inline-flex;align-items:center;gap:2px;color:#f4ebdc;text-decoration:none;font-size:14px;justify-self:start;padding:6px 4px}
.top .mark{display:block;width:104px}
.top .mark img{display:block;width:100%;height:auto}
.top .secure{justify-self:end;color:#e3a546}
.btn{font-weight:500}

/* ---- v2: order lines with photos ---- */
.line{grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:start}
.thumb{width:56px;height:56px;border-radius:10px;object-fit:cover;background:#efe6d8;display:block}
.name{font-weight:500;font-size:15.5px;line-height:1.25}
.sub{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:2px}
.right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.right .linetotal{min-width:0;font-size:14px}
.best{display:inline-block;background:#f6e2b8;color:#6b4a12;font-size:11.5px;font-weight:500;line-height:1;border-radius:999px;padding:4px 7px}
.qty .step{width:38px;height:38px}
.qty.sm .step{width:34px;height:34px;font-size:18px}

/* ---- v2: add another scent ---- */
.more{margin:16px -16px 6px;padding-top:14px;border-top:1px solid var(--line)}
.more-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 16px 10px}
.more-head h2{margin:0;font-weight:500;font-size:16.5px}
.see-all{border:0;background:none;padding:4px 0;color:var(--ink);text-decoration:underline;font-size:14px}
.rail{display:flex;align-items:flex-start;gap:10px;overflow-x:auto;padding:0 16px 4px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.pick{flex:none;display:flex;flex-direction:column;align-items:stretch;width:116px;border:0;background:none;padding:0;text-align:left;scroll-snap-align:start;color:var(--ink)}
.pick-photo{position:relative;display:block;width:116px;height:116px;border-radius:12px;overflow:hidden;background:#efe6d8}
.pick-photo img{display:block;width:100%;height:100%;object-fit:cover}
.best.on-photo{position:absolute;left:6px;top:6px;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.pick-plus{position:absolute;right:6px;bottom:6px;width:36px;height:36px;border-radius:50%;background:#000;color:#f4ebdc;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.pick-name{display:block;font-size:13.5px;line-height:1.3;margin-top:6px;font-weight:500;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pick:active .pick-plus{transform:scale(.92)}
.pick-all .pick-all-n{display:grid;place-items:center;width:116px;height:116px;border-radius:12px;border:1.5px dashed #cbbba5;font-size:26px;font-weight:500;color:var(--ink-soft)}
.empty .rail{margin:6px -18px 18px;padding:0 18px 4px;text-align:left}

/* ---- v2: picker with every scent ---- */
.picker{border:0;padding:0;margin:auto auto 0;width:100%;max-width:520px;height:88dvh;max-height:88dvh;border-radius:20px 20px 0 0;background:var(--paper);color:var(--ink);display:flex;flex-direction:column}
.picker:not([open]){display:none}
.picker::backdrop{background:rgba(0,0,0,.55)}
.picker-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px}
.picker-head h2{margin:0;font-weight:500;font-size:19px}
.x{width:40px;height:40px;border-radius:50%;border:0;background:#efe6d8;color:var(--ink);display:grid;place-items:center}
.search{display:block;margin:4px 16px 8px}
.search input{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;font:inherit;font-size:16px;color:var(--ink);-webkit-appearance:none;appearance:none}
.search input:focus{outline:none;border-color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.picker-list{list-style:none;margin:0;padding:0 16px;overflow-y:auto;flex:1}
.prow{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.prow .thumb{width:52px;height:52px}
.prow .sub{color:var(--ink-soft);font-size:12.5px;line-height:1.35}
.prow .sub{display:block}
.prow .sub .best{margin-right:6px;vertical-align:1px}
.addone{width:40px;height:40px;border-radius:50%;border:0;background:#000;color:#f4ebdc;display:grid;place-items:center}
.picker-none{color:var(--ink-soft);text-align:center;padding:24px 16px}
.picker-foot{padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--paper)}
.picker-foot .btn{display:block;width:100%;border:0;font-size:16px}

/* ---- v2: review ---- */
.proof{margin:16px 0 0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.stars{color:#d99a2b;font-size:17px;letter-spacing:2px;line-height:1}
.proof figcaption{display:inline;margin-left:6px;font-size:13.5px;color:var(--ink-soft)}
.proof blockquote{margin:8px 0 4px;font-size:15px;line-height:1.45}
.proof .who{margin:0;font-size:13px;color:var(--ink-soft)}
@media (min-width:860px){.picker{margin:auto;border-radius:20px;height:80dvh}}
.promo{margin:14px 0 2px}
.promo-open{border:0;background:none;padding:6px 0;color:var(--ink);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.promo-form{display:flex;gap:8px}
.promo-form input{flex:1;min-width:0;height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:16px;text-transform:uppercase;letter-spacing:.5px;background:#fff;color:var(--ink)}
.promo-form button{height:44px;padding:0 18px;border:0;border-radius:10px;background:var(--ink);color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.promo-form button:disabled{opacity:.6}
.promo-applied{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--green);font-weight:600}
.promo-applied button{border:0;background:none;padding:4px;color:var(--ink-soft);font:inherit;font-size:13px;font-weight:400;text-decoration:underline;cursor:pointer}
.promo-msg{margin-top:6px;font-size:13px;color:var(--red)}
.totals .disc{color:var(--green);font-weight:700}

/* ---- v3 (checkout release): free-shipping progress, the "one more bottle" nudge, payment states. Additive only. ---- */
.internal-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:var(--gold-soft);color:#6b4a12;font-size:13px;line-height:1.4;font-weight:500}
.ship-progress{margin:10px 0 4px;background:var(--gold-soft);border-radius:12px;padding:8px 12px 9px}
.ship-progress .bar{margin-top:6px}
.ship-progress-text{margin:0;font-size:14px;font-weight:600;color:#6b4a12}
.ship-progress[data-state="free"]{background:#e3f3ea}
.ship-progress[data-state="free"] .ship-progress-text{color:var(--green)}
.ship-progress[data-state="free"] .bar span{background:var(--green)}
.third-nudge{margin:6px 0 4px;background:#fff;border:1.5px solid var(--gold);border-radius:12px;padding:8px 10px 8px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.third-nudge-text{margin:0;flex:1 1 150px;font-size:14px;line-height:1.35;font-weight:500}
.third-nudge-add{flex:none;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--ink);color:#fbf2e3;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.third-nudge-add:focus-visible,.pay-retry:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.no-account{margin:8px 0 0;text-align:center;color:var(--ink-soft);font-size:13.5px;line-height:1.35}
.pay-status{margin:10px 0 0;text-align:center;color:var(--ink-soft);font-size:13.5px;line-height:1.35}
.pay-status[data-state="failed"]{color:var(--red);background:#fbeceb;border-radius:10px;padding:10px 12px}
.pay-status + .pay{margin-top:8px}
#cart .totals{margin:8px 0 0}
.pay[data-state="loading"],.pay[data-state="slow"]{min-height:150px;background:var(--paper);border-radius:16px}
.pay[data-state="failed"]{min-height:0;margin-top:0}
.pay-retry{display:block;width:100%;min-height:44px;margin-top:10px;padding:0 18px;border:0;border-radius:999px;background:var(--ink);color:#fbf2e3;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
/* ---- v3 mobile pass (Wave 3). Additive only; with no notch (env() = 0) thanks.php and privacy.php render exactly as before. ---- */
/* Until checkout2.js has drawn the cart, #cart and #empty are both hidden: keep the review, badges and footer invisible meanwhile,
   so they do not paint at the top and then jump down (layout shift). Shown after 4 s anyway if the script never runs. */
#cart[hidden] + #empty[hidden] ~ *{visibility:hidden;animation:tw-reveal 0s 4s forwards}
@keyframes tw-reveal{to{visibility:visible}}
/* "Loading secure payment…" is drawn inside the reserved payment box instead of above it, so nothing above or in the box moves
   when the buttons arrive. The failed message stays a normal block above the Retry button. */
.pay-status:not([data-state="failed"]){position:relative;z-index:1;height:0;margin:0;padding:0 12px;top:58px;pointer-events:none}
/* Landscape iPhones: keep "Shop" and "Secure" clear of the notch. */
.top{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
/* Bigger touch areas (at least 44 px) for small text buttons; the negative margins keep the layout unchanged. */
.back{padding-top:12px;padding-bottom:12px;margin-top:-6px;margin-bottom:-6px}
.see-all{padding:12px 4px;margin:-8px -4px}
.promo-open{padding:12px 0;margin:-6px 0}
.promo-applied button{padding:13px 8px;margin:-9px -4px}

/* ---- v3 a11y (Wave 3 accessibility patch): additive only, appended at the end. ---- */
/* Focus is moved to the shipping status after the nudge's picker adds the 3rd scent: same ring as the other new buttons. */
.ship-progress:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* ---- end v3 a11y ---- */

/* ---- v3 fold pass (Wave 3 finisher): additive only, appended at the end. ---- */
/* (a) With 2 bottles the "add a 3rd" nudge and the free-shipping box are ONE box, as in the owner's mockup: the sentence and its button on top,
   the progress bar under them. The repeated "1 more for free shipping" line is not drawn, but stays in the page for screen readers.
   checkout2.js sets data-nudge="1" on #ship-progress exactly when it shows #third-nudge; without it (or without this file) the two boxes stack as before.
   .ship-box has the old margins of the stand-alone box, so the 1-bottle and 3-bottle layouts do not change. */
.ship-box{display:flex;flex-direction:column;margin:10px 0 4px}
.ship-box>.ship-progress{margin:0}
.ship-progress[data-nudge="1"]{order:2;border:1.5px solid var(--gold);border-top:0;border-radius:0 0 12px 12px;padding:0 12px 9px}
.ship-progress[data-nudge="1"] .ship-progress-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ship-progress[data-nudge="1"] .bar{margin-top:0}
.ship-progress[data-nudge="1"]~.third-nudge:not([hidden]){order:1;margin:0;background:var(--gold-soft);border:1.5px solid var(--gold);border-bottom:0;border-radius:12px 12px 0 0;padding:8px 10px 8px 12px;flex-wrap:wrap;gap:4px 8px}
.ship-progress[data-nudge="1"]~.third-nudge .third-nudge-text{flex:1 1 158px;font-size:13.5px;line-height:1.3}
.ship-progress[data-nudge="1"]~.third-nudge .third-nudge-add{padding:0 12px;font-size:13.5px}
/* (c) Totals a little tighter on phones (#cart only: thanks.php and privacy.php stay as they are). */
@media (max-width:520px){
  #cart .totals{margin-top:6px}
  #cart .totals div{padding:3px 0;line-height:1.35}
  #cart .totals .grand{margin-top:4px;padding-top:8px;padding-bottom:3px;line-height:1.25}
}
/* ---- end v3 fold pass ---- */
/* Oct 19 2026: thank-you wall line (checkout.php #shout-wrap): one short line, details behind "?" */
.shout{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:10px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.35}
.shout label{display:flex;align-items:center;gap:8px;cursor:pointer;min-height:24px}
.shout input{flex:0 0 auto;width:17px;height:17px;margin:0;accent-color:var(--gold);cursor:pointer}
.shout-why{width:22px;height:22px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink-soft);font-size:12px;line-height:20px;cursor:pointer}
.shout-more{flex-basis:100%;margin:2px 0 0;padding:8px 10px;border-radius:10px;background:#fffaf2;font-size:12.5px;line-height:1.45}

/* ---- v1.17.4 (Adar 2.11.2026): Out of stock ---- */
.oos-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:var(--gold-soft);color:#6b4a12;font-size:14px;line-height:1.4;font-weight:500}
.oos-note:empty{display:none}
.prow.oos .thumb{opacity:.5}
.prow .oos-tag{font-size:12px;font-weight:500;color:var(--ink-soft);background:#f1e9dc;border-radius:999px;padding:5px 9px;white-space:nowrap}
/* the stop page (notify/) */
.stop .stop-act{margin:16px 0 0}
.stop .stop-act button{display:block;width:100%;border:0;font-size:16px;cursor:pointer}
.stop .stop-fine{margin:12px 0 0;color:var(--ink-soft);font-size:13px}
.stop .stop-ok{font-size:15px}
