/*
 * Страница «Контакты» (/kontakty/) — виджет guru-contacts (includes/elementor/contacts-widget.php).
 * Концепция «Редакционная» (выбор владельца 30.10.2026 из трех вариантов): крупная типографика,
 * сетка 7/5, слева H1, поддержка и два канала, справа карточка-документ «Реквизиты» с рамкой и
 * штампом чертежа (без кнопок копирования — решение владельца; копируется только почта); эпюра M неразрезной балки (assets/svg/contacts-epure.svg) проходит через
 * страницу во всю ширину окна и уходит под карточку.
 * Все классы — guru-ct-*. Цвета — значения токенов витрины, зеркалированные в --guru-ct-*;
 * у каждого dark-правила есть двойник для системной темной темы (без явного выбора).
 * Анимаций появления нет (решение владельца); единственная декоративная анимация — зонд на
 * эпюре (SMIL animateMotion), скрыт при prefers-reduced-motion.
 */

/* ── токены: светлая тема ─────────────────────────────────────────────── */
.guru-ct{
  --guru-ct-ink:#212529;          /* --text-primary */
  --guru-ct-ink-2:#495057;        /* --text-tertiary: 7,7:1 на фоне .main #f5f9ff */
  --guru-ct-ink-3:#5c6773;        /* подписи: 5,5:1 на #f5f9ff, 5,8:1 на #fff */
  --guru-ct-link:#1e7e34;         /* --primary-color-focus: 4,9:1 на #f5f9ff, 5,1:1 на #fff */
  --guru-ct-link-hover:#1c7430;   /* --primary-color-active */
  --guru-ct-accent:#1e7e34;       /* кольцо фокуса */
  --guru-ct-green:#28a745;        /* --primary-color: только декор (линии, штрихи) */
  --guru-ct-green-rgb:40,167,69;  /* --primary-color-rgb */
  --guru-ct-btn:#218838;          /* --primary-color-hover: белый текст 4,5:1 (на #28a745 — 3,1:1) */
  --guru-ct-btn-hover:#1e7e34;
  --guru-ct-btn-active:#1c7430;
  --guru-ct-btn-ink:#fff;
  --guru-ct-btn-glow:rgba(40,167,69,.28);
  --guru-ct-paper:#fff;           /* --surface-elevated */
  --guru-ct-ring-gap:#fff;        /* зазор кольца фокуса */
  --guru-ct-tint:rgba(40,167,69,.08);
  --guru-ct-line:#dee2e6;         /* --border-color */
  --guru-ct-line-2:#e9f0f8;       /* --blp-line-2 */
  --guru-ct-frame:#cbd6e2;        /* рамка листа и штамп */
  --guru-ct-axis:#8a9aab;         /* --blp-ink-3: ось эпюры */
  --guru-ct-grid:rgba(20,32,46,.045);
  --guru-ct-grid-major:rgba(20,32,46,.075);
  --guru-ct-shadow:0 30px 70px -34px rgba(20,32,46,.30), 0 4px 16px rgba(20,32,46,.06);
  --guru-ct-mono:ui-monospace,'SF Mono','JetBrains Mono',Menlo,Consolas,'Liberation Mono',monospace;
}
/* ── токены: явная темная тема ───────────────────────────────────────── */
html[data-theme="dark"] .guru-ct{
  --guru-ct-ink:#e6edf3; --guru-ct-ink-2:#8b949e; --guru-ct-ink-3:#8b949e;
  --guru-ct-link:#3fb950; --guru-ct-link-hover:#56d364; --guru-ct-accent:#3fb950;
  --guru-ct-green:#3fb950; --guru-ct-green-rgb:63,185,80;
  --guru-ct-btn:#238636; --guru-ct-btn-hover:#238636; --guru-ct-btn-active:#1f7a31;   /* белый текст 4,6:1 */
  --guru-ct-btn-glow:rgba(63,185,80,.38);
  --guru-ct-paper:#161b22; --guru-ct-ring-gap:#0d1117; --guru-ct-tint:rgba(63,185,80,.12);
  --guru-ct-line:#30363d; --guru-ct-line-2:#21262d; --guru-ct-frame:#2f3742;
  --guru-ct-axis:#6b7787;
  --guru-ct-grid:rgba(230,237,243,.035); --guru-ct-grid-major:rgba(230,237,243,.06);
  --guru-ct-shadow:0 30px 70px -30px rgba(0,0,0,.65), 0 4px 16px rgba(0,0,0,.35);
}

