/* =========================================================
   МОДНЫЙ ПУДЕЛЬ — дизайн-токены
   Концепция: фирменная акварельная подложка «Модный_Пудель»
   с бриллиантами:
   мягкие мятный/сиреневый/розовый/масляный разводы под белыми
   карточками. Золото — фурнитура/CTA, ягодный — акцент.
   ========================================================= */

:root{
  /* --- цвет: светлая тема (по умолчанию) --- */
  --paper:        #fbf7f1;   /* тёплый белый — база под акварель */
  --paper-soft:   #ffffff;   /* белые карточки поверх подложки */
  --paper-deep:   #f0e6f5;   /* приглушённый сиреневый — теги, полосы */
  --ink:          #332b3d;   /* тёмный графитово-сливовый текст */
  --ink-soft:     #6b5f73;   /* вторичный текст */
  --leather:      #2b1f35;   /* тёмная секция — глубокий баклажан вместо кожи */
  --leather-mid:  #3d2c4a;
  --brass:        #b8863c;   /* золотая фурнитура — акцент/CTA */
  --brass-light:  #d9ad5e;
  --oxblood:      #9c3f72;   /* ягодно-лиловый — сигнальный акцент */
  --pine:         #3f8562;   /* в наличии / позитив */
  --pine-soft:    #dcf2e6;

  /* акварельные разводы фирменного принта */
  --wash-mint:     #cfefdd;
  --wash-lavender: #e3d6f2;
  --wash-pink:     #f8d9e6;
  --wash-butter:   #fbefc9;
  --wash-sky:      #d8e9f6;

  --shadow: 0 20px 50px -25px rgba(51,43,61,.35);
  --radius-s: 6px;
  --radius-m: 14px;
  --radius-l: 26px;

  --font-display: 'Yeseva One', 'Georgia', serif;
  --font-body: 'Manrope', -apple-system, sans-serif;

  --bg: var(--paper);
  --bg-soft: var(--paper-soft);
  --bg-deep: var(--paper-deep);
  --fg: var(--ink);
  --fg-soft: var(--ink-soft);
  --line: rgba(51,43,61,.14);
}

/* Тема всегда светлая — намеренно без @media (prefers-color-scheme: dark)
   и без переключателя, чтобы сайт выглядел одинаково у всех посетителей. */

/* =========================================================
   БАЗА
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
section[id]{ scroll-margin-top: 56px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

body{
  margin: 0;
  background:
    radial-gradient(38rem 30rem at 8% 4%,  var(--wash-mint) 0%, transparent 68%),
    radial-gradient(34rem 28rem at 92% 10%, var(--wash-lavender) 0%, transparent 65%),
    radial-gradient(40rem 34rem at 12% 60%, var(--wash-sky) 0%, transparent 68%),
    radial-gradient(36rem 30rem at 88% 55%, var(--wash-pink) 0%, transparent 65%),
    radial-gradient(42rem 34rem at 50% 95%, var(--wash-butter) 0%, transparent 70%),
    var(--bg);
  background-attachment: fixed;
  background-repeat: no-repeat;
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  transition: background-color .3s ease, color .3s ease;
}


/* фирменный узор — пудели/бриллианты/логотип поверх акварельной подложки */
body::before{
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url('../img/pattern-wash.svg');
  background-repeat: repeat;
  background-size: 460px 460px;
  opacity: .1;
}

header, main, footer{ position: relative; z-index: 1; }

