/* ==========================================================================
   SHU — Clean SaaS 2026 (шаблон Joomla)
   Смена направления (было: Liquid Glass — блюр/полупрозрачность/aurora).
   По итогам разбора реальных референсов (Linear, Stripe, топ SaaS/edu
   2026) — современность в 2026 делает не блюр, а: сплошные карточки на
   тонкой рамке + мягкая тень, уверенная крупная типографика, минимум
   визуального шума, точечный яркий акцент. Токены — в блоке 1,
   перекраска сайта = правка этого блока. */

/* ---------------------------------------------------------- 1. токены */
:root{
  color-scheme: light;
  --ground:#ffffff;
  --ground-2:#f8fafc;
  --ink:#0f172a;
  --ink-2:#475569;
  --ink-3:#94a3b8;
  --ink-inv:#f8fafc;

  /* .glass/.liquid-shell и т.д. используют эти переменные — раньше это
     было полупрозрачное стекло, теперь сплошная белая карточка. Имена
     токенов не меняю, чтобы не переписывать сотню правил по всему файлу —
     меняю только то, что за ними стоит. */
  --glass:#ffffff;
  --glass-2:#ffffff;
  --glass-3:#ffffff;
  --glass-panel:#ffffff;
  --sheen:none;
  --rim:var(--line);
  --hi:transparent;
  --hi-lo:transparent;
  --hover-hi:var(--ground-2);

  --line:#e2e8f0;
  --line-2:#edf1f6;

  /* яркий синий/индиго — акцент по референсам Linear/Vercel 2026 */
  --accent:#2563eb;
  --accent-ink:#1d4ed8;
  --accent-2:#4f46e5;
  --accent-3:#4f46e5;
  --accent-soft:#eff4ff;
  --ok:#059669;
  --warn:#b45309;

  --blob-1:transparent; --blob-2:transparent; --blob-3:transparent; --blob-4:transparent;
  --blend:normal;
  --grain:0;

  /* мягкие тени по референсу (Linear/Stripe) — не драматичный «глубокий»
     блюр-тень стекла, а короткая, почти незаметная опора под карточкой */
  --shadow:0 20px 40px -24px rgba(15,23,42,.16), 0 2px 8px -2px rgba(15,23,42,.06);
  --shadow-sm:0 1px 2px rgba(15,23,42,.05), 0 8px 20px -12px rgba(15,23,42,.10);
  --shadow-key:0 24px 48px -24px rgba(37,99,235,.22), 0 2px 8px -2px rgba(15,23,42,.08);

  --r-xl:28px; --r-lg:18px; --r-md:13px; --r-sm:10px;
  --blur:0px;
  --gut:clamp(16px,3vw,40px);
  /* контейнер держит ~96% ширины вьюпорта на ЛЮБОМ размере экрана —
     от телефона до ультраширокого монитора, не «сжимается» в узкую
     центрированную колонку на больших мониторах. max-width — только
     чтобы на 4K/ультраширoких экранах строки текста не расползались
     до нечитаемой длины, а не чтобы «сузить» сайт до классики 1200px. */
  --shell:min(96vw,2100px);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --ground:#0a0e1a; --ground-2:#0f1420;
    --ink:#f1f5f9; --ink-2:#94a3b8; --ink-3:#64748b; --ink-inv:#0a0e1a;
    --glass:#12172a; --glass-2:#12172a; --glass-3:#151b30; --glass-panel:#12172a;
    --sheen:none; --rim:var(--line); --hi:transparent; --hi-lo:transparent; --hover-hi:#171d33;
    --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.06);
    --accent:#6d8dff; --accent-ink:#8fa8ff; --accent-2:#818cf8; --accent-3:#818cf8;
    --accent-soft:rgba(109,141,255,.14); --ok:#34d399; --warn:#e5b04a;
    --blob-1:transparent; --blob-2:transparent; --blob-3:transparent; --blob-4:transparent;
    --blend:normal; --grain:0;
    --shadow:0 24px 48px -24px rgba(0,0,0,.6), 0 2px 10px -2px rgba(0,0,0,.4);
    --shadow-sm:0 1px 2px rgba(0,0,0,.3), 0 10px 24px -14px rgba(0,0,0,.5);
    --shadow-key:0 28px 56px -28px rgba(109,141,255,.28), 0 2px 10px -2px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --ground:#0a0e1a; --ground-2:#0f1420;
  --ink:#f1f5f9; --ink-2:#94a3b8; --ink-3:#64748b; --ink-inv:#0a0e1a;
  --glass:#12172a; --glass-2:#12172a; --glass-3:#151b30; --glass-panel:#12172a;
  --sheen:none; --rim:var(--line); --hi:transparent; --hi-lo:transparent; --hover-hi:#171d33;
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.06);
  --accent:#6d8dff; --accent-ink:#8fa8ff; --accent-2:#818cf8; --accent-3:#818cf8;
  --accent-soft:rgba(109,141,255,.14); --ok:#34d399; --warn:#e5b04a;
  --blob-1:transparent; --blob-2:transparent; --blob-3:transparent; --blob-4:transparent;
  --blend:normal; --grain:0;
  --shadow:0 24px 48px -24px rgba(0,0,0,.6), 0 2px 10px -2px rgba(0,0,0,.4);
  --shadow-sm:0 1px 2px rgba(0,0,0,.3), 0 10px 24px -14px rgba(0,0,0,.5);
  --shadow-key:0 28px 56px -28px rgba(109,141,255,.28), 0 2px 10px -2px rgba(0,0,0,.5);
}

/* ------------------------------------------------------------ 2. база */
.glass-tpl,.glass-tpl *,.glass-tpl *::before,.glass-tpl *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }

body.glass-tpl{
  margin:0;min-height:100vh;
  background:var(--ground);
  color:var(--ink);
  font-family:'Onest',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:16.5px;line-height:1.62;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
/* Unbounded — красивый дисплейный шрифт, но у казахских букв Ғ Қ Ң Ұ Ү Ә Ө І
   в его жирных начертаниях нет своих глифов: браузер подставляет вместо них
   более тонкий шрифт прямо внутри слова. Onest даёт эти буквы штатно —
   поэтому все заголовки только на нём, Unbounded не используем вовсе. */
.glass-tpl h1,.glass-tpl h2,.glass-tpl h3,.glass-tpl h4,
.glass-tpl .item-page h1,.glass-tpl .item-page h2,.glass-tpl .item-page h3{
  margin:0 0 .6em;
  font-family:'Onest',ui-sans-serif,system-ui,sans-serif;
  font-weight:800;letter-spacing:-.02em;line-height:1.12;text-wrap:balance;
}
.glass-tpl h1{font-size:clamp(1.9rem,4.6vw,3.2rem);line-height:1.05}
.glass-tpl h2{font-size:clamp(1.5rem,3vw,2.2rem)}
.glass-tpl h3{font-size:clamp(1.05rem,1.5vw,1.28rem)}
.glass-tpl p{margin:0 0 1em}
.glass-tpl ul,.glass-tpl ol{margin:0 0 1em;padding-left:1.3em}
.glass-tpl img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.glass-tpl a{color:var(--accent-ink);text-decoration:none}
.glass-tpl .item-page a,.glass-tpl .sppb-addon-content a{text-underline-offset:.2em}
.glass-tpl .item-page a:hover,.glass-tpl .sppb-addon-content a:hover{text-decoration:underline}
.glass-tpl button{font:inherit;color:inherit}
.glass-tpl table{border-collapse:collapse;width:100%;margin-bottom:1.4em}
.glass-tpl table th,.glass-tpl table td{padding:.6em .8em;border:1px solid var(--line-2);text-align:left}
.glass-tpl table th{background:var(--glass-2);font-weight:700}
.glass-tpl blockquote{margin:1.2em 0;padding:.2em 1.2em;border-left:3px solid var(--accent);color:var(--ink-2)}

:where(a,button,input,select,summary,[tabindex]):focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:9px;
}
.glass-tpl ::selection{background:var(--accent);color:#fff}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--gut);top:-70px;z-index:200;padding:11px 20px;border-radius:999px;background:var(--ink);color:var(--ground);font-size:14px;font-weight:600;text-decoration:none;transition:top .2s ease}
.skip:focus{top:14px}

/* --------------------------------------------------- 3. материал стекла */
/* --shell уже = min(96vw, 2100px) — сама ширина и есть «отступ от края»,
   доп. padding-inline тут не нужен (иначе итоговая ширина контента будет
   заметно меньше 96%); внутренние отступы даёт .liquid-shell своим padding */
.shell{width:var(--shell);margin-inline:auto}

.glass{
  position:relative;border:1px solid transparent;border-radius:var(--r-lg);
  background-image:var(--sheen),linear-gradient(var(--glass),var(--glass));
  background-origin:padding-box;background-clip:padding-box;background-color:transparent;
  box-shadow:var(--shadow),inset 0 1px 0 var(--hi),inset 0 -1px 0 var(--hi-lo);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(170%);
  backdrop-filter:blur(var(--blur)) saturate(170%);
}
.glass::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;
  background:var(--rim);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;
}
.glass-pane{--glass:var(--glass-panel)}

