/**
 * components.css — School Gov UA Theme
 * Компоненти: картки, кнопки, пошук, блоки
 */
/* === КНОПКИ === */
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-sm);
  padding: .65em 1.4em;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--fs-sm);
  border-radius: var(--radius-md);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition-base);
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.3;
}
.btn-primary {
  background: var(--color-accent);
  color: var(--color-primary-dark);
  border-color: var(--color-accent);
}
.btn-primary:hover {
  background: var(--color-accent-dark);
  border-color: var(--color-accent-dark);
  color: var(--color-primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(245,168,0,.4);
}
.btn-outline {
  background: transparent;
  color: var(--color-white);
  border-color: rgba(255,255,255,.5);
}
.btn-outline:hover {
  background: rgba(255,255,255,.1);
  border-color: var(--color-white);
  color: var(--color-white);
}
.btn-secondary {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}
.btn-secondary:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: var(--color-white);
}
.btn-sm { padding: .45em 1em; font-size: var(--fs-xs); }
.btn-lg { padding: .85em 1.8em; font-size: var(--fs-md); }
/* === ПОШУК === */
.search-form {
  position: relative;
  display: flex;
  align-items: center;
}
.search-form input[type="search"],
.search-form input[type="text"] {
  width: 100%;
  padding: .55em 2.8em .55em 1em;
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.35);
  border-radius: var(--radius-full);
  color: var(--color-white);
  font-size: var(--fs-sm);
  outline: none;
  transition: all var(--transition-base);
}
.search-form input::placeholder { color: rgba(255,255,255,.6); }
.search-form input:focus {
  background: rgba(255,255,255,.22);
  border-color: var(--color-accent);
}
.search-form .search-icon {
  position: absolute;
  right: .9em;
  color: rgba(255,255,255,.7);
  font-size: var(--fs-sm);
  pointer-events: none;
}
/* === КАРТКА НОВИНИ === */
.news-card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-base);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border);
}
.news-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
  border-color: var(--color-primary-light);
}
.news-card__image {
  aspect-ratio: 16/10;
  overflow: hidden;
}
.news-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.news-card:hover .news-card__image img { transform: scale(1.05); }
.news-card__body {
  padding: var(--sp-md);
  flex: 1;
  display: flex;
  flex-direction: column;
}
.news-card__title {
  font-family: var(--font-heading);
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-primary-dark);
  margin-bottom: var(--sp-sm);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card__title a { color: inherit; }
.news-card__title a:hover { color: var(--color-primary); }
.news-card__excerpt {
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
  margin-bottom: var(--sp-md);
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: var(--sp-sm);
  border-top: 1px solid var(--color-border);
}
.news-card__meta {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
}
/* === КАРТКА ОГОЛОШЕННЯ === */
.announcement-card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border);
  transition: all var(--transition-base);
  display: flex;
  flex-direction: column;
  width: 100% !important;
}
.announcement-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--color-primary-light);
}
.announcement-card__image {
  aspect-ratio: 16/10;
  overflow: hidden;
  width: 100% !important;
}
.announcement-card__image img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.announcement-card__body {
  padding: var(--sp-md);
  flex: 1;
}
.announcement-card__title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--color-primary-dark);
  margin-bottom: var(--sp-xs);
  line-height: 1.35;
}
.announcement-card__excerpt {
  font-size: var(--fs-xs);
  color: var(--color-text-secondary);
  margin-bottom: var(--sp-sm);
}
.announcement-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  padding-top: var(--sp-sm);
  border-top: 1px solid var(--color-border);
}
/* === BADGE === */
.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.badge--new      { background: var(--color-accent); color: var(--color-primary-dark); }
.badge--info     { background: #e3eaff; color: var(--color-primary); }
.badge--warning  { background: #fff3cd; color: #856404; }
.badge--danger   { background: #fde8e8; color: #c0392b; }
/* === СТАТИСТИКА === */
.stat-card {
  border-radius: var(--radius-lg);
  padding: var(--sp-xl) var(--sp-lg);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-xs);
  color: var(--color-white);
  position: relative;
  overflow: hidden;
}
.stat-card::before {
  content: '';
  position: absolute;
  right: -20px; top: -20px;
  width: 100px; height: 100px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
}
.stat-card--blue { background: var(--color-primary); }
.stat-card--blue-dark { background: var(--color-primary-dark); }
.stat-card--green { background: var(--color-green); }
.stat-card__number {
  font-family: var(--font-heading);
  font-size: 2.8rem;
  font-weight: 800;
  line-height: 1;
  color: var(--color-white);
}
.stat-card__label {
  font-size: var(--fs-lg);
  font-weight: 600;
  color: rgba(255,255,255,.9);
}
.stat-card__desc {
  font-size: var(--fs-xs);
  color: rgba(255,255,255,.65);
  margin-top: var(--sp-xs);
}
/* === РОЗКЛАД ДЗВІНКІВ === */
.bell-schedule {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border);
  overflow: hidden;
}
.bell-schedule__header {
  background: var(--color-primary);
  color: var(--color-white);
  padding: var(--sp-md) var(--sp-lg);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--fs-md);
}
.bell-schedule table {
  margin: 0;
  width: 100%;
}
.bell-schedule td, .bell-schedule th {
  padding: .55em 1em;
  border-bottom: 1px solid var(--color-border);
  font-size: var(--fs-sm);
}
.bell-schedule tr:last-child td { border-bottom: none; }
.bell-schedule tr:nth-child(even) td { background: var(--color-off-white); }
.bell-schedule__lesson-num {
  font-weight: 700;
  color: var(--color-primary);
  width: 2.5em;
}
.bell-schedule__time { color: var(--color-text-secondary); }
.bell-schedule__footer {
  padding: var(--sp-sm) var(--sp-lg);
  border-top: 1px solid var(--color-border);
  text-align: right;
}
/* =====================================================
   АДМІНІСТРАЦІЯ — admin-card
   Кругла аватарка, ПІБ, посада
   ===================================================== */
.admin-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--sp-sm) var(--sp-xs);
  gap: 4px;
  transition: transform .2s ease;
}
.admin-card:hover {
  transform: translateY(-2px);
}

/* ── Контейнер аватарки (круглий) ── */
.admin-card__photo-wrap {
  width: 92px;
  height: 92px;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: var(--sp-sm);
  border: 3px solid rgba(27,61,143,.15);
  box-shadow: 0 2px 10px rgba(27,61,143,.12);
  transition: border-color .2s, box-shadow .2s;
  flex-shrink: 0;
  background: var(--color-off-white);
}
.admin-card:hover .admin-card__photo-wrap {
  border-color: var(--color-primary);
  box-shadow: 0 4px 16px rgba(27,61,143,.22);
}

/* Field chain → заповнюють круг */
.admin-card__photo-wrap .field,
.admin-card__photo-wrap .field__item,
.admin-card__photo-wrap .field-content,
.admin-card__photo-wrap a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  line-height: 0;
}
.admin-card__photo-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: top center !important;
  transition: transform .35s ease;
}
.admin-card:hover .admin-card__photo-wrap img {
  transform: scale(1.06);
}

/* Порожня аватарка */
.admin-card__photo-wrap--empty {
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  font-size: 2rem;
}

/* ── ПІБ ── */
.admin-card__name {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--color-primary-dark);
  line-height: 1.35;
  margin-bottom: 3px;
}
.admin-card__name a {
  color: inherit;
  text-decoration: none;
}
.admin-card__name a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

/* ── Посада ── */
.admin-card__position {
  font-size: 0.72rem;
  color: var(--color-text-secondary);
  line-height: 1.3;
}

/* Ховаємо мітку поля "Посада:" */
.admin-card .field__label { display: none !important; }
.admin-card .field--label-inline .field__label { display: none !important; }
.admin-card .field--label-above .field__label { display: none !important; }

/* ── Прибираємо зайві посилання з node template ── */
.admin-card .node__links,
.admin-card .links,
.admin-card footer { display: none !important; }
/* =====================================================
   CONTACTS + USEFUL LINKS — section.region-contacts
   Два блоки в одному рядку на темно-синьому фоні
   ===================================================== */

/* ── Grid: 2 колонки ── */
.contacts-footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3xl);
  align-items: start;
}
@media (max-width: 768px) {
  .contacts-footer-grid { grid-template-columns: 1fr; gap: var(--sp-xl); }
}

/* ── Секційний заголовок в блоці (на темному фоні) ── */
.region-contacts .page-section__header,
.contacts-footer-grid .page-section__header {
  margin-bottom: var(--sp-lg);
}
.region-contacts .page-section__title,
.contacts-footer-grid .page-section__title {
  color: var(--color-white) !important;
  font-size: 1.1rem !important;
}
.region-contacts .page-section__title::before,
.contacts-footer-grid .page-section__title::before {
  background: var(--color-accent) !important;
}

/* ── Контактні елементи ── */
.contact-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-sm);
  margin-bottom: var(--sp-md);
  color: rgba(255,255,255,.85);
  font-size: var(--fs-sm);
  transition: color .15s;
}
.contact-item:last-child { margin-bottom: 0; }
.contact-item__icon {
  color: var(--color-accent);
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 3px;
  width: 18px;
  text-align: center;
}
.contact-item a { color: rgba(255,255,255,.85); text-decoration: none; }
.contact-item a:hover { color: var(--color-accent); }

/* ── Корисні посилання (темний фон) ── */
.contacts-footer-grid__links .block-title,
.contacts-footer-grid__links h2 {
  color: var(--color-white) !important;
  font-size: 1.1rem !important;
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  margin-bottom: var(--sp-lg) !important;
  padding-left: 14px !important;
  border-left: 4px solid var(--color-accent) !important;
}

