@charset "UTF-8";

/* ============================================================================
   user.css — Joomla 5 / Cassiopeia
   Переработка старого стиля Joomla 3.
   Расположение: media/templates/site/cassiopeia/css/user.css
   (лучше — в дочернем шаблоне, см. заметки в конце файла)

   Порядок разделов:
     01. Токены (переменные)
     02. Темизация рубрик (Page Class Suffix)
     03. База поверх Bootstrap 5 / Cassiopeia
     04. Типографика контента
     05. Ссылки и фокус
     06. Раскладка и контейнеры Cassiopeia
     07. Шапка и логотип
     08. Хлебные крошки
     09. Карточки блога
     10. Страница статьи
     11. Цитаты
     12. Таблицы
     13. Картинки в тексте
     14. Списки и служебные классы контента
     15. Теги
     16. Пагинация
     17. Навигация «предыдущая / следующая»
     18. Сайдбары, меню, модули
     19. Комментарии
     20. Аккордеоны и слайдеры
     21. Галерея
     22. Подвал
     23. Утилиты
     24. Адаптив
     25. Motion / печать
   ========================================================================== */


/* ==========================================================================
   01. ТОКЕНЫ
   Всё, что нужно перекрасить, меняется здесь, а не по всему файлу.
   Цвета ссылок затемнены относительно старых: #8075F9 и #ff840b давали
   контраст 3.6:1 и 2.4:1 — ниже нормы WCAG AA (нужно 4.5:1).
   ========================================================================== */

:root {
  /* --- Цвет --- */
  --c-text:        #3E230F;
  --c-text-soft:   #6B533F;
  --c-muted:       #8A8A8A;
  --c-link:        #6A5DF5;   /* было #8075F9 */
  --c-link-hover:  #C25400;   /* было #ff840b */
  --c-glow:        #FF840B;   /* яркий оранжевый — только для рамок и теней */
  --c-paper:       #FCF8E7;
  --c-page-bg:     #F1F3D5;
  --c-rule:        #C4C6B3;
  --c-rule-soft:   #E4E0D0;
  --c-white:       #FFFFFF;

  /* --- Цвета рубрик --- */
  --cat-success:     #F2595E;
  --cat-ayurveda:    #F9B164;
  --cat-human-life:  #F0D955;
  --cat-family:      #8CC974;
  --cat-mistakes:    #ADB6FF;
  --cat-inspiration: #4ACCF5;

  /* --- Активный акцент (переопределяется в разделе 02) --- */
  --accent:         #CEC5F0;
  --accent-ink:     var(--c-text);       /* текст поверх акцента */
  --accent-texture: none;                /* фоновая текстура рубрики */

  /* --- Путь к картинкам --- */
  /* user.css лежит в .../cassiopeia/css/, значит ../images/ ведёт
     в .../cassiopeia/images/. Старые картинки нужно скопировать туда. */
  --img: "../images";

  /* --- Шрифты --- */
  /* Подхватываем переменные Cassiopeia, если они есть, иначе системный стек. */
  --font-body: var(--cassiopeia-font-family-body,
                   system-ui, -apple-system, "Segoe UI", Roboto,
                   "Helvetica Neue", Arial, sans-serif);
  --font-head: var(--cassiopeia-font-family-headings, var(--font-body));
  --font-quote: Georgia, "Times New Roman", Times, serif;

  /* --- Типографическая шкала (fluid, без брейкпоинтов) --- */
  --fs-xs:   0.8125rem;   /* 13px */
  --fs-sm:   0.9375rem;   /* 15px */
  --fs-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
  --fs-lg:   clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
  --fs-h1:   clamp(1.625rem, 1.30rem + 1.6vw, 2.25rem);
  --fs-h2:   clamp(1.25rem,  1.12rem + 0.6vw, 1.5rem);
  --fs-h3:   clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
  --fs-h4:   1.125rem;

  --lh-tight: 1.25;
  --lh-body:  1.65;   /* было 1.42 — тесно для кириллицы */

  /* --- Ритм --- */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;

  --radius-sm: 0.375rem;
  --radius:    0.625rem;
  --radius-lg: 1.25rem;

  /* --- Ширина колонки текста --- */
  --measure: 68ch;

  /* --- Красная строка --- */
  --indent: 1.5em;

  --ease: cubic-bezier(0.2, 0, 0.2, 1);
  --dur: 180ms;
}


/* ==========================================================================
   02. ТЕМИЗАЦИЯ РУБРИК
   Cassiopeia подставляет Page Class Suffix в class у <body>.
   Одна переменная вместо шести почти одинаковых блоков правил.
   Если суффикс окажется не на <body>, а на .item-page — раскомментируйте
   вторую группу селекторов.
   ========================================================================== */

.item-success     { --accent: var(--cat-success); }
.item-ayurveda    { --accent: var(--cat-ayurveda); }
.item-human-life  { --accent: var(--cat-human-life); }
.item-family      { --accent: var(--cat-family); }
.item-mistakes    { --accent: var(--cat-mistakes); }
.item-inspiration { --accent: var(--cat-inspiration); }

.item-success     { --accent-texture: url("../images/bg-success.jpg"); }
.item-ayurveda    { --accent-texture: url("../images/bg-ayurveda.jpg"); }
.item-human-life  { --accent-texture: url("../images/bg-human-life.jpg"); }
.item-family      { --accent-texture: url("../images/bg-family.jpg"); }
.item-mistakes    { --accent-texture: url("../images/bg-mistakes.jpg"); }
.item-inspiration { --accent-texture: url("../images/bg-inspiration.jpg"); }



/* Тёмный текст поверх светлых акцентов, светлый — поверх насыщенных.
   Проверено вручную: жёлтый и салатовый требуют тёмного текста. */
.item-human-life,
.item-family,
.item-ayurveda,
.item-mistakes,
.item-inspiration { --accent-ink: #2B1A0A; }
.item-success     { --accent-ink: #FFFFFF; }


/* ==========================================================================
   03. БАЗА
   Убран `* { margin:0; padding:0 }` — он ломает Bootstrap 5.
   Убран `font-size: 62.5% !important` на body: этот приём растягивал
   всю вёрстку на em от 10px и конфликтует с rem-шкалой Joomla 5.
   ========================================================================== */

*,
*::before,
*::after { box-sizing: border-box; }

html {
  /* 1rem = 16px. Никакого 62.5%. */
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body.site {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  color: var(--c-text);
  background-color: var(--c-page-bg);
  /*background-image: url("../images/bg.jpg");*/
  background-repeat: no-repeat;
  background-position: 0 0;
}

img,
picture,
video,
iframe {
  max-width: 100%;
  height: auto;
  border: 0;
}

img { font-style: italic; }   /* alt-текст читается как подпись, если картинка не загрузилась */

/* Длинные слова и URL не рвут макет на узких экранах */
body.site p,
body.site li,
body.site h1,
body.site h2,
body.site h3,
body.site h4,
body.site td { overflow-wrap: break-word; }


/* ==========================================================================
   04. ТИПОГРАФИКА КОНТЕНТА
   Скоуп .com-content-article, .com-content-category-blog, .item-page —
   современная разметка Joomla 5.
   #article-text, #article-intro, #article-pic оставлены: это разметка,
   вбитая руками внутрь старых статей, её нельзя выкинуть, пока статьи
   не переписаны.
   ========================================================================== */

.item-page,
.com-content-article,
.com-content-category-blog,
#article-text {
  font-size: var(--fs-base);
  line-height: var(--lh-body);
}

.item-page p,
.com-content-article p,
#article-text p {
  margin: 0 0 var(--sp-4);
}

/* Красная строка: со второго абзаца подряд. Русская типографская традиция,
   поэтому оставлена. */
.item-page p + p,
.com-content-article p + p,
#article-text p + p {
  text-indent: var(--indent);
  margin-top: calc(var(--sp-4) * -0.35);
}

