/* GADO — podstrony (pomiary oryginału @1280; model stałych px, środek strony = 640).
   Usługowe: doodle-pas 720px + biała karta 980 (y128) + zdjęcia absolutne.
   O nas: doodle na całość, tekst 401 centrowany, 3 zdjęcia. Galeria: biała + grid 980.
   Kontakt: doodle-pas + 2 karty 622 @x345. */

/* ---------- WSPÓLNE ---------- */
.elementor-element-geroot, .elementor-element-gwroot, .elementor-element-gproot,
.elementor-element-gdroot, .elementor-element-gonroot, .elementor-element-gkroot,
.elementor-element-ggalroot {
	position: relative;
}
/* Doodle = tło PRZYPIĘTE do viewportu (Wix fixed-bg: tło stoi, treść po nim jeździ).
   ::before z position:fixed pokrywa ekran; karty/zdjęcia mają z-index wyżej.
   Podwójna klasa — .e-con::before Elementora (overlay) ustawia content:var(--background-overlay)=none */
.elementor-element.elementor-element-geroot::before, .elementor-element.elementor-element-gwroot::before,
.elementor-element.elementor-element-gproot::before, .elementor-element.elementor-element-gdroot::before,
.elementor-element.elementor-element-gkroot::before,
.elementor-element.elementor-element-gonroot::before {
	content: '' !important;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	bottom: auto;
	height: 100vh;
	width: auto;
	opacity: 1;
	background: url('../img/doodle-bg.jpg') center / cover no-repeat;
	z-index: 0;
}
/* treść nad pasem doodle; zdjęcia boczne najwyżej (w oryginale leżą na karcie) */
.elementor-element.elementor-element-gecard, .elementor-element.elementor-element-gwcard,
.elementor-element.elementor-element-gpcard, .elementor-element.elementor-element-gdcard,
.elementor-element.elementor-element-gkcard1, .elementor-element.elementor-element-gkcard2 {
	position: relative;
	z-index: 1;
}
.elementor-element-geroot .elementor-widget-image, .elementor-element-gwroot .elementor-widget-image,
.elementor-element-gproot .elementor-widget-image, .elementor-element-gdroot .elementor-widget-image {
	z-index: 2;
}
/* białe ramki 10px zdjęć bocznych (oryginał: rodzic-div z border 10 solid #fff);
   content-box + margin -10 → kadr zostaje w zmierzonym miejscu, rama wystaje na zewnątrz */
.elementor-element-geroot .elementor-widget-image img,
.elementor-element-gwroot .elementor-widget-image img,
.elementor-element-gproot .elementor-widget-image img,
.elementor-element-gdroot .elementor-widget-image img,
.elementor-element-gonroot .elementor-widget-image img {
	border: 10px solid #fff;
	background: #fff;
	box-sizing: content-box;
	margin: -10px 0 0 -10px;
	display: block;
}
/* o-nas: tekst NAD zdjęciami */
.elementor-element.elementor-element-gontxt {
	position: relative;
	z-index: 2;
}
.elementor-element-gonroot .elementor-widget-image {
	z-index: 1;
}

/* typografia treści na podstronach */
.elementor-element.elementor-element-getxt, .elementor-element.elementor-element-gwtxt, .elementor-element.elementor-element-gptxt,
.elementor-element.elementor-element-gdtxt, .elementor-element.elementor-element-gontxt, .elementor-element.elementor-element-gkc1txt,
.elementor-element.elementor-element-gkh1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 15px;
	line-height: 19px;
	text-align: center;
	color: #000;
}
.elementor-element.elementor-element-getxt p, .elementor-element.elementor-element-gwtxt p, .elementor-element.elementor-element-gptxt p,
.elementor-element.elementor-element-gdtxt p, .elementor-element.elementor-element-gontxt p, .elementor-element.elementor-element-gkc1txt p,
.elementor-element.elementor-element-gkh1 p, .elementor-element.elementor-element-gkh1 h1, .elementor-element.elementor-element-gontxt h1 {
	margin: 0;
	color: #000;
}
.elementor-element.elementor-element-getxt a, .elementor-element.elementor-element-gwtxt a, .elementor-element.elementor-element-gptxt a,
.elementor-element.elementor-element-gdtxt a, .elementor-element.elementor-element-gontxt a, .elementor-element.elementor-element-gkc1txt a {
	color: #000;
	text-decoration: none;
}
/* tytuł 39px w kartach usługowych: lh 48 (EVENTY y147→akapit y214 przy nbsp 19px) */
.elementor-element.elementor-element-getxt p[style*="39px"], .elementor-element.elementor-element-gwtxt p[style*="39px"],
.elementor-element.elementor-element-gptxt p[style*="39px"], .elementor-element.elementor-element-gdtxt p[style*="39px"] {
	line-height: 48px;
}

