/* Time for kids — дополнения к дизайну v9 для серверной версии (PHP).
   Основной стиль — css/tfk.css; здесь только то, чего нет в статичном макете:
   атрибут hidden, ссылка «К содержимому», выбор города, всплывающая карточка на карте, спрятанные карточки избранного. */

.tfk [hidden], [hidden] { display: none !important; }
body.is-locked { overflow: hidden; }

/* ссылка для клавиатуры */
.skip { position: fixed; left: 12px; top: -80px; z-index: 200; padding: 12px 18px; border-radius: 14px; background: var(--ink, #2a2340); color: #fff; font-weight: 700; transition: top .2s; }
.skip:focus { top: 12px; }

/* выбор города (показывается, если в настройках больше одного города) */
.city-wrap { position: relative; }
.city-menu { position: absolute; z-index: 60; left: 0; top: calc(100% + 8px); min-width: 200px; display: grid; gap: 2px; padding: 8px; border-radius: 22px; background: #fff; box-shadow: 0 24px 60px rgba(42, 35, 64, .22); }
.city-menu button { display: block; width: 100%; text-align: left; padding: 11px 14px; border-radius: 14px; font-weight: 600; transition: background .2s; }
.city-menu button:hover, .city-menu button.on { background: rgba(42, 35, 64, .07); }

/* карта: всплывающая карточка точки, Яндекс.Карта, переключатель */
.mp-pop { position: absolute; z-index: 5; display: grid; gap: 6px; padding: 16px 18px; border-radius: 24px; background: #fff; box-shadow: 0 22px 54px rgba(42, 35, 64, .26); animation: mpop .4s var(--spring, cubic-bezier(.34, 1.56, .64, 1)); }
.mp-pop b { font-family: var(--fd, inherit); font-weight: 700; font-size: 17px; line-height: 1.2; }
.mp-pop span { font-size: 14px; color: var(--ink2, #5a5170); }
.mp-pop .btn { height: 42px; margin-top: 6px; }
@keyframes mpop { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: none; } }
.mp-frame { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; border: 0; background: #eef6f0; }
.mp-ya { position: absolute; z-index: 6; right: 16px; bottom: 16px; height: 34px; padding: 0 16px; border-radius: 999px; background: var(--ink, #2a2340); color: #fff; font-size: 13px; font-weight: 700; box-shadow: 0 8px 20px rgba(42, 35, 64, .25); transition: transform .3s var(--spring, ease); }
.mp-ya:hover { transform: translateY(-2px); }
.mp-map .mp-cap { z-index: 6; }
.mp-map.is-ya .pin, .mp-map.is-ya .mp-pop { display: none; }
.pin.off { opacity: 0; pointer-events: none; }

/* избранное: обёртка карточки не ломает сетку */
.fvc { display: contents; }

/* день с событиями в полосе дат */
.dch.has { position: relative; }
.dch.has::after { content: ""; position: absolute; right: 9px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--acc, #ff9a3d); }
.dch.on.has::after { background: #fff; }

/* баннеры трёх сервисов на главной: цвет под картинкой, пока она не загружена */
.bc-santa .bc-cv { background: linear-gradient(135deg, #0f5b45, #1f8a64); }
.bc-wish .bc-cv { background: linear-gradient(135deg, #6a4bd8, #a98bff); }
.bc-book .bc-cv { background: linear-gradient(135deg, #ff9a3d, #ffc52e); }

/* QR купона */
.stub-qr { display: block; border-radius: 16px; background: #fff; padding: 6px; }

/* блокировки кнопок сеансов и счётчиков */
.tch:disabled, .tch[disabled] { opacity: .45; cursor: not-allowed; text-decoration: line-through; }
.cn button:disabled { opacity: .35; pointer-events: none; }

/* ссылки внутри боковой карточки */
.side-c a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* ссылка-кнопка «Подробнее» на карточках */
a.cmp { display: inline-flex; align-items: center; justify-content: center; }

@media (prefers-reduced-motion: reduce) { .mp-pop { animation: none; } }

/* четыре сервиса в ряд */
.bc-invite .bc-cv { background: linear-gradient(135deg, #ff9bd0, #ffc52e); }
@media (min-width: 761px) { .fg { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1120px) { .fg { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* v45: шапка и город */
.hd-fav>.ui{color:#f0384a}
.cty-i[hidden],.cty-e[hidden]{display:none!important}
/* v28: разделы каталога */
.cx [hidden]{display:none!important}
.cx-fbw{display:flex;justify-content:flex-start}
.pgh .cx-mode{display:inline-flex}
.cx-fbw .cx-fb{flex:none;width:auto;padding:0 20px}
/* v45: экскурсии */
.tr-hph{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.tcard[hidden]{display:none!important}
/* v46: на телефоне возраст в каталогах — без прокрутки вбок */
@media (max-width:760px){[data-catalog] .flt .tabs{flex-wrap:wrap;overflow:visible;margin:0;padding:0}}
.cg[hidden]{display:none!important}
.ks-b[hidden]{display:none!important}