/* Список корисних посилань */
.contacts-footer-grid__links ul,
.contacts-footer-grid__links .menu {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.contacts-footer-grid__links li,
.contacts-footer-grid__links .menu__item {
  margin-bottom: var(--sp-sm) !important;
}
.contacts-footer-grid__links a,
.contacts-footer-grid__links .menu__link {
  color: rgba(255,255,255,.8) !important;
  text-decoration: none !important;
  font-size: var(--fs-sm) !important;
  display: flex !important;
  align-items: center !important;
  gap: var(--sp-xs) !important;
  transition: color .15s, padding-left .15s !important;
}
.contacts-footer-grid__links a::before,
.contacts-footer-grid__links .menu__link::before {
  content: '›' !important;
  color: var(--color-accent) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
}
.contacts-footer-grid__links a:hover,
.contacts-footer-grid__links .menu__link:hover {
  color: var(--color-accent) !important;
  padding-left: 4px !important;
}

/* Текстовий контент в useful_links (якщо є параграфи) */
.contacts-footer-grid__links p {
  color: rgba(255,255,255,.7);
  font-size: var(--fs-sm);
  line-height: 1.6;
}
/* === КАРТА === */
.map-wrapper {
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 280px;
  background: #ccc;
}
.map-wrapper iframe { width: 100%; height: 100%; border: none; }

/* ── Footer: корисні посилання (список посилань) ── */
.site-footer ul,
.site-footer ol,
.site-footer .menu {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.site-footer li,
.site-footer .menu__item {
  margin-bottom: var(--sp-sm) !important;
}
.site-footer a,
.site-footer .menu__link {
  color: rgba(255,255,255,.8) !important;
  text-decoration: none !important;
  font-size: var(--fs-sm) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: color .15s, padding-left .15s !important;
}
.site-footer a::before,
.site-footer .menu__link::before {
  content: '›' !important;
  color: var(--color-accent) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
}
.site-footer a:hover,
.site-footer .menu__link:hover {
  color: var(--color-accent) !important;
  padding-left: 4px !important;
}

/* Footer paragraph text */
.site-footer p {
  color: rgba(255,255,255,.75);
  font-size: var(--fs-sm);
  line-height: 1.6;
  margin-bottom: var(--sp-sm);
}

/* Footer: contact-item (inherit white style) */
.site-footer .contact-item {
  color: rgba(255,255,255,.85) !important;
}

/* === ДОКУМЕНТИ === */
.doc-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.doc-item {
  display: flex;
  align-items: center;
  gap: var(--sp-md);
  padding: var(--sp-md);
  border-bottom: 1px solid var(--color-border);
  transition: background var(--transition-fast);
}
.doc-item:hover { background: var(--color-off-white); }
.doc-item:last-child { border-bottom: none; }
.doc-item__icon {
  color: #c0392b;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.doc-item__name {
  flex: 1;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--color-text);
}
.doc-item__meta {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
}
/* === ФОРМА КОНТАКТІВ (тільки в темному регіоні .region-contacts) === */
/* ⚠️ НЕ застосовувати глобально — Drupal Contact Form має клас .contact-form */
.region-contacts .contact-form .form-group {
  margin-bottom: var(--sp-md);
}
.region-contacts .contact-form label {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: rgba(255,255,255,.85);
  margin-bottom: var(--sp-xs);
}
.region-contacts .contact-form input,
.region-contacts .contact-form textarea,
.region-contacts .contact-form select {
  width: 100%;
  padding: .65em 1em;
  background: rgba(255,255,255,.12);
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: var(--radius-md);
  color: var(--color-white);
  font-size: var(--fs-sm);
  outline: none;
  transition: border-color var(--transition-fast);
}
.region-contacts .contact-form input::placeholder,
.region-contacts .contact-form textarea::placeholder { color: rgba(255,255,255,.45); }
.region-contacts .contact-form input:focus,
.region-contacts .contact-form textarea:focus {
  border-color: var(--color-accent);
  background: rgba(255,255,255,.18);
}
.region-contacts .contact-form textarea { resize: vertical; min-height: 100px; }
/* === СОЦМЕРЕЖІ === */
.social-links {
  display: flex;
  gap: var(--sp-sm);
}
.social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: var(--radius-md);
  font-size: var(--fs-md);
  transition: all var(--transition-base);
  text-decoration: none;
}
.social-link--facebook  { background: #1877f2; color: #fff; }
.social-link--youtube   { background: #ff0000; color: #fff; }
.social-link--instagram { background: #e1306c; color: #fff; }
.social-link--email     { background: var(--color-accent); color: var(--color-primary-dark); }
.social-link:hover { opacity: .85; transform: translateY(-2px); }
/* === ПАГІНАЦІЯ === */
.pager { display: flex; gap: var(--sp-xs); justify-content: center; padding: var(--sp-xl) 0 0; }
.pager__item a, .pager__item span {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
  font-weight: 600;
  border: 1.5px solid var(--color-border);
  color: var(--color-primary);
  transition: all var(--transition-fast);
}
.pager__item--current span,
.pager__item a:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}
/* === КОРИСНІ ПОСИЛАННЯ === */
.useful-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  padding: var(--sp-lg) 0;
}
.useful-link {
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
  padding: .5em 1em;
  background: var(--color-white);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-primary);
  transition: all var(--transition-base);
}
.useful-link:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}
/* === ДРУПАЛ БАЗОВІ ЕЛЕМЕНТИ === */
.messages--status  { background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 1em; border-radius: var(--radius-md); margin-bottom: var(--sp-md); }
.messages--warning { background: #fff3cd; border: 1px solid #ffeeba; color: #856404; padding: 1em; border-radius: var(--radius-md); margin-bottom: var(--sp-md); }
.messages--error   { background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 1em; border-radius: var(--radius-md); margin-bottom: var(--sp-md); }
.node__title { font-size: var(--fs-2xl); margin-bottom: var(--sp-md); }
.node__submitted { font-size: var(--fs-xs); color: var(--color-text-light); margin-bottom: var(--sp-lg); }
.field--label-inline .field__label { font-weight: 700; margin-right: var(--sp-xs); }
/* Таксономія */
.taxonomy-term-list { display: flex; flex-wrap: wrap; gap: var(--sp-xs); }
.taxonomy-term-list a {
  display: inline-block;
  padding: 2px 10px;
  background: var(--color-off-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  color: var(--color-primary);
}
.taxonomy-term-list a:hover {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

/* =====================================================
   БЛОК ОГОЛОШЕНЬ — Views "oholoshennya"
   Machine name: oholoshennya / block_1
   announcements-col ширина: ~828px (1fr від 1180px - 320px - 32px gap)
   Динамічні колонки: 1→1col, 2→2col, 3→3col, 4→2×2
   ===================================================== */

/* Базова Grid-сітка — перекриваємо Views Grid float/inline-width */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: var(--sp-lg) !important;
  width: 100% !important;
  float: none !important;
  clear: none !important;
  overflow: visible !important;
}

/* views-row → display:contents (прозорий для grid, views-col стають grid items) */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-row {
  display: contents !important;
}
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-row::before,
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-row::after {
  display: none !important;
  content: none !important;
}

/* views-col → скасовуємо inline-style width:25% від Views */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-col {
  width: auto !important;
  float: none !important;
  padding: 0 !important;
  min-width: 0 !important;
}
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-col article {
  width: 100% !important;
  height: 100%;
}

/* ── 1 оголошення → 1 col + горизонтальна картка ── */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) {
  grid-template-columns: 1fr !important;
}
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) .announcement-card {
  flex-direction: row !important;
  max-height: 280px !important;
}
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) .announcement-card__image {
  flex: 0 0 360px !important;
  width: 360px !important;
  aspect-ratio: unset !important;
  height: 100% !important;
}
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) .announcement-card__image img {
  object-fit: cover !important;
  height: 100% !important;
  width: 100% !important;
}
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) .announcement-card__body {
  flex: 1 !important;
  padding: var(--sp-xl) !important;
}

/* ── 2 оголошення → 2 рівних колонки ── */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:nth-child(2):last-child) {
  grid-template-columns: repeat(2, 1fr) !important;
}

/* ── 3 оголошення → 3 рівних колонки ── */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:nth-child(3):last-child) {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* ── 4 оголошення → 2×2 ── */
#block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:nth-child(4):last-child) {
  grid-template-columns: repeat(2, 1fr) !important;
}

/* ── Планшет (≤900px): max 2 колонки ── */
@media (max-width: 900px) {
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid,
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:nth-child(3):last-child),
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:nth-child(4):last-child) {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) .announcement-card {
    flex-direction: column !important;
    max-height: none !important;
  }
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid:has(.views-col:only-child) .announcement-card__image {
    flex: none !important;
    width: 100% !important;
    aspect-ratio: 16/9 !important;
    height: auto !important;
  }
}
/* ── Мобільний (≤600px): 1 колонка ── */
@media (max-width: 600px) {
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid {
    grid-template-columns: 1fr !important;
  }
}

.announcement-card__image,
.announcement-card__image .field--field-image,
.announcement-card__image a {
  display: block !important;
  width: 100% !important;
}
.announcement-card__image a { line-height: 0 !important; }
.announcement-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Badge — лівий верхній кут */
.announcement-card { position: relative !important; }
.announcement-card .badge {
  position: absolute !important;
  top: var(--sp-sm) !important;
  left: var(--sp-sm) !important;
  right: auto !important;
  transform: none !important;
  z-index: 5 !important;
  display: inline-block !important;
  background: var(--color-accent) !important;
  color: var(--color-primary-dark) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 3px 10px !important;
  border-radius: var(--radius-full) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  margin: 0 !important;
  box-shadow: 0 1px 6px rgba(0,0,0,.25) !important;
}
.announcement-card .badge .field--field-label-type,
.announcement-card .badge .field,
.announcement-card span.badge > div {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  display: inline !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  text-transform: inherit !important;
  color: inherit !important;
  margin: 0 !important;
  border: none !important;
}
.announcement-card .announcement-card__body {
  padding-top: var(--sp-sm) !important;
}

/* Мобільна: ≤ 480px → 1 картка */
@media (max-width: 480px) {
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-row {
    flex-direction: column !important;
  }
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-col {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}
/* 480–768px → 2 картки */
@media (min-width: 480px) and (max-width: 768px) {
  #block-school-gov-views-block-oholoshennya-block-1 .views-view-grid .views-col {
    flex: 0 0 calc(50% - var(--sp-sm)) !important;
    width: calc(50% - var(--sp-sm)) !important;
    max-width: calc(50% - var(--sp-sm)) !important;
  }
}

/* =====================================================
   ПОВНА СТОРІНКА ВУЗЛА (announcement / news)
   ===================================================== */
.layout-inner--no-sidebar .layout__content article.node,
.node--type-announcement:not(.announcement-card),
.node--type-news:not(.news-card) {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  margin: 0 0 var(--sp-xl); /* margin-top=0, використовуємо padding контейнера */
}
.layout-inner--no-sidebar .node__title,
h1.page-title {
  font-size: 1.8rem !important;
  color: var(--color-primary-dark);
  font-weight: 800;
  margin: var(--sp-xl) 0 var(--sp-md) !important;
  line-height: 1.2;
}
.node__meta,
footer.node__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-md);
  padding: var(--sp-sm) var(--sp-lg) !important;
  background: var(--color-off-white);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--fs-xs);
  color: var(--color-text-secondary);
  flex-wrap: wrap;
}
.node__meta .node__author,
.node__meta .username { font-weight: 600; color: var(--color-primary); }
.node__content { padding: var(--sp-lg); }
.node__content .field--field-image,
.node__content .field.field--field-image {
  margin: 0 0 var(--sp-lg);
  border-radius: var(--radius-md);
  overflow: hidden;
  max-height: 480px;
  line-height: 0;
}
.node__content .field--field-image img {
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-md);
}
.node__content .field--body,
.node__content .field.field--body {
  font-size: var(--fs-base);
  line-height: 1.75;
  color: var(--color-text) !important;
  margin-bottom: var(--sp-md);
}
.node__content .field--body span,
.node__content .field--body p {
  background-color: transparent !important;
  color: var(--color-text) !important;
  font-family: var(--font-body) !important;
  font-size: var(--fs-base) !important;
  display: block !important;
  text-indent: 0 !important;
  white-space: normal !important;
  text-align: left !important;
}
.node__content .field--body p { margin-bottom: var(--sp-md); }
.node__content .field--field-label-type {
  margin-top: var(--sp-md);
  padding-top: var(--sp-md);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  gap: var(--sp-sm);
}

/* =====================================================
   ADMIN TABS
   ===================================================== */
ul.tabs--primary,
.block-local-tasks-block ul,
.tabs.tabs--primary {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  list-style: none !important;
  padding: var(--sp-sm) 0 var(--sp-md) !important;
  margin: 0 !important;
  border-bottom: none !important;
  background: transparent !important;
}
ul.tabs--primary > li,
.block-local-tasks-block ul > li {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}
ul.tabs--primary > li > a,
.block-local-tasks-block ul > li > a {
  display: inline-flex !important;
  align-items: center !important;
  padding: 7px 18px !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border-radius: var(--radius-md) !important;
  font-family: var(--font-heading) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: none !important;
  transition: background .15s !important;
  line-height: 1 !important;
}
ul.tabs--primary > li > a:hover {
  background: var(--color-primary-dark) !important;
  color: #fff !important;
}
ul.tabs--primary > li.is-active > a,
.block-local-tasks-block ul > li.is-active > a {
  background: var(--color-accent) !important;
  color: var(--color-primary-dark) !important;
}

/* === Ховаємо заголовки всіх service-блоків === */
.block-local-tasks-block > h2,
.block-local-tasks-block > .block-title,
[id*="local-tasks"] > h2,
.block-system-main-block > h2,
.block-help > h2,
/* Breadcrumb block title "Хлібні крихти" */
.block-system-breadcrumb-block > h2,
.region-breadcrumb .block > h2,
.block-breadcrumb > h2,
[id*="breadcrumb"] > h2 {
  display: none !important;
}

/* === Breadcrumb nav — стилізація === */
.region-breadcrumb nav,
.breadcrumb {
  padding: 10px 0 8px !important;
  font-size: 0.82rem !important;
}
.breadcrumb ol,
.breadcrumb ul {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 4px !important;
}
.breadcrumb li { display: inline-flex; align-items: center; }
.breadcrumb li + li::before {
  content: '›' !important;
  margin-right: 4px !important;
  color: var(--color-text-secondary) !important;
}
.breadcrumb a {
  color: var(--color-primary) !important;
  text-decoration: none !important;
  transition: color .15s !important;
}
.breadcrumb a:hover { color: var(--color-accent-dark) !important; }
.breadcrumb li:last-child,
.breadcrumb .is-active {
  color: var(--color-text-secondary) !important;
  font-weight: 500 !important;
}

.node__links,
article.node > .links,
.field--type-node-link,
.node--type-announcement .links.inline {
  display: none !important;
}

/* =====================================================
   ВИПРАВЛЕННЯ ВІДСТУПІВ НА СТОРІНЦІ НОДИ
   ===================================================== */
/* highlighted — ховаємо ТІЛЬКИ коли справді порожній */
.highlighted:empty { display: none !important; }
.highlighted:not(:has(> *:not(:empty))) { display: none !important; }

