.shop-page{background:var(--cream)}
.shop-header nav a.active{color:var(--red);border-color:currentColor}
.bag-trigger{flex:none}.bag-trigger:hover{border-color:transparent}.bag-trigger:hover span{background:var(--red)}
.shop-hero{min-height:0;padding:clamp(124px,14vw,166px) var(--gutter) clamp(62px,7vw,92px);background:var(--cream)}
.shop-hero>div:first-child{max-width:1100px}
.shop-hero h1{margin:16px 0 28px;font-size:clamp(3.8rem,6.6vw,7.1rem);line-height:.9;letter-spacing:-.055em}
.shop-hero h1 span{color:var(--red)}
.shop-hero p:not(.eyebrow){max-width:510px;margin-bottom:27px;color:var(--muted);font-size:clamp(1rem,1.25vw,1.18rem)}
.shop-text-link{font:800 .96rem/1.2 "Nunito Sans",sans-serif;text-decoration:none;text-underline-offset:6px}
.shop-text-link:hover{color:var(--red);text-decoration:underline}
.shop-text-link span{display:inline-block;margin-left:5px;transition:transform .2s ease}
.shop-text-link:hover span{transform:translateX(4px)}
.shop-hero-product{justify-self:center;width:min(100%,430px);aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius);background:#f1e5d7}
.shop-hero-product img{width:100%;height:100%;object-fit:cover}