/* ── каркас ──────────────────────────────────────────────────────────── */
.guru-ct{ position:relative; z-index:1; box-sizing:border-box; width:100%; padding:44px 0 120px;
  overflow-x:hidden; overflow-x:clip;   /* эпюра во всю ширину окна: 100vw с полосой прокрутки не дает сдвига */
  font-family:'Onest',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; color:var(--guru-ct-ink);
  -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.guru-ct *, .guru-ct *::before, .guru-ct *::after{ box-sizing:border-box; }
.guru-ct :where(h1, h2, p, ul, dl, dd){ margin:0; padding:0; }
.guru-ct :where(ul){ list-style:none; }
.guru-ct :where(button){ font:inherit; }
.guru-ct-sr{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }

/* сетка чертежного листа под заголовком */
.guru-ct::before{ content:""; position:absolute; z-index:-1; left:0; right:0; top:0; height:760px; pointer-events:none;
  background-image:
    linear-gradient(var(--guru-ct-grid-major) 1px, transparent 1px),
    linear-gradient(90deg, var(--guru-ct-grid-major) 1px, transparent 1px),
    linear-gradient(var(--guru-ct-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--guru-ct-grid) 1px, transparent 1px);
  background-size:120px 120px, 120px 120px, 24px 24px, 24px 24px;
  background-position:calc(50% - 12px) -1px;
  -webkit-mask-image:radial-gradient(ellipse 62% 78% at 28% 8%, #000 25%, transparent 72%);
          mask-image:radial-gradient(ellipse 62% 78% at 28% 8%, #000 25%, transparent 72%); }

.guru-ct__wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
.guru-ct__grid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); column-gap:clamp(40px,4.6vw,64px); }
.guru-ct__lead{ grid-column:1; grid-row:1; }
.guru-ct__support{ grid-column:1; grid-row:2; margin-top:44px; }
.guru-ct__epure{ grid-column:1 / -1; grid-row:3; }
.guru-ct__channels{ grid-column:1; grid-row:4; }
.guru-ct__doc{ grid-column:2; grid-row:1 / span 4; align-self:center; }

/* ── заголовок ───────────────────────────────────────────────────────── */
.guru-ct .guru-ct__eyebrow{ display:inline-flex; align-items:center; gap:12px; font-size:12.5px; line-height:1.4; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--guru-ct-link); }
.guru-ct .guru-ct__eyebrow::before{ content:""; width:28px; height:2px; border-radius:2px; background:var(--guru-ct-green); }
.guru-ct .guru-ct__title{ margin-top:18px; font-size:clamp(56px, 7.4vw + 16px, 136px); line-height:.9; font-weight:800; letter-spacing:-.045em; color:var(--guru-ct-ink); }
.guru-ct .guru-ct__sub{ margin-top:26px; max-width:27ch; font-size:clamp(18px, .5vw + 14px, 22px); line-height:1.5; color:var(--guru-ct-ink-2); text-wrap:balance; }

/* подпись раздела: номер моноширинным + название капителью */
.guru-ct .guru-ct__label{ display:flex; align-items:center; gap:12px; font-size:12.5px; line-height:1.4; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--guru-ct-ink-3); }
.guru-ct .guru-ct__num{ font-family:var(--guru-ct-mono); font-size:12.5px; font-weight:600; letter-spacing:0; color:var(--guru-ct-link); }
.guru-ct .guru-ct__label .guru-ct__num::after{ content:""; display:inline-block; vertical-align:middle; width:18px; height:1px; margin:0 0 2px 12px; background:var(--guru-ct-frame); }

