/* =========================================================
   Блоки Гутенберга → разметка макета (дизайн-система pl-)

   Страницы собраны из стандартных блоков (html2gutenberg.py). Обёртка блока = элемент макета,
   классы макета — в «Дополнительные CSS-классы». Здесь только то, что делает внутреннюю
   разметку блоков «прозрачной» для дизайна. Вес правил:
     body.pl-site:not(#pl) … — как в design.css (вес id), когда нужно перебить его общие правила;
     body.pl-site …          — ниже design.css, когда дизайн может задать своё значение.
   ========================================================= */

/* 1. Кнопки (core/button): обёртка .wp-block-button с классами pl-btn… — это сама кнопка;
   ссылка внутри не участвует в раскладке и растянута на всю кнопку. */
body.pl-site:not(#pl) .wp-block-buttons.is-buttons-contents{display:contents}
body.pl-site .wp-block-button[class*="pl-"]{position:relative;cursor:pointer}
body.pl-site:not(#pl) .wp-block-button[class*="pl-"] > .wp-block-button__link,
body.pl-site:not(#pl) .wp-block-button[class*="pl-"] > .wp-block-button__link:hover{all:unset;display:contents;cursor:pointer}
body.pl-site .wp-block-button[class*="pl-"] > .wp-block-button__link::after{content:"";position:absolute;inset:0;border-radius:inherit}
body.pl-site .wp-block-button[class*="pl-"]:has(.wp-block-button__link:focus-visible){outline:2px solid var(--pl-gold,#A6814F);outline-offset:3px}
body.pl-site .is-inline-icon{flex:none;display:block;height:auto}
body.pl-site:not(#pl) .pl-contacts-hero__doc .is-inline-icon{width:18px;height:18px}   /* иконка документа в ссылке на PDF */

/* 2. Изображения (core/image): figure с классами pl-media… — это блок с картинкой из макета. */
body.pl-site figure.wp-block-image[class*="pl-"]{margin:0}
body.pl-site:not(#pl) .wp-block-image[class*="pl-"] > a{display:block;width:100%;height:100%}

/* 3. Карточки-ссылки (группа с классом is-card-link): ссылка стоит на заголовке карточки
   и растянута на всю карточку, как <a>-карточка в макете. */
body.pl-site .is-card-link{position:relative;cursor:pointer}
body.pl-site:not(#pl) .is-card-link a,
body.pl-site:not(#pl) .is-card-link a:hover{color:inherit;text-decoration:none}
body.pl-site .is-card-link a::after{content:"";position:absolute;inset:0;z-index:1}

/* 4. Ссылка-«форма» без кнопки (телефон, «Открыть в браузере», документ): абзац с классами
   ссылки из макета + is-link-box, ссылка внутри берёт цвет и подчёркивание абзаца. */
body.pl-site .is-link-box{position:relative}
body.pl-site:not(#pl) .is-link-box > a,
body.pl-site:not(#pl) .is-link-box > a:hover{color:inherit;text-decoration:inherit}
body.pl-site .is-link-box > a::after{content:"";position:absolute;inset:0}

/* 5. Шапка и подвал: блок «Навигация» (core/navigation).
   Ядро ставит классы pl-nav / pl-footer__nav и на <nav>, и на список <ul> — правила макета для
   строки меню ложатся на список. Мобильное меню макета (чекбокс + nav на весь экран) заменено
   окном блока «Навигация»; порог — 1024px, как в макете (у ядра 600px). */
body.pl-site:not(#pl) nav.pl-nav .current-menu-item > a{border-bottom:1px solid var(--pl-gold);padding-bottom:4px}
body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation-item__content,
body.pl-site:not(#pl) nav.pl-footer__nav .wp-block-navigation-item__content{padding:0}
body.pl-site:not(#pl) ul.pl-footer__nav{align-items:stretch}
body.pl-site:not(#pl) ul.pl-footer__nav .wp-block-navigation-item__content{display:block}   /* как у div.pl-footer__nav макета (ядро центрирует пункты) */
@media (max-width:1024px){
  body.pl-site:not(#pl) nav.pl-nav{position:static;inset:auto;z-index:auto;background:none;flex-direction:row;justify-content:flex-end;
    gap:0;font-size:14px;opacity:1;visibility:visible;transition:none}
  /* кнопка-бургер: три линии 24×1.5px с шагом 7.5px, поле 44×44 — как .pl-burger макета */
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-open{display:block;width:44px;height:44px;padding:0;margin:0;border:0;
    cursor:pointer;color:var(--pl-dark);
    background:linear-gradient(currentColor,currentColor) center calc(50% - 7.5px)/24px 1.5px no-repeat,
               linear-gradient(currentColor,currentColor) center/24px 1.5px no-repeat,
               linear-gradient(currentColor,currentColor) center calc(50% + 7.5px)/24px 1.5px no-repeat}
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-open svg{display:none}
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container:not(.is-menu-open){display:none}
  /* открытое меню — на весь экран, пункты по центру (как nav макета при включённом бургере) */
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--pl-bg);color:var(--pl-dark);padding:20px var(--pl-gutter)}
  /* крестик — на месте бургера, две линии 24×1.5px (как повёрнутые линии .pl-burger макета) */
  body.pl-site:not(#pl) nav.pl-nav .is-menu-open .wp-block-navigation__responsive-dialog,
  body.pl-site:not(#pl) nav.pl-nav .is-menu-open .wp-block-navigation__responsive-close{position:static}
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-close{position:absolute;top:20px;right:var(--pl-gutter);
    width:44px;height:44px;padding:0;margin:0;border:0;background:none;color:var(--pl-dark);cursor:pointer;z-index:2}
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-close svg{display:none}
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-close::before,
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-close::after{content:"";position:absolute;left:10px;top:21.25px;
    width:24px;height:1.5px;background:currentColor;transform:rotate(45deg)}
  body.pl-site:not(#pl) nav.pl-nav .wp-block-navigation__responsive-container-close::after{transform:rotate(-45deg)}
  body.pl-site:not(#pl) nav.pl-nav .is-menu-open .wp-block-navigation__responsive-container-content{align-items:center;justify-content:center;
    gap:28px;min-height:calc(100vh - 40px);padding-top:0}   /* кнопка ядро выводит рядом со списком — тот же шаг 28px */
  body.pl-site:not(#pl) nav.pl-nav .is-menu-open ul.pl-nav{position:static;inset:auto;opacity:1;visibility:visible;background:none;
    flex-direction:column;align-items:center;justify-content:center;gap:28px;font-size:22px;font-family:var(--pl-serif)}
  body.pl-site:not(#pl) nav.pl-nav .is-menu-open .pl-btn{font-family:var(--pl-sans);font-size:15px;margin-top:12px}
}

/* Рамка фокуса — только при навигации с клавиатуры (ядро ставит фокус в меню и после клика мышью) */
body.pl-site :where(.wp-site-blocks *:focus:not(:focus-visible)){outline:none}

/* 6. Плавная прокрутка к якорям (#formats, #book, оглавление статьи…) */
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* 7. Циклы ядра («Цикл запросов», «Цикл терминов»): служебные обёртки прозрачны,
   элементы макета (сетка, карточка, плашка) — прямые потомки, как в html-эталоне.
   is-contents — обёртка блока не участвует в раскладке; is-li-contents — то же для <li> цикла. */
body.pl-site:not(#pl) .is-contents,
body.pl-site:not(#pl) .is-li-contents > li{display:contents}
body.pl-site .wp-block-post-template,
body.pl-site .wp-block-term-template{list-style:none;margin:0;padding:0}
body.pl-site .wp-block-post-template[class*="pl-"],
body.pl-site .wp-block-term-template[class*="pl-"]{max-width:none}   /* снимаем 100% ядра (мешает лентам «на всю ширину»); вес ниже дизайна — его max-width сохраняется */
body.pl-site figure.wp-block-post-featured-image[class*="pl-"]{margin:0}
body.pl-site:not(#pl) .wp-block-post-featured-image[class*="pl-"] > a{display:block;width:100%;height:100%}
body.pl-site:not(#pl) .wp-block-post-title a,
body.pl-site:not(#pl) .wp-block-term-name a{color:inherit;text-decoration:none}
body.pl-site:not(#pl) .wp-block-post-excerpt__excerpt{margin:0}
body.pl-site:not(#pl) .wp-block-post-excerpt__more-text{display:none}
/* номера «Популярного» — счётчик CSS (у цикла ядра нет номера записи) */
body.pl-site:not(#pl) .pl-top-list{counter-reset:pl-top}
body.pl-site:not(#pl) .pl-top-list > li{counter-increment:pl-top}
body.pl-site:not(#pl) .pl-top-item__num:empty::before{content:counter(pl-top)}
/* пустые значения привязок: подзаголовок без «Отрывка», статья без обложки */
body.pl-site:not(#pl) .pl-article-head__sub:empty{display:none}
body.pl-site:not(#pl) .pl-article-cover:not(:has(img)){display:none}
/* плашка рубрики: название (term-name) и число (term-count) внутри плашки */
body.pl-site:not(#pl) .pl-filter-chip .wp-block-term-name{margin:0;font:inherit;color:inherit}
body.pl-site:not(#pl) .pl-filter-chip .wp-block-term-count{line-height:inherit}
/* пагинация ядра в виде .pl-pagination макета (номера, «←», «→») */
body.pl-site:not(#pl) .wp-block-query-pagination.pl-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding-top:48px;margin:0}
body.pl-site:not(#pl) .pl-pagination .wp-block-query-pagination-numbers{display:contents}
body.pl-site:not(#pl) .pl-pagination .wp-block-query-pagination-previous,
body.pl-site:not(#pl) .pl-pagination .wp-block-query-pagination-next{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;
  padding:0 14px;margin:0;border:1px solid var(--pl-line-beige);border-radius:999px;font-size:14px;color:var(--pl-dark);text-decoration:none}
body.pl-site:not(#pl) .pl-pagination .wp-block-query-pagination-previous:hover,
body.pl-site:not(#pl) .pl-pagination .wp-block-query-pagination-next:hover{border-color:var(--pl-dark)}
body.pl-site:not(#pl) .wp-block-query-pagination.pl-blog-more{gap:14px;margin:0}

/* «Показать ещё» (almaz-core, almazLoadMore): пока подгружаются карточки — кружок-индикатор вместо текста кнопки */
body.pl-site:not(#pl) .wp-block-query-pagination-next.is-loading{position:relative;color:transparent;pointer-events:none}
body.pl-site:not(#pl) .wp-block-query-pagination-next.is-loading::after{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;
  border:2px solid var(--pl-line-btn);border-top-color:var(--pl-dark);border-radius:50%;animation:pl-spin .7s linear infinite}
@keyframes pl-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){body.pl-site:not(#pl) .wp-block-query-pagination-next.is-loading::after{animation-duration:2s}}

/* 8. «Поделиться»: кнопка системного меню / копирования и подсказка «Ссылка скопирована» */
body.pl-site:not(#pl) button.pl-share__btn{background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;position:relative}
body.pl-site:not(#pl) .pl-share__btn.is-done::after{content:attr(data-done);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);
  white-space:nowrap;padding:8px 12px;border-radius:8px;background:var(--pl-dark);color:var(--wp--preset--color--white);font-size:13px;line-height:1.2;pointer-events:none;z-index:5}
@media (max-width:1024px){
  body.pl-site:not(#pl) .pl-share__btn.is-done::after{left:50%;top:auto;bottom:calc(100% + 10px);transform:translateX(-50%)}
}
body.pl-site .pl-share__status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 9. Текстовая страница (шаблон «Текстовая страница») */
body.pl-site:not(#pl) .pl-text-page{padding:var(--pl-sec,96px) var(--pl-gutter,24px)}
body.pl-site:not(#pl) .pl-text-page > .wp-block-post-title{margin-bottom:32px}
