/*
 * Style sekcji budowanych w Elementorze i shortcode'ów motywu.
 * Klasy apd-*-e ustawia generator stron, klasy bez -e pochodzą z shortcode'ów.
 * Uwaga na kolejność: bloki dla telefonu są na końcu pliku.
 */

/* ---------- ogólne sekcje Elementora ---------- */

.elementor-widget:last-child { margin-bottom: 0; }

.apd-sekcja-e { padding-top: 90px; padding-bottom: 90px; }
.apd-sekcja-e.apd-tlo2-e { background: var(--apd-tlo-2); }
.apd-sekcja-e.apd-ciemna-e { background: var(--apd-ciemne); }
.apd-ciemna-e h1, .apd-ciemna-e h2, .apd-ciemna-e h3 { color: #fff; }
.apd-ciemna-e p, .apd-ciemna-e li { color: #c3b8ac; }
.apd-waska-e { max-width: 860px; margin-left: auto; margin-right: auto; }

.apd-etykieta-e {
	font-family: var(--apd-font-tekst) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--apd-zloto) !important;
	font-weight: 500;
	margin-bottom: 0.6rem;
}
.apd-srodek-e { text-align: center; }
/* Rząd przycisków w wyśrodkowanej sekcji też ma stać na środku. */
.apd-srodek-e > .e-con-inner > .e-con.e-child { justify-content: center; }
.apd-lead-e { font-size: 1.12rem; color: var(--apd-tekst); }

/* ---------- hero ---------- */

.apd-hero-e {
	position: relative;
	min-height: min(82vh, 760px);
	display: flex;
	align-items: flex-end;
	padding: 60px 0 64px;
	background-size: cover;
	background-position: center 62%;
	color: #fff;
}
.apd-hero-e::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(27,23,19,.30) 0%, rgba(27,23,19,.12) 38%, rgba(27,23,19,.72) 100%);
	pointer-events: none;
}
.apd-hero-e > .e-con-inner, .apd-hero-e > .elementor-container { position: relative; z-index: 1; }
.apd-hero-e h1 { color: #fff; max-width: 15ch; }
.apd-hero-e .apd-etykieta-e { color: var(--apd-piasek) !important; }
.apd-hero-e p { color: rgba(255,255,255,.88); max-width: 46ch; font-size: 1.08rem; }

.apd-hero-mniejszy-e { min-height: min(60vh, 560px); }

/* ---------- karty apartamentów ---------- */

.apd-karty {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 44px;
}
.apd-karta {
	background: var(--apd-karta);
	border: 1px solid var(--apd-obramowanie);
	display: flex;
	flex-direction: column;
}
.apd-karta__obraz {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
}
.apd-karta__obraz img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}
.apd-karta:hover .apd-karta__obraz img { transform: scale(1.04); }
.apd-karta__ocena {
	position: absolute;
	top: 18px;
	left: 18px;
	background: rgba(255,255,255,.92);
	color: var(--apd-naglowek);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 7px 12px;
}
.apd-karta__tresc { padding: 30px 32px 34px; display: flex; flex-direction: column; gap: 4px; }
.apd-karta__tytul { margin-bottom: 0.3em; }
.apd-karta__tytul a { color: var(--apd-naglowek); }
.apd-karta__tytul a:hover { color: var(--apd-zloto-ciemne); }
.apd-karta__opis { color: var(--apd-tekst); margin-bottom: 1.4em; }
.apd-karta__tresc .apd-przycisk { align-self: flex-start; }
.apd-karta--zielen .apd-karta__ocena { background: var(--apd-zielen); color: #fff; }

/* ---------- pasek faktów ---------- */

.apd-fakty {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1px;
	background: var(--apd-obramowanie);
	border: 1px solid var(--apd-obramowanie);
	margin: 0;
}
.apd-fakty__poz { background: var(--apd-tlo); padding: 22px 24px; }
.apd-fakty dt {
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--apd-tekst-jasny);
	margin-bottom: 6px;
}
.apd-fakty dd {
	margin: 0;
	font-family: var(--apd-font-naglowek);
	font-size: 1.28rem;
	color: var(--apd-naglowek);
}

/* ---------- galeria ---------- */

