:root {
  --ink: #24181a;
  --muted: #74676a;
  --wine: #722f37;
  --wine-dark: #4d1d24;
  --rose: #d7a3a8;
  --cream: #fbf7ef;
  --paper: #fffdf9;
  --gold: #c99a43;
  --line: #e8dfd6;
  --success: #286846;
  --shadow: 0 18px 50px rgba(54, 30, 31, .12);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { display: block; width: 100%; }
.app-install-banner { display: none; align-items: center; justify-content: center; gap: 10px; padding: 10px 12px; color: white; background: linear-gradient(90deg, var(--wine-dark), var(--wine)); font-size: 13px; font-weight: 700; text-align: center; }
.app-install-banner.is-visible { display: flex; }
.app-install-banner[hidden] { display: none !important; }
.app-install-close, .app-install-button { border: 0; cursor: pointer; }
.app-install-close { width: 28px; height: 28px; flex: 0 0 28px; display: inline-grid; place-items: center; border-radius: 999px; color: white; background: rgba(255,255,255,.16); font-size: 20px; line-height: 1; }
.app-install-button { flex: 0 0 auto; padding: 8px 12px; border-radius: 999px; color: var(--wine-dark); background: #ffe7b3; font-size: 12px; font-weight: 900; white-space: nowrap; }
.app-install-button:hover { background: #fff0cb; }
.announcement { height: 48px; display: flex; align-items: center; overflow: hidden; padding: 0; text-align: center; color: #fff7ea; background: #843f12; font-family: "Poppins", "DM Sans", sans-serif; font-size: clamp(14px, 1.08vw, 18px); font-weight: 400; letter-spacing: -.01em; }
.announcement-track { display: inline-flex; min-width: max-content; white-space: nowrap; animation: announcementScroll 48s linear infinite; will-change: transform; }
.announcement-track span { height: 48px; display: inline-flex; align-items: center; padding: 0 42px; }
.announcement-track strong { font-weight: 500; }
@keyframes announcementScroll {
  0% { transform: translateX(100vw); }
  100% { transform: translateX(-100%); }
}
.site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; height: 76px; padding: 0 clamp(20px, 5vw, 76px); border-bottom: 1px solid rgba(114,47,55,.08); background: rgba(255,253,249,.92); backdrop-filter: blur(16px); }
.mobile-site-menu { display: none; }
.brand { display: flex; align-items: center; padding: 0; border: 0; background: none; cursor: pointer; }
.brand img { width: 92px; height: 66px; object-fit: contain; }
.desktop-nav { display: flex; gap: clamp(20px, 3.2vw, 44px); }
.desktop-nav button, .header-actions button { padding: 8px; border: 0; background: none; cursor: pointer; }
.desktop-nav button { position: relative; font-family: "Poppins", "DM Sans", sans-serif; font-size: clamp(15px, 1.08vw, 18px); font-weight: 500; letter-spacing: -.02em; }
.desktop-nav button:hover::after { position: absolute; right: 8px; bottom: 1px; left: 8px; height: 2px; content: ""; background: var(--wine); }
.nav-dropdown { position: relative; display: flex; align-items: center; }
.products-menu span { margin-left: 4px; color: var(--wine); }
.nav-submenu { position: absolute; z-index: 30; top: calc(100% + 12px); left: 50%; display: none; min-width: 170px; padding: 9px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--shadow); transform: translateX(-50%); }
.nav-submenu::before { position: absolute; top: -14px; right: 0; left: 0; height: 16px; content: ""; }
.nav-submenu button { display: block; width: 100%; padding: 11px 13px; border-radius: 9px; text-align: left; font-size: 15px; }
.nav-submenu button:hover { color: var(--wine); background: var(--cream); }
.nav-submenu button:hover::after { display: none; }
.nav-dropdown:hover .nav-submenu, .nav-dropdown:focus-within .nav-submenu { display: block; }
.content-card { max-width: 850px; padding: clamp(24px, 5vw, 50px); border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.profile-grid .wide { grid-column: 1 / -1; }
.readonly-field { padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: #f4f0eb; }
.address-list { display: grid; gap: 12px; margin: 14px 0 20px; }
.address-card, .delivery-address-box { padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: #fffaf4; }
.address-card strong, .delivery-address-box strong { color: var(--wine); }
.address-card p, .delivery-address-box p { margin: 6px 0 0; color: var(--muted); line-height: 1.45; }
.selectable-address { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.selectable-address:hover { border-color: var(--wine); transform: translateY(-1px); }
.address-form { padding-top: 4px; }
.notification-list { display: grid; gap: 13px; }
.notification-item { padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: white; }
.notification-item h3 { margin: 0 0 5px; font-size: 19px; }
.notification-item p { margin: 0 0 7px; color: var(--muted); }
.content-card h2 { margin: 28px 0 8px; font-size: 24px; }
.content-card h2:first-child { margin-top: 0; }
.content-card p, .content-card li { color: var(--muted); line-height: 1.75; }
.media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.media-tile { min-height: 230px; display: flex; align-items: end; padding: 22px; overflow: hidden; border-radius: var(--radius); color: white; background-position: center; background-size: cover; box-shadow: inset 0 -110px 80px rgba(30,14,17,.65); font: 600 23px "Playfair Display"; }
.social-card { max-width: none; margin-top: 22px; }
.social-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.social-link-grid a { display: grid; gap: 4px; padding: 15px; border: 1px solid var(--line); border-radius: 15px; color: var(--wine); background: #fffaf4; text-decoration: none; font-weight: 800; }
.social-link-grid a:hover { border-color: var(--wine); transform: translateY(-1px); }
.social-link-grid span { color: var(--muted); font-size: 12px; font-weight: 600; }
.header-actions { display: flex; align-items: center; gap: 8px; }
#searchButton { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 999px; font-size: 28px; font-weight: 800; line-height: 1; color: var(--wine); background: var(--cream); }
#searchButton:hover { background: #f4dfd4; }
.account-wrap { position: relative; }
.account-menu { position: absolute; z-index: 35; top: calc(100% + 8px); right: 0; width: 178px; max-height: 258px; overflow-y: auto; padding: 5px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow); }
.account-menu button { display: block; width: 100%; padding: 7px 10px !important; border-radius: 8px !important; text-align: left; font-size: 13px; line-height: 1.15; }
.account-menu button:hover { background: var(--cream); }
.account-menu .danger { color: #a02424; }
.notification-menu-button { display: flex !important; align-items: center; justify-content: space-between; gap: 8px; }
.notification-menu-button.has-unread { color: var(--wine); font-weight: 800; background: #fff4e8; }
.notification-unread-badge { min-width: 19px; height: 19px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 99px; color: white; background: #d92d20; font-size: 10px; font-weight: 800; line-height: 1; }
.account-button { font-weight: 600 !important; }
.favorite-header-button, .cart-button { position: relative; display: inline-grid !important; place-items: center; width: 46px; height: 42px; border-radius: 999px !important; background: var(--cream) !important; font-size: 20px; }
.favorite-header-button { color: var(--wine); }
.favorite-header-button[hidden] { display: none !important; }
.favorite-header-button #favoriteCount, .cart-button #cartCount { position: absolute; top: 2px; right: 1px; display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; color: white; border-radius: 99px; background: var(--wine); font-size: 10px; font-weight: 800; box-shadow: 0 0 0 2px var(--cream); }
.cart-button .cart-icon { line-height: 1; }
.favorite-icon { line-height: 1; }
.hero { min-height: 620px; display: grid; grid-template-columns: 1.05fr .95fr; overflow: hidden; background: linear-gradient(135deg, #f7eadb, #fbf7ef 55%); }
.hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(52px, 8vw, 120px); }
.eyebrow { margin: 0 0 14px; color: var(--wine); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3 { font-family: "Playfair Display", serif; }
h1 { max-width: 650px; margin: 0; font-size: clamp(48px, 6vw, 86px); font-weight: 600; line-height: .98; letter-spacing: -.04em; }
h1 em { color: var(--wine); font-style: italic; }
.hero-copy > p:not(.eyebrow) { max-width: 530px; margin: 28px 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.hero-image { position: relative; min-height: 500px; background: linear-gradient(30deg, rgba(70,27,34,.18), transparent), url("https://images.unsplash.com/photo-1610030469983-98e550d6193c?auto=format&fit=crop&w=1400&q=88") center 25%/cover; }
.hero-image::after { position: absolute; right: 32px; bottom: 32px; width: 136px; height: 136px; display: grid; place-items: center; content: "5% OFF\A ALWAYS"; white-space: pre; color: #fff; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(77,29,36,.78); text-align: center; font: 600 16px/1.5 "Playfair Display"; backdrop-filter: blur(8px); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.promo-carousel { --promo-width: 100%; --promo-gap: 0px; position: relative; display: flex; justify-content: center; padding: 16px 0 0; overflow: hidden; background: #f1f3f6; }
.promo-viewport { width: var(--promo-width); overflow: hidden; scrollbar-width: none; }
.promo-viewport::-webkit-scrollbar { display: none; }
.promo-track { position: relative; width: 100%; height: clamp(260px, 25vw, 420px); }
.promo-slide { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; padding: clamp(32px, 6vw, 72px); border: 0; border-radius: 0; cursor: pointer; color: white; text-align: left; background-color: #efe3d2; background-position: center; background-repeat: no-repeat; background-size: cover; box-shadow: 0 1px 5px rgba(0,0,0,.12); opacity: 0; pointer-events: none; transition: opacity .7s ease; }
.promo-slide.active { opacity: 1; pointer-events: auto; }
.promo-slide-image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; pointer-events: none; }
.promo-slide::before { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(90deg, rgba(42,16,22,.78), rgba(42,16,22,.24), rgba(42,16,22,.04)); }
.promo-slide span, .promo-slide strong { position: relative; z-index: 1; display: block; max-width: 520px; }
.promo-slide span { margin-bottom: 10px; font-family: "Poppins", "DM Sans", sans-serif; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; font-size: clamp(12px, 1vw, 16px); }
.promo-slide strong { font-family: "Poppins", "DM Sans", sans-serif; font-size: clamp(24px, 3.4vw, 48px); font-weight: 400; line-height: 1.12; letter-spacing: -.03em; }
.promo-slide.saree { background-image: url("https://images.unsplash.com/photo-1610030469983-98e550d6193c?auto=format&fit=crop&w=1600&q=88"); }
.promo-slide.dress { background-image: url("https://images.unsplash.com/photo-1496747611176-843222e1e57c?auto=format&fit=crop&w=1600&q=86"); }
.promo-slide.kids { background-image: url("https://images.unsplash.com/photo-1522771930-78848d9293e8?auto=format&fit=crop&w=1600&q=86"); }
.promo-slide.gift { background-image: url("https://images.unsplash.com/photo-1513201099705-a9746e1e201f?auto=format&fit=crop&w=1600&q=86"); }
.promo-slide.offer { background-position: center top !important; }
.promo-slide.offer::before { background: linear-gradient(90deg, rgba(42,23,12,.64), rgba(116,71,29,.28), rgba(255,255,255,.02)); }
.promo-slide.offer span, .promo-slide.offer strong { max-width: 620px; text-shadow: 0 2px 14px rgba(60,31,12,.28); }
.promo-slide.offer strong { font-family: "Poppins", "DM Sans", sans-serif; font-size: clamp(22px, 3vw, 44px); font-weight: 400; line-height: 1.16; letter-spacing: -.03em; }
.promo-nav { position: absolute; top: calc(50% + 8px); z-index: 3; width: 72px; height: 72px; border: 0; border-radius: 0; display: grid; place-items: center; color: rgba(255,255,255,.42); background: transparent; box-shadow: none; cursor: pointer; font-size: 76px; font-weight: 200; line-height: 1; opacity: .42; text-shadow: 0 6px 26px rgba(0,0,0,.28); transition: opacity .2s ease, color .2s ease, transform .2s ease; }
.promo-nav:hover { background: transparent; color: rgba(255,255,255,.72); opacity: .72; transform: translateY(-1px); }
.promo-nav-prev { left: 12px; }
.promo-nav-next { right: 12px; }
.secondary-promo-carousel { padding-top: 10px; background: #f1f3f6; }
.secondary-promo-carousel .promo-slide { height: clamp(210px, 18vw, 300px); }
.dynamic-banner:not([style*="url('')"]) { background-color: #7a3440; }
.dynamic-banner[style*="url('')"] { background-image: linear-gradient(135deg, #702b35, #d8a84f 58%, #fff3d0) !important; }
@keyframes promoScroll {
  0%, 13% { transform: translateX(0); }
  20%, 33% { transform: translateX(calc(-1 * (var(--promo-width) + var(--promo-gap)))); }
  40%, 53% { transform: translateX(calc(-2 * (var(--promo-width) + var(--promo-gap)))); }
  60%, 73% { transform: translateX(calc(-3 * (var(--promo-width) + var(--promo-gap)))); }
  80%, 93% { transform: translateX(calc(-4 * (var(--promo-width) + var(--promo-gap)))); }
  100% { transform: translateX(0); }
}
.primary-button, .secondary-button { min-height: 48px; padding: 13px 22px; border-radius: 99px; cursor: pointer; font-weight: 700; }
.medium-button { min-height: 42px; padding: 10px 20px; border-radius: 99px; cursor: pointer; font-weight: 700; font-size: 14px; color: var(--wine); border: 1px solid var(--wine); background: #fff4e8; }
.medium-button.active { color: #fff; background: var(--wine); }
.medium-button:hover { background: #f0dfe1; transform: translateY(-1px); }
.primary-button { color: white; border: 1px solid var(--wine); background: var(--wine); }
.primary-button:hover { background: var(--wine-dark); transform: translateY(-1px); }
.secondary-button { color: var(--wine); border: 1px solid var(--wine); background: transparent; }
.section { padding: clamp(64px, 8vw, 110px) clamp(20px, 6vw, 90px); }
.collection-section { padding-top: 24px; }
.section.cream { background: var(--cream); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 34px; }
.section-head h2, .page-head h1 { margin: 0; font-size: clamp(34px, 4vw, 54px); }
.section-head p { max-width: 420px; margin: 0; color: var(--muted); line-height: 1.6; }
.category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.category-card { position: relative; min-height: 310px; overflow: hidden; border: 0; border-radius: var(--radius); background: #ddd; cursor: pointer; text-align: left; }
.category-card img { height: 100%; object-fit: cover; transition: transform .5s ease; }
.category-card:hover img { transform: scale(1.04); }
.category-card::after { position: absolute; inset: 35% 0 0; content: ""; background: linear-gradient(transparent, rgba(24,10,12,.78)); }
.category-card span { position: absolute; z-index: 1; right: 22px; bottom: 20px; left: 22px; color: white; font: 600 27px "Playfair Display"; }
.product-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); }
.product-card { overflow: hidden; border-radius: var(--radius); background: white; box-shadow: 0 1px 0 var(--line); }
.product-media { position: relative; height: clamp(230px, 18vw, 330px); overflow: hidden; background: #eee; }
.product-media img { height: 100%; object-fit: cover; transition: transform .5s ease; }
.product-card:hover .product-media img { transform: scale(1.035); }
.discount-badge { position: absolute; top: 16px; left: 16px; padding: 7px 10px; color: var(--wine); border-radius: 99px; background: rgba(255,253,249,.92); font-size: 11px; font-weight: 700; }
.favorite-toggle { position: absolute; z-index: 3; top: 14px; right: 14px; width: 42px; height: 42px; display: inline-grid; place-items: center; border: 1px solid rgba(114,47,55,.16); border-radius: 999px; color: var(--wine); background: rgba(255,253,249,.94); box-shadow: 0 10px 24px rgba(36,20,22,.12); cursor: pointer; font-size: 25px; line-height: 1; }
.favorite-toggle.active { color: white; border-color: var(--wine); background: var(--wine); }
.favorite-toggle:hover { transform: translateY(-1px); }
.detail-image-actions { position: absolute; z-index: 6; top: 16px; right: 16px; display: grid; gap: 10px; }
.detail-favorite-button { position: static; width: 44px; height: 44px; margin: 0; display: grid; place-items: center; border-radius: 999px; font-size: 25px; }
.detail-share-button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(114,47,55,.16); border-radius: 999px; color: var(--wine); background: rgba(255,253,249,.94); box-shadow: 0 10px 24px rgba(36,20,22,.08); cursor: pointer; font-size: 20px; font-weight: 800; }
.detail-share-button:hover { transform: translateY(-1px); }
.product-info { padding: 20px; }
.product-info h3 { margin: 0 0 8px; font-size: 22px; }
.product-info .meta { margin: 0 0 14px; color: var(--muted); font-size: 13px; }
.price { display: flex; align-items: baseline; gap: 9px; }
.price strong { color: var(--wine); font-size: 18px; }
.price del { color: #9b9092; font-size: 13px; }
.product-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 17px; }
.add-button { width: 42px; height: 42px; color: white; border: 0; border-radius: 50%; background: var(--wine); cursor: pointer; font-size: 22px; }
.clickable-product-card { cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.clickable-product-card:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(36,20,22,.09); }
.product-detail-page { padding-top: 28px; padding-bottom: 120px; }
.detail-back-button { margin-bottom: 18px; }
.product-detail-shell { display: grid; grid-template-columns: minmax(360px, .95fr) minmax(320px, 1fr) minmax(280px, .42fr); gap: clamp(20px, 3vw, 34px); align-items: start; }
.detail-gallery, .detail-info, .detail-buy-box { min-width: 0; }
.detail-gallery { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 14px; align-items: start; }
.detail-main-image { position: relative; height: min(640px, 62vw); min-height: 430px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; }
.detail-main-image > img { width: 100%; height: 100%; object-fit: contain; border-radius: 18px; }
.detail-main-image > img { cursor: pointer; }
.detail-thumbs { grid-row: 1; grid-column: 1; display: grid; grid-template-columns: 1fr; gap: 10px; max-height: min(640px, 62vw); overflow-y: auto; padding-right: 2px; }
.detail-main-image { grid-row: 1; grid-column: 2; }
.detail-thumbs button { width: 100%; height: 86px; overflow: hidden; border: 2px solid transparent; border-radius: 12px; background: white; cursor: pointer; }
.detail-thumbs button.active { border-color: var(--wine); }
.detail-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.image-viewer-overlay { position: fixed; z-index: 100; inset: 0; display: grid; grid-template-columns: 78px minmax(0, 1fr) 78px; align-items: center; gap: 12px; padding: 30px; background: rgba(19,12,13,.94); }
.image-viewer-overlay figure { min-width: 0; max-width: 100%; margin: 0; text-align: center; }
.image-viewer-overlay img { max-width: 100%; max-height: calc(100vh - 110px); object-fit: contain; border-radius: 12px; background: white; box-shadow: 0 18px 45px rgba(0,0,0,.35); }
.image-viewer-overlay figcaption { margin-top: 12px; color: white; font-size: 14px; }
.image-viewer-overlay figcaption span { opacity: .75; }
.image-viewer-close, .image-viewer-nav { border: 0; color: white; background: rgba(255,255,255,.12); cursor: pointer; }
.image-viewer-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50%; font-size: 32px; line-height: 1; }
.image-viewer-nav { width: 54px; height: 78px; justify-self: center; border-radius: 999px; font-size: 54px; line-height: 1; }
.image-viewer-close:hover, .image-viewer-nav:hover { background: rgba(255,255,255,.22); }
.detail-info { padding: 4px 0; }
.detail-info h1 { margin: 0 0 12px; font-size: clamp(30px, 3.2vw, 46px); line-height: 1.08; }
.detail-info hr { margin: 22px 0; border: 0; border-top: 1px solid var(--line); }
.detail-rating { display: flex; align-items: center; gap: 10px; margin-top: 14px; color: var(--gold); }
.detail-rating strong { color: var(--ink); font-size: 13px; }
.detail-price-row { display: flex; align-items: baseline; gap: 12px; margin-bottom: 7px; }
.detail-price-row > span { color: #d92345; font-size: 30px; font-weight: 300; }
.detail-price-row strong { color: var(--ink); font-size: 42px; font-weight: 500; }
.price-with-info { align-items: center; }
.price-info-wrap { position: relative; display: inline-flex; align-items: center; }
.price-info-button { width: 20px; height: 20px; display: inline-grid; place-items: center; border: 1.5px solid #7c7275; border-radius: 50%; color: #53494c; background: white; cursor: help; font: 700 13px/1 "DM Sans", sans-serif; }
.price-info-popover { position: absolute; z-index: 45; top: calc(100% + 12px); left: 50%; width: min(330px, calc(100vw - 34px)); padding: 18px 20px; border: 1px solid var(--line); border-radius: 2px; color: var(--ink); background: white; box-shadow: 0 16px 38px rgba(34,22,24,.16); opacity: 0; pointer-events: none; transform: translate(-50%, -4px); transition: opacity .16s ease, transform .16s ease; }
.price-info-popover::before { position: absolute; top: -9px; left: 50%; width: 16px; height: 16px; content: ""; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: white; transform: translateX(-50%) rotate(45deg); }
.price-info-wrap:hover .price-info-popover, .price-info-wrap:focus-within .price-info-popover { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.price-info-popover > strong { display: block; margin-bottom: 14px; font-size: 16px; text-transform: uppercase; letter-spacing: .08em; }
.price-info-popover span { display: flex; justify-content: space-between; gap: 20px; padding: 8px 0; color: var(--muted); font-size: 14px; }
.price-info-popover em { font-style: normal; }
.price-info-popover b { color: var(--ink); font-weight: 700; white-space: nowrap; }
.price-info-popover .final { margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink); font-weight: 800; }
.detail-mrp { margin: 0 0 10px; color: var(--muted); }
.detail-offers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 20px 0; }
.detail-offers article { min-height: 105px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
.detail-offers strong, .detail-offers span { display: block; }
.detail-offers span { margin-top: 7px; color: var(--muted); font-size: 13px; line-height: 1.35; }
.detail-offers, .detail-specs.legacy-detail-specs { display: none; }
.detail-specifications { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 22px; margin-top: 22px; }
.detail-specifications div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.detail-specifications dt { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.detail-specifications dd { margin: 5px 0 0; line-height: 1.45; }
.detail-specifications div:last-child { grid-column: 1 / -1; }
.detail-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin-top: 18px; }
.detail-specs div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.detail-specs dt { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.detail-specs dd { margin: 5px 0 0; }
.detail-buy-box { position: sticky; top: 122px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 10px 30px rgba(36,20,22,.06); }
.low-stock-alert { margin: 4px 0 10px; padding: 9px 11px; border: 1px solid rgba(217,35,69,.18); border-radius: 12px; color: #b51d38; background: #fff3f5; font-size: 13px; font-weight: 800; }
.detail-buy-price { margin-bottom: 12px; color: var(--ink); font-size: 34px; }
.stock-text { color: #087b22; font-size: 20px; font-weight: 700; }
.detail-buy-box label { display: grid; gap: 7px; margin: 15px 0; color: var(--muted); font-size: 13px; font-weight: 800; }
.detail-buy-box select { width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.detail-buy-box .primary-button, .detail-buy-box .buy-now-button { width: 100%; margin-top: 10px; }
.buy-now-button { min-height: 48px; padding: 13px 22px; border: 0; border-radius: 99px; color: #2b1606; background: #ffb020; cursor: pointer; font-weight: 800; }
.primary-button:disabled, .buy-now-button:disabled { opacity: .55; cursor: not-allowed; }
.detail-safe-list { display: grid; gap: 9px; margin-top: 18px; color: var(--muted); font-size: 13px; }
.quantity-stepper { display: grid; grid-template-columns: 48px 1fr 48px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.quantity-stepper button { border: 0; background: #fff8f0; color: var(--wine); cursor: pointer; font-size: 22px; }
.quantity-stepper input { width: 100%; min-height: 46px; border: 0; border-inline: 1px solid var(--line); background: white; color: var(--ink); text-align: center; font: 800 16px "DM Sans", sans-serif; }
.quantity-stepper input::-webkit-outer-spin-button, .quantity-stepper input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
.detail-floating-actions { position: fixed; z-index: 45; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(120px, auto); gap: 10px; align-items: center; padding: 8px clamp(16px, 6vw, 90px); border-top: 1px solid rgba(114,47,55,.14); background: rgba(255,253,249,.96); box-shadow: 0 -10px 28px rgba(36,20,22,.11); backdrop-filter: blur(16px); }
.floating-product-summary { min-width: 0; color: var(--wine); }
.floating-product-summary strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: "Playfair Display", serif; font-size: 16px; }
.detail-floating-actions .primary-button { min-height: 40px; margin: 0; padding-inline: 24px; font-size: 13px; }
.policy-strip { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); background: white; }
.policy-strip div { padding: 30px; text-align: center; }
.policy-strip div + div { border-left: 1px solid var(--line); }
.policy-strip strong { display: block; margin-bottom: 5px; font-family: "Playfair Display"; }
.policy-strip span { color: var(--muted); font-size: 13px; }
.contact-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 22px; align-items: start; }
.contact-columns .content-card { max-width: none; }
.supplier-page { padding: 0; background: #0b1421; }
.supplier-hero { display: grid; grid-template-columns: minmax(320px, .95fr) minmax(420px, .75fr); min-height: 720px; padding: clamp(45px, 7vw, 90px); gap: clamp(28px, 5vw, 70px); align-items: center; background: linear-gradient(90deg, rgba(8,16,28,.55), rgba(8,16,28,.92)), url("https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=1800&q=82") center/cover; }
.supplier-copy { max-width: 680px; color: white; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.supplier-copy h1 { margin: 0 0 18px; font-size: clamp(42px, 5vw, 70px); line-height: 1; }
.supplier-copy p { max-width: 680px; font-size: 18px; line-height: 1.55; }
.supplier-form-panel { padding: clamp(26px, 4vw, 45px); color: white; background: rgba(43,42,39,.92); box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.supplier-form-panel h2 { margin: 0 0 14px; font-size: clamp(26px, 3vw, 36px); }
.supplier-form-panel > p { margin: 0 0 22px; font-weight: 700; }
.supplier-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.supplier-form label { display: grid; gap: 7px; color: white; font-weight: 700; }
.supplier-form input, .supplier-form textarea { width: 100%; padding: 15px 16px; border: 0; background: white; color: var(--ink); outline: none; font: inherit; }
.supplier-form textarea { min-height: 120px; resize: vertical; }
.supplier-form .wide { grid-column: 1 / -1; }
.supplier-form .supplier-consent { display: flex; align-items: flex-start; gap: 10px; line-height: 1.5; font-size: 13px; }
.supplier-form .supplier-consent input { width: auto; margin-top: 4px; }
.supplier-form .primary-button { justify-self: start; border-radius: 3px; background: #de3333; border-color: #de3333; text-transform: uppercase; }
.supplier-form .form-error { grid-column: 1 / -1; margin: 0; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.testimonial-carousel { overflow: hidden; max-width: min(760px, 100%); margin: 0 auto; border-radius: var(--radius); }
.testimonial-track { display: flex; width: max-content; transform: translateX(0); }
.testimonial-card { flex: 0 0 min(760px, calc(100vw - 44px)); min-height: 210px; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 1px 0 var(--line); }
.testimonial-card p { color: var(--muted); line-height: 1.65; }
.testimonial-card strong { color: var(--wine); }
.testimonial-stars { color: var(--gold); letter-spacing: 2px; }
@keyframes testimonialScroll {
  from { transform: translateX(calc(-1 * min(760px, calc(100vw - 44px)) * var(--testimonial-count))); }
  to { transform: translateX(0); }
}
.mini-button { min-height: 34px; padding: 8px 11px; border: 1px solid var(--wine); border-radius: 99px; color: white; background: var(--wine); cursor: pointer; font-size: 12px; font-weight: 700; }
.mini-button.danger { color: #a02424; border-color: #e9c5c5; background: #fff3f3; }
.admin-action-row { display: flex; flex-wrap: wrap; gap: 7px; }
.testimonials-table td:nth-child(4) { max-width: 320px; line-height: 1.45; }
.admin-toolbar { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 18px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.admin-toolbar input, .admin-toolbar select { min-height: 44px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 12px; background: white; outline: none; }
.admin-toolbar input { flex: 1 1 320px; }
.admin-toolbar select { flex: 0 1 280px; }
.clickable-row { cursor: pointer; }
.clickable-row:hover td { background: #fff4e8; }
.customer-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.customer-detail-grid .content-card, .admin-notes-card { max-width: none; padding: 26px; }
.admin-back-button { margin-bottom: 14px; }
.admin-key-values { display: grid; gap: 12px; margin: 16px 0 20px; }
.admin-key-values div { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.admin-key-values dt { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.admin-key-values dd { margin: 0; overflow-wrap: anywhere; }
.support-note-list { display: grid; gap: 12px; margin-top: 18px; }
.support-note { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); }
.support-note p { margin: 0 0 7px; color: var(--ink); }
.support-note small { color: var(--muted); }
.admin-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; }
.payment-date-group { margin-bottom: 28px; }
.payment-date-group .admin-section-title { margin: 0 0 12px; font-size: 18px; }
.payment-month-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-category-card { min-height: 150px; display: grid; align-content: center; gap: 7px; padding: 22px; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); background: white; cursor: pointer; text-align: left; box-shadow: 0 1px 0 var(--line); }
.admin-category-card:hover { border-color: var(--wine); transform: translateY(-1px); }
.admin-category-card span { color: var(--wine); font-weight: 800; }
.admin-category-card strong { font: 700 42px "Playfair Display"; }
.admin-category-card small { color: var(--muted); }
.admin-category-card.active { border-color: var(--wine); background: #fff4e8; }
.admin-banner-panel { max-width: none; margin-bottom: 22px; }
.notification-admin-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: 18px; align-items: start; }
.admin-notification-panel { max-width: none; padding: 26px; }
.notification-channel-row { display: flex; flex-wrap: wrap; gap: 14px; padding: 12px 0; }
.notification-channel-row label { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.notification-channel-row input { width: auto; }
.notification-type-list { display: grid; gap: 10px; }
.notification-type-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: #fffaf4; }
.notification-type-list strong { display: block; margin-bottom: 3px; }
.notification-type-list p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.notification-type-list span { min-width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 999px; color: white; background: var(--wine); font-size: 12px; font-weight: 800; }
.delivery-card { max-width: none; margin-bottom: 18px; padding: 24px; }
.delivery-card-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.delivery-card-head h2 { margin: 0 0 6px; font-size: 28px; }
.delivery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin: 14px 0; }
.delivery-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.delivery-grid input, .delivery-grid select { width: 100%; padding: 12px 13px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: white; outline: none; text-transform: none; letter-spacing: 0; font-weight: 500; }
.delivery-summary { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.delivery-summary span { padding: 9px 12px; border-radius: 99px; background: var(--cream); color: var(--muted); font-size: 12px; }
.delivery-card details { margin-top: 12px; padding: 12px; border: 1px dashed var(--line); border-radius: 14px; background: #fffaf4; }
.delivery-card summary { cursor: pointer; font-weight: 800; color: var(--wine); }
.delivery-result { min-height: 20px; margin-bottom: 0; }
.warning-text { color: #9a5b00; background: #fff7e8; border: 1px solid #f0d7a5; border-radius: 10px; padding: 10px 12px; }
.clickable-table tbody tr { cursor: pointer; }
.compact-table { margin-top: 12px; }
.order-action-list { display: grid; gap: 10px; margin: 14px 0 24px; }
.order-action-list article { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: #fffaf4; }
.order-action-list strong { display: block; margin-bottom: 3px; }
.order-action-list p { margin: 0; color: var(--muted); font-size: 12px; }
.order-detail-result { min-height: 18px; }
.clickable-coupon { width: 100%; border: 0; cursor: pointer; text-align: left; }
.clickable-coupon:hover, .clickable-voucher:hover { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(54,30,31,.08); }
.clickable-voucher { cursor: pointer; }
.voucher-claim-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.voucher-rule-card { max-width: none; margin-bottom: 18px; padding: 24px; }
.voucher-rule-card .admin-toolbar { align-items: end; }
.voucher-rule-card .admin-toolbar label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.voucher-rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.voucher-rule-grid article { display: grid; gap: 4px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: #fffaf4; }
.voucher-rule-grid span { color: var(--muted); font-size: 12px; }
.voucher-admin-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; }
.admin-id-search { display: flex; justify-content: flex-end; margin: -4px 0 14px; }
.admin-id-search label { position: relative; width: min(100%, 280px); display: block; }
.admin-id-search input { width: 100%; min-height: 34px; padding: 7px 12px 7px 34px; border: 1px solid var(--border); border-radius: 999px; background: #fff; font-size: 12px; }
.voucher-month-group { margin-bottom: 28px; }
.voucher-month-group .admin-table { margin-top: 0; }
.voucher-month-total td { background: #fffaf4; border-top: 2px solid var(--line); font-weight: 700; }
.banner-admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.banner-admin-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 1px 0 var(--line); }
.banner-admin-card img { height: 150px; object-fit: cover; background: var(--cream); }
.banner-admin-card > div { padding: 14px; }
.banner-admin-card h3 { margin: 0 0 5px; font-size: 20px; }
.banner-admin-card p { margin: 0 0 10px; color: var(--muted); line-height: 1.45; }
.admin-product-form { max-width: none; margin-top: 12px; }
.admin-product-form .profile-grid { align-items: start; }
.admin-product-form input, .admin-product-form textarea, .admin-product-form select { width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; outline: none; background: white; }
.admin-product-form textarea { min-height: 95px; resize: vertical; }
.admin-product-form label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: 9px; padding: 13px 0; }
.admin-product-form input[type="checkbox"] { width: auto; }
.page { min-height: 70vh; padding: 56px clamp(20px, 6vw, 90px) 110px; background: var(--cream); }
.page-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 40px; }
.search-box { display: flex; gap: 8px; padding: 8px 8px 8px 18px; border: 1px solid var(--line); border-radius: 99px; background: white; }
.search-box input { width: min(320px, 48vw); border: 0; outline: 0; background: transparent; }
.catalog-filter-bar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; align-items: center; width: min(100%, 560px); margin-left: auto; padding: 7px; border: 1px solid var(--line); border-radius: 999px; background: white; box-shadow: 0 1px 0 rgba(36,20,22,.04); }
.catalog-filter-bar label { display: block; color: var(--muted); font-size: 0; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.catalog-filter-bar label span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.catalog-filter-bar input { width: 88px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 999px; outline: 0; background: #fffdfa; color: var(--ink); font: 600 13px "DM Sans", sans-serif; }
.catalog-filter-bar .catalog-search-field input { width: 150px; }
.catalog-filter-bar input:focus { border-color: rgba(114,47,55,.45); box-shadow: 0 0 0 3px rgba(114,47,55,.08); }
.catalog-filter-bar button { min-height: 36px; padding: 9px 13px; white-space: nowrap; font-size: 12px; }
.catalog-filter-bar .catalog-icon-button { width: 36px; min-width: 36px; height: 36px; min-height: 36px; display: inline-grid; place-items: center; padding: 0; border-radius: 50%; font-size: 17px; line-height: 1; }
.empty { padding: 70px 20px; border: 1px dashed #d6cbc1; border-radius: var(--radius); background: rgba(255,255,255,.5); text-align: center; }
.empty h2 { margin-bottom: 8px; }
.empty p { color: var(--muted); }
.drawer { position: fixed; z-index: 50; top: 0; right: 0; width: min(460px, 94vw); height: 100%; padding: 28px; background: var(--paper); box-shadow: var(--shadow); transform: translateX(105%); transition: transform .3s ease; }
.drawer.open { transform: translateX(0); }
.drawer-head { display: flex; align-items: start; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { margin: 0; font-size: 31px; }
.close, .dialog-close { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; background: white; cursor: pointer; font-size: 24px; }
.drawer-body { height: calc(100% - 92px); overflow: auto; padding-top: 18px; }
.cart-line { display: grid; grid-template-columns: 26px 68px 1fr; gap: 12px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--line); }
.cart-line.not-selected { opacity: .62; }
.cart-select { display: grid; place-items: center; min-height: 88px; }
.cart-select input { width: 18px; height: 18px; accent-color: var(--wine); cursor: pointer; }
.cart-line img { width: 68px; height: 88px; border-radius: 12px; object-fit: cover; }
.cart-line h4 { margin: 3px 0 6px; font-family: "Playfair Display"; font-size: 16px; }
.cart-line p { margin: 0; color: var(--muted); font-size: 13px; }
.cart-line-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.cart-quantity-stepper { display: inline-grid; grid-template-columns: 32px 38px 32px; min-height: 34px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: white; }
.cart-quantity-stepper button { border: 0; background: #fff8f0; color: var(--wine); cursor: pointer; font-size: 17px; line-height: 1; }
.cart-quantity-stepper span { display: grid; place-items: center; border-inline: 1px solid var(--line); font-weight: 700; font-size: 14px; }
.cart-delete-button { align-self: center; min-height: 32px; padding: 0 12px; border: 1px solid rgba(114,47,55,.2); border-radius: 999px; background: white; color: var(--wine); cursor: pointer; font-size: 12px; font-weight: 700; }
.cart-delete-button:hover { background: #fff3f0; }
.cart-summary { margin-top: 25px; padding: 22px; border-radius: 18px; background: var(--cream); }
.summary-row { display: flex; justify-content: space-between; margin: 9px 0; color: var(--muted); }
.summary-row.discount { color: var(--success); }
.summary-row.total { padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink); font-size: 18px; font-weight: 700; }
.cart-voucher-prompt { margin: 13px 0 0; padding: 11px 12px; border: 1px solid rgba(114,47,55,.18); border-radius: 12px; color: var(--wine); background: rgba(255,255,255,.72); font-size: 12px; font-weight: 700; line-height: 1.35; }
.cart-summary .primary-button { width: 100%; margin-top: 15px; }
.scrim { position: fixed; z-index: 40; inset: 0; visibility: hidden; background: rgba(29,16,18,.4); opacity: 0; transition: opacity .2s; }
.scrim.open { visibility: visible; opacity: 1; }
dialog { width: min(450px, calc(100vw - 32px)); padding: 38px; border: 0; border-radius: var(--radius); box-shadow: var(--shadow); }
dialog:has(#registerPanel:not([hidden])), dialog:has(#forgotPanel:not([hidden])) { width: min(560px, calc(100vw - 32px)); max-height: 90vh; overflow: auto; }
dialog::backdrop { background: rgba(29,16,18,.52); backdrop-filter: blur(4px); }
dialog h2 { margin: 0 0 8px; font-size: 34px; }
.dialog-close { position: absolute; top: 18px; right: 18px; }
.muted { color: var(--muted); }
.form-stack { display: grid; gap: 16px; margin-top: 25px; }
.form-stack label { display: grid; gap: 7px; font-size: 13px; font-weight: 600; }
.form-stack input, .form-stack textarea, .form-stack select { width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; outline: none; background: white; }
.form-stack textarea { min-height: 90px; resize: vertical; }
.form-stack input:focus, .form-stack textarea:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(114,47,55,.09); }
.form-stack input::placeholder, .form-stack textarea::placeholder { color: #b8b0b2; opacity: 1; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 48px; }
.password-toggle { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); width: 34px; height: 34px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); cursor: pointer; font-size: 18px; line-height: 1; }
.password-toggle:hover, .password-toggle[aria-pressed="true"] { color: var(--wine); background: rgba(114,47,55,.06); }
.confirm-dialog { width: min(420px, calc(100vw - 32px)); text-align: center; }
.confirm-dialog p { margin: 0 0 24px; color: var(--muted); line-height: 1.6; }
.confirm-dialog .primary-button { width: 100%; }
.confirm-dialog .button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.confirm-dialog .button-row .primary-button,
.confirm-dialog .button-row .secondary-button { width: 100%; }
.voucher-consent-dialog { text-align: left; }
.voucher-consent-dialog h2 { text-align: center; margin-bottom: 16px; }
.consent-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 24px;
  color: var(--muted);
  line-height: 1.55;
  font-size: 14px;
  cursor: pointer;
  text-align: left;
}
.consent-check input {
  margin-top: 3px;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  accent-color: var(--wine, #722f37);
}
.consent-check span { flex: 1; }
.voucher-consent-dialog .primary-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.order-status-grid.compact-order-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.order-status-grid.compact-order-grid .admin-category-card { min-height: 68px; padding: 10px 12px; border-radius: 14px; }
.order-status-grid.compact-order-grid .admin-category-card span { font-size: 11px; line-height: 1.3; }
.order-status-grid.compact-order-grid .admin-category-card strong { font-size: 22px; }
.order-status-grid.compact-order-grid .admin-category-card small { display: none; }
.delivery-page-compact .admin-page-head h1 { font-size: 24px; }
.delivery-page-compact .admin-page-head .admin-count { font-size: 13px; }
.delivery-page-compact .delivery-card { padding: 14px 16px; margin-bottom: 12px; }
.delivery-page-compact .delivery-card h2 { font-size: 18px; margin: 0 0 8px; }
.delivery-page-compact .delivery-card-head h2 { font-size: 20px; }
.delivery-page-compact .delivery-summary { gap: 8px; font-size: 13px; }
.delivery-page-compact .delivery-list-table td,
.delivery-page-compact .delivery-list-table th { padding: 8px 10px; font-size: 13px; }
.delivery-status-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.admin-page-head-compact { margin-bottom: 18px; }
.admin-page-head-compact h1 { font-size: 24px; }
.admin-page-head-compact .eyebrow { font-size: 11px; }
.admin-page-head-compact .admin-count { font-size: 13px; }
.admin-toolbar-plain { padding: 0; border: none; border-radius: 0; background: transparent; margin-bottom: 12px; }
.admin-toolbar-compact input,
.admin-toolbar-compact select { min-height: 36px; padding: 8px 12px; font-size: 13px; border-radius: 10px; }
.admin-toolbar-compact select { flex: 0 1 220px; }
.admin-search-wrap { position: relative; flex: 1 1 240px; display: block; }
.admin-search-wrap input { width: 100%; padding-left: 36px; }
.admin-search-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 15px; line-height: 1; pointer-events: none; }
.admin-sync-form { align-items: center; }
.admin-sync-form .primary-button { min-height: 36px; padding: 8px 16px; font-size: 13px; }
.admin-page-compact-boxes .admin-category-card { min-height: 88px; padding: 12px 14px; border-radius: 14px; }
.admin-page-compact-boxes .admin-category-card strong { font-size: 28px; }
.admin-page-compact-boxes .admin-category-card span { font-size: 12px; }
.admin-page-compact-boxes .admin-category-card small { font-size: 11px; }
.admin-page-compact-boxes .metric-grid { gap: 10px; margin-bottom: 14px; }
.admin-page-compact-boxes .metric-grid article { padding: 12px 14px; border-radius: 14px; }
.admin-page-compact-boxes .metric-grid h3 { font-size: 12px; margin-bottom: 4px; }
.admin-page-compact-boxes .metric-grid p { font-size: 22px; }
.admin-page-compact-boxes .report-grid { gap: 10px; margin-top: 14px; }
.admin-page-compact-boxes .report-grid article { padding: 14px; border-radius: 14px; }
.admin-page-compact-boxes .report-grid h3 { font-size: 16px; margin-bottom: 8px; }
.admin-page-compact-boxes .report-grid p { font-size: 13px; margin: 4px 0; }
.admin-page-compact-boxes .banner-admin-grid { gap: 10px; }
.admin-page-compact-boxes .banner-admin-card img { height: 110px; }
.admin-page-compact-boxes .banner-admin-card > div { padding: 10px; }
.admin-page-compact-boxes .banner-admin-card h3 { font-size: 16px; }
.admin-page-compact-boxes .banner-admin-card p { font-size: 12px; margin-bottom: 6px; }
.admin-page-compact-boxes .content-card.admin-banner-panel { padding: 14px 16px; }
.admin-page-compact-boxes .content-card.admin-banner-panel h2 { font-size: 18px; }
.media-file-list { display: grid; gap: 8px; margin-top: 10px; }
.media-file-row { display: grid; grid-template-columns: 48px auto 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--cream); }
.media-file-thumb { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; background: white; border: 1px solid var(--line); }
.media-file-thumb.video-thumb { display: grid; place-items: center; color: var(--wine); font-size: 18px; }
.media-display-label { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
.media-file-name { font-size: 13px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.media-delete-btn { width: 30px; height: 30px; border: 0; border-radius: 999px; background: rgba(160,36,36,.1); color: #a02424; font-size: 20px; line-height: 1; cursor: pointer; }
.media-delete-btn:hover { background: rgba(160,36,36,.18); }
.product-media-block { display: grid; gap: 8px; }
.product-media-block small { margin-top: 0; }
.error { min-height: 20px; margin: 0; color: #a02424; font-size: 13px; }
.text-button { display: block; margin: 16px auto 0; border: 0; background: none; color: var(--wine); cursor: pointer; text-decoration: underline; }
.auth-links { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; }
.auth-links button,
.auth-link-button {
  padding: 10px 14px;
  border: 1px solid var(--wine);
  border-radius: 999px;
  color: var(--wine);
  background: #fff;
  cursor: pointer;
  font-weight: 600;
  text-decoration: none;
}
.auth-links button:hover,
.auth-link-button:hover { background: color-mix(in srgb, var(--wine) 8%, white); }
.verify-block { display: grid; gap: 9px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); }
.verify-block .secondary-button { min-height: 40px; padding: 9px 14px; justify-self: start; }
.otp-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.verify-status { min-height: 17px; color: var(--muted); }
.verify-status.success { color: var(--success); font-weight: 700; }
.toast { position: fixed; z-index: 80; right: 24px; bottom: 24px; max-width: 350px; padding: 14px 18px; color: white; border-radius: 12px; background: var(--ink); box-shadow: var(--shadow); opacity: 0; transform: translateY(14px); pointer-events: none; transition: .25s; }
.toast.show { opacity: 1; transform: translateY(0); }
.order-card, .coupon-card, .voucher-card { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: white; }
.order-card-body { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; }
.order-product-preview { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; min-width: 92px; }
.order-product-thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 14px; border: 1px solid var(--line); background: var(--cream); }
.order-product-thumb.placeholder { display: grid; place-items: center; color: var(--wine); font-weight: 800; }
.order-product-more { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 14px; background: var(--cream); color: var(--muted); font-weight: 700; }
.order-product-copy { flex: 1 1 100%; }
.order-product-copy strong { display: block; margin-bottom: 4px; }
.order-product-copy p { margin: 0; font-size: 13px; line-height: 1.45; }
.order-card-main { min-width: 0; }
.order-action-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.order-action-row .mini-button[disabled] { opacity: .55; cursor: not-allowed; }
.stack { display: grid; gap: 16px; }
.order-top, .card-row { display: flex; justify-content: space-between; gap: 18px; align-items: start; }
.status { display: inline-block; padding: 6px 10px; border-radius: 99px; background: #e7f3eb; color: var(--success); font-size: 11px; font-weight: 700; }
.status.UPCOMING { color: #6f5a2b; background: #f7edcf; }
.status.EXPIRED { color: #766d6f; background: #eee9e7; }
.status.USED { color: #4f4876; background: #ebe8f7; }
.voucher-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.voucher-card { position: relative; overflow: hidden; }
.voucher-card::after { position: absolute; top: -25px; right: -25px; width: 80px; height: 80px; content: ""; border-radius: 50%; background: rgba(114,47,55,.07); }
.voucher-card h3 { margin: 10px 0 5px; font-size: 24px; }
.dashboard-shell { display: grid; grid-template-columns: 230px 1fr; min-height: calc(100vh - 109px); }
.admin-sidebar { position: sticky; top: 109px; align-self: start; min-height: calc(100vh - 109px); padding: 18px 14px; color: white; background: var(--wine-dark); }
.admin-sidebar h2 { margin: 0 10px 16px; font-size: 20px; }
.admin-sidebar button { display: block; width: 100%; margin: 2px 0; padding: 8px 10px; color: rgba(255,255,255,.8); border: 0; border-radius: 8px; background: none; text-align: left; font-size: 14px; line-height: 1.15; }
.admin-sidebar button.active { color: white; background: rgba(255,255,255,.12); }
.admin-sidebar button { cursor: pointer; }
.admin-sidebar button:hover { color: white; background: rgba(255,255,255,.08); }
.admin-sidebar .admin-signout { margin-top: 14px; color: #f0b5b5; border-top: 1px solid rgba(255,255,255,.12); border-radius: 0; }
.admin-main { padding: 40px; background: #f7f3ef; }
.admin-form { display: grid; gap: 14px; margin: 0 0 22px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.admin-form.compact-form { grid-template-columns: minmax(260px, 1fr) auto; align-items: end; }
.admin-form label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.admin-form input { width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; outline: none; background: white; }
.admin-form input:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(114,47,55,.09); }
.admin-form .form-hint { grid-column: 1 / -1; margin: -2px 0 0; color: var(--muted); font-size: 13px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.metric { padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.metric span { color: var(--muted); font-size: 12px; }
.metric strong { display: block; margin-top: 9px; font: 700 29px "Playfair Display"; }
.admin-table { width: 100%; margin-top: 30px; border-collapse: collapse; border-radius: 18px; overflow: hidden; background: white; }
.admin-table th, .admin-table td { padding: 15px 18px; border-bottom: 1px solid var(--line); text-align: left; font-size: 13px; }
.admin-table th { color: var(--muted); background: #fcfaf7; }
.admin-table tbody tr:hover { background: #fffaf4; }
.order-stage-label { color: var(--ink); font-weight: 600; text-transform: lowercase; }
.order-tracking-panel { margin-top: 18px; }
.order-tracking-panel summary { cursor: pointer; font-weight: 600; margin-bottom: 10px; }
.tracking-details { margin-top: 18px; }
.tracking-details.embedded-tracking-details { margin-top: 16px; padding-top: 4px; border-top: 1px solid rgba(114, 47, 55, 0.12); }
.tracking-note { margin: 12px 0 0; }
.tracking-timeline { list-style: none; margin: 16px 0 0; padding: 0; }
.tracking-event { position: relative; padding: 0 0 18px 22px; border-left: 2px solid rgba(114, 47, 55, 0.18); }
.tracking-event:last-child { padding-bottom: 0; }
.tracking-event::before { content: ""; position: absolute; left: -6px; top: 4px; width: 10px; height: 10px; border-radius: 999px; background: var(--brand, #722f37); }
.tracking-event-meta { color: var(--muted, #6b6b6b); font-size: 0.92rem; margin-bottom: 4px; }
.tracking-timeline-host { margin-top: 16px; }
.admin-loading, .admin-empty { padding: 70px 25px; border: 1px dashed #d6cbc1; border-radius: 18px; background: white; text-align: center; }
.admin-empty h2 { margin: 0 0 8px; }
.admin-empty p { color: var(--muted); }
.admin-page-head { margin-bottom: 28px; }
.admin-count { padding: 8px 13px; border-radius: 99px; color: var(--wine); background: #f0dfe1; font-size: 12px; font-weight: 700; }
.admin-section-title { margin-top: 35px; }
.report-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 28px; }
.report-grid article { padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.report-grid h3 { margin-top: 0; font-size: 21px; }
.report-grid p { color: var(--muted); }
.mobile-nav { display: none; }
.site-footer { color: rgba(255,255,255,.82); background: #25171a; }
.footer-grid { display: grid; grid-template-columns: 1.35fr repeat(4, 1fr); gap: clamp(18px, 4vw, 46px); padding: 34px clamp(22px, 6vw, 90px) 24px; }
.footer-brand img { width: 118px; height: 78px; object-fit: contain; border-radius: 12px; background: white; }
.footer-brand p { max-width: 330px; margin: 10px 0 0; color: rgba(255,255,255,.62); line-height: 1.45; font-size: 13px; }
.site-footer h3 { margin: 0 0 9px; color: white; font: 600 17px "Playfair Display"; }
.site-footer button, .site-footer a { display: block; padding: 3px 0; border: 0; color: rgba(255,255,255,.7); background: none; cursor: pointer; text-align: left; font-size: 13px; line-height: 1.25; text-decoration: none; }
.site-footer button:hover, .site-footer a:hover { color: #efc86f; }
.customer-care { margin: 8px 0 0; line-height: 1.35; font-size: 13px; }
.customer-care strong { color: white; }
.customer-care a { color: #efc86f; text-decoration: none; }
.customer-care small { color: rgba(255,255,255,.45); }
.footer-bottom { display: flex; justify-content: space-between; gap: 18px; padding: 10px clamp(22px, 6vw, 90px); border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.5); font-size: 11px; }

@media (max-width: 900px) {
  .desktop-nav, .icon-button { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding: 70px 26px; }
  .hero-image { min-height: 430px; }
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .product-grid, .voucher-grid { grid-template-columns: repeat(2, 1fr); }
  .catalog-filter-bar { justify-content: flex-start; width: 100%; margin: 16px 0 0; border-radius: 18px; }
  .catalog-filter-bar .catalog-search-field input { width: min(220px, 100%); }
  .product-detail-shell { grid-template-columns: 1fr; }
  .detail-main-image { height: 520px; min-height: 360px; }
  .detail-buy-box { position: static; }
  .detail-floating-actions { grid-template-columns: 1fr 118px; padding-inline: 18px; }
  .floating-product-summary strong { font-size: 15px; }
  .supplier-hero { grid-template-columns: 1fr; padding: 42px 22px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .order-status-grid.compact-order-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .delivery-status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .notification-admin-grid { grid-template-columns: 1fr; }
  .delivery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .voucher-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .banner-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: sticky; top: 109px; z-index: 10; display: flex; min-height: auto; padding: 12px 16px; overflow-x: auto; align-items: center; gap: 5px; }
  .admin-sidebar h2 { flex: 0 0 auto; margin: 0 18px 0 0; font-size: 19px; }
  .admin-sidebar button { width: auto; flex: 0 0 auto; margin: 0; white-space: nowrap; }
  .admin-sidebar .admin-signout { margin: 0 0 0 12px; border-top: 0; border-left: 1px solid rgba(255,255,255,.12); }
  .report-grid { grid-template-columns: 1fr; }
  .customer-detail-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
  body { padding-bottom: 66px; }
  .announcement { height: 54px; font-size: 12px; line-height: 1.35; }
  .announcement-track { animation-duration: 58s; }
  .announcement-track span { height: 54px; padding: 0 28px; }
  .site-header { height: 64px; padding: 0 15px; }
  .mobile-site-menu { position: relative; display: block; }
  .mobile-site-menu summary { width: 38px; height: 38px; display: grid; place-items: center; cursor: pointer; list-style: none; border-radius: 50%; font-size: 22px; }
  .mobile-site-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu-panel { position: absolute; z-index: 50; top: 48px; left: 0; width: 230px; padding: 12px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); box-shadow: var(--shadow); }
  .mobile-menu-panel button, .mobile-menu-panel strong { display: block; width: 100%; padding: 10px 12px; border: 0; background: none; text-align: left; font-family: "Poppins", "DM Sans", sans-serif; font-size: 14px; }
  .mobile-menu-panel button { cursor: pointer; }
  .mobile-menu-panel strong { color: var(--wine); font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
  .mobile-menu-panel strong + button, .mobile-menu-panel strong + button + button, .mobile-menu-panel strong + button + button + button { padding-left: 28px; }
  .brand img { width: 72px; height: 54px; }
  .account-button { max-width: 72px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .promo-carousel { --promo-width: 100%; --promo-gap: 0px; padding: 10px 0 0; }
  .promo-track { height: 220px; }
  .promo-slide { padding: 28px; }
  .promo-slide strong { font-size: clamp(22px, 7vw, 36px); line-height: 1.14; }
  .promo-slide span { font-size: 11px; }
  .promo-slide.offer { background-position: 60% top !important; }
  .promo-slide.offer strong { font-size: clamp(18px, 5.6vw, 30px); }
  .detail-gallery { display: block; }
  .detail-main-image { height: 390px; min-height: 300px; }
  .detail-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; max-height: none; margin-top: 14px; overflow: visible; padding-right: 0; }
  .detail-thumbs button { height: 72px; }
  .detail-offers, .detail-specs, .detail-specifications { grid-template-columns: 1fr; }
  .supplier-form { grid-template-columns: 1fr; }
  .supplier-form-panel { padding: 24px; }
  @keyframes promoScroll {
    0%, 13% { transform: translateX(0); }
    20%, 33% { transform: translateX(calc(-1 * (var(--promo-width) + var(--promo-gap)))); }
    40%, 53% { transform: translateX(calc(-2 * (var(--promo-width) + var(--promo-gap)))); }
    60%, 73% { transform: translateX(calc(-3 * (var(--promo-width) + var(--promo-gap)))); }
    80%, 93% { transform: translateX(calc(-4 * (var(--promo-width) + var(--promo-gap)))); }
    100% { transform: translateX(0); }
  }
  .section, .page { padding: 54px 16px 85px; }
  .collection-section { padding-top: 20px; }
  .section-head, .page-head { display: block; }
  .section-head p, .page-head .search-box { margin-top: 14px; }
  .catalog-filter-bar { gap: 7px; padding: 10px; border-radius: 18px; }
  .catalog-filter-bar input { width: 82px; }
  .catalog-filter-bar .catalog-search-field input { width: 100%; }
  .catalog-search-field { flex: 1 1 100%; }
  .category-grid { gap: 10px; }
  .category-card { min-height: 230px; }
  .category-card span { font-size: 21px; }
  .product-grid, .testimonial-grid, .contact-columns, .social-link-grid { grid-template-columns: 1fr; }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-grid .wide { grid-column: auto; }
  .order-card-body { grid-template-columns: 1fr; }
  .order-action-row .mini-button { flex: 1 1 calc(50% - 5px); }
  .media-grid { grid-template-columns: 1fr; }
  .product-media { height: 420px; }
  .policy-strip { grid-template-columns: 1fr; }
  .policy-strip div + div { border-top: 1px solid var(--line); border-left: 0; }
  .voucher-grid, .metric-grid { grid-template-columns: 1fr; }
  .admin-category-grid { grid-template-columns: 1fr; }
  .order-status-grid.compact-order-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .delivery-grid { grid-template-columns: 1fr; }
  .voucher-rule-grid { grid-template-columns: 1fr; }
  .banner-admin-grid { grid-template-columns: 1fr; }
  .admin-main { padding: 24px 16px; overflow: auto; }
  .mobile-nav { position: fixed; z-index: 30; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(3, 1fr); height: 66px; border-top: 1px solid var(--line); background: rgba(255,253,249,.96); backdrop-filter: blur(14px); }
  .mobile-nav button { display: grid; place-items: center; gap: 1px; border: 0; background: none; color: var(--muted); font-size: 10px; }
  .mobile-nav span { color: var(--wine); font-size: 20px; line-height: 1; }
  .detail-floating-actions { bottom: 66px; grid-template-columns: minmax(0, 1fr) 112px; gap: 8px; padding: 7px 10px; }
  .floating-product-summary strong { font-size: 14px; }
  .detail-floating-actions .primary-button { min-height: 38px; padding-inline: 10px; font-size: 12px; }
  .toast { right: 14px; bottom: 196px; left: 14px; }
  .footer-grid { grid-template-columns: 1fr; padding-bottom: 34px; }
  .footer-bottom { display: grid; padding-bottom: 85px; }
}
