/*
Theme Name: Code Zikaron (קוד זיכרון)
Theme URI: https://memorycode.co.il
Author: Alexander Drutz + Claude
Description: Классическая RTL-тема для сайта памяти memorycode.co.il. Без билдера. Мемориальные страницы = обычные посты. Бело-синий минимализм (כחול לבן).
Version: 0.3.0
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{
  --blue:#1698f4; --blue-d:#0e77c9; --blue-t:#eaf5ff;
  --bg:#ffffff; --bg2:#f6f9fc;
  --ink:#1b2733; --ink2:#4a5763; --muted:#8a96a3;
  --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 и точки перелома медиазапросов оставлены
   в пикселях: линии не должны размываться, а перелом должен срабатывать
   на реальной ширине экрана. */
html{color-scheme:light;font-size:125%}
body{
  margin:0;
  font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;
  background:var(--bg); color:var(--ink);
  direction:rtl; text-align:right;
  -webkit-font-smoothing:antialiased; line-height:1.65;
  overflow-x:hidden;
}
/* Страховка от бокового сдвига: одного правила на body мало — если что-то всё же
   окажется шире экрана, прокрутку по горизонтали должен погасить и html. */
html{overflow-x:hidden}
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:translateY(-12%)}
.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;right: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{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.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(22,152,244,.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:#e0416a;border-color:#f3c3d0}
.btn--danger:hover{background:#e0416a;color:#fff;border-color:#e0416a}
.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(22,152,244,.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{width:100%;height:100%;display:block}
.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--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:#e0416a}
.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(22,152,244,.14)}
/* Телефон и почта набираются слева направо (иначе «+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.625rem;top:50%;transform:translateY(-50%);width:1.625rem;height:1.625rem;border:0;background:none;cursor:pointer;opacity:.5}
.fld__eye::before{content:"";display:block;width:1rem;height:1rem;margin:0 auto;border:2px solid var(--ink2);border-radius:50% 0;transform:rotate(45deg)}
.fld__eye.is-on{opacity:1;color:var(--blue)}
.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-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:#e0416a}
.mc-notice--error::before{content:"!";background:#e0416a}
/* --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}

/* ---------- личный кабинет ---------- */
.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)}

/* ---------- нижняя панель футера ---------- */
.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;opacity:.92}
.foot-bar a:hover{opacity:1;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(22,152,244,.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:#e0416a}
/* На тач-устройствах ховера нет — показываем сразу. */
@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(22,152,244,.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:#e0416a}

/* ---------- 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(22,152,244,.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}
.mc-vid__cap{position:absolute;inset-block-end:1.375rem;inset-inline:0;text-align:center;color:var(--blue);font-family:'HeeboMC',-apple-system,'Segoe UI',sans-serif;font-size:1.375rem;font-weight:600;pointer-events:none;text-shadow:0 2px 0.75rem rgba(0,0,0,.7)}
.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)}
.mc-ded__pic{flex:0 0 7.25rem;margin:0;border-radius:0.625rem;overflow:hidden;background:var(--bg2)}
.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-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:#e0416a;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{flex:0 0 7.5rem;margin:0;border-radius:0.625rem;overflow:hidden;background:var(--bg2)}
.mc-mod__pic img{width:100%;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:#e0416a;border-color:#e0416a}
.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 auto;max-width:13.75rem}
  .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}
}


/* ---------- памятная дата: свеча горит сама ---------- */
.mem-occ{display:flex;align-items:center;justify-content:center;gap:1.125rem;margin:1.625rem 0 0;padding:1rem 1.25rem;border-radius:0.875rem;
  background:linear-gradient(135deg,#11161d,#1b2733);color:#fff;box-shadow:var(--shadow)}
.mem-occ__gif{width:auto;height:4.75rem;border-radius:0.5rem;flex:0 0 auto}
.mem-occ__txt{display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.mem-occ__txt strong{font-size:1.0625rem;font-weight:600;line-height:1.35}
.mem-occ__he{font-size:0.8438rem;color:#b9c6d4}
@media(max-width:520px){
  .mem-occ{flex-direction:column;text-align:center;gap:0.75rem}
  .mem-occ__gif{height:6rem}
}

/* ---------- иконки ---------- */
/* Размер иконок приходит из 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}
  .hero__btns,.mem-acts,.mem-nav,.mc-card__actions{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,.mc-card__actions .btn{width:100%;justify-content:center;flex:0 0 auto}
  .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}
}
