/* ════════════════════════════════════════════════════════════
   ПОКОЛЕНИЕ · v2 — страница «Контакты»
   Доп. стили поверх pokolenie.styles.css.
   Темы: каналы связи, маршрут, удалённое обслуживание, реквизиты.
   ════════════════════════════════════════════════════════════ */

/* активный пункт меню «Контакты» */
.header-nav a.is-active { opacity: 1; color: var(--c-champagne); }
.header-nav a.is-active::after { transform: scaleX(1); }
.mobile-menu nav a.is-active { color: var(--c-champagne); }
.msg-ic { fill: currentColor; }

/* левый заголовок секции */
.sec-head--left { text-align: left; align-items: flex-start; margin: 0 0 clamp(44px, 5.5vw, 72px); max-width: 760px; }
.sec-head--left .eyebrow { justify-content: flex-start; }
.sec-head--left .eyebrow::after { display: none; }
.sec-head--left .lede { margin-top: 18px; }
.light .sec-head--left .lede { color: var(--ink-65); }
.dark  .sec-head--left .lede { color: var(--milk-70); }
.sec-head--center { text-align: center; align-items: center; }
.sec-head--center .eyebrow { justify-content: center; }

/* ════════ 1 · HERO КОНТАКТОВ ════════ */
.hero--contacts { min-height: 58vh; align-items: flex-end; padding: clamp(140px, 17vh, 210px) 0 clamp(60px, 8vh, 96px); }
.hero__photo--contacts { background:
  radial-gradient(ellipse 70% 60% at 78% 24%, rgba(200,179,138,0.18), transparent 60%),
  radial-gradient(ellipse 100% 80% at 0% 100%, rgba(120,128,140,0.16), transparent 60%),
  repeating-linear-gradient(92deg, rgba(244,241,234,0.018) 0 1px, transparent 1px 7px),
  repeating-linear-gradient(2deg, rgba(244,241,234,0.015) 0 1px, transparent 1px 64px),
  linear-gradient(160deg, #24262b 0%, #191b1e 48%, #121214 100%); }
.hero__facts { margin-top: 56px; padding-top: 26px; border-top: 1px solid var(--hair-champ); display: flex; flex-wrap: wrap; gap: 12px 0; align-items: center; }
.hero__facts .f { display: inline-flex; align-items: center; font-family: var(--font-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.06em; color: var(--c-champagne); padding: 0 24px; }
.hero__facts .f:first-child { padding-left: 0; }
.hero__facts .f:not(:last-child) { border-right: 1px solid var(--hair-light); }
@media (max-width: 768px) { .hero__facts { margin-top: 40px; gap: 10px 0; } .hero__facts .f { padding: 0 14px; font-size: 11px; } }

/* ════════ 2 · КАНАЛЫ СВЯЗИ (light) ════════ */
.channels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.channel { background: var(--c-milk); border: 1px solid var(--hair-champ); padding: clamp(30px, 3vw, 44px); display: flex; flex-direction: column; gap: 16px; transition: border-color 0.4s var(--ease), transform 0.4s var(--ease); }
.channel:hover { border-color: var(--c-champagne); transform: translateY(-3px); }
.channel__icon { width: 40px; height: 40px; color: var(--c-champagne); }
.channel__role { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-bronze); }
.channel h3 { font-size: 22px; font-weight: 500; margin: 0; letter-spacing: -0.01em; }
.channel__val { font-family: var(--font-mono); font-size: 18px; font-weight: 500; color: var(--c-graphite); letter-spacing: -0.01em; word-break: break-word; }
.channel__val a:hover { color: var(--c-bronze); }
.channel p { margin: 0; font-size: 15px; line-height: 1.66; color: var(--ink-80); }
.channel p .mono, .channel .mono { font-family: var(--font-mono); font-weight: 500; color: var(--c-bronze); }
.channel__msgs { display: flex; gap: 10px; margin-top: auto; padding-top: 4px; }
.channel__msgs a { width: 46px; height: 46px; border: 1px solid var(--hair-dark); display: inline-flex; align-items: center; justify-content: center; color: var(--c-graphite); transition: border-color 0.3s, color 0.3s, transform 0.3s; }
.channel__msgs a:hover { border-color: var(--c-champagne); color: var(--c-bronze); transform: translateY(-2px); }
.channel__msgs a svg { width: 20px; height: 20px; }
.channels-note { margin: clamp(32px, 4vw, 44px) 0 0; font-size: 14px; color: var(--ink-65); }
.channels-note a { color: var(--c-bronze); border-bottom: 1px solid transparent; transition: border-color 0.3s; }
.channels-note a:hover { border-color: var(--c-bronze); }
@media (max-width: 880px) { .channels { grid-template-columns: 1fr; } }

/* ════════ 3 · КАК ДОБРАТЬСЯ (dark) ════════ */
.route-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 72px; align-items: start; }
.route-list { display: flex; flex-direction: column; gap: 40px; }
.route-block__label { font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-champagne); margin: 0 0 16px; display: flex; align-items: center; gap: 14px; }
.route-block__label::after { content: ""; flex: 1; height: 1px; background: var(--hair-light); }
.route-block p { margin: 0; font-size: 17px; line-height: 1.7; color: var(--milk-85); max-width: 520px; }
.route-block p .mono { font-family: var(--font-mono); font-weight: 500; color: var(--c-champagne); }
.route-block p .todo { color: var(--milk-55); font-style: italic; }
.route-aside { position: relative; aspect-ratio: 4 / 5; border: 1px solid var(--hair-light); background: linear-gradient(155deg, #1d1f23 0%, #16161a 100%); overflow: hidden; }
.route-aside svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.route-aside__cap { position: absolute; left: 20px; bottom: 18px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--milk-55); }
@media (max-width: 940px) { .route-grid { grid-template-columns: 1fr; gap: 48px; } .route-aside { max-width: 380px; } }

/* ════════ 4 · УДАЛЁННО И ВЫЕЗД (light) ════════ */
.rv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--hair-champ); }
.rv-card { padding: clamp(34px, 3.6vw, 52px); display: flex; flex-direction: column; gap: 18px; }
.rv-card:first-child { border-right: 1px solid var(--hair-champ); }
.rv-card__icon { width: 48px; height: 48px; color: var(--c-champagne); }
.rv-card h3 { font-size: 24px; font-weight: 500; margin: 0; letter-spacing: -0.01em; }
.rv-card p { margin: 0; font-size: 16px; line-height: 1.7; color: var(--ink-80); flex: 1; }
.rv-card p .mono { font-family: var(--font-mono); font-weight: 500; color: var(--c-bronze); }
.rv-card__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.rv-card__msgs { display: flex; gap: 10px; }
.rv-card__msgs a { width: 46px; height: 46px; border: 1px solid var(--hair-dark); display: inline-flex; align-items: center; justify-content: center; color: var(--c-graphite); transition: border-color 0.3s, color 0.3s, transform 0.3s; }
.rv-card__msgs a:hover { border-color: var(--c-champagne); color: var(--c-bronze); transform: translateY(-2px); }
.rv-card__msgs a svg { width: 20px; height: 20px; }
@media (max-width: 760px) { .rv-grid { grid-template-columns: 1fr; } .rv-card:first-child { border-right: 0; border-bottom: 1px solid var(--hair-champ); } }

