/* ============================================================
   Профалмаз — шаблон profalmaz-v4 (04.10.2026), концепция страниц 30.09.2026.
   Собирается скриптом scripts/build-v4-css.py — править источники
   (web/video-glavnaya, web/stranicy, web/semya), не этот файл.
   ============================================================ */

/* ═══════════ шаблон v3 с боя, 04.10.2026 — prod-copy/2026-10-04/local/templates/profalmaz-v3/template_styles.css ═══════════ */
/* ============================================================
   Профалмаз — шаблон profalmaz-v3 (сентябрь 2026).
   Собирается скриптом scripts/build-v3-css.py из макета
   web/redesign-2.template.html — править макет, не этот файл.
   Классы новой главной и шапки — с префиксом v3-, чтобы не
   пересекаться с Bootstrap 4 внутренних страниц.
   ============================================================ */
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fira-sans-400-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fira-sans-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fira-sans-500-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fira-sans-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/fira-sans-700-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/fira-sans-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

:root{
  /* чернила для текста: тёмный конец фирменной синей гаммы */
  --ink:#132b54;
  /* глубокие синие для плашек: гамма шапки боевого сайта */
  --ink-2:#1a52b4;
  --ink-3:#17458f;
  /* синие боевого сайта: подвал/ссылки, шапка, полоса меню, разворот */
  --blue:#1f64d5;
  --azure:#2e73e4;
  --sky:#5190f7;
  --deep:#2167d8;
  /* красный логотипа и жёлтый тег слайдера — акценты боевого сайта */
  --red:#e31e24;
  /* акцент — красный логотипа; жёлтого в фирстиле профсоюза нет (Кирилл, 07.09) */
  --gold:#e31e24;
  --gold-2:#ffd6d7;
  /* нейтрали лазурного уклона, сняты с боевых include-блоков */
  --paper:#f3faf9;
  --white:#ffffff;
  --frost:#dfe8f4;
  --frost-2:#eef3f9;
  --slate:#5c7396;
  --slate-2:#8fa6c6;

  --shell:1240px;
  --pad:20px;
  --r:4px;

  --sans:"Fira Sans",Arial,"Helvetica Neue",Helvetica,sans-serif;
  --display:"Fira Sans","Arial Black",Arial,"Helvetica Neue",sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
}
@media (min-width:768px){ :root{ --pad:32px } }
@media (min-width:1100px){ :root{ --pad:40px } }

