/**
 * layout.css — School Gov UA Theme
 * Структура сторінок та грід-система
 */

/* =====================================================
   БАЗОВА СТРУКТУРА — 100% ширина, без білих полос
   ===================================================== */
html {
  width: 100%;
  min-height: 100%;
  background: #0d1c4a;
  /* overflow-x: clip НЕ створює scroll-container (на відміну від hidden)
     тому position:fixed продовжує працювати відносно viewport */
  overflow-x: clip;
  overflow-y: auto;
}

body {
  width: 100%;
  min-height: 100%;
  background: #0d1c4a;
  /* НЕ ставимо overflow на body — це ламає position:fixed в усіх браузерах */
}

/* Drupal canvas */
body > .dialog-off-canvas-main-canvas {
  width: 100%;
  background: var(--color-bg);
  overflow: visible !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* =====================================================
   FIX: DRUPAL ADMIN TOOLBAR
   Toolbar module додає margin-top до <html> і класи до <body>.
   Наш fixed header повинен бути нижче toolbar.
   toolbar bar  = 39px (horizontal mode)
   toolbar tray = +59px (коли відкрита панель)
   ===================================================== */

/* Горизонтальний toolbar (за замовчуванням) */
body.toolbar-horizontal .site-header {
  top: calc(39px + var(--topbar-h));
}
body.toolbar-horizontal .site-nav {
  top: calc(39px + var(--topbar-h) + 68px);
}
/* Toolbar + відкрита tray (secondary toolbar) */
body.toolbar-horizontal.toolbar-tray-open .site-header {
  top: calc(39px + 59px + var(--topbar-h));
}
body.toolbar-horizontal.toolbar-tray-open .site-nav {
  top: calc(39px + 59px + var(--topbar-h) + 68px);
}
/* Вертикальний toolbar (ліва панель) — header не зсувається по Y */
body.toolbar-vertical .site-header,
body.toolbar-vertical .site-nav {
  /* Ширина зменшується — лівий відступ для toolbar (~240px) */
  /* Але ми не зсуваємо по X — toolbar сам займає місце */
}


/* Layout wrapper */
.layout-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
  /* ===================================================
     КЛЮЧОВИЙ FIX: обмежуємо ширину ВСЬОГО сайту тут.
     Тепер layout-wrapper = контейнер сайту.
     Всі дочірні блоки (слайдер, статистика тощо)
     успадкують цю ширину.
     =================================================== */
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  /* Тінь підкреслює межі сайту на широких моніторах */
  box-shadow: 0 0 60px rgba(0,0,0,.25);
}
.layout-main { flex: 1; }

/* Контейнер — обмежує ширину контенту */
.container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--container-pad);
  width: 100%;
  box-sizing: border-box;
}

/* =====================================================
   TOP BAR — вгорі сторінки, прокручується (НЕ фіксований)
   Знаходиться В ПОТОЦІ документа — при завантаженні видно
   вгорі, при прокрутці — зникає. Ширина: 100%.
   ===================================================== */
.region-top-bar {
  background: var(--color-primary-dark);
  color: rgba(255,255,255,.75);
  font-size: var(--fs-xs);
  padding: 5px 0;
  width: 100%;
  position: relative;
  z-index: 600;
}

/* =====================================================
   HEADER — STICKY (прилипає до верху при прокрутці)
   Ширина — природна 100% батьківського елемента.
   sticky НЕ потребує компенсації padding-top, бо
   елемент залишається в потоці до моменту "прилипання".
   Умова роботи: жоден батько не має overflow:hidden —
   виправлено вище (overflow:visible на canvas).
   ===================================================== */
/* Висота top-bar (~32px) — використовується для зсуву хедера */
:root { --topbar-h: 32px; }