h1,h2,h3{ font-family: var(--font-display); font-weight: 400; line-height: 1.12; text-wrap: balance; margin: 0; }
p{ margin: 0; }
a{ color: inherit; text-decoration: none; }
img, svg{ display:block; max-width: 100%; }
button{ font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
ul{ list-style: none; margin:0; padding:0; }

.skip-link{
  position: absolute; left: -999px; top: 0; z-index: 999;
  background: var(--brass); color: #1c1208; padding: .8em 1.2em; border-radius: 0 0 var(--radius-s) 0;
}
.skip-link:focus{ left: 0; }

:focus-visible{ outline: 2px solid var(--brass); outline-offset: 3px; }

.eyebrow{
  font-family: var(--font-body); font-weight: 700; font-size: .78rem;
  letter-spacing: .14em; text-transform: uppercase; color: var(--brass);
  margin: 0 0 .6em;
}

.section-head{ max-width: 760px; margin: 0 auto 2.4rem; padding: 0 1.5rem; text-align: center; }
.section-head h2{ font-size: clamp(1.7rem, 3.4vw, 2.5rem); margin-bottom: .5rem; }
.section-lede{ color: var(--fg-soft); font-size: 1.02rem; max-width: 56ch; margin: 0 auto; }

section{ padding: 3rem 0; }

.divider{ display: flex; justify-content: center; padding: 0 1.5rem; }
.divider img{ width: 100%; max-width: 340px; height: auto; opacity: .8; }

/* Кнопки — фурнитура: латунная заклёпка / контурная */
.btn{
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  padding: .85em 1.6em; border-radius: 999px; font-weight: 700; font-size: .95rem;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space: nowrap;
}
.btn--brass{ background: var(--brass); color: #241505; box-shadow: 0 10px 24px -12px rgba(169,119,42,.7); }
.btn--brass:hover{ background: var(--brass-light); transform: translateY(-2px); }
.btn--ghost{ border: 1.5px solid var(--line); color: var(--fg); }
.btn--ghost:hover{ border-color: var(--brass); color: var(--brass); transform: translateY(-2px); }
.btn--lg{ padding: 1em 2em; font-size: 1rem; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav__inner{
  max-width: 1240px; margin: 0 auto; padding: .9rem 1.5rem;
  display: flex; align-items: center; gap: 1.4rem;
}
.nav__burger{
  display: none; align-items: center; justify-content: center; flex-direction: column; gap: 5px;
  flex: 0 0 44px; width: 44px; height: 44px; padding: 0; margin: -5px 0;
  color: #332b3d; background: rgba(255,255,255,.82); border: 1px solid rgba(51,43,61,.16);
  border-radius: 999px; box-shadow: 0 8px 20px -16px rgba(51,43,61,.7);
  -webkit-tap-highlight-color: transparent;
}
.nav__burger span{
  display:block; flex: 0 0 3px; width: 24px; min-width: 24px; height: 3px;
  background: currentColor; border-radius: 999px; transition: transform .2s ease, opacity .2s ease;
}

.nav__logo{ display: flex; align-items: center; gap: .5rem; margin-right: auto; }
.nav__logo-mark{ font-size: 1.7rem; line-height: 1; }
.nav__logo-text{
  font-family: 'Marck Script', cursive; font-size: 1.5rem; line-height: 1;
  color: var(--brass);
}

.nav__links{ display: flex; align-items: center; gap: 1.7rem; font-size: .93rem; font-weight: 600; }
.nav__links a{ position: relative; padding: .3em 0; color: var(--fg-soft); }
.nav__links a:hover{ color: var(--fg); }
.nav__links a::after{
  content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px;
  background: var(--brass); transition: right .22s ease;
}
.nav__links a:hover::after{ right: 0; }

.nav__actions{ display: flex; align-items: center; gap: .9rem; }
.nav__search-btn{ display: flex; padding: .4rem; color: var(--fg-soft); }
.nav__search-btn:hover{ color: var(--brass); }
.nav__cta{ padding: .6em 1.3em; font-size: .88rem; }

.search-panel{
  border-bottom: 1px solid var(--line);
  background: var(--bg-soft);
  overflow: hidden;
}
.search-panel__inner{ max-width: 1240px; margin: 0 auto; padding: 1rem 1.5rem; display: flex; gap: 1rem; align-items: center; }
.search-panel__inner input{
  flex: 1; background: transparent; border: none; border-bottom: 1.5px solid var(--line);
  font-family: var(--font-body); font-size: 1.1rem; padding: .5em .1em; color: var(--fg);
}
.search-panel__inner input:focus{ outline: none; border-color: var(--brass); }
.search-panel__inner button{ font-size: 1.2rem; color: var(--fg-soft); }

.mobile-menu{
  display: none; flex-direction: column; padding: .5rem 1.5rem 1.2rem;
  border-bottom: 1px solid var(--line); background: var(--bg-soft);
}
.mobile-menu a{ padding: .75em 0; border-bottom: 1px solid var(--line); font-weight: 600; }
.mobile-menu a:last-child{ border-bottom: none; }

@media (max-width: 900px){
  .nav__links{ display: none; }
  .nav__burger{ display: flex; }
  .mobile-menu.is-open{ display: flex; }
}
@media (max-width: 400px){
  .nav__cta{ display: none; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position: relative;
  padding: clamp(1.2rem, 3vw, 2.2rem) 1.5rem 2.5rem;
  max-width: 1240px; margin: 0 auto;
  display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(2rem, 5vw, 4rem);
}
.hero__stitch{
  position: absolute; left: -40px; top: -30px; z-index: 0; color: var(--brass); opacity: .35;
  width: 260px; pointer-events: none;
}
.hero__stitch svg{ width: 100%; height: auto; }
#stitchPath{
  stroke-dasharray: 900; stroke-dashoffset: 900;
  animation: draw 2.6s ease forwards .3s;
}
@keyframes draw{ to{ stroke-dashoffset: 0; } }

.hero__content{ position: relative; z-index: 1; }
.hero__title{ font-size: clamp(2.2rem, 4.6vw, 3.6rem); margin-bottom: 1.1rem; }
.hero__lede{ font-size: 1.1rem; color: var(--fg-soft); max-width: 52ch; margin: 0 0 2rem; }
.hero__actions{ display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.2rem; }
.hero__meta{ display: flex; flex-direction: column; gap: .55rem; font-size: .86rem; color: var(--fg-soft); font-weight: 600; }
.hero__meta li{ padding-left: 1.3em; position: relative; }
.hero__meta li::before{ content: "✂"; position: absolute; left: 0; color: var(--brass); }

.hero__photo{
  position: relative; border-radius: var(--radius-l); overflow: hidden;
  box-shadow: var(--shadow); border: 1px solid var(--line);
  aspect-ratio: 990/1400; max-height: min(72vh, 640px);
}
.hero__photo img{ width: 100%; height: 100%; object-fit: cover; }
.hero__photo-img--mirrored{ transform: scaleX(-1); }

@media (max-width: 860px){
  .hero{ grid-template-columns: 1fr; text-align: center; }
  .hero__content{ order: 2; }
  .hero__photo{ order: 1; max-width: 420px; margin: 0 auto; }
  .hero__lede{ margin-left: auto; margin-right: auto; }
  .hero__actions{ justify-content: center; }
  .hero__meta{ align-items: center; }
  .hero__meta li{ padding-left: 0; }
  .hero__meta li::before{ display: none; }
  .hero__stitch{ display: none; }
}

/* =========================================================
   MANIFESTO / ФИЛОСОФИЯ БРЕНДА
   ========================================================= */
.manifesto__text{
  max-width: 640px; margin: 0 auto; padding: 0 1.5rem;
  display: flex; flex-direction: column; gap: 1.1rem; text-align: center;
}
.manifesto__text .section-lede{ max-width: none; margin: 0; }

/* =========================================================
   NOTICE / ВНИМАНИЕ
   ========================================================= */
.notice{ padding: 0 0 2.6rem; }
.notice__inner{
  max-width: 860px; margin: 0 auto; padding: .9rem 1.5rem;
  display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap; justify-content: center;
  border-left: 3px solid var(--oxblood);
}
.notice__badge{
  flex: none; font-family: var(--font-body); font-weight: 800; font-size: .74rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--oxblood);
}
.notice__inner p{ font-size: .89rem; color: var(--fg-soft); max-width: 60ch; }
.notice__inner p a{ color: var(--brass); font-weight: 700; white-space: nowrap; }
.notice__inner p a:hover{ text-decoration: underline; }

/* =========================================================
   ABOUT / О МАСТЕРЕ
   ========================================================= */
.about{
  display: grid; grid-template-columns: .85fr 1.15fr; align-items: center;
  gap: clamp(2rem, 5vw, 4rem); max-width: 1100px; margin: 0 auto; padding: 3rem 1.5rem;
}
.about__photo{ border-radius: var(--radius-l); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); }
.about__photo img{ width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; object-position: center 25%; }
.about__text .section-lede{ margin: 0 0 1.2rem; max-width: 52ch; }
.about__note{ font-size: .85rem; color: var(--fg-soft); max-width: 52ch; }

.about--reverse{ grid-template-columns: 1.15fr .85fr; }
.about--reverse .about__photo{ order: 2; }

@media (max-width: 780px){
  .about, .about--reverse{ grid-template-columns: 1fr; text-align: center; }
  .about__photo{ max-width: 340px; margin: 0 auto; order: 0; }
  .about__text .section-lede, .about__note{ margin-left: auto; margin-right: auto; }
}

/* =========================================================
   SIZES / ЛЕКАЛО
   ========================================================= */
.measure-guide{
  max-width: 1000px; margin: 0 auto; padding: 0 1.5rem;
  display: flex; flex-direction: column; align-items: center;
}
.measure-guide__grid{
  display: grid; grid-template-columns: .8fr 1.2fr; gap: 2rem; align-items: center;
  margin-top: 1.2rem; background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: var(--radius-l); padding: 1.8rem;
}
.measure-guide__photo-wrap{ position: relative; }
.measure-guide__photo{
  display: block; width: 100%; padding: 0; cursor: zoom-in;
  border-radius: var(--radius-m); overflow: hidden; position: relative;
}
.measure-guide__photo img{ width: 100%; height: auto; aspect-ratio: auto; display: block; border-radius: var(--radius-m); border: 1px solid var(--line); transition: transform .4s ease; }
.measure-guide__photo:hover img{ transform: scale(1.03); }
.measure-guide__photo::after{
  content: '🔍'; position: absolute; right: .6rem; bottom: .6rem;
  background: rgba(20,14,10,.62); color: #fff; font-size: .85rem;
  width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center;
}
.measure-guide__count{
  position: absolute; left: .6rem; bottom: .6rem; background: rgba(20,14,10,.62); color: #fff;
  font-size: .72rem; font-weight: 700; padding: .25em .6em; border-radius: 999px; letter-spacing: .02em;
  pointer-events: none; z-index: 2;
}
.measure-guide__nav{
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center;
  background: rgba(20,14,10,.55); color: #fff; font-size: 1.2rem; line-height: 1;
  opacity: .8; transition: opacity .18s ease, background .18s ease;
}
.measure-guide__nav:hover{ opacity: 1; background: rgba(20,14,10,.8); }
.measure-guide__nav--prev{ left: .5rem; }
.measure-guide__nav--next{ right: .5rem; }
.measure-guide__intro{ font-size: .92rem; margin-bottom: 1rem; }
.measure-guide__text ol{ padding-left: 1.2rem; display: flex; flex-direction: column; gap: .5rem; font-size: .9rem; }
.measure-guide__note{ font-size: .92rem; margin-top: 1rem; }
@media (max-width: 720px){
  .measure-guide__grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   CATALOG
   ========================================================= */
.catalog__layout{
  --catalog-gutter: max(1.5rem, calc((100vw - 1240px) / 2 + 1.5rem));
  /* Ширина колонки категорий. Пункты обведены в карточки, поэтому колонка
     шире, чем когда названия были просто текстом. */
  --taxo-col: 329px;
  --taxo-col-w: min(var(--taxo-col), calc(100vw - var(--catalog-gutter) - var(--catalog-gutter)));
  width: 100%; margin: 0;
}

.taxo{ position: static; width: 100%; }
.taxo__label{
  font-size: .84rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em;
  color: var(--fg-soft);
  width: var(--taxo-col-w);
  margin: 0 0 .8rem var(--catalog-gutter);
}
.taxo__tree{ display: flex; flex-direction: column; gap: .5rem; width: 100%; }
.taxo__node, .taxo__branch{ width: 100%; min-width: 0; }
.taxo__toggle{
  width: var(--taxo-col-w);
  margin-left: var(--catalog-gutter);
  text-align: left; display: flex; align-items: center; gap: .55em;
  padding: .78em .85em; border-radius: 12px; font-weight: 700; font-size: 1.02rem;
  color: var(--fg); background: #fff; border: 1px solid var(--line);
  transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.taxo__count{
  margin-left: auto; flex-shrink: 0;
  font-size: .88em; font-weight: 600; color: var(--fg-soft); font-variant-numeric: tabular-nums;
}
.taxo__toggle:hover{ border-color: var(--brass); background: var(--bg-soft); }
.taxo__toggle.is-active,
.taxo__toggle--leaf.is-active{
  background: var(--brass); color: #241505; border-color: #9c6f2c;
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 2px 8px rgba(184,134,60,.28);
}
.taxo__toggle--leaf.is-active{ border-radius: 12px; }
.taxo__toggle.is-active .taxo__count{ color: #241505; }
.taxo__toggle.is-active .taxo__arrow{ color: #241505; }
.taxo__toggle--stock{ color: var(--pine); border-color: rgba(63,133,98,.32); }
.taxo__toggle--stock .taxo__count{ color: var(--pine); }
.taxo__toggle--stock:hover{ border-color: var(--pine); }
.taxo__toggle--stock.is-active{
  background: var(--pine-soft); color: var(--pine); border-color: rgba(63,133,98,.5);
  box-shadow: 0 2px 8px rgba(63,133,98,.2);
}
.taxo__toggle--stock.is-active .taxo__count,
.taxo__toggle--stock.is-active .taxo__arrow{ color: var(--pine); }
.taxo__arrow{
  display: inline-block; font-size: .65em; color: var(--fg-soft); transition: transform .18s ease;
  flex-shrink: 0;
}
.taxo__node.is-open > .taxo__toggle .taxo__arrow{ transform: rotate(90deg); }
/* Фон на .taxo__children вешать нельзя: внутрь этого же контейнера
   вставляется полноширинная лента товаров — подложка растянулась бы под
   всю сетку карточек. Поэтому вложенность показываем латунной направляющей
   на самих пунктах. */
.taxo__children{
  width: 100%; margin: .35rem 0 .6rem; padding: .1rem 0;
  display: flex; flex-direction: column; gap: .35rem;
}
.taxo__branch > .taxo__leaf{
  width: min(calc(var(--taxo-col) - .85rem), calc(100vw - var(--catalog-gutter) - var(--catalog-gutter) - .85rem));
  margin-left: calc(var(--catalog-gutter) + .85rem);
  background: #fff; border: 1px solid var(--line);
  border-left: 3px solid rgba(184,134,60,.4);
}
.taxo__grandchildren{
  width: min(calc(var(--taxo-col) - 1.7rem), calc(100vw - var(--catalog-gutter) - var(--catalog-gutter) - 1.7rem));
  margin: .45rem 0 .35rem calc(var(--catalog-gutter) + 1.7rem);
  padding: .1rem 0 .1rem .9rem; border-left: 2px dashed rgba(184,134,60,.4);
  /* Размеры — сеткой 2×2: в одну строку четыре чипа не помещались и
     «Стандарт» обрезался. */
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem;
}
.taxo__grandchildren--root{
  width: min(calc(var(--taxo-col) - .85rem), calc(100vw - var(--catalog-gutter) - var(--catalog-gutter) - .85rem));
  margin-left: calc(var(--catalog-gutter) + .85rem);
}
.taxo__leaf{
  text-align: left; display: flex; align-items: center; gap: .5em;
  padding: .62em .8em; border-radius: 10px;
  font-size: .95rem; font-weight: 600; color: var(--fg-soft);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.taxo__leaf:hover{ border-color: var(--brass); color: var(--fg); }
.taxo__leaf.is-active{ background: var(--brass); color: #241505; border-color: #9c6f2c; }
.taxo__leaf.is-active .taxo__count{ color: #241505; }
.taxo__leaf--size{
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: .55em .85em; font-size: .88rem; font-weight: 700;
}
.taxo__leaf--size.is-active{
  background: rgba(184,134,60,.08); color: var(--brass); border-color: var(--brass);
}
.taxo__leaf--size.is-active .taxo__count{ color: rgba(184,134,60,.75); }

.taxo__toggle:disabled, .taxo__leaf:disabled{
  opacity: .4; cursor: not-allowed; pointer-events: none;
}

.catalog__results-home:empty{ display: none; }
.catalog__results-slot{ width: 100%; min-width: 0; }
.catalog__results{ width: 100%; min-width: 0; padding: .8rem 0 1.15rem; }
.catalog__hint{
  color: var(--brass); font-size: .92rem; font-weight: 600;
  max-width: 1240px; margin: 0 auto 1.4rem; padding: 0 1.5rem;
}

.cat-description{
  text-align: center; max-width: 640px; margin: 1.2rem auto;
  padding: 1.1rem 1.4rem; background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: var(--radius-m);
}
.cat-description__title{ font-size: 1.05rem; margin: 0 0 .5rem; color: var(--brass); }
.cat-description__text{ font-size: .92rem; color: var(--fg-soft); margin: 0; }

.product-grid{
  display: flex; gap: 1.1rem; overflow-x: auto; align-items: stretch;
  padding: 0 1.5rem 1rem;
  scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}
.product-grid:empty{ display: none; }
.product-card{
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: var(--radius-l);
  padding: 1.4rem; display: flex; flex-direction: column; gap: .9rem;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  text-align: left; position: relative; overflow: hidden;
  flex: 0 0 clamp(240px, 24vw, 290px); scroll-snap-align: start;
}
.product-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow); border-color: var(--brass); }
.product-card__sketch{
  width: 100%; aspect-ratio: 4/5; display: grid; place-items: center; color: var(--fg-soft);
  background: var(--bg-deep);
  border-radius: var(--radius-m);
  overflow: hidden; position: relative; cursor: zoom-in;
}
.product-card:hover .product-card__sketch{ color: var(--brass); }
.product-card__sketch svg{ width: 46%; }
.product-card__imgbtn{ display: block; width: 100%; height: 100%; cursor: zoom-in; }
.product-card__imgbtn img{
  width: 100%; height: 100%; object-fit: contain;
  transition: transform .4s ease;
}
.product-card:hover .product-card__imgbtn img{ transform: scale(1.04); }
.product-card__count{
  position: absolute; right: .6rem; bottom: .6rem; background: rgba(20,14,10,.62); color: #fff;
  font-size: .72rem; font-weight: 700; padding: .25em .6em; border-radius: 999px; letter-spacing: .02em;
  pointer-events: none;
}
.product-card__nav{
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center;
  background: rgba(20,14,10,.55); color: #fff; font-size: 1.2rem; line-height: 1;
  opacity: .8; transition: opacity .18s ease, background .18s ease;
}
.product-card__nav:hover{ opacity: 1; background: rgba(20,14,10,.8); }
.product-card__nav--prev{ left: .5rem; }
.product-card__nav--next{ right: .5rem; }

.product-card__body{ display: flex; flex-direction: column; gap: .9rem; flex: 1; cursor: pointer; }
.product-card__tags{ display: flex; gap: .4rem; flex-wrap: wrap; }
.tag{ font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: .25em .6em; border-radius: 999px; }
.tag--stock{ background: var(--pine-soft); color: var(--pine); }
.tag--order{ background: var(--bg-deep); color: var(--fg-soft); }
.tag--size{ background: var(--bg-deep); color: var(--fg-soft); }

.product-card__name{ font-family: var(--font-display); font-size: 1.12rem; }
.product-card__desc{ font-size: .87rem; color: var(--fg-soft); }

.product-card__price-row{ display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.product-card__price{ font-weight: 800; font-size: 1.05rem; opacity: 0; max-height: 0; overflow: hidden; transition: opacity .25s ease, max-height .25s ease; }
.product-card.is-revealed .product-card__price{ opacity: 1; max-height: 2em; }
.product-card__hint{ font-size: .78rem; color: var(--brass); font-weight: 700; }
.product-card.is-revealed .product-card__hint{ display: none; }

.product-empty{ color: var(--fg-soft); padding: 1rem 1.5rem 0; }

@media (max-width: 860px){
  .catalog__layout{ --catalog-gutter: 1rem; }
  .product-grid{ padding-right: 1rem; padding-left: 1rem; }
  .product-card{ flex-basis: min(82vw, 270px); padding: 1rem; }
  .cat-description{ margin-right: 1rem; margin-left: 1rem; }
  .product-empty{ padding-right: 1rem; padding-left: 1rem; }
}

/* --- Десктоп: без карусели, товары справа, меню слева ---
   Мобильная раскладка (карусель прямо в дереве категорий) выше остаётся
   без изменений. На десктопе колонка категорий и панель товаров стоят
   рядом через CSS Grid: первая колонка — старая фиксированная ширина
   --taxo-col (329px), она уже проверена на всех пунктах меню. */
@media (min-width: 861px){
  /* Специально НЕ используем стандартный сайтовый max-width:1240px с
     центрированием — на широких экранах это отодвигало меню от края
     экрана на сотни пикселей и сжимало карточки в узкую колонку
     посередине. Вместо этого раскладка прижата к левому краю секции
     через небольшой фиксированный отступ, а ширина карточек справа
     ограничена отдельно (.catalog__results-home), чтобы они не
     растягивались до гигантских размеров на очень широких мониторах. */
  .catalog__layout{
    display: grid; grid-template-columns: var(--taxo-col) minmax(0, 1fr);
    align-items: start; gap: 2.6rem;
    max-width: none; margin: 0;
    padding: 0 clamp(1.5rem, 3vw, 3rem);
  }

  .taxo__label{ width: auto; margin: 0 0 .8rem; }
  .taxo__toggle{ width: 100%; margin-left: 0; }
  .taxo__branch > .taxo__leaf{ width: 100%; margin-left: .85rem; }
  .taxo__grandchildren{ width: 100%; margin: .45rem 0 .35rem 1.7rem; }
  .taxo__grandchildren--root{ width: 100%; margin-left: .85rem; }

  /* Меню категорий остаётся на месте при прокрутке всей секции каталога,
     чтобы кнопку можно было нажать в любой момент скролла. --nav-height
     измеряется в main.js (реальная высота липкой шапки), запасное
     значение — на случай, если скрипт ещё не отработал. Без
     max-height/overflow: внутренний скролл-бар откусывал часть ширины
     у контента (крайняя правая кнопка размера обрезалась) — вместо
     этого меню просто может быть выше окна и доскроллить его можно
     обычной прокруткой страницы. */
  .taxo{
    position: sticky; top: calc(var(--nav-height, 70px) + 1.5rem);
    align-self: start;
  }

  .catalog__results-home{ width: 100%; min-width: 0; max-width: 1180px; }
  .catalog__hint{ max-width: none; margin: 0 auto 1.4rem; padding: 0; text-align: center; }
  /* Центрируем блок-пояснение относительно всей ширины панели товаров
     (а не по левому краю) — тогда он выглядит по центру трёх колонок
     карточек, а на более узких десктопных ширинах, где колонок всего
     две (см. брейкпоинт ниже), — по центру двух. */
  .cat-description{ margin: 1.2rem auto; }
  .product-empty{ padding: 0; }

  /* Товары справа фиксированной сеткой в три колонки вместо ленты. */
  .product-grid{
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.3rem; overflow: visible; padding: 0; scroll-snap-type: none;
  }
  .product-card{ flex: initial; }
}

@media (min-width: 861px) and (max-width: 1080px){
  /* На более узких десктопных ширинах трём колонкам тесно — оставляем две. */
  .product-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =========================================================
   PORTFOLIO / COVERFLOW-КАРУСЕЛЬ
   ========================================================= */
.pf-cf{
  --pf-card: clamp(150px, 32vw, 260px);
  position: relative;
  width: 100%;
}

.pf-cf__frame{
  cursor: grab;
  overflow: hidden;
  padding: 2rem 0;
  outline: none;
  touch-action: pan-y;
  perspective: calc(var(--pf-card) * 3);
}
.pf-cf__frame:active{ cursor: grabbing; }
.pf-cf__frame:focus-visible{ box-shadow: inset 0 0 0 2px var(--brass); }

.pf-cf__stage{
  position: relative;
  height: calc(var(--pf-card) * 4 / 3);
  transform-style: preserve-3d;
}

.pf-cf__card{
  position: absolute;
  top: 0; left: 50%;
  width: var(--pf-card);
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: var(--radius-l);
  background: var(--bg-deep);
  box-shadow: var(--shadow);
  will-change: transform;
  cursor: zoom-in;
}

.pf-cf__card img{
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  user-select: none;
  -webkit-user-drag: none;
}

.pf-cf__nav{
  position: absolute;
  top: 50%; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  border-radius: 50%; border: 1px solid var(--line);
  background: rgba(255,255,255,.82); backdrop-filter: blur(4px);
  color: var(--ink); cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.pf-cf__nav:hover{ background: var(--bg-soft); transform: translateY(-50%) scale(1.06); }
.pf-cf__nav--prev{ left: .5rem; transform: translateY(-50%); }
.pf-cf__nav--prev:hover{ transform: translateY(-50%) scale(1.06); }
.pf-cf__nav--next{ right: .5rem; transform: translateY(-50%); }

.pf-cf__caption{
  margin-top: .6rem;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 0 1.5rem;
}
.pf-cf__caption-title{
  font-family: var(--font-display); font-size: 1.05rem; font-weight: 700;
  margin: 0; color: var(--fg);
}
.pf-cf__caption-desc{
  margin: .3rem 0 0; font-size: .85rem; color: var(--fg-soft);
}

.portfolio__hint{ text-align: center; color: var(--fg-soft); font-size: .85rem; padding: .8rem 1.5rem 0; }

@media (max-width: 640px){
  .pf-cf{ --pf-card: clamp(140px, 52vw, 220px); }
  .pf-cf__nav{ width: 38px; height: 38px; }
}

/* =========================================================
   INFO CARDS
   ========================================================= */
.info-cards{
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  gap: 1.2rem; max-width: 1100px; margin: 0 auto; padding: 0 1.5rem;
}
.info-card{
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: var(--radius-m);
  padding: 1.5rem;
}
.info-card h3{ font-size: 1.05rem; margin-bottom: .5rem; }
.info-card p{ font-size: .87rem; color: var(--fg-soft); }
.info-card--pay{ display: flex; flex-direction: column; align-items: center; text-align: center; }
@media (min-width: 901px){
  .fabrics .info-cards{
    grid-template-columns: repeat(5, minmax(0, 1fr));
    max-width: 1300px;
  }
  .fabrics .info-card{ padding: 1.2rem; }
}
.pay-qr__photo{
  display: block; width: 120px; margin-top: 1rem; padding: 0; cursor: zoom-in;
  border-radius: var(--radius-s); overflow: hidden; position: relative;
}
.pay-qr__photo img{ width: 100%; height: auto; aspect-ratio: auto; display: block; border-radius: var(--radius-s); border: 1px solid var(--line); transition: transform .3s ease; }
.pay-qr__photo:hover img{ transform: scale(1.05); }
.pay-qr__photo::after{
  content: '🔍'; position: absolute; right: .3rem; bottom: .3rem;
  background: rgba(20,14,10,.62); color: #fff; font-size: .68rem;
  width: 1.6em; height: 1.6em; border-radius: 50%; display: grid; place-items: center;
}

.swatch-strip{
  display: flex; gap: 1rem; overflow-x: auto; max-width: 1100px; margin: 2rem auto 0; padding: 0 1.5rem 1rem;
  scroll-snap-type: x proximity;
}
.swatch-strip img{
  flex: none; width: 190px; height: auto; aspect-ratio: 3/4; object-fit: cover; border-radius: var(--radius-m);
  scroll-snap-align: start; border: 1px solid var(--line);
}
.swatch-strip__hint{ text-align: center; color: var(--fg-soft); font-size: .82rem; padding: 0 1.5rem; }

/* =========================================================
   PRICE
   ========================================================= */
.price-card{
  max-width: 1120px; margin: 0 auto; overflow: hidden;
  background: color-mix(in srgb, var(--bg-soft) 94%, var(--wash-butter));
  border: 1px solid color-mix(in srgb, var(--brass) 32%, var(--line));
  border-radius: var(--radius-l); box-shadow: var(--shadow);
}
.price-card__header{
  display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem;
  padding: 1.6rem 2rem 1.45rem;
  background:
    radial-gradient(circle at 8% 20%, rgba(255,255,255,.2), transparent 30%),
    linear-gradient(115deg, var(--leather), var(--leather-mid));
  color: #f8f1e7;
}
.price-card__label{
  display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .45rem;
  color: var(--brass-light); font-size: .72rem; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
}
.price-card__label::before{
  content: ""; width: 1.6rem; height: 1px; background: currentColor;
}
.price-card__header h3{ font-size: clamp(1.25rem, 2.2vw, 1.7rem); }
.price-card__currency{
  flex: none; color: rgba(248,241,231,.72); font-size: .8rem; white-space: nowrap;
}
.price-accordion{
  display: grid; gap: .65rem; padding: 1rem 1.1rem .2rem;
}
.price-category{
  overflow: hidden; background: var(--bg-soft);
  border: 1px solid var(--line); border-radius: var(--radius-m);
  transition: border-color .22s ease, box-shadow .22s ease;
}
.price-category[open]{
  border-color: color-mix(in srgb, var(--brass) 50%, var(--line));
  box-shadow: 0 14px 30px -26px rgba(51,43,61,.7);
}
.price-category__summary{
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem;
  padding: .9rem 1rem; list-style: none; cursor: pointer; user-select: none;
  transition: background-color .2s ease;
}
.price-category__summary::-webkit-details-marker{ display: none; }
.price-category__summary::marker{ content: ""; }
.price-category__summary:hover{
  background: color-mix(in srgb, var(--wash-butter) 38%, var(--bg-soft));
}
.price-category[open] .price-category__summary{
  background: color-mix(in srgb, var(--wash-butter) 48%, var(--bg-soft));
}
.price-category__heading{
  display: flex; align-items: center; gap: .85rem; min-width: 0;
}
.price-category__index{
  display: grid; place-items: center; flex: 0 0 2.45rem; height: 2.45rem;
  border: 1px solid color-mix(in srgb, var(--brass) 48%, var(--line));
  border-radius: 50%; color: var(--brass); font-size: .68rem; font-weight: 800;
  font-variant-numeric: tabular-nums; letter-spacing: .06em;
}
.price-category__copy{ display: flex; flex-direction: column; min-width: 0; }
.price-category__copy strong{
  font-family: var(--font-display); font-size: 1.08rem; font-weight: 400; line-height: 1.2;
}
.price-category__copy small{ color: var(--fg-soft); font-size: .72rem; }
.price-category__action{
  display: flex; align-items: center; gap: .75rem; flex: none;
  color: var(--brass); font-size: .72rem; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
}
.price-category__action-label--open{ display: none; }
.price-category[open] .price-category__action-label--closed{ display: none; }
.price-category[open] .price-category__action-label--open{ display: inline; }
.price-category__icon{
  position: relative; display: block; width: 2rem; height: 2rem;
  border-radius: 50%; background: color-mix(in srgb, var(--wash-lavender) 55%, var(--bg-soft));
}
.price-category__icon::before,
.price-category__icon::after{
  content: ""; position: absolute; top: 50%; left: 50%; width: .72rem; height: 1.5px;
  border-radius: 999px; background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform .3s ease, opacity .2s ease;
}
.price-category__icon::after{ transform: translate(-50%, -50%) rotate(90deg); }
.price-category[open] .price-category__icon::after{
  opacity: 0; transform: translate(-50%, -50%) rotate(0deg);
}
.price-category__panel{
  display: grid; grid-template-rows: 0fr; visibility: hidden; opacity: 0;
  transition:
    grid-template-rows .38s cubic-bezier(.22,.8,.26,1),
    opacity .25s ease,
    visibility 0s linear .38s;
}
.price-category:not([open]) > .price-category__panel{ display: grid; }
.price-category[open] > .price-category__panel{
  grid-template-rows: 1fr; visibility: visible; opacity: 1;
  transition:
    grid-template-rows .38s cubic-bezier(.22,.8,.26,1),
    opacity .3s ease,
    visibility 0s linear 0s;
}
.price-category__panel-inner{
  min-height: 0; overflow: hidden; padding: 0 .8rem;
  transition: padding-bottom .38s cubic-bezier(.22,.8,.26,1);
}
.price-category[open] .price-category__panel-inner{ padding-bottom: .7rem; }
.price-list{ width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.price-list caption{
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.price-list__product-col{ width: 36%; }
.price-list th,
.price-list td{ padding: .85rem .9rem; border-bottom: 1px solid var(--line); }
.price-list thead th{
  color: var(--fg-soft); font-size: .7rem; font-weight: 800;
  letter-spacing: .08em; text-align: center; text-transform: uppercase;
}
.price-list thead th:first-child{ text-align: left; }
.price-list tbody th[scope="row"]{
  color: var(--fg); font-size: .91rem; font-weight: 650; line-height: 1.35; text-align: left;
}
.price-list td{
  color: var(--fg); font-size: .93rem; font-weight: 800; line-height: 1.2;
  text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.price-list tbody tr{ transition: background-color .16s ease; }
.price-list tbody tr:hover{
  background: color-mix(in srgb, var(--wash-butter) 42%, transparent);
}
.price-list tbody tr:last-child th,
.price-list tbody tr:last-child td{ border-bottom: 0; }
.price-card__note{
  display: flex; align-items: center; justify-content: center; gap: .55rem;
  margin: .75rem 1.1rem 1.1rem; padding: .75rem 1rem;
  border-radius: var(--radius-s);
  background: color-mix(in srgb, var(--wash-butter) 55%, var(--bg-soft));
  color: var(--fg-soft); font-size: .8rem; text-align: center;
}
.price-card__note span{ color: var(--brass); }

@media (max-width: 1150px){
  .price-card{ margin-right: 1.5rem; margin-left: 1.5rem; }
}

@media (max-width: 720px){
  .price-card{ margin-right: 1rem; margin-left: 1rem; border-radius: var(--radius-m); }
  .price-card__header{
    align-items: flex-start; flex-direction: column; gap: .7rem; padding: 1.35rem 1.25rem;
  }
  .price-card__currency{ white-space: normal; }
  .price-accordion{ gap: .55rem; padding: .75rem .75rem .1rem; }
  .price-category__summary{ gap: .7rem; padding: .8rem .75rem; }
  .price-category__heading{ gap: .65rem; }
  .price-category__index{ flex-basis: 2.2rem; height: 2.2rem; }
  .price-category__copy strong{ font-size: 1rem; }
  .price-category__copy small{ font-size: .67rem; }
  .price-category__action-label{ display: none !important; }
  .price-category__icon{ width: 1.85rem; height: 1.85rem; }
  .price-category__panel-inner{ padding-right: .6rem; padding-left: .6rem; }
  .price-category[open] .price-category__panel-inner{ padding-bottom: .6rem; }
  .price-list,
  .price-list tbody{ display: block; }
  .price-list colgroup,
  .price-list thead{ display: none; }
  .price-list tr{ width: 100%; }
  .price-list tbody tr{
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem;
    margin-bottom: .55rem; padding: .8rem;
    background: var(--bg-soft); border: 1px solid var(--line); border-radius: 11px;
  }
  .price-list tbody tr:last-child{ margin-bottom: 0; }
  .price-list tbody tr:hover{ background: var(--bg-soft); }
  .price-list tbody th[scope="row"]{
    grid-column: 1 / -1; padding: 0 0 .35rem; border-bottom: 0;
    font-size: .94rem;
  }
  .price-list td{
    display: flex; align-items: flex-start; flex-direction: column; gap: .12rem;
    padding: .58rem .65rem; border: 0; border-radius: 8px;
    background: color-mix(in srgb, var(--wash-lavender) 32%, var(--bg));
    text-align: left;
  }
  .price-list td::before{
    content: attr(data-size); color: var(--fg-soft); font-size: .63rem;
    font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  }
  .price-card__note{ margin: .65rem .75rem .75rem; padding: .7rem .75rem; }
}

.incrust-gallery{
  display: flex; gap: 1rem; overflow-x: auto; max-width: 1100px; margin: 2rem auto 0; padding: 0 1.5rem 1rem;
  scroll-snap-type: x proximity;
}
.incrust-gallery__photo{
  flex: none; width: 200px; padding: 0; cursor: zoom-in;
  border-radius: var(--radius-m); overflow: hidden; position: relative; scroll-snap-align: start;
}
.incrust-gallery__photo img{
  width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; display: block; border-radius: var(--radius-m);
  border: 1px solid var(--line); box-shadow: var(--shadow); transition: transform .4s ease;
}
.incrust-gallery__photo:hover img{ transform: scale(1.05); }
.incrust-gallery__photo::after{
  content: '🔍'; position: absolute; right: .5rem; bottom: .5rem;
  background: rgba(20,14,10,.62); color: #fff; font-size: .78rem;
  width: 1.8em; height: 1.8em; border-radius: 50%; display: grid; place-items: center;
}
.incrust-gallery__hint{ text-align: center; color: var(--fg-soft); font-size: .82rem; padding: 0 1.5rem; }

/* =========================================================
   VIP
   ========================================================= */
.vip{
  background: var(--leather); color: #f2e9d8; border-radius: var(--radius-l);
  max-width: 1240px; margin: 0 1.5rem; padding: 3.5rem 2rem;
}
@media (min-width: 1290px){ .vip{ margin: 0 auto; } }
.vip .eyebrow{ color: var(--brass-light); }
.vip .section-lede{ color: #cbb99f; }
.vip-grid{
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr));
  gap: 1.2rem; max-width: 1000px; margin: 0 auto 2.2rem;
}
.vip-card{
  background: rgba(242,233,216,.06); border: 1px solid rgba(242,233,216,.16);
  border-radius: var(--radius-m); padding: 1.6rem;
}
.vip-card h3{ font-family: var(--font-display); font-size: 1.12rem; color: var(--brass-light); margin-bottom: .6rem; }
.vip-card p{ font-size: .9rem; color: #d8cbb4; }
.vip-cta{
  max-width: 640px; margin: 0 auto; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 1.3rem;
}
.vip-cta p{ color: #cbb99f; font-size: .95rem; }

@media (max-width: 780px){
  .vip{ margin: 0 1rem; padding: 2.6rem 1.4rem; border-radius: var(--radius-m); }
}

/* =========================================================
   REVIEWS
   ========================================================= */
.review-photos{
  display: flex; gap: 1rem; overflow-x: auto; max-width: 1100px; margin: 0 auto;
  padding: 0 1.5rem 1rem; scroll-snap-type: x proximity;
}
.review-photo{
  flex: none; width: 210px; padding: 0; overflow: hidden; cursor: zoom-in;
  border: 1px solid var(--line); border-radius: var(--radius-m);
  box-shadow: 0 12px 30px -24px rgba(45,27,18,.7); scroll-snap-align: start;
}
.review-photo img{
  display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover;
  transition: transform .35s ease;
}
.review-photo:hover img{ transform: scale(1.04); }
.review-photo:focus-visible{ outline: 3px solid var(--brass); outline-offset: 3px; }
.review-photos__hint,
.review-grid__hint{
  max-width: 760px; margin: 0 auto; padding: 0 1.5rem;
  text-align: center; color: var(--fg-soft); font-size: .84rem;
}
.review-photos__hint{ margin-bottom: 2rem; }
.review-grid__hint{ margin-top: 1.2rem; }
.review-grid{
  display: flex; gap: 1.3rem; overflow-x: auto; max-width: 1100px; margin: 0 auto;
  padding: 0 1.5rem 1rem; scroll-snap-type: x mandatory; align-items: stretch;
}
.review-card{
  flex: 0 0 min(360px, 84vw); margin: 0; background: var(--bg-soft);
  border: 1px solid var(--line); border-radius: var(--radius-m);
  padding: 1.6rem; position: relative; scroll-snap-align: start;
  display: flex; flex-direction: column;
}
.review-card::before{
  content: '“'; position: absolute; right: 1rem; top: .35rem;
  font-family: var(--font-display); font-size: 4rem; line-height: 1;
  color: var(--brass); opacity: .18;
}
.review-card--media::before{ content: none; }
.review-card p{ font-size: .95rem; margin-bottom: 1rem; padding-right: .5rem; flex: 1; }
.review-card cite{ font-style: normal; font-size: .82rem; color: var(--brass); font-weight: 700; }

/* Фото/видео, приложенные к отзыву — полноширинная плашка сверху карточки
   (вылезает за padding через отрицательные отступы). Скриншоты переписки
   бывают самой разной пропорции, поэтому object-fit: contain вместо
   cover — ничего не обрезаем, а свободное место закрывает мягкая подложка
   в тон акварельной подложке сайта. */
.review-card__photo{
  display: block; width: calc(100% + 3.2rem); height: 200px;
  margin: -1.6rem -1.6rem 1.1rem; padding: 0; overflow: hidden;
  cursor: zoom-in; position: relative; background: var(--bg-deep);
  border-radius: var(--radius-m) var(--radius-m) 0 0;
}
.review-card__photo img{
  width: 100%; height: 100%; object-fit: contain; display: block;
  transition: transform .35s ease;
}
.review-card__photo:hover img{ transform: scale(1.04); }
.review-card__photo:focus-visible{ outline: 3px solid var(--brass); outline-offset: -3px; }
.review-card__photo::after{
  content: '🔍'; position: absolute; right: .6rem; bottom: .6rem;
  background: rgba(20,14,10,.62); color: #fff; font-size: .8rem;
  width: 1.9em; height: 1.9em; border-radius: 50%; display: grid; place-items: center;
}
.review-card__badge{
  position: absolute; left: .6rem; bottom: .6rem; background: rgba(20,14,10,.62); color: #fff;
  font-size: .72rem; font-weight: 700; padding: .25em .6em; border-radius: 999px; letter-spacing: .02em;
}
.review-card__photo--video-only{ display: grid; place-items: center; background: var(--leather); }
.review-card__video-icon{ font-size: 2.2rem; color: #fff; }

@media (max-width: 640px){
  .review-photo{ width: 175px; }
  .review-card{ padding: 1.35rem; }
  .review-card__photo{ height: 170px; }
}

/* =========================================================
   ORDER
   ========================================================= */
.order{ background: var(--leather); color: #f2e9d8; border-radius: var(--radius-l); max-width: 1240px; margin: 0 1.5rem; padding: 3.5rem 2rem; overflow: hidden; }
@media (min-width: 1290px){ .order{ margin: 0 auto; } }
.order__grid{ display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); }
.order__photo{ border-radius: var(--radius-m); overflow: hidden; box-shadow: 0 20px 50px -20px rgba(0,0,0,.6); }
.order__photo img{ width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3/4; object-position: center 20%; }
.order .eyebrow{ color: var(--brass-light); }
.order__inner{ text-align: left; }
.order__inner h2{ font-size: clamp(1.6rem, 3.2vw, 2.2rem); margin-bottom: .8rem; }
.order .section-lede{ color: #cbb99f; margin: 0 0 2rem; max-width: 46ch; }
.order__actions{ display: flex; gap: 1rem; flex-wrap: wrap; }
.order__phone{
  display: flex; align-items: center; justify-content: center; gap: .45em;
  margin-top: 2.8rem;
  font-family: var(--font-display); font-size: clamp(1.5rem, 3.4vw, 2.1rem);
  color: var(--brass-light); letter-spacing: .02em;
  transition: color .18s ease;
}
.order__phone:hover{ color: #fff; }
.order__email{
  margin-top: .6rem;
  font-family: var(--font-body);
  font-size: clamp(1rem, 5vw, 1.25rem);
  font-weight: 700;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.order__phone-icon{ width: .75em; height: .75em; flex-shrink: 0; }
.order .btn--ghost{ color: #f2e9d8; border-color: rgba(242,233,216,.45); }
.order .btn--ghost:hover{ color: #fff; border-color: #f2e9d8; }

@media (max-width: 780px){
  .order__grid{ grid-template-columns: 1fr; text-align: center; }
  .order__inner{ text-align: center; }
  .order__photo{ max-width: 300px; margin: 0 auto; }
  .order__actions, .order .section-lede{ justify-content: center; margin-left: auto; margin-right: auto; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ padding: 3rem 1.5rem 2.5rem; text-align: center; color: var(--fg-soft); font-size: .87rem; }
.footer__inner{ display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.footer__brand{ display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: .4rem; font-family: 'Marck Script', cursive; font-size: 1.6rem; color: var(--brass); }
.footer__links{ display: flex; gap: 1.2rem; margin: .4rem 0; flex-wrap: wrap; justify-content: center; }
.footer__links a:hover{ color: var(--brass); }
.footer__copy{ opacity: .7; }
.footer__metrika{
  display: inline-flex; padding: .3rem;
  border: 1px solid var(--line); border-radius: var(--radius-s);
  background: var(--paper-soft); line-height: 0;
  opacity: .55; filter: grayscale(.4); transition: opacity .2s ease, filter .2s ease;
}
.footer__metrika:hover{ opacity: 1; filter: none; }
.footer__metrika img{ display: block; }

/* =========================================================
   SCROLL-REVEAL
   ========================================================= */
.reveal{ opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity: 1; transform: translateY(0); }

@media (max-width: 640px){
  section{ padding: 2.2rem 0; }
  .order{ margin: 0 1rem; padding: 2.6rem 1.4rem; border-radius: var(--radius-m); }
  .divider img{ max-width: 260px; }
}

/* =========================================================
   ЛАЙТБОКС ГАЛЕРЕИ
   ========================================================= */
.lightbox{
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(20,14,10,.92);
  display: flex; align-items: center; justify-content: center;
  padding: 3.5rem 1rem;
}
.lightbox[hidden]{ display: none; }
.lightbox__stage{
  max-width: min(90vw, 720px); max-height: 78vh; display: flex; align-items: center; justify-content: center;
}
.lightbox__stage img, .lightbox__stage video{
  max-width: 100%; max-height: 78vh; border-radius: var(--radius-m); box-shadow: 0 30px 70px -20px rgba(0,0,0,.6);
}
.lightbox__stage img{ cursor: zoom-out; }
.lightbox__nav{
  position: absolute; top: 50%; transform: translateY(-50%); color: #fff; font-size: 2.4rem; line-height: 1;
  width: 3rem; height: 3rem; border-radius: 999px; background: rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
}
.lightbox__nav:hover{ background: rgba(255,255,255,.22); }
.lightbox__nav--prev{ left: .6rem; }
.lightbox__nav--next{ right: .6rem; }
.lightbox__caption{
  position: absolute; left: 0; right: 0; bottom: 1rem; text-align: center; color: #f2e9d8;
  font-size: .88rem; display: flex; flex-direction: column; gap: .2rem;
}
.lightbox__counter{ font-size: .78rem; color: #cbb99f; font-variant-numeric: tabular-nums; }

@media (max-width: 640px){
  .lightbox{ padding: 3rem .5rem; }
  .lightbox__nav{ width: 2.4rem; height: 2.4rem; font-size: 1.9rem; }
}