/* ── поддержка ───────────────────────────────────────────────────────── */
.guru-ct .guru-ct__btn{ position:relative; display:inline-flex; align-items:center; gap:12px; min-height:56px; margin-top:16px; padding:0 10px 0 24px;
  border:0; border-radius:100px; background:var(--guru-ct-btn); color:var(--guru-ct-btn-ink); cursor:pointer;
  font-size:17px; line-height:1.2; font-weight:600; letter-spacing:-.005em; text-align:left;
  box-shadow:0 10px 26px -12px var(--guru-ct-btn-glow); transition:background-color .15s ease, box-shadow .15s ease; }
.guru-ct .guru-ct__btn-ic{ flex:none; }
.guru-ct .guru-ct__btn-go{ display:grid; place-items:center; flex:none; width:38px; height:38px; margin-left:6px; border-radius:50%; background:rgba(255,255,255,.16); transition:transform .15s ease; }
.guru-ct .guru-ct__btn:hover{ background:var(--guru-ct-btn-hover); box-shadow:0 14px 30px -12px var(--guru-ct-btn-glow); }
.guru-ct .guru-ct__btn:hover .guru-ct__btn-go{ transform:translateX(3px); }
.guru-ct .guru-ct__btn:active{ background:var(--guru-ct-btn-active); }
.guru-ct .guru-ct__btn:focus{ outline:none; }
.guru-ct .guru-ct__btn:focus-visible{ outline:none !important; box-shadow:0 0 0 2px var(--guru-ct-ring-gap), 0 0 0 4px var(--guru-ct-accent) !important; }

/* ── эпюра во всю ширину окна ────────────────────────────────────────── */
.guru-ct .guru-ct__epure{ position:relative; height:160px; margin:56px calc(50% - 50vw) 24px; pointer-events:none; }
.guru-ct .guru-ct__epure-svg{ position:absolute; inset:0; display:block; width:100%; height:100%; overflow:hidden; }
.guru-ct .guru-ct__ep-fill{ fill:rgba(var(--guru-ct-green-rgb), .07); }
.guru-ct .guru-ct__ep-hatch{ fill:none; stroke:rgba(var(--guru-ct-green-rgb), .42); stroke-width:1; }
.guru-ct .guru-ct__ep-axis{ stroke:var(--guru-ct-axis); stroke-width:1; opacity:.7; }
.guru-ct .guru-ct__ep-curve{ fill:none; stroke:var(--guru-ct-green); stroke-width:2; stroke-linejoin:round; }
.guru-ct .guru-ct__ep-sup circle{ fill:var(--guru-ct-paper); stroke:var(--guru-ct-axis); stroke-width:1.5; }
.guru-ct .guru-ct__ep-val text{ font-family:var(--guru-ct-mono); font-size:13px; fill:var(--guru-ct-ink-3); text-anchor:middle; }
.guru-ct .guru-ct__ep-probe line{ stroke:var(--guru-ct-green); stroke-width:1; stroke-dasharray:3 4; opacity:.55; }
.guru-ct .guru-ct__ep-probe circle{ fill:var(--guru-ct-paper); stroke:var(--guru-ct-green); stroke-width:2; }
.guru-ct .guru-ct__epure-wrap{ position:relative; max-width:1200px; height:100%; margin:0 auto; padding:0 24px; }
.guru-ct .guru-ct__epure-tag{ position:absolute; left:24px; top:-24px; font-family:var(--guru-ct-mono); font-size:12px; line-height:1.4; color:var(--guru-ct-ink-3); }