/* Картинка внутри абзаца с отступом не должна уезжать вправе */
.item-page p + p > img,
#article-text p + p > img { margin-left: calc(var(--indent) * -1); }

.item-page h1,
.com-content-article h1,
#article-text h1 {
  font-family: var(--font-head);
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  letter-spacing: 0.01em;
  word-spacing: 0.2em;
  text-align: center;
  text-wrap: balance;
  margin: 0 0 var(--sp-5);
  padding: var(--sp-5) var(--sp-3) var(--sp-3);
  color: var(--c-text);
  /* text-transform: uppercase убран: капслок в кириллице читается заметно
     хуже и ломает переносы. Если нужен — верните на .page-header h1. */
}

.item-page h2,
.com-content-article h2,
#article-text h2 {
  font-family: var(--font-head);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: var(--lh-tight);
  letter-spacing: 0.01em;
  text-wrap: balance;
  margin: var(--sp-6) 0 var(--sp-2);
  padding: 0;
  text-indent: 0;
}

.item-page h3,
.com-content-article h3,
#article-text h3 {
  font-family: var(--font-head);
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: var(--lh-tight);
  margin: var(--sp-5) 0 var(--sp-2);
}

.item-page h4,
.com-content-article h4,
#article-text h4 {
  font-size: var(--fs-h4);
  font-weight: 700;
  margin: var(--sp-4) 0 var(--sp-2);
}


/* ==========================================================================
   05. ССЫЛКИ И ФОКУС
   `outline: none` из старого файла удалён — это прямое нарушение
   доступности: с клавиатуры не видно, где находишься.
   ========================================================================== */

a {
  color: var(--c-link);
  text-decoration: none;
  transition: color var(--dur) var(--ease),
              border-color var(--dur) var(--ease);
}

/* Ссылки внутри текста статьи — подчёркнутые пунктиром, как было */
.item-page a:not(.btn):not(.page-link),
.com-content-article a:not(.btn):not(.page-link),
#article-text a:not(.btn) {
  color: var(--c-text);
  border-bottom: 1px dotted currentColor;
}

.item-page a.usual-link,
#article-text a.usual-link { color: var(--c-link); border-bottom: 0; }

a:hover,
.item-page a:not(.btn):hover,
.com-content-article a:not(.btn):hover,
#article-text a:not(.btn):hover { color: var(--c-link-hover); }

/* Видимый фокус для клавиатуры */
:focus-visible {
  outline: 3px solid var(--c-link);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

a.hidden,
a.no-underline { border-bottom: 0; text-decoration: none; }

/* Ссылка на скачивание */
.item-page a.download-link,
.item-page a.downloadlink,
#article-text a.download-link,
#article-text a.downloadlink {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  color: #1B6E1B;
  border-bottom: 0;
  padding: var(--sp-2) 0;
  min-height: 2.75rem;     /* тап-таргет 44px */
  background: url("../images/download-link.gif") no-repeat left center;
  padding-left: 2.5rem;
}
/* ==========================================================================
   06. РАСКЛАДКА И КОНТЕЙНЕРЫ CASSIOPEIA
 ========================================================================== */


/* Комфортная длина строки в основной колонке */
.container-component .item-page,
.container-component .com-content-article__body,
#article-text {
  max-width: var(--measure);
  margin-inline: auto;
  padding-inline: var(--sp-4);
  width: auto;                        /* было width: 550px */
}




/* ==========================================================================
   07. ШАПКА И ЛОГОТИП И ПОИСК  и FOOTER
   Старый #logo был жёстко 350×125px с margin-left: 255px и приёмом
   text-indent: -9999px. Заменено на гибкий блок и современное скрытие текста.
   ========================================================================== */

.container-header {display:flex}

.container-header {
  position: relative;
  /* Наша базовая идеальная оливковая подложка контента */
  background-color: #f0f3d2; 
  background-image:
    /* --- 1. ВНУТРЕННИЙ РАЗБАВИТЕЛЬ (На месте — Y: 44%) --- */
    radial-gradient(22% 50% at 63% 44%,  rgba(218,226,247,0.55) 0%, rgba(218,226,247,0) 100%),

    /* --- 2. СИНЯЯ СТУПЕНЬКА (Строго на месте — Y: 46% и 40%) --- */
    radial-gradient(14% 55% at 64% 46%,  rgba(168,208,240,0.35) 0%, rgba(168,208,240,0) 100%),
    radial-gradient(16% 60% at 69% 40%,  rgba(168,208,240,0.32) 0%, rgba(168,208,240,0) 100%),
    
    /* --- 3. ПРАВЫЙ ЛАВАНДОВЫЙ МОСТ (Y: 30%) --- */
    radial-gradient(22% 50% at 74% 30%,  rgba(231,210,243,0.65) 0%, rgba(231,210,243,0) 100%),
    
    /* --- 4. БИРЮЗОВО-САЛАТОВЫЙ ПЕРЕХОД (ПРИПОДНЯТ НА 5% ВВЕРХ) --- */
    /* Координаты Y скорректированы до сбалансированных 58% и 60% */
    radial-gradient(45% 60% at 59% 58%,  rgba(201,236,215,0.78) 0%, rgba(201,236,215,0) 100%),
    radial-gradient(20% 50% at 54% 60%,  rgba(174,233,220,0.65) 0%, rgba(174,233,220,0) 100%),

    /* --- 5. САЛАТОВЫЙ ПОДПОР ПОД СИНЕВУ (Y: 55%) --- */
    radial-gradient(25% 45% at 60% 55%,  rgba(215,236,140,0.5) 0%, rgba(215,236,140,0) 100%),
    
    /* --- 6. ТЕПЛЫЕ СЛОИ (РОЗОВЫЙ И ЗОЛОТОЙ ОСТАЮТСЯ ВЫСОКО ВВЕРХУ) --- */
    radial-gradient(55% 65% at 65% 22%,  rgba(226,199,235,0.5) 0%, rgba(226,199,235,0) 100%),
    radial-gradient(75% 85% at 80% 12%,  rgba(248,208,198,0.6) 0%, rgba(248,208,198,0) 100%),
    radial-gradient(70% 65% at 96% 8%,   rgba(253,236,160,0.85) 0%, rgba(253,236,160,0) 100%),
    
    /* --- 7. ЗЕЛЕНАЯ ЗОНА СЛЕВА (Подложка логотипа) --- */
    radial-gradient(85% 75% at 2% 10%,    rgba(215,236,140,0.6) 0%, rgba(215,236,140,0) 100%),
    
    /* Базовая подложка */
    linear-gradient(105deg, #f0f3d2 0%, #fbf5e6 45%, #fdf5cf 80%, #f0f3d2 100%);
}


.container-header .navbar-brand,
#logo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-block: var(--sp-3);
  margin-left:2rem
}


.container-header .container-search {
  align-content: center;
  margin-right: 2em;	
}


