:root {
    --ink: #2d2433;
    --muted: #6f6676;
    --line: #eadce8;
    --paper: #fff9fd;
    --panel: #ffffff;
    --rose: #cf5d8a;
    --rose-dark: #a64070;
    --leaf: #4f8a6a;
    --sun: #f3be75;
    --shadow: 0 24px 70px rgba(93, 52, 87, .14);
    --topbar-offset: 0px;
}

* { box-sizing: border-box; }

[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background:
        linear-gradient(180deg, #fff9fd 0%, #fff4fb 44%, #f5fcf6 100%);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button, input, select, textarea { font: inherit; }

a { color: inherit; text-decoration: none; }

.app-shell { overflow: visible; }

.topbar {
    position: sticky;
    top: 12px;
    z-index: 20;
    display: grid;
    align-items: center;
    grid-template-columns: auto minmax(220px, 1fr) auto auto;
    width: min(1240px, calc(100% - 24px));
    gap: 16px;
    margin: 12px auto -76px;
    padding: 12px 16px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.97), rgba(255,244,251,.94)),
        radial-gradient(circle at 12% 0%, rgba(207,93,138,.12), transparent 32%),
        radial-gradient(circle at 78% 100%, rgba(79,138,106,.11), transparent 34%);
    border: 1px solid rgba(255, 255, 255, .82);
    border-radius: 22px;
    backdrop-filter: blur(22px);
    box-shadow: 0 18px 50px rgba(93,52,87,.14);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: max-content;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: #fff;
    background:
        radial-gradient(circle at 32% 25%, rgba(255,255,255,.32), transparent 28%),
        linear-gradient(135deg, var(--rose), var(--rose-dark));
    border-radius: 50%;
    font-weight: 800;
    box-shadow: 0 12px 24px rgba(180,79,99,.26);
}

.brand strong, .brand small { display: block; }
.brand strong { color: var(--ink); font-size: 16px; }
.brand small { color: var(--muted); font-size: 12px; }

.topbar-meta {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding-left: 16px;
    border-left: 1px solid rgba(45, 36, 51, .08);
}

.topbar-meta strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 850;
}

.topbar-meta span {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-left: 0;
    padding: 6px;
    color: var(--ink);
    background: rgba(255,255,255,.88);
    border: 1px solid rgba(231,222,213,.9);
    border-radius: 999px;
    justify-self: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}

.nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    color: var(--ink);
    font-size: 15px;
    font-weight: 850;
    transition: color .18s ease, background .18s ease, box-shadow .18s ease;
}

.nav a:hover {
    color: var(--rose-dark);
    background: rgba(180,79,99,.08);
    box-shadow: inset 0 0 0 1px rgba(180,79,99,.12);
}

.category-menu {
    position: relative;
}

.nav-accordion-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    border: 1px solid rgba(63, 110, 88, .18);
    border-radius: 999px;
    padding: 0 13px 0 10px;
    color: var(--leaf);
    background: rgba(63, 110, 88, .08);
    cursor: pointer;
    font-weight: 850;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}

.category-menu.open .nav-accordion-button,
.nav-accordion-button:hover {
    color: #fff;
    background: var(--leaf);
    border-color: var(--leaf);
    box-shadow: 0 10px 24px rgba(63, 110, 88, .20);
}

.category-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 28%, currentColor 0 2px, transparent 2.5px),
        radial-gradient(circle at 34% 56%, currentColor 0 2px, transparent 2.5px),
        radial-gradient(circle at 66% 56%, currentColor 0 2px, transparent 2.5px);
    color: var(--leaf);
    border: 1px solid rgba(63, 110, 88, .22);
}

.category-menu.open .category-dot,
.nav-accordion-button:hover .category-dot {
    color: #fff;
    border-color: rgba(255,255,255,.35);
}

.nav-accordion-button .chevron {
    font-size: 14px;
    line-height: 1;
    transition: transform .18s ease;
}

.category-menu.open .nav-accordion-button .chevron {
    transform: rotate(180deg);
}

.category-accordion {
    position: absolute;
    top: calc(100% + 16px);
    right: 0;
    width: min(360px, calc(100vw - 32px));
    padding: 16px;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
    backdrop-filter: blur(18px);
}

.category-accordion-head {
    margin-bottom: 12px;
}

.category-accordion-head strong,
.category-accordion-head small {
    display: block;
}

.category-accordion-head small {
    color: var(--muted);
    margin-top: 3px;
}

.category-accordion .category-tabs {
    display: grid;
    gap: 8px;
    margin: 0;
}

