@font-face {
        font-family: "Proxima Nova";
        font-style: normal;
        font-weight: 400;
        font-display: swap;
        src: url("fonts/proxima-nova/proxima-nova-400.woff2") format("woff2");
      }
      @font-face {
        font-family: "Proxima Nova";
        font-style: normal;
        font-weight: 700;
        font-display: swap;
        src: url("fonts/proxima-nova/proxima-nova-700.woff2") format("woff2");
      }

      /* =====================================================
         Тёмный макет. Дизайн-токены.
         Графит #1b1e20 + светлый градиент + белый акцент #ffffff.
         ===================================================== */
      :root {
        --bg: linear-gradient(135deg, #0e1112 0%, #2a3036 100%);
        --surface: rgba(255, 255, 255, 0.04);
        --surface-2: rgba(255, 255, 255, 0.08);
        --line: rgba(255, 255, 255, 0.1);
        --line-strong: rgba(255, 255, 255, 0.2);

        --ink: #ffffff;
        --ink-700: rgba(255, 255, 255, 0.9);
        --ink-500: rgba(255, 255, 255, 0.65);
        --ink-400: rgba(255, 255, 255, 0.5);
        --ink-300: rgba(255, 255, 255, 0.3);
        --ink-200: rgba(255, 255, 255, 0.15);
        --ink-100: rgba(255, 255, 255, 0.08);
        --ink-050: rgba(255, 255, 255, 0.04);

        --accent:      #ffffff;
        --accent-soft: #ffffff;
        --accent-deep: #ffffff;
        --accent-glow: rgba(255, 255, 255, 0.42);

        --today-bg:   rgba(255, 255, 255, 0.1);
        --today-fg:   #ffffff;
        --today-soft: rgba(255, 255, 255, 0.08);

        --weekend: #ff8a8a;

        --radius-sm: 8px;
        --radius: 14px;
        --radius-lg: 22px;
        --radius-xl: 28px;
        --radius-pill: 999px;

        --shadow-1: 0 1px 0 rgba(41, 49, 51, 0.04), 0 8px 24px rgba(41, 49, 51, 0.05);
        --shadow-2: 0 1px 0 rgba(41, 49, 51, 0.05), 0 16px 40px rgba(41, 49, 51, 0.10);
        --shadow-deep: 0 24px 56px rgba(0, 0, 0, 0.28), 0 6px 16px rgba(0, 0, 0, 0.18);

        --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
        --ease-out: cubic-bezier(0.25, 0.1, 0.25, 1);
      }

      *,
      *::before,
      *::after { box-sizing: border-box; }

      html { -webkit-text-size-adjust: 100%; }
      body {
        margin: 0;
        min-height: 100vh;
        overflow-x: hidden;
        font-family: "Proxima Nova", "Inter", -apple-system, BlinkMacSystemFont,
          "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
        font-size: 16px;
        line-height: 1.55;
        color: var(--ink);
        background: var(--bg);
        background-attachment: fixed;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
      }

      /* =====================================================
         Плавное появление страницы при обновлении.
         До готовности (шрифты + фон героя + календарь) body
         скрыт; затем одним движением проявляется целиком.
         ===================================================== */
      html.is-preloading body {
        opacity: 0;
      }
      body {
        opacity: 1;
        transition: opacity 0.55s var(--ease-out);
      }
      @media (prefers-reduced-motion: reduce) {
        body { transition: none; }
        html.is-preloading body { opacity: 1; }
      }

      /* Резерв высоты для панели событий — чтобы при заполнении
         JS-ом верстка не «прыгала». 5 строк по ~52px + хедер/паддинги. */
      .events-panel__list-track:empty {
        min-height: 296px;
      }
      @media (max-width: 640px) {
        .events-panel__list-track:empty {
          min-height: 260px;
        }
      }

      img { max-width: 100%; height: auto; display: block; }

      a { color: inherit; }

      .visually-hidden {
        position: absolute !important;
        width: 1px; height: 1px;
        padding: 0; margin: -1px;
        overflow: hidden; clip: rect(0,0,0,0);
        white-space: nowrap; border: 0;
      }

      /* =====================================================
         Header — floating glass pill (redesign 2026)
         Тренды: liquid glass, capsule, amber accents, micro-anim
         ===================================================== */
      .site-header {
        position: sticky;
        top: clamp(8px, 1.4vw, 14px);
        z-index: 50;
        margin: clamp(8px, 1.4vw, 14px) clamp(10px, 2.4vw, 22px) 0;
        pointer-events: none;
      }
      .site-header__inner {
        pointer-events: auto;
        position: relative;
        max-width: 1240px;
        margin: 0 auto;
        padding: 6px 6px 6px clamp(20px, 2.6vw, 28px);
        min-height: 60px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        border-radius: 999px;
        background: linear-gradient(
          155deg,
          rgba(58, 67, 70, 0.66) 0%,
          rgba(34, 41, 43, 0.74) 100%
        );
        backdrop-filter: saturate(180%) blur(28px);
        -webkit-backdrop-filter: saturate(180%) blur(28px);
        border: 1px solid rgba(255, 255, 255, 0.10);
        box-shadow:
          0 14px 42px -10px rgba(0, 0, 0, 0.55),
          0 2px 6px rgba(0, 0, 0, 0.25),
          inset 0 1px 0 rgba(255, 255, 255, 0.10);
      }
      /* Тонкая золотистая «волосинка» по верхнему краю капсулы */
      .site-header__inner::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        padding: 1px;
        background: linear-gradient(
          135deg,
          rgba(240, 215, 140, 0.40) 0%,
          rgba(255, 255, 255, 0.10) 20%,
          transparent 50%,
          rgba(212, 180, 74, 0.08) 100%
        );
        -webkit-mask:
          linear-gradient(#000 0 0) content-box,
          linear-gradient(#000 0 0);
        -webkit-mask-composite: xor;
                mask-composite: exclude;
        pointer-events: none;
      }

      .site-header__brand {
        position: relative;
        display: inline-flex;
        align-items: center;
        font-weight: 700;
        font-size: 15.5px;
        letter-spacing: -0.022em;
        color: #ffffff;
        text-decoration: none;
        flex-shrink: 0;
        white-space: nowrap;
        padding: 6px 4px;
        transition: color 0.25s var(--ease), letter-spacing 0.25s var(--ease);
      }
      .site-header__brand:hover {
        color: #f7e0a1;
        letter-spacing: -0.018em;
      }
      .site-header__brand:focus-visible {
        outline: 2px solid rgba(240, 215, 140, 0.75);
        outline-offset: 4px;
        border-radius: 8px;
      }

      .site-header__menu-btn {
        display: none;
        position: relative;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 44px; height: 44px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.10);
        background: rgba(255, 255, 255, 0.04);
        border-radius: 999px;
        cursor: pointer;
        flex-shrink: 0;
        color: rgba(255, 255, 255, 0.92);
        transition:
          background 0.22s var(--ease),
          border-color 0.22s var(--ease),
          box-shadow 0.22s var(--ease),
          transform 0.22s var(--ease);
      }
      .site-header__menu-btn:hover {
        background: rgba(240, 215, 140, 0.10);
        border-color: rgba(240, 215, 140, 0.42);
        box-shadow: 0 0 22px -4px rgba(212, 180, 74, 0.40);
      }
      .site-header__menu-btn:active { transform: scale(0.96); }
      .site-header__menu-btn:focus-visible {
        outline: 2px solid rgba(240, 215, 140, 0.75);
        outline-offset: 3px;
      }
      .site-header__menu-icon {
        position: absolute;
        left: 50%;
        top: calc(50% - 0.8px);
        width: 18px;
        height: 1.6px;
        margin-left: -9px;
        background: currentColor;
        border-radius: 2px;
        transition: background 0.3s var(--ease);
      }
      .site-header__menu-icon::before,
      .site-header__menu-icon::after {
        content: "";
        position: absolute;
        left: 0;
        width: 18px;
        height: 1.6px;
        background: currentColor;
        border-radius: 2px;
        transition: transform 0.3s var(--ease), top 0.3s var(--ease);
      }
      .site-header__menu-icon::before { top: -7.6px; }
      .site-header__menu-icon::after { top: 7.6px; }

      .site-header__nav { display: flex; }
      .site-header__list {
        list-style: none;
        margin: 0; padding: 0;
        display: flex;
        gap: 2px;
        align-items: center;
      }
      .site-header__link {
        position: relative;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        height: 40px;
        padding: 0 16px;
        font-size: 14px;
        font-weight: 500;
        letter-spacing: -0.012em;
        color: rgba(255, 255, 255, 0.65);
        text-decoration: none;
        border-radius: 999px;
        border: 1px solid transparent;
        background: transparent;
        cursor: pointer;
        font-family: inherit;
        transition:
          color 0.22s var(--ease),
          background 0.22s var(--ease),
          border-color 0.22s var(--ease),
          box-shadow 0.22s var(--ease);
      }
      .site-header__link:hover {
        color: #ffffff;
        background: rgba(255, 255, 255, 0.06);
      }
      .site-header__link[aria-current="page"] {
        color: #f7e0a1;
        background: linear-gradient(
          140deg,
          rgba(212, 180, 74, 0.20) 0%,
          rgba(212, 180, 74, 0.06) 100%
        );
        border-color: rgba(212, 180, 74, 0.48);
        box-shadow:
          0 0 20px -4px rgba(212, 180, 74, 0.45),
          inset 0 0 0 1px rgba(255, 255, 255, 0.04);
      }
      .site-header__link[aria-current="page"]:hover {
        color: #fff7d8;
        background: linear-gradient(
          140deg,
          rgba(212, 180, 74, 0.28) 0%,
          rgba(212, 180, 74, 0.10) 100%
        );
      }
      .site-header__link:focus-visible {
        outline: 2px solid rgba(240, 215, 140, 0.75);
        outline-offset: 2px;
      }

      /* Выпадающее меню */
      .site-header__dropdown { position: relative; }
      .site-header__dropdown-chevron {
        display: inline-block;
        width: 6px; height: 6px;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg) translateY(-1px);
        opacity: 0.55;
        margin-left: 2px;
        transition: transform 0.28s var(--ease), opacity 0.25s var(--ease);
      }
      .site-header__dropdown-toggle[aria-expanded="true"] .site-header__dropdown-chevron,
      .site-header__dropdown.is-submenu-open .site-header__dropdown-chevron,
      .site-header__dropdown:hover .site-header__dropdown-chevron,
      .site-header__dropdown:focus-within .site-header__dropdown-chevron {
        transform: rotate(-135deg) translateY(1px);
        opacity: 0.95;
      }
      /* Гамбургер → крест при открытом меню */
      .site-header__menu-btn[aria-expanded="true"] {
        background: rgba(240, 215, 140, 0.12);
        border-color: rgba(240, 215, 140, 0.48);
        box-shadow: 0 0 18px -4px rgba(212, 180, 74, 0.40);
      }
      .site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon {
        background: transparent;
      }
      .site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon::before,
      .site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon::after {
        top: 0;
      }
      .site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon::before {
        transform: rotate(45deg);
      }
      .site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon::after {
        transform: rotate(-45deg);
      }

      .site-header__submenu {
        display: none;
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        min-width: 260px;
        margin-top: 14px;
        background: linear-gradient(
          155deg,
          rgba(54, 63, 66, 0.92) 0%,
          rgba(32, 39, 41, 0.94) 100%
        );
        border: 1px solid rgba(255, 255, 255, 0.10);
        border-radius: 20px;
        padding: 8px;
        box-shadow:
          0 28px 60px rgba(0, 0, 0, 0.55),
          inset 0 1px 0 rgba(255, 255, 255, 0.08);
        backdrop-filter: blur(24px) saturate(170%);
        -webkit-backdrop-filter: blur(24px) saturate(170%);
      }
      /* Невидимый «мост» для непрерывного hover между пунктом и подменю */
      .site-header__submenu::after {
        content: "";
        position: absolute;
        top: -14px;
        left: 0;
        right: 0;
        height: 14px;
      }
      .site-header__submenu[aria-expanded="true"],
      .site-header__dropdown:focus-within .site-header__submenu,
      .site-header__dropdown:hover .site-header__submenu,
      .site-header__dropdown.is-submenu-open .site-header__submenu {
        display: flex;
        flex-direction: column;
        gap: 2px;
        animation: submenuIn 0.22s var(--ease-out);
      }
      @keyframes submenuIn {
        from { opacity: 0; transform: translateX(-50%) translateY(-6px); }
        to   { opacity: 1; transform: translateX(-50%) translateY(0); }
      }
      /* Тонкий «хвостик» от пункта к подменю */
      .site-header__submenu::before {
        content: "";
        position: absolute;
        top: -5px;
        left: 50%;
        transform: translateX(-50%) rotate(45deg);
        width: 10px; height: 10px;
        background: inherit;
        border: 1px solid rgba(255, 255, 255, 0.10);
        border-right: none;
        border-bottom: none;
        border-radius: 3px 0 0 0;
      }
      .site-header__submenu-link {
        position: relative;
        padding: 10px 14px;
        font-size: 14px;
        font-weight: 500;
        color: rgba(255, 255, 255, 0.74);
        text-decoration: none;
        border-radius: 12px;
        border: 1px solid transparent;
        transition:
          background 0.2s var(--ease),
          color 0.2s var(--ease),
          border-color 0.2s var(--ease),
          padding-left 0.22s var(--ease);
      }
      .site-header__submenu-link:hover {
        background: linear-gradient(
          140deg,
          rgba(212, 180, 74, 0.18) 0%,
          rgba(212, 180, 74, 0.04) 100%
        );
        border-color: rgba(212, 180, 74, 0.34);
        color: #fff7d8;
        padding-left: 18px;
      }
      .site-header__submenu-link:focus-visible {
        outline: 2px solid rgba(240, 215, 140, 0.75);
        outline-offset: 2px;
      }

      @media (max-width: 768px) {
        .site-header {
          top: 8px;
          margin: 8px 10px 0;
        }

        .site-header__inner {
          min-height: 54px;
          padding: 5px 5px 5px clamp(16px, 4vw, 20px);
          justify-content: space-between;
        }

        .site-header__menu-btn {
          display: flex;
        }

        .site-header__nav {
          display: none;
          position: absolute;
          left: 0;
          right: 0;
          top: calc(100% + 10px);
          padding: 10px;
          background: linear-gradient(
            155deg,
            rgba(58, 67, 70, 0.96) 0%,
            rgba(34, 41, 43, 0.98) 100%
          );
          backdrop-filter: saturate(180%) blur(28px);
          -webkit-backdrop-filter: saturate(180%) blur(28px);
          border: 1px solid rgba(255, 255, 255, 0.10);
          border-radius: 24px;
          box-shadow:
            0 20px 50px rgba(0, 0, 0, 0.55),
            inset 0 1px 0 rgba(255, 255, 255, 0.08);
          z-index: 10;
          justify-content: center;
        }

        html.is-site-nav-open {
          overflow: hidden;
          overscroll-behavior: none;
        }

        html.is-site-nav-open body {
          position: fixed;
          left: 0;
          right: 0;
          width: 100%;
          overflow: hidden;
          overscroll-behavior: none;
        }

        html.is-site-nav-open .site-header {
          position: fixed;
          top: 8px;
          left: 10px;
          right: 10px;
          margin: 0;
          width: auto;
        }

        .site-header__nav.is-open {
          display: flex;
          flex-direction: column;
          align-items: stretch;
          justify-content: flex-start;
          max-height: calc(100dvh - 72px);
          max-height: calc(100svh - 72px);
          overflow-x: hidden;
          overflow-y: auto;
          -webkit-overflow-scrolling: touch;
          overscroll-behavior: contain;
          scrollbar-width: thin;
          scrollbar-color: rgba(212, 180, 74, 0.35) transparent;
        }

        .site-header__nav.is-open::-webkit-scrollbar {
          width: 4px;
        }

        .site-header__nav.is-open::-webkit-scrollbar-thumb {
          background: rgba(212, 180, 74, 0.35);
          border-radius: 4px;
        }

        .site-header__list {
          flex-direction: column;
          align-items: stretch;
          width: 100%;
          gap: 4px;
        }

        .site-header__link {
          padding: 12px 18px;
          font-size: 15px;
          border-radius: 14px;
          color: rgba(255, 255, 255, 0.82);
          height: auto;
          min-height: 46px;
          width: 100%;
          justify-content: flex-start;
          text-align: left;
        }

        .site-header__link[aria-current="page"] {
          border-radius: 14px;
        }

        .site-header__dropdown {
          display: flex;
          flex-direction: column;
          align-items: stretch;
          width: 100%;
        }

        .site-header__dropdown:hover .site-header__submenu,
        .site-header__dropdown:focus-within .site-header__submenu {
          display: none;
        }

        .site-header__dropdown:hover .site-header__dropdown-chevron,
        .site-header__dropdown:focus-within .site-header__dropdown-chevron {
          transform: rotate(45deg) translateY(-1px);
          opacity: 0.55;
        }

        .site-header__dropdown-toggle {
          width: 100%;
          justify-content: space-between;
          padding: 12px 18px;
          font-size: 15px;
          color: rgba(255, 255, 255, 0.82);
          border-radius: 14px;
          height: auto;
          min-height: 46px;
          text-align: left;
        }

        .site-header__dropdown-toggle .site-header__dropdown-chevron {
          flex-shrink: 0;
          margin-left: 8px;
        }

        .site-header__submenu {
          position: static;
          left: auto;
          top: auto;
          width: 100%;
          min-width: 0;
          max-width: none;
          margin-top: 4px;
          transform: none;
          border-radius: 14px;
          padding: 6px;
          display: none;
          background: rgba(255, 255, 255, 0.04);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
          backdrop-filter: none;
          -webkit-backdrop-filter: none;
          animation: none;
        }

        .site-header__submenu::before,
        .site-header__submenu::after {
          display: none;
        }

        .site-header__submenu-link {
          justify-content: flex-start;
          text-align: left;
          padding: 10px 16px;
          transition:
            background 0.2s var(--ease),
            color 0.2s var(--ease),
            border-color 0.2s var(--ease);
        }

        .site-header__submenu-link:hover {
          padding-left: 18px;
        }

        .site-header__dropdown.is-submenu-open .site-header__submenu,
        .site-header__dropdown.is-submenu-open:hover .site-header__submenu,
        .site-header__dropdown.is-submenu-open:focus-within .site-header__submenu {
          display: flex;
          flex-direction: column;
          gap: 2px;
          animation: none;
          transform: none;
          opacity: 1;
        }

        .site-header__dropdown.is-submenu-open .site-header__dropdown-chevron,
        .site-header__dropdown.is-submenu-open:hover .site-header__dropdown-chevron {
          transform: rotate(-135deg) translateY(1px);
          opacity: 0.95;
        }
      }

      @media (max-width: 420px) {
        .site-header__brand {
          font-size: 14px;
        }
      }

      /* =====================================================
         Main / Grid
         ===================================================== */
      .home-main {
        max-width: 1240px;
        margin: 0 auto;
        padding: 0 clamp(16px, 4vw, 32px) 96px;
      }
      .home-main__grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: clamp(24px, 3.5vw, 48px);
      }

      /* ------- Intro ------- */
      .home-main__intro {
        position: relative;
        overflow: hidden;
        /* Фон растягивается во всю ширину окна, но контент выровнен
           с остальными секциями (.home-main: max-width 1240px,
           внутренний паддинг clamp(16px, 4vw, 32px) ⇒ контентная
           область до 1176px). 620 − 32 = 588. */
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding: clamp(40px, 6vw, 72px) max(clamp(16px, 4vw, 32px), calc(50vw - 588px));
        display: grid;
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: clamp(24px, 3vw, 40px);
        align-items: center;
      }
      .home-main__intro::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: image-set(
          url("assets/church-cropped.webp?v=6") type("image/webp"),
          url("assets/church-cropped.png?v=6") type("image/png")
        );
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
        z-index: -2;
        transition: transform 0.8s var(--ease-out);
        -webkit-mask-image: linear-gradient(
          180deg,
          #000 0%,
          #000 55%,
          rgba(0, 0, 0, 0.6) 85%,
          transparent 100%
        );
        mask-image: linear-gradient(
          180deg,
          #000 0%,
          #000 55%,
          rgba(0, 0, 0, 0.6) 85%,
          transparent 100%
        );
      }
      .home-main__intro:hover::before {
        transform: scale(1.02);
      }
      .home-main__intro::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
          linear-gradient(
            180deg,
            rgba(27, 30, 32, 0.75) 0%,
            rgba(27, 30, 32, 0.35) 25%,
            rgba(27, 30, 32, 0.15) 55%,
            rgba(27, 30, 32, 0.25) 80%,
            transparent 100%
          ),
          linear-gradient(90deg, rgba(27, 30, 32, 0.6) 0%, rgba(27, 30, 32, 0) 55%);
        z-index: -1;
      }
      .home-main__intro-content {
        position: relative;
        z-index: 1;
        min-width: 0;
      }
      .home-main__eyebrow {
        display: inline-block;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(240, 240, 240, 0.9);
        padding: 6px 12px;
        border: 1px solid rgba(255, 255, 255, 0.55);
        border-radius: var(--radius-pill);
        background: rgba(255, 255, 255, 0.05);
      }
      .home-main__title {
        margin: 22px 0 18px;
        font-size: clamp(40px, 6.5vw, 72px);
        font-weight: 800;
        line-height: 1.02;
        letter-spacing: -0.035em;
        color: var(--ink);
      }
      .home-main__text {
        margin: 0;
        max-width: 56ch;
        font-size: clamp(16px, 1.4vw, 19px);
        color: var(--ink-500);
      }
      .home-main__cta {
        margin-top: 28px;
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
      }
      .btn {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 26px;
        font: inherit;
        font-size: 15px;
        font-weight: 600;
        letter-spacing: -0.012em;
        border-radius: 999px;
        text-decoration: none;
        border: 1px solid transparent;
        cursor: pointer;
        transition:
          background 0.2s var(--ease),
          color 0.2s var(--ease),
          border-color 0.2s var(--ease),
          box-shadow 0.2s var(--ease),
          transform 0.15s var(--ease);
      }
      .btn:active { transform: scale(0.97); }
      .btn--primary {
        background: rgba(255, 255, 255, 0.13);
        color: #ffffff;
        border-color: rgba(255, 255, 255, 0.48);
      }
      .btn--primary:hover {
        background: rgba(255, 255, 255, 0.20);
        color: #f8e8a8;
        border-color: rgba(255, 255, 255, 0.72);
      }
      .btn--ghost-dark {
        background: rgba(255, 255, 255, 0.05);
        color: rgba(255, 255, 255, 0.72);
        border-color: rgba(255, 255, 255, 0.14);
      }
      .btn--ghost-dark:hover {
        background: rgba(255, 255, 255, 0.09);
        border-color: rgba(255, 255, 255, 0.28);
        color: rgba(255, 255, 255, 0.92);
      }

      /* =====================================================
         Events panel — стиль «Градиентное свечение»,
         тёмный графитовый фон
         ===================================================== */
      .events-panel {
        position: relative;
        z-index: 1;
        background: rgba(20, 23, 25, 0.72);
        backdrop-filter: blur(16px) saturate(140%);
        -webkit-backdrop-filter: blur(16px) saturate(140%);
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: var(--radius-xl);
        padding: 20px 20px 16px;
        box-shadow: var(--shadow-deep);
        min-width: 0;
        align-self: stretch;
        color: #fff;
      }
      .events-panel__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 16px;
        padding-bottom: 14px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.25);
        margin-bottom: 12px;
      }
      .events-panel__switch {
        display: inline-flex;
        padding: 3px;
        gap: 2px;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: var(--radius-pill);
        flex-shrink: 0;
      }
      .events-panel__switch-btn {
        padding: 7px 14px;
        font: inherit;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: -0.01em;
        border: none;
        border-radius: var(--radius-pill);
        background: transparent;
        color: rgba(255, 255, 255, 0.52);
        cursor: pointer;
        transition:
          background 0.2s var(--ease-out),
          color 0.2s var(--ease-out),
          box-shadow 0.2s var(--ease-out);
      }
      .events-panel__switch-btn:hover {
        color: rgba(255, 255, 255, 0.82);
      }
      .events-panel__switch-btn.is-active,
      .events-panel__switch-btn[aria-selected="true"] {
        background: rgba(212, 180, 74, 0.18);
        color: var(--glass-today-tag, #f0d78c);
        box-shadow: 0 0 14px rgba(212, 180, 74, 0.18);
      }
      .events-panel__switch-btn:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .events-panel__title {
        margin: 0;
        font-size: 18px;
        font-weight: 800;
        letter-spacing: -0.01em;
        color: #fff;
      }
      .events-panel__dates {
        text-align: right;
        line-height: 1.2;
      }
      .events-panel__body {
        position: relative;
      }
      .events-panel--sized .events-panel__body {
        height: var(--ep-body-h);
        flex-shrink: 0;
      }
      .events-panel--sized .events-panel__view {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
      }
      .events-panel--sized .events-panel__view--events .events-panel__list {
        flex: 0 0 auto;
      }
      .events-panel--sized .events-panel__expand {
        flex-shrink: 0;
      }
      .events-panel__view[hidden] {
        display: none !important;
      }
      .events-panel--announcements .events-panel__dates {
        visibility: hidden;
      }
      .events-panel__ann-list {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
      }
      .events-panel__ann-list::-webkit-scrollbar { width: 3px; }
      .events-panel__ann-list::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.12);
        border-radius: 3px;
      }
      .events-panel__ann-track {
        display: flex;
        flex-direction: column;
        gap: 2px;
      }
      .events-panel__ann-loader {
        margin: 48px auto;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        border: 2px solid rgba(255, 255, 255, 0.12);
        border-top-color: var(--glass-today-border, #d4b44a);
        animation: epAnnSpin 0.9s linear infinite;
      }
      @keyframes epAnnSpin {
        to { transform: rotate(360deg); }
      }
      .events-panel__ann-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin-top: 14px;
        padding: 11px 16px;
        flex-shrink: 0;
        font-size: 12px;
        font-weight: 600;
        color: #7a6518;
        text-decoration: none;
        background: rgba(212, 180, 74, 0.1);
        border: 1px solid rgba(212, 180, 74, 0.28);
        border-radius: var(--radius-pill);
        transition:
          border-color 0.2s var(--ease-out),
          box-shadow 0.2s var(--ease-out),
          color 0.2s var(--ease-out);
      }
      .events-panel__ann-link:hover {
        color: #5c4a12;
        border-color: var(--glass-today-border, #d4b44a);
        box-shadow: 0 0 14px rgba(212, 180, 74, 0.18);
      }
      .events-panel__ann-link:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }

      /* --- Компактные объявления в панели --- */
      .ep-ann-item {
        display: grid;
        grid-template-columns: 44px 1fr;
        align-items: start;
        column-gap: 12px;
        padding: 10px;
        border-radius: 10px;
        background: transparent;
        position: relative;
        transform: translateZ(0);
        transition: background 0.18s var(--ease);
      }
      .ep-ann-item + .ep-ann-item {
        border-top: 1px solid rgba(255, 255, 255, 0.04);
      }
      .ep-ann-item:hover {
        background: rgba(255, 255, 255, 0.04);
      }
      .ep-ann-item--pinned {
        background:
          linear-gradient(135deg,
            rgba(212, 180, 74, 0.16) 0%,
            rgba(212, 180, 74, 0.04) 100%);
        border: 1px solid rgba(212, 180, 74, 0.45);
        padding: 9px 10px;
      }
      .ep-ann-item--pinned::before {
        content: "";
        position: absolute;
        top: 8px;
        bottom: 8px;
        left: -1px;
        width: 3px;
        border-radius: 0 3px 3px 0;
        background: linear-gradient(180deg, #f0d78c 0%, #d4b44a 100%);
        pointer-events: none;
      }
      .ep-ann-item--clickable {
        cursor: pointer;
      }
      .ep-ann-item--clickable:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .ep-ann-item__date {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 44px;
        min-height: 44px;
        flex-shrink: 0;
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.04);
        border: 1px solid rgba(255, 255, 255, 0.06);
        gap: 2px;
      }
      .ep-ann-item--pinned .ep-ann-item__date {
        border-color: rgba(212, 180, 74, 0.45);
        box-shadow: 0 0 10px rgba(212, 180, 74, 0.15);
      }
      .ep-ann-item__day {
        font-size: 16px;
        font-weight: 800;
        line-height: 1;
        color: #fff;
      }
      .ep-ann-item__month {
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.45);
      }
      .ep-ann-item__body {
        min-width: 0;
        padding-top: 2px;
      }
      .ep-ann-item__pin {
        display: inline-flex;
        margin-bottom: 4px;
        padding: 2px 7px;
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: #5c4a12;
        background: linear-gradient(180deg, #d4b44a 0%, #f0d78c 100%);
        border-radius: var(--radius-pill);
      }
      .ep-ann-item__title {
        margin: 0;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.35;
        color: rgba(255, 255, 255, 0.92);
      }
      .ep-ann-item__event-link {
        display: inline-block;
        margin-top: 4px;
        padding: 2px 8px;
        font-size: 10px;
        font-weight: 600;
        letter-spacing: 0.02em;
        color: #7a6518;
        background: rgba(212, 180, 74, 0.14);
        border: 1px solid rgba(212, 180, 74, 0.35);
        border-radius: var(--radius-pill);
      }
      .ep-ann-modal__event-link {
        margin: 0 0 10px;
        font-size: 12px;
        font-weight: 600;
        color: #7a6518;
      }
      .ep-ann-item__text {
        margin: 4px 0 0;
        font-size: 12px;
        line-height: 1.45;
        color: rgba(255, 255, 255, 0.58);
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }
      .ep-ann-item__place {
        margin: 4px 0 0;
        font-size: 11px;
        color: rgba(255, 255, 255, 0.45);
      }
      .ep-ann-item__more {
        display: inline-block;
        margin-top: 6px;
        font-size: 11px;
        font-weight: 600;
        color: #7a6518;
      }
      .ep-ann-empty,
      .ep-ann-error {
        margin: 0;
        padding: 24px 12px;
        font-size: 13px;
        line-height: 1.5;
        color: rgba(255, 255, 255, 0.5);
        text-align: center;
      }
      .ep-ann-error {
        color: rgba(246, 192, 192, 0.85);
      }

      /* --- Модальное окно объявления --- */
      .ep-ann-modal {
        position: fixed;
        inset: 0;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: clamp(8px, 2.4vw, 24px);
        background: rgba(15, 18, 21, 0.62);
        backdrop-filter: blur(12px) saturate(140%);
        -webkit-backdrop-filter: blur(12px) saturate(140%);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.22s var(--ease-out);
      }
      .ep-ann-modal[hidden] {
        display: none !important;
      }
      .ep-ann-modal.is-open {
        opacity: 1;
        pointer-events: auto;
      }
      .ep-ann-modal__card {
        position: relative;
        width: 100%;
        max-width: 560px;
        max-height: calc(100dvh - clamp(16px, 4vw, 48px));
        display: flex;
        flex-direction: column;
        background:
          radial-gradient(
            ellipse 120% 80% at 50% -20%,
            rgba(212, 180, 74, 0.14) 0%,
            transparent 55%
          ),
          linear-gradient(160deg, #3d464a 0%, #262c2f 100%);
        border: 1px solid rgba(212, 180, 74, 0.22);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow-deep), 0 0 48px rgba(212, 180, 74, 0.08);
        color: #fff;
        transform: translateY(12px) scale(0.985);
        transition: transform 0.24s var(--ease-out);
        overflow: hidden;
      }
      .ep-ann-modal__card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 3px;
        background: linear-gradient(90deg, #d4b44a 0%, #f0d78c 50%, #d4b44a 100%);
        pointer-events: none;
      }
      .ep-ann-modal.is-open .ep-ann-modal__card {
        transform: translateY(0) scale(1);
      }
      .ep-ann-modal__head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        padding: 18px 20px 14px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        flex-shrink: 0;
      }
      .ep-ann-modal__meta { min-width: 0; }
      .ep-ann-modal__date {
        margin: 0;
        font-size: 14px;
        color: rgba(255, 255, 255, 0.62);
      }
      .ep-ann-modal__pin {
        display: inline-flex;
        margin-bottom: 6px;
        padding: 2px 8px;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: #5c4a12;
        background: linear-gradient(180deg, #d4b44a 0%, #f0d78c 100%);
        border-radius: var(--radius-pill);
      }
      .ep-ann-modal__pin[hidden] { display: none; }
      .ep-ann-modal__close {
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.16);
        border-radius: var(--radius-pill);
        background: rgba(255, 255, 255, 0.06);
        color: #fff;
        font-size: 22px;
        line-height: 1;
        cursor: pointer;
        transition: border-color 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
      }
      .ep-ann-modal__close:hover {
        border-color: var(--glass-today-border, #d4b44a);
        box-shadow: 0 0 14px rgba(212, 180, 74, 0.18);
      }
      .ep-ann-modal__close:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .ep-ann-modal__scroll {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0 20px 22px;
        -webkit-overflow-scrolling: touch;
      }
      .ep-ann-modal__title {
        margin: 16px 0 0;
        font-size: clamp(18px, 4vw, 24px);
        font-weight: 800;
        line-height: 1.25;
      }
      .ep-ann-modal__place {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin: 16px 0 0;
        padding: 12px 14px;
        font-size: 15px;
        line-height: 1.45;
        background: rgba(212, 180, 74, 0.1);
        border: 1px solid rgba(212, 180, 74, 0.28);
        border-radius: var(--radius-md);
      }
      .ep-ann-modal__place[hidden] { display: none; }
      .ep-ann-modal__place-icon {
        flex-shrink: 0;
        margin-top: 1px;
        color: var(--glass-today-border, #d4b44a);
      }
      .ep-ann-modal__body {
        margin: 16px 0 0;
        font-size: 15px;
        line-height: 1.65;
        color: rgba(255, 255, 255, 0.92);
        white-space: pre-wrap;
        word-wrap: break-word;
      }
      .ep-ann-modal__footer {
        margin-top: 22px;
        padding-top: 16px;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        font-size: 12px;
        color: rgba(255, 255, 255, 0.42);
      }

      @media (max-width: 480px) {
        .ep-ann-item {
          grid-template-columns: 40px 1fr;
          column-gap: 10px;
          padding: 9px 8px;
        }
        .ep-ann-item__date {
          width: 40px;
          min-height: 40px;
        }
        .ep-ann-modal__head { padding: 14px 16px 12px; }
        .ep-ann-modal__scroll { padding: 0 16px 18px; }
      }
      .events-panel__months {
        margin: 0;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.16em;
        color: var(--accent-soft);
        text-transform: uppercase;
      }
      .events-panel__range {
        margin: 4px 0 0;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.5);
      }
      .events-panel__list {
        padding: 0;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
      }
      .events-panel__list::-webkit-scrollbar { width: 3px; }
      .events-panel__list::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 3px; }
      .events-panel__list-track {
        display: flex;
        flex-direction: column;
        gap: 2px;
      }

      /* --- Строка дня --- */
      .event-row {
        display: grid;
        grid-template-columns: 44px 1fr;
        align-items: center;
        column-gap: 12px;
        padding: 8px 10px;
        border-radius: 10px;
        background: transparent;
        position: relative;
        /* Свой containing block: иначе absolute у «Сегодня» цепляется к .events-panel (backdrop-filter) */
        transform: translateZ(0);
        transition: background 0.18s var(--ease);
      }
      .event-row + .event-row {
        border-top: 1px solid rgba(255, 255, 255, 0.04);
      }
      .event-row:hover {
        background: rgba(255, 255, 255, 0.04);
      }
      .event-row--today {
        background:
          linear-gradient(135deg,
            rgba(212, 180, 74, 0.20) 0%,
            rgba(212, 180, 74, 0.06) 100%);
        border: 1px solid rgba(212, 180, 74, 0.65);
        padding: 7px 10px;
        box-shadow:
          inset 0 1px 0 rgba(240, 215, 140, 0.18),
          0 6px 22px -12px rgba(212, 180, 74, 0.35);
      }
      /* Янтарная «полоска-индикатор» слева — как закладка в книге */
      .event-row--today::before {
        content: "";
        position: absolute;
        top: 8px;
        bottom: 8px;
        left: -1px;
        width: 3px;
        border-radius: 0 3px 3px 0;
        background: linear-gradient(180deg, #f0d78c 0%, #d4b44a 100%);
        box-shadow: 0 0 10px rgba(212, 180, 74, 0.55);
        pointer-events: none;
      }
      /* У строки "сегодня" верхняя рамка должна совпадать
         с остальными тремя сторонами, а не быть бледно-белой
         от .event-row + .event-row */
      .event-row + .event-row--today {
        border-top: 1px solid rgba(212, 180, 74, 0.65);
      }
      /* Снять служебный разделитель у строки, идущей сразу после "сегодня",
         чтобы он не накладывался поверх нижней рамки */
      .event-row--today + .event-row {
        border-top-color: transparent;
      }
      .event-row--today:hover {
        background:
          linear-gradient(135deg,
            rgba(212, 180, 74, 0.28) 0%,
            rgba(212, 180, 74, 0.10) 100%);
      }
      /* Строка с событиями — клик по всей области открывает подробности */
      .event-row--open-details {
        cursor: pointer;
      }
      .event-row--open-details:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .event-row--today.event-row--open-details .event-row__today-tag {
        pointer-events: none;
      }
      .event-row__today-tag {
        position: absolute;
        top: 5px;
        right: 6px;
        z-index: 2;
        display: inline-flex;
        align-items: center;
        gap: 2px;
        padding: 1px 4px 1px 3px;
        font-size: 7px;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: #f0d78c;
        background: rgba(212, 180, 74, 0.16);
        border: 1px solid rgba(212, 180, 74, 0.75);
        border-radius: 999px;
        line-height: 1.1;
        white-space: nowrap;
        box-shadow: 0 0 8px rgba(212, 180, 74, 0.22);
      }
      /* Пульсирующая «живая» точка внутри бейджа «Сегодня» */
      .event-row__today-tag::before {
        content: "";
        width: 3px;
        height: 3px;
        flex-shrink: 0;
        border-radius: 50%;
        background: #f0d78c;
        box-shadow: 0 0 0 0 rgba(212, 180, 74, 0.85);
        animation: eventTodayDot 1.8s ease-out infinite;
      }
      @keyframes eventTodayDot {
        0%   { box-shadow: 0 0 0 0 rgba(212, 180, 74, 0.85); }
        70%  { box-shadow: 0 0 0 5px rgba(212, 180, 74, 0);   }
        100% { box-shadow: 0 0 0 0 rgba(212, 180, 74, 0);     }
      }

      /* --- Колонка с датой (значок) --- */
      .event-row__date-col {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.04);
        border: 1px solid rgba(255, 255, 255, 0.06);
        gap: 2px;
      }
      .event-row--today .event-row__date-col {
        background: rgba(255, 255, 255, 0.04);
        border: 1.5px solid var(--glass-today-border, #d4b44a);
        box-shadow: 0 0 14px rgba(212, 180, 74, 0.18);
        animation: eventTodayDateGlow 2.8s ease-in-out infinite;
      }
      /* Медленное «дыхание» янтарной обводки вокруг значка с числом */
      @keyframes eventTodayDateGlow {
        0%, 100% {
          border-color: rgba(212, 180, 74, 0.65);
          box-shadow: 0 0 8px rgba(212, 180, 74, 0.22);
        }
        50% {
          border-color: var(--glass-today-tag, #f0d78c);
          box-shadow: 0 0 18px rgba(212, 180, 74, 0.42);
        }
      }
      /* Уважение к настройкам пользователя: не анимируем при «reduce motion» */
      @media (prefers-reduced-motion: reduce) {
        .event-row--today .event-row__date-col,
        .event-row__today-tag::before {
          animation: none;
        }
      }
      .event-row__num {
        display: block;
        font-size: 17px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: -0.02em;
        color: rgba(255, 255, 255, 0.92);
        font-variant-numeric: tabular-nums;
      }
      .event-row__wd {
        display: block;
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.45);
      }
      .event-row__date--weekend .event-row__wd { color: rgba(255, 120, 120, 0.8); }
      .event-row__date--weekend .event-row__num { color: rgba(255, 150, 150, 0.9); }
      .event-row__date--past .event-row__date-col {
        background: rgba(255, 255, 255, 0.02);
        border-color: rgba(255, 255, 255, 0.04);
      }
      .event-row__date--past .event-row__num,
      .event-row__date--past .event-row__wd { color: rgba(255, 255, 255, 0.25); }
      .event-row--today .event-row__num,
      .event-row--today .event-row__wd {
        color: var(--glass-today-tag, #f0d78c);
      }

      /* --- Список событий внутри дня --- */
      .event-row__body {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
      }
      /* Место под компактный бейдж «Сегодня» в правом углу */
      .event-row--today .event-row__body {
        padding-right: 3.4rem;
      }
      .event-item {
        display: grid;
        grid-template-columns: 44px 1fr;
        align-items: center;
        column-gap: 10px;
        min-width: 0;
        padding: 2px 0;
      }
      .event-item + .event-item {
        border-top: 1px dashed rgba(255, 255, 255, 0.06);
        padding-top: 4px;
        margin-top: 1px;
      }
      .event-row--today .event-item + .event-item {
        border-top-color: rgba(212, 180, 74, 0.30);
      }
      .event-item__time {
        margin: 0;
        font-size: 11px;
        font-weight: 700;
        color: var(--accent-soft);
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.18);
        border-radius: 6px;
        padding: 2px 6px;
        font-variant-numeric: tabular-nums;
        letter-spacing: 0.02em;
        text-align: center;
        line-height: 1.2;
      }
      .event-row__date--past .event-item__time {
        color: rgba(255, 255, 255, 0.35);
        background: rgba(255, 255, 255, 0.04);
        border-color: rgba(255, 255, 255, 0.06);
      }
      .event-row--today .event-item__time {
        color: var(--glass-today-tag, #f0d78c);
        background: transparent;
        border: 1px solid var(--glass-today-border, #d4b44a);
      }
      .event-item__main { min-width: 0; }
      .event-item__title {
        margin: 0;
        font-size: 13px;
        font-weight: 600;
        color: rgba(255, 255, 255, 0.88);
        line-height: 1.3;
        hyphens: none;
        word-break: normal;
        overflow-wrap: normal;
        text-wrap: pretty;
      }
      .event-row__date--past .event-item__title { color: rgba(255, 255, 255, 0.4); }
      .event-row--today .event-item__title { color: #fff; }
      .event-item__place {
        display: block;
        margin: 1px 0 0;
        font-size: 10px;
        color: rgba(255, 255, 255, 0.45);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .event-row__date--past .event-item__place { color: rgba(255, 255, 255, 0.25); }
      .event-row--today .event-item__place { color: rgba(255, 255, 255, 0.6); }
      .event-item--paused .event-item__time {
        color: rgba(255, 255, 255, 0.35);
        background: rgba(255, 255, 255, 0.04);
        border-color: rgba(255, 255, 255, 0.08);
      }
      .event-row--today .event-item--paused .event-item__time {
        color: rgba(255, 255, 255, 0.35);
        background: rgba(255, 255, 255, 0.04);
        border-color: rgba(255, 255, 255, 0.1);
      }
      .event-item--paused .event-item__title {
        color: rgba(255, 255, 255, 0.42);
      }
      .event-item--paused .event-item__place,
      .event-item--paused .event-item__note--paused {
        color: rgba(255, 255, 255, 0.38);
      }
      .event-row__empty {
        margin: 0;
        font-size: 11px;
        color: rgba(255, 255, 255, 0.3);
        font-style: italic;
        white-space: nowrap;
      }
      .event-row--today .event-row__empty {
        color: rgba(255, 255, 255, 0.7);
      }

      .event-row__ann-badge {
        position: absolute;
        top: -4px;
        right: -4px;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 16px;
        height: 16px;
        font-size: 9px;
        line-height: 1;
        border-radius: 50%;
        background: linear-gradient(180deg, #d4b44a 0%, #f0d78c 100%);
        box-shadow: 0 0 10px rgba(212, 180, 74, 0.35);
        pointer-events: none;
      }
      .event-item--announcement {
        grid-template-columns: auto minmax(0, 1fr);
      }
      .event-item__ann-tag {
        margin: 0;
        font-size: 14px;
        line-height: 1;
        align-self: start;
        padding-top: 1px;
      }
      .event-item__title--ann {
        color: rgba(240, 215, 140, 0.95);
      }
      .event-item__ann-link {
        display: inline-flex;
        align-items: center;
        align-self: flex-start;
        gap: 3px;
        width: fit-content;
        max-width: 100%;
        margin-top: 2px;
        padding: 2px 8px;
        text-align: left;
        font: inherit;
        font-size: 10px;
        font-weight: 700;
        line-height: 1.2;
        letter-spacing: 0.02em;
        color: #fff;
        background: #181b1d;
        border: 1px solid var(--glass-today-border, #d4b44a);
        border-radius: var(--radius-pill);
        box-shadow:
          0 0 0 1px rgba(0, 0, 0, 0.45),
          0 2px 6px rgba(0, 0, 0, 0.35);
        cursor: pointer;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        transition:
          box-shadow 0.15s ease,
          border-color 0.15s ease,
          background 0.15s ease,
          color 0.15s ease;
      }
      .event-item__ann-link:hover {
        color: #fff;
        background: #0f1112;
        border-color: #f0d78c;
        box-shadow:
          0 0 0 1px rgba(0, 0, 0, 0.5),
          0 0 14px rgba(212, 180, 74, 0.28);
      }
      .event-item__ann-link:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .event-row--today .event-item__ann-link {
        color: #fff;
        background: #101214;
        border-color: #f0d78c;
        box-shadow:
          0 0 0 1px rgba(0, 0, 0, 0.65),
          0 0 10px rgba(0, 0, 0, 0.45),
          0 0 12px rgba(212, 180, 74, 0.22);
      }
      .event-row--today .event-item__ann-link:hover {
        background: #080909;
        border-color: #fff;
      }
      .event-item--has-ann .event-item__title {
        padding-right: 4px;
      }

      /* Узкие экраны: больше места под заголовок, без «висячей» буквы */
      @media (max-width: 560px) {
        .event-item {
          grid-template-columns: minmax(0, 1fr);
          grid-template-rows: auto auto;
          row-gap: 3px;
          align-items: start;
        }
        .event-item__time {
          justify-self: start;
          width: fit-content;
        }
      }
      @media (max-width: 480px) {
        .event-row {
          grid-template-columns: 40px minmax(0, 1fr);
          column-gap: 10px;
          padding: 8px;
        }
        .event-row__date-col {
          width: 40px;
          height: 40px;
        }
        .event-row__today-tag {
          top: 4px;
          right: 5px;
          font-size: 6.5px;
          padding: 1px 3px 1px 2px;
        }
        .event-row--today .event-row__body {
          padding-right: 3.1rem;
        }
        .event-item__title {
          font-size: clamp(12px, 3.4vw, 13px);
        }
      }

      .event-day-popover {
        position: fixed;
        inset: 0;
        z-index: 1200;
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        padding: 12px;
        pointer-events: none;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.18s var(--ease), visibility 0.18s var(--ease);
      }
      .event-day-popover.is-open {
        pointer-events: auto;
        opacity: 1;
        visibility: visible;
        overscroll-behavior: none;
      }
      html.is-calendar-scroll-lock {
        overflow: hidden;
        overscroll-behavior: none;
      }
      html.is-calendar-scroll-lock body {
        position: fixed;
        left: 0;
        right: 0;
        width: 100%;
        overflow: hidden;
        overscroll-behavior: none;
      }
      .event-day-popover__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(10, 12, 14, 0.45);
      }
      .event-day-popover__card {
        position: fixed;
        z-index: 1;
        width: min(300px, calc(100vw - 24px));
        max-height: min(70vh, 420px);
        overflow: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        margin: 0;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.32);
        border-radius: 14px;
        background:
          linear-gradient(145deg, rgba(32, 36, 39, 0.98) 0%, rgba(22, 25, 27, 0.98) 100%);
        box-shadow:
          0 16px 40px rgba(0, 0, 0, 0.45),
          0 0 0 1px rgba(255, 255, 255, 0.06) inset;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
      }
      .event-day-popover--today .event-day-popover__card {
        border-color: rgba(212, 180, 74, 0.45);
        box-shadow:
          0 16px 40px rgba(0, 0, 0, 0.45),
          0 0 0 1px rgba(212, 180, 74, 0.12) inset,
          0 0 18px rgba(212, 180, 74, 0.12);
      }
      .event-day-popover__head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        padding: 12px 12px 10px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      }
      .event-day-popover__date {
        margin: 0;
        font-size: 15px;
        font-weight: 800;
        line-height: 1.2;
        color: #fff;
        text-transform: capitalize;
      }
      .event-day-popover__close {
        flex-shrink: 0;
        width: 30px;
        height: 30px;
        margin: 0;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.06);
        color: rgba(255, 255, 255, 0.85);
        font-size: 18px;
        line-height: 1;
        cursor: pointer;
      }
      .event-day-popover__close:hover {
        border-color: rgba(255, 255, 255, 0.35);
        color: #fff;
      }
      .event-day-popover--today .event-day-popover__close:hover {
        border-color: rgba(212, 180, 74, 0.55);
        color: #f0d78c;
      }
      .event-day-popover__close:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.45);
        outline-offset: 2px;
      }
      .event-day-popover--today .event-day-popover__close:focus-visible {
        outline-color: rgba(212, 180, 74, 0.75);
      }
      .event-day-popover__list {
        list-style: none;
        margin: 0;
        padding: 10px 12px 12px;
        display: flex;
        flex-direction: column;
        gap: 10px;
      }
      .event-day-popover__item {
        padding: 10px 11px;
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.04);
        border: 1px solid rgba(255, 255, 255, 0.08);
      }
      .event-day-popover__item--paused,
      .event-day-popover--today       .event-day-popover__item--paused,
      .event-day-popover--today .event-day-popover__item--paused {
        background: rgba(255, 255, 255, 0.03);
        border-color: rgba(255, 255, 255, 0.08);
      }
      .event-day-popover__item--paused .event-day-popover__title,
      .event-day-popover--today .event-day-popover__item--paused .event-day-popover__title {
        color: rgba(255, 255, 255, 0.42);
      }
      .event-day-popover__item--paused .event-day-popover__time,
      .event-day-popover--today .event-day-popover__item--paused .event-day-popover__time {
        color: rgba(255, 255, 255, 0.38);
        border-color: rgba(255, 255, 255, 0.16);
        background: transparent;
      }
      .event-day-popover__item--paused .event-day-popover__addr,
      .event-day-popover--today .event-day-popover__item--paused .event-day-popover__addr {
        opacity: 0.4;
      }
      .event-day-popover__note--paused {
        margin: 0 0 8px;
        color: rgba(255, 255, 255, 0.38);
      }
      .event-day-popover--today .event-day-popover__item {
        background: rgba(212, 180, 74, 0.1);
        border-color: rgba(212, 180, 74, 0.28);
      }
      .event-day-popover__time {
        display: inline-block;
        margin: 0 0 6px;
        padding: 2px 7px;
        font-size: 12px;
        font-weight: 800;
        color: rgba(255, 255, 255, 0.92);
        background: transparent;
        border: 1px solid rgba(255, 255, 255, 0.32);
        border-radius: 6px;
        font-variant-numeric: tabular-nums;
      }
      .event-day-popover--today .event-day-popover__time {
        color: var(--glass-today-tag, #f0d78c);
        border-color: var(--glass-today-border, #d4b44a);
      }
      .event-day-popover__title {
        margin: 0 0 8px;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.3;
        color: #fff;
        hyphens: none;
        word-break: normal;
        overflow-wrap: normal;
        text-wrap: pretty;
      }
      .event-day-popover__addr {
        margin: 0;
        display: flex;
        align-items: flex-start;
        gap: 8px;
        padding: 7px 9px 7px 8px;
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.025);
        border: 1px solid rgba(255, 255, 255, 0.06);
        border-left: 2px solid rgba(255, 255, 255, 0.28);
        text-decoration: none;
        color: inherit;
        cursor: pointer;
        transition:
          background 0.15s var(--ease),
          border-color 0.15s var(--ease),
          box-shadow 0.15s var(--ease);
      }
      .event-day-popover__addr:hover {
        background: rgba(255, 255, 255, 0.06);
        border-color: rgba(255, 255, 255, 0.14);
        box-shadow: none;
      }
      .event-day-popover__addr:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.45);
        outline-offset: 2px;
      }
      .event-day-popover--today .event-day-popover__addr:hover {
        background: rgba(212, 180, 74, 0.08);
        border-color: rgba(212, 180, 74, 0.22);
        box-shadow: 0 0 14px rgba(212, 180, 74, 0.1);
      }
      .event-day-popover--today .event-day-popover__addr:focus-visible {
        outline-color: rgba(212, 180, 74, 0.75);
      }
      .event-day-popover--today .event-day-popover__addr {
        background: rgba(212, 180, 74, 0.06);
        border-color: rgba(212, 180, 74, 0.12);
        border-left-color: rgba(212, 180, 74, 0.55);
      }
      .event-day-popover__addr-icon {
        flex-shrink: 0;
        width: 14px;
        height: 14px;
        margin-top: 1px;
        color: rgba(255, 255, 255, 0.5);
      }
      .event-day-popover--today .event-day-popover__addr-icon {
        color: rgba(212, 180, 74, 0.62);
      }
      .event-day-popover__addr-body {
        display: flex;
        flex-direction: column;
        gap: 2px;
        min-width: 0;
      }
      .event-day-popover__addr-label {
        margin: 0;
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.55);
      }
      .event-day-popover--today .event-day-popover__addr-label {
        color: rgba(240, 215, 140, 0.82);
      }
      .event-day-popover__addr-text {
        margin: 0;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.4;
        color: rgba(255, 255, 255, 0.72);
        overflow-wrap: break-word;
        transition: color 0.15s var(--ease);
      }
      .event-day-popover__addr:hover .event-day-popover__addr-text {
        color: rgba(255, 255, 255, 0.9);
      }
      .event-day-popover__empty {
        margin: 0;
        padding: 14px 12px 16px;
        font-size: 13px;
        color: rgba(255, 255, 255, 0.55);
        text-align: center;
      }
      .event-day-popover__item--ann {
        border-top: 1px dashed rgba(212, 180, 74, 0.28);
        padding-top: 10px;
      }
      .event-day-popover__ann-tag {
        margin: 0 0 6px;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #7a6518;
      }
      .event-day-popover__ann {
        display: block;
        width: 100%;
        margin: 0;
        padding: 8px 10px;
        text-align: left;
        font: inherit;
        font-size: 13px;
        font-weight: 600;
        line-height: 1.35;
        color: #f0d78c;
        background: rgba(0, 0, 0, 0.38);
        border: 1px solid rgba(212, 180, 74, 0.52);
        border-radius: 10px;
        cursor: pointer;
        transition:
          box-shadow 0.15s ease,
          border-color 0.15s ease,
          background 0.15s ease;
      }
      .event-day-popover__ann:hover {
        color: #fff;
        background: rgba(0, 0, 0, 0.48);
        border-color: var(--glass-today-border, #d4b44a);
        box-shadow: 0 0 12px rgba(212, 180, 74, 0.22);
      }
      .event-day-popover__ann:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .event-day-popover--today .event-day-popover__ann {
        color: #fff;
        background: rgba(0, 0, 0, 0.42);
        border-color: var(--glass-today-border, #d4b44a);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
      }
      .event-day-popover--today .event-day-popover__ann:hover {
        background: rgba(0, 0, 0, 0.52);
      }
      @media (max-width: 768px) {
        .event-day-popover {
          align-items: center;
          justify-content: center;
          padding: 16px;
        }
        .event-day-popover__card {
          position: relative;
          left: auto !important;
          top: auto !important;
          width: min(320px, 100%);
          max-height: min(75vh, 480px);
        }
      }

      /* =====================================================
         Кнопка «Открыть месяц»
         ===================================================== */
      .events-panel__expand {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
        margin-top: 14px;
        padding: 11px 16px;
        font: inherit;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: -0.005em;
        color: var(--accent-soft);
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: var(--radius-pill);
        cursor: pointer;
        transition: background 0.2s var(--ease), border-color 0.2s var(--ease),
                    color 0.2s var(--ease), box-shadow 0.2s var(--ease);
      }
      .events-panel__expand:hover {
        background: rgba(255, 255, 255, 0.16);
        border-color: #ffffff;
        color: #fff;
        box-shadow: 0 0 14px rgba(255, 255, 255, 0.18);
      }
      .events-panel__expand:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.75);
        outline-offset: 2px;
      }
      .events-panel__expand-icon {
        position: relative;
        width: 14px;
        height: 14px;
        border: 1.5px solid currentColor;
        border-radius: 3px;
      }
      .events-panel__expand-icon::before,
      .events-panel__expand-icon::after {
        content: "";
        position: absolute;
        background: currentColor;
      }
      .events-panel__expand-icon::before {
        top: 50%; left: 2px; right: 2px;
        height: 1.5px;
        transform: translateY(-50%);
      }
      .events-panel__expand-icon::after {
        left: 50%; top: 2px; bottom: 2px;
        width: 1.5px;
        transform: translateX(-50%);
      }

      /* =====================================================
         Модальное окно — большой календарь на месяц.
         Слева: сетка с пилюлями времени.
         Справа: панель «Повестка дня» с полными названиями.
         ===================================================== */
      .cal-modal {
        --cal-amber: #d4b44a;
        --cal-amber-soft: #f0d78c;
        --cal-amber-glow: rgba(212, 180, 74, 0.42);
        --cal-amber-surface: rgba(212, 180, 74, 0.1);
        --cal-day-bg: rgba(255, 255, 255, 0.11);
        --cal-day-border: rgba(255, 255, 255, 0.14);
        position: fixed;
        inset: 0;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: clamp(8px, 2.4vw, 28px);
        background: rgba(15, 18, 21, 0.62);
        backdrop-filter: blur(12px) saturate(140%);
        -webkit-backdrop-filter: blur(12px) saturate(140%);
        opacity: 0;
        transition: opacity 0.22s var(--ease);
      }
      .cal-modal.is-open { opacity: 1; }

      .cal-modal__card {
        position: relative;
        width: 100%;
        max-width: 1180px;
        max-height: calc(100dvh - clamp(16px, 4vw, 56px));
        display: flex;
        flex-direction: column;
        background: linear-gradient(160deg, #3d464a 0%, #262c2f 100%);
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow-deep);
        color: #fff;
        transform: translateY(14px) scale(0.985);
        transition: transform 0.26s var(--ease);
        overflow: hidden;
      }
      .cal-modal.is-open .cal-modal__card { transform: translateY(0) scale(1); }

      /* ---------- Header ---------- */
      .cal-modal__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        padding: 20px clamp(20px, 2.4vw, 28px) 18px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        background:
          linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0)),
          linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
      }
      .cal-modal__titles { min-width: 0; }
      .cal-modal__eyebrow {
        margin: 0 0 4px;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        color: var(--accent-soft);
      }
      .cal-modal__title {
        margin: 0;
        font-size: clamp(22px, 2.4vw, 30px);
        font-weight: 800;
        letter-spacing: -0.02em;
        line-height: 1.05;
        color: #fff;
        text-transform: capitalize;
      }

      .cal-modal__head-actions {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-shrink: 0;
      }
      .cal-modal__nav {
        display: inline-flex;
        align-items: center;
        gap: 2px;
        padding: 4px;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: var(--radius-pill);
      }
      .cal-modal__nav-btn {
        width: 34px;
        height: 34px;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        border: none;
        border-radius: var(--radius-pill);
        color: #fff;
        cursor: pointer;
        transition: background 0.18s var(--ease), color 0.18s var(--ease);
      }
      .cal-modal__nav-btn:hover {
        background: rgba(255, 255, 255, 0.22);
        color: var(--accent-soft);
      }
      .cal-modal__nav-btn:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.75);
        outline-offset: 2px;
      }
      .cal-modal__nav-arrow {
        display: inline-block;
        width: 9px;
        height: 9px;
        border-right: 1.8px solid currentColor;
        border-bottom: 1.8px solid currentColor;
      }
      .cal-modal__nav-arrow--prev {
        transform: rotate(135deg);
        margin-left: 3px;
      }
      .cal-modal__nav-arrow--next {
        transform: rotate(-45deg);
        margin-right: 3px;
      }
      .cal-modal__nav-today {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 7px 14px;
        font: inherit;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.02em;
        color: var(--accent-soft);
        background: transparent;
        border: 1px solid rgba(255, 255, 255, 0.18);
        border-radius: var(--radius-pill);
        cursor: pointer;
        transition: background 0.18s var(--ease), color 0.18s var(--ease),
                    border-color 0.18s var(--ease);
      }
      .cal-modal__nav-today[hidden] { display: none; }
      .cal-modal__nav-today:hover {
        background: rgba(255, 255, 255, 0.22);
        border-color: rgba(255, 255, 255, 0.35);
        color: #fff;
      }
      .cal-modal__nav-today:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.75);
        outline-offset: 2px;
      }
      /* Стрелка-индикатор направления к «сегодня» */
      .cal-modal__nav-today__arrow {
        display: inline-block;
        width: 7px;
        height: 7px;
        border-right: 1.8px solid currentColor;
        border-bottom: 1.8px solid currentColor;
        opacity: 0.85;
      }
      .cal-modal__nav-today__arrow--back {
        transform: rotate(135deg);
        margin-right: 1px;
      }
      .cal-modal__nav-today__arrow--forward {
        transform: rotate(-45deg);
        margin-left: 1px;
      }

      .cal-modal__close {
        flex-shrink: 0;
        width: 38px; height: 38px;
        padding: 0;
        font-size: 22px;
        line-height: 1;
        color: #fff;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 12px;
        cursor: pointer;
        transition: background 0.18s var(--ease), border-color 0.18s var(--ease), color 0.18s var(--ease);
      }
      .cal-modal__close:hover {
        background: rgba(255, 255, 255, 0.18);
        border-color: #ffffff;
        color: var(--accent-soft);
      }
      .cal-modal__close:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.75);
        outline-offset: 2px;
      }

      /* ---------- Body: grid (calendar | agenda) ---------- */
      .cal-modal__body {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 320px;
        gap: 0;
        min-height: 0;
        flex: 1;
      }
      .cal-modal__main {
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 0;
        padding: 14px clamp(16px, 2vw, 24px) 18px;
      }

      .cal-modal__weekdays {
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 8px;
        padding: 0 0 10px;
      }
      .cal-modal__weekday {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.45);
        text-align: center;
      }
      .cal-modal__weekday--weekend { color: rgba(255, 138, 138, 0.75); }

      .cal-modal__grid {
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        grid-auto-rows: minmax(86px, auto);
        gap: 8px;
        overflow-y: auto;
        padding: 2px 4px 4px 2px;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
      }
      .cal-modal__grid::-webkit-scrollbar { width: 6px; }
      .cal-modal__grid::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.18);
        border-radius: 6px;
      }

      /* ---------- Day cell ---------- */
      .cal-day {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 8px;
        padding: 10px 10px 12px;
        background: var(--cal-day-bg);
        border: 1px solid var(--cal-day-border);
        border-radius: 14px;
        color: inherit;
        font: inherit;
        text-align: left;
        cursor: pointer;
        transition:
          background 0.18s var(--ease),
          border-color 0.18s var(--ease),
          transform 0.18s var(--ease),
          box-shadow 0.18s var(--ease);
      }
      .cal-day:hover {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.18);
        transform: translateY(-1px);
      }
      .cal-day:focus-visible {
        outline: none;
      }
      .cal-day--today:focus-visible {
        border-color: var(--cal-amber);
        box-shadow: 0 0 0 3px rgba(212, 180, 74, 0.35);
      }
      .cal-day:focus-visible:not(.cal-day--today):not(.cal-day--pad) {
        border-color: rgba(255, 255, 255, 0.42);
        box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.16);
      }
      .cal-day--pad {
        background: transparent;
        border-color: transparent;
        cursor: default;
        pointer-events: none;
      }
      .cal-day--past {
        background: rgba(255, 255, 255, 0.07);
        border-color: rgba(255, 255, 255, 0.1);
      }
      .cal-day--past .cal-day__num { color: rgba(255, 255, 255, 0.32); }
      .cal-day--past:hover {
        background: rgba(255, 255, 255, 0.05);
        border-color: rgba(255, 255, 255, 0.12);
      }
      .cal-day--weekend .cal-day__num { color: rgba(255, 150, 150, 0.85); }
      .cal-day--today {
        background: var(--cal-day-bg);
        border-color: var(--cal-amber);
        box-shadow: 0 0 12px -4px var(--cal-amber-glow);
      }
      .cal-day--today .cal-day__num { color: var(--cal-amber-soft); }
      .cal-day--today:hover {
        background: rgba(255, 255, 255, 0.08);
        border-color: var(--cal-amber-soft);
        box-shadow: 0 0 16px -2px var(--cal-amber-glow);
      }
      .cal-day--selected:not(.cal-day--today) {
        background: var(--cal-day-bg);
        border-color: rgba(255, 255, 255, 0.42);
        box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14) inset;
      }
      .cal-day--selected:not(.cal-day--today):hover {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.52);
      }
      .cal-day--selected:not(.cal-day--today):active {
        background: rgba(255, 255, 255, 0.1);
        transform: none;
      }
      .cal-day--selected:not(.cal-day--today) .cal-day__num { color: #fff; }
      .cal-day--selected:not(.cal-day--today):focus-visible {
        border-color: rgba(255, 255, 255, 0.5);
        box-shadow:
          0 0 0 1px rgba(255, 255, 255, 0.22) inset,
          0 0 0 3px rgba(255, 255, 255, 0.18);
      }
      .cal-day--today.cal-day--selected {
        background: var(--cal-amber-surface);
        border-color: var(--cal-amber);
        box-shadow: 0 0 18px -2px var(--cal-amber-glow);
      }
      .cal-day--today.cal-day--selected .cal-day__num { color: var(--cal-amber-soft); }

      .cal-day__num {
        display: block;
        font-size: 15px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: -0.02em;
        color: rgba(255, 255, 255, 0.92);
        font-variant-numeric: tabular-nums;
      }
      .cal-day__chips {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 3px;
        margin-top: auto;
        width: 100%;
      }
      .cal-day__chip {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        max-width: 100%;
        padding: 2px 7px;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.15;
        letter-spacing: 0.02em;
        color: var(--accent-soft);
        background: rgba(255, 255, 255, 0.14);
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: 999px;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
      }
      .cal-day__more {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 2px 7px;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.15;
        color: rgba(255, 255, 255, 0.7);
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 999px;
      }
      .cal-day--has-ann::before {
        content: "📣";
        position: absolute;
        top: 3px;
        right: 3px;
        font-size: 8px;
        line-height: 1;
        opacity: 0.92;
        pointer-events: none;
      }
      .cal-day--past .cal-day__chip {
        color: rgba(255, 255, 255, 0.45);
        background: rgba(255, 255, 255, 0.04);
        border-color: rgba(255, 255, 255, 0.08);
      }
      .cal-day--past .cal-day__more {
        color: rgba(255, 255, 255, 0.35);
        background: rgba(255, 255, 255, 0.03);
        border-color: rgba(255, 255, 255, 0.06);
      }
      .cal-day--today .cal-day__chip {
        color: var(--cal-amber-soft);
        background: transparent;
        border-color: var(--cal-amber);
      }
      .cal-day--selected:not(.cal-day--today) .cal-day__chip {
        color: rgba(255, 255, 255, 0.88);
        background: transparent;
        border-color: rgba(255, 255, 255, 0.32);
      }

      /* Прошедший + выбранный — приглушённое состояние, чтобы было видно: день уже прошёл */
      .cal-day--past.cal-day--selected {
        background: linear-gradient(
          165deg,
          rgba(255, 255, 255, 0.1),
          rgba(255, 255, 255, 0.03)
        );
        border-color: rgba(255, 255, 255, 0.32);
        border-style: dashed;
        box-shadow:
          0 0 0 1px rgba(255, 255, 255, 0.12) inset,
          0 6px 18px rgba(0, 0, 0, 0.28);
      }
      .cal-day--past.cal-day--selected:hover {
        background: linear-gradient(
          165deg,
          rgba(255, 255, 255, 0.14),
          rgba(255, 255, 255, 0.05)
        );
        border-color: rgba(255, 255, 255, 0.42);
      }
      .cal-day--past.cal-day--selected .cal-day__num {
        color: rgba(255, 255, 255, 0.55);
        text-decoration: line-through;
        text-decoration-color: rgba(255, 255, 255, 0.4);
        text-decoration-thickness: 2px;
        text-underline-offset: 2px;
      }
      .cal-day--past.cal-day--selected .cal-day__chip {
        color: rgba(255, 255, 255, 0.6);
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.18);
        text-decoration: line-through;
        text-decoration-color: rgba(255, 255, 255, 0.35);
      }
      .cal-day--past.cal-day--selected .cal-day__more {
        color: rgba(255, 255, 255, 0.45);
        background: rgba(255, 255, 255, 0.05);
        border-color: rgba(255, 255, 255, 0.1);
      }

      /* ---------- Agenda panel ---------- */
      .cal-modal__agenda {
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 0;
        padding: 18px clamp(18px, 2vw, 22px) 22px;
        background:
          linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.28)),
          linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0));
        border-left: 1px solid rgba(255, 255, 255, 0.08);
      }
      .cal-agenda__head {
        padding-bottom: 14px;
        margin-bottom: 14px;
        border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
      }
      .cal-agenda__label {
        margin: 0 0 6px;
        display: inline-block;
        padding: 4px 10px;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--accent-soft);
        background: rgba(255, 255, 255, 0.12);
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: 999px;
      }
      .cal-agenda__label--past {
        color: rgba(255, 255, 255, 0.6);
        background: rgba(255, 255, 255, 0.06);
        border-color: rgba(255, 255, 255, 0.12);
      }
      .cal-agenda__label--today {
        color: var(--cal-amber-soft);
        background: transparent;
        border-color: var(--cal-amber);
        box-shadow: 0 0 10px -4px var(--cal-amber-glow);
      }
      .cal-modal__agenda.cal-agenda--today {
        background:
          linear-gradient(180deg, rgba(212, 180, 74, 0.1), rgba(212, 180, 74, 0.03)),
          linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0));
        border-left-color: rgba(212, 180, 74, 0.35);
      }
      .cal-agenda--today .cal-agenda__head {
        border-bottom-color: rgba(212, 180, 74, 0.28);
      }
      .cal-agenda--today .cal-agenda__date {
        color: var(--cal-amber-soft);
      }
      .cal-agenda--today .cal-agenda__item {
        background: rgba(255, 255, 255, 0.05);
        border-color: rgba(212, 180, 74, 0.38);
      }
      .cal-agenda--today .cal-agenda__item:hover {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(212, 180, 74, 0.52);
      }
      .cal-agenda--today .cal-agenda__time {
        color: var(--cal-amber-soft);
        background: transparent;
        border: 1px solid var(--cal-amber);
      }
      .cal-agenda__date {
        margin: 0;
        font-size: 18px;
        font-weight: 800;
        letter-spacing: -0.015em;
        line-height: 1.2;
        color: #fff;
        text-transform: capitalize;
      }
      .cal-agenda__list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 10px;
        overflow-y: auto;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
        padding-right: 2px;
      }
      .cal-agenda__list::-webkit-scrollbar { width: 4px; }
      .cal-agenda__list::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.18);
        border-radius: 4px;
      }
      .cal-agenda__item {
        display: grid;
        grid-template-columns: 60px 1fr;
        align-items: start;
        gap: 12px;
        padding: 12px 14px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 14px;
        position: relative;
        transition: background 0.18s var(--ease), border-color 0.18s var(--ease);
      }
      .cal-agenda__item:hover {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.16);
      }
      .cal-agenda__item--past {
        opacity: 0.65;
        background: rgba(255, 255, 255, 0.025);
        border-color: rgba(255, 255, 255, 0.06);
        border-style: dashed;
      }
      .cal-agenda__item--past .cal-agenda__title {
        color: rgba(255, 255, 255, 0.7);
        text-decoration: line-through;
        text-decoration-color: rgba(255, 255, 255, 0.35);
        text-decoration-thickness: 1.5px;
      }
      .cal-agenda__item--past .cal-agenda__place {
        color: rgba(255, 255, 255, 0.45);
      }
      .cal-agenda__item--paused,
      .cal-agenda--today .cal-agenda__item--paused {
        opacity: 1;
        background: rgba(255, 255, 255, 0.025);
        border-color: rgba(255, 255, 255, 0.08);
        border-style: solid;
      }
      .cal-agenda__item--paused:hover,
      .cal-agenda--today .cal-agenda__item--paused:hover {
        background: rgba(255, 255, 255, 0.04);
        border-color: rgba(255, 255, 255, 0.12);
        box-shadow: none;
      }
      .cal-agenda__item--paused .cal-agenda__title,
      .cal-agenda--today .cal-agenda__item--paused .cal-agenda__title {
        color: rgba(255, 255, 255, 0.42);
      }
      .cal-agenda__item--paused .cal-agenda__place,
      .cal-agenda--today .cal-agenda__item--paused .cal-agenda__place {
        color: rgba(255, 255, 255, 0.32);
      }
      .cal-agenda__item--paused .cal-agenda__time,
      .cal-agenda--today .cal-agenda__item--paused .cal-agenda__time {
        color: rgba(255, 255, 255, 0.38);
        background: rgba(255, 255, 255, 0.06);
        border-color: rgba(255, 255, 255, 0.12);
      }
      .cal-agenda__item--paused .cal-agenda__place,
      .cal-agenda__item--paused .cal-agenda__note--paused,
      .cal-agenda--today .cal-agenda__item--paused .cal-agenda__place,
      .cal-agenda--today .cal-agenda__item--paused .cal-agenda__note--paused {
        color: rgba(255, 255, 255, 0.38);
      }
      .cal-agenda__item--ann {
        border-color: rgba(212, 180, 74, 0.32);
        background: rgba(212, 180, 74, 0.08);
      }
      .cal-agenda__ann-tag {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 60px;
        font-size: 18px;
        line-height: 1;
      }
      .cal-agenda__ann-link {
        display: block;
        width: 100%;
        max-width: 100%;
        margin-top: 8px;
        padding: 6px 12px;
        text-align: left;
        font: inherit;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.35;
        color: #f0d78c;
        background: rgba(0, 0, 0, 0.38);
        border: 1px solid rgba(212, 180, 74, 0.52);
        border-radius: 8px;
        cursor: pointer;
        transition:
          box-shadow 0.15s ease,
          border-color 0.15s ease,
          background 0.15s ease;
      }
      .cal-agenda__ann-link:hover {
        color: #fff;
        background: rgba(0, 0, 0, 0.48);
        border-color: var(--glass-today-border, #d4b44a);
        box-shadow: 0 0 12px rgba(212, 180, 74, 0.22);
      }
      .cal-agenda__ann-link:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
      }
      .cal-agenda__time {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 6px 8px;
        font-size: 13px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: 0.02em;
        color: rgba(255, 255, 255, 0.92);
        background: rgba(255, 255, 255, 0.14);
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: 8px;
        font-variant-numeric: tabular-nums;
      }
      .cal-agenda__item--past .cal-agenda__time {
        color: rgba(255, 255, 255, 0.8);
        background: rgba(255, 255, 255, 0.1);
      }
      .cal-agenda__body { min-width: 0; }
      .cal-agenda__title {
        margin: 0;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.25;
        color: #fff;
        hyphens: none;
        word-break: normal;
        overflow-wrap: normal;
        text-wrap: pretty;
      }
      .cal-agenda__place {
        margin: 4px 0 0;
        font-size: 13px;
        color: rgba(255, 255, 255, 0.6);
        line-height: 1.35;
        word-break: break-word;
      }
      .cal-agenda__empty {
        margin: 0;
        padding: 24px 16px;
        text-align: center;
        font-size: 14px;
        color: rgba(255, 255, 255, 0.5);
        background: rgba(255, 255, 255, 0.03);
        border: 1px dashed rgba(255, 255, 255, 0.1);
        border-radius: 14px;
      }

      /* ---------- Мобильный календарь (только ≤768px) ---------- */
      @media (max-width: 768px) {
        .cal-modal {
          align-items: flex-end;
          padding: 0;
        }
        .cal-modal__card {
          max-width: none;
          width: 100%;
          max-height: 94dvh;
          border-radius: 20px 20px 0 0;
          border-bottom: none;
        }
        .cal-modal__head {
          flex-wrap: wrap;
          gap: 10px 12px;
          padding: 14px 16px 12px;
        }
        .cal-modal__eyebrow {
          display: none;
        }
        .cal-modal__title {
          font-size: 20px;
        }
        .cal-modal__head-actions {
          width: 100%;
          justify-content: space-between;
        }
        .cal-modal__nav {
          flex: 1;
          justify-content: center;
        }
        .cal-modal__nav-today {
          padding: 6px 10px;
          font-size: 12px;
        }
        .cal-modal__close {
          width: 40px;
          height: 40px;
        }
        .cal-modal__body {
          grid-template-columns: 1fr;
          position: relative;
          min-height: 0;
        }
        .cal-modal__main {
          flex: 1;
          min-height: 0;
          padding: 8px 12px 14px;
          display: flex;
          flex-direction: column;
        }
        .cal-modal__weekdays {
          gap: 4px;
          padding-bottom: 6px;
          flex-shrink: 0;
        }
        .cal-modal__weekday {
          font-size: 10px;
          letter-spacing: 0.08em;
        }
        .cal-modal__mobile-hint {
          margin: 0 0 8px;
          padding: 0 4px;
          flex-shrink: 0;
          font-size: 12px;
          line-height: 1.35;
          color: rgba(255, 255, 255, 0.5);
          text-align: center;
        }
        .cal-modal__grid {
          flex: 1;
          min-height: 0;
          grid-auto-rows: minmax(44px, 1fr);
          gap: 5px;
          padding: 0 2px 4px;
          -webkit-overflow-scrolling: touch;
        }
        .cal-day {
          align-items: center;
          justify-content: center;
          gap: 0;
          padding: 4px 2px 6px;
          border-radius: 10px;
          min-height: 44px;
        }
        .cal-day:hover {
          transform: none;
        }
        .cal-day__num {
          font-size: 15px;
        }
        .cal-day__chips {
          display: none !important;
        }
        .cal-day--has-events::after {
          content: "";
          position: absolute;
          bottom: 5px;
          left: 50%;
          width: 5px;
          height: 5px;
          margin-left: -2.5px;
          border-radius: 50%;
          background: rgba(255, 255, 255, 0.55);
          box-shadow: none;
        }
        .cal-day--past.cal-day--has-events::after {
          background: rgba(255, 255, 255, 0.35);
        }
        .cal-day--today.cal-day--has-events::after {
          background: var(--cal-amber-soft);
          box-shadow: 0 0 6px var(--cal-amber-glow);
        }
        .cal-day--has-ann::before {
          top: 2px;
          right: 2px;
          font-size: 7px;
        }
        .cal-day--has-events.cal-day--has-ann::after {
          margin-left: -6px;
        }

        .cal-modal__sheet-backdrop {
          position: absolute;
          inset: 0;
          z-index: 2;
          background: rgba(8, 10, 12, 0.72);
          opacity: 0;
          pointer-events: none;
          transition: opacity 0.22s var(--ease);
        }
        .cal-modal--agenda-open .cal-modal__sheet-backdrop {
          opacity: 1;
          pointer-events: auto;
        }

        .cal-modal__agenda {
          position: absolute;
          left: 0;
          right: 0;
          bottom: 0;
          z-index: 3;
          max-height: min(58dvh, 420px);
          padding: 0;
          border-left: none;
          border-top: 1px solid rgba(255, 255, 255, 0.14);
          border-radius: 18px 18px 0 0;
          background: linear-gradient(180deg, #343b3f 0%, #262c2f 100%);
          box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.45);
          transform: translateY(100%);
          transition: transform 0.28s var(--ease);
          overflow: hidden;
          display: flex;
          flex-direction: column;
        }
        .cal-modal--agenda-open .cal-modal__agenda {
          transform: translateY(0);
        }
        .cal-modal__agenda.cal-agenda--today {
          background:
            linear-gradient(180deg, rgba(212, 180, 74, 0.14) 0%, rgba(212, 180, 74, 0.05) 100%),
            linear-gradient(180deg, #343b3f 0%, #262c2f 100%);
          border-top-color: rgba(212, 180, 74, 0.45);
        }
        .cal-agenda__sheet-close {
          flex-shrink: 0;
          display: flex;
          align-items: center;
          justify-content: center;
          width: 100%;
          padding: 10px 16px 6px;
          border: none;
          background: transparent;
          cursor: pointer;
          color: rgba(255, 255, 255, 0.55);
        }
        .cal-agenda__sheet-close-icon {
          display: block;
          width: 36px;
          height: 5px;
          border-radius: 999px;
          background: rgba(255, 255, 255, 0.28);
        }
        .cal-agenda__sheet-close:focus-visible {
          outline: 2px solid rgba(212, 180, 74, 0.75);
          outline-offset: 2px;
        }
        .cal-modal__agenda-content {
          flex: 1;
          min-height: 0;
          overflow-y: auto;
          padding: 4px 16px 20px;
          -webkit-overflow-scrolling: touch;
        }
        .cal-agenda__head {
          padding-bottom: 12px;
          margin-bottom: 12px;
        }
        .cal-agenda__date {
          font-size: 17px;
        }
        .cal-agenda__item {
          grid-template-columns: 54px 1fr;
          gap: 10px;
          padding: 10px 12px;
        }
        .cal-agenda__time {
          font-size: 12px;
          padding: 5px 6px;
        }
        .cal-agenda__title {
          font-size: 14px;
        }
        .cal-agenda__empty {
          padding: 18px 14px;
          font-size: 13px;
        }
      }

      .cal-modal__agenda-content {
        display: flex;
        flex-direction: column;
        min-height: 0;
        flex: 1;
      }

      /* ---------- Tablet ---------- */

      /* =====================================================
         About — пересобран
         ===================================================== */
      .home-about {
        --amber:        #d4b44a;
        --amber-soft:   #f0d78c;
        --amber-deep:   #7a6518;
        --amber-glow:   rgba(212, 180, 74, 0.42);
        --amber-line:   rgba(212, 180, 74, 0.55);
      }
      .home-about__heading {
        max-width: 760px;
        margin-bottom: clamp(28px, 4vw, 44px);
      }
      .home-about__heading .home-section__title { margin-bottom: 14px; }
      .home-about__lead {
        margin: 0;
        font-size: clamp(17px, 1.6vw, 20px);
        line-height: 1.5;
        color: var(--ink-700);
      }
      .home-about__lead strong {
        color: var(--amber-soft);
        font-weight: 700;
      }

      /* ---- Hero-цитата с фоном ---- */
      .home-about__hero {
        position: relative;
        overflow: hidden;
        margin: 0 0 clamp(20px, 3vw, 32px);
        padding: clamp(36px, 6vw, 64px) clamp(24px, 5vw, 56px);
        border: 1px solid rgba(212, 180, 74, 0.28);
        border-radius: var(--radius-xl);
        background: #1b1e20;
        box-shadow:
          0 24px 56px rgba(0, 0, 0, 0.34),
          inset 0 1px 0 rgba(255, 255, 255, 0.04);
        isolation: isolate;
      }
      .home-about__hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: image-set(
          url("assets/matthew-18-20-covered.webp?v=6") type("image/webp"),
          url("assets/matthew-18-20-covered.png?v=6") type("image/png")
        );
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
        opacity: 0.45;
        z-index: -2;
        transition: transform 0.8s var(--ease-out), opacity 0.4s var(--ease-out);
      }
      .home-about__hero::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
          radial-gradient(120% 80% at 100% 0%, rgba(212, 180, 74, 0.18), transparent 55%),
          linear-gradient(135deg, rgba(15, 18, 21, 0.72) 0%, rgba(15, 18, 21, 0.55) 50%, rgba(15, 18, 21, 0.85) 100%);
        z-index: -1;
      }
      .home-about__hero:hover::before {
        transform: scale(1.03);
        opacity: 0.55;
      }
      .home-about__hero-quote {
        position: relative;
        margin: 0;
        max-width: 24ch;
        font-size: clamp(22px, 3.4vw, 36px);
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: -0.018em;
        color: #fff;
        text-wrap: balance;
      }
      .home-about__hero-mark {
        display: block;
        margin-bottom: 4px;
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(56px, 7vw, 84px);
        font-weight: 400;
        line-height: 0.6;
        color: var(--amber-soft);
        text-shadow: 0 0 24px var(--amber-glow);
      }
      .home-about__hero-ref {
        margin: clamp(18px, 2vw, 24px) 0 0;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--amber-soft);
        display: inline-flex;
        align-items: center;
        gap: 10px;
      }
      .home-about__hero-ref::before {
        content: "";
        width: 28px;
        height: 1px;
        background: linear-gradient(90deg, var(--amber) 0%, transparent 100%);
      }

      /* ---- Сетка ценностей ---- */
      .home-about__values {
        list-style: none;
        margin: 0 0 clamp(20px, 3vw, 32px);
        padding: 0;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px;
      }
      .home-about__value {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 22px 22px 20px;
        background: rgba(255, 255, 255, 0.035);
        border: 1px solid var(--line);
        border-radius: var(--radius-lg);
        overflow: hidden;
        transition:
          transform 0.25s var(--ease),
          border-color 0.25s var(--ease),
          background 0.25s var(--ease),
          box-shadow 0.25s var(--ease);
      }
      .home-about__value::before {
        content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 2px;
        background: linear-gradient(90deg, transparent 0%, var(--amber) 50%, transparent 100%);
        opacity: 0;
        transition: opacity 0.25s var(--ease);
      }
      .home-about__value:hover {
        transform: translateY(-2px);
        background: rgba(255, 255, 255, 0.06);
        border-color: var(--amber-line);
        box-shadow:
          0 12px 28px -16px rgba(0, 0, 0, 0.6),
          0 0 18px -4px var(--amber-glow);
      }
      .home-about__value:hover::before { opacity: 1; }
      .home-about__value-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px; height: 44px;
        border-radius: 12px;
        background: linear-gradient(140deg, rgba(212, 180, 74, 0.18) 0%, rgba(212, 180, 74, 0.06) 100%);
        border: 1px solid rgba(212, 180, 74, 0.3);
        color: var(--amber-soft);
        flex-shrink: 0;
      }
      .home-about__value-icon svg { display: block; }
      .home-about__value-title {
        margin: 4px 0 0;
        font-size: 17px;
        font-weight: 700;
        letter-spacing: -0.012em;
        color: #fff;
      }
      .home-about__value-desc {
        margin: 0;
        font-size: 14px;
        line-height: 1.5;
        color: var(--ink-500);
      }

      @media (prefers-reduced-motion: reduce) {
        .home-about__hero::before {
          transition: none;
        }
      }

      /* ---- Баннер-ссылка «Вероучение» под блоком ценностей ---- */
      .about-doctrine-banner {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 18px 20px;
        margin-top: 4px;
        background: linear-gradient(135deg, rgba(212,180,74,0.10) 0%, rgba(212,180,74,0.04) 100%);
        border: 1px solid rgba(212,180,74,0.28);
        border-radius: var(--radius-lg);
        text-decoration: none;
        color: inherit;
        transition:
          background 0.22s var(--ease),
          border-color 0.22s var(--ease),
          transform 0.22s var(--ease),
          box-shadow 0.22s var(--ease);
      }
      .about-doctrine-banner:hover,
      .about-doctrine-banner:focus-visible {
        background: linear-gradient(135deg, rgba(212,180,74,0.17) 0%, rgba(212,180,74,0.07) 100%);
        border-color: #d4b44a;
        transform: translateY(-2px);
        box-shadow: 0 8px 24px -10px rgba(0,0,0,0.45), 0 0 14px rgba(212,180,74,0.18);
        outline: none;
      }
      .about-doctrine-banner:focus-visible {
        outline: 2px solid rgba(212,180,74,0.75);
        outline-offset: 3px;
      }
      .about-doctrine-banner__icon {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        border-radius: 12px;
        background: rgba(212,180,74,0.14);
        color: #d4b44a;
        transition: background 0.22s var(--ease), transform 0.22s var(--ease);
      }
      .about-doctrine-banner__icon svg { width: 22px; height: 22px; display: block; }
      .about-doctrine-banner:hover .about-doctrine-banner__icon,
      .about-doctrine-banner:focus-visible .about-doctrine-banner__icon {
        background: rgba(212,180,74,0.24);
        transform: scale(1.06) rotate(-3deg);
      }
      .about-doctrine-banner__body {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 2px;
        min-width: 0;
      }
      .about-doctrine-banner__label {
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: #d4b44a;
      }
      .about-doctrine-banner__name {
        font-size: 16px;
        font-weight: 700;
        letter-spacing: -0.01em;
        color: #ffffff;
        line-height: 1.2;
      }
      .about-doctrine-banner__desc {
        font-size: 13px;
        color: rgba(255,255,255,0.55);
        line-height: 1.4;
      }
      .about-doctrine-banner__arrow {
        flex-shrink: 0;
        font-size: 18px;
        color: rgba(212,180,74,0.7);
        transition: transform 0.22s var(--ease), color 0.22s var(--ease);
      }
      .about-doctrine-banner:hover .about-doctrine-banner__arrow,
      .about-doctrine-banner:focus-visible .about-doctrine-banner__arrow {
        transform: translateX(4px);
        color: #d4b44a;
      }

      /* =====================================================
         Contacts — переработанный блок
         ===================================================== */
      .home-contacts__grid {
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
        gap: clamp(16px, 2.2vw, 28px);
        align-items: stretch;
      }
      .home-contacts__cards {
        font-style: normal;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        min-width: 0;
      }
      .contact-card {
        position: relative;
        display: grid;
        grid-template-columns: 56px minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 18px;
        padding: 18px 20px;
        background:
          linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: var(--radius-lg);
        color: var(--ink);
        text-decoration: none;
        overflow: hidden;
        transition:
          transform 0.25s var(--ease),
          border-color 0.25s var(--ease),
          background 0.25s var(--ease),
          box-shadow 0.25s var(--ease);
      }
      .contact-card::before {
        content: "";
        position: absolute;
        left: 0; top: 0; bottom: 0;
        width: 3px;
        background: linear-gradient(180deg, #f0d78c 0%, #d4b44a 100%);
        opacity: 0;
        transition: opacity 0.25s var(--ease);
      }
      a.contact-card:hover,
      a.contact-card:focus-visible {
        transform: translateY(-2px);
        background: linear-gradient(160deg, rgba(212, 180, 74, 0.1), rgba(212, 180, 74, 0.02));
        border-color: #d4b44a;
        box-shadow:
          0 14px 32px -18px rgba(0, 0, 0, 0.55),
          0 0 14px rgba(212, 180, 74, 0.18);
        outline: none;
      }
      a.contact-card:hover::before,
      a.contact-card:focus-visible::before { opacity: 1; }
      .contact-card__icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 56px; height: 56px;
        border-radius: 16px;
        color: #f0d78c;
        background: linear-gradient(160deg, rgba(212, 180, 74, 0.18), rgba(212, 180, 74, 0.04));
        border: 1px solid rgba(212, 180, 74, 0.45);
        box-shadow: inset 0 1px 0 rgba(240, 215, 140, 0.18);
        flex-shrink: 0;
        transition: transform 0.3s var(--ease), background 0.3s var(--ease);
      }
      a.contact-card:hover .contact-card__icon,
      a.contact-card:focus-visible .contact-card__icon {
        transform: scale(1.05) rotate(-3deg);
        background: linear-gradient(160deg, rgba(212, 180, 74, 0.28), rgba(212, 180, 74, 0.1));
      }
      .contact-card__icon svg { width: 24px; height: 24px; display: block; }
      .contact-card__body {
        display: flex;
        flex-direction: column;
        gap: 3px;
        min-width: 0;
      }
      .contact-card__label {
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.55);
      }
      .contact-card__value {
        font-size: 17px;
        font-weight: 600;
        color: #fff;
        line-height: 1.3;
        letter-spacing: -0.005em;
        word-break: break-word;
      }
      .contact-card__hint {
        margin-top: 2px;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.5);
      }
      .contact-card__action {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        flex-shrink: 0;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: #f0d78c;
        opacity: 0;
        transform: translateX(-6px);
        transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
      }
      .contact-card__action::after {
        content: "→";
        display: inline-block;
        font-size: 14px;
        transition: transform 0.2s var(--ease);
      }
      a.contact-card:hover .contact-card__action,
      a.contact-card:focus-visible .contact-card__action {
        opacity: 1;
        transform: translateX(0);
      }
      a.contact-card:hover .contact-card__action::after,
      a.contact-card:focus-visible .contact-card__action::after {
        transform: translateX(3px);
      }

      .home-contacts__map {
        position: relative;
        border-radius: var(--radius-lg);
        overflow: hidden;
        border: 1px solid rgba(212, 180, 74, 0.32);
        background:
          radial-gradient(circle at 30% 30%, rgba(212, 180, 74, 0.08), transparent 70%),
          rgba(0, 0, 0, 0.3);
        min-height: 360px;
        box-shadow:
          0 18px 40px -22px rgba(0, 0, 0, 0.6),
          0 0 18px rgba(212, 180, 74, 0.08);
      }
      .home-contacts__map-frame {
        position: absolute;
        inset: 0;
        width: 100%; height: 100%;
        border: 0;
        display: block;
        filter: saturate(0.9) contrast(1.02);
      }
      .home-contacts__map-link {
        position: absolute;
        bottom: 14px;
        left: 14px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 9px 14px 9px 12px;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.01em;
        color: #2b2305;
        background: linear-gradient(140deg, #f0d78c 0%, #d4b44a 100%);
        border: 1px solid #d4b44a;
        border-radius: 999px;
        text-decoration: none;
        box-shadow:
          0 6px 18px rgba(0, 0, 0, 0.35),
          0 0 14px rgba(212, 180, 74, 0.4);
        transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
        z-index: 2;
      }
      .home-contacts__map-link::after {
        content: "↗";
        font-size: 14px;
        line-height: 1;
      }
      .home-contacts__map-link:hover {
        transform: translateY(-2px);
        box-shadow:
          0 10px 24px rgba(0, 0, 0, 0.4),
          0 0 22px rgba(212, 180, 74, 0.55);
      }
      .home-contacts__map-link:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 3px;
      }
      .home-contacts__map-attribution {
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 2;
        margin: 0;
        padding: 5px 10px;
        font-size: 11px;
        line-height: 1.35;
        color: rgba(255, 255, 255, 0.72);
        background: rgba(22, 27, 29, 0.78);
        border: 1px solid rgba(212, 180, 74, 0.22);
        border-radius: 999px;
        backdrop-filter: blur(6px);
      }
      .home-contacts__map-attribution a {
        color: rgba(240, 215, 140, 0.92);
        text-decoration: none;
        border-bottom: 1px solid rgba(212, 180, 74, 0.35);
      }
      .home-contacts__map-attribution a:hover,
      .home-contacts__map-attribution a:focus-visible {
        color: #f0d78c;
        border-color: var(--glass-today-border, #d4b44a);
      }
      .home-contacts__map-attribution a:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 2px;
        border-radius: 2px;
      }

      .home-section__title {
        margin: 0;
        font-size: clamp(28px, 3.6vw, 38px);
        font-weight: 800;
        letter-spacing: -0.025em;
        line-height: 1.12;
        color: #fff;
      }

      /* ----- Hero + календарь на телефоне ----- */
      @media (max-width: 768px) {
        .home-main {
          margin-top: 0;
          padding-top: clamp(20px, 5vw, 32px);
        }
        .home-main__intro {
          grid-template-columns: minmax(0, 1fr);
          grid-template-rows: auto auto;
          gap: clamp(16px, 4vw, 24px);
          align-items: stretch;
          padding-top: 0;
          padding-bottom: clamp(20px, 5vw, 32px);
        }
        .home-main__intro::before,
        .home-main__intro::after {
          top: 0;
          right: 0;
          left: 0;
          bottom: auto;
          height: clamp(240px, 56vw, 344px);
        }
        .home-main__intro::before {
          /* Крупнее и с обрезкой по бокам (центр кадра) */
          background-size: 228% auto;
          background-position: 50% 35%;
          -webkit-mask-image: linear-gradient(
            180deg,
            #000 0%,
            #000 62%,
            rgba(0, 0, 0, 0.45) 86%,
            transparent 100%
          );
          mask-image: linear-gradient(
            180deg,
            #000 0%,
            #000 62%,
            rgba(0, 0, 0, 0.45) 86%,
            transparent 100%
          );
        }
        .home-main__intro::after {
          background:
            linear-gradient(
              180deg,
              rgba(27, 30, 32, 0.82) 0%,
              rgba(27, 30, 32, 0.45) 38%,
              rgba(27, 30, 32, 0.12) 72%,
              transparent 100%
            ),
            linear-gradient(90deg, rgba(27, 30, 32, 0.5) 0%, rgba(27, 30, 32, 0) 58%);
        }
        .home-main__intro:hover::before {
          transform: none;
        }
        .home-main__intro-content {
          grid-row: 1;
          min-height: clamp(240px, 56vw, 344px);
          display: flex;
          flex-direction: column;
          align-items: flex-start;
          justify-content: flex-start;
          padding-top: clamp(28px, 6vw, 40px);
          padding-bottom: 4px;
        }
        .home-main__eyebrow {
          font-size: 9px;
          letter-spacing: 0.12em;
          padding: 4px 10px;
          width: fit-content;
          max-width: 100%;
          align-self: flex-start;
        }
        .home-main__title {
          margin-top: 14px;
          margin-bottom: 14px;
          font-size: clamp(32px, 9vw, 44px);
        }
        .home-main__cta {
          margin-top: 16px;
        }
        .events-panel {
          grid-row: 2;
          width: 100%;
          max-width: none;
          align-self: stretch;
        }
      }

      /* ----- Адаптация ----- */
      @media (max-width: 1024px) {
        .home-about__values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .home-contacts__grid { grid-template-columns: 1fr; }
        .home-contacts__map { min-height: 280px; }
      }
      @media (max-width: 760px) {
        .home-about__hero {
          padding: clamp(28px, 7vw, 36px) clamp(20px, 5vw, 28px);
          border-radius: var(--radius-lg);
        }
        .home-about__values { grid-template-columns: 1fr; gap: 10px; }
        .home-about__value { padding: 18px 18px 16px; }
        .home-about__value-icon { width: 40px; height: 40px; }

        .contact-card { grid-template-columns: 48px minmax(0, 1fr); column-gap: 14px; padding: 14px 16px; }
        .contact-card__icon { width: 48px; height: 48px; }
        .contact-card__action { display: none; }
        .home-contacts__map-attribution {
          top: auto;
          bottom: 58px;
          right: 10px;
          left: auto;
          max-width: calc(100% - 20px);
        }
      }
      @media (max-width: 480px) {
        .about-doctrine-banner { padding: 14px 14px; gap: 12px; }
        .about-doctrine-banner__icon { width: 38px; height: 38px; }
        .about-doctrine-banner__name { font-size: 15px; }
        .about-doctrine-banner__desc { font-size: 12px; }
      }

      .site-footer {
        max-width: 1240px;
        margin: 0 auto;
        padding: clamp(20px, 3vw, 28px) clamp(16px, 4vw, 32px) clamp(32px, 5vw, 48px);
      }
      .site-footer__inner {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 12px 20px;
        padding-top: 20px;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
      }
      .site-footer__brand-block {
        flex: 1 1 auto;
        min-width: min(100%, 280px);
        max-width: 100%;
      }
      .site-footer__copy {
        margin: 0;
        font-size: 13px;
        line-height: 1.5;
        color: rgba(255, 255, 255, 0.52);
      }
      .site-footer__legal {
        margin: 4px 0 0;
        max-width: 42em;
        font-size: 11px;
        line-height: 1.45;
        color: rgba(255, 255, 255, 0.34);
      }
      .site-footer__links {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 18px;
        margin: 0;
        padding: 0;
        list-style: none;
      }
      .site-footer__links a {
        font-size: 13px;
        font-weight: 600;
        color: rgba(240, 215, 140, 0.82);
        text-decoration: none;
        border-bottom: 1px solid rgba(212, 180, 74, 0.35);
        padding-bottom: 1px;
        transition: color 0.2s var(--ease-out), border-color 0.2s var(--ease-out);
      }
      .site-footer__links a:hover,
      .site-footer__links a:focus-visible {
        color: #f0d78c;
        border-color: #d4b44a;
      }
      .site-footer__links a:focus-visible {
        outline: 2px solid rgba(212, 180, 74, 0.75);
        outline-offset: 3px;
        border-radius: 2px;
      }
      @media (max-width: 560px) {
        .site-footer__inner {
          flex-direction: column;
          align-items: flex-start;
        }
      }