.footer{
	background-color: #f0f3d2; 
	  position: relative;
  
  background-image:
    /* Мягкий лавандовый мост, уводящий в тишину */
    radial-gradient(30% 60% at 45% 50%,  rgba(231,210,243,0.45) 0%, rgba(231,210,243,0) 100%),
    /* Возвращение нежного мятного тепла, но теперь в правой части */
    radial-gradient(25% 60% at 65% 45%,  rgba(174,233,220,0.45) 0%, rgba(174,233,220,0) 100%),
    /* Мягкий розовый закатный оттенок слева */
    radial-gradient(75% 80% at 20% 60%,  rgba(248,208,198,0.5) 0%, rgba(248,208,198,0) 100%),
    /* Светлый золотистый финиш в левом нижнем углу */
    radial-gradient(80% 90% at 5% 85%,   rgba(253,236,160,0.6) 0%, rgba(253,236,160,0) 100%),
    /* Спокойная кремово-песочная подложка */
    linear-gradient(285deg, #f4f8e5 0%, #fbf5e6 50%, #fdf8e2 100%);
}
	
	



#back-top {margin-right:5rem }

.back-to-top-link {
  color: #75603e;
  border: 1px solid #75603e;
  background: rgba(249, 229, 205, 0.7);
  bottom: 0rem !important;
}

.back-to-top-link:hover, .back-to-top-link:focus {
   background-color: #c3c1fa;
}


/* ==========================================================================
   08. ХЛЕБНЫЕ КРОШКИ / .breadcrumb
   
     Актуальные классы: , .breadcrumb-item, .mod-breadcrumbs__here.
   Старые селекторы оставлены как алиасы на случай, если где-то ещё живут.
   ========================================================================== */


.mod-breadcrumbs {background-color: transparent;}

.mod-breadcrumbs__wrapper {
  background: none;
  padding: 0px;
  transition: all 0.3s ease; /* Плавный переход цвета при смене страниц */  
}

 .item-success .mod-breadcrumbs__wrapper {border-bottom: 1px dashed  var(--cat-success)}
 .item-ayurveda .mod-breadcrumbs__wrapper {border-bottom: 1px dashed  var(--cat-ayurveda)}
 .item-human-life .mod-breadcrumbs__wrapper {border-bottom: 1px dashed  var(--cat-human-life)}
 
 .item-family .mod-breadcrumbs__wrapper {border-bottom: 1px dashed  var(--cat-family)}
 .item-mistakes .mod-breadcrumbs__wrapper {border-bottom: 1px dashed  var(--cat-mistakes)}
 .item-inspiration .mod-breadcrumbs__wrapper {border-bottom: 1px dashed  var(--cat-inspiration)}
 


/* Наложение цвета конкретного раздела (Кораллово-красный пастельный) */
.cat-wishes .mod-breadcrumbs__wrapper {
  /* Берем цвет вашей тени, но делаем его сильно разбеленным и прозрачным */
  background-color: rgba(253, 225, 225, 0.6) !important; 
  /* Добавляем едва заметную, нежную контурную обводку в тон */
  border: 1px solid rgba(252, 192, 192, 0.4); 
}

/* Стили для текста и ссылок внутри крошек, чтобы они гармонировали с новым фоном */
.cat-wishes .mod-breadcrumbs a {
  color: #a34c4c !important; /* Глубокий благородный приглушенно-красный */
  text-decoration: none;
}

.cat-wishes .mod-breadcrumbs a:hover {
  color: #bd3a3a !important; /* Ярче при наведении */
}

/* Разделители (слэши) и последний активный пункт */
.cat-wishes .mod-breadcrumbs li, 
.cat-wishes .mod-breadcrumbs span {
  color: #8c6e6e !important; /* Спокойный кофейно-коралловый для обычного текста */
}






/* ==========================================================================
   09. КАРТОЧКИ БЛОГА (анонсы в категории)
   Было: width: 450px, картинка float: left width: 200px, шесть блоков
   box-shadow с вендорными префиксами. Стало: одна сетка + var(--accent).
   ========================================================================== */

/* - стиль для применения фона категории 
.com-content-category-blog {
  background-image: var(--accent-texture, none);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}
*/

.blog .item > section,
.blog-item,
#article-intro {
  display: grid;
  gap: var(--sp-4);
  align-items: start;
  width: min(100%, 34rem);
  margin: var(--sp-6) auto;
  padding: var(--sp-4);
  border: 1px dashed var(--c-rule-soft);
  border-radius: var(--radius);
  background: url("../images/article-head-back.jpg");
  box-shadow: 0 0 1.25rem var(--accent);
  transition: border-color var(--dur) var(--ease),
              box-shadow var(--dur) var(--ease);
}

.blog .item > section img,
.blog-item img,
#article-intro img {
  width: 100%;
  border-radius: var(--radius-sm);
}

.blog .item > section h1,
.blog .item > section h5,
.blog-item h1,
.blog-item h5,
#article-intro h1,
#article-intro h5 {
  font-size: var(--fs-lg);
  font-weight: 700;
  line-height: var(--lh-tight);
  margin: 0 0 var(--sp-2);
  padding: 0;
  color: var(--c-text);
  text-align: left;
  text-transform: none;
}

.blog .item > section p,
.blog-item p,
#article-intro p {
  margin: 0 0 var(--sp-2);
  text-indent: 0;
  color: var(--c-text);
}

/* Наведение — только на устройствах с настоящим курсором.
   На тач-экранах :hover «залипает» после тапа. */
@media (hover: hover) {
  .blog .item > section:hover,
  .blog-item:hover,
  #article-intro:hover {
    border-color: var(--c-glow);
    box-shadow: 0 0 0.75rem var(--c-glow);
    background-image: url("../images/article-head-back-over.jpg");
  }
  .blog .item > section:hover :is(h1, h5),
  .blog-item:hover :is(h1, h5),
  #article-intro:hover :is(h1, h5) { color: var(--c-link-hover); }
}

/* Кнопка «Подробнее». В Joomla 5 это .readmore > .btn */
.readmore,
.readon {
  display: flex;
  justify-content:center ;

}

.readmore .btn,
a.readon {
background: transparent;
}


/* ==========================================================================
   10. СТРАНИЦА СТАТЬИ
   ========================================================================== */

.item-page,
.com-content-article
/*#article-text */{
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
  background-color: var(--c-paper);
  background-image: var(--accent-texture);
  background-repeat: repeat-x;
  border-bottom: 2px solid var(--accent);
  box-shadow: inset 0 0 1.25rem var(--accent);
  padding-block: var(--sp-5) var(--sp-6);
}

/* Заголовок и лид на цветной подложке рубрики */
.page-header,
.com-content-article__title,
article > header {
  padding: var(--sp-5) var(--sp-4) var(--sp-4);
}

article > header p,
.at-intro,
#article-pic p {
  color: var(--accent-ink);
  font-size: var(--fs-lg);
  font-weight: 700;
  margin: 0 0 var(--sp-3);
}

article > header img,
#article-pic img {
  float: left;
  margin: 0 var(--sp-4) var(--sp-4) 0;
  max-width: min(100%, 18rem);
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
  box-shadow: 0 0 0.625rem rgba(0, 0, 0, 0.12);
}

#article-pic + p,
#article-pic + h2,
#article-pic + h3 {
  clear: both;
  margin: var(--sp-4) 0 var(--sp-3);
}