.site-header {
  background: var(--color-primary);
  position: fixed;
  /* Починаємо під top-bar — JS динамічно змінює при прокрутці */
  top: var(--topbar-h);
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1240px;
  z-index: 500;
  box-shadow: 0 2px 16px rgba(18,42,107,.35);
  /* Плавний рух при прокрутці */
  transition: top .15s ease;
}
.site-header .container {
  display: flex;
  align-items: center;
  gap: var(--sp-md);
  flex-wrap: nowrap;
  height: 68px;
}

/* =====================================================
   NAV — FIXED одразу під хедером (top: 68px)
   ===================================================== */
.site-nav {
  background: var(--color-white);
  border-bottom: 3px solid var(--color-accent);
  box-shadow: 0 2px 6px rgba(27,61,143,.08);
  position: fixed;
  top: calc(var(--topbar-h) + 68px);  /* top-bar + header */
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1240px;
  z-index: 490;
  transition: top .15s ease;
}
.site-nav .container { display: flex; align-items: stretch; }

/* КОМПЕНСАЦІЯ: topbar(32) + header(68) + nav(48) = 148px */
.layout-main {
  flex: 1;
  padding-top: 128px;
}

/* =====================================================
   HERO REGION
   ===================================================== */
.region-hero {
  background: var(--color-primary-dark);
  overflow: hidden;
}


.region-top-bar .container {
  display: flex;
  align-items: center;
  gap: 0;
  width: 100%;
  flex-wrap: nowrap;
  overflow: hidden;
}

/* Email-блок */
#block-school-gov-emailtop {
  flex: 0 0 auto;
  white-space: nowrap;
  padding-right: 16px;
  border-right: 1px solid rgba(255,255,255,.2);
  margin-right: 16px;
  display: flex;
  align-items: center;
}
#block-school-gov-emailtop p,
#block-school-gov-emailtop .field,
#block-school-gov-emailtop div {
  margin: 0; padding: 0;
  display: flex; align-items: center; gap: 5px;
  color: rgba(255,255,255,.75);
}

/* Адреса-блок */
#block-school-gov-adresatop {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  display: flex !important;
  align-items: center;
}
#block-school-gov-adresatop .block-content,
#block-school-gov-adresatop .field,
#block-school-gov-adresatop .field--body,
#block-school-gov-adresatop div {
  overflow: hidden; min-width: 0; width: 100%;
  margin: 0; padding: 0;
}
#block-school-gov-adresatop p {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  margin: 0; padding: 0;
  color: rgba(255,255,255,.75);
  display: flex !important; align-items: center; gap: 5px;
}

/* Іконки в top-bar */
.region-top-bar i[class*="fa-"],
.region-top-bar .fa-solid,
.region-top-bar .fas {
  color: var(--color-accent);
  font-size: 11px;
  flex-shrink: 0;
}