body.glass-tpl::after{
  content:"";position:fixed;inset:0;z-index:90;pointer-events:none;
  opacity:var(--grain);mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------- 4. примитивы */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.8rem 1.4rem;border-radius:var(--r-md);font-size:.88rem;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease,background-color .18s ease;position:relative}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 14px -2px rgba(37,99,235,.35)}
.btn-primary:hover{background:var(--accent-ink);transform:translateY(-1px);color:#fff}
.btn-glass{background:var(--glass-3);color:var(--ink);border-color:var(--line)}
.btn-glass:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;background:var(--glass-3);border:1px solid var(--line);color:var(--ink-2)}
.chip-accent{color:var(--accent-ink)}
.field{width:100%;background:var(--glass-3);border:1px solid var(--line);border-radius:var(--r-md);padding:.85rem 1rem;font:inherit;font-size:.9rem;color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.field:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.icon-btn{width:38px;height:38px;flex:none;border-radius:999px;display:grid;place-items:center;cursor:pointer;color:var(--ink-2);border:1px solid var(--line);background:var(--glass-3);transition:color .2s ease,transform .2s ease}
.icon-btn:hover{color:var(--ink)}

/* ------------------------------------------------------- 5. световое поле
   Aurora-блобы — эстетика Liquid Glass, в новом Clean SaaS направлении
   не используется (чистый белый/тёмный фон без декоративных пятен). */
.field-light{display:none}
.field-light--unused{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.field-light i{position:absolute;display:block;border-radius:50%;mix-blend-mode:var(--blend);will-change:transform;animation:drift 46s ease-in-out infinite alternate}
.field-light i:nth-child(1){width:78vmax;height:78vmax;top:-26vmax;left:-20vmax;background:radial-gradient(circle,var(--blob-1) 0%,transparent 68%)}
.field-light i:nth-child(2){width:64vmax;height:64vmax;top:4vmax;right:-22vmax;background:radial-gradient(circle,var(--blob-2) 0%,transparent 68%);animation-duration:53s}
.field-light i:nth-child(3){width:58vmax;height:58vmax;bottom:-22vmax;left:14vmax;background:radial-gradient(circle,var(--blob-3) 0%,transparent 68%);animation-duration:48s}
.field-light i:nth-child(4){width:48vmax;height:48vmax;top:40vmax;right:10vmax;background:radial-gradient(circle,var(--blob-4) 0%,transparent 68%);animation-duration:57s}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vmax,-5vmax,0) scale(1.08)}100%{transform:translate3d(-5vmax,3vmax,0) scale(.95)}}
@media (prefers-reduced-motion:reduce){.field-light i{animation:none}}

/* -------------------------------------------------------- 6. навигация */
.top{position:sticky;top:0;z-index:100;padding-block:10px}
.top-in{display:flex;align-items:center;gap:1.1rem;justify-content:space-between;padding:.65rem .7rem .65rem 1.2rem;border-radius:999px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;flex:none}
.brand-mark-img{display:block;height:34px;width:auto;border-radius:8px}
.brand-txt{display:flex;flex-direction:column;line-height:1.08}
.brand-name{font-family:'Onest',sans-serif;font-weight:800;font-size:.82rem;letter-spacing:-.01em;color:var(--ink)}

/* ---- desktop dropdown, построено на стандартной разметке mod_menu ----
   Редизайн навигации: крупнее и увереннее типографика верхнего уровня,
   индикатор активного пункта снизу (а не просто заливка), и — главное —
   выпадающие панели для разделов с большим числом пунктов (Студенту·14,
   Наука·12, Образование·9) раскладываются в 2 колонки вместо длинного
   вертикального списка, который раньше упирался в нижний край экрана. */
.nav{display:flex;flex:1 1 auto;min-width:0}
.nav ul.nav-child{display:none}
.nav > ul{display:flex;align-items:center;gap:2px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.nav > ul > li{position:relative}
.nav a{text-decoration:none}
.nav > ul > li > a{
  position:relative;display:block;padding:.6rem .8rem;border-radius:999px;
  font-size:.88rem;font-weight:700;letter-spacing:-.005em;
  color:var(--ink-2);white-space:nowrap;transition:background-color .2s ease,color .2s ease;
}
.nav > ul > li > a::before{
  content:"";position:absolute;left:.8rem;right:.8rem;bottom:.2rem;height:2px;border-radius:2px;
  background:var(--accent-ink);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.16,1,.3,1);
}
.nav > ul > li > a:hover{background:var(--hover-hi);color:var(--ink)}
.nav > ul > li.current > a,.nav > ul > li.active > a{color:var(--ink)}
.nav > ul > li.current > a::before,.nav > ul > li.active > a::before{transform:scaleX(1)}
.nav li.parent > a::after{content:"";display:inline-block;margin-left:.4em;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.55;transition:transform .2s ease}
.nav li.parent:hover > a::after,.nav li.parent.js-open > a::after{transform:translateY(0) rotate(225deg)}

.nav > ul > li.parent > ul.nav-child{
  position:absolute;top:100%;left:0;margin-top:10px;min-width:270px;max-width:340px;
  display:block;list-style:none;padding:.6rem;margin-left:0;
  border-radius:var(--r-lg);border:1px solid var(--line);
  background:var(--glass-panel);
  box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
  z-index:60;
}
/* mega-panel: секции с 7+ пунктами (Студенту, Наука, Образование) —
   раскладка в 2 колонки, без правки разметки mod_menu, чисто CSS */
.nav > ul > li.parent > ul.nav-child:has(li:nth-child(7)){
  columns:2;column-gap:.4rem;max-width:560px;min-width:480px;
}
.nav > ul > li.parent > ul.nav-child:has(li:nth-child(7)) > li{break-inside:avoid}
.nav > ul > li.parent > ul.nav-child{max-height:78vh;overflow-y:auto}

/* компактный триггер «···» — сворачивает верхний уровень до 6 пунктов
   + одной круглой кнопки-переполнения (см. site.js, collapseTopNav) */
