/* =====================================================================
   Мастерская ИРП — дизайн-система (перенос из исходного проекта)
   ===================================================================== */
:root{
  --canvas:#FAF7F1; --surface:#F2ECE0; --paper:#FFFEFB;
  --ink:#22262F; --ink-soft:#4B515E; --muted:#8B909C;
  --indigo:#23295F; --indigo-deep:#1A1F4A; --indigo-600:#2E3576; --indigo-300:#9298C8; --indigo-100:#E2E3F0;
  --steel:#6C7C97; --lavender:#BCB3DC; --lavender-soft:#E4DFF1;
  --sand:#DCC49E; --sand-soft:#EFE4CE; --moss:#5C8A68; --moss-soft:#DDE8DC;
  --line:rgba(34,38,47,.10); --line-strong:rgba(34,38,47,.18);
  --font-sans:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-display:'Onest',var(--font-sans);
  --shadow-soft:0 1px 2px rgba(34,38,47,.04),0 8px 24px rgba(34,38,47,.06);
  --shadow-lift:0 4px 12px rgba(34,38,47,.06),0 18px 48px rgba(34,38,47,.10);
  --r:18px; --r-lg:26px;
  --maxw:1240px; --px:clamp(1.25rem,4vw,2.5rem);
}

/* применяем к контенту, который рендерит плагин */
.irp-hero,.irp-section,.irp-detail,.irp-article,.irp-cta,.irp-progs,.irp-grid,
.irp-prog,.irp-event,.irp-art,.irp-teacher,.irp-roadmap,.irp-form,.irp-docgroup,
.irp-about-intro,.irp-contacts,.irp-sh{ font-family:var(--font-sans); color:var(--ink); }

.irp-container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--px); }
.irp-narrow{ max-width:820px; }
.irp-section{ padding-block:clamp(3rem,7vw,5.5rem); }
.irp-section--soft{ background:var(--surface); }
.irp-prose{ font-size:1.0625rem; line-height:1.7; color:var(--ink-soft); }

h1,h2,h3,h4{ font-family:var(--font-display); color:var(--ink); line-height:1.12; text-wrap:balance; font-weight:600; }
h1{ font-size:clamp(2rem,4.5vw,3.25rem); letter-spacing:-.01em; }
h2{ font-size:clamp(1.6rem,3vw,2.25rem); }

/* eyebrow */
.irp-eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font-size:.75rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--indigo-600); }
.irp-eyebrow::before{ content:""; width:28px; height:1px; background:var(--indigo-300); }

/* кнопки */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border-radius:999px;
  padding:.8rem 1.5rem; font-size:.9rem; font-weight:600; text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition:all .25s cubic-bezier(.22,1,.36,1); line-height:1; }