/* ──────────────────────────────────────────────────────
   PAGE TITLE BLOCK — стратегія:
   Наші шаблони самі рендерять h1 (node--news--full,
   views-view--news--page-1 etc), тому зовнішній блок
   заголовку ховаємо на всіх сторінках крім тих де
   контент-шаблону ще немає.

   Головна    → "Welcome!" в highlighted → ховаємо
   Node pages → дублює h1 з node-template → ховаємо
   ────────────────────────────────────────────────────── */

/* 1. Завжди ховаємо block-page-title (templates самі дають h1) */
#block-school-gov-page-title,
.block-page-title-block {
  display: none !important;
}

/* 2. Frontpage highlighted (Welcome!) — hide via :has()
   body НЕ має .path-frontpage класу, тому використовуємо структурний селектор */
.highlighted:has(> .container .block-page-title-block:only-child),
.highlighted:has(> .container:only-child:not(:has(.messages))) {
  display: none !important;
}

/* Fallback: якщо після фіксу html.html.twig з'явиться path-frontpage */
.path-frontpage .highlighted {
  display: none !important;
}

/* 3. Якщо в майбутньому потрібен заголовок на Views-сторінці
   (наприклад /news без breadcrumb) — розкоментуй:
.path-news .block-page-title-block { display: block !important; }
*/

/* ── Системні повідомлення (errors/warnings) — залишаємо видимими ── */
[data-drupal-messages-fallback]:empty,
.messages-list:empty { display: none !important; margin: 0 !important; padding: 0 !important; }
.layout-main .container + .container { margin-top: 0 !important; padding-top: 0 !important; }

/* =====================================================
   ПОВНА СТОРІНКА НОВИНИ — node--news--full.html.twig
   ===================================================== */
article.node--full-view {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  margin: 0 0 var(--sp-xl); /* ← прибрано margin-top: зайвий простір */
}

/* ── Node-page: прибираємо порожній простір зверху ──
   Проблема: highlighted (hidden) + block padding = ~60px порожнечі.
   Коли авторизований — tabs заповнюють цей простір автоматично.
   Коли ні — visible gap. */

/* 1. highlighted на node-сторінках: collapse */
main:has(article.node--full-view) .highlighted {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

/* 2. Головний блок контенту: прибираємо top padding на node pages
   (search.css додає padding: var(--sp-lg) 0 до .block-system-main-block) */
main:has(article.node--full-view) #block-school-gov-content,
main:has(article.node--full-view) .block-system-main-block {
  padding-top: 0 !important;
}

/* 3. Контейнер layout-inner: прибираємо зайвий відступ */
main:has(article.node--full-view) .layout-main > .container {
  padding-top: var(--sp-sm) !important;
}

/* 4. Стара правило яка теж додавала margin-top — обнуляємо для full-view */
main:has(article.node--full-view) .layout-inner--no-sidebar .layout__content article.node {
  margin-top: 0 !important;
  padding-right:15px;
  padding-left:15px;
}

/* ── Шапка: заголовок + мета ── */
.node-full__header {
  padding: var(--sp-xl) var(--sp-xl) var(--sp-md);
  border-bottom: 1px solid var(--color-border);
}

/* ── h1 заголовок ── */
.node-full__title {
  font-family: var(--font-heading) !important;
  font-size: 1.9rem !important;
  font-weight: 800 !important;
  color: var(--color-primary-dark) !important;
  line-height: 1.2 !important;
  margin: 0 0 var(--sp-md) 0 !important;
  padding: 0 !important;
}

/* ── Мета: автор + дата ── */
.node-full__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
}
.node-full__author,
.node-full__date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.node-full__author i,
.node-full__date i { color: var(--color-accent); font-size: 13px; }

/* ── Основний вміст ── */
.node-full__content {
  padding: var(--sp-lg) var(--sp-xl);
}

/* ── Зображення ── */
.node-full__image {
  margin-bottom: var(--sp-lg);
  border-radius: var(--radius-md);
  overflow: hidden;
  line-height: 0;
}
.node-full__image img {
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: cover;
  display: block;
}
.node-full__image .field--name-field-image,
.node-full__image a { display: block; line-height: 0; }

/* ── Тіло тексту ── */
.node-full__body {
  font-size: var(--fs-base);
  line-height: 1.8;
  color: var(--color-text);
}
.node-full__body p { margin-bottom: var(--sp-md); }
.node-full__body h2, .node-full__body h3 {
  font-family: var(--font-heading);
  color: var(--color-primary-dark);
  margin: var(--sp-lg) 0 var(--sp-sm);
}
.node-full__body a { color: var(--color-primary); text-decoration: underline; }
.node-full__body blockquote {
  border-left: 4px solid var(--color-accent);
  padding-left: var(--sp-lg);
  color: var(--color-text-secondary);
  font-style: italic;
  margin: var(--sp-lg) 0;
}
.node-full__body span { background-color: transparent !important; font-family: inherit !important; }

/* ── Теги/мітки ── */
.node-full__tags {
  margin-top: var(--sp-lg);
  padding-top: var(--sp-md);
  border-top: 1px solid var(--color-border);
}


/* =====================================================
   КОНТЕНТ НОВИНИ / СТОРІНКИ — відступи між абзацами
   Проблема: редактор вставляє <br>&nbsp; між абзацами
   → великі порожні рядки.
   Рішення: обнуляємо зайвий margin + ховаємо порожні p
   ===================================================== */

/* Зменшені відступи між абзацами в тілі матеріалу */
.node-full__body p,
.field--name-body p,
.field--name-field-body p,
.text-formatted p {
  margin-top: 0 !important;
  margin-bottom: 0.35rem !important;
  line-height: 1.65 !important;
}

/* Порожні параграфи (тільки &nbsp; або пробіли) — ховаємо */
.node-full__body p:empty,
.field--name-body p:empty,
.text-formatted p:empty {
  display: none !important;
  margin: 0 !important;
}

/* Параграфи що мають тільки <br> або &nbsp; — НЕ ховаємо,
   бо :has() не бачить текстових вузлів і ламає звичайні абзаци.
   Достатньо ховати абсолютно порожні параграфи (вище). */

/* Останній параграф без зайвого відступу */
.node-full__body p:last-child,
.field--name-body p:last-child {
  margin-bottom: 0 !important;
}

/* text-align-justify для всього тіла */
.node-full__body,
.field--name-body,
.field--name-field-body {
  text-align: justify;
  hyphens: auto;
}

/* ── Admin tabs на node сторінці ── */
main:has(article.node--full-view) ul.tabs--primary,
main:has(article.node--full-view) .block-local-tasks-block ul {
  background: var(--color-off-white);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  padding: var(--sp-sm) var(--sp-md) !important;
  margin: 0 0 var(--sp-sm) 0 !important;
}

/* ── Кнопки редагування/видалення в шаблоні ноди ── */
.node-full__ops {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-sm) var(--sp-lg);
  background: var(--color-off-white);
  border-bottom: 1px solid var(--color-border);
}
.node-full__op-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 7px 16px !important;
  border-radius: var(--radius-md) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 600 !important;
  font-family: var(--font-heading) !important;
  text-decoration: none !important;
  transition: background .15s, transform .15s !important;
  border: none !important;
  cursor: pointer !important;
}
.node-full__op-btn--edit {
  background: var(--color-primary) !important;
  color: #fff !important;
}
.node-full__op-btn--edit:hover {
  background: var(--color-primary-dark) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}
.node-full__op-btn--delete {
  background: #fde8e8 !important;
  color: #c0392b !important;
  border: 1px solid #f5c6cb !important;
}
.node-full__op-btn--delete:hover {
  background: #c0392b !important;
  color: #fff !important;
}

/* Мобільна адаптація */
@media (max-width: 768px) {
  .node-full__header { padding: var(--sp-md); }
  .node-full__content { padding: var(--sp-md); }
  .node-full__title { font-size: 1.4rem !important; }
  .node-full__image { margin-bottom: var(--sp-md); border-radius: var(--radius-sm); }
}


/* =====================================================
   ГОЛОВНА — приховуємо системний блок контенту
   ===================================================== */
/* frontpage hidden - no path class */
/* ВИДАЛЕНО: осиротіле правило без селектора (висяче display:none) */

/* =====================================================
   ГОЛОВНА — відступи між секціями
   Проблема: .page-section { padding: var(--sp-2xl) 0 }
   Дві сусідні секції → gap = 2 × sp-2xl ≈ 96px
   Виправлення: зменшуємо до sp-lg (≈24px) між секціями
   ===================================================== */
section.page-section,
section.page-section--alt {
  padding-top: var(--sp-lg) !important;
  padding-bottom: var(--sp-lg) !important;
}

/* Перша секція після hero/statistics — трохи більше відступу зверху */
section.region-statistics + section.page-section,
.region-statistics + .page-section {
  padding-top: var(--sp-xl) !important;
}

/* =====================================================
   БЛОК НОВИН НА ГОЛОВНІЙ
   Block ID: #block-school-gov-views-block-news-block-1
   ===================================================== */
#block-school-gov-views-block-news-block-1 .views-view-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--sp-lg) !important;
  width: 100% !important;
  float: none !important;
  overflow: visible !important;
}
#block-school-gov-views-block-news-block-1 .views-view-grid .views-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: var(--sp-lg) !important;
  width: 100% !important;
  float: none !important;
  clear: none !important;
}
#block-school-gov-views-block-news-block-1 .views-view-grid .views-row::before,
#block-school-gov-views-block-news-block-1 .views-view-grid .views-row::after {
  display: none !important;
  content: none !important;
}
#block-school-gov-views-block-news-block-1 .views-view-grid .views-col {
  flex: 1 1 250px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: auto !important;
  float: none !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
#block-school-gov-views-block-news-block-1 .views-view-grid .views-col article {
  width: 100% !important;
  height: 100%;
}
@media (max-width: 480px) {
  #block-school-gov-views-block-news-block-1 .views-view-grid .views-row {
    flex-direction: column !important;
  }
  #block-school-gov-views-block-news-block-1 .views-view-grid .views-col {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}


/* ============================================================
   КАРТКА НОВИНИ — .news-card
   Template: node--news--teaser.html.twig
   Лейаут: зображення ліворуч, текст праворуч (flex-row)
   ============================================================ */

/* ── Заголовок сторінки /news (Views page header або block) ── */
body.path-news .view-header h2,
body.path-news .view-header h1,
body.path-news #block-school-gov-page-title h1,
body.path-news h1.page-title {
  font-size: 1.9rem !important;
  font-weight: 800 !important;
  color: var(--color-primary-dark) !important;
  margin: 0 0 24px !important;
  padding-bottom: 12px !important;
  border-bottom: 3px solid var(--color-accent) !important;
  display: block !important;
  line-height: 1.2 !important;
}

/* Views page title (якщо заголовок виводиться через Views) */
body.path-news .view-id-news .view-header {
  margin-bottom: 24px;
}

/* ── Список новин (сторінка /news) ── */
.news-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}
.news-list__item { width: 100%; }

/* ── Сітка новин (блок на головній) ──
   Динамічна кількість колонок через CSS :has()
   ──────────────────────────────────────────── */

/* Базово: auto-fit (fallback для браузерів без :has()) */
.news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--sp-lg);
  width: 100%;
}

/* 1 новина → 1 колонка */
.news-grid:has(.news-grid__item:only-child) {
  grid-template-columns: 1fr !important;
}

/* 2 новини → 2 колонки */
.news-grid:has(.news-grid__item:nth-child(2):last-child) {
  grid-template-columns: repeat(2, 1fr) !important;
}