.nav > ul > li.more-trigger > a{
  padding:.6rem .75rem;font-size:1.1rem;letter-spacing:.12em;line-height:1;
}
.nav > ul > li.more-trigger > ul.nav-child{right:0;left:auto;min-width:300px}
.nav > ul > li.more-trigger > ul.nav-child:has(li:nth-child(7)){right:0;left:auto}
.nav > ul > li.parent:hover > ul.nav-child,
.nav > ul > li.parent:focus-within > ul.nav-child,
.nav > ul > li.parent.js-open > ul.nav-child{
  opacity:1;visibility:visible;transform:translateY(0);
}
.nav .nav-child li{position:relative}
.nav .nav-child > li > a{display:block;padding:.55rem .7rem;border-radius:var(--r-sm);font-size:.85rem;font-weight:500;color:var(--ink-2)}
.nav .nav-child > li > a:hover{background:var(--hover-hi);color:var(--ink)}
.nav .nav-child .nav-child{
  position:absolute;top:0;left:100%;margin-left:6px;min-width:240px;
  border-radius:var(--r-md);border:1px solid var(--line);background:var(--glass-panel);
  box-shadow:var(--shadow);
  padding:.5rem;opacity:0;visibility:hidden;transform:translateX(4px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.nav .nav-child li.parent:hover > .nav-child,
.nav .nav-child li.parent:focus-within > .nav-child,
.nav .nav-child li.parent.js-open > .nav-child{opacity:1;visibility:visible;transform:translateX(0)}

.top-actions{display:flex;align-items:center;gap:.45rem;flex:none}
.lang-slot .lang-inline{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.lang-slot .lang-inline li a{display:block;padding:.4rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;color:var(--ink-3);letter-spacing:.03em}
.lang-slot .lang-inline li.lang-active a{background:var(--accent-soft);color:var(--accent-ink)}
.lang-slot .lang-inline li a:hover{color:var(--ink)}

.burger{display:none;flex-direction:column;justify-content:center;gap:4px}
.burger span{display:block;width:16px;height:2px;background:currentColor;border-radius:2px}

/* ---- поиск ---- */
.search-drop{position:absolute;right:var(--gut);top:100%;margin-top:8px;width:min(360px,90vw);padding:.7rem;border-radius:var(--r-lg);z-index:70}
.search-drop[hidden]{display:none}
.search-form{display:flex;gap:.5rem}
.search-form .field{flex:1}

/* ---- мобильный drawer ---- */
.drawer-overlay{position:fixed;inset:0;background:rgba(5,8,20,.5);z-index:150;backdrop-filter:blur(2px)}
.drawer-overlay[hidden]{display:none}
.drawer{
  position:fixed;top:0;right:0;height:100%;width:min(360px,88vw);z-index:160;
  background:var(--glass-panel);
  border-left:1px solid var(--line);box-shadow:var(--shadow);
  transform:translateX(100%);transition:transform .32s cubic-bezier(.16,1,.3,1);
  display:flex;flex-direction:column;overflow-y:auto;
}
.drawer.is-open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem;border-bottom:1px solid var(--line-2)}
.drawer-body{padding:.8rem 1.1rem 2rem}
.drawer-nav ul{list-style:none;margin:0;padding:0}
.drawer-nav > ul > li{border-bottom:1px solid var(--line-2)}
.drawer-nav li > a{display:block;padding:.75rem .2rem;font-weight:600;color:var(--ink);text-decoration:none}
.drawer-nav .nav-child{list-style:none;margin:0 0 .4rem;padding-left:.9rem;display:none}
.drawer-nav li.js-open > .nav-child{display:block}
.drawer-nav .nav-child a{font-weight:500;font-size:.92rem;color:var(--ink-2);padding:.55rem .2rem}
.drawer-nav li.parent{position:relative}
.drawer-nav li.parent > a{padding-right:2.2rem}
.drawer-toggle-caret{position:absolute;right:0;top:.35rem;width:34px;height:34px;display:grid;place-items:center;border-radius:999px;background:var(--glass-3);color:var(--ink-2)}
.drawer-toggle-caret svg{transition:transform .2s ease}
.drawer-nav li.js-open > .drawer-toggle-caret svg{transform:rotate(180deg)}
.drawer-lang{margin-top:1rem}
.drawer-lang .lang-inline{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}
.drawer-lang .lang-inline a{padding:.5rem .9rem;border-radius:999px;background:var(--glass-3);border:1px solid var(--line);font-weight:700;font-size:.78rem}

/* -------------------------------------- 6b. контейнер страницы
   Раньше вся страница лежала в одной большой «стеклянной» панели —
   в Clean SaaS направлении это не нужно: страница живёт прямо на белом/
   тёмном фоне, а карточками являются отдельные компоненты (.glass,
   .hp-card, аддоны и т.д.), а не всё содержимое целиком. */
.page-shell-wrap{position:relative;z-index:10;padding-block:14px 32px}
.liquid-shell{
  position:relative;
  padding:clamp(1.1rem,3vw,2.4rem);
}

/* ------------------------------------------------------ 7. хлебные крошки */
.crumbs-wrap{position:relative;z-index:2;margin-bottom:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--line-2)}
ul.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;list-style:none;margin:0;padding:0;font-size:.78rem;color:var(--ink-3)}
ul.breadcrumb li{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
ul.breadcrumb a{color:var(--ink-2);font-weight:600}
ul.breadcrumb a:hover{color:var(--accent-ink)}
ul.breadcrumb .divider{opacity:.5}

/* ------------------------------------------------------------ 8. main */
main{position:relative;z-index:2;min-height:30vh}

/* Joomla core com_content и системные сообщения */
#system-message-container{position:relative;z-index:20}
.alert,.alert-message,#system-message .alert{
  padding:.9rem 1.2rem;border-radius:var(--r-md);margin-bottom:1rem;
  background:var(--glass-3);border:1px solid var(--line);color:var(--ink);
}
.item-page{position:relative}
.item-page .page-header,.item-page header{margin-bottom:1.2rem}
.article-info{display:flex;flex-wrap:wrap;gap:.6rem 1rem;font-size:.8rem;color:var(--ink-3);margin-bottom:1.4rem;list-style:none;padding:0}
.article-info li{list-style:none}
.pagination,.pagenav,.pager{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:1.6rem 0 0;padding:0}
.pagination li,.pagenav li{list-style:none}
.pagination a,.pagination span,.pagenav a,.pagenav span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 .6rem;border-radius:999px;background:var(--glass-3);border:1px solid var(--line);font-size:.85rem;font-weight:600;color:var(--ink-2)}
.pagination a:hover{color:var(--ink);background:var(--hover-hi)}
.pagination .active a,.pagination .active span{background:var(--accent);color:#fff;border-color:transparent}
form#member-registration,form.form-horizontal,form#login-form{display:grid;gap:.8rem;max-width:520px}
form label{font-size:.85rem;font-weight:600;color:var(--ink-2)}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea{
  background:var(--glass-3);border:1px solid var(--line);border-radius:var(--r-md);
  padding:.75rem .9rem;font:inherit;color:var(--ink);width:100%;
}

/* com_content уже внутри .liquid-shell — второй слой стекла не нужен */
.item-page,#sp-page-builder{position:relative}
.item-page{padding:0}

/* ------------------------------------------------- 9. sppagebuilder — гармонизация с материалом
   Все секции конструктора получают ОДИН материал вместо своих сплошных
   белых/бежевых плашек — цвет и тон задаёт стекло, а не админ-пресет. */
.sp-page-builder .sppb-section{background-color:transparent!important;box-shadow:none!important}
.sp-page-builder .sppb-section{padding-top:clamp(1.4rem,3vw,2.6rem)!important;padding-bottom:clamp(1.4rem,3vw,2.6rem)!important}
.sp-page-builder .sppb-row-container,.sp-page-builder .sppb-container-inner{max-width:100%}

/* .sppb-addon-title используется и для h1-заголовков секций, и для p-подзаголовков —
   у sppagebuilder.css свой жёстко заданный тёмно-серый цвет, который не реагирует
   на тёмную тему и на тёмном фоне становится почти нечитаемым. Забираем цвет себе. */
.sp-page-builder .sppb-addon-title{font-family:'Onest',sans-serif;font-weight:800;letter-spacing:-.02em;color:var(--ink)!important}
p.sppb-addon-title{font-weight:500!important;color:var(--ink-2)!important;font-size:1rem!important}
h1.sppb-addon-title,p.sppb-addon-title{margin-bottom:.5rem}

/* кнопки: контраст текста и вменяемые радиусы даже для block/xlg-баннеров */
.sp-page-builder .sppb-btn{border-radius:999px!important;font-weight:700!important;letter-spacing:0;border-width:1px!important}
.sp-page-builder .sppb-btn-block{border-radius:var(--r-lg)!important}
.sp-page-builder .sppb-btn-info,
.sp-page-builder .sppb-btn-primary,
.sp-page-builder .sppb-btn-custom,
.sp-page-builder .sppb-btn-success,
.sp-page-builder .sppb-btn-danger,
.sp-page-builder .sppb-btn-dark{color:#fff!important}
.sp-page-builder .sppb-btn-info{background:var(--accent)!important;border-color:transparent!important}
.sp-page-builder .sppb-btn-custom{background:var(--ink)!important;border-color:var(--ink)!important}
.sp-page-builder .sppb-btn-light,.sp-page-builder .sppb-btn-white{color:var(--ink)!important}

/* карточки статей — из плоских белых прямоугольников в стеклянные тайлы
   с лёгким «радужным» свечением кромки при наведении (2026-стекло) */
.sp-page-builder .sppb-addon-article{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .2s ease;
}
.sp-page-builder .sppb-addon-article:hover{
  transform:translateY(-5px);background:var(--glass-3);
  box-shadow:var(--shadow-key);
}
.sp-page-builder .sppb-addon-article .sppb-article-img-wrap{display:block;margin:0}
.sp-page-builder .sppb-addon-article img,.sp-page-builder .sppb-article-img-wrap img{border-radius:0;margin:0;aspect-ratio:16/10;object-fit:cover;width:100%}
.sp-page-builder .sppb-addon-article .sppb-article-info-wrap{padding:1.1rem 1.2rem 1.3rem}
.sp-page-builder .sppb-addon-article h3{margin:0 0 .5rem;font-size:1rem}
.sp-page-builder .sppb-addon-article h3 a{color:var(--ink);font-weight:600}
.sp-page-builder .sppb-addon-article h3 a:hover{color:var(--accent-ink)}
.sp-page-builder .sppb-meta-date{color:var(--ink-3)!important;font-size:.78rem}

/* feature-плитки (Portal / Мобильді қосымша / ...) */
.sp-page-builder .sppb-addon-feature{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.4rem;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;
}
.sp-page-builder .sppb-addon-feature:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-sm);
}
/* у "feature"-аддона своя, отдельно закрашенная и часто фикс-высотой
   область текста (.sppb-media-content) — админ красил её в белый ещё для
   старой темы; в тёмной теме и на длинном тексте это давало непрозрачную
   белую заплатку и обрезанный/наезжающий текст */
