/* =====================================================================
   Тема „Декорация · Дом" — warm, organic, cosy.
   Linen background with a fine grain, olive + terracotta, Lora + Nunito,
   big radii, arch-framed hero, round collection bubbles.
   ===================================================================== */
html[data-theme="decor"] {
  --bg: #f6f1ea;
  --bg-alt: #efe7dc;
  --surface: #fffaf3;
  --surface-2: #efe6da;
  --line: #e3d6c5;
  --input-bg: #fffdf9;
  --text: #2f2a24;
  --muted: #6d6257;
  --faint: #9a8d7f;
  --accent: #6b7a4b;
  --accent-strong: #55633a;
  --accent-soft: #e9ecdc;
  --on-accent: #ffffff;
  --accent-2: #c0785a;
  --on-accent-2: #ffffff;
  --price: #2f2a24;
  --success: #5f7a3a;
  --grad-accent: linear-gradient(120deg, #7d8b58, #c0785a);
  --glow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.06'/></svg>");
  --header-bg: rgba(246, 241, 234, 0.93);
  --header-line: rgba(227, 214, 197, 0.7);
  --nav-text: #4c443b;
  --nav-hover: #55633a;
  --topbar-bg: #6b7a4b;
  --topbar-text: #f6f1ea;
  --footer-bg: #3f4630;
  --footer-text: #f3eee4;
  --footer-muted: #c9c4b2;
  --footer-line: #565e44;
  --radius: 24px;
  --radius-sm: 14px;
  --radius-btn: 999px;
  --shadow: 0 24px 44px -28px rgba(84, 66, 40, 0.38);
  --font-display: 'Lora', Georgia, serif;
  --font-body: 'Nunito', system-ui, sans-serif;
  --h-weight: 500;
  --h-line: 1.14;
  --btn-weight: 700;
  --btn-size: 0.92rem;
  --btn-pad: 0.95em 1.9em;
  --eyebrow-color: #c0785a;
  --eyebrow-tracking: 0.18em;
  --label-transform: none;
  --card-ratio: 1 / 1;
  --container: 1240px;
  --header-h: 78px;
}
html[data-theme="decor"] .topbar { font-size: 0.8rem; letter-spacing: 0.02em; }
html[data-theme="decor"] .brand .logo { font-style: italic; font-weight: 500; font-size: 1.85rem; letter-spacing: 0; }
html[data-theme="decor"] .brand .tag { display: none; }
@media (min-width: 961px) {
  html[data-theme="decor"] .main-nav { justify-self: center; }
  html[data-theme="decor"] .nav-links { gap: 1.9rem; }
  html[data-theme="decor"] .nav-links > li > a { font-size: 0.95rem; font-weight: 600; }
  html[data-theme="decor"] .nav-links > li > a.active { color: var(--accent-strong); text-decoration: underline wavy var(--accent-2) 1px; text-underline-offset: 6px; }
}
html[data-theme="decor"] .header-search input { background: var(--surface-2); border-color: transparent; width: 170px; }
html[data-theme="decor"] .nav-links .sub { border-radius: 18px; padding: 0.7rem 0; }
html[data-theme="decor"] .cart-count { background: var(--accent-2); }

/* ---------- cards: soft, rounded, warm ---------- */
html[data-theme="decor"] .pcard { border-color: transparent; background: var(--surface); box-shadow: 0 1px 0 rgba(84, 66, 40, 0.05); }
html[data-theme="decor"] .pcard:hover { box-shadow: var(--shadow); transform: translateY(-5px); }
html[data-theme="decor"] .pcard-media { margin: 0.75rem 0.75rem 0; border-radius: 18px; }
html[data-theme="decor"] .pcard-body { padding: 0.95rem 1.25rem 1.35rem; }
html[data-theme="decor"] .pcard-cat { color: var(--accent-2); letter-spacing: 0.1em; font-weight: 700; }
html[data-theme="decor"] .pcard-title { font-size: 1.2rem; font-weight: 500; }
html[data-theme="decor"] .pcard-meta .stars { color: var(--accent-2); }
html[data-theme="decor"] .pcard-price .now { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; }
html[data-theme="decor"] .pcard-actions .btn { flex: 0 0 auto; }
html[data-theme="decor"] .badge { background: var(--surface); color: var(--accent-strong); border: 1px solid var(--accent); text-transform: none; letter-spacing: 0.02em; font-size: 0.72rem; }
html[data-theme="decor"] .badge.sale { background: var(--accent-2); border-color: var(--accent-2); color: #fff; }
html[data-theme="decor"] .stars { color: var(--accent-2); }

/* ---------- home ---------- */
.dx-hero { padding: clamp(2rem, 5vw, 4.2rem) 0 clamp(2rem, 4vw, 3rem); position: relative; z-index: 1; overflow: hidden; }
.dx-hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.dx-hero h1 { font-size: clamp(2.7rem, 5.6vw, 5rem); line-height: 1.03; margin-bottom: 1.2rem; }
.dx-hero p { font-size: 1.12rem; color: var(--muted); max-width: 31rem; margin-bottom: 2rem; }
.dx-cta { display: flex; gap: 1.6rem; align-items: center; flex-wrap: wrap; }
.dx-hero-art { position: relative; justify-self: center; width: min(470px, 100%); padding: 0 6% 6% 0; }
.dx-arch { position: relative; z-index: 2; aspect-ratio: 4 / 5; border-radius: 999px 999px 30px 30px; overflow: hidden; background: var(--surface-2); box-shadow: var(--shadow); border: 8px solid var(--surface); }
.dx-arch img { width: 100%; height: 100%; object-fit: cover; }
.dx-blob { position: absolute; z-index: 1; width: 72%; aspect-ratio: 1; border-radius: 50%; background: #e6cfb7; left: -16%; bottom: -2%; }
.dx-badge { position: absolute; z-index: 3; right: -2%; top: 12%; width: 124px; height: 124px; border-radius: 50%; background: var(--accent); color: #fffaf3; display: grid; place-items: center; text-align: center; font-family: var(--font-display); font-style: italic; font-size: 1.02rem; line-height: 1.2; box-shadow: var(--shadow); }
.dx-badge::before { content: ''; position: absolute; inset: 8px; border-radius: 50%; border: 1px dashed rgba(255, 250, 243, 0.65); animation: dxspin 24s linear infinite; }
@keyframes dxspin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dx-badge::before { animation: none; } }
@media (max-width: 860px) { .dx-hero-grid { grid-template-columns: 1fr; } .dx-hero-art { width: min(360px, 88%); } }

.dx-features { position: relative; z-index: 1; padding-bottom: 1rem; }
.dx-features .features { background: var(--surface); border-radius: 999px; padding: 0.4rem 1rem; box-shadow: 0 1px 0 rgba(84, 66, 40, 0.06); }
.dx-features .feature { padding: 0.9rem 0.6rem; }
.dx-features .fv { font-style: italic; font-weight: 500; color: var(--accent-strong); font-size: 1.25rem; }
.dx-features .fi { display: none; }
@media (max-width: 700px) { .dx-features .features { border-radius: 24px; } }

.dx-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(1rem, 3vw, 2.4rem); }
html[data-theme="decor"] .dx-cats .cat-tile { width: 178px; aspect-ratio: auto; background: none; border: 0; overflow: visible; text-align: center; }
html[data-theme="decor"] .dx-cats .cat-tile img { width: 178px; height: 178px; border-radius: 50%; object-fit: cover; border: 6px solid var(--surface); box-shadow: var(--shadow); background: var(--surface-2); }
html[data-theme="decor"] .dx-cats .cat-label { position: static; background: none; color: var(--text); padding: 0.9rem 0 0; }
html[data-theme="decor"] .dx-cats .cat-name { font-size: 1.18rem; font-weight: 500; }
html[data-theme="decor"] .dx-cats .cat-count { color: var(--faint); }
@media (max-width: 520px) { html[data-theme="decor"] .dx-cats .cat-tile, html[data-theme="decor"] .dx-cats .cat-tile img { width: 140px; } html[data-theme="decor"] .dx-cats .cat-tile img { height: 140px; } }

.dx-story-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.dx-story-media { aspect-ratio: 1; border-radius: 200px 200px 200px 28px; overflow: hidden; background: var(--surface-2); box-shadow: var(--shadow); }
.dx-story-media img { width: 100%; height: 100%; object-fit: cover; }
.dx-list { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: grid; gap: 0.75rem; }
.dx-list li { display: flex; gap: 0.75rem; align-items: center; font-size: 1.02rem; }
.dx-list .mark { color: var(--accent-2); font-size: 1.1rem; }
@media (max-width: 860px) { .dx-story-grid { grid-template-columns: 1fr; } }

.dx-banner { padding: 1rem 0 2rem; position: relative; z-index: 1; }
.dx-banner-inner { position: relative; overflow: hidden; background: var(--accent); color: #fffaf3; border-radius: 36px; padding: clamp(2rem, 5vw, 3.4rem) clamp(1.8rem, 5vw, 4rem); display: grid; grid-template-columns: 1fr auto; gap: 1.6rem; align-items: center; }
.dx-banner-inner::before, .dx-banner-inner::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255, 250, 243, 0.08); }
.dx-banner-inner::before { width: 260px; height: 260px; right: -60px; top: -90px; }
.dx-banner-inner::after { width: 160px; height: 160px; right: 160px; bottom: -90px; background: rgba(192, 120, 90, 0.35); }
.dx-banner-inner h2 { color: #fffaf3; margin: 0.2rem 0 0.4rem; position: relative; z-index: 1; }
.dx-banner-inner p { color: rgba(255, 250, 243, 0.85); margin: 0; position: relative; z-index: 1; }
.dx-banner-inner .eyebrow { color: #f3d3c4; margin: 0; }
.dx-banner-inner .btn { background: #fffaf3; color: var(--accent-strong); position: relative; z-index: 1; }
.dx-banner-inner .btn:hover { background: #ffffff; }
@media (max-width: 700px) { .dx-banner-inner { grid-template-columns: 1fr; } }

html[data-theme="decor"] .review-card { border: 0; position: relative; padding-top: 2.4rem; }
html[data-theme="decor"] .review-card::before { content: '\201C'; position: absolute; top: 0.2rem; left: 1.3rem; font-family: var(--font-display); font-size: 3.6rem; line-height: 1; color: var(--accent-2); }
html[data-theme="decor"] .review-card p { font-family: var(--font-display); font-style: italic; font-size: 1.05rem; color: var(--text); }
html[data-theme="decor"] .newsletter { background: var(--bg-alt); border: 0; border-radius: 36px; }
html[data-theme="decor"] .section-head h2 { font-size: clamp(2rem, 3.8vw, 3rem); }

/* ---------- product page ---------- */
html[data-theme="decor"] .viewer { border: 8px solid var(--surface); box-shadow: var(--shadow); }
html[data-theme="decor"] .thumbs .thumb { border-radius: 14px; }
html[data-theme="decor"] .product-info h1 { font-weight: 500; }
html[data-theme="decor"] .tab { text-transform: none; letter-spacing: 0; font-size: 0.95rem; font-weight: 700; }
html[data-theme="decor"] .tab.active { border-bottom-color: var(--accent-2); color: var(--text); }
html[data-theme="decor"] .site-footer { border-radius: 40px 40px 0 0; }
html[data-theme="decor"] .footer-brand .logo { font-style: italic; font-weight: 500; }

/* ---------- admin ---------- */
html[data-theme="decor"] body.page-admin { --admin-side-bg: #efe7dc; --admin-side-active-bg: #6b7a4b; --admin-side-active: #fffaf3; }
html[data-theme="decor"] .admin-nav a { border-radius: 999px; }
html[data-theme="decor"] .admin-brand .logo { font-style: italic; font-weight: 500; }
