/* ============================================================
   PAGE.CSS — Газ-Вода · ЕДИНЫЙ СЛОЙ КОМПОНЕНТОВ (source of truth)
   ------------------------------------------------------------
   Дата: 2026-07-07. Собран по аудиту визуального дрейфа
   (_audit/2026-07-07-visual-unification-audit.md) и решениям Алёны.

   ЧТО ЭТО. Один файл, к которому обращаются ВСЕ типовые страницы
   вместо per-page <style> и inline. Правишь бренд-атом (цвет, радиус,
   паддинг) здесь — меняется на всём сайте. Новая страница НЕ изобретает
   стиль, а берёт классы отсюда.

   ПОРЯДОК ПОДКЛЮЧЕНИЯ на странице (важно для каскада):
     <link ... styles.css>       (легаси тела, выводится из обращения)
     <link ... components.css>    (партиалы: шапка/футер/FAB/CTA — НЕ трогать)
     <link ... page.css>          ← ПОСЛЕДНИМ, перебивает дубли .eyebrow и т.п.

   КАНОН (решения Алёны 2026-07-07):
   · Синий бренда = #2D538A (в памяти была ошибка #70B0E0 — это цвет ЛОГО).
   · Радиусная шкала = 5 (кнопки) / 8 (карточки) / 12 (крупные блоки/фото).
   · Айброу = два режима: медь #F0CBA9 на тёмном hero, синий #2D538A на светлом.
   · Hover-медь кнопок = #B85B24, active = #8C4E1B, база = #CE6B2B.
   · Фон секций: каталог — тон #F6F8FC на alt-секциях; товары/инфо — белый.

   ⚠️ Дубли .eyebrow/.subcat-card в components.css и per-page <style>
   физически НЕ удалены (это делается в конце волны 3). Пока page.css
   перебивает их каскадом. Новая разметка использует классы отсюда.
   ============================================================ */

/* ------------------------------------------------------------
   0. КАНОН-ТОКЕНЫ + мост трёх неймспейсов
   Страницы исторически ссылаются на --hb-* (каталог), без префикса
   (--brand/--line, товары+styles.css) и --gv-* (услуги). Сводим ВСЕ
   к одному значению, чтобы одинаковые по смыслу переменные перестали
   «плавать» от страницы к странице.
   ------------------------------------------------------------ */
:root{
  /* — Канонические имена — */
  --gv-page:        #F6F8FC;  /* тонированный фон (каталог alt-секции) */
  --gv-surface:     #FFFFFF;  /* белые карточки/полосы */
  --gv-ink:         #0F1B2D;  /* основной текст */
  --gv-head:        #1A1F2C;  /* заголовки */
  --gv-mute:        #5A6B85;  /* приглушённый/крошки */
  --gv-line:        #E6EAF1;  /* хайрлайн-бордер */
  --gv-blue:        #2D538A;  /* бренд-синий (КАНОН) */
  --gv-blue-soft:   #7493C0;
  --gv-blue-light:  #EAF0F8;
  --gv-copper:      #CE6B2B;  /* акцент-медь (интерактив/база кнопки) */
  --gv-copper-h:    #B85B24;  /* hover */
  --gv-copper-a:    #8C4E1B;  /* active */
  --gv-copper-soft: #F0CBA9;  /* айброу на тёмном */
  --gv-copper-bar:  #C9772F;  /* черта айброу на тёмном */
  --gv-copper-tint: #FCF5EE;  /* мягкая медная подложка */
  --gv-navy:        #082140;  /* легаси-ink: не использовать для новых тёмных поверхностей */
  --gv-navy-surface:#141B29;  /* спокойный navy сплошных блоков, выбранный 17.07 */
  /* Радиусы — КАНОН 5/8/12 */
  --gv-r-btn:  5px;
  --gv-r-card: 8px;
  --gv-r-lg:   12px;
  /* Тени */
  --gv-sh-card:  0 10px 30px -16px rgba(15,27,45,.18);
  --gv-sh-hover: 0 18px 44px -18px rgba(15,27,45,.30);
  /* Шрифты */
  --gv-fd: 'Manrope', sans-serif;      /* display/заголовки */
  --gv-fb: 'Inter', sans-serif;        /* body */
  --gv-fm: 'JetBrains Mono', monospace;/* числа/метки */

  /* — Мост: легаси-имена → канон (чтобы старая разметка сошлась) — */
  --hb-bg:var(--gv-page); --hb-text:var(--gv-ink); --hb-head:var(--gv-head);
  --hb-muted:var(--gv-mute); --hb-line:var(--gv-line); --hb-brand:var(--gv-blue);
  --hb-brand-soft:var(--gv-blue-soft); --hb-brand-light:var(--gv-blue-light);
  --hb-accent:var(--gv-copper); --hb-sh:var(--gv-sh-card);
  --hb-fd:var(--gv-fd); --hb-fb:var(--gv-fb); --hb-fm:var(--gv-fm);

  --brand:var(--gv-blue); --brand-soft:var(--gv-blue-soft); --brand-light:var(--gv-blue-light);
  --accent:var(--gv-copper); --accent-h:var(--gv-copper-h); --accent-dark:var(--gv-copper-h);
  --line:var(--gv-line); --muted:var(--gv-mute); --head:var(--gv-head);
  --sh-card:var(--gv-sh-card);
  --fd:var(--gv-fd); --fb:var(--gv-fb); --fm:var(--gv-fm);

  --gv-brand:var(--gv-blue); --gv-accent:var(--gv-copper); --gv-accent-h:var(--gv-copper-h);
  --gv-brand-soft:var(--gv-blue-soft); --gv-brand-light:var(--gv-blue-light);
  --gv-text:var(--gv-ink); --gv-muted:var(--gv-mute);
  --gv-fd-alias:var(--gv-fd);
}