.sp-page-builder .sppb-addon-feature .sppb-media-content{
  background-color:transparent!important;height:auto!important;min-height:0!important;
  overflow:visible!important;color:var(--ink-2)
}
.sp-page-builder .sppb-addon-feature h3,
.sp-page-builder .sppb-addon-feature .sppb-feature-box-title{color:var(--ink)!important}
.sp-page-builder .sppb-addon-feature .sppb-addon-text{color:var(--ink-2)!important}

/* карусели партнёров/достижений — лёгкая стеклянная рамка вместо голого фона */
.sp-page-builder .sppb-carousel-extended{border-radius:var(--r-lg);overflow:hidden}
.sp-page-builder .sppb-image-carousel-layout2{background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:1.2rem}

/* слайдер-герой — закруглённая рамка внутри стекла, а не острые углы встык */
.sp-page-builder .sp-slider,.sp-page-builder [id^="sp-slider-item"]{border-radius:var(--r-lg);overflow:hidden}

/* одиночные картинки / видео-обложки */
.sp-page-builder .sppb-addon-single-image img{border-radius:var(--r-lg)}

/* ------------------------------------- 9b. остальные SPPB-аддоны в стекле
   Person, Accordion, Gallery, Image Carousel, Timeline, Testimonial,
   Clients, Divider, Icon, Button Group, Pricing/Pricelist, Form
   Builder/Ajax Contact, Alert, Flip Box, Countdown — те же материал и
   ритм, что и у уже переделанных Article/Feature-аддонов выше, не
   отдельная стилистика на каждый тип. */

/* person — карточка преподавателя/сотрудника */
.sp-page-builder .sppb-addon-person{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.3rem;overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .2s ease;
}
.sp-page-builder .sppb-addon-person:hover{
  transform:translateY(-4px);background:var(--glass-3);
  box-shadow:var(--shadow-sm);
}
.sp-page-builder .sppb-person-image{border-radius:var(--r-md);overflow:hidden}
.sp-page-builder .sppb-person-image img{border-radius:var(--r-md);aspect-ratio:3/4;object-fit:cover;width:100%}
.sp-page-builder .sppb-person-addon-content-wrap h3,
.sp-page-builder .sppb-person-addon-content-wrap .sppb-person-name{color:var(--ink)!important;font-weight:800;margin-bottom:.15em}
.sp-page-builder .sppb-person-designation{
  display:inline-flex;color:var(--accent-ink)!important;font-weight:700;font-size:.82rem;
  letter-spacing:.01em;margin-bottom:.6em;
}
.sp-page-builder .sppb-person-email a,
.sp-page-builder .sppb-person-addon-content-wrap a{color:var(--ink-2)!important}
.sp-page-builder .sppb-person-email a:hover{color:var(--accent-ink)!important}

/* accordion / FAQ */
.sp-page-builder .sppb-panel-group{display:flex;flex-direction:column;gap:.6rem}
.sp-page-builder .sppb-panel{
  background:var(--glass-2)!important;border:1px solid var(--line-2)!important;border-radius:var(--r-lg)!important;
  box-shadow:none!important;overflow:hidden;
}
.sp-page-builder .sppb-panel-heading{background:transparent!important;padding:0!important;border:0!important}
.sp-page-builder .sppb-panel-heading a{
  display:flex!important;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.2rem!important;font-weight:700;color:var(--ink)!important;text-decoration:none!important;
}
.sp-page-builder .sppb-accordion-icon-wrap{
  flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:999px;
  background:var(--glass-3);color:var(--accent-ink);transition:transform .25s cubic-bezier(.16,1,.3,1);
}
.sp-page-builder .sppb-panel-heading[aria-expanded="true"] .sppb-accordion-icon-wrap,
.sp-page-builder .sppb-panel-heading.active .sppb-accordion-icon-wrap{transform:rotate(45deg)}
.sp-page-builder .sppb-panel-body{
  padding:0 1.2rem 1.1rem!important;color:var(--ink-2)!important;border-top:1px solid var(--line-2)!important;
  padding-top:.9rem!important;
}

/* gallery */
.sp-page-builder .sppb-gallery{gap:.6rem}
.sp-page-builder .sppb-gallery .gallery-item-inner,
.sp-page-builder .sppb-gallery a{
  display:block;border-radius:var(--r-md);overflow:hidden;position:relative;
  box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.sp-page-builder .sppb-gallery a:hover{transform:scale(1.02)}
.sp-page-builder .sppb-gallery img{border-radius:var(--r-md);aspect-ratio:4/3;object-fit:cover;width:100%}

/* image carousel / достижения-слайдер */
.sp-page-builder .sppb-carousel-extended-item{border-radius:var(--r-lg);overflow:hidden}
.sp-page-builder .sppb-carousel-extended-item-overlay{
  background:linear-gradient(0deg,rgba(10,15,30,.78) 0%,rgba(10,15,30,.15) 55%,transparent 100%)!important;
}
.sp-page-builder .sppb-carousel-extended-heading{color:#fff!important;font-weight:800!important}
.sp-page-builder .sppb-carousel-extended-subheading,
.sp-page-builder .sppb-carousel-extended-description{color:rgba(255,255,255,.85)!important}

/* timeline — та же логика, что и roadmap-этапы поступления */
.sp-page-builder .sppb-addon-timeline-wrapper{position:relative}
.sp-page-builder .timeline-item .sppb-addon-timeline-text-wrap{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm);
}

/* testimonial — цитата в стекле */
.sp-page-builder .sppb-addon-testimonial-content-wrap{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.4rem 1.5rem;
}
.sp-page-builder .sppb-addon-testimonial-review{color:var(--ink-2)!important;font-style:italic;line-height:1.7}
.sp-page-builder .sppb-addon-testimonial-client{color:var(--ink)!important;font-weight:800}
.sp-page-builder .sppb-addon-testimonial-client-url{color:var(--ink-3)!important;font-size:.8rem}

/* clients / партнёры — как в референсе: ч/б до hover */
.sp-page-builder .sppb-addon-clients-image{
  filter:grayscale(1);opacity:.6;transition:opacity .25s ease,filter .25s ease;
}
.sp-page-builder .sppb-addon-clients-image:hover{filter:grayscale(0);opacity:1}

/* divider — тонкая градиентная линия вместо серого hr */
.sp-page-builder .sppb-divider{
  border-top-color:transparent!important;height:1px!important;
  background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent)!important;
}

/* icon — круглый стеклянный бейдж */
.sp-page-builder .sppb-icon{
  background:var(--glass-3)!important;border:1px solid var(--line);border-radius:999px;
  box-shadow:var(--shadow-sm);
}

/* button group — просто ритм между кнопками, сами кнопки уже стеклянные (см. блок 9) */
.sp-page-builder .sppb-addon-button-group{display:flex;flex-wrap:wrap;gap:.7rem}

/* pricing table */
.sp-page-builder .sppb-pricing-box{
  background:var(--glass-2)!important;border:1px solid var(--line-2)!important;border-radius:var(--r-lg)!important;
  box-shadow:var(--shadow-sm)!important;overflow:hidden;
}
.sp-page-builder .sppb-pricing-header{background:transparent!important}
.sp-page-builder .sppb-pricing-price{color:var(--accent-ink)!important;font-weight:900!important}
.sp-page-builder .sppb-pricing-features{color:var(--ink-2)!important}
.sp-page-builder .sppb-pricing-footer{border-top:1px solid var(--line-2)!important;background:transparent!important}

/* pricelist — простой список название...цена */
.sp-page-builder .sppb-addon-pricelist{color:var(--ink-2)}
.sp-page-builder .sppb-addon-pricelist .sppb-addon-title{border-bottom:1px dashed var(--line);padding-bottom:.2em}