.category-accordion .category-tabs button {
    width: 100%;
    justify-content: space-between;
    text-align: left;
    border-radius: 8px;
}

.category-accordion .category-tabs button.child-category {
    padding-left: 24px;
    color: var(--rose-dark);
    background: rgba(180,79,99,.06);
}

.cart-button, .primary-button, .ghost-button, .primary-link, .ghost-link, .icon-button {
    border: 0;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.cart-button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 48px;
    padding: 8px 9px 8px 13px;
    color: #fff;
    background:
        linear-gradient(135deg, #2d2433, #5f4363 48%, var(--rose-dark));
    border-radius: 999px;
    box-shadow: 0 16px 34px rgba(75, 45, 78, .20);
    justify-self: end;
}

.cart-icon {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cart-label {
    font-weight: 850;
}

.cart-button strong {
    display: grid;
    place-items: center;
    min-width: 30px;
    height: 30px;
    color: var(--ink);
    background: #fff;
    border-radius: 50%;
    font-weight: 950;
    box-shadow: inset 0 0 0 1px rgba(37, 33, 31, .05);
}

.hero {
    position: relative;
    min-height: 680px;
    display: grid;
    align-items: end;
    padding: 120px clamp(18px, 5vw, 72px) 58px;
}

.hero-media {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(37,33,31,.70), rgba(37,33,31,.22) 46%, rgba(37,33,31,.04)),
        url("https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?auto=format&fit=crop&w=2200&q=86") center/cover;
}

.hero-content {
    position: relative;
    max-width: 760px;
    color: #fff;
}

.eyebrow {
    margin: 0 0 10px;
    color: var(--rose);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.hero .eyebrow { color: #ffd6de; }

h1, h2, h3, p { margin-top: 0; }

h1 {
    margin-bottom: 18px;
    font-size: clamp(42px, 6vw, 76px);
    line-height: .98;
    letter-spacing: 0;
}

h2 {
    margin-bottom: 0;
    font-size: clamp(28px, 3vw, 44px);
    line-height: 1.05;
    letter-spacing: 0;
}

h3 { margin: 0 0 14px; font-size: 20px; }

.hero-content p:not(.eyebrow) {
    max-width: 590px;
    color: rgba(255,255,255,.86);
    font-size: 19px;
    line-height: 1.6;
}

.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

.primary-link, .ghost-link, .primary-button, .ghost-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 6px;
    font-weight: 800;
}

.primary-link, .primary-button {
    color: #fff;
    background: var(--rose);
    box-shadow: 0 12px 28px rgba(180, 79, 99, .28);
}

.ghost-link, .ghost-button {
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
}

.hero .ghost-link { color: #fff; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.32); }

.primary-button:hover, .primary-link:hover, .cart-button:hover { transform: translateY(-1px); }

.service-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--line);
    border-block: 1px solid var(--line);
}

.service-strip div {
    padding: 24px clamp(16px, 3vw, 36px);
    background: #fff;
}

.service-strip strong { display: block; font-size: 24px; color: var(--leaf); }
.service-strip span { color: var(--muted); }

.catalog-section, .admin-section, .checkout-band, .content-section {
    padding: 72px clamp(16px, 4vw, 56px);
}

.catalog-section {
    position: relative;
    background:
        linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,246,248,.92)),
        url("https://images.unsplash.com/photo-1490750967868-88aa4486c946?auto=format&fit=crop&w=1800&q=70") center/cover;
}

.catalog-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 250, 245, .72);
    pointer-events: none;
}

.catalog-section > * {
    position: relative;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.section-heading.compact { align-items: center; }

.search-box {
    display: grid;
    gap: 7px;
    min-width: min(100%, 320px);
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

input, select, textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 12px 13px;
    color: var(--ink);
    background: #fff;
    outline: none;
}

textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(180,79,99,.12); }

.category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 24px;
}

.category-tabs button {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 10px 15px;
    color: var(--muted);
    background: #fff;
    cursor: pointer;
}

.category-tabs button.active {
    color: #fff;
    background: var(--leaf);
    border-color: var(--leaf);
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 14px;
}

.catalog-layout {
    display: block;
}

.catalog-more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 18px;
}

.catalog-tools {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}

.filter-open-button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 46px;
    padding: 0 15px;
    border: 1px solid rgba(180,79,99,.22);
    border-radius: 999px;
    color: var(--ink);
    background: rgba(255,255,255,.9);
    box-shadow: 0 12px 28px rgba(42,31,24,.08);
    cursor: pointer;
    font-weight: 900;
}

.filter-open-button strong {
    display: grid;
    place-items: center;
    min-width: 24px;
    height: 24px;
    color: #fff;
    background: var(--rose);
    border-radius: 50%;
    font-size: 12px;
}