/* ════════ 5 · РЕКВИЗИТЫ (dark) ════════ */
.req-wrap { max-width: 920px; }
.req-rows { border-top: 1px solid var(--hair-light); }
.req-row { display: grid; grid-template-columns: 240px 1fr; gap: 40px; padding: 24px 0; border-bottom: 1px solid var(--hair-light); align-items: start; }
.req-row .k { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-champagne); margin-top: 4px; }
.req-row .v { font-size: 17px; line-height: 1.6; color: var(--milk-85); }
.req-row .v .mono { font-family: var(--font-mono); font-weight: 500; color: var(--c-milk); letter-spacing: 0.01em; }
.req-row .v small { display: block; margin-top: 6px; font-size: 14px; color: var(--milk-55); line-height: 1.55; }
.req-note { margin-top: clamp(36px, 4.5vw, 52px); border: 1px solid var(--c-champagne); padding: clamp(26px, 3vw, 36px) clamp(28px, 3.2vw, 44px); display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.req-note p { margin: 0; font-size: 17px; font-weight: 500; line-height: 1.5; color: var(--c-milk); max-width: 540px; }
.req-link { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-champagne); white-space: nowrap; border-bottom: 1px solid transparent; transition: gap 0.3s var(--ease), border-color 0.3s; }
.req-link:hover { gap: 16px; border-color: var(--c-champagne); }
@media (max-width: 640px) { .req-row { grid-template-columns: 1fr; gap: 6px; } .req-note { flex-direction: column; align-items: flex-start; } }
