/*
Theme Name: Memory RS
Theme URI: https://memorycode.co.il
Author: Alexander Drutz + Claude
Description: Классическая RTL-тема для сайта памяти memorycode.co.il. Без билдера. Мемориальные страницы = обычные посты. Бело-синий минимализм (כחול לבן).
Version: 0.68.1-rs
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: memorycode
*/

@font-face{font-family:'HeeboMC';src:url(assets/fonts/heebo.woff2) format('woff2');font-weight:300 800;font-display:swap;}

:root{
  /* Палитра доступности (WCAG AA), принята 2026-09-17.
     Прежний «воздушный» голубой: --blue:#1698f4; --blue-d:#0e77c9;
     --blue-t:#eaf5ff; --muted:#8a96a3; красный #e0416a. Он давал контраст
     3.07 на белом вместо нужных 4.5, и Lighthouse/WAVE его браковали.
     Нынешний синий того же семейства, но чуть ближе к чистому синему:
     белый на нём 4.55, он на белом 4.55. Если решим вернуть голубой —
     менять только эти строки, по коду цвета нигде не дублируются. */
  --blue:#006dfe; --blue-d:#0057cc; --blue-t:#e9f1ff;
  --bg:#ffffff; --bg2:#f6f9fc;
  --ink:#1b2733; --ink2:#4a5763; --muted:#66727f;
  --line:#e7ecf1; --line2:#f0f3f6;
  --shadow:0 1px 2px rgba(27,39,51,.04),0 0.375rem 1.25rem -0.625rem rgba(27,39,51,.14);
  --maxw:45rem;
  --wrap-max:75rem;   /* ширина контентной колонки */
}
*{box-sizing:border-box}
/* Любой display в классе (flex, grid, inline-flex) перебивает браузерное
   [hidden]{display:none}, и «скрытый» элемент остаётся на экране: так уже
   всплывало окно свечи, ловившее все нажатия, и счётчик с нулём на портрете.
   Одно правило закрывает весь класс таких ошибок. */
[hidden]{display:none !important}
/* Масштаб всего интерфейса. Размеры в файле заданы в rem, поэтому одна эта
   строка увеличивает шрифты, отступы и кнопки пропорционально — как зум
   браузера на 125%. Рамки 1–2px и точки перелома медиазапросов оставлены
   в пикселях: линии не должны размываться, а перелом должен срабатывать
   на реальной ширине экрана. */
/* only light, а не просто light: мобильные браузеры (Samsung Internet, Chrome
   Android с Auto Dark Theme) сами перекрашивают страницу в тёмную, если сайт
   не заявил, что тёмной версии у него нет. Ключевое слово only — это отказ от
   такой автоподмены; светлая тема у нас единственная. Дубль сигнала лежит в
   <meta name="color-scheme"> в header.php: браузер читает его до CSS. */
html{color-scheme:only light;font-size:125%}
body{
  margin:0;
  font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;
  background:var(--bg); color:var(--ink);
  direction:ltr; text-align:left;
  -webkit-font-smoothing:antialiased; line-height:1.65;
  overflow-x:clip;
}
/* Страховка от бокового сдвига: одного правила на body мало — если что-то всё же
   окажется шире экрана, прокрутку по горизонтали должен погасить и html.

   Именно clip, а не hidden: hidden делает элемент контейнером прокрутки, и
   тогда position:sticky у шапки отсчитывается от него — шапка переставала
   прилипать при скролле. clip обрезает так же, но контейнер не создаёт. */
html{overflow-x:clip}
img{max-width:100%;height:auto}
a{color:var(--blue)}

/* ---------- nav ---------- */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(0.75rem);border-bottom:1px solid var(--line);
  /* Отступ по бокам = поля контентной колонки. При скролле схлопывается до 1.75rem,
     и шапка растягивается на всю ширину. Анимируем padding, а не max-width:
     переход между фиксированной шириной и 100% браузер не интерполирует. */
  --nav-pad:max(1.75rem,calc((100% - var(--wrap-max)) / 2 + 1.75rem));
  transition:box-shadow .35s ease,background .35s ease}
.site-nav.is-stuck{--nav-pad:1.75rem;background:rgba(255,255,255,.94);box-shadow:0 0.375rem 1.5rem rgba(16,32,48,.08)}
.nav-in{max-width:none;margin:0 auto;padding:0.875rem var(--nav-pad);display:flex;align-items:center;gap:1.5rem;
  transition:padding .35s cubic-bezier(.4,0,.2,1)}
.site-logo{height:1.875rem;color:var(--ink);display:flex;align-items:center}
/* Оптическая правка: в SVG над буквами висит капля, поэтому геометрический
   центр рамки ниже центра надписи (147.5 против 109.6 в единицах viewBox).
   Приподнимаем логотип, иначе буквы выглядят «сползшими» вниз. */
