/* ==========================================================================
   SOMOVO LUXE v3 — polish layer over classic.css (load last).
   True somovo24.ru DNA: cream #f7f5f0 + charcoal #151311 + terracotta
   #c6531d, gold #c9a76f only as detail on dark. Playfair Display accents.
   ========================================================================== */

/* --- Playfair Display (variable 500-600, cyrillic + latin) --- */
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("../fonts/playfair-var-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("../fonts/playfair-var-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 500 600;
  font-display: swap;
  src: url("../fonts/playfair-var-italic-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 500 600;
  font-display: swap;
  src: url("../fonts/playfair-var-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

/* --- Inter (variable 400-700, cyrillic + latin) — modern body/UI font --- */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/inter-var-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/inter-var-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

/* --- Palette: cream + charcoal + terracotta (donor final cascade) --- */
:root {
  --luxe-sans: "Inter", "Segoe UI", Arial, sans-serif;
  --luxe-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --luxe-accent: #c6531d;
  --luxe-accent-dark: #a84317;
  --luxe-dark: #151311;
  --luxe-dark-deep: #0b0b0a;
  --luxe-gold-bright: #c9a76f;   /* gold detail on dark */
  --luxe-line: #e4ddd2;
  --luxe-gold-line: rgba(160, 120, 70, .3);

  /* classic.css tokens re-flowed */
  --nn-blue: var(--luxe-accent);
  --nn-orange: var(--luxe-accent);
  --nn-ink: #171512;
  --nn-cream: #f7f5f0;
  --nn-white: #fffdf9;
  --nn-line: rgba(23, 21, 19, .13);
  --nn-muted: #756b60;
  --classic-brown: var(--luxe-accent);
  --classic-brown-dark: var(--luxe-dark);
  --classic-gold: #c9a76f;
  --classic-ivory: #f7f5f0;
  --classic-paper: #fffdf9;
  --classic-shadow: 0 24px 70px rgba(40, 34, 24, .12);
  --classic-shadow-soft: 0 12px 34px rgba(40, 34, 24, .08);
}

/* Modern body/UI typography — Inter replaces Manrope everywhere except serif display */
body, button, input, select, textarea, optgroup,
.shell, p, a, li, span, small, strong, em, label, td, th, figcaption, blockquote,
.nn-button, .product-configure, .nn-catalogue-link, .collection-room-count,
.woocommerce-Price-amount, .price {
  font-family: var(--luxe-sans) !important;
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; letter-spacing: -.006em; }
/* Serif display stays Playfair (re-assert after the blanket rule above) */
h1, h2, h3,
.nn-hero h1, .nn-section-head h2, .nn-room-story h2, .nn-studio h2,
.site-footer h2, .nn-page h1, .nn-page h2, .product_title,
.nn-collection-name strong, .nn-room-options strong,
.nn-craft-grid article strong, .nn-hero-facts strong,
.lx-col-item strong, .lx-hero-panel strong, .lx-col-stage-meta span,
.collection-room-intro h2, .collection-room-card .collection-room-body strong,
ul.products li.product h2, .woocommerce-loop-product__title,
.nn-hero-caption b, .nn-seo h2 {
  font-family: var(--luxe-serif) !important;
}
.fa-solid { font-family: "Font Awesome 7 Free" !important; }

/* Hardcoded warm-beige leftovers in classic.css -> neutral cream */
.site-header.nn-header { background: linear-gradient(180deg, #f7f5f0, rgba(247, 245, 240, .96)) !important; }
.nn-header .nn-header-main, .nn-catalogue-row { border-color: rgba(23, 21, 19, .1) !important; }
.nn-primary-nav .nav-list a:hover { background: #f2ece1 !important; color: var(--luxe-dark) !important; }
.nn-header .account-link { background: #fff !important; }
.nn-header .header-search { background: #f2efe8 !important; }
.collection-rail a:hover { background: var(--luxe-dark) !important; color: #fff !important; }
.nn-hero-grid { border-color: rgba(23, 21, 19, .1) !important; }
.nn-hero-copy { background: linear-gradient(145deg, #f2ece1, #fbf9f4 72%) !important; }
.nn-room-story-copy, .collection-room-intro, .nn-seo > .shell { background: #f0eade !important; }
.nn-room-options > a { background: #fbf9f4 !important; }
.nn-room-options > a:hover { border-color: #d9cbb6 !important; background: #f4eee2 !important; }
.nn-button-quiet { border-color: #d9cfc0 !important; }
.nn-button-primary { box-shadow: 0 10px 25px rgba(198, 83, 29, .25); }
ul.products li.product, .somovo-product-grid li.product { border-color: rgba(23, 21, 19, .11) !important; }
.product-card-media, .product-image-wrap, ul.products li.product .woocommerce-LoopProduct-link { background: #f4f1ea !important; }
.site-footer .footer-project-panel { background: #f6f2ea !important; }
.site-footer .footer-project-phone, .site-footer .footer-project-mail { border-color: #ddd3c4 !important; }
.site-footer .footer-project { background: #f0eade !important; }
.site-footer .footer-project-copy .eyebrow, .site-footer .footer-project-copy h2 em { color: #ffd9b8 !important; }
.nn-studio-copy h2 em { color: var(--luxe-gold-bright) !important; }
.collection-room-card { background: #faf7f1 !important; }
.collection-room-card:hover, .nn-page-cta { background: #f4eee2 !important; }
.somovo-size-panel__grid article { background: #f2eee5 !important; }
.footer-status i { background: var(--luxe-accent) !important; }
.back-to-top { background: var(--luxe-accent) !important; color: #fff !important; }

/* --- Typography: Georgia -> Playfair Display --- */
h1, h2, h3,
.nn-hero h1, .nn-section-head h2, .nn-room-story h2, .nn-studio h2,
.site-footer h2, .nn-page h1, .nn-page h2, .product_title,
.nn-collection-name strong, .nn-room-options strong,
.nn-craft-grid article strong, .nn-hero-facts strong,
ul.products li.product h2, .woocommerce-loop-product__title {
  font-family: var(--luxe-serif) !important;
  font-weight: 500 !important;
  letter-spacing: -.018em !important;
}
.nn-hero-copy h1 { font-size: clamp(46px, 4.9vw, 74px) !important; line-height: 1.04 !important; }
.nn-section-head h2, .nn-room-story h2, .nn-studio h2 { font-size: clamp(40px, 4.6vw, 64px) !important; line-height: 1.06 !important; }
.nn-hero-copy h1 em, .nn-section-head h2 em, .nn-room-story h2 em, .nn-studio h2 em,
.nn-page h1 em, .nn-page h2 em, .site-footer h2 em {
  font-family: var(--luxe-serif) !important;
  font-style: italic !important;
  font-weight: 500 !important;
}
.nn-hero-copy h1 em, .nn-section-head h2 em, .nn-room-story h2 em { color: var(--luxe-accent) !important; }
ul.products li.product h2, .woocommerce-loop-product__title { font-weight: 600 !important; letter-spacing: -.008em !important; font-size: 17px !important; line-height: 1.3 !important; }
.nn-collection-name strong { font-weight: 500 !important; }
.nn-seo h2 { font-family: var(--luxe-serif) !important; font-weight: 500 !important; }

/* --- Paper grain --- */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  pointer-events: none;
  opacity: .028;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --- Sticky glass header --- */
.site-header.nn-header {
  position: sticky !important;
  top: 0;
  z-index: 120;
  padding: 0 0 10px !important;
  transition: padding .35s ease;
}
.nn-header .nn-header-main { transition: box-shadow .35s ease, background .35s ease; }
.nn-header.lx-scrolled { padding: 0 0 8px !important; }
.nn-header.lx-scrolled .nn-header-main {
  background: rgba(255, 253, 249, .88) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 44px rgba(30, 25, 20, .16) !important;
}
.nn-catalogue-bar {
  max-height: 84px;
  overflow: visible;
  transition: max-height .4s ease, opacity .3s ease, margin .4s ease;
}
.nn-header.lx-scrolled .nn-catalogue-bar {
  max-height: 0;
  margin-top: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

/* ==========================================================================
   NEAT HEADER — announce bar, icon actions, chip rail
   ========================================================================== */

/* Announce bar */
.nn-announce {
  max-height: 44px;
  margin-bottom: 12px;
  overflow: hidden;
  background: #101311;
  color: rgba(255, 255, 255, .82);
  font-size: 11px;
  letter-spacing: .035em;
  transition: max-height .35s ease, opacity .3s ease, margin .35s ease;
}
.nn-announce-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 36px; }
.nn-announce p { display: flex; align-items: center; gap: 9px; margin: 0; font-weight: 600; }
.nn-announce .fa-solid { color: var(--luxe-accent); font-size: 11px; }
.nn-announce-meta { display: flex; align-items: center; gap: 22px; white-space: nowrap; }
.nn-announce-meta span, .nn-announce-meta a { display: flex; align-items: center; gap: 8px; color: inherit; font-weight: 600; text-decoration: none; }
.nn-announce-meta a:hover { color: #fff; }
.nn-header.lx-scrolled .nn-announce { max-height: 0; margin-bottom: 0; opacity: 0; }

/* Primary nav with icons */
.nn-primary-nav .nav-list a .fa-solid { margin-right: 8px; color: var(--luxe-accent); font-size: 12px; }

/* Actions container */
.nn-header .header-actions { align-items: center !important; height: auto !important; gap: 8px !important; }
.nn-header .header-actions > * { flex: none; }
.nn-header .nn-header-main { grid-template-columns: 220px minmax(0, 1fr) auto !important; }
.nn-header .cart-pill .woocommerce-Price-amount,
.nn-header .cart-pill .woocommerce-Price-amount * { display: inline !important; }

/* Phone action: orange handset + stacked label */
.nn-header .phone-action {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  width: auto !important;
  height: 52px !important;
  gap: 11px;
  min-height: 52px !important;
  padding: 0 18px 0 16px !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 999px !important;
  background: #fff !important;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.nn-header .phone-action:hover { border-color: var(--luxe-accent) !important; box-shadow: 0 8px 20px rgba(198, 83, 29, .12); }
.nn-header .phone-action > .fa-solid { color: var(--luxe-accent); font-size: 17px; }
.nn-header .phone-action small { color: var(--nn-muted) !important; font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.nn-header .phone-action strong { font-size: 13px; white-space: nowrap; }

/* Account: round icon button */
.nn-header .account-link {
  width: 52px !important;
  height: 52px !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 50% !important;
  color: var(--luxe-dark) !important;
  font-size: 17px;
  transition: background .25s ease, color .25s ease;
}
.nn-header .account-link:hover { background: var(--luxe-dark) !important; color: #fff !important; }

/* Cart: charcoal pill, white bag, orange badge */
.nn-header .cart-pill {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 11px;
  min-width: 0 !important;
  width: auto !important;
  min-height: 52px !important;
  height: auto !important;
  padding: 0 20px 0 9px !important;
  border-radius: 999px !important;
  background: var(--luxe-dark) !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(21, 19, 17, .25) !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.nn-header .cart-pill:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(21, 19, 17, .32) !important; }
.nn-header .cart-pill > .fa-solid {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 14px;
}
.nn-header .cart-pill span { display: grid; gap: 2px; min-width: 0; }
.nn-header .cart-pill small { font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .65); }
.nn-header .cart-pill strong { font-size: 13px; white-space: nowrap; }
.nn-header .cart-pill strong bdi { white-space: nowrap; }
.nn-header .cart-pill em {
  position: absolute !important;
  top: -6px !important;
  right: -4px !important;
  display: grid;
  min-width: 21px !important;
  height: 21px !important;
  padding: 0 5px;
  place-items: center;
  border: 2px solid var(--classic-ivory, #f7f5f0);
  border-radius: 999px;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 800;
  font-style: normal;
}

/* Catalogue bar: airy luxe strip — no cramped card, every element its own pill */
.nn-catalogue-bar { margin-top: 12px !important; }
.nn-catalogue-row {
  grid-template-columns: auto minmax(190px, 300px) minmax(0, 1fr) !important;
  gap: 10px !important;
  height: auto !important;
  min-height: 48px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.nn-catalogue-link {
  min-height: 48px !important;
  padding: 0 24px !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
  font-size: 11px !important;
  letter-spacing: .06em !important;
  box-shadow: 0 10px 24px rgba(198, 83, 29, .28);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.nn-catalogue-link span { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.nn-catalogue-link .fa-solid { font-size: 13px; }
.nn-catalogue-link b { margin-left: 14px; transition: transform .3s ease; }
.nn-catalogue-link:hover { background: var(--luxe-accent-dark) !important; transform: translateY(-1px); }
.nn-catalogue-link:hover b { transform: translateX(4px); }

.nn-header .header-search {
  height: 48px !important;
  padding: 4px !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: 0 6px 18px rgba(30, 25, 20, .05);
  transition: border-color .25s ease, box-shadow .25s ease;
}
.nn-header .header-search:focus-within { border-color: #cbbba4 !important; box-shadow: 0 8px 22px rgba(30, 25, 20, .09); }
.nn-header .header-search input[type=search] { padding: 0 6px 0 16px !important; background: transparent !important; }
.nn-header .header-search button {
  margin: 0 !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  background: var(--luxe-dark) !important;
  color: #fff !important;
  transition: background .25s ease;
}
.nn-header .header-search button:hover { background: var(--luxe-accent) !important; }
.nn-header .header-search button i { display: inline-block !important; margin-right: 8px; color: var(--luxe-gold-bright); font-size: 12px; }

/* Collection rail: roomy chips, soft fade at the edge instead of clipping */
.nn-header .collection-rail {
  justify-content: space-between !important;
  gap: 6px !important;
  height: 48px !important;
  padding: 0 !important;
}
/* When everything fits, spread evenly to the right edge; when it overflows,
   pack from the left and fade the tail. */
.nn-header .collection-rail.lx-rail-overflow {
  justify-content: flex-start !important;
  padding-right: 40px !important;
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
}
.nn-header .collection-rail a {
  display: flex !important;
  align-items: center !important;
  gap: 7px;
  height: 40px !important;
  margin: auto 0;
  padding: 0 12px !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #3c3831 !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
  white-space: nowrap;
  box-shadow: 0 5px 14px rgba(30, 25, 20, .05);
  transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.nn-header .collection-rail a .fa-solid { color: var(--luxe-accent); font-size: 10px; }
.nn-header .collection-rail a:hover { border-color: var(--luxe-dark) !important; transform: translateY(-2px); }
.nn-header .collection-rail a:hover .fa-solid { color: var(--luxe-gold-bright); }

@media (max-width: 1180px) {
  .nn-announce-meta span { display: none; }
  .lx-hero-thumbs button { width: 48px; height: 34px; border-radius: 9px; }
  .lx-hero-panel { max-width: min(380px, calc(100% - 320px)); }
}
@media (max-width: 860px) {
  .nn-announce { display: none; }
  .site-header.nn-header { padding: 8px 0 8px !important; }
  /* Restore the compact mobile header (my desktop grid/phone rules are unscoped) */
  .nn-header .nn-header-main { grid-template-columns: 44px minmax(0, 1fr) auto !important; align-items: center !important; }
  .nn-header .phone-action, .nn-header .account-link { display: none !important; }
  .nn-header .header-actions { width: auto !important; gap: 0 !important; }
  .nn-header .cart-pill { min-height: 48px !important; padding: 0 14px 0 7px !important; }
}
@media (max-width: 560px) {
  .nn-header .cart-pill { width: 48px !important; padding: 0 !important; justify-content: center !important; }
  .nn-header .cart-pill > .fa-solid { width: 48px; height: 48px; background: transparent; }
  .nn-header .cart-pill em { top: -4px !important; right: -4px !important; }
}

/* ==========================================================================
   MOBILE DRAWER — full redesign into the cream / terracotta / charcoal theme
   (overrides old dark-ink drawer + green contact block from app.css)
   ========================================================================== */
.mobile-drawer {
  inset: 0 auto 0 0 !important;
  width: min(87%, 384px) !important;
  padding: 20px 20px 28px !important;
  background: var(--nn-cream) !important;
  color: var(--nn-ink) !important;
  border-right: 1px solid rgba(23, 21, 19, .1) !important;
  box-shadow: 26px 0 60px rgba(20, 16, 12, .22) !important;
}
.mobile-drawer .brand-word, .mobile-drawer .brand-tagline { color: var(--nn-ink) !important; }
.mobile-drawer .somovo-original-brand img { filter: none !important; opacity: 1 !important; }

.mobile-drawer-head {
  margin-bottom: 20px !important;
  padding-bottom: 18px !important;
  border-bottom: 1px solid rgba(23, 21, 19, .1) !important;
}
.mobile-drawer .drawer-close {
  display: grid !important;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(23, 21, 19, .14) !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--nn-ink) !important;
  font-size: 14px !important;
}
.mobile-drawer .drawer-close:hover { background: var(--luxe-accent) !important; color: #fff !important; border-color: var(--luxe-accent) !important; }

/* Search */
.mobile-drawer .drawer-search {
  height: 52px !important;
  margin-bottom: 24px !important;
  padding: 5px 5px 5px 4px !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: 0 6px 18px rgba(30, 25, 20, .05);
}
.mobile-drawer .drawer-search input { color: var(--nn-ink) !important; font-size: 14px !important; }
.mobile-drawer .drawer-search button {
  display: grid !important;
  place-items: center !important;
  flex: none !important;
  width: 42px !important;
  height: 42px !important;
  margin: 0 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--luxe-accent) !important;
  box-sizing: border-box !important;
}
.mobile-drawer .drawer-search button i { display: block !important; margin: 0 !important; color: #fff !important; font-size: 14px !important; line-height: 1 !important; }

/* Nav list: icon disc + serif name, no redundant number */
.mobile-drawer .nav-list { gap: 0 !important; }
.mobile-drawer .nav-list li { display: block !important; }
.mobile-drawer .nav-list a {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  padding: 13px 4px !important;
  border-bottom: 1px solid rgba(23, 21, 19, .1) !important;
  color: var(--nn-ink) !important;
  font-family: var(--luxe-serif) !important;
  font-size: 21px !important;
  font-weight: 500 !important;
  transition: color .2s ease, padding-left .25s ease;
}
.mobile-drawer .nav-list a:hover { color: var(--luxe-accent) !important; padding-left: 8px !important; }
.mobile-drawer .nav-list a i {
  display: grid !important;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 50%;
  background: rgba(198, 83, 29, .1);
  color: var(--luxe-accent);
  font-size: 15px;
}
.mobile-drawer .nav-list a small { display: none !important; }

/* Collections: readable chips (names were white-on-white) */
.mobile-drawer .drawer-label {
  margin: 28px 0 12px !important;
  color: var(--nn-muted) !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .14em !important;
}
.mobile-drawer .drawer-collections {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}
.mobile-drawer .drawer-collections a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 12px 13px !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--nn-ink) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  transition: border-color .2s ease, background .2s ease;
}
.mobile-drawer .drawer-collections a:hover { border-color: var(--luxe-accent) !important; background: #fbf6f1 !important; }
.mobile-drawer .drawer-collections a i {
  flex: none;
  color: var(--luxe-accent) !important;
  font-size: 11px !important;
}
.mobile-drawer .drawer-collections a small { display: none !important; }

/* Contact: charcoal + terracotta glow, phone icon disc (was green "blue" block) */
.mobile-drawer .drawer-contact {
  display: flex !important;
  align-items: center !important;
  gap: 15px !important;
  margin-top: 28px !important;
  padding: 18px 20px !important;
  border-radius: 18px !important;
  background:
    radial-gradient(420px 220px at 84% 0%, rgba(198, 83, 29, .32), transparent 62%),
    var(--luxe-dark) !important;
  color: #fff !important;
  box-shadow: 0 16px 34px rgba(20, 16, 12, .22);
}
.mobile-drawer .drawer-contact-icon {
  display: grid !important;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: none;
  border-radius: 50%;
  background: var(--luxe-accent);
  color: #fff;
  font-size: 18px;
  box-shadow: 0 8px 18px rgba(198, 83, 29, .35);
}
.mobile-drawer .drawer-contact-text { display: grid; gap: 3px; min-width: 0; }
.mobile-drawer .drawer-contact-text a { color: #fff !important; font-family: var(--luxe-serif) !important; font-size: 22px !important; }
.mobile-drawer .drawer-contact-text span { color: rgba(255, 255, 255, .66) !important; font-size: 11px !important; }

/* Keep drawer below the WP admin bar (my inset override killed the offset) */
body.admin-bar .mobile-drawer,
body.admin-bar .drawer-backdrop { top: var(--wp-admin-offset, 46px) !important; }

/* Hide the floating bottom nav while the drawer is open (removes the stray strip) */
body.drawer-open .mobile-bottom-nav { display: none !important; }

/* ==========================================================================
   BROKEN-STATE FIXES (GPT left these unfinished)
   ========================================================================== */

/* 1) Banners carry a baked-in empty grey panel on the left ~43%. */
.nn-hero-media img { object-position: right center !important; }
.nn-collection-row-1 .nn-collection-image img,
.nn-collection-row-3 .nn-collection-image img,
.nn-collection-row-4 .nn-collection-image img,
.nn-collection-row-5 .nn-collection-image img,
.nn-collection-row-6 .nn-collection-image img { object-position: right center !important; }
.nn-collection-row-1 .nn-collection-image img { transform: scale(1.18) !important; transform-origin: right center !important; }
.nn-collection-row-1:hover .nn-collection-image img { transform: scale(1.24) !important; }

/* 2) Stamp: top-left corner (arrows top-right, panel bottom-left, thumbs bottom-right). */
.nn-hero-stamp { top: 34px !important; left: 24px !important; right: auto !important; bottom: auto !important; }

/* 3) Room chooser (home): modern expanding image panels (distinct from the
      category-page cards). Hover a room -> it grows, its description reveals. */
.nn-room-story { padding-top: clamp(46px, 5vw, 80px) !important; }
/* Panels stretch to the copy column's height so both sides are equal. */
.nn-room-story-grid { align-items: stretch !important; }
.nn-room-story-grid .nn-room-options {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 14px !important;
  height: auto !important;
  min-height: clamp(430px, 44vw, 545px);
  align-self: stretch !important;
  min-width: 0;
}
.nn-room-options > a {
  position: relative !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  padding: 22px !important;
  overflow: hidden !important;
  isolation: isolate;
  border: 0 !important;
  border-radius: 20px !important;
  background: transparent !important;
  color: #fff !important;
  transform: none !important;
  transition: flex-grow .55s cubic-bezier(.22, 1, .36, 1) !important;
}
.nn-room-options > a:last-child { transform: none !important; }
.nn-room-options > a:hover { transform: none !important; flex-grow: 1.9 !important; }
.nn-room-options > a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  transition: transform .7s cubic-bezier(.22, 1, .36, 1);
}
.nn-room-options > a:first-child::before { background-image: url("../images/real-interiors/about-vasilisa-hq.webp"); }
.nn-room-options > a:last-child::before { background-image: url("../images/collection-banners/emili.webp"); }
.nn-room-options > a:hover::before { transform: scale(1.06); }
.nn-room-options > a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(18, 14, 10, .18) 0%, transparent 34%, rgba(16, 12, 9, .8));
}
.nn-room-options > a > span {
  position: absolute !important;
  top: 20px;
  left: 20px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  background: rgba(18, 14, 10, .35);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-family: var(--luxe-serif) !important;
  font-size: 15px;
  font-weight: 500;
  color: #fff !important;
}
.nn-room-options > a > b {
  position: absolute !important;
  top: 20px;
  right: 20px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .14);
  color: #fff !important;
  font-size: 17px;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity .35s ease, transform .35s ease, background .3s ease;
}
.nn-room-options > a:hover > b { opacity: 1; transform: none; background: var(--luxe-accent); }
.nn-room-options > a > div { position: relative; z-index: 2; display: grid; }
.nn-room-options > a small {
  color: var(--luxe-gold-bright) !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase;
}
.nn-room-options > a strong {
  margin-top: 8px !important;
  font-size: clamp(30px, 3.4vw, 46px) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  color: #fff !important;
  text-shadow: 0 2px 18px rgba(10, 8, 6, .5);
}
.nn-room-options > a p {
  max-width: 320px;
  max-height: 0;
  margin: 0 !important;
  opacity: 0;
  overflow: hidden;
  color: rgba(255, 255, 255, .85) !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  transition: max-height .5s ease, opacity .4s ease, margin .5s ease;
}
.nn-room-options > a:hover p { max-height: 72px; margin-top: 10px !important; opacity: 1; }

/* 4) Left panel paragraph was white-on-beige. */
.nn-room-story-copy p { color: #625c52 !important; }

@media (max-width: 860px) {
  .nn-room-story-grid .nn-room-options { flex-direction: column !important; height: auto !important; }
  .nn-room-options > a { min-height: 250px !important; flex: none !important; }
  .nn-room-options > a p { max-height: 72px !important; margin-top: 8px !important; opacity: 1 !important; }
  .nn-room-options > a > b { opacity: 1 !important; transform: none !important; }
}

/* --- Hero: LUXE 2026 slider (glass panel, thumbs, stories progress) --- */
.nn-hero-grid { box-shadow: var(--classic-shadow), inset 0 0 0 1px rgba(23, 21, 19, .07) !important; }
.nn-hero-visual { box-shadow: inset 0 0 0 1px var(--luxe-gold-line); }
.nn-hero-caption { display: none !important; }
.nn-hero-media { transition: transform .45s cubic-bezier(.22, 1, .36, 1); will-change: transform; }

.lx-hero-progress {
  position: absolute;
  left: 24px;
  right: 24px;
  top: 16px;
  height: 3px;
  z-index: 5;
  border-radius: 3px;
  overflow: hidden;
  background: rgba(255, 255, 255, .25);
}
.lx-hero-progress i {
  display: block;
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--luxe-gold-bright), #e8c48c);
  transform: scaleX(0);
  transform-origin: left center;
}
.lx-hero-progress.is-run i { transition: transform 6.5s linear; transform: scaleX(1); }

.lx-hero-ui { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.lx-hero-panel {
  position: absolute;
  left: 20px;
  bottom: 20px;
  max-width: min(420px, calc(100% - 400px));
  padding: 20px 22px 18px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 18px;
  background: rgba(17, 14, 11, .52);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  color: #fff;
  pointer-events: auto;
  box-shadow: 0 18px 44px rgba(10, 8, 6, .3);
}
.lx-hero-panel small {
  display: block;
  margin-bottom: 7px;
  color: var(--luxe-gold-bright);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lx-hero-panel strong {
  display: block;
  font-family: var(--luxe-serif);
  font-size: 31px;
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.05;
}
.lx-hero-panel p {
  margin: 8px 0 12px;
  color: rgba(255, 255, 255, .84);
  font-size: 12.5px;
  line-height: 1.55;
}
.lx-hero-panel a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(201, 167, 111, .45);
  color: var(--luxe-gold-bright);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .25s ease, border-color .25s ease;
}
.lx-hero-panel a b { font-weight: 500; font-size: 15px; transition: transform .3s ease; }
.lx-hero-panel a:hover { color: #fff; border-color: #fff; }
.lx-hero-panel a:hover b { transform: translateX(4px); }
@media (prefers-reduced-motion: no-preference) {
  .lx-hero-panel.lx-swap small { animation: lxRise .55s cubic-bezier(.22, 1, .36, 1) both; }
  .lx-hero-panel.lx-swap strong { animation: lxRise .55s cubic-bezier(.22, 1, .36, 1) .07s both; }
  .lx-hero-panel.lx-swap p { animation: lxRise .55s cubic-bezier(.22, 1, .36, 1) .14s both; }
  .lx-hero-panel.lx-swap a { animation: lxRise .55s cubic-bezier(.22, 1, .36, 1) .21s both; }
}

.lx-hero-thumbs {
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: flex;
  gap: 8px;
  pointer-events: auto;
}
.lx-hero-thumbs button {
  width: 62px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .38);
  border-radius: 12px;
  overflow: hidden;
  background: #241f1a;
  cursor: pointer;
  opacity: .55;
  transition: opacity .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.lx-hero-thumbs img { width: 100%; height: 100%; object-fit: cover; object-position: right center; display: block; }
.lx-hero-thumbs button:hover { opacity: 1; transform: translateY(-2px); }
.lx-hero-thumbs button.is-active {
  opacity: 1;
  border-color: var(--luxe-gold-bright);
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(10, 8, 6, .35), 0 0 0 1px rgba(201, 167, 111, .35);
}

.nn-hero-stamp {
  background: var(--luxe-gold-bright) !important;
  color: #241c12 !important;
  box-shadow: 0 12px 28px rgba(30, 24, 18, .24), inset 0 0 0 1px rgba(36, 28, 18, .2) !important;
}

/* --- Manifesto band (static, replaces the marquee) --- */
.lx-manifesto {
  position: relative;
  padding: clamp(52px, 6vw, 84px) 0;
  background:
    radial-gradient(760px 420px at 82% 8%, rgba(198, 83, 29, .2), transparent 60%),
    radial-gradient(560px 340px at 6% 96%, rgba(201, 167, 111, .1), transparent 62%),
    var(--luxe-dark);
  color: #fff;
  overflow: hidden;
}
.lx-manifesto::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201, 167, 111, .5), transparent);
}
.lx-manifesto-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(36px, 5vw, 80px);
}
.lx-manifesto-head span {
  display: inline-block;
  margin-bottom: 18px;
  color: var(--luxe-gold-bright);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lx-manifesto-head p {
  margin: 0;
  max-width: 640px;
  font-family: var(--luxe-serif) !important;
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -.01em;
}
.lx-manifesto-head p em { font-style: italic; color: var(--luxe-gold-bright); }
.lx-manifesto-values {
  display: grid;
  gap: 14px;
}
.lx-manifesto-value {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
  transition: border-color .3s ease, background .3s ease, transform .3s ease;
}
.lx-manifesto-value:hover {
  border-color: rgba(201, 167, 111, .4);
  background: rgba(255, 255, 255, .07);
  transform: translateX(4px);
}
.lx-manifesto-ic {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: none;
  border-radius: 50%;
  background: rgba(198, 83, 29, .18);
  color: var(--luxe-gold-bright);
  font-size: 17px;
}
.lx-manifesto-value strong {
  display: block;
  font-family: var(--luxe-serif) !important;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -.01em;
}
.lx-manifesto-value small {
  display: block;
  margin-top: 3px;
  color: rgba(255, 255, 255, .6);
  font-size: 12px;
}
@media (max-width: 860px) {
  .lx-manifesto-inner { grid-template-columns: 1fr; gap: 30px; }
  .lx-manifesto-head p { font-size: clamp(22px, 6vw, 30px); }
}

/* --- Reveal on scroll (gated on html.lx-js) --- */
@media (prefers-reduced-motion: no-preference) {
  html.lx-js .lx-reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .85s cubic-bezier(.22, 1, .36, 1), transform .85s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--lx-delay, 0s);
    will-change: opacity, transform;
  }
  html.lx-js .lx-reveal.lx-in { opacity: 1; transform: none; }

  html.lx-js .nn-hero-copy > * { animation: lxRise .9s cubic-bezier(.22, 1, .36, 1) both; }
  html.lx-js .nn-hero-copy .nn-hero-kicker { animation-delay: .05s; }
  html.lx-js .nn-hero-copy h1 { animation-delay: .16s; }
  html.lx-js .nn-hero-copy > p { animation-delay: .3s; }
  html.lx-js .nn-hero-copy .nn-hero-actions { animation-delay: .44s; }
  html.lx-js .nn-hero-copy .nn-hero-facts { animation-delay: .58s; }
  html.lx-js .nn-hero-visual { animation: lxFade 1.1s ease both .12s; }
  html.lx-js .nn-hero-stamp { animation: lxFloat 4.5s ease-in-out 1.4s infinite alternate; }
}
@keyframes lxRise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes lxFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes lxFloat { from { transform: translateY(0); } to { transform: translateY(-7px); } }

/* --- Buttons: sheen sweep + arrow motion --- */
.nn-button-primary, .nn-catalogue-link, .product-configure, .quick-add,
.cart-drawer-checkout, .single_add_to_cart_button, .checkout-button, #place_order {
  position: relative;
  overflow: hidden !important;
  isolation: isolate;
}
.nn-button-primary::after, .nn-catalogue-link::after, .product-configure::after, .quick-add::after,
.cart-drawer-checkout::after, .single_add_to_cart_button::after, .checkout-button::after, #place_order::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -85%;
  width: 55%;
  z-index: 1;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .32), transparent);
  transform: skewX(-18deg);
  transition: left .7s ease;
  pointer-events: none;
}
.nn-button-primary:hover::after, .nn-catalogue-link:hover::after, .product-configure:hover::after, .quick-add:hover::after,
.cart-drawer-checkout:hover::after, .single_add_to_cart_button:hover::after, .checkout-button:hover::after, #place_order:hover::after {
  left: 125%;
}
.nn-button b { transition: transform .3s ease; }
.nn-button:hover b { transform: translateX(4px); }
.nn-button-quiet:hover { border-color: var(--luxe-accent) !important; background: #fff !important; }
.nn-room-story-copy > a:hover, .nn-products-head a:hover { color: var(--luxe-accent) !important; }

/* --- Product cards --- */
ul.products li.product:hover, .somovo-product-grid li.product:hover { border-color: #d9c2ae !important; }
.sale-chip {
  top: 14px !important;
  right: 14px !important;
  min-width: 0 !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
  box-shadow: 0 6px 16px rgba(120, 50, 15, .28);
}
.product-view { background: var(--luxe-dark) !important; }
.product-swatch { border-radius: 6px !important; transition: transform .25s ease, border-color .25s ease; }
.product-swatch:hover { border-color: var(--luxe-accent) !important; transform: translateY(-2px); }
.product-swatch img { border-radius: 4px !important; }
.swatch-more { border-radius: 6px !important; background: var(--luxe-dark) !important; }
.product-details-link { transition: transform .3s ease, background .3s ease; background: var(--luxe-accent) !important; color: #fff !important; }
.product-details-link:hover { transform: rotate(45deg); background: var(--luxe-accent-dark) !important; }

/* ==========================================================================
   PRODUCT CARDS — understated luxury 2026 (grid cards, before opening)
   Inset rounded photo, calm palette, NO blue/purple hover frame.
   ========================================================================== */
ul.products li.product, .somovo-product-grid li.product, .somovo-product-card {
  border: 1px solid rgba(23, 21, 19, .06) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background: var(--nn-white) !important;
  box-shadow: 0 1px 2px rgba(30, 25, 20, .03), 0 10px 22px rgba(30, 25, 20, .045) !important;
  transition: transform .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s ease, border-color .3s ease !important;
}
/* Soft neutral lift — kills the old blue/purple border + offset shadow (app.css:15228/15231) */
ul.products li.product:hover, .somovo-product-grid li.product:hover, .somovo-product-card:hover {
  transform: translateY(-6px) !important;
  border-color: rgba(23, 21, 19, .1) !important;
  box-shadow: 0 24px 48px rgba(30, 25, 20, .13) !important;
}
.somovo-product-card .product-image-wrap::after,
.somovo-product-card:hover .product-image-wrap::after { display: none !important; border: 0 !important; border-color: transparent !important; }

/* Image: inset rounded panel on cream (Somovo24-clean), gentle zoom, no clutter */
.product-card-code { display: none !important; }
.somovo-product-card .product-image-wrap {
  margin: 10px 10px 0 !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 15px !important;
  overflow: hidden !important;
  background: linear-gradient(162deg, #f7f4ee, #eee8dd) !important;
}
.somovo-product-card .product-image-wrap > img {
  transform: scale(.92) !important;
  transition: transform .65s cubic-bezier(.22, 1, .36, 1) !important;
}
.somovo-product-card:hover .product-image-wrap > img { transform: scale(1) !important; }
/* Empty products -> Somovo logo placeholder, shown whole */
.has-somovo-placeholder { background: linear-gradient(162deg, #f5f1e9, #efe9df) !important; }
.somovo-product-card .product-image-wrap.has-somovo-placeholder img,
.has-somovo-placeholder img {
  object-fit: cover !important;
  object-position: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  transform: none !important;
}
.somovo-product-card:hover .product-image-wrap.has-somovo-placeholder img { transform: scale(1.05) !important; }

/* "Открыть" — floating glass pill, fades in on hover */
.somovo-product-card .product-view {
  top: auto !important; left: auto !important;
  right: 12px !important; bottom: 12px !important;
  width: auto !important; height: auto !important;
  gap: 8px !important;
  padding: 10px 15px !important;
  border-radius: 999px !important;
  background: rgba(20, 17, 14, .72) !important;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 10px 22px rgba(15, 12, 9, .26) !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition: opacity .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1) !important;
}
.somovo-product-card:hover .product-view { opacity: 1 !important; transform: none !important; }
.somovo-product-card .product-view small { font-size: 9px !important; font-weight: 800 !important; letter-spacing: .05em; }
.somovo-product-card .product-view strong { font-size: 14px !important; }

.somovo-product-card .product-unavailable-badge {
  border-radius: 999px !important;
  background: rgba(20, 17, 14, .8) !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}

/* Sale chip — calm terracotta, sits inside the inset photo */
.sale-chip {
  top: 12px !important; right: 12px !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  font-size: 10px !important; font-weight: 800 !important; letter-spacing: .01em;
  background: var(--luxe-accent) !important; color: #fff !important;
  box-shadow: 0 6px 14px rgba(120, 50, 15, .22) !important;
}

/* Body: airy, clear hierarchy */
.somovo-product-card .product-card-body { padding: 16px 16px 16px !important; }
.product-eyebrow { color: var(--nn-muted) !important; font-size: 8px !important; letter-spacing: .13em !important; }
.woocommerce-loop-product__title { margin: 8px 0 8px !important; font-size: 18px !important; }
.product-dimensions { color: var(--nn-muted) !important; font-size: 10px !important; }
.product-dimensions i { color: var(--luxe-accent) !important; }
.product-price { margin-top: 12px !important; font-size: 17px !important; font-weight: 850 !important; color: var(--nn-ink) !important; letter-spacing: -.01em; }
.product-price del, .product-price .price-from { color: var(--nn-muted) !important; font-weight: 600 !important; }
.product-price del { font-size: 12px !important; opacity: .7; }
.product-price ins { text-decoration: none !important; color: var(--nn-ink) !important; }

/* Swatches: larger round finish dots */
.product-swatches { gap: 8px !important; flex-wrap: wrap !important; }
.product-swatch, .swatch-more { flex: none !important; }
.product-swatch { width: 45px !important; height: 45px !important; padding: 2px !important; border-radius: 50% !important; border-color: rgba(23, 21, 19, .14) !important; }
.product-swatch img { border-radius: 50% !important; }
.product-swatch:hover { transform: translateY(-2px) scale(1.06) !important; }
.swatch-more { display: grid !important; place-items: center; width: 45px !important; height: 45px !important; border-radius: 50% !important; background: var(--luxe-dark) !important; font-size: 10px !important; }

/* Actions: terracotta pill CTA + subtle outline detail button (calmer than solid circle) */
.somovo-product-card .product-card-actions { grid-template-columns: 1fr 46px !important; gap: 8px !important; padding-top: 16px !important; }
.somovo-product-card .product-configure {
  min-height: 46px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .07em;
  transition: background .3s ease !important;
}
.somovo-product-card .product-configure:hover { background: var(--luxe-accent-dark) !important; }
.somovo-product-card .product-configure b { font-size: 14px !important; }
.somovo-product-card .product-configure-unavailable { background: #efece6 !important; color: var(--nn-muted) !important; }
.somovo-product-card .product-details-link {
  width: 46px !important; height: 46px !important;
  border-radius: 50% !important;
  background: #f4f0e8 !important;
  border: 1px solid rgba(23, 21, 19, .12) !important;
  color: var(--nn-ink) !important;
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease !important;
}
.somovo-product-card .product-details-link:hover { background: var(--luxe-accent) !important; border-color: var(--luxe-accent) !important; color: #fff !important; transform: none !important; }

@media (max-width: 560px) {
  .somovo-product-card .product-image-wrap { margin: 8px 8px 0 !important; }
  .somovo-product-card .product-card-body { padding: 13px 13px 13px !important; }
  .woocommerce-loop-product__title { font-size: 16px !important; }
  .somovo-product-card .product-configure { font-size: 8px !important; }
}

/* --- Collections: editorial list + live preview stage (LUXE 2026) --- */
.lx-hidden { display: none !important; }
.lx-col-gallery {
  display: grid;
  grid-template-columns: minmax(330px, .88fr) minmax(0, 1.45fr);
  gap: clamp(26px, 3.4vw, 54px);
  align-items: stretch;
}
.lx-col-list { display: flex; flex-direction: column; justify-content: center; border-top: 1px solid rgba(23, 21, 19, .16); }
.lx-col-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto 26px;
  align-items: center;
  gap: 14px;
  padding: 17px 8px 17px 2px;
  border-bottom: 1px solid rgba(23, 21, 19, .12);
  color: var(--nn-ink);
  text-decoration: none;
  transition: padding .3s ease, background .3s ease;
}
.lx-col-num { color: #a2947e; font-size: 10px; font-weight: 850; letter-spacing: .08em; transition: color .25s ease; }
.lx-col-item strong {
  font-family: var(--luxe-serif);
  font-size: clamp(21px, 1.9vw, 29px);
  font-weight: 500;
  letter-spacing: -.012em;
  line-height: 1.1;
  transition: color .25s ease;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lx-col-item em { color: var(--nn-muted); font-size: 9px; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.lx-col-item > b { color: var(--luxe-accent); font-size: 18px; font-weight: 500; opacity: 0; transform: translateX(-8px); transition: opacity .3s ease, transform .3s ease; }
.lx-col-item:hover, .lx-col-item.is-active { padding-left: 14px; }
.lx-col-item.is-active strong { color: var(--luxe-accent); font-style: italic; }
.lx-col-item.is-active .lx-col-num { color: var(--luxe-accent); }
.lx-col-item:hover > b, .lx-col-item.is-active > b { opacity: 1; transform: none; }

.lx-col-stage {
  position: relative;
  min-height: clamp(420px, 42vw, 560px);
  overflow: hidden;
  border-radius: 26px;
  background: #e9e2d5;
  box-shadow: var(--classic-shadow-soft), inset 0 0 0 1px rgba(160, 120, 70, .16);
  isolation: isolate;
}
.lx-col-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.03);
  transition: opacity .7s ease, transform 6.5s cubic-bezier(.22, 1, .36, 1);
}
.lx-col-media img.lx-crop-right { object-position: right center; }
.lx-col-media img.is-active { opacity: 1; transform: scale(1.1); }
.lx-col-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 55%, rgba(18, 14, 10, .62));
  pointer-events: none;
}
.lx-col-stage-meta {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 20px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #fff;
}
.lx-col-stage-meta span {
  font-family: var(--luxe-serif);
  font-style: italic;
  font-size: 24px;
  font-weight: 500;
  text-shadow: 0 2px 18px rgba(10, 8, 6, .5);
}
.lx-col-stage-meta a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 12px 18px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 999px;
  background: rgba(17, 14, 11, .5);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  color: #fff;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .25s ease, border-color .25s ease;
}
.lx-col-stage-meta a b { font-weight: 500; font-size: 14px; transition: transform .3s ease; }
.lx-col-stage-meta a:hover { background: var(--luxe-accent); border-color: var(--luxe-accent); }
.lx-col-stage-meta a:hover b { transform: translateX(4px); }

@media (max-width: 1180px) {
  .lx-col-gallery { grid-template-columns: minmax(280px, .95fr) minmax(0, 1.25fr); }
}
@media (max-width: 860px) {
  .lx-col-gallery { grid-template-columns: 1fr; gap: 18px; }
  .lx-col-stage { order: -1; min-height: 300px; border-radius: 20px; }
  .lx-col-item { padding: 14px 6px 14px 0; }
  .lx-col-item:hover, .lx-col-item.is-active { padding-left: 8px; }
  .lx-col-stage-meta span { font-size: 20px; }
}

/* legacy grid (hidden when the gallery is built, kept for no-JS) */
.nn-collection-go { transition: background .3s ease, color .3s ease, transform .3s ease !important; }
.nn-collection-row:hover .nn-collection-go {
  background: var(--luxe-accent) !important;
  color: #fff !important;
  transform: rotate(45deg) !important;
}
.nn-collection-image:after { transition: opacity .4s ease; }
.nn-collection-number { border: 1px solid rgba(255, 255, 255, .18); }

/* ==========================================================================
   CATEGORY PAGE — "Выберите пространство" room selector (LUXE 2026)
   Living/bedroom photo cards, works on every collection archive.
   ========================================================================== */
.collection-room-nav {
  display: block !important;
  margin: 0 0 clamp(34px, 4vw, 56px) !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.collection-room-intro {
  max-width: 640px;
  margin: 0 0 26px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.collection-room-intro > span {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  margin-bottom: 16px !important;
  color: var(--luxe-accent) !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase;
}
.collection-room-intro h2 {
  margin: 0 0 12px !important;
  font-family: var(--luxe-serif) !important;
  font-size: clamp(34px, 4vw, 52px) !important;
  font-weight: 500 !important;
  letter-spacing: -.02em !important;
  line-height: 1.02 !important;
  color: var(--nn-ink) !important;
}
.collection-room-intro h2 em { font-style: italic !important; color: var(--luxe-accent) !important; }
.collection-room-intro p { max-width: 520px; margin: 0 !important; color: var(--nn-muted) !important; font-size: 14px !important; line-height: 1.7 !important; }

.collection-room-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  min-width: 0 !important;
}
.collection-room-nav.is-single .collection-room-grid { grid-template-columns: 1fr !important; }

.collection-room-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  gap: 0 !important;
  min-height: clamp(250px, 22vw, 290px) !important;
  padding: 15px !important;
  border: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  isolation: isolate;
  color: #fff !important;
  text-decoration: none !important;
  background: #2a2723 !important;
  box-shadow: 0 16px 40px rgba(30, 24, 18, .15) !important;
  transition: transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s ease !important;
}
.collection-room-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  transition: transform .7s cubic-bezier(.22, 1, .36, 1);
}
.collection-room-card[data-room="living"]::before { background-image: url("../images/real-interiors/manifesto-emily.webp"); }
.collection-room-card[data-room="bedroom"]::before { background-image: url("../images/collection-banners/emili.webp"); background-position: right center; }
.collection-room-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(18, 14, 10, .32) 0%, rgba(18, 14, 10, .02) 26%, rgba(18, 14, 10, .04) 52%, rgba(18, 14, 10, .28));
  transition: background .4s ease;
}
.collection-room-card:hover { transform: translateY(-6px) !important; box-shadow: 0 26px 56px rgba(30, 24, 18, .28) !important; }
.collection-room-card:hover::before { transform: scale(1.06); }
.collection-room-card.is-active { box-shadow: 0 18px 44px rgba(198, 83, 29, .28), inset 0 0 0 2px var(--luxe-accent) !important; }

/* Number badge + status pinned top corners */
.collection-room-top {
  position: absolute !important;
  top: 15px;
  left: 15px;
  right: 15px;
  z-index: 3;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.collection-room-num {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .32);
  background: rgba(18, 14, 10, .38);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-family: var(--luxe-serif);
  font-size: 16px;
  font-weight: 500;
  color: #fff;
  line-height: 1;
}
.collection-room-here {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border-radius: 999px;
  background: var(--luxe-accent);
  color: #fff;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.collection-room-here .fa-solid { font-size: 10px; }

/* Compact copy tag pinned to the bottom-left corner — keeps the photo visible */
.collection-room-body {
  position: relative;
  z-index: 2;
  align-self: flex-start !important;
  max-width: min(74%, 280px);
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 14px 16px 13px !important;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 14px;
  background: rgba(15, 12, 9, .6);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: 0 12px 30px rgba(8, 6, 4, .3);
}
.collection-room-eyebrow {
  margin-bottom: 6px;
  color: var(--luxe-gold-bright);
  font-size: 8.5px;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.collection-room-card .collection-room-body strong {
  margin: 0 0 4px !important;
  font-family: var(--luxe-serif) !important;
  font-size: clamp(23px, 2.2vw, 29px) !important;
  font-weight: 500 !important;
  letter-spacing: -.01em !important;
  line-height: 1.04 !important;
  color: #fff !important;
}
.collection-room-card .collection-room-body em {
  margin: 0 0 11px !important;
  color: rgba(255, 255, 255, .78) !important;
  font-size: 11px !important;
  font-style: normal !important;
  line-height: 1.45 !important;
}
.collection-room-cta {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding-top: 11px;
  border-top: 1px solid rgba(255, 255, 255, .16);
}
.collection-room-count { color: rgba(255, 255, 255, .82); font-size: 10.5px; font-weight: 700; letter-spacing: .03em; }
.collection-room-count b { color: #fff; font-weight: 850; }
.collection-room-go {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .14);
  color: #fff;
  font-size: 15px;
  transition: background .3s ease, transform .3s ease, color .3s ease;
}
.collection-room-card:hover .collection-room-go { background: var(--luxe-accent); color: #fff; transform: rotate(-45deg); }

@media (max-width: 860px) {
  .collection-room-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  /* Taller card + full-width caption bar at the bottom → photo stays visible on top */
  .collection-room-card { min-height: 330px !important; padding: 14px !important; }
  .collection-room-body {
    max-width: none !important;
    align-self: stretch !important;
    padding: 15px 17px 14px !important;
  }
  .collection-room-intro h2 { font-size: clamp(27px, 7.5vw, 36px) !important; }
  .collection-room-intro p { font-size: 13px !important; }
}

/* Mobile: more breathing room on the sides site-wide */
@media (max-width: 860px) {
  .shell, .shop-shell { width: min(100% - 36px, 1480px) !important; }
}
@media (max-width: 560px) {
  .shell, .shop-shell { width: min(100% - 34px, 1480px) !important; }
}

/* --- Dark sections: charcoal + terracotta glow (donor footer language) --- */
.nn-studio-grid {
  background:
    radial-gradient(720px 420px at 86% 6%, rgba(198, 83, 29, .18), transparent 62%),
    radial-gradient(560px 360px at 8% 96%, rgba(201, 167, 111, .1), transparent 60%),
    var(--luxe-dark) !important;
  box-shadow: var(--classic-shadow), inset 0 0 0 1px rgba(201, 167, 111, .14) !important;
}
.nn-studio-copy ol b { color: var(--luxe-gold-bright) !important; }
.nn-studio-copy .nn-button-primary { background: var(--luxe-accent) !important; color: #fff !important; }
.nn-studio-copy ol li { transition: padding-left .3s ease; }
.nn-studio-copy ol li:hover { padding-left: 8px; }
.nn-studio-media::before { background: var(--luxe-accent) !important; }
.nn-studio-media span { background: var(--luxe-gold-bright) !important; color: #241c12 !important; }
.site-footer {
  background:
    radial-gradient(900px 460px at 82% 0%, rgba(198, 83, 29, .14), transparent 60%),
    var(--luxe-dark-deep) !important;
}
.site-footer .footer-project-copy {
  background:
    radial-gradient(560px 380px at 88% 10%, rgba(255, 209, 163, .25), transparent 62%),
    var(--luxe-accent) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 220, 190, .2);
}
.site-footer .footer-project-phone i, .site-footer .footer-project-mail i { background: var(--luxe-accent) !important; }
.footer-directory > * { transition: border-color .3s ease, background .3s ease; }
.footer-directory > *:hover { border-color: rgba(201, 167, 111, .35) !important; background: rgba(255, 255, 255, .06) !important; }
.footer-service-tags span { background: rgba(255, 255, 255, .08) !important; }

/* --- Panels: soft hairline --- */
.nn-seo > .shell, .nn-room-story-copy, .collection-room-intro { box-shadow: inset 0 0 0 1px rgba(160, 120, 70, .12); }

/* --- Details --- */
::selection { background: var(--luxe-accent); color: #fff; }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--luxe-accent) !important;
  outline-offset: 3px;
  border-radius: 6px;
}
@media (min-width: 861px) {
  ::-webkit-scrollbar { width: 12px; }
  ::-webkit-scrollbar-track { background: #eeeae1; }
  ::-webkit-scrollbar-thumb { border: 3px solid #eeeae1; border-radius: 8px; background: #b3aa9b; }
  ::-webkit-scrollbar-thumb:hover { background: var(--luxe-dark); }
}

/* --- Mobile guards --- */
@media (max-width: 860px) {
  .lx-hero-progress { left: 16px; right: 16px; top: 12px; }
  .lx-hero-panel { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 16px 18px 14px; border-radius: 15px; }
  .lx-hero-panel strong { font-size: 24px; }
  .lx-hero-panel p { font-size: 11.5px; margin: 6px 0 10px; }
  .lx-hero-thumbs { display: none; }
  .nn-hero-stamp { display: none !important; }
  html.lx-js .lx-reveal { transform: translateY(18px); }
}

/* ==========================================================================
   FOOTER — professional multi-column redesign (LUXE 2026)
   Fixes the collapsed accordion "empty boxes": columns open on desktop,
   accordions only on mobile.
   ========================================================================== */
.site-footer {
  padding-top: clamp(28px, 4vw, 48px) !important;
  background:
    radial-gradient(1100px 520px at 84% -8%, rgba(198, 83, 29, .17), transparent 58%),
    radial-gradient(760px 420px at 2% 104%, rgba(201, 167, 111, .07), transparent 60%),
    #0c0a09 !important;
  color: rgba(255, 255, 255, .58) !important;
}
.site-footer .shell { position: relative; z-index: 1; }

/* Status bar -> slim glass pill */
.footer-status {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin-bottom: 20px !important;
  padding: 13px 22px !important;
  border: 1px solid rgba(255, 255, 255, .1) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .03) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.footer-status > span:first-child { display: inline-flex !important; align-items: center; gap: 10px; color: #fff !important; }
.footer-status > span:first-child i {
  width: 8px !important; height: 8px !important;
  border-radius: 50% !important;
  background: var(--luxe-accent) !important;
  box-shadow: 0 0 0 4px rgba(198, 83, 29, .22);
  animation: lxFooterPulse 2.2s ease-in-out infinite;
}
.footer-status > span:nth-child(2) { color: rgba(255, 255, 255, .5) !important; }
.footer-status a { color: var(--luxe-gold-bright) !important; }
@keyframes lxFooterPulse { 0%,100% { box-shadow: 0 0 0 3px rgba(198,83,29,.28); } 50% { box-shadow: 0 0 0 7px rgba(198,83,29,.05); } }

/* Project CTA — two rounded panels */
.site-footer .footer-project {
  display: grid !important;
  grid-template-columns: 1.15fr 1fr !important;
  gap: 16px !important;
  margin-bottom: 12px;
}
.site-footer .footer-project-copy {
  padding: clamp(38px, 4.4vw, 66px) !important;
  border-radius: 26px !important;
  background:
    radial-gradient(620px 420px at 88% 6%, rgba(255, 209, 163, .28), transparent 62%),
    var(--luxe-accent) !important;
  color: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(255, 220, 190, .18);
}
.site-footer .footer-project-copy .eyebrow { color: rgba(255, 235, 220, .85) !important; }
.site-footer .footer-project-copy h2 { font-family: var(--luxe-serif) !important; font-weight: 500 !important; }
.site-footer .footer-project-copy h2 em { color: #ffe6cf !important; font-style: italic !important; }
.site-footer .footer-project-copy p { color: rgba(255, 255, 255, .82) !important; }
.site-footer .footer-project-panel {
  padding: clamp(30px, 3.4vw, 50px) !important;
  border-radius: 26px !important;
  background: #f7f2ea !important;
  color: #241c14 !important;
}
.site-footer .footer-project-panel-top span { color: var(--luxe-accent) !important; font-weight: 850 !important; }
.site-footer .footer-project-phone, .site-footer .footer-project-mail {
  border-color: #e0d3c1 !important;
  color: #241c14 !important;
}
.site-footer .footer-project-phone i, .site-footer .footer-project-mail i { background: var(--luxe-accent) !important; color: #fff !important; }
.site-footer .footer-project-panel p i { color: #2f9e6a !important; }

/* Directory — OPEN columns (this is the "empty boxes" fix) */
.footer-directory {
  display: grid !important;
  grid-template-columns: 1.7fr 1fr 1fr 1.15fr !important;
  gap: clamp(24px, 3vw, 58px) !important;
  padding-top: clamp(52px, 5vw, 78px) !important;
  align-items: start !important;
}
.footer-directory > * {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.footer-identity { max-width: 330px; }
.footer-identity .somovo-original-brand img { filter: brightness(0) invert(1); opacity: .95; width: 190px; }
.footer-identity p { margin: 20px 0 22px !important; color: rgba(255, 255, 255, .55) !important; font-size: 13px !important; line-height: 1.65 !important; }
.footer-service-tags { display: flex !important; flex-wrap: wrap; gap: 8px; }
.footer-service-tags span {
  display: inline-flex !important; align-items: center; gap: 7px;
  padding: 8px 13px !important;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .04) !important;
  color: rgba(255, 255, 255, .78) !important;
  font-size: 10px !important; font-weight: 750;
}
.footer-service-tags span i { color: var(--luxe-gold-bright) !important; }

/* Accordions -> static columns on desktop */
.footer-accordion { display: block !important; }
.footer-accordion summary {
  display: block !important;
  margin-bottom: 18px !important;
  padding: 0 0 13px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  color: var(--luxe-gold-bright) !important;
  font-family: var(--luxe-serif) !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  letter-spacing: .01em;
  list-style: none !important;
  cursor: default;
  pointer-events: none;
}
.footer-accordion summary::-webkit-details-marker,
.footer-accordion summary::marker { display: none !important; content: ""; }
.footer-accordion summary span { display: none !important; }
.footer-accordion-content { display: grid !important; gap: 11px !important; height: auto !important; }
.footer-accordion-content a {
  color: rgba(255, 255, 255, .62) !important;
  font-size: 13px !important;
  text-decoration: none;
  transition: color .2s ease, padding-left .25s ease;
  width: fit-content;
}
.footer-accordion-content a:hover { color: #fff !important; padding-left: 6px; }
.footer-contact-modern .footer-phone-modern { color: var(--luxe-gold-bright) !important; font-family: var(--luxe-serif) !important; font-size: 21px !important; }
.footer-contact-modern .footer-accordion-content p { color: rgba(255, 255, 255, .5) !important; font-size: 12px; margin: 2px 0; }
.footer-contact-modern .footer-accordion-content p i { color: var(--luxe-accent) !important; }

/* Commerce row — payments + secure */
.footer-commerce {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: clamp(40px, 4vw, 60px);
  padding-top: 26px !important;
  border-top: 1px solid rgba(255, 255, 255, .1) !important;
}
.footer-payment-methods { display: flex !important; align-items: center; gap: 10px; flex-wrap: wrap; }
.footer-payment-methods > span { color: rgba(255, 255, 255, .45) !important; font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.footer-payment-methods strong {
  padding: 8px 13px !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 9px !important;
  background: rgba(255, 255, 255, .05) !important;
  color: #fff !important;
  font-size: 11px !important; font-weight: 800;
}
.footer-commerce > div:last-child { display: flex !important; align-items: center; gap: 11px; color: rgba(255, 255, 255, .55) !important; font-size: 11px; line-height: 1.5; }
.footer-commerce > div:last-child i { color: #2f9e6a !important; font-size: 17px; }

/* Wordmark watermark */
.footer-wordmark { color: rgba(255, 255, 255, .045) !important; }
.footer-wordmark small { color: rgba(255, 255, 255, .3) !important; }

/* Bottom bar */
.footer-bottom {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255, 255, 255, .1) !important;
  font-size: 12px;
}
.footer-bottom > span { color: rgba(255, 255, 255, .45) !important; }
.footer-legal { display: flex !important; gap: 22px; flex-wrap: wrap; }
.footer-legal a { color: rgba(255, 255, 255, .55) !important; font-size: 12px; text-decoration: none; transition: color .2s ease; }
.footer-legal a:hover { color: var(--luxe-gold-bright) !important; }
.footer-up { color: var(--luxe-gold-bright) !important; font-weight: 700; text-decoration: none; }

@media (max-width: 1024px) {
  .footer-directory { grid-template-columns: 1fr 1fr !important; }
  .footer-identity { grid-column: 1 / -1; max-width: none; }
}
@media (max-width: 860px) {
  .site-footer .footer-project { grid-template-columns: 1fr !important; }
  .footer-directory { grid-template-columns: 1fr !important; gap: 4px !important; }
  .footer-accordion { border-bottom: 1px solid rgba(255,255,255,.1); }
  .footer-accordion summary { pointer-events: auto !important; cursor: pointer !important; display: flex !important; align-items: center; justify-content: space-between; margin-bottom: 0 !important; padding: 18px 0 !important; border-bottom: 0 !important; font-size: 15px !important; }
  .footer-accordion summary span { display: inline-flex !important; align-items: center; justify-content: center; width: 26px; height: 26px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff; }
  .footer-accordion:not([open]) .footer-accordion-content { display: none !important; }
  .footer-accordion[open] .footer-accordion-content { padding-bottom: 18px; }
  .footer-commerce { justify-content: flex-start; }
}

/* ==========================================================================
   "Четыре доказательства" — luxury numbered proofs, NO fake imagery
   ========================================================================== */
.nn-craft { padding: clamp(70px, 8vw, 120px) 0 !important; background: var(--nn-cream) !important; }
.nn-craft-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
  margin-top: clamp(30px, 4vw, 54px) !important;
  border: 0 !important;
  background: transparent !important;
}
.nn-craft-grid article {
  position: relative;
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 30px 26px 28px !important;
  border: 1px solid rgba(23, 21, 19, .08) !important;
  border-radius: 20px !important;
  background: var(--nn-white) !important;
  box-shadow: 0 1px 2px rgba(30, 25, 20, .03), 0 12px 28px rgba(30, 25, 20, .05) !important;
  overflow: hidden;
  transition: transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s ease, border-color .3s ease;
}
.nn-craft-grid article::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--luxe-accent), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s ease;
}
.nn-craft-grid article:hover { transform: translateY(-6px); border-color: rgba(198, 83, 29, .2) !important; box-shadow: 0 26px 50px rgba(30, 25, 20, .13) !important; }
.nn-craft-grid article:hover::before { transform: scaleX(1); }
.nn-craft-num {
  font-family: var(--luxe-serif) !important;
  font-size: 40px !important;
  font-weight: 500 !important;
  color: rgba(198, 83, 29, .22) !important;
  line-height: 1;
}
.nn-craft-grid article > i.fa-solid {
  display: grid;
  place-items: center;
  width: 46px; height: 46px;
  margin: 14px 0 18px;
  border-radius: 50%;
  background: rgba(198, 83, 29, .1);
  color: var(--luxe-accent);
  font-size: 18px;
}
.nn-craft-grid article strong {
  font-family: var(--luxe-serif) !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  letter-spacing: -.01em;
  color: var(--nn-ink) !important;
  margin-bottom: 10px !important;
}
.nn-craft-grid article p { color: var(--nn-muted) !important; font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; }
@media (max-width: 980px) { .nn-craft-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 520px) { .nn-craft-grid { grid-template-columns: 1fr !important; } }

/* ==========================================================================
   "Не просто купить. Собрать интерьер." — 360° luxury service block
   Framed image + gold-node step timeline.
   ========================================================================== */
.nn-studio-grid {
  gap: 0 !important;
  padding: clamp(14px, 1.6vw, 22px) !important;
  border-radius: 32px !important;
}
.nn-studio-media {
  position: relative;
  min-height: clamp(480px, 52vw, 640px) !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  box-shadow: inset 0 0 0 1px rgba(201, 167, 111, .3);
}
.nn-studio-media::before {
  content: "";
  position: absolute;
  inset: 14px !important;
  width: auto !important;
  height: auto !important;
  top: 14px !important;
  left: 14px !important;
  right: 14px !important;
  bottom: 14px !important;
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, .28) !important;
  border-radius: 16px !important;
  background: transparent !important;
  pointer-events: none;
}
.nn-studio-media img { transition: transform 8s ease; }
.nn-studio:hover .nn-studio-media img { transform: scale(1.06); }
.nn-studio-media span {
  z-index: 3 !important;
  border-radius: 999px !important;
  background: rgba(20, 16, 12, .55) !important;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid rgba(201, 167, 111, .35);
  color: #fff !important;
  right: auto !important; left: 26px !important; bottom: 26px !important;
  padding: 13px 20px !important;
}
.nn-studio-copy { padding: clamp(40px, 4.4vw, 76px) !important; }
.nn-studio-copy > span { color: var(--luxe-accent) !important; }
.nn-studio-copy h2 em { color: var(--luxe-gold-bright) !important; }

/* Step timeline with connected gold nodes */
.nn-studio-copy ol {
  position: relative;
  margin: 0 0 38px !important;
  padding: 4px 0 0 !important;
  border: 0 !important;
  list-style: none;
}
.nn-studio-copy ol::before {
  content: "";
  position: absolute;
  left: 21px; top: 18px; bottom: 26px;
  width: 1px;
  background: linear-gradient(180deg, rgba(201, 167, 111, .5), rgba(201, 167, 111, .08));
}
.nn-studio-copy li {
  position: relative;
  display: grid !important;
  grid-template-columns: 44px 1fr !important;
  gap: 20px !important;
  padding: 0 0 26px !important;
  border: 0 !important;
  align-items: start;
}
.nn-studio-copy li:last-child { padding-bottom: 0 !important; }
.nn-studio-copy li > b {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(201, 167, 111, .4);
  background: rgba(201, 167, 111, .12);
  color: var(--luxe-gold-bright) !important;
  font-family: var(--luxe-serif);
  font-size: 15px !important;
  font-weight: 500;
  transition: background .3s ease, transform .3s ease;
}
.nn-studio-copy li:hover > b { background: var(--luxe-accent); border-color: var(--luxe-accent); color: #fff !important; transform: scale(1.06); }
.nn-studio-copy li > span { display: grid; gap: 5px; padding-top: 9px; }
.nn-studio-copy li strong { font-family: var(--luxe-serif) !important; font-size: 18px !important; font-weight: 500 !important; color: #fff !important; }
.nn-studio-copy li small { color: rgba(255, 255, 255, .58) !important; font-size: 12.5px !important; line-height: 1.5; }
.nn-studio-copy .nn-button-primary { background: var(--luxe-accent) !important; color: #fff !important; }
.nn-studio-copy .nn-button-primary:hover { background: var(--luxe-accent-dark) !important; }

@media (max-width: 860px) {
  .nn-studio-media::before { inset: 10px; }
  .nn-studio-media span { left: 16px !important; bottom: 16px !important; }
}

/* ==========================================================================
   FOOTER luxury polish (links now shown via JS-opened <details>) + SEO refine
   ========================================================================== */
.footer-directory { border-top: 1px solid rgba(255, 255, 255, .08); margin-top: 4px; }
.footer-accordion summary {
  font-family: var(--luxe-sans) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase;
  color: var(--luxe-gold-bright) !important;
}
.footer-accordion-content a { position: relative; }
.footer-accordion-content a::before {
  content: "";
  position: absolute;
  left: -12px; top: 50%;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--luxe-accent);
  opacity: 0;
  transform: translateY(-50%) scale(.4);
  transition: opacity .25s ease, transform .25s ease;
}
.footer-accordion-content a:hover::before { opacity: 1; transform: translateY(-50%) scale(1); }
.footer-accordion-content a:hover { padding-left: 4px !important; }

/* SEO closing block — balanced two-column editorial panel */
.nn-seo > .shell {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .82fr) !important;
  grid-template-areas: "eyebrow text" "heading text" !important;
  align-items: start !important;
  gap: 18px clamp(44px, 6vw, 96px) !important;
  padding: clamp(40px, 5vw, 72px) !important;
  border-radius: 30px !important;
  background: linear-gradient(158deg, #f2ece1, #f7f4ee) !important;
  box-shadow: inset 0 0 0 1px rgba(160, 120, 70, .14);
}
.nn-seo > .shell > span {
  grid-area: eyebrow;
  align-self: end;
  margin-bottom: 4px !important;
  color: var(--luxe-accent) !important;
}
.nn-seo > .shell h2 {
  grid-area: heading;
  margin: 0 !important;
  font-family: var(--luxe-serif) !important;
  font-size: clamp(30px, 3.4vw, 48px) !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  letter-spacing: -.015em !important;
  color: var(--nn-ink) !important;
}
.nn-seo > .shell p {
  grid-area: text;
  align-self: center;
  max-width: 460px;
  margin: 0 !important;
  color: var(--nn-muted) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}
@media (max-width: 780px) {
  .nn-seo > .shell {
    grid-template-columns: 1fr !important;
    grid-template-areas: "eyebrow" "heading" "text" !important;
    gap: 16px !important;
  }
  .nn-seo > .shell > span { align-self: start; }
}

/* ==========================================================================
   SINGLE PRODUCT PAGE — luxury 2026 (refined, distinct from Somovo24)
   ========================================================================== */
.single-product .product-shell { padding-top: clamp(18px, 3vw, 42px) !important; }
.single-product .site-main.product-main { background: var(--nn-cream) !important; }

/* Title */
.single-product .product_title {
  font-family: var(--luxe-serif) !important;
  font-size: clamp(31px, 3.2vw, 44px) !important;
  font-weight: 500 !important;
  letter-spacing: -.02em !important;
  line-height: 1.06 !important;
  color: var(--nn-ink) !important;
  margin: 0 0 14px !important;
}
.single-product .summary .product-eyebrow,
.single-product .summary > .posted_in { color: var(--luxe-accent) !important; }

/* Price — elegant hierarchy */
.single-product .summary > .price,
.single-product .single_variation .price {
  margin: 0 0 6px !important;
  font-size: clamp(24px, 2.6vw, 30px) !important;
  font-weight: 850 !important;
  color: var(--nn-ink) !important;
  letter-spacing: -.015em;
}
.single-product .price del { color: var(--nn-muted) !important; font-size: 16px !important; font-weight: 600 !important; opacity: .7; margin-right: 8px; }
.single-product .price ins { text-decoration: none !important; color: var(--luxe-accent) !important; }
.single-product .price .price-from, .single-product .price bdi { font-weight: inherit; }

/* Габариты panel — soft luxe card */
.single-product .somovo-size-panel {
  border: 1px solid rgba(23, 21, 19, .08) !important;
  border-radius: 20px !important;
  background: var(--nn-white) !important;
  box-shadow: 0 12px 30px rgba(30, 25, 20, .05) !important;
}
.single-product .somovo-size-panel__head strong { font-family: var(--luxe-serif) !important; font-weight: 500 !important; }
.single-product .somovo-size-panel__head > span i,
.single-product .somovo-size-panel__grid article i { color: var(--luxe-accent) !important; }
.single-product .somovo-size-panel__grid article {
  border: 1px solid rgba(23, 21, 19, .07) !important;
  border-radius: 14px !important;
  background: #faf7f1 !important;
}
.single-product .somovo-size-panel__grid article strong b { color: var(--nn-ink) !important; }

/* Variation section labels -> quiet serif headers */
.single-product .variations { border: 0 !important; }
.single-product .variations tr { display: block !important; margin-bottom: 22px; }
.single-product .variations .label, .single-product .variations th.label {
  display: block !important;
  padding: 0 0 12px !important;
  font-family: var(--luxe-serif) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: -.01em !important;
  color: var(--nn-ink) !important;
  text-transform: none !important;
}
.single-product .variations .value { display: block !important; padding: 0 !important; }

/* Swatch buttons -> refined, gold-terracotta active ring */
.single-product button.single-variation-option,
.single-product .single-variation-option {
  border-radius: 14px !important;
  border: 1px solid rgba(23, 21, 19, .12) !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: #fff !important;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease !important;
}
.single-product button.single-variation-option:hover { transform: translateY(-3px); border-color: var(--luxe-accent) !important; box-shadow: 0 12px 24px rgba(30, 25, 20, .1) !important; }
.single-product button.single-variation-option.is-active {
  border-color: var(--luxe-accent) !important;
  box-shadow: 0 0 0 2px var(--luxe-accent), 0 12px 26px rgba(198, 83, 29, .2) !important;
}
.single-product button.single-variation-option img { border-radius: 12px !important; display: block; }

/* Reset / clear variations link */
.single-product .reset_variations { color: var(--luxe-accent) !important; font-weight: 700; }

/* Quantity + add to cart — premium buy row */
.single-product .quantity {
  border: 1px solid rgba(23, 21, 19, .14) !important;
  border-radius: 999px !important;
  background: #fff !important;
  overflow: hidden;
}
.single-product .quantity input.qty { background: transparent !important; font-weight: 700 !important; }
.single-product .single_add_to_cart_button,
.single-product .single_variation_wrap .single_add_to_cart_button {
  min-height: 58px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: .07em;
  box-shadow: 0 14px 30px rgba(198, 83, 29, .26) !important;
  transition: background .3s ease, transform .3s ease !important;
}
.single-product .single_add_to_cart_button:hover { background: var(--luxe-accent-dark) !important; transform: translateY(-2px); }

/* Trust bar (injected after add-to-cart) */
.somovo-trust-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(23, 21, 19, .1);
}
.somovo-trust-bar > div { display: flex; align-items: center; gap: 11px; }
.somovo-trust-bar i {
  display: grid; place-items: center;
  width: 40px; height: 40px; flex: none;
  border-radius: 50%;
  background: rgba(198, 83, 29, .1);
  color: var(--luxe-accent);
  font-size: 15px;
}
.somovo-trust-bar strong { display: block; font-size: 12px; font-weight: 800; color: var(--nn-ink); }
.somovo-trust-bar small { display: block; font-size: 10.5px; color: var(--nn-muted); margin-top: 1px; }

/* Meta */
.single-product .product_meta {
  margin-top: 22px !important;
  padding-top: 18px !important;
  border-top: 1px solid rgba(23, 21, 19, .1) !important;
  font-size: 12px !important;
  color: var(--nn-muted) !important;
}
.single-product .product_meta a { color: var(--luxe-accent) !important; text-decoration: none; }

/* Tabs -> pill tabs */
.single-product .woocommerce-tabs .tabs,
.single-product .wc-tabs {
  display: flex !important;
  gap: 8px !important;
  margin: 0 0 26px !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none;
}
.single-product .woocommerce-tabs .tabs::before,
.single-product .woocommerce-tabs .tabs::after { display: none !important; }
.single-product .woocommerce-tabs .tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.single-product .woocommerce-tabs .tabs li::before,
.single-product .woocommerce-tabs .tabs li::after { display: none !important; }
.single-product .woocommerce-tabs .tabs li a {
  display: block !important;
  padding: 12px 24px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(23, 21, 19, .12) !important;
  background: #fff !important;
  color: var(--nn-muted) !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.single-product .woocommerce-tabs .tabs li.active a,
.single-product .woocommerce-tabs .tabs li a:hover {
  background: var(--luxe-dark) !important;
  color: #fff !important;
  border-color: var(--luxe-dark) !important;
}
.single-product .woocommerce-Tabs-panel h2 { font-family: var(--luxe-serif) !important; font-weight: 500 !important; font-size: clamp(24px, 2.4vw, 32px) !important; color: var(--nn-ink) !important; }
.single-product .woocommerce-Tabs-panel { color: var(--ink-soft, #434039) !important; font-size: 14px; line-height: 1.75; }

/* Gallery frame */
.single-product .woocommerce-product-gallery { border-radius: 24px !important; overflow: hidden; }

/* Related products heading */
.single-product .related > h2, .single-product .upsells > h2 { font-family: var(--luxe-serif) !important; font-weight: 500 !important; }

@media (max-width: 560px) {
  .somovo-trust-bar { grid-template-columns: 1fr; gap: 12px; }
  .single-product .woocommerce-tabs .tabs { flex-wrap: wrap; }
}

/* Active tab bulletproof (shorthand background lost to Woo defaults) */
body.single-product .woocommerce-tabs ul.tabs li a { background-color: #fff !important; background-image: none !important; }
body.single-product .woocommerce-tabs ul.tabs li.active a,
body.single-product .woocommerce-tabs ul.tabs li.active a:hover,
body.single-product .woocommerce-tabs ul.tabs li a:hover {
  background-color: #151311 !important;
  color: #fff !important;
  border-color: #151311 !important;
}

/* Tab active fix v2: scope the white bg to NON-active tabs only (my own !important
   rule was whitening the active tab too, beating app.css's dark active bg). */
body.single-product .woocommerce-tabs ul.tabs li:not(.active) a {
  background: #fff !important;
  color: #756b60 !important;
  border: 1px solid rgba(23, 21, 19, .12) !important;
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
  background: #151311 !important;
  color: #fff !important;
  border: 1px solid #151311 !important;
}

/* ==========================================================================
   FOOTER — link hover pill + replace flat orange CTA with a photo panel
   ========================================================================== */
.footer-accordion-content a {
  padding: 6px 12px !important;
  margin-left: -12px;
  border-radius: 10px !important;
  transition: background .25s ease, color .2s ease, padding-left .25s ease !important;
}
.footer-accordion-content a::before { display: none !important; }
.footer-accordion-content a:hover {
  background: rgba(255, 255, 255, .07) !important;
  color: #fff !important;
  padding-left: 16px !important;
}
.footer-contact-modern .footer-phone-modern:hover { background: transparent !important; padding-left: 0 !important; }

/* Orange CTA -> interior photo panel with dark veil */
.site-footer .footer-project-copy {
  position: relative;
  overflow: hidden;
  background: #17110c !important;
  box-shadow: none !important;
}
.site-footer .footer-project-copy::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("../images/real-interiors/manifesto-emily.webp") center/cover no-repeat;
  transform: scale(1.02);
  transition: transform 8s ease;
}
.site-footer:hover .footer-project-copy::before { transform: scale(1.09); }
.site-footer .footer-project-copy::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, rgba(18, 12, 8, .86) 0%, rgba(18, 12, 8, .5) 55%, rgba(30, 18, 10, .72) 100%);
}
.site-footer .footer-project-copy > * { position: relative; z-index: 2; }
.site-footer .footer-project-copy .eyebrow { color: var(--luxe-gold-bright) !important; }
.site-footer .footer-project-copy h2 em { color: #ffdcb0 !important; }
.site-footer .footer-project-copy p { color: rgba(255, 255, 255, .78) !important; }

/* Green shield line — align icon, no clipping */
.site-footer .footer-project-panel p {
  display: flex !important;
  align-items: flex-start;
  gap: 9px;
  line-height: 1.5;
}
.site-footer .footer-project-panel p i { flex: none; margin-top: 2px; color: #2f9e6a !important; }

/* ==========================================================================
   CHECKOUT — luxury order review + refined form (was "говненно")
   ========================================================================== */
.woocommerce-checkout form.checkout { gap: clamp(20px, 3vw, 44px) !important; align-items: start !important; }

/* Left form inputs */
.woocommerce-checkout .form-row label { color: var(--nn-ink) !important; font-weight: 700 !important; font-size: 12px !important; }
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout .select2-selection {
  border-radius: 14px !important;
  border: 1px solid rgba(23, 21, 19, .14) !important;
  background: #fff !important;
}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout textarea:focus { border-color: var(--luxe-accent) !important; }

/* Order review panel */
.woocommerce-checkout-review-order {
  border: 1px solid rgba(23, 21, 19, .08) !important;
  border-radius: 22px !important;
  background: var(--nn-white) !important;
  box-shadow: 0 16px 42px rgba(30, 25, 20, .07) !important;
  overflow: hidden !important;
}
.woocommerce-checkout-review-order-table { width: 100% !important; margin: 0 !important; border: 0 !important; border-collapse: collapse !important; }
.woocommerce-checkout-review-order-table thead { display: none !important; }
.woocommerce-checkout-review-order-table .cart_item .product-name { padding: 18px 22px !important; border: 0 !important; border-bottom: 1px solid rgba(23, 21, 19, .08) !important; }
.woocommerce-checkout-review-order-table .cart_item .product-total { display: none !important; }
.checkout-product-line { display: grid !important; grid-template-columns: 62px 1fr !important; gap: 15px !important; align-items: center !important; }
.checkout-product-line img { width: 62px !important; height: 62px !important; border-radius: 13px !important; object-fit: cover !important; border: 1px solid rgba(23,21,19,.08); background: #f4f0e8; }
.checkout-product-line strong { display: block; font-family: var(--luxe-serif) !important; font-weight: 500 !important; font-size: 16px !important; color: var(--nn-ink) !important; }
.checkout-product-line .product-quantity, .checkout-product-line .quantity { color: var(--nn-muted) !important; font-size: 12px !important; }

.woocommerce-checkout-review-order-table tr.cart-subtotal th,
.woocommerce-checkout-review-order-table tr.shipping th,
.woocommerce-checkout-review-order-table tr.order-total th {
  padding: 13px 22px !important; border: 0 !important;
  color: var(--nn-muted) !important; font-weight: 600 !important; font-size: 13px !important; text-align: left !important;
}
.woocommerce-checkout-review-order-table tr.cart-subtotal td,
.woocommerce-checkout-review-order-table tr.shipping td,
.woocommerce-checkout-review-order-table tr.order-total td {
  padding: 13px 22px !important; border: 0 !important;
  color: var(--nn-ink) !important; font-weight: 700 !important; text-align: right !important;
}
.woocommerce-checkout-review-order-table tr.shipping { border-top: 1px solid rgba(23,21,19,.06) !important; }
.woocommerce-checkout-review-order-table tr.order-total {
  background: linear-gradient(160deg, #f7f3ec, #faf7f1) !important;
  border-top: 1px solid rgba(23, 21, 19, .1) !important;
}
.woocommerce-checkout-review-order-table tr.order-total th { color: var(--nn-ink) !important; font-family: var(--luxe-serif) !important; font-weight: 500 !important; font-size: 17px !important; }
.woocommerce-checkout-review-order-table tr.order-total td { color: var(--luxe-accent) !important; font-weight: 850 !important; font-size: 20px !important; }
.woocommerce-checkout-review-order-table tr.shipping ul, .woocommerce-checkout-review-order-table .shipping-calculator-button { text-align: right; }

/* Payment methods -> clean cards (not pink) */
.woocommerce-checkout #payment, .woocommerce-checkout .woocommerce-checkout-payment {
  background: transparent !important;
  padding: 16px 22px 22px !important;
  border-radius: 0 !important;
}
.woocommerce-checkout .wc_payment_methods { margin: 0 0 6px !important; padding: 0 !important; border: 0 !important; list-style: none; }
.woocommerce-checkout .wc_payment_method {
  padding: 0 !important; margin: 0 0 8px !important; border: 0 !important; background: transparent !important;
}
.woocommerce-checkout .wc_payment_method > label {
  display: flex !important; align-items: center; gap: 11px;
  padding: 15px 16px !important;
  border: 1px solid rgba(23, 21, 19, .12) !important;
  border-radius: 14px !important;
  background: #fff !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.woocommerce-checkout .wc_payment_method input:checked + label { border-color: var(--luxe-accent) !important; background: #fdf6f1 !important; box-shadow: 0 0 0 1px var(--luxe-accent); }
.woocommerce-checkout .payment_box {
  margin: 6px 0 0 !important;
  padding: 13px 16px !important;
  border-radius: 12px !important;
  background: #f6f2ec !important;
  color: var(--nn-muted) !important;
  font-size: 12px !important;
}
.woocommerce-checkout .payment_box::before { display: none !important; }

/* Place order button */
.woocommerce-checkout #place_order,
.woocommerce-checkout .place-order button {
  width: 100% !important;
  min-height: 58px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: .07em;
  box-shadow: 0 14px 30px rgba(198, 83, 29, .26) !important;
  transition: background .3s ease, transform .3s ease !important;
}
.woocommerce-checkout #place_order:hover { background: var(--luxe-accent-dark) !important; transform: translateY(-2px); }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: 12px !important; color: var(--nn-muted) !important; }
.woocommerce-checkout .place-order { padding: 6px 22px 22px !important; }

/* Section headings */
.woocommerce-checkout h3, .woocommerce-checkout .woocommerce-billing-fields > h3, #order_review_heading {
  font-family: var(--luxe-serif) !important; font-weight: 500 !important; color: var(--nn-ink) !important;
}

@media (max-width: 980px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr !important; }
}

/* Checkout overrides via the theme's own prefix (beats duplicate app.css blocks) */
body.somovo-checkout-page #place_order,
body.somovo-checkout-page .place-order button {
  border-radius: 999px !important;
  min-height: 58px !important;
  background: #c6531d !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(198,83,29,.26) !important;
}
body.somovo-checkout-page #place_order:hover { background: #a84317 !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td .amount,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td bdi {
  color: #c6531d !important;
  font-weight: 850 !important;
}
body.somovo-checkout-page #payment .wc_payment_method > label {
  display: flex !important; align-items: center; gap: 11px;
  padding: 15px 16px !important;
  border: 1px solid rgba(23,21,19,.12) !important;
  border-radius: 14px !important;
  background: #fff !important;
  font-weight: 700 !important;
}
body.somovo-checkout-page #payment .wc_payment_method input:checked + label { border-color: #c6531d !important; background: #fdf6f1 !important; }
body.somovo-checkout-page #payment div.payment_box {
  margin: 6px 0 0 !important;
  padding: 13px 16px !important;
  border-radius: 12px !important;
  background: #f6f2ec !important;
  color: #756b60 !important;
}

/* ==========================================================================
   CHECKOUT — full premium redesign (spec: IKEA/Hoff/Ozon level).
   All via body.somovo-checkout-page (beats the theme's duplicate blocks).
   Palette: bg #fff, text #222, secondary #6b7280, divider #ececec, accent #c6531d.
   ========================================================================== */

/* --- Review order panel --- */
body.somovo-checkout-page #order_review,
body.somovo-checkout-page .woocommerce-checkout-review-order {
  padding: 0 !important;
  border: 1px solid #ececec !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: 0 12px 44px rgba(20, 20, 20, .07) !important;
  overflow: hidden !important;
}
body.somovo-checkout-page #order_review_heading {
  margin: 0 !important;
  padding: 22px 24px !important;
  border-bottom: 1px solid #ececec !important;
  background: #fff !important;
  color: #222 !important;
  font-family: var(--luxe-serif) !important;
  font-weight: 500 !important;
  font-size: 22px !important;
}

/* --- Product card row --- */
body.somovo-checkout-page .woocommerce-checkout-review-order-table { width: 100% !important; margin: 0 !important; border: 0 !important; border-collapse: collapse !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table thead { display: none !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item .product-name {
  padding: 24px !important;
  border: 0 !important;
  border-bottom: 1px solid #ececec !important;
}
body.somovo-checkout-page .checkout-product-line {
  display: grid !important;
  grid-template-columns: 100px 1fr !important;
  gap: 22px !important;
  align-items: center !important;
}
body.somovo-checkout-page .checkout-product-line img {
  width: 100px !important;
  height: 100px !important;
  border-radius: 16px !important;
  object-fit: cover !important;
  border: 1px solid #ececec !important;
  background: #f7f7f7 !important;
  box-shadow: 0 6px 18px rgba(20, 20, 20, .07) !important;
  opacity: 1 !important;
}
body.somovo-checkout-page .checkout-product-line > div { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
body.somovo-checkout-page .checkout-product-line strong {
  display: block !important;
  font-family: inherit !important;
  color: #2b2b2b !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.32 !important;
}
body.somovo-checkout-page .checkout-product-line .product-quantity,
body.somovo-checkout-page .checkout-product-line .quantity,
body.somovo-checkout-page .checkout-product-line small,
body.somovo-checkout-page .checkout-product-line .variation { color: #6b7280 !important; font-size: 14px !important; }
body.somovo-checkout-page .cart_item .product-total { display: none !important; }

/* --- Totals --- */
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart-subtotal th,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping th {
  padding: 16px 24px !important; border: 0 !important;
  color: #6b7280 !important; font-weight: 500 !important; font-size: 15px !important; text-align: left !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart-subtotal td,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping td {
  padding: 16px 24px !important; border: 0 !important;
  color: #222 !important; font-weight: 700 !important; font-size: 15px !important; text-align: right !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart-subtotal td *,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping td * { color: #222 !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping { border-top: 1px solid #f2f2f2 !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping td .amount { color: #222 !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total {
  border-top: 1px solid #ececec !important;
  background: #fafafa !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total th {
  padding: 22px 24px !important; border: 0 !important;
  color: #222 !important; font-family: inherit !important; font-weight: 700 !important; font-size: 18px !important; text-align: left !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td .amount,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td bdi {
  padding: 22px 24px !important; border: 0 !important;
  color: #c6531d !important; font-weight: 800 !important; font-size: 23px !important; text-align: right !important;
}

/* --- Payment methods as cards --- */
body.somovo-checkout-page #payment,
body.somovo-checkout-page .woocommerce-checkout-payment {
  padding: 24px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important;
}
body.somovo-checkout-page .wc_payment_methods {
  display: grid !important; gap: 12px !important;
  margin: 0 0 20px !important; padding: 0 !important; border: 0 !important; list-style: none !important;
}
body.somovo-checkout-page .wc_payment_method { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
body.somovo-checkout-page .wc_payment_method > label {
  display: flex !important; align-items: center !important; gap: 13px !important;
  margin: 0 !important; padding: 18px !important;
  border: 1.5px solid #ececec !important; border-radius: 14px !important; background: #fff !important;
  color: #222 !important; font-size: 15px !important; font-weight: 600 !important; cursor: pointer !important;
  transition: border-color .25s ease, background .25s ease, box-shadow .25s ease, transform .2s ease !important;
}
body.somovo-checkout-page .wc_payment_method > label,
body.somovo-checkout-page .wc_payment_method > label * { color: #222 !important; }
body.somovo-checkout-page .wc_payment_method > label img { max-height: 24px; width: auto; }
body.somovo-checkout-page .wc_payment_method:hover > label { border-color: #d9c3b3 !important; }
body.somovo-checkout-page .wc_payment_method input:checked + label {
  border-color: #c6531d !important; background: #fdf6f1 !important;
  box-shadow: 0 8px 20px rgba(198, 83, 29, .13) !important;
}
body.somovo-checkout-page .wc_payment_method input[type="radio"] {
  width: 20px !important; height: 20px !important; margin: 0 !important; flex: none !important;
  accent-color: #c6531d !important;
}
body.somovo-checkout-page .payment_box {
  margin: 4px 2px 0 !important; padding: 14px 18px !important;
  border-radius: 12px !important; background: #f6f6f6 !important;
  color: #6b7280 !important; font-size: 13px !important; line-height: 1.55 !important;
}
body.somovo-checkout-page .payment_box::before { display: none !important; }
body.somovo-checkout-page .payment_box p { margin: 0 !important; color: #6b7280 !important; }

/* --- Consent + privacy --- */
body.somovo-checkout-page .woocommerce-privacy-policy-text,
body.somovo-checkout-page .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 18px !important; color: #6b7280 !important; font-size: 13px !important; line-height: 1.6 !important;
}
body.somovo-checkout-page .woocommerce-privacy-policy-text a,
body.somovo-checkout-page .woocommerce-terms-and-conditions-wrapper a,
body.somovo-checkout-page .validate-required a { color: #c6531d !important; font-weight: 600 !important; }
body.somovo-checkout-page .form-row input[type="checkbox"],
body.somovo-checkout-page input#terms { width: 19px !important; height: 19px !important; accent-color: #c6531d !important; margin-right: 4px; }
body.somovo-checkout-page .woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start; gap: 10px; color: #444 !important; font-size: 13px !important; line-height: 1.55; }

/* --- Comment field --- */
body.somovo-checkout-page #order_comments,
body.somovo-checkout-page textarea.input-text {
  border: 1px solid #ececec !important; border-radius: 14px !important; background: #fff !important;
  padding: 14px 16px !important; color: #222 !important; font-size: 14px !important; min-height: 90px;
}
body.somovo-checkout-page #order_comments::placeholder,
body.somovo-checkout-page textarea::placeholder { color: #9ca3af !important; }

/* --- Place order button --- */
body.somovo-checkout-page #place_order,
body.somovo-checkout-page .place-order button {
  width: 100% !important; min-height: 56px !important; margin: 8px 0 0 !important;
  border: 0 !important; border-radius: 16px !important;
  background: #c6531d !important; color: #fff !important;
  font-size: 16px !important; font-weight: 700 !important; letter-spacing: .01em !important;
  box-shadow: 0 12px 28px rgba(198, 83, 29, .28) !important;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease !important;
}
body.somovo-checkout-page #place_order:hover {
  background: #a84317 !important; transform: translateY(-2px);
  box-shadow: 0 18px 36px rgba(198, 83, 29, .36) !important;
}
body.somovo-checkout-page .place-order { padding: 0 24px 24px !important; margin: 0 !important; }

/* --- Left billing form: unified rhythm + inputs --- */
body.somovo-checkout-page .col2-set .col-1,
body.somovo-checkout-page .woocommerce-billing-fields,
body.somovo-checkout-page .woocommerce-additional-fields { }
body.somovo-checkout-page .form-row { margin: 0 0 18px !important; }
body.somovo-checkout-page .form-row label { color: #222 !important; font-weight: 600 !important; font-size: 13px !important; margin-bottom: 7px !important; }
body.somovo-checkout-page .form-row .required { color: #c6531d !important; }
body.somovo-checkout-page .input-text,
body.somovo-checkout-page input[type="text"],
body.somovo-checkout-page input[type="tel"],
body.somovo-checkout-page input[type="email"],
body.somovo-checkout-page input[type="number"],
body.somovo-checkout-page select,
body.somovo-checkout-page .select2-selection {
  min-height: 50px !important;
  border: 1px solid #ececec !important; border-radius: 14px !important;
  background: #fff !important; color: #222 !important;
  padding: 13px 16px !important; font-size: 14px !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}
body.somovo-checkout-page .input-text:focus,
body.somovo-checkout-page textarea:focus,
body.somovo-checkout-page select:focus {
  border-color: #c6531d !important; box-shadow: 0 0 0 3px rgba(198, 83, 29, .1) !important; outline: 0 !important;
}
body.somovo-checkout-page .input-text::placeholder { color: #9ca3af !important; }
body.somovo-checkout-page h3, body.somovo-checkout-page .woocommerce-billing-fields > h3 {
  color: #222 !important; font-family: var(--luxe-serif) !important; font-weight: 500 !important; font-size: 24px !important; margin-bottom: 20px !important;
}

@media (max-width: 980px) {
  body.somovo-checkout-page #order_review_heading { font-size: 20px !important; }
  body.somovo-checkout-page .checkout-product-line img { width: 90px !important; height: 90px !important; }
  body.somovo-checkout-page .checkout-product-line strong { font-size: 18px !important; }
}

/* ==========================================================================
   Empty-product placeholder: was invisible (theme lazy-load left opacity:0)
   ========================================================================== */
.somovo-product-card .product-image-wrap img { opacity: 1 !important; }
.has-somovo-placeholder img { opacity: 1 !important; }

/* Footer column hover — padded rounded highlight (no layout shift) */
.footer-directory .footer-accordion { position: relative; z-index: 0; }
.footer-directory .footer-accordion::before {
  content: "";
  position: absolute;
  inset: -18px -20px;
  z-index: -1;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0);
  transition: background .3s ease;
  pointer-events: none;
}
.footer-directory .footer-accordion:hover::before { background: rgba(255, 255, 255, .045); }

/* --- Product page: summary panel needs internal padding (content was clipped by the rounded panel edge) --- */
body.single-product .summary.entry-summary {
  padding: clamp(26px, 2.6vw, 38px) !important;
}
body.single-product .product_title { margin-top: 0 !important; }

/* --- Checkout product card: kill the empty space, compact e-commerce line --- */
body.somovo-checkout-page .cart_item .product-name { padding: 18px 22px !important; }
body.somovo-checkout-page .checkout-product-line {
  grid-template-columns: 88px 1fr !important;
  gap: 18px !important;
  align-items: center !important;
}
body.somovo-checkout-page .checkout-product-line img { width: 88px !important; height: 88px !important; }
body.somovo-checkout-page .checkout-product-line > div { align-self: center !important; height: auto !important; gap: 4px !important; }
body.somovo-checkout-page .cart_item .product-quantity {
  display: block !important;
  margin: 8px 0 0 106px !important;
  padding: 0 !important;
  color: #6b7280 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

/* Checkout product card v2: single clean horizontal row (img | name/article | qty) */
body.somovo-checkout-page .cart_item .product-name {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 18px 22px !important;
}
body.somovo-checkout-page .checkout-product-line { display: contents !important; }
body.somovo-checkout-page .checkout-product-line img { width: 84px !important; height: 84px !important; flex: none !important; }
body.somovo-checkout-page .checkout-product-line > div { flex: 1 1 auto !important; min-width: 0 !important; align-self: center !important; }
body.somovo-checkout-page .cart_item .product-quantity {
  margin: 0 !important;
  flex: none !important;
  align-self: center !important;
  color: #6b7280 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  white-space: nowrap;
}

/* Checkout product card v3: keep <td>, qty pinned to corner (no extra row), compact */
body.somovo-checkout-page .cart_item .product-name {
  position: relative !important;
  padding: 20px 22px !important;
}
body.somovo-checkout-page .checkout-product-line {
  display: grid !important;
  grid-template-columns: 84px 1fr !important;
  gap: 18px !important;
  align-items: center !important;
}
body.somovo-checkout-page .checkout-product-line img { width: 84px !important; height: 84px !important; }
body.somovo-checkout-page .checkout-product-line > div { align-self: center !important; height: auto !important; }
body.somovo-checkout-page .cart_item .product-quantity {
  position: absolute !important;
  top: 22px !important;
  right: 22px !important;
  margin: 0 !important;
  color: #6b7280 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

/* ==========================================================================
   Product page fixes: gallery empty space, price block size, price->cart gap
   ========================================================================== */
/* 1) Gallery column was stretched to the (taller) summary -> ~900px void below the image */
body.single-product div.product { align-items: start !important; }
body.single-product .woocommerce-product-gallery {
  align-self: start !important;
  height: auto !important;
  min-height: 0 !important;
}

/* 2) Price block: fit the content, prominent price (block was huge, price tiny) */
body.single-product .single_variation {
  padding: 16px 20px !important;
  margin: 0 0 18px !important;
  background: #f6f3ee !important;
  border-radius: 16px !important;
}
body.single-product .single_variation .woocommerce-variation-price { min-height: 0 !important; margin: 0 !important; line-height: 1.1 !important; }
body.single-product .single_variation .price { font-size: 28px !important; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
body.single-product .single_variation .price ins,
body.single-product .single_variation .price ins .amount,
body.single-product .single_variation .price ins bdi {
  text-decoration: none !important;
  font-size: 28px !important; font-weight: 850 !important; color: #c6531d !important;
}
body.single-product .single_variation .price del,
body.single-product .single_variation .price del .amount { font-size: 15px !important; font-weight: 600 !important; color: #9ca3af !important; opacity: 1 !important; }
body.single-product .single_variation .woocommerce-variation-description,
body.single-product .single_variation .woocommerce-variation-availability { margin: 0 !important; }
body.single-product .single_variation .woocommerce-variation-description:empty,
body.single-product .single_variation .woocommerce-variation-availability:empty { display: none !important; }

/* 3) Gap between price block and the quantity + add-to-cart row */
body.single-product .woocommerce-variation-add-to-cart { margin-top: 0 !important; }

/* Toast "Товар добавлен" — was var(--green-dark) (looked blue) -> brand terracotta */
.somovo-toast { background: #c6531d !important; color: #fff !important; }
.somovo-toast .fa-solid, .somovo-toast i { color: #fff !important; }
.somovo-toast[data-type="error"] { background: #7f352d !important; }

/* Footer: contain the glows to top/bottom so the directory columns sit on
   uniform dark (the terracotta glow was tinting the right column) */
.site-footer {
  background:
    radial-gradient(880px 300px at 86% -16%, rgba(198, 83, 29, .16), transparent 62%),
    radial-gradient(560px 250px at 4% 112%, rgba(201, 167, 111, .06), transparent 62%),
    #0c0a09 !important;
}

/* ==========================================================================
   FIX: .products grid rule also matched .related/.up-sells SECTION wrappers,
   crushing the card list into thin columns. Section = block; list = grid.
   ========================================================================== */
.related.products, .up-sells.products, .upsells.products,
section.related, section.up-sells, section.upsells,
.single-product .related, .single-product .up-sells {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
}
.related > ul.products, .up-sells > ul.products, .upsells > ul.products,
.related ul.products, .up-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-top: 26px !important;
  width: 100% !important;
}
.single-product .related > h2, .single-product .up-sells > h2 { margin-bottom: 4px !important; }
@media (max-width: 1180px) {
  .related ul.products, .up-sells ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 680px) {
  .related ul.products, .up-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ==========================================================================
   FIX: catalogue row — app.css sets align-items:stretch, so at any row height
   growth the search pill pinned to the top. Pin exact heights + center.
   ========================================================================== */
.nn-catalogue-row { align-items: center !important; }
.nn-catalogue-row > * { align-self: center !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.nn-catalogue-link { height: 48px !important; display: inline-flex !important; align-items: center !important; }
.nn-header .header-search { height: 48px !important; align-items: center !important; flex-wrap: nowrap !important; }
.nn-header .header-search input[type=search] { height: 38px !important; margin: 0 !important; align-self: center !important; }
.nn-header .header-search button { height: 38px !important; margin: 0 !important; align-self: center !important; display: inline-flex !important; align-items: center !important; }
.nn-header .collection-rail { height: 48px !important; align-items: center !important; }

/* ==========================================================================
   FIX: quick-view popup — floating card left a dark backdrop strip below the
   sheet ("пробел"). Dock the sheet to the bottom edge: true bottom-sheet.
   ========================================================================== */
@media (min-width: 561px) {
  .quick-sheet {
    bottom: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom: 0 !important;
  }
}

/* ==========================================================================
   CHECKOUT v4 — "Ваш заказ" as a dark graphite luxe panel (somovo24 DNA,
   own composition). Layout/spacing from v3 kept; colors go dark.
   All selectors repeat v3 with same specificity — later in file wins.
   ========================================================================== */
body.somovo-checkout-page #order_review,
body.somovo-checkout-page .woocommerce-checkout-review-order {
  border: 1px solid rgba(255, 255, 255, .09) !important;
  border-radius: 24px !important;
  background: linear-gradient(168deg, #1d1712 0%, #14100c 58%, #171008 100%) !important;
  box-shadow: 0 28px 70px rgba(15, 10, 6, .38) !important;
}
body.somovo-checkout-page #order_review_heading {
  background: transparent !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
  color: #fdfbf7 !important;
  font-size: 23px !important;
  letter-spacing: .01em;
}

/* Product line on dark */
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item .product-name {
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}
body.somovo-checkout-page .checkout-product-line strong { color: #fdfbf7 !important; }
body.somovo-checkout-page .checkout-product-line img {
  border: 1px solid rgba(255, 255, 255, .14) !important;
  background: #f4f0e8 !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .35) !important;
}
body.somovo-checkout-page .checkout-product-line .product-quantity,
body.somovo-checkout-page .checkout-product-line .quantity,
body.somovo-checkout-page .checkout-product-line small,
body.somovo-checkout-page .checkout-product-line .variation { color: rgba(255, 255, 255, .55) !important; }

/* Totals on dark */
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart-subtotal th,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping th {
  color: rgba(255, 255, 255, .58) !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart-subtotal td,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping td,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart-subtotal td *,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping td *,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping td .amount {
  color: #fdfbf7 !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.shipping { border-top: 1px solid rgba(255, 255, 255, .06) !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total {
  background: rgba(255, 255, 255, .045) !important;
  border-top: 1px solid rgba(255, 255, 255, .1) !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total th {
  color: #fdfbf7 !important;
  font-family: var(--luxe-serif) !important;
  font-weight: 500 !important;
  font-size: 20px !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td .amount,
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.order-total td bdi {
  color: #e87233 !important;
}

/* Payment methods: dark cards, white labels */
body.somovo-checkout-page .wc_payment_method > label {
  border: 1.5px solid rgba(255, 255, 255, .16) !important;
  background: rgba(255, 255, 255, .035) !important;
}
body.somovo-checkout-page .wc_payment_method > label,
body.somovo-checkout-page .wc_payment_method > label * { color: #f4efe8 !important; }
body.somovo-checkout-page .wc_payment_method:hover > label { border-color: rgba(255, 255, 255, .34) !important; background: rgba(255, 255, 255, .06) !important; }
body.somovo-checkout-page .wc_payment_method input:checked + label {
  border-color: #d95f27 !important;
  background: rgba(198, 83, 29, .16) !important;
  box-shadow: 0 10px 26px rgba(198, 83, 29, .22) !important;
}
body.somovo-checkout-page .payment_box {
  background: rgba(255, 255, 255, .06) !important;
  color: #cfc8c0 !important;
}
body.somovo-checkout-page .payment_box p { color: #cfc8c0 !important; }

/* Consent + links on dark */
body.somovo-checkout-page #order_review .woocommerce-privacy-policy-text,
body.somovo-checkout-page #order_review .woocommerce-terms-and-conditions-wrapper,
body.somovo-checkout-page #payment .woocommerce-privacy-policy-text,
body.somovo-checkout-page #payment .woocommerce-terms-and-conditions-wrapper { color: #a9a29a !important; }
body.somovo-checkout-page #order_review .woocommerce-privacy-policy-text a,
body.somovo-checkout-page #order_review .woocommerce-terms-and-conditions-wrapper a,
body.somovo-checkout-page #payment a { color: #e8853f !important; }
body.somovo-checkout-page #order_review .woocommerce-form__label-for-checkbox,
body.somovo-checkout-page #payment .woocommerce-form__label-for-checkbox { color: #b8b1a9 !important; }

/* Place order: terracotta glows on graphite */
body.somovo-checkout-page #place_order,
body.somovo-checkout-page .place-order button {
  box-shadow: 0 16px 38px rgba(198, 83, 29, .38) !important;
}

/* CHECKOUT v4.1 — earlier block used #payment-prefixed selectors (ID beats
   class chains), so dark-panel payment overrides need the same ID prefix. */
body.somovo-checkout-page #payment .wc_payment_method > label {
  border: 1.5px solid rgba(255, 255, 255, .16) !important;
  background: rgba(255, 255, 255, .035) !important;
}
body.somovo-checkout-page #payment .wc_payment_method > label,
body.somovo-checkout-page #payment .wc_payment_method > label * { color: #f4efe8 !important; }
body.somovo-checkout-page #payment .wc_payment_method:hover > label {
  border-color: rgba(255, 255, 255, .34) !important;
  background: rgba(255, 255, 255, .06) !important;
}
body.somovo-checkout-page #payment .wc_payment_method input:checked + label {
  border-color: #d95f27 !important;
  background: rgba(198, 83, 29, .16) !important;
  box-shadow: 0 10px 26px rgba(198, 83, 29, .22) !important;
}
body.somovo-checkout-page #payment .payment_box {
  background: rgba(255, 255, 255, .06) !important;
  color: #cfc8c0 !important;
}
body.somovo-checkout-page #payment .payment_box p { color: #cfc8c0 !important; }
body.somovo-checkout-page #payment .wc_payment_method input[type="radio"] { accent-color: #d95f27 !important; }

/* v4.2: old block used "#payment div.payment_box" (extra element = higher
   specificity) — repeat dark payment_box with the same div-selector. */
body.somovo-checkout-page #payment div.payment_box {
  background: rgba(255, 255, 255, .06) !important;
  color: #cfc8c0 !important;
}
body.somovo-checkout-page #payment div.payment_box p { color: #cfc8c0 !important; }

/* ==========================================================================
   FIX: double footer headings. Original app.css hid <summary> and drew white
   column titles via .footer-accordion-content::before (content:"...").
   Luxe shows the gold summary -> pseudo-title duplicated it. Kill pseudo.
   ========================================================================== */
.footer-accordion-content::before,
.footer-accordion .footer-accordion-content::before,
.site-footer .footer-accordion-content::before {
  content: none !important;
  display: none !important;
  margin: 0 !important;
}

/* Isolated rule: new Chromium's native details content box — no clipping/scroll.
   (Kept separate: browsers that don't know the selector drop only this rule.) */
.footer-accordion::details-content { height: auto !important; overflow: visible !important; content-visibility: visible !important; }

/* ==========================================================================
   CHECKOUT v4.3 — Pavel: (1) "Ваш заказ" heading sits on the CREAM page above
   the dark panel -> ink, not white; (2) product line must stretch full width.
   ========================================================================== */
body.somovo-checkout-page #order_review_heading {
  background: transparent !important;
  border: 0 !important;
  color: #171310 !important;
  padding: 0 6px 14px !important;
  margin: 0 !important;
  font-size: 24px !important;
}

/* Product cell: single visible cell -> full row width */
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item .product-name {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
}
body.somovo-checkout-page .checkout-product-line {
  display: grid !important;
  width: 100% !important;
  grid-template-columns: 84px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: start !important;
}
body.somovo-checkout-page .checkout-product-line > div {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  min-width: 0 !important;
  width: 100% !important;
}

/* Variation attrs (Цвета/Ширина/Размеры): tidy label->value grid below name */
body.somovo-checkout-page .cart_item dl.variation,
body.somovo-checkout-page .checkout-product-line .variation {
  display: grid !important;
  grid-template-columns: max-content 1fr !important;
  gap: 3px 12px !important;
  width: 100% !important;
  margin: 3px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.somovo-checkout-page .cart_item dl.variation dt {
  float: none !important; margin: 0 !important; padding: 0 !important;
  color: rgba(255, 255, 255, .5) !important;
  font-weight: 500 !important; font-size: 12.5px !important; line-height: 1.45 !important;
}
body.somovo-checkout-page .cart_item dl.variation dd {
  float: none !important; margin: 0 !important; padding: 0 !important;
  color: rgba(255, 255, 255, .84) !important;
  font-size: 12.5px !important; line-height: 1.45 !important;
}
body.somovo-checkout-page .cart_item dl.variation dd p { display: inline !important; margin: 0 !important; }

/* qty pinned to the panel's right edge */
body.somovo-checkout-page .checkout-product-line + strong.product-quantity,
body.somovo-checkout-page .cart_item .product-name > strong.product-quantity {
  position: absolute !important;
  top: 24px !important;
  right: 24px !important;
  color: rgba(255, 255, 255, .62) !important;
  font-size: 13.5px !important;
}

/* ==========================================================================
   CHECKOUT v4.4 — product rows only filled column 1 of the 2-col table
   (totals in <tfoot> define the columns; the empty 2nd column = the gap Pavel
   marked). Items live in <tbody>, totals in <tfoot>, so making tbody blocks
   frees the item rows to span the panel without touching totals alignment.
   ========================================================================== */
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tbody { display: block !important; width: 100% !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tbody > tr.cart_item { display: block !important; width: 100% !important; }

/* variation list sits below the line — indent to the text column */
body.somovo-checkout-page .cart_item > dl.variation {
  margin: -6px 24px 0 calc(24px + 84px + 18px) !important;
  padding: 0 0 20px !important;
}

@media (max-width: 560px) {
  body.somovo-checkout-page .cart_item > dl.variation { margin-left: 24px !important; }
}

/* ==========================================================================
   CHECKOUT v4.5 — v4.4's block <tbody> got re-wrapped into an anonymous table
   cell (still column 1). Drop table layout entirely: rows become blocks, the
   totals become flex rows. Survives WooCommerce's AJAX re-render (CSS only).
   ========================================================================== */
body.somovo-checkout-page .woocommerce-checkout-review-order-table { display: block !important; width: 100% !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table > thead { display: none !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tbody,
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tfoot { display: block !important; width: 100% !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tfoot > tr {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  width: 100% !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tfoot > tr > th { display: block !important; flex: 0 1 auto !important; }
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tfoot > tr > td {
  display: block !important; flex: 1 1 auto !important; text-align: right !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tfoot > tr > td ul,
body.somovo-checkout-page .woocommerce-checkout-review-order-table > tfoot > tr > td li {
  margin: 0 !important; padding: 0 !important; list-style: none !important; text-align: right !important;
}

/* v4.6: #payment already pads 24px; .place-order added another 24px, so the
   button sat 48px inside the panel (243px of 341 on mobile). Drop the double. */
body.somovo-checkout-page #payment .place-order { padding: 4px 0 0 !important; margin: 0 !important; }
body.somovo-checkout-page #payment .place-order #place_order { width: 100% !important; }

/* ==========================================================================
   FIX A: footer project panel is LIGHT cream (#f7f2ea) but kept white text
   from its old dark version — labels were invisible. Ink tones instead.
   ========================================================================== */
.site-footer .footer-project-panel .footer-project-panel-top em,
.site-footer .footer-project-panel .footer-project-phone span,
.site-footer .footer-project-panel .footer-project-mail span {
  color: rgba(36, 28, 20, .58) !important;
}
.site-footer .footer-project-panel p {
  color: rgba(36, 28, 20, .62) !important;
}
.site-footer .footer-project-panel .footer-project-phone strong,
.site-footer .footer-project-panel .footer-project-mail strong {
  color: #241c14 !important;
}

/* ==========================================================================
   FIX B: checkout order rows — price column was hidden by my own rule, so the
   right half sat empty and the title was squeezed. Bring the price back
   (donor does the same) and let the title use the full width.
   ========================================================================== */
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item .product-total {
  display: table-cell !important;
  padding: 24px 24px 24px 10px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
  color: #fdfbf7 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-align: right !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item .product-total * {
  color: #fdfbf7 !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item .product-name {
  width: 100% !important;
  padding-right: 8px !important;
}
body.somovo-checkout-page .checkout-product-line { width: 100% !important; }
body.somovo-checkout-page .checkout-product-line > div {
  width: 100% !important;
  align-items: stretch !important;
}
body.somovo-checkout-page .checkout-product-line strong,
body.somovo-checkout-page .checkout-product-line small { width: 100% !important; }

/* Quantity: out of the corner, sits under the title as a quiet line */
body.somovo-checkout-page .cart_item .product-name .product-quantity {
  position: static !important;
  display: block !important;
  margin: 9px 0 0 102px !important;
  color: rgba(255, 255, 255, .5) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* v4.4: quantity — earlier rule used ".cart_item .product-name > strong.product-quantity"
   (0,4,2); needs one more class to win. Moves "× 1" under the title. */
body.somovo-checkout-page .cart_item td.product-name > strong.product-quantity,
body.somovo-checkout-page .woocommerce-checkout-review-order-table .cart_item td.product-name > strong.product-quantity {
  position: static !important;
  top: auto !important;
  right: auto !important;
  display: block !important;
  margin: 9px 0 0 102px !important;
  color: rgba(255, 255, 255, .5) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* v4.5: the review table renders as BLOCKS (theme intent), so a restored
   table-cell price dropped below the title. Lay the item row out as flex:
   title grows, price parks on the right edge. */
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart_item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart_item td.product-name {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 22px 4px 22px 24px !important;
  border-bottom: 0 !important;
}
body.somovo-checkout-page .woocommerce-checkout-review-order-table tr.cart_item td.product-total {
  display: block !important;
  flex: 0 0 auto !important;
  padding: 22px 24px 22px 0 !important;
  border-bottom: 0 !important;
}

/* v4.6: v4.5's chain lost the cascade; full html>table>tbody chain wins.
   Item row = flex: title stretches across the block, price parks right. */
html body.somovo-checkout-page table.woocommerce-checkout-review-order-table tbody tr.cart_item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}
html body.somovo-checkout-page table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 22px 4px 22px 24px !important;
  border-bottom: 0 !important;
}
html body.somovo-checkout-page table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total {
  display: block !important;
  flex: 0 0 auto !important;
  padding: 22px 24px 22px 0 !important;
  border-bottom: 0 !important;
  color: #fdfbf7 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-align: right !important;
  white-space: nowrap !important;
}
@media (max-width: 560px) {
  html body.somovo-checkout-page table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name { padding: 18px 4px 18px 16px !important; }
  html body.somovo-checkout-page table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total { padding: 18px 16px 18px 0 !important; font-size: 14px !important; }
}

/* ==========================================================================
   WIDE LAYOUT (client request): the page runs close to the screen edges on
   every template, so the hero copy panel and its banner get real room.
   Was min(100% - 48px, 1480px).
   ========================================================================== */
.shell,
.shop-shell {
  width: min(100% - 40px, 1840px) !important;
}
@media (max-width: 1180px) {
  .shell, .shop-shell { width: min(100% - 36px, 1840px) !important; }
}
@media (max-width: 860px) {
  .shell, .shop-shell { width: min(100% - 36px, 1840px) !important; }
}
@media (max-width: 560px) {
  .shell, .shop-shell { width: min(100% - 34px, 1840px) !important; }
}

/* Keep reading blocks from stretching into endless lines on wide screens */
.nn-hero-copy p,
.nn-section-head p,
.nn-studio-copy p,
.collection-room-intro p { max-width: 62ch; }

/* ==========================================================================
   PRODUCT GRIDS: five cards per row everywhere (home, catalogue, related).
   Selectors repeat classic.css weight (.grid.columns-N) so they win.
   ========================================================================== */
.home-product-grid.columns-3, .home-product-grid.columns-4, .home-product-grid.columns-5,
ul.products.columns-3, ul.products.columns-4, ul.products.columns-5,
ul.products.somovo-product-grid, .somovo-product-grid.columns-4 {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 20px !important;
}
@media (max-width: 1199px) {
  .home-product-grid.columns-3, .home-product-grid.columns-4, .home-product-grid.columns-5,
  ul.products.columns-3, ul.products.columns-4, ul.products.columns-5,
  ul.products.somovo-product-grid, .somovo-product-grid.columns-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}
@media (max-width: 1023px) {
  .home-product-grid.columns-3, .home-product-grid.columns-4, .home-product-grid.columns-5,
  ul.products.columns-3, ul.products.columns-4, ul.products.columns-5,
  ul.products.somovo-product-grid, .somovo-product-grid.columns-4 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 860px) {
  .home-product-grid.columns-3, .home-product-grid.columns-4, .home-product-grid.columns-5,
  ul.products.columns-3, ul.products.columns-4, ul.products.columns-5,
  ul.products.somovo-product-grid, .somovo-product-grid.columns-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}

/* ==========================================================================
   CARD PHOTOS: fill the whole square, centred. The theme sized <img> by its
   own aspect (height:auto), so wide shots sat squashed at the top of the box.
   luxe.js then zooms each photo onto the furniture itself (baked-in white
   margins are cropped away) via the --lx-fit-* variables.
   ========================================================================== */
li.product .product-image-wrap img,
.somovo-product-card .product-image-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}
li.product .product-image-wrap,
.somovo-product-card .product-image-wrap { overflow: hidden !important; }

/* The zoom itself is written inline by luxe.js (see Smart product-photo fit);
   here we only give it a smooth ride. */
li.product .product-image-wrap img[data-lx-fit="1"],
.somovo-product-card .product-image-wrap img[data-lx-fit="1"] {
  transition: transform .55s cubic-bezier(.2, .7, .2, 1) !important;
}

/* Photos we could not measure keep a sane, centred look (no top-glued strip) */
li.product .product-image-wrap img[data-lx-fit="skip"],
.somovo-product-card .product-image-wrap img[data-lx-fit="skip"] { transform: none !important; }

/* Placeholder card art keeps its own full-bleed rule */
.somovo-product-card .product-image-wrap.has-somovo-placeholder img,
li.product .product-image-wrap.has-somovo-placeholder img {
  object-fit: cover !important;
  transform: none !important;
}

/* ==========================================================================
   HEADER on wide screens: the nav was a 4-column grid stretched across the
   whole middle column, so every label sat in its own 300px cell with a hole
   next to it. Pack the items instead and centre the block.
   ========================================================================== */
/* Only from 1400px up: below that the three header blocks fill the row and
   packing the menu would run it into the phone/cart group. */
@media (min-width: 1400px) {
  .nn-header .nn-primary-nav .nav-list {
    display: flex !important;
    justify-content: center !important;
    gap: clamp(24px, 2.2vw, 50px) !important;
  }
  .nn-header .nn-primary-nav .nav-list > li { flex: 0 0 auto !important; }
  .nn-header .nn-primary-nav .nav-list > li > a { white-space: nowrap !important; }
}

@media (min-width: 1181px) {
  /* Catalogue bar: the search takes the slack, chips keep a small even gap */
  .nn-catalogue-row {
    grid-template-columns: auto minmax(320px, 1fr) auto !important;
  }
  .nn-header .collection-rail {
    justify-content: flex-end !important;
    gap: 10px !important;
    min-width: 0 !important;
  }
}

/* ==========================================================================
   FIX 1 (critical): cart totals — the panel had turned cream while its text
   stayed white from the old dark design = invisible block. Make the panel the
   same dark graphite card as checkout's "Ваш заказ": one language, and every
   white label instantly readable again.
   ========================================================================== */
body.somovo-cart-page .cart_totals {
  border: 1px solid rgba(255, 255, 255, .09) !important;
  border-radius: 24px !important;
  background: linear-gradient(168deg, #1d1712 0%, #14100c 58%, #171008 100%) !important;
  box-shadow: 0 28px 70px rgba(15, 10, 6, .38) !important;
}
body.somovo-cart-page .cart_totals h2 {
  color: #fdfbf7 !important;
  font-family: var(--luxe-serif) !important;
  font-weight: 500 !important;
}
body.somovo-cart-page .cart_totals th { color: rgba(255, 255, 255, .58) !important; }
body.somovo-cart-page .cart_totals td,
body.somovo-cart-page .cart_totals td .amount,
body.somovo-cart-page .cart_totals td bdi,
body.somovo-cart-page .cart_totals label,
body.somovo-cart-page .cart_totals .woocommerce-shipping-destination { color: #fdfbf7 !important; }
body.somovo-cart-page .cart_totals .woocommerce-shipping-methods label,
body.somovo-cart-page .cart_totals .woocommerce-shipping-description,
body.somovo-cart-page .cart_totals p { color: rgba(255, 255, 255, .62) !important; }
body.somovo-cart-page .cart_totals .shipping-calculator-button { color: #e8853f !important; font-weight: 600 !important; }
body.somovo-cart-page .cart_totals tr { border-color: rgba(255, 255, 255, .08) !important; }
body.somovo-cart-page .cart_totals .order-total td,
body.somovo-cart-page .cart_totals .order-total td .amount,
body.somovo-cart-page .cart_totals .order-total td bdi { color: #e87233 !important; font-weight: 800 !important; }
body.somovo-cart-page .cart_totals .shipping-calculator-form .input-text,
body.somovo-cart-page .cart_totals .shipping-calculator-form select,
body.somovo-cart-page .cart_totals .select2-selection {
  background: #fff !important;
  color: #222 !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255, 255, 255, .2) !important;
}
body.somovo-cart-page .wc-proceed-to-checkout .checkout-button {
  box-shadow: 0 16px 38px rgba(198, 83, 29, .38) !important;
}

/* ==========================================================================
   FIX 2: footer hover — the per-link pill painted its own second shade inside
   the column highlight. One block = one color: only the column backdrop
   lights up, links just brighten.
   ========================================================================== */
.footer-accordion-content a:hover {
  background: transparent !important;
  color: #fff !important;
}
.footer-directory .footer-accordion:hover::before { background: rgba(255, 255, 255, .05); }

/* ==========================================================================
   FIX 4: header 861-1399px — the middle column is ~495px while the four menu
   items need ~528px, so "Контакты" ran into the phone pill. Drop the decor
   numbers and pack tighter; everything fits with room to spare.
   ========================================================================== */
@media (min-width: 861px) and (max-width: 1399px) {
  .nn-header .nn-primary-nav .nav-list {
    display: flex !important;
    justify-content: center !important;
    gap: 4px !important;
  }
  .nn-header .nn-primary-nav .nav-list > li { flex: 0 1 auto !important; min-width: 0 !important; }
  .nn-header .nn-primary-nav .nav-list > li > a {
    white-space: nowrap !important;
    padding: 8px 9px !important;
    font-size: 12px !important;
  }
  .nn-header .nn-primary-nav .nav-list > li > a small { display: none !important; }
}

/* ==========================================================================
   FLUID HEADER 861-1399px. classic.css kills the whole menu below 1180
   (display:none) while the burger only exists from 860 down — a dead zone
   with no navigation at all. Bring the menu back and let the right-hand
   group shed weight progressively so nothing ever collides while the
   window is being dragged narrower.
   ========================================================================== */
@media (min-width: 861px) and (max-width: 1180px) {
  .nn-header .nn-primary-nav {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    height: auto !important;
  }
  .nn-header .nn-primary-nav .nav-list > li > a {
    font-size: 11px !important;
    padding: 8px 7px !important;
  }
}
/* phone pill slims down: label goes first… */
@media (min-width: 861px) and (max-width: 1279px) {
  .nn-header .phone-action span small { display: none !important; }
  .nn-header .phone-action { padding: 9px 14px !important; }
}
/* …then the pill leaves entirely — the number stays in the announce bar */
@media (min-width: 861px) and (max-width: 1180px) {
  .nn-header .phone-action { display: none !important; }
  .nn-header-main { grid-template-columns: 190px minmax(0, 1fr) auto !important; gap: 12px !important; }
}

/* Tightest stretch before the burger (861-960): drop menu icons, smaller type */
@media (min-width: 861px) and (max-width: 960px) {
  .nn-primary-nav .nav-list a .fa-solid { display: none !important; }
  .nn-header .nn-primary-nav .nav-list > li > a { font-size: 10.5px !important; padding: 8px 6px !important; }
}

/* ==========================================================================
   Footer hover = ONE solid card. An early rule lit the details element
   itself (inner sharp box, .06 + gold border) on top of the padded ::before
   backdrop (.05) — the brightness seam read as a frame. Only the ::before
   may paint; the element and all its children stay transparent.
   ========================================================================== */
.footer-directory > *:hover,
.site-footer .footer-directory > *:hover {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.footer-directory .footer-accordion:hover .footer-accordion-content,
.footer-directory .footer-accordion:hover summary {
  background: transparent !important;
}

/* ==========================================================================
   FOOTER ICONS (client request): every item carries an icon like the header.
   ========================================================================== */
.footer-accordion-content a {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
}
.footer-accordion-content a .fa-solid {
  width: 15px;
  flex: none;
  color: var(--luxe-accent);
  font-size: 11px;
  text-align: center;
  transition: color .25s ease;
}
.footer-accordion-content a:hover .fa-solid { color: var(--luxe-gold-bright); }
.footer-contact-modern .footer-accordion-content p { display: flex; align-items: center; gap: 9px; }
.footer-contact-modern .footer-accordion-content p .fa-solid { width: 15px; flex: none; font-size: 11px; text-align: center; }
.footer-contact-modern .footer-phone-modern .fa-solid { font-size: 12px; }

/* ==========================================================================
   SORT DROPDOWN: sharp corners -> rounded luxe panel
   ========================================================================== */
.somovo-sort-dialog__sheet {
  border-radius: 22px !important;
  overflow: hidden !important;
}
@media (max-width: 560px) {
  .somovo-sort-dialog__sheet { border-radius: 22px 22px 0 0 !important; }
}

/* ==========================================================================
   COLLECTION CHIPS: pills must never shrink — real overflow triggers the
   scroll + fade mask, so Рита and Эмили stay reachable on every screen.
   ========================================================================== */
.nn-header .collection-rail {
  overflow-x: auto !important;
  flex-wrap: nowrap !important;
  scrollbar-width: none !important;
}
.nn-header .collection-rail::-webkit-scrollbar { display: none !important; }
.nn-header .collection-rail a {
  flex: 0 0 auto !important;
  min-width: max-content !important;
}

/* ==========================================================================
   CONTENT PAGES LUXE PASS (О компании / Доставка / Контакты / 404).
   The old token remap left these pages with flat terracotta slabs, invisible
   accent-on-accent text and white-on-cream buttons. Bring them into the
   graphite+terracotta+serif DNA used across the rest of the site.
   ========================================================================== */

/* --- shared ------------------------------------------------------------ */
.nn-page figure { overflow: hidden; border-radius: 26px; }
.nn-page figure img { border-radius: 26px; }
.nn-page .nn-page-heading h2,
.nn-page .nn-page-faq h2,
.nn-page .nn-contacts-conversation-grid h2 {
  font-size: clamp(30px, 3.2vw, 46px) !important;
  line-height: 1.12 !important;
}
.nn-page .nn-page-heading span { letter-spacing: .14em; }

/* FAQ: quiet cream cards */
.nn-page-faq details {
  margin-bottom: 10px;
  padding: 16px 22px;
  border: 1px solid rgba(23, 21, 19, .09);
  border-radius: 16px;
  background: #fffdf9;
}
.nn-page-faq details summary { cursor: pointer; font-weight: 600; color: var(--luxe-dark); }
.nn-page-faq details[open] summary { color: var(--luxe-accent); }
.nn-page-faq details p { margin: 10px 0 0; color: rgba(23, 21, 19, .66); }

/* CTA band: graphite instead of a flat slab */
.nn-page-cta { background: transparent !important; padding: 26px 0 64px; }
.nn-page-cta .shell {
  display: grid;
  gap: 12px;
  justify-items: start;
  padding: clamp(30px, 4vw, 54px);
  border-radius: 28px;
  background: linear-gradient(165deg, #1d1712 0%, #14100c 60%, #1a1008 100%);
  box-shadow: 0 26px 60px rgba(15, 10, 6, .3);
}
.nn-page-cta .shell span { color: var(--luxe-gold-bright); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.nn-page-cta .shell h2 { color: #fdfbf7 !important; font-size: clamp(28px, 3vw, 44px) !important; }
.nn-page-cta .shell a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 28px;
  border-radius: 999px;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 14px 32px rgba(198, 83, 29, .34);
  transition: background .3s ease, transform .3s ease;
}
.nn-page-cta .shell a:hover { background: var(--luxe-accent-dark) !important; transform: translateY(-2px); }

/* --- О компании --------------------------------------------------------- */
.nn-page-index { padding: 8px 0 20px; background: transparent !important; }
.nn-page-index-grid {
  align-items: center;
  gap: clamp(18px, 3vw, 44px) !important;
  padding: clamp(26px, 3vw, 42px);
  border-radius: 26px;
  background: linear-gradient(165deg, #1d1712 0%, #14100c 100%);
  box-shadow: 0 22px 54px rgba(15, 10, 6, .28);
}
.nn-page-index-grid span { color: var(--luxe-gold-bright) !important; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.nn-page-index-grid p { color: rgba(255, 255, 255, .78) !important; }
.nn-page-index-grid a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 13px 24px;
  border-radius: 999px;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  transition: background .3s ease;
}
.nn-page-index-grid a:hover { background: var(--luxe-accent-dark) !important; }

/* --- Контакты ----------------------------------------------------------- */
.nn-contacts-hero {
  background: linear-gradient(160deg, #1d1712 0%, #151008 78%) !important;
}
.nn-contacts-hero .nn-page-marker span { color: #e8853f !important; }
.nn-contacts-hero .nn-page-marker small { color: rgba(255, 255, 255, .55) !important; }
.nn-contacts-title h1 { color: #fdfbf7 !important; }
.nn-contacts-title h1 em { color: #e8853f !important; }
.nn-contacts-title p { color: rgba(255, 255, 255, .72) !important; }
.nn-contacts-direct a,
.nn-contacts-direct p {
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, .055) !important;
  color: #fdfbf7 !important;
}
.nn-contacts-direct a small, .nn-contacts-direct p span { color: var(--luxe-gold-bright) !important; }
.nn-contacts-direct a strong, .nn-contacts-direct p strong { color: #fdfbf7 !important; }
.nn-contacts-direct a b { color: #e8853f !important; }
.nn-contacts-direct a:hover { border-color: rgba(232, 133, 63, .55) !important; background: rgba(198, 83, 29, .16) !important; }
.nn-contacts-conversation-grid blockquote {
  padding: 6px 0 6px 22px;
  border-left: 2px solid var(--luxe-accent);
  color: #8a6a3c;
  font-family: var(--luxe-serif) !important;
  font-size: 19px;
  font-style: italic;
  line-height: 1.5;
}

/* --- Доставка и оплата --------------------------------------------------- */
.nn-delivery-route {
  margin-top: 26px;
  padding: clamp(20px, 2.4vw, 30px) !important;
  border-radius: 22px;
  background: linear-gradient(165deg, #1d1712 0%, #14100c 100%) !important;
  box-shadow: 0 20px 48px rgba(15, 10, 6, .26);
}
.nn-delivery-route > div b { color: var(--luxe-gold-bright) !important; }
.nn-delivery-route > div span { color: rgba(255, 255, 255, .82) !important; }
.nn-delivery-route i { background: rgba(255, 255, 255, .22) !important; }

.nn-delivery-photo-grid > div {
  border-radius: 26px !important;
  background: linear-gradient(165deg, #1d1712 0%, #16100a 100%) !important;
  box-shadow: 0 22px 54px rgba(15, 10, 6, .28);
}
.nn-delivery-photo-grid > div span { color: var(--luxe-gold-bright) !important; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.nn-delivery-photo-grid > div strong { color: #fdfbf7 !important; font-family: var(--luxe-serif) !important; font-weight: 500 !important; }
.nn-delivery-photo-grid > div a { color: #e8853f !important; font-weight: 700; }
.nn-delivery-photo-grid > div a:hover { color: #f0a06a !important; }

.nn-payment { background: transparent !important; }
.nn-payment-title span { color: var(--luxe-accent) !important; }
.nn-payment-title h2 { color: var(--luxe-dark) !important; }
.nn-payment-title h2 em { color: var(--luxe-accent) !important; }
.nn-payment-title p { color: rgba(23, 21, 19, .64) !important; }
.nn-payment-grid article {
  border: 0 !important;
  border-radius: 22px !important;
  background: linear-gradient(165deg, #1d1712 0%, #14100c 100%) !important;
  box-shadow: 0 20px 48px rgba(15, 10, 6, .26);
  color: rgba(255, 255, 255, .68) !important;
}
.nn-payment-grid article b { color: var(--luxe-gold-bright) !important; font-family: var(--luxe-serif) !important; font-size: 20px !important; }
.nn-payment-grid article strong { color: #fdfbf7 !important; }
.nn-payment-grid article p { color: rgba(255, 255, 255, .66) !important; }
.nn-payment-grid article span {
  display: inline-flex;
  padding: 7px 14px;
  border: 1px solid rgba(232, 133, 63, .5) !important;
  border-radius: 999px !important;
  background: rgba(198, 83, 29, .14) !important;
  color: #e8853f !important;
  font-size: 11px;
  font-weight: 700;
}
.nn-delivery-check-grid p {
  padding: 22px !important;
  border: 1px solid rgba(23, 21, 19, .08) !important;
  border-radius: 18px !important;
  background: #fffdf9 !important;
}
.nn-delivery-check-grid p b { color: var(--luxe-accent) !important; }
.nn-delivery-steps ol li span { color: var(--luxe-accent) !important; }

/* --- 404 ----------------------------------------------------------------- */
.nn-404-code span { color: var(--luxe-accent) !important; letter-spacing: .16em; text-transform: uppercase; }
.nn-404-code strong {
  color: var(--luxe-dark) !important;
  font-family: var(--luxe-serif) !important;
  font-size: clamp(110px, 12vw, 170px) !important;
  font-weight: 500 !important;
  line-height: .9 !important;
}
.nn-404-code i { width: 2px !important; background: linear-gradient(180deg, var(--luxe-gold-bright), var(--luxe-accent)) !important; }
.nn-404-copy > span { color: var(--luxe-accent) !important; }
.nn-404-copy div a {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  padding: 14px 26px !important;
  border-radius: 999px !important;
  background: var(--luxe-accent) !important;
  color: #fff !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: 0 14px 30px rgba(198, 83, 29, .3);
  transition: background .3s ease, transform .3s ease;
}
.nn-404-copy div a:hover { background: var(--luxe-accent-dark) !important; transform: translateY(-2px); }
.nn-404-copy div a + a {
  background: transparent !important;
  border: 1px solid rgba(23, 21, 19, .25) !important;
  color: var(--luxe-dark) !important;
  box-shadow: none;
}
.nn-404-copy div a + a:hover { background: #f2ece1 !important; }
.nn-404-links { padding-bottom: 70px; }
.nn-404-links span { color: var(--luxe-accent); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.nn-404-links a {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  margin: 6px 8px 0 0;
  padding: 11px 20px !important;
  border: 1px solid rgba(23, 21, 19, .12) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--luxe-dark) !important;
  text-decoration: none !important;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.nn-404-links a small { color: var(--luxe-accent) !important; }
.nn-404-links a:hover { background: var(--luxe-dark) !important; color: #fff !important; transform: translateY(-2px); }

/* ==========================================================================
   LEGAL PAGES (политика / cookie / гарантия) — serif hero + numbered articles
   ========================================================================== */
.nn-page-legal .nn-legal-hero { padding: clamp(40px, 6vw, 84px) 0 clamp(22px, 3vw, 40px); }
.nn-page-legal .nn-legal-hero .shell { display: grid; gap: 16px; justify-items: start; }
.nn-page-legal .nn-legal-hero .nn-page-marker { display: inline-flex; align-items: center; gap: 10px; }
.nn-page-legal .nn-legal-hero .nn-page-marker span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--luxe-accent);
  color: #fff;
  font-family: var(--luxe-serif) !important;
  font-size: 19px;
}
.nn-page-legal .nn-legal-hero .nn-page-marker small { color: var(--luxe-accent); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.nn-page-legal .nn-legal-hero h1 { max-width: 15ch; font-size: clamp(38px, 5vw, 64px); line-height: 1.06; }
.nn-page-legal .nn-legal-hero h1 em { color: var(--luxe-accent); }
.nn-page-legal .nn-legal-hero p { max-width: 62ch; color: rgba(23, 21, 19, .66); }
.nn-legal-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.nn-legal-meta span {
  padding: 8px 15px;
  border: 1px solid rgba(23, 21, 19, .12);
  border-radius: 999px;
  background: #fffdf9;
  color: rgba(23, 21, 19, .62);
  font-size: 11px;
  font-weight: 600;
}
.nn-legal-body { padding: 10px 0 26px; }
.nn-legal-body .shell { display: grid; gap: 14px; max-width: min(100% - 40px, 980px); }
.nn-legal-body article {
  padding: clamp(22px, 2.6vw, 34px);
  border: 1px solid rgba(23, 21, 19, .08);
  border-radius: 22px;
  background: #fffdf9;
  box-shadow: 0 14px 36px rgba(30, 25, 20, .05);
}
.nn-legal-body article h2 {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 0 0 12px;
  font-size: clamp(19px, 2vw, 24px) !important;
}
.nn-legal-body article h2 b {
  flex: none;
  color: var(--luxe-accent);
  font-family: var(--luxe-serif) !important;
  font-size: 15px;
  font-weight: 500;
}
.nn-legal-body article p,
.nn-legal-body article li { color: rgba(23, 21, 19, .68); line-height: 1.65; }
.nn-legal-body article ul { display: grid; gap: 7px; margin: 0; padding-left: 20px; }
.nn-legal-body article li::marker { color: var(--luxe-accent); }
.nn-legal-body article a { color: var(--luxe-accent); font-weight: 600; }
.nn-legal-body article a:hover { color: var(--luxe-accent-dark); }
@media (max-width: 560px) {
  .nn-page-legal .nn-legal-hero h1 { font-size: 32px; }
}

/* ==========================================================================
   Delivery page, round 2 (client): interior photos inside the payment cards,
   an intro line under "Четыре вещи" and real gaps between the check cards.
   ========================================================================== */
.nn-payment-grid article {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
}
.nn-payment-grid article::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: url("../images/collection-banners/ekaterina-premium.webp") center 30%/cover no-repeat;
  transform: scale(1.02);
  transition: transform 6s ease;
}
.nn-payment-grid article:nth-of-type(2)::before,
.nn-payment-grid article + article::before {
  background-image: url("../images/collection-banners/rita.webp");
}
.nn-payment-grid article::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(16, 12, 8, .42) 0%, rgba(16, 12, 8, .62) 42%, rgba(14, 10, 7, .93) 78%);
}
.nn-payment-grid article:hover::before { transform: scale(1.07); }

/* intro line under section headings */
.nn-page-heading .nn-heading-lead {
  grid-column: 1 / -1;
  max-width: 62ch;
  margin: 10px 0 0;
  color: rgba(23, 21, 19, .62) !important;
  font-size: 15px;
  line-height: 1.6;
}

/* check cards: breathing gap between cards, compact content inside */
.nn-delivery-check .nn-page-heading { margin-bottom: 24px; }
.nn-delivery-check-grid { gap: 14px !important; }
.nn-delivery-check-grid p {
  display: grid !important;
  gap: 10px !important;
  align-content: start !important;
  min-height: 0 !important;
}
.nn-delivery-check-grid p b { font-family: var(--luxe-serif) !important; font-size: 15px !important; }
.nn-delivery-check-grid p strong { font-size: 17px !important; line-height: 1.3 !important; }
.nn-delivery-check-grid p span { color: rgba(23, 21, 19, .62) !important; line-height: 1.55 !important; }

/* ==========================================================================
   Pages, round 3 (client sweep): tighter cards + gaps + intros everywhere,
   two-photo delivery band, spaced contact cards, compact dark sections.
   ========================================================================== */
/* About: principles cards */
.nn-about-principles .nn-page-heading { margin-bottom: 24px; }
.nn-about-principle-grid { gap: 14px !important; }
.nn-about-principle-grid article {
  display: grid !important;
  gap: 12px !important;
  align-content: start !important;
  padding: 28px !important;
}
.nn-about-principle-grid article b { color: var(--luxe-accent) !important; font-family: var(--luxe-serif) !important; font-size: 15px !important; }
.nn-about-principle-grid article h3 { margin: 0 !important; font-size: clamp(24px, 2.3vw, 32px) !important; line-height: 1.15 !important; }
.nn-about-principle-grid article p { color: rgba(23, 21, 19, .64) !important; line-height: 1.6 !important; }

/* About: dark timeline as glass cards */
.nn-about-timeline .nn-page-heading { margin-bottom: 26px; }
.nn-about-timeline .nn-page-heading .nn-heading-lead { color: rgba(255, 255, 255, .6) !important; }
.nn-about-timeline ol { gap: 14px !important; }
.nn-about-timeline ol li {
  display: grid !important;
  gap: 11px !important;
  align-content: start !important;
  padding: 24px !important;
  border: 1px solid rgba(255, 255, 255, .1) !important;
  border-radius: 20px !important;
  background: rgba(255, 255, 255, .035) !important;
}
.nn-about-timeline ol li b { color: var(--luxe-gold-bright) !important; font-family: var(--luxe-serif) !important; font-size: 15px !important; }
.nn-about-timeline ol li strong { color: #fdfbf7 !important; font-size: 17px !important; }
.nn-about-timeline ol li p { color: rgba(255, 255, 255, .62) !important; line-height: 1.6 !important; }

/* Contacts: gap between the direct cards in the hero */
.nn-contacts-direct { display: grid !important; gap: 12px !important; }

/* Contacts: prep cards — same compact treatment */
.nn-contacts-prep .nn-page-heading { margin-bottom: 24px; }
.nn-contacts-prep-grid { gap: 14px !important; }
.nn-contacts-prep-grid article {
  display: grid !important;
  gap: 10px !important;
  align-content: start !important;
  padding: 24px !important;
  border: 1px solid rgba(23, 21, 19, .08) !important;
  border-radius: 18px !important;
  background: #fffdf9 !important;
}
.nn-contacts-prep-grid article b { color: var(--luxe-accent) !important; font-family: var(--luxe-serif) !important; font-size: 15px !important; }
.nn-contacts-prep-grid article strong { font-size: 17px !important; }
.nn-contacts-prep-grid article p { color: rgba(23, 21, 19, .62) !important; line-height: 1.55 !important; }

/* Contacts: conversation block — no dead air */
.nn-contacts-conversation { padding: clamp(40px, 5vw, 64px) 0 !important; }
.nn-contacts-conversation-grid { gap: clamp(18px, 2.6vw, 40px) !important; align-items: start !important; }

/* Delivery: two photos + info panel instead of one stretched band */
.nn-delivery-photo-duo {
  display: grid !important;
  grid-template-columns: 1.55fr 1fr !important;
  grid-template-rows: auto auto !important;
  gap: 14px !important;
  align-items: stretch !important;
}
.nn-delivery-photo-duo > figure:first-of-type { grid-row: 1 / -1; height: 100%; }
.nn-delivery-photo-duo > figure:first-of-type img { height: 100% !important; object-fit: cover !important; }
.nn-delivery-photo-duo .nn-delivery-photo-extra { margin: 0; height: 100%; }
.nn-delivery-photo-duo .nn-delivery-photo-extra img { height: 100% !important; min-height: 240px; object-fit: cover !important; }
.nn-delivery-photo-duo > div {
  display: grid !important;
  gap: 12px !important;
  align-content: center !important;
  justify-items: start !important;
  padding: clamp(24px, 2.6vw, 34px) !important;
}
@media (max-width: 860px) {
  .nn-delivery-photo-duo { grid-template-columns: 1fr !important; grid-template-rows: auto !important; }
  .nn-delivery-photo-duo > figure:first-of-type { grid-row: auto; }
}

/* Client: kill the stray full-width rules above/around card grids —
   the cards themselves are the separation now. */
.nn-about-principle-grid,
.nn-about-timeline ol,
.nn-delivery-steps ol,
.nn-contacts-prep-grid,
.nn-contacts-direct,
.nn-404-links { border-top: 0 !important; border-bottom: 0 !important; }

/* Contacts hero cards: label + value stacked, arrow in a round glass chip,
   everything vertically centred — nothing glued to the corners. */
.nn-contacts-direct a,
.nn-contacts-direct p {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  row-gap: 6px !important;
  column-gap: 16px !important;
  margin: 0 !important;
  padding: 20px 24px !important;
}
.nn-contacts-direct a small,
.nn-contacts-direct p span {
  grid-area: 1 / 1;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}
.nn-contacts-direct a strong,
.nn-contacts-direct p strong {
  grid-area: 2 / 1;
  font-size: clamp(17px, 1.6vw, 21px) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-align: left !important;
}
.nn-contacts-direct a b {
  grid-area: 1 / 2 / 3 / 3;
  display: grid !important;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(232, 133, 63, .45) !important;
  border-radius: 50% !important;
  background: rgba(198, 83, 29, .16) !important;
  color: #e8853f !important;
  font-size: 17px !important;
  transition: background .3s ease, color .3s ease, transform .3s ease;
}
.nn-contacts-direct a:hover b { background: var(--luxe-accent) !important; color: #fff !important; transform: translate(2px, -2px); }

/* Contacts image band: same duo composition as delivery, no orange slab.
   The duo panel link inherits the delivery styling; centre the panel copy. */
.nn-contacts-image { background: transparent !important; padding: 10px 0 26px; }
.nn-contacts-image .nn-delivery-photo-duo > div span { color: var(--luxe-gold-bright) !important; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.nn-contacts-image .nn-delivery-photo-duo > div strong { color: #fdfbf7 !important; font-family: var(--luxe-serif) !important; font-weight: 500 !important; font-size: clamp(20px, 2vw, 27px) !important; line-height: 1.25 !important; }
.nn-contacts-image .nn-delivery-photo-duo > div a { color: #e8853f !important; font-weight: 700; text-decoration: none; }
.nn-contacts-image .nn-delivery-photo-duo > div a:hover { color: #f0a06a !important; }
.nn-contacts-image .nn-delivery-photo-duo > div {
  border-radius: 26px !important;
  background: linear-gradient(165deg, #1d1712 0%, #16100a 100%) !important;
  box-shadow: 0 22px 54px rgba(15, 10, 6, .28);
}

/* Legal pages: centred hero, horizontal marker, evenly set text
   (client: headings glued left, text not evenly distributed). */
.nn-page-legal .nn-legal-hero .shell {
  justify-items: center !important;
  text-align: center !important;
}
.nn-page-legal .nn-legal-hero .nn-page-marker {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
}
.nn-page-legal .nn-legal-hero .nn-page-marker small {
  writing-mode: horizontal-tb !important;
  transform: none !important;
  letter-spacing: .15em !important;
}
.nn-page-legal .nn-legal-hero h1 {
  max-width: 21ch !important;
  font-size: clamp(34px, 4.4vw, 56px) !important;
  margin-inline: auto;
}
.nn-page-legal .nn-legal-hero p { margin-inline: auto; }
.nn-page-legal .nn-legal-meta { justify-content: center !important; }
.nn-legal-body article h2 { justify-content: center !important; text-align: center !important; }
.nn-legal-body article > p {
  text-align: justify;
  text-align-last: center;
}
.nn-legal-body article ul { max-width: 56ch; margin-inline: auto !important; }

/* WP admin bar (visible to logged-in client): the blanket Inter override
   swallowed the dashicons glyph font — squares instead of icons. */
#wpadminbar .ab-icon,
#wpadminbar .ab-icon::before,
#wpadminbar .ab-item::before,
#wpadminbar .ab-item::after,
#wpadminbar #adminbarsearch::before,
#wpadminbar span.noticon {
  font-family: dashicons !important;
}

/* Quick-view popup: the placeholder art must fill the whole media pane,
   edge to edge (client). Real product photos keep their contain fit. */
.quick-product-media { position: relative !important; }
.quick-product-media img[src*="somovo-placeholder"] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
}

/* No "Выбор без перехода" kicker on placeholder popups — it lands on the art */
.quick-product-media:has(img[src*="somovo-placeholder"]) .quick-image-kicker { display: none !important; }

/* Placeholder popups: hide ALL chrome that lands on the art — kicker,
   guarantee note and the dimension scheme (meaningless on the logo art). */
.quick-product-media:has(img[src*="somovo-placeholder"]) .quick-image-kicker,
.quick-product-media:has(img[src*="somovo-placeholder"]) .quick-media-note,
.quick-product-media:has(img[src*="somovo-placeholder"]) [data-dimension-toggle],
.quick-product-media:has(img[src*="somovo-placeholder"]) [id*="dimension-scheme"],
.quick-product-media:has(img[src*="somovo-placeholder"]) [class*="dimension"] {
  display: none !important;
}

/* Belt & braces: the same chrome-hide keyed from the sheet root, so any
   popup layout variant (mobile fullscreen included) is covered. */
.quick-sheet:has(img[data-quick-image][src*="somovo-placeholder"]) .quick-media-note,
.quick-sheet:has(img[data-quick-image][src*="somovo-placeholder"]) .quick-image-kicker,
.quick-sheet:has(img[data-quick-image][src*="somovo-placeholder"]) [data-dimension-toggle],
.quick-sheet:has(img[data-quick-image][src*="somovo-placeholder"]) .somovo-image-dimensions {
  display: none !important;
}

/* Client: body copy on the content pages was too small — 16px everywhere. */
.nn-page .nn-heading-lead,
.nn-about-principle-grid article p,
.nn-contacts-prep-grid article p,
.nn-delivery-check-grid p span,
.nn-about-timeline ol li p,
.nn-payment-grid article p,
.nn-payment-title p,
.nn-delivery-steps ol li p,
.nn-page-faq details p,
.nn-page-faq details summary,
.nn-contacts-conversation-grid > div p,
.nn-legal-body article p,
.nn-legal-body article li,
.nn-about-title p,
.nn-contacts-title p,
.nn-delivery-title p,
.nn-404-copy p,
.nn-page-index-grid p,
.nn-delivery-photo-duo > div strong,
.nn-page-legal .nn-legal-hero p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
.nn-delivery-photo-duo > div strong { font-size: clamp(20px, 2vw, 26px) !important; line-height: 1.3 !important; }
.nn-about-principle-grid article h3 { font-size: clamp(26px, 2.4vw, 34px) !important; }
.nn-contacts-prep-grid article strong,
.nn-delivery-check-grid p strong,
.nn-about-timeline ol li strong,
.nn-payment-grid article strong { font-size: 19px !important; }

/* Home "Четыре доказательства": same 16px body as the content pages */
.nn-craft-grid article p { font-size: 16px !important; line-height: 1.65 !important; }
.nn-craft-grid article strong { font-size: 19px !important; }

/* ==========================================================================
   404 v2 — full rebuild (client): real interior photo, serif code, FA links.
   New lx-404-* classes; old nn-404 rules no longer match this markup.
   ========================================================================== */
.nn-page-404 .nn-404-stage { padding: clamp(40px, 6vw, 80px) 0 30px; }
.lx-404-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(24px, 3.4vw, 56px);
  align-items: center;
}
.lx-404-copy { display: grid; gap: 16px; justify-items: start; }
.lx-404-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 16px;
  border: 1px solid rgba(198, 83, 29, .3);
  border-radius: 999px;
  background: #fffdf9;
  color: var(--luxe-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lx-404-code {
  color: var(--luxe-accent);
  font-family: var(--luxe-serif) !important;
  font-size: clamp(96px, 12vw, 168px);
  font-weight: 500;
  line-height: .85;
  letter-spacing: .02em;
}
.lx-404-copy h1 {
  margin: 0;
  font-size: clamp(26px, 3vw, 42px) !important;
  line-height: 1.12 !important;
}
.lx-404-copy h1 em { color: var(--luxe-accent); }
.lx-404-copy p { max-width: 56ch; color: rgba(23, 21, 19, .66); font-size: 16px; line-height: 1.65; }
.lx-404-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.lx-404-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  background: var(--luxe-accent);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 14px 30px rgba(198, 83, 29, .3);
  transition: background .3s ease, transform .3s ease;
}
.lx-404-btn:hover { background: var(--luxe-accent-dark); transform: translateY(-2px); }
.lx-404-btn-ghost {
  background: transparent;
  border: 1px solid rgba(23, 21, 19, .25);
  color: var(--luxe-dark) !important;
  box-shadow: none;
}
.lx-404-btn-ghost:hover { background: #f2ece1; }
.lx-404-photo { position: relative; margin: 0; overflow: hidden; border-radius: 26px; box-shadow: 0 26px 60px rgba(30, 25, 20, .16); }
.lx-404-photo img { display: block; width: 100%; height: clamp(320px, 34vw, 520px); object-fit: cover; border-radius: 26px; }
.lx-404-photo figcaption {
  position: absolute;
  left: 16px;
  bottom: 16px;
  display: grid;
  gap: 3px;
  padding: 13px 18px;
  border-radius: 15px;
  background: rgba(15, 12, 9, .62);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: #fff;
}
.lx-404-photo figcaption span { color: var(--luxe-gold-bright); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.lx-404-photo figcaption b { font-size: 13px; font-weight: 600; }
.lx-404-links { display: grid !important; gap: 14px; padding-top: 10px; padding-bottom: clamp(50px, 6vw, 90px); border: 0 !important; }
.lx-404-links-label { color: var(--luxe-accent); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.lx-404-links-row { display: flex; flex-wrap: wrap; gap: 10px; }
.lx-404-links-row a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 12px 20px;
  border: 1px solid rgba(23, 21, 19, .12);
  border-radius: 999px;
  background: #fff;
  color: var(--luxe-dark);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.lx-404-links-row a .fa-solid { color: var(--luxe-accent); font-size: 12px; transition: color .25s ease; }
.lx-404-links-row a:hover { background: var(--luxe-dark); color: #fff; transform: translateY(-2px); }
.lx-404-links-row a:hover .fa-solid { color: var(--luxe-gold-bright); }
@media (max-width: 900px) {
  .lx-404-grid { grid-template-columns: 1fr; }
  .lx-404-photo img { height: 300px; }
}

/* 404: pull the copy and the photo closer together and centre the pair */
.lx-404-grid {
  max-width: min(100%, 1300px) !important;
  margin-inline: auto !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, .95fr) !important;
  gap: clamp(22px, 2.6vw, 40px) !important;
}
.lx-404-links {
  max-width: min(100% - 40px, 1300px) !important;
  margin-inline: auto !important;
}

/* ==========================================================================
   Room cards: per-collection photos (client — своя гостиная и спальня у
   каждой коллекции). Grey-panel banners get cropped to the right.
   ========================================================================== */
.term-kollektsiya-aleksandra .collection-room-card[data-room="living"]::before { background-image: url("../images/collection-banners/alexandra-v2.webp"); }
.term-kollektsiya-aleksandra .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/hero-slides/aleksandra.webp"); background-position: right center; }
.term-kollektsiya-vasilisa .collection-room-card[data-room="living"]::before { background-image: url("../images/real-interiors/about-vasilisa-hq.webp"); }
.term-kollektsiya-vasilisa .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/real-interiors/delivery-vasilisa.webp"); }
.term-accessories .collection-room-card[data-room="living"]::before { background-image: url("../images/real-interiors/contacts-gloria.webp"); }
.term-accessories .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/collection-banners/gloria.webp"); background-position: right center; }
.term-modulnye-sistemy .collection-room-card[data-room="living"]::before { background-image: url("../images/collection-banners/ekaterina-premium.webp"); background-position: right center; }
.term-modulnye-sistemy .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/hero-slides/ekaterina-premium.webp"); background-position: right center; }
.term-kollektsiya-megan .collection-room-card[data-room="living"]::before { background-image: url("../images/collection-banners/megan.webp"); background-position: right center; }
.term-kollektsiya-megan .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/hero-slides/megan.webp"); background-position: right center; }
.term-kollektsiya-rita .collection-room-card[data-room="living"]::before { background-image: url("../images/collection-banners/rita.webp"); background-position: right center; }
.term-kollektsiya-rita .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/hero-slides/rita.webp"); background-position: right center; }
.term-kollektsiya-emili .collection-room-card[data-room="living"]::before { background-image: url("../images/real-interiors/manifesto-emily.webp"); }
.term-kollektsiya-emili .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/collection-banners/emili.webp"); background-position: right center; }

/* ==========================================================================
   Mobile quick popup: the ruler toggle and the depth badge crowded the close
   button. Ruler goes top-LEFT, depth badge drops lower — the X stays free.
   ========================================================================== */
@media (max-width: 860px) {
  .somovo-dimension-toggle--quick {
    top: 14px !important;
    left: 14px !important;
    right: auto !important;
  }
  .quick-close {
    top: 14px !important;
    right: 14px !important;
    z-index: 8 !important;
  }
  .somovo-image-dimensions--quick .somovo-measure--depth {
    top: 26% !important;
    right: 4% !important;
  }
  .quick-image-kicker { display: none !important; }
}

/* Room cards v2: grey panels are now physically cropped out of the files —
   clean full-bleed webp, no CSS crop tricks needed. */
.term-kollektsiya-aleksandra .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-aleksandra.webp"); background-position: center; }
.term-kollektsiya-aleksandra .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-aleksandra.webp"); background-position: center; }
.term-accessories .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-gloria.webp"); background-position: center; }
.term-modulnye-sistemy .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-ekaterina.webp"); background-position: center; }
.term-modulnye-sistemy .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-ekaterina.webp"); background-position: center; }
.term-kollektsiya-megan .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-megan.webp"); background-position: center; }
.term-kollektsiya-megan .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-megan.webp"); background-position: center; }
.term-kollektsiya-rita .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-rita.webp"); background-position: center; }
.term-kollektsiya-rita .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-rita.webp"); background-position: center; }
.term-kollektsiya-emili .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/collection-banners/emili.webp"); background-position: center; }

/* ==========================================================================
   Room cards v3 (final): living rooms show the living-room photo, bedrooms
   the bedroom photo — real shots per collection from the manufacturer.
   ========================================================================== */
.term-kollektsiya-aleksandra .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-aleksandra.webp") !important; background-position: center !important; }
.term-kollektsiya-aleksandra .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-aleksandra.webp") !important; background-position: center !important; }
.term-kollektsiya-vasilisa .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-vasilisa.webp") !important; background-position: center !important; }
.term-kollektsiya-vasilisa .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-vasilisa.webp") !important; background-position: center !important; }
.term-accessories .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-gloria.webp") !important; background-position: center !important; }
.term-accessories .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-gloria.webp") !important; background-position: center !important; }
.term-modulnye-sistemy .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-ekaterina.webp") !important; background-position: center !important; }
.term-modulnye-sistemy .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-ekaterina.webp") !important; background-position: center !important; }
.term-kollektsiya-megan .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-megan.webp") !important; background-position: center !important; }
.term-kollektsiya-megan .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-megan.webp") !important; background-position: center !important; }
.term-kollektsiya-rita .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-rita.webp") !important; background-position: center !important; }
.term-kollektsiya-rita .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-rita.webp") !important; background-position: center !important; }
.term-kollektsiya-emili .collection-room-card[data-room="living"]::before { background-image: url("../images/rooms/liv-emili.webp") !important; background-position: center !important; }
.term-kollektsiya-emili .collection-room-card[data-room="bedroom"]::before { background-image: url("../images/rooms/bed-emili.webp") !important; background-position: center !important; }
