/* The Emporium brand layer: vivid spice-orange canvas with a restrained pantry texture. */
:root {
  --emporium-orange: #f97800;
  --emporium-orange-deep: #dc6100;
  --emporium-forest: #1f482d;
  --emporium-hero-olive: #567715;
  --emporium-cream: #fff9ef;
  --emporium-ink: #183424;
}

body {
  background-color: var(--emporium-orange);
  background-image:
    linear-gradient(rgba(249,120,0,.93), rgba(249,120,0,.93)),
    url("../images/pantry-hero.jpg");
  background-size: auto, 720px auto;
  background-repeat: repeat, repeat;
  background-attachment: fixed, fixed;
  background-position: center, center top;
}

/* Storefront */
.promo-bar { background: var(--emporium-forest); }
.site-header { background: rgba(255, 249, 239, .96); border-bottom-color: rgba(31, 72, 45, .16); }
.brand-lockup strong { color: var(--emporium-forest); }
.desktop-nav a:hover, .text-link, .product-category, .brand-lockup span { color: var(--emporium-orange-deep); }
.header-order { border-color: var(--emporium-forest); color: var(--emporium-forest); }
.header-order:hover { background: var(--emporium-forest); }
.hero { background: var(--emporium-hero-olive); }
.hero-scrim { background: linear-gradient(90deg, rgba(86, 119, 21, .84), rgba(86, 119, 21, .5) 40%, rgba(86, 119, 21, .07) 74%); }
.hero-video { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; filter: brightness(.78) saturate(1.02) contrast(1.04); }
.hero h1 em { color: #ffd287; }
.button-primary, .order-btn, .product-dialog__content a { background: var(--emporium-orange); }
.button-primary:hover, .order-btn:hover, .product-dialog__content a:hover { background: var(--emporium-orange-deep); }
.section { padding: 62px clamp(22px, 4vw, 46px); background: rgba(255, 249, 239, .96); border: 1px solid rgba(255,255,255,.42); border-radius: 16px; box-shadow: 0 18px 42px rgba(110, 55, 0, .11); }
.category-section { margin-top: 54px; }
.featured-section, .products-section, .inspiration-section { margin-top: 24px; }
.section-reveal { opacity: 1; transform: none; }
.service-strip { margin-top: 24px; background: rgba(31, 72, 45, .97); border: 0; color: #fff; box-shadow: 0 18px 42px rgba(110, 55, 0, .13); }
.service-strip > div { border-color: rgba(255,255,255,.18); }
.service-strip .material-symbols-outlined { color: #ffd287; }
.service-strip p { color: rgba(255,255,255,.74); }
.story-section { margin: 24px auto; background: var(--emporium-forest); box-shadow: 0 18px 42px rgba(110, 55, 0, .13); }
.story-copy h2 { color: #fff; }
.story-copy p { color: rgba(255,255,255,.78); }
.story-copy .button-quiet { border-color: rgba(255,255,255,.7); }
.product-card, .inspiration-grid article { border-color: #ead9bd; background: #fffefa; }
/* Category cards: keep labels readable, but let the photos show through. */
.collection-card img { filter: brightness(.92) saturate(1.05); }
.collection-card::after {
  background: linear-gradient(0deg, rgba(12, 22, 15, .42), rgba(12, 22, 15, .04) 55%, transparent);
}
.collection-card span {
  text-shadow: 0 1px 10px rgba(0, 0, 0, .45);
}
@media (hover: hover) and (pointer: fine) {
  .collection-card:hover img { filter: brightness(.98) saturate(1.1); }
}
.collection-card.is-active { outline-color: var(--emporium-orange); }
.newsletter { margin-top: 24px; background: var(--emporium-forest); border: 1px solid rgba(255,255,255,.14); }
.newsletter .material-symbols-outlined, .site-footer h2 { color: #ffd287; }
.newsletter-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: 8px; background: var(--emporium-orange); color: #fff; text-decoration: none; font: 700 .72rem/1 var(--body); letter-spacing: .04em; text-transform: uppercase; transition: background .18s ease, transform .18s ease; }
.newsletter-cta:hover { background: #ff9025; transform: translateY(-1px); }
.newsletter-cta:active { transform: translateY(1px); }
.site-footer { margin-top: 50px; background: #173a25; }

/* Storefront navigation: small-category commerce needs clear paths, not a crowded menu. */
.promo-bar { min-height:38px; padding:8px 20px; font-size:.68rem; letter-spacing:.035em; }
.site-header { position:sticky; top:0; z-index:30; min-height:72px; display:flex; align-items:center; gap:clamp(20px,3vw,44px); padding:0 clamp(20px,4vw,58px); background:rgba(255,249,239,.98); box-shadow:0 1px 0 rgba(31,72,45,.14); }
.brand-lockup { flex:0 0 auto; }
.desktop-nav { display:flex; align-items:center; gap:clamp(18px,2vw,30px); margin-left:auto; margin-right:0; }
.desktop-nav > a, .shop-menu > button { display:inline-flex; align-items:center; gap:3px; border:0; padding:10px 0; background:transparent; color:var(--emporium-forest); text-decoration:none; text-transform:uppercase; font:700 .66rem/1 var(--font-body); letter-spacing:.055em; cursor:pointer; }
.desktop-nav > a:hover, .shop-menu > button:hover { color:var(--emporium-orange-deep); }
.shop-menu { position:relative; }
.shop-menu > button .material-symbols-outlined { font-size:1rem; transition:transform .18s ease; }
.shop-menu > button[aria-expanded="true"] .material-symbols-outlined { transform:rotate(180deg); }
.shop-menu-panel { position:absolute; top:calc(100% + 14px); left:-18px; z-index:35; display:grid; min-width:224px; padding:9px; border:1px solid rgba(31,72,45,.16); border-radius:10px; background:#fffdf8; box-shadow:0 18px 38px rgba(20,52,31,.18); }
.shop-menu-panel[hidden] { display:none; }
.shop-menu-panel a { padding:10px 11px; border-radius:6px; color:var(--emporium-forest); text-decoration:none; font:600 .76rem/1.2 var(--font-body); }
.shop-menu-panel a:hover, .shop-menu-panel a:focus-visible { background:#f5eadb; color:var(--emporium-orange-deep); outline:none; }
.header-actions { display:flex; align-items:center; gap:12px; }
.header-search { display:flex; align-items:center; width:218px; min-height:40px; padding:0 9px 0 11px; border:1px solid rgba(31,72,45,.24); border-radius:8px; background:#fffdf8; color:var(--emporium-forest); }
.header-search:focus-within { border-color:var(--emporium-orange-deep); box-shadow:0 0 0 3px rgba(249,120,0,.16); }
.header-search .material-symbols-outlined { font-size:1.1rem; }
.header-search input { width:100%; min-width:0; border:0; outline:0; padding:0 8px; background:transparent; color:var(--emporium-ink); font:500 .77rem/1 var(--font-body); }
.header-search input::placeholder { color:#7e776e; }
.header-search button { border:0; padding:0; background:transparent; color:var(--emporium-forest); font:700 .64rem/1 var(--font-body); text-transform:uppercase; cursor:pointer; }
.header-search button:hover { color:var(--emporium-orange-deep); }
.header-order { min-height:40px; padding:0 15px; border-color:var(--emporium-forest); border-radius:8px; background:var(--emporium-forest); color:#fff; font:700 .65rem/1 var(--font-body); letter-spacing:.045em; text-transform:uppercase; }
.header-order:hover { background:#173a25; color:#fff; transform:translateY(-1px); }

/* Predictive search and compact action sizing keep the header focused on product finding. */
.promo-bar { min-height:34px; padding:7px 20px; }
.site-header { min-height:68px; gap:clamp(18px,2.5vw,34px); }
.brand-lockup { display:flex; align-items:center; gap:9px; }
.brand-logo { width:42px; height:42px; object-fit:contain; flex:0 0 auto; }
.desktop-nav { gap:clamp(17px,1.7vw,25px); }
.desktop-nav > a, .shop-menu > button { text-transform:none; font-size:.73rem; letter-spacing:.015em; }
.desktop-nav > a, .shop-menu > button { position:relative; }
.desktop-nav > a::after, .shop-menu > button::after { content:""; position:absolute; right:0; bottom:3px; left:0; height:2px; border-radius:999px; background:var(--emporium-orange); transform:scaleX(0); transform-origin:right center; transition:transform 160ms ease; }
.header-actions { gap:10px; }
.header-search-wrap { position:relative; }
.header-search { width:205px; min-height:36px; padding:0 7px 0 10px; border-radius:7px; }
.header-search input { padding:0 7px; font-size:.75rem; }
.header-search button { display:grid; width:26px; height:26px; place-items:center; border-radius:5px; }
.header-search button:hover { background:#f5eadb; }
.header-search button .material-symbols-outlined { font-size:1rem; }
.header-search-suggestions { position:absolute; top:calc(100% + 8px); right:0; z-index:40; width:290px; padding:6px; border:1px solid rgba(31,72,45,.17); border-radius:9px; background:#fffdf8; box-shadow:0 16px 34px rgba(20,52,31,.18); }
.header-search-suggestions[hidden] { display:none; }
.header-search-result { display:grid; width:100%; gap:4px; padding:10px; border:0; border-radius:6px; background:transparent; color:var(--emporium-forest); text-align:left; cursor:pointer; }
.header-search-result:hover, .header-search-result:focus-visible { background:#f5eadb; outline:none; }
.header-search-result span { font:700 .78rem/1.15 var(--font-body); }
.header-search-result small { color:#766c60; font:.68rem/1.2 var(--font-body); }
.header-search-empty { margin:0; padding:10px; color:#766c60; font:.72rem/1.3 var(--font-body); }
.header-order { display:inline-flex; align-items:center; justify-content:center; min-width:118px; min-height:36px; padding:0 14px; border:1px solid rgba(31,72,45,.42); border-radius:999px; background:transparent; color:var(--emporium-forest); font-size:.7rem; letter-spacing:.01em; text-align:center; text-transform:none; box-shadow:none; text-decoration:none; transition:background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; }
.header-order:hover { border-color:var(--emporium-forest); background:var(--emporium-forest); color:#fff; transform:translateY(-1px); }
.header-cart__count { display:none; }
.header-cart { display:inline-flex; align-items:center; justify-content:center; width:36px; min-height:36px; padding:0; border:0; border-radius:0; background:transparent; color:var(--emporium-forest); font:600 .7rem/1 var(--font-body); cursor:pointer; }
.header-cart:hover { color:var(--emporium-orange-deep); }
.header-cart .material-symbols-outlined { font-size:1rem; }
.header-cart__label { display:none; }
.header-cart__count { color:var(--emporium-orange-deep); font:700 .7rem/1 var(--font-body); }

/* Wholesale is a destination first, with WhatsApp as the final enquiry action. */
.wholesale-section { width:min(1360px, calc(100% - 48px)); display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(340px, .92fr); gap:clamp(30px, 5vw, 76px); align-items:center; margin:24px auto; padding:clamp(34px, 5vw, 62px); border-radius:16px; background:var(--emporium-forest); color:#fff; box-shadow:0 18px 42px rgba(20,52,31,.18); }
.wholesale-copy > p:first-child { margin:0 0 12px; color:#ffd287; font:700 .66rem/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
.wholesale-copy h2 { max-width:610px; margin:0; color:#fff; font:700 clamp(2rem, 3.8vw, 3.35rem)/1.02 var(--font-display); letter-spacing:-.045em; }
.wholesale-copy > p:not(:first-child) { max-width:560px; margin:17px 0 0; color:rgba(255,255,255,.8); font-size:.96rem; line-height:1.6; }
.wholesale-actions { display:flex; flex-wrap:wrap; align-items:center; gap:17px; margin-top:25px; }
.wholesale-catalogue-link { color:#fff; font:700 .72rem/1 var(--font-body); text-decoration:none; text-underline-offset:5px; }
.wholesale-catalogue-link:hover { color:#ffd287; text-decoration:underline; }
.wholesale-whatsapp { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 14px; border-radius:8px; background:var(--emporium-orange); color:#fff; font:700 .71rem/1 var(--font-body); letter-spacing:.02em; text-decoration:none; }
.wholesale-whatsapp:hover { background:#ff9025; transform:translateY(-1px); }
.wholesale-whatsapp .material-symbols-outlined { font-size:1rem; }
.wholesale-points { display:grid; border-top:1px solid rgba(255,255,255,.2); }
.wholesale-points > div { display:grid; grid-template-columns:34px 1fr; column-gap:12px; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.wholesale-points .material-symbols-outlined { grid-row:span 2; color:#ffd287; font-size:1.2rem; }
.wholesale-points h3 { margin:0; color:#fff; font:700 .96rem/1.2 var(--font-body); }
.wholesale-points p { margin:4px 0 0; color:rgba(255,255,255,.72); font-size:.77rem; line-height:1.45; }

/* Scroll-led product story: imagery stays present while its matching note is read. */
.product-stories { width:min(1360px, calc(100% - 48px)); display:grid; grid-template-columns:minmax(0, .95fr) minmax(370px, .85fr); gap:clamp(34px, 6vw, 88px); margin:24px auto; padding:clamp(38px, 6vw, 72px) 0; }
.product-stories__media { position:sticky; top:94px; align-self:start; height:calc(100vh - 130px); min-height:520px; overflow:hidden; border-radius:14px; background:#dfe4d6; }
.product-story-image { position:absolute; inset:0; margin:0; opacity:0; transform:translateX(11%); transition:opacity 200ms var(--ease-out), transform 200ms var(--ease-out); }
.product-story-image.is-active { z-index:1; opacity:1; transform:translateX(0); }
.product-story-image.is-past { transform:translateX(-11%); }
.product-story-image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.product-stories__details { min-width:0; padding:0 clamp(25px, 4vw, 52px); border-radius:14px; background:var(--emporium-forest); box-shadow:0 18px 42px rgba(20,52,31,.18); }
.product-stories__intro { padding:clamp(30px, 4vw, 48px) 0 34px; }
.product-stories__intro > p { margin:0 0 10px; color:#ffd287; font:700 .66rem/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
.product-stories__intro h2 { max-width:510px; margin:0; color:#fff; font:700 clamp(2rem, 3.5vw, 3.25rem)/1.03 var(--font-display); letter-spacing:-.045em; }
.product-story-note { min-height:62vh; display:flex; flex-direction:column; justify-content:center; padding:clamp(22px, 4vw, 44px) 0; border-top:1px solid rgba(255,255,255,.2); }
.product-story-note:last-child { border-bottom:1px solid rgba(255,255,255,.2); }
.product-story-note__type { margin:0; color:#ffd287; font:700 .65rem/1 var(--font-body); letter-spacing:.07em; text-transform:uppercase; }
.product-story-note h3 { margin:11px 0 0; color:#fff; font:700 clamp(1.8rem, 3vw, 2.65rem)/1.04 var(--font-display); letter-spacing:-.04em; }
.product-story-note > p:not(.product-story-note__type) { max-width:470px; margin:15px 0 0; color:rgba(255,255,255,.82); font-size:.94rem; line-height:1.65; }
.product-story-note dl { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; margin:25px 0 0; }
.product-story-note dt { color:#ffd287; font:700 .62rem/1 var(--font-body); letter-spacing:.06em; text-transform:uppercase; }
.product-story-note dd { margin:7px 0 0; color:#fff; font:600 .8rem/1.35 var(--font-body); }
.product-story-note a { display:inline-flex; align-self:flex-start; margin-top:25px; color:#fff; font:700 .72rem/1 var(--font-body); text-decoration:none; text-underline-offset:5px; }
.product-story-note a:hover { color:#ffd287; text-decoration:underline; }

@media (hover: hover) and (pointer: fine) {
  .desktop-nav > a:hover::after, .shop-menu > button:hover::after, .desktop-nav > a:focus-visible::after, .shop-menu > button:focus-visible::after { transform:scaleX(1); transform-origin:left center; }
}

@media (prefers-reduced-motion: reduce) {
  .desktop-nav > a::after, .shop-menu > button::after { transition:none; }
}

@media (max-width: 980px) { .header-search { width:174px; } .desktop-nav { gap:15px; } }
@media (max-width: 800px) { .promo-bar { min-height:36px; font-size:.61rem; } .site-header { min-height:62px; padding:0 18px; } .brand-logo { width:36px; height:36px; } .brand-lockup { gap:7px; } .desktop-nav, .header-search, .header-order { display:none; } .header-actions { margin-left:auto; } }

/* Ordering: quantities are explicit and multi-product orders are collected before WhatsApp checkout. */
.detail-purchase-controls { display:flex; align-items:center; gap:10px; margin-top:21px; }
.quantity-control { display:grid; grid-template-columns:34px 38px 34px; align-items:center; min-height:38px; overflow:hidden; border:1px solid #cfd9ce; border-radius:7px; background:#fff; }
.quantity-control button { display:grid; height:100%; place-items:center; border:0; background:transparent; color:var(--emporium-forest); font:600 1.1rem/1 var(--font-body); cursor:pointer; }
.quantity-control button:hover:not(:disabled) { background:#f5eadb; }
.quantity-control button:disabled { color:#aab4aa; cursor:not-allowed; }
.quantity-control output { color:var(--emporium-forest); font:700 .78rem/1 var(--font-body); text-align:center; }
.detail-add-to-cart { min-height:38px; padding:0 13px; border:1px solid var(--emporium-forest); border-radius:7px; background:var(--emporium-forest); color:#fff; font:700 .68rem/1 var(--font-body); cursor:pointer; }
.detail-add-to-cart:hover { background:#173a25; }
.product-dialog__content #product-dialog-order { margin-top:12px; background:transparent; color:var(--emporium-forest); border:1px solid rgba(31,72,45,.45); }
.product-dialog__content #product-dialog-order:hover { background:#f5eadb; color:var(--emporium-forest); }
.cart-dialog { width:min(440px, calc(100vw - 28px)); max-height:calc(100dvh - 28px); margin:auto 18px auto auto; padding:0; border:0; background:transparent; }
.cart-dialog::backdrop { background:rgba(8,24,18,.52); backdrop-filter:blur(5px); }
.cart-dialog__surface { display:flex; flex-direction:column; max-height:calc(100dvh - 28px); overflow:hidden; border-radius:12px; background:#fffdf8; box-shadow:0 24px 70px rgba(20,52,31,.3); }
.cart-dialog header { display:flex; align-items:flex-start; justify-content:space-between; padding:24px 25px 19px; border-bottom:1px solid #e8dfcf; }
.cart-dialog header p { margin:0 0 5px; color:var(--emporium-orange-deep); font:700 .62rem/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
.cart-dialog h2 { margin:0; color:var(--emporium-forest); font:700 1.75rem/1 var(--font-display); letter-spacing:-.04em; }
.cart-dialog header button { display:grid; width:34px; height:34px; place-items:center; border:1px solid #d8dfd6; border-radius:7px; background:transparent; color:var(--emporium-forest); cursor:pointer; }
.cart-dialog header button:hover { background:#f5eadb; }
.cart-dialog header button:focus-visible { outline:2px solid var(--emporium-forest); outline-offset:3px; }
.cart-items { min-height:132px; overflow-y:auto; padding:8px 25px; }
.cart-empty { margin:38px 0; color:#69766d; font-size:.86rem; line-height:1.5; text-align:center; }
.cart-item { display:grid; grid-template-columns:1fr auto; gap:12px; padding:18px 0; border-bottom:1px solid #e8dfcf; }
.cart-item h3 { margin:0; color:var(--emporium-forest); font:700 1rem/1.2 var(--font-body); }
.cart-item p { margin:5px 0 0; color:#69766d; font-size:.75rem; line-height:1.35; }
.cart-item__controls { display:flex; align-items:center; gap:9px; margin-top:12px; }
.cart-item__controls .quantity-control { grid-template-columns:29px 31px 29px; min-height:31px; }
.cart-item__remove { border:0; padding:0; background:transparent; color:var(--emporium-orange-deep); font:600 .68rem/1 var(--font-body); cursor:pointer; }
.cart-item__remove:hover { text-decoration:underline; }
.cart-dialog__footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 25px 25px; border-top:1px solid #e8dfcf; }
.cart-dialog__footer p { margin:0; color:#69766d; font-size:.75rem; }
.cart-dialog__footer a { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:7px; background:var(--emporium-forest); color:#fff; font:700 .68rem/1 var(--font-body); text-decoration:none; }
.cart-dialog__footer a:hover { background:#173a25; }
.cart-dialog__footer a[aria-disabled="true"] { pointer-events:none; opacity:.48; }
@media (max-width: 800px) { .header-cart { position:relative; display:grid; width:36px; height:36px; place-items:center; border:1px solid rgba(31,72,45,.28); border-radius:7px; } .header-cart__label { display:none; } }
@media (max-width: 520px) { .cart-dialog { width:100%; max-height:100dvh; margin:auto 0 0; } .cart-dialog__surface { max-height:100dvh; border-radius:12px 12px 0 0; } }

/* Dedicated cart: a calm order-review page, with WhatsApp used only for final confirmation. */
body.cart-page { min-height:100dvh; background:#e8edeb; color:var(--emporium-forest); }
.cart-page-header { width:min(1280px, calc(100% - 48px)); display:flex; align-items:center; justify-content:space-between; margin:0 auto; padding:28px 0; }
.cart-page-brand { color:var(--emporium-forest); font:700 1.7rem/1 var(--font-display); letter-spacing:-.04em; text-decoration:none; }
.cart-continue { display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 13px; border:1px solid rgba(31,72,45,.28); border-radius:7px; color:var(--emporium-forest); font:600 .72rem/1 var(--font-body); text-decoration:none; }
.cart-continue:hover { border-color:var(--emporium-forest); background:#f8f5ed; }
.cart-page-main { width:min(1280px, calc(100% - 48px)); margin:0 auto 58px; }
.cart-page-card { padding:clamp(28px, 5vw, 58px); border-radius:14px; background:#fffdf8; box-shadow:0 20px 56px rgba(20,52,31,.12); }
.cart-page-title { display:flex; align-items:end; justify-content:space-between; gap:20px; padding-bottom:34px; }
.cart-page-title p { margin:0 0 9px; color:var(--emporium-orange-deep); font:700 .64rem/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase; }
.cart-page-title h1 { margin:0; color:var(--emporium-forest); font:700 clamp(2.3rem, 4vw, 3.85rem)/.96 var(--font-display); letter-spacing:-.055em; }
.cart-page-title > span { color:#68766d; font:600 .75rem/1 var(--font-body); }
.cart-table-head, .cart-page-item { display:grid; grid-template-columns:minmax(260px, 2.25fr) minmax(90px, .8fr) minmax(112px, .72fr) minmax(100px, .75fr) 28px; gap:22px; align-items:center; }
.cart-table-head { padding:0 0 16px; border-bottom:1px solid #e6e0d5; color:#768178; font:700 .61rem/1 var(--font-body); letter-spacing:.06em; text-transform:uppercase; }
.cart-page-item { padding:20px 0; border-bottom:1px solid #eee8dd; }
.cart-page-product { display:flex; align-items:center; gap:16px; min-width:0; }
.cart-page-product img { width:74px; height:74px; flex:0 0 74px; border-radius:7px; object-fit:cover; background:#e5ebdf; }
.cart-page-product h2 { margin:0; color:var(--emporium-forest); font:700 1rem/1.2 var(--font-body); }
.cart-page-product p { margin:6px 0 0; color:#77847b; font-size:.74rem; line-height:1.35; }
.cart-page-price, .cart-page-total { margin:0; color:var(--emporium-forest); font:600 .8rem/1.35 var(--font-body); }
.cart-page-total { white-space:nowrap; }
.cart-page-quantity { display:grid; grid-template-columns:32px 34px 32px; align-items:center; height:36px; overflow:hidden; border:1px solid #ced8ce; border-radius:7px; background:#fff; }
.cart-page-quantity button { display:grid; height:100%; place-items:center; border:0; background:transparent; color:var(--emporium-forest); font:600 1.05rem/1 var(--font-body); cursor:pointer; }
.cart-page-quantity button:hover:not(:disabled) { background:#f5eadb; }
.cart-page-quantity button:disabled { color:#afbaaf; cursor:not-allowed; }
.cart-page-quantity output { color:var(--emporium-forest); font:700 .78rem/1 var(--font-body); text-align:center; }
.cart-page-remove { display:grid; width:28px; height:28px; place-items:center; border:0; border-radius:50%; background:transparent; color:#7b877d; cursor:pointer; }
.cart-page-remove:hover { background:#f5eadb; color:var(--emporium-orange-deep); }
.cart-page-remove .material-symbols-outlined { font-size:1rem; }
.cart-page-summary { display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:end; gap:28px; margin-top:36px; padding:26px 28px; border-radius:11px; background:#eef2f0; }
.cart-page-summary > div > p { margin:0 0 16px; color:var(--emporium-forest); font:700 .9rem/1 var(--font-body); }
.cart-page-summary dl { display:grid; gap:9px; margin:0; }
.cart-page-summary dl > div { display:grid; grid-template-columns:150px auto; gap:18px; }
.cart-page-summary dt { color:#718076; font-size:.72rem; }
.cart-page-summary dd { margin:0; color:var(--emporium-forest); font:600 .72rem/1.35 var(--font-body); }
.cart-page-checkout, .cart-page-summary a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 18px; border-radius:7px; background:var(--emporium-forest); color:#fff; font:700 .72rem/1 var(--font-body); text-decoration:none; }
.cart-page-summary a:hover { background:#173a25; transform:translateY(-1px); }
.cart-page-summary a[aria-disabled="true"] { pointer-events:none; opacity:.5; }
.cart-page-empty { padding:64px 22px; text-align:center; }
.cart-page-empty .material-symbols-outlined { color:var(--emporium-orange-deep); font-size:2.2rem; }
.cart-page-empty h2 { margin:15px 0 0; color:var(--emporium-forest); font:700 1.55rem/1.1 var(--font-display); }
.cart-page-empty p { max-width:390px; margin:10px auto 20px; color:#718076; font-size:.84rem; line-height:1.55; }
.cart-page-empty a { display:inline-flex; min-height:40px; align-items:center; padding:0 14px; border-radius:7px; background:var(--emporium-forest); color:#fff; font:700 .7rem/1 var(--font-body); text-decoration:none; }
@media (max-width: 760px) { .cart-page-header, .cart-page-main { width:calc(100% - 28px); } .cart-page-header { padding:20px 0; } .cart-page-brand { font-size:1.35rem; } .cart-continue { min-height:34px; padding:0 9px; font-size:.65rem; } .cart-page-card { padding:25px 18px; border-radius:10px; } .cart-page-title { padding-bottom:26px; } .cart-table-head { display:none; } .cart-page-item { grid-template-columns:minmax(0, 1fr) auto; gap:14px; } .cart-page-product { grid-column:1 / -1; } .cart-page-price { grid-column:1; } .cart-page-quantity { grid-column:2; grid-row:2; } .cart-page-total { grid-column:1; grid-row:3; } .cart-page-remove { grid-column:2; grid-row:3; justify-self:end; } .cart-page-summary { grid-template-columns:1fr; align-items:start; padding:23px 20px; } .cart-page-summary a { width:100%; } }
@media (max-width: 800px) { .wholesale-section { width:calc(100% - 28px); grid-template-columns:1fr; gap:28px; margin:16px auto; padding:30px 22px; border-radius:12px; } .wholesale-actions { align-items:flex-start; flex-direction:column; gap:18px; } }
@media (max-width: 800px) { .product-stories { width:100%; display:block; margin:16px 0; padding:40px 0; } .product-stories__media { position:relative; top:auto; height:auto; min-height:0; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; border-radius:0; } .product-story-image, .product-story-image.is-active, .product-story-image.is-past { position:relative; inset:auto; flex:0 0 82%; aspect-ratio:4 / 5; opacity:1; transform:none; scroll-snap-align:center; } .product-story-image img { position:absolute; inset:0; } .product-stories__details { margin:0 14px; padding:0 22px; border-radius:12px; } .product-stories__intro { padding:36px 0 20px; } .product-story-note { min-height:0; padding:32px 0; } }
@media (prefers-reduced-motion: reduce) { .product-story-image { transition:none; } }

/* Catalogue manager */
#dashboard { background: transparent; }
.admin-header { background: var(--emporium-forest); }
.admin-intro { padding: clamp(28px, 5vw, 54px); border: 0; border-radius: 16px; color: #fff; background: linear-gradient(135deg, rgba(249,120,0,.98), rgba(232,96,0,.96)); box-shadow: 0 20px 46px rgba(110, 55, 0, .18); }
.admin-intro h1 { color: #fff; }
.admin-intro > div > p:last-child { color: rgba(255,255,255,.86); }
.admin-intro .admin-kicker { color: #fff1cd; }
.admin-summary { border-left-color: #fff1cd; background: rgba(255,255,255,.16); }
.admin-summary small { color: rgba(255,255,255,.82); }
.admin-section--create, .admin-section--products { padding: clamp(24px, 4vw, 40px); margin-top: 24px; border-radius: 16px; background: rgba(255,249,239,.97); box-shadow: 0 18px 42px rgba(110, 55, 0, .12); }
.admin-section--create { padding-bottom: clamp(24px, 4vw, 40px); }
.admin-section--products { padding-bottom: clamp(24px, 4vw, 40px); }
.section-heading h2 { color: var(--emporium-forest); }
.admin-kicker { color: var(--emporium-orange-deep); }
.btn-primary { background: var(--emporium-orange); }
.btn-primary:hover { background: var(--emporium-orange-deep); }
.product-list-shell { background: #fffefa; }
.row-price-input:focus, .admin-filter select:focus, .add-form input:focus, .add-form select:focus { border-color: var(--emporium-orange-deep); box-shadow: 0 0 0 3px rgba(249,120,0,.18); }

@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
}

/* Product editing dialog */
.edit-dialog { width: min(710px, calc(100vw - 32px)); max-height: min(820px, calc(100vh - 32px)); margin: auto; padding: 0; border: 0; border-radius: 18px; background: #fffaf2; color: var(--emporium-ink); box-shadow: 0 24px 80px rgba(20, 45, 28, .34); }
.edit-dialog::backdrop { background: rgba(16, 46, 29, .69); backdrop-filter: blur(4px); }
.edit-dialog__surface { padding: clamp(22px, 4vw, 38px); }
.edit-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.edit-dialog__header h2 { margin: 4px 0 0; color: var(--emporium-forest); font: 800 clamp(1.7rem, 4vw, 2.3rem)/1 var(--font-display); letter-spacing: -.045em; }
.edit-dialog__close { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #e2c9a9; border-radius: 50%; background: transparent; color: var(--emporium-forest); cursor: pointer; }
.edit-dialog__close:hover { background: #fff0dd; border-color: var(--emporium-orange-deep); }
.edit-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.edit-form-grid input, .edit-form-grid select { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #dfc9aa; border-radius: 8px; background: #fffdf9; color: var(--emporium-ink); font: 500 .9rem/1.2 var(--font-body); }
.edit-form-grid input:focus, .edit-form-grid select:focus { outline: 3px solid rgba(249, 120, 0, .18); border-color: var(--emporium-orange-deep); }
.edit-form-grid .field--file input { min-height: 44px; padding: 8px 12px; }
.edit-stock { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; color: #244832; font: 600 .82rem/1.2 var(--font-body); }
.edit-stock input { width: 17px; height: 17px; accent-color: var(--emporium-orange-deep); }
.edit-dialog__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.edit-dialog__actions .add-status { margin-right: auto; }
.btn-secondary { min-height: 42px; padding: 0 16px; border: 1px solid #d8bea0; border-radius: 8px; background: transparent; color: #244832; font: 700 .73rem/1 var(--font-mono); cursor: pointer; }
.btn-secondary:hover { background: #f6ead9; }
.catalogue-tools { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; }
.admin-search { display:flex; align-items:center; gap:8px; }
.admin-search label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0; }
.admin-search input { width:min(220px, 42vw); min-height:40px; padding:8px 11px; border:1px solid #d8d2c4; border-radius:8px; background:#fffdf8; color:#18372d; font:500 .82rem/1 var(--font-body); }
.admin-search input:focus { outline:none; border-color:var(--emporium-orange-deep); box-shadow:0 0 0 3px rgba(249,120,0,.18); }

@media (max-width: 800px) {
  .section { width: calc(100% - 28px); padding: 42px 20px; }
  .category-section { margin-top: 28px; }
  .featured-section, .products-section, .inspiration-section, .service-strip, .story-section, .newsletter { margin-top: 16px; }
  .admin-section--create, .admin-section--products { margin-top: 16px; }
  .catalogue-tools { align-items:stretch; flex-direction:column; }
  .admin-search { width:100%; }
  .admin-search input { flex:1; width:auto; }
  .admin-intro { border-radius: 12px; }
  .edit-form-grid { grid-template-columns: 1fr; }
  .edit-dialog__actions { flex-wrap: wrap; }
  .edit-dialog__actions .add-status { width: 100%; }
}