html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 16.5px/1.6 var(--sans);-webkit-font-smoothing:antialiased;
}
a,a:hover,a:focus{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--azure);outline-offset:3px;border-radius:2px}
/* сбросы макета — только внутри блоков v3 */
.v3-main h1,.v3-main h2,.v3-main h3,.v3-main h4,.v3-main p,
.v3-head h1,.v3-head p,.v3-foot p,.v3-drawer p,.v3-topbar p{margin:0}
.v3-main img,.v3-head img,.v3-foot img,.v3-drawer img{max-width:100%;display:block}
.v3-burger,.v3-dnav summary{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
/* внутренние страницы: заголовок и отступы */
.main{padding-top:32px;padding-bottom:40px}
.main h1{font:700 clamp(26px,3.4vw,34px)/1.15 var(--display);letter-spacing:-.015em;margin:0 0 22px;color:var(--ink)}
.main h2{font-size:20px;font-weight:700;margin:24px 0 12px}
.main h3{font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:20px 0 10px}
.main a{color:var(--blue)}
.main a:hover{text-decoration:underline}
.main .news-list-item-title,.main .news-list-item-img,.main .btn{text-decoration:none!important}
.main .btn-blue{background:var(--azure);border-color:var(--azure);box-shadow:none;color:#fff!important}
.main .btn-blue:hover{background:var(--blue)}
.main .blue{color:var(--blue)}
.news-list-item-title{color:var(--blue)}
section.main{min-height:calc(100vh - 294px);background:var(--white)} /* 10.09: внутренние страницы на белом, --paper только на главной (просьба Кирилла) */
.v3-hero-btn{display:inline-block;margin-top:22px;background:var(--white);color:var(--ink)!important;border-radius:6px;padding:12px 20px;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.v3-hero-btn:hover{background:var(--gold);color:#fff!important}
.v3-nav-list>li>a.v3-active,.v3-drawer a.v3-active{color:var(--gold-2)}
/* плашки «Главное» и «Свежий выпуск» убраны 07.09; правило на случай кеша компонентов */
.v3-lead .v3-flag,.v3-issue .v3-chip{display:none!important}

/* ─────────── новая главная и шапка (из макета) ─────────── */
.v3-shell{max-width:var(--shell);margin:0 auto;padding-inline:var(--pad)}
.v3-skip{position:absolute;left:-9999px}
.v3-skip:focus{left:12px;top:12px;z-index:99;background:var(--white);padding:10px 16px;border:2px solid var(--blue)}

/* микротипографика: подписи, даты, рубрики */
.v3-micro{
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  font-variant-numeric:tabular-nums;
}

/* грань кристалла: волосяная линия под 60°, мотив логотипа */
.v3-facets{
  background-image:repeating-linear-gradient(60deg,
    rgba(255,255,255,.055) 0 1px, transparent 1px 44px);
}

/* ─────────── шапка ─────────── */
.v3-topbar{background:var(--blue);color:#d7e5fb}
.v3-topbar .v3-shell{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.v3-topbar .v3-org{font-size:12px;letter-spacing:.03em;color:rgba(255,255,255,.75)}
.v3-topbar .v3-org a{color:rgba(255,255,255,.85)}
.v3-topbar .v3-org a:hover{color:var(--white)}
.v3-topbar .v3-topnav{display:none}
@media (min-width:900px){ .v3-topbar .v3-topnav{display:block} }
.v3-topbar .v3-topnav-list{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.v3-topbar .v3-topnav-list>li{position:relative}
/* только верхний уровень — иначе правило перебивает ссылки внутри выпадающего */
.v3-topbar .v3-topnav-list>li>a{
  display:flex;align-items:center;gap:7px;color:#eaf2fe;font-size:12.5px;letter-spacing:.04em;
  padding-block:11px
}
.v3-topbar .v3-topnav-list>li>a:hover{color:var(--white)}

/* выпадающий список тёмной полосы — тёмный, продолжение самой полосы */
.v3-topbar .v3-topnav .v3-sub{
  left:auto;right:-14px;min-width:310px;
  background:var(--ink-2);border:1px solid rgba(255,255,255,.18);
  border-top:2px solid var(--gold);
  box-shadow:0 26px 54px -22px rgba(9,35,84,.7);
}
.v3-topbar .v3-topnav .v3-sub li+li{border-top:1px solid rgba(255,255,255,.09)}
.v3-topbar .v3-topnav .v3-sub a{
  color:#dbe8fb;padding:13px 22px;font-size:13.5px;
  border-left:3px solid transparent
}
.v3-topbar .v3-topnav .v3-sub a:hover{
  background:rgba(255,255,255,.09);border-left-color:var(--gold);color:var(--white)
}

.v3-head{
  position:sticky;top:0;z-index:40;color:var(--white);
  background:var(--azure) url(/images/header-bg.svg) center/auto 100%;
  border-bottom:0;
}
/* на синей шапке видимый фокус — жёлтый, не синий */
.v3-head :focus-visible,.v3-topbar :focus-visible{outline-color:var(--gold-2)}
.v3-head .v3-shell{display:flex;align-items:center;gap:14px;min-height:72px}
@media (min-width:900px){ .v3-head .v3-shell{min-height:88px;gap:22px} }

.v3-brand{display:flex;align-items:center;gap:12px;color:var(--white);flex:none}
.v3-brand img{width:44px;height:auto}
@media (min-width:900px){ .v3-brand img{width:56px} }
.v3-brand .v3-name{font:900 22px/1 var(--display);letter-spacing:-.015em}
@media (min-width:900px){ .v3-brand .v3-name{font-size:27px} }
/* штамп прежнего логотипа: «общественная организация» над названием,
   справа за разделителем — расшифровка в три строки */
.v3-brand .v3-org{display:block;white-space:nowrap;margin-bottom:3px;color:rgba(255,255,255,.72);font-size:10px;line-height:1.2;
  letter-spacing:.14em;text-transform:uppercase;font-weight:400}
@media (min-width:900px){ .v3-brand .v3-org{font-size:11px} }
.v3-brand-sub{
  display:none;margin-left:6px;padding-left:14px;border-left:1px solid rgba(255,255,255,.4);
  color:rgba(255,255,255,.82);font-size:11px;line-height:1.35;letter-spacing:.02em;white-space:nowrap;
  align-self:center;
}
@media (min-width:600px) and (max-width:1099px){ .v3-brand-sub{display:block;font-size:12px} }
@media (min-width:1280px){ .v3-brand-sub{display:block} }

.v3-nav{display:none;margin-left:auto;align-items:center;gap:clamp(10px,1.2vw,22px)}
@media (min-width:1100px){ .v3-nav{display:flex} }
.v3-nav a{
  position:relative;color:var(--white);font-size:12px;font-weight:600;white-space:nowrap;
  letter-spacing:.05em;text-transform:uppercase;padding:6px 0;
}
.v3-nav-list{display:flex;align-items:center;gap:clamp(10px,1.2vw,22px);list-style:none;margin:0;padding:0}
.v3-nav-list>li{position:relative}
.v3-nav-list>li>a{display:flex;align-items:center;gap:6px;padding-block:14px}
.v3-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:8px;height:2px;
  background:rgba(255,255,255,.9);transition:right .32s var(--ease);
}
.v3-nav-list>li>a::after{bottom:8px}
.v3-nav a:hover::after{right:0}
.v3-chev{width:9px;height:6px;flex:none;transition:transform .25s var(--ease)}
.v3-nav-list>li:hover .v3-chev,.v3-nav-list>li:focus-within .v3-chev,
.v3-topnav li:hover .v3-chev,.v3-topnav li:focus-within .v3-chev{transform:rotate(180deg)}

/* выпадающий список — один на оба меню */
.v3-sub{
  position:absolute;top:100%;left:-20px;z-index:60;min-width:290px;
  background:var(--white);border:1px solid var(--frost);
  box-shadow:0 26px 50px -24px rgba(10,35,64,.4);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;
}
li:hover>.v3-sub,li:focus-within>.v3-sub{opacity:1;visibility:visible;transform:none}
.v3-nav-list>li:nth-last-child(-n+2)>.v3-sub{left:auto;right:-20px}
.v3-sub ul{display:block;list-style:none;margin:0;padding:8px 0}
.v3-sub li+li{border-top:1px solid var(--frost-2)}
.v3-sub a{
  display:block;padding:11px 22px;color:var(--ink);font-size:13.5px;font-weight:400;
  line-height:1.35;letter-spacing:0;text-transform:none;white-space:normal;
  border-left:3px solid transparent;transition:background .18s var(--ease),
  border-color .18s var(--ease),color .18s var(--ease)
}
.v3-sub a:hover{background:var(--frost-2);border-left-color:var(--azure);color:var(--blue)}
.v3-sub a::after{display:none}
.v3-nav .v3-icon{font-size:0;padding:0}
.v3-nav .v3-icon svg{width:18px;height:18px;stroke:rgba(255,255,255,.85)}
.v3-nav .v3-icon:hover svg{stroke:var(--white)}
.v3-nav .v3-icon::after{display:none}

.v3-burger{
  margin-left:auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.4);border-radius:var(--r);
}
@media (min-width:1100px){ .v3-burger{display:none} }
.v3-burger span{display:block;width:20px;height:2px;background:var(--white);position:relative}
.v3-burger span::before,.v3-burger span::after{
  content:"";position:absolute;left:0;width:20px;height:2px;background:var(--white);
  transition:transform .25s var(--ease),top .25s var(--ease)
}
.v3-burger span::before{top:-6px} .v3-burger span::after{top:6px}
body.v3-menu-open .v3-burger span{background:transparent}
body.v3-menu-open .v3-burger span::before{top:0;transform:rotate(45deg)}
body.v3-menu-open .v3-burger span::after{top:0;transform:rotate(-45deg)}

.v3-drawer{
  position:fixed;inset:var(--drawer-top,110px) 0 0 0;z-index:39;background:var(--white);
  padding:8px var(--pad) 40px;overflow-y:auto;
  transform:translateY(-8px);opacity:0;visibility:hidden;
  transition:opacity .24s var(--ease),transform .24s var(--ease),visibility .24s;
}
body.v3-menu-open .v3-drawer{opacity:1;transform:none;visibility:visible}
@media (min-width:1100px){ .v3-drawer{display:none} }
.v3-drawer a{
  display:block;padding:16px 0;border-bottom:1px solid var(--frost);
  color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.05em;text-transform:uppercase;
}
.v3-drawer>.v3-shell>a.v3-accent,.v3-dnav.v3-accent>summary{color:var(--blue)}
.v3-dnav{border-bottom:1px solid var(--frost)}
.v3-dnav summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 0;cursor:pointer;list-style:none;
  color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.05em;text-transform:uppercase;
}
.v3-dnav summary::-webkit-details-marker{display:none}
.v3-dnav summary .v3-chev{width:12px;height:8px;color:var(--slate)}
.v3-dnav[open] summary{color:var(--blue)}
.v3-dnav[open] summary .v3-chev{transform:rotate(180deg);color:var(--blue)}
.v3-dsub{padding:0 0 14px 14px;border-left:2px solid var(--frost);margin-bottom:12px}
.v3-dsub a{
  padding:11px 0;border-bottom:0;font-weight:400;font-size:14.5px;
  letter-spacing:0;text-transform:none;color:var(--slate);line-height:1.35
}
.v3-dsub a:first-child{color:var(--blue);font-weight:700}
.v3-dsub a:active{color:var(--blue)}

/* ─────────── герой ─────────── */
/* Кадр слайдера — широкая светлая полоса (1440×427). Тёмную вуаль на него не
   кладём: она убивает воздух. Вместо неё чернильная плашка с заголовком,
   которая на десктопе заходит на нижний левый угол кадра. */
.v3-hero{position:relative;background:var(--blue);color:var(--white)}
.v3-hero-band{position:relative;overflow:hidden;aspect-ratio:16/9;background:var(--ink-2)}
@media (min-width:700px){ .v3-hero-band{aspect-ratio:2.6/1} }
@media (min-width:1100px){ .v3-hero-band{aspect-ratio:3.37/1} }
@media (min-width:1000px){ .v3-hero-band{aspect-ratio:auto;height:clamp(430px,34vw,560px)} }
.v3-hero-band img{width:100%;height:100%;object-fit:cover;object-position:68% center}
@media (min-width:700px){ .v3-hero-band img{object-position:center} }
.v3-hero-band::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(60deg,
    rgba(31,100,213,.07) 0 1px, transparent 1px 46px);
}
.v3-hero-flag{
  position:relative;background:var(--blue);
  background-image:repeating-linear-gradient(120deg,
    rgba(255,255,255,.07) 0 1px, transparent 1px 44px);
  padding:26px var(--pad) 30px;
}
@media (min-width:1000px){
  .v3-hero .v3-shell{position:absolute;left:0;right:0;bottom:0;margin-inline:auto;pointer-events:none}
  .v3-hero-flag{
    width:min(450px,42%);padding:22px 30px 26px;pointer-events:auto;
    box-shadow:0 -18px 60px -30px rgba(9,35,84,.6);
  }
  .v3-hero-flag::before{
    content:"";position:absolute;top:0;bottom:0;right:100%;width:50vw;background:var(--blue);
  }
}
.v3-hero .v3-eyebrow{display:flex;align-items:center;gap:10px;color:#bcd7ff;margin-bottom:12px}
.v3-hero .v3-eyebrow svg{width:14px;height:16px;flex:none}
.v3-hero h1{
  font:900 clamp(24px,5.3vw,41px)/1.04 var(--display);
  letter-spacing:-.028em;text-transform:uppercase;text-wrap:balance;max-width:15ch;
}
.v3-hero .v3-rule{margin-top:clamp(18px,3vw,28px);width:80px;height:3px;background:rgba(255,255,255,.85);
  transform:skewX(-20deg)}

/* ─────────── рельс сервисов (бывшие 9 баннеров) ─────────── */
.v3-rail-wrap{position:relative;margin-top:clamp(26px,4vw,44px);z-index:2}
.v3-rail{
  border:1px solid var(--frost);background:var(--frost);
  box-shadow:0 22px 50px -30px rgba(19,60,130,.45);
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
}
/* 9 плиток + главная на две ячейки = ровные ряды на каждой ширине */
.v3-rail a.v3-is-key{grid-column:span 2}
@media (min-width:560px){
  .v3-rail{grid-template-columns:repeat(3,1fr)}
  .v3-rail a.v3-is-key{grid-column:span 1}
}
@media (min-width:1100px){
  .v3-rail{grid-template-columns:repeat(5,1fr)}
  .v3-rail a.v3-is-key{grid-column:span 2}
}
.v3-rail a{
  display:flex;align-items:center;gap:10px;min-height:66px;
  padding:14px 16px;color:var(--ink);background:var(--white);
  font-size:12.5px;font-weight:700;line-height:1.3;letter-spacing:.03em;
  text-transform:uppercase;transition:background .2s var(--ease),color .2s var(--ease);
}
.v3-rail a:hover{background:var(--frost-2);color:var(--blue)}
.v3-rail a .v3-dot{
  flex:none;width:7px;height:8px;background:var(--azure);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  transition:background .2s var(--ease)
}
.v3-rail a:hover .v3-dot{background:var(--red)}
.v3-rail a.v3-is-key{background:var(--azure);color:var(--white)}
.v3-rail a.v3-is-key:hover{background:var(--blue);color:var(--white)}
.v3-rail a.v3-is-key .v3-dot{background:var(--white)}

/* ─────────── заголовки разделов ─────────── */
.v3-sec{padding-block:clamp(56px,9vw,104px)}
.v3-sec-head{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 24px;
  margin-bottom:clamp(26px,4vw,44px)
}
.v3-sec-head .v3-kicker{display:flex;align-items:center;gap:9px;color:var(--azure);margin-bottom:12px}
.v3-sec-head .v3-kicker svg{width:13px;height:15px;flex:none}
.v3-sec-head h2{
  font:900 clamp(27px,5.4vw,44px)/1.02 var(--display);
  letter-spacing:-.025em;text-transform:uppercase
}
.v3-more{
  margin-left:auto;display:inline-flex;align-items:center;gap:10px;
  font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--blue);padding-bottom:4px;border-bottom:2px solid var(--frost);
  transition:border-color .25s var(--ease),color .25s var(--ease)
}
.v3-more:hover{border-color:var(--gold);color:var(--ink)}
@media (max-width:699px){ .v3-more{margin-left:0} }
.v3-more svg{width:22px;height:8px;stroke:currentColor}

/* ─────────── новости ─────────── */
.v3-lead{display:grid;gap:0;background:var(--white);border:1px solid var(--frost);margin-bottom:22px}
@media (min-width:900px){ .v3-lead{grid-template-columns:1.5fr 1fr;margin-bottom:30px} }
.v3-lead .v3-ph{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--frost)}
@media (min-width:900px){ .v3-lead .v3-ph{aspect-ratio:2/1} }
.v3-lead .v3-ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.v3-lead:hover .v3-ph img{transform:scale(1.04)}
.v3-lead .v3-txt{padding:clamp(22px,3.6vw,42px);display:flex;flex-direction:column;justify-content:center;gap:16px}
.v3-lead .v3-flag{
  align-self:flex-start;display:inline-flex;align-items:center;gap:8px;
  position:relative;color:#fff;padding:6px 14px 5px;z-index:1
}
.v3-lead .v3-flag::before{
  content:"";position:absolute;inset:0;background:var(--gold);z-index:-1;
  transform:skewX(-20deg);box-shadow:0 4px 4px rgba(0,0,0,.18)
}
.v3-lead h3{
  font-weight:700;font-size:clamp(20px,3vw,31px);line-height:1.16;letter-spacing:-.015em;
  text-wrap:balance;color:var(--ink)
}
.v3-lead:hover h3{color:var(--blue)}
.v3-lead .v3-date{color:var(--slate)}
.v3-lead .v3-read{
  align-self:flex-start;display:inline-flex;align-items:center;gap:10px;margin-top:6px;
  font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);
  padding-bottom:4px;border-bottom:2px solid var(--frost);transition:border-color .25s var(--ease)
}
.v3-lead:hover .v3-read{border-color:var(--gold)}
.v3-lead .v3-read svg{width:22px;height:8px;stroke:currentColor}

.v3-grid-news{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
@media (min-width:620px){ .v3-grid-news{grid-template-columns:repeat(2,1fr)} }
@media (min-width:960px){ .v3-grid-news{grid-template-columns:repeat(4,1fr)} }
.v3-card{
  background:var(--white);display:flex;flex-direction:column;
  transition:background .25s var(--ease)
}
.v3-card:hover{background:var(--frost-2)}
.v3-card .v3-ph{position:relative;overflow:hidden;aspect-ratio:5/4;background:var(--frost-2)}
.v3-card .v3-ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.v3-card:hover .v3-ph img{transform:scale(1.05)}
.v3-card .v3-txt{padding:16px 18px 20px;display:flex;flex-direction:column;gap:12px;flex:1}
.v3-card h3{
  font-weight:600;font-size:15.5px;line-height:1.32;color:var(--blue);
  letter-spacing:-.005em;text-wrap:balance
}
.v3-card:hover h3{color:var(--ink-3)}
.v3-card .v3-date{margin-top:auto;color:var(--slate-2)}
@media (max-width:619px){
  .v3-card{flex-direction:row;align-items:stretch}
  .v3-card .v3-ph{width:118px;flex:none;aspect-ratio:1}
  .v3-card .v3-txt{padding:14px 16px;gap:8px}
  .v3-card h3{font-size:14.5px;line-height:1.28}
}

/* ─────────── фотогалерея: другой ритм — мозаика с подписью на снимке ─────────── */
.v3-mosaic{display:grid;gap:12px}
.v3-tile{position:relative;display:block;overflow:hidden;background:var(--ink-3);aspect-ratio:16/10}
.v3-tile img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease),opacity .4s var(--ease);opacity:.9
}
.v3-tile:hover img{transform:scale(1.05);opacity:1}
.v3-tile .v3-cap{
  position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;
  height:100%;padding:20px;color:var(--white);gap:8px;
  background:linear-gradient(180deg,rgba(16,44,90,0) 24%,rgba(16,44,90,.55) 62%,rgba(16,44,90,.93) 100%);
  text-shadow:0 1px 12px rgba(11,33,70,.55)
}
.v3-tile .v3-cap .v3-t{font-weight:700;font-size:16px;line-height:1.3;text-wrap:balance}
.v3-tile .v3-cap .v3-d{color:#c8dcfa}
/* планшет: первый и последний альбом во всю ширину, два узких между ними */
@media (min-width:700px){
  .v3-mosaic{grid-template-columns:repeat(2,1fr);gap:14px}
  .v3-tile:nth-child(1),.v3-tile:nth-child(4){grid-column:1 / -1;aspect-ratio:21/9}
}
/* десктоп: 2fr + два столбца — крупный кадр слева, три вокруг него */
@media (min-width:1000px){
  .v3-mosaic{grid-template-columns:2fr 1fr 1fr;grid-auto-rows:230px;gap:16px}
  .v3-tile{aspect-ratio:auto}
  .v3-tile:nth-child(1){grid-column:1;grid-row:1 / span 2}
  .v3-tile:nth-child(2){grid-column:2;grid-row:1}
  .v3-tile:nth-child(3){grid-column:3;grid-row:1}
  .v3-tile:nth-child(4){grid-column:2 / span 2;grid-row:2}
  .v3-tile:nth-child(1),.v3-tile:nth-child(4){aspect-ratio:auto}
  .v3-tile:nth-child(1) .v3-cap{padding:28px}
  .v3-tile:nth-child(1) .v3-cap .v3-t{font-size:clamp(19px,2.1vw,26px)}
}

/* ─────────── «Альбатрос»: полка журнала на чернилах ─────────── */
.v3-albatros{
  background:var(--deep);color:var(--white);
  background-image:repeating-linear-gradient(120deg,
    rgba(255,255,255,.06) 0 1px, transparent 1px 52px);
}
.v3-albatros .v3-sec-head h2{color:var(--white)}
.v3-albatros .v3-sec-head .v3-kicker{color:#cfe2ff}
.v3-albatros .v3-sec-head .v3-sec-sub{color:#b9d2f7;font-size:14px;margin-top:8px;max-width:44ch}
.v3-albatros .v3-more{color:#dbe8fb;border-color:rgba(255,255,255,.28)}
.v3-albatros .v3-more:hover{color:var(--white);border-color:var(--gold)}

.v3-issue{display:grid;gap:22px}
@media (min-width:820px){ .v3-issue{grid-template-columns:minmax(0,320px) 1fr;gap:40px;align-items:center} }
@media (min-width:1100px){ .v3-issue{grid-template-columns:minmax(0,440px) 1fr;gap:64px} }
.v3-issue .v3-cover{
  position:relative;display:block;background:var(--ink-2);
  box-shadow:0 30px 60px -28px rgba(9,35,84,.85);
  border:1px solid rgba(255,255,255,.16);
}
.v3-issue .v3-cover img{width:100%;height:auto;transition:transform .6s var(--ease)}
.v3-issue .v3-cover:hover img{transform:scale(1.02)}
.v3-issue .v3-cover .v3-chip{
  position:absolute;top:-8px;left:-8px;color:#fff;
  padding:7px 14px;z-index:1
}
.v3-issue .v3-cover .v3-chip::before{
  content:"";position:absolute;inset:0;background:var(--gold);z-index:-1;
  transform:skewX(-20deg);box-shadow:0 4px 4px rgba(0,0,0,.2)
}
.v3-issue .v3-meta{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.v3-issue .v3-meta h3{
  font-weight:700;font-size:clamp(23px,3.6vw,42px);line-height:1.1;letter-spacing:-.025em;
  text-wrap:balance;color:var(--white)
}
.v3-issue .v3-meta h3 a{color:inherit}
.v3-issue .v3-meta h3 a:hover{color:var(--gold-2)}
.v3-issue .v3-btn{
  display:inline-flex;align-items:center;gap:12px;background:var(--white);color:rgba(0,0,0,.87);
  border-radius:3px;padding:14px 22px;font-size:12.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;transition:background .25s var(--ease),color .25s var(--ease)
}
.v3-issue .v3-btn:hover{background:var(--gold);color:#fff}
.v3-issue .v3-btn svg{width:22px;height:8px;stroke:currentColor}

.v3-shelf-label{
  display:flex;align-items:center;gap:14px;color:#b9d2f7;
  margin:clamp(34px,5vw,52px) 0 18px
}
.v3-shelf-label::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.22);order:1}
.v3-shelf-ctl{display:flex;gap:8px;order:2}
.v3-shelf-btn{
  width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  color:var(--white);display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);transition:background .2s var(--ease),border-color .2s var(--ease)
}
.v3-shelf-btn:hover{background:var(--white);color:var(--deep);border-color:var(--white)}
.v3-shelf-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.v3-shelf{
  display:grid;grid-auto-flow:column;grid-auto-columns:132px;gap:14px;
  overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-color:rgba(255,255,255,.3) transparent;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 88%,transparent 100%);
          mask-image:linear-gradient(90deg,#000 0,#000 88%,transparent 100%);
}
@media (min-width:700px){ .v3-shelf{grid-auto-columns:160px;gap:18px} }
.v3-shelf a{scroll-snap-align:start;color:#d7e5fb;display:flex;flex-direction:column;gap:10px}
.v3-shelf img{
  width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top center;
  border:1px solid rgba(255,255,255,.2);
  filter:saturate(.8) brightness(.94);transition:filter .3s var(--ease),transform .3s var(--ease)
}
.v3-shelf a:hover img{filter:none;transform:translateY(-4px)}
.v3-shelf .v3-t{font-size:12px;line-height:1.35}
.v3-shelf a:hover .v3-t{color:var(--white)}

/* ─────────── партнёры ─────────── */
.v3-partners{background:var(--white);border-top:1px solid var(--frost);padding-block:34px}
.v3-partners .v3-row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:26px clamp(28px,6vw,72px)
}
.v3-partners img{max-height:56px;width:auto;opacity:.72;transition:opacity .3s var(--ease)}
.v3-partners a:hover img{opacity:1}

/* ─────────── подвал: тёмные чернила, реквизиты и документы ─────────── */
.v3-foot{
  background:var(--blue);color:rgba(255,255,255,.85);padding:clamp(40px,6vw,64px) 0 28px;font-size:14.5px;line-height:1.5;
  background-image:repeating-linear-gradient(60deg, rgba(255,255,255,.06) 0 1px, transparent 1px 44px);
}
.v3-foot .v3-shell{display:grid;gap:32px}
@media (min-width:800px){ .v3-foot .v3-shell{grid-template-columns:1.5fr 1fr 1fr;gap:40px} }
.v3-foot .v3-brand{align-items:flex-start}
.v3-foot .v3-brand img{width:52px;flex:none}
.v3-foot .v3-brand .v3-name{color:var(--white);font:900 24px/1 var(--display)}
.v3-foot .v3-brand-sub{display:block;white-space:normal;max-width:300px;margin:8px 0 0;padding:0;border:0;color:rgba(255,255,255,.7);font-size:12.5px;line-height:1.45;letter-spacing:.01em}
.v3-foot .v3-org{margin-top:18px;color:rgba(255,255,255,.7);font-size:13px;max-width:360px}
.v3-foot h4{margin:0 0 14px;color:var(--white);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.v3-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.v3-foot a{color:rgba(255,255,255,.88)}
.v3-foot a:hover{color:var(--white);text-decoration:underline}
.v3-foot .v3-bottom{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:6px;padding-top:22px;border-top:1px solid rgba(255,255,255,.22)}
.v3-foot .v3-copy{font-size:13px;color:rgba(255,255,255,.6)}
@media (min-width:700px){ .v3-foot .v3-copy{margin-left:auto;text-align:right} }
.v3-foot .v3-vk{
  display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  background:rgba(255,255,255,.1);border-radius:50%;color:var(--white);
  transition:background .25s var(--ease),color .25s var(--ease)
}
.v3-foot .v3-vk:hover{background:var(--white);color:var(--blue);text-decoration:none}
.v3-foot .v3-vk svg{width:20px;height:12px;fill:currentColor}
.v3-foot .v3-max svg{width:20px;height:20px}
.v3-foot .v3-app svg{width:20px;height:20px}

/* ─────────── появление при прокрутке ─────────── */
.v3-rise{opacity:0;transform:translateY(18px)}
.v3-rise.v3-in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .v3-rise{opacity:1;transform:none}
  .v3-hero h1{animation:none}
}


/* ─────────── новости, блок v4 «Афиша» (20.09.2026) ───────────
   Задача: вертикальные афиши из соцсетей, квадраты и широкие фото живут в одной сетке.
   Приём: кадр всегда одной формы; картинка, не совпавшая с кадром по пропорциям,
   ставится целиком (contain) на размытую подложку из неё же (миниатюра 64 px, размывает браузер).
   Главная новость — на сцене: фон из размытой картинки, уходящий в синий сайта.
   Классы v3-n-*; этот файл дописывается в template_styles.css сборщиком scripts/build-v3-css.py. */

/* кадр */
.v3-n-shot{position:relative;overflow:hidden;background:var(--ink-2);isolation:isolate;display:block}
.v3-n-shot-bg{
  position:absolute;inset:-14%;z-index:-2;background:center/cover no-repeat;
  filter:blur(22px) saturate(1.3);transform:translateZ(0)
}
.v3-n-shot::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(19,43,84,.08),rgba(19,43,84,.34))
}
.v3-n-shot img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .7s var(--ease)
}
.v3-n-shot.v3-n-fit img{
  inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:contain;
  filter:drop-shadow(0 10px 22px rgba(8,22,56,.5))
}
a:hover>.v3-n-shot:not(.v3-n-fit) img{transform:scale(1.04)}
a:hover>.v3-n-shot.v3-n-fit img{transform:translateY(-4px) scale(1.015)}

