/**
 * @file cards.css — карточка: одна оболочка для всех видов (мероприятие, ведущий, запись представления, избранное) и внутреннее устройство каждого вида.
 * Размеры текста — роли: заголовок карточки = H4 (18), текст = «карточка» (15), подписи и ведущие = «мета» (14). Сетка карточек — layout.css (--ee-cols).
 * Оболочка: --ee-card-bg, --ee-card-border, --ee-radius-card, --ee-card-shadow, поля --ee-card-pad.
 */
.ee-card, .ee-host-card, .ee-fav-item, .views-view-grid .views-col, .view:not(.ee-cards) .view-content > .views-row {
  position: relative; box-sizing: border-box; min-width: 0; overflow: hidden;
  background: var(--ee-card-bg); border: var(--ee-line) solid var(--ee-card-border); border-radius: var(--ee-radius-card); box-shadow: var(--ee-card-shadow);
  font-size: var(--ee-fs-card); line-height: var(--ee-lh-card); transition: box-shadow var(--ee-motion);
}
.ee-card:hover, .ee-host-card:hover, .views-view-grid .views-col:hover, .view:not(.ee-cards) .view-content > .views-row:hover { box-shadow: var(--shadow-lg); }

/* ---------- карточка мероприятия (шаблон node--event--card): телефон — в строку, от 48rem — колонкой ---------- */
.ee-cards .view-content > div { display: flex; min-width: 0; }   /* обёртка строки представления: карточки одного ряда одной высоты */
.ee-cards .view-content > div > .ee-card { flex: 1 1 auto; width: 100%; }
.ee-card { display: flex; flex-direction: row; }
.ee-card__cover { position: relative; display: block; flex: 0 0 var(--ee-cover-w); min-height: calc(var(--ee-cover-w) * 1.2); background: var(--muted); overflow: hidden; }
.ee-card__cover img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.ee-card__body { display: flex; flex: 1; flex-direction: column; gap: var(--ee-s2); min-width: 0; padding: var(--ee-card-pad); }
.ee-card__badges { display: flex; flex-wrap: nowrap; gap: var(--ee-s1); padding-right: var(--ee-s6); min-width: 0; }
.ee-card__title { margin: 0; font-size: var(--ee-fs-h4); line-height: var(--ee-lh-h4); font-weight: var(--ee-fw-heading); }
.ee-card__title a { color: var(--foreground); text-decoration: none; overflow-wrap: anywhere; }
.ee-card__title a:hover { color: var(--ee-btn-accent); text-decoration: underline; }
.ee-card__when { margin: 0; font-weight: var(--ee-fw-heading); color: var(--ee-btn-accent); }
.ee-card__dates, .ee-card__meta { margin: 0; color: var(--muted-foreground); }
.ee-card__meta { display: flex; flex-wrap: wrap; gap: 0 var(--ee-s3); }
.ee-card__price { font-weight: var(--ee-fw-heading); color: var(--foreground); }
.ee-card__hosts { margin: 0; font-size: var(--ee-fs-meta); line-height: var(--ee-lh-meta); color: var(--muted-foreground); }
.ee-card__next-label { display: block; margin-bottom: var(--ee-s1); font-weight: var(--ee-fw-strong); }
.ee-card__next ul, .ee-card__all ul { margin: 0; padding: 0; list-style: none; }
.ee-card__next li, .ee-card__all li { margin: 0; padding: var(--ee-s1) 0 0; color: var(--muted-foreground); }
.ee-card__all > summary { cursor: pointer; list-style: none; }
.ee-card__all > summary::-webkit-details-marker { display: none; }
.ee-card__all[open] > summary { margin-bottom: var(--ee-s2); }
.ee-card__actions { display: flex; flex-wrap: wrap; gap: var(--ee-s2); margin-top: auto; padding-top: var(--ee-s3); }
@media (min-width: 48rem) {
  .ee-card { flex-direction: column; }
  .ee-card__cover { flex: none; min-height: 0; aspect-ratio: 4 / 3; }
  .ee-card__badges { padding-right: 0; }
}