/* 3 новини → 3 колонки */
.news-grid:has(.news-grid__item:nth-child(3):last-child) {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* ── 1 новина → горизонтальна картка (як на /news) ──
   Скасовуємо вертикальні overrides від .news-grid .news-card
   і повертаємо базовий стиль .news-card з width 420px ── */

.news-grid:has(.news-grid__item:only-child) .news-card {
  flex-direction: row !important;  /* скасовує column від .news-grid */
}

/* Скасовуємо вертикальні overrides → повертаємо горизонтальний стиль */
.news-grid:has(.news-grid__item:only-child) .news-card__image {
  flex: 0 0 420px !important;       /* фото ліворуч 420px */
  width: 420px !important;
  aspect-ratio: unset !important;   /* прибираємо 16/10 */
  min-height: 220px !important;     /* мінімальна висота картки */
}

/* field/a/img — вже правильні з базового .news-card__image
   (position:absolute inset:0, img object-fit:cover) */

.news-grid:has(.news-grid__item:only-child) .news-card__excerpt {
  -webkit-line-clamp: 5 !important; /* більше рядків для тексту */
}

/* ── Планшет: max 2 колонки ── */
@media (max-width: 1024px) {
  .news-grid,
  .news-grid:has(.news-grid__item:nth-child(3):last-child) {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* 1 новина на планшеті — вертикальна */
  .news-grid:has(.news-grid__item:only-child) .news-card {
    flex-direction: column !important;
    min-height: 0 !important;
  }
  .news-grid:has(.news-grid__item:only-child) .news-card__image {
    flex: none !important;
    width: 100% !important;
    aspect-ratio: 16/10 !important;
    align-self: auto !important;
  }
}
/* ── Мобільний: 1 колонка ── */
@media (max-width: 600px) {
  .news-grid,
  .news-grid:has(.news-grid__item:nth-child(2):last-child),
  .news-grid:has(.news-grid__item:nth-child(3):last-child) {
    grid-template-columns: 1fr !important;
  }
}

/* ── Картка ── */
.news-card {
  display: flex;
  flex-direction: row;
  background: var(--color-white);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(27,61,143,.08), 0 1px 2px rgba(0,0,0,.05);
  border: 1px solid var(--color-border);
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
  position: relative;
}
.news-card:hover {
  box-shadow: 0 10px 30px rgba(27,61,143,.14), 0 3px 8px rgba(0,0,0,.08);
  transform: translateY(-3px);
  border-color: var(--color-primary-light);
}

/* ── Зображення — ліва колонка ── */
.news-card__image {
  flex: 0 0 280px;
  width: 280px;
  overflow: hidden;
  position: relative;
  min-height: 160px;
}

/* Ланцюжок: field → a → img — всі 100% */
.news-card__image .field--name-field-image,
.news-card__image .field,
.news-card__image .field-content {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
.news-card__image a {
  display: block;
  width: 100%;
  height: 100%;
  line-height: 0;
}
.news-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .5s ease;
}
.news-card:hover .news-card__image img { transform: scale(1.06); }

/* На головній сторінці — картка вертикальна (для сітки) */
.news-grid .news-card {
  flex-direction: column;
}
.news-grid .news-card__image {
  flex: none;
  width: 100%;
  min-height: 0;
  aspect-ratio: 16/10;
  position: relative;
}
.news-grid .news-card__image .field--name-field-image,
.news-grid .news-card__image .field,
.news-grid .news-card__image .field-content {
  position: absolute;
  inset: 0;
  height: 100%;
}

/* ── Тіло картки — права колонка ── */
.news-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
}

/* ── Заголовок ── */
.news-card__title {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-primary-dark);
  margin: 0;
  padding: 20px 24px 6px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color .15s;
}
.news-card__title a:hover { color: var(--color-primary); }

/* ── Мета: автор + дата ── */
.news-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 8px 24px 0;
  font-size: 0.8rem;
  color: var(--color-text-secondary);
}
.news-card__author,
.news-card__date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.news-card__author i,
.news-card__date i {
  color: var(--color-accent);
  font-size: 11px;
}

/* ── Уривок тексту ── */
.news-card__excerpt {
  flex: 1;
  padding: 10px 24px 0;
}
.news-card__excerpt p,
.news-card__excerpt .field--name-body p,
.news-card__excerpt .text-formatted p {
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  line-height: 1.65;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Нижня частина: кнопка ── */
.news-card__footer {
  margin-top: auto;
  padding: 14px 24px 22px;
  border-top: 1px solid var(--color-border);
  display: flex;
  justify-content: flex-end;
}

/* ── Кнопка "Детальніше" ── */
.news-card__more {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 9px 22px !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border-radius: 7px !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  font-family: var(--font-heading) !important;
  text-decoration: none !important;
  letter-spacing: .03em !important;
  transition: background .15s ease, transform .15s ease !important;
}
.news-card__more:hover {
  background: var(--color-primary-dark) !important;
  color: #fff !important;
  transform: translateX(3px) !important;
}

/* ── Заголовок h1 сторінки /news ── */
body.path-news h1.page-title,
body.path-news #block-school-gov-page-title h1 {
  font-size: 1.9rem !important;
  font-weight: 800 !important;
  color: var(--color-primary-dark) !important;
  margin-bottom: 24px !important;
  padding-bottom: 10px !important;
  border-bottom: 3px solid var(--color-accent) !important;
  display: inline-block !important;
  line-height: 1.2 !important;
}

/* ── Адаптація ── */
@media (max-width: 768px) {
  .news-card__image { flex: 0 0 200px; width: 200px; }
}

@media (max-width: 560px) {
  .news-card {
    flex-direction: column;
  }
  .news-card__image {
    flex: none;
    width: 100%;
    min-height: 0;
    height: 200px;
    position: relative;
  }
  .news-card__image .field--name-field-image,
  .news-card__image .field,
  .news-card__image .field-content {
    position: absolute;
    inset: 0;
    height: 100%;
  }
  .news-card__footer { justify-content: flex-start; }
}

/* =====================================================
   МОБІЛЬНА АДАПТАЦІЯ — загальна
   ===================================================== */
@media (max-width: 768px) {
  .node__content { padding: var(--sp-md); }
  .node__content .field--field-image { margin: 0 0 var(--sp-md); border-radius: var(--radius-sm); }
  .layout-inner--no-sidebar .node__title,
  h1.page-title { font-size: 1.4rem !important; margin: var(--sp-md) 0 var(--sp-sm) !important; }
}

/* =====================================================
   EMPTY STATE ОГОЛОШЕНЬ — порожній блок з дзвоником
   ===================================================== */
.announcements-empty {
  display: flex;
  align-items: center;
  gap: var(--sp-lg);
  padding: var(--sp-2xl) var(--sp-xl);
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
  border-radius: var(--radius-lg);
  border: 2px dashed rgba(27,61,143,.2);
  min-height: 140px;
}

.announcements-empty__icon {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  background: var(--color-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.8rem;
  box-shadow: 0 4px 16px rgba(27,61,143,.25);
}

/* Пульсуюча анімація на іконці */
.announcements-empty__icon i {
  animation: bell-pulse 2.5s ease-in-out infinite;
}

@keyframes bell-pulse {
  0%, 100% { transform: rotate(0deg); }
  10%       { transform: rotate(-15deg); }
  20%       { transform: rotate(15deg); }
  30%       { transform: rotate(-10deg); }
  40%       { transform: rotate(10deg); }
  50%       { transform: rotate(0deg); }
}

.announcements-empty__text {
  flex: 1;
  min-width: 0;
}

.announcements-empty__title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-primary-dark);
  margin: 0 0 6px !important;
}

.announcements-empty__sub {
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  margin: 0 !important;
  line-height: 1.5;
}

/* Планшет/мобільний: вертикально */
@media (max-width: 600px) {
  .announcements-empty {
    flex-direction: column;
    text-align: center;
    padding: var(--sp-xl) var(--sp-md);
  }
}

/* Announcements grid адаптація */
@media (max-width: 1024px) {
  .announcements-grid,
  .announcements-grid:has(.announcements-grid__item:nth-child(3):last-child) {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .announcements-grid,
  .announcements-grid:has(.announcements-grid__item:nth-child(2):last-child),
  .announcements-grid:has(.announcements-grid__item:nth-child(3):last-child) {
    grid-template-columns: 1fr !important;
  }
}

/* =====================================================
   MEDIA EMBED — ховаємо мітку "Зображення" та caption
   При вставці через CKEditor media library
   ===================================================== */

/* =====================================================
   MEDIA EMBED — ховаємо мітку "Зображення"
   Всі можливі варіанти рендерингу Drupal media
   ===================================================== */
.media--view-mode-embedded .media__label,
.media--view-mode-embedded .field--name-name,
.media--view-mode-embedded .views-field-name,
.media--type-image .media__label,
figure.media > figcaption:not([class]),
.media figcaption,
/* Додаткові варіанти — підпис знизу/зверху */
.node-full__body .media + p:empty,
.field--name-name .field__label,
.field--name-name .field__item,
.field--name-name,
.media .field--name-name,
/* Клас що Drupal генерує для назви медіа */
.media__label,
.media-library-item__name,
/* Якщо рендериться як звичайне поле з label */
.node-full__body .field--name-name,
.node-full__body .media-caption,
/* caption під/над зображенням */
figure.media figcaption,
.media--type-image .media-caption,
.field--type-image .field__label,
/* ✅ ПІДТВЕРДЖЕНО devtools: саме цей селектор рендерить "Зображення" */
.field--field-media-image .field__label,
.field--field-media-image > .field__label { display: none !important; }

/* Медіа-зображення: адаптивне + курсор збільшення */
.media--view-mode-embedded img,
.media--type-image img,
figure.media img,
.node-full__body .media img,
.node-full__body figure img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: var(--radius-md);
  cursor: zoom-in;
  transition: opacity .2s ease;
}
.node-full__body .media img:hover,
.node-full__body figure img:hover {
  opacity: .92;
}

/* Центроване медіа */
.media--aligned-center,
figure.media[data-align="center"] {
  display: block !important;
  text-align: center !important;
  margin: var(--sp-lg) auto !important;
}

/* Медіа в body — відступи */
.node-full__body .media,
.node-full__body figure.media {
  margin: var(--sp-lg) 0 !important;
}

/* =====================================================
   LIGHTBOX — модальне вікно для збільшення фото
   ===================================================== */
.sg-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.92);
  display: none;           /* ← прихований за замовчуванням */
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .25s ease;
  cursor: zoom-out;
}
.sg-lightbox.is-visible {
  display: flex;           /* ← показуємо тільки коли активний */
  opacity: 1;
}
.sg-lightbox__img {
  max-width: 92vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: var(--radius-md);
  box-shadow: 0 8px 48px rgba(0,0,0,.6);
  transform: scale(.94);
  transition: transform .25s ease;
  cursor: default;
}
.sg-lightbox.is-visible .sg-lightbox__img {
  transform: scale(1);
}
.sg-lightbox__close {
  position: absolute;
  top: 20px;
  right: 24px;
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,.15);
  border: none;
  border-radius: 50%;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
  line-height: 1;
}
.sg-lightbox__close:hover {
  background: rgba(255,255,255,.28);
}


/* =====================================================
   STAFF FULL — повна сторінка співробітника
   ===================================================== */
.staff-full {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: var(--sp-2xl);
  align-items: start;
  padding: var(--sp-xl);
}

/* ── Фото ── */
.staff-full__photo {
  width: 200px;
  height: 200px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 3px solid var(--color-border);
  box-shadow: var(--shadow-md);
  background: var(--color-off-white);
}
.staff-full__photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: top center !important;
}
.staff-full__photo--empty {
  width: 200px;
  height: 200px;
  border-radius: var(--radius-lg);
  border: 3px solid var(--color-border);
  background: var(--color-off-white);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-light);
  font-size: 4rem;
}

/* ── Інформація ── */
.staff-full__name {
  font-size: var(--fs-2xl) !important;
  font-weight: 800;
  color: var(--color-primary-dark);
  margin-bottom: var(--sp-sm) !important;
  line-height: 1.2;
}
.staff-full__position {
  display: flex;
  align-items: center;
  gap: var(--sp-sm);
  font-size: var(--fs-md);
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: var(--sp-lg);
  padding-bottom: var(--sp-md);
  border-bottom: 2px solid var(--color-accent);
}
.staff-full__position i {
  color: var(--color-accent);
}
/* Ховаємо label поля посади */
.staff-full__position .field__label { display: none !important; }
.staff-full__position .field__item { display: inline; }