/* Метаданные статьи в Joomla 5 */
.com-content-article__info,
.article-info {
  font-size: var(--fs-sm);
  color: var(--c-muted);
  margin-bottom: var(--sp-4);
}
.article-info dd { margin: 0; }



.vcshare.vcs--box, .vcshare {
  background: transparent;
}


/* ==========================================================================
   11. ЦИТАТЫ
   ========================================================================== */

.qtn,
blockquote:not(.text_file) {
  margin: var(--sp-6) 0 var(--sp-6) var(--sp-5);
  padding: var(--sp-4) var(--sp-4) var(--sp-5);
  border-left: 5px solid var(--accent);
  border-radius: var(--radius);
  box-shadow: inset 2px 2px 5px color-mix(in srgb, var(--accent) 70%, transparent);
  font-family: var(--font-quote);
  font-size: var(--fs-lg);
  font-style: italic;
  color: var(--c-text-soft);
  text-align: left;
  text-indent: 0;
}

.qtn p { text-indent: 0; }
.qtn a,
#article-text .qtn a { color: var(--c-text-soft); }

/* Подпись под цитатой */
.qtn2,
.qtn cite,
blockquote cite {
  display: block;
  text-align: right;
  text-indent: 0;
  font-family: var(--font-quote);
  font-size: var(--fs-sm);
  font-style: normal;
  font-weight: 700;
  color: color-mix(in srgb, var(--accent) 75%, #000);
  padding-top: var(--sp-2);
  float: none;                 /* было float: right — ломало поток */
}

/* Модуль «случайная цитата» */
#r-quot {
  padding: var(--sp-3) var(--sp-4);
  border-block: 2px dashed var(--c-rule);
  border-radius: var(--radius-sm);
  box-shadow: 0 0 1.5rem rgba(243, 250, 129, 0.55);
}

blockquote.text_file {
  font-size: var(--fs-lg);
  font-style: italic;
  margin: 0;
}

.mod_rquote_quote_text_file { color: var(--c-text); }


/* ==========================================================================
   12. ТАБЛИЦЫ
   Добавлена горизонтальная прокрутка: широкие таблицы больше не рвут
   макет на телефоне. Оберните таблицу в <div class="table-scroll">
   или используйте .table-responsive из Bootstrap 5.
   ========================================================================== */

.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: var(--sp-5);
}

.item-page table,
#article-text table { border-collapse: collapse; width: 100%; }

.item-page th,
.item-page td,
#article-text th,
#article-text td {
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-sm);
  vertical-align: top;
}

.infotab        { border: 1px solid var(--accent); }
.infotab_head   { background-color: color-mix(in srgb, var(--accent) 55%, white); font-weight: 700; }
.infotab_tr     { background-color: color-mix(in srgb, var(--accent) 25%, white); }
.infotab_trsp   { background-color: #D3F0FF; }
.infotab_tremp  { border: 1px solid #CCCCCC; }
.infotab_td-date{ background-color: #EFE5F7; }

/* Дефолт вне рубрики, чтобы таблица не оставалась бесцветной */
:root .infotab       { border-color: #A7B7FF; }
.item-success  .infotab,
.item-ayurveda .infotab,
.item-human-life .infotab,
.item-family   .infotab,
.item-mistakes .infotab,
.item-inspiration .infotab { border-color: var(--accent); }


/* ==========================================================================
   13. КАРТИНКИ В ТЕКСТЕ
   ========================================================================== */

.left-pict,
.right-pict {
  margin-bottom: var(--sp-4);
  border-radius: var(--radius-sm);
}

.left-pict  { float: left;  margin-right: var(--sp-4); }
.right-pict { float: right; margin-left:  var(--sp-4); }

.left-pict-after  { clear: left; }
.right-pict-after { clear: both; }

/* На телефоне обтекание отключается — см. раздел 24 */

.wf_caption {
  padding: var(--sp-1);
  font-size: var(--fs-sm);
  color: var(--c-text-soft);
}

figure { margin: var(--sp-5) 0; }
figcaption {
  font-size: var(--fs-sm);
  color: var(--c-text-soft);
  text-align: center;
  padding-top: var(--sp-2);
}


/* ==========================================================================
   14. СПИСКИ И СЛУЖЕБНЫЕ КЛАССЫ КОНТЕНТА
   ========================================================================== */

.item-page ul,
.item-page ol,
#article-text ul,
#article-text ol {
  margin: 0 0 var(--sp-4);
  padding-left: var(--sp-6);
}

.item-page ul,
#article-text ul { list-style-type: disc; }

.item-page li,
#article-text li {
  line-height: var(--lh-body);
  margin-bottom: var(--sp-2);
  font-size: inherit;              /* было жёстко 13px */
}

.item-page ol.sm-leter,
#article-text ol.sm-leter { list-style-type: lower-alpha; }

/* Блок с отступом («выноска») */
.otstup {
  text-indent: 0;
  margin: var(--sp-4) 0 var(--sp-4) var(--sp-5);
  padding: 0 var(--sp-3) var(--sp-3) var(--sp-3);
  border-left: 2px solid var(--c-rule-soft);
}

.no-otstup { text-indent: 0; }
.txt { display: inline; }


/* ==========================================================================
   15. ТЕГИ
   Joomla 5: <ul class="tags list-inline"><li class="list-inline-item">
   ========================================================================== */

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  justify-content: center;
  list-style: none;
  margin: var(--sp-6) 0;
  padding: var(--sp-3) 0;
  border-block: 1px dashed var(--accent);
}

.tags li { float: none; padding: 0; }

.tags a {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: var(--sp-1) var(--sp-3);
  border: 1px solid var(--accent);
  border-radius: 999px;
  font-size: var(--fs-sm);
  border-bottom-width: 1px;
}

.tags a:hover {
  background-color: var(--accent);
  color: var(--accent-ink);
}
/* ==========================================================================
   16. ПАГИНАЦИЯ
   ВАЖНО: в Joomla 3 разметка была .pagination > ul > li.
   В Joomla 5 .pagination — это сам <ul>, элементы: .page-item > .page-link.
   Старые правила (.pagination ul { width: 550px }, li { float: left })
   больше ни к чему не привязываются и удалены.
   ========================================================================== */

.pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-1);
  list-style: none;
  margin: var(--sp-6) 0;
  padding: var(--sp-2);
  border-radius: var(--radius) var(--radius) 0 0;
  background-color: var(--accent);
}

.pagination .page-item { list-style: none; }

.pagination .page-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;          /* тап-таргет */
  padding-inline: var(--sp-2);
  border: 0;
  border-radius: var(--radius-sm);
  background-color: transparent;
  color: var(--accent-ink);
  font-weight: 700;
}

.pagination .page-item.active .page-link,
.pagination .page-link:hover {
  background-color: var(--c-white);
  color: var(--c-text);
}

.pagination .page-item.disabled .page-link { opacity: 0.45; }

.counter,
.pagination__counter {
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--c-text-soft);
}


/* ==========================================================================
   17. НАВИГАЦИЯ «ПРЕДЫДУЩАЯ / СЛЕДУЮЩАЯ»
   Старая версия рисовала стрелки картинками previous-left.png и
   next-right.png через .icon-chevron-left / .icon-chevron-right —
   ГЛОБАЛЬНО. В Joomla 4/5 эти классы принадлежат системному набору иконок,
   и такое переопределение ломает иконки по всему сайту.
   Здесь стрелки нарисованы средствами CSS и всё заскоуплено в .pagenav.
   ========================================================================== */

