:root{--ink:#241a1d;--muted:#75676c;--wine:#712f45;--wine-dark:#522032;--rose:#d99aaa;--blush:#f7e9e9;--cream:#fffaf6;--paper:#fff;--line:#eadfde;--success:#287a5b;--danger:#a63d40;--shadow:0 18px 50px rgba(78,37,49,.11);--radius:20px;--container:min(1180px,calc(100% - 32px))}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Segoe UI",Tahoma,Arial,sans-serif;line-height:1.65}body.no-scroll{overflow:hidden}button,input,select,textarea{font:inherit}button,a{transition:.2s ease}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.container{width:var(--container);margin-inline:auto}.skip-link{position:fixed;z-index:9999;top:8px;right:-300px;background:#fff;padding:10px 16px;border-radius:8px}.skip-link:focus{right:8px}.announcement{background:var(--wine-dark);color:#fff;text-align:center;padding:7px 16px;font-size:.82rem;letter-spacing:.02em}.site-header{position:sticky;top:0;z-index:100;background:rgba(255,250,246,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(113,47,69,.1)}.header-row{min-height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px}.brand{display:inline-flex;align-items:center;gap:9px;width:max-content}.brand-ar{font-size:2rem;font-weight:800;line-height:1;color:var(--wine)}.brand-en{font-size:.65rem;letter-spacing:.22em;color:var(--muted);writing-mode:vertical-rl}.main-nav{display:flex;align-items:center;gap:30px;justify-self:center}.main-nav a{font-weight:600;position:relative;padding:8px 0}.main-nav a:after{content:"";position:absolute;right:0;left:100%;bottom:3px;height:2px;background:var(--wine);transition:.2s}.main-nav a:hover:after,.main-nav a.active:after{left:0}.header-actions{display:flex;gap:8px;justify-self:end;direction:ltr}.icon-button{position:relative;border:0;background:transparent;color:var(--ink);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:1.55rem;cursor:pointer}.icon-button:hover{background:var(--blush);color:var(--wine)}.cart-count{position:absolute;top:-2px;right:-1px;display:grid;place-items:center;background:var(--wine);color:#fff;border:2px solid var(--cream);border-radius:50%;min-width:20px;height:20px;font-size:.67rem;font-weight:700}.mobile-menu{display:none;justify-self:start}.section{padding:72px 0}.section-soft{background:var(--blush)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.eyebrow{color:var(--wine);font-size:.78rem;font-weight:800;letter-spacing:.12em;margin:0 0 5px}.section-heading h1,.section-heading h2{font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.2;margin:0}.section-heading p{color:var(--muted);margin:.6rem 0 0}.text-link{color:var(--wine);font-weight:700}.text-link:hover{transform:translateX(-4px)}
.hero{position:relative;overflow:hidden;min-height:clamp(430px,62vw,680px);background:linear-gradient(125deg,#f8dfe2,#fff5ee)}.hero-track{display:flex;direction:ltr;transition:transform .65s cubic-bezier(.22,.7,.25,1)}.hero-slide{min-width:100%;height:clamp(430px,62vw,680px);position:relative;background-size:cover;background-position:center}.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,26,29,.08),rgba(36,26,29,.25))}.hero-fallback{display:grid;place-items:center;background:radial-gradient(circle at 25% 35%,#fff 0 8%,transparent 9%),linear-gradient(120deg,#ecc1c8,#f9e9e3 50%,#d9a5b4)}.hero-copy{position:absolute;z-index:2;inset-block-start:50%;right:max(8%,calc((100% - 1180px)/2));transform:translateY(-50%);max-width:500px;text-align:right;direction:rtl;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.18)}.hero-copy.dark{color:var(--ink);text-shadow:none}.hero-copy h1{font-size:clamp(2.5rem,7vw,5.4rem);line-height:1.04;margin:8px 0 18px}.hero-copy p{font-size:clamp(1rem,2vw,1.25rem);margin-bottom:28px}.hero-nav{position:absolute;z-index:3;inset-inline:24px;top:50%;display:flex;justify-content:space-between;pointer-events:none}.hero-nav button{pointer-events:auto;width:48px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(255,255,255,.7);cursor:pointer;font-size:1.4rem}.hero-dots{position:absolute;z-index:3;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:8px;direction:ltr}.hero-dots button{width:8px;height:8px;padding:0;border:0;border-radius:10px;background:rgba(255,255,255,.65);cursor:pointer}.hero-dots button.active{width:28px;background:#fff}.btn{border:1px solid var(--wine);background:var(--wine);color:#fff;border-radius:999px;min-height:48px;padding:10px 25px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer}.btn:hover{background:var(--wine-dark);border-color:var(--wine-dark);transform:translateY(-2px);box-shadow:0 10px 25px rgba(113,47,69,.2)}.btn-outline{background:transparent;color:var(--wine)}.btn-light{background:#fff;border-color:#fff;color:var(--wine);text-shadow:none}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-small{min-height:38px;padding:6px 16px;font-size:.88rem}.btn:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.product-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;transition:.3s ease}.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.product-media{display:block;aspect-ratio:4/4.7;background:#f4eded;overflow:hidden;position:relative}.product-media img{width:100%;height:100%;object-fit:cover;transition:.5s}.product-card:hover .product-media img{transform:scale(1.035)}.image-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#9d7f87;background:linear-gradient(145deg,#f4e6e5,#fff8f4);font-size:2.8rem}.badge{position:absolute;z-index:2;top:14px;right:14px;background:var(--wine);color:#fff;border-radius:999px;padding:5px 11px;font-size:.72rem;font-weight:700}.badge.sold{background:var(--ink)}.product-body{padding:18px}.product-category{font-size:.75rem;color:var(--muted)}.product-title{font-size:1.05rem;margin:2px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price{color:var(--wine);font-weight:800;font-size:1.12rem}.card-controls{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:15px}.quantity-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;overflow:hidden;height:43px;width:max-content}.quantity-control button{width:36px;height:100%;border:0;background:transparent;cursor:pointer;color:var(--wine);font-weight:800}.quantity-control button:hover{background:var(--blush)}.quantity-control input{width:30px;text-align:center;border:0;outline:0;background:transparent;font-weight:700;-moz-appearance:textfield}.quantity-control input::-webkit-inner-spin-button{appearance:none}.shade-select{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 12px}.add-cart{grid-column:1/-1;width:100%}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.category-card{position:relative;aspect-ratio:1/1.05;border-radius:var(--radius);overflow:hidden;background:#ead7d7;box-shadow:var(--shadow)}.category-card:after{content:"";position:absolute;inset:30% 0 0;background:linear-gradient(transparent,rgba(25,10,15,.7))}.category-card img{width:100%;height:100%;object-fit:cover;transition:.5s}.category-card:hover img{transform:scale(1.05)}.category-card h3{position:absolute;z-index:2;bottom:20px;right:20px;left:20px;color:#fff;font-size:1.3rem;margin:0}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.benefit{padding:28px;border:1px solid var(--line);background:#fff;border-radius:var(--radius)}.benefit span{font-size:2rem}.benefit h3{margin:10px 0 2px}.benefit p{margin:0;color:var(--muted)}
.page-hero{padding:65px 0 40px;background:linear-gradient(120deg,var(--blush),#fff7f0)}.page-hero h1{font-size:clamp(2rem,5vw,3.5rem);margin:0}.page-hero p{color:var(--muted);margin:8px 0 0}.catalog-layout{display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:start}.filters{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;position:sticky;top:100px}.field{display:grid;gap:7px;margin-bottom:16px}.field label{font-size:.88rem;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #d9cdcc;background:#fff;border-radius:12px;padding:11px 13px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(113,47,69,.1)}.field textarea{min-height:110px;resize:vertical}.filter-actions{display:flex;gap:8px}.catalog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;color:var(--muted)}.pagination{display:flex;justify-content:center;gap:8px;margin-top:36px}.pagination button{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:42px;height:42px;cursor:pointer}.pagination button.active{background:var(--wine);color:#fff}.empty-state{text-align:center;padding:70px 20px;background:#fff;border:1px dashed #d8c8c7;border-radius:var(--radius);grid-column:1/-1}.empty-state span{display:block;font-size:3rem}.empty-state h2{margin:8px 0}.empty-state p{color:var(--muted);margin:0 0 20px}.page-loader{min-height:55vh;display:flex;justify-content:center;align-items:center;gap:8px}.page-loader span{width:10px;height:10px;border-radius:50%;background:var(--wine);animation:bounce .8s infinite alternate}.page-loader span:nth-child(2){animation-delay:.2s}.page-loader span:nth-child(3){animation-delay:.4s}@keyframes bounce{to{transform:translateY(-12px);opacity:.4}}
.detail-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:start}.gallery-main{aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line)}.gallery-main img{width:100%;height:100%;object-fit:contain;padding:14px}.gallery-thumbs{display:flex;gap:10px;margin-top:12px;overflow:auto}.gallery-thumbs button{width:78px;height:78px;border:2px solid transparent;border-radius:12px;overflow:hidden;padding:0;background:#eee;cursor:pointer}.gallery-thumbs button.active{border-color:var(--wine)}.gallery-thumbs img{width:100%;height:100%;object-fit:cover}.detail-copy .product-category{font-size:.9rem}.detail-copy h1{font-size:clamp(2rem,4vw,3rem);line-height:1.25;margin:7px 0 15px}.detail-copy .price{font-size:1.65rem}.detail-description{color:var(--muted);white-space:pre-line;margin:25px 0}.purchase-box{border-top:1px solid var(--line);padding-top:22px}.purchase-row{display:flex;gap:14px;align-items:end;margin-bottom:18px}.purchase-row .field{margin:0;min-width:150px}.sold-message{color:var(--danger);background:#fbe8e8;border-radius:12px;padding:12px 15px;font-weight:700}
.cart-layout,.checkout-layout{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:start}.cart-list{display:grid;gap:14px}.cart-item{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);padding:14px;border-radius:var(--radius)}.cart-item img,.cart-item .image-placeholder{width:110px;height:120px;border-radius:14px;object-fit:cover}.cart-item h3{margin:0 0 4px}.cart-meta{color:var(--muted);font-size:.88rem}.cart-item-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.remove-button{border:0;background:transparent;color:var(--danger);cursor:pointer}.item-total{text-align:left;font-weight:800;color:var(--wine)}.summary-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;position:sticky;top:100px}.summary-card h2{margin-top:0}.summary-line{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.summary-line.total{font-size:1.25rem;border:0;font-weight:800}.summary-card .btn{width:100%;margin-top:10px}.checkout-items{max-height:300px;overflow:auto}.checkout-mini{display:grid;grid-template-columns:50px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:.86rem}.checkout-mini img,.checkout-mini .image-placeholder{width:50px;height:55px;border-radius:8px;object-fit:cover}.success-card{max-width:660px;margin:60px auto;background:#fff;padding:55px;border:1px solid var(--line);border-radius:28px;text-align:center;box-shadow:var(--shadow)}.success-icon{width:75px;height:75px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#e1f3eb;color:var(--success);font-size:2rem}.order-number{background:var(--blush);border-radius:12px;padding:12px;margin:22px 0;font-weight:800;color:var(--wine)}
.site-footer{background:#2e2025;color:#eadfe1;padding-top:58px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.brand-light .brand-ar{color:#fff}.brand-light .brand-en{color:#d8b9c1}.footer-grid h3{color:#fff}.footer-grid p{color:#cbbdc1;max-width:390px}.footer-grid>div>a{display:block;color:#cbbdc1;margin:7px 0}.footer-grid a:hover{color:#fff}.footer-bottom{text-align:center;border-top:1px solid rgba(255,255,255,.1);margin-top:50px;padding:18px;color:#aa989d;font-size:.85rem}.toast{position:fixed;z-index:1000;bottom:24px;left:24px;background:#2e2025;color:#fff;border-radius:13px;padding:13px 20px;box-shadow:var(--shadow);transform:translateY(140%);opacity:0;transition:.3s;max-width:min(380px,calc(100% - 32px))}.toast.show{transform:none;opacity:1}.toast.error{background:var(--danger)}.modal-backdrop{position:fixed;z-index:500;inset:0;background:rgba(28,17,21,.58);display:grid;place-items:center;padding:20px}.modal{background:#fff;border-radius:var(--radius);padding:26px;max-width:680px;width:100%;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{margin:0}.modal-close{border:0;background:var(--blush);border-radius:50%;width:38px;height:38px;cursor:pointer}
/* Admin */.admin-shell{min-height:75vh;background:#f6f3f2}.admin-header{background:#fff;border-bottom:1px solid var(--line);padding:18px 0}.admin-header .container{display:flex;justify-content:space-between;align-items:center}.admin-brand{font-size:1.35rem;font-weight:800;color:var(--wine)}.admin-login{max-width:430px;margin:65px auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow)}.admin-login h1{margin:0}.admin-login>p{color:var(--muted);margin-top:5px}.admin-main{display:grid;grid-template-columns:220px 1fr;gap:30px;padding:32px 0 70px}.admin-nav{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;height:max-content;position:sticky;top:100px}.admin-nav button{display:block;width:100%;text-align:right;border:0;background:transparent;padding:12px 14px;border-radius:10px;cursor:pointer}.admin-nav button.active,.admin-nav button:hover{background:var(--blush);color:var(--wine);font-weight:700}.admin-content{min-width:0}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.admin-toolbar h1{margin:0}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th,td{text-align:right;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:.78rem;color:var(--muted);background:#fcfafa}td img{width:48px;height:52px;object-fit:cover;border-radius:9px}.table-actions{display:flex;gap:6px}.inline-price{width:100px;border:1px solid var(--line);border-radius:8px;padding:7px}.status{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:700}.status-Pending{background:#fff1cc;color:#7d5b00}.status-Processing{background:#dcecff;color:#205a96}.status-Delivered{background:#daf3e6;color:#216a4d}.status-Cancelled{background:#f7dede;color:#8d3438}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.field-full{grid-column:1/-1}.check-row{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:18px}.check-row label{display:flex;align-items:center;gap:7px}.upload-row{display:flex;gap:10px;align-items:center}.upload-preview{width:72px;height:72px;border-radius:10px;object-fit:cover;background:var(--blush)}.image-list{display:grid;gap:10px;margin:12px 0}.image-edit-row{display:grid;grid-template-columns:64px 1fr auto auto;gap:10px;align-items:center;background:#faf7f6;padding:8px;border-radius:12px}.image-edit-row img{width:64px;height:64px;border-radius:8px;object-fit:cover}.order-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-card{background:#faf7f6;border-radius:14px;padding:16px}.info-card h3{margin-top:0}.order-lines{margin-top:20px}
@media(max-width:980px){.product-grid{grid-template-columns:repeat(3,1fr)}.category-grid{grid-template-columns:repeat(3,1fr)}.cart-layout,.checkout-layout{grid-template-columns:1fr 310px}.detail-grid{gap:35px}.admin-main{grid-template-columns:180px 1fr}}
@media(max-width:760px){.header-row{grid-template-columns:auto 1fr auto;min-height:68px}.brand{justify-self:center}.brand-ar{font-size:1.65rem}.main-nav{display:none;position:absolute;top:68px;right:0;left:0;background:var(--cream);padding:15px 24px 25px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:2px}.main-nav.open{display:flex}.mobile-menu{display:grid}.header-actions{gap:0}.section{padding:50px 0}.product-grid{grid-template-columns:repeat(2,1fr);gap:14px}.category-grid{grid-template-columns:repeat(2,1fr);gap:14px}.benefits{grid-template-columns:1fr}.catalog-layout{grid-template-columns:1fr}.filters{position:static}.detail-grid{grid-template-columns:1fr;gap:30px}.cart-layout,.checkout-layout{grid-template-columns:1fr}.summary-card{position:static}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-grid>div:first-child{grid-column:1/-1}.admin-main{grid-template-columns:1fr}.admin-nav{position:static;display:flex;overflow:auto}.admin-nav button{white-space:nowrap}.order-detail-grid{grid-template-columns:1fr}}
@media(max-width:500px){:root{--container:calc(100% - 24px)}.announcement{font-size:.72rem}.header-actions .icon-button{width:36px}.hero-copy{right:25px;left:25px}.hero-nav{inset-inline:8px}.hero-nav button{width:40px;height:40px}.section-heading{align-items:start;flex-direction:column}.product-grid{grid-template-columns:1fr 1fr;gap:10px}.product-body{padding:12px}.product-title{font-size:.92rem}.product-category{display:none}.card-controls{grid-template-columns:1fr}.card-controls .quantity-control{display:none}.add-cart{grid-column:auto;padding:8px;font-size:.82rem;min-height:42px}.category-card h3{bottom:13px;right:13px}.cart-item{grid-template-columns:80px 1fr}.cart-item img,.cart-item .image-placeholder{width:80px;height:90px}.item-total{grid-column:2}.purchase-row{align-items:stretch;flex-direction:column}.form-grid{grid-template-columns:1fr}.field-full{grid-column:auto}.success-card{padding:34px 20px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.admin-toolbar{align-items:stretch;flex-direction:column}.admin-toolbar .btn{width:100%}.modal{padding:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Product, pricing, option and brand refinements */
.brand-logo{width:62px;height:62px;object-fit:contain;flex:0 0 auto}.brand-light .brand-logo{background:#fff;border-radius:50%;padding:3px}.admin-brand{display:flex;align-items:center;gap:11px}.admin-brand img{width:48px;height:48px;object-fit:contain}.admin-login-logo{width:104px;height:104px;object-fit:contain;margin:0 auto 18px}.admin-login{text-align:center}.admin-login .field{text-align:right}
.price-stack{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.regular-price{text-decoration:line-through;color:var(--muted);font-size:.88rem;font-weight:600}.sale-price{color:var(--wine);font-weight:900;font-size:1.22rem}.discount-copy{color:var(--success);font-size:.74rem;font-weight:800}.detail-price{margin:6px 0}.detail-price .regular-price{font-size:1.05rem}.detail-price .sale-price{font-size:1.8rem}.badge.discount{right:auto;left:14px;background:var(--success)}.admin-sale-price{display:block;color:var(--success);margin-top:4px}.cart-meta del{color:var(--muted);margin-inline-end:4px}
.card-options{grid-column:1/-1}.option-field{min-width:min(100%,330px)}.option-group{display:flex;flex-wrap:wrap;gap:9px}.option-chip{border:1px solid #d9cdcc;background:#fff;color:var(--ink);border-radius:999px;padding:8px 13px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700;font-size:.86rem;box-shadow:0 2px 0 rgba(113,47,69,.02);transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.option-chip:hover:not(:disabled){transform:translateY(-2px);border-color:var(--wine);box-shadow:0 8px 18px rgba(113,47,69,.12)}.option-chip.selected{border-color:var(--wine);background:var(--blush);color:var(--wine);box-shadow:0 0 0 2px rgba(113,47,69,.11)}.option-check{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff;font-size:.7rem;opacity:0;transform:scale(.65);transition:.18s}.option-chip.selected .option-check{opacity:1;transform:scale(1)}.option-chip:disabled{opacity:.42;cursor:not-allowed;background:#eee;color:#81777a}.detail-options{margin-top:5px}.detail-options .option-chip{padding:10px 16px;font-size:.94rem}
.is-out-of-stock{background:#f7f4f3}.is-out-of-stock .product-media img{filter:grayscale(.8);opacity:.58}.is-out-of-stock .product-body{opacity:.84}.quantity-control button:disabled,.quantity-control input:disabled{cursor:not-allowed;color:#aaa;background:#eee}.cart-stock-warning{color:var(--danger);font-weight:800;font-size:.86rem;margin-top:5px}.disabled-action{opacity:.48;cursor:not-allowed;background:var(--muted);border-color:var(--muted);pointer-events:none}.sold-message{margin-bottom:18px}
.single-image-row{grid-template-columns:64px 1fr auto}.upload-empty{border:1px dashed #d8c8c7;border-radius:12px;padding:18px;color:var(--muted);text-align:center;background:#faf7f6}.image-edit-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:left}
@media(max-width:760px){.brand-logo{width:52px;height:52px}.header-row{min-height:70px}.option-group{gap:7px}.option-chip{padding:7px 11px}.admin-brand span{font-size:1rem}.admin-brand img{width:42px;height:42px}}
@media(max-width:500px){.brand-logo{width:46px;height:46px}.card-options{max-height:92px;overflow:auto}.detail-options{max-height:none}.price-stack{gap:6px}.sale-price{font-size:1.05rem}.regular-price{font-size:.76rem}.single-image-row{grid-template-columns:56px 1fr auto}.image-edit-row code{font-size:.7rem}}

/* Compact RTL header and delivery summary */
.site-header .header-row{min-height:88px;grid-template-columns:minmax(230px,1fr) auto minmax(120px,1fr);gap:24px}
.site-header .header-brand{justify-self:start;align-self:center;display:inline-flex;align-items:center;gap:13px;max-height:80px;line-height:1.15}
.site-header .brand-logo{display:block;width:auto;height:76px;max-width:84px;max-height:76px;object-fit:contain;object-position:center;flex:0 0 auto}
.store-name{display:flex;flex-direction:column;white-space:nowrap;text-align:right}.store-name strong{color:var(--wine);font-size:1.05rem;line-height:1.25}.store-name span{color:var(--muted);font-size:.72rem;letter-spacing:.08em;direction:ltr;text-align:right}
.site-header .main-nav{margin-inline:18px}
.site-footer .brand-logo{width:auto;height:54px;max-width:64px;object-fit:contain}
.field-hint{display:block;color:var(--muted);font-size:.78rem;margin-top:6px}
.field-hint.is-error{color:#c0392b}
/* Day separator inside the orders table: one banded row heading each day's orders.
   Both spans are bidi-isolated. Without it the Latin-digit year and the leading digit of the
   count resolve into a single directional run in this RTL cell, so "20/08/2026" followed by
   "2 طلبات" paints as "20/08/20262". */
.order-day>td{background:#f4eef0;border-top:2px solid #e0d2d7;padding:10px 14px}
.order-day-label{font-weight:700;unicode-bidi:isolate}
.order-day-meta{color:var(--muted);font-size:.82rem;unicode-bidi:isolate}
.order-day-sep{color:var(--muted);margin:0 8px}
.filter-product-section{margin:4px 0 20px;border:1px solid var(--line);border-radius:16px;padding:16px;background:#faf7f6}.filter-product-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:280px;overflow:auto;padding:4px}.filter-product-choice{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.filter-product-choice:has(input:checked){border-color:var(--wine);background:var(--blush);color:var(--wine);font-weight:700}.filter-product-choice input{accent-color:var(--wine)}
@media(max-width:500px){.filter-product-picker{grid-template-columns:1fr}}
/* Banner button destination: one searchable list holding both categories and products */
.banner-target{border:1px solid var(--line);border-radius:16px;padding:12px;background:#faf7f6}.banner-target-bar{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.banner-target-bar input{flex:1 1 220px;min-width:0}.banner-target-scopes{display:inline-flex;gap:6px}.banner-target-scopes button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-weight:700;font-size:.8rem;cursor:pointer;color:var(--muted)}.banner-target-scopes button.active{border-color:var(--wine);background:var(--blush);color:var(--wine)}
.banner-target-current{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:11px 0 9px;font-size:.85rem;color:var(--muted)}.banner-target-current strong{color:var(--wine)}
.banner-target-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:280px;overflow:auto;padding:4px}.banner-target-option{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer;text-align:right;font:inherit}.banner-target-option.active{border-color:var(--wine);background:var(--blush);color:var(--wine);font-weight:700}.banner-target-kind{flex:0 0 auto;border-radius:999px;padding:3px 9px;font-size:.68rem;font-weight:800;background:#efe7e6;color:var(--muted)}.banner-target-kind.category{background:var(--blush);color:var(--wine)}
@media(max-width:500px){.banner-target-list{grid-template-columns:1fr}}
.success-summary{max-width:430px;margin:18px auto 24px;text-align:right;background:#faf7f6;border-radius:14px;padding:4px 16px}
.order-total-breakdown{max-width:360px;margin:18px 0 0 auto;background:#faf7f6;border-radius:14px;padding:4px 16px}
@media(max-width:980px) and (min-width:761px){.site-header .brand-logo{height:68px;max-width:76px}.site-header .header-row{min-height:80px;grid-template-columns:minmax(205px,1fr) auto minmax(110px,1fr);gap:15px}.site-header .main-nav{gap:18px;margin-inline:8px}.store-name strong{font-size:.98rem}}
@media(max-width:760px){.site-header .header-row{display:flex;min-height:66px;justify-content:space-between;gap:10px}.site-header .header-brand{flex:0 0 auto;max-height:58px;gap:8px}.site-header .brand-logo{height:54px;max-width:60px;max-height:54px}.store-name strong{font-size:.85rem}.store-name span{font-size:.6rem;letter-spacing:.04em}.site-header .main-nav{top:66px;margin:0}.site-footer .brand-logo{height:48px;max-width:58px}}
@media(max-width:420px){.site-header .header-row{min-height:60px}.site-header .brand-logo{height:48px;max-width:53px;max-height:48px}.site-header .main-nav{top:60px}.site-header .icon-button{width:34px;height:38px}.store-name strong{font-size:.78rem}.store-name span{font-size:.55rem}}

/* Availability and variant administration */
.cart-availability-warning{color:var(--danger);font-weight:800;font-size:.86rem;margin-top:5px}.option-chip small{font-size:.68rem;color:var(--danger)}
.admin-product-name{display:flex;align-items:center;gap:10px}.availability-toggle{border:1px solid;border-radius:999px;padding:6px 13px;font-weight:800;cursor:pointer}.availability-toggle.available{background:#daf3e6;border-color:#b8dfcc;color:#216a4d}.availability-toggle.unavailable{background:#f7dede;border-color:#ebc1c3;color:#8d3438}
.availability-toggle:disabled{opacity:.55;cursor:progress}
.admin-toolbar-note{max-width:60ch;margin:6px 0 0;color:var(--muted);font-size:.85rem}
.archive-state{display:inline-block;border:1px solid #c7e4d5;background:#eef8f2;color:#216a4d;border-radius:999px;padding:4px 11px;font-size:.78rem;font-weight:700}
.archive-state.has-orders{border-color:#e4d3b4;background:#fbf3e3;color:#7a5a1c}
.shade-availability-note{display:block;margin-top:6px;font-size:.74rem;color:var(--muted)}
.shade-availability-note.is-out{color:#8d3438;font-weight:700}
.variant-edit-row .availability-toggle.shade-available{padding:5px 12px;font-size:.8rem;white-space:nowrap}
.variant-editor{margin:2px 0 20px;border:1px solid var(--line);border-radius:16px;padding:16px;background:#faf7f6}.variant-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.variant-editor-head h3,.variant-editor-head p{margin:0}.variant-editor-head p{color:var(--muted);font-size:.82rem}.variant-edit-row{display:grid;grid-template-columns:minmax(150px,1fr) auto 68px auto auto auto;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.variant-edit-row .field{margin:0}.variant-available{display:flex;align-items:center;gap:6px;font-weight:700}.variant-image-preview{width:64px;height:64px;border-radius:10px;background:var(--blush);display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.68rem;text-align:center}.variant-image-preview img{width:100%;height:100%;object-fit:cover}.variant-upload{white-space:nowrap}
@media(max-width:760px){.variant-edit-row{grid-template-columns:1fr auto}.variant-image-preview{grid-row:2}.variant-upload{grid-row:2}.variant-editor-head{align-items:flex-start;flex-direction:column}.variant-editor-head .btn{width:100%}}

/* Sticky catalog filters and mobile filter drawer.
   The mobile drawer is sized by an explicit height rather than by a top/bottom pair: left to stretch
   between the two, the panel took its content height instead, so the apply buttons and the last
   fields sat past the bottom of the screen and nothing could be scrolled to reach them. With a real
   height the flex column shrinks and .filter-scroll takes the overflow. */
:root{--site-header-height:88px;--filter-sticky-gap:14px;--filter-sticky-top:calc(var(--site-header-height) + var(--filter-sticky-gap));--filter-viewport-gap:16px;--filter-drawer-gap:12px}
.catalog-section,.catalog-layout{overflow:visible}.catalog-layout{align-items:start}.catalog-results{min-width:0;scroll-margin-top:calc(var(--filter-sticky-top) + 8px);outline:none}
.filters{align-self:start;position:sticky;top:var(--filter-sticky-top);display:flex;flex-direction:column;padding:0;max-height:calc(100vh - var(--filter-sticky-top) - var(--filter-viewport-gap));max-height:calc(100dvh - var(--filter-sticky-top) - var(--filter-viewport-gap));overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 34px rgba(78,37,49,.08)}
.filter-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:22px 22px 8px}.filter-actions{position:relative;z-index:2;display:flex;flex:0 0 auto;gap:8px;padding:14px 22px 18px;background:#fffaf8;border-top:1px solid var(--line);box-shadow:0 -8px 18px rgba(78,37,49,.05)}.filter-actions .btn{flex:1;padding-inline:14px}.filter-panel-head,.mobile-filter-bar{display:none}
.filter-drawer-backdrop{display:block;position:fixed;z-index:190;inset:0;background:rgba(36,26,29,.5);backdrop-filter:blur(2px)}.filter-drawer-backdrop[hidden]{display:none}
@media(max-width:980px) and (min-width:761px){:root{--site-header-height:80px}.catalog-layout{grid-template-columns:230px 1fr;gap:24px}.filter-scroll{padding-inline:18px}.filter-actions{padding-inline:18px}}
@media(max-width:760px){:root{--site-header-height:66px;--filter-sticky-gap:10px;--filter-viewport-gap:12px}.catalog-section{padding-top:16px}.catalog-layout{display:block}.mobile-filter-bar{display:block;position:sticky;z-index:90;top:var(--filter-sticky-top);padding-block:8px;margin-bottom:12px;background:linear-gradient(var(--cream) 72%,rgba(255,250,246,0))}.mobile-filter-button{width:100%;min-height:46px;box-shadow:0 10px 24px rgba(113,47,69,.18)}.filters{position:fixed;z-index:200;top:var(--filter-sticky-top);right:12px;bottom:var(--filter-drawer-gap);left:12px;height:calc(100vh - var(--filter-sticky-top) - var(--filter-drawer-gap));height:calc(100dvh - var(--filter-sticky-top) - var(--filter-drawer-gap));max-height:none;transform:translateY(22px) scale(.985);opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s ease,opacity .22s ease,visibility .22s;border-radius:18px;box-shadow:0 24px 70px rgba(36,26,29,.28)}.filters.is-open{transform:none;opacity:1;visibility:visible;pointer-events:auto}.filter-panel-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;padding:14px 18px;background:#fffaf8;border-bottom:1px solid var(--line);font-size:1.05rem}.filter-close{width:38px;height:38px;border:0;border-radius:50%;background:var(--blush);color:var(--wine);font-size:1.55rem;line-height:1;cursor:pointer}.filter-scroll{padding:18px 18px 8px}.filter-actions{padding:12px 18px 16px}.catalog-results{scroll-margin-top:calc(var(--site-header-height) + 70px)}}
@media(max-width:420px){:root{--site-header-height:60px}.filters{--filter-drawer-gap:8px;right:8px;left:8px}.filter-actions{padding-inline:14px}.filter-scroll{padding-inline:14px}}

/* Compact product-card shade picker. Product-detail chips intentionally keep their existing design. */
.product-card.shade-menu-open{z-index:40;overflow:visible}
.card-shade-field{grid-column:1/-1;min-width:0;max-height:none;overflow:visible;direction:rtl}
.card-shade-label{display:block;margin-bottom:5px;color:var(--ink);font-size:.78rem;font-weight:800}
.shade-picker{position:relative;z-index:1;min-width:0;direction:rtl}
.shade-picker.is-open{z-index:50}
.shade-picker-trigger{width:100%;min-height:43px;padding:8px 13px;border:1px solid #d9cdcc;border-radius:12px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:right;cursor:pointer;font-weight:700;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.shade-picker-trigger:hover,.shade-picker-trigger:focus-visible,.shade-picker-trigger.has-selection{border-color:var(--wine)}
.shade-picker-trigger:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(113,47,69,.13)}
.shade-picker-trigger.has-selection{background:var(--blush);color:var(--wine)}
.shade-picker-chevron{flex:0 0 auto;color:var(--wine);font-size:1.1rem;line-height:1;transform:rotate(0);transition:transform .18s ease}
.shade-picker.is-open .shade-picker-chevron{transform:rotate(180deg)}
.shade-picker-list{position:absolute;z-index:60;top:calc(100% + 7px);right:0;left:0;max-height:min(240px,42vh);overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid rgba(113,47,69,.22);border-radius:14px;background:#fff;box-shadow:0 18px 38px rgba(55,29,37,.2);direction:rtl}
.shade-picker-list[hidden]{display:none}
.shade-picker-option{width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:9px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:right;cursor:pointer;font-weight:700;font-size:.84rem}
.shade-picker-option:hover:not(:disabled),.shade-picker-option:focus-visible{outline:0;background:var(--blush);color:var(--wine)}
.shade-picker-option.is-selected,.shade-picker-option[aria-selected="true"]{background:var(--blush);color:var(--wine)}
.shade-picker-option:disabled{cursor:not-allowed;color:#81777a;background:#f5f1f0;opacity:.68}
.shade-picker-option .option-unavailable{color:var(--danger);font-size:.67rem;white-space:nowrap}
@media(max-width:500px){.card-shade-label{font-size:.72rem}.shade-picker-trigger{min-height:40px;padding:7px 10px;font-size:.8rem}.shade-picker-list{max-height:min(210px,38vh);padding:5px}.shade-picker-option{min-height:38px;padding:7px 8px;font-size:.78rem}}

/* Keep every catalog card and image fixed while a shade menu is open. */
.product-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}
.product-grid>.product-card{align-self:start;width:100%;min-width:0;contain:inline-size}
.product-card.shade-menu-open,.product-card.shade-menu-open:hover{transform:none}
.product-media{width:100%;height:auto;min-width:0;isolation:isolate}
/* Packshots are shown whole, not cropped to fill. A tall bottle is roughly three times taller than it
   is wide while the card frame is nearly square, so object-fit:cover threw away the cap and the base
   and left a zoomed-in band of the label — 63 catalogue images were being cut that way. `contain` on
   a white ground letterboxes those instead, and leaves the near-square majority looking unchanged. */
.product-media{background:#fff}
/* The fallback swaps a missing image for this block, which has to fill the frame the img did. */
.product-media .image-placeholder,.gallery-main .image-placeholder{position:absolute;inset:0}
.product-media img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;object-fit:contain;padding:6px;transform:none!important}
.shade-picker,.shade-picker-list,.shade-picker-option{min-width:0;max-width:100%;box-sizing:border-box}
.shade-picker-list{top:calc(100% + 7px)!important;bottom:auto!important;width:100%;overflow-x:hidden}
.shade-picker-option{white-space:normal;overflow-wrap:anywhere}
@media(max-width:980px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-products-tools{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 20px;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff}
.admin-product-search{display:grid;gap:8px;flex:1;max-width:620px;font-weight:800}
.admin-product-search input{width:100%;min-height:48px;padding:10px 16px;border:1px solid var(--border);border-radius:13px;background:#fff;font:inherit;color:var(--ink)}
.admin-product-search input:focus{outline:2px solid rgba(122,43,69,.18);border-color:var(--primary)}
.admin-product-name{align-items:flex-start;min-width:390px;flex-direction:column}
.admin-product-copy{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%}
.admin-product-copy small{color:var(--muted);white-space:nowrap}
.admin-product-images{display:flex;flex-wrap:wrap;gap:8px;max-width:620px}
.admin-product-image{display:grid;gap:4px;margin:0;text-align:center}

/* Equal-height catalog cards: a product with a shade picker and one without fill the same row height,
   and the quantity/add-to-cart controls sit on a shared baseline instead of following the text. */
.product-grid{align-items:stretch}
.product-grid>.product-card{align-self:stretch;display:flex;flex-direction:column}
.product-grid>.product-card>.product-media{flex:0 0 auto}
.product-grid>.product-card>.product-body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.product-grid>.product-card .card-controls{margin-top:auto;padding-top:15px}

/* Header icons drawn as SVG so they render identically on every device instead of depending on font glyph coverage. */
.icon-button .icon-glyph{display:block;width:23px;height:23px;flex:0 0 auto;pointer-events:none}
.cart-link .cart-count{top:-1px;right:-3px}
@media(max-width:760px){.icon-button .icon-glyph{width:21px;height:21px}}

/* Free-delivery progress note in the cart and checkout summaries. */
.free-shipping-note{margin:10px 0 0;padding:9px 12px;border-radius:12px;background:var(--blush);color:var(--wine);font-size:.82rem;font-weight:800;line-height:1.5}
.free-shipping-note.is-unlocked{background:rgba(35,140,90,.12);color:var(--success)}
/* Store settings editor. */
.admin-settings-card{display:grid;gap:16px;max-width:520px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}
.admin-settings-state{margin:0;color:var(--muted);font-size:.85rem;font-weight:700}
/* Pager under every admin table: 20 rows per page. */
.admin-pager{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:16px}
.admin-pager:empty{display:none}
.admin-pager-info{color:var(--muted);font-size:.85rem;font-weight:700}
.admin-pager-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;direction:ltr}
.admin-pager-controls button{min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.admin-pager-controls button:hover:not(:disabled){border-color:var(--wine);color:var(--wine)}
.admin-pager-controls button.active{background:var(--wine);border-color:var(--wine);color:#fff}
.admin-pager-controls button:disabled{opacity:.45;cursor:not-allowed}
.admin-pager-gap{padding:0 2px;color:var(--muted)}
@media(max-width:500px){.admin-pager{justify-content:center}.admin-pager-controls button{min-width:36px;height:36px;padding:0 9px}}
td .admin-product-image img{width:64px;height:68px;padding:3px;object-fit:contain;border:1px solid var(--border);border-radius:9px;background:#fff}
td .admin-product-image.main img{width:72px;height:76px;border-color:var(--primary)}
.admin-product-image figcaption{max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted)}
.admin-no-images{color:var(--muted);font-size:13px}
.admin-product-row[hidden],tr[hidden]{display:none}
@media(max-width:700px){.admin-products-tools{align-items:stretch;flex-direction:column}.admin-product-name{min-width:280px}.admin-product-copy{align-items:flex-start;flex-direction:column}.admin-product-images{max-width:360px}}

/* Mobile header: brand in the right corner, the icons in the left one, reading menu, search, cart.
   The row is RTL flex so space-between anchors each group to its own corner. It used to rely on
   margin-inline-start:auto on .header-actions, but that box carries direction:ltr for the icon order,
   so the logical margin resolved to margin-left and pushed the icons inward, away from the corner. */
@media(max-width:760px){
  .site-header .header-actions{flex:0 0 auto;margin:0;gap:2px}
  .site-header .header-actions .icon-button:first-child{margin-inline-end:2px}
}

/* Touch sizing. A finger needs roughly 40px of target; several controls were drawn at their ink size
   instead, so the hit area is grown around the artwork rather than the artwork being enlarged. */
.hero-dots{gap:2px}
.hero-dots button{position:relative;width:26px;height:30px;background:none;border-radius:0}
.hero-dots button:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:10px;background:rgba(255,255,255,.65);transition:width .2s ease,background .2s ease}
.hero-dots button.active{width:34px;background:none}
.hero-dots button.active:after{width:26px;background:#fff}
.hero-nav button{min-width:44px;min-height:44px}
.text-link{display:inline-flex;align-items:center;min-height:40px}
/* The number field sat at its text height inside a taller pill, so the middle of the control was
   not part of any target. Stretching it makes the whole pill tappable. */
.quantity-control input{height:100%;align-self:stretch}
.footer-grid>div>a{min-height:40px;display:flex;align-items:center;margin:0}
/* Two lines of the product name on a phone: one truncated line hides most of an Arabic product name,
   and the fixed height keeps the cards in a row aligned. */
.product-title a{display:block;padding-block:3px}
@media(max-width:760px){
  .product-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.6em}
  .quantity-control{height:46px}
  .quantity-control button{width:40px}
  .quantity-control input{width:34px}
  .brand-en{font-size:.72rem}
  .store-name span{font-size:.68rem}
  .cart-count{min-width:21px;height:21px;font-size:.72rem}
  .main-nav a{min-height:44px;display:flex;align-items:center}
}