/* общее для карточек */
.v3-n-card{background:var(--white);display:flex;flex-direction:column;transition:background .25s var(--ease)}
.v3-n-card:hover{background:var(--frost-2)}
.v3-n-card .v3-n-shot{aspect-ratio:4/3}
.v3-n-card .v3-n-txt{padding:16px 18px 20px;display:flex;flex-direction:column;gap:12px;flex:1}
.v3-n-card h3{
  font-weight:600;font-size:15.5px;line-height:1.32;color:var(--blue);margin:0;
  letter-spacing:-.005em;text-wrap:balance;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden
}
.v3-n-card:hover h3{color:var(--ink-3)}
.v3-n-date{margin-top:auto;color:var(--slate-2);display:flex;align-items:center;gap:9px}
.v3-n-date::before{content:"";width:14px;height:3px;background:var(--red);transform:skewX(-24deg);flex:none}
/* анонс главной новости — абзацами, как в тексте новости */
.v3-n-body{display:flex;flex-direction:column;gap:10px}
.v3-n-body p{margin:0}
.v3-n-body strong{font-weight:700}

@media (max-width:619px){
  .v3-n-card:not(.v3-n-lead){flex-direction:row;align-items:stretch}
  .v3-n-card:not(.v3-n-lead) .v3-n-shot{width:118px;flex:none;aspect-ratio:auto;min-height:118px}
  .v3-n-card:not(.v3-n-lead) .v3-n-shot.v3-n-fit img{inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
  .v3-n-card:not(.v3-n-lead) .v3-n-txt{padding:14px 16px;gap:8px}
  .v3-n-card:not(.v3-n-lead) h3{font-size:14.5px;line-height:1.28}
}

/* сцена главной новости, ниже ровные карточки 4×2 */
.v3-n-stage{
  position:relative;overflow:hidden;isolation:isolate;display:grid;color:var(--white);
  background:var(--ink-2);margin-bottom:22px
}
@media (min-width:900px){ .v3-n-stage{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);margin-bottom:30px;min-height:500px} }
.v3-n-stage-bg{position:absolute;inset:-10%;z-index:-2;background:center/cover no-repeat;filter:blur(38px) saturate(1.35)}
.v3-n-stage::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(19,43,84,.35) 0%,rgba(23,69,143,.82) 46%,rgba(26,82,180,.96) 100%)
}
.v3-n-stage .v3-n-pic{position:relative;min-height:clamp(320px,70vw,500px)}
.v3-n-stage .v3-n-pic img{
  position:absolute;inset:28px;width:calc(100% - 56px);height:calc(100% - 56px);object-fit:contain;
  filter:drop-shadow(0 18px 40px rgba(4,14,40,.6));transition:transform .7s var(--ease)
}
.v3-n-stage:hover .v3-n-pic img{transform:translateY(-6px) scale(1.012)}
.v3-n-stage .v3-n-txt{padding:clamp(24px,4vw,56px);display:flex;flex-direction:column;justify-content:center;gap:20px}
@media (min-width:900px){ .v3-n-stage .v3-n-txt{padding-left:12px} }
.v3-n-stage .v3-n-date{margin:0;color:#bcd7ff}
.v3-n-stage h3{font-weight:700;font-size:clamp(24px,3.2vw,38px);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0;color:var(--white)}
.v3-n-stage .v3-n-body{color:#d7e5fb;font-size:16px;line-height:1.55;max-width:46ch;gap:12px}
.v3-n-stage .v3-n-body strong{color:var(--white)}
.v3-n-btn{
  align-self:flex-start;display:inline-flex;align-items:center;gap:12px;margin-top:6px;
  background:var(--white);color:var(--ink);border-radius:6px;padding:13px 22px;
  font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  transition:background .25s var(--ease),color .25s var(--ease)
}
.v3-n-btn svg{width:22px;height:8px;stroke:currentColor}
.v3-n-stage:hover .v3-n-btn{background:var(--red);color:var(--white)}
.v3-n-row{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
@media (min-width:620px){ .v3-n-row{grid-template-columns:repeat(2,1fr)} }
@media (min-width:960px){ .v3-n-row{grid-template-columns:repeat(4,1fr)} }

/* список новостей (/news/ и прочие списки на шаблоне bootstrap_v4): тот же кадр вместо фона-обрезки */
a.news-list-item-img.v3-n-shot{height:217px}
a.news-list-item-img.v3-n-shot .eye-counter{z-index:1;left:10px;bottom:10px;padding:1px 8px;border-radius:10px;background:rgba(8,22,56,.55)}
a.v3-n-shot:hover:not(.v3-n-fit) img{transform:scale(1.04)}
a.v3-n-shot.v3-n-fit:hover img{transform:translateY(-3px) scale(1.015)}


/* ─────────── блок «История» (28.09.2026) ───────────
   Новости инфоблока 4 с тегом «История»: на главной — после фотогалереи, на /news/ — полосой под списком,
   все статьи — страница /istoriya/. В общем списке новостей статьи остаются как были.
   Кадр и карточки — те же, что у новостей (v3-n-*), здесь только раскладка. Классы v3-h-*;
   файл дописывается в template_styles.css сборщиком scripts/build-v3-css.py. */

.v3-hist{background:var(--white);border-top:1px solid var(--frost)}

/* главная статья: кадр сверху, текст ниже; одна статья — кадр слева, текст справа */
.v3-h-grid{display:grid;gap:clamp(22px,3vw,40px)}
@media (min-width:960px){ .v3-h-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start} }
.v3-h-lead{display:flex;flex-direction:column;background:var(--paper);transition:background .25s var(--ease)}
.v3-h-lead:hover{background:var(--frost-2)}
.v3-h-lead .v3-n-shot{aspect-ratio:16/9}
.v3-h-lead .v3-n-txt{padding:clamp(20px,2.6vw,32px);display:flex;flex-direction:column;gap:14px}
.v3-h-lead h3{
  font-weight:700;font-size:clamp(22px,2.4vw,30px);line-height:1.12;letter-spacing:-.018em;
  text-wrap:balance;margin:0;color:var(--ink)
}
.v3-h-lead:hover h3{color:var(--blue)}
.v3-h-lead .v3-n-body{color:var(--slate);font-size:15.5px;line-height:1.55;max-width:60ch}
.v3-h-lead .v3-n-body strong{color:var(--ink)}
.v3-h-read{
  align-self:flex-start;display:inline-flex;align-items:center;gap:12px;margin-top:4px;
  font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);
  padding-bottom:4px;border-bottom:2px solid var(--frost);transition:border-color .25s var(--ease)
}
.v3-h-read svg{width:22px;height:8px;stroke:currentColor}
.v3-h-lead:hover .v3-h-read{border-color:var(--red)}
@media (min-width:760px){
  .v3-h-solo{grid-template-columns:1fr}
  .v3-h-solo .v3-h-lead{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
  .v3-h-solo .v3-h-lead .v3-n-shot{aspect-ratio:auto;min-height:380px}
  .v3-h-solo .v3-h-lead .v3-n-txt{justify-content:center;padding:clamp(28px,4vw,56px)}
}

/* оглавление: остальные статьи строками */
.v3-h-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--frost)}
.v3-h-list li{border-bottom:1px solid var(--frost)}
.v3-h-list a{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:center;padding:16px 0}
.v3-h-list .v3-n-shot{aspect-ratio:4/3}
.v3-h-list .v3-n-shot.v3-n-fit img{inset:5px;width:calc(100% - 10px);height:calc(100% - 10px)}
.v3-h-list b{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  font-weight:600;font-size:16px;line-height:1.3;color:var(--ink);text-wrap:balance;transition:color .2s var(--ease)
}
.v3-h-list a:hover b{color:var(--blue)}
.v3-h-list small{display:block;margin-top:6px;color:var(--slate-2);font-size:13.5px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:619px){ .v3-h-list a{grid-template-columns:96px minmax(0,1fr);gap:14px;padding:14px 0} .v3-h-list small{display:none} }