/* ── каналы: крупные ссылки ──────────────────────────────────────────── */
.guru-ct .guru-ct__ch{ padding:26px 0 30px; border-top:1px solid var(--guru-ct-line); }
.guru-ct .guru-ct__ch:last-child{ border-bottom:1px solid var(--guru-ct-line); }
.guru-ct .guru-ct__ch-row{ display:flex; align-items:flex-start; gap:18px; margin-top:16px; }
/* ссылка и действие: в одну строку, если помещаются (действие — у правого края), иначе действие под ссылкой */
.guru-ct .guru-ct__ch-main{ display:flex; flex:1 1 auto; min-width:0; flex-wrap:wrap; align-items:center; justify-content:space-between; align-content:center; gap:12px 14px; min-height:48px; }
.guru-ct .guru-ct__ch-ic{ display:grid; place-items:center; flex:none; width:48px; height:48px; border-radius:14px; border:1px solid var(--guru-ct-line); background:var(--guru-ct-paper); color:var(--guru-ct-ink); }
.guru-ct a.guru-ct__big{ position:relative; display:inline-flex; align-items:center; gap:10px; min-width:0; max-width:100%;
  font-size:clamp(22px, 1.6vw + 11px, 33px); line-height:1.15; font-weight:700; letter-spacing:-.025em; color:var(--guru-ct-ink);
  text-decoration:underline; text-decoration-color:rgba(var(--guru-ct-green-rgb), .55); text-decoration-thickness:2px; text-underline-offset:.2em;
  overflow-wrap:anywhere; transition:color .15s ease, text-decoration-color .15s ease; }
.guru-ct a.guru-ct__big:hover{ color:var(--guru-ct-link); text-decoration-color:var(--guru-ct-green); }
.guru-ct a.guru-ct__big:focus{ color:var(--guru-ct-ink); }
.guru-ct a.guru-ct__big:hover:focus{ color:var(--guru-ct-link); }
.guru-ct .guru-ct__big-ic{ flex:none; color:var(--guru-ct-link); transition:transform .15s ease; }
.guru-ct a.guru-ct__big:hover .guru-ct__big-ic{ transform:translate(2px,-2px); }
/* кольцо фокуса ссылок — псевдоэлементом: main.css гасит outline и box-shadow у a:focus-visible через !important */
.guru-ct a.guru-ct__big::after{ content:""; position:absolute; inset:-6px -10px; border-radius:12px; pointer-events:none; }
.guru-ct a.guru-ct__big:focus-visible::after{ box-shadow:0 0 0 2px var(--guru-ct-accent); }

/* ── кнопка «Скопировать» ────────────────────────────────────────────── */
.guru-ct .guru-ct__copy{ position:relative; display:inline-flex; align-items:center; gap:8px; flex:none; min-height:40px; padding:0 14px 0 12px;
  border:1px solid var(--guru-ct-line); border-radius:12px; background:var(--guru-ct-paper); color:var(--guru-ct-ink-2); cursor:pointer;
  font-size:14px; line-height:1.2; font-weight:600; transition:border-color .15s ease, color .15s ease, background-color .15s ease; }
.guru-ct .guru-ct__copy:hover{ border-color:rgba(var(--guru-ct-green-rgb), .6); color:var(--guru-ct-link); }
.guru-ct .guru-ct__copy:focus{ outline:none; }
.guru-ct .guru-ct__copy:focus-visible{ outline:none !important; border-color:var(--guru-ct-accent); box-shadow:0 0 0 2px var(--guru-ct-ring-gap), 0 0 0 4px var(--guru-ct-accent) !important; }
.guru-ct .guru-ct__copy-ok{ display:none; }
.guru-ct .guru-ct__copy.is-done{ border-color:rgba(var(--guru-ct-green-rgb), .6); background:var(--guru-ct-tint); color:var(--guru-ct-link); }
.guru-ct .guru-ct__copy.is-done .guru-ct__copy-ic{ display:none; }
.guru-ct .guru-ct__copy.is-done .guru-ct__copy-ok{ display:block; }