.pagenav,
.pager {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  list-style: none;
  width: 100%;
  margin: var(--sp-6) 0 0;
  padding: var(--sp-4) 0;
  border-top: 2px solid var(--accent);
  background-color: var(--c-paper);
  background-image: var(--accent-texture);
  background-repeat: repeat-x;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.pagenav > li,
.pager .previous,
.pager .next {
  flex: 1 1 14rem;
  list-style: none;
  padding: var(--sp-3);
}

.pager .next,
.pagenav-next { text-align: right; }

.pagenav a,
.pager a {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: 2.75rem;
  font-weight: 700;
  border-bottom: 0;
}

/* Стрелки без картинок */
.pager .previous a::before,
.pagenav-prev a::before,
.pager .next a::after,
.pagenav-next a::after {
  content: "";
  width: 0.6em;
  height: 0.6em;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  flex: none;
}
.pager .previous a::before,
.pagenav-prev a::before { transform: rotate(-135deg); }
.pager .next a::after,
.pagenav-next a::after  { transform: rotate(45deg); }

.pager .previous { border-right: 1px dotted var(--accent); }
.pager .next     { border-left:  1px dotted var(--accent); }


/* ==========================================================================
   18. САЙДБАРЫ, МЕНЮ, МОДУЛИ
   Меню Maximenu CK заменено на штатный modules/mod_menu Cassiopeia,
   который использует .metismenu. Правила написаны под оба варианта,
   но опираются на .item-NNN только там, где без этого никак.
   Жёсткие height: 25px и width: 235px убраны: длинные русские пункты
   в них не помещались.
   ========================================================================== */

.container-sidebar-left .card,
.container-sidebar-right .card,
.container-sidebar-left .moduletable,
.container-sidebar-right .moduletable {
  margin-bottom: var(--sp-5);
}

.header-block,
.card-header,
.moduletable > h3 {
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--c-text-soft);
  margin-bottom: var(--sp-3);
}

/* --- Вертикальное меню --- */
.metismenu,
#sl-block-1 ul,
ul.maximenuck {
  list-style: none;
  margin: 0;
  padding: 0;
}

.metismenu .metismenu-item,
#sl-block-1 ul li,
ul.maximenuck > li {
  list-style: none;
  border-bottom: 1px solid var(--c-rule-soft);
  height: auto;                    /* было 25px */
}

.metismenu a,
#sl-block-1 ul li > a,
ul.maximenuck > li > a {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-sm);
  line-height: var(--lh-tight);
  color: var(--c-link);
  border-bottom: 0;
  border-radius: var(--radius-sm);
}

.metismenu .active > a,
#sl-block-1 ul li.active > a { font-weight: 700; }

/* Цвет пункта верхнего уровня по рубрике.
   Держится на ID пунктов меню — при их пересоздании в Joomla 5
   номера поменяются, обновите список. */
.metismenu .item-147 > a, .maximenuck .item147 > a { --accent: var(--cat-success); }
.metismenu .item-155 > a, .maximenuck .item155 > a { --accent: var(--cat-ayurveda); }
.metismenu .item-163 > a, .maximenuck .item163 > a { --accent: var(--cat-human-life); }
.metismenu .item-173 > a, .maximenuck .item173 > a { --accent: var(--cat-family); }
.metismenu .item-181 > a, .maximenuck .item181 > a { --accent: var(--cat-mistakes); }
.metismenu .item-196 > a, .maximenuck .item196 > a { --accent: var(--cat-inspiration); }

.metismenu > li > a:hover,
.metismenu > li.active > a,
.maximenuck > li > a:hover,
.maximenuck > li.active > a {
  background-color: var(--accent);
  color: var(--accent-ink);
}

/* Подуровни наследуют акцент родителя — 300 строк .itemNNN больше не нужны */
.metismenu ul,
.maximenuck2 {
  list-style: none;
  margin: 0;
  padding-left: var(--sp-3);
  border-radius: var(--radius-sm);
  box-shadow: 0 0 0.4375rem 0.1875rem rgba(133, 131, 133, 0.35);
}

.metismenu ul a,
.maximenuck2 a {
  width: auto;                     /* было 235px */
  background-color: var(--accent);
  color: var(--accent-ink);
  border-radius: 0;
}

.metismenu ul a:hover,
.metismenu ul .active > a,
.maximenuck2 a:hover {
  background-color: color-mix(in srgb, var(--accent) 80%, #000);
  color: var(--accent-ink);
  font-weight: 700;
}

/* --- Модуль последних статей (News Show Pro / mod_articles) --- */
.mod-articles__item,
#nsp-new-articles .nsp_art,
#nsp-inspir .nsp_art {
  width: auto !important;          /* было 220px !important */
  margin-bottom: var(--sp-3);
  padding: var(--sp-3);
  border: 1px dashed var(--c-rule-soft);
  border-radius: var(--radius);
}

#nsp-inspir { width: 100%; }

#nsp-new-articles img,
#nsp-inspir img {
  border: 1px solid var(--c-rule-soft);
  padding: 3px;
  border-radius: var(--radius-sm);
}

@media (hover: hover) {
  .mod-articles__item:hover,
  #nsp-new-articles .nsp_art:hover,
  #nsp-inspir .nsp_art:hover { border-color: var(--c-glow); }
  .nsp_art:hover h6.nsp_header a { color: var(--c-link-hover); }
}

#nsp-new-articles h6,
#nsp-inspir h6.nsp_header,
.mod-articles__item h4 {
  font-size: var(--fs-sm);
  line-height: var(--lh-tight);
  margin-bottom: var(--sp-2);
}

#sl-block-2 { margin-top: var(--sp-6); }
#sl-block-2 a { color: var(--c-text); }
#sl-block-2 a:hover { color: var(--c-link-hover); }

/* --- Поиск --- */
.mod-finder__search input,
#search-block1 input {
  min-height: 2.75rem;
  border-radius: var(--radius-sm);
}




/* ==========================================================================
   20. АККОРДЕОНЫ И СЛАЙДЕРЫ (Regular Labs Tabs & Sliders)
   ========================================================================== */

.rl_sliders.accordion > .accordion-group {
  margin-bottom: var(--sp-3);
  border-block: 1px dotted var(--c-rule-soft);
  border-inline: 0;
}

.rl_sliders.accordion > .accordion-group > .accordion-body > .accordion-inner { padding: 0; }

.rl_sliders.accordion > .accordion-group > .accordion-heading > a.accordion-toggle {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  background-color: transparent;
  border-bottom: 0;
}

.rl_sliders-title-inactive,
.nn_sliders-title-inactive { color: var(--c-text); font-size: var(--fs-base); }

.category-desc .cat_descr_slider { margin-top: var(--sp-5); }
.category-desc .hide-article .rl_sliders-toggle { color: var(--c-muted); }

.articles-in-category { margin-left: var(--sp-5); }
.category-desc .articles-in-category p { margin-bottom: var(--sp-1); }
.category-desc .articles-in-category p + p { text-indent: 0; }
.category-desc .articles-in-category a { border-bottom: 0; }
.category-desc .articles-in-category a:hover { border-bottom: 1px dotted currentColor; }