/* karty usługowe (podwójna klasa — reguły .e-con Elementora ładują się później) */
.elementor-element.elementor-element-gecard, .elementor-element.elementor-element-gwcard,
.elementor-element.elementor-element-gpcard, .elementor-element.elementor-element-gdcard {
	width: 980px;
	max-width: 980px;
	margin: 128px auto 0;
	padding: 0 104px 70px;
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.10);
}
/* wysokości kart z pomiarów oryginału */
.elementor-element.elementor-element-gecard { min-height: 2301px; }
.elementor-element.elementor-element-gwcard { min-height: 2487px; margin-top: 129px; }
.elementor-element.elementor-element-gpcard { min-height: 2389px; margin-top: 129px; }
.elementor-element.elementor-element-gdcard { min-height: 1386px; margin-top: 129px; }

/* zdjęcia boczne: absolute, left = calc(50% - (640 - x)px) */
.elementor-element-geroot .elementor-widget-image, .elementor-element-gwroot .elementor-widget-image,
.elementor-element-gproot .elementor-widget-image, .elementor-element-gdroot .elementor-widget-image,
.elementor-element-gonroot .elementor-widget-image {
	position: absolute;
	margin: 0;
}
/* eventy (min-h 2523) */
.elementor-element.elementor-element-geroot { min-height: 2523px; }
.elementor-element-gef1 { left: calc(50% - 625px); top: 508px;  width: 229px; }
.elementor-element-gef2 { left: calc(50% + 396px); top: 966px;  width: 229px; }
.elementor-element-gef3 { left: calc(50% - 614px); top: 1460px; width: 229px; }
.elementor-element-gef4 { left: calc(50% + 396px); top: 2118px; width: 229px; }
/* wesela (min-h 2893) */
.elementor-element.elementor-element-gwroot { min-height: 2893px; }
.elementor-element-gwf1 { left: calc(50% - 626px); top: 309px;  width: 229px; }
.elementor-element-gwf2 { left: calc(50% + 396px); top: 842px;  width: 229px; }
.elementor-element-gwf3 { left: calc(50% - 625px); top: 1126px; width: 229px; }
.elementor-element-gwf4 { left: calc(50% + 396px); top: 1453px; width: 229px; }
.elementor-element-gwf5 { left: calc(50% - 664px); top: 1994px; width: 229px; }
.elementor-element-gwf6 { left: calc(50% + 396px); top: 2537px; width: 229px; }
/* plany (min-h 2557) */
.elementor-element.elementor-element-gproot { min-height: 2557px; }
.elementor-element-gpf1 { left: calc(50% - 647px); top: 403px;  width: 222px; }
.elementor-element-gpf2 { left: calc(50% + 396px); top: 1001px; width: 222px; }
.elementor-element-gpf3 { left: calc(50% - 618px); top: 1646px; width: 222px; }
.elementor-element-gpf4 { left: calc(50% + 396px); top: 2183px; width: 222px; }
/* design (min-h 1554) */
.elementor-element.elementor-element-gdroot { min-height: 1554px; }
.elementor-element-gdf1 { left: calc(50% - 620px); top: 309px;  width: 229px; }
.elementor-element-gdf2 { left: calc(50% - 620px); top: 760px;  width: 229px; }
.elementor-element-gdf3 { left: calc(50% + 13px);  top: 908px;  width: 229px; }
.elementor-element-gdf4 { left: calc(50% + 300px); top: 908px;  width: 229px; }
.elementor-element-gdf5 { left: calc(50% - 350px); top: 934px;  width: 303px; }
.elementor-element-gdf6 { left: calc(50% + 79px);  top: 1242px; width: 177px; }

/* ---------- O NAS ---------- */
.elementor-element.elementor-element-gonroot {
	min-height: 1327px;
	/* doodle przez wspólny fixed ::before (tło stoi w miejscu jak w oryginale) */
}
/* biały box tekstu: 451×591 @x420/y260 (pomiar oryginału), tekst 401 w środku, cień jak na home */
.elementor-element.elementor-element-gontxt {
	width: 451px;
	max-width: 451px;
	margin: 260px auto 0;
	padding: 38px 27px 30px 23px;
	background: #fff;
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.10);
}
.elementor-element.elementor-element-gontxt h1 {
	font-size: 21px;
	font-weight: 400;
	letter-spacing: 2px;
	margin: 0 0 22px;
}
.elementor-element-gonf1 { left: calc(50% - 470px); top: 172px; width: 328px; }
.elementor-element-gonf2 { left: calc(50% + 216px); top: 451px; width: 309px; }
.elementor-element-gonf3 { left: calc(50% - 431px); top: 796px; width: 328px; }