/* ── карточка-документ «Реквизиты» ───────────────────────────────────── */
.guru-ct .guru-ct__doc{ position:relative; z-index:2; padding:10px 10px 10px 26px; border:1px solid var(--guru-ct-line); border-radius:16px;
  background:var(--guru-ct-paper); box-shadow:var(--guru-ct-shadow); }
/* рамка листа: поле подшивки слева шире, как у чертежного формата */
.guru-ct .guru-ct__sheet{ display:flex; flex-direction:column; border:1px solid var(--guru-ct-frame); border-radius:3px; padding:26px 22px 0 26px; }
.guru-ct .guru-ct__doc-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px 16px; flex-wrap:wrap; padding-bottom:20px; border-bottom:1.5px solid var(--guru-ct-ink); }
.guru-ct .guru-ct__doc-title{ display:flex; flex-direction:column; gap:10px; font-size:clamp(28px, 1.2vw + 16px, 34px); line-height:1.05; font-weight:800; letter-spacing:-.03em; color:var(--guru-ct-ink); }
.guru-ct .guru-ct__req-row{ padding:18px 0 18px; border-bottom:1px dashed var(--guru-ct-frame); }
.guru-ct .guru-ct__req dt{ font-size:12.5px; line-height:1.4; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--guru-ct-ink-3); }
.guru-ct .guru-ct__req dd{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-top:6px; }
.guru-ct .guru-ct__req-val{ min-width:0; padding-top:5px; font-size:22px; line-height:1.3; font-weight:600; letter-spacing:.01em; font-variant-numeric:tabular-nums; color:var(--guru-ct-ink); }
.guru-ct .guru-ct__req-row--addr .guru-ct__req-val{ padding-top:7px; font-size:17px; line-height:1.55; font-weight:500; letter-spacing:0; }

/* штамп чертежа — в правом нижнем углу рамки, линии совпадают с рамкой */
.guru-ct .guru-ct__stamp{ align-self:flex-end; display:grid; grid-template-columns:minmax(0,1fr) 58px 64px; grid-template-rows:auto auto;
  width:min(100%, 300px); margin:30px -22px -1px 0; border:1px solid var(--guru-ct-frame); border-bottom:0; border-right:0;
  font-family:var(--guru-ct-mono); color:var(--guru-ct-ink-3); }
.guru-ct .guru-ct__stamp > span{ display:flex; align-items:center; justify-content:center; padding:5px 6px; border-left:1px solid var(--guru-ct-frame); font-size:11px; line-height:1.3; }
.guru-ct .guru-ct__stamp-name{ grid-row:1 / span 2; justify-content:flex-start !important; padding-left:12px !important; border-left:0 !important;
  font-family:'Onest',system-ui,sans-serif; font-size:12.5px !important; font-weight:700; letter-spacing:.06em; color:var(--guru-ct-ink); }
.guru-ct .guru-ct__stamp-h{ border-bottom:1px solid var(--guru-ct-frame); }
.guru-ct .guru-ct__stamp-v{ font-size:13px !important; color:var(--guru-ct-ink); }

