/* ================ ================ VARIABLES ================ ================ */
:root {
	--brand-primary-bg: #065a7b;
	--brand-primary-text: #065a7b;
	--on-primary: #ffffff;

	--brand-secondary-bg: #40591c;
	--brand-secondary-text: #40591c;
	--on-secondary: #ffffff;

	--dark-text: #05253d;
	--light-text: #ffffff;

	--dark-bg: #f1f1f1;
	--light-bg: #f9f9f9;

	--radius: 8px;

	--btn-primary-bg: var(--brand-primary-bg);
	--btn-primary-text: var(--on-primary);
	--btn-primary-bg-hov: #1a1a1a;

	--btn-secondary-bg: var(--brand-secondary-bg);
	--btn-secondary-text: var(--on-secondary);
	--btn-secondary-bg-hov: #eaeaea;

	--btn-white-bg: transparent;
	--btn-white-text: #ffffff;
	--btn-white-border: #ffffff;
	--btn-white-bg-hov: #ffffff;
	--btn-white-text-hov: #111111;

	--btn-padding-y: 7px;
	--btn-padding-x: 35px;
	--btn-radius: var(--radius);

	--link-color: var(--brand-primary-text);
	--link-underline: var(--brand-primary-text);

	--field-bg: #ffffff;
	--field-text: #111111;
	--field-border: #e5e7eb;
	--field-radius: var(--radius);
	--field-padding-y: 10px;
	--field-padding-x: 16px;

	--panel-bg: #ffffff;
	--panel-border: #e5e7eb;
	--panel-radius: var(--radius);
	--panel-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);

	--content-max-width: 72ch;
	--p: 15px;
	--h1: 28px;
	--h2: 24px;
	--h3: 20px;
	--h4: 18px;
	--h5: 16px;
	--h6: 14px;
	--space-lg: 15px;
	--space-md: 12px;
	--space-sm: 8px;
	--space-xs: 6px;

	--transition: 0.3s ease-in-out;
}

/* ================ ================ FONTS ================ ================ */
* {
	font-family: "Lato", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "Montserrat", sans-serif;
}

/* ================ ================ COLORS ================ ================ */
.text-dark {
	color: var(--dark-text);
}
.text-light {
	color: var(--light-text);
}

.text-primary {
	color: var(--brand-primary-text);
}
.text-secondary {
	color: var(--brand-secondary-text);
}

.bg-primary {
	background-color: var(--brand-primary-bg);
	color: var(--on-primary);
}
.bg-secondary {
	background-color: var(--brand-secondary-bg);
	color: var(--on-secondary);
}

.bg-muted-light {
	background-color: var(--light-bg);
}
.bg-muted-dark {
	background-color: var(--dark-bg);
}

/* ================ ================ BUTTONS ================ ================ */
body:not(.woocommerce-block-theme-has-button-styles) .wc-block-components-button:not(.is-link) {
	padding: var(--btn-padding-y) var(--btn-padding-x);
	border-radius: var(--btn-radius);
	font-weight: 500;
	text-align: center;
	cursor: pointer;
	text-decoration: none;
	transition: var(--transition);
	background: var(--brand-primary-bg);
	color: var(--on-primary);
}

body:not(.woocommerce-block-theme-has-button-styles) .wc-block-components-button:not(.is-link):hover {
	background: var(--brand-secondary-bg);
}

.btn {
	display: inline-block;
	padding: var(--btn-padding-y) var(--btn-padding-x);
	border-radius: var(--btn-radius);
	font-weight: 500;
	text-align: center;
	cursor: pointer;
	text-decoration: none;
	transition: var(--transition);
}

.btn-primary {
	background: var(--brand-primary-bg);
	color: var(--on-primary);
}
.btn-primary:hover,
.btn-primary:focus {
	background: var(--brand-secondary-bg);
}

.btn-secondary {
	background: var(--brand-secondary-bg);
	color: var(--on-secondary);
}
.btn-secondary:hover,
.btn-secondary:focus {
	background: var(--brand-primary-bg);
}

.btn-white-outlined {
	background-color: var(--btn-white-bg);
	color: var(--btn-white-text);
	border: 2px solid var(--btn-white-border);
}
.btn-white-outlined:hover,
.btn-white-outlined:focus {
	background-color: var(--btn-white-bg-hov);
	color: var(--btn-white-text-hov);
	border-color: var(--btn-white-bg-hov);
}

/* ================ ================ LINKS ================ ================ */
.link-primary {
	color: var(--link-color);
	text-decoration: none;
	transition: var(--transition);
}
.link-primary:hover {
	opacity: 0.5;
}

.link-header {
	color: #ffffff;
	text-decoration: none;
	background-image: linear-gradient(#ffffff, #ffffff);
	background-size: 0% 0.1em;
	background-position: 100% 100%;
	background-repeat: no-repeat;
	transition: background-size var(--transition), color var(--transition);
}
.link-header:hover,
.link-header:focus,
.link-header:active {
	background-size: 100% 0.1em;
	background-position-x: 0%;
}

/* ================ ================ SHADOWS ================ ================ */
.shadow-soft {
	box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.08);
}