/* ---------- GALERIA ---------- */
.elementor-element.elementor-element-ggalroot {
	min-height: 2951px;
	background: #fff;
}
.elementor-element-ggalroot .elementor-element-ggalgrid {
	--display: grid;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 42px 42px;
	width: 980px;
	max-width: 980px;
	margin: 129px auto 0;
	padding: 0;
}
.elementor-element-ggalgrid .elementor-widget-image,
.elementor-element-ggalgrid .elementor-widget-image img {
	width: 100%;
}
.elementor-element-ggalgrid img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
/* hover kafla jak w oryginale (szara nakładka pro-gallery) */
.elementor-element-ggalgrid .elementor-widget-image {
	position: relative;
}
.elementor-element-ggalgrid .elementor-widget-image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(153, 153, 151, 0.6);
	opacity: 0;
	transition: opacity 0.15s ease;
	pointer-events: none;
}
.elementor-element-ggalgrid .elementor-widget-image:hover::after {
	opacity: 1;
}

/* ---------- KONTAKT ---------- */
.elementor-element.elementor-element-gkroot { min-height: 1182px; }
.elementor-element.elementor-element-gkcard1 {
	width: 622px;
	max-width: 622px;
	margin: 171px 0 0 calc(50% - 295px);
	min-height: 317px;
	padding: 57px 0 0;
}
.elementor-element.elementor-element-gkc1txt p { line-height: 24px; }
.elementor-element.elementor-element-gkcard2 {
	width: 622px;
	max-width: 622px;
	margin: 0 0 39px calc(50% - 295px);
	min-height: 655px;
	padding: 40px 0 40px;
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.10);
}
.elementor-element.elementor-element-gkh1 h1 {
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 2px;
	margin: 0 0 10px;
}
.elementor-element.elementor-element-gkh1 p { line-height: 30px; }

/* formularz statyczny 1:1 (podłączenie = etap formularza leadowego) */
.gado-kform {
	display: flex;
	margin-top: 10px;
	font-family: 'Montserrat', sans-serif;
	text-align: left;
}
.gado-kform .gk-left {
	width: 224px;
	margin-left: 43px;
	font-size: 15px;
	line-height: 30px;
	text-align: center;
}
.gado-kform .gk-left p { margin: 0; }
.gado-kform .gk-divider {
	width: 1px;
	background: #000;
	margin: 8px 0 8px 42px;
}
.gado-kform .gk-form {
	width: 247px;
	margin-left: 32px;
	display: flex;
	flex-direction: column;
}
.gk-form > label {
	font-size: 15px;
	color: #000;
	margin-bottom: 14px;
	display: block;
}
.gk-form input[type=text], .gk-form input[type=email], .gk-form input[type=tel], .gk-form textarea {
	display: block;
	width: 100%;
	border: 0;
	border-bottom: 1px solid #000;
	background: transparent;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	padding: 6px 0 4px;
	outline: none;
	resize: none;
	box-sizing: border-box;
}
.gk-form textarea { min-height: 78px; }
.gk-rodo {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 0 18px;
}
.gk-rodo input[type=checkbox] {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	flex: 0 0 18px;
	accent-color: #000;
}
.gk-rodo label {
	font-size: 9px;
	line-height: 12px;
	color: #4a4a4a;
}
.gk-submit {
	align-self: flex-end;
	background: #fff;
	border: 1px solid #000;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	color: #000;
	padding: 8px 34px;
	cursor: pointer;
}
.gk-submit:hover { background: #000; color: #fff; }

/* ---------- REGULAMIN / POLITYKA ---------- */
.elementor-element.elementor-element-gregbox, .elementor-element.elementor-element-gpolbox {
	width: 980px;
	max-width: calc(100% - 40px);
	margin: 128px auto 80px;
	padding: 50px 60px;
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.10);
}
.elementor-element.elementor-element-gregtxt, .elementor-element.elementor-element-gpoltxt {
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	line-height: 21px;
	color: #000;
	text-align: left;
}
.elementor-element.elementor-element-gregtxt p, .elementor-element.elementor-element-gpoltxt p { margin: 0 0 8px; }