/* ---------- карточка-запись представления (Views): мастера, практики, отзывы, вопросы, выпускники, архив ---------- */
.views-view-grid .views-col, .view:not(.ee-cards) .view-content > .views-row { display: flex; flex-direction: column; gap: var(--ee-s2); padding: 0 0 var(--ee-card-pad); }
:is(.views-view-grid .views-col, .view:not(.ee-cards) .view-content > .views-row) > .views-field { padding-inline: var(--ee-card-pad); }
:is(.views-view-grid .views-col, .view:not(.ee-cards) .view-content > .views-row) > .views-field:first-child:has(img):not(.views-field-field-review-author-photo) { padding-inline: 0; }   /* фото на всю ширину карточки */
:is(.views-view-grid .views-col, .view:not(.ee-cards) .view-content > .views-row) > .views-field:first-child:not(.views-field-field-review-author-photo) img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--muted); }
:is(.views-view-grid .views-col, .view:not(.ee-cards) .view-content > .views-row) > .views-field:first-child:not(:has(img)) { padding-top: var(--ee-card-pad); padding-right: var(--ee-s6); }   /* заголовок без фото не заходит под сердечко */
.views-field-field-practice-cover img, .view-practices-teaser .views-field-field-cover img, .view-practices-listing .views-field-field-cover img { aspect-ratio: 16 / 9; }
.view-masters-listing .views-field img, .view-graduates-listing .views-field img, .view-students-graduates .views-field img { aspect-ratio: 1 / 1; }
.views-label { display: none; }
.views-field-title { margin-top: var(--ee-s2); font-size: var(--ee-fs-h4); line-height: var(--ee-lh-h4); font-weight: var(--ee-fw-heading); hyphens: auto; overflow-wrap: anywhere; }
.views-field-title a { color: var(--foreground); text-decoration: none; }
.views-field-title a:hover { color: var(--ee-btn-accent); text-decoration: underline; }
.views-field-field-event-dates, .views-field-field-master-city, .views-field-field-profile-year { color: var(--muted-foreground); }
.views-field-field-price-from .field-content { font-weight: var(--ee-fw-heading); }
.views-field-field-price-from .field-content::after { content: " ₽"; }
.views-field-field-event-hosts { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; font-size: var(--ee-fs-meta); line-height: var(--ee-lh-meta); color: var(--muted-foreground); }
.views-field-field-event-hosts .views-label, .views-field-field-event-hosts .field-content { display: inline; font-weight: var(--ee-fw-regular); }
.views-field-field-rating { color: var(--ee-status-warn); letter-spacing: var(--ee-tracking-caps); }
.views-field-field-author-name { font-weight: var(--ee-fw-strong); }
.views-field-field-review-author-photo img { width: var(--ee-icon); height: var(--ee-icon); aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
.view-reviews-best .views-field-field-review-author-photo, .view-reviews-teaser .views-field-field-review-author-photo { padding-inline: var(--ee-card-pad); }
.view-reviews-teaser .views-col, .view-reviews-best .views-col { padding-block: var(--ee-card-pad); }
.view-faq-listing .views-field-title, .view-faq-listing .views-field-field-answer { padding-inline: 0; }
/* статус на обложке: белая плашка поверх фото, текст всегда тёмный (контраст не зависит от фото) */
.views-view-grid .views-col:has(.views-field-field-event-cover) > .views-field-field-event-status { position: absolute; top: var(--ee-s3); left: var(--ee-s3); z-index: 1; max-width: calc(100% - var(--ee-s7)); padding: 0; }
.views-view-grid .views-col:has(.views-field-field-event-cover) > .views-field-field-event-status .field-content { background: var(--background); color: var(--foreground); box-shadow: var(--shadow-sm); }
/* хаб направлений: плашки с цветной верхней линией */
.view-directions-hub .views-view-grid.horizontal { display: flex; flex-wrap: wrap; gap: var(--ee-s3); }
.view-directions-hub .views-col { align-items: center; justify-content: center; min-height: calc(var(--ee-control) + var(--ee-s2)); padding: var(--ee-s4) var(--ee-s5) var(--ee-s3); border-radius: var(--radius); box-shadow: none; text-align: center; }
.view-directions-hub .views-col > .views-field { padding: 0; }
.view-directions-hub .views-field-name a { color: var(--foreground); font-weight: var(--ee-fw-strong); text-decoration: none; }
.view-directions-hub .views-field-field-color { position: absolute; top: 0; left: 0; right: 0; padding: 0; }
.ee-swatch { display: block; width: 100%; height: var(--ee-s1); background: var(--ee-swatch); }   /* цвет направления: данные, приходит свойством --ee-swatch из шаблона color-field-formatter-swatch */
@media (max-width: 39.99rem) { .view-directions-hub .views-view-grid.horizontal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ee-s2); } .view-directions-hub .views-col { padding-inline: var(--ee-s2); } }