/* ------------------------------------------------------------
   1. EYEBROW — капс-метка секции (ОДНО определение + модификаторы)
   Канон: mono 12px, uppercase, ls .18em, вес 500, синий #2D538A,
   черта 26×2px того же цвета, mb 16px.
   ------------------------------------------------------------ */
.eyebrow{
  font-family:var(--gv-fm);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--gv-blue);
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px;
  margin-bottom:16px;
}
.eyebrow::before{
  content:""; width:26px; height:2px;
  background:var(--gv-blue); flex-shrink:0; border-radius:1px;
}
.eyebrow a{color:inherit; text-decoration:none}

/* Модификатор: на тёмном hero/CTA — медь */
.eyebrow--on-dark{color:var(--gv-copper-soft)}
.eyebrow--on-dark::before{background:var(--gv-copper-bar)}

/* Модификатор: медный акцент (блок «с этим заказывают», CTA-услуги) */
.eyebrow--accent{color:var(--gv-copper); font-size:11.5px; letter-spacing:.14em; font-weight:600}
.eyebrow--accent::before{background:var(--gv-copper)}

/* Модификатор: мелкая суб-метка без черты (бывш. .hub-eyebrow) */
.eyebrow--sub{
  font-family:var(--gv-fm); font-size:11.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gv-copper); font-weight:600;
  margin-bottom:14px; display:block;
}
.eyebrow--sub::before{content:none}

/* Легаси-алиасы (пока старая разметка не переписана): тянем к канону */
.hub-eyebrow{ /* = .eyebrow--sub */
  font-family:var(--gv-fm); font-size:11.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gv-copper); font-weight:600; margin-bottom:14px;
}
.hub-hero .hub-eyebrow{color:var(--gv-copper-soft)}
.rel-eyebrow{ /* = .eyebrow--accent */
  font-family:var(--gv-fm); font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gv-copper); font-weight:600;
  margin:0 0 12px; display:flex; align-items:center; gap:12px;
}
.rel-eyebrow::before{content:""; width:26px; height:2px; background:var(--gv-copper); flex-shrink:0; border-radius:1px}

/* On-dark контексты — айброу медью на тёмных hero/секциях (централизовано из components.css:
   разметка использует голый .eyebrow внутри тёмного контейнера, поэтому держим контекст-селектор). */
.gv-hero .eyebrow, .hub-hero .eyebrow, .svc-hero .eyebrow,
.about-hero .eyebrow, .article-hero .eyebrow, .hero-dark .eyebrow{color:var(--gv-copper-soft)}
.gv-hero .eyebrow::before, .hub-hero .eyebrow::before, .svc-hero .eyebrow::before,
.about-hero .eyebrow::before, .article-hero .eyebrow::before, .hero-dark .eyebrow::before{background:var(--gv-copper-bar)}
.gv-hero .eyebrow a{color:inherit; text-decoration:none}

/* ------------------------------------------------------------
   2. HERO-DARK — тёмный navy-композит (hero/B2B/CTA)
   ЕДИНЫЙ рецепт. Разные места отличались только паддингом → модификаторы.
   ------------------------------------------------------------ */