/* ── Деталі (dl список) ── */
.staff-full__details {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: var(--sp-sm) var(--sp-lg);
  align-items: baseline;
  margin: 0;
}
.staff-full__details dt {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.staff-full__details dd {
  font-size: var(--fs-base);
  color: var(--color-text);
  margin: 0;
}
/* Ховаємо label полів всередині dd */
.staff-full__details .field__label { display: none !important; }

/* ── Мобільна адаптація ── */
@media (max-width: 768px) {
  .staff-full {
    grid-template-columns: 1fr;
    gap: var(--sp-lg);
    padding: var(--sp-md);
  }
  .staff-full__photo,
  .staff-full__photo--empty {
    width: 140px;
    height: 140px;
    margin: 0 auto;
  }
  .staff-full__photo-col {
    display: flex;
    justify-content: center;
  }
  .staff-full__name {
    font-size: var(--fs-xl) !important;
    text-align: center;
  }
  .staff-full__position {
    justify-content: center;
  }
  .staff-full__details {
    grid-template-columns: 1fr;
    gap: var(--sp-xs) 0;
  }
  .staff-full__details dt {
    margin-top: var(--sp-sm);
    font-size: var(--fs-xs);
  }
}

/* ============================================================
   СТИЛІ ДЛЯ ПЛАГІНУ STYLE (CKEditor 5)
   Додати в кінець css/components.css і css/editor.css
   ============================================================ */

/* ── РОЗМІРИ ШРИФТУ ─────────────────────────────────────── */
.text-tiny   { font-size: 0.75rem !important; line-height: 1.6; }
.text-small  { font-size: 0.875rem !important; line-height: 1.65; }
.text-normal { font-size: 1rem !important; line-height: 1.75; }
.text-large  { font-size: 1.2rem !important; line-height: 1.7; }
.text-huge   { font-size: 1.5rem !important; line-height: 1.5; font-weight: 600; }

/* ── КОЛЬОРИ ТЕКСТУ ─────────────────────────────────────── */
.text-blue       { color: #1B3D8F !important; }
.text-blue-light { color: #2E57C5 !important; }
.text-yellow     { color: #D98D00 !important; }
.text-green      { color: #2E7D32 !important; }
.text-red        { color: #c0392b !important; }
.text-gray       { color: #667788 !important; }
.text-white      { color: #FFFFFF !important; }
.text-dark       { color: #1a2340 !important; }

/* ── КОЛЬОРИ ФОНУ ───────────────────────────────────────── */
.bg-blue-light   { background-color: #EEF1F9 !important; padding: .2em .4em; border-radius: 4px; }
.bg-yellow-light { background-color: #FFF8E7 !important; padding: .2em .4em; border-radius: 4px; }
.bg-red-light    { background-color: #FEF0F0 !important; padding: .2em .4em; border-radius: 4px; }
.bg-green-light  { background-color: #EAF3DE !important; padding: .2em .4em; border-radius: 4px; }
.bg-blue         { background-color: #1B3D8F !important; color: #fff !important; padding: .2em .4em; border-radius: 4px; }
.bg-yellow       { background-color: #F5A800 !important; color: #122A6B !important; padding: .2em .4em; border-radius: 4px; }
.bg-green        { background-color: #4A7C3F !important; color: #fff !important; padding: .2em .4em; border-radius: 4px; }
.bg-red          { background-color: #c0392b !important; color: #fff !important; padding: .2em .4em; border-radius: 4px; }

/* ── БЛОКИ (paragraph) ──────────────────────────────────── */
p.block-highlight {
  background: #EEF1F9;
  border-left: 5px solid #1B3D8F;
  border-radius: 0 8px 8px 0;
  padding: .9rem 1.25rem !important;
  margin: .8rem 0 !important;
}
p.block-important {
  background: #FFF8E7;
  border-left: 5px solid #F5A800;
  border-radius: 0 8px 8px 0;
  padding: .9rem 1.25rem !important;
  margin: .8rem 0 !important;
}
p.block-important::before {
  content: '★ Важливо! ';
  font-weight: 700;
  color: #D98D00;
}
p.block-warning {
  background: #FEF0F0;
  border-left: 5px solid #c0392b;
  border-radius: 0 8px 8px 0;
  padding: .9rem 1.25rem !important;
  margin: .8rem 0 !important;
}
p.block-warning::before {
  content: '⚠ Увага! ';
  font-weight: 700;
  color: #c0392b;
}
p.block-success {
  background: #EAF3DE;
  border-left: 5px solid #4A7C3F;
  border-radius: 0 8px 8px 0;
  padding: .9rem 1.25rem !important;
  margin: .8rem 0 !important;
}
p.block-success::before {
  content: '✓ ';
  font-weight: 700;
  color: #4A7C3F;
}

/* ── КНОПКИ-ПОСИЛАННЯ ───────────────────────────────────── */
a.btn-primary {
  display: inline-block;
  background: #1B3D8F;
  color: #fff !important;
  font-weight: 600;
  padding: .5rem 1.4rem;
  border-radius: 6px;
  text-decoration: none !important;
  margin: .3rem 0;
  transition: background .2s;
}
a.btn-primary:hover { background: #2E57C5; }

a.btn-accent {
  display: inline-block;
  background: #F5A800;
  color: #122A6B !important;
  font-weight: 700;
  padding: .5rem 1.4rem;
  border-radius: 6px;
  text-decoration: none !important;
  margin: .3rem 0;
}
a.btn-accent:hover { background: #D98D00; }

/* ── ТАБЛИЦІ ────────────────────────────────────────────── */
table.table-school th {
  background: #1B3D8F;
  color: #fff;
  font-weight: 600;
  padding: .55rem 1rem;
}
table.table-school td {
  padding: .5rem 1rem;
  border-bottom: 1px solid rgba(27,61,143,.1);
}
table.table-school tr:nth-child(even) td {
  background: rgba(27,61,143,.04);
}
table.table-minimal th {
  background: #EEF1F9;
  color: #1B3D8F;
  font-weight: 600;
  padding: .5rem 1rem;
}
table.table-minimal td {
  padding: .45rem 1rem;
  border: 1px solid rgba(27,61,143,.15);
}

/* ====================================================
   HISTORY PAGE — STAT CARDS + TIMELINE
   Додати в кінець: /css/components.css
   ==================================================== */

/* ---- Картки статистики ---- */
.history-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 2rem 0;
  list-style: none !important;
  padding: 0 !important;
}
.history-stat {
  background: var(--color-primary-dark);
  border-radius: 10px;
  padding: 1.5rem 1rem;
  text-align: center;
  color: #fff;
  list-style: none !important;
}
.history-stat__num {
  font-family: var(--font-heading);
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--color-accent);
  display: block;
  line-height: 1.1;
  margin-bottom: .35rem;
}
.history-stat__label {
  font-size: .82rem;
  color: rgba(255,255,255,.82);
  line-height: 1.4;
  display: block;
}

/* ---- Таймлайн ---- */
.history-timeline {
  list-style: none !important;
  padding: 0 !important;
  margin: 1.75rem 0 !important;
  position: relative;
}
.history-timeline::before {
  content: '';
  position: absolute;
  left: 58px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(
    to bottom,
    var(--color-primary) 0%,
    var(--color-accent) 50%,
    var(--color-green) 100%
  );
  border-radius: 2px;
}
.history-tl-item {
  display: flex !important;
  align-items: flex-start;
  margin-bottom: 1.1rem !important;
  list-style: none !important;
  position: relative;
}
.history-tl-item:last-child { margin-bottom: 0 !important; }

.history-tl-year {
  flex: 0 0 58px;
  font-family: var(--font-heading);
  font-size: .72rem;
  font-weight: 700;
  color: var(--color-primary);
  text-align: right;
  padding-right: 20px;
  padding-top: .1rem;
  line-height: 1.3;
  position: relative;
  z-index: 1;
  display: inline-block;
}
.history-tl-year::after {
  content: '';
  position: absolute;
  right: -7px;
  top: 3px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #fff;
  border: 2.5px solid var(--color-primary);
  z-index: 2;
}
.history-tl-text {
  flex: 1;
  padding-left: 18px;
  font-size: .895rem;
  line-height: 1.7;
  color: #2d2d2d;
  display: inline-block;
}

/* ---- Мобільна адаптація ---- */
@media (max-width: 600px) {
  .history-stats {
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
  }
  .history-stat__num { font-size: 1.6rem; }
  .history-stat__label { font-size: .72rem; }

  .history-timeline::before { left: 40px; }
  .history-tl-year { flex: 0 0 40px; font-size: .65rem; padding-right: 14px; }
  .history-tl-year::after { right: -5px; width: 10px; height: 10px; }
  .history-tl-text { font-size: .84rem; padding-left: 14px; }
}
@media (max-width: 360px) {
  .history-stats { grid-template-columns: 1fr; }
}

/* ====================================================
   HISTORY PAGE — CSS БЕЗ КЛАСІВ НА TABLE/TD
   Ідентифікація таблиць через :has() selector
   Додати в кінець: /css/components.css
   ==================================================== */

/* ============================================================
   STATS TABLE
   Визначення: td, де першим дочірнім елементом є <strong>
   за яким іде <br> (шаблон: <strong>115</strong><br>підпис)
   ============================================================ */
.node-full__body table:has(td > strong:first-child + br) {
  border-collapse: separate !important;
  border-spacing: .75rem !important;
  margin: 1.5rem -.75rem 2rem !important;
  width: calc(100% + 1.5rem) !important;
  table-layout: fixed !important;
}
.node-full__body table:has(td > strong:first-child + br) td {
  background: var(--color-primary-dark) !important;
  border-radius: 10px !important;
  padding: 1.5rem 1rem !important;
  text-align: center !important;
  color: #fff !important;
  border-bottom: none !important;
  vertical-align: middle !important;
}
/* Велике число */
.node-full__body table:has(td > strong:first-child + br) td strong {
  font-family: var(--font-heading) !important;
  font-size: 2.25rem !important;
  font-weight: 700 !important;
  color: var(--color-accent) !important;
  display: block !important;
  line-height: 1.1 !important;
  margin-bottom: .3rem !important;
}

/* ============================================================
   TIMELINE TABLES
   Визначення: таблиці БЕЗ шаблону stats (немає strong+br в td)
   ============================================================ */
.node-full__body table:not(:has(td > strong:first-child + br)) {
  border-collapse: collapse !important;
  margin: 1.25rem 0 1.75rem !important;
}

/* Колонка року (перший td) */
.node-full__body table:not(:has(td > strong:first-child + br)) td:first-child {
  width: 62px !important;
  min-width: 62px !important;
  max-width: 62px !important;
  font-family: var(--font-heading) !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  text-align: right !important;
  padding: .55rem .9rem .55rem 0 !important;
  vertical-align: top !important;
  white-space: nowrap !important;
  border-right: 2px solid var(--color-primary-light) !important;
  border-bottom: none !important;
  position: relative !important;
}

/* Крапка-маркер на вертикальній лінії */
.node-full__body table:not(:has(td > strong:first-child + br)) td:first-child::after {
  content: '' !important;
  position: absolute !important;
  right: -6px !important;
  top: 10px !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 2px solid var(--color-primary) !important;
  z-index: 1 !important;
}

/* Колонка тексту (другий td) */
.node-full__body table:not(:has(td > strong:first-child + br)) td:last-child {
  padding: .55rem 0 .55rem 1.1rem !important;
  font-size: .9rem !important;
  line-height: 1.7 !important;
  vertical-align: top !important;
  border-bottom: none !important;
}

/* Тонка лінія між рядками — на td:last-child */
.node-full__body table:not(:has(td > strong:first-child + br)) tr:not(:last-child) td:last-child {
  border-bottom: 1px solid rgba(27,61,143,.12) !important;
}

/* ============================================================
   МОБІЛЬНА АДАПТАЦІЯ
   ============================================================ */
@media (max-width: 600px) {
  /* Stats */
  .node-full__body table:has(td > strong:first-child + br) {
    border-spacing: .4rem !important;
    margin: 1.5rem -.4rem 1.5rem !important;
    width: calc(100% + .8rem) !important;
  }
  .node-full__body table:has(td > strong:first-child + br) td {
    padding: 1rem .6rem !important;
  }
  .node-full__body table:has(td > strong:first-child + br) td strong {
    font-size: 1.6rem !important;
  }

  /* Timeline */
  .node-full__body table:not(:has(td > strong:first-child + br)) td:first-child {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    font-size: .65rem !important;
    padding-right: .7rem !important;
  }
  .node-full__body table:not(:has(td > strong:first-child + br)) td:last-child {
    font-size: .84rem !important;
    padding-left: .85rem !important;
  }
}
@media (max-width: 380px) {
  /* Stats у стовпець */
  .node-full__body table:has(td > strong:first-child + br),
  .node-full__body table:has(td > strong:first-child + br) tbody,
  .node-full__body table:has(td > strong:first-child + br) tr,
  .node-full__body table:has(td > strong:first-child + br) td {
    display: block !important;
    width: 100% !important;
  }
  .node-full__body table:has(td > strong:first-child + br) {
    margin: 1rem 0 !important;
  }
  .node-full__body table:has(td > strong:first-child + br) td {
    margin-bottom: .5rem !important;
    border-radius: 8px !important;
  }
}

/* ====================================================
   BLOCK: Інформація про школу — ВИПРАВЛЕНА версія
   Селектор через ID блоку (з devtools)
   Замінити попередні school-info правила в components.css
   ==================================================== */

/* --- Текстовий параграф --- */
#block-school-gov-informaciyaproshkolu .field--body > p {
  font-size: .935rem !important;
  line-height: 1.8 !important;
  margin-bottom: 1.25rem !important;
  text-align: left !important;
}

/* --- Stats: table з 4 колонками в рядок --- */
#block-school-gov-informaciyaproshkolu .field--body table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: .65rem !important;
  margin: 0 -.65rem !important;
  width: calc(100% + 1.3rem) !important;
  table-layout: fixed !important;
}

#block-school-gov-informaciyaproshkolu .field--body table td {
  background: var(--color-primary-dark) !important;
  border-radius: 10px !important;
  padding: 1.1rem 1rem !important;
  text-align: center !important;
  color: #fff !important;
  border-bottom: none !important;
  vertical-align: middle !important;
}

/* Остання клітинка — зелена (3 «Старший учитель») */
#block-school-gov-informaciyaproshkolu .field--body table td:last-child {
  background: var(--color-green) !important;
}

/* Велике число */
#block-school-gov-informaciyaproshkolu .field--body table td strong {
  font-family: var(--font-heading) !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--color-accent) !important;
  display: block !important;
  line-height: 1.1 !important;
  margin-bottom: .3rem !important;
}

/* Підпис під числом */
#block-school-gov-informaciyaproshkolu .field--body table td br + * {
  font-size: .8rem !important;
  color: rgba(255,255,255,.85) !important;
  line-height: 1.35 !important;
}

/* --- Мобільна адаптація --- */
@media (max-width: 640px) {
  #block-school-gov-informaciyaproshkolu .field--body table {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: .5rem !important;
    border-spacing: 0 !important;
    margin: 0 !important;
    width: 100% !important;
  }
  #block-school-gov-informaciyaproshkolu .field--body table tbody,
  #block-school-gov-informaciyaproshkolu .field--body table tr {
    display: contents !important;
  }
  #block-school-gov-informaciyaproshkolu .field--body table td {
    padding: .9rem .75rem !important;
  }
  #block-school-gov-informaciyaproshkolu .field--body table td strong {
    font-size: 1.6rem !important;
  }
}

/* ====================================================
   FOOTER: Корисні посилання — SVG-логотипи
   Додати в кінець: /css/components.css
   ==================================================== */

/* --- Скидаємо › і робимо місце для лого --- */
#block-school-gov-korisniposilannya a::before {
  content: '' !important;
  display: inline-block !important;
  width: 26px !important;
  height: 26px !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border-radius: 4px !important;
  flex-shrink: 0 !important;
  vertical-align: middle !important;
  background-color: rgba(255,255,255,.1) !important;
}

/* --- МОН України --- */
#block-school-gov-korisniposilannya a[href*="mon.gov.ua"]::before {
  background-image: url('/sites/default/files/2026-05/mon.svg') !important;
}

/* --- ЕДБО --- */
#block-school-gov-korisniposilannya a[href*="edbo.gov.ua"]::before {
  background-image: url('/sites/default/files/2026-05/edbo_logo_hovered.svg') !important;
  background-color: #fff !important;
}

/* --- Дія.Освіта --- */
#block-school-gov-korisniposilannya a[href*="diia.gov.ua"]::before {
  background-image: url('/sites/default/files/2026-05/dija.png') !important;
  background-color: #fff !important;
}

/* --- Нова українська школа --- */
#block-school-gov-korisniposilannya a[href*="nus.org.ua"]::before {
  background-image: url('/sites/default/files/2026-05/nus_logo.png') !important;
  background-color: #fff !important;
}

/* --- Якщо є інші посилання без конкретного домену --- */
#block-school-gov-korisniposilannya a:not([href*="mon.gov.ua"]):not([href*="edbo.gov.ua"]):not([href*="diia.gov.ua"]):not([href*="nus.org.ua"])::before {
  content: '›' !important;
  color: var(--color-accent) !important;
  font-size: 1.1rem !important;
  background: none !important;
  width: auto !important;
  height: auto !important;
}