/* ---------- карточка ведущего (компонент «Ведущие мероприятия») ---------- */
.ee-hosts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ee-s3); }
@media (min-width: 48rem) { .ee-hosts__grid { grid-template-columns: repeat(var(--ee-cols), minmax(0, 1fr)); gap: var(--ee-s5); } }
.ee-hosts__item { min-width: 0; }
.ee-host-card { display: flex; flex-direction: column; height: 100%; }
.ee-host-card__link { display: block; color: inherit; text-decoration: none; }
.ee-host-card__link::after { content: ""; position: absolute; inset: 0; }   /* вся карточка — ссылка на профиль */
.ee-host-card__photo { display: block; aspect-ratio: 1 / 1; overflow: hidden; background: var(--muted); }
.ee-host-card__photo img, .ee-host-card__ph { display: block; width: 100%; height: 100%; object-fit: cover; }
.ee-host-card__name { display: block; padding: var(--ee-s3) var(--ee-s3) var(--ee-s1); font-weight: var(--ee-fw-strong); hyphens: auto; overflow-wrap: anywhere; }
.ee-host-card__link:hover .ee-host-card__name, .ee-host-card__link:focus-visible .ee-host-card__name { color: var(--ee-btn-accent); text-decoration: underline; }
.ee-host-card__role { padding: 0 var(--ee-s3) var(--ee-s3); font-size: var(--ee-fs-meta); line-height: var(--ee-lh-meta); color: var(--muted-foreground); }
.ee-host-card__role .field { display: inline; padding: 0; border: 0; }

/* ---------- избранное (страница «Избранное») ---------- */
.ee-fav-list { display: grid; grid-template-columns: repeat(var(--ee-cols), minmax(0, 1fr)); gap: var(--ee-s3); margin: 0; padding: 0; list-style: none; }
.ee-fav-item { display: flex; flex-direction: column; }
.ee-fav-item__link { display: flex; align-items: stretch; gap: var(--ee-s3); color: inherit; text-decoration: none; }
.ee-fav-item__link img { flex: none; width: var(--ee-cover-w); height: auto; object-fit: cover; background: var(--muted); }
.ee-fav-item__text { display: flex; flex-direction: column; gap: var(--ee-s1); padding: var(--ee-s3) var(--ee-s3) var(--ee-s2) 0; }
.ee-fav-item__link:not(:has(img)) .ee-fav-item__text { padding-left: var(--ee-s4); }
.ee-fav-item__type, .ee-fav-item__date { font-size: var(--ee-fs-meta); line-height: var(--ee-lh-meta); color: var(--muted-foreground); }
.ee-fav-item__title { font-weight: var(--ee-fw-heading); }
.ee-fav-item__remove { align-self: flex-end; min-height: var(--ee-control); margin: 0 var(--ee-s3) var(--ee-s2); padding: 0 var(--ee-s4); border: var(--ee-line) solid var(--input); border-radius: var(--ee-radius-pill); background: var(--background); color: var(--foreground); font: inherit; cursor: pointer; }
.ee-fav-item__remove:hover { background: var(--secondary); }