/* =====================================================
/* --- Брендинг --- */
.site-header__branding {
  display: flex;
  align-items: center;
  gap: var(--sp-sm);
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
@media (min-width: 769px) {
  .site-header__branding {
    max-width: calc(100% - 380px);
  }
}
.site-header__logo-link {
  flex-shrink: 0;
  line-height: 0;
}
.site-header__logo img,
.site-header__logo svg {
  width: 56px;
  height: 56px;
  object-fit: contain;
  display: block;
}
.site-header__text {
  min-width: 0;
  overflow: hidden;
}
.site-header__name {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: var(--fs-base);
  color: var(--color-white);
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .02em;
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.site-header__name a { color: inherit; text-decoration: none; }
.site-header__slogan {
  font-size: var(--fs-xs);
  color: rgba(255,255,255,.70);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* --- Пошук --- */
.site-header__search {
  flex: 0 0 260px;
  max-width: 260px;
  align-self: center;
  overflow: visible;
}
.site-header__search .block,
.site-header__search .block-content,
.site-header__search .search-block-form { margin: 0 !important; padding: 0 !important; }
.site-header__search .block-system-branding-block { display: none !important; }
.site-header__search form { position: relative !important; margin: 0 !important; padding: 0 !important; }
.site-header__search .form-item,
.site-header__search .js-form-item { position: relative !important; margin: 0 !important; padding: 0 !important; }
.site-header__search label { display: none !important; }
.site-header__search .form-actions,
.site-header__search .js-form-wrapper,
.site-header__search .search-icon,
.site-header__search .form-submit,
.site-header__search input[type="submit"],
.site-header__search button[type="submit"] { display: none !important; }
.site-header__search input[type="search"],
.site-header__search input[type="text"] {
  display: block !important; width: 100% !important; height: 38px !important;
  padding: 0 42px 0 16px !important;
  background: rgba(255,255,255,.15) !important;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  border-radius: 999px !important; color: #fff !important; font-size: 14px !important;
  font-family: var(--font-body) !important; outline: none !important;
  box-sizing: border-box !important; -webkit-appearance: none; appearance: none;
  transition: background .2s, border-color .2s; margin: 0 !important;
}
.site-header__search input[type="search"]::placeholder,
.site-header__search input[type="text"]::placeholder { color: rgba(255,255,255,.55) !important; }
.site-header__search input[type="search"]:focus,
.site-header__search input[type="text"]:focus {
  background: rgba(255,255,255,.22) !important;
  border-color: var(--color-accent) !important;
}
.site-header__search .form-item::after {
  content: '\f002';
  font-family: 'Font Awesome 6 Free', 'Font Awesome 5 Free', 'FontAwesome';
  font-weight: 900; position: absolute; right: 14px; top: 50%;
  transform: translateY(-50%); color: rgba(255,255,255,.6); font-size: 13px;
  pointer-events: none; z-index: 2;
}

/* --- Кнопка входу --- */
.site-header__actions {
  display: flex; align-items: center; gap: 0; flex-shrink: 0; overflow: visible;
}

/* =====================================================
   NAVIGATION
   ===================================================== */
/* site-nav визначений вище у секції "HEADER" */

/* =====================================================
   STATISTICS
   ===================================================== */
.region-statistics {
  padding: var(--sp-xl) 0;
  background: var(--color-off-white);
  border-bottom: 1px solid var(--color-border);
}
.statistics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-lg);
}

/* =====================================================
   PAGE SECTIONS
   ===================================================== */
.page-section { padding: var(--sp-2xl) 0; }
.page-section--alt { background: var(--color-off-white); }
.page-section__header {
  display: flex; align-items: center; margin-bottom: var(--sp-xl); gap: var(--sp-md);
}
.page-section__title {
  font-size: var(--fs-xl); font-weight: 700; color: var(--color-primary-dark);
  display: flex; align-items: center; gap: var(--sp-sm);
}
.page-section__title::before {
  content: ''; display: inline-block; width: 4px; height: 1.5em;
  background: var(--color-accent); border-radius: 2px; flex-shrink: 0;
}
.page-section__more { margin-left: auto; font-size: var(--fs-sm); color: var(--color-primary); font-weight: 600; }

/* =====================================================
   TWO-COLUMN + INNER PAGE LAYOUTS
   ===================================================== */
.layout-two-col { display: grid; grid-template-columns: 1fr 320px; gap: var(--sp-xl); align-items: start; }
.layout-inner { display: grid; grid-template-columns: 1fr 280px; gap: var(--sp-xl); padding: var(--sp-xl) 0; align-items: start; }
.layout-inner--no-sidebar { grid-template-columns: 1fr; }

/* =====================================================
   BREADCRUMB — прибираємо якщо порожній
   ===================================================== */
.region-breadcrumb {
  background: var(--color-off-white);
  border-bottom: 1px solid var(--color-border);
  padding: var(--sp-sm) 0;
}
/* Порожній контейнер хлібних крихт — повністю прибираємо */
.region-breadcrumb:empty,
.region-breadcrumb .container:empty,
.region-breadcrumb .container > div:empty {
  display: none;
}
.region-breadcrumb:has(.container:empty),
.region-breadcrumb:has(nav:empty),
.region-breadcrumb:has(.breadcrumb:empty) {
  display: none;
}
/* Якщо breadcrumb є але містить лише один пункт "Головна" — теж ховаємо */
.region-breadcrumb:has(li:only-child) {
  display: none;
}

/* =====================================================
   CONTACTS
   ===================================================== */
.region-contacts { background: var(--color-primary-dark); color: var(--color-white); padding: var(--sp-2xl) 0; }

/* =====================================================
   FOOTER
   ===================================================== */
.site-footer {
  background: var(--color-primary-dark);
  color: rgba(255,255,255,.85);
  padding: var(--sp-2xl) 0 0;
}

/* 3 колонки: корисні посилання | контакти | навігація */
.site-footer__cols {
  display: grid;
  /* Drupal рендерить обидва блоки footer в один div (регіон-wrapper)
     тому: [div регіону (2 колонки)] [nav-col (1 колонка)] */
  grid-template-columns: 1fr 1fr 200px;
  gap: var(--sp-2xl);
  align-items: start;
  padding-bottom: var(--sp-2xl);
}

/* Внутрішній div регіону footer — займає 2 колонки з 3 */
.site-footer__cols > div:first-child {
  display: contents;
}

/* nav-col — третя колонка */
.site-footer__nav-col {
  /* вже є як окремий елемент grid */
}

@media (max-width: 900px) {
  .site-footer__cols { grid-template-columns: 1fr 1fr; }
  .site-footer__cols > div:first-child { display: contents; }
  .site-footer__nav-col { grid-column: span 2; }
}
@media (max-width: 600px) {
  .site-footer__cols { grid-template-columns: 1fr; gap: var(--sp-xl); }
  .site-footer__nav-col { grid-column: span 1; }
}

/* Заголовки блоків у footer */
.site-footer .page-section__title {
  color: var(--color-white) !important;
  font-size: 1.1rem !important;
}
.site-footer .page-section__title::before {
  background: var(--color-accent) !important;
}
.site-footer .page-section__header {
  margin-bottom: var(--sp-lg);
}

/* Третя колонка — навігація */
.site-footer__col-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
  margin: 0 0 var(--sp-md);
  padding-bottom: var(--sp-sm);
  border-bottom: 2px solid var(--color-accent);
  display: inline-block;
}
.site-footer__nav-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.site-footer__nav-list li::before { display: none; }
.site-footer__nav-list a {
  color: rgba(255,255,255,.75) !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__nav-list a::before {
  content: '\203A';
  color: var(--color-accent);
  font-size: 1.1em;
}
.site-footer__nav-list a:hover {
  color: var(--color-accent) !important;
  padding-left: 4px !important;
}

/* Нижній рядок */
.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--sp-md);
  padding: var(--sp-md) 0;
  border-top: 1px solid rgba(255,255,255,.12);
}

/* Меню підвалу */
.site-footer__bottom-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 4px var(--sp-md);
  align-items: center;
}
.site-footer__bottom-menu a {
  color: rgba(255,255,255,.6) !important;
  text-decoration: none !important;
  font-size: var(--fs-xs) !important;
  transition: color .15s !important;
}
.site-footer__bottom-menu a:hover {
  color: var(--color-accent) !important;
}

/* Соціальні мережі */
.site-footer__social {
  display: flex;
  gap: 8px;
  align-items: center;
}
.site-footer__social-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.75) !important;
  text-decoration: none !important;
  font-size: 14px;
  transition: background .15s, color .15s !important;
}
.site-footer__social-link:hover {
  background: var(--color-accent) !important;
  color: var(--color-primary-dark) !important;
}

/* Копірайт */
.site-footer__copy {
  color: rgba(255,255,255,.4);
  font-size: var(--fs-xs);
  white-space: nowrap;
}

/* Старий site-footer__menu — замінений нижнім рядком */
.site-footer__menu { display: none; }