/* =====================================================
   NODE BODY — CKEditor зображення (FIXED)
   ===================================================== */

/* Базові стилі зображень */
.node-full__body .field--field-body img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 6px;
}

/* Float ЛІВО — відступ від тексту праворуч і знизу */
.node-full__body .field--field-body img.align-left {
  float: left !important;
  margin: 0.2rem 1.5rem 0.75rem 0 !important;
  max-width: 50% !important;
}

/* Float ПРАВО */
.node-full__body .field--field-body img.align-right {
  float: right !important;
  margin: 0.2rem 0 0.75rem 1.5rem !important;
  max-width: 50% !important;
}

/* По центру — скасовує float */
.node-full__body .field--field-body img.align-center {
  float: none !important;
  display: block !important;
  margin: 1rem auto !important;
  max-width: 100% !important;
}

/* ⚠️ НЕ ставимо overflow:hidden на <p> — це ламає обтікання!
   Замість цього — clearfix на самому field */
.node-full__body .field--field-body::after {
  content: '' !important;
  display: table !important;
  clear: both !important;
}

/* Мобільна — скасувати float */
@media (max-width: 600px) {
  .node-full__body .field--field-body img.align-left,
  .node-full__body .field--field-body img.align-right {
    float: none !important;
    max-width: 100% !important;
    margin: 0.75rem 0 !important;
    display: block !important;
  }
}

/* =====================================================
   NODE BODY — Remote Video (FIXED inline width/height)
   ===================================================== */

/* Обгортка відео — повна ширина, обмеження макс */
.node-full__body .field--field-media-oembed-video {
  width: 100% !important;
  max-width: 100% !important;   /* було 720px — змінити на 100% */
  margin: 1.25rem auto !important;  /* auto центрує блок */
  clear: both !important;
}

/* Aspect-ratio контейнер 16:9 */
.node-full__body .field--field-media-oembed-video {
  position: relative !important;
  aspect-ratio: 16 / 9 !important;
}

/* Iframe — перебити inline width="200" height="113" */
.node-full__body .field--field-media-oembed-video iframe,
.node-full__body .field--field-media-oembed-video iframe.media-oembed-content {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;       /* перебиває width="200" */
  height: 100% !important;      /* перебиває height="113" */
  border: none !important;
  border-radius: 6px !important;
}

/* ============================================================
   СТОРІНКИ ПЕРСОНАЛУ — ЗАГАЛЬНІ СТИЛІ
   Файл: staff-pages-ADD-to-components.css
   Покриває: /uk/departament  (body.path-departament)
             /uk/pedagog       (body.path-pedagog)

   ІНСТРУКЦІЯ:
   1. Видали з components.css ВСІ попередні блоки:
      - departament-page-ADD-to-components.css
      - departament-page-v2-ADD-to-components.css
      - departament-page-v2-PATCH.css
      - departament-email-icon-PATCH.css
      - staff-full-photo-fix-PATCH.css
      - staff-full-photo-fix-v2-PATCH.css
   2. Встав цей файл в кінець components.css
   3. drush cr
   ============================================================ */


/* ─────────────────────────────────────────────────────────────
   СКОРОЧЕННЯ — щоб не повторювати body.path-* двічі,
   обидва шляхи перераховані через кому в кожному селекторі
   ───────────────────────────────────────────────────────────── */


/* ─── 1. ЗАГОЛОВОК ────────────────────────────────────────── */

body.path-departament div.highlighted,
body.path-pedagog div.highlighted {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

body.path-departament div.highlighted .container,
body.path-pedagog div.highlighted .container {
  padding-top: 1.25rem !important;
  padding-bottom: 0.75rem !important;
}

body.path-departament .block-page-title-block,
body.path-departament #block-school-gov-page-title,
body.path-pedagog .block-page-title-block,
body.path-pedagog #block-school-gov-page-title {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.path-departament .block-page-title-block h1,
body.path-departament #block-school-gov-page-title h1,
body.path-pedagog .block-page-title-block h1,
body.path-pedagog #block-school-gov-page-title h1 {
  font-family: var(--font-heading) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--color-primary-dark) !important;
  margin: 0 !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 3px solid var(--color-accent) !important;
  display: inline-block !important;
  line-height: 1.2 !important;
}

body.path-departament .views-element-container::before,
body.path-pedagog .views-element-container::before {
  content: none !important;
  display: none !important;
}

body.path-departament #block-school-gov-content,
body.path-pedagog #block-school-gov-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}


/* ─── 2. BADGE "ВЧИТЕЛІ" — приховати ─────────────────────── */

body.path-departament .view-header,
body.path-pedagog .view-header {
  display: none !important;
}

body.path-departament .views-row .badge,
body.path-departament .views-row .announcement-badge,
body.path-departament .views-row [class*="badge"],
body.path-pedagog .views-row .badge,
body.path-pedagog .views-row .announcement-badge,
body.path-pedagog .views-row [class*="badge"] {
  display: none !important;
}


/* ─── 3. ВЕРТИКАЛЬНИЙ СПИСОК КАРТОК ──────────────────────── */

body.path-departament .views-element-container > div,
body.path-pedagog .views-element-container > div {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  padding: 0.5rem 0 0 !important;
}

body.path-departament .views-element-container > div > .contextual,
body.path-departament .views-element-container > div > [data-contextual-id],
body.path-pedagog .views-element-container > div > .contextual,
body.path-pedagog .views-element-container > div > [data-contextual-id] {
  display: none !important;
}


/* ─── 4. КАРТКА — горизонтальний CSS Grid ─────────────────── */

body.path-departament .views-element-container .views-row,
body.path-pedagog .views-element-container .views-row {
  display: grid !important;
  grid-template-columns: 200px 1fr !important;
  grid-template-rows: auto auto 1fr !important;
  grid-template-areas:
    "photo title"
    "photo position"
    "photo phone" !important;
  background: #ffffff !important;
  border: 1px solid #e8ecf5 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  min-height: 200px !important;
  transition: box-shadow 0.25s ease, transform 0.2s ease !important;
}

body.path-departament .views-element-container .views-row:hover,
body.path-pedagog .views-element-container .views-row:hover {
  box-shadow: 0 4px 24px rgba(27, 61, 143, 0.1) !important;
  transform: translateY(-2px) !important;
}

/* Адміністрація: перша картка з жовтою смужкою */
body.path-departament .views-element-container .views-row:first-of-type {
  border-left: 4px solid var(--color-accent) !important;
}


/* ─── 4а. ФОТО ────────────────────────────────────────────── */

body.path-departament .views-row .views-field-field-photo,
body.path-pedagog .views-row .views-field-field-photo {
  grid-area: photo !important;
  overflow: hidden !important;
  background: var(--color-bg) !important;
}

body.path-departament .views-row .views-field-field-photo .field-content,
body.path-departament .views-row .views-field-field-photo a,
body.path-pedagog .views-row .views-field-field-photo .field-content,
body.path-pedagog .views-row .views-field-field-photo a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 200px !important;
  line-height: 0 !important;
}

body.path-departament .views-row .views-field-field-photo img,
body.path-pedagog .views-row .views-field-field-photo img {
  width: 100% !important;
  height: 100% !important;
  min-height: 200px !important;
  object-fit: cover !important;
  object-position: top center !important;
  display: block !important;
  transition: transform 0.35s ease !important;
}

body.path-departament .views-row:hover .views-field-field-photo img,
body.path-pedagog .views-row:hover .views-field-field-photo img {
  transform: scale(1.04) !important;
}


/* ─── 4б. ІМ'Я ────────────────────────────────────────────── */

