/*
Theme Name: Base Block
Theme URI:
Author: expe
Author URI:
Description: Universal WordPress block theme. Use as parent for child themes.
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: base-block
Tags: block-theme, full-site-editing
*/

/* ─── Spacing token overrides (mobile) ─────────────────────────── */
@media (max-width: 782px) {
	:root {
		--bb-header-height: 70px;
		--wp--preset--spacing--20: 0.25rem;
		--wp--preset--spacing--30: 0.5rem;
		--wp--preset--spacing--40: 1rem;
		--wp--preset--spacing--50: 1.5rem;
		--wp--preset--spacing--60: 2rem;
		--wp--preset--spacing--70: 2.5rem;
		--wp--preset--spacing--80: 3rem;
	}
}

/* ─── Base ──────────────────────────────────────────────────────── */
/* Wysokość fixed headera — offset treści. Wartość szacunkowa,         */
/* dostrój po sprawdzeniu w przeglądarce. Mobilna w @media wyżej.      */
:root {
	--bb-header-height: 80px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--bb-header-height);
}

body {
	overflow-x: hidden;
	padding-top: var(--bb-header-height);
}

/* ─── Fixed header ──────────────────────────────────────────────── */
header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 1200;
}

/* Tło i blur headera są projektowe — definiuje je child theme na      */
/* `header::before` (wzorzec: child-block-template/style.css).          */
/* KRYTYCZNE: bg/blur muszą iść na `::before`, nie na `<header>` —      */
/* backdrop-filter na elemencie czyni go containing blockiem dla        */
/* position:fixed potomków i przycina overlay menu mobilnego.           */
/* base-block dostarcza hook: JS przełącza klasę `.is-scrolled`.        */

.admin-bar header {
	top: 32px;
}

/* Pasek admina ma 46px poniżej 782px (nie 32px) */
@media (max-width: 782px) {
	.admin-bar header {
		top: 46px;
	}
}

.backdrop-5 {
	backdrop-filter: blur(5px);
}

header .wp-block-navigation-item__content {
	padding: 1rem 0;
}

header .wp-block-navigation__submenu-container {
	border-radius: 0.5rem;
	overflow: hidden !important;
	left: -15px !important;
	min-width: 300px !important;
}

/* Logo — cap wysokości tylko na mobile (desktop trzyma atrybut width:290) */
@media (max-width: 782px) {
	header .wp-block-site-logo img {
		max-height: 50px;
		width: auto;
	}
}

/* ─── Mobile navigation breakpoint → 992px ──────────────────────── */
/* WP core zwija nawigację do hamburgera tylko poniżej 600px.        */
/* Poniżej wymuszamy stan zwinięty w zakresie 600–991px, żeby        */
/* menu mobilne (overlay) działało aż do 992px.                      */
@media (max-width: 991.98px) {
	.wp-block-navigation.is-responsive
		.wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.wp-block-navigation.is-responsive
		.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex !important;
	}
}

/* ─── wp:columns — responsywność 4→2→1 ──────────────────────────── */
/* Rdzeń skacze 4→1 przy 782px. Ta reguła dokłada poziom „2-up"      */
/* w zakresie 600–992px. Poniżej 600px — 1 kolumna (zachowanie       */
/* rdzenia). Kolumny z `is-not-stacked-on-mobile` są pomijane.       */
/* flex-basis 40% (nie 50%) zostawia zapas na dowolny gap kolumn;    */
/* box-sizing border-box wlicza padding/border kolumny — bez tego    */
/* kolumny z paddingiem przelewają wiersz i spadają do 1 na rząd.    */
@media (min-width: 600px) and (max-width: 991.98px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) {
		flex-wrap: wrap !important;
	}

	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		box-sizing: border-box !important;
		flex: 1 1 40% !important;
	}
}

/* ─── Utilities ─────────────────────────────────────────────────── */
.d-none {
	display: none !important;
}

/* ─── Responsywna widoczność (LEGACY) ───────────────────────────── */
/* Nowe projekty: natywne „Widoczność" bloku (WP ≥7.0, panel boczny)  */
/* — ukrycie na Mobile+Tablet = odpowiednik `hide-mobile`.            */
/* Klasy zostają dla istniejących stron (zlucki, dentart).            */
/* Breakpoint = 782px (= granica Tablet/Desktop w settings.viewport). */
@media (max-width: 781.98px) {
	.hide-mobile { display: none !important; }
}
@media (min-width: 782px) {
	.hide-desktop { display: none !important; }
}

/* ─── Kolejność elementów flex (mobile) ─────────────────────────── */
/* Klasa na .wp-block-column (lub innym elemencie flex). Działa       */
/* ≤992px — tam gdzie kolumny są zwinięte; desktop bez zmian.         */
/* `first`/`last` do pojedynczych przesunięć; `1`–`6` gdy chcesz      */
/* ustawić pełną kolejność (wtedy oklasuj wszystkie kolumny).         */
@media (max-width: 991.98px) {
	.order-first { order: -1 !important; }
	.order-last  { order: 999 !important; }
	.order-1 { order: 1 !important; }
	.order-2 { order: 2 !important; }
	.order-3 { order: 3 !important; }
	.order-4 { order: 4 !important; }
	.order-5 { order: 5 !important; }
	.order-6 { order: 6 !important; }
}

.sticky-group {
	top: 120px !important;
}

/* Sticky nie ma sensu gdy kolumny się zwijają — wyłącz poniżej 782px */
@media (max-width: 781.98px) {
	.sticky-group {
		position: static !important;
		top: auto !important;
	}
}

/* ─── Home hero ─────────────────────────────────────────────────── */
/* Klasa `.home-hero` dodawana w edytorze na blok wp:cover strony     */
/* głównej. wp:cover ma domyślnie min-height 430px — na telefonie za  */
/* wysoko. Desktop zostaje na wartości Cover (default/per-instance);  */
/* w razie potrzeby dopasuj treść paddingami.                         */
@media (max-width: 600px) {
	.home-hero {
		min-height: 260px !important;
	}
}