/* ==========================================================================
   21. ГАЛЕРЕЯ (Simple Image Gallery Pro)
   Было: li margin 20px 0 27px 30px !important и padding 60px у списка —
   на телефоне из-за этого появлялся горизонтальный скролл.
   ========================================================================== */

ul.sigProPolaroids {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: var(--sp-4);
  padding: 0;
  margin: var(--sp-5) 0;
  list-style: none;
}

ul.sigProPolaroids li.sigProThumb {
  float: none;
  margin: 0;
  padding: var(--sp-2);
  background-color: var(--c-white);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  text-align: center;
  font-size: var(--fs-sm);
  color: #333333;
}


/* ==========================================================================
   22. ПОДВАЛ
   ========================================================================== */

.container-footer,
#footer {
  margin: 0;
  min-width: 0;                   /* было 950px */
  height: auto;                   /* было 21px */
  font-size: var(--fs-sm);
  padding-block: var(--sp-4);
}

.container-footer .grid-child,
#footer > div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  align-items: center;
}

#footer #copyright { float: none; width: auto; margin: 0; }
#footer #links {
  float: none;
  min-width: 0;
  height: auto;
  border-left: 1px solid var(--c-rule);
  padding-left: var(--sp-4);
}
#footer #links #links-txt { margin: 0; }


/* ==========================================================================
   23. УТИЛИТЫ
   ========================================================================== */

.visually-hidden,
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  left: var(--sp-3);
  top: -4rem;
  z-index: 1000;
  padding: var(--sp-2) var(--sp-4);
  background: var(--c-white);
  border-radius: var(--radius-sm);
  transition: top var(--dur) var(--ease);
}
.skip-link:focus { top: var(--sp-3); }

/* Соцкнопки. AddThis закрылся в 2023 году — старые .addThis и
   .custom_images здесь только чтобы блок не разъезжался,
   виджет всё равно не работает. Замените на свои ссылки. */
.addThis,
.custom_images,
.social_addthis {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--sp-2);
  width: 100%;
  height: auto;
  margin: var(--sp-5) auto;
  padding: var(--sp-3);
  text-align: center;
}

.custom_images a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-bottom: 0;
}
/* Изменение размера картинки на hover убрано: оно дёргало соседние иконки */
.custom_images a img { transition: opacity var(--dur) var(--ease); }
@media (hover: hover) { .custom_images a:hover img { opacity: 0.7; } }

.addThis p { margin: 0 auto; text-indent: 0; }
.addThis p.article-name { font-size: var(--fs-lg); font-style: italic; }
.addThis p.head-title  { font-size: var(--fs-base); font-weight: 700; }
/* ==========================================================================
   24. АДАПТИВ
   Старые брейкпоинты (1050 / 980 / 910 / 850 / 641) были вложены друг
   в друга и подогнаны под прежний шаблон. Здесь — сетка Bootstrap 5,
   на которой работает Cassiopeia, и подход mobile-first: базовые правила
   выше уже написаны для узкого экрана, ниже только расширения.

   Bootstrap 5:  sm 576px (36rem) · md 768px (48rem)
                 lg 992px (62rem) · xl 1200px (75rem) · xxl 1400px (87.5rem)
   ========================================================================== */

/* --- До 576px: телефон --- */
@media (max-width: 35.999rem) {

  /* Обтекание текстом на узком экране даёт колонку в два слова */
  .left-pict,
  .right-pict,
  article > header img,
  #article-pic img {
    float: none;
    display: block;
    margin: 0 auto var(--sp-4);
    max-width: 100%;
  }

  /* Карточка анонса — в одну колонку, картинка сверху */
  .blog .item > section,
  .blog-item,
  #article-intro {
    grid-template-columns: 1fr;
    padding: var(--sp-3);
  }

  /* Красная строка на узкой колонке мешает больше, чем помогает */
  .item-page p + p,
  .com-content-article p + p,
  #article-text p + p { text-indent: 0; margin-top: 0; }

  .qtn,
  blockquote:not(.text_file) {
    margin-inline: 0;
    padding: var(--sp-3);
  }

  .otstup { margin-left: var(--sp-3); }

  .item-page ul,
  .item-page ol,
  #article-text ul,
  #article-text ol { padding-left: var(--sp-5); }

  .container-component .item-page,
  .container-component .com-content-article__body,
  #article-text { padding-inline: var(--sp-3); }

  /* Переносы: длинные русские слова в узкой колонке */
  .item-page p,
  #article-text p { hyphens: auto; }

  /* Разделители колонок ни к чему, когда колонка одна */
  .pager .previous,
  .pager .next { border: 0; text-align: left; }

  .container-footer .grid-child,
  #footer > div { flex-direction: column; align-items: flex-start; }
  #footer #links { border-left: 0; padding-left: 0; }
}

/* --- От 576px --- */
@media (min-width: 36rem) {
  .addThis,
  .pagenav,
  .pager,
  .tags { width: 100%; }
}

/* --- От 768px: планшет --- */
@media (min-width: 48rem) {
  .blog .item > section,
  .blog-item,
  #article-intro { padding: var(--sp-5); }

  .page-header,
  .com-content-article__title,
  article > header { padding-inline: var(--sp-5); }
}

/* --- От 992px: десктоп --- */
@media (min-width: 62rem) {
  .container-component .item-page,
  .container-component .com-content-article__body,
  #article-text { padding-inline: var(--sp-6); }

  .otstup { margin-left: var(--sp-7); }
}

/* --- Мобильное меню --- */
/* Cassiopeia сама сворачивает mod_menu в бургер через .navbar-toggler.
   Здесь только увеличиваем тап-таргеты в раскрытом состоянии. */
@media (max-width: 61.999rem) {
  .navbar-toggler {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
  .metismenu a,
  #sl-block-1 ul li > a {
    min-height: 3rem;
    font-size: var(--fs-base);
  }
  /* Выпадающие подуровни на тач-экране раскрываются по клику,
     а не по наведению */
  .maximenuck div.floatck { margin: 0 !important; position: static !important; }
}


/* ==========================================================================
   25. MOTION И ПЕЧАТЬ
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media print {
  body.site {
    background: none;
    color: #000;
    font-size: 11pt;
  }
  .container-sidebar-left,
  .container-sidebar-right,
  .container-footer,
  .pagination,
  .pagenav,
  .pager,
  .tags,
  .addThis,
  .custom_images,
  #comments-form,
  .breadcrumb,
  .mod-breadcrumbs { display: none; }

  .item-page,
  .com-content-article,
  #article-text {
    background: none;
    box-shadow: none;
    border: 0;
    max-width: none;
    padding: 0;
  }

  .item-page a::after,
  #article-text a::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #555;
  }
  .item-page a[href^="#"]::after { content: ""; }
}



/* ============================================================================
   LIFE SECRETS — умная липкая шапка 
   Дописать в КОНЕЦ user.css дочернего шаблона:
   /media/templates/site/<ваш_дочерний_шаблон>/css/user.css

   Разметка (ничего в HTML менять не нужно) — по вашему скрину инспектора:

   <header class="header container-header full-width position-sticky sticky-top">
     <div class="grid-child">                     <- лого
       <div class="navbar-brand"><a class="brand-logo" href="/"><img ...></a></div>
     </div>
     <div class="grid-child container-nav">       <- поиск
       <div class="container-search">
         <form class="mod-finder js-finder-searchform form-search" ...>
       </div>
     </div>
   </header>

   ПОВЕДЕНИЕ:
   скролл вниз  -> поиск уезжает вверх и обнуляет высоту, лого ужимается
                   до компактного размера — остаётся узкая плашка с лого;
   скролл вверх -> шапка мгновенно раскрывается вместе с поиском;
   липкость работает на ВСЕХ разрешениях, включая <992px (это чинит вашу
   проблему: Cassiopeia включает position-sticky только от 992px).
   ========================================================================== */


