/*
Theme Name:   НАСУ BI (дочірня тема)
Theme URI:    https://bi.nasu.com.ua/
Description:  Дочірня тема Page Builder Framework у фірмовому стилі НАСУ (nasu.com.ua): кольори, шрифт Montserrat Alternates, шапка, футер, кнопки, форми Ultimate Member та блоки Power BI.
Author:       НАСУ
Author URI:   https://nasu.com.ua/
Template:     page-builder-framework
Version:      1.0.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain:  nasu-bi-child
*/

/* ==========================================================================
   1. Токени бренду НАСУ
   ========================================================================== */
:root {
	--nasu-ink:        #0B2E29; /* заголовки */
	--nasu-dark:       #1B443E; /* основний темний */
	--nasu-text:       #2A4C47; /* основний текст */
	--nasu-muted:      #5B6B68; /* другорядний текст */
	--nasu-accent:     #0F7F70; /* кнопки, посилання */
	--nasu-accent-hov: #0A5F55;
	--nasu-mint-50:    #F1FAF8;
	--nasu-mint-100:   #E9F6F3;
	--nasu-mint-200:   #CFE9E3;
	--nasu-line:       #E4EAE9;
	--nasu-footer:     #F2F7F6;
	--nasu-hero:       linear-gradient(135deg, #AEFFD4 0%, #66EDFF 50%, #AEFFD4 100%);
	--nasu-hero-soft:  linear-gradient(180deg, #EAF9F6 0%, #FFFFFF 70%);
	--nasu-radius:     12px;
	--nasu-radius-lg:  16px;
	--nasu-radius-btn: 8px;
	--nasu-font-head:  "Montserrat Alternates", "Montserrat", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--nasu-font-body:  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--nasu-logo:       url("https://nasu.com.ua/wp-content/uploads/2023/09/%D0%BB%D0%BE%D0%B3%D0%BE-NASU-%D0%BF%D1%80%D0%BE%D0%B7%D0%BE%D1%80%D0%B8%D0%B9-%D1%84%D0%BE%D0%BD-e1699357230510-300x116.png");
}

/* ==========================================================================
   2. База
   ========================================================================== */
body.nasu-skin {
	font-family: var(--nasu-font-body);
	color: var(--nasu-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}

body.nasu-skin h1, body.nasu-skin h2, body.nasu-skin h3,
body.nasu-skin h4, body.nasu-skin h5, body.nasu-skin h6,
body.nasu-skin .elementor-heading-title {
	font-family: var(--nasu-font-head);
	color: var(--nasu-ink);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
}

body.nasu-skin a { color: var(--nasu-accent); }
body.nasu-skin a:hover, body.nasu-skin a:focus { color: var(--nasu-accent-hov); }

body.nasu-skin :focus-visible {
	outline: 2px solid var(--nasu-accent);
	outline-offset: 2px;
}

/* ==========================================================================
   3. Шапка (Page Builder Framework)
   ========================================================================== */
body.nasu-skin #header,
body.nasu-skin .wpbf-page-header {
	background: rgba(255, 255, 255, .96);
	border-bottom: 1px solid var(--nasu-line);
	position: sticky;
	top: 0;
	z-index: 500;
	backdrop-filter: saturate(1.2) blur(6px);
}
body.admin-bar.nasu-skin #header { top: 32px; }
@media (max-width: 782px) { body.admin-bar.nasu-skin #header { top: 0; position: relative; } }

body.nasu-skin .wpbf-navigation { background: transparent; }
body.nasu-skin .wpbf-nav-wrapper { padding-top: 10px; padding-bottom: 10px; }

/* Логотип: якщо в Customizer не задано власне лого — показуємо лого НАСУ + мітку BI */
body.nasu-skin .wpbf-logo .site-title,
body.nasu-skin .wpbf-mobile-logo .site-title { margin: 0; line-height: 1; }

body.nasu-skin .wpbf-logo .site-title a,
body.nasu-skin .wpbf-mobile-logo .site-title a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0;
	color: transparent;
	text-decoration: none;
}
body.nasu-skin .wpbf-logo .site-title a::before,
body.nasu-skin .wpbf-mobile-logo .site-title a::before {
	content: "";
	display: block;
	width: 118px;
	height: 46px;
	background: var(--nasu-logo) left center / contain no-repeat;
}
body.nasu-skin .wpbf-logo .site-title a::after,
body.nasu-skin .wpbf-mobile-logo .site-title a::after {
	content: "BI";
	font: 700 13px/1 var(--nasu-font-head);
	color: #fff;
	background: var(--nasu-accent);
	border-radius: 6px;
	padding: 5px 7px;
	letter-spacing: .04em;
}

/* Пункти меню */
body.nasu-skin .wpbf-menu > .menu-item > a {
	font-family: var(--nasu-font-head);
	font-size: 13px;
	font-weight: 600;
	color: var(--nasu-dark);
	padding: 8px 7px;
	white-space: nowrap;
	border-radius: var(--nasu-radius-btn);
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
body.nasu-skin .wpbf-menu > .menu-item > a:hover,
body.nasu-skin .wpbf-menu > .menu-item > a:focus {
	color: var(--nasu-accent);
	background: var(--nasu-mint-50);
}
body.nasu-skin .wpbf-menu > .current-menu-item > a,
body.nasu-skin .wpbf-menu > .current-menu-ancestor > a,
body.nasu-skin .wpbf-menu > .current_page_item > a {
	color: var(--nasu-accent);
	background: var(--nasu-mint-100);
}

/* Випадне меню */
body.nasu-skin .wpbf-sub-menu > .menu-item-has-children > .sub-menu {
	background: #fff;
	border: 1px solid var(--nasu-line);
	border-radius: var(--nasu-radius);
	box-shadow: 0 12px 32px rgba(11, 46, 41, .10);
	padding: 6px;
}
body.nasu-skin .wpbf-sub-menu .sub-menu a {
	text-decoration: none;
	font-size: 14px;
	color: var(--nasu-dark);
	border-radius: var(--nasu-radius-btn);
	padding: 9px 12px;
}
body.nasu-skin .wpbf-sub-menu .sub-menu a:hover { background: var(--nasu-mint-50); color: var(--nasu-accent); }

/* Мобільне меню */
body.nasu-skin .wpbf-mobile-nav-wrapper { padding-top: 10px; padding-bottom: 10px; }
body.nasu-skin .wpbf-mobile-menu-toggle {
	color: #fff;
	background: var(--nasu-dark);
	border-radius: var(--nasu-radius-btn);
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
body.nasu-skin .wpbf-mobile-menu-container { background: #fff; border-top: 1px solid var(--nasu-line); }
body.nasu-skin .wpbf-mobile-menu a {
	font-family: var(--nasu-font-head);
	font-weight: 600;
	color: var(--nasu-dark);
	border-bottom: 1px solid var(--nasu-line);
}
body.nasu-skin .wpbf-mobile-menu .current-menu-item > a { color: var(--nasu-accent); background: var(--nasu-mint-50); }

/* ==========================================================================
   4. Контент і блоки
   ========================================================================== */
body.nasu-skin #content { background: var(--nasu-hero-soft); background-repeat: no-repeat; background-size: 100% 520px; }

/* Банер-смуга під шапкою на головній (перша секція Elementor) */
body.nasu-skin.home .elementor > .elementor-section:first-child,
body.nasu-skin.home .elementor > .e-con:first-child {
	background: var(--nasu-hero);
	border-radius: 0 0 28px 28px;
}
body.nasu-skin.home .elementor-widget-heading h1.elementor-heading-title {
	font-size: clamp(24px, 3.2vw, 36px);
	color: var(--nasu-ink);
}

/* Картки: будь-яка секція/контейнер із фоном отримує м'який вигляд */
body.nasu-skin .nasu-card,
body.nasu-skin .elementor-widget-text-editor .elementor-widget-container {
	border-radius: var(--nasu-radius);
}
body.nasu-skin .nasu-card {
	background: var(--nasu-mint-50);
	border: 1px solid var(--nasu-mint-200);
	padding: 20px 24px;
}

/* Роздільник Elementor у кольорі бренду */
body.nasu-skin .elementor-divider-separator { border-color: var(--nasu-mint-200) !important; }

/* Таблиці (TablePress / wpDataTables / звичайні) */
body.nasu-skin table { border-collapse: collapse; }
body.nasu-skin .tablepress thead th,
body.nasu-skin .wpDataTables thead th,
body.nasu-skin table thead th {
	background: var(--nasu-dark) !important;
	color: #fff !important;
	font-family: var(--nasu-font-head);
	font-weight: 600;
	border-color: var(--nasu-dark) !important;
}
body.nasu-skin .tablepress tbody tr:nth-child(even) td,
body.nasu-skin table.wpDataTable tbody tr:nth-child(even) td { background: var(--nasu-mint-50); }
body.nasu-skin .tablepress td, body.nasu-skin table td { border-color: var(--nasu-line); }

/* ==========================================================================
   5. Power BI
   ========================================================================== */
body.nasu-skin .embed-container {
	border-radius: var(--nasu-radius-lg);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--nasu-line);
	box-shadow: 0 6px 24px rgba(11, 46, 41, .06);
	margin-bottom: 28px;
}
body.nasu-skin iframe[src*="powerbi"] { border: 0; display: block; }
/* Звіти без обгортки .embed-container — робимо адаптивними */
body.nasu-skin .elementor-widget-container > iframe[src*="powerbi"],
body.nasu-skin .entry-content > iframe[src*="powerbi"] {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 16 / 9.4;
	border-radius: var(--nasu-radius-lg);
	border: 1px solid var(--nasu-line);
}

/* ==========================================================================
   5a. Однаковий розмір усіх дашбордів Power BI
   Ширина не залежить від секції Elementor (повна/в рамці): до 1400px по центру
   екрана, висота = 16:9 + 36px нижньої панелі Power BI.
   ========================================================================== */
body.nasu-skin {
	--nasu-pbi-w: min(1400px, calc(100vw - 64px));
	overflow-x: hidden;
}
body.nasu-skin .embed-container {
	position: relative !important;
	width: var(--nasu-pbi-w) !important;
	max-width: none !important;
	height: calc(var(--nasu-pbi-w) * 0.5625 + 36px) !important;
	padding-bottom: 0 !important;
	left: 50%;
	transform: translateX(-50%);
}
body.nasu-skin .embed-container iframe {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
}
@media (max-width: 768px) {
	body.nasu-skin { --nasu-pbi-w: calc(100vw - 24px); }
}

/* ==========================================================================
   6. Кнопки та форми (WP, Ultimate Member, CF7, Forminator)
   ========================================================================== */
body.nasu-skin .wp-block-button__link,
body.nasu-skin .elementor-button,
body.nasu-skin button[type="submit"],
body.nasu-skin input[type="submit"],
body.nasu-skin .um .um-button,
body.nasu-skin .um input[type="submit"].um-button,
body.nasu-skin .wpcf7-submit,
body.nasu-skin .forminator-button-submit {
	background: var(--nasu-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--nasu-radius-btn) !important;
	font-family: var(--nasu-font-head);
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 14px 26px !important;
	box-shadow: none !important;
	text-decoration: none !important;
	transition: background-color .15s ease;
	cursor: pointer;
}
body.nasu-skin .wp-block-button__link:hover,
body.nasu-skin .elementor-button:hover,
body.nasu-skin button[type="submit"]:hover,
body.nasu-skin input[type="submit"]:hover,
body.nasu-skin .um .um-button:hover,
body.nasu-skin .wpcf7-submit:hover,
body.nasu-skin .forminator-button-submit:hover { background: var(--nasu-accent-hov) !important; }

body.nasu-skin .um .um-button.um-alt,
body.nasu-skin .um .um-alt {
	background: #fff !important;
	color: var(--nasu-dark) !important;
	border: 1.5px solid var(--nasu-dark) !important;
}

body.nasu-skin input[type="text"], body.nasu-skin input[type="email"],
body.nasu-skin input[type="password"], body.nasu-skin input[type="tel"],
body.nasu-skin input[type="search"], body.nasu-skin input[type="url"],
body.nasu-skin select, body.nasu-skin textarea,
body.nasu-skin .um .um-form input[type="text"],
body.nasu-skin .um .um-form input[type="password"] {
	border: 1px solid var(--nasu-mint-200) !important;
	border-radius: var(--nasu-radius-btn) !important;
	background: #fff !important;
	color: var(--nasu-ink) !important;
	padding: 11px 14px !important;
	box-shadow: none !important;
}
body.nasu-skin input:focus, body.nasu-skin select:focus, body.nasu-skin textarea:focus {
	border-color: var(--nasu-accent) !important;
	box-shadow: 0 0 0 3px rgba(15, 127, 112, .15) !important;
	outline: none;
}
body.nasu-skin .um .um-field-label label {
	font-family: var(--nasu-font-head);
	color: var(--nasu-dark);
	font-weight: 600;
}
body.nasu-skin .um { max-width: 520px; }
body.nasu-skin .um-login, body.nasu-skin .um-register, body.nasu-skin .um-password {
	background: #fff;
	border: 1px solid var(--nasu-line);
	border-radius: var(--nasu-radius-lg);
	padding: 28px !important;
	box-shadow: 0 6px 24px rgba(11, 46, 41, .06);
}
body.nasu-skin .um a, body.nasu-skin .um-link { color: var(--nasu-accent) !important; }

/* ==========================================================================
   7. Повідомлення «немає доступу» (дочірня тема замінює англ. текст)
   ========================================================================== */
.nasu-restricted {
	max-width: 640px;
	margin: 32px auto;
	padding: 28px 28px 24px;
	background: var(--nasu-mint-50);
	border: 1px solid var(--nasu-mint-200);
	border-radius: var(--nasu-radius-lg);
	text-align: center;
}
.nasu-restricted__title { font-family: var(--nasu-font-head); color: var(--nasu-ink); font-weight: 700; font-size: 20px; margin: 0 0 8px; }
.nasu-restricted p { color: var(--nasu-muted); margin: 0 0 18px; }
.nasu-restricted .nasu-btn {
	display: inline-block;
	background: var(--nasu-accent);
	color: #fff !important;
	font: 700 15px/1 var(--nasu-font-head);
	padding: 14px 26px;
	border-radius: var(--nasu-radius-btn);
	text-decoration: none;
}
.nasu-restricted .nasu-btn:hover { background: var(--nasu-accent-hov); }

/* ==========================================================================
   8. Футер
   ========================================================================== */
.nasu-footer {
	background: var(--nasu-footer);
	border-top: 1px solid var(--nasu-line);
	color: var(--nasu-muted);
	font-family: var(--nasu-font-body);
	font-size: 14px;
	line-height: 1.6;
	margin-top: 48px;
}
.nasu-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px 24px;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 32px;
}
.nasu-footer__logo {
	display: block;
	width: 118px;
	height: 46px;
	background: var(--nasu-logo) left center / contain no-repeat;
	margin-bottom: 12px;
}
.nasu-footer h4 {
	font: 700 12px/1.2 var(--nasu-font-head);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nasu-ink);
	margin: 4px 0 12px;
}
.nasu-footer ul { list-style: none; margin: 0; padding: 0; }
.nasu-footer li { margin: 0 0 6px; }
.nasu-footer a { color: var(--nasu-dark); text-decoration: none; }
.nasu-footer a:hover { color: var(--nasu-accent); text-decoration: underline; }
.nasu-footer__bottom {
	max-width: 1200px;
	margin: 0 auto;
	padding: 16px 20px 28px;
	border-top: 1px solid var(--nasu-line);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	justify-content: space-between;
	font-size: 13px;
}
@media (max-width: 768px) {
	.nasu-footer__inner { grid-template-columns: 1fr; gap: 20px; padding-top: 28px; }
}