body.path-departament .views-row .views-field-title,
body.path-pedagog .views-row .views-field-title {
  grid-area: title !important;
  align-self: end !important;
  padding: 1.75rem 2rem 0.25rem !important;
  font-family: var(--font-heading) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

body.path-departament .views-row .views-field-title a,
body.path-departament .views-row .views-field-title .field-content,
body.path-pedagog .views-row .views-field-title a,
body.path-pedagog .views-row .views-field-title .field-content {
  color: var(--color-primary-dark) !important;
  text-decoration: none !important;
  display: block !important;
}

body.path-departament .views-row .views-field-title a:hover,
body.path-pedagog .views-row .views-field-title a:hover {
  color: var(--color-primary-light) !important;
  text-decoration: underline !important;
}


/* ─── 4в. ПОСАДА ──────────────────────────────────────────── */

body.path-departament .views-row .views-field-field-position,
body.path-pedagog .views-row .views-field-field-position {
  grid-area: position !important;
  align-self: start !important;
  padding: 0.375rem 2rem 0 !important;
}

body.path-departament .views-row .views-field-field-position .field-content,
body.path-pedagog .views-row .views-field-field-position .field-content {
  display: inline-block !important;
  background: var(--color-bg) !important;
  color: var(--color-primary) !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.03em !important;
  line-height: 1.4 !important;
}


/* ─── 4г. EMAIL ───────────────────────────────────────────── */

body.path-departament .views-row .views-field-field-phone,
body.path-pedagog .views-row .views-field-field-phone {
  display: none !important;
}

body.path-departament .views-row .views-field-field-email,
body.path-pedagog .views-row .views-field-field-email {
  grid-area: phone !important;
  align-self: start !important;
  padding: 0.35rem 2rem 1.5rem !important;
}

body.path-departament .views-row .views-field-field-email .field-content,
body.path-pedagog .views-row .views-field-field-email .field-content {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: var(--color-primary-light) !important;
  font-size: 0.82rem !important;
  word-break: break-all !important;
}

body.path-departament .views-row .views-field-field-email .field-content::before,
body.path-pedagog .views-row .views-field-field-email .field-content::before {
  content: '\f0e0' !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-size: 0.75rem !important;
  color: var(--color-primary) !important;
  flex-shrink: 0 !important;
}

body.path-departament .views-row .views-field-field-email a,
body.path-pedagog .views-row .views-field-field-email a {
  color: var(--color-primary-light) !important;
  text-decoration: none !important;
  word-break: break-all !important;
}

body.path-departament .views-row .views-field-field-email a:hover,
body.path-pedagog .views-row .views-field-field-email a:hover {
  color: var(--color-primary-dark) !important;
  text-decoration: underline !important;
}


/* ─── 5. СТОРІНКА НОДИ: фото не обрізати ─────────────────── */

body.path-node--staff .staff-full__photo {
  height: auto !important;
}

body.path-node--staff .staff-full__photo img {
  height: auto !important;
  width: 100% !important;
  object-fit: initial !important;
  object-position: initial !important;
  min-height: unset !important;
}


/* ─── 6. АДАПТИВ ──────────────────────────────────────────── */

@media (max-width: 900px) {
  body.path-departament .views-element-container .views-row,
  body.path-pedagog .views-element-container .views-row {
    grid-template-columns: 165px 1fr !important;
    min-height: 165px !important;
  }
  body.path-departament .views-row .views-field-field-photo a,
  body.path-departament .views-row .views-field-field-photo img,
  body.path-pedagog .views-row .views-field-field-photo a,
  body.path-pedagog .views-row .views-field-field-photo img {
    min-height: 165px !important;
  }
  body.path-departament .views-row .views-field-title,
  body.path-pedagog .views-row .views-field-title {
    font-size: 0.95rem !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  body.path-departament .views-row .views-field-field-position,
  body.path-departament .views-row .views-field-field-email,
  body.path-pedagog .views-row .views-field-field-position,
  body.path-pedagog .views-row .views-field-field-email {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
}

@media (max-width: 600px) {
  body.path-departament .views-element-container .views-row,
  body.path-pedagog .views-element-container .views-row {
    grid-template-columns: 130px 1fr !important;
    min-height: 140px !important;
  }
  body.path-departament .views-row .views-field-field-photo a,
  body.path-departament .views-row .views-field-field-photo img,
  body.path-pedagog .views-row .views-field-field-photo a,
  body.path-pedagog .views-row .views-field-field-photo img {
    min-height: 140px !important;
  }
  body.path-departament .views-row .views-field-title,
  body.path-pedagog .views-row .views-field-title {
    font-size: 0.88rem !important;
    padding: 1rem 1rem 0.25rem !important;
  }
  body.path-departament .views-row .views-field-field-position,
  body.path-departament .views-row .views-field-field-email,
  body.path-pedagog .views-row .views-field-field-position,
  body.path-pedagog .views-row .views-field-field-email {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  body.path-departament .views-row .views-field-field-email,
  body.path-pedagog .views-row .views-field-field-email {
    padding-bottom: 1rem !important;
  }
}

@media (max-width: 400px) {
  body.path-departament .views-element-container .views-row,
  body.path-pedagog .views-element-container .views-row {
    grid-template-columns: 110px 1fr !important;
  }
}

/* ============================================================
   ПРОЗОРІСТЬ ТА ІНФОРМАЦІЙНА ВІДКРИТІСТЬ
   Файл: free-info-page-ADD-to-components.css
   Сторінка: /uk/free-info  (body.path-free-info)
   Додати в кінець: css/components.css → drush cr

   DOM (devtools):
   body.path-free-info
     div.views-element-container
       div.js-view-dom-id-*
         form.views-exposed-form          ← фільтри
         table.cols-5                     ← таблиця
           thead > tr > th
           tbody > tr > td
   ============================================================ */


/* ─────────────────────────────────────────────────────────────
   1. ЗАГОЛОВОК
   ───────────────────────────────────────────────────────────── */

body.path-free-info div.highlighted {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
}

body.path-free-info div.highlighted .container {
  padding-top: 1.25rem !important;
  padding-bottom: 0.75rem !important;
}

body.path-free-info .block-page-title-block,
body.path-free-info #block-school-gov-page-title {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.path-free-info .block-page-title-block h1,
body.path-free-info #block-school-gov-page-title h1 {
  font-family: var(--font-heading) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--color-primary-dark) !important;
  margin: 0 !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 3px solid var(--color-accent) !important;
  display: inline-block !important;
  line-height: 1.2 !important;
}


/* ─────────────────────────────────────────────────────────────
   2. ФОРМА ФІЛЬТРІВ (Категорія + Рік + Застосувати)
   ───────────────────────────────────────────────────────────── */

body.path-free-info .views-exposed-form {
  background: var(--color-bg) !important;
  border: 1px solid #d0d8ee !important;
  border-radius: 8px !important;
  padding: 1rem 1.25rem !important;
  margin-bottom: 1.5rem !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.75rem 1.25rem !important;
  align-items: flex-end !important;
}

/* Кожен елемент форми */
body.path-free-info .views-exposed-form .js-form-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  min-width: 180px !important;
}

body.path-free-info .views-exposed-form label {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--color-primary-dark) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  margin: 0 !important;
}

body.path-free-info .views-exposed-form select,
body.path-free-info .views-exposed-form input[type="text"],
body.path-free-info .views-exposed-form input[type="number"] {
  border: 1px solid #b8c8e8 !important;
  border-radius: 6px !important;
  padding: 7px 10px !important;
  font-size: 0.875rem !important;
  color: var(--color-primary-dark) !important;
  background: #ffffff !important;
  outline: none !important;
  transition: border-color 0.2s !important;
  height: 36px !important;
}

body.path-free-info .views-exposed-form select:focus,
body.path-free-info .views-exposed-form input:focus {
  border-color: var(--color-primary-light) !important;
}

/* Кнопка "Застосувати" */
body.path-free-info .views-exposed-form .form-actions {
  display: flex !important;
  align-items: flex-end !important;
}

body.path-free-info .views-exposed-form .form-submit {
  background: var(--color-primary) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 7px 18px !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  height: 36px !important;
  transition: background 0.2s !important;
  font-family: var(--font-heading) !important;
}

body.path-free-info .views-exposed-form .form-submit:hover {
  background: var(--color-primary-dark) !important;
}


/* ─────────────────────────────────────────────────────────────
   3. ТАБЛИЦЯ
   ───────────────────────────────────────────────────────────── */

body.path-free-info table.cols-5 {
  width: 100% !important;
  border-collapse: collapse !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  font-size: 0.875rem !important;
  margin-bottom: 0 !important;
}

/* ── Заголовки ── */
body.path-free-info table.cols-5 thead tr {
  background: var(--color-primary-dark) !important;
}

body.path-free-info table.cols-5 thead th {
  padding: 12px 14px !important;
  font-family: var(--font-heading) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  white-space: nowrap !important;
  text-align: left !important;
}

/* Прикріплені файли — ширша колонка */
body.path-free-info table.cols-5 th#view-field-files-table-column,
body.path-free-info table.cols-5 .views-field-field-files {
  width: 35% !important;
}

/* ── Рядки даних ── */
body.path-free-info table.cols-5 tbody tr {
  border-bottom: 1px solid #e8ecf5 !important;
  transition: background 0.15s !important;
}

body.path-free-info table.cols-5 tbody tr:nth-child(even) {
  background: var(--color-bg) !important;
}

body.path-free-info table.cols-5 tbody tr:hover {
  background: #dde5f5 !important;
}

body.path-free-info table.cols-5 tbody td {
  padding: 11px 14px !important;
  vertical-align: top !important;
  color: #333 !important;
  border: none !important;
  line-height: 1.5 !important;
}

/* ── Назва (посилання) ── */
body.path-free-info table.cols-5 .views-field-title a {
  color: var(--color-primary) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

body.path-free-info table.cols-5 .views-field-title a:hover {
  color: var(--color-primary-dark) !important;
  text-decoration: underline !important;
}

/* ── Категорія ── */
body.path-free-info table.cols-5 .views-field-field-doc-category .field-content {
  display: inline-block !important;
  background: #EEF1F9 !important;
  color: var(--color-primary) !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
}

/* ── Рік ── */
body.path-free-info table.cols-5 .views-field-field-year {
  text-align: center !important;
  color: #555 !important;
  font-size: 0.82rem !important;
}

/* ── Дата затвердження ── */
body.path-free-info table.cols-5 .views-field-field-date-approved {
  color: #666 !important;
  font-size: 0.82rem !important;
  white-space: nowrap !important;
}

/* ── Прикріплені файли ── */
body.path-free-info table.cols-5 .views-field-field-files {
  line-height: 1.8 !important;
}

body.path-free-info table.cols-5 .views-field-field-files a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  color: var(--color-primary-light) !important;
  text-decoration: none !important;
  font-size: 0.82rem !important;
  padding: 2px 0 !important;
  transition: color 0.15s !important;
}

body.path-free-info table.cols-5 .views-field-field-files a:hover {
  color: var(--color-primary-dark) !important;
  text-decoration: underline !important;
}

/* Іконки файлів через Font Awesome */
body.path-free-info table.cols-5 .views-field-field-files a::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-size: 0.82rem !important;
  flex-shrink: 0 !important;
  color: var(--color-primary) !important;
}

body.path-free-info table.cols-5 .views-field-field-files a[href$=".pdf"]::before,
body.path-free-info table.cols-5 .views-field-field-files a[href*=".pdf"]::before {
  content: '\f1c1' !important;
  color: #c0392b !important;
}

body.path-free-info table.cols-5 .views-field-field-files a[href$=".doc"]::before,
body.path-free-info table.cols-5 .views-field-field-files a[href$=".docx"]::before,
body.path-free-info table.cols-5 .views-field-field-files a[href*=".doc"]::before {
  content: '\f1c2' !important;
  color: #2980b9 !important;
}

body.path-free-info table.cols-5 .views-field-field-files a[href$=".xls"]::before,
body.path-free-info table.cols-5 .views-field-field-files a[href$=".xlsx"]::before {
  content: '\f1c3' !important;
  color: #27ae60 !important;
}

/* Розділювач між файлами (якщо є кома) */
body.path-free-info table.cols-5 .views-field-field-files .field-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
}


/* ─────────────────────────────────────────────────────────────
   4. ОБГОРТКА ДЛЯ СКРОЛУ НА МОБІЛЬНИХ
   ───────────────────────────────────────────────────────────── */

body.path-free-info .views-element-container {
  overflow-x: auto !important;
}


/* ─────────────────────────────────────────────────────────────
   5. АДАПТИВ
   ───────────────────────────────────────────────────────────── */

@media (max-width: 900px) {
  body.path-free-info .views-exposed-form {
    flex-direction: column !important;
    gap: 0.75rem !important;
  }
  body.path-free-info .views-exposed-form .js-form-item {
    min-width: 100% !important;
  }
  body.path-free-info .views-exposed-form select,
  body.path-free-info .views-exposed-form input[type="text"] {
    width: 100% !important;
  }
  body.path-free-info table.cols-5 thead th,
  body.path-free-info table.cols-5 tbody td {
    padding: 9px 10px !important;
    font-size: 0.8rem !important;
  }
}