.filter-icon {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background:
        linear-gradient(currentColor, currentColor) 50% 4px/14px 2px no-repeat,
        linear-gradient(currentColor, currentColor) 50% 9px/10px 2px no-repeat,
        linear-gradient(currentColor, currentColor) 50% 14px/6px 2px no-repeat;
    color: var(--leaf);
}

.filter-drawer {
    position: fixed;
    inset: 0;
    z-index: 58;
    display: none;
}

.filter-drawer.open {
    display: block;
}

.filter-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(37,33,31,.42);
    backdrop-filter: blur(8px);
}

.filter-panel {
    position: absolute;
    top: 0;
    
    width: min(420px, 100%);
    height: 100%;
    overflow: auto;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,250,245,.98));
    box-shadow: -24px 0 70px rgba(37,33,31,.20);
}

.compact-filters {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 16px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.filter-group {
    min-width: 0;
}

.filter-group > span,
.filter-range label,
.sort-compact {
    display: block;
    margin-bottom: 7px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    max-height: 132px;
    overflow: auto;
}

.filter-pills button {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 8px 11px;
    color: var(--muted);
    background: #fff;
    cursor: pointer;
    font-weight: 800;
    white-space: nowrap;
}

.filter-pills button.active {
    color: #fff;
    background: var(--leaf);
    border-color: var(--leaf);
}

.filter-range {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.filter-range input,
.sort-compact select {
    min-height: 40px;
    padding: 9px 10px;
}

.filters-panel {
    position: sticky;
    top: 86px;
    display: grid;
    gap: 13px;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(42,31,24,.06);
}

.filters-panel label {
    display: grid;
    gap: 7px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.product-card {
    position: relative;
    isolation: isolate;
    aspect-ratio: 9 / 16;
    overflow: hidden;
    background: #261b31;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 16px;
    box-shadow: 0 18px 42px rgba(74,46,78,.13);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
}

.product-card:hover {
    transform: translateY(-4px);
    border-color: rgba(207,93,138,.38);
    box-shadow: 0 26px 56px rgba(74,46,78,.18);
}

.product-image {
    position: absolute;
    inset: 0;
    height: 100%;
    background:
        radial-gradient(circle at 50% 18%, rgba(255,255,255,.18), transparent 38%),
        linear-gradient(135deg, #24172e, #6d4660 52%, #1b1224);
}

.product-image::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(28,20,33,.32) 0%, rgba(28,20,33,0) 28%),
        linear-gradient(0deg, rgba(19,13,22,.88) 0%, rgba(19,13,22,.58) 30%, rgba(19,13,22,0) 62%);
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.product-image video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.media-chip {
    position: absolute;
    z-index: 3;
    right: 12px;
    top: 12px;
    padding: 6px 9px;
    color: #fff;
    background: rgba(45,36,51,.84);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}

.badge {
    position: absolute;
    z-index: 3;
    top: 12px;
    left: 12px;
    padding: 7px 10px;
    color: #fff;
    background: var(--rose-dark);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.product-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: grid;
    gap: 10px;
    padding: 16px;
    background: linear-gradient(180deg, rgba(18,13,21,0) 0%, rgba(18,13,21,.18) 14%, rgba(18,13,21,.72) 42%, rgba(18,13,21,.95) 100%);
    color: #fff;
}
.product-body h3 {
    margin-bottom: 0;
    color: #fff9fc;
    font-size: clamp(15px, 1vw, 19px);
    line-height: 1.08;
    text-shadow: 0 3px 16px rgba(0,0,0,.52);
}
.product-body p { display: none; }

.product-tags {
    position: absolute;
    top: 50px;
    left: 12px;
    right: 12px;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 0;
    margin-bottom: 0;
}

.product-tags span {
    padding: 4px 7px;
    color: #fff;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    backdrop-filter: blur(10px);
}

.product-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 0;
}

.product-price-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 7px;
}

.price {
    color: #045739;
    font-size: 22px;
    font-weight: 950;
    line-height: 1;
}
.old-price {
    color: #0f0d0c;
    text-decoration: line-through;
    margin-left: 0;
    font-size: 14px;
    font-weight: 800;
}

.option-select {
    min-width: 0;
    margin-top: 0;
    color: #fff;
    background: #4d3b54;
    border-color: rgba(255,255,255,.26);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.20);
    backdrop-filter: blur(12px);
}

.add-button {
    display: grid;
    place-items: center;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    color: var(--ink);
    background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,.88), transparent 27%),
        linear-gradient(135deg, #ffffff, #ffe3ea 48%, #f1b45b);
    box-shadow: 0 14px 28px rgba(0,0,0,.24);
    cursor: pointer;
}