.shop-products{padding:clamp(70px,8vw,115px) var(--gutter);border-top:1px solid var(--line);background:var(--cream)}
.shop-section-head{display:flex;gap:35px;justify-content:space-between;align-items:end;margin-bottom:46px}
.shop-section-head h2{margin:14px 0 0;font-size:clamp(3.5rem,5.6vw,5.9rem)}.shop-promise h2,.shop-help h2{margin:14px 0 0;font-size:var(--section-title)}
.shop-section-head>p{max-width:310px;margin:0;color:var(--muted);font-size:.92rem}
.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2vw,32px)}
.product-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fffaf2}
.product-card-featured{grid-column:span 2}
.product-image{position:relative;aspect-ratio:1/1;height:auto;background:var(--ingredient-cream);overflow:hidden}
.product-card-featured .product-image{aspect-ratio:2/1;height:auto}
.product-image>img:first-child{width:100%;height:100%;object-fit:contain}
.product-card-featured .product-image>img:first-child{object-fit:cover;transform:scale(1.4)}
.product-state{position:absolute;z-index:2;top:18px;left:18px;padding:8px 11px;border-radius:999px;background:var(--ink);color:#fff;font:800 .65rem/1 "DM Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.product-meta{padding:26px 26px 20px}.product-meta-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.product-meta-heading>strong{flex:none;font:800 clamp(1.2rem,2vw,1.8rem)/1 "Nunito Sans",sans-serif}
.product-kicker{margin:0 0 8px;color:var(--red);font:800 .67rem/1.2 "DM Sans",sans-serif;letter-spacing:.14em;text-transform:uppercase}
.product-card-featured .product-kicker{font-size:.86rem;letter-spacing:.11em}
.product-meta h3{margin:0 0 10px;font-size:clamp(1.6rem,2.4vw,2.5rem);line-height:.98}
.product-description{max-width:430px;margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}
.product-action{margin-top:auto;padding:17px 26px 21px;display:flex;justify-content:space-between;gap:18px;align-items:center;border-top:1px solid var(--line);color:var(--muted);font-size:.75rem;line-height:1.4}
.product-action button{flex:none;padding:11px 15px;border:1px solid var(--line);border-radius:999px;background:transparent;color:#8a8379;font:800 .72rem/1 "Nunito Sans",sans-serif;cursor:not-allowed}
.product-action button:not(:disabled){border-color:var(--red);background:var(--red);color:#fff;cursor:pointer;transition:transform .2s ease,background .2s ease}.product-action button:not(:disabled):hover{background:#b72720;transform:translateY(-2px)}
.product-state-stock{background:var(--cream);color:var(--ink);border:1px solid var(--line)}
.sold-out-copy{font-weight:700;color:#756f65}
.product-action a{flex:none;color:var(--ink);font-weight:800;text-decoration:none;text-underline-offset:4px}
.product-action a:hover{color:var(--red);text-decoration:underline}
.product-action b{display:inline-block;margin-left:4px;transition:transform .2s ease}.product-action a:hover b{transform:translateX(4px)}
.product-description-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:baseline}.product-description-row .product-description{max-width:none}.product-detail-link{position:relative;top:-2px;display:inline-flex;gap:4px;margin:0;color:var(--muted)!important;font-size:.72rem;font-weight:500;line-height:1.5;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;white-space:nowrap}.product-detail-link:hover{color:var(--red)!important}.product-detail-link b{transition:transform .2s ease}.product-detail-link:hover b{transform:translateX(4px)}
.product-image-merch{display:grid;place-items:center;background:var(--ingredient-cream)}.product-image-merch>img:first-child{width:100%;height:100%;object-fit:contain}.product-image-photograph{padding:0}.product-image-photograph>img:first-child{width:100%;height:100%;object-fit:contain}.product-image-merch .merch-mark{position:absolute;width:16%;height:16%;object-fit:contain;left:42%;top:43%}.product-image-merch .tote-mark{top:48%}.product-image-merch .keyring-mark{width:13%;height:13%;left:43.5%;top:44%}.product-card-keychain .product-image{background:var(--ingredient-cream)}.product-view-switcher{position:absolute;z-index:3;right:16px;bottom:16px;display:flex;padding:3px;border:1px solid rgba(255,250,242,.66);border-radius:999px;background:#15130f}.product-view-switcher button{min-width:48px;height:28px;padding:0 9px;border:0;border-radius:999px;background:transparent;color:rgba(255,255,255,.9);font:800 .68rem/1 "Nunito Sans",sans-serif;cursor:pointer}.product-view-switcher button.is-selected{background:#fffaf2;color:var(--ink)}.product-view-switcher button:disabled{cursor:not-allowed;opacity:.46}
.variant-picker{margin:0;padding:0 26px 20px;border:0}.variant-picker legend{margin-bottom:9px;color:var(--muted);font-size:.72rem;font-weight:700}.variant-picker div{display:flex;flex-wrap:wrap;gap:7px}.variant-option{min-width:38px;height:34px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font:800 .72rem/1 "Nunito Sans",sans-serif;cursor:pointer}.variant-option.is-selected{border-color:var(--ink);background:var(--ink);color:#fff}.product-details-trigger{position:relative;top:-2px;display:inline-flex;align-items:baseline;gap:5px;flex:none;width:max-content;margin:0;padding:0;border:0;background:transparent;color:var(--muted);font:500 .72rem/1.5 "DM Sans",sans-serif;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;white-space:nowrap;cursor:pointer}.product-details-trigger:hover{color:var(--red)}.product-details-trigger span{font-weight:700;transition:transform .2s ease}.product-details-trigger:hover span{transform:translateX(4px)}.merch-details-dialog{width:min(calc(100% - 34px),580px);padding:clamp(27px,4vw,45px);border:0;border-radius:var(--radius);background:#fffaf2;box-shadow:0 24px 75px rgba(21,19,15,.24);color:var(--ink)}.merch-details-dialog::backdrop{background:rgba(21,19,15,.34);backdrop-filter:blur(3px)}.merch-details-dialog h2{margin:10px 0 19px;font:800 clamp(2.3rem,6vw,3.6rem)/.94 "Nunito Sans",sans-serif;letter-spacing:-.055em}.merch-details-dialog p{margin:0;color:var(--muted);line-height:1.55}.merch-detail-table{overflow:hidden;margin-top:18px;border:1px solid var(--line);border-radius:8px;font-size:.78rem}.merch-detail-table>div{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.08fr;gap:4px;padding:9px;border-top:1px solid var(--line);color:var(--muted);line-height:1.3}.merch-detail-table>div:first-child{border-top:0}.merch-detail-table .merch-detail-header{background:var(--ingredient-cream);color:var(--ink);font-weight:800}.merch-detail-table span:not(:first-child){text-align:right}.merch-detail-list{display:grid;gap:12px;margin:6px 0 0;padding:0;list-style:none}.merch-detail-list strong{display:block;margin-bottom:2px;color:var(--ink);font-size:.82rem}

.shop-promise{padding:clamp(65px,8vw,110px) var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(45px,9vw,150px);align-items:start;background:var(--red);color:#fff}.shop-promise .eyebrow{color:var(--yellow)}.delivery-copy{max-width:580px}.delivery-copy p{margin:0;color:rgba(255,255,255,.84);font-size:clamp(1rem,1.3vw,1.2rem)}.delivery-copy p+p{margin-top:18px}.delivery-copy a{color:#fff;font-weight:700;text-underline-offset:5px}.delivery-copy strong{color:#fff}.delivery-details-link{display:inline-flex;gap:8px;margin-top:28px;font-size:.82rem;text-underline-offset:5px}.delivery-details-link span{transition:transform .2s ease}.delivery-details-link:hover span{transform:translateX(4px)}
.shop-help{padding:clamp(75px,9vw,125px) var(--gutter);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(48px,10vw,150px);align-items:start}.shop-help h2{margin-bottom:22px}.shop-help-heading>p:not(.eyebrow){max-width:380px;margin:0;color:var(--muted);line-height:1.5}.shop-help a{color:var(--ink);font-weight:700;text-underline-offset:5px}.shop-faq{border-top:1px solid var(--line)}.shop-faq details{border-bottom:1px solid var(--line)}.shop-faq summary{padding:20px 32px 20px 0;position:relative;list-style:none;font:800 clamp(1rem,1.4vw,1.25rem)/1.25 "Nunito Sans",sans-serif;cursor:pointer}.shop-faq summary::-webkit-details-marker{display:none}.shop-faq summary::after{content:"+";position:absolute;right:3px;top:15px;color:var(--red);font:400 1.7rem/1 "DM Sans",sans-serif}.shop-faq details[open] summary::after{content:"−"}.shop-faq p{max-width:540px;margin:0;padding:0 30px 20px 0;color:var(--muted);font-size:.95rem;line-height:1.55}
.bag{position:fixed;z-index:150;top:0;right:0;width:min(100%,440px);height:100svh;padding:25px 24px;display:flex;flex-direction:column;transform:translateX(103%);background:#fffaf2;box-shadow:-18px 0 55px rgba(21,19,15,.13);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.bag.is-open{transform:none}.bag-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.bag-head .eyebrow{color:var(--red)}.bag-close{width:38px;height:38px;border:0;background:none;color:var(--ink);font-size:2rem;line-height:1;cursor:pointer}.bag-items{flex:1;overflow:auto;padding:18px 0}.bag-empty{color:var(--muted);font-size:.9rem}.bag-line{display:grid;grid-template-columns:1fr auto;gap:5px;padding:14px 0;border-bottom:1px solid var(--line)}.bag-line strong{font-size:.92rem}.bag-line small{color:var(--muted)}.bag-line button{grid-column:2;justify-self:end;padding:0;border:0;background:none;color:var(--red);font-size:.72rem;font-weight:700;cursor:pointer}.bag-footer{padding-top:18px;border-top:1px solid var(--line)}.delivery-options{display:grid;gap:7px;margin:0 0 18px;padding:0 0 17px;border:0;border-bottom:1px solid var(--line)}.delivery-options legend{margin-bottom:9px;font:800 .74rem/1.2 "Nunito Sans",sans-serif;letter-spacing:.05em;text-transform:uppercase}.delivery-options label{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:9px 10px;border:1px solid transparent;border-radius:8px;cursor:pointer}.delivery-options label:has(input:checked){border-color:var(--ink);background:#f5eddf}.delivery-options input{width:15px;height:15px;margin:0;accent-color:var(--red)}.delivery-options span{display:flex;justify-content:space-between;gap:12px;font-size:.78rem}.delivery-options strong{font-weight:800}.delivery-options small{color:var(--muted);white-space:nowrap}.bag-total{margin:0;display:flex;justify-content:space-between;font-size:.86rem}.bag-total strong{font:800 .92rem/1 "Nunito Sans",sans-serif}.bag-shipping{margin-top:8px}.bag-grand-total{margin-top:15px;padding-top:15px;border-top:1px solid var(--line);font-size:1.05rem}.bag-grand-total strong{font-size:1.25rem}.bag-note{margin:14px 0;color:var(--muted);font-size:.72rem;line-height:1.45}.checkout-button{width:100%;height:50px;border:0;border-radius:999px;background:var(--red);color:#fff;font:800 .9rem/1 "Nunito Sans",sans-serif;cursor:pointer}.checkout-button:disabled{background:#d9d1c5;color:#91897d;cursor:not-allowed}.bag-scrim{position:fixed;z-index:140;inset:0;background:rgba(21,19,15,.23);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}.bag-scrim.is-visible{opacity:1;visibility:visible}

.product-action-controls{display:flex;align-items:center;gap:10px}.product-action button.is-restock{border-color:var(--line);background:transparent;color:#8a8379;cursor:pointer}.product-action button.is-restock:hover{border-color:var(--ink);background:transparent;color:var(--ink);transform:translateY(-2px)}.restock-dialog{width:min(calc(100% - 34px),470px);padding:clamp(27px,4vw,45px);border:0;border-radius:var(--radius);background:#fffaf2;box-shadow:0 24px 75px rgba(21,19,15,.24);color:var(--ink)}.restock-dialog::backdrop{background:rgba(21,19,15,.34);backdrop-filter:blur(3px)}.restock-dialog h2{margin:10px 0 13px;font:800 clamp(2.3rem,6vw,3.6rem)/.94 "Nunito Sans",sans-serif;letter-spacing:-.065em}.restock-dialog>p:not(.eyebrow){max-width:365px;margin:0;color:var(--muted);line-height:1.5}.restock-dialog [data-restock-copy]{margin-bottom:13px}.restock-product{display:inline-flex;align-items:center;min-height:29px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--ingredient-cream);color:var(--ink)!important;font-size:.74rem;font-weight:800;line-height:1.2!important}.restock-close{position:absolute;top:15px;right:17px;width:37px;height:37px;border:0;background:transparent;color:var(--ink);font-size:2rem;line-height:1;cursor:pointer}.restock-dialog form{display:grid;gap:10px;margin-top:22px}.restock-dialog label{font-size:.75rem;font-weight:800}.restock-dialog input{width:100%;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:500 .95rem/1 "DM Sans",sans-serif}.restock-dialog form button{height:48px;border:0;border-radius:999px;background:var(--red);color:#fff;font:800 .85rem/1 "Nunito Sans",sans-serif;cursor:pointer}.restock-dialog form button:disabled{opacity:.65;cursor:wait}.restock-status{min-height:1.3em;margin:3px 0 0;color:var(--red);font-size:.78rem;line-height:1.35}.restock-dialog small{display:block;margin-top:15px;color:var(--muted);font-size:.72rem;line-height:1.4}
.bag-line{grid-template-columns:minmax(0,1fr) auto}.bag-line>div:first-child strong,.bag-line>div:first-child small{display:block}.bag-line>div:first-child small{margin-top:4px}.bag-line-actions{display:grid;justify-items:end;gap:6px}.bag-line-actions>strong{font-size:.92rem}.cart-quantity{display:flex;align-items:center;gap:6px}.bag-line .cart-quantity button{display:grid;grid-column:auto;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:1rem;line-height:1;cursor:pointer}.bag-line .cart-quantity button:disabled{color:#b0a99e;cursor:not-allowed}.cart-quantity span{min-width:14px;text-align:center;font-size:.78rem;font-weight:800}.bag-line-actions>[data-remove-item]{grid-column:auto;padding:0;border:0;background:none;color:var(--red);font-size:.72rem;font-weight:700;cursor:pointer}

@media(max-width:760px){.shop-header{height:74px}.bag-trigger{font-size:.9rem}.shop-hero{min-height:0;padding-top:116px}.shop-hero h1{font-size:clamp(3.7rem,17vw,5.6rem)}.shop-hero-product{width:min(100%,430px);justify-self:start}.shop-section-head{display:block;margin-bottom:29px}.shop-section-head>p{margin-top:16px}.product-grid{grid-template-columns:1fr;gap:17px}.product-card-featured{grid-column:auto}.product-image,.product-card-featured .product-image{aspect-ratio:1/1;height:auto}.product-card-featured .product-image>img:first-child{object-fit:cover;transform:scale(1.4)}.product-meta{padding:22px 20px 17px}.product-description-row{display:block}.product-description-row .product-detail-link,.product-description-row .product-details-trigger{margin-top:10px}.variant-picker{padding:0 20px 17px}.product-meta h3{font-size:1.75rem}.product-action{padding:16px 20px 19px}.shop-promise,.shop-help{grid-template-columns:1fr;gap:24px}.shop-promise h2{font-size:clamp(3rem,14vw,4.4rem)}.bag{width:min(100%,395px)}}