/* ---------- расписание: заголовки разделов, фильтры, пустые разделы ---------- */
.ee-sched__title { margin: var(--ee-s6) 0 var(--ee-gap-heading-after); }
.ee-sched-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--ee-s3) var(--ee-s5); min-height: calc(var(--ee-control) * 2); margin-bottom: var(--ee-s4); }   /* место под фильтры резервируется до работы скрипта: список не прыгает */
.ee-sched-filters.is-empty { min-height: 0; }
@media (max-width: 40rem) { .ee-sched-filters { min-height: calc(var(--ee-control) * 4); } }
.ee-filter { display: flex; flex: 1 1 var(--ee-filter-w); flex-direction: column; gap: var(--ee-s1); min-width: min(100%, var(--ee-filter-w)); max-width: var(--ee-filter-max); }
.ee-filter__label { font-size: var(--ee-fs-meta); line-height: var(--ee-lh-meta); font-weight: var(--ee-fw-heading); }
.ee-sched-status { margin: 0; color: var(--muted-foreground); }
.ee-sched-empty { margin: 0 0 var(--ee-s4); padding: var(--ee-s4); border: var(--ee-line) dashed var(--border); border-radius: var(--ee-radius-card); color: var(--muted-foreground); }

/* ---------- чипы и бейджи (направление, тип, статус, фасеты поиска): роль «мета», форма «таблетка»; цвет статуса — токены --ee-status-* ---------- */
.ee-badge, .field--name-field-techniques .field__item, .field--name-field-directions .field__item a, .view-students-graduates .views-field-name .field-content, .views-field-field-event-status .field-content {
  display: inline-flex; align-items: center; gap: var(--ee-s1); padding: 0 var(--ee-s3); border-radius: var(--ee-radius-pill);
  background: var(--secondary); color: var(--secondary-foreground); font-size: var(--ee-fs-meta); line-height: var(--ee-lh-meta); font-weight: var(--ee-fw-strong); text-decoration: none; white-space: nowrap;
}
a.ee-badge:hover { background: var(--accent); }
.ee-badge--dir, .view-students-graduates .views-field-name .field-content { background: var(--accent); color: var(--accent-foreground); }
.ee-badge--status { background: var(--background); border: var(--ee-line) solid currentColor; }
.ee-badge--open { color: var(--ee-status-ok); }
.ee-badge--announce, .ee-badge--postponed { color: var(--ee-status-warn); }
.ee-badge--cancelled { color: var(--ee-status-bad); }
.ee-badge--finished, .ee-badge--going { color: var(--ee-status-done); }
.ee-card .ee-badge--dir { max-width: 100%; min-width: 0; flex-shrink: 1; overflow: hidden; text-overflow: ellipsis; }
.ee-card .ee-badge--status { flex-shrink: 0; }
/* фасеты поиска: чипы-фильтры */
.facets-widget-links ul { display: flex; flex-wrap: wrap; gap: var(--ee-s2); margin: 0; padding: 0; list-style: none; }
.facets-widget-links li { margin: 0; padding: 0; }
.facets-widget-links a { display: inline-flex; align-items: center; gap: var(--ee-s1); min-height: var(--ee-control); padding: 0 var(--ee-s4); border: var(--ee-line) solid var(--input); border-radius: var(--ee-radius-pill); background: var(--background); color: var(--foreground); font-size: var(--ee-fs-card); line-height: var(--ee-lh-card); text-decoration: none; }
.facets-widget-links a:hover { background: var(--secondary); }
.facets-widget-links a.is-active { background: var(--primary); border-color: var(--primary); color: var(--primary-foreground); }
.facets-widget-links .facet-item__count { font-size: var(--ee-fs-meta); opacity: 0.8; }
.region-content > [id^="block-"][class*="block-facet--"] { margin-bottom: var(--ee-s4); }
.region-content > [id^="block-"][class*="block-facet--"] > h2 { margin: 0 0 var(--ee-s2); font-size: var(--ee-fs-card); line-height: var(--ee-lh-card); font-weight: var(--ee-fw-strong); color: var(--muted-foreground); }