/* form_builder / ajax_contact — единый стеклянный стиль форм по всему сайту */
.sp-page-builder .sppb-addon-form-builder,
.sp-page-builder .sppb-addon-ajax-contact{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:1.4rem;
}
.sp-page-builder input[type="checkbox"],.sp-page-builder input[type="radio"],
input[type="checkbox"],input[type="radio"]{
  width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;
}
.sp-page-builder .sppb-form-check{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--ink-2)}
.sp-page-builder .sppb-field-required{color:#dc2626!important}
.sp-page-builder .sppb-ajax-contact-status{
  border-radius:var(--r-md);padding:.7rem 1rem;font-weight:600;font-size:.88rem;margin-top:.8rem;
}

/* alert */
.sp-page-builder .sppb-alert{
  border-radius:var(--r-md)!important;border:1px solid var(--line)!important;
  background:var(--glass-3)!important;color:var(--ink)!important;
  border-left:4px solid var(--accent)!important;
}
.sp-page-builder .sppb-alert-success{border-left-color:var(--ok)!important}
.sp-page-builder .sppb-alert-warning{border-left-color:var(--warn)!important}
.sp-page-builder .sppb-alert-danger{border-left-color:#dc2626!important}

/* flip box — не трогаем transform/perspective (3D-логика аддона),
   только материал лицевой/обратной панели */
.sp-page-builder .sppb-flipbox-front,.sp-page-builder .sppb-flipbox-back{
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);
}

/* countdown — числа как мини-плитки стекла */
.sp-page-builder .sppb-countdown-timer > div{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-md);
  padding:.8rem 1rem;text-align:center;
}

/* ---------------------------------- 9c. переиспользуемые карточки данных
   Для будущих Joomla template overrides (com_content, списки сотрудников/
   документов на страницах кафедр) — единый компонент, не изобретать
   заново разметку на каждой странице. */
.card-doc{
  display:flex;align-items:center;gap:.9rem;background:var(--glass-2);
  border:1px solid var(--line-2);border-radius:var(--r-md);padding:.9rem 1.1rem;
  text-decoration:none;color:var(--ink);transition:transform .22s ease,background-color .2s ease;
}
.card-doc:hover{transform:translateY(-2px);background:var(--glass-3)}
.card-doc__icon{
  flex:none;width:42px;height:42px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent-ink);font-weight:800;font-size:.72rem;
}
.card-doc__title{font-weight:700;font-size:.92rem;line-height:1.3}
.card-doc__meta{font-size:.76rem;color:var(--ink-3);margin-top:.15em}

/* --------------------------------------------------------- 10. футер
   Редизайн: не плоский стек одинаковых блоков, а витрина — крупная
   брендовая колонка слева (лого + миссия + контакты одним взглядом) и
   компактные колонки ссылок справа, в общей grid-сетке. */
.foot-wrap{position:relative;z-index:2;margin-top:2.6rem;padding-top:2rem;border-top:1px solid var(--line-2)}
.foot-stack{display:grid;grid-template-columns:1.3fr .85fr .85fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:start}
.foot-block-sm{font-size:.92rem}
.foot-block .sppb-addon-title,.foot-block h2{
  font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ink-3);margin:0 0 .9rem;
}
.foot-block .sppb-addon-content,.foot-block p{font-size:.85rem;color:var(--ink-3);line-height:1.7}
.foot-block a{color:var(--ink-2)}
.foot-block a:hover{color:var(--accent-ink)}
.foot-block .sppb-row{display:flex;flex-wrap:wrap;gap:1.6rem 2rem}
.foot-block .sppb-col-md-4{flex:1 1 240px;min-width:0}

.foot-brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;margin-bottom:.9rem}
.foot-brand img{height:30px;width:auto;border-radius:7px}
.foot-brand span{font-weight:800;color:var(--ink);letter-spacing:-.01em}
.foot-lead{font-size:.88rem;color:var(--ink-2);line-height:1.7;max-width:42ch;margin:0 0 1.1rem}
.foot-contacts{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-size:.86rem}
.foot-contacts li{display:flex;gap:.5rem;color:var(--ink-2)}
.foot-contacts__label{flex:none;font-weight:700;color:var(--ink-3);min-width:5.2em}
.foot-contacts a{color:var(--ink-2);font-weight:600}
.foot-contacts a:hover{color:var(--accent-ink)}

.foot-links{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;font-size:.86rem}
.foot-links a{color:var(--ink-2)}
.foot-links a:hover{color:var(--accent-ink)}

.foot-block-sm ul.mod-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;font-size:.86rem}
.foot-block-sm ul.mod-list li{margin:0}

.foot-bottom{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  padding-top:1.3rem;margin-top:2rem;border-top:1px solid var(--line-2);font-size:.78rem;color:var(--ink-3);
}
.foot-a11y a{color:var(--ink-3);text-decoration:underline}
.foot-visits{padding-top:.5rem;font-size:.72rem;color:var(--ink-3);opacity:.8}

@media (max-width:860px){
  .foot-stack{grid-template-columns:1fr;gap:1.8rem}
}

/* ------------------------------------------ 13. com_content: статья
   (override templates/shu_glass/html/com_content/article/default.php) */
.article-view .eyebrow{
  font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:var(--accent-ink);margin:0 0 .4em;
}
.article-hero{margin-bottom:1.3rem}
.article-hero h1{margin-bottom:.5rem}
.article-tools{display:flex;justify-content:flex-end;gap:.4rem;margin-bottom:.6rem}
.article-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.article-tags a{
  display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;
  background:var(--glass-3);border:1px solid var(--line);color:var(--ink-2)!important;
  font-size:.74rem;font-weight:700;text-decoration:none!important;
}
.article-tags a:hover{color:var(--accent-ink)!important;background:var(--accent-soft)}
.article-cover{margin:0 0 1.4rem;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.article-cover img{display:block;width:100%;border-radius:var(--r-lg);margin:0}
.article-body{font-size:1rem;line-height:1.75;color:var(--ink-2)}
.article-body h2,.article-body h3{color:var(--ink)}
.article-body img{border-radius:var(--r-md)}
.readmore .btn,.readmore a.btn{
  display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.3rem;border-radius:var(--r-md);
  background:var(--accent);color:#fff!important;
  font-weight:700;font-size:.85rem;text-decoration:none!important;
  box-shadow:0 4px 14px -2px rgba(37,99,235,.35);transition:transform .18s ease,background-color .18s ease;
}
.readmore .btn:hover{transform:translateY(-2px)}

/* ------------------------------------------ 13b. com_content: категория
   (override templates/shu_glass/html/com_content/category/blog.php) */
.category-blog .subheading-category{color:var(--accent-ink);font-weight:700}
.category-blog .category-desc{margin-bottom:1.4rem;color:var(--ink-2)}
.category-blog .category-desc img{border-radius:var(--r-lg);margin-bottom:.8rem}
.category-blog .empty-state{
  padding:2rem;text-align:center;color:var(--ink-3);background:var(--glass-2);
  border:1px dashed var(--line);border-radius:var(--r-lg);
}
/* Bootstrap2 row-fluid/span* сетка ничем не стилизована на фронте Joomla —
   превращаем её в CSS-grid, не трогая PHP-цикл, который её генерирует */
.category-blog .items-leading{display:grid;gap:1.4rem;margin-bottom:1.4rem}
.category-blog .items-row{
  display:grid;gap:1.4rem;margin-bottom:1.4rem;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}
.category-blog .items-row [class*="span"]{width:auto;float:none;margin:0}
.category-blog .post-card{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.3rem;height:100%;overflow:hidden;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .2s ease;
}
.category-blog .post-card:hover{
  transform:translateY(-4px);background:var(--glass-3);
  box-shadow:var(--shadow-sm);
}
.category-blog .post-card--lead{padding:1.6rem}
.category-blog .item-image{float:none!important;margin:0 0 1rem}
.category-blog .item-image img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-md);margin:0}
.category-blog .post-card .page-header{margin-bottom:.5rem}
.category-blog .post-card .page-header h2{font-size:1.05rem;margin:0}
.category-blog .post-card .page-header h2 a{color:var(--ink)}
.category-blog .post-card .page-header h2 a:hover{color:var(--accent-ink)}
.category-blog .post-card .article-info{margin-bottom:.6rem}

/* ------------------------------------------ 13d. лид-формы (замена
   сломанного mod_pwebcontact — .custom вокруг это обёртка mod_custom) */