/* ================ ================ CONTENT ================ ================ */
.content-box p {
	font-size: var(--p);
	text-align: justify;
}
.content-box h1 {
	font-size: var(--h1);
	margin: 0 0 var(--space-lg);
}
.content-box h2 {
	font-size: var(--h2);
	margin: var(--space-lg) 0 var(--space-md);
}
.content-box h3 {
	font-size: var(--h3);
	margin: var(--space-lg) 0 var(--space-sm);
}
.content-box h4 {
	font-size: var(--h4);
	margin: 0 0 var(--space-sm);
}
.content-box h5 {
	font-size: var(--h5);
	margin: 0 0 var(--space-xs);
}
.content-box h6 {
	font-size: var(--h6);
	margin: 0 0 4px;
}
.content-box ol,
.content-box ul {
	margin-bottom: var(--space-lg);
}
.content-box ol {
	list-style-type: decimal;
}
.content-box ul {
	list-style-type: disc;
}
.content-box li {
	margin-left: 20px;
}
.content-box ul ul,
.content-box ol ol,
.content-box ul ol,
.content-box ol ul {
	margin-left: 20px;
}

/* ================ ================ ANIMATION ================ ================ */
@keyframes slow-zoom {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.1);
	}
	100% {
		transform: scale(1);
	}
}

.slow-zoom {
	animation: slow-zoom 10s ease-in-out infinite;
}

/* ================ ================ A11Y (ACCESSIBILITY) ================ ================ */

/* ================ A11Y: FONT SCALE (global, Tailwind-friendly) ================ */
/* Tailwind text-* jest w rem => skalowanie przez font-size na html działa globalnie */
html {
	font-size: 16px;
}

html[data-a11y-font="md"] {
	font-size: 16px;
}

html[data-a11y-font="lg"] {
	font-size: 18px; /* +12.5% */
}

html[data-a11y-font="xl"] {
	font-size: 20px; /* +25% */
}

/* Opcjonalnie: trochę lepsza czytelność przy większych fontach */
html[data-a11y-font="lg"],
html[data-a11y-font="xl"] {
	line-height: 1.6;
}

/* ================ A11Y: LINKS UNDERLINE ================ */
html[data-a11y-links="underline"] a {
	text-decoration: underline !important;
	text-underline-offset: 0.18em;
	text-decoration-thickness: 2px;
}

/* ================ A11Y: STRONG FOCUS ================ */
html[data-a11y-focus="strong"] :focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

/* ================ A11Y: REDUCE MOTION ================ */
html[data-a11y-motion="reduced"] * {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}

html[data-a11y-motion="reduced"] .slow-zoom {
	animation: none !important;
}

/* ================ A11Y: HIGH CONTRAST (yellow/black, strong override) ================ */
/*
To jest "twardy" tryb kontrastu: żółte tło strony + białe panele + czarny tekst.
Ma przebijać Tailwinda typu text-white/bg-white/text-gray-500.
*/
html[data-a11y-contrast="high"] {
	background: #ffeb3b;
	color: #000;
}

html[data-a11y-contrast="high"] body {
	background: #ffeb3b !important;
	color: #000 !important;
}

/* Przebij typowe utilsy kolorów, które psują kontrast */
html[data-a11y-contrast="high"] * {
	color: #000 !important;
	border-color: #000 !important;
}

/* Utrzymaj czytelność treści: większość kontenerów jako białe panele */
html[data-a11y-contrast="high"] section,
html[data-a11y-contrast="high"] header,
html[data-a11y-contrast="high"] footer,
html[data-a11y-contrast="high"] main,
html[data-a11y-contrast="high"] nav,
html[data-a11y-contrast="high"] article,
html[data-a11y-contrast="high"] aside,
html[data-a11y-contrast="high"] div {
	background-color: #ffffff !important;
}

/* Linki muszą się odcinać */
html[data-a11y-contrast="high"] a {
	color: #0000ee !important;
	text-decoration: underline !important;
	text-underline-offset: 0.18em;
	text-decoration-thickness: 2px;
}

/* Formularze/przyciski */
html[data-a11y-contrast="high"] button,
html[data-a11y-contrast="high"] [role="button"],
html[data-a11y-contrast="high"] input,
html[data-a11y-contrast="high"] select,
html[data-a11y-contrast="high"] textarea {
	background: #ffffff !important;
	color: #000 !important;
	border: 2px solid #000 !important;
}

/* SVG/ikony – często mają stroke/fill ustawione na biało */
html[data-a11y-contrast="high"] svg {
	color: #000 !important;
	stroke: currentColor !important;
}

/* Bardzo czytelny focus w kontrastowym trybie */
html[data-a11y-contrast="high"] :focus-visible {
	outline: 4px solid #000 !important;
	outline-offset: 4px !important;
}