.add-button svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.add-button:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 18px 34px rgba(0,0,0,.30);
}

.fly-cart {
    position: fixed;
    z-index: 120;
    pointer-events: none;
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 0 18px 46px rgba(74,46,78,.28);
    transition: transform .72s cubic-bezier(.18,.76,.2,1), opacity .72s ease;
    will-change: transform, opacity;
}

.fly-cart-video {
    display: grid;
    place-items: center;
    color: #fff;
    background:
        linear-gradient(180deg, rgba(24,18,29,.18), rgba(24,18,29,.68)),
        linear-gradient(135deg, #2b2034, #694a68 52%, #1b1424);
}

.fly-cart-video span {
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    font-size: 12px;
    font-weight: 900;
}

.cart-button.cart-pulse {
    animation: cartPulse .72s ease;
}

@keyframes cartPulse {
    0%, 100% { transform: scale(1); }
    42% { transform: scale(1.08); }
}

.product-modal {
    position: fixed;
    inset: var(--topbar-offset) 0 0 0;
    z-index: 65;
    display: none;
    align-items: stretch;
    justify-content: center;
    padding: 0;
    overflow-y: auto;
    background: rgba(255, 255, 255, .98);
    backdrop-filter: blur(10px);
}

.product-modal.open {
    display: flex;
}

.modal-lock {
    overflow: hidden;
}

.product-modal-panel {
    position: relative;
    width: 100vw;
    min-height: calc(100dvh - var(--topbar-offset));
    height: calc(100dvh - var(--topbar-offset));
    max-height: calc(100dvh - var(--topbar-offset));
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 28vw);
    gap: 0;
    overflow: hidden;
    background: #0f0d0c;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.product-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 4;
    background: rgba(255,255,255,.9);
    box-shadow: 0 10px 24px rgba(37,33,31,.16);
}

.product-modal-media {
    position: relative;
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    padding: 18px 18px 20px;
    background: #0f0d0c;
}

.product-slider {
    position: relative;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    border-radius: 0;
    background: #0f0d0c;
    touch-action: pan-y;
    user-select: none;
}

.product-slide-stage {
    position: relative;
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.product-slider img,
.product-slider video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.product-slider img[data-orientation="landscape"],
.product-slider video[data-orientation="landscape"] {
    width: 100%;
    height: 100%;
}

.product-slider img[data-orientation="portrait"],
.product-slider video[data-orientation="portrait"] {
    width: 100%;
    height: 100%;
}

.modal-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 48px;
    height: 64px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.14);
    cursor: pointer;
    font-size: 44px;
    line-height: 1;
    transform: translateY(-50%);
    backdrop-filter: blur(10px);
}

.modal-nav:hover {
    background: rgba(255,255,255,.24);
}

.modal-nav.prev { left: 16px; }
.modal-nav.next { right: 16px; }

.product-thumbs {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 82px;
    gap: 9px;
    margin-top: 14px;
    overflow-x: auto;
    padding-bottom: 3px;
    justify-content: center;
}

.product-thumbs button {
    position: relative;
    height: 76px;
    overflow: hidden;
    border: 2px solid rgba(255,255,255,.18);
    border-radius: 8px;
    background: #211d1b;
    cursor: pointer;
    padding: 0;
}

.product-thumbs button.active {
    border-color: var(--rose);
}

.product-thumbs img,
.product-thumbs video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-thumbs span {
    position: absolute;
    left: 6px;
    bottom: 6px;
    padding: 3px 6px;
    color: #fff;
    background: rgba(37,33,31,.86);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
}

.product-modal-info {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 14px;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    color: var(--ink);
    background: rgba(255,255,255,.98);
    padding: clamp(22px, 4vw, 42px);
}

.product-modal-info h2 {
    margin-bottom: 14px;
    font-size: clamp(28px, 3.8vw, 46px);
}

.product-modal-info p:not(.eyebrow) {
    margin-bottom: 0;
    color: var(--muted);
    line-height: 1.62;
}

.modal-tags {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 2px 0 4px;
}

.modal-tags span {
    padding: 6px 10px;
    color: var(--ink);
    background: rgba(180,79,99,.08);
    border: 1px solid rgba(180,79,99,.16);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    backdrop-filter: none;
}

.modal-price-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 18px 0 12px;
}

.modal-option-label {
    display: grid;
    gap: 8px;
    margin: 0 0 16px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 900;
}

.checkout-band {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: var(--leaf);
    color: #fff;
}