/* --------------------------------------------------------------------------
   0. Переменные — крутить только здесь
   -------------------------------------------------------------------------- */
.header.container-header {
  /* размеры */
  --hdr-gap:              1rem;                     /* зазор лого / поиск      */
  --hdr-pad-y:            .75rem;                   /* верт. отступы           */
  --hdr-pad-y-collapsed:  .25rem;                   /* они же в свёрнутом виде */
  --hdr-pad-x:            1.25rem;
  --logo-h:               clamp(56px, 7vw, 96px);   /* высота лого             */
  --logo-h-collapsed:     clamp(28px, 3.4vw, 42px); /* лого в свёрнутом виде   */
  --search-max:           320px;                    /* макс. ширина поиска     */
  --hdr-anim:             .28s;
  --hdr-ease:             cubic-bezier(.4, 0, .2, 1);
  --hdr-z:                1040;
  --hdr-line:   rgba(72, 62, 52, .14);   /* тонкая нижняя кромка              */
  --hdr-shadow: 0 10px 22px -12px rgba(70, 60, 45, .55);
}


/* --------------------------------------------------------------------------
   1. Раскладка: одна строка — лого по контенту, поиск прижат вправо
   -------------------------------------------------------------------------- */
.header.container-header {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  column-gap: var(--hdr-gap);
  padding: var(--hdr-pad-y) var(--hdr-pad-x);

  /* ВАЖНО: никакого overflow:hidden/clip на самом хедере — иначе обрежется
     выпадашка подсказок поиска (Awesomplete лежит ВНУТРИ формы).
     Уезжающий поиск обрезает сам себя (см. блок 3). */
  overflow: visible;
  transition: padding var(--hdr-anim) var(--hdr-ease),
              box-shadow .35s ease;
}

/* ячейка лого — ровно по содержимому, а не на всю строку */
.header.container-header > .grid-child {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding-inline: 0;
}

/* ячейка с поиском забирает остаток строки */
.header.container-header > .grid-child.container-nav {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  column-gap: var(--hdr-gap);
  min-width: 0;
}

/* сброс правил Cassiopeia: там у .navbar-brand flex: 1 0 100% и
   margin-inline-end: auto — из-за них лого занимает всю строку */
.header.container-header .navbar-brand {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  white-space: nowrap;
}

/* --- лого ---------------------------------------------------------------- */
.header .navbar-brand .brand-logo {
  display: block;
  line-height: 0;
}

.header .navbar-brand .brand-logo img,
.header .navbar-brand .brand-logo svg {
  display: block;
  height: var(--logo-h);
  width: auto;
  max-width: 100%;
  object-fit: contain;
  transition: height var(--hdr-anim) var(--hdr-ease);
}

/* --- поиск --------------------------------------------------------------- */
.header .container-search {
  flex: 0 1 auto;
  min-width: 0;                     /* иначе input не даст флексу сжаться */
  width: 100%;
  max-width: var(--search-max);
  margin-inline-start: auto;        /* всегда у правого края */
  overflow: visible;                /* подсказки поиска не обрезаем */
}

.header .container-search .mod-finder,
.header .container-search form,
.header .container-search .awesomplete {
  width: 100%;
}

.header .container-search input[type="text"],
.header .container-search input[type="search"],
.header .container-search .form-control {
  width: 100%;
  min-width: 7rem;
  box-sizing: border-box;
}

/* выпадашка подсказок всегда поверх шапки */
.header .container-search .awesomplete > ul,
.header .container-search [role="listbox"] {
  z-index: calc(var(--hdr-z) + 10);
}


/* --------------------------------------------------------------------------
   2. Липкая шапка — на ВСЕХ разрешениях, включая мобильные
      (Cassiopeia оборачивает свой position-sticky в @media (min-width:992px),
       из-за чего на <990px шапка уезжала вверх вместе с контентом)
   -------------------------------------------------------------------------- */
.header.container-header,
.header.container-header.position-sticky,
.header.container-header.sticky-top {
  position: sticky !important;
  top: 0 !important;
  z-index: var(--hdr-z);
}

/* якорные ссылки не должны заезжать под шапку
   (--hdr-h выставляет smart-header.js) */
html {
  scroll-padding-top: var(--hdr-h, 0px);
}


/* --------------------------------------------------------------------------
   3. Сворачивание: класс .is-collapsed навешивает smart-header.js
   -------------------------------------------------------------------------- */

/* что умеет уезжать */
.header .container-search {
  max-height: 8rem;                 /* стартовое значение для анимации высоты */
  transition:
    transform  var(--hdr-anim) var(--hdr-ease),
    max-height var(--hdr-anim) var(--hdr-ease),
    margin     var(--hdr-anim) var(--hdr-ease),
    padding    var(--hdr-anim) var(--hdr-ease),
    opacity    calc(var(--hdr-anim) * .6) linear,
    visibility var(--hdr-anim) linear;
}

.header.container-header.is-collapsed {
  padding-block: var(--hdr-pad-y-collapsed);
}

/* лого остаётся, но становится компактным */
.header.container-header.is-collapsed .navbar-brand .brand-logo img,
.header.container-header.is-collapsed .navbar-brand .brand-logo svg {
  height: var(--logo-h-collapsed);
}

/* поиск уезжает вверх и обнуляет высоту */
.header.container-header.is-collapsed .container-search {
  transform: translateY(-160%);
  opacity: 0;
  visibility: hidden;               /* убирает из tab-навигации и скринридеров */
  max-height: 0;
  margin-block: 0;
  padding-block: 0;
  overflow: hidden;                 /* режет содержимое в момент ухода вверх */
  pointer-events: none;
}


/* --------------------------------------------------------------------------
   4. Эффект «шапка оторвалась от своего места»
      Класс .is-stuck навешивает smart-header.js при scrollY > 2.
      На самом верху страницы эффекта нет — шапка выглядит частью страницы.
   -------------------------------------------------------------------------- */
.header.container-header.is-stuck {
  box-shadow: inset 0 -1px 0 var(--hdr-line), var(--hdr-shadow);
}


/* --- НЕОБЯЗАТЕЛЬНО: стекло вместо плотного фона. Красиво на пастели, но
   backdrop-filter заметно грузит слабые Android.
.header.container-header.is-stuck {
  background: linear-gradient(100deg,
              rgba(230,241,200,.82), rgba(207,233,239,.82),
              rgba(246,217,230,.82), rgba(252,227,204,.82));
  -webkit-backdrop-filter: blur(10px) saturate(125%);
  backdrop-filter: blur(10px) saturate(125%);
}
*/