@media (max-width: 600px) {
  /* На малих екранах приховати менш важливі колонки */
  body.path-free-info table.cols-5 .views-field-field-year,
  body.path-free-info table.cols-5 th#view-field-year-table-column {
    display: none !important;
  }
  body.path-free-info table.cols-5 .views-field-field-date-approved,
  body.path-free-info table.cols-5 th#view-field-date-approved-table-column {
    display: none !important;
  }
}

/* ===================================================
   СТОРІНКА КОНТАКТІВ — Twig node--40--full + Drupal Contact Form
   =================================================== */

body.path-kontakty div.highlighted { display: none !important; }
body.path-kontakty .node-full__header { display: none !important; }

/* Прибрати білу картку article + додати бокові відступи */
article.kontakty-node {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  border: none !important;
  padding: 1.5rem 1.75rem 2rem !important;
  margin: 0 !important;
}

.kontakty-title {
  font-family: var(--font-heading) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--color-primary-dark) !important;
  border-bottom: 3px solid var(--color-accent) !important;
  padding-bottom: 0.5rem !important;
  display: inline-block !important;
  margin: 0 0 1.5rem !important;
}

/* Двоколонковий макет */
.kontakty-layout {
  display: grid !important;
  grid-template-columns: 1fr 400px !important;
  gap: 2.5rem !important;
  align-items: start !important;
}

.kontakty-h3 {
  font-family: var(--font-heading) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--color-primary-dark) !important;
  border-bottom: 3px solid var(--color-accent) !important;
  padding-bottom: 0.4rem !important;
  display: inline-block !important;
  margin: 1.5rem 0 0.75rem !important;
}
.kontakty-info > .kontakty-h3:first-child { margin-top: 0 !important; }

.kontakty-address,
.kontakty-contact {
  font-size: 0.9rem !important;
  color: #444 !important;
  line-height: 1.7 !important;
  margin: 0 0 0.35rem !important;
}
.kontakty-contact a { color: var(--color-primary) !important; }

/* ── Карта Google Maps ── */
.kontakty-map {
  margin: 0.5rem 0 1rem !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  border: 1px solid #d0d8ee !important;
  box-shadow: 0 2px 8px rgba(27,61,143,.08) !important;
}
.kontakty-map iframe {
  display: block !important;
  width: 100% !important;       /* перекриває width="600" */
  height: 320px !important;     /* перекриває height="450" */
  border: 0 !important;
}

/* Режим роботи */
.kontakty-schedule { max-width: 380px !important; }
.schedule-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0.45rem 0.875rem !important;
  margin-bottom: 4px !important;
  background: #f9fafd !important;
  border: 1px solid #e4eaf5 !important;
  border-radius: 6px !important;
}
.schedule-day { font-size: 0.875rem !important; color: #333 !important; font-weight: 500 !important; }
.schedule-time {
  font-size: 0.875rem !important; font-weight: 700 !important;
  color: var(--color-primary-dark) !important;
  background: #dde4f5 !important; padding: 3px 12px !important;
  border-radius: 4px !important; white-space: nowrap !important;
}
.schedule-off {
  font-size: 0.875rem !important; font-style: italic !important;
  color: #999 !important; background: #efefef !important;
  padding: 3px 12px !important; border-radius: 4px !important;
}

/* Права колонка — обгортка Drupal Contact Form */
.kontakty-form {
  background: #f9fafd !important;
  border: 1px solid #d0d8ee !important;
  border-radius: 8px !important;
  padding: 1.5rem !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

.kontakty-form__title {
  font-family: var(--font-heading) !important;
  font-size: 1rem !important; font-weight: 700 !important;
  color: var(--color-primary-dark) !important;
  border-top: none !important; border-left: none !important; border-right: none !important;
  border-bottom: 3px solid var(--color-accent) !important;
  padding: 0 0 0.4rem !important;
  display: inline-block !important; margin: 0 0 0.4rem !important;
  background: transparent !important;
}
.kontakty-form__subtitle {
  font-size: 0.82rem !important; color: #666 !important;
  margin: 0 0 1.25rem !important; line-height: 1.5 !important;
  display: block !important;
}
.kontakty-form__error {
  font-size: 0.875rem !important; color: #555 !important;
  padding: 1rem !important; background: #fff3cd !important;
  border-radius: 6px !important; border-left: 4px solid var(--color-accent) !important;
}

/* =====================================================
   DRUPAL CONTACT FORM стилі
   Форма має клас .contact-form — перекриваємо старі
   білі стилі специфічнішим селектором .kontakty-form
   ===================================================== */

.kontakty-form .form-item {
  margin-bottom: 0.9rem !important;
  display: block !important;
}

/* Label — темний колір замість білого */
.kontakty-form label,
.kontakty-form .form-item label,
.kontakty-form .contact-form label {
  display: block !important;
  font-family: var(--font-heading) !important;
  font-size: 0.72rem !important; font-weight: 600 !important;
  color: var(--color-primary-dark) !important;
  margin-bottom: 0.3rem !important;
  text-transform: uppercase !important; letter-spacing: 0.03em !important;
  background: transparent !important;
}

.kontakty-form .form-required {
  color: #c0392b !important; margin-left: 2px !important;
}

/* Input і textarea — видимі поля */
.kontakty-form input[type="text"],
.kontakty-form input[type="email"],
.kontakty-form textarea,
.kontakty-form .contact-form input,
.kontakty-form .contact-form textarea {
  display: block !important; width: 100% !important;
  box-sizing: border-box !important;
  padding: 0.55rem 0.8rem !important;
  border: 1.5px solid #c5cfe8 !important; border-radius: 6px !important;
  font-family: var(--font-body) !important; font-size: 0.875rem !important;
  color: #333 !important; background: #ffffff !important;
  outline: none !important; -webkit-appearance: none !important;
  appearance: none !important; margin: 0 !important;
  transition: border-color .2s, box-shadow .2s !important;
  padding-block: 0.55rem !important; padding-inline: 0.8rem !important;
}
.kontakty-form input[type="text"]:focus,
.kontakty-form input[type="email"]:focus,
.kontakty-form textarea:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(27,61,143,.1) !important;
  background: #fff !important;
}
.kontakty-form textarea {
  resize: vertical !important; min-height: 120px !important;
}

/* Помилки */
.kontakty-form .form-item--error input,
.kontakty-form .form-item--error textarea {
  border-color: #c0392b !important;
}
.kontakty-form .form-item--error-message,
.kontakty-form .form-item .error {
  color: #c0392b !important; font-size: 0.8rem !important; margin-top: 4px !important;
  display: block !important;
}

/* Кнопки форми — flex-стовпчик з відступом між ними */
.kontakty-form .form-actions {
  margin-top: 0.75rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.6rem !important;       /* ← відстань між кнопками */
}

/* Основна кнопка «Надіслати повідомлення» (.button--primary) */
.kontakty-form .form-actions input.button--primary,
.kontakty-form .form-actions button.button--primary,
.kontakty-form input.button--primary,
.kontakty-form button.button--primary {
  display: block !important; width: 100% !important;
  margin: 0 !important;
  background: var(--color-primary) !important; color: #ffffff !important;
  font-family: var(--font-heading) !important;
  font-size: 0.9rem !important; font-weight: 600 !important;
  padding: 0.7rem 1.5rem !important; border: none !important;
  border-radius: 6px !important; cursor: pointer !important;
  transition: background .2s !important;
  -webkit-appearance: none !important; appearance: none !important;
}
.kontakty-form input.button--primary:hover,
.kontakty-form button.button--primary:hover {
  background: var(--color-primary-light) !important;
}

/* Вторинна кнопка «Попередній перегляд» — submit БЕЗ .button--primary
   (контурна, щоб візуально відрізнялась від основної) */
.kontakty-form .form-actions input[type="submit"]:not(.button--primary),
.kontakty-form .form-actions button[type="submit"]:not(.button--primary) {
  display: block !important; width: 100% !important;
  margin: 0 !important;
  background: #ffffff !important;
  color: var(--color-primary) !important;
  font-family: var(--font-heading) !important;
  font-size: 0.85rem !important; font-weight: 600 !important;
  padding: 0.6rem 1.5rem !important;
  border: 1.5px solid var(--color-primary) !important;
  border-radius: 6px !important; cursor: pointer !important;
  transition: background .2s, color .2s !important;
  -webkit-appearance: none !important; appearance: none !important;
}
.kontakty-form .form-actions input[type="submit"]:not(.button--primary):hover,
.kontakty-form .form-actions button[type="submit"]:not(.button--primary):hover {
  background: #eef1f9 !important;
}

/* reCAPTCHA */
.kontakty-form .g-recaptcha { margin: 0.75rem 0 !important; }
.kontakty-form .captcha {
  margin: 0.75rem 0 !important; padding: 0.75rem !important;
  background: #f0f4fc !important; border-radius: 6px !important;
  border: 1px solid #d0d8ee !important;
}
.kontakty-form .captcha legend {
  font-size: 0.75rem !important; font-weight: 600 !important;
  color: var(--color-primary-dark) !important;
  text-transform: uppercase !important;
}

/* Повідомлення успішної відправки */
body.path-kontakty .layout-main .messages--status {
  background: #eaf5ea !important;
  border-left: 4px solid var(--color-green) !important;
  color: #2e5426 !important; border-radius: 6px !important;
  padding: 0.875rem 1rem !important; margin: 0 1.75rem 1rem !important;
  font-size: 0.875rem !important;
}

/* Мобільна адаптація */
@media (max-width: 768px) {
  article.kontakty-node { padding: 1rem 1rem 2rem !important; }
  .kontakty-layout { grid-template-columns: 1fr !important; gap: 1.5rem !important; }
  .kontakty-schedule { max-width: 100% !important; }
}

/* =====================================================
   KONTAKTY — ДОПОВНЕННЯ v16.1
   ID-підсилення проти браузерних агент-стилів + капча
   ===================================================== */

/* Браузер ставить input[type="text"]{padding-block:1px;padding-inline:2px}
   (пастка №17). ID-селектор форми дає вищу специфічність ніж агент-стиль. */
#contact-message-napyshit-nam-form input.form-text,
#contact-message-napyshit-nam-form input[type="text"],
#contact-message-napyshit-nam-form input[type="email"],
#contact-message-napyshit-nam-form textarea {
  box-sizing: border-box !important;
  width: 100% !important;
  padding: 0.55rem 0.8rem !important;
  padding-block: 0.55rem !important;
  padding-inline: 0.8rem !important;
  border: 1.5px solid #c5cfe8 !important;
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  color: #333 !important;
  background: #fff !important;
}

/* Subject (Тема) і Message (Повідомлення) сидять у field-wrapper/container */
.kontakty-form .js-form-wrapper .form-item,
.kontakty-form .field--widget-string-textfield .form-item,
.kontakty-form .field--widget-string-textarea .form-item {
  margin-bottom: 0.9rem !important;
}

/* reCAPTCHA — не вилазити за межі колонки 400px, дозволити перенос */
.kontakty-form .captcha,
#contact-message-napyshit-nam-form .captcha {
  overflow-x: auto !important;
}
.kontakty-form .g-recaptcha > div,
.kontakty-form .g-recaptcha iframe {
  max-width: 100% !important;
}

/* Якщо капча математична (CAPTCHA core) — поле відповіді як текстове */
.kontakty-form .captcha input[type="text"],
#contact-message-napyshit-nam-form .captcha input[type="text"] {
  max-width: 120px !important;
  display: inline-block !important;
}

/* =====================================================
   КНОПКА «ВГОРУ» — scroll-to-top
   ===================================================== */
.scroll-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 999;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  box-shadow: 0 4px 16px rgba(27,61,143,.35);

  /* Приховано за замовчуванням */
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.85);
  transition: opacity .3s ease, visibility .3s ease,
              transform .3s ease, background .2s ease;
}
.scroll-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.scroll-to-top:hover {
  background: var(--color-accent);
  color: var(--color-primary-dark);
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 6px 20px rgba(245,168,0,.4);
}
.scroll-to-top:active {
  transform: translateY(0) scale(0.96);
}

/* Пульсація — привертає увагу при першій появі */
@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(27,61,143,.4); }
  70%  { box-shadow: 0 0 0 10px rgba(27,61,143,0); }
  100% { box-shadow: 0 0 0 0 rgba(27,61,143,0); }
}
.scroll-to-top.is-visible {
  animation: pulse-ring 2s ease-out 0.5s 1;
}