.checkout-band .eyebrow { color: #cde7d8; }

.content-section {
    background: #fff;
}

.content-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.reviews-luxury {
    margin-top: 30px;
    overflow: hidden;
}

.articles-section {
    margin-top: 30px;
}

.articles-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.article-card {
    display: grid;
    gap: 0;
    overflow: hidden;
    scroll-margin-top: calc(var(--topbar-offset) + 24px);
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fffdfb;
    box-shadow: 0 12px 28px rgba(42,31,24,.06);
}

.article-card img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}

.article-copy {
    display: grid;
    gap: 12px;
    padding: 20px;
}

.article-copy span {
    color: var(--rose-dark);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.article-copy h3 {
    margin: 0;
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1.08;
}

.article-copy p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.article-tags span {
    padding: 6px 10px;
    border: 1px solid rgba(180,79,99,.16);
    border-radius: 999px;
    background: rgba(180,79,99,.06);
    color: var(--rose-dark);
    font-size: 12px;
    font-weight: 800;
    text-transform: none;
}

.article-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.article-link {
    min-height: 38px;
}

.article-body {
    display: grid;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid rgba(37,33,31,.08);
    color: var(--muted);
    line-height: 1.72;
}

.article-body p {
    margin: 0;
}

.reviews-window {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.68);
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.86), rgba(255,246,248,.74)),
        radial-gradient(circle at 12% 18%, rgba(180,79,99,.15), transparent 36%),
        radial-gradient(circle at 85% 76%, rgba(63,110,88,.14), transparent 32%);
    box-shadow: 0 24px 70px rgba(42,31,24,.13);
}

.reviews-track {
    display: flex;
    transform: translateX(var(--review-offset));
    transition: transform .42s ease;
}

.review-slide {
    flex: 0 0 100%;
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr);
    min-height: 360px;
}

.review-photo {
    min-height: 360px;
    background: #2b2421;
}

.review-photo img,
.review-photo-fallback {
    width: 100%;
    height: 100%;
}

.review-photo img {
    display: block;
    object-fit: cover;
}

.review-photo-fallback {
    display: grid;
    place-items: center;
    color: rgba(255,255,255,.74);
    font-weight: 950;
    background: linear-gradient(135deg, var(--ink), var(--rose-dark));
}

.review-copy {
    display: grid;
    align-content: center;
    gap: 14px;
    padding: clamp(24px, 4vw, 54px);
}

.review-copy span {
    color: var(--rose-dark);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 12px;
}

.review-copy h3 {
    margin: 0;
    font-size: clamp(28px, 4vw, 52px);
    line-height: .98;
}

.review-copy p {
    max-width: 680px;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.62;
}

.slider-controls {
    display: flex;
    gap: 8px;
}

.slider-controls button {
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--ink);
    background: #fff;
    cursor: pointer;
    font-size: 26px;
    box-shadow: 0 12px 24px rgba(42,31,24,.08);
}

.content-block {
    display: grid;
    gap: 14px;
    padding: 18px;
    min-height: 100%;
    scroll-margin-top: calc(var(--topbar-offset) + 24px);
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fffaf7;
}

.content-block.about {
    grid-column: span 2;
}

.content-block img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 6px;
}

.content-block span {
    display: block;
    margin-bottom: 8px;
    color: var(--rose);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.content-block p {
    color: var(--muted);
    line-height: 1.58;
}

.block-author {
    display: block;
    margin-top: 10px;
}

.block-link {
    width: fit-content;
    margin-top: 12px;
}

.rating {
    color: var(--sun);
    margin-bottom: 8px;
    letter-spacing: 0;
}

.admin-section { background: #f5eee7; }
.admin-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: clamp(18px, 3vw, 32px);
    box-shadow: var(--shadow);
}

.admin-login {
    display: grid;
    grid-template-columns: minmax(0, 320px) auto 1fr;
    align-items: center;
    gap: 12px;
}

.muted { color: var(--muted); }

.admin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: 26px;
    margin-top: 10px;
}

.admin-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 8px 0 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}

.admin-tabs button {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 10px 14px;
    background: #fff;
    color: var(--muted);
    font-weight: 800;
    cursor: pointer;
}

.admin-tabs button.active {
    color: #fff;
    background: var(--ink);
    border-color: var(--ink);
}

.admin-pane {
    display: none;
}