.apd-galeria {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.apd-galeria__el {
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--apd-tlo-2);
}
.apd-galeria__el img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease, opacity .3s;
}
.apd-galeria__el:hover img { transform: scale(1.03); opacity: .94; }
.apd-galeria__el:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.apd-galeria__info {
	margin-top: 16px;
	font-size: 0.86rem;
	color: var(--apd-tekst-jasny);
}

/* ---------- wyposażenie ---------- */

.apd-wyposazenie {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 48px;
}
.apd-wyposazenie h3 {
	font-family: var(--apd-font-tekst);
	font-size: 0.74rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--apd-zloto);
	margin-bottom: 14px;
}
.apd-wyposazenie ul { list-style: none; margin: 0; padding: 0; }
.apd-wyposazenie li {
	position: relative;
	padding-left: 20px;
	margin-bottom: 8px;
	font-size: 0.97rem;
}
.apd-wyposazenie li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.72em;
	width: 8px;
	height: 1px;
	background: var(--apd-zloto);
}

/* ---------- opinie ---------- */

.apd-opinie { display: grid; grid-template-columns: 260px 1fr; gap: 48px; align-items: start; }
.apd-opinie__ocena {
	display: flex;
	flex-direction: column;
	background: var(--apd-karta);
	border: 1px solid var(--apd-obramowanie);
	padding: 30px 28px;
}
.apd-opinie__liczba {
	font-family: var(--apd-font-naglowek);
	font-size: 4.2rem;
	line-height: 1;
	color: var(--apd-naglowek);
}
.apd-opinie__skala { font-size: 0.8rem; color: var(--apd-tekst-jasny); margin-bottom: 14px; }
.apd-opinie__zrodlo { font-size: 0.86rem; color: var(--apd-tekst); border-top: 1px solid var(--apd-obramowanie); padding-top: 14px; }
.apd-opinie__lista { display: grid; gap: 26px; }
.apd-opinia { margin: 0; }
.apd-opinia blockquote {
	margin: 0 0 10px;
	padding: 0 0 0 22px;
	border-left: 1px solid var(--apd-zloto);
	font-family: var(--apd-font-naglowek);
	font-size: 1.28rem;
	line-height: 1.45;
	color: var(--apd-naglowek);
}
.apd-opinia figcaption {
	padding-left: 23px;
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--apd-tekst-jasny);
}

/* ---------- okolica ---------- */

.apd-okolica {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--apd-obramowanie);
	border: 1px solid var(--apd-obramowanie);
}
.apd-okolica__poz { background: var(--apd-tlo); padding: 28px 26px; }
.apd-okolica__poz h3 { font-size: 1.24rem; margin-bottom: 2px; }
.apd-okolica__odleglosc {
	font-size: 0.72rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--apd-zloto);
	margin-bottom: 10px;
}
.apd-okolica__poz p { font-size: 0.94rem; margin: 0; }
.apd-okolica__poz h3 a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--apd-zloto); }
.apd-okolica__poz h3 a:hover { color: var(--apd-zloto); }
.apd-okolica__logo { display: block; margin-top: 18px; }
.apd-okolica__logo img { display: block; width: 100%; max-width: 168px; height: auto; margin-left: auto; margin-right: auto; }

/* ---------- zasady ---------- */

.apd-zasady { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 44px; }
.apd-zasady h3 { font-size: 1.24rem; margin-bottom: 8px; }
.apd-zasady p { font-size: 0.96rem; margin: 0; color: var(--apd-tekst); }

/* ---------- formularz kontaktowy ---------- */