.custom .lead-form{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.5rem;max-width:640px;
}
.lead-form h3{margin:0 0 .3rem}
.lead-form p.lead-form__hint{color:var(--ink-3);font-size:.86rem;margin:0 0 1rem}
.lead-form form{display:grid;gap:.8rem}
.lead-form label{display:block;font-size:.82rem;font-weight:700;color:var(--ink-2);margin-bottom:.3rem}
.lead-form .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-form__checks{display:flex;flex-wrap:wrap;gap:.5rem .9rem}
.lead-form__checks label{display:inline-flex;align-items:center;gap:.4rem;font-weight:500;margin:0}
.lead-form .btn-primary{justify-self:start;margin-top:.3rem}
.lead-form__msg{
  border-radius:var(--r-md);padding:.75rem 1rem;font-weight:600;font-size:.88rem;margin:0 0 1rem;
}
.lead-form__msg.is-ok{background:rgba(16,185,129,.14);color:var(--ok);border:1px solid rgba(16,185,129,.3)}
.lead-form__msg.is-error{background:rgba(220,38,38,.1);color:#dc2626;border:1px solid rgba(220,38,38,.28)}

/* ------------------------------------------ 13c. com_search */
.search .page-title{margin-bottom:1rem}
#searchForm{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.2rem;margin-bottom:1.4rem;
}
#searchForm .btn-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
#searchForm .inputbox{flex:1 1 240px;min-width:0}
#searchForm fieldset{border:0;padding:1rem 0 0;margin:0}
#searchForm fieldset legend{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:0}
#searchForm .checkbox{display:inline-flex;align-items:center;gap:.4rem;margin-right:1rem;font-size:.85rem;color:var(--ink-2)}
.search-results{margin:0}
.search-results .result-title{
  font-weight:800;font-size:1.02rem;margin:1.2rem 0 .3rem;padding-top:1.1rem;
  border-top:1px solid var(--line-2);
}
.search-results dt.result-title:first-child{border-top:0;padding-top:0;margin-top:0}
.search-results .result-title a{color:var(--ink)}
.search-results .result-title a:hover{color:var(--accent-ink)}
.search-results .result-category{color:var(--ink-3);font-size:.78rem;margin:0 0 .3rem}
.search-results .result-text{color:var(--ink-2);margin:0 0 .3rem}
.search-results .result-created{color:var(--ink-3);font-size:.76rem}
/* базовый .btn без модификатора (search/легаси-контент) — не голый текст */
.btn:not(.btn-primary):not(.btn-glass):not(.btn-glass-accent){
  background:var(--glass-3);border:1px solid var(--line);color:var(--ink);
}
.btn:not(.btn-primary):not(.btn-glass):not(.btn-glass-accent):hover{background:var(--hover-hi)}

/* --------------------------------------------------------- 11. ошибка */
.error-card{max-width:560px;margin-inline:auto;padding:clamp(1.6rem,4vw,3rem);text-align:center}
.error-card .hero-cta{justify-content:center;display:flex;padding-top:1.4rem}

/* ---------------------------------------------------- 12. адаптив */
@media (max-width:1180px){
  .nav{display:none}
  .top-in{padding:.5rem .5rem .5rem .9rem}
  .burger{display:flex}
}
@media (max-width:640px){
  body.glass-tpl{font-size:16px}
  .liquid-shell{border-radius:24px}
  .foot-block .sppb-row{flex-direction:column;gap:1.2rem}
}

/* ------------------------------------------------------ 14. новая главная
   Насыщенная композиция без «слабых» фото университета — материал, цвет
   и иллюстративная графика вместо фотографий: градиентный hero с
   декоративной SVG-композицией, иконки, программы, факультеты, кампус
   без фото (иконки-плитки), новости (реальные), CTA. Единый custom-модуль,
   встроенный в SPPB-страницу одним addon'ом. */
.home-2026{display:grid;gap:clamp(2.2rem,4.5vw,3.8rem)}