.admin-pane.active {
    display: block;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.stat-card {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fffaf7;
}

.stat-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.stat-card strong {
    display: block;
    margin-top: 8px;
    font-size: 26px;
}

.product-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.product-form label, .checkout-form label {
    display: grid;
    gap: 7px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.wide { grid-column: 1 / -1; }
.checkbox { display: flex !important; align-items: center; gap: 8px !important; }
.checkbox input { width: auto; }
.form-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.small {
    min-height: 34px;
    padding: 0 12px;
    font-size: 13px;
}

.mini-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.mini-heading small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.option-editor {
    padding: 13px;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: #fffaf7;
}

.media-uploader {
    padding: 13px;
    border: 1px dashed rgba(63, 110, 88, .34);
    border-radius: 10px;
    background: #f8fbf6;
}

.upload-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    color: #fff;
    background: var(--leaf);
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.upload-button input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.media-preview-grid,
.block-image-preview {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: 10px;
}

.media-thumb {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
}

.media-thumb img,
.media-thumb video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.media-thumb span {
    position: absolute;
    left: 7px;
    bottom: 7px;
    padding: 4px 7px;
    color: #fff;
    background: rgba(37,33,31,.84);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
}

.media-thumb button {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: rgba(37,33,31,.82);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
}

.option-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(110px, .55fr) auto;
    gap: 8px;
    margin-top: 8px;
}

.orders-list, .admin-products, .cart-items {
    display: grid;
    gap: 10px;
}

.order-card, .admin-product-row, .cart-row {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px;
    background: #fffaf7;
}

.order-card small {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    line-height: 1.45;
}

.order-card header, .admin-product-row, .cart-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.drawer {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: none;
    justify-content: flex-end;
    background: rgba(37, 33, 31, .44);
}

.drawer.open { display: flex; }

.drawer-panel {
    width: min(100%, 520px);
    height: 100%;
    overflow: auto;
    padding: 24px;
    background: #fff;
    box-shadow: var(--shadow);
}

.drawer-head {
    display: flex;
    justify-content: space-between;
    align-items: start;
    margin-bottom: 18px;
}

.icon-button {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #f4eee9;
    font-size: 28px;
}

.cart-row img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 6px;
}

.cart-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.cart-main strong, .admin-product-row strong { display: block; }
.cart-main span, .order-card p, .admin-product-row span { color: var(--muted); font-size: 13px; }

.cart-option {
    display: grid;
    gap: 5px;
    margin-top: 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.cart-option select {
    min-width: 180px;
    padding: 8px 10px;
    border-radius: 8px;
}

.qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.qty button {
    width: 30px;
    height: 30px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
}

.checkout-form {
    display: grid;
    gap: 13px;
    margin-top: 18px;
}

.delivery-note {
    margin: -2px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.cart-total {
    display: flex;
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 20px;
}

.full { width: 100%; }
.form-message { min-height: 24px; color: var(--leaf); font-weight: 800; }

.toast {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 70;
    max-width: min(360px, calc(100vw - 36px));
    padding: 14px 16px;
    color: #fff;
    background: var(--ink);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.admin-body {
    background: #f3f0ec;
}

.admin-app {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
}

.admin-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 22px;
    background: #211d1b;
    color: #fff;
}

.admin-brand {
    color: #fff;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,.14);
}

.admin-brand small {
    color: rgba(255,255,255,.62);
}

.admin-menu {
    display: grid;
    gap: 8px;
}

.admin-menu button,
.quick-actions button {
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 12px 13px;
    text-align: left;
    color: inherit;
    background: transparent;
    cursor: pointer;
    font-weight: 850;
}

.admin-menu button {
    color: rgba(255,255,255,.72);
}

.admin-menu button.active,
.admin-menu button:hover {
    color: #fff;
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.14);
}

.admin-sidebar-foot {
    display: grid;
    gap: 10px;
    margin-top: auto;
}

.admin-main {
    min-width: 0;
    padding: clamp(18px, 3vw, 34px);
}

.product-editor-modal {
    position: fixed;
    inset: clamp(12px, 3vw, 34px);
    z-index: 80;
    display: none;
    max-width: 1100px;
    margin: auto;
    overflow: auto;
    border-color: rgba(255,255,255,.7);
    box-shadow: 0 30px 90px rgba(20,16,14,.32);
}

.product-editor-modal.open {
    display: block;
}

.product-editor-modal::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
   
    backdrop-filter: blur(10px);
}

.list-tools {
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fffaf7;
}

.list-tools label {
    display: grid;
    gap: 7px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 900;
}

.admin-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.admin-topline h1 {
    margin: 0;
    color: var(--ink);
    font-size: clamp(32px, 4vw, 54px);
}

.admin-top-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.admin-login-page {
    min-height: 60vh;
    display: grid;
    place-items: center;
}

.login-panel,
.manager-card {
    background: rgba(255,255,255,.92);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 18px 54px rgba(42,31,24,.10);
}

