/*
Theme Name: szablon1
Description: Lekki szablon dla radom.kontrolabiletow.eu w jasnej, ciepłej kolorystyce beżowej. Mobile-first, responsywny, z obsługą Elementora.
Version: 1.2.0
Text Domain: szablon1
*/

/* Czcionka Roboto hostowana lokalnie (bez połączeń z Google) */
@font-face {
	font-family: "Roboto"; font-style: normal; font-weight: 100 900; font-display: swap;
	src: url("fonts/roboto-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Roboto"; font-style: normal; font-weight: 100 900; font-display: swap;
	src: url("fonts/roboto-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--bg: #faf6ee;          /* tło strony: bardzo jasny beż */
	--bg-soft: #f3ecdd;     /* pasek tytułu, stopka */
	--panel: #fffdf8;       /* ramki z treścią */
	--line: #e3d6bd;        /* delikatne obramowania */
	--text: #5b4b38;        /* tekst: ciepły, miękki brąz */
	--heading: #4a3a27;
	--link: #94652e;
	--link-hover: #6b4519;
	--accent: #c49a5e;
	--gutter: 16px;         /* boczny odstęp treści (wszystkie strony): telefon */
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: "Roboto", -apple-system, "Segoe UI", Arial, sans-serif;
	font-size: 16px;        /* 16px: iOS nie przybliża pól formularzy */
	line-height: 1.65;
	overflow-wrap: break-word;
}
img, video, svg { max-width: 100%; height: auto; }
iframe { max-width: 100%; }
a { color: var(--link); text-decoration: none; }
a:hover, a:focus { color: var(--link-hover); text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { color: var(--heading); line-height: 1.3; margin: 0 0 .6em; }
table { max-width: 100%; display: block; overflow-x: auto; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; background: var(--panel); padding: 8px 14px; z-index: 100000;
}

.site { background: var(--bg); }
.container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 var(--gutter); }

/* pasek tytułu */
.page-titlebar {
	text-align: center;
	background: var(--bg-soft);
	border-bottom: 1px solid var(--line);
	padding: 14px 0;
}
.page-titlebar .titlebar-title { margin: 0; font-size: 1.15rem; font-weight: 400; color: var(--heading); flex: 0 1 auto; min-width: 0; }
.titlebar-inner { display: flex; align-items: center; justify-content: center; gap: 14px; }
.tb-art { flex: 0 0 auto; line-height: 0; color: #8a6a40; opacity: .75; }
.tb-art svg { display: block; width: 52px; height: auto; }
.tb-bus svg { transform: none; }

/* treść */
.site-content { background: var(--bg); padding: 18px 0 40px; }
.site-content > .elementor { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 var(--gutter); }
/* Elementor: bez własnego bocznego odstępu kontenerów, żeby marginesy były takie same jak na stronach bez Elementora */
.site-content > .elementor .e-con { --padding-left: 0px; --padding-right: 0px; }
.entry-title { font-size: 1.4rem; }
.entry-meta { font-size: .85rem; color: #8f7d66; margin-bottom: 1em; }
article { margin-bottom: 2rem; }

/* Elementor: ramki, nagłówki i teksty w tej samej palecie */
.elementor-widget-text-editor > .elementor-widget-container,
.elementor-widget-google_maps > .elementor-widget-container {
	background: var(--panel) !important;
	border-color: var(--line) !important;
	border-width: 1px !important;
	border-radius: 8px;
	box-shadow: 0 1px 4px rgba(120, 90, 50, .08);
}
.elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-widget-text-editor li {
	color: var(--text) !important;
}
.elementor-widget-text-editor strong { color: var(--heading); }
.elementor-widget-text-editor a { color: var(--link) !important; }
.elementor-widget-text-editor a:hover { color: var(--link-hover) !important; text-decoration: underline; }
/* wygodne klikanie palcem: min. ~44px wysokości obszaru linku na liście */
.elementor-widget-text-editor ul { padding-left: 1.2em; }
.elementor-widget-text-editor li { margin-bottom: .15em; }
.elementor-widget-text-editor li a { display: block; padding: .7em 0; line-height: 1.4; }
.elementor-heading-title, .elementor-widget-heading .elementor-heading-title { color: var(--link) !important; }
.elementor-icon, .elementor-icon svg { color: var(--accent) !important; fill: var(--accent) !important; }
.elementor-widget-google_maps iframe { border-radius: 6px; max-width: 100%; }

/* panele treści bez Elementora (strony zwykłe): ten sam wygląd co ramki Elementora */
.panel-grid { display: grid; gap: 20px; grid-template-columns: 1fr; margin: 0 0 20px; }
.panel {
	background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
	box-shadow: 0 1px 4px rgba(120, 90, 50, .08); padding: 14px 14px 10px;
}
.panel p { margin: 0 0 .9em; }
.panel strong { color: var(--heading); }
.panel ul { padding-left: 1.2em; margin: 0 0 .5em; }
.panel li { margin-bottom: .15em; }
.panel li a { display: block; padding: .7em 0; line-height: 1.4; }
.panel .cc-embed-placeholder { margin-top: 4px; }
.panel-map { padding: 10px; }
.panel-map iframe { display: block; width: 100%; height: 300px; border: 0; border-radius: 6px; }
@media (min-width: 768px) {
	.panel-grid { grid-template-columns: 1fr 1fr; }
	.panel-map iframe { height: 373px; }
}
@media (hover: hover) and (pointer: fine) { .panel li a { padding: .15em 0; } }

/* przyciski i formularze (min. 44px: cel dotykowy) */
button, .button, input[type=submit], .elementor-button {
	background: var(--accent); color: #fffaf0; border: 1px solid #b0864a; border-radius: 6px;
	padding: .6em 1.1em; min-height: 44px; font: inherit; cursor: pointer;
}
button:hover, .button:hover, input[type=submit]:hover, .elementor-button:hover { background: #b0864a; color: #fff; }
input, textarea, select {
	width: 100%; max-width: 100%; min-height: 44px; font: inherit;
	background: var(--panel); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: .5em .7em;
}

/* stopka */
.site-footer {
	background: var(--bg-soft);
	border-top: 1px solid var(--line);
	color: var(--text);
	padding: 18px 0 22px;
	text-align: center;
	font-size: .9rem;
}
.site-footer p { margin: 0; }
.site-footer a { color: var(--link); }
.site-footer .footer-links { margin-top: 4px; font-size: .9rem; }
.site-footer .footer-links a { display: inline-block; padding: .7em .5em; }

/* zgoda na cookies: na telefonie zwarty pasek na dole */
.cc-banner {
	position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 99999;
	max-width: 760px; margin: 0 auto; padding: 12px 14px;
	background: var(--panel); color: var(--text);
	border: 1px solid var(--line); border-radius: 10px;
	box-shadow: 0 4px 18px rgba(90, 65, 30, .22);
	display: flex; flex-direction: column; gap: 10px;
}
.cc-banner[hidden] { display: none; }
.cc-banner p { margin: 0; font-size: .85rem; line-height: 1.5; }
.cc-buttons { display: flex; gap: 8px; }
.cc-btn { cursor: pointer; font: inherit; font-size: .9rem; padding: .6em .8em; border-radius: 6px; min-height: 44px; flex: 1 1 0; }
.cc-accept { background: var(--accent); color: #fffaf0; border: 1px solid #b0864a; }
.cc-accept:hover { background: #b0864a; }
.cc-reject { background: transparent; color: var(--link); border: 1px solid var(--accent); }
.cc-reject:hover { background: var(--bg-soft); }

.cc-embed-placeholder {
	min-height: 240px; display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 14px; text-align: center; padding: 20px; background: var(--bg-soft); border-radius: 6px;
}
.cc-embed-placeholder[hidden], .cc-embed-frame[hidden] { display: none; }
/* Elementor ustawia dla osadzeń line-height:0, więc nadpisujemy */
.cc-embed-placeholder, .cc-embed-placeholder p, .cc-load-embed { line-height: 1.5 !important; }
.cc-embed-placeholder p { margin: 0; max-width: 420px; font-size: .9rem; color: var(--text); }
.cc-load-embed { cursor: pointer; font: inherit; background: var(--accent); color: #fffaf0; border: 1px solid #b0864a; border-radius: 6px; padding: .6em 1.1em; min-height: 44px; }

/* bardzo wąskie telefony: mniejsze ikony, żeby napis zmieścił się w jednej linii */
@media (max-width: 430px) {
	.tb-art svg { width: 38px; }
	.titlebar-inner { gap: 9px; }
	.page-titlebar .titlebar-title { font-size: 1.02rem; }
}

/* tablet i większe (od 768 px) */
@media (min-width: 768px) {
	:root { --gutter: 20px; }
	body { font-size: 15px; }
	.page-titlebar { padding: 18px 0; }
	.page-titlebar .titlebar-title { font-size: 1.35rem; }
	.titlebar-inner { gap: 40px; }
	.tb-art svg { width: 110px; }
	.site-content { padding: 30px 0 50px; }
	.entry-title { font-size: 1.6rem; }
	article { margin-bottom: 2.5rem; }
	.site-footer { padding: 22px 0; }
	.cc-banner { left: 16px; right: 16px; bottom: 16px; padding: 16px 20px; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px 20px; }
	.cc-banner p { flex: 1 1 360px; font-size: .9rem; }
	.cc-buttons { flex: 0 0 auto; }
	.cc-btn { flex: 0 0 auto; padding: .55em 1.1em; }
	.cc-embed-placeholder { min-height: 373px; }
}

/* urządzenia z myszą: gęstszy układ listy (telefony i tablety zostają z dużymi celami dotykowymi) */
@media (hover: hover) and (pointer: fine) {
	.elementor-widget-text-editor li a { padding: .15em 0; }
}

/* ruch ograniczony na życzenie użytkownika */
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