.hero-dark{
  background-color:var(--gv-navy-surface);
  background-image:
    radial-gradient(80% 120% at 8% 0%, rgba(45,83,138,.34), transparent 55%),
    radial-gradient(70% 100% at 100% 100%, rgba(201,119,47,.16), transparent 50%),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:auto, auto, 40px 40px, 40px 40px;
  color:#EEF1F8;
  position:relative; overflow:hidden;
  padding:clamp(40px,5vw,62px) 0;   /* канон hero страницы */
}
.hero-dark--band{padding:clamp(40px,5vw,72px) 0}  /* B2B-полоса «оптом» */
.hero-dark--cat{padding:34px 0}                    /* компактный хаб-hero каталога */
.hero-dark--sm{padding:36px 0 32px}
.hero-dark h1,.hero-dark h2,.hero-dark h3{color:#fff}

/* Пилот: тот же светло-синий фото-градиент, что на утверждённой главной. */
.svc-hero--light-blue .svc-hero-shade{
  background:
    linear-gradient(90deg,rgba(10,36,69,.68) 0%,rgba(10,36,69,.58) 34%,rgba(10,36,69,.32) 53%,rgba(10,36,69,.08) 78%,rgba(10,36,69,.02) 100%),
    linear-gradient(0deg,rgba(5,15,43,.24),rgba(5,15,43,.02) 54%);
}
@media(max-width:960px){.svc-hero--light-blue .svc-hero-shade{
  background:linear-gradient(180deg,rgba(10,36,69,.78) 0%,rgba(10,36,69,.68) 54%,rgba(10,36,69,.46) 78%,rgba(10,36,69,.26) 100%);
}}

/* ------------------------------------------------------------
   3. SECTION — вертикальный ритм + фоны
   Канон: контентная секция clamp(48px,6vw,84px); хаб-секция каталога
   clamp(20px,3vw,40px); тонированная — фон #F6F8FC; SEO-полоса — белая.
   ------------------------------------------------------------ */
.section{padding:clamp(48px,6vw,84px) 0; position:relative}
.section--hub{padding:clamp(20px,3vw,40px) 0}       /* плотный ритм каталога (бывш. .hub-sec) */
.section--tight{padding:clamp(28px,3vw,40px) 0}
.section--tinted{background:var(--gv-page)}          /* голубой тон alt-секции */
.section--white{background:var(--gv-surface)}
.hub-sec{padding:clamp(20px,3vw,40px) 0}             /* легаси-алиас → канон (было 18/38 vs 20/40) */

/* SEO-полоса на белом внутри тонированной зоны (бывш. .cat-band) */
.cat-band{
  background:var(--gv-surface);
  border-top:1px solid var(--gv-line);
  border-bottom:1px solid var(--gv-line);
  padding:clamp(30px,4vw,52px) 0;
  margin-top:clamp(16px,2vw,28px);
}
.cat-band h2{font-family:var(--gv-fd); font-weight:800; font-size:clamp(20px,2.3vw,28px); letter-spacing:-.02em; color:var(--gv-head); margin:0 0 16px}
.cat-band p{font-size:14.5px; line-height:1.65; color:var(--gv-ink); max-width:78ch; margin:0 0 14px}
.cat-band p:last-child{margin-bottom:0}

/* ------------------------------------------------------------
   4. CARD — карточки (канон радиусов 8 / 12)
   ------------------------------------------------------------ */
.card{
  background:var(--gv-surface);
  border:1px solid var(--gv-line);
  border-radius:var(--gv-r-card);            /* 8 */
  padding:28px;
  box-shadow:var(--gv-sh-card);
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.card:hover{border-color:var(--gv-copper-tint); box-shadow:0 8px 24px -8px rgba(15,23,42,.12)}
.card--tight{padding:20px}
.card--flat{box-shadow:none}
.card--lg{border-radius:var(--gv-r-lg)}      /* 12 — крупная панель */

/* Фото-карточка подкатегории (крупная, r12) */
.subcat-card{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:240px; border-radius:var(--gv-r-lg); overflow:hidden;
  border:1px solid var(--gv-line);
  box-shadow:var(--gv-sh-card);
  color:#fff; text-decoration:none;
  transition:transform .22s, box-shadow .22s;
}
.subcat-grid--compact .subcat-card{min-height:240px}
.subcat-card:hover{transform:translateY(-4px); box-shadow:var(--gv-sh-hover)}
.subcat-card>img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s}
.subcat-card:hover>img{transform:scale(1.05)}
.subcat-card .g{position:absolute; inset:0; background:linear-gradient(to top, rgba(10,14,24,.93) 8%, rgba(10,14,24,.5) 46%, rgba(10,14,24,.08))}
.subcat-card.noimg{background:linear-gradient(155deg,#1B2A47,#0D1626)}
.subcat-card.noimg .g{display:none}
.subcat-card .c{position:relative; z-index:2; padding:18px 20px}
.subcat-card h3{font-family:var(--gv-fd); font-weight:800; font-size:17px; letter-spacing:-.01em; margin:0 0 6px; color:#fff; display:flex; align-items:center; gap:8px; line-height:1.2}
.subcat-card p{font-size:12.5px; line-height:1.45; color:rgba(255,255,255,.86); margin:0}

/* Тёмный номер-бейдж шага (канон feedback_gazvoda_dark_number_badge_standard) */
.gvs-num{
  width:46px; height:46px; border-radius:var(--gv-r-lg); background:#1A2744; border:none; color:#fff;
  display:grid; place-items:center; font-family:var(--gv-fm); font-size:13px; font-weight:700; margin-bottom:16px;
}
@media(max-width:480px){.gvs-num{width:40px; height:40px; border-radius:10px; margin-bottom:12px}}

/* ------------------------------------------------------------
   5. BUTTONS — канон радиус 5, медь #CE6B2B → hover #B85B24 → active #8C4E1B
   ------------------------------------------------------------ */
.btn-primary,.btn-vedo{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 22px; border-radius:var(--gv-r-btn); border:1.5px solid transparent;
  font-family:var(--gv-fb); font-weight:600; font-size:14px; line-height:1;
  white-space:nowrap; text-decoration:none; cursor:pointer;
  background:var(--gv-copper); color:#fff;
  transition:background .18s, border-color .18s, color .18s, transform .12s;
}
.btn-primary:hover,.btn-vedo:hover{background:var(--gv-copper-h); color:#fff}
.btn-primary:active,.btn-vedo:active{transform:translateY(1px); background:var(--gv-copper-a)}
.btn-vedo svg,.btn-vedo i,.btn-primary svg,.btn-primary i{width:18px; height:18px; flex-shrink:0}

/* Вторичная — белая с синим hover */
.btn-sec{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 22px; border-radius:var(--gv-r-btn); border:1.5px solid var(--gv-line);
  font-family:var(--gv-fb); font-weight:600; font-size:14px; line-height:1;
  white-space:nowrap; text-decoration:none; cursor:pointer;
  background:#fff; color:var(--gv-ink);
  transition:border-color .18s, color .18s;
}
.btn-sec:hover{border-color:var(--gv-blue); color:var(--gv-blue)}

/* Полупрозрачная на тёмном (карточка товара) */
.btn-ghost-d{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 22px; border-radius:var(--gv-r-btn); border:1.5px solid rgba(255,255,255,.35);
  font-family:var(--gv-fb); font-weight:600; font-size:14px; line-height:1;
  background:rgba(255,255,255,.1); color:#fff; backdrop-filter:blur(10px);
  text-decoration:none; cursor:pointer; transition:background .18s, border-color .18s;
}
.btn-ghost-d:hover{background:rgba(255,255,255,.2); border-color:#fff}

/* ------------------------------------------------------------
   6. CRUMBS — хлебные крошки (ОДИН канон; каталог использует .eyebrow-крошки)
   ------------------------------------------------------------ */
.crumbs{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  font-family:var(--gv-fm); font-size:12px; font-weight:500;
  color:var(--gv-mute); margin-bottom:24px;
}
.crumbs a{color:var(--gv-mute); text-decoration:none}
.crumbs a:hover{color:var(--gv-copper-h)}
.crumbs span[aria-current]{color:var(--gv-ink)}
.crumbs svg{width:13px; height:13px}
.crumbs__sep{opacity:.4}

/* ------------------------------------------------------------
   7. CHIPS — цвет-код среды (вода/газ/медь) — синхрон с components.css
   ------------------------------------------------------------ */
.gv-chip{display:inline-flex; align-items:center; height:22px; padding:0 8px; border-radius:var(--gv-r-btn); font-family:var(--gv-fm); font-size:11px; font-weight:500; letter-spacing:.02em; background:#F4F5F3; color:#3A475C; white-space:nowrap}
.gv-chip--copper{background:var(--gv-copper-tint); color:var(--gv-copper-a)}
.gv-chip--water{background:#DCEBF8; color:#1C5E9E}
.gv-chip--gas{background:#FBF0D2; color:#946708}

/* ------------------------------------------------------------
   8. REALIZED OBJECTS — documentary portfolio
   ------------------------------------------------------------ */
.live-objects--documentary{
  padding:72px 0 90px; background:var(--gv-page); color:var(--gv-ink);
}
.live-objects--documentary .live-head{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,470px);
  align-items:end; gap:54px; margin-bottom:28px;
}
.live-objects--documentary .live-head h2{
  margin:10px 0 0; max-width:760px; font-family:var(--gv-fd);
  font-size:clamp(30px,3.2vw,44px); line-height:1.04; letter-spacing:-.035em;
}
.live-objects--documentary .live-head p{
  margin:0; max-width:46ch; color:var(--gv-mute); font:400 16px/1.6 var(--gv-fb);
}
.live-objects--documentary .live-filters{
  position:static; display:flex; gap:24px; overflow-x:auto; margin:0 0 36px;
  padding:0 0 16px; background:transparent; border:0; border-bottom:1px solid var(--gv-line);
  border-radius:0; box-shadow:none; backdrop-filter:none; scrollbar-width:none;
}
.live-objects--documentary .live-filter{
  min-height:38px; padding:8px 0; border:0; border-radius:0; background:transparent;
  color:var(--gv-mute); font:600 13px/1 var(--gv-fb); white-space:nowrap;
}
.live-objects--documentary .live-filter span{
  min-width:21px; height:21px; padding:0 6px; background:#E9EEF5; color:var(--gv-mute);
  font:600 11px/1 var(--gv-fm);
}
.live-objects--documentary .live-filter:hover{background:transparent; color:var(--gv-blue)}
.live-objects--documentary .live-filter.is-active{
  padding-inline:13px; border-radius:var(--gv-r-btn); background:var(--gv-blue); color:#fff;
}
.live-objects--documentary .live-filter.is-active span{background:#fff; color:var(--gv-blue)}
.live-objects--documentary>.wrap{counter-reset:live-object}
.live-objects--documentary .live-direction{padding:0; border:0}
.live-objects--documentary .live-direction__head{display:none}
.live-objects--documentary .live-grid,
.live-objects--documentary .live-grid--portfolio{
  display:flex; flex-direction:column; gap:0; padding:0; background:transparent;
}
.live-objects--documentary .live-grid::before{display:none}
.live-objects--documentary .live-case{
  counter-increment:live-object; position:relative; display:grid;
  grid-template-columns:minmax(190px,230px) minmax(0,1fr); gap:28px;
  width:100%; min-height:0; margin:0; padding:0 0 48px 28px;
  overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none;
}
.live-objects--documentary .live-case[hidden]{display:none!important}
.live-objects--documentary .live-case::before{
  content:""; position:absolute; left:5px; top:31px; width:8px; height:8px;
  border:2px solid var(--gv-blue); border-radius:50%; background:var(--gv-page); z-index:2;
}
.live-objects--documentary .live-case::after{
  content:""; position:absolute; left:10px; top:42px; bottom:0; width:1px; background:#B7C8DF;
}
.live-objects--documentary .live-direction:last-of-type .live-case:last-child::after{display:none}
.live-objects--documentary .live-case__copy{
  order:-1; display:block; align-self:start; padding:23px 8px 0 0;
  border:0; background:transparent;
}
.live-objects--documentary .live-case__copy::before{
  content:counter(live-object,decimal-leading-zero); display:block; margin-bottom:34px;
  color:var(--gv-blue); font:600 12px/1 var(--gv-fm); letter-spacing:.06em;
}
.live-objects--documentary .live-case__copy small{
  display:block; margin:0 0 13px; color:var(--gv-copper); font:600 11px/1.4 var(--gv-fm);
  letter-spacing:.11em; text-transform:uppercase;
}
.live-objects--documentary .live-case__copy h4{
  margin:0 0 12px; color:var(--gv-navy); font:800 clamp(21px,2vw,27px)/1.12 var(--gv-fd);
  letter-spacing:-.025em;
}
.live-objects--documentary .live-case__copy p{
  margin:0; color:var(--gv-mute); font:400 14px/1.58 var(--gv-fb);
}
.live-objects--documentary .live-photos{
  display:grid; grid-template-columns:1fr; grid-template-rows:1fr; gap:0; width:100%; height:430px;
  overflow:hidden; border:1px solid #D9E2EE; border-radius:var(--gv-r-lg); background:#E9EEF5;
  box-shadow:0 14px 34px -24px rgba(19,26,58,.28);
}
.live-objects--documentary .live-photos a{display:none; min-height:0; height:100%}
.live-objects--documentary .live-photos a:first-child{display:block}
.live-objects--documentary .live-photos img{
  display:block; width:100%; height:100%; min-height:0; aspect-ratio:auto; object-fit:cover;
}
.live-objects--documentary .live-case--feature .live-photos{height:500px}
.live-objects--documentary .live-case--portrait-pair .live-photos{
  grid-template-columns:repeat(2,minmax(0,1fr)); height:520px; gap:8px; padding:8px; background:#fff;
}
.live-objects--documentary .live-case--portrait-pair .live-photos a:nth-child(2){display:block}
.live-objects--documentary .live-case--portrait-pair .live-photos img{object-position:center}
.live-objects--documentary .live-case--portrait-single .live-photos{height:520px}
.live-objects--documentary .live-case--portrait-single .live-photos img{
  object-fit:contain; padding:10px; background:#E9EEF5;
}
.live-objects--documentary .live-case--archive{padding-bottom:38px}
.live-objects--documentary .live-case--archive .live-photos{
  grid-template-columns:minmax(0,1.5fr) minmax(170px,.75fr); grid-template-rows:repeat(2,minmax(0,1fr));
  height:330px; gap:8px; padding:10px; border-color:#E7DDCD; border-radius:var(--gv-r-card);
  background:#FBF7EF; box-shadow:0 12px 28px -24px rgba(69,54,34,.38);
}
.live-objects--documentary .live-case--archive .live-photos a:first-child{grid-row:1/-1}
.live-objects--documentary .live-case--archive .live-photos a:nth-child(2),
.live-objects--documentary .live-case--archive .live-photos a:nth-child(3){display:block}
.live-objects--documentary .live-case--archive .live-photos img{object-fit:cover}
.live-objects--documentary .live-case--archive .live-case__copy::before{color:#7890AF}

@media(max-width:900px){
  .live-objects--documentary .live-head{grid-template-columns:1fr; gap:16px}
  .live-objects--documentary .live-filter{flex:0 0 auto}
  .live-objects--documentary .live-case{grid-template-columns:170px minmax(0,1fr); gap:20px}
  .live-objects--documentary .live-photos{height:380px}
  .live-objects--documentary .live-case--feature .live-photos,
  .live-objects--documentary .live-case--portrait-pair .live-photos,
  .live-objects--documentary .live-case--portrait-single .live-photos{height:430px}
}
@media(max-width:620px){
  .live-objects--documentary{padding:54px 0 66px}
  .live-objects--documentary .live-head{display:block; margin-bottom:22px}
  .live-objects--documentary .live-head p{margin-top:16px; font-size:15px}
  .live-objects--documentary .live-filters{gap:18px; margin-inline:0; margin-bottom:28px}
  .live-objects--documentary .live-case{
    display:flex; flex-direction:column; padding:0 0 42px 24px;
  }
  .live-objects--documentary .live-case::before{left:1px; top:6px}
  .live-objects--documentary .live-case::after{left:6px; top:18px}
  .live-objects--documentary .live-case__copy{padding:0 0 16px}
  .live-objects--documentary .live-case__copy::before{margin:0 0 12px; font-size:11px}
  .live-objects--documentary .live-case__copy small{margin-bottom:8px; font-size:10px}
  .live-objects--documentary .live-case__copy h4{font-size:22px}
  .live-objects--documentary .live-photos,
  .live-objects--documentary .live-case--feature .live-photos{height:250px}
  .live-objects--documentary .live-case--portrait-pair .live-photos{height:310px; gap:5px; padding:5px}
  .live-objects--documentary .live-case--portrait-single .live-photos{height:360px}
  .live-objects--documentary .live-case--archive .live-photos{
    grid-template-columns:minmax(0,1.35fr) minmax(90px,.65fr); height:250px; gap:5px; padding:6px;
  }
}

/* ------------------------------------------------------------
   9. REALIZED OBJECTS — expandable catalog
   ------------------------------------------------------------ */
.ro-catalog{padding:72px 0 90px;background:var(--gv-page);color:var(--gv-ink)}
.ro-catalog__head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:54px;align-items:end}
.ro-catalog__head h2{margin:10px 0 0;max-width:780px;color:var(--gv-navy);font:800 clamp(32px,3.3vw,46px)/1.04 var(--gv-fd);letter-spacing:-.04em}
.ro-catalog__head p{max-width:560px;margin:0;padding-bottom:4px;color:var(--gv-mute);font:400 16px/1.65 var(--gv-fb)}
.ro-catalog__toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:34px;padding-bottom:20px;border-bottom:1px solid var(--gv-line)}
.ro-catalog__filters{display:flex;flex-wrap:wrap;gap:10px}
.ro-filter{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border:1px solid var(--gv-line);border-radius:var(--gv-r-btn);background:#fff;color:var(--gv-navy);cursor:pointer;font:700 13px/1 var(--gv-fb);transition:border-color .18s,background .18s,color .18s}
.ro-filter:before{width:7px;height:7px;border:2px solid currentColor;border-radius:50%;content:"";opacity:.72}
.ro-filter:hover{border-color:#b9c7dc;color:var(--gv-blue)}
.ro-filter.is-active{border-color:var(--gv-navy);background:var(--gv-navy);color:#fff}
.ro-filter [data-filter-count]{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:4px;background:#edf1f7;color:#53627a;font:700 11px/1 var(--gv-fm)}
.ro-filter.is-active [data-filter-count]{background:rgba(255,255,255,.15);color:#fff}
.ro-catalog__note{flex:none;color:#8793a7;font:600 11px/1.4 var(--gv-fm);letter-spacing:.08em;text-transform:uppercase}
.ro-catalog__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px;align-items:start}
.ro-catalog .ro-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;padding:0;border:1px solid var(--gv-line);border-radius:var(--gv-r-card);background:#fff;color:var(--gv-navy);box-shadow:0 20px 55px -35px rgba(19,26,58,.36);cursor:pointer;text-align:left;transition:transform .2s,box-shadow .2s,border-color .2s}
.ro-catalog .ro-card:hover{transform:translateY(-3px);border-color:#c5d1e2;box-shadow:0 24px 65px -36px rgba(19,26,58,.5)}
.ro-catalog .ro-card:focus-visible,.ro-filter:focus-visible,.ro-show-more:focus-visible,.ro-detail__cta:focus-visible,.ro-detail__close:focus-visible,.ro-dialog__close:focus-visible{outline:3px solid rgba(45,83,138,.3);outline-offset:3px}
.ro-catalog .ro-card[aria-expanded="true"]{border-color:var(--gv-copper);box-shadow:0 0 0 2px rgba(206,107,43,.12),0 20px 55px -35px rgba(19,26,58,.36);transform:none}
.ro-card__media{position:relative;display:block;aspect-ratio:12 / 5;overflow:hidden;background:#dfe6f0}
.ro-card__media:after{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,19,39,.02),rgba(10,19,39,.18));content:""}
.ro-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.ro-catalog .ro-card:hover .ro-card__media img{transform:scale(1.025)}
.ro-card__badge{position:absolute;z-index:1;top:12px;left:12px;padding:7px 10px;border:1px solid rgba(255,255,255,.75);border-radius:var(--gv-r-btn);background:rgba(255,255,255,.92);color:var(--gv-blue);backdrop-filter:blur(7px);font:700 10px/1.2 var(--gv-fm);letter-spacing:.06em;text-transform:uppercase}
.ro-card__body{display:flex;min-height:164px;flex:1;flex-direction:column;padding:17px 18px 16px}
.ro-card__location{display:flex;align-items:center;gap:7px;color:#7b879b;font:400 12px/1.35 var(--gv-fb)}
.ro-card__location:before{width:7px;height:7px;border:2px solid var(--gv-blue);border-radius:50% 50% 50% 0;content:"";transform:rotate(-45deg)}
.ro-card__body h3{margin:9px 0 0;color:var(--gv-navy);font:800 18px/1.22 var(--gv-fd);letter-spacing:-.025em}
.ro-card__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;color:#66748c;font:400 12px/1.35 var(--gv-fb)}
.ro-card__facts span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ro-card__foot{display:flex;align-items:center;justify-content:flex-end;margin-top:auto;padding-top:14px;border-top:1px solid #edf0f5}
.ro-card__open{display:inline-flex;align-items:center;gap:8px;color:var(--gv-blue);font:800 12px/1 var(--gv-fb)}
.ro-card__open:after{font-size:16px;line-height:1;content:"↓"}
.ro-catalog .ro-card[aria-expanded="true"] .ro-card__open{color:var(--gv-copper)}
.ro-catalog .ro-card[aria-expanded="true"] .ro-card__open:after{content:"↑"}
.ro-catalog .ro-card.is-hidden{display:none}
.ro-detail{position:relative;grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:36px;margin:0;padding:22px;border:1px solid #e8cdb9;border-radius:var(--gv-r-lg);background:linear-gradient(135deg,#fff 0%,#fffaf5 100%);box-shadow:0 20px 70px -45px rgba(128,67,26,.42)}
.ro-detail[hidden]{display:none}
.ro-detail:before{position:absolute;top:-9px;left:var(--pointer-left,16.66%);width:16px;height:16px;border-top:1px solid #e8cdb9;border-left:1px solid #e8cdb9;background:#fff;content:"";transform:translateX(-50%) rotate(45deg)}
.ro-detail__gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:290px}
.ro-detail__photo{position:relative;min-width:0;overflow:hidden;border-radius:var(--gv-r-card);background:#dfe5ee}
.ro-detail__photo img{display:block;width:100%;height:100%;min-height:290px;object-fit:cover}
.ro-detail__photo:nth-child(n+4){display:none}
.ro-detail__photo.is-more:after{position:absolute;right:10px;bottom:10px;padding:7px 9px;border-radius:var(--gv-r-btn);background:rgba(255,255,255,.94);color:var(--gv-navy);font:800 11px/1 var(--gv-fm);content:attr(data-more)}
.ro-detail__copy{display:flex;min-width:0;flex-direction:column;padding:5px 6px 4px}
.ro-detail__top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.ro-detail__category{color:var(--gv-blue);font:700 10px/1.3 var(--gv-fm);letter-spacing:.1em;text-transform:uppercase}
.ro-detail__close{display:grid;place-items:center;width:34px;height:34px;flex:none;padding:0;border:0;border-radius:50%;background:#edf1f6;color:var(--gv-navy);cursor:pointer;font-size:19px}
.ro-detail__copy h3{margin:8px 0 0;color:var(--gv-navy);font:800 clamp(23px,2.1vw,31px)/1.08 var(--gv-fd);letter-spacing:-.035em}
.ro-detail__region{margin-top:9px;color:#7c8799;font:400 13px/1.4 var(--gv-fb)}
.ro-detail__description{margin:17px 0 0;color:#4f5e75;font:400 14px/1.6 var(--gv-fb)}
.ro-detail__table{display:grid;margin-top:19px;border-top:1px solid #e5e8ee}
.ro-detail__row{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:9px 0;border-bottom:1px solid #e5e8ee;font:400 12px/1.35 var(--gv-fb)}
.ro-detail__row span{color:#8893a5}.ro-detail__row b{color:#4b5970;font-weight:600}
.ro-detail__cta{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:46px;margin-top:auto;padding:0 18px;border:0;border-radius:var(--gv-r-btn);background:var(--gv-copper);color:#fff;cursor:pointer;font:800 13px/1 var(--gv-fb);transition:background .18s}
.ro-detail__cta:hover{background:var(--gv-copper-a)}
.ro-show-more{display:flex;align-items:center;justify-content:center;min-width:190px;min-height:46px;margin:24px auto 0;padding:0 22px;border:1px solid var(--gv-blue);border-radius:var(--gv-r-btn);background:#fff;color:var(--gv-blue);cursor:pointer;font:800 13px/1 var(--gv-fb)}
.ro-show-more:hover{background:var(--gv-blue);color:#fff}.ro-show-more[hidden]{display:none}
.ro-dialog{width:min(610px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:var(--gv-r-lg);background:#fff;color:var(--gv-navy);box-shadow:0 35px 120px rgba(8,18,42,.36)}
.ro-dialog::backdrop{background:rgba(10,18,38,.72);backdrop-filter:blur(4px)}
.ro-dialog__head{position:relative;padding:28px 30px 24px;background:var(--gv-navy);color:#fff}
.ro-dialog__head .eyebrow{margin-bottom:12px;color:#f0cba9}.ro-dialog__head .eyebrow:before{background:var(--gv-copper)}
.ro-dialog__head h2{margin:0;color:#fff;font:800 30px/1.08 var(--gv-fd);letter-spacing:-.035em}
.ro-dialog__head p{margin:10px 0 0;color:#bdc9dd;font:400 14px/1.55 var(--gv-fb)}
.ro-dialog__close{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;cursor:pointer;font-size:20px}
.ro-dialog__body{display:grid;gap:18px;padding:25px 30px 28px}.ro-dialog__body[hidden]{display:none}
.ro-dialog__selected{padding:12px 14px;border-left:3px solid var(--gv-copper);border-radius:var(--gv-r-btn);background:#f7f9fc;color:#4f5d73;font:400 13px/1.45 var(--gv-fb)}
.ro-dialog__field{display:grid;gap:7px}.ro-dialog__field label,.ro-dialog__channel-title{color:#46536a;font:700 12px/1.35 var(--gv-fb)}
.ro-dialog__field input[type="tel"],.ro-dialog__field input[type="file"],.ro-dialog__field textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid #d9e0ea;border-radius:var(--gv-r-btn);background:#fff;color:var(--gv-navy);font:400 14px/1.4 var(--gv-fb);outline:0}
.ro-dialog__field textarea{min-height:76px;resize:vertical}.ro-dialog__field input:focus,.ro-dialog__field textarea:focus{border-color:var(--gv-blue);box-shadow:0 0 0 3px rgba(45,83,138,.1)}
.ro-dialog__channels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:7px}.ro-dialog__channels label{cursor:pointer}.ro-dialog__channels input{position:absolute;opacity:0;pointer-events:none}
.ro-dialog__channels span{display:grid;place-items:center;min-height:42px;border:1px solid #dce2eb;border-radius:var(--gv-r-btn);color:#5b687e;font:700 12px/1 var(--gv-fb)}
.ro-dialog__channels input:checked+span{border-color:var(--gv-blue);background:#eaf2fb;color:var(--gv-blue)}
.ro-dialog__consent{display:flex;align-items:flex-start;gap:9px;color:#6f7b8f;font:400 11px/1.45 var(--gv-fb)}.ro-dialog__consent input{margin-top:2px;accent-color:var(--gv-blue)}
.ro-dialog__error{display:none;margin-top:-8px;color:#b64232;font:400 12px/1.4 var(--gv-fb)}.ro-dialog__error.is-visible{display:block}
.ro-dialog__submit{min-height:48px;border:0;border-radius:var(--gv-r-btn);background:var(--gv-copper);color:#fff;cursor:pointer;font:800 14px/1 var(--gv-fb)}.ro-dialog__submit:hover{background:var(--gv-copper-a)}
.ro-dialog__success{display:none;padding:46px 30px;text-align:center}.ro-dialog__success.is-visible{display:block}
.ro-dialog__success-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;border-radius:50%;background:#e8f5ef;color:#23815a;font-size:28px}
.ro-dialog__success h3{margin:0;color:var(--gv-navy);font:800 26px/1.1 var(--gv-fd)}.ro-dialog__success p{margin:10px 0 0;color:var(--gv-mute);font:400 14px/1.55 var(--gv-fb)}
@media(max-width:1040px){
  .ro-catalog__head{grid-template-columns:1fr;gap:18px}.ro-catalog__head p{max-width:760px}
  .ro-catalog__toolbar{align-items:flex-start;flex-direction:column}.ro-catalog__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ro-detail{grid-template-columns:1fr;gap:24px}.ro-detail__gallery{min-height:250px}.ro-detail__photo img{min-height:250px}.ro-detail__copy{padding:0}.ro-detail__cta{margin-top:22px}
}
@media(max-width:650px){
  .ro-catalog{padding:54px 0 66px}.ro-catalog__head h2{font-size:32px}.ro-catalog__head p{font-size:14px}
  .ro-catalog__toolbar{margin-top:26px;padding-bottom:15px}.ro-catalog__filters{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:7px}
  .ro-filter{justify-content:space-between;min-height:42px;padding-inline:12px;font-size:11px}.ro-filter:first-child{grid-column:1/-1}.ro-catalog__note{display:none}
  .ro-catalog__grid{grid-template-columns:1fr;gap:13px;margin-top:16px}.ro-card__media{aspect-ratio:12 / 5}.ro-card__body{min-height:156px}
  .ro-detail{gap:20px;margin:0;padding:13px;border-radius:10px}.ro-detail:before{left:50%}
  .ro-detail__gallery{display:flex;min-height:0;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.ro-detail__photo{min-width:82%;height:238px;scroll-snap-align:start}.ro-detail__photo img{min-height:0;height:238px}.ro-detail__photo:nth-child(n+4){display:block}
  .ro-detail__copy{padding:3px 4px 5px}.ro-detail__row{grid-template-columns:105px 1fr;gap:10px}.ro-detail__cta{width:100%}
  .ro-dialog{width:100%;max-width:none;max-height:92vh;margin:auto 0 0;border-radius:14px 14px 0 0}.ro-dialog__head{padding:25px 22px 21px}.ro-dialog__head h2{padding-right:35px;font-size:26px}.ro-dialog__body{gap:16px;padding:20px 22px 24px}.ro-dialog__channels{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.ro-catalog *{scroll-behavior:auto!important;transition:none!important}}