.login-panel {
    width: min(100%, 430px);
    display: grid;
    gap: 13px;
    padding: 26px;
}

.admin-split {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: 16px;
    margin-top: 16px;
}

.manager-layout {
    display: grid;
    grid-template-columns: minmax(420px, .92fr) minmax(0, 1.08fr);
    gap: 18px;
    align-items: start;
}

.manager-card {
    padding: clamp(16px, 2vw, 22px);
}

.manager-card h2 {
    font-size: 26px;
    margin-bottom: 10px;
}

.manager-row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fffaf7;
}

.manager-row + .manager-row {
    margin-top: 10px;
}

.manager-row.no-image {
    grid-template-columns: minmax(0, 1fr) auto;
}

.manager-row img,
.manager-row video {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 10px;
}

.manager-media {
    position: relative;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: 10px;
    background: #eadfd6;
}

.manager-media img,
.manager-media video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.manager-media span {
    position: absolute;
    left: 6px;
    bottom: 6px;
    padding: 3px 6px;
    color: #fff;
    background: rgba(37,33,31,.84);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
}

.manager-row strong,
.manager-row span,
.manager-row small {
    display: block;
}

.manager-row span,
.manager-row small {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.row-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.orders-list.compact .order-card {
    background: #fff;
}

.quick-actions {
    display: grid;
    gap: 10px;
}

.quick-actions button {
    color: var(--ink);
    background: #fffaf7;
    border-color: var(--line);
}

.quick-actions button:hover {
    border-color: var(--rose);
    box-shadow: 0 0 0 3px rgba(180,79,99,.10);
}

.telegram-help {
    display: grid;
    gap: 5px;
    padding: 13px;
    color: var(--muted);
    background: #f8fbf6;
    border: 1px solid rgba(63,110,88,.20);
    border-radius: 8px;
    line-height: 1.45;
}

.telegram-help strong {
    color: var(--leaf);
}

.settings-stack {
    display: grid;
    gap: 16px;
}

.settings-panel {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fffaf7;
}

.settings-panel h3 {
    margin-bottom: 0;
}

.field-hint {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 1360px) {
    .product-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (max-width: 1040px) {
    .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .admin-grid { grid-template-columns: 1fr; }
    .compact-filters { grid-template-columns: 1fr; }
    .filters-panel { position: static; }
    .content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-block.about { grid-column: span 1; }
    .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .admin-app {
        grid-template-columns: 1fr;
    }
    .admin-sidebar {
        position: static;
        height: auto;
    }
    .admin-menu {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .admin-split,
    .manager-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .topbar {
        position: fixed;
        top: 8px;
        left: 8px;
        right: 8px;
        width: auto;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 9px 10px;
        margin: 0;
        padding: 10px;
        border: 1px solid rgba(255, 255, 255, .62);
        border-radius: 18px;
        background: rgba(255, 249, 253, .92);
        box-shadow: 0 18px 42px rgba(75, 45, 78, .20);
    }
    .topbar-meta {
        display: none;
    }
    .brand {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        gap: 10px;
    }
    .brand-mark {
        width: 38px;
        height: 38px;
    }
    .brand strong {
        max-width: 155px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .nav {
        grid-column: 1 / -1;
        grid-row: 2;
        order: 0;
        width: 100%;
        justify-content: flex-start;
        gap: 7px;
        overflow-x: auto;
        padding: 2px 0 1px;
        scrollbar-width: none;
        justify-self: stretch;
    }
    .nav::-webkit-scrollbar { display: none; }
    .nav a,
    .nav-accordion-button {
        min-height: 34px;
        flex: 0 0 auto;
        border: 1px solid var(--line);
        border-radius: 999px;
        padding: 0 11px;
        color: var(--muted);
        background: rgba(255,255,255,.72);
        font-size: 14px;
        font-weight: 850;
    }
    .nav a {
        display: inline-flex;
        align-items: center;
    }
    .nav a[href="admin.php"] {
        color: var(--rose-dark);
        background: rgba(180,79,99,.09);
        border-color: rgba(180,79,99,.18);
    }
    .nav-accordion-button {
        gap: 7px;
    }
    .category-dot {
        width: 17px;
        height: 17px;
    }
    .cart-button {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        min-height: 42px;
        gap: 7px;
        padding: 7px 7px 7px 11px;
        margin-left: 0;
    }
    .catalog-more {
        flex-direction: column;
        align-items: stretch;
    }
    .cart-icon {
        width: 20px;
        height: 20px;
    }
    .cart-label {
        display: none;
    }
    .cart-button strong {
        min-width: 28px;
        height: 28px;
    }
    .category-accordion {
        position: fixed;
        top: 112px;
        left: 10px;
        right: 10px;
        width: auto;
        max-height: calc(100vh - 116px);
        overflow: auto;
        border-radius: 16px;
    }
    .hero { min-height: 620px; padding-top: 142px; }
    h1 { font-size: 42px; }
    .service-strip { grid-template-columns: 1fr 1fr; }
    .section-heading, .checkout-band { display: grid; }
    .catalog-tools {
        align-items: flex-start;
        flex-direction: column;
    }
    .compact-filters { grid-template-columns: 1fr; }
    .filter-panel {
        width: min(360px, 92vw);
        padding: 18px;
    }
    .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    .product-card:hover {
        transform: none;
    }
    .product-card {
        display: block;
        aspect-ratio: 9 / 16;
        min-width: 0;
    }
    .product-image {
        position: absolute;
        inset: 0;
        height: 100%;
        aspect-ratio: auto;
    }
    .product-body {
        position: absolute;
        display: grid;
        padding: 10px;
        gap: 8px;
    }
    .product-tags {
        top: 44px;
        min-height: 0;
    }
    .product-tags span {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 10px;
        padding: 3px 6px;
    }
    .product-tags span:nth-child(n+2) {
        display: none;
    }
    .product-body h3 {
        height: auto;
        max-height: 40px;
        overflow: hidden;
        margin-bottom: 0;
        font-size: 16px;
        line-height: 1.2;
    }
    .product-body p {
        height: 58px;
        min-height: 0;
        margin-bottom: 10px;
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        font-size: 13px;
    }
    .option-select {
        min-height: 40px;
        margin-top: 0;
        padding: 9px 10px;
        font-size: 13px;
    }
    .product-meta {
        align-items: center;
        margin-top: 0;
    }
    .price {
        display: inline;
        font-size: 18px;
        line-height: 1.1;
    }
    .old-price {
        display: inline;
        margin: 0;
        font-size: 12px;
    }
    .add-button {
        flex: 0 0 40px;
        width: 40px;
        height: 40px;
        font-size: 22px;
    }
    .product-modal {
        align-items: stretch;
        padding: 0;
    }
    .product-modal-panel {
        min-height: calc(100dvh - var(--topbar-offset));
        height: auto;
        max-height: none;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        overflow: visible;
        border-radius: 0;
    }
    .product-modal-media {
        min-height: calc(100dvh - var(--topbar-offset) - 16px);
        padding: 10px 10px 12px;
    }
    .product-slider {
        min-height: calc(100dvh - var(--topbar-offset) - 108px);
        height: auto;
    }
    .modal-nav {
        display: none;
    }
    .product-thumbs {
        grid-auto-columns: 68px;
        justify-content: start;
    }
    .product-thumbs button {
        height: 62px;
    }
    .product-modal-info {
        max-height: none;
        min-height: 0;
        overflow: visible;
        padding: 18px;
    }
    .product-modal-info h2 {
        font-size: 28px;
    }
    .media-preview-grid,
    .block-image-preview {
        grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
    }
    .admin-login { grid-template-columns: 1fr; }
    .product-form, .two-cols { grid-template-columns: 1fr; }
    .content-grid, .stats-grid, .articles-grid { grid-template-columns: 1fr; }
    .review-slide {
        grid-template-columns: 1fr;
    }
    .review-photo {
        min-height: 240px;
    }
    .review-copy {
        padding: 20px;
    }
    .review-copy p {
        font-size: 15px;
    }
    .option-row { grid-template-columns: 1fr; }
    .admin-topline { display: grid; }
    .admin-menu { grid-template-columns: 1fr 1fr; }
    .manager-row,
    .manager-row.no-image {
        grid-template-columns: 1fr;
    }
    .row-actions { justify-content: flex-start; }
}

@media (max-width: 480px) {
    .brand small { display: none; }
    .service-strip { grid-template-columns: repeat(2, 1fr);}
    .catalog-section, .admin-section, .checkout-band, .content-section {
        padding-left: 12px;
        padding-right: 12px;
    }
    .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .product-body {
        padding: 10px;
    }
    .product-body h3 {
        height: 40px;
        font-size: 15px;
    }
    .product-body p {
        height: 54px;
        min-height: 0;
        font-size: 12px;
        line-height: 1.48;
    }
    .option-select {
        min-height: 38px;
        font-size: 12px;
    }
    .price {
        font-size: 16px;
    }
    .add-button {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
    }
    .cart-row { display: grid; }
    .cart-option select { min-width: 0; }
    .drawer-panel { padding: 18px; }
}