.site-logo svg{height:100%;width:auto;transform:none}
.menu{display:flex;gap:1.75rem;font-size:0.9375rem;color:var(--ink2);list-style:none;margin:0;padding:0}
.menu a{color:inherit;text-decoration:none;padding:0.25rem 0;position:relative;transition:color .2s}
.menu a::after{content:"";position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--blue);transition:width .28s}
.menu a:hover{color:var(--ink)}.menu a:hover::after{width:100%}
/* Текущий раздел: подчёркивание держится само, без наведения. */
.menu .current-menu-item>a,.menu .current_page_item>a,.menu .current-menu-ancestor>a,.menu .current-menu-parent>a{color:var(--ink);font-weight:600}
.menu .current-menu-item>a::after,.menu .current_page_item>a::after,.menu .current-menu-ancestor>a::after,.menu .current-menu-parent>a::after{width:100%}
.nav-cta{font-size:0.875rem;background:var(--blue);color:#fff;border-radius:0.5rem;padding:0.5625rem 1rem;text-decoration:none;transition:.2s;white-space:nowrap;font-weight:500}
.nav-cta:hover{background:var(--blue-d);color:#fff}

/* Порядок на десктопе: логотип → меню → поиск.
   Меню прижато к логотипу, поиск уходит к дальнему краю. */
.site-logo{order:1;flex:0 0 auto}
.nav-body{order:2;display:flex;align-items:center;gap:1.375rem;flex:1;justify-content:flex-start}
.nav-search-panel{order:3;display:flex;flex:0 0 auto}
/* Двойной класс — иначе .btn перебивает по специфичности. */
.nav-body .nav-body__cta{display:none}
.nav-icon{display:none;background:none;border:0;padding:0.5rem;cursor:pointer;color:var(--ink);border-radius:0.5rem;line-height:0}
.nav-icon svg{fill:currentColor}
.nav-icon:hover{background:var(--blue-t);color:var(--blue)}

.site-main{padding:0 0 5rem}
/* Мемориал и обычный пост остаются узкой колонкой. */
.memorial,.post-generic,.mc-lb-scope{max-width:var(--maxw);margin:0 auto;padding-inline:1.5rem}
.reveal{opacity:0;transform:translateY(1rem);animation:mcRise .7s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes mcRise{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reveal{animation:none;opacity:1;transform:none}}

/* ---------- hero ---------- */
.mem-hero{text-align:center;padding:3.75rem 0 1.25rem}
/* Пропорция та же, что была у 10.5×12.5 — иначе рамка сплющивается. */
.mem-portrait{width:11.5rem;height:13.7rem;margin:0 auto 1.625rem;border-radius:0.875rem;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.mem-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%}
/* Портрета нет — в рамке фирменный знак. Квадратный SVG при cover обрезался бы,
   поэтому contain и воздух по краям; фон белый, знак нарисован чёрным. */
.mem-portrait--fallback{background:#fff}
.mem-portrait--fallback img{object-fit:contain;object-position:center;padding:1.25rem}
.mem-hero h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(2.125rem,5.5vw,3.125rem);line-height:1.08;letter-spacing:-.5px;margin:0 0 0.875rem}
.mem-dates{display:inline-flex;align-items:center;gap:0.75rem;font-size:1rem;color:var(--ink2);font-variant-numeric:tabular-nums}
.mem-dates .sep{width:1.25rem;height:1px;background:var(--muted)}
.mem-age{margin-top:0.5rem;font-size:0.875rem;color:var(--muted)}

/* ---------- quote ---------- */
.mem-quote{text-align:center;padding:2.5rem 1.25rem 2.125rem;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);margin:2.125rem 0}
.mem-quote p{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:400;font-size:clamp(1.25rem,3.2vw,1.6875rem);line-height:1.55;max-width:35rem;margin:0 auto 0.875rem}
.mem-quote cite{font-style:normal;font-size:0.875rem;color:var(--muted)}
.mem-quote .b{color:var(--blue)}

/* ---------- section head ---------- */
.mem-blk{padding:2rem 0}
/* align-items:center, а не baseline — иначе полоски садятся на базовую линию
   текста и висят ниже середины заголовка. */
.sec-head{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.5rem}
.sec-head h2{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:1.4375rem;white-space:nowrap;margin:0}
.sec-head .l{height:2px;flex:1;background:var(--blue);border-radius:2px}
.sec-head::before{content:"";flex:0 0 auto;width:1.25rem;height:2px;background:var(--blue);border-radius:2px}

/* ---------- info grid ---------- */
.mem-info{display:grid;grid-template-columns:1fr 1fr;gap:0 2.25rem}
.mem-info .row{padding:0.875rem 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:0.1875rem}
.mem-info .row .k{font-size:0.7812rem;color:var(--muted)}
.mem-info .row .v{font-size:1.0625rem;color:var(--ink);line-height:1.35;white-space:pre-line;font-weight:500}
@media(max-width:560px){.mem-info{grid-template-columns:1fr}}

/* ---------- biography ---------- */
.mem-bio{font-size:1.0312rem;line-height:1.9;color:var(--ink2)}
.mem-bio p{margin:0 0 1rem}
.mem-bio p:first-of-type{color:var(--ink)}
.mem-bio a{color:var(--blue);text-decoration:none;border-bottom:1px solid transparent;transition:.2s}
.mem-bio a:hover{border-color:var(--blue)}
.mem-bio h2,.mem-bio h3{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;color:var(--ink);line-height:1.35}
.mem-bio h2{font-size:1.375rem;margin:1.875rem 0 0.75rem}
.mem-bio h3{font-size:1.125rem;margin:1.5rem 0 0.625rem}
.mem-bio h2:first-child,.mem-bio h3:first-child{margin-top:0}
.mem-bio ul,.mem-bio ol{padding-inline-start:1.375rem;margin:0 0 1rem}
.mem-bio li{margin-bottom:0.375rem}

/* ---------- gallery ---------- */
/* Колонки собирает PHP по высотам кадров (memorycode_gallery_columns), поэтому
   здесь достаточно поставить их рядом — балансировать высоту браузеру не нужно. */
.mem-gal{display:flex;gap:0.625rem;align-items:flex-start}
.mem-gal__col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:0.625rem}
.mem-gal figure{margin:0;border-radius:0.625rem;overflow:hidden;cursor:zoom-in;position:relative;background:var(--bg2)}
.mem-gal img{width:100%;height:auto;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.mem-gal figure:hover img{transform:scale(1.05)}
/* На узком экране третья колонка превращала фото в марки: складываем в две,
   перенося содержимое последней колонки в общий поток. */
@media(max-width:720px){
  .mem-gal{display:block;columns:2;column-gap:0.625rem}
  .mem-gal__col{display:contents}
  .mem-gal figure{break-inside:avoid;margin-bottom:0.625rem}
}

/* lightbox */
.mc-lb{position:fixed;inset:0;z-index:200;background:rgba(15,22,32,.92);display:none;align-items:center;justify-content:center;padding:1.5rem}
.mc-lb.open{display:flex}
.mc-lb img{max-width:92vw;max-height:88vh;border-radius:0.5rem;box-shadow:0 1.25rem 3.75rem rgba(0,0,0,.5);display:block;margin:0 auto}
.mc-lb__fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:0.875rem;max-width:92vw}
.mc-lb__cap{color:#e8eef5;font-size:0.9375rem;line-height:1.6;text-align:center;max-width:min(47.5rem,92vw);
  background:rgba(255,255,255,.08);padding:0.625rem 1rem;border-radius:0.5rem}
@media(max-width:640px){
  .mc-lb img{max-height:74vh}
  .mc-lb__cap{font-size:0.875rem;padding:0.5625rem 0.75rem}
}
.mc-lb .x,.mc-lb .nav{position:absolute;color:#fff;background:rgba(255,255,255,.12);border:none;cursor:pointer;width:2.875rem;height:2.875rem;border-radius:50%;font-size:1.375rem;display:flex;align-items:center;justify-content:center;transition:.2s}
.mc-lb .x:hover,.mc-lb .nav:hover{background:var(--blue)}
.mc-lb .x{top:1.25rem;left:1.25rem}
.mc-lb .prev{right:1.25rem;top:50%;transform:translateY(-50%)}
.mc-lb .next{left:1.25rem;top:50%;transform:translateY(-50%)}

/* ---------- video ---------- */
.mem-videos{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem}
.mem-videos--single{grid-template-columns:1fr}
.mem-videos--single .mc-vid{aspect-ratio:16/9}
.mc-vid{position:relative;aspect-ratio:16/10;border-radius:0.75rem;overflow:hidden;cursor:pointer;background:#0d1620}
.mc-vid .cover{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.55;transition:.4s;border:0}
.mc-vid:hover .cover{opacity:.45}
.mc-vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mc-vid .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.mc-vid .play span{width:3.5rem;height:3.5rem;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;box-shadow:0 0.375rem 1.25rem rgba(0,109,254,.5);transition:.25s}
.mc-vid:hover .play span{transform:scale(1.08)}
.mc-vid .play svg{fill:#fff;margin-inline-start:0.1875rem}
@media(max-width:560px){.mem-videos{grid-template-columns:1fr}}

/* ---------- burial ---------- */
.mem-burial{display:grid;grid-template-columns:1fr;gap:1rem}
.mem-map{border-radius:0.75rem;overflow:hidden;position:relative;height:clamp(21.25rem,46vh,32.5rem);border:1px solid var(--line)}
.mem-map iframe{width:100%;height:100%;border:0;display:block}
.mem-plot{background:var(--bg2);border:1px solid var(--line);border-radius:0.75rem;padding:1.25rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem}
.mem-plot .addr{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:1.1875rem;flex:1 1 13.75rem}
.mem-plot .grid{display:grid;grid-template-columns:repeat(4,minmax(4rem,1fr));gap:0.875rem 1.75rem;flex:0 1 auto}
.mem-plot .cell .k{font-size:0.7188rem;color:var(--muted);display:block;margin-bottom:2px}
.mem-plot .cell .n{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:1.5rem;color:var(--blue);line-height:1}
.mem-nav{display:flex;flex-wrap:wrap;gap:0.625rem;flex:0 0 auto}
.mem-nav .nav-btn{display:inline-flex;align-items:center;gap:0.5rem;font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:0.875rem;font-weight:600;text-decoration:none;padding:0.625rem 1rem;border-radius:62.4375rem;border:1px solid var(--line);background:#fff;color:var(--ink);white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.mem-nav .nav-btn svg{fill:currentColor;flex:0 0 auto}
.mem-nav .nav-btn:hover{border-color:var(--blue);color:var(--blue)}
.mem-nav .nav-btn--waze{background:var(--blue);border-color:var(--blue);color:#fff}
.mem-nav .nav-btn--waze:hover{background:#0f7fd1;border-color:#0f7fd1;color:#fff}
@media(max-width:640px){
	.mem-map{height:18.75rem}
	.mem-plot{padding:1.125rem;gap:0.875rem}
	.mem-plot .addr{flex:1 1 100%}
	.mem-plot .grid{grid-template-columns:repeat(4,1fr);width:100%;gap:0.75rem}
	.mem-plot .cell .n{font-size:1.3125rem}
	.mem-nav{width:100%}
	.mem-nav .nav-btn{flex:1 1 8.75rem;justify-content:center}
}

/* ---------- qr ---------- */
.mem-qr{text-align:center;padding:1rem 0}
.mem-qr .frame{display:inline-flex;flex-direction:column;align-items:center;gap:0.75rem;background:var(--bg2);border:1px solid var(--line);border-radius:1rem;padding:1.625rem 2.125rem}
.mem-qr .code{width:7.875rem;height:7.875rem;background:#fff;border-radius:0.5rem;padding:0.5rem;box-shadow:var(--shadow)}
.mem-qr .code img,.mem-qr .code svg{width:100%;height:100%;display:block}
.mem-qr .cap{font-size:0.7812rem;color:var(--muted)}

/* ---------- cta ---------- */
.mem-cta{margin-top:1.5rem;text-align:center;background:var(--blue-t);border:1px solid #d5eaff;border-radius:1rem;padding:2.75rem 1.875rem}
.mem-cta h3{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:1.6875rem;margin:0 0 0.5rem;color:var(--ink)}
.mem-cta p{color:var(--ink2);font-size:0.9375rem;margin:0 0 1.375rem}
.mem-cta .tel{display:inline-flex;align-items:center;gap:0.5625rem;background:var(--blue);color:#fff;font-size:1.1875rem;font-weight:600;letter-spacing:.5px;padding:0.8125rem 1.75rem;border-radius:0.625rem;text-decoration:none;transition:.25s;font-variant-numeric:tabular-nums}
.mem-cta .tel:hover{background:var(--blue-d);transform:translateY(-1px)}
.mem-cta .tel svg{fill:#fff}

/* ---------- footer ---------- */
/* z-index выше декора VIP-страницы: тот приклеен к экрану и иначе наезжает
   на подвал, когда страница прокручена до конца. */
.site-footer{position:relative;z-index:1;border-top:1px solid var(--line);background:var(--bg2)}
.foot-in{max-width:var(--wrap-max);margin:0 auto;padding:1.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.125rem;flex-wrap:wrap}
.socials{display:flex;gap:0.75rem}
.socials a{width:2.25rem;height:2.25rem;border-radius:0.5rem;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink2);transition:.2s;background:#fff}
.socials a:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.socials svg{fill:currentColor}
.copy{font-size:0.7812rem;color:var(--muted)}

/* ---------- LTR content (English / Русский memorial) ---------- */
.memorial[dir="ltr"]{text-align:left}
.memorial[dir="ltr"] .mem-bio,
.memorial[dir="ltr"] .mem-info .row,
.memorial[dir="ltr"] .mem-plot .addr,
.memorial[dir="ltr"] .mem-plot .cell{text-align:left}
.memorial[dir="ltr"] .mem-bio a{border-bottom-color:transparent}
.memorial[dir="ltr"] .mem-hero,
.memorial[dir="ltr"] .mem-quote,
.memorial[dir="ltr"] .mem-qr,
.memorial[dir="ltr"] .mem-cta{text-align:center}

/* ---------- generic single (non-memorial fallback) ---------- */
.post-generic{padding:3.125rem 0}
.post-generic h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:2.125rem;margin-bottom:1.25rem}
.post-generic .entry{font-size:1.0625rem;line-height:1.9;color:var(--ink2)}

/* =========================================================================
   ФАЗА B — общий каркас страниц, формы, ЛК, редактор
   ========================================================================= */

.wrap{max-width:var(--wrap-max);margin:0 auto;padding:0 1.5rem}
/* padding-block, а не padding: у секций класс «wrap sec» вместе,
   и короткая запись обнуляла боковые отступы .wrap. */
.sec{padding-block:3.5rem}
.sec--grey{background:var(--bg2);border-block:1px solid var(--line)}
.center{text-align:center;margin-top:1.75rem}
.sec-head--center{justify-content:center}
.sec-head--center .l{display:none}

.prose{font-size:1rem;line-height:1.95;color:var(--ink2)}
.prose p{margin:0 0 1rem}
.prose h2,.prose h3{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;color:var(--ink);margin:1.75rem 0 0.75rem}
.prose img{border-radius:0.75rem}
/* Иконки из старого контента приходили без размеров и растягивались
   во весь экран — ограничиваем всё, что вставлено в текст страницы. */
.prose svg{width:auto;height:1.3em;max-width:100%;vertical-align:middle;fill:currentColor}
.prose img,.prose video{max-width:100%;height:auto}
.prose table{display:block;max-width:100%;overflow-x:auto}
.page-h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(1.75rem,4vw,2.5rem);margin:0 0 1.5rem}

/* ---------- кнопки ---------- */
/* line-height задаём явно: из-за font:inherit кнопка внутри текста наследовала
   межстрочный интервал абзаца (1.75–1.95) и вырастала вдвое по высоте. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;font:inherit;font-weight:500;font-size:0.9375rem;line-height:1.2;
  padding:0.75rem 1.5rem;border-radius:0.625rem;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:.2s;white-space:nowrap}
.btn--primary{background:var(--blue);color:#fff}
.btn--primary:hover{background:var(--blue-d);color:#fff}
.btn--dark{background:#1b2733;color:#fff}
.btn--dark:hover{background:#0d151d;color:#fff}
.btn--ghost{background:#fff;color:var(--blue);border-color:var(--blue)}
.btn--ghost:hover{background:var(--blue-t)}
.btn--danger{background:#fff;color:#A71B3E;border-color:#f3c3d0}
.btn--danger:hover{background:#A71B3E;color:#fff;border-color:#A71B3E}
.btn--sm{font-size:0.8438rem;padding:0.5rem 1rem;border-radius:0.5rem}
.btn--block{width:100%}
.btn[disabled]{opacity:.55;pointer-events:none}

/* ---------- nav: поиск, бургер ---------- */
/* Раскладку .nav-body задаёт правило выше (меню прижато к логотипу). */
.nav-search{position:relative;display:flex;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:0.5rem}
.nav-search input{border:0;background:transparent;font:inherit;font-size:0.875rem;padding:0.5625rem 0.875rem;width:11.875rem;color:var(--ink);outline:0}
.nav-search button{border:0;background:#1b2733;color:#fff;padding:0 0.875rem;align-self:stretch;cursor:pointer;display:flex;align-items:center;
  border-start-end-radius:0.4375rem;border-end-end-radius:0.4375rem}
.nav-search button svg{fill:currentColor}

/* автокомплит */
/* Растёт внутрь страницы: край, обращённый к краю экрана, приколочен к полю. */
.nav-suggest{position:absolute;top:calc(100% + 0.375rem);inset-inline-start:auto;inset-inline-end:0;z-index:60;
  width:max-content;min-width:100%;max-width:min(32.5rem,calc(100vw - 3rem));
  background:#fff;border:1px solid var(--line);border-radius:0.75rem;box-shadow:0 0.75rem 2rem rgba(16,32,48,.14);
  max-height:min(60vh,26.25rem);overflow-y:auto;overscroll-behavior:contain;padding:0.375rem}
.nav-suggest__item{display:flex;align-items:center;gap:0.75rem;padding:0.5rem 0.625rem;border-radius:0.5rem;text-decoration:none;color:var(--ink)}
.nav-suggest__item:hover,.nav-suggest__item.is-active{background:var(--blue-t)}
.nav-suggest__item img,.nav-suggest__ph{width:2.5rem;height:2.5rem;border-radius:0.5rem;object-fit:cover;flex:0 0 auto}
.nav-suggest__ph{background:var(--bg2);border:1px solid var(--line)}
.nav-suggest__txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.nav-suggest__txt strong{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:0.9062rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-suggest__txt span{font-size:0.75rem;color:var(--muted)}
.nav-suggest__empty{padding:0.875rem 0.75rem;font-size:0.875rem;color:var(--muted);text-align:center}
.nav-burger{display:none;order:4;flex-direction:column;justify-content:center;gap:0.3125rem;background:none;border:0;padding:0.5rem;cursor:pointer;
  width:2.5rem;height:2.5rem;border-radius:0.5rem}
.nav-burger span{display:block;width:1.375rem;height:2px;background:var(--ink);border-radius:2px;transition:transform .28s,opacity .18s}
/* Открытое меню: бургер превращается в крестик. */
.nav-burger.is-open span:nth-child(1){transform:translateY(0.4375rem) rotate(45deg)}
.nav-burger.is-open span:nth-child(2){opacity:0}
.nav-burger.is-open span:nth-child(3){transform:translateY(-0.4375rem) rotate(-45deg)}

@media(max-width:900px){
  /* backdrop-filter создаёт containing block и ломает position:fixed
     у меню внутри шапки — на мобильном обходимся сплошным фоном. */
  .site-nav{--nav-h:3.875rem;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
  .site-nav .nav-in{position:relative;height:var(--nav-h);padding:0 1rem;
    display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0}

  .nav-icon{display:inline-flex;align-items:center;justify-content:center;grid-column:1;justify-self:start;order:0}
  .site-logo{grid-column:2;justify-self:center;order:0}
  .nav-burger{display:flex;grid-column:3;justify-self:end;order:0;align-items:center}

  /* Меню на весь экран под шапкой. */
  .nav-body{position:fixed;inset-block:var(--nav-h) 0;inset-inline:0;order:0;
    background:#fff;flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;padding:0.75rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom));overflow-y:auto;
    opacity:0;visibility:hidden;transform:translateY(-0.5rem);
    transition:opacity .22s ease,transform .22s ease,visibility .22s}
  .nav-body.is-open{opacity:1;visibility:visible;transform:none}

  /* Размер пункта: 1.0625rem при padding 0.875rem даёт строку ~3rem —
     палец попадает, но список не выглядит рекламным баннером. */
  .menu{display:flex;flex-direction:column;gap:0;font-size:1.0625rem;width:100%}
  .menu li{border-bottom:1px solid var(--line)}
  .menu a{display:block;padding:0.875rem 2px;font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:500;color:var(--ink)}
  .menu a::after{display:none}
  /* Подчёркивания в мобильном меню нет — текущий раздел помечаем цветом. */
  .menu .current-menu-item>a,.menu .current_page_item>a,.menu .current-menu-ancestor>a{color:var(--blue)}
  .nav-body .nav-body__cta{display:inline-flex;margin-top:1.25rem;width:100%;font-size:0.9375rem;padding:0.875rem 1.5rem}

  /* Поиск выезжает отдельной полосой под шапкой. */
  .nav-search-panel{position:absolute;top:100%;inset-inline:0;order:0;background:#fff;
    border-bottom:1px solid var(--line);padding:0.75rem 1rem;box-shadow:0 0.625rem 1.5rem rgba(16,32,48,.08);
    display:none}
  .nav-search-panel.is-open{display:block}
  .nav-search{width:100%}
  .nav-search input{width:100%}
  .nav-suggest{width:100%;max-width:100%;max-height:min(50vh,20rem)}
}

/* Пока открыто меню — фон не прокручивается. */
body.mc-locked{overflow:hidden}



/* ---------- hero главной ---------- */
.hero{background:linear-gradient(180deg,#0f1a24 0%,#1b2733 60%,#22303e 100%);color:#fff;text-align:center;padding:4rem 1.5rem 4.5rem;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(0,109,254,.22),transparent 60%);pointer-events:none}
.hero__in{max-width:47.5rem;margin:0 auto;position:relative;z-index:1}
.hero__qr{width:9.375rem;height:9.375rem;margin:0 auto 1.875rem;background:#fff;border-radius:0.75rem;padding:0.625rem;box-shadow:0 0.625rem 2.5rem -0.75rem rgba(0,0,0,.6)}
.hero__qr img,.hero__qr svg{width:100%;height:100%;display:block}
/* Синий внутри логотипа и брендового QR прописан в самих файлах.
   CSS сильнее presentation-атрибутов и <style> внутри SVG, поэтому
   обе картинки следуют за --blue, а не живут своей жизнью. */
.hero__qr svg .cls-2{fill:var(--blue)}
.site-logo svg .cls-1{fill:var(--blue)}
.hero h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(1.5rem,3.4vw,2.125rem);line-height:1.35;margin:0 0 1.625rem}
.hero__sub-h{font-size:1.0625rem;font-weight:600;margin:0 0 0.5rem}
.hero__sub-p{font-size:0.9375rem;color:#b9c6d4;margin:0 0 1.75rem;line-height:1.8}
.hero__btns{display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap}

/* ---------- сетка карточек ---------- */
/* min() в minmax обязателен: без него трек не может стать уже 17.5rem, и на
   узком экране сетка вылезает за его пределы. */
.mc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(17.5rem,100%),1fr));gap:1.25rem}
/* Без min-width:0 карточку распирает её содержимое — например кнопка с nowrap. */
.mc-grid>*{min-width:0}
.mc-card{position:relative;display:flex;background:#fff;border:1px solid var(--line);border-radius:0.875rem;overflow:hidden;box-shadow:var(--shadow);transition:.25s}
.mc-card:hover{transform:translateY(-2px);box-shadow:0 2px 0.25rem rgba(27,39,51,.05),0 0.875rem 2.125rem -0.875rem rgba(27,39,51,.28)}
/* Угол физический, не логический: лента всегда в левом верхнем углу карточки,
   независимо от направления текста. */
/* Полоса шире диагонали угла и смещена наружу, чтобы оба конца срезались
   границей карточки (overflow:hidden), а не обрывались внутри неё. */
.mc-card__ribbon{position:absolute;top:0.625rem;left:-4rem;width:10.625rem;background:#1b2733;color:#fff;font-size:0.625rem;
  line-height:1;padding:0.3125rem 0;text-align:center;transform:rotate(-45deg);z-index:2;letter-spacing:.5px}
.mc-card__media{position:relative;flex:0 0 44%;display:block;background:var(--bg2);min-height:9.375rem}
.mc-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.mc-card__qr{object-fit:contain !important;padding:0.875rem;background:#fff}
.mc-card__body{flex:1;padding:1.125rem 1rem;display:flex;flex-direction:column;gap:0.5rem;align-items:center;text-align:center;justify-content:center}
.mc-card__name{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:1.125rem;font-weight:600;margin:0;line-height:1.3}
.mc-card__name a{color:var(--ink);text-decoration:none}
.mc-card__name a:hover{color:var(--blue)}
.mc-card__date{font-size:0.8125rem;color:var(--ink2);font-variant-numeric:tabular-nums}
.mc-card__excerpt{font-size:0.8438rem;color:var(--muted)}
.mc-card__actions{display:flex;gap:0.5rem;flex-wrap:wrap;justify-content:center}
/* Показ в поиске: кружок-светофор в углу карточки кабинета. Зелёный —
   страница в поиске и каталоге, серый — скрыта. Виден только администратору.
   Лежит поверх снимка, поэтому белая обводка: иначе теряется на светлом фото. */
.mc-card__vis{position:absolute;inset-block-start:0.5rem;inset-inline-start:0.5rem;z-index:3;
  width:1.125rem;height:1.125rem;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:#b7c0ca;box-shadow:0 0 0 2px #fff,0 1px 3px rgba(27,39,51,.35);transition:.18s}
.mc-card__vis:hover{transform:scale(1.15)}
.mc-card__vis[disabled]{opacity:.5;cursor:default;transform:none}
.mc-card__vis.is-on{background:var(--blue)}
.mc-card--plain{display:block}

.list-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.625rem;flex-wrap:wrap}
.list-head h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(1.625rem,3.6vw,2.25rem);margin:0}
.list-count{font-size:0.8438rem;color:var(--muted)}
.mc-pager{margin-top:2rem}
.mc-pager ul{display:flex;gap:0.375rem;list-style:none;padding:0;margin:0;justify-content:center;flex-wrap:wrap}
.mc-pager a,.mc-pager span{display:flex;align-items:center;justify-content:center;min-width:2.375rem;height:2.375rem;padding:0 0.625rem;
  border:1px solid var(--line);border-radius:0.5rem;text-decoration:none;color:var(--ink2);font-size:0.875rem;background:#fff}
.mc-pager .current{background:var(--blue);color:#fff;border-color:var(--blue)}

/* появление карточек + бесконечная подгрузка */
@keyframes mc-card-in{from{opacity:0;transform:translateY(1.125rem)}to{opacity:1;transform:translateY(0)}}
.mc-card{animation:mc-card-in .5s ease backwards}
.mc-grid>.mc-card:nth-child(2){animation-delay:.05s}
.mc-grid>.mc-card:nth-child(3){animation-delay:.1s}
.mc-grid>.mc-card:nth-child(4){animation-delay:.15s}
.mc-grid>.mc-card:nth-child(5){animation-delay:.2s}
.mc-grid>.mc-card:nth-child(6){animation-delay:.25s}
@media (prefers-reduced-motion:reduce){.mc-card{animation:none}}
.mc-scroll-sentinel{display:flex;justify-content:center;align-items:center;padding:1.875rem 0;min-height:0.75rem}
.mc-spinner{width:1.625rem;height:1.625rem;border:0.1875rem solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:mc-spin .7s linear infinite}
@keyframes mc-spin{to{transform:rotate(360deg)}}

/* ---------- фичи ---------- */
/* Строго три колонки: шесть блоков ложатся в две ровные строки, а auto-fit
   растягивал их в четыре и оставлял вторую строку недобранной. */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.125rem 1.75rem;margin-top:2.125rem}
@media(max-width:860px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.feat-grid{grid-template-columns:1fr}}
.feat{text-align:center}
.feat__ico{display:inline-flex;color:var(--blue);margin-bottom:0.625rem}
.feat__ico svg{fill:currentColor}
.feat h3{font-size:1rem;font-weight:600;margin:0 0 0.375rem}
.feat p{font-size:0.8438rem;color:var(--ink2);line-height:1.8;margin:0}

/* ---------- аккордеон ---------- */
.acc{border:1px solid var(--line);border-radius:0.75rem;overflow:hidden;background:#fff}
.acc__item+.acc__item{border-top:1px solid var(--line)}
.acc__item summary{list-style:none;cursor:pointer;padding:1rem 1.25rem;font-size:0.9375rem;font-weight:500;display:flex;justify-content:space-between;gap:0.75rem}
.acc__item summary::-webkit-details-marker{display:none}
.acc__item summary::after{content:"+";color:var(--muted);font-size:1.125rem;line-height:1}
.acc__item[open] summary::after{content:"–"}
.acc__body{padding:0 1.25rem 1.125rem;font-size:0.875rem;color:var(--ink2);line-height:1.85}

/* ---------- формы ---------- */
.fld{display:block;margin-bottom:1rem}
.fld__lbl{display:block;font-size:0.8438rem;font-weight:500;color:var(--ink2);margin-bottom:0.375rem}
.fld__lbl b{color:#A71B3E}
.fld__hint{display:block;font-size:0.75rem;color:var(--muted);margin-top:0.3125rem}
/* Отдельная подсказка вне поля — например «страница ждёт проверки». */
.fld__hint--block{margin:0;padding:0.75rem 0.875rem;background:var(--bg2);border:1px solid var(--line);border-radius:0.5rem;font-size:0.8125rem;line-height:1.7}
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld input[type=url],
.fld input[type=password],.fld input[type=date],.fld input[type=number],.fld input[type=search],
.fld select,.fld textarea{
  width:100%;font:inherit;font-size:0.9375rem;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:0.5rem;padding:0.6875rem 0.875rem;outline:0;transition:.18s}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--blue);box-shadow:0 0 0 0.1875rem rgba(0,109,254,.14)}
/* Свой цвет подсказки: серый браузера по умолчанию даёт 4.09. opacity нужен
   Firefox — он делает подсказку полупрозрачной поверх цвета. */
input::placeholder,textarea::placeholder{color:#5f6b78;opacity:1}
/* Телефон и почта набираются слева направо (иначе «+972», @ и точки
   съезжают), но в RTL-форме поля остаются выровненными по правому краю. */
.fld input[type=tel],.fld input[type=email]{direction:ltr;text-align:right}
.fld input[type=tel]::placeholder,.fld input[type=email]::placeholder{direction:rtl;text-align:right}
.fld textarea{resize:vertical;line-height:1.7}
.fld--check{display:flex;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--ink2)}
.fld--check input{width:1rem;height:1rem;accent-color:var(--blue)}
.fld__pass{position:relative;display:block}
/* Глазок: настоящая иконка вместо рисунка из рамки. Обе лежат в разметке,
   переключаем классом — иначе при нажатии моргает пустое место. */
.fld__eye{position:absolute;inset-inline-end:0.375rem;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:2.125rem;height:2.125rem;padding:0;
  border:0;border-radius:0.4375rem;background:none;color:var(--muted);cursor:pointer;transition:.15s}
.fld__eye:hover{color:var(--blue);background:var(--blue-t)}
.fld__eye svg{display:block;fill:currentColor}
.fld__eye-off{display:none}
.fld__eye.is-on{color:var(--blue)}
.fld__eye.is-on .fld__eye-on{display:none}
.fld__eye.is-on .fld__eye-off{display:block}
/* Место под кнопку, чтобы длинный пароль не заезжал под иконку. */
.fld__pass input{padding-inline-end:2.75rem}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.fld-row--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:640px){.fld-row,.fld-row--4{grid-template-columns:1fr 1fr}}
/* Honeypot. Прячем клипом, а не сдвигом: left:-624.9375rem в RTL растягивал
   документ на 10 000px, из-за чего страница «уезжала» вбок на телефоне. */
.mc-hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* Текст только для скринридеров: с экрана убран, в доступности остаётся. */
.mc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Уведомление должно читаться сразу: крупный текст, цветная рамка слева и знак.
   Мелкая плашка тонула в форме — люди не понимали, отправилось ли. */
.mc-notice{display:flex;align-items:flex-start;gap:0.75rem;border-radius:0.75rem;padding:1rem 1.125rem;font-size:1rem;
  line-height:1.5;font-weight:500;margin-bottom:1.125rem;border:1px solid transparent;border-inline-start-width:0.3125rem}
.mc-notice::before{flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;
  font-size:0.9375rem;font-weight:700;color:#fff}
.mc-notice--error{background:#fdecf1;color:#8f2340;border-color:#f3c3d0;border-inline-start-color:#A71B3E}
.mc-notice--error::before{content:"!";background:#A71B3E}
/* --ok и --success — одно и то же: типы сообщений в коде исторически разошлись. */
.mc-notice--ok,.mc-notice--success{background:#eafaf1;color:#14663d;border-color:#bfe8d2;border-inline-start-color:#1a9d5f}
.mc-notice--ok::before,.mc-notice--success::before{content:"✓";background:#1a9d5f}
/* Внутри формы посвящений сообщение — главный элемент, поднимаем ещё заметнее. */
.mc-ded-form .mc-notice{font-size:1.0625rem;box-shadow:0 0.375rem 1.25rem -0.625rem rgba(26,157,95,.5)}
@media(prefers-reduced-motion:no-preference){
  .mc-ded-form .mc-notice{animation:mcNotice .5s cubic-bezier(.2,.7,.2,1)}
}
@keyframes mcNotice{from{opacity:0;transform:translateY(-0.5rem) scale(.98)}to{opacity:1;transform:none}}

/* ---------- авторизация ---------- */
.auth-wrap{max-width:35rem;padding-block:4.375rem 5.625rem;text-align:center}
.auth-h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(1.75rem,4vw,2.375rem);margin:0 0 0.625rem}
.auth-sub{font-size:0.9375rem;color:var(--ink2);margin:0 0 1.75rem;line-height:1.7}
.auth-card{background:#fff;border:1px solid #cfe6fb;border-radius:0.875rem;padding:1.75rem 1.625rem;text-align:start;box-shadow:var(--shadow)}
.auth-card .btn{margin-top:0.375rem}
.auth-link{display:block;text-align:center;margin-top:1rem;font-size:0.875rem}
.auth-foot{display:flex;justify-content:space-between;gap:0.75rem;margin-top:1rem;font-size:0.8438rem;flex-wrap:wrap}
/* Переход между входом и регистрацией: отделён линией, чтобы кнопку было видно. */
.auth-alt{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line);text-align:center}
/* «или» с линиями по бокам: линии рисуем псевдоэлементами, чтобы не плодить разметку. */
.auth-or{display:flex;align-items:center;gap:0.75rem;margin:1.125rem 0 0.875rem;color:var(--muted);font-size:0.8125rem}
.auth-or::before,.auth-or::after{content:"";flex:1 1 auto;height:1px;background:var(--line)}
/* Кнопка Google: по гайдлайну бренда — белый фон, серая рамка, цветной значок. */
.btn--google{background:#fff;color:#1f1f1f;border-color:#dadce0;gap:0.625rem;font-weight:500}
.btn--google:hover{background:#f7f8f8;border-color:#d2d5d9;color:#1f1f1f}
.btn--google__mark{display:grid;place-items:center;width:1.125rem;height:1.125rem;flex:0 0 auto}
.btn--google__mark svg{display:block}
/* Блок «аккаунт Google» в кабинете. */
.dash-google{margin-top:1.25rem}
.dash-google .dash-h2{margin:0 0 0.5rem}
.dash-google .fld__hint{display:block;margin-bottom:0.875rem}
.dash-google__on{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin:0 0 0.875rem;font-size:0.9375rem;color:var(--ink2)}
.dash-google__on span{color:var(--ink);font-weight:500}

/* ---------- доступность ---------- */
/* Ссылка «к содержимому»: не видна мышью, появляется при переходе с клавиатуры. */
.skip-link{position:absolute;inset-inline-start:-100vw;top:0.5rem;z-index:200;
  background:#fff;color:var(--blue);border:2px solid var(--blue);border-radius:0.5rem;
  padding:0.625rem 1rem;font-size:0.9375rem;font-weight:600;text-decoration:none}
.skip-link:focus{inset-inline-start:0.75rem}
/* Видимая рамка фокуса. Браузерная у нас была сбита `outline:0` у полей,
   а без неё с клавиатуры не понять, где находишься. */
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:0.25rem}
.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible{outline-offset:0}
main:focus{outline:none}
.auth-alt__q{display:block;margin-bottom:0.625rem;font-size:0.9375rem;color:var(--ink2)}

/* ---------- личный кабинет ---------- */
.dash{padding-block:3.125rem 5rem}
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:1.125rem;flex-wrap:wrap;margin-bottom:1.5rem}
.dash-head h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(1.5rem,3.4vw,2rem);margin:0}
.dash-logout{font-size:0.8438rem}
.dash-tabs{display:flex;gap:0.25rem;border-bottom:1px solid var(--line);margin-bottom:1.75rem;flex-wrap:wrap}
.dash-tabs a{padding:0.6875rem 1.125rem;font-size:0.9062rem;color:var(--ink2);text-decoration:none;border:1px solid transparent;border-bottom:0;border-radius:0.5rem 0.5rem 0 0}
.dash-tabs a.on{background:#fff;border-color:var(--line);color:var(--blue);font-weight:500;margin-bottom:-1px}
.dash-h2{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:1.5rem;margin:0 0 1.25rem}
.dash-empty{color:var(--muted);font-size:0.9375rem}
.dash-account{max-width:32.5rem}

/* ---------- контакты ---------- */
.sec--contact{background:var(--bg2);border-top:1px solid var(--line)}
.ct-hours{font-size:0.9062rem;color:var(--ink2);margin:0 0 1.625rem;line-height:1.8}
.ct-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:2.125rem;align-items:start}
@media(max-width:820px){.ct-grid{grid-template-columns:1fr}}
.ct-form{background:#fff;border:1px solid var(--line);border-radius:0.875rem;padding:1.5rem}
.ct-side h3{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:1.25rem;margin:0 0 1rem}
.ct-social{display:flex;gap:0.625rem;margin-bottom:1.375rem}
.ct-social a{width:2.75rem;height:2.75rem;border-radius:0.625rem;display:flex;align-items:center;justify-content:center;color:#fff}
.ct-social svg{fill:currentColor}
.ct-social .s-mail{background:#e8543f}.ct-social .s-wa{background:#25d366}.ct-social .s-fb{background:#1877f2}
.ct-list{margin:0;font-size:0.9062rem}
.ct-list dt{font-weight:600;color:var(--ink);margin-top:0.75rem}
.ct-list dd{margin:2px 0 0;color:var(--ink2)}
/* Телефон и почта лежат на сером фоне, где синий даёт 4.30 при пороге 4.5.
   Тёмный текст с синим подчёркиванием читается и остаётся ссылкой. */
.ct-list a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--blue);
  text-decoration-thickness:2px;text-underline-offset:3px}

/* ---------- нижняя панель футера ---------- */
.foot-bar{background:var(--blue)}
.foot-bar-in{max-width:var(--wrap-max);margin:0 auto;padding:0.875rem 1.5rem;display:flex;gap:1.625rem;justify-content:center;flex-wrap:wrap}
.foot-bar a{color:#fff;font-size:0.8438rem;text-decoration:none}
.foot-bar a:hover{text-decoration:underline}

/* ---------- карта сайта ---------- */
.mc-sitemap__sec{margin-top:2.125rem}
.mc-sitemap__sec h2{display:flex;align-items:center;gap:0.625rem;font-size:1.25rem;margin:0 0 0.875rem;padding-bottom:0.625rem;border-bottom:1px solid var(--line)}
.mc-sitemap__count{font-size:0.8125rem;font-weight:500;color:var(--ink2);background:var(--bg2);border:1px solid var(--line);border-radius:62.4375rem;padding:2px 0.625rem}
.mc-sitemap__list{list-style:none;margin:0;padding:0;columns:2;column-gap:2rem}
/* Мемориалов много — в узкие колонки они помещаются плотнее. */
.mc-sitemap__list--mem{columns:3}
.mc-sitemap__list li{break-inside:avoid;margin:0 0 0.5rem}
.mc-sitemap__list a{color:var(--ink);text-decoration:none;font-size:0.9062rem;line-height:1.5}
.mc-sitemap__list a:hover{color:var(--blue);text-decoration:underline}
@media (max-width:860px){.mc-sitemap__list--mem{columns:2}}
@media (max-width:560px){.mc-sitemap__list,.mc-sitemap__list--mem{columns:1}}

/* =========================================================================
   Редактор в модалке
   ========================================================================= */

.mc-edit-fab{position:fixed;inset-block-end:1.375rem;inset-inline-end:1.375rem;z-index:60;display:inline-flex;align-items:center;gap:0.5rem;
  background:var(--blue);color:#fff;border:0;border-radius:1.875rem;padding:0.8125rem 1.375rem;font:inherit;font-size:0.9375rem;font-weight:500;
  cursor:pointer;box-shadow:0 0.625rem 1.875rem -0.5rem rgba(0,109,254,.7);transition:.2s}
.mc-edit-fab:hover{background:var(--blue-d);transform:translateY(-1px)}
.mc-edit-fab svg{fill:currentColor}
/* Плагин «login as user» вешает внизу свою полосу на всю ширину с z-index 999999
   и полностью накрывает кнопку. Полоса видна только владельцу сайта, когда он
   смотрит сайт чужими глазами, — в этом случае поднимаем кнопку над ней. */
body:has(.login-as-user-bottom) .mc-edit-fab{inset-block-end:7.5rem}

.mc-modal[aria-hidden="true"]{display:none}
.mc-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.25rem}
.mc-modal__backdrop{position:absolute;inset:0;background:rgba(15,26,36,.55);backdrop-filter:blur(0.1875rem)}
.mc-modal__box{position:relative;background:#fff;border-radius:1rem;width:min(47.5rem,100%);max-height:min(88vh,56.25rem);
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 1.875rem 5rem -1.25rem rgba(0,0,0,.5)}
/* flex:0 0 auto у шапки, вкладок и подвала — обязательно. Иначе при высоком
   содержимом колоночный flex сжимает их по вертикали, и надписи на вкладках
   обрезаются по горизонтали пополам. Прокручиваться должно только тело. */
.mc-modal__head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:0.75rem;padding:1.125rem 1.375rem;border-bottom:1px solid var(--line)}
.mc-modal__head h2{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:1.25rem;margin:0}
.mc-modal__x{border:0;background:none;font-size:1.625rem;line-height:1;color:var(--muted);cursor:pointer;padding:0 0.25rem}
.mc-modal__tabs{flex:0 0 auto;display:flex;gap:2px;padding:0 0.875rem;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;background:var(--bg2);
  scrollbar-width:thin}
.mc-modal__tabs button{border:0;background:none;font:inherit;font-size:0.8438rem;color:var(--ink2);padding:0.75rem 0.875rem;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap}
.mc-modal__tabs button.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:500}
/* min-height:0 нужен, чтобы тело реально прокручивалось: по умолчанию flex-элемент
   не сжимается ниже размера содержимого и вместо него давит на соседей. */
.mc-modal__body{flex:1 1 auto;min-height:0;padding:1.375rem;overflow-y:auto}
.mc-pane{display:none}
.mc-pane.on{display:block}
.mc-modal__foot{flex:0 0 auto;display:flex;align-items:center;gap:0.625rem;padding:0.875rem 1.375rem;border-top:1px solid var(--line);background:var(--bg2)}
.mc-modal__msg{flex:1;font-size:0.8438rem;color:var(--ink2)}
.mc-modal__msg.is-error{color:#b02a4e}
body.mc-modal-open{overflow:hidden}

.mc-thumb{display:flex;align-items:center;gap:0.875rem}
.mc-thumb__preview{width:5.25rem;height:6.25rem;border:1px dashed var(--line);border-radius:0.625rem;overflow:hidden;background:var(--bg2);flex:0 0 auto}
.mc-thumb__preview img{width:100%;height:100%;object-fit:cover}
.mc-thumb__btns{display:flex;gap:0.5rem;flex-wrap:wrap}
/* Аудио и PDF: превью нет, поэтому вместо картинки — имя файла ссылкой. */
.mc-file{display:flex;align-items:center;gap:0.875rem;flex-wrap:wrap;
  padding:0.75rem 0.875rem;border:1px dashed var(--line);border-radius:0.625rem;background:var(--bg2)}
.mc-file__name{margin:0;flex:1 1 12rem;font-size:0.875rem;word-break:break-all}
.mc-file__empty{color:var(--muted)}
.mc-file__btns{display:flex;gap:0.5rem;flex-wrap:wrap}

.mc-gal-edit__list{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem;margin-bottom:0.875rem}
@media(max-width:560px){.mc-gal-edit__list{grid-template-columns:repeat(2,1fr);gap:0.625rem}}
.mc-gal-edit__list figure{position:relative;margin:0;border-radius:0.625rem;overflow:hidden;background:var(--bg2);border:1px solid var(--line)}
.mc-gal-edit__pic{position:relative;aspect-ratio:1;overflow:hidden}
.mc-gal-edit__list img{width:100%;height:100%;object-fit:cover;display:block}
.mc-gal-edit__list button{position:absolute;top:0.3125rem;inset-inline-end:0.3125rem;width:1.5rem;height:1.5rem;border:0;border-radius:50%;
  background:rgba(15,26,36,.72);color:#fff;font-size:1rem;line-height:1;cursor:pointer}
/* Удаление — красное, чтобы не путалось со стрелками порядка. */
.mc-gal-edit__list .mc-gal-edit__del{width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;
  background:rgba(224,65,106,.9);opacity:0;transform:scale(.85);transition:opacity .18s,transform .18s,background .18s}
.mc-gal-edit__del svg{fill:currentColor}
.mc-gal-edit__list figure:hover .mc-gal-edit__del,
.mc-gal-edit__list .mc-gal-edit__del:focus-visible{opacity:1;transform:none}
.mc-gal-edit__list .mc-gal-edit__del:hover{background:#A71B3E}
/* На тач-устройствах ховера нет — показываем сразу. */
@media(hover:none){.mc-gal-edit__list .mc-gal-edit__del{opacity:1;transform:none}}
.mc-gal-edit__cap{width:100%;border:0;border-top:1px solid var(--line);background:#fff;font:inherit;font-size:0.7812rem;
  padding:0.5rem 0.625rem;color:var(--ink);outline:0}
.mc-gal-edit__cap:focus{background:var(--blue-t)}
.mc-gal-edit__cap::placeholder{color:var(--muted)}
.mc-gal-edit__hint{margin:0.5rem 0 0;font-size:0.8125rem;color:var(--muted)}

/* Перетаскивание порядка фотографий. */
.mc-gal-edit__list figure{cursor:grab}
.mc-gal-edit__list figure.is-dragging{opacity:.4;cursor:grabbing}
.mc-gal-edit__list figure.is-over{outline:2px dashed var(--blue);outline-offset:-2px}
.mc-gal-edit__list figure img{pointer-events:none}
.mc-gal-edit__move{position:absolute;inset-block-end:0.3125rem;inset-inline:0.3125rem;display:flex;justify-content:space-between;gap:0.25rem}
.mc-gal-edit__list .mc-gal-edit__move button{position:static;width:1.625rem;height:1.625rem;font-size:0.9375rem;display:flex;align-items:center;justify-content:center}
.mc-gal-edit__move button svg{fill:currentColor}
.mc-lb .nav svg{fill:currentColor;display:block}

/* Панель форматирования биографии. */
.mc-rte{border:1px solid var(--line);border-radius:0.5rem;overflow:hidden;background:#fff}
.mc-rte__bar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:0.375rem;background:var(--bg2);border-bottom:1px solid var(--line)}
.mc-rte__bar button{min-width:1.875rem;height:1.875rem;padding:0 0.5rem;border:1px solid transparent;border-radius:0.375rem;background:none;
  font:inherit;font-size:0.875rem;color:var(--ink2);cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.mc-rte__bar button:hover{background:#fff;border-color:var(--line);color:var(--ink)}
.mc-rte__bar button svg{fill:currentColor}
.mc-rte__sep{width:1px;height:1.125rem;background:var(--line);margin:0 0.25rem}
.mc-rte__area{min-height:16.25rem;max-height:46vh;overflow-y:auto;padding:0.875rem;font-size:0.9375rem;line-height:1.85;color:var(--ink);outline:0}
.mc-rte__area:focus{box-shadow:inset 0 0 0 2px rgba(0,109,254,.18)}
.mc-rte__area p{margin:0 0 0.75rem}
.mc-rte__area h2{font-size:1.25rem;font-weight:600;margin:1.25rem 0 0.625rem}
.mc-rte__area h3{font-size:1.0625rem;font-weight:600;margin:1rem 0 0.5rem}
.mc-rte__area h2:first-child,.mc-rte__area h3:first-child{margin-top:0}
.mc-rte__area ul,.mc-rte__area ol{padding-inline-start:1.375rem;margin:0 0 0.75rem}
.mc-rte__area a{color:var(--blue)}
.mc-rte__area:empty::before{content:attr(data-ph);color:var(--muted)}

.mc-video-row{display:flex;gap:0.5rem;margin-bottom:0.625rem}
.mc-video-row input{flex:1;font:inherit;font-size:0.875rem;border:1px solid var(--line);border-radius:0.5rem;padding:0.625rem 0.75rem;outline:0}
.mc-video-row input:focus{border-color:var(--blue)}
.mc-video-row button{width:2.5rem;border:1px solid var(--line);background:#fff;border-radius:0.5rem;font-size:1.125rem;color:var(--muted);cursor:pointer}
.mc-video-row button:hover{border-color:#f3c3d0;color:#A71B3E}

/* ---------- LTR интерфейс ---------- */
body[dir="ltr"]{text-align:left}
body[dir="ltr"] .menu a::after{right:auto;left:0}
.prose h1{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:clamp(1.75rem,4vw,2.5rem);color:var(--ink);margin:0 0 1.5rem;line-height:1.2}
.prose ul,.prose ol{padding-inline-start:1.375rem;margin:0 0 1rem}
.prose li{margin-bottom:0.375rem}
.prose iframe,.prose video{max-width:100%;border-radius:0.75rem}

/* ---------- hero: реальный фон со старой главной ---------- */
.hero{background:#0f1a24}
/* background-attachment вместо слоя с position:fixed: фон стоит на месте при
   прокрутке, но виден только внутри hero. Слой с fixed вылез бы за его пределы —
   overflow:hidden такой элемент не обрезает. */
.hero::before{content:"";position:absolute;inset:0;background-image:var(--hero-bg);background-size:cover;background-position:center;background-attachment:fixed;opacity:.42}
.hero::after{background:linear-gradient(180deg,rgba(15,26,36,.55),rgba(15,26,36,.8)),radial-gradient(circle at 50% 0%,rgba(0,109,254,.18),transparent 62%)}
@media(max-width:720px){.hero::before{background-image:var(--hero-bg-m)}}

/* ---------- промо-ролик на главной ---------- */
.mc-vid--promo{margin-top:1.875rem;aspect-ratio:16/9;border-radius:0.875rem;background:#000}
.mc-vid--promo .cover{opacity:.75}
.mc-vid--promo:hover .cover{opacity:.6}
/* Подпись под кнопкой воспроизведения. Раньше синий текст лежал прямо на
   кадре у нижнего края: на тёмном видео читался плохо, а до кнопки было
   далеко. Теперь это плашка фирменного синего с белым текстом (контраст
   4.55) вплотную под кнопкой. */
.mc-vid__cap{position:absolute;inset-inline:0;top:calc(50% + 2.5rem);text-align:center;
  pointer-events:none;line-height:1}
.mc-vid__cap span{display:inline-block;
  background:var(--blue);color:#fff;padding:0.5rem 1.125rem;border-radius:2rem;
  font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:1.0625rem;font-weight:600;
  box-shadow:0 0.375rem 1.25rem -0.25rem rgba(0,0,0,.55)}
.mc-vid--promo iframe~.mc-vid__cap{display:none}
.ct-social .s-sk{background:#00aff0}

/* =========================================================================
   הקדשות — посвящения от посетителей
   ========================================================================= */
.mc-ded-list{display:flex;flex-direction:column;gap:0.875rem;margin-bottom:1.375rem}
.mc-ded{display:flex;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:0.875rem;padding:1rem 1.125rem;box-shadow:var(--shadow)}
/* align-self:flex-start — иначе блок с фотографией тянется во всю высоту
   отзыва (flex растягивает элементы строки), и портрет превращался в узкую
   полосу на пол-экрана. Квадрат задаём сами: присланные снимки бывают любой
   формы, а список должен выглядеть ровным. */
/* Снимки идут под текстом, рядом с переносом: сначала слова, потом фотографии.
   Квадрат задаём сами — присланные кадры бывают любой формы, а ряд должен
   выглядеть ровным. */
/* Ролик в посвящении: та же плашка с кнопкой, что и в галерее страницы,
   но уже — он идёт внутри карточки отзыва, а не во всю ширину раздела. */
.mc-ded__video{margin-top:0.875rem;max-width:26rem}
.mc-mod__vid{margin:0.625rem 0 0;font-size:0.8438rem;word-break:break-all}
/* Правка слова памяти: форма спрятана под строкой, чтобы не растить карточку. */
.mc-ded__edit,.mc-mod__edit,.mc-mod__log{margin-top:0.5rem}
.mc-mod__log>summary{cursor:pointer;list-style:none;font-size:0.8125rem;font-weight:600;color:var(--ink2)}
.mc-mod__log>summary::-webkit-details-marker{display:none}
.mc-mod__log-list{margin:0.5rem 0 0;padding:0;list-style:none;font-size:0.8125rem;color:var(--ink2)}
.mc-mod__log-list li{display:flex;flex-wrap:wrap;gap:0.5rem;padding:0.25rem 0;border-top:1px solid var(--line2)}
.mc-mod__log-list time{color:var(--muted);font-variant-numeric:tabular-nums}
.mc-mod__log-act{font-weight:600;color:var(--ink)}
.mc-mod__log-note{color:var(--blue)}
.mc-ded__edit>summary,.mc-mod__edit>summary{cursor:pointer;list-style:none;font-size:0.8125rem;
  font-weight:600;color:var(--blue)}
.mc-ded__edit>summary::-webkit-details-marker,.mc-mod__edit>summary::-webkit-details-marker{display:none}
.mc-ded__edit[open]>summary,.mc-mod__edit[open]>summary{margin-bottom:0.625rem}
/* Уже приложенные снимки с галочкой «убрать». */
.mc-ded-edit__imgs{display:flex;flex-wrap:wrap;gap:0.75rem}
.mc-ded-edit__img{display:flex;flex-direction:column;gap:0.25rem;align-items:center;font-size:0.75rem;color:var(--ink2)}
.mc-ded-edit__img img{width:4.5rem;height:4.5rem;object-fit:cover;border-radius:0.5rem;display:block}
.mc-ded-edit__drop{display:inline-flex;align-items:center;gap:0.25rem;cursor:pointer}
/* Состояние записи в кабинете. */
.mc-mod__state{font-size:0.75rem;font-weight:600;padding:0.125rem 0.5rem;border-radius:62.4375rem;
  background:var(--bg2);color:var(--ink2)}
.mc-mod__state--publish{background:#e6f4ea;color:#1a7f37}
.mc-mod__state--pending{background:#fdf2e3;color:#92400e}
.mc-mod__state--draft{background:#eef1f4;color:#4a5763}
.mc-mod__state--mine{background:var(--blue-t);color:var(--blue)}
/* Подвкладки слов памяти: та же полоса, что и у основных, но мельче и без
   «листа» под активной — она вложенная, и спорить с ней за внимание не должна. */
.dash-tabs--sub{margin:0 0 1.125rem;border-bottom:1px solid var(--line);gap:0.25rem}
.dash-tabs--sub a{font-size:0.8438rem;padding:0.5rem 0.875rem;border:0;border-bottom:2px solid transparent;
  border-radius:0;margin-bottom:-1px;background:none}
.dash-tabs--sub a.on{color:var(--blue);border-bottom-color:var(--blue);background:none}
.dash-count{display:inline-block;min-width:1.125rem;padding:0 0.3125rem;margin-inline-start:0.3125rem;
  border-radius:62.4375rem;background:var(--bg2);color:var(--ink2);font-size:0.7188rem;font-weight:600;text-align:center}
.dash-tabs--sub a.on .dash-count{background:var(--blue-t);color:var(--blue)}
.mc-ded__video .mc-vid{aspect-ratio:16/9;border-radius:0.625rem}
.mc-ded__pics,.mc-mod__pics{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.875rem}
.mc-ded__pic,.mc-mod__pic{flex:0 0 5rem;aspect-ratio:1;margin:0;border-radius:0.5rem;
  overflow:hidden;background:var(--bg2)}
/* Снимки отзыва открываются в лайтбоксе — показываем это курсором, как в галерее. */
.mc-ded__pic{cursor:zoom-in;transition:.2s}
.mc-ded__pic:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.mc-ded__pic img{width:100%;height:100%;object-fit:cover;display:block}
.mc-ded__body{flex:1;min-width:0}
.mc-ded__text{font-size:0.9375rem;line-height:1.8;color:var(--ink)}
.mc-ded__text p{margin:0 0 0.5rem}
.mc-ded__text p:last-child{margin-bottom:0}
.mc-ded__meta{display:flex;gap:0.75rem;align-items:baseline;margin-top:0.625rem;padding-top:0.625rem;border-top:1px solid var(--line);font-size:0.8125rem;color:var(--muted)}
.mc-ded__from{font-weight:600;color:var(--ink2)}
.mc-ded-empty{color:var(--muted);font-size:0.9062rem;margin:0 0 1.25rem}

.mc-ded-form-wrap{border:1px solid var(--line);border-radius:0.875rem;background:var(--bg2)}
.mc-ded-form-wrap>summary{cursor:pointer;padding:0.875rem 1.125rem;font-weight:600;color:var(--blue);list-style:none}
.mc-ded-form-wrap>summary::-webkit-details-marker{display:none}
.mc-ded-form-wrap>summary::after{content:"+";float:inline-end;font-size:1.1875rem;line-height:1}
.mc-ded-form-wrap[open]>summary::after{content:"−"}
.mc-ded-form{padding:0.25rem 1.125rem 1.25rem}
.mc-ded-form__lead{font-size:0.8438rem;color:var(--muted);margin:0 0 1rem}
/* Строка со ссылками «войти / зарегистрироваться» под подсказкой формы. */
/* Предложение закрепить запись за учётной записью — показывается сразу после
   отправки, когда написанное уже сохранено. */
.mc-ded-claim{margin:0 0 1rem;padding:1rem 1.125rem;border:1px solid var(--blue);
  border-radius:0.75rem;background:var(--blue-t)}
.mc-ded-claim__lead{margin:0 0 0.75rem;font-size:0.9062rem;color:var(--ink)}
.mc-ded-claim__acts{margin:0;display:flex;flex-wrap:wrap;gap:0.5rem}
.mc-ded-form__row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.mc-ded-form input[type=file]{font-size:0.8438rem;color:var(--ink2)}

/* ---------- модерация в личном кабинете ---------- */
.dash-badge{display:inline-block;min-width:1.1875rem;padding:1px 0.375rem;margin-inline-start:0.375rem;border-radius:62.4375rem;background:#A71B3E;color:#fff;font-size:0.7188rem;font-weight:600;line-height:1.6;text-align:center}
.mc-mod-list{display:flex;flex-direction:column;gap:0.875rem}
.mc-mod{display:flex;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:0.875rem;padding:1rem 1.125rem;box-shadow:var(--shadow)}
/* То же и в очереди модерации: там фотография тоже уезжала в полосу. */
.mc-mod__pic img{width:100%;height:100%;object-fit:cover;display:block}
.mc-mod__body{flex:1;min-width:0}
.mc-mod__head{display:flex;flex-wrap:wrap;gap:0.625rem;align-items:baseline;font-size:0.8438rem;color:var(--muted)}
.mc-mod__head strong{font-size:0.9375rem;color:var(--ink)}
.mc-mod__mail{color:var(--blue);text-decoration:none;direction:ltr}
.mc-mod__text{font-size:0.9062rem;line-height:1.8;color:var(--ink);margin:0.5rem 0 0.75rem}
.mc-mod__foot{display:flex;flex-wrap:wrap;gap:0.75rem;align-items:center;justify-content:space-between;padding-top:0.75rem;border-top:1px solid var(--line)}
.mc-mod__for{font-size:0.8125rem;color:var(--muted)}
.mc-mod__for a{color:var(--blue)}
.mc-mod__acts{display:flex;gap:0.5rem;margin:0}
.mc-mod__acts .btn{padding:0.5rem 1rem;font-size:0.8438rem}
.mc-mod__rej{color:#A71B3E;border-color:#A71B3E}
.mc-mod__rej:hover{background:rgba(224,65,106,.08)}

/* =========================================================================
   תהילים אותיות נשמה
   ========================================================================= */
.mc-teh__lead{font-size:0.9062rem;color:var(--ink2);margin:0 0 0.875rem;line-height:1.7}
.mc-teh__chips{display:flex;flex-wrap:wrap;gap:0.4375rem;align-items:center;margin-bottom:1rem}
.mc-teh__chips-lbl{font-size:0.8438rem;color:var(--muted)}
.mc-teh__chip{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 0.5rem;
  border:1px solid var(--line);border-radius:0.5rem;background:#fff;color:var(--ink);font-size:1rem;font-weight:600;text-decoration:none;transition:.18s}
.mc-teh__chip:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-t)}

.mc-teh__wrap{border:1px solid var(--line);border-radius:0.875rem;background:#fff}
.mc-teh__wrap>summary{cursor:pointer;padding:0.875rem 1.125rem;font-weight:600;color:var(--blue);list-style:none}
.mc-teh__wrap>summary::-webkit-details-marker{display:none}
.mc-teh__wrap>summary::after{content:"+";float:inline-end;font-size:1.1875rem;line-height:1}
.mc-teh__wrap[open]>summary::after{content:"−"}

.mc-teh__toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:0 1.125rem 0.75rem;border-bottom:1px solid var(--line)}
.mc-teh__toggle{display:flex;align-items:center;gap:0.5rem;font-size:0.8438rem;color:var(--ink2);cursor:pointer}
.mc-teh__toggle input{width:1rem;height:1rem;accent-color:var(--blue)}
.mc-teh__print{border:1px solid var(--line);background:#fff;border-radius:0.5rem;padding:0.375rem 0.875rem;font-size:0.8438rem;color:var(--ink2);cursor:pointer}
.mc-teh__print:hover{border-color:var(--blue);color:var(--blue)}

/* Фон под цвет молитвенника — так текст читается спокойнее, чем на белом. */
.mc-teh__body{padding:1.125rem;background:#fdf8ef}
.mc-teh__group{margin-bottom:1.375rem}
.mc-teh__group:last-child{margin-bottom:0}
.mc-teh__stanza{position:relative}
.mc-teh__letter{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;height:2.125rem;margin-bottom:0.625rem;
  padding:0 0.75rem;border-radius:0.5rem;background:#1b2733;color:#fff;font-size:1.0625rem;font-weight:600}
.mc-teh__verses{margin:0;padding-inline-start:0;list-style:none;counter-reset:none}
.mc-teh__verses li{display:flex;gap:0.625rem;align-items:baseline;margin-bottom:0.5625rem;font-size:1.1875rem;line-height:2.1}
.mc-teh__verses li::before{content:attr(value);flex:0 0 auto;font-size:0.7188rem;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:0.375rem}
/* Системная засечная гарнитура: у David/Frank Ruhl на иврите правильные
   позиции огласовок, а сторонние шрифты тянуть незачем. */
.mc-teh__v{font-family:'Frank Ruhl Libre','David Libre','Times New Roman',serif}
.mc-teh__nesh-head{margin:1.625rem 0 0.875rem;padding-top:1rem;border-top:2px solid rgba(27,39,51,.12);font-size:1rem;font-weight:600;color:var(--ink)}
.mc-teh__src{padding:0.625rem 1.125rem 0.875rem;margin:0;font-size:0.7188rem;color:var(--muted)}

@media(max-width:640px){
  .mc-ded,.mc-mod{flex-direction:column}
  /* На телефоне тот же мелкий размер: снимки — метка «тут есть фотографии»,
     смотрят их всё равно в лайтбоксе. */
  .mc-ded__pic,.mc-mod__pic{flex:0 0 4.5rem}
  .mc-ded-form__row{grid-template-columns:1fr}
  .mc-mod__acts{width:100%}
  .mc-mod__acts .btn{flex:1}
  .mc-teh__verses li{font-size:1.0625rem;line-height:2}
}

/* Печать: на бумагу уходят только псалмы. */
@media print{
  body.mc-print-teh .site-nav,body.mc-print-teh .site-footer,body.mc-print-teh .mem-blk:not(.mc-teh),
  body.mc-print-teh .mem-hero,body.mc-print-teh .mem-qr,body.mc-print-teh .mem-cta,
  body.mc-print-teh .mc-teh__toolbar,body.mc-print-teh .mc-teh__chips{display:none !important}
  body.mc-print-teh .mc-teh__body{background:#fff;padding:0}
}

/* Радио-группа в форме редактирования (пол усопшего). */
.fld--radio{border:0;margin:0 0 1rem;padding:0}
.fld--radio legend{padding:0}
.fld__radio{display:inline-flex;align-items:center;gap:0.4375rem;margin-inline-end:1.25rem;font-size:0.9062rem;color:var(--ink2);cursor:pointer}
.fld__radio input{width:1rem;height:1rem;accent-color:var(--blue)}

/* =========================================================================
   Кнопки действий: נר נשמה + הקדשה
   ========================================================================= */
.mem-acts{display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap;padding:1.625rem 0 0.375rem}
.mem-act{display:inline-flex;align-items:center;gap:0.75rem;padding:0.75rem 1.375rem;border:1px solid var(--line);border-radius:0.75rem;
  background:#fff;box-shadow:var(--shadow);color:var(--ink);font:inherit;font-size:0.9375rem;text-decoration:none;cursor:pointer;transition:.22s}
.mem-act:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)}
.mem-act:disabled{cursor:default;transform:none}
.mem-act__lbl{font-weight:500}
.mem-act__ico{display:flex;color:var(--blue)}
.mem-act__ico svg{fill:currentColor}
/* Счётчик строкой под кнопками: на портрете остаётся только огонёк. */
.mem-acts__n{margin:0.625rem 0 0;text-align:center;font-size:0.9375rem;color:var(--blue)}
@media(max-width:520px){
  .mem-acts{flex-direction:column;padding-inline:0}
  .mem-act{justify-content:center}
}

/* ---------- свеча со счётчиком на портрете ---------- */
.mem-portrait{position:relative}
/* Правый нижний угол — физический, не логический: в RTL inset-inline-end смотрит влево. */
.mem-candle-badge{position:absolute;bottom:0.5rem;right:0.5rem;display:flex;line-height:1}
.mem-candle-badge img{width:auto;height:3rem;display:block;border-radius:0.5rem}

/* ---------- окно благодарности ---------- */
.mc-candle-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1.5rem;
  background:rgba(8,11,16,.86);backdrop-filter:blur(0.25rem);opacity:0;transition:opacity .3s ease}
/* ОБЯЗАТЕЛЬНО: display:flex у класса перебивает браузерное [hidden]{display:none},
   и закрытое окно остаётся растянутым на весь экран — прозрачным, но перехватывает
   все нажатия, включая меню. Гасим и через display, и через pointer-events. */
.mc-candle-modal[hidden]{display:none}
.mc-candle-modal:not(.is-open){pointer-events:none}
.mc-candle-modal.is-open{opacity:1;pointer-events:auto}
/* Карточка по ширине контентной колонки, а не на весь экран. */
.mc-candle-modal__in{position:relative;width:100%;max-width:var(--maxw);height:min(74vh,38.75rem);
  border-radius:1rem;overflow:hidden;background:#000;box-shadow:0 1.875rem 5.625rem -1.25rem rgba(0,0,0,.8);
  display:flex;align-items:flex-end;justify-content:center;
  transform:scale(.97);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.mc-candle-modal.is-open .mc-candle-modal__in{transform:none}
/* Крестик внутри карточки. Угол физический: в RTL логические свойства
   увели бы его к правому краю. */
.mc-candle-modal__x{position:absolute;top:0.875rem;left:0.875rem;z-index:2;width:2.5rem;height:2.5rem;
  display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:0.625rem;
  background:rgba(0,0,0,.25);color:#fff;cursor:pointer;transition:.2s}
.mc-candle-modal__x:hover{background:rgba(255,255,255,.16);border-color:#fff}
/* Видео занимает верхние 75% карточки, текст ложится под ним на чёрном —
   так надписи не спорят с пламенем. Высота задана явно: top и bottom из inset
   переопределяются ею, поэтому нижняя четверть остаётся свободной. */
/* Прозрачное до готовности: иначе видно нулевой кадр, а потом рывок к 9-й
   секунде. Карточка под видео чёрная, поэтому пустоты в этот момент нет. */
.mc-candle-modal__video{position:absolute;inset:0;width:100%;height:75%;object-fit:cover;background:#000;
  opacity:0;transition:opacity .22s ease}
.mc-candle-modal__video.is-ready{opacity:1}
@media(prefers-reduced-motion:reduce){
  .mc-candle-modal__video{transition:none}
}
.mc-candle-modal__txt{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0.5rem;
  padding:0 1.5rem 1.875rem;text-align:center;color:#fff;text-shadow:0 2px 1.125rem rgba(0,0,0,.9)}
.mc-candle-modal__pic{width:4.75rem;height:4.75rem;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.55);
  box-shadow:0 0.375rem 1.5rem rgba(0,0,0,.6)}
.mc-candle-modal__name{margin:0.375rem 0 0;font-size:1.4375rem;font-weight:600;line-height:1.25}
.mc-candle-modal__thanks{margin:0;font-size:1.0625rem;font-weight:400;line-height:1.45;color:#e8eef5}
.mc-candle-modal__n{margin:2px 0 0;font-size:0.9688rem;color:#ffce7a}
@media(max-width:640px){
  /* На телефоне полупустых полей вокруг нет смысла — карточка почти во весь экран. */
  .mc-candle-modal{padding:0}
  .mc-candle-modal__in{max-width:none;height:100%;border-radius:0}
  .mc-candle-modal__name{font-size:1.3125rem}
  .mc-candle-modal__thanks{font-size:1rem}
  .mc-candle-modal__pic{width:4.25rem;height:4.25rem}
}


/* ---------- памятная дата: свеча горит сама ---------- */
/* Карточка чёрная не для красоты: у candle.gif фон тоже чёрный и непрозрачный.
   На прежнем сине-сером градиенте он читался вторым прямоугольником внутри
   первого. Совпадающий фон убирает шов, и остаётся одна аккуратная карточка.
   Ширина по содержимому — полоса во весь экран ради двух строк не нужна. */
.mem-occ{display:flex;flex-direction:column;align-items:center;gap:0.875rem;
  width:max-content;max-width:100%;margin:1.625rem auto 0;padding:1.5rem 2.25rem 1.25rem;
  border-radius:1rem;background:#000;color:#fff;box-shadow:var(--shadow);text-align:center}
.mem-occ__gif{display:block;width:auto;height:7rem;flex:0 0 auto}
.mem-occ__txt{display:flex;flex-direction:column;gap:0.25rem;min-width:0}
.mem-occ__txt strong{font-size:1.0625rem;font-weight:600;line-height:1.35;letter-spacing:0.01em}
.mem-occ__he{font-size:0.8438rem;color:#b9c6d4}
@media(max-width:520px){
  .mem-occ{gap:0.75rem;padding:1.25rem 1.5rem 1.125rem}
  .mem-occ__gif{height:6.5rem}
}

/* ---------- иконки ---------- */
/* Размер иконок приходит из PHP атрибутами width/height в пикселях, поэтому при
   общем масштабировании они остались бы мелкими рядом с подросшим текстом.
   Привязываем к em — теперь иконка растёт вместе со своей подписью. */
.nav-icon svg,.mem-act__ico svg,.nav-btn svg,.socials svg,.mem-cta .tel svg{
  width:1.3em;height:1.3em}
.socials svg{width:1.15em;height:1.15em}
/* Лупа видна только на телефоне и там она единственный вход в поиск — крупнее прочих.
   Правило стоит после общего размера иконок: специфичность у них одинаковая. */
@media(max-width:900px){.nav-icon--search svg{width:2em;height:2em}}

/* =========================================================================
   VIP-страницы

   Отличие от обычной страницы памяти — не в количестве блоков, а в убранстве:
   бумажная текстура вместо белого фона и акварельный декор по краям.
   Картинки приходят из полей записи, поэтому их адреса подставляются
   переменными в <head> (см. inc/vip.php), а здесь только раскладка.
   ========================================================================= */
@font-face{font-family:'SecularMC';src:url(assets/fonts/secular-one-he.woff2) format('woff2');
  font-weight:400;font-display:swap;unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:'SecularMC';src:url(assets/fonts/secular-one-latin.woff2) format('woff2');
  font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2122}

/* Фон страницы идёт до самого подвала, поэтому общий отступ снизу здесь лишний. */
.single-vip-page .site-main{padding:0}

/* Фон стоит на месте при прокрутке: страница листается «за» рисунком. */
.vip{position:relative;background:var(--vip-paper) no-repeat center/cover fixed;min-height:70vh;
  padding-bottom:2.5rem}

/*
 * Декор отдельным слоем: сквозь него должно нажиматься всё, что под ним.
 * position:fixed — рисунок остаётся на своих углах экрана, как и фон.
 */
.vip__decor{position:fixed;inset:0;pointer-events:none;z-index:0}
.vip__decor span{position:absolute;display:block;background-repeat:no-repeat}
/* Углы физические, не логические: в RTL логические зеркалятся. */
.vip__decor-top{top:0;left:0;width:min(46rem,72%);aspect-ratio:1366/768;
  background-image:var(--vip-top);background-size:contain;background-position:top left;opacity:.9}
.vip__decor-side{bottom:0;right:0;width:min(20rem,34%);aspect-ratio:600/1000;
  background-image:var(--vip-side);background-size:contain;background-position:bottom right;opacity:.9}
/* Крупная ветка — левый нижний угол, чтобы уравновесить цветы справа.
   Приподнята над краем: у самого низа она сливалась с подвалом. */
.vip__decor-sprig{bottom:10rem;left:0;width:min(24rem,40%);aspect-ratio:750/170;
  background-image:var(--vip-sprig);background-size:contain;background-position:bottom left;opacity:.85}

.vip__in{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:2.5rem 1.5rem 0}

/* ---------- шапка ---------- */
.vip__hero{text-align:center}
.vip__portrait{margin-inline:auto}
/* На VIP кнопка правки — ссылка, а не button: снимаем подчёркивание. */
.mc-edit-fab{text-decoration:none}
.vip__name{font-family:'SecularMC','HeeboMC',sans-serif;font-weight:400;
  font-size:clamp(2rem,6vw,3rem);line-height:1.12;color:var(--vip-ink);margin:0 0 0.5rem}
.vip__date{font-family:'SecularMC','HeeboMC',sans-serif;font-size:clamp(1.125rem,3vw,1.4375rem);
  color:var(--vip-ink);opacity:.75;margin:0 0 1.75rem}

/* Кнопка молитв — в цвете оформления, а не в общем синем. */
.vip__pray{display:inline-flex;align-items:center;gap:0.625rem;margin-top:2rem;padding:0.875rem 1.5rem;
  border-radius:0.75rem;background:var(--vip-accent);color:var(--vip-ink);
  font-family:'SecularMC','HeeboMC',sans-serif;font-size:1.0625rem;text-decoration:none;
  box-shadow:0 0.25rem 1rem -0.5rem rgba(0,0,0,.25);transition:.22s}
.vip__pray:hover{transform:translateY(-1px);box-shadow:0 0.5rem 1.25rem -0.5rem rgba(0,0,0,.3)}
.vip__pray-ico{display:flex}
.vip__pray-ico svg{width:1.3em;height:1.3em;fill:currentColor}

/* ---------- секции ---------- */
.vip__blk{margin-top:3rem}
.vip__head{margin:0 0 1.5rem;text-align:center}
.vip__head h2{display:inline-flex;align-items:center;justify-content:center;gap:0.625rem;
  font-family:'SecularMC','HeeboMC',sans-serif;font-weight:400;
  font-size:clamp(1.5rem,4vw,2rem);line-height:1.2;color:var(--vip-ink);margin:0}
/* Веточки по бокам заголовка — мелкая картинка. Правая зеркальна левой. */
.vip__head h2::before,.vip__head h2::after{content:"";width:4rem;aspect-ratio:125/69;flex:0 0 auto;
  background-image:var(--vip-sprig-sm);background-repeat:no-repeat;background-size:contain;background-position:center}
.vip__head h2::after{transform:scaleX(-1)}
.vip__head-ico{display:flex;color:var(--vip-ink)}
.vip__head-ico svg{width:1.15em;height:1.15em;fill:currentColor}

.vip__audio{width:100%;height:2.75rem;display:block;border-radius:62.4375rem}

/* Кнопки действий в шапке: общий синий счётчик спорит с акварелью. */
.vip .mem-acts{padding-top:0}
/* Отступ до кнопки молитв держит сама кнопка: счётчик прячется, когда свечей нет. */
.vip .mem-acts__n{color:var(--vip-ink);opacity:.8}

/* Галерея наследует раскладку обычной, меняется только просвет между фото. */
.vip__gal{column-gap:0.75rem}
.vip__gal figure{margin-bottom:0.75rem;background:rgba(255,255,255,.6)}

@media(max-width:640px){
  .vip__in{padding-top:1.75rem}
  .vip__blk{margin-top:2.25rem}
  /* Заголовок держим одной строкой: перенос внутри flex отрывает иконку от текста. */
  .vip__head h2{white-space:nowrap;font-size:clamp(1.25rem,5vw,1.625rem);gap:0.4375rem}
  /* Веточки на узком экране только сужаем: убрать их — потерять весь характер. */
  .vip__head h2::before,.vip__head h2::after{width:2rem}
  .vip__decor-top{width:88%}
  .vip__decor-side{width:44%;opacity:.75}
  .vip__decor-sprig{width:52%;opacity:.7}
}

/* ---------- звуковые записи ---------- */
.mem-audio{display:flex;flex-direction:column;gap:1rem}
.mc-audio{margin:0;padding:1rem 1.125rem;border:1px solid var(--line);border-radius:0.75rem;background:var(--bg2)}
.mc-audio__title{font-weight:600;color:var(--ink);margin-bottom:0.5rem}
.mc-audio__player{width:100%;height:2.5rem;display:block}
.mc-audio__text{margin:0.625rem 0 0;font-size:0.9375rem;color:var(--ink2);line-height:1.5}

/* строки в редакторе */
.mc-audio-edit{display:flex;flex-direction:column;gap:0.75rem;align-items:flex-start}
.mc-audio-row{width:100%;display:flex;flex-direction:column;gap:0.5rem;
  padding:0.875rem;border:1px solid var(--line);border-radius:0.625rem;background:#fff}
.mc-audio-row__head{display:flex;align-items:center;gap:0.75rem}
.mc-audio-row__file{flex:1 1 auto;font-size:0.8125rem;color:var(--muted);word-break:break-all}
.mc-audio-row__head button{flex:0 0 auto;width:1.75rem;height:1.75rem;border:0;border-radius:50%;
  background:var(--line2);color:var(--ink2);font-size:1.125rem;line-height:1;cursor:pointer}
.mc-audio-row__head button:hover{background:#ffe3e3;color:#b32d2e}

/* Мобильный блок держим последним в файле: media query не повышает
   специфичность, поэтому переопределения работают только если стоят
   ниже правил, которые они правят. */
/* =========================================================================
   Телефоны: плотнее и без выпираний
   ========================================================================= */
@media(max-width:640px){
  /* Корневой кегль 15px вместо 16: вся вёрстка в rem, поэтому отступы и шрифты
     ужимаются пропорционально. 85% давало уже нечитаемо мелкий текст. */
  html{font-size:93.75%}

  /* Из-за nowrap длинные ивритские заголовки не переносились и вылезали за экран —
     страница ехала в сторону. На узком экране перенос разрешаем. */
  .sec-head h2,.vip__head h2{white-space:normal}
  .sec-head{gap:0.5rem}
  .sec-head h2{font-size:1.25rem}

  /* Та же беда у кнопок: «לצפיה בעמוד לחץ כאן» одной строкой распирало карточку.
     Перенос разрешаем, но пару кнопок в ряд лучше ставить друг под другом во всю
     ширину — так они остаются одной строкой текста и выглядят ровно. */
  .btn,.mem-nav .nav-btn{white-space:normal}
  /* Плашка «смотреть» на телефоне мельче: иначе упирается в края кадра. */
  .mc-vid__cap span{font-size:0.9375rem;padding:0.4375rem 0.875rem}
  .hero__btns,.mem-acts,.mem-nav{flex-direction:column;align-items:stretch;gap:0.625rem}
  /* flex-basis в колонке задаёт высоту, а не ширину: старое `flex:1 1 8.75rem`
     у кнопок Waze/Google Maps растягивало их на 140px в высоту. */
  .hero__btns .btn,.mem-acts .mem-act,.mem-nav .nav-btn{width:100%;justify-content:center;flex:0 0 auto}
  /* «ערוך עמוד» и «מחק» — в одну строку: две широкие кнопки друг под другом
     растягивали карточку и отодвигали следующую страницу за экран. Кнопки
     делят ширину поровну, снимок чуть уже, подписи не переносятся. */
  .mc-card__media{flex-basis:34%}
  .mc-card__actions{flex-wrap:nowrap;gap:0.375rem;align-self:stretch}
  /* min-width:0 обязателен: без него кнопка не ужимается меньше своего текста,
     и карточка вылезает за экран (а html{overflow-x:clip} прячет это молча).
     Перенос строк оставляем разрешённым по той же причине. */
  .mc-card__actions .btn{flex:1 1 0;min-width:0;padding-inline:0.5rem;font-size:0.8125rem}
  .mc-card__body{padding:0.875rem 0.75rem}
  .mc-card__name{font-size:1.0625rem}

  /* Единая шкала текста. До этого кегли гуляли от 0.81 до 1.03rem в зависимости
     от блока, и страница выглядела собранной из разных кусков. Теперь абзацы
     везде одинаковые, подписи — на ступень мельче. */
  body{line-height:1.55}
  .prose,.post-generic .entry,.mem-bio,.mem-info .row .v{font-size:1rem;line-height:1.7}
  .prose p{margin-bottom:0.875rem}
  .feat p,.step p,.mc-card__excerpt,.mem-acts__n,.hero__sub-p{font-size:0.9375rem;line-height:1.65}
  .feat h3,.step h3{font-size:1rem}
  .mem-quote p{line-height:1.45}

  /* Блок «רוצים גם לבנות עמוד כזה?»: номер ломался на две строки. */
  .mem-cta{padding:1.75rem 1.125rem}
  .mem-cta h3{font-size:1.3125rem;line-height:1.3}
  .mem-cta .tel{font-size:1rem;padding:0.75rem 1.25rem;white-space:nowrap}

  /* Подвал: контакты и копирайт по центру, ссылки — плотнее по высоте. */
  .foot-in{flex-direction:column;justify-content:center;text-align:center;gap:0.875rem;padding:1.25rem 1.5rem}
  /* Связаться с нами — главное действие в подвале на телефоне: кнопки крупнее,
     чтобы попадать пальцем, и просвет между ними больше. */
  .foot-in .socials{justify-content:center;gap:1.125rem}
  .socials a{width:3.25rem;height:3.25rem;border-radius:0.75rem}
  .socials svg{width:1.5em;height:1.5em}
  /* Ссылки нижней полосы шли в два ряда с большим просветом — сводим ряды вплотную. */
  .foot-bar-in{gap:0.2rem 1.625rem;padding:0.625rem 1rem;line-height:1.35}
  .foot-bar a{padding:0.125rem 0}
}

/* ---- Попап пожертвования: выбор платёжного приложения ---------------------
   Кнопка «לתרומה לחצו כאן» больше не ведёт напрямую на кошелёк: израильские
   PayBox и bit — разные приложения, и посетитель выбирает своё. */
.mc-donate[hidden]{display:none}
.mc-donate{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1.25rem}
.mc-donate__backdrop{position:absolute;inset:0;background:rgba(15,26,36,.55);backdrop-filter:blur(0.1875rem)}
.mc-donate__box{position:relative;background:var(--bg);border-radius:1rem;width:min(26rem,100%);
  padding:1.75rem 1.5rem 1.5rem;text-align:center;box-shadow:0 1.875rem 5rem -1.25rem rgba(0,0,0,.5)}
.mc-donate__x{position:absolute;inset-block-start:0.5rem;inset-inline-end:0.75rem;border:0;background:none;
  font-size:1.75rem;line-height:1;color:var(--muted);cursor:pointer;padding:0.25rem}
.mc-donate__title{font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-weight:600;font-size:1.25rem;margin:0 0 0.375rem}
.mc-donate__hint{margin:0 0 1.25rem;font-size:0.9062rem;color:var(--ink2);line-height:1.45}
.mc-donate__list{display:flex;flex-direction:column;gap:0.75rem}
.mc-donate__btn{display:flex;align-items:center;gap:0.75rem;padding:0.8125rem 1rem;border-radius:0.75rem;
  text-decoration:none;font-weight:600;font-size:1.0312rem;color:#fff;transition:filter .15s}
.mc-donate__btn:hover{filter:brightness(1.08)}
/* Марка приложения: официальный знак, если файл лежит в теме, иначе буквенный
   бейдж. Оба знака белые — потому и кнопка, и карточка тёмные. */
.mc-donate__mark{flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  min-width:2.75rem;height:2.25rem;padding:0 0.375rem;border-radius:0.5rem;background:rgba(255,255,255,.16);
  font-size:0.8125rem;font-weight:700;letter-spacing:.01em}
.mc-donate__mark img{display:block;width:auto;height:1.375rem}
.mc-donate__lbl{flex:1;text-align:start}
.mc-donate__btn--paypal{background:linear-gradient(135deg,#003087,#0070ba);padding-block:1rem}
.mc-donate__btn--paypal .mc-donate__mark{background:none;padding:0;min-width:0;height:auto}
.mc-donate__btn--paypal .mc-donate__mark img{height:1.625rem}
.mc-donate__btn--paypal .mc-donate__lbl{text-align:end;font-size:0.9375rem;opacity:.92}
.mc-donate__btn--paybox{background:linear-gradient(135deg,#0d6fc4,#2b9bee)}
.mc-donate__btn--bit{background:linear-gradient(135deg,#073b4c,#0f5563)}
.mc-donate__btn--bit .mc-donate__mark{background:rgba(62,224,240,.16)}

/* Мобильный вид или десктопный — класс ставит JS. Пока класса нет (JS ещё не
   отработал или отключён), показываем и кнопки, и коды: рабочи оба пути. */
.mc-donate__item{display:flex;flex-direction:column;gap:0.625rem}
.mc-donate__qr{margin:0;display:flex;flex-direction:column;align-items:center;gap:0.875rem;
  padding:1.25rem 1.125rem;border:1px solid transparent;border-radius:1rem;background:var(--bg2)}
/* Знак bit — вектор, тянется как угодно. PayBox отдаёт только растр 148×46,
   поэтому держим его помельче, чтобы на retina не мылился. */
.mc-donate__logo{display:block;width:auto;height:1.75rem}
.mc-donate__item--paybox .mc-donate__logo{height:1.4375rem}
/* Белая рамка вокруг кода — это его quiet zone. Съедать её нельзя: без поля
   по краям сканер не находит границы кода. */
.mc-donate__code{display:block;width:11.25rem;height:11.25rem;object-fit:contain;
  background:#fff;border-radius:0.625rem;padding:0.5rem}
.mc-donate__qr figcaption{font-size:0.875rem;font-weight:600;color:var(--ink)}

/* Скины под каждое приложение — градиенты с их сайтов. Знаки у обоих белые,
   поэтому карточки тёмные; сам код остаётся тёмным на белом. */
.mc-donate__item--paybox .mc-donate__qr{background:linear-gradient(160deg,#0d6fc4,#2b9bee)}
.mc-donate__item--bit .mc-donate__qr{background:linear-gradient(160deg,#073b4c,#0f5563)}
.mc-donate__item--paybox .mc-donate__qr figcaption{color:#fff}
.mc-donate__item--bit .mc-donate__qr figcaption{color:#3ee0f0}

.mc-donate.is-mobile .mc-donate__qr{display:none}
.mc-donate.is-mobile .mc-donate__hint--qr{display:none}
/* Кнопку прячем только там, где есть чем её заменить. */
.mc-donate.is-desktop .mc-donate__item.has-qr .mc-donate__btn{display:none}
.mc-donate.is-desktop .mc-donate__hint--app{display:none}
/* Коды разводим пошире: близко стоящие камера ловит вместе и мажет фокус. */
.mc-donate.is-desktop .mc-donate__box{width:min(26rem,100%)}
.mc-donate.is-desktop .mc-donate__list{flex-direction:row;gap:2.25rem}
.mc-donate.is-desktop .mc-donate__item{flex:1 1 0}

@media (max-width:37.5rem){
  .mc-donate{padding:1rem}
  .mc-donate__box{padding:1.5rem 1.125rem 1.25rem}
  .mc-donate__list{gap:1.25rem}
  .mc-donate__code{width:9.375rem;height:9.375rem}
}

/* ---------- связанные страницы памяти («משפחה וקרובים») -------------------
   Ряд портретов вместо карточек: родственников бывает до десятка, и полные
   карточки увели бы посвящения за пределы экрана. */
.mc-fam{display:flex;flex-wrap:wrap;gap:1.5rem 1.75rem;justify-content:center}
.mc-fam__item{display:flex;flex-direction:column;align-items:center;gap:0.5rem;
  width:6.5rem;text-decoration:none;color:inherit}
.mc-fam__pic{width:5.25rem;height:5.25rem;border-radius:50%;overflow:hidden;background:var(--bg2);
  border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .18s}
.mc-fam__pic img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
.mc-fam__item:hover .mc-fam__pic{transform:translateY(-2px)}
.mc-fam__name{font-size:0.875rem;font-weight:600;line-height:1.25;text-align:center}
.mc-fam__rel{font-size:0.8125rem;color:var(--ink2)}
@media (prefers-reduced-motion:reduce){
  .mc-fam__pic{transition:none}
  .mc-fam__item:hover .mc-fam__pic{transform:none}
}
@media (max-width:37.5rem){
  /* На телефоне ряд прокручивается вбок — так блок остаётся в один экран. */
  .mc-fam{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;
    gap:1.125rem;padding-block-end:0.5rem;scroll-snap-type:x proximity}
  .mc-fam__item{flex:0 0 auto;scroll-snap-align:start;width:5.5rem}
  .mc-fam__pic{width:4.5rem;height:4.5rem}
}

/* ---------- вкладка «משפחה» в редакторе ---------- */
.mc-rel-row{display:flex;align-items:center;flex-wrap:wrap;gap:0.625rem;
  padding:0.75rem;border:1px solid var(--line);border-radius:0.875rem;
  background:#fff;box-shadow:var(--shadow);margin-bottom:0.75rem}
.mc-rel-row.is-pending{background:var(--bg2);border-style:dashed;box-shadow:none}
.mc-rel-row__who{flex:1 1 9rem;min-width:0;display:flex;align-items:center;gap:0.625rem}
.mc-rel-row__who img,.mc-rel-row__blank{width:2.5rem;height:2.5rem;border-radius:50%;
  object-fit:cover;flex:0 0 auto;background:var(--line2)}
.mc-rel-row__name{font-size:0.9062rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Поля живут вне .fld, поэтому базовые стили формы к ним не применяются —
   повторяем их здесь, иначе браузер рисует блоки системным «квадратом». */
.mc-rel-row select,
.mc-rel-row input[type="text"],
.mc-rel-find input[type="search"]{
  font:inherit;font-size:0.9375rem;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:0.5rem;padding:0.5625rem 0.75rem;outline:0;transition:.18s}
.mc-rel-row select:focus,
.mc-rel-row input[type="text"]:focus,
.mc-rel-find input[type="search"]:focus{border-color:var(--blue);box-shadow:0 0 0 0.1875rem rgba(0,109,254,.14)}
.mc-rel-row select{flex:0 0 auto;max-width:12rem}
/* Своя подпись — на всю ширину строки: это отдельная мысль, а не приписка
   к списку, и в одну строку с ним она читается как обрезанная. */
.mc-rel-row [data-mc-rel-custom]{flex:1 0 100%;min-width:0}
.mc-rel-row [data-mc-rel-remove]{flex:0 0 auto;border:0;background:none;font-size:1.375rem;
  line-height:1;color:var(--muted);cursor:pointer;padding:0 0.25rem;border-radius:0.375rem}
.mc-rel-row [data-mc-rel-remove]:hover{color:#b02a4e;background:var(--bg2)}
/* Полоса ответа занимает всю ширину строки: кнопки не должны толкать имя. */
.mc-rel-row__wait{flex:1 0 100%;display:flex;align-items:center;gap:0.5rem;
  font-size:0.8438rem;color:var(--ink2)}

.mc-rel-find{position:relative;margin-top:0.25rem}
.mc-rel-find input[type="search"]{width:100%}
.mc-rel-find__out{position:absolute;inset-inline:0;top:calc(100% + 0.25rem);z-index:5;
  max-height:15rem;overflow-y:auto;background:#fff;border:1px solid var(--line);
  border-radius:0.75rem;box-shadow:0 0.75rem 1.75rem -0.75rem rgba(27,39,51,.28)}
.mc-rel-find__item{display:flex;align-items:center;gap:0.625rem;width:100%;
  padding:0.5rem 0.75rem;border:0;background:none;font:inherit;text-align:start;cursor:pointer}
.mc-rel-find__item:hover{background:var(--bg2)}
.mc-rel-find__item img,.mc-rel-find__item .mc-rel-row__blank{width:2rem;height:2rem;border-radius:50%;object-fit:cover}
.mc-rel-find__item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-rel-find__item em{font-style:normal;font-size:0.8125rem;color:var(--muted)}
.mc-rel-find__empty{margin:0;padding:0.75rem;font-size:0.8438rem;color:var(--muted)}

@media (max-width:37.5rem){
  /* На телефоне список ролей в одну строку с именем не влезает. */
  .mc-rel-row select{flex:1 0 100%;max-width:none}
}

/* ---------- поля на сенсорных экранах ----------
   iOS Safari приближает всю страницу, когда фокус уходит в поле со шрифтом
   меньше 16px (у нас 0.875–0.9375rem). Отключить это через maximum-scale
   в viewport нельзя — iOS 10+ его игнорирует. Единственное надёжное
   лекарство — ровно 16px на сенсорных экранах.
   Размер задан в px, а не в rem, намеренно: на телефоне корневой кегль 93.75%,
   поэтому 1rem там равен 15px — порог iOS не проходил, и зум оставался. */
@media (pointer:coarse){
  .nav-search input,
  .fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld input[type=url],
  .fld input[type=password],.fld input[type=date],.fld input[type=number],.fld input[type=search],
  .fld select,.fld textarea,
  .mc-video-row input,
  .mc-ded-form input[type=file],
  .mc-rel-row select,.mc-rel-row input[type="text"],.mc-rel-find input[type="search"],
  input,select,textarea{font-size:16px}
}

/* ---------- LTR (кириллица/латиница): интерлиньяж плотнее, чем подобран под иврит ---------- */
body[dir="ltr"]{line-height:1.5}
:where(body[dir="ltr"]) :where(h1,h2,h3,h4){line-height:1.2}
body[dir="ltr"] .prose,body[dir="ltr"] .post-generic .entry{line-height:1.65}
body[dir="ltr"] .mem-bio{line-height:1.7}
body[dir="ltr"] .hero__sub-p,body[dir="ltr"] .feat p,body[dir="ltr"] .acc__body,body[dir="ltr"] .ct-hours,body[dir="ltr"] .mc-ded__text,body[dir="ltr"] .mc-mod__text{line-height:1.6}
body[dir="ltr"] .auth-sub,body[dir="ltr"] .fld__hint--block,body[dir="ltr"] .fld textarea,body[dir="ltr"] .mc-teh__lead{line-height:1.55}
body[dir="ltr"] .mc-rte__area{line-height:1.65}
body[dir="ltr"] .hero h1{line-height:1.25}
@media(max-width:640px){body[dir="ltr"] .prose,body[dir="ltr"] .post-generic .entry,body[dir="ltr"] .mem-bio{line-height:1.6}}

/* ---------- переключатель языков ---------- */
.lang-switch{order:4;position:relative;flex:0 0 auto}
.lang-switch__btn{display:inline-flex;align-items:center;gap:0.375rem;height:2.375rem;padding:0 0.75rem;border:1px solid var(--line);background:var(--bg2);border-radius:0.5rem;font:inherit;font-size:0.875rem;font-weight:600;color:var(--ink);cursor:pointer}
.lang-switch__btn svg{fill:currentColor}
.lang-switch__btn:hover{border-color:var(--blue);color:var(--blue)}
.lang-switch__list{position:absolute;inset-inline-end:0;top:calc(100% + 0.375rem);z-index:70;min-width:9.5rem;margin:0;padding:0.25rem;list-style:none;background:#fff;border:1px solid var(--line);border-radius:0.625rem;box-shadow:0 0.625rem 1.5rem rgba(16,32,48,.12)}
.lang-switch__list[hidden]{display:none}
.lang-switch__list a{display:flex;gap:0.5rem;align-items:center;padding:0.5rem 0.625rem;border-radius:0.375rem;color:var(--ink);text-decoration:none;font-size:0.9062rem}
.lang-switch__list a:hover,.lang-switch__list a[aria-current]{background:var(--blue-t)}
.lang-switch__list b{display:inline-block;min-width:1.5rem;color:var(--muted);font-weight:600}
.lang-inline{display:none}
@media(max-width:900px){
  .lang-switch{display:none}
  .nav-body .lang-inline{display:flex;gap:0.5rem;margin-top:1.25rem}
  .lang-inline a{flex:1;text-align:center;padding:0.625rem 0;border:1px solid var(--line);border-radius:0.5rem;color:var(--ink);text-decoration:none;font-weight:600}
  .lang-inline a[aria-current]{background:var(--blue);border-color:var(--blue);color:#fff}
}

/* ---------- страница молитв ---------- */
.mc-pr{border:1px solid var(--line);border-radius:0.75rem;margin:0 0 0.75rem;background:#fff}
.mc-pr>summary{cursor:pointer;padding:0.875rem 1.125rem;font-weight:600;color:var(--ink);list-style:none}
.mc-pr>summary::-webkit-details-marker{display:none}
.mc-pr>summary::after{content:"+";float:inline-end;color:var(--muted)}
.mc-pr[open]>summary::after{content:"\2212"}
.mc-pr__body{padding:0 1.125rem 1rem}
.mc-pr blockquote{margin:0.25rem 0 1rem;padding:0.625rem 1rem;border-inline-start:3px solid var(--blue);background:var(--bg2);border-radius:0 0.5rem 0.5rem 0;color:var(--ink)}
