﻿:root {
    --font-body-family: "Quicksand", sans-serif;
    --font-heading-family: "Ovo", serif;
    --font-body-weight: 500;
    --font-body-weight-bold: 800;
    --color-foreground: #121212;
    --color-background: #ffffff;
    --color-muted: rgba(18, 18, 18, .72);
    --color-light: #f7f3f3;
    --color-border: rgba(18, 18, 18, .12);
    --color-accent: #b8669c;
    --color-accent-dark: #4a3650;
    --color-accent-soft: #f5edf2;
    --page-width: 1200px;
    --radius: 0;
}

* { box-sizing: border-box; }
html { font-size: 62.5%; }
body {
    margin: 0;
    background: var(--color-background);
    color: var(--color-foreground);
    font-family: var(--font-body-family);
    font-size: 1.6rem;
    font-weight: var(--font-body-weight);
    line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
input, textarea, select, button { font: inherit; }
h1, h2, h3, h4 { font-family: var(--font-heading-family); font-weight: 400; letter-spacing: 0; line-height: 1.2; }
h1 { font-size: clamp(3rem, 3.3vw, 4.4rem); }
h2 { font-size: clamp(2.35rem, 2.5vw, 3.4rem); }
h3 { font-size: 2rem; }
.page-width { width: min(var(--page-width), calc(100% - 4rem)); margin-inline: auto; }
.section { padding-block: 3.4rem; }
.narrow { max-width: 86rem; }
.announcement-slider { position: sticky; top: 0; z-index: 40; overflow: clip; background: var(--color-accent); color: #fff; text-align: center; font-family: var(--font-heading-family); font-size: 1.56rem; line-height: 1.24; letter-spacing: .03em; transition: max-height .28s ease, opacity .2s ease; }
.announcement-track { position: relative; margin-inline: 5.5rem; }
.announcement-slide { display: none; padding: .9rem 1.5rem; }
.announcement-slide.is-active { display: block; animation: announceIn .3s ease; } @keyframes announceIn { from { opacity: 0; } to { opacity: 1; } }
.announcement-slide a { color: inherit; }
.announcement-arrow { position: absolute; top: 0; bottom: 0; z-index: 2; width: 4.8rem; border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 2.8rem; font-family: Georgia, serif; line-height: 1; }
.announcement-arrow:first-child { left: 0; }
.announcement-arrow:last-child { right: 0; }

.site-header { position: sticky; top: 0; z-index: 30; background: #f6f2ef; border-bottom: .1rem solid rgba(74, 54, 80, .08); }
.brand img { width: min(29rem, 22vw); height: auto; }
.desktop-brand img { margin: 0; }
.mobile-header-row { display: none; }
.header-nav-row { width: min(148rem, calc(100% - 6rem)); margin: auto; display: grid; grid-template-columns: minmax(19rem, 30rem) 1fr auto; align-items: center; gap: 2.2rem; min-height: 9rem; }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: 2.15rem; color: var(--color-accent-dark); font-size: 1.62rem; }
.desktop-nav > a, .nav-dropdown > button { color: var(--color-accent-dark); background: transparent; border: 0; padding: .65rem 0; cursor: pointer; white-space: nowrap; }
.desktop-nav > a:hover, .nav-dropdown > button:hover { text-decoration: underline; text-underline-offset: .5rem; } .dropdown-panel a:hover { text-decoration: underline; text-underline-offset: .3rem; color: rgba(255,255,255,.82); }
.nav-dropdown { position: relative; }
.nav-dropdown > button { display: flex; align-items: center; gap: .55rem; }
.nav-dropdown svg { width: 1.45rem; height: 1.45rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dropdown-panel { display: none; position: absolute; top: 100%; left: 0; min-width: 28rem; padding: .8rem 0; background: var(--color-accent); border: .1rem solid var(--color-accent-dark); box-shadow: 0 1rem 3rem rgba(0,0,0,.18); }
.nav-dropdown:hover .dropdown-panel, .nav-dropdown:focus-within .dropdown-panel { display: grid; }
.dropdown-panel a { display: block; padding: .82rem 1.45rem; white-space: nowrap; color: #fff; font-size: 1.42rem; }
.header-actions { display: flex; align-items: center; gap: 1.55rem; color: var(--color-accent-dark); }
.header-search { position: relative; display: flex; align-items: center; }
.header-search input { width: 0; opacity: 0; border: 0; padding: 0; background: transparent; transition: width .2s ease, opacity .2s ease, padding .2s ease; }
.header-search:focus-within input, .header-search:hover input { width: 16rem; opacity: 1; border-bottom: .1rem solid currentColor; padding: .65rem .5rem; }
.icon-link { position: relative; display: inline-grid; place-items: center; width: 4rem; height: 4rem; color: var(--color-accent-dark); border: 0; background: transparent; cursor: pointer; }
.icon-link svg { width: 2.45rem; height: 2.45rem; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.cart-icon { white-space: nowrap; }
.cart-icon b { position: absolute; top: .1rem; right: .1rem; min-width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border-radius: 999px; background: var(--color-accent); color: #fff; font-family: var(--font-body-family); font-size: 1.1rem; font-weight: 800; }
.menu-toggle { display: grid; gap: .45rem; width: 4rem; height: 4rem; place-content: center; background: transparent; border: 0; }
.menu-toggle span { display: block; width: 2.6rem; height: .18rem; background: var(--color-accent-dark); }
.nav-drawer { display: none; }
.drawer-close { position: relative; width: 4.4rem; height: 4.4rem; border: 0; background: transparent; }
.drawer-close::before, .drawer-close::after { content: ""; position: absolute; left: 1rem; right: 1rem; top: 50%; height: .18rem; background: var(--color-accent-dark); }
.drawer-close::before { transform: rotate(45deg); }
.drawer-close::after { transform: rotate(-45deg); }

.image-banner { background: #f6f2ef; }
.image-banner img { width: 100%; aspect-ratio: 1920 / 800; object-fit: cover; }
.collection-banner { background: #f6f2ef; border-bottom: .1rem solid var(--color-border); }
.collection-banner img { width: 100%; max-height: 42rem; object-fit: cover; object-position: center; }
.section-title { text-align: center; margin-bottom: 2.35rem; }
.section-title h2 { margin: 0; }
.product-section { padding-top: 3.6rem; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.8rem; }
.product-card { position: relative; min-width: 0; }
.product-image { position: relative; overflow: hidden; background: #f8f8f8; border: .1rem solid rgba(18,18,18,.06); }
.product-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .28s ease; }
.product-card:hover .product-image img { transform: scale(1.02); }
.product-card:hover .product-title { color: var(--color-accent-dark); }
.badge { position: absolute; left: .85rem; bottom: .85rem; background: rgba(18,18,18,.9); color: #fff; font-size: 1.05rem; padding: .36rem .9rem; border-radius: 999px; letter-spacing: .03em; text-transform: uppercase; }
.product-info { padding-top: 1.05rem; text-align: left; }
.product-title { display: block; font-size: 1.48rem; line-height: 1.34; margin-bottom: .45rem; }
.product-title:hover { text-decoration: underline; text-underline-offset: .25rem; }
.product-info p { margin: .3rem 0 .65rem; color: var(--color-muted); font-size: 1.28rem; line-height: 1.42; }
.price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem .55rem; color: var(--color-muted); font-size: 1.34rem; }
.price-label { color: var(--color-muted); }
.old-price { color: var(--color-muted); text-decoration: line-through; }
.price { color: var(--color-foreground); font-weight: 750; }
.price-row.large { font-size: 1.42rem; margin-bottom: 1.55rem; }
.price-row.large .price { font-size: 1.8rem; }
.center-actions { text-align: center; margin-top: 2.4rem; }
.btn-outline, .site-btn, .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 4.1rem; padding: 0 2.25rem; border: .1rem solid var(--color-foreground); background: var(--color-foreground); color: #fff; border-radius: .2rem; cursor: pointer; font-weight: 700; transition: box-shadow .18s ease, transform .18s ease, background .18s ease; }
.btn-outline { background: #fff; color: var(--color-foreground); }
.site-btn.full { width: 100%; }
.btn-outline:hover, .site-btn:hover { box-shadow: 0 .7rem 1.8rem rgba(18,18,18,.12); transform: translateY(-.1rem); }

.featured-copy { text-align: left; }
.featured-copy > h2 { text-align: center; margin: 0 0 1.2rem; }
.featured-copy > h3 { text-align: center; margin: 0 0 1.45rem; font-family: var(--font-body-family); font-weight: 700; font-size: 1.8rem; }
.collection-copy { max-width: 84rem; margin: 0 auto 2.6rem; color: var(--color-muted); line-height: 1.72; white-space: normal; }
.collection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.8rem; }
.collection-card { display: block; }
.collection-image { overflow: hidden; background: #f8f8f8; margin-bottom: 1.05rem; }
.collection-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .28s ease; }
.collection-card:hover img { transform: scale(1.025); }
.collection-card h3 { margin: 0 0 .6rem; font-family: var(--font-body-family); font-weight: 700; font-size: 1.58rem; }
.collection-card p { color: var(--color-muted); margin: 0; font-size: 1.32rem; }
.feedback-section h2 { margin-top: 0; }
.feedback-form { display: grid; gap: 1.6rem; max-width: 68rem; }
.centered-form { width: min(100%, 68rem); margin-inline: auto; }
.feedback-form label, .panel-form label, .admin-form label { display: grid; gap: .7rem; font-weight: 650; }
.feedback-form input, .feedback-form textarea, .panel-form input, .panel-form textarea, .panel-form select, .admin-form input, .admin-form textarea, .admin-form select {
    width: 100%;
    border: .1rem solid rgba(18,18,18,.16);
    border-radius: .35rem;
    background: #fff;
    min-height: 4.8rem;
    padding: 1.1rem 1.25rem;
    color: var(--color-foreground);
}
.feedback-form textarea, .panel-form textarea, .admin-form textarea {
    min-height: 10.5rem;
    resize: vertical;
}
.feedback-form input:focus, .feedback-form textarea:focus, .panel-form input:focus, .panel-form textarea:focus, .panel-form select:focus, .admin-form input:focus, .admin-form textarea:focus, .admin-form select:focus {
    outline: .2rem solid rgba(184, 102, 156, .22);
    border-color: var(--color-accent);
}
.social-section { overflow: hidden; }
.social-grid { display: flex; gap: 1.7rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: .2rem .1rem 1.6rem; scrollbar-width: none; }
.social-grid::-webkit-scrollbar { display: none; }
.social-card { flex: 0 0 clamp(27rem, 25vw, 35rem); min-height: 48rem; display: grid; grid-template-rows: auto 1fr; scroll-snap-align: start; overflow: hidden; border: .1rem solid rgba(18,18,18,.07); border-radius: 1.4rem; background: #fff; box-shadow: 0 .8rem 2.4rem rgba(18,18,18,.06); transition: transform .18s ease, box-shadow .18s ease; }
.social-card:hover { transform: translateY(-.2rem); box-shadow: 0 1.2rem 3rem rgba(18,18,18,.09); }
.social-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #f6f2ef; }
.social-card-body { display: grid; grid-template-rows: auto 1fr auto; gap: 1.05rem; padding: 1.35rem 1.55rem 1.55rem; }
.social-card span { display: flex; align-items: center; gap: .55rem; color: var(--color-muted); font-size: 1.18rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.social-card span::before { content: ""; width: 1.35rem; height: 1.35rem; display: inline-block; border: .16rem solid currentColor; border-radius: .32rem; box-shadow: inset 0 0 0 .28rem #fff; background: currentColor; opacity: .82; }
.social-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0; min-height: 6.3rem; color: var(--color-foreground); font-size: 1.43rem; line-height: 1.48; }
.social-card a { align-self: end; display: inline-flex; width: max-content; color: var(--color-accent-dark); font-weight: 800; font-size: 1.35rem; text-decoration: none; }
.social-card a:hover { text-decoration: underline; text-underline-offset: .25rem; }
.social-scroll-actions { display: flex; align-items: center; justify-content: center; gap: 1.35rem; margin-top: 1.4rem; }
.social-scroll-actions > button { width: 4.4rem; height: 4.4rem; border: 0; background: var(--color-accent-dark); color: #fff; border-radius: 999rem; cursor: pointer; font-family: Georgia, serif; font-size: 2.6rem; line-height: 1; display: grid; place-items: center; box-shadow: 0 .7rem 1.8rem rgba(74,54,80,.16); transition: background .16s ease, transform .16s ease, opacity .16s ease; }
.social-scroll-actions > button:hover { background: var(--color-accent); transform: translateY(-.1rem); }
.social-scroll-actions > button:disabled { opacity: .45; cursor: default; transform: none; }
.social-dots { display: flex; align-items: center; justify-content: center; gap: .8rem; min-width: 5rem; }
.social-dot { width: .78rem; height: .78rem; border: 0; border-radius: 999rem; padding: 0; background: rgba(74,54,80,.34); cursor: pointer; }
.social-dot.is-active { background: var(--color-accent-dark); }

.collection-header { text-align: center; padding-block: 3.3rem 1.6rem; }
.collection-header h1 { margin: 0 0 1rem; }
.collection-header p { max-width: 76rem; margin: auto; color: var(--color-muted); }
.collection-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1.3rem; margin-bottom: 2rem; }
.product-detail { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(32rem, .9fr); gap: 3.2rem; padding-block: 3.4rem; }
.main-image { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #f8f8f8; }
.thumbs { display: flex; gap: .8rem; margin-top: 1rem; flex-wrap: wrap; }
.thumbs img { width: 7.2rem; height: 7.2rem; object-fit: cover; border: .1rem solid var(--color-border); cursor: pointer; }
.product-panel-wrap { padding-top: 1rem; }
.product-panel-wrap h1 { margin: 0 0 1.2rem; }
.product-panel-wrap > p { color: var(--color-muted); margin-bottom: 1.6rem; }
.panel-form { display: grid; gap: 1.4rem; align-content: start; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.form-row.compact { grid-template-columns: minmax(13rem, 18rem) 1fr; align-items: end; }
.quantity-stepper { display: grid; grid-template-columns: 4.4rem minmax(5.4rem, 1fr) 4.4rem; align-items: stretch; width: min(100%, 18rem); border: .1rem solid var(--color-border); background: #fff; min-height: 4.8rem; }
.quantity-stepper button { border: 0; background: #f6f2ef; color: var(--color-accent-dark); cursor: pointer; font-size: 2rem; line-height: 1; }
.quantity-stepper input { min-height: 4.6rem !important; border: 0 !important; padding: .6rem !important; text-align: center; outline: 0 !important; }
.quantity-stepper input::-webkit-outer-spin-button, .quantity-stepper input::-webkit-inner-spin-button { appearance: none; margin: 0; }
.quantity-stepper input[type=number] { appearance: textfield; }
.policy-check { display: flex !important; grid-template-columns: auto 1fr !important; gap: 1rem !important; align-items: flex-start; color: var(--color-muted); }
.policy-check input { width: auto !important; min-height: auto !important; margin-top: .45rem; }
.policy-check a { text-decoration: underline; text-underline-offset: .25rem; }
.product-extra { border-top: .1rem solid var(--color-border); }
.product-reviews { border-top: .1rem solid var(--color-border); display: grid; gap: 2.2rem; }
.reviews-header { display: flex; justify-content: space-between; align-items: baseline; gap: 1.4rem; }
.reviews-header h2, .review-form h3 { margin: 0; }
.reviews-header span, .review-item small { color: var(--color-muted); }
.review-list { display: grid; gap: 1.4rem; }
.review-item { border-bottom: .1rem solid var(--color-border); padding-bottom: 1.4rem; }
.review-meta { display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; }
.review-meta span { color: var(--color-accent); letter-spacing: .08em; }
.review-item p { margin: .8rem 0; color: var(--color-muted); }
.review-form { max-width: 68rem; }
.two-col, .checkout-grid { display: grid; grid-template-columns: 1fr 36rem; gap: 2.4rem; align-items: start; }
.included-list { padding-left: 2rem; line-height: 1.9; }
.note, .rich-text { color: var(--color-muted); }
.rich-text { line-height: 1.8; }

.page-hero { padding: 3.2rem 2rem; text-align: center; background: var(--color-light); }
.page-hero.centered { min-height: 28rem; display: grid; place-items: center; }
.toolbar, .cart-summary { display: flex; justify-content: space-between; align-items: center; gap: 1.4rem; margin-bottom: 2.4rem; flex-wrap: wrap; }
.cart-list { display: grid; gap: 1.4rem; }
.cart-item { display: grid; grid-template-columns: 9.6rem 1fr 18rem 14rem; gap: 1.8rem; align-items: center; padding: 1.4rem 0; border-bottom: .1rem solid var(--color-border); }
.cart-item img { width: 9.6rem; height: 9.6rem; object-fit: cover; }
.cart-item small { display: block; color: var(--color-muted); }
.summary-card, .auth-card { border: .1rem solid rgba(18,18,18,.1); background: #fff; padding: 1.9rem; box-shadow: 0 .8rem 2rem rgba(18,18,18,.035); }
.summary-card p { display: flex; justify-content: space-between; gap: 1.2rem; }
.flash { margin: 1.4rem auto; width: min(var(--page-width), calc(100% - 4rem)); padding: 1.2rem 1.6rem; font-weight: 700; }
.flash-success { background: #edf5f0; color: #28523d; }
.flash-error { background: #feecee; color: #8a2736; }
.site-footer { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr 1fr; gap: 2rem; padding: 3.8rem max(2rem, calc((100vw - var(--page-width)) / 2)); background: #f6f2f2; border-top: .1rem solid rgba(18,18,18,.08); }
.site-footer img { width: 11.5rem; margin-bottom: 1rem; }
.site-footer h3 { font-family: var(--font-body-family); font-size: 1.42rem; font-weight: 800; margin: 0 0 1rem; }
.site-footer p, .site-footer a { display: block; color: var(--color-muted); margin: .65rem 0; font-size: 1.32rem; }
.site-footer a:hover { color: var(--color-accent-dark); text-decoration: underline; text-underline-offset: .25rem; }
.footer-social-title { margin-top: 1.7rem !important; }
.footer-social-icons { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: .8rem; max-width: 16rem; }
.site-footer .footer-social-icons > a { display: inline-grid !important; place-items: center !important; flex: 0 0 3.6rem; width: 3.6rem !important; min-width: 3.6rem !important; max-width: 3.6rem !important; height: 3.6rem !important; min-height: 3.6rem !important; max-height: 3.6rem !important; margin: 0 !important; padding: 0 !important; overflow: hidden; color: var(--color-accent-dark); background: #fff; border: .1rem solid rgba(184,86,103,.2); border-radius: 999rem; box-shadow: 0 .5rem 1.4rem rgba(18,18,18,.035); line-height: 1 !important; text-decoration: none !important; transition: transform .16s ease, background .16s ease, border-color .16s ease, color .16s ease; }
.site-footer .footer-social-icons a:hover { color: #fff; background: var(--color-accent); border-color: var(--color-accent); text-decoration: none; transform: translateY(-.15rem); }
.site-footer .footer-social-icons svg.footer-social-svg { display: block !important; flex: 0 0 auto !important; width: 1.9rem !important; min-width: 1.9rem !important; max-width: 1.9rem !important; height: 1.9rem !important; min-height: 1.9rem !important; max-height: 1.9rem !important; margin: 0 !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.75 !important; stroke-linecap: round; stroke-linejoin: round; transform: none !important; }
.site-footer .footer-social-icons svg.footer-social-svg path,
.site-footer .footer-social-icons svg.footer-social-svg rect,
.site-footer .footer-social-icons svg.footer-social-svg circle { vector-effect: non-scaling-stroke; }

.auth-body { min-height: 100vh; display: grid; place-items: center; background: #f6f2ef; padding: 2.4rem; }
.auth-card { width: min(88rem, 100%); min-height: 48rem; display: grid; grid-template-columns: minmax(28rem, .9fr) minmax(32rem, 1.1fr); overflow: hidden; background: #fff; border-radius: 1.2rem; }
.auth-brand-panel { display: grid; align-content: space-between; gap: 2.4rem; padding: 3.2rem; background: #34263b; color: #fff; }
.auth-brand-panel img { width: min(17rem, 72%); max-height: 8rem; object-fit: contain; padding: .8rem; border-radius: .9rem; background: #fff; }
.auth-brand-panel span { display: block; margin-bottom: .8rem; color: rgba(255,255,255,.7); font-size: 1.15rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.auth-brand-panel h1 { margin: 0; font-family: var(--font-body-family); font-size: clamp(2.8rem, 4vw, 4.4rem); font-weight: 850; color: #fff; }
.auth-form-panel { display: grid; align-content: center; padding: clamp(2.4rem, 5vw, 4.4rem); }
.auth-form-panel .eyebrow { margin: 0 0 .55rem; color: var(--color-accent); font-size: 1.15rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.auth-form-panel h2 { margin: 0 0 1.8rem; font-family: var(--font-body-family); font-size: 3rem; font-weight: 850; color: #231e27; }
.auth-card .flash { width: 100%; margin: 0 0 1.4rem; border-radius: .75rem; }
.auth-login-form { gap: 1.6rem; }
.auth-login-form label { color: #2f2935; font-weight: 800; }
.auth-login-form input { border-radius: .75rem; border-color: rgba(74,54,80,.14); background: #fbfafb; }
.auth-login-form input:focus { background: #fff; }
.auth-login-form .btn { min-height: 4.8rem; border-radius: .75rem; background: #231e27; border-color: #231e27; font-weight: 850; }
.auth-login-form .btn:hover { box-shadow: 0 .9rem 2rem rgba(35,30,39,.16); }
.admin-body { min-height: 100vh; display: grid; grid-template-columns: 26.4rem minmax(0, 1fr); background: #f5f2f4; color: #25212a; font-size: 1.45rem; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 1.2rem; padding: 1.4rem 1.2rem; background: linear-gradient(180deg, #2a202f 0%, #1b1720 100%); color: white; box-shadow: .8rem 0 2.4rem rgba(31, 23, 35, .08); }
.admin-brand-block { display: grid; gap: .55rem; padding: .4rem .6rem .9rem; border-bottom: .1rem solid rgba(255,255,255,.1); }
.admin-brand-block span { color: rgba(255,255,255,.68); font-size: 1.2rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-logo { display: inline-flex; align-items: center; width: 100%; }
.admin-logo img { width: 13rem; max-height: 5.4rem; object-fit: contain; background: #fff; padding: .6rem; border-radius: .8rem; }
.admin-nav { min-height: 0; overflow: auto; padding-right: .3rem; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.25) transparent; }
.admin-nav::-webkit-scrollbar { width: .5rem; }
.admin-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.22); border-radius: 999px; }
.admin-nav-group { display: grid; gap: .22rem; margin-bottom: .75rem; }
.admin-nav-group p { margin: 0 0 .35rem; padding-inline: .8rem; color: rgba(255,255,255,.42); font-size: 1.08rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-sidebar a { display: flex; align-items: center; justify-content: space-between; min-height: 3.2rem; padding: .58rem .9rem; border-radius: .7rem; color: rgba(255,255,255,.78); font-size: 1.34rem; font-weight: 750; transition: background .18s ease, color .18s ease, transform .18s ease; }
.admin-sidebar a:hover, .admin-sidebar a.is-active { background: rgba(184, 102, 156, .22); color: #fff; }
.admin-sidebar a.is-active { box-shadow: inset .3rem 0 0 var(--color-accent); }
.admin-sidebar-actions { display: grid; gap: .45rem; padding-top: .9rem; border-top: .1rem solid rgba(255,255,255,.1); }
.admin-sidebar-actions a { min-height: 3.15rem; background: rgba(255,255,255,.06); }
.admin-sidebar-actions form { margin: 0; }
.admin-sidebar-actions button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 3.15rem; padding: .58rem .9rem; border: 0; border-radius: .7rem; background: rgba(255,255,255,.06); color: rgba(255,255,255,.78); font: inherit; font-size: 1.34rem; font-weight: 750; cursor: pointer; transition: background .18s ease, color .18s ease, transform .18s ease; }
.admin-sidebar-actions button:hover { background: rgba(184, 102, 156, .22); color: #fff; }
.admin-main { min-width: 0; padding: 2.2rem; overflow-x: hidden; }
.admin-topbar { position: sticky; top: 0; z-index: 12; display: flex; justify-content: space-between; align-items: center; gap: 1.6rem; margin: -2.2rem -2.2rem 2.2rem; padding: 1.25rem 2.2rem; background: rgba(245, 242, 244, .92); border-bottom: .1rem solid rgba(74,54,80,.09); backdrop-filter: blur(12px); }
.admin-topbar span { display: block; color: var(--color-muted); font-size: 1.15rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-topbar strong { display: block; margin-top: .1rem; font-size: 1.85rem; line-height: 1.2; }
.admin-content { width: min(100%, 128rem); margin-inline: auto; }
.admin-head { display: flex; justify-content: space-between; align-items: center; gap: 1.8rem; margin-bottom: 1.8rem; }
.admin-head h1 { margin: 0; font-family: var(--font-body-family); font-size: 2.8rem; font-weight: 800; color: #231e27; }
.admin-head .eyebrow { margin: 0 0 .35rem; color: var(--color-accent); font-size: 1.15rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem; margin-bottom: 2rem; }
.metric, .admin-card { background: rgba(255,255,255,.92); border: .1rem solid rgba(74,54,80,.1); border-radius: 1rem; box-shadow: 0 1.2rem 3.2rem rgba(31,23,35,.055); }
.metric { padding: 1.8rem; }
.metric span { color: var(--color-muted); font-weight: 750; }
.metric strong { display: block; font-size: 3.2rem; margin-top: .7rem; line-height: 1; }
.admin-card { padding: 1.8rem; overflow-x: auto; }
.admin-card + .admin-card { margin-top: 1.6rem; }
.admin-card h2 { margin: 0 0 1.4rem; font-family: var(--font-body-family); font-size: 2rem; font-weight: 800; }
.admin-card > p { max-width: 82rem; margin-top: 0; color: var(--color-muted); }
.admin-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.4rem; margin-bottom: 1.4rem; }
.admin-card-head h2 { margin-bottom: .25rem; }
.admin-card-head p { margin: 0; color: var(--color-muted); font-size: 1.32rem; }
.admin-filter { min-width: min(32rem, 100%); color: #2f2935; font-weight: 800; }
.admin-filter input { width: 100%; min-height: 4rem; margin-top: .4rem; border: .1rem solid rgba(74,54,80,.14); border-radius: .7rem; background: #fff; padding: 0 1rem; }
.admin-table-wrap { width: 100%; overflow-x: auto; border: .1rem solid rgba(74,54,80,.08); border-radius: .8rem; background: #fff; }
.admin-table-wrap table { min-width: 76rem; }
.sr-only { position: absolute; width: .1rem; height: .1rem; padding: 0; margin: -.1rem; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
table { width: 100%; border-collapse: separate; border-spacing: 0; }
th, td { padding: 1.25rem 1.1rem; border-bottom: .1rem solid rgba(74,54,80,.09); text-align: left; vertical-align: middle; }
th { background: #faf8f9; color: rgba(37,33,42,.62); font-size: 1.18rem; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
tbody tr:hover { background: #fcf8fb; }
td a:not(.btn) { color: #8f4272; font-weight: 800; text-decoration: underline; text-underline-offset: .25rem; }
.table-action { display: inline-flex; align-items: center; min-height: 3.2rem; padding: 0 1.1rem; border: .1rem solid rgba(143,66,114,.18); border-radius: .65rem; background: #fff7fb; color: #8f4272 !important; text-decoration: none !important; }
.status-badge { display: inline-flex; align-items: center; min-height: 2.4rem; padding: .2rem .8rem; border-radius: 999px; font-size: 1.15rem; font-weight: 850; line-height: 1; }
.status-badge.success { background: #edf5f0; color: #28523d; }
.status-badge.muted { background: #f2eff1; color: rgba(37,33,42,.64); }
.status-badge.warning { background: #fff7e6; color: #7a4b00; }
.status-badge.danger { background: #feecee; color: #8a2736; }
.empty-state { padding: 2.2rem !important; color: var(--color-muted); text-align: center; background: #fbf9fa; font-weight: 750; }
.empty-panel { padding: 1.6rem; border: .1rem dashed rgba(74,54,80,.18); border-radius: .8rem; background: #fbf9fa; color: var(--color-muted); font-weight: 750; }
.admin-form { display: grid; gap: 1.5rem; }
.admin-form.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-form .wide { grid-column: 1 / -1; }
.admin-body .admin-form label { color: #2f2935; font-weight: 750; }
.admin-body .admin-form input, .admin-body .admin-form textarea, .admin-body .admin-form select {
    min-height: 4.4rem;
    border-color: rgba(74,54,80,.14);
    border-radius: .7rem;
    background: #fff;
    box-shadow: 0 .1rem 0 rgba(31,23,35,.025);
}
.admin-body .admin-form textarea { min-height: 11rem; }
.admin-body .admin-form input[type="file"] { padding: .9rem; cursor: pointer; }
.form-section-title { margin: 1rem 0 -.2rem; padding-top: 1.3rem; border-top: .1rem solid rgba(74,54,80,.1); font-family: var(--font-body-family); font-size: 1.55rem; font-weight: 850; color: #2f2935; }
.form-section-title:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.admin-body .btn, .admin-body .site-btn {
    min-height: 4rem;
    padding: 0 1.5rem;
    border: .1rem solid #34263b;
    border-radius: .7rem;
    background: #34263b;
    color: #fff;
    font-family: var(--font-body-family);
    font-size: 1.38rem;
    font-weight: 850;
    box-shadow: 0 .8rem 1.8rem rgba(52,38,59,.12);
}
.admin-body .btn:hover, .admin-body .site-btn:hover { box-shadow: 0 .9rem 2rem rgba(52,38,59,.18); }
.admin-body .btn.primary { border-color: var(--color-accent); background: var(--color-accent); color: #fff; }
.admin-body .btn.danger { border-color: #8a2736; background: #8a2736; color: #fff; }
.check { display: flex !important; grid-template-columns: auto 1fr !important; align-items: center; }
.check input { width: auto !important; }
.checkbox-panel { border: .1rem solid rgba(74,54,80,.12); border-radius: .8rem; padding: 1.4rem; display: grid; gap: .8rem; background: #fff; }
.checkbox-panel legend { font-weight: 800; padding: 0 .5rem; }
.admin-thumb { width: 6.4rem; height: 6.4rem; object-fit: cover; border: .1rem solid rgba(74,54,80,.12); border-radius: .7rem; }
.image-preview img { width: 18rem; aspect-ratio: 1 / 1; object-fit: cover; border: .1rem solid rgba(74,54,80,.12); border-radius: .8rem; }
.banner-preview img { width: min(48rem, 100%); aspect-ratio: 16 / 5; object-fit: cover; border: .1rem solid rgba(74,54,80,.12); border-radius: .8rem; }
.mobile-banner-preview img { width: min(24rem, 100%); aspect-ratio: 5 / 4; object-fit: contain; background: #f6f2ef; }
.inline-action { margin-top: 1.6rem; }
.btn.danger { background: #8a2736; border-color: #8a2736; color: #fff; }
.image-list { display: grid; gap: 1rem; }
.image-row { display: grid; grid-template-columns: 7.2rem 1fr auto; gap: 1rem; align-items: center; border: .1rem solid rgba(74,54,80,.12); border-radius: .8rem; padding: .8rem; background: #fff; }
.image-row img { width: 7.2rem; height: 7.2rem; object-fit: cover; }
.image-row span { overflow-wrap: anywhere; color: var(--color-muted); font-size: 1.25rem; }
.image-row form { margin: 0; }
.actions-cell { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.actions-cell form { margin: 0; }
.actions-cell button { min-height: 3.4rem; padding: 0 1.2rem; border: .1rem solid rgba(74,54,80,.14); border-radius: .6rem; background: #fff; cursor: pointer; font-weight: 750; }
.actions-cell .btn.danger { min-height: 3.4rem; padding: 0 1.2rem; }
.inline-status-form { display: flex; align-items: center; gap: .7rem; }
.inline-status-form select { min-height: 3.4rem; min-width: 13rem; border: .1rem solid rgba(74,54,80,.14); border-radius: .6rem; background: #fff; padding: 0 .9rem; }
.inline-status-form button { min-height: 3.4rem; padding: 0 1rem; border: 0; border-radius: .6rem; background: #34263b; color: #fff; cursor: pointer; font-weight: 800; }
.scrape-progress { display: grid; gap: 1.3rem; margin-top: 1.5rem; padding: 1.5rem; border: .1rem solid rgba(143,66,114,.14); border-radius: 1rem; background: #fff; }
.scrape-progress-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.4rem; }
.scrape-progress-head strong { display: block; color: #2f2935; font-size: 1.65rem; }
.scrape-progress-head span { display: block; margin-top: .25rem; color: var(--color-muted); overflow-wrap: anywhere; }
.scrape-progress-head b { color: var(--color-accent); font-size: 2.2rem; line-height: 1; }
.scrape-bar { height: 1.1rem; overflow: hidden; border-radius: 999rem; background: #f1e6ec; }
.scrape-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #b85667, #8f4272); transition: width .25s ease; }
.scrape-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.scrape-stats span { min-height: 3.8rem; padding: .8rem 1rem; border: .1rem solid rgba(74,54,80,.09); border-radius: .75rem; background: #fbf8fa; color: var(--color-muted); font-size: 1.22rem; font-weight: 750; }
.scrape-stats b { color: #2f2935; font-size: 1.38rem; }
.scrape-actions { display: flex; flex-wrap: wrap; gap: .9rem; }
.scrape-log { display: grid; gap: .35rem; max-height: 18rem; overflow: auto; padding: 1rem; border-radius: .75rem; background: #2a202f; color: rgba(255,255,255,.78); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1.2rem; }
.scrape-log p { margin: 0; }

@media (max-width: 990px) {
    .auth-card { grid-template-columns: 1fr; width: min(48rem, 100%); min-height: 0; }
    .auth-brand-panel { gap: 1.8rem; padding: 2.4rem; }
    .auth-brand-panel img { width: 13rem; }
    .auth-form-panel { padding: 2.4rem; }
    .header-nav-row { display: none; }
    .mobile-header-row { display: grid; grid-template-columns: 4.2rem 1fr auto; align-items: center; gap: .8rem; min-height: 6.8rem; padding: .8rem 1.8rem; }
    .brand.centered img { width: min(13.8rem, 38vw); margin: auto; }
    .mobile-actions { display: flex; align-items: center; gap: .6rem; }
    .nav-drawer { display: block; position: fixed; inset: 4.3rem 0 0 0; z-index: 80; min-height: calc(100vh - 4.3rem); background: var(--color-accent); color: #fff; transform: translateX(-100%); transition: transform .25s ease; }
    .nav-drawer.is-open { transform: translateX(0); }
    .drawer-head { min-height: 7rem; display: grid; grid-template-columns: 4.2rem 1fr 4rem 4rem; align-items: center; gap: .6rem; padding: 1rem 2rem; background: #f6f2ef; }
    .drawer-head .brand img { width: min(13.8rem, 38vw); margin: auto; }
    .drawer-menu { display: grid; padding-top: 1.6rem; }
    .drawer-menu > a, .drawer-menu summary { display: flex; justify-content: space-between; align-items: center; min-height: 5.3rem; padding: 0 2.6rem; color: #fff; font-size: 2.15rem; font-weight: 700; list-style: none; cursor: pointer; }
    .drawer-menu summary::-webkit-details-marker { display: none; }
    .drawer-menu details { border-bottom: .1rem solid rgba(255,255,255,.08); }
    .drawer-menu details div { display: grid; padding: 0 2.6rem 1rem; }
    .drawer-menu details a { color: rgba(255,255,255,.9); padding: .65rem 0 .65rem 1.2rem; font-size: 1.55rem; }
    body.drawer-open { overflow: hidden; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
    .collection-grid, .product-detail, .two-col, .checkout-grid, .site-footer { grid-template-columns: 1fr; }
    .social-card { flex-basis: min(84vw, 31rem); min-height: 43rem; }
    .social-card p { font-size: 1.36rem; min-height: 6rem; }
    .social-scroll-actions { margin-top: .9rem; }
    .site-footer { gap: 1.4rem; }
    .form-row, .form-row.compact { grid-template-columns: 1fr; }
    .quantity-stepper { width: 18rem; }
    .admin-body { grid-template-columns: 1fr; }
    .admin-sidebar { position: static; height: auto; display: grid; grid-template-columns: 1fr; gap: 1rem; padding: 1.2rem; }
    .admin-brand-block { grid-template-columns: auto 1fr; align-items: center; border-bottom: 0; padding-bottom: .4rem; }
    .admin-logo img { width: 11rem; max-height: 4.8rem; }
    .admin-nav { display: flex; gap: .8rem; overflow-x: auto; padding: .3rem 0 .8rem; }
    .admin-nav-group { min-width: 18rem; margin-bottom: 0; }
    .admin-sidebar-actions { display: flex; flex-wrap: wrap; border-top: .1rem solid rgba(255,255,255,.1); }
    .admin-sidebar-actions form { min-width: 14rem; }
    .admin-main { padding: 1.6rem; }
    .admin-topbar { position: static; margin: -1.6rem -1.6rem 1.6rem; padding: 1.2rem 1.6rem; }
    .admin-card-head { flex-direction: column; }
    .admin-filter { width: 100%; }
    .inline-status-form { align-items: stretch; flex-direction: column; }
    .inline-status-form select, .inline-status-form button { width: 100%; }
    .scrape-progress-head { flex-direction: column; }
    .scrape-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    html { font-size: 56.5%; }
    .page-width { width: min(100% - 3rem, var(--page-width)); }
    .announcement-slider { font-size: 1.38rem; }
    .announcement-track { inset-inline: 4.4rem; }
    .announcement-arrow { width: 4.4rem; font-size: 2.8rem; }
    .nav-drawer { top: 5.4rem; min-height: calc(100vh - 5.4rem); }
    .image-banner { padding-block: 0; }
    .image-banner img { aspect-ratio: 5 / 3; height: auto; object-fit: cover; object-position: center; }
    .collection-banner { padding-block: .8rem; }
    .collection-banner img { max-height: none; height: auto; object-fit: contain; }
    .section { padding-block: 2.7rem; }
    .product-info p { display: none; }
    .product-title { font-size: 1.42rem; }
    .price-row { font-size: 1.26rem; }
    .feedback-form { gap: 1.25rem; }
    .site-footer { padding-block: 3rem; }
    .collection-toolbar { display: block; }
    .cart-item { grid-template-columns: 7.2rem 1fr; gap: 1.2rem; }
    .cart-item .quantity-stepper, .cart-item strong { grid-column: 2; }
    .cart-item img { width: 7.2rem; height: 7.2rem; }
    .metric-grid, .admin-form.two { grid-template-columns: 1fr; }
    .admin-head { align-items: flex-start; flex-direction: column; }
    .admin-topbar { align-items: flex-start; flex-direction: column; }
    th, td { padding: 1rem .9rem; }
    .admin-table-wrap { overflow: visible; border: 0; background: transparent; }
    .admin-table-wrap table, .admin-table-wrap thead, .admin-table-wrap tbody, .admin-table-wrap tr, .admin-table-wrap th, .admin-table-wrap td { display: block; width: 100%; min-width: 0; }
    .admin-table-wrap thead { display: none; }
    .admin-table-wrap tr { margin-bottom: 1rem; border: .1rem solid rgba(74,54,80,.1); border-radius: .8rem; background: #fff; overflow: hidden; }
    .admin-table-wrap td { display: grid; grid-template-columns: minmax(9rem, 34%) 1fr; gap: 1rem; border-bottom: .1rem solid rgba(74,54,80,.08); }
    .admin-table-wrap td::before { content: attr(data-label); color: rgba(37,33,42,.58); font-weight: 850; }
    .admin-table-wrap td:last-child { border-bottom: 0; }
    .admin-table-wrap .empty-state { display: block; }
    .admin-table-wrap .empty-state::before { content: ""; display: none; }
    .actions-cell { align-items: stretch; }
    .actions-cell > * { width: 100%; justify-content: center; }
    .image-row { grid-template-columns: 6.4rem 1fr; }
    .image-row form { grid-column: 1 / -1; }
}

/* Review photo upload */
.review-photo-hint { font-weight: 400; color: var(--color-muted); font-size: 1.3rem; }
.review-photo-input {
    display: block;
    width: 100%;
    padding: .8rem 1rem;
    border: .1rem dashed var(--color-border);
    border-radius: .35rem;
    background: #fafafa;
    cursor: pointer;
    font-size: 1.3rem;
    color: var(--color-muted);
}
.review-photo { max-width: 28rem; max-height: 22rem; object-fit: cover; border-radius: .5rem; margin-top: .8rem; border: .1rem solid var(--color-border); }

/* Product section headings bold */
.product-section-heading {
    font-weight: 800 !important;
    font-family: var(--font-body-family) !important;
    font-size: 2rem !important;
}
.included-list li { font-weight: 600; }

/* Delivery info box */
.delivery-info-box {
    background: var(--color-accent-soft);
    border: .1rem solid rgba(184,102,156,.2);
    border-radius: 1rem;
    padding: 2.2rem 2.4rem;
    margin-bottom: 2.4rem;
}
.delivery-info-title {
    font-family: var(--font-body-family);
    font-weight: 800;
    font-size: 1.8rem;
    margin: 0 0 1.6rem;
    color: var(--color-accent-dark);
}
.delivery-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.delivery-city-block h3 {
    font-family: var(--font-body-family);
    font-weight: 800;
    font-size: 1.55rem;
    margin: 0 0 .9rem;
    color: var(--color-accent-dark);
}
.delivery-table { width: auto; border-collapse: collapse; }
.delivery-table td {
    padding: .45rem .9rem .45rem 0;
    border: 0;
    font-size: 1.42rem;
    vertical-align: middle;
}
.delivery-table td:first-child { padding-right: 2rem; color: var(--color-muted); }
.delivery-info-note { margin: 1.4rem 0 0; font-size: 1.32rem; color: var(--color-muted); }
@media (max-width: 620px) {
    .delivery-info-grid { grid-template-columns: 1fr; gap: 1.4rem; }
}

/* Announcement bar hide-on-scroll */
.announcement-slider.bar-hidden { max-height: 0 !important; min-height: 0 !important; overflow: hidden; opacity: 0; pointer-events: none; }


/* search-open state (JS-driven, works on mobile + direct click) */
.header-search.search-open input { width: 16rem; opacity: 1; border-bottom: .1rem solid currentColor; padding: .65rem .5rem; }