/* --------------------------------------------------------------------------
   5. Адаптив
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
  .header.container-header {
    --logo-h: clamp(46px, 8vw, 72px);
    --logo-h-collapsed: clamp(26px, 4.5vw, 36px);
    --hdr-gap: .75rem;
    --hdr-pad-y: .5rem;
    --search-max: 260px;
  }
}

@media (max-width: 767.98px) {
  .header.container-header {
    --logo-h: clamp(40px, 10vw, 60px);
    --hdr-gap: .5rem;
    --hdr-pad-x: .75rem;
    --hdr-pad-y: .4rem;
    --search-max: 220px;
  }
}

/* Телефоны: лого и поиск в одну строку не влезают — поиск во вторую строку.
   В свёрнутом виде вторая строка исчезает целиком, остаётся плашка с лого.
   Если хотите всё в одну строку — закомментируйте этот блок. */
@media (max-width: 575.98px) {
  .header.container-header {
    --logo-h: clamp(34px, 11vw, 52px);
    --logo-h-collapsed: 26px;
    --hdr-pad-x: .5rem;
  }

  .header.container-header {
    flex-wrap: wrap;
    row-gap: .375rem;
  }

  .header.container-header > .grid-child.container-nav {
    flex: 1 0 100%;
    justify-content: stretch;
  }

  .header .container-search {
    max-width: 100%;
    margin-inline-start: 0;
  }

  /* страховка: лого не выдавливает строку */
  .header .navbar-brand .brand-logo img { max-width: 55vw; }
}


/* --------------------------------------------------------------------------
   6. Уважаем системную настройку «уменьшить анимацию»
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .header.container-header,
  .header.container-header > .grid-child,
  .header .container-search,
  .header .navbar-brand .brand-logo img,
  .header .navbar-brand .brand-logo svg {
    transition: none !important;
  }
}


/* --------------------------------------------------------------------------
   7. МОБИЛЬНОЕ МЕНЮ 
   -------------------------------------------------------------------------- */




/* 1. Главный контейнер мобильного меню внизу экрана */
.mmx-bar {
  /* Эффект матового стекла: полупрозрачный лавандово-сиреневый оттенок из шапки сайта */
  
  background: rgba(249, 229, 205, 0.7); !important 
  
  /*background: rgba(231, 210, 243, 0.6) !important;* - фиолетовый / 
  
  
  backdrop-filter: blur(12px) !important; /* Размытие контента под плашкой */
  -webkit-backdrop-filter: blur(12px) !important;
  
  /* Делаем аккуратное скругление углов только сверху */
  border-radius: 16px 16px 0 0 !important; 
  
  /* Тонкая белая линия-разделитель по верхней кромке хедера */
  border-top: 1px solid rgba(255, 255, 255, 0.5) !important;
  
  /* Мягкая, едва заметная тень в тон палитре сайта */
  box-shadow: 0 -4px 20px rgba(168, 208, 240, 0.15) !important; 
  
  padding: 12px 20px !important;
}

/* 2. Стиль для самого текста "МЕНЮ" */
.mmx-bar-title {
  color: #75603e !important;
  /*color: #4b3e75 !important; /* Глубокий, благородный чернично-фиолетовый */
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important; /* Красивый благородный разряд букв */
}

/* 3. Стиль для кнопки (иконки бургер-меню / крестика закрытия) */
.mmx-bar-btn {
  color: #75603e !important; /* Перекрашиваем кнопку в цвет текста */
  background: transparent !important;
  border: none !important;
  transition: opacity 0.2s ease !important;
}


/* Эффект при клике / наведении на кнопку */
.mmx-bar-btn:hover,
.mmx-bar-btn:focus {
  opacity: 0.7 !important;
}











/* ==========================================================================
   ЗАМЕТКИ ПО МИГРАЦИИ (не CSS, читать перед правкой)

   1. Куда класть файл.
      media/templates/site/cassiopeia/css/user.css работает, но обновление
      Joomla может его затереть. Надёжнее — дочерний шаблон:
      Система → Шаблоны сайта → Cassiopeia Details and Files → Create Child
      Template. Тогда путь будет
      media/templates/site/cassiopeia_<имя>/css/user.css.

   2. Картинки.
      Все url("../images/...") ждут файлы в
      media/templates/site/cassiopeia/images/ (или дочернего шаблона).
      Скопируйте туда: bg.jpg, logo.png, bg-*.jpg (6 шт.),
      article-head-back.jpg, article-head-back-over.jpg,
      download-link.gif, bg-table.gif, a.gif.
      Больше не используются: pagenav/previous-left.png,
      pagenav/next-right.png и их -on версии (стрелки теперь на CSS),
      search.jpg, ft.jpg.

   3. Page Class Suffix.
      Классы .item-success, .item-ayurveda и т.д. Cassiopeia подставляет
      в <body>. В пункте меню: вкладка «Параметры страницы» →
      «Суффикс класса страницы» → пробел + item-success.
      Пробел в начале обязателен.

   4. ID пунктов меню.
      Раздел 18 опирается на .item-147 / .item147 и т.д. После пересоздания
      меню в Joomla 5 номера изменятся — обновите шесть строк.
      Cassiopeia пишет класс как item-147 (с дефисом), старый Maximenu —
      item147. Оба варианта учтены.

   5. Расширения, которые надо проверить отдельно.
      AddThis     — сервис закрыт в 2023 году, виджет мёртв.
      JComments   — нужна сборка под Joomla 5.
      Maximenu CK — проверьте версию; штатное mod_menu в Cassiopeia
                    закрывает задачу и уже адаптивно.
      News Show Pro (GK4), Krizalys Breadcrumbs, Simple Image Gallery Pro,
      Regular Labs Tabs & Sliders — тоже под проверку.
      Krizalys Breadcrumbs в Joomla 5 не нужен, есть штатный mod_breadcrumbs.

   6. Что удалено и почему.
      * { margin:0; padding:0 }          ломает отступы Bootstrap 5
      body { font-size: 62.5% !important } конфликт em-шкалы с rem Joomla 5
      #wrapper { min-width: 950px }      запрет на сужение
      #content { min-height: 1600px }    пустое место под короткими статьями
      #sideLeft { margin-left: -100% }   float-раскладка вместо Grid
      #footer { margin-top: -100px }     прижатие подвала минусовым полем
      .icon-chevron-left/right           глобальное переопределение
                                         системных иконок Joomla 4/5
      -moz-/-webkit- префиксы            не нужны с 2017 года
      outline: none на ссылках           невидимый фокус с клавиатуры
      clip: rect(1px 1px 1px 1px)        заменено на clip-path
      .pagination ul                     разметка Joomla 3, в 5 не совпадает
      ~350 строк .maximenuck li.itemNNN  свёрнуты в var(--accent)

   7. Известная мина в старом файле.
      На строке ~651 комментарий /*  Image galery открывался и не
      закрывался — блок сигпро-галереи и до строки 669 браузер съедал как
      комментарий. Работало случайно. Здесь этого нет.

   8. Что стоит сделать дальше.
      - Перевести inline-разметку внутри статей (#article-text,
        #article-intro, #article-pic — это ID, вбитые в тело статьи)
        на классы. ID должен быть уникальным на странице, а в блоге
        #article-intro повторяется в каждом анонсе — невалидно.
      - Включить в Cassiopeia lazy-loading картинок и WebP.
      - Добавить в шаблон <a class="skip-link" href="#main">
        для перехода к содержимому.
      - Проверить контраст текста на цветных подложках рубрик:
        жёлтый #F0D955 и салатовый #8CC974 требуют тёмного текста,
        это учтено в --accent-ink, но проверьте на живых страницах.
   ========================================================================== */