/* scroll-margin: link /kontakt/#formularz nie moze chowac formularza pod przyklejonym naglowkiem */
.apd-formularz { scroll-margin-top: calc(var(--apd-header) + 24px); background: var(--apd-karta); border: 1px solid var(--apd-obramowanie); border-radius: 4px; padding: clamp(24px, 4vw, 46px); box-shadow: 0 2px 16px rgba(34, 29, 24, 0.05); }
.apd-formularz__tytul { font-size: clamp(1.5rem, 3vw, 2.1rem); margin-bottom: 22px; }
.apd-formularz form { position: relative; }
.apd-formularz__siatka { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; }
.apd-pole { display: flex; flex-direction: column; gap: 7px; }
.apd-pole--szerokie { grid-column: 1 / -1; }
.apd-pole > span { font-family: var(--apd-font-tekst); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--apd-tekst-jasny); }
.apd-pole input,
.apd-pole select,
.apd-pole textarea { width: 100%; padding: 14px 16px; border: 1px solid var(--apd-obramowanie); border-radius: 3px; background: var(--apd-tlo); font: inherit; font-size: 16px; line-height: 1.4; color: var(--apd-naglowek); transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease; }
.apd-pole select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--apd-tekst-jasny) 50%), linear-gradient(135deg, var(--apd-tekst-jasny) 50%, transparent 50%); background-position: calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px); background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 42px; }
.apd-pole input:focus,
.apd-pole select:focus,
.apd-pole textarea:focus { outline: 0; border-color: var(--apd-zloto); box-shadow: 0 0 0 3px rgba(176, 141, 87, 0.16); background: var(--apd-karta); }
.apd-pole textarea { resize: vertical; min-height: 150px; }
.apd-zgoda { display: flex; gap: 12px; align-items: flex-start; margin: 22px 0 26px; font-size: 0.92rem; line-height: 1.55; color: var(--apd-tekst); }
.apd-zgoda input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--apd-zloto); flex: 0 0 auto; }
.apd-zgoda a { color: var(--apd-zloto); text-decoration: underline; }
.apd-formularz__pulapka { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }
.apd-formularz__komunikat { padding: 16px 20px; border-radius: 3px; margin-bottom: 22px; font-size: 1rem; }
.apd-formularz__komunikat--ok { background: #eef4ec; color: #2e4038; border: 1px solid #cfe0d3; }
.apd-formularz__komunikat--blad { background: #f9eeec; color: #8a3a2f; border: 1px solid #edd2cb; }
.apd-formularz__wymagane { font-size: 0.86rem; color: var(--apd-tekst-jasny); margin: -6px 0 22px; }
.apd-gwiazdka { color: var(--apd-zloto); font-weight: 700; font-style: normal; }
.apd-pole__podpowiedz { font-size: 0.82rem; font-style: normal; color: var(--apd-tekst-jasny); margin-top: -1px; }
.apd-pole--blad input, .apd-pole--blad select, .apd-pole--blad textarea { border-color: #c0705f; background: #fdf6f4; }
.apd-pole--blad > span { color: #a5442f; }
.apd-zgoda.apd-pole--blad { color: #a5442f; }
.apd-zgoda.apd-pole--blad input { outline: 2px solid #c0705f; outline-offset: 2px; }
/* Hello Elementor koloruje kazdy <button> - zerujemy to jawnie. */
button.apd-przycisk { cursor: pointer; background-color: var(--apd-zloto); color: #fff; }
button.apd-przycisk:hover, button.apd-przycisk:focus { background-color: var(--apd-zloto-ciemne); color: #fff; }

/* ---------- tablet ---------- */

@media (max-width: 1100px) {
	.apd-sekcja-e { padding-top: 64px; padding-bottom: 64px; }
	.apd-wyposazenie { grid-template-columns: repeat(2, 1fr); gap: 32px 40px; }
	.apd-okolica { grid-template-columns: repeat(2, 1fr); }
	.apd-zasady { grid-template-columns: repeat(2, 1fr); }
	.apd-karty { gap: 30px; }
}

/* ---------- telefon (blok na końcu, kolejność ma znaczenie) ---------- */

@media (max-width: 767px) {
	.apd-sekcja-e { padding-top: 52px; padding-bottom: 52px; }
	.apd-hero-e { min-height: 78vh; padding-bottom: 48px; }
	.apd-hero-e h1 { max-width: none; }
	.apd-karty { grid-template-columns: 1fr; gap: 26px; }
	.apd-karta__tresc { padding: 24px 22px 28px; }
	.apd-karta__tresc .apd-przycisk { align-self: stretch; }
	.apd-galeria { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.apd-galeria__el:first-child { grid-column: span 2; }
	.apd-wyposazenie { grid-template-columns: 1fr; gap: 26px; }
	.apd-okolica { grid-template-columns: 1fr; }
	.apd-zasady { grid-template-columns: 1fr; gap: 26px; }
	.apd-opinie { grid-template-columns: 1fr; gap: 28px; }
	.apd-opinie__ocena { flex-direction: row; align-items: baseline; gap: 12px; flex-wrap: wrap; padding: 22px; }
	.apd-opinie__skala { margin-bottom: 0; }
	.apd-opinie__zrodlo { border-top: 0; padding-top: 0; flex-basis: 100%; }
	.apd-fakty { grid-template-columns: 1fr 1fr; }
	.apd-opinia blockquote { font-size: 1.14rem; }
	.apd-formularz__siatka { grid-template-columns: 1fr; }
	.apd-formularz .apd-przycisk { width: 100%; }
}

.apd-zasady--atuty { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .apd-zasady--atuty { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .apd-zasady--atuty { grid-template-columns: 1fr; } }

/* ---------- nadpisanie domyślnych stylów Elementora ----------
 * Elementor ładuje własny arkusz zestawu (kit) po naszym i ustawia w nim
 * niebieskie nagłówki oraz zielone przyciski. Poniższe reguły przywracają
 * paletę motywu. Gdyby kiedyś dało się ustawić kit przez API, można to usunąć.
 */

.elementor-widget-heading .elementor-heading-title {
	font-family: var(--apd-font-naglowek) !important;
	color: var(--apd-naglowek) !important;
	font-weight: 500 !important;
	letter-spacing: 0.01em !important;
}
.apd-etykieta-e .elementor-heading-title {
	font-family: var(--apd-font-tekst) !important;
	color: var(--apd-zloto) !important;
	font-size: 0.72rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.3em !important;
	text-transform: uppercase;
}
.apd-hero-e .elementor-widget-heading .elementor-heading-title,
.apd-ciemna-e .elementor-widget-heading .elementor-heading-title { color: #fff !important; }
.apd-hero-e .apd-etykieta-e .elementor-heading-title { color: var(--apd-piasek) !important; }

.elementor-widget-text-editor {
	font-family: var(--apd-font-tekst) !important;
	color: var(--apd-tekst) !important;
}
.apd-hero-e .elementor-widget-text-editor { color: rgba(255,255,255,.88) !important; }
.apd-ciemna-e .elementor-widget-text-editor { color: #c3b8ac !important; }

.elementor-button {
	font-family: var(--apd-font-tekst) !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase;
	border-radius: 0 !important;
	padding: 15px 34px !important;
	background-color: var(--apd-zloto) !important;
	color: #fff !important;
	border: 1px solid var(--apd-zloto) !important;
	transition: background-color .2s, border-color .2s, color .2s;
}
.elementor-button:hover {
	background-color: var(--apd-zloto-ciemne) !important;
	border-color: var(--apd-zloto-ciemne) !important;
	color: #fff !important;
}
.apd-przycisk-obrys-e .elementor-button {
	background-color: transparent !important;
	color: var(--apd-naglowek) !important;
	border-color: var(--apd-obramowanie) !important;
}
.apd-hero-e .apd-przycisk-obrys-e .elementor-button,
.apd-ciemna-e .apd-przycisk-obrys-e .elementor-button {
	color: #fff !important;
	border-color: rgba(255,255,255,.5) !important;
}
.apd-przycisk-obrys-e .elementor-button:hover {
	background-color: var(--apd-naglowek) !important;
	border-color: var(--apd-naglowek) !important;
	color: #fff !important;
}

/* logo w nagłówku ma być czytelne */
.apd-logo__obraz { max-height: 62px; width: auto; }
@media (max-width: 720px) { .apd-logo__obraz { max-height: 46px; } }

/* hero: treść przy dolnej krawędzi i mocniejsze przyciemnienie pod tekstem */
.apd-hero-e { justify-content: flex-end !important; }
.apd-hero-e::before {
	background: linear-gradient(180deg, rgba(27,23,19,.42) 0%, rgba(27,23,19,.18) 30%, rgba(27,23,19,.82) 100%);
}
.apd-hero-e .apd-etykieta-e .elementor-heading-title { color: #e6d3b8 !important; }
.apd-galeria__ukryte { display: none; }