.btn-primary{ background:var(--indigo); color:var(--canvas); box-shadow:var(--shadow-soft); }
.btn-primary:hover{ background:var(--indigo-deep); transform:translateY(-2px); }
.btn-secondary{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn-secondary:hover{ border-color:var(--indigo); background:rgba(35,41,95,.04); }
.btn-sand{ background:var(--sand); color:var(--ink); box-shadow:var(--shadow-soft); }
.btn-sand:hover{ filter:brightness(.97); transform:translateY(-2px); }
.btn-ghost{ display:inline-flex; align-items:center; gap:.4rem; color:var(--indigo); font-weight:600;
  font-size:.9rem; text-decoration:none; }
.btn-ghost:hover{ color:var(--indigo-deep); }

/* чипы */
.chip{ display:inline-flex; align-items:center; gap:.4rem; border-radius:999px; padding:.25rem .7rem;
  font-size:.72rem; font-weight:600; }
.chip-open{ background:var(--moss-soft); color:var(--moss); }
.chip-pre{ background:var(--sand-soft); color:#7a5c2a; }
.chip-soft{ background:var(--indigo-100); color:var(--indigo); }

/* сетки */
.irp-grid{ display:grid; gap:1.5rem; }
.irp-grid--2{ grid-template-columns:repeat(2,1fr); }
.irp-grid--3{ grid-template-columns:repeat(3,1fr); }
@media(max-width:900px){ .irp-grid--3{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .irp-grid--2,.irp-grid--3{ grid-template-columns:1fr; } }

/* плейсхолдеры изображений */
.ph{ position:relative; overflow:hidden; isolation:isolate; border-radius:var(--r-lg);
  aspect-ratio:var(--ratio,4/3); display:flex; flex-direction:column; justify-content:space-between; padding:1.25rem; }
.ph::after{ content:""; position:absolute; inset:0; opacity:.06; mix-blend-mode:multiply; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); }
.ph-indigo{ background:radial-gradient(120% 90% at 15% 10%,rgba(146,152,200,.55),transparent 55%),linear-gradient(150deg,#2a3070,#23295f 48%,#1a1f4a); color:#fff; }
.ph-sand{ background:radial-gradient(110% 80% at 80% 15%,rgba(255,255,255,.5),transparent 50%),linear-gradient(150deg,#efe4ce,#dcc49e 65%,#cdb189); color:#4b3d22; }
.ph-lavender{ background:radial-gradient(110% 80% at 20% 20%,rgba(255,255,255,.5),transparent 55%),linear-gradient(150deg,#e4dff1,#bcb3dc 70%,#a79dcf); color:#3a3357; }
.ph-steel{ background:radial-gradient(120% 90% at 80% 10%,rgba(255,255,255,.35),transparent 55%),linear-gradient(155deg,#8593ab,#6c7c97 55%,#566480); color:#fff; }
.irp-grain::before{ content:""; position:absolute; inset:0; opacity:.025; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); }
.irp-fig__tag{ align-self:flex-end; font-size:.7rem; font-weight:600; text-transform:uppercase; opacity:.65; }
.irp-fig__cap{ position:relative; z-index:1; font-family:var(--font-display); font-weight:600; }
.irp-fig__sub{ display:block; font-family:var(--font-sans); font-weight:400; font-size:.8rem; opacity:.8; margin-top:.15rem; }

/* заголовок секции */
.irp-sh{ max-width:680px; margin-bottom:2.5rem; }
.irp-sh--center{ margin-inline:auto; text-align:center; }
.irp-sh__title{ margin:.6rem 0 0; }
.irp-sh__text{ margin:.8rem 0 0; color:var(--ink-soft); line-height:1.65; }

/* ---------- HERO ---------- */
.irp-hero{ display:grid; grid-template-columns:1.05fr .95fr; gap:3rem; align-items:center;
  max-width:var(--maxw); margin-inline:auto; padding:clamp(2.5rem,6vw,4.5rem) var(--px); }
.irp-hero__title{ margin:.8rem 0 0; }
.irp-mark{ position:relative; white-space:nowrap; }
.irp-mark::after{ content:""; position:absolute; left:0; right:0; bottom:.05em; height:.28em;
  background:rgba(220,196,158,.7); border-radius:999px; z-index:-1; }
.irp-hero__sub{ margin:1.25rem 0 0; max-width:34rem; font-size:1.075rem; line-height:1.7; color:var(--ink-soft); }
.irp-hero__cta{ margin-top:1.75rem; display:flex; flex-wrap:wrap; gap:.75rem; }
.irp-hero__metrics{ margin-top:2.25rem; display:grid; grid-template-columns:repeat(4,auto); gap:1.25rem 2rem; }
.irp-hero__metrics div{ border-left:2px solid var(--line-strong); padding-left:1rem; }
.irp-hero__metrics b{ display:block; font-family:var(--font-display); font-size:1.05rem; }
.irp-hero__metrics span{ font-size:.8rem; color:var(--muted); }
.irp-hero__media{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.irp-hero__fig1{ transform:translateY(1.5rem); }
.irp-hero__chip{ position:absolute; left:50%; bottom:-.75rem; transform:translateX(-50%); white-space:nowrap;
  background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:.6rem 1rem; font-size:.85rem;
  box-shadow:var(--shadow-lift); }
@media(max-width:900px){ .irp-hero{ grid-template-columns:1fr; } .irp-hero__metrics{ grid-template-columns:repeat(2,auto); } }

/* ---------- Программы ---------- */
.irp-progs{ display:grid; gap:1.5rem; }
.irp-prog{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  display:flex; flex-direction:column; box-shadow:var(--shadow-soft); }
.irp-prog__body{ padding:1.6rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.irp-prog__top{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.irp-prog__badge{ font-size:.72rem; font-weight:600; color:var(--sand); background:rgba(220,196,158,.18); padding:.2rem .6rem; border-radius:999px; }
.irp-prog__title{ font-size:1.25rem; margin:.2rem 0 0; }
.irp-prog__title a{ color:inherit; text-decoration:none; }
.irp-prog__title a:hover{ color:var(--indigo); }
.irp-prog__sub{ color:var(--ink-soft); line-height:1.6; }
.irp-prog__meta{ list-style:none; margin:.4rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem .9rem;
  font-size:.85rem; color:var(--muted); }
.irp-prog__meta li{ position:relative; }
.irp-prog__meta li+li::before{ content:"·"; margin-right:.6rem; color:var(--line-strong); }
.irp-prog__foot{ margin-top:auto; padding-top:1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.irp-prog__price{ font-family:var(--font-display); font-size:1.15rem; font-weight:600; color:var(--indigo); }
.irp-prog--featured{ display:grid; grid-template-columns:1fr 1.1fr; align-items:stretch; }
.irp-prog--featured .irp-prog__media{ padding:1.25rem; display:flex; }
.irp-prog--featured .irp-prog__media .ph{ width:100%; }
.irp-prog--featured .irp-prog__body{ padding:2rem; }
.irp-prog--featured .irp-prog__title{ font-size:1.7rem; }
@media(max-width:760px){ .irp-prog--featured{ grid-template-columns:1fr; } }
/* левый акцент по тону для вторичных карточек */
.irp-grid .irp-prog{ border-left:3px solid var(--indigo-300); }
.irp-grid .irp-prog.irp-tone-steel{ border-left-color:var(--steel); }
.irp-grid .irp-prog.irp-tone-lavender{ border-left-color:var(--lavender); }
.irp-grid .irp-prog.irp-tone-sand{ border-left-color:var(--sand); }

/* ---------- Мероприятия ---------- */
.irp-event{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-soft); }
.irp-event__inner{ display:flex; gap:1rem; padding:1.4rem; text-decoration:none; color:inherit; }
.irp-event__date{ flex:none; width:64px; height:64px; border-radius:16px; background:var(--indigo); color:var(--canvas);
  display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; }
.irp-event__day{ font-family:var(--font-display); font-size:1.4rem; font-weight:600; }
.irp-event__month{ font-size:.7rem; text-transform:uppercase; opacity:.75; margin-top:.2rem; }
.irp-event__head{ display:flex; align-items:center; gap:.6rem; }
.irp-event__type{ font-size:.72rem; font-weight:600; text-transform:uppercase; color:var(--steel); }
.irp-event__title{ display:block; font-family:var(--font-display); font-weight:600; font-size:1.05rem; margin:.35rem 0; }
.irp-event__inner:hover .irp-event__title{ color:var(--indigo); }
.irp-event__sub{ font-size:.85rem; color:var(--muted); }

/* ---------- Статьи ---------- */
.irp-art{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-soft); }
.irp-art__media{ display:block; }
.irp-art__media .ph{ border-radius:0; }
.irp-art__body{ padding:1.4rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
.irp-art__title{ font-size:1.15rem; margin:.2rem 0 0; }
.irp-art__title a{ color:inherit; text-decoration:none; }
.irp-art__title a:hover{ color:var(--indigo); }
.irp-art__excerpt{ color:var(--ink-soft); line-height:1.6; font-size:.95rem; }
.irp-art__meta{ margin-top:auto; padding-top:.5rem; font-size:.8rem; color:var(--muted); }
.irp-art--featured{ display:grid; grid-template-columns:1.1fr 1fr; align-items:stretch; }
.irp-art--featured .irp-art__title{ font-size:1.6rem; }
@media(max-width:760px){ .irp-art--featured{ grid-template-columns:1fr; } }

/* ---------- Преподаватели ---------- */
.irp-teacher{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.irp-teacher--sm{ display:flex; flex-direction:column; }
.irp-teacher__body{ padding:1.4rem; }
.irp-teacher__name{ font-size:1.2rem; }
.irp-teacher__role{ color:var(--indigo); font-weight:600; font-size:.9rem; margin-top:.2rem; }
.irp-teacher__exp{ color:var(--muted); font-size:.85rem; margin-top:.3rem; }
.irp-teacher__bio{ color:var(--ink-soft); line-height:1.65; margin-top:.8rem; }
.irp-teacher__quote{ margin:1rem 0 0; padding-left:1rem; border-left:3px solid var(--sand);
  font-family:var(--font-display); font-style:italic; color:var(--ink); }
.irp-teacher--lg{ display:grid; grid-template-columns:.8fr 1.2fr; gap:0; align-items:stretch; }
.irp-teacher--lg .irp-teacher__media{ padding:1.25rem; display:flex; }
.irp-teacher--lg .irp-teacher__media .ph{ width:100%; }
.irp-teacher--lg .irp-teacher__body{ padding:2rem; }
@media(max-width:700px){ .irp-teacher--lg{ grid-template-columns:1fr; } }

/* ---------- Траектория ---------- */
.irp-roadmap{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; position:relative; }
.irp-roadmap__step{ position:relative; }
.irp-roadmap__num{ display:flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:999px;
  background:var(--indigo); color:var(--canvas); font-family:var(--font-display); font-weight:600; margin-bottom:1rem; position:relative; z-index:1; }
.irp-roadmap__step:not(:last-child)::before{ content:""; position:absolute; top:20px; left:40px; right:-1.25rem; height:2px;
  background:linear-gradient(90deg,var(--indigo-300),transparent); }
.irp-roadmap__card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:1.3rem; height:100%; }
.irp-roadmap__level{ font-size:.72rem; font-weight:600; text-transform:uppercase; color:var(--steel); }
.irp-roadmap__title{ font-size:1.1rem; margin:.4rem 0; }
.irp-roadmap__title a{ color:inherit; text-decoration:none; }
.irp-roadmap__title a:hover{ color:var(--indigo); }
.irp-roadmap__text{ color:var(--ink-soft); font-size:.9rem; line-height:1.55; }
.irp-roadmap__dur{ display:inline-block; margin-top:.6rem; font-size:.8rem; color:var(--muted); }
@media(max-width:900px){ .irp-roadmap{ grid-template-columns:repeat(2,1fr); } .irp-roadmap__step::before{ display:none; } }
@media(max-width:520px){ .irp-roadmap{ grid-template-columns:1fr; } }

/* ---------- Блок «что такое ИРП» ---------- */
.irp-about-intro{ display:grid; grid-template-columns:1fr 1.1fr; gap:2.5rem; align-items:center;
  max-width:var(--maxw); margin-inline:auto; padding:clamp(3rem,7vw,5rem) var(--px); }
.irp-principles{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem; }
.irp-principle{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:1.1rem; }
.irp-principle h3{ font-size:1rem; }
.irp-principle p{ color:var(--ink-soft); font-size:.88rem; line-height:1.55; margin-top:.4rem; }
@media(max-width:820px){ .irp-about-intro{ grid-template-columns:1fr; } .irp-principles{ grid-template-columns:1fr; } }

/* ---------- Детальные страницы ---------- */
.irp-detail{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--px); }
.irp-detail__head{ display:grid; grid-template-columns:1.4fr .9fr; gap:2rem; border-radius:var(--r-lg);
  padding:2rem; margin-block:1.5rem; background:var(--surface); }
.irp-detail__lead{ font-size:1.15rem; line-height:1.6; color:var(--ink-soft); margin:1rem 0; max-width:36rem; }
.irp-detail__facts{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:0; }
.irp-detail__facts dt{ font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.irp-detail__facts dd{ margin:.3rem 0 0; font-weight:600; font-size:.9rem; }
.irp-pricecard{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.6rem;
  box-shadow:var(--shadow-lift); display:flex; flex-direction:column; gap:.5rem; height:max-content; }
.irp-pricecard__label{ font-size:.85rem; color:var(--muted); }
.irp-pricecard__price{ font-family:var(--font-display); font-size:1.9rem; font-weight:600; }
.irp-pricecard__note{ font-size:.85rem; color:var(--ink-soft); margin-bottom:.5rem; }
.irp-pricecard .btn,.irp-pricecard .btn-ghost{ width:100%; }
.irp-pricecard--dark{ background:var(--indigo); color:var(--canvas); }
.irp-pricecard--dark .irp-pricecard__price{ color:#fff; }
.irp-pricecard__date{ display:flex; align-items:baseline; gap:.4rem; }
.irp-pricecard__date b{ font-family:var(--font-display); font-size:1.6rem; }
@media(max-width:820px){ .irp-detail__head{ grid-template-columns:1fr; } .irp-detail__facts{ grid-template-columns:repeat(2,1fr); } }

.irp-block{ max-width:900px; margin-inline:auto; padding-block:2.5rem; }
.irp-block h2{ margin-top:.4rem; }
.irp-block--soft{ background:var(--surface); border-radius:var(--r-lg); padding:2rem; max-width:none; }
.irp-checklist{ list-style:none; margin:1.2rem 0 0; padding:0; display:grid; gap:.7rem; }
.irp-checklist li{ position:relative; padding-left:1.8rem; line-height:1.55; color:var(--ink-soft); }
.irp-checklist li::before{ content:"✓"; position:absolute; left:0; top:0; color:var(--moss); font-weight:700; }
.irp-results{ display:grid; grid-template-columns:1.1fr 1fr; gap:1.25rem; margin-top:1.2rem; }
.irp-results__key{ border-radius:var(--r-lg); padding:1.6rem; color:#fff; display:flex; align-items:flex-end; }
.irp-results__key p{ font-family:var(--font-display); font-size:1.15rem; line-height:1.4; }
@media(max-width:700px){ .irp-results{ grid-template-columns:1fr; } }
.irp-modules{ list-style:none; counter-reset:m; margin:1.2rem 0 0; padding:0; display:grid; gap:1rem; }
.irp-module{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.4rem; }
.irp-module__head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.5rem; }
.irp-module__head h3{ font-size:1.1rem; }
.irp-module__head span{ font-size:.72rem; text-transform:uppercase; color:var(--muted); font-weight:600; }
.irp-module p{ color:var(--ink-soft); line-height:1.6; margin-top:.6rem; }
.irp-module__res{ color:var(--ink); }
.irp-formatgrid{ margin-top:1.2rem; }
.irp-formatcell{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:1.2rem; }
.irp-formatcell__label{ font-size:.72rem; text-transform:uppercase; color:var(--indigo-300); font-weight:700; }
.irp-formatcell p{ color:var(--ink-soft); line-height:1.55; margin-top:.5rem; }
.irp-pricewrap{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:1rem; }
.irp-pricewrap__price{ font-family:var(--font-display); font-size:2.2rem; font-weight:600; display:block; }
@media(max-width:700px){ .irp-pricewrap{ grid-template-columns:1fr; } }
.irp-agenda{ list-style:none; margin:1.2rem 0 0; padding:0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.irp-agenda li{ display:flex; gap:1.2rem; padding:1rem 1.4rem; background:var(--paper); }
.irp-agenda li+li{ border-top:1px solid var(--line); }
.irp-agenda__time{ flex:none; font-family:var(--font-display); font-weight:600; color:var(--indigo-300); min-width:90px; }

/* FAQ */
.irp-faq{ margin-top:1.2rem; display:grid; gap:.6rem; }
.irp-faq__item{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:.4rem 1.2rem; }
.irp-faq__item summary{ cursor:pointer; padding:.9rem 0; font-family:var(--font-display); font-weight:600; list-style:none; }
.irp-faq__item summary::-webkit-details-marker{ display:none; }
.irp-faq__item summary::after{ content:"+"; float:right; color:var(--indigo-300); font-size:1.2rem; }
.irp-faq__item[open] summary::after{ content:"–"; }
.irp-faq__a{ padding:0 0 1rem; color:var(--ink-soft); line-height:1.6; }

/* статья */
.irp-article{ max-width:760px; margin-inline:auto; padding-inline:var(--px); }
.irp-article__lead{ font-size:1.3rem; line-height:1.55; color:var(--ink); margin:1.5rem 0; }
.irp-toc{ background:var(--surface); border-radius:var(--r); padding:1.2rem 1.4rem; margin:1.5rem 0; }
.irp-toc__label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:600; }
.irp-toc ol{ margin:.6rem 0 0; padding-left:1.1rem; }
.irp-toc a{ color:var(--ink-soft); text-decoration:none; }
.irp-toc a:hover{ color:var(--indigo); }
.irp-article__section{ padding-top:1.5rem; scroll-margin-top:90px; }
.irp-article__section h2{ font-size:1.5rem; }
.irp-article__section p{ color:var(--ink-soft); line-height:1.75; margin-top:.8rem; }
.irp-related{ margin-top:2.5rem; background:var(--surface); border-radius:var(--r-lg); padding:1.6rem; }
.irp-related__list{ display:grid; gap:.6rem; margin-top:1rem; }
.irp-relprog{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line);
  border-radius:14px; padding:.9rem 1.1rem; text-decoration:none; color:inherit; }
.irp-relprog:hover{ box-shadow:var(--shadow-lift); }
.irp-relprog b{ font-family:var(--font-display); }
.irp-relprog span{ font-size:.85rem; color:var(--muted); margin-top:.15rem; }

/* CTA */
.irp-cta{ max-width:var(--maxw); margin:3rem auto; padding-inline:var(--px); }
.irp-cta__inner{ background:var(--indigo); color:var(--canvas); border-radius:var(--r-lg); padding:clamp(2rem,5vw,3.5rem);
  display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; }
.irp-cta__title{ color:#fff; }
.irp-cta__sub{ color:rgba(250,247,241,.8); margin-top:1rem; line-height:1.6; }
@media(max-width:820px){ .irp-cta__inner{ grid-template-columns:1fr; } }

/* формы */
.irp-form{ display:grid; gap:1rem; }
.irp-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:560px){ .irp-form__row{ grid-template-columns:1fr; } }
.irp-form label{ display:flex; flex-direction:column; gap:.35rem; font-size:.85rem; font-weight:600; color:var(--ink); }
.irp-form input,.irp-form select,.irp-form textarea{ font:inherit; font-weight:400; padding:.7rem .9rem;
  border:1px solid var(--line-strong); border-radius:12px; background:var(--paper); color:var(--ink); }
.irp-form input:focus,.irp-form select:focus,.irp-form textarea:focus{ outline:2px solid var(--indigo); outline-offset:1px; }
.irp-form__consent{ flex-direction:row; align-items:flex-start; gap:.6rem; font-weight:400; font-size:.82rem; color:var(--ink-soft); }
.irp-form__consent input{ margin-top:.2rem; }
.irp-form__consent a{ color:var(--indigo); }
.irp-form__status{ font-size:.85rem; margin:0; }
.irp-form__status.ok{ color:var(--moss); }
.irp-form__status.err{ color:#b4453a; }
.irp-form--dark label{ color:var(--canvas); }
.irp-form--dark .irp-form__consent{ color:rgba(250,247,241,.75); }
.irp-form--dark input,.irp-form--dark select,.irp-form--dark textarea{ background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.2); color:#fff; }
.irp-form--dark .irp-form__consent a{ color:var(--sand); }

/* контакты */
.irp-contacts{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.irp-contacts__card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.4rem;
  text-decoration:none; color:inherit; display:flex; flex-direction:column; gap:.3rem; }
.irp-contacts__label{ font-size:.72rem; text-transform:uppercase; color:var(--muted); }
.irp-contacts__card b{ font-family:var(--font-display); font-size:1.1rem; }
.irp-social{ margin-top:1rem; display:flex; gap:.6rem; flex-wrap:wrap; }
.irp-social a{ border:1px solid var(--line-strong); border-radius:999px; padding:.5rem 1rem; text-decoration:none;
  color:var(--ink-soft); font-size:.85rem; font-weight:600; }
.irp-social a:hover{ border-color:var(--indigo); color:var(--indigo); }
@media(max-width:560px){ .irp-contacts{ grid-template-columns:1fr; } }

/* документы */
.irp-docgroup{ margin-bottom:2.5rem; }
.irp-docgroup__title{ margin-bottom:1.2rem; }
.irp-doc{ display:flex; gap:1.1rem; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.5rem; }
.irp-doc__icon{ flex:none; width:48px; height:48px; border-radius:14px; background:rgba(35,41,95,.1); color:var(--indigo);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.8rem; }
.irp-doc__title{ font-size:1.05rem; }
.irp-doc__desc{ color:var(--ink-soft); font-size:.9rem; line-height:1.55; margin-top:.5rem; }
.irp-doc__meta{ font-size:.78rem; color:var(--muted); margin-top:.6rem; }
.irp-doc__tag{ background:var(--surface); border-radius:999px; padding:.15rem .55rem; font-weight:600; }
.irp-doc__actions{ margin-top:1rem; display:flex; gap:.6rem; align-items:center; }

.irp-empty{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:2rem; text-align:center; color:var(--ink-soft); }