/* ── адаптив ─────────────────────────────────────────────────────────── */
@media (max-width:1199px){
  .guru-ct .guru-ct__req-val{ font-size:20px; }
}
/* одна колонка: карточка после каналов */
@media (max-width:959px){
  .guru-ct{ padding:28px 0 88px; }
  .guru-ct__grid{ grid-template-columns:minmax(0,1fr); }
  .guru-ct__doc{ grid-column:1; grid-row:5; align-self:start; margin-top:48px; }
  .guru-ct .guru-ct__epure{ height:140px; margin-top:52px; margin-bottom:16px; }
  .guru-ct .guru-ct__ep-wide{ display:none; }
  .guru-ct::before{ height:620px; -webkit-mask-image:radial-gradient(ellipse 80% 80% at 30% 6%, #000 25%, transparent 72%); mask-image:radial-gradient(ellipse 80% 80% at 30% 6%, #000 25%, transparent 72%); }
}
@media (min-width:640px) and (max-width:959px){
  /* на планшете ОГРН и ИНН — в ряд, адрес — во всю ширину */
  .guru-ct .guru-ct__req{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:32px; }
  .guru-ct .guru-ct__req-row--addr{ grid-column:1 / -1; }
}
@media (max-width:639px){
  .guru-ct{ padding:20px 0 72px; }
  .guru-ct__wrap{ padding:0 16px; }
  .guru-ct .guru-ct__title{ margin-top:14px; font-size:clamp(48px, 15vw, 72px); letter-spacing:-.04em; }
  .guru-ct .guru-ct__sub{ margin-top:18px; }
  .guru-ct__support{ margin-top:34px; }
  .guru-ct .guru-ct__btn{ display:flex; width:100%; justify-content:space-between; min-height:56px; padding-left:20px; font-size:16.5px; }
  .guru-ct .guru-ct__btn > span:not(.guru-ct__btn-go){ flex:1 1 auto; }
  .guru-ct .guru-ct__epure{ height:112px; margin-top:44px; margin-bottom:8px; }
  .guru-ct .guru-ct__epure-wrap{ padding:0 16px; }
  .guru-ct .guru-ct__epure-tag{ left:16px; top:-20px; font-size:11px; }
  .guru-ct .guru-ct__ep-mid{ display:none; }
  .guru-ct .guru-ct__ch{ padding:22px 0 24px; }
  .guru-ct .guru-ct__ch-row{ gap:14px; margin-top:14px; align-items:flex-start; }
  .guru-ct .guru-ct__ch-main{ min-height:40px; }
  .guru-ct .guru-ct__ch-ic{ width:40px; height:40px; border-radius:12px; }
  .guru-ct .guru-ct__ch-ic svg{ width:19px; height:19px; }
  .guru-ct a.guru-ct__big{ font-size:clamp(19px, 5.6vw, 26px); }
  .guru-ct .guru-ct__doc{ margin-top:40px; padding:8px 8px 8px 16px; border-radius:14px; }
  .guru-ct .guru-ct__sheet{ padding:20px 16px 0 18px; }
  .guru-ct .guru-ct__req-val{ font-size:19px; }
  .guru-ct .guru-ct__req-row--addr .guru-ct__req-val{ font-size:16px; }
  .guru-ct .guru-ct__stamp{ width:calc(100% + 16px); margin-right:-16px; margin-top:24px; }
}
@media (max-width:359px){
  .guru-ct .guru-ct__btn{ padding-left:16px; gap:10px; font-size:15.5px; }
  .guru-ct .guru-ct__btn-go{ width:34px; height:34px; margin-left:0; }
  .guru-ct .guru-ct__ch-ic{ display:none; }
  .guru-ct .guru-ct__req-val{ font-size:18px; }
  .guru-ct .guru-ct__stamp{ grid-template-columns:minmax(0,1fr) 46px 56px; }
  .guru-ct .guru-ct__stamp-name{ padding-left:10px !important; font-size:11px !important; letter-spacing:.02em; }
}

/* ── движение ────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .guru-ct .guru-ct__ep-probe{ display:none; }
  .guru-ct .guru-ct__btn, .guru-ct .guru-ct__btn-go, .guru-ct a.guru-ct__big, .guru-ct .guru-ct__big-ic,
  .guru-ct .guru-ct__copy, .guru-ct .guru-ct__copy-txt{ transition:none; }
  .guru-ct .guru-ct__btn:hover .guru-ct__btn-go, .guru-ct a.guru-ct__big:hover .guru-ct__big-ic{ transform:none; }
}

/* ── системная темная тема без явного выбора — двойники всех dark-правил ── */