.home-hero{
  position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:clamp(440px,54vw,580px);
  display:flex;align-items:center;padding:clamp(1.8rem,4.5vw,3.6rem);
  box-shadow:var(--shadow);
  background:
    radial-gradient(120% 140% at 82% 18%, rgba(139,92,246,.55) 0%, transparent 55%),
    radial-gradient(100% 120% at 100% 100%, rgba(6,182,212,.5) 0%, transparent 60%),
    linear-gradient(135deg, #0a1230 0%, #131c46 45%, #1d1454 100%);
}
.home-hero__deco{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.home-hero__deco svg{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:min(52%,620px);height:auto;opacity:.95}
.home-hero__body{position:relative;z-index:1;max-width:58ch;color:#fff}
.home-hero__badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.1rem}
.home-hero__badges .chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff;backdrop-filter:blur(8px)}
.home-hero h1{color:#fff;font-size:clamp(2rem,4.6vw,3.4rem);margin-bottom:.6rem}
.home-hero__lead{color:rgba(255,255,255,.86);font-size:1.02rem;line-height:1.65;max-width:52ch;margin:0 0 1.5rem}
.home-hero__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.home-hero__actions .btn-primary{padding:.9rem 1.6rem;background:linear-gradient(135deg,#8b5cf6,#06b6d4);box-shadow:0 10px 24px -8px rgba(139,92,246,.55)}
.home-hero__actions .btn-glass{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32);color:#fff;backdrop-filter:blur(10px)}
.home-hero__actions .btn-glass:hover{background:rgba(255,255,255,.22)}

/* компактная иконка-строка — пять коротких преимуществ, без фото */
.home-icon-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.9rem}
.home-icon-strip__item{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.2rem 1.1rem;text-align:center;
}
.home-icon-strip__badge{
  width:44px;height:44px;margin:0 auto .7rem;border-radius:999px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--accent-ink),#8b5cf6);color:#fff;font-size:1.15rem;
}
.home-icon-strip__title{font-weight:800;color:var(--ink);font-size:.86rem;line-height:1.35}

.home-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.home-fact{
  background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:1.3rem 1.4rem;display:flex;align-items:center;gap:1rem;
  transition:transform .25s ease,box-shadow .25s ease;
}
.home-fact:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.home-fact__icon{
  flex:none;width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;
  background:linear-gradient(135deg,var(--accent-ink),#06b6d4);color:#fff;font-size:1.25rem;
  box-shadow:0 8px 18px -8px rgba(3,69,191,.5);
}
.home-fact:nth-child(2) .home-fact__icon{background:linear-gradient(135deg,#8b5cf6,#ec4899)}
.home-fact:nth-child(3) .home-fact__icon{background:linear-gradient(135deg,#059669,#06b6d4)}
.home-fact__title{font-weight:800;color:var(--ink);font-size:.98rem;line-height:1.3}
.home-fact__sub{font-size:.8rem;color:var(--ink-3);margin-top:.15em}

/* программы — цветные градиентные плитки-иконки вместо фото */
.home-programs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem}
.home-program-card{
  display:block;text-decoration:none;background:var(--glass-2);border:1px solid var(--line-2);
  border-radius:var(--r-lg);padding:1.4rem;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .2s ease;
}
.home-program-card:hover{transform:translateY(-4px);background:var(--glass-3);box-shadow:var(--shadow-key)}
.home-program-card__badge{
  width:48px;height:48px;border-radius:var(--r-md);display:grid;place-items:center;color:#fff;font-size:1.3rem;margin-bottom:1rem;
}
.home-program-card h3{margin:0 0 .4rem;font-size:1.02rem;color:var(--ink)}
.home-program-card p{margin:0;font-size:.84rem;color:var(--ink-3);line-height:1.55}
.home-program-card__go{display:inline-block;margin-top:.7rem;color:var(--accent-ink);font-weight:700;font-size:.82rem}

.home-section__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}
.home-section__eyebrow{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink);margin:0 0 .35em}
.home-section__head h2{margin:0}

.home-faculties{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem}
.home-faculty-card{
  display:block;text-decoration:none;background:var(--glass-2);border:1px solid var(--line-2);
  border-radius:var(--r-lg);padding:1.6rem;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .2s ease;
}
.home-faculty-card:hover{
  transform:translateY(-4px);background:var(--glass-3);
  box-shadow:var(--shadow-key);
}
.home-faculty-card__num{font-size:.76rem;font-weight:800;color:var(--ink-3);letter-spacing:.04em}
.home-faculty-card h3{margin:.5rem 0 .5rem;color:var(--ink);font-size:1.2rem}
.home-faculty-card__go{color:var(--accent-ink);font-weight:700;font-size:.86rem}

/* кампус — вместо слабых фото жизни студентов: цветные иконки-плитки */
.home-campus{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem}
.home-campus-tile{
  position:relative;overflow:hidden;border-radius:var(--r-lg);padding:1.5rem 1.4rem;min-height:150px;
  display:flex;flex-direction:column;justify-content:flex-end;color:#fff;
}
.home-campus-tile::before{
  content:"";position:absolute;inset:0;z-index:0;opacity:.16;
  background-image:radial-gradient(circle at 30% 20%, #fff 0, transparent 45%);
}
.home-campus-tile__icon{position:relative;z-index:1;font-size:1.6rem;margin-bottom:.6rem;opacity:.92}
.home-campus-tile__title{position:relative;z-index:1;font-weight:800;font-size:1rem}
.home-campus-tile__sub{position:relative;z-index:1;font-size:.78rem;color:rgba(255,255,255,.8);margin-top:.2rem}
.home-campus-tile:nth-child(1){background:linear-gradient(135deg,#0345bf,#06b6d4)}
.home-campus-tile:nth-child(2){background:linear-gradient(135deg,#7c3aed,#ec4899)}
.home-campus-tile:nth-child(3){background:linear-gradient(135deg,#059669,#0d9488)}
.home-campus-tile:nth-child(4){background:linear-gradient(135deg,#ea580c,#dc2626)}

.home-news{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem}
.home-news-card{
  display:flex;flex-direction:column;text-decoration:none;background:var(--glass-2);
  border:1px solid var(--line-2);border-radius:var(--r-lg);overflow:hidden;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .2s ease;
}
.home-news-card:hover{transform:translateY(-4px);background:var(--glass-3);box-shadow:var(--shadow-key)}
.home-news-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.home-news-card__body{padding:1.1rem 1.2rem 1.3rem}
.home-news-card__date{font-size:.74rem;color:var(--accent-ink);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.home-news-card h3{font-size:.98rem;margin:.5rem 0 0;color:var(--ink);line-height:1.4}

.home-cta{
  position:relative;overflow:hidden;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;
  color:#f1f5f9;border-radius:var(--r-xl);padding:clamp(1.6rem,4vw,2.6rem);
  background:
    radial-gradient(120% 160% at 90% 0%, rgba(6,182,212,.45) 0%, transparent 55%),
    radial-gradient(100% 140% at 0% 100%, rgba(139,92,246,.45) 0%, transparent 55%),
    linear-gradient(120deg,#0a1230,#131c46);
}
.home-cta__title{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:800;margin:0 0 .4rem;color:#fff}
.home-cta__lead{color:rgba(241,245,249,.75);font-size:.94rem;max-width:46ch;margin:0}
.home-cta__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.home-cta .btn-glass-accent{
  background:linear-gradient(135deg,var(--accent-ink),#0891b2);color:#fff;border-color:transparent;
  padding:.9rem 1.6rem;border-radius:999px;font-weight:800;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
}
.home-cta .btn-glass-outline{
  border:1px solid rgba(255,255,255,.3);color:#fff;padding:.9rem 1.6rem;border-radius:999px;
  font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;
}
.home-cta .btn-glass-outline:hover{background:rgba(255,255,255,.1)}

@media (max-width:760px){
  .home-hero{align-items:flex-end;min-height:440px}
  .home-hero__deco svg{opacity:.55}
}

/* ==================================================== 15. Главная v3
   По прямому референсу заказчика: чистые белые/тёмные карточки с тонкой
   рамкой вместо стекла+блюра, плотная многосекционная страница (hero →
   новости → программы → о нас+факты → особенности → быстрые ссылки →
   материалы → контакты). Карточки берут цвет из --glass-panel (уже
   theme-aware), но БЕЗ backdrop-filter — плоский «чистый SaaS», не
   liquid-glass. Старые .home-* классы (v2) не удаляю — на случай отката,
   просто новый контент их больше не использует. */
.hp{display:grid;gap:clamp(2.4rem,4.5vw,3.6rem)}

.hp-card{
  background:var(--glass-panel);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
}

/* --- hero: без реальных фото (на них случайные люди, которых заказчик
   не хочет видеть на витрине) — крупная векторная композиция в том же
   языке, что и .hp-about-deco: абстрактные градиентные плитки + акцентный
   чек-символ, без стока и без блюра. --- */
.hp-hero{
  position:relative;overflow:hidden;border-radius:var(--r-xl);min-height:clamp(460px,52vw,580px);
  display:flex;align-items:center;padding:clamp(1.8rem,4.5vw,3.6rem);box-shadow:var(--shadow);
  background:linear-gradient(120deg,#0a1230 0%,#1d3fa8 55%,#2563eb 100%);
}
.hp-hero__deco{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hp-hero__deco::before,.hp-hero__deco::after{
  content:"";position:absolute;border-radius:50%;filter:blur(60px);
}
.hp-hero__deco::before{width:46vmax;height:46vmax;right:-14vmax;top:-16vmax;background:radial-gradient(circle,rgba(139,92,246,.45),transparent 70%)}
.hp-hero__deco::after{width:38vmax;height:38vmax;right:2vmax;bottom:-18vmax;background:radial-gradient(circle,rgba(6,182,212,.4),transparent 70%)}
.hp-hero__deco svg{position:absolute;right:clamp(8px,3vw,40px);bottom:12px;width:min(20%,190px);height:auto}
.hp-hero__inner{position:relative;z-index:1;max-width:56ch;color:#fff}
.hp-hero__badge{
  display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  color:#dbeafe;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:7px 15px;border-radius:999px;margin-bottom:1.2rem;
}
.hp-hero h1{color:#fff;font-size:clamp(2.1rem,4.8vw,3.4rem);line-height:1.1;font-weight:800;letter-spacing:-.03em;margin-bottom:.8rem}
.hp-hero p{color:#c7d7f8;font-size:1.02rem;max-width:48ch;margin:0 0 1.5rem;line-height:1.6}
.hp-hero__actions{display:flex;gap:.7rem;flex-wrap:wrap}
.hp-chips{position:absolute;right:clamp(20px,4vw,56px);top:clamp(20px,4vw,56px);z-index:1;display:flex;flex-direction:column;gap:10px}
.hp-chip{
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:16px;
  padding:14px 20px;color:#fff;text-align:center;min-width:118px;
}
.hp-chip b{display:block;font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
.hp-chip span{font-size:.72rem;color:#c7d7f8;font-weight:600}

.hp-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;flex-wrap:wrap}
.hp-section-head h2{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;letter-spacing:-.02em;margin:0 0 .3em;line-height:1.15}
.hp-section-head .sub{color:var(--ink-3);max-width:52ch;font-size:.92rem}
.hp-link-more{color:var(--accent-ink);font-weight:700;font-size:.86rem;white-space:nowrap;transition:gap .18s ease;display:inline-flex;gap:.4em}
.hp-link-more:hover{gap:.7em}

/* --- новости: 6 карточек, градиент+эмодзи вместо слабых фото --- */
.hp-news{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.hp-news-card{display:flex;flex-direction:column;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}
.hp-news-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.hp-news-img{height:150px;position:relative}
.hp-news-img .ph{position:absolute;inset:0;display:grid;place-items:center;font-size:2.3rem}
.hp-news-date{
  position:absolute;left:12px;top:12px;background:rgba(255,255,255,.95);border-radius:10px;padding:5px 9px;
  text-align:center;line-height:1.05;box-shadow:var(--shadow-sm);
}
.hp-news-date b{display:block;font-size:.95rem;color:var(--accent-ink)}
.hp-news-date span{font-size:.6rem;color:#64748b;font-weight:700;text-transform:uppercase}
.hp-news-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.hp-news-tag{font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink)}
.hp-news-body h3{font-size:.94rem;font-weight:700;line-height:1.4;letter-spacing:-.01em;color:var(--ink);margin:0}
.hp-news-body .more{margin-top:auto;color:var(--accent-ink);font-weight:700;font-size:.82rem}

/* --- программы: 4 иконки-карточки с акцентной полосой на hover --- */
.hp-programs{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.hp-program-card{position:relative;overflow:hidden;padding:1.5rem 1.3rem;transition:transform .22s ease,box-shadow .22s ease}
.hp-program-card::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--accent-ink);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.hp-program-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.hp-program-card:hover::after{transform:scaleX(1)}
.hp-program-icon{width:48px;height:48px;border-radius:14px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;margin-bottom:1rem;font-size:1.35rem}
.hp-program-card h3{font-size:1.02rem;font-weight:700;margin:0 0 .3em;color:var(--ink);letter-spacing:-.01em}
.hp-program-card p{font-size:.8rem;color:var(--ink-3);margin:0 0 .8rem;line-height:1.5}
.hp-program-card .go{color:var(--accent-ink);font-weight:700;font-size:.82rem}

/* --- о нас + факты + декоративный блок вместо фото --- */
.hp-about{display:grid;grid-template-columns:1.1fr .9fr;gap:2.6rem;align-items:center}
.hp-about p{color:var(--ink-2);margin:0 0 .9rem;line-height:1.7;font-size:.94rem}
.hp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1.3rem 0}
.hp-stat{padding:1.1rem 1rem}
.hp-stat b{display:block;font-size:1.4rem;font-weight:800;color:var(--accent-ink);letter-spacing:-.02em}
.hp-stat span{font-size:.76rem;color:var(--ink-3)}
.hp-about-deco{
  border-radius:var(--r-xl);overflow:hidden;height:340px;position:relative;
  background:linear-gradient(160deg,var(--accent-soft),transparent 60%),var(--glass-2);
  border:1px solid var(--line-2);display:grid;place-items:center;font-size:4.4rem;
}

/* --- особенности: 4 карточки с номером --- */
.hp-process{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.hp-process-card{padding:1.5rem;display:flex;gap:1rem;align-items:flex-start}
.hp-process-num{flex:none;width:38px;height:38px;border-radius:12px;background:var(--accent-ink);color:#fff;font-weight:800;font-size:.85rem;display:grid;place-items:center}
.hp-process-card h3{font-size:.92rem;font-weight:700;margin:0 0 .25em;color:var(--ink)}
.hp-process-card p{font-size:.78rem;color:var(--ink-3);margin:0;line-height:1.5}

/* --- быстрые ссылки: тёмная плотная секция --- */
.hp-quick{background:var(--ink);color:#f1f5f9;border-radius:var(--r-xl);padding:clamp(1.6rem,4vw,2.6rem)}
.hp-quick .hp-section-head h2{color:#fff}
.hp-quick .hp-section-head .sub{color:#94a3b8}
.hp-quick .hp-link-more{color:#93c5fd}
.hp-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.2rem 2rem;margin-top:1.4rem}
.hp-quick-grid a{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.8rem .1rem;
  border-bottom:1px solid rgba(148,163,184,.18);font-size:.88rem;color:#cbd5e1;transition:color .18s ease,padding .18s ease;
}
.hp-quick-grid a:hover{color:#fff;padding-left:.5rem}
.hp-quick-grid a span{opacity:.5}

/* --- материалы: пилюли --- */
.hp-materials{display:flex;flex-wrap:wrap;gap:.7rem}
.hp-mat{
  display:inline-flex;align-items:center;gap:.5rem;background:var(--glass-panel);border:1px solid var(--line);
  border-radius:999px;padding:.65rem 1.2rem;font-size:.86rem;font-weight:700;color:var(--ink-2);transition:transform .18s ease,color .18s ease,border-color .18s ease;
}
.hp-mat:hover{border-color:var(--accent-ink);color:var(--accent-ink);transform:translateY(-2px)}

/* --- контакты (вместо соцсетей — их у вуза нет подтверждённых) --- */
.hp-contact{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.hp-contact-card{padding:1.4rem;display:flex;align-items:center;gap:.9rem}
.hp-contact-card__icon{flex:none;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-size:1.2rem}
.hp-contact-card b{display:block;font-size:.88rem;color:var(--ink)}
.hp-contact-card span{font-size:.78rem;color:var(--ink-3)}

@media (max-width:980px){
  .hp-news{grid-template-columns:repeat(2,1fr)}
  .hp-programs,.hp-process{grid-template-columns:repeat(2,1fr)}
  .hp-about{grid-template-columns:1fr}
  .hp-quick-grid{grid-template-columns:repeat(2,1fr)}
  .hp-contact{grid-template-columns:1fr}
  .hp-chips{position:static;flex-direction:row;flex-wrap:wrap;margin-top:1.2rem}
  .hp-hero{align-items:flex-start;padding-top:2.2rem}
}
@media (max-width:640px){
  .hp-news,.hp-programs,.hp-process{grid-template-columns:1fr}
  .hp-quick-grid{grid-template-columns:1fr}
  .hp-stats{grid-template-columns:1fr 1fr}
}

/* ==================================================== 16. Полировка —
   убираю сигналы «сделано быстро»: голые эмодзи вместо иконок, пустые
   декоративные блоки-заглушки, плоские градиенты без текстуры. Иконки —
   через .icon svg (см. PHP-хелпер icon()), единый stroke-стиль везде. */
.icon{display:inline-flex;flex:none;line-height:0}
.icon svg{display:block;width:100%;height:100%}

.hp-program-icon .icon,.home-fact__icon .icon,.hp-contact-card__icon .icon{width:22px;height:22px}
.hp-icon-badge{width:22px;height:22px}

/* --- иконка вместо гигантского эмодзи по центру новостной карточки --- */
.hp-news-img{
  background-size:cover;
  background-image:
    radial-gradient(circle at 18px 18px, rgba(255,255,255,.35) 1.5px, transparent 1.6px);
  background-size:22px 22px;
}
.hp-news-img .ph{
  position:absolute;left:14px;bottom:14px;top:auto;right:auto;
  width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.22);
  display:grid;place-items:center;font-size:0;color:#fff;
  backdrop-filter:none;
}
.hp-news-img .ph .icon{width:20px;height:20px}

/* --- декоративный блок «о нас» — не пустой emoji-плейсхолдер, а
   абстрактная геометрическая композиция (карточки/учёба, без стока) --- */
.hp-about-deco{
  font-size:0;
  background:
    radial-gradient(circle at 30% 25%, var(--accent-soft) 0%, transparent 45%),
    radial-gradient(circle at 75% 70%, rgba(37,99,235,.08) 0%, transparent 40%),
    var(--glass-2);
}
.hp-about-deco svg{width:62%;height:62%;max-width:220px}

/* --- иконки в тёмной секции быстрых ссылок --- */
.hp-quick-grid a{gap:.7rem}
.hp-quick-grid a .icon{flex:none;width:18px;height:18px;color:#6d8dff;opacity:.85}
.hp-quick-grid a .qtext{flex:1}

/* --- уверенней типографика hero/секций --- */
.hp-hero h1{font-size:clamp(2.1rem,4.8vw,3.4rem);letter-spacing:-.025em}
.hp-section-head h2{font-size:clamp(1.6rem,2.8vw,2.15rem);letter-spacing:-.025em}

/* --- материалы/контакты: иконки вместо эмодзи --- */
.hp-mat .icon{width:16px;height:16px}
.hp-mat{gap:.6rem}

/* ==================================================== 17. side-nav —
   замена сломанного mod_vertical_menu (сторонний JS-виджет рендерился
   пустым): простое рабочее дерево реального меню, 2 уровня. */
.side-nav{background:var(--glass-panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;box-shadow:var(--shadow-sm)}
.side-nav > ul{list-style:none;margin:0;padding:0}
.side-nav > ul > li{border-bottom:1px solid var(--line-2)}
.side-nav > ul > li:last-child{border-bottom:0}
.side-nav > ul > li > a,.side-nav__label{
  display:block;padding:.7rem .6rem;font-weight:700;font-size:.88rem;color:var(--ink);text-decoration:none;
}
.side-nav > ul > li > a:hover{color:var(--accent-ink)}
.side-nav__sub{list-style:none;margin:0 0 .4rem;padding:0 0 0 .8rem}
.side-nav__sub li{margin:0}
.side-nav__sub a{display:block;padding:.5rem .6rem;font-size:.84rem;color:var(--ink-2);text-decoration:none;border-radius:var(--r-sm)}
.side-nav__sub a:hover{color:var(--accent-ink);background:var(--hover-hi)}

/* ==================================================== 18. photo-grid —
   замена сломанного mod_unite_gallery (сторонний JS-виджет рендерился
   пустым, PHP8-несовместимость com_unitegallery). Реальные фото из БД
   галереи, просто сетка + открытие оригинала в новой вкладке — без
   зависимости от стороннего lightbox-JS, гарантированно работает. */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.photo-grid a{
  display:block;border-radius:var(--r-md);overflow:hidden;position:relative;aspect-ratio:4/3;
  box-shadow:var(--shadow-sm);transition:transform .22s ease;
}
.photo-grid a:hover{transform:scale(1.03)}
.photo-grid img{width:100%;height:100%;object-fit:cover;display:block}