/* вариант «Карточки»: ряд из четырёх, как карточки новостей, с первой фразой статьи */
.v3-h-cards{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
@media (min-width:620px){ .v3-h-cards{grid-template-columns:repeat(2,1fr)} }
@media (min-width:960px){ .v3-h-cards{grid-template-columns:repeat(4,1fr)} }
.v3-h-cards .v3-n-card p{margin:0;color:var(--slate);font-size:14px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:619px){ .v3-h-cards .v3-n-card p{display:none} }

/* полоса на /news/ (внутренняя страница на Bootstrap: свои отступы и заголовок) */
.v3-h-strip{background:var(--frost-2);padding:clamp(18px,2.4vw,26px);margin:clamp(32px,4vw,48px) 0 0}
.v3-h-strip-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;margin-bottom:18px}
.v3-h-strip-head .v3-kicker{display:flex;align-items:center;gap:9px;color:var(--azure);margin-bottom:6px}
.v3-h-strip-head .v3-kicker svg{width:13px;height:15px;flex:none}
.main .v3-h-strip-head h2{font:900 clamp(22px,2.6vw,28px)/1.05 var(--display);letter-spacing:-.02em;text-transform:uppercase;margin:0;color:var(--ink)}
.main .v3-h-strip .v3-more{margin-left:0;text-decoration:none}
/* ширина карточки не зависит от числа статей: одна статья — одна четверть, а не вся полоса */
.v3-h-strip-row{
  display:grid;grid-auto-flow:column;grid-auto-columns:72%;gap:14px;
  overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px
}
@media (min-width:620px){ .v3-h-strip-row{grid-auto-columns:calc((100% - 14px) / 2)} }
@media (min-width:960px){ .v3-h-strip-row{grid-auto-columns:calc((100% - 42px) / 4)} }
.v3-h-strip-row a{scroll-snap-align:start;background:var(--white);display:flex;flex-direction:column;text-decoration:none!important}
.v3-h-strip-row .v3-n-shot{aspect-ratio:4/3}
.v3-h-strip-row b{padding:12px 14px 16px;font-weight:600;font-size:15px;line-height:1.3;color:var(--blue);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.v3-h-strip-row a:hover b{color:var(--ink-3)}


/* ─────────── внутренние страницы (старый шаблон) ─────────── */


blockquote {
padding: 0 30px 0 70px;
font-style: italic;
margin: 0;
line-height: 1.5em;
border-left: 2px solid #000;
padding-left: 18px;
margin-top: 28px;
margin-bottom: 28px;
}
.gray {
    opacity: 0.6;
}
.lightgray {
    opacity: 0.32;
}
.font-12 {
    font-size: 12px;
}
.font-20 {
    font-size: 20px;
}
.font-24 {
    font-size: 24px;
}
.font-32 {
    font-size: 32px;
}
.strong {
    font-weight: 700;
}
.inset {
    max-width: 100%;
    height: auto;
}
.btn-white,
.btn-white:hover,
.btn-white:focus {
    color: #01222f;
    background-color: #ffffff;
    border-color: #ffffff;
    font-weight: 500;
}
.btn-wb,
.btn-wb:hover,
.btn-wb:focus {
    color: #ffffff;
    background-color: transparent;
    border-color: transparent;
    box-shadow: none;
    font-weight: 500;
}
.btn-white-border,
.btn-white-border:hover,
.btn-white-border:focus {
    color: #ffffff;
    background-color: transparent;
    border-color: #ffffff;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18);
}
.btn-blue,
.btn-blue:hover,
.btn-blue:focus {
    color: #ffffff;
    background-color: #00a0e6;
    border-color: #ffffff;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18);
}
.white-bg {
    background: #ffffff;
}
.white {
    color: #ffffff;
}
.white hr {
    border-top: 1px solid rgba(255,255,255,.1);
}
.bx-sls .bx-ui-sls-container {
    min-height: 33px;
}
.bx-sls .dropdown-item-text,
.bx-sls .dropdown-item {
    padding: 0 !important;
}
.blue {
    color: #3690AA;
}

ul.menu, .menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.socnet {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-left: -4px;
    margin-right: -4px;
}
.socnet > a {
    display: inline-block;
    background-color: #3b5998;
    width: 32px;
    height: 32px;
    border-radius: 18px;
    color: #fff !important;
    text-align: center;
    line-height: 30px;
    margin: 4px;
}
.socnet > a.m {
    background-color: #3b5998;
}
.socnet > a.f {
    background-color: #3b5998;
}
.socnet > a.v {
    background-color: #4c6c91;
}
.socnet > a.o {
    background-color: #f68634;
}
.socnet > a.t {
    background-color: #55acee;
}
.socnet > a.i {
    background: #d6249f;
    background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%,#d6249f 60%,#285AEB 90%);
}
.socnet > a.tg {background-color: #0088cc;}
.socnet > a.y {background-color: #ff0000;}
.socnet > a.l {background-color: #0077b5;}
.socnet > a.p {background-color: #bd081c;}
.socnet > a.r {background-color: #ff4500;}
.socnet > a.w {background-color: #25D366;}
footer .socnet {
    justify-content: flex-end;
}

.slick-dots {
    position: absolute;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    bottom: -5px;
    list-style: none;
    padding: 0;
}
.slick-dots > li > button {
    text-indent: -9999px;
    background: rgba(255,255,255,0.5);
    width: 10px;
    border: none;
    margin: 0 5px;
    height: 10px;
    border-radius: 10px;
    font-size: 0;
    display: block;
    padding: 0;
    cursor: pointer;
    box-shadow: 0 0 3px rgba(0,0,0,0.5);
}
.slick-dots > li.slick-active > button {
    background: #ffffff;
}
.slick-prev.slick-arrow,
.slick-next.slick-arrow {
    position: absolute;
    top: 50%;
    background: #ffffff;
    height: 48px;
    width: 48px;
    margin-top: -24px;
    border: none;
    z-index: 9;
    text-indent: -9999px;
    cursor: pointer;
    border-radius: 30px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.24);
    outline: none !important;
}
.slick-prev.slick-arrow {
    left: -30px;
}
.slick-next.slick-arrow {
    right: -30px;
}
.slick-prev.slick-arrow:after,
.slick-next.slick-arrow:after {
    content: '';
    display: block;
    border-left: 1px solid;
    border-top: 1px solid;
    width: 15px;
    height: 15px;
    position: absolute;
    top: 18px;
    left: 15px;
}
.slick-prev.slick-arrow:after {
    transform: rotate(-45deg);
    left: 18px;
}
.slick-next.slick-arrow:after {
    transform: rotate(135deg);
}
.slick-vertical .slick-arrow {
    background: no-repeat url(/images/slider-arrows-v.png) 0 center transparent;
    width: 60px;
    height: 60px;
    left: 50%;
    top: auto;
    right: auto;
    margin: 0 0 0 -30px;
}
.slick-vertical .slick-prev.slick-arrow {
    top: -17px;
    background-position: center top;
}
.slick-vertical .slick-next.slick-arrow {
    bottom: -44px;
    background-position: center bottom;
}

.main-slider .slick-prev.slick-arrow,
.main-slider .slick-next.slick-arrow {
    background: no-repeat url(/images/main-slider-arrows.png) left center / auto 100%;
    box-shadow: none;
}
.main-slider .slick-prev.slick-arrow {
    left: 30px;
}
.main-slider .slick-next.slick-arrow {
    right: 30px;
    background-position: right center;
}
.main-slider .slick-arrow:after {
    display: none !important;
}

.bx-breadcrumb {
    margin-bottom: 15px;
    display: flex;
    font-size: 14px;
    opacity: 0.6;
}
.bx-breadcrumb .fa {
    margin: 0 5px 0 7px;
}

.main {
    padding-top: 32px;
    padding-bottom: 32px;
}

/*******************************************/
.news-list-item {
    background: #ffffff;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    position: relative;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
}
.news-list-item:hover {
    -moz-transform:  translate(0, -46px);
    -webkit-transform:  translate(0, -46px);
    -o-transform:  translate(0, -46px);
    -ms-transform:  translate(0, -46px);
    transform:  translate(0, -46px);
}
.news-list-item-img {
    height: 217px;
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    display: block;
    position: relative;
}
.news-list-item-img > .eye-counter {
    position: absolute;
    left: 18px;
    bottom: 12px;
    font-size: 12px;
    line-height: 16px;
    color: #FFFFFF;
}
.news-list-item-body {
    padding: 24px 18px;
    border: 1px solid #D6D6D6;
    flex-grow: 1;
}
.news-list-item-title {
    font-weight: 500;
    font-size: 18px;
    color: #318299;
}
.news-list-item-text {
    margin-top: 12px;
    font-size: 14px;
    line-height: 18px;
    color: rgba(0, 0, 0, 0.54);
}
.news-list-item-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 18px;
    border: 1px solid #D6D6D6;
    border-top: none;
    height: 46px;
    font-size: 12px;
    line-height: 16px;
    color: rgba(0, 0, 0, 0.32);
    position: absolute;
    bottom: -46px;
    left: 0;
    right: 0;
    background: #fff;
}
.news-list-item-area {
    margin-bottom: 24px;
    overflow: hidden;
}

.news-detail-title {
    font-weight: 500;
    font-size: 32px;
    margin-bottom: 24px;
}
.news-detail-text {
    color: rgba(0, 0, 0, 0.54);
}
.news-detail-morephoto > img {
    margin: 0 auto 24px;
    display: block;
    max-width: 100%;
}
.news-detail-text img {
    max-width: 100%;
    height: auto;
}
.detail-slider {
    margin: 0 -5px;
}
.news-detail-morephoto.slick-slide {
    padding: 0 5px;
}
.news-detail-morephoto.slick-slide > img {
    margin: 0;
}

.detail-review-area {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.cool-input {
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 0.5em;
    width: 100%;
    position: relative;

    font-size: 16px;
}

.cool-input__input {
    box-sizing: border-box;
    border: none;
    border-radius: 0.5em;
    background: none;
    width: 100%;
    padding: 1.2em 1em 0.8em;
    position: relative;
    z-index: 2;
    font-size: 1em;
}
.cool-input__input:focus {
    outline: none;
}

.cool-input__placeholder {
    box-sizing: border-box;
    border: none;
    background: none;
    width: 100%;
    position: absolute;
    z-index: 1;
    padding-left: 1em;
    left:0;
    top: 50%;
    line-height: 1em;
    margin-top: -0.5em;
    color: #777;
    transition: all 0.2s ease;
}

.cool-input__input_filled + .cool-input__placeholder,
.cool-input__input:focus + .cool-input__placeholder {
    font-size: 0.8em;
    top: 0;
    margin-top: 0.1em;
}
.reviews-reply-field label {
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
    color: #ADADAD;
}
.reviews-reply-field input {
    background: transparent;
    border: none;
    border-bottom: 1px solid #ADADAD;
}
.reviews-reply-field input:focus {
    border-bottom: 1px solid #3690AA;
}

.banners-list-item img {
    max-width: 100%;
}

.form-group.pa-style {

}
.control-label.pa-style {
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
    color: #ADADAD;
}
.form-control.pa-style {
    background: transparent;
    border: none;
    border-bottom: 1px solid #ADADAD;
    border-radius: 0;
    outline: none !important;
    box-shadow: none !important;
    padding: 0;
    height: auto;
}
.form-group.pa-style small.pa-style {
    letter-spacing: -2px;
    text-shadow: 0 0 1px #fff;
}

section.main {
    min-height: calc( 100vh - 294px );
}
.bv-form .help-block {
    color: red;
}
.underline {
    text-decoration: underline;
}

/* ═══════════ первый экран: ролик — web/video-glavnaya/video.css ═══════════ */
/* ─────────── первый экран: видео (28.09.2026) ─────────── */
/* Ролик 16:9 показываем целиком: героям ролика ничего не срезано и плашка их не закрывает. Вид — HERO_LAYOUT:
   right (по умолчанию) — полоса прежней высоты, ролик справа на всю её высоту и мягко растворяется влево в размытый
     стоп-кадр того же ролика, плашка лежит на размытом поле (только размытие, без синего — выбор Кирилла 28.09);
   center — то же без плашки: ролик по центру, размытое поле с обеих сторон;
   card — без плашки: синяя полоса со штриховкой продолжает шапку, ролик карточкой по центру сетки, низ карточки
     выходит на светлый фон страницы, по бокам на синем — контуры шестигранника знака.
   Телефон и планшет: right и center — полоса 16:9 во всю ширину (плашка у right — под ней), card — карточка в сетке. */
.v3-hv-main{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;object-fit:cover}
.v3-hv-main::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}

/* полоса: right и center */
.v3-hero--video .v3-hero-band{aspect-ratio:16/9;isolation:isolate}
.v3-hero--video .v3-hero-band::after{z-index:3}
.v3-hero-band img.v3-hv-fill{display:none}
@media (min-width:1000px){
  .v3-hero--video .v3-hero-band{aspect-ratio:auto}
  /* размытый стоп-кадр с запасом 140 px за края полосы: прозрачный край размытия уходит за полосу;
     max-width:none — общее img{max-width:100%} сайта иначе обрезает слой и справа проступает синий фон */
  .v3-hero-band img.v3-hv-fill{
    display:block;position:absolute;inset:-140px;z-index:0;width:calc(100% + 280px);height:calc(100% + 280px);max-width:none;
    object-fit:cover;filter:blur(34px) saturate(1.2) brightness(.86)
  }
  .v3-hero--right .v3-hv-main{
    left:auto;right:max(0px,calc(50vw - 960px));width:auto;height:100%;aspect-ratio:16/9;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 16%);mask-image:linear-gradient(90deg,transparent,#000 16%)
  }
  .v3-hero--center .v3-hv-main{
    left:50%;right:auto;transform:translateX(-50%);width:auto;height:100%;aspect-ratio:16/9;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent)
  }
}
/* «по центру» с плашкой (HERO_FLAG = Y): плашка слева накрывает левую треть ролика; на 1000–1199 px ролик на 24 px
   правее центра — иначе край плашки доходит до мальчика (он ходит по 40–70 % ширины кадра) */
@media (min-width:1000px) and (max-width:1199px){
  .v3-hero--center.v3-hero--flag .v3-hv-main{margin-left:24px}
}
/* шире 1920 ролик справа стоит у правого края кадра 1920 — справа от него тоже размытое поле */
@media (min-width:1940px){
  .v3-hero--right .v3-hv-main{
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 16%,#000 90%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 16%,#000 90%,transparent)
  }
}

/* в рамке: card */
/* ширина карточки на мониторе: до 1000 px, не больше двух третей экрана и так, чтобы под ней была видна полоса сервисов */
.v3-hero.v3-hero--card{background:none;padding-top:clamp(18px,3.2vw,44px);isolation:isolate;
  --hv-w:clamp(560px,min(66vw,calc((100vh - 290px) * 1.7778)),1000px)}
.v3-hero--card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:64%;z-index:-1;
  background:repeating-linear-gradient(120deg,rgba(255,255,255,.07) 0 1px,transparent 1px 44px),var(--blue);
}
.v3-hero.v3-hero--card .v3-shell{position:relative;left:auto;right:auto;bottom:auto;pointer-events:auto}
.v3-hv-card{
  position:relative;max-width:1000px;margin-inline:auto;aspect-ratio:16/9;overflow:hidden;
  border-radius:var(--r);background:var(--ink-2);
  box-shadow:0 36px 70px -36px rgba(9,35,84,.62),0 0 0 1px rgba(255,255,255,.14);
}
@media (min-width:1000px){
  .v3-hv-card{max-width:var(--hv-w)}
  /* контуры шестигранника знака по бокам карточки — большой слева, поменьше справа; стоят от краёв карточки */
  .v3-hero--card::after{
    content:"";position:absolute;left:0;right:0;top:0;height:64%;z-index:-1;pointer-events:none;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 22'%3E%3Cpath d='M10 1 19 6v10l-9 5-9-5V6z' fill='none' stroke='%23fff' stroke-opacity='.16' stroke-width='1.4' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")
        calc(50% - var(--hv-w) / 2 - 190px) 24px / 300px 330px no-repeat,
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 22'%3E%3Cpath d='M10 1 19 6v10l-9 5-9-5V6z' fill='none' stroke='%23fff' stroke-opacity='.12' stroke-width='1.4' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")
        calc(50% + var(--hv-w) / 2 + 145px) 150px / 190px 209px no-repeat;
  }
}

/* надпись над роликом (HERO_GREET, «В рамке»): мелкая строка — «Тег» кадра, крупная — название
   («Здравствуйте, вас приветствует семья» / «ПРОФАЛМАЗовых»). type — печатается по буквам шрифтом сайта,
   hand — пишется от руки: рукописный Caveat (OFL), файлы в fonts/ рядом со стилями, без Google */
@font-face{font-family:"Caveat";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("fonts/caveat-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Caveat";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("fonts/caveat-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* .v3-hero h1 сайта (заглавные, 15 символов в строку) надписи не подходит — перебиваем */
.v3-hero h1.v3-hv-greet{margin:0 0 clamp(14px,2vw,26px);max-width:none;text-transform:none;letter-spacing:normal;
  text-align:center;color:var(--white)}
.v3-hv-greet i{font-style:normal}
.v3-hv-greet-small{display:block;width:fit-content;max-width:100%;margin-inline:auto;
  font:500 clamp(15px,1.45vw,21px)/1.35 var(--sans);color:#dbe8ff;letter-spacing:.01em}
.v3-hv-greet-big{display:block;width:fit-content;max-width:100%;margin:.14em auto 0;
  font:900 clamp(34px,4.4vw,62px)/1 var(--display);letter-spacing:-.02em}
.v3-hv-greet[data-greet="hand"] .v3-hv-greet-small{font:500 clamp(21px,2.1vw,31px)/1.15 "Caveat",cursive;color:var(--white);letter-spacing:0}
.v3-hv-greet[data-greet="hand"] .v3-hv-greet-big{font:700 clamp(46px,5.6vw,84px)/.95 "Caveat",cursive;letter-spacing:0}
/* печатается: буквы стоят на своих местах невидимыми и проявляются по одной; курсор — пустой строчный элемент
   (не inline-block: тот даёт место для переноса посреди слова, и строка прыгает) */
.v3-hv-greet.is-type i{opacity:0}
.v3-hv-greet.is-type i.on{opacity:1}
.v3-hv-caret{display:inline;position:relative}
.v3-hv-caret::after{content:"";position:absolute;left:.06em;bottom:.08em;width:max(2px,.07em);height:1em;background:currentColor;
  animation:v3-hv-blink 1s steps(1) infinite}
@keyframes v3-hv-blink{50%{opacity:0}}
/* от руки: строки проявляются слева направо мягким краем, вторая — после первой */
.v3-hv-greet.is-hand .v3-hv-greet-small,.v3-hv-greet.is-hand .v3-hv-greet-big{
  -webkit-mask-image:linear-gradient(90deg,#000 44%,transparent 56%);mask-image:linear-gradient(90deg,#000 44%,transparent 56%);
  -webkit-mask-size:240% 100%;mask-size:240% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:v3-hv-write 1.9s cubic-bezier(.45,.05,.55,.95) both}
.v3-hv-greet.is-hand .v3-hv-greet-big{animation-duration:1.7s;animation-delay:1.75s}
@keyframes v3-hv-write{from{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}
/* карточка под надписью — поменьше, чтобы под ней оставалась видна полоса сервисов */
@media (min-width:1000px){
  .v3-hero.v3-hero--greet{--hv-w:clamp(520px,min(60vw,calc((100vh - 420px) * 1.7778)),900px)}
}

/* надпись в небольшой плашке (плашка + HERO_GREET): вместо большой плашки с заголовком — компактная, по размеру текста,
   без синего продолжения до края экрана; на телефоне и планшете — синяя полоса под роликом, как была плашка */
.v3-hero-flag--greet{padding:16px var(--pad) 18px}
.v3-hero-flag--greet h1.v3-hv-greet{margin:0;text-align:left}
.v3-hero-flag--greet .v3-hv-greet-small,.v3-hero-flag--greet .v3-hv-greet-big{margin-inline:0}
.v3-hero-flag--greet .v3-hv-greet .v3-hv-greet-small{font-size:clamp(14px,1.05vw,16px)}
.v3-hero-flag--greet .v3-hv-greet .v3-hv-greet-big{font-size:clamp(28px,2.4vw,40px);margin-top:.12em}
.v3-hero-flag--greet .v3-hv-greet[data-greet="hand"] .v3-hv-greet-small{font-size:clamp(19px,1.5vw,24px)}
.v3-hero-flag--greet .v3-hv-greet[data-greet="hand"] .v3-hv-greet-big{font-size:clamp(38px,3.2vw,54px);margin-top:.02em}
@media (min-width:1000px){
  .v3-hero-flag.v3-hero-flag--greet{width:fit-content;max-width:min(480px,44%);padding:16px 26px 18px}
  .v3-hero-flag.v3-hero-flag--greet::before{display:none}
}

/* ═══════════ первый экран: надпись на ролике — web/stranicy/nadpis.css ═══════════ */
/* ─────────── первый экран: надпись прямо на ролике (письмо Горуна 30.09.2026) ───────────
   HERO_LAYOUT = center без плашки + HERO_GREET_POS = tl | bl | tr: ролик по центру, по бокам размытие, надпись стоит
   на ролике у края сетки сайта (1240 px) — слева вверху, слева внизу или справа вверху. Плашки нет: читаемость даёт
   мягкая тень от края полосы и тень букв. HERO_GREET = mix — «ПРОФАЛМАЗ» печатными (шрифт сайта), «овых» от руки
   (Caveat из video.css, свой файл шрифта). Стили кладутся в template_styles.css после video.css. */
.v3-hv-over{position:absolute;inset:0;z-index:4;pointer-events:none}
.v3-hv-over::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,20,46,.5) 0,rgba(7,20,46,.18) 34%,rgba(7,20,46,0) 58%)}
.v3-hv-over--bl::before{background:linear-gradient(0deg,rgba(7,20,46,.55) 0,rgba(7,20,46,.2) 34%,rgba(7,20,46,0) 60%)}
.v3-hv-over-in{position:relative;box-sizing:border-box;height:100%;max-width:var(--shell);margin:0 auto;
  padding:clamp(12px,2.2vw,34px) var(--pad);display:flex;align-items:flex-start;justify-content:flex-start}
.v3-hv-over--bl .v3-hv-over-in{align-items:flex-end}
.v3-hv-over--tr .v3-hv-over-in{justify-content:flex-end}

.v3-hero .v3-hv-over h1.v3-hv-greet{margin:0;max-width:min(560px,100%);text-align:left;
  text-shadow:0 1px 2px rgba(5,16,38,.45),0 4px 22px rgba(5,16,38,.5)}
.v3-hv-over--tr h1.v3-hv-greet{text-align:right}
.v3-hv-over .v3-hv-greet-small,.v3-hv-over .v3-hv-greet-big{margin-inline:0}
.v3-hv-over--tr .v3-hv-greet-small,.v3-hv-over--tr .v3-hv-greet-big{margin-left:auto}
.v3-hv-over .v3-hv-greet .v3-hv-greet-small{font:500 clamp(13px,1.35vw,21px)/1.3 var(--sans);color:var(--white);letter-spacing:.005em}
.v3-hv-over .v3-hv-greet .v3-hv-greet-big{margin-top:.1em;font:900 clamp(27px,3.7vw,54px)/1 var(--display);letter-spacing:-.02em;
  white-space:nowrap}
/* «овых» от руки: рукописные строчные мельче заглавных — крупнее кегль, на общей линии букв */
.v3-hv-print{letter-spacing:-.02em}
.v3-hv-hand{display:inline-block;margin-left:-.02em;font:700 1.36em/.7 "Caveat",cursive;letter-spacing:0;transform:rotate(-2deg);
  transform-origin:0 70%}
@media (min-width:1000px){
  .v3-hv-over .v3-hv-greet .v3-hv-greet-big{margin-top:.06em}
}

/* ═══════════ внутренние страницы — web/stranicy/stranicy.css ═══════════ */
/* ─────────── внутренние страницы v3 (30.09.2026) ───────────
   Решение заказчика 30.09: ширина 1240 px, как на главной; широкой сетки 1680 px нет. Страницы — в стиле новой главной:
   крошки, заголовок с надзаголовком, меню раздела (слева или строкой кнопок), содержимое — одной колонкой.
   Кирилл 30.09: колонки блоков справа и «липких» колонок нет ни на одной странице; подзаголовок — в одну строку;
   новость и альбом — одна колонка без крошек, рубрики, анонса и «Все новости».
   Классы v3-p-* — на сайте рядом Bootstrap 4 внутренних страниц (у него свои w-25, w-100…), поэтому префикс.
   Новости, новость и охрана труда — разметка, принятая 26.09 (была w-*), здесь её раскладка для 1240 px.
   Правило: ширина идёт на колонки, а не на длину строки — абзацы не шире ~70 знаков. */

.v3-p-hex{display:inline-block;flex:none;width:7px;height:8px;background:var(--azure);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.v3-p-meta{font-size:13px;color:var(--slate);font-variant-numeric:tabular-nums}
.v3-p-ico{width:17px;height:17px;flex:none;color:var(--azure)}
/* заголовки карточек новостей: внутри .main шаблон делает h3 капсом — возвращаем как на главной */
.main .v3-n-card h3,.main .v3-n-stage h3{text-transform:none}
.main .v3-n-card h3{letter-spacing:-.005em}
.main .v3-n-stage h3{letter-spacing:-.02em}

.v3-p,.v3-p-page{padding:0;background:var(--white)}
.v3-p-shell{box-sizing:border-box;max-width:var(--shell);margin:0 auto;padding:40px var(--pad) 96px}

/* ─────────── раскладки ─────────── */
.v3-p-grid{display:grid;gap:26px;grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "nav" "main"}
.v3-p-head{grid-area:head}
.v3-p-navcol{grid-area:nav;display:grid;gap:26px;align-content:start}
.v3-p-main{grid-area:main;min-width:0}
/* одна колонка (отдых, охрана труда, вступить, обратная связь, контакты): вкладки раздела строкой над содержимым */
.v3-p-grid-1{grid-template-areas:"head" "nav" "main"}
.v3-p-grid-1.v3-p-nonav{grid-template-areas:"head" "main"}
/* меню раздела слева (новости, о профсоюзе) — с 1200 px; не «липнет» */
@media (min-width:1200px){
  .v3-p-grid-2{grid-template-columns:230px minmax(0,1fr);column-gap:56px;row-gap:26px;grid-template-areas:"head head" "nav main"}
  .v3-p-grid-2 .v3-p-navcol{align-self:start}
}
@media (max-width:1199px){ .v3-p-grid-2 .v3-p-navcol .v3-p-cta{display:none} }

/* ─────────── заголовок страницы — один на все страницы ───────────
   Кирилл 30.09: заголовки и крошки не «скачут» от страницы к странице. Крошек и надзаголовков нет нигде; заголовок
   одного размера всегда в одном месте — у левого края сетки сразу под шапкой сайта (и там, где меню раздела слева);
   под ним одна строка — подзаголовок, у новости и альбома — дата и «Поделиться». */
.main .v3-p-head h1{display:block;font:700 clamp(28px,2.6vw,36px)/1.15 var(--display);letter-spacing:-.02em;margin:0;color:var(--ink);
  text-transform:none;text-wrap:balance}   /* display — стиль news.detail на сайте прячет h1 */
.v3-p-lead{font-size:19px;line-height:1.5;color:#2c4470;margin:14px 0 0}   /* подзаголовок — в одну строку: текст короткий, ширину не режем */
.v3-p-head-wide{margin-bottom:26px}   /* как отступ сетки после шапки на остальных страницах */
.v3-p-note{font-size:14.5px;line-height:1.5;color:var(--slate);margin:16px 0 0}

/* ─────────── меню раздела: телефон и планшет — строка кнопок; слева колонкой — в раскладке 2 ─────────── */
.v3-p-nav{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
.v3-p-nav::-webkit-scrollbar{display:none}
.v3-p-nav > .v3-micro{display:none}
.main .v3-p-nav a{flex:none;display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--frost);
  color:var(--ink);font-size:14.5px;font-weight:500;line-height:1.3;white-space:nowrap;text-decoration:none}
.main .v3-p-nav a:hover{border-color:var(--azure);text-decoration:none}
.main .v3-p-nav a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.v3-p-nav a[aria-current] .v3-p-hex{background:var(--red)}
@media (min-width:1000px){ .v3-p-nav{margin:0;padding:0;flex-wrap:wrap;overflow:visible} }
.v3-p-follow{display:none}
@media (min-width:1200px){
  .v3-p-grid-2 .v3-p-nav{flex-direction:column;gap:0;border-top:3px solid var(--blue)}
  .v3-p-grid-2 .v3-p-nav > .v3-micro{display:block;color:var(--slate);padding:18px 0 8px}
  .main .v3-p-grid-2 .v3-p-nav a{border:0;border-bottom:1px solid var(--frost);padding:13px 2px;white-space:normal;font-size:15.5px}
  .main .v3-p-grid-2 .v3-p-nav a:hover{color:var(--blue)}
  .main .v3-p-grid-2 .v3-p-nav a[aria-current]{background:none;color:var(--blue);font-weight:700}
  .v3-p-follow{display:grid;gap:0;border-top:1px solid var(--frost)}
  .v3-p-follow .v3-micro{color:var(--slate);padding:18px 0 8px}
  .main .v3-p-follow a{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid var(--frost);color:var(--ink);font-weight:500;text-decoration:none}
  .main .v3-p-follow a:hover{color:var(--blue)}
}

/* ─────────── заголовки разделов внутри страницы ─────────── */
.main :is(.v3-p-main,.v3-p-two > div) > h2,.main .v3-p-h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-size:clamp(21px,1.8vw,25px);line-height:1.2;
  font-weight:700;letter-spacing:-.012em;margin:44px 0 16px;color:var(--ink);text-transform:none}
.main .v3-p-main > h2:first-child{margin-top:4px}   /* только свои заголовки: полосу «История» стилизует шаблон */
.v3-p-main h2 small,.v3-p-h2 small{font-size:14px;font-weight:500;letter-spacing:0;color:var(--slate)}

/* ─────────── новости: главная новость + карточки в три колонки ─────────── */
.v3-p-main .v3-n-stage{margin-bottom:24px}
@media (min-width:620px){ .v3-p-row4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1100px){ .v3-p-row4{grid-template-columns:repeat(3,minmax(0,1fr))} }
/* карточек девять: в две колонки девятая лишняя — последний ряд без дырки */
@media (max-width:1099px){ .v3-p-row4 > :nth-child(9){display:none} }

.v3-p-pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:34px}
.v3-p-pager a,.v3-p-pager span{display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--frost);
  font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;text-decoration:none}
.main .v3-p-pager a{color:var(--ink)}
.main .v3-p-pager a:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.v3-p-pager span[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.v3-p-pager .v3-p-gap{border-color:transparent;color:var(--slate)}
.main .v3-p-pager .v3-p-next{display:flex;gap:10px;margin-left:8px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--azure);border-color:var(--azure);color:var(--white)}
.v3-p-pager .v3-p-next svg{width:22px;height:8px;stroke:currentColor}
@media (max-width:575px){ .v3-p-pager{flex-wrap:nowrap} .v3-p-pager .v3-p-far{display:none} }

/* ─────────── охрана труда: памятки, отчёты, документы ─────────── */
.v3-p-memo{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost);box-shadow:0 22px 50px -36px rgba(19,60,130,.45)}
@media (min-width:640px){ .v3-p-memo{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1100px){ .v3-p-memo{grid-template-columns:repeat(3,minmax(0,1fr))} }
.main .v3-p-memo-item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;row-gap:6px;align-items:start;
  align-content:start;
  background:var(--white);padding:18px 18px 16px;color:var(--ink);text-decoration:none;transition:background .25s var(--ease)}
.main .v3-p-memo-item:hover{background:var(--frost-2);text-decoration:none}
.v3-p-num{grid-row:span 2;display:grid;place-items:center;width:40px;height:46px;background:var(--blue);color:var(--white);font-weight:700;font-size:17px;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.v3-p-memo-item b{grid-column:2;grid-row:2;font-size:16px;line-height:1.3;font-weight:700;text-wrap:balance}
.v3-p-memo-item .v3-p-meta{grid-column:2;grid-row:1;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.v3-p-years{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost);grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:1200px){ .v3-p-years{grid-template-columns:repeat(9,minmax(0,1fr))} }
.main .v3-p-years a{display:flex;flex-direction:column;gap:6px;background:var(--white);padding:14px 12px 12px;color:var(--ink);
  text-decoration:none;transition:background .25s var(--ease)}
.main .v3-p-years a:hover{background:var(--frost-2);text-decoration:none}
.v3-p-years b{font-size:24px;line-height:1;font-weight:700;color:var(--blue);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.v3-p-years a:first-child{background:var(--azure)}
.v3-p-years a:first-child b,.v3-p-years a:first-child .v3-p-meta{color:var(--white)}
.main .v3-p-years a:first-child:hover{background:var(--blue)}
.v3-p-two{display:grid;gap:0 40px}
.main .v3-p-two h2:first-child{margin-top:44px}
/* две колонки документов: заголовок в одну строку, счётчик под ним — списки начинаются на одной линии */
.main .v3-p-two > div > h2{flex-direction:column;align-items:flex-start;gap:4px;font-size:19px;white-space:nowrap}
@media (min-width:1100px){ .v3-p-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
.v3-p-docs{border-top:1px solid var(--frost)}
.main .v3-p-doc{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--frost);color:var(--ink);text-decoration:none}
.main .v3-p-doc:hover{text-decoration:none;color:var(--blue)}
.v3-p-ext{flex:none;display:grid;place-items:center;width:46px;height:28px;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--white);
  background:var(--ink);text-transform:uppercase}
.v3-p-ext-pdf{background:var(--red)}
.v3-p-ext-docx{background:var(--azure)}
.v3-p-ext-pptx{background:var(--ink-3)}
.v3-p-ext-текст{width:auto;padding:0 8px;background:var(--frost);color:var(--ink)}
.v3-p-doc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.v3-p-doc-t b{font-size:15.5px;line-height:1.35;font-weight:500}
.v3-p-dl,.v3-p-out{flex:none;width:22px;height:22px;color:var(--slate-2)}
.v3-p-out{width:15px;height:15px}
.v3-p-doc:hover .v3-p-dl,.v3-p-doc:hover .v3-p-out{color:var(--blue)}

/* ─────────── карточка-действие (о профсоюзе: «Вступить» под меню раздела) ─────────── */
.main .v3-p-cta{display:flex;flex-direction:column;gap:8px;padding:20px 20px 18px;border:1px solid var(--frost);background:var(--white);color:var(--ink);
  text-decoration:none;transition:border-color .25s var(--ease)}
.main .v3-p-cta:hover{border-color:var(--azure);text-decoration:none}
.v3-p-cta .v3-micro{color:var(--slate)}
.v3-p-cta b{font-size:19px;line-height:1.25;font-weight:700}
.v3-p-cta span:not(.v3-micro):not(.v3-p-go){font-size:14.5px;line-height:1.45;color:var(--slate)}
.v3-p-go{display:inline-flex;align-items:center;gap:10px;margin-top:6px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.v3-p-go svg{width:22px;height:8px;stroke:currentColor}
.main .v3-p-cta-key{border:0;color:var(--white);
  background:repeating-linear-gradient(60deg,rgba(255,255,255,.06) 0 1px,transparent 1px 40px),linear-gradient(140deg,var(--azure),var(--blue));
  clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%)}
.v3-p-cta-key .v3-micro{color:#d7e5fb}
.v3-p-cta-key span:not(.v3-micro):not(.v3-p-go){color:#e3edfc!important}
.v3-p-cta-key .v3-p-go{color:var(--white)}

/* ─────────── новость и альбом: одна колонка ─────────── */
.v3-p-det{max-width:880px}
.v3-p-det-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;min-height:28px;font-size:14px;line-height:1.3;color:var(--slate)}
.v3-p-det-meta time{font-variant-numeric:tabular-nums}
.main .v3-p-det-meta a{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:500;text-decoration:none}
.main .v3-p-det-meta a:hover{color:var(--ink)}
.v3-p-vk{width:19px;height:11px;fill:currentColor}
.v3-p-art-pic{margin:0 0 30px;background:var(--ink-3)}
.v3-p-art-pic img{display:block;width:100%;height:auto}
.v3-p-art-text{font-size:18.5px;line-height:1.68;color:#23395f;max-width:70ch}
.v3-p-art-text p{margin:0 0 18px}
.v3-p-art-text strong{color:var(--ink)}
.main .v3-p-art-text h2{display:block;font-size:20px;margin:28px 0 10px;text-transform:none}
.v3-p-art-text ul{margin:0 0 18px;padding-left:1.2em}
.v3-p-art-text li{margin-bottom:6px}
.v3-p-art-text blockquote{position:relative;margin:30px 0;padding:24px 28px 22px 84px;background:var(--frost-2);color:var(--ink);font-size:19.5px;line-height:1.55;
  border:0;font-style:normal}
.v3-p-art-text blockquote::before{content:"“";position:absolute;left:24px;top:22px;width:40px;height:46px;display:grid;place-items:center;
  background:var(--blue);color:var(--white);font:700 34px/1 var(--display);padding-top:12px;box-sizing:border-box;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.v3-p-art-text blockquote p{margin:0}
@media (max-width:575px){   /* на телефоне значок цитаты — над текстом, строка не сжимается */
  .v3-p-art-text blockquote{padding:74px 20px 20px;font-size:18px}
  .v3-p-art-text blockquote::before{left:20px;top:18px}
}
.v3-p-art-text blockquote cite{display:block;margin-top:14px;font-style:normal;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--blue)}
/* фото новости и альбома: ряды всегда полные — лишнее фото в начале шире (v3-p-gal-* — остаток от деления на 3, v3-p-gal-odd — нечётное) */
.v3-p-art-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.v3-p-det .v3-p-art-text + .v3-p-art-gallery{margin-top:30px}
.v3-p-det .v3-p-art-gallery + .v3-p-art-text{margin-top:34px}
@media (max-width:759px){ .v3-p-gal-odd a:first-child{grid-column:span 2;aspect-ratio:2/1} }
@media (min-width:760px){
  .v3-p-art-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}
  .v3-p-art-gallery a{grid-column:span 2}
  .v3-p-gal-2 a:nth-child(-n+2){grid-column:span 3}
  .v3-p-gal-1 a:first-child{grid-column:span 6;aspect-ratio:2/1}
}
.v3-p-art-gallery a{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--frost)}
.v3-p-art-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.v3-p-art-gallery a:hover img{transform:scale(1.04)}

/* ─────────── о профсоюзе: люди ─────────── */
.v3-p-people{display:grid;gap:16px}
@media (min-width:640px){ .v3-p-people{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .v3-p-people{grid-template-columns:repeat(3,minmax(0,1fr))} .v3-p-people-lead{grid-template-columns:repeat(2,minmax(0,1fr))} }
.v3-p-person{display:grid;grid-template-columns:78px minmax(0,1fr);gap:16px;align-items:start;padding:16px;border:1px solid var(--frost);background:var(--white)}
.v3-p-person img{display:block;width:78px;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 15%;background:var(--frost-2)}
.v3-p-person-big{grid-template-columns:120px minmax(0,1fr);gap:22px;padding:20px;box-shadow:0 22px 50px -36px rgba(19,60,130,.45)}
.v3-p-person-big img{width:120px}
@media (max-width:639px){
  .v3-p-person-big{grid-template-columns:84px minmax(0,1fr);gap:16px;padding:16px}
  .v3-p-person-big img{width:84px}
}
.v3-p-person-t{min-width:0;display:flex;flex-direction:column;gap:6px}
.v3-p-person-t b{order:-1;font-size:16.5px;line-height:1.25;font-weight:700;color:var(--ink)}
.v3-p-person-big .v3-p-person-t b{font-size:19px}
.v3-p-pos{font-size:14px;line-height:1.35;color:var(--blue);font-weight:500;min-height:2.7em}
.v3-p-person-big .v3-p-pos{min-height:0;font-size:15px}
.v3-p-contacts{display:grid;gap:5px;margin-top:4px;font-size:13.5px;line-height:1.3}
.main .v3-p-contacts a,.v3-p-contacts span{display:flex;align-items:center;gap:8px;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.v3-p-contacts .v3-p-ico{width:15px;height:15px}

.v3-p-staff{border-top:1px solid var(--frost)}
.v3-p-staff-row{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:16px;row-gap:8px;align-items:center;padding:14px 0;
  border-bottom:1px solid var(--frost)}
.v3-p-staff-row img{grid-row:span 3;align-self:start;display:block;width:52px;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 15%;background:var(--frost-2)}
.v3-p-staff-who{display:grid;gap:2px}
.v3-p-staff-who b{font-size:16px;line-height:1.3;color:var(--ink)}
.v3-p-staff .v3-p-pos{min-height:0}
.v3-p-staff .v3-p-contacts{margin:0}
@media (min-width:760px){
  .v3-p-staff-row{grid-template-columns:52px minmax(0,1.25fr) minmax(0,.9fr) minmax(0,1fr);column-gap:20px}
  .v3-p-staff-row img{grid-row:auto}
}

/* ─────────── шаги ─────────── */
.v3-p-steps{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
.v3-p-steps li{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;row-gap:4px;align-items:start;align-content:start;
  background:var(--white);padding:16px 18px}
.v3-p-steps b{font-size:16.5px;line-height:1.3;font-weight:700;color:var(--ink)}
.v3-p-steps li > span:not(.v3-p-num){font-size:15px;line-height:1.5;color:#2c4470}
@media (min-width:700px){
  .v3-p-steps-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v3-p-steps-row li{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;align-content:start;row-gap:8px;padding:18px 18px 20px}
  .v3-p-steps-row .v3-p-num{grid-row:auto;margin-bottom:6px}
  .v3-p-steps-row b{white-space:nowrap}
  .v3-p-steps-row.v3-p-steps-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){ .v3-p-steps-row.v3-p-steps-4{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* ─────────── отдых: санатории по регионам ─────────── */
.v3-p-places{columns:1;column-gap:40px}
@media (min-width:700px){ .v3-p-places{columns:2} }
@media (min-width:1000px){ .v3-p-places{columns:3} }
.v3-p-place{break-inside:avoid;margin-bottom:26px}
.main .v3-p-place h3{margin:0 0 4px;padding-top:14px;border-top:3px solid var(--blue);font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--blue)}
.v3-p-place ul{list-style:none;margin:0;padding:0}
.v3-p-place li > a,.v3-p-place li > span{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;
  border-bottom:1px solid var(--frost);color:var(--ink);font-size:15.5px;line-height:1.35}
.main .v3-p-place li > a:hover{color:var(--blue);text-decoration:none}
.v3-p-place li > a > span{display:flex;flex-direction:column;gap:2px}
.v3-p-place small{font-size:12.5px;color:var(--slate)}

/* ─────────── детский отдых: список, полный текст положения ─────────── */
.v3-p-main > .v3-p-cards:first-child{margin-top:4px}
.v3-p-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--frost)}
.v3-p-list li{position:relative;padding:12px 4px 12px 24px;border-bottom:1px solid var(--frost);font-size:16px;line-height:1.45;color:var(--ink)}
.v3-p-list li::before{content:"";position:absolute;left:4px;top:19px;width:7px;height:8px;background:var(--azure);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.v3-p-full{margin-top:44px;border-top:1px solid var(--frost);border-bottom:1px solid var(--frost)}
.v3-p-full summary{position:relative;display:grid;gap:4px;padding:16px 44px 16px 4px;cursor:pointer;list-style:none}
.v3-p-full summary::-webkit-details-marker{display:none}
.v3-p-full summary::after{content:"+";position:absolute;right:10px;top:50%;transform:translateY(-50%);font:400 26px/1 var(--sans);color:var(--blue)}
.v3-p-full[open] summary::after{content:"−"}
.v3-p-full summary b{font-size:16.5px;line-height:1.35;color:var(--ink)}
.v3-p-full summary:hover b{color:var(--blue)}
.v3-p-full .v3-p-art-text{padding:4px 4px 26px;font-size:16px;line-height:1.6}
.main .v3-p-full h3{margin:22px 0 8px;font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink)}

/* ─────────── фотогалерея: одна сетка ───────────
   Первый альбом — 2×2 клетки, четвёртый — 2×1, остальные — по клетке. Все в одной сетке: общие линии колонок,
   отступы 16 px везде. Высота ряда — от ширины сетки (cqi), клетка 4:3; без cqi — ряд 210 px. */
.main .v3-tile,.main .v3-p-alb{text-decoration:none}
.v3-p-gal-wrap{container-type:inline-size}
.v3-p-albums{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.v3-p-alb{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:var(--ink-3)}
@media (min-width:560px){
  .v3-p-albums{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:210px;grid-auto-rows:calc((100cqi - 16px) / 2 * .75)}
  .v3-p-alb{aspect-ratio:auto}
  .v3-p-alb-big{grid-column:span 2;grid-row:span 2}
  .v3-p-alb-wide{grid-column:span 2}
}
@media (min-width:1000px){
  .v3-p-albums{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:calc((100cqi - 48px) / 4 * .75)}
}
.v3-p-alb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92;transition:transform .8s var(--ease),opacity .4s var(--ease)}
.v3-p-alb:hover img{transform:scale(1.05);opacity:1}
.v3-p-alb .v3-cap{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;height:100%;padding:16px;color:var(--white);
  background:linear-gradient(180deg,rgba(16,44,90,0) 30%,rgba(16,44,90,.6) 66%,rgba(16,44,90,.94) 100%);text-shadow:0 1px 12px rgba(11,33,70,.55)}
.v3-p-alb .v3-t{font-weight:700;font-size:15px;line-height:1.3;text-wrap:balance;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.v3-p-alb-big .v3-cap{padding:24px}
.v3-p-alb-big .v3-t{font-size:clamp(19px,2vw,27px);line-height:1.2;-webkit-line-clamp:3}
.v3-p-alb .v3-cap .v3-d{position:absolute;left:14px;top:14px;padding:5px 9px;background:rgba(255,255,255,.94);color:var(--ink);
  text-shadow:none;letter-spacing:.1em}
.v3-p-alb-big .v3-cap .v3-d{left:20px;top:20px}

/* ─────────── «Альбатрос» ─────────── */
.v3-p-issue{display:grid;gap:24px;padding:24px;color:var(--white);background:var(--deep);
  background-image:repeating-linear-gradient(120deg,rgba(255,255,255,.06) 0 1px,transparent 1px 52px)}
@media (min-width:760px){ .v3-p-issue{grid-template-columns:250px minmax(0,1fr);align-items:center;gap:48px;padding:36px 48px} }
.v3-p-issue-cover{display:block;background:var(--ink-2);border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 60px -28px rgba(9,35,84,.85)}
.v3-p-issue-cover img{display:block;width:100%;height:auto}
.v3-p-issue-t .v3-micro{color:#cfe2ff}
.main .v3-p-issue-t h2{font:700 clamp(26px,3.2vw,40px)/1.1 var(--display);letter-spacing:-.022em;color:var(--white);margin:12px 0 26px;text-transform:none}
.v3-p-btns{display:flex;flex-wrap:wrap;gap:12px}
.main .v3-p-btn{display:inline-flex;align-items:center;gap:12px;border:1px solid transparent;border-radius:3px;padding:13px 22px;background:var(--white);
  color:rgba(0,0,0,.87);font:700 12.5px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease)}
.main .v3-p-btn:hover{background:var(--red);color:var(--white);text-decoration:none}
.v3-p-btn svg{width:22px;height:8px;stroke:currentColor}
.main .v3-p-btn-line{background:transparent;color:var(--white);border-color:rgba(255,255,255,.45)}
.v3-p-btn-line .v3-p-dl{width:18px;height:18px;color:currentColor}
.v3-p-archive{border-bottom:1px solid var(--frost)}
.v3-p-yr{display:grid;gap:14px;padding:26px 0;border-top:1px solid var(--frost)}
@media (min-width:760px){ .v3-p-yr{grid-template-columns:150px minmax(0,1fr);gap:24px} }
.main .v3-p-yr h3{margin:0;font:900 34px/1 var(--display);letter-spacing:-.02em;color:var(--ink);text-transform:none}
.v3-p-covers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 14px}
@media (min-width:560px){ .v3-p-covers{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (min-width:1000px){ .v3-p-covers{grid-template-columns:repeat(6,minmax(0,1fr))} }
.main .v3-p-cover{display:flex;flex-direction:column;gap:4px;color:var(--ink);text-decoration:none}
.v3-p-cover img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top center;margin-bottom:8px;border:1px solid var(--frost);
  box-shadow:0 18px 36px -26px rgba(19,60,130,.6);transition:transform .3s var(--ease)}
.v3-p-cover:hover img{transform:translateY(-4px)}
.v3-p-cover b{font-size:15px;font-weight:700}

/* ─────────── вступить: буклет ─────────── */
.v3-p-booklet{display:grid;gap:14px}
@media (min-width:640px){ .v3-p-booklet{grid-template-columns:repeat(3,minmax(0,1fr))} }
.v3-p-booklet a{display:grid;place-items:center;aspect-ratio:1.414;padding:8px;border:1px solid var(--frost);background:var(--frost-2);
  box-shadow:0 18px 36px -28px rgba(19,60,130,.6)}
.v3-p-booklet img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}

/* ─────────── форма обращения ─────────── */
.v3-p-form{display:grid;gap:20px;max-width:880px;padding:clamp(18px,3vw,30px);border:1px solid var(--frost);background:var(--frost-2)}
.v3-p-fields{display:grid;gap:20px}
@media (min-width:700px){ .v3-p-fields{grid-template-columns:1fr 1fr} .v3-p-fields .v3-p-field:first-child{grid-column:1 / -1} }
.v3-p-field{display:grid;gap:7px;margin:0}
.v3-p-field > span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.v3-p-field i{color:var(--red);font-style:normal}
.v3-p-field input,.v3-p-field textarea{box-sizing:border-box;width:100%;border:1px solid #c9d7ea;border-radius:3px;background:var(--white);
  padding:12px 14px;font:400 16px/1.45 var(--sans);color:var(--ink)}
.v3-p-field textarea{resize:vertical;min-height:160px}
.v3-p-field input:focus,.v3-p-field textarea:focus{outline:0;border-color:var(--azure);box-shadow:0 0 0 3px rgba(46,115,228,.16)}
.v3-p-drop{display:grid;gap:4px;padding:18px;border:1.5px dashed #b6c9e4;background:var(--white);text-align:center;font-size:14px;line-height:1.45;color:var(--slate)}
.v3-p-drop b{color:var(--ink);font-size:15px}
.v3-p-drop u{color:var(--blue)}
.v3-p-check{display:flex;gap:12px;align-items:flex-start;margin:0;font-size:14px;line-height:1.5;color:#2c4470}
.v3-p-check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--azure)}
.v3-p-send{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.main .v3-p-form .v3-p-btn{background:var(--azure);color:var(--white)}
.main .v3-p-form .v3-p-btn:hover{background:var(--blue)}
.v3-p-sent{display:none;font-size:14px;color:var(--slate)}
.is-sent .v3-p-sent{display:inline}

/* ─────────── контакты ─────────── */
.v3-p-cards{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
@media (min-width:760px){ .v3-p-cards{grid-template-columns:repeat(3,minmax(0,1fr))} }
.v3-p-cc{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--white)}
.v3-p-cc .v3-p-ico{width:24px;height:24px;margin-bottom:8px}
.v3-p-cc .v3-micro{color:var(--slate)}
.v3-p-cc b{font-size:18px;line-height:1.3;white-space:nowrap}
.main .v3-p-cc b a{color:var(--ink)}
.v3-p-cc > span:last-child{font-size:14px;line-height:1.4;color:var(--slate)}
.v3-p-ymap{margin-top:22px}
.v3-p-ymap-box{min-height:420px;border:1px solid var(--frost);background:var(--frost-2)}
.v3-p-ymap-box > *{display:block}
.v3-p-net{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
@media (min-width:640px){ .v3-p-net{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .v3-p-net{grid-template-columns:repeat(4,minmax(0,1fr))} }
.main .v3-p-net a{display:flex;align-items:center;gap:10px;padding:16px;background:var(--white);color:var(--ink);font-weight:500;text-decoration:none;
  transition:background .25s var(--ease)}
.main .v3-p-net a:hover{background:var(--frost-2);color:var(--blue);text-decoration:none}
.v3-p-whom{display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
.main .v3-p-whom a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:14px;row-gap:2px;align-items:center;padding:14px 16px;
  background:var(--white);color:var(--ink);text-decoration:none;transition:background .25s var(--ease)}
.main .v3-p-whom a:hover{background:var(--frost-2);text-decoration:none}
.v3-p-whom b{font-size:16px;font-weight:700}
.v3-p-whom span{grid-column:2;font-size:14px;color:var(--slate)}
.v3-p-whom svg{grid-column:3;grid-row:1 / span 2;width:22px;height:8px;stroke:var(--blue)}
@media (min-width:760px){
  .main .v3-p-whom a{grid-template-columns:auto minmax(0,260px) minmax(0,1fr) auto}
  .v3-p-whom span{grid-column:3}
  .v3-p-whom svg{grid-column:4;grid-row:1}
}
.v3-p-rekv{margin:0;border-top:1px solid var(--frost)}
.v3-p-rekv div{display:grid;gap:2px;padding:11px 0;border-bottom:1px solid var(--frost)}
@media (min-width:700px){ .v3-p-rekv div{grid-template-columns:230px minmax(0,1fr);gap:20px} }
.v3-p-rekv dt{font-size:14px;font-weight:500;color:var(--slate)}
.v3-p-rekv dd{margin:0;font-size:15.5px;color:var(--ink);font-variant-numeric:tabular-nums}

/* ═══════════ Профалмазовы — web/semya/semya.css ═══════════ */
/* Профалмазовы на сайте: человечек поднимается из нижнего угла, стучит в экран и показывает сообщение.
   Классы с префиксом pf-, цвета — токены шаблона v3 (--ink, --blue, --red, --frost). */
.pf{position:fixed;left:0;bottom:0;z-index:9000;--w:210px;pointer-events:none;font-family:"Fira Sans",Arial,sans-serif}
.pf[hidden]{display:none}
.pf-stage{position:absolute;left:24px;bottom:0;width:var(--w);transform:translateY(104%);
  transition:transform .75s cubic-bezier(.22,1.25,.36,1)}
.pf.is-in .pf-stage{transform:translateY(0)}
.pf.is-out .pf-stage{transform:translateY(104%);transition:transform .45s cubic-bezier(.5,0,.8,.4)}
.pf-who{display:block;width:100%;height:auto;transform-origin:var(--fx) 100%;pointer-events:auto;cursor:pointer;
  filter:drop-shadow(0 10px 22px rgba(19,43,84,.28))}
.pf-who:focus-visible{outline:3px solid var(--sky,#5190f7);outline-offset:4px}

/* стук: фигура дважды подаётся к экрану, от кулака по «стеклу» расходятся круги */
.pf.is-knock .pf-who{animation:pf-knock .256s ease-in-out 2}
@keyframes pf-knock{0%,100%{transform:none}
  45%{transform:translateY(-5px) scale(1.045) rotate(var(--tilt))}
  60%{transform:translateY(-3px) scale(1.03) rotate(var(--tilt))}}
.pf-hit{position:absolute;left:var(--fx);top:var(--fy);width:0;height:0}
.pf-ring{position:absolute;left:-46px;top:-46px;width:92px;height:92px;border-radius:50%;
  border:2px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(31,100,213,.35),0 0 18px rgba(81,144,247,.45),
  inset 0 0 14px rgba(255,255,255,.6);animation:pf-ring .48s ease-out forwards}
@keyframes pf-ring{from{transform:scale(.25);opacity:1}to{transform:scale(1.55);opacity:0}}
.pf-tuk{position:absolute;left:-14px;top:-64px;font:800 italic 19px/1 "Fira Sans",Arial,sans-serif;color:var(--red,#e31e24);
  text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 6px #fff;white-space:nowrap;animation:pf-tuk .44s ease-out forwards}
@keyframes pf-tuk{0%{transform:translateY(8px) scale(.6);opacity:0}30%{transform:none;opacity:1}100%{transform:translateY(-12px);opacity:0}}

/* сообщение */
.pf-say{position:absolute;left:calc(var(--w) + 30px);bottom:calc(var(--w) * .66);width:330px;max-width:calc(100vw - var(--w) - 54px);
  background:#fff;color:var(--ink,#132b54);border-radius:16px;padding:18px 44px 18px 20px;pointer-events:auto;
  box-shadow:0 18px 50px rgba(19,43,84,.24),0 0 0 1px rgba(19,43,84,.06);
  opacity:0;transform:translateX(-14px) scale(.94);transform-origin:0 70%;transition:opacity .3s,transform .4s cubic-bezier(.22,1.3,.36,1)}
.pf.is-say .pf-say{opacity:1;transform:none}
.pf.is-out .pf-say{opacity:0;transform:translateX(-10px) scale(.96);transition:opacity .2s,transform .2s}
.pf-say::before{content:"";position:absolute;left:-9px;bottom:26px;width:18px;height:18px;background:#fff;transform:rotate(45deg);
  box-shadow:-1px 1px 0 rgba(19,43,84,.06);border-radius:3px}
.pf-from{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:600 12px/1.2 "Fira Sans",Arial,sans-serif;
  letter-spacing:.06em;text-transform:uppercase;color:var(--blue,#1f64d5)}
.pf-from::before{content:"";width:11px;height:12px;background:var(--red,#e31e24);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.pf-text{margin:0;font:500 17px/1.38 "Fira Sans",Arial,sans-serif}
.pf-more{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font:600 15px/1.2 "Fira Sans",Arial,sans-serif;
  color:var(--blue,#1f64d5)!important;text-decoration:none!important}
.pf-more:hover{color:var(--ink,#132b54)!important}
.pf-more svg{width:22px;height:8px;stroke:currentColor}
.pf-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;
  color:var(--slate-2,#8fa6c6);font:400 24px/1 Arial,sans-serif;cursor:pointer}
.pf-x:hover{background:var(--frost-2,#eef3f9);color:var(--ink,#132b54)}

@media (max-width:640px){
  .pf{--w:128px}
  .pf-stage{left:8px}
  .pf-say{left:calc(var(--w) + 16px);bottom:calc(var(--w) * .55);padding:13px 36px 13px 14px;border-radius:13px;
    max-width:calc(100vw - var(--w) - 28px)}
  .pf-text{font-size:14.5px}
  .pf-from{font-size:10.5px;margin-bottom:6px}
  .pf-more{font-size:14px;margin-top:8px}
  .pf-x{top:4px;right:4px}
  .pf-tuk{font-size:15px;top:-46px}
  .pf-ring{left:-30px;top:-30px;width:60px;height:60px}
}
@media (prefers-reduced-motion:reduce){
  .pf-stage,.pf-say{transition:opacity .3s}
  .pf.is-knock .pf-who,.pf-ring,.pf-tuk{animation:none;opacity:0}
}
@media print{.pf{display:none}}

/* ═══════════ каркас v4 — web/stranicy/v4-karkas.css ═══════════ */
/* ─────────── каркас шаблона profalmaz-v4 (04.10.2026) ───────────
   На сайте шапку внутренней страницы выводит шаблон (header.php → ProfalmazVid::pageHead), а не страница: заголовок
   и подзаголовок стоят перед содержимым, отступ до содержимого — как отступ сетки в макете (26 px). Страница, которая
   рисует шапку сама внутри своей сетки, ставит свойство v4_head = N. */
.v3-p-shell > .v4-head{margin-bottom:26px}
/* шапка уже стоит перед сеткой — строки "head" в сетке нет, иначе её пустой ряд добавляет ещё один row-gap (26 px):
   проверка боя 04.10 — содержимое на 12 страницах ниже макета на 26 px */
.v3-p-shell > .v4-head + .v3-p-grid{grid-template-areas:"nav" "main"}
.v3-p-shell > .v4-head + .v3-p-grid.v3-p-nonav{grid-template-areas:"main"}
@media (min-width:1200px){ .v3-p-shell > .v4-head + .v3-p-grid.v3-p-grid-2{grid-template-areas:"nav main"} }

/* ═══════════ общий слой содержимого v4: текст из редактора — web/stranicy/v4-tekst.css ═══════════ */
/* ─────────── общий слой содержимого шаблона profalmaz-v4 (07a, 04.10.2026) ───────────
   Страницы без своего рендерера — текст из редактора Битрикса как есть — идут в обёртке .v4-text (её ставит
   ProfalmazV4Page::open). Здесь — оформление того, что приходит из файла страницы: абзацы, заголовки внутри текста,
   списки, таблицы (широкие — прокрутка в своей рамке, не страницы), картинки, ссылки на файлы (значок типа), старые
   Bootstrap-сетки и инлайновые шрифты. Правила через :where() — нулевая специфичность у обёртки: всё, что размечено
   классами v3-p-* / v4-*, перекрывает общий слой. Только шаблон v4 — в v3 файла нет. */

:where(.pf-v4 .v4-text){font-size:17px;line-height:1.65;color:#23395f;overflow-wrap:break-word}
:where(.pf-v4 .v4-text) > :first-child{margin-top:0}
:where(.pf-v4 .v4-text) :is(p,ul,ol,dl,blockquote,figure){margin:0 0 16px;max-width:78ch}
:where(.pf-v4 .v4-text) :is(b,strong){font-weight:700;color:var(--ink)}
:where(.pf-v4 .v4-text) :is(h1,h2,h3,h4,h5,h6){font-family:var(--display);color:var(--ink);letter-spacing:-.01em;text-transform:none;
  line-height:1.25;margin:30px 0 12px;max-width:62ch}
:where(.pf-v4 .v4-text) h1{font-size:26px}
:where(.pf-v4 .v4-text) h2{font-size:24px}
:where(.pf-v4 .v4-text) h3{font-size:20px}
:where(.pf-v4 .v4-text) :is(h4,h5,h6){font-size:17px}
:where(.pf-v4 .v4-text) :is(ul,ol){padding-left:1.35em}
:where(.pf-v4 .v4-text) li{margin:0 0 7px}
:where(.pf-v4 .v4-text) li > :is(ul,ol){margin:7px 0 0}
:where(.pf-v4 .v4-text) li > p{margin:0}
:where(.pf-v4 .v4-text) ul > li::marker{color:var(--azure)}
:where(.pf-v4 .v4-text) ol > li::marker{color:var(--slate);font-variant-numeric:tabular-nums}
:where(.pf-v4 .v4-text) a{color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
:where(.pf-v4 .v4-text) a:hover{color:var(--red)}
:where(.pf-v4 .v4-text) hr{border:0;border-top:1px solid var(--frost);margin:26px 0}
:where(.pf-v4 .v4-text) blockquote{padding:16px 20px;border-left:3px solid var(--azure);background:var(--frost-2);color:var(--ink)}

/* картинки — не шире колонки; выравнивание редактора (align, float) сохраняется, но не налезает на текст */
:where(.pf-v4 .v4-text) img{max-width:100%;height:auto}
:where(.pf-v4 .v4-text) img:is([align=left],[style*="float: left"],[style*="float:left"]){margin:4px 22px 12px 0}
:where(.pf-v4 .v4-text) img:is([align=right],[style*="float: right"],[style*="float:right"]){margin:4px 0 12px 22px}
@media (max-width:575px){ :where(.pf-v4 .v4-text) img:is([align],[style*="float"]){float:none!important;display:block;margin:0 0 14px} }
:where(.pf-v4 .v4-text) :is(iframe,video,embed,object){max-width:100%}

/* таблицы: ровные строки сайта; широкая таблица прокручивается в своей рамке (display:block), страница — нет */
:where(.pf-v4 .v4-text) table{display:block;max-width:100%;width:max-content;overflow-x:auto;margin:0 0 20px;border-collapse:collapse;
  font-size:15px;line-height:1.45;border:1px solid var(--frost);-webkit-overflow-scrolling:touch}
:where(.pf-v4 .v4-text) :is(td,th){padding:10px 14px;border:0;border-bottom:1px solid var(--frost);vertical-align:top;text-align:left}
:where(.pf-v4 .v4-text) th,:where(.pf-v4 .v4-text) thead td{background:var(--frost-2);color:var(--ink);font-weight:700}
:where(.pf-v4 .v4-text) tr:last-child > :is(td,th){border-bottom:0}
:where(.pf-v4 .v4-text) :is(td,th) > p:last-child{margin-bottom:0}
/* ширина из редактора (width="900", style="width:…") не распирает страницу */
.pf-v4 .v4-text :is(table,td,th,col,div,p,img)[width]{max-width:100%}
.pf-v4 .v4-text :is(table,div,p,span)[style*="width"]{max-width:100%!important}
.pf-v4 .v4-text table[style*="width"]{width:max-content!important}

/* шрифты из редактора (Arial, Times, размеры в pt, <font>) — шрифтом и размером сайта; цвет и выравнивание остаются */
.pf-v4 .v4-text [style*="font-family"]{font-family:inherit!important}
.pf-v4 .v4-text [style*="font-size"]{font-size:inherit!important}
.pf-v4 .v4-text [style*="line-height"]{line-height:inherit!important}
.pf-v4 .v4-text font{font-family:inherit!important;font-size:inherit!important}
.pf-v4 .v4-text [style*="background"]:not(img){background:none!important}

/* старые Bootstrap-сетки в тексте: колонки остаются колонками, без отрицательных полей за край на телефоне */
:where(.pf-v4 .v4-text) .row{margin-inline:-10px}
:where(.pf-v4 .v4-text) .row > [class*=col]{padding-inline:10px}
@media (max-width:575px){ :where(.pf-v4 .v4-text) .row{margin-inline:0} :where(.pf-v4 .v4-text) .row > [class*=col]{padding-inline:0} }
:where(.pf-v4 .v4-text) .btn{border-radius:3px}

/* ссылка на файл (pdf, doc, xls, ppt …) — значок типа перед названием, как у строк документов «Охраны труда».
   Ссылка отдельной строкой в тексте страниц с рендерером становится строкой документа (ProfalmazV4Page::clean). */
:where(.pf-v4 .v4-text) a:is([href$=".pdf" i],[href$=".doc" i],[href$=".docx" i],[href$=".xls" i],[href$=".xlsx" i],[href$=".ppt" i],
  [href$=".pptx" i],[href$=".rtf" i],[href$=".zip" i],[href$=".rar" i])::before{display:inline-block;margin-right:7px;padding:3px 5px 2px;
  font:700 10px/1 var(--sans);letter-spacing:.08em;color:var(--white);background:var(--ink);vertical-align:2px;text-decoration:none}
:where(.pf-v4 .v4-text) a[href$=".pdf" i]::before{content:"PDF";background:var(--red)}
:where(.pf-v4 .v4-text) a:is([href$=".doc" i],[href$=".docx" i],[href$=".rtf" i])::before{content:"DOC";background:var(--azure)}
:where(.pf-v4 .v4-text) a:is([href$=".xls" i],[href$=".xlsx" i])::before{content:"XLS";background:#1f7a4d}
:where(.pf-v4 .v4-text) a:is([href$=".ppt" i],[href$=".pptx" i])::before{content:"PPT";background:#c4511f}
:where(.pf-v4 .v4-text) a:is([href$=".zip" i],[href$=".rar" i])::before{content:"ZIP"}
:where(.pf-v4 .v4-text) .v3-p-docs{margin:4px 0 20px;max-width:880px}
:where(.pf-v4 .v4-text) .v3-p-docs a::before{content:none}

/* текст крупнее — вводный (главная раздела) */
.v4-text.v4-lede{font-size:18px;line-height:1.68}
.v4-text-note{margin:-6px 0 18px;font-size:14.5px;color:var(--slate)}

/* ═══════════ внутренние страницы v4: форма, листалка, файлы, страницы 07a и 07b — web/stranicy/v4-stranicy.css ═══════════ */
/* ─────────── внутренние страницы шаблона profalmaz-v4 (04.10.2026) ───────────
   То, чего нет в макете страниц (там разметка рисовалась сборщиком, на сайте — шаблоны компонентов Битрикса):
   прежняя форма slam:easyform в оформлении макета, «Назад» в листалке, файлы под новостью, «Читайте также».
   Только под шаблоном v4 (класс pf-v4 у html) — в v3 эти правила не попадают вовсе (другой template_styles.css). */

/* листалка: «Назад» — та же кнопка, что «Дальше», стрелка влево */
.main .v3-p-pager .v3-p-prev{margin:0 8px 0 0}
.v3-p-pager .v3-p-prev svg{transform:scaleX(-1)}

/* главное фото новости — ссылкой на просмотр */
.v3-p-art-pic a{display:block}

/* файлы новости и выпуска, «Читайте также» */
.v3-p-det .v3-p-det-files{margin-top:30px}
.v3-p-similar{margin-top:56px;max-width:880px}

/* ─── форма обратной связи (slam:easyform, шаблон .default): поля и проверка прежние ─── */
.pf-v4 .v4-form{max-width:880px}
.pf-v4 .v4-form form{display:block;padding:clamp(18px,3vw,30px);border:1px solid var(--frost);background:var(--frost-2)}
.pf-v4 .v4-form .row{margin-inline:-10px}
.pf-v4 .v4-form .row > [class*=col]{padding-inline:10px}
.pf-v4 .v4-form .form-group{display:block;margin:0 0 20px}
.pf-v4 .v4-form .form-row{display:block;margin:0 0 20px}
.pf-v4 .v4-form .form-row > .col{display:block;padding:0}
.pf-v4 .v4-form .control-label{display:block;margin:0 0 7px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.pf-v4 .v4-form .form-control{box-sizing:border-box;width:100%;height:auto;border:1px solid #c9d7ea;border-radius:3px;background:var(--white);
  padding:12px 14px;font:400 16px/1.45 var(--sans);color:var(--ink);box-shadow:none}
.pf-v4 .v4-form textarea.form-control{resize:vertical;min-height:160px}
.pf-v4 .v4-form .form-control:focus{outline:0;border-color:var(--azure);box-shadow:0 0 0 3px rgba(46,115,228,.16)}
.pf-v4 .v4-form .has-error .form-control{border-color:var(--red)}
.pf-v4 .v4-form .help-block{display:block;margin-top:6px;font-size:13px;color:var(--red)}
/* поле файла (main.file.input, drag_n_drop): пунктирная область, как в макете */
.pf-v4 .v4-form .file-selectdialog{display:block!important;margin:0;padding:0;border:0;background:none}
.pf-v4 .v4-form .file-extended{margin:0;border:1.5px dashed #b6c9e4;background:var(--white)}
.pf-v4 .v4-form .file-selector{display:grid;gap:4px;padding:18px;text-align:center;font-size:14px;line-height:1.45;color:var(--slate);border:0;background:none}
.pf-v4 .v4-form .file-uploader{position:relative;display:inline-block;color:var(--blue);text-decoration:underline;cursor:pointer}
.pf-v4 .v4-form .file-uploader input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.pf-v4 .v4-form .webform-field-upload-notice{font-size:12.5px;color:var(--slate)}
.pf-v4 .v4-form .files-list{width:100%}
/* согласие: живые ссылки на Согласие и Политику, галочка обязательна (как было) */
.pf-v4 .v4-form .form-check{display:flex;gap:12px;align-items:flex-start;padding:0;margin:0 0 20px}
.pf-v4 .v4-form .form-check-input{position:static;flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:var(--azure)}
.pf-v4 .v4-form .form-check-label{font-size:14px;line-height:1.5;color:#2c4470}
.pf-v4 .v4-form .form-check-label small{font-size:inherit}
.pf-v4 .v4-form .form-check-label a{color:var(--blue);text-decoration:underline}
.pf-v4 .v4-form .form-check .help-block{flex-basis:100%}
.main .v4-form .submit-button.v3-p-btn{background:var(--azure);color:var(--white);border:0;box-shadow:none}
.main .v4-form .submit-button.v3-p-btn:hover{background:var(--blue)}
/* стрелка кнопки, как в макете, — псевдоэлементом: текст кнопки меняет скрипт формы при отправке */
.main .v4-form .submit-button.v3-p-btn::after{content:"";flex:none;width:22px;height:8px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 8' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M0 4h22M18 1l4 3-4 3'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 8' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M0 4h22M18 1l4 3-4 3'/%3E%3C/svg%3E") center/contain no-repeat}
/* обязательное поле — красная звёздочка после подписи (макет 30.09) */
.pf-v4 .v4-form .asterisk{color:var(--red);font-style:normal}
.pf-v4 .v4-form .alert{margin:0 0 20px;border-radius:3px}

/* ─────────── 07a: «О профсоюзе», председатели профкомов, Молодёжный совет (04.10.2026) ─────────── */
/* номер шестигранником (как у шагов, мельче) */
.v4-n{flex:none;display:grid;place-items:center;width:30px;height:34px;background:var(--frost-2);color:var(--blue);font-weight:700;font-size:13.5px;
  font-variant-numeric:tabular-nums;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
/* список организаций в колонках (структура профсоюза): номер — как на странице */
.v4-cols{margin:0 0 8px;padding:0 0 0 2.2em;columns:2 300px;column-gap:44px;border-top:1px solid var(--frost)}
.v4-cols li{break-inside:avoid;padding:10px 0 10px 4px;border-bottom:1px solid var(--frost);font-size:16px;line-height:1.4;color:var(--ink)}
.v4-cols li::marker{color:var(--slate);font-size:14px;font-variant-numeric:tabular-nums}
/* люди строками: номер, ФИО, организация (Совет, малый совет, план) */
.v4-rows{border-top:1px solid var(--frost)}
.v4-row{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:16px;row-gap:2px;align-items:center;padding:11px 0;border-bottom:1px solid var(--frost)}
.v4-row > b{font-size:16px;line-height:1.35;font-weight:700;color:var(--ink)}
.v4-row > span:not(.v4-n){grid-column:2;font-size:14.5px;line-height:1.4;color:var(--slate)}
.v4-row > .v4-n{grid-row:span 2;align-self:start}
@media (min-width:760px){
  .v4-row{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr);column-gap:20px}
  .v4-row > span:not(.v4-n){grid-column:3;font-size:15px}
  .v4-row > .v4-n{grid-row:auto;align-self:center}
}
.main .v3-p-main h3.v4-sub{display:flex;align-items:center;gap:8px;margin:34px 0 12px;font-size:19px;text-transform:none;color:var(--ink)}
.v4-sub .v3-p-ico{width:18px;height:18px;color:var(--azure)}
/* имена карточками (исполком) */
.v4-names{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--frost);border:1px solid var(--frost)}
@media (min-width:640px){ .v4-names{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .v4-names{grid-template-columns:repeat(3,minmax(0,1fr))} }
.v4-names li{display:flex;align-items:center;gap:10px;margin:0;padding:15px 16px;background:var(--white);font-size:16px;line-height:1.35;font-weight:500;color:var(--ink)}
/* книга: обложка и строка документа */
.v4-book{display:grid;gap:22px;align-items:start;max-width:880px}
@media (min-width:640px){ .v4-book{grid-template-columns:220px minmax(0,1fr);gap:36px} }
.v4-book-cover{display:block;max-width:220px;border:1px solid var(--frost);box-shadow:0 22px 44px -30px rgba(19,60,130,.65)}
.v4-book-cover img{display:block;width:100%;height:auto;background:var(--frost-2)}
/* председатели профкомов: организация блоком, люди строками; поиск */
.v4-find{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 18px;margin:0 0 22px}
.v4-find label{display:grid;gap:7px;flex:1 1 320px;max-width:560px;margin:0}
.v4-find input{box-sizing:border-box;width:100%;border:1px solid #c9d7ea;border-radius:3px;background:var(--white);padding:12px 14px;
  font:400 16px/1.45 var(--sans);color:var(--ink)}
.v4-find input:focus{outline:0;border-color:var(--azure);box-shadow:0 0 0 3px rgba(46,115,228,.16)}
.v4-find-n{font-size:14px;color:var(--slate);padding-bottom:13px}
.v4-find[hidden],.v4-ppo[hidden],.v4-find-none[hidden]{display:none}
.v4-find-none{padding:18px 0;font-size:16px;color:var(--slate)}
.v4-ppo-list{border-top:1px solid var(--frost)}
.v4-ppo{padding:14px 0 4px;border-bottom:1px solid var(--frost)}
.main .v3-p-main .v4-ppo h3{display:flex;align-items:center;gap:12px;margin:0 0 2px;font-size:17px;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--ink)}
.v4-ppo-row{display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px;padding:8px 0 8px 42px}
.v4-ppo-row + .v4-ppo-row{border-top:1px dashed var(--frost)}
.v4-ppo-who{display:grid;gap:2px}
.v4-ppo-who b{font-size:15.5px;line-height:1.35;color:var(--ink)}
.v4-ppo .v3-p-pos{min-height:0}
.v4-ppo-row:not(.v4-ppo-main) .v4-ppo-who b{font-weight:500}
.v4-ppo .v3-p-contacts{margin:0;font-size:14px}
.v4-ppo .v3-p-contacts:empty{display:none}
@media (min-width:760px){
  .v4-ppo-row{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.95fr);column-gap:20px;align-items:center}
  .v4-ppo .v3-p-contacts:empty{display:block}
}
@media (max-width:575px){ .v4-ppo-row{padding-left:0} }
/* Молодёжный совет: председатель, подразделения, план по месяцам */
.v4-chair{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:4px;align-items:center;max-width:560px;margin:0 0 6px;
  padding:18px 20px;border:1px solid var(--frost);background:var(--frost-2)}
.v4-chair .v3-micro{color:var(--slate)}
.v4-chair b{grid-column:1 / -1;font-size:21px;line-height:1.25;color:var(--ink)}
.v4-groups{border-top:1px solid var(--frost)}
.v4-group{display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--frost)}
@media (min-width:760px){ .v4-group{grid-template-columns:260px minmax(0,1fr);gap:24px} }
.main .v3-p-main .v4-group h3{margin:0;font-size:16.5px;line-height:1.35;text-transform:none;color:var(--ink)}
.v4-group h3 small,.v4-month h3 small{margin-left:6px;font-size:13px;font-weight:500;color:var(--slate)}
.v4-group ul{list-style:none;margin:0;padding:0;columns:2 240px;column-gap:24px}
.v4-group li{break-inside:avoid;margin:0;padding:1px 0 5px;font-size:16px;line-height:1.4;color:#23395f}
.v4-approve{margin:0 0 30px;max-width:880px}
@media (min-width:760px){ .v4-approve{grid-template-columns:repeat(2,minmax(0,1fr))} }
.v4-approve .v3-p-cc > span:last-child{font-size:15px;color:var(--ink)}
.v4-plan{border-bottom:1px solid var(--frost)}
.v4-month{display:grid;gap:10px;padding:22px 0;border-top:1px solid var(--frost)}
@media (min-width:760px){ .v4-month{grid-template-columns:150px minmax(0,1fr);gap:24px} }
.main .v3-p-main .v4-month h3{margin:0;font:900 24px/1.1 var(--display);letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.v4-month .v4-rows{border-top:0}
.v4-month .v4-row:first-child{padding-top:0}
.v4-month .v4-row:last-child{border-bottom:0}

/* ─────────── 07b: «Документы», правовые тексты, формы, поиск, «не найдено» (04.10.2026) ─────────── */
/* типы файлов в строках документов (pdf, docx, pptx — в макете) */
.v3-p-ext-doc,.v3-p-ext-rtf,.v3-p-ext-odt{background:var(--azure)}
.v3-p-ext-xls,.v3-p-ext-xlsx,.v3-p-ext-ods{background:#1f7a4d}
.v3-p-ext-ppt{background:var(--ink-3)}
.v3-p-ext-txt,.v3-p-ext-zip,.v3-p-ext-rar,.v3-p-ext-файл{background:var(--frost);color:var(--ink)}
.v3-p-ext-jpg,.v3-p-ext-jpeg,.v3-p-ext-png{background:var(--slate)}
.v3-p-main > .v3-p-docs{max-width:880px}
.v4-empty{margin:0;padding:18px 20px;max-width:880px;border:1px dashed #c9d7ea;font-size:16px;color:var(--slate)}
/* карточки-ссылки: оглавление «Документов», «Персональные данные», разделы на «не найдено» */
.v4-tiles{display:grid;gap:16px;max-width:1000px}
@media (min-width:640px){ .v4-tiles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1100px){ .v4-tiles{grid-template-columns:repeat(3,minmax(0,1fr))} }
.main .v4-tiles .v3-p-cta{height:100%}
.main .v4-tiles .v3-p-cta .v3-p-go{margin-top:auto}
.v4-tiles + .v3-p-note{max-width:880px}
/* правовые тексты: читаемая колонка, оглавление по разделам, строка редакции мелко */
.v4-toc{max-width:880px;margin:0 0 30px;padding:18px 22px 10px;border:1px solid var(--frost);background:var(--frost-2)}
.v4-toc .v3-micro{display:block;margin:0 0 10px;color:var(--slate)}
.v4-toc ul{list-style:none;margin:0;padding:0;columns:2 300px;column-gap:32px}
.v4-toc li{break-inside:avoid;margin:0 0 8px;font-size:15px;line-height:1.4}
.v4-toc a{color:var(--blue);text-decoration:none}
.v4-toc a:hover{text-decoration:underline}
.pf-v4 .v4-legal{font-size:16.5px;line-height:1.7;max-width:880px}
.pf-v4 .v4-legal h2{scroll-margin-top:20px;margin-top:38px;padding-top:6px;font-size:22px}
.pf-v4 .v4-legal .v4-edition{font-size:14px;color:var(--slate)}
.pf-v4 .v4-legal .v4-edition strong{color:inherit;font-weight:500}
/* поиск по сайту (bitrix:search.page, шаблон clear) и поле поиска на «не найдено» */
.v4-search-form{max-width:880px}
.v4-search-form label .v3-micro{color:var(--slate)}
.main .v4-search-form .v3-p-btn{height:49px;background:var(--azure);color:var(--white);border:0;cursor:pointer}
.main .v4-search-form .v3-p-btn:hover{background:var(--blue)}
.v4-search-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;max-width:880px;margin:0 0 4px;padding:0 0 12px;
  border-bottom:1px solid var(--frost);font-size:14px;color:var(--slate)}
.v4-search-bar a{color:var(--blue)}
.v4-search-bar b{color:var(--ink);font-weight:600}
.v4-search-list{list-style:none;margin:0 0 26px;padding:0;max-width:880px}
.v4-search-list li{display:grid;gap:5px;margin:0;padding:16px 0;border-bottom:1px solid var(--frost)}
.main .v4-search-list a{font-size:18px;line-height:1.35;font-weight:700;color:var(--ink);text-decoration:none}
.main .v4-search-list a:hover{color:var(--blue)}
.v4-search-list p{margin:0;font-size:15.5px;line-height:1.55;color:#2c4470;overflow-wrap:anywhere}
.v4-search-list :is(p,a) b{font-weight:700;color:var(--ink);background:#fff3b8}
.v4-search-list .v3-p-meta{font-size:13px;color:var(--slate)}
.v4-search-hint{margin:0;font-size:15.5px;color:var(--slate)}
.v4-search-none{max-width:880px;padding:18px 20px;border:1px solid var(--frost);background:var(--frost-2);font-size:16px;line-height:1.6;color:#2c4470}
.v4-search-none p{margin:0 0 8px}
.v4-search-none p:last-child{margin:0}
.v4-search-none a{color:var(--blue)}

/* ─── 07c: списки и истории ─── */
/* человек без фото (председатели на «Страницах истории», аппарат управления) — место под фото той же формы */
.v3-p-person .v3-p-nofoto{display:block;width:78px;aspect-ratio:3/4;background:var(--frost-2) center/44% no-repeat
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b5c6de' stroke-width='1.5'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1-4.5 4.2-7 8-7s7 2.5 8 7'/%3E%3C/svg%3E")}
.v3-p-person-big .v3-p-nofoto{width:120px}
.v4-leaders .v3-p-pos{min-height:0;color:var(--blue);font-weight:600}
.v4-leaders + .v4-text{margin-top:40px}
/* «Профалмаз в цифрах»: текст и страницы буклета ровной сеткой, страница целиком, без обрезки */
.pf-v4 .v4-book-det{max-width:none}
.v4-book-det h2{margin:38px 0 16px}
.v4-book-pages.v3-p-art-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:760px){ .v4-book-pages.v3-p-art-gallery{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:1000px){ .v4-book-pages.v3-p-art-gallery{grid-template-columns:repeat(4,minmax(0,1fr))} }
.v4-book-pages.v3-p-art-gallery a,.v4-book-pages.v3-p-art-gallery a:first-child,.v4-book-pages.v3-p-art-gallery a:nth-child(-n+2){
  grid-column:auto;aspect-ratio:3/4;border:1px solid var(--frost);background:var(--white)}
.v4-book-pages.v3-p-art-gallery img{width:100%;height:100%;object-fit:contain}
/* списки карточками (конкурсы, «История», подборки): у сетки линии — фон в зазорах, неполный последний ряд заливался им;
   в v4 у каждой карточки своя рамка, соседние рамки сливаются в одну линию */
.pf-v4 .v4-cards{background:none;border:0;gap:0;padding:1px 0 0 1px}
.pf-v4 .v4-cards>.v3-n-card{border:1px solid var(--frost);margin:-1px 0 0 -1px;background:var(--white)}
