/*
Theme Name: Dom Weselny nad Pilicą
Theme URI: https://domweselnynadpilica.pl/
Author: 4ever Solutions
Description: Motyw strony Domu Weselnego nad Pilicą, przeznaczony do pracy z Elementorem i wtyczką widgetów Dom Weselny nad Pilicą.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: dwp
*/

/* ---------- Tokeny ---------- */
:root {
	--dwp-bg: #f9f9f9;
	--dwp-grey: #f1f1f1;
	--dwp-text: #727272;
	--dwp-white: #fff;
	--dwp-black: #000;
	--dwp-font-body: "Open Sans", sans-serif;
	--dwp-font-text: "Quicksand", sans-serif;
	--dwp-font-head: "Cormorant Garamond", serif;
	--dwp-font-popup: "Abhaya Libre", serif;
	--dwp-content: 1080px;
	--dwp-row-pad: 27px;
	--dwp-sec-pad: 54px;
}

/* ---------- Baza ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font: 500 14px/1.7em var(--dwp-font-body);
	color: var(--dwp-text);
	background: var(--dwp-bg);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; border: 0; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
p { margin: 0; padding-bottom: 1em; }
p:last-of-type { padding-bottom: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0 0 10px; font-weight: 500; line-height: 1.3em; }
.dwp-anchor { display: block; height: 0; }
.dwp-site { position: relative; overflow-x: clip; }

/* ---------- Ikony ---------- */
.dwp-ico { display: inline-block; width: 1em; height: 1em; vertical-align: -0.125em; }
.dwp-ico svg { display: block; width: 100%; height: 100%; }

/* ---------- Nagłówek ---------- */
.dwp-header { position: absolute; top: 0; left: 0; right: 0; z-index: 500; }
.dwp-topbar {
	display: flex; align-items: center; justify-content: space-between;
	height: 42px; padding: 0 1.5%;
	background: rgba(0, 0, 0, 0.5);
	color: #fff; font: 500 13px/23.8px var(--dwp-font-text);
}
.dwp-topbar__info { display: flex; align-items: center; flex-wrap: nowrap; }
.dwp-topbar__item { display: inline-flex; align-items: center; margin-right: 27px; color: #fff; white-space: nowrap; }
.dwp-topbar__item .dwp-ico { margin-right: 5px; font-size: 13px; }
.dwp-topbar__ctas { display: flex; align-items: flex-start; }
.dwp-topbar__cta {
	display: inline-block; margin: 5px 5px 0 0; padding: 0 13px;
	border: 1px solid #fff; border-radius: 10px;
	color: #fff; font: 500 13px/26px var(--dwp-font-body); text-transform: uppercase; white-space: nowrap;
}
.dwp-topbar__cta--solid { margin: 0 0 0 5px; background: #fff; color: #000; }
.dwp-topbar__cta--solid:hover { background: #fff; color: #000; opacity: .85; }
.dwp-topbar__cta:hover { background: rgba(255, 255, 255, 0.12); }

.dwp-navbar { height: 60px; padding: 15px 0; transition: background-color .3s, box-shadow .3s; }
.dwp-nav .dwp-menu { display: flex; justify-content: center; align-items: flex-start; }
.dwp-nav .dwp-menu li { padding: 8px 35px 0; }
.dwp-nav .dwp-menu a {
	display: block; padding-bottom: 8px;
	font: 500 20px/14px var(--dwp-font-head); letter-spacing: 3px; text-transform: uppercase;
	color: #fff; transition: color .3s;
}
.dwp-nav .dwp-menu a:hover { color: #d3d3d3; }

.dwp-header.is-stuck .dwp-navbar {
	position: fixed; top: 0; left: 0; right: 0;
	height: 50px; padding: 5px 0;
	background: #fff; box-shadow: 0 5px 10px -10px rgba(0, 0, 0, 0.3), 0 0 10px rgba(0, 0, 0, 0.2);
}
.dwp-header.is-stuck .dwp-nav .dwp-menu a { color: var(--dwp-text); }
.dwp-header.is-stuck .dwp-nav .dwp-menu a:hover { color: #000; }

/* ---------- Menu mobilne ---------- */
.dwp-burger {
	display: none; position: fixed; top: 25px; right: 25px; z-index: 10002;
	width: 60px; height: 60px; padding: 0; border: 0; border-radius: 50%;
	background: #000; cursor: pointer;
}
.dwp-burger__bars { position: absolute; left: 16px; top: 28px; width: 27px; height: 3px; }
.dwp-burger__bars i { position: absolute; left: 0; width: 27px; height: 3px; border-radius: 4px; background: #fff; transition: transform .3s, opacity .2s; }
.dwp-burger__bars i:nth-child(1) { top: -8px; }
.dwp-burger__bars i:nth-child(2) { top: 0; }
.dwp-burger__bars i:nth-child(3) { top: 8px; }
.dwp-panel-open .dwp-burger__bars i:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.dwp-panel-open .dwp-burger__bars i:nth-child(2) { opacity: 0; }
.dwp-panel-open .dwp-burger__bars i:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.dwp-panel { display: none; }
.dwp-panel-shade { display: none; }

@media (max-width: 980px) {
	.dwp-topbar, .dwp-navbar { display: none; }
	.dwp-burger { display: block; }
	.dwp-panel {
		display: block; position: fixed; top: 0; right: 0; bottom: 0; z-index: 10001;
		width: 300px; padding: 40px 25px 0; background: #0a0a0a;
		transform: translateX(100%); transition: transform .4s ease; visibility: hidden;
	}
	.dwp-panel-open .dwp-panel { transform: none; visibility: visible; }
	.dwp-panel-shade { position: fixed; inset: 0; z-index: 10000; }
	.dwp-panel-shade:not([hidden]) { display: block; }
	.dwp-panel__menu li { height: 49px; }
	.dwp-panel__menu a { display: block; color: #fff; font: 500 14px/49px var(--dwp-font-body); }
}

/* ---------- Przyciski ---------- */
.dwp-btn { display: inline-block; cursor: pointer; text-align: center; transition: background-color .3s, color .3s; }
.dwp-btn--hero {
	margin-bottom: 29px; padding: 0 18px;
	border: 1px solid #fff; color: #fff; font: 500 18px/30.6px var(--dwp-font-text); text-transform: uppercase;
}
.dwp-btn--hero:hover { background: rgba(255, 255, 255, 0.1); }
.dwp-btn--popup {
	padding: 5.5px 17px; border: 1px solid #000; border-radius: 15px;
	color: #000; font: 400 17px/1.7em var(--dwp-font-popup);
}
.dwp-btn--popup:hover { background: rgba(0, 0, 0, 0.05); }
.dwp-btn--flip { padding: 10px 20px; border: 1px solid #fff; background: #fff; color: var(--dwp-text); font: 500 16px/1.3em var(--dwp-font-text); }
.dwp-btn--flip:hover { background: transparent; color: var(--dwp-text); border-color: var(--dwp-text); }
.dwp-btn--form {
	padding: 4.5px 15px; border: 1px solid #000; border-radius: 20px; background: transparent;
	color: #000; font: 500 15px/1.7em var(--dwp-font-text); text-transform: uppercase;
}
.dwp-btn--form:hover { background: rgba(0, 0, 0, 0.05); }

/* ---------- Linie i separatory ---------- */
.dwp-divider { position: relative; height: 23px; margin: 0 auto; }
.dwp-divider::before { content: ""; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid #fff; }
.dwp-divider--60 { width: 60%; margin-bottom: 10px; }
.dwp-divider--50 { width: 50%; }
.dwp-line { padding: 0; text-align: center; line-height: 0; }
.dwp-main .dwp-line img { display: inline-block; width: 10px; height: 100px; max-width: none; }

/* ---------- Baner ---------- */
.dwp-hero {
	position: relative; display: flex; flex-direction: column; justify-content: center;
	height: 100vh; min-height: 480px; overflow: hidden;
	background: #3a3a3a;
	color: #fff; text-align: center;
}
.dwp-hero--video { background-attachment: scroll; background-color: transparent; }
.dwp-hero__bg { position: absolute; top: 0; left: 0; width: 100%; height: 130%; background: center top / cover no-repeat; will-change: transform; }
.dwp-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dwp-hero__inner, .dwp-hero__bottom { position: relative; z-index: 2; width: 80%; max-width: var(--dwp-content); margin: 0 auto; }
.dwp-hero__inner { padding: var(--dwp-row-pad) 0; }
.dwp-hero__logo { margin: 0 auto 29px; line-height: 0; }
.dwp-hero__logo img { width: 100%; height: auto; }
.dwp-hero__title { padding-bottom: 10px; font: 500 48px/48px var(--dwp-font-head); text-transform: uppercase; color: #fff; }
.dwp-hero__subtitle { padding-bottom: 10px; font: 500 var(--dwp-sub, 34px)/var(--dwp-sub, 34px) var(--dwp-font-head); text-transform: uppercase; color: #fff; }
.dwp-hero--home .dwp-hero__subtitle:last-of-type { margin-bottom: 22px; }
.dwp-hero__more { display: block; width: 50px; height: 50px; margin: 0 auto; color: #fff; }
.dwp-hero__more svg { display: block; width: 26px; height: 23px; margin: 13.5px auto; }
.dwp-hero--home .dwp-hero__more { position: absolute; left: 50%; bottom: 31px; z-index: 2; margin-left: -25px; }

.dwp-hero--page .dwp-hero__logo { position: absolute; z-index: 2; top: calc(10vh + var(--dwp-row-pad)); left: 0; right: 0; margin: 0 auto; }
.dwp-hero--page { justify-content: flex-end; }
.dwp-hero--page .dwp-hero__bottom { padding: 0 0 calc(var(--dwp-row-pad) + 4px); }
.dwp-hero--page .dwp-hero__bottom .dwp-divider { margin-top: calc(8px + var(--dwp-gap, 0px)); margin-bottom: 29px; }

/* ---------- Elementor: zdjęcie domyślnych odstępów ---------- */
/* Odstępy kontenerów sterują zmienne Elementora; wartości z edytora (specyficzność wyższa) nadpisują poniższe domyślne. */
.dwp-main .e-con,
.dwp-main .elementor-section { --gap: 0px; --row-gap: 0px; --column-gap: 0px; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --margin-top: 0px; --margin-bottom: 0px; --margin-left: 0px; --margin-right: 0px; --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px; --height: auto; gap: 0; }
.dwp-main .elementor-widget:not(:last-child) { margin-block-end: 0; }
.dwp-main .elementor-widget-container { margin: 0; padding: 0; }
.dwp-main .elementor-widget-image img { display: block; width: 100%; height: auto; }

/* ---------- Sekcje i wiersze ---------- */
.dwp-main .dwp-sec { position: relative; width: 100%; background-color: var(--dwp-bg); --padding-top: 54px; --padding-bottom: 54px; }
.dwp-main .dwp-sec--lines { background-image: url("assets/img/line-bg.png"); background-size: cover; background-position: center; background-repeat: no-repeat; }
.dwp-main .dwp-sec--band { height: 65vh; border-top: 20px solid var(--dwp-grey); border-bottom: 20px solid var(--dwp-grey); background-size: cover; background-position: center; background-attachment: fixed; --padding-top: 0px; --padding-bottom: 0px; }
.dwp-main .dwp-r { width: 80%; max-width: var(--dwp-content); margin-left: auto; margin-right: auto; --padding-top: 27px; --padding-bottom: 27px; }
.dwp-main .dwp-r--full { width: 100%; max-width: none; }
.dwp-main .dwp-r--90 { width: 90%; max-width: 90%; }
.dwp-main .dwp-r > .elementor-widget:not(:last-child),
.dwp-main .dwp-c > .elementor-widget:not(:last-child) { margin-bottom: 30px; }
.dwp-main .dwp-cols { --flex-direction: row; flex-direction: row; justify-content: space-between; align-items: stretch; }
.dwp-main .dwp-cols > .dwp-c { flex: 0 0 auto; }
.dwp-main .dwp-cols.dwp-gut1 > .dwp-c { width: 50%; }
.dwp-main .dwp-cols.dwp-gut2 > .dwp-c { width: 48.5%; }
.dwp-main .dwp-cols.dwp-gut3 > .dwp-c { width: 47.25%; }
.dwp-main .dwp-cols.dwp-cols3 > .dwp-c { width: 31.3%; }
.dwp-main .dwp-c { width: 100%; }

/* ---------- Teksty ---------- */
.dwp-main .dwp-text { margin-left: auto; margin-right: auto; text-align: center; color: var(--dwp-text); }
.dwp-main .dwp-text p { padding: 0 0 1em; font: 500 15px/23.8px var(--dwp-font-text); color: var(--dwp-text); }
.dwp-main .dwp-text p:last-child { padding-bottom: 0; }
.dwp-main .dwp-text h4 { font: 500 22px/28.6px var(--dwp-font-head); text-transform: uppercase; color: var(--dwp-text); padding-bottom: 10px; }
.dwp-main .dwp-text--about { width: 60%; padding: 2px 50px; margin-bottom: 0 !important; }
.dwp-main .dwp-text--wide { width: 70%; }
.dwp-main .dwp-text--left { width: 100%; text-align: left; }
.dwp-main .dwp-text--left h3 { font: 600 30px/30px var(--dwp-font-head); color: var(--dwp-text); padding-bottom: 10px; }
.dwp-main .dwp-text--left p { font: 500 17px/25.5px var(--dwp-font-text); padding: 0; }
.dwp-main .dwp-text--wide p { font: 500 17px/25.5px var(--dwp-font-text); }
.dwp-main .dwp-cards { margin-bottom: 5vh; }
.dwp-main .dwp-photo { width: 100%; }
.dwp-main .dwp-photo--75 { width: 75%; margin-left: auto; margin-right: auto; }
.dwp-main .dwp-igwrap { width: 80%; margin: 25px auto; }
.dwp-main .dwp-slider-wrap { width: 100%; margin-top: -5px; }
.dwp-main .dwp-r > .elementor-widget.dwp-slider-wrap:not(:last-child) { margin-bottom: 10px; }
.dwp-main .dwp-legal { color: var(--dwp-text); }
.dwp-main .dwp-legal h1 { font: 500 30px/30px var(--dwp-font-body); padding-bottom: 10px; color: var(--dwp-text); text-align: center; }
.dwp-main .dwp-legal h2 { font: 500 26px/26px var(--dwp-font-body); padding-bottom: 10px; color: var(--dwp-text); }
.dwp-main .dwp-legal h3, .dwp-main .dwp-legal h4 { font: 500 20px/1.3em var(--dwp-font-body); padding-bottom: 10px; color: var(--dwp-text); }
.dwp-main .dwp-legal p { padding: 0 0 14px; font: 500 14px/23.8px var(--dwp-font-body); }
.dwp-main .dwp-legal p:last-of-type { padding-bottom: 0; }
.dwp-main .dwp-legal li p { line-height: 26px; }
.dwp-main .dwp-legal small { font-size: 100%; }
.dwp-main .dwp-legal ul, .dwp-main .dwp-legal ol { margin: 0; padding: 0 0 23px 14px; line-height: 26px; }
.dwp-main .dwp-legal ul { list-style: disc outside; }
.dwp-main .dwp-legal ol { list-style: decimal outside; }
.dwp-main .dwp-legal li { padding: 0; font: 500 14px/26px var(--dwp-font-body); }
.dwp-main .dwp-legal a { color: var(--dwp-text); text-decoration: underline; }
.dwp-main .dwp-legal table { width: 100%; border-collapse: collapse; }
.dwp-main .dwp-legal td, .dwp-main .dwp-legal th { padding: 6px 10px; border: 1px solid #ddd; text-align: left; vertical-align: top; }

/* ---------- Karty ze zdjęciem ---------- */
.dwp-main .dwp-cards { display: grid; grid-template-columns: 48.5% 48.5%; justify-content: space-between; row-gap: 5vh; width: 90%; margin-left: auto; margin-right: auto; padding-top: 0; padding-bottom: 0; }
.dwp-main .dwp-cards > .elementor-widget { display: flex; }
.dwp-main .dwp-cards .elementor-widget-container { display: flex; width: 100%; height: 100%; }
.dwp-card { position: relative; width: 100%; height: 100%; margin: 0; background: #000; line-height: 0; overflow: hidden; }
.dwp-card__img { display: block; width: 100%; height: auto; min-height: 100%; object-fit: cover; filter: brightness(0.5) blur(1px); }
.dwp-card__body {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center;
	padding: 0 5%; line-height: 22.1px; color: #fff; text-align: center;
}
.dwp-card__body h5 { font: 600 25px/25px var(--dwp-font-head); text-transform: uppercase; color: #fff; padding-bottom: 10px; }
.dwp-card__body p { font: 500 17px/22.1px var(--dwp-font-text); color: #fff; padding: 0; }

/* ---------- Odwracana karta ---------- */
.dwp-flip { position: relative; width: 100%; height: 300px; margin-bottom: 7px; perspective: 1200px; }
.dwp-flip__inner { position: relative; width: 100%; height: 100%; transition: transform .6s; transform-style: preserve-3d; }
.dwp-flip:hover .dwp-flip__inner, .dwp-flip:focus-within .dwp-flip__inner, .dwp-flip:focus .dwp-flip__inner { transform: rotateY(180deg); }
.dwp-flip__front, .dwp-flip__back { border-radius: 3px; overflow: hidden;
	position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
	backface-visibility: hidden; -webkit-backface-visibility: hidden; text-align: center;
}
.dwp-flip__front { justify-content: flex-start; align-items: stretch; background: #555 center / cover no-repeat; }
.dwp-flip__front::before { content: ""; position: absolute; inset: 0; background: rgba(80,80,80,0.55); }
.dwp-flip__front h4, .dwp-flip__back h4 { font: 600 35px/35px var(--dwp-font-head); letter-spacing: 1px; padding: 0 0 10px; }
.dwp-flip__front h4 { position: relative; margin: 20px 0 0 16px; padding-top: 20%; color: #fff; text-align: center; }
.dwp-flip--full .dwp-flip__front h4 { padding-top: 10%; }
.dwp-flip__back { background: var(--dwp-grey); transform: rotateY(180deg); }
.dwp-flip__back h4 { color: var(--dwp-text); }
.dwp-flip__back .dwp-btn { margin-top: 30px; background: #fff; }

/* ---------- Galeria ---------- */
.dwp-gallery { display: flex; align-items: flex-start; gap: 10px; width: 100%; padding-bottom: 21px; }
.dwp-gallery:not(.is-ready) { display: block; column-count: var(--dwp-gcols, 3); column-gap: 10px; }
.dwp-gallery:not(.is-ready) .dwp-gallery__item { margin-bottom: 10px; break-inside: avoid; }
.dwp-gallery__col { display: flex; flex: 1 1 0; flex-direction: column; gap: 10px; min-width: 0; }
.dwp-gallery__item { position: relative; display: block; line-height: 0; overflow: hidden; }
.dwp-gallery__item::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); opacity: 0; transition: opacity .5s; pointer-events: none; }
.dwp-gallery__item:hover::after, .dwp-gallery__item:focus-visible::after { opacity: 1; }
.dwp-gallery__item img { display: block; width: 100%; height: auto; }
/* ---------- Slider opinii ---------- */
.dwp-slider { display: grid; position: relative; width: 100%; text-align: center; }
.dwp-slider__slide { grid-area: 1 / 1; padding: 0 6%; opacity: 0; transition: opacity .8s ease; pointer-events: none; }
.dwp-slider__desc { padding: 20px 8% 3px; }
.dwp-slider__slide.is-active { opacity: 1; pointer-events: auto; }
.dwp-slider__slide p { padding: 0; font: 500 17px/23.8px var(--dwp-font-text); color: var(--dwp-text); }
.dwp-slider__author { padding-top: 17px !important; }

/* ---------- Kontakt ---------- */
.dwp-contact__title { font: 500 50px/50px var(--dwp-font-head); color: var(--dwp-text); padding-bottom: 10px; }
.dwp-contact__row { display: flex; align-items: center; margin: 0; padding: 0; font: 500 20px/40px var(--dwp-font-text); }
.dwp-contact__row .dwp-ico { margin-right: 8px; font-size: 20px; }
.dwp-map { margin-top: 19px; height: 280px; }
.dwp-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.dwp-form p { margin: 0; padding-bottom: 3%; }
.dwp-form > form > p:first-of-type { padding-top: 0; }
.dwp-form input[type="text"], .dwp-form input[type="email"], .dwp-form input[type="tel"], .dwp-form select, .dwp-form textarea {
	display: block; width: 100%; padding: 16px; border: 0; border-radius: 3px;
	height: 51px; background: #eee; color: var(--dwp-text); font: 500 14px/1.7em var(--dwp-font-body);
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.dwp-form textarea { height: 150px; resize: vertical; }
.dwp-form select { height: 48px; }
.dwp-form select { appearance: auto; }
.dwp-form .dwp-form__consent { padding-bottom: 19px; }
.dwp-form__consent label { display: flex; align-items: flex-start; gap: 8px; font: 500 12px/20.4px var(--dwp-font-body); color: var(--dwp-text); }
.dwp-form__consent input { margin-top: 4px; }
.dwp-form .dwp-form__submit { padding-bottom: 0; text-align: right; }
.dwp-form__trap { position: absolute; left: -9999px; }
.dwp-form__msg { padding: 12px 16px; margin-bottom: 20px; border-radius: 3px; }
.dwp-form__msg--ok { background: #e7f3e8; color: #2d6a3a; }
.dwp-form__msg--err { background: #fbe9e9; color: #8a2d2d; }

/* ---------- Media społecznościowe ---------- */
.dwp-social { display: flex; justify-content: center; gap: 4px; padding: 0 0 30px; }
.dwp-social a { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; color: #fff; }
.dwp-social svg { width: 16px; height: 16px; }
.dwp-social__fb { background: #3b5998; }
.dwp-social__ig { background: #ea2c59; }

/* ---------- Stopka ---------- */
.dwp-footer__top { padding: var(--dwp-sec-pad) 0; background: rgba(0, 0, 0, 0.5) center bottom / cover no-repeat; background-blend-mode: overlay; }
.dwp-footer__inner { width: 80%; max-width: var(--dwp-content); margin: 0 auto; padding: var(--dwp-row-pad) 0; text-align: center; }
.dwp-footer__inner p { padding: 0; font: 500 20px/23.8px var(--dwp-font-head); color: #fff; }
.dwp-footer__question { margin-bottom: 24px; }
.dwp-footer__inner a { color: #fff; }
.dwp-footer__bar { background: var(--dwp-grey); padding: 15px 0; text-align: center; }
.dwp-footer__links { display: block; margin: 0; padding: 0 10%; font: 500 15px/23.8px var(--dwp-font-text); }
.dwp-footer__links li { display: inline; }
.dwp-footer__links li:not(:last-child)::after { content: " \2219 "; }
.dwp-footer__links a { color: var(--dwp-text); }

/* ---------- Okno „Wolne terminy” ---------- */
.dwp-popup { position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.8); }
.dwp-popup[hidden] { display: none; }
.dwp-popup__box { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 680px; min-height: 281px; max-width: calc(100% - 32px); padding: 30px; background: #fff; text-align: center; font-family: var(--dwp-font-popup); }
.dwp-popup__box h4 { font: 400 25px/18.5px var(--dwp-font-popup); color: var(--dwp-text); }
.dwp-popup__box p { padding-bottom: 14px; font: 400 17px/1.7em var(--dwp-font-popup); color: var(--dwp-text); }
.dwp-popup__close { position: absolute; top: 14px; right: 14px; width: 16px; height: 16px; padding: 0; border: 0; background: none; color: var(--dwp-text); cursor: pointer; }
.dwp-popup__close svg { width: 100%; height: 100%; }

/* ---------- Strony zwykłe i 404 ---------- */
.dwp-main--plain { padding: 160px 0 80px; }
.dwp-plain { width: 80%; max-width: var(--dwp-content); margin: 0 auto; }
.dwp-plain--center { text-align: center; }
.dwp-plain h1 { font: 500 40px/1.3em var(--dwp-font-head); text-transform: uppercase; }

/* ---------- Tablet i telefon ---------- */
@media (max-width: 980px) {
	:root { --dwp-sec-pad: 50px; --dwp-row-pad: 30px; }
	.dwp-main .dwp-sec { --padding-top: 50px; --padding-bottom: 50px; }
	.dwp-main .dwp-r { --padding-top: 30px; --padding-bottom: 30px; }
	.dwp-main .dwp-sec--band { --padding-top: 0px; --padding-bottom: 0px; background-attachment: scroll; }
	.dwp-hero__bg { transform: none !important; }
	.dwp-main .dwp-cols { --flex-direction: column !important; flex-direction: column !important; }
	.dwp-main .dwp-cols > .dwp-c,
	.dwp-main .dwp-cols.dwp-gut1 > .dwp-c,
	.dwp-main .dwp-cols.dwp-gut2 > .dwp-c,
	.dwp-main .dwp-cols.dwp-gut3 > .dwp-c,
	.dwp-main .dwp-cols.dwp-cols3 > .dwp-c { width: 100%; }
	.dwp-main .dwp-cols.dwp-gut2 > .dwp-c:not(:last-child),
	.dwp-main .dwp-cols.dwp-gut3 > .dwp-c:not(:last-child),
	.dwp-main .dwp-cols.dwp-cols3 > .dwp-c:not(:last-child) { margin-bottom: 30px; }
	.dwp-main .dwp-text--left { margin-bottom: 0; }
	.dwp-main .dwp-cards { grid-template-columns: 100%; row-gap: 30px; margin-bottom: 3vh; }
	.dwp-main .dwp-cards .elementor-widget-container { display: block; }
	.dwp-card { height: auto; overflow: visible; background: none; line-height: normal; }
	.dwp-card__img { min-height: 0; }
	.dwp-card__body { position: static; display: block; padding: 30px 5% 0; }
	.dwp-card__body h5, .dwp-card__body p { color: var(--dwp-text); }
	.dwp-map { height: 350px; }
	.dwp-form .dwp-form__consent { padding-bottom: 5px; }
	.dwp-gallery:not(.is-ready) { column-count: 2; }
}
@media (max-width: 767px) {
	.dwp-gallery:not(.is-ready) { column-count: 1; }
	.dwp-main .dwp-text--left { padding-bottom: 25px; }
	.dwp-map { height: 200px; }
}

/* ---------- Pomocnicze odstępy wierszy (nadpisują wartości domyślne) ---------- */
.dwp-main .dwp-pt0 { --padding-top: 0px; }
.dwp-main .dwp-pt35 { --padding-top: 35px; }
.dwp-main .dwp-pb0 { --padding-bottom: 0px; }
.dwp-main .dwp-pb3 { --padding-bottom: 3px; }
.dwp-main .dwp-pb35 { --padding-bottom: 35px; }
.dwp-main .dwp-mb-16 { --margin-bottom: -16px; }

/* ---------- Pojawianie się elementów przy przewijaniu ---------- */
@keyframes dwp-fade { from { opacity: 0; } to { opacity: 1; } }
html.dwp-js .dwp-fx:not(.is-in) { opacity: 0; }
html.dwp-js .dwp-fx.is-in { animation: dwp-fade 1s ease-in-out both; }
.dwp-hero__inner, .dwp-hero--page .dwp-hero__logo, .dwp-hero--page .dwp-hero__bottom { animation: dwp-fade 1s ease-in-out both; }
body.elementor-editor-active .dwp-fx, .elementor-editor-active .dwp-fx { opacity: 1 !important; animation: none !important; }
@media (prefers-reduced-motion: reduce) {
	html.dwp-js .dwp-fx:not(.is-in) { opacity: 1; }
	html.dwp-js .dwp-fx.is-in, .dwp-hero__inner, .dwp-hero--page .dwp-hero__logo, .dwp-hero--page .dwp-hero__bottom { animation: none; }
}

/* ---------- Powiększenie zdjęcia z galerii ---------- */
html.dwp-lb-open { overflow: hidden; }
.dwp-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(0, 0, 0, 0.8); }
.dwp-lb__stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 8px; }
.dwp-lb__fig { position: relative; max-width: 100%; margin: 0; padding: 40px 0; line-height: 0; }
.dwp-lb__img { display: block; width: auto; height: auto; max-width: 100%; max-height: calc(100vh - 80px); cursor: pointer; transform-origin: center center; }
.dwp-lb__img.is-zooming { transition: transform .3s ease-in-out; }
.dwp-lb__bar { position: absolute; left: 0; right: 0; bottom: 36px; height: 40px; background: rgba(0, 0, 0, 0.72); transition: opacity .15s; }
.dwp-lb__count { position: absolute; top: 2px; right: 21px; font: 400 12px/18px var(--dwp-font-body); color: #ccc; }
.dwp-lb.is-busy .dwp-lb__bar { opacity: 0; }
.dwp-lb__close, .dwp-lb__arrow { position: absolute; z-index: 2; margin: 0; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.dwp-lb__close { top: 10px; right: 10px; width: 44px; height: 44px; font: 300 64px/40px Arial, sans-serif; text-align: center; opacity: 1; }
.dwp-lb__arrow { top: 50%; width: 48px; height: 48px; margin-top: -24px; opacity: 0.65; transition: opacity .2s; }
.dwp-lb__arrow:hover, .dwp-lb__arrow:focus-visible { opacity: 1; }
.dwp-lb__arrow--prev { left: 10px; }
.dwp-lb__arrow--next { right: 4px; }
.dwp-lb__arrow svg { display: block; width: 22px; height: 36px; margin: 6px auto; }
.dwp-lb__close:focus-visible, .dwp-lb__arrow:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }

/* ---------- Pasek admina (zalogowany użytkownik) ---------- */
.admin-bar .dwp-header { top: var(--wp-admin--admin-bar--height, 32px); }
.admin-bar .dwp-header.is-stuck .dwp-navbar { top: var(--dwp-bar, var(--wp-admin--admin-bar--height, 32px)); }
.admin-bar .dwp-burger { top: calc(25px + var(--dwp-bar, var(--wp-admin--admin-bar--height, 32px))); }
.admin-bar .dwp-panel { top: var(--dwp-bar, var(--wp-admin--admin-bar--height, 32px)); }

/* ---------- Karta pokoju i okna rezerwacji / galerii ---------- */
.dwp-room { position: relative; margin-bottom: 17px; }
.dwp-room__media { position: relative; line-height: 0; }
.dwp-room__media img { display: block; width: 100%; height: auto; }
.dwp-room__media::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.4); pointer-events: none; }
.dwp-room__body { position: absolute; inset: 0; z-index: 2; color: #fff; text-align: center; }
.dwp-room__specs { position: absolute; top: 25px; left: 0; right: 0; margin: 0; font: 500 20px/25.5px var(--dwp-font-text); }
.dwp-room__specs span + span { margin-left: 20px; }
.dwp-room__specs svg { width: 1em; height: 1em; vertical-align: -0.125em; }
.dwp-room__title { position: absolute; top: 176px; left: 0; right: 0; margin: 0; font: 500 60px/23.8px var(--dwp-font-head); }
.dwp-room__actions { position: absolute; left: 25px; right: 25px; bottom: 25px; display: flex; justify-content: space-between; align-items: flex-end; }
.dwp-room__btn {
	display: inline-block; padding: 6px 20px; border: 1px solid #fff; border-radius: 25px;
	background: transparent; color: #fff; font: 500 20px/34px var(--dwp-font-body); cursor: pointer; transition: background-color .3s, color .3s;
}
a.dwp-room__btn:hover { background: rgba(255, 255, 255, 0.15); }
.dwp-room__btn.is-off { cursor: default; }
.dwp-room__actions:has(> :only-child) { justify-content: flex-start; }

.dwp-modal { overflow-y: auto; padding: 16px; background: rgba(0, 0, 0, 0.6); }
.dwp-modal__box { position: relative; width: 786px; max-width: 100%; max-height: calc(100vh - 32px); margin: auto; padding: 43px; overflow-y: auto; background: #fff; color: var(--dwp-text); font: 500 14px/1.7em var(--dwp-font-text); }
.dwp-modal--book .dwp-modal__box { display: grid; grid-template-columns: 2fr 3fr; gap: 40px; align-items: start; }
.dwp-modal--gallery .dwp-modal__box { width: 847px; padding: 27px 35px; }
.dwp-modal .dwp-popup__close { top: 13px; right: 14px; z-index: 3; }
.dwp-modal__text h4 { margin: 0 0 10px; font: 500 28px/1.2em var(--dwp-font-head); color: var(--dwp-text); }
.dwp-modal__text p { margin: 0 0 10px; padding: 0; font: 500 14px/1.7em var(--dwp-font-text); }
.dwp-modal__text ul { margin: 0 0 20px; padding-left: 1em; list-style: disc; }
.dwp-modal__text li { padding-bottom: 3px; }
.dwp-modal__text h4:not(:first-child) { margin-top: 24px; }
.dwp-modal__form form.cart { margin: 0; }
.dwp-modal__form .wc-bookings-booking-form { padding: 14px; border: 1px solid #ddd; }
.dwp-modal__form .single_add_to_cart_button {
	margin-top: 15px; padding: 6px 20px; border: 1px solid currentColor; border-radius: 25px;
	background: transparent; color: var(--dwp-text); font: 500 20px/1.7em var(--dwp-font-text); cursor: pointer;
}
.dwp-modal__form .single_add_to_cart_button:hover { background: rgba(0, 0, 0, 0.05); }
.dwp-modal__form .single_add_to_cart_button.disabled { opacity: .5; cursor: not-allowed; }
.dwp-modal__form .price, .dwp-modal__form .wc-bookings-booking-cost { font-weight: 600; }
.dwp-modal__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 19px 38px; align-items: center; }
.dwp-modal__photos img { display: block; width: 100%; height: auto; }
.dwp-modal__photos--stack { display: block; column-count: 2; column-gap: 38px; }
.dwp-modal__photos--stack img { margin-bottom: 19px; break-inside: avoid; }

@media (max-width: 980px) {
	.dwp-room { display: flex; flex-direction: column; margin-bottom: 50px; color: var(--dwp-text); text-align: center; }
	.dwp-room__body { position: static; order: 1; display: flex; flex-direction: column; align-items: stretch; color: var(--dwp-text); }
	.dwp-room__media { order: 2; }
	.dwp-room__media::after { display: none; }
	.dwp-room__specs, .dwp-room__title, .dwp-room__actions { position: static; }
	.dwp-room__title { order: 1; margin-bottom: 30px; }
	.dwp-room__specs { order: 2; margin-bottom: -9px; }
	.dwp-room__actions { order: 3; flex-direction: column; align-items: center; margin-top: 34px; }
	.dwp-room__btn { margin-bottom: 13px; border-color: var(--dwp-text); color: var(--dwp-text); }
	a.dwp-room__btn:hover { background: rgba(0, 0, 0, 0.05); }
	.dwp-room__actions .dwp-room__btn:last-child { margin-bottom: 30px; }
	.dwp-modal--book .dwp-modal__box { grid-template-columns: 1fr; gap: 24px; padding: 40px 20px 24px; }
	.dwp-modal--gallery .dwp-modal__box { padding: 40px 16px 16px; }
	.dwp-modal__photos, .dwp-modal__photos--stack { display: block; column-count: 1; }
	.dwp-modal__photos img { margin-bottom: 14px; }
}

/* ---------- Strona hotelu: tytuły sekcji, ikony udogodnień, opinia ---------- */
.dwp-main .dwp-text--title { width: 100%; }
.dwp-main .dwp-text--title p { font: 500 35px/45.5px var(--dwp-font-head); padding: 0; }
.dwp-main .dwp-cols.dwp-cols4 > .dwp-c { width: 21.3%; }
.dwp-main .dwp-feature { align-items: center; }
.dwp-main .dwp-feature .dwp-feature__icon { width: 52px; margin: 0 auto 16px; }
.dwp-main .dwp-feature .dwp-feature__icon img { width: 52px; height: auto; }
.dwp-main .dwp-text--feature { width: 100%; }
.dwp-main .dwp-text--feature p { font: 500 14px/23.8px var(--dwp-font-text); padding: 0 0 1em; }
.dwp-main .dwp-text--feature p:last-child { padding-bottom: 0; }
.dwp-main .dwp-text--feature strong { font-weight: 700; }
.dwp-main .dwp-review { justify-content: center; align-items: center; gap: 65px; }
.dwp-main .dwp-review .dwp-review__logo { width: 104px; flex: 0 0 auto; }
.dwp-main .dwp-review .dwp-review__logo img { width: 104px; height: auto; }
.dwp-main .dwp-text--review { width: auto; }
.dwp-main .dwp-text--review p { font: 500 20px/23.8px var(--dwp-font-text); padding: 0; }
@media (max-width: 980px) {
	.dwp-main .dwp-cols.dwp-cols4 { --flex-direction: column !important; flex-direction: column !important; }
	.dwp-main .dwp-cols.dwp-cols4 > .dwp-c { width: 100%; }
	.dwp-main .dwp-cols.dwp-cols4 > .dwp-c:not(:last-child) { margin-bottom: 30px; }
	.dwp-main .dwp-feature .dwp-feature__icon, .dwp-main .dwp-feature .dwp-feature__icon img { width: 39px; }
	.dwp-main .dwp-review { --flex-direction: column !important; flex-direction: column !important; gap: 20px; }
	.dwp-main .dwp-review .dwp-review__logo, .dwp-main .dwp-review .dwp-review__logo img { width: 61px; }
}
.dwp-main .dwp-text--tight p { padding-bottom: 0; }
.dwp-room__media { box-shadow: 0 12px 18px -6px rgba(0, 0, 0, 0.3); }
.dwp-main .dwp-r.dwp-cols4 { width: 75%; justify-content: space-between; }
.dwp-main .dwp-review > .elementor-widget { width: auto; flex: 0 0 auto; }
.dwp-main .dwp-pb15 { --padding-bottom: 15px; }
.dwp-main .dwp-feature > .elementor-widget:not(:last-child) { margin-bottom: 16px; }
.dwp-main .dwp-review { padding-left: 52px; }
.dwp-main .dwp-review > .elementor-widget { margin-left: 0; margin-right: 0; }
.dwp-main .dwp-text--review strong { font-weight: 700; }
@media (max-width: 980px) { .dwp-main .dwp-review { padding-left: 0; } }
.dwp-main .dwp-r.dwp-cols4 > .dwp-c { width: 22.8%; }
.dwp-main .dwp-pt15 { --padding-top: 15px; }
.dwp-room__specs svg { width: auto; height: 1em; }
@media (max-width: 980px) {
	.dwp-room__media::after { display: block; }
	.dwp-room__actions { flex-direction: column-reverse; margin-top: 5px; }
	.dwp-room__btn, .dwp-room__btn:last-child { margin-bottom: 30px; }
	.dwp-room__actions .dwp-room__btn:last-child { margin-bottom: 30px; }
	.dwp-room__title { margin-top: -7px; }
}
@media (max-width: 980px) {
	.dwp-main .dwp-r.dwp-cols4 { --flex-direction: row !important; flex-direction: row !important; flex-wrap: wrap; width: 71%; }
	.dwp-main .dwp-r.dwp-cols4 > .dwp-c { width: 50%; margin-bottom: 30px !important; }
}
@media (max-width: 767px) {
	.dwp-main .dwp-r.dwp-cols4 { --flex-direction: column !important; flex-direction: column !important; flex-wrap: nowrap; width: 80%; }
	.dwp-main .dwp-r.dwp-cols4 > .dwp-c { width: 100%; }
}
.dwp-modal__form .wc-bookings-booking-form { margin: 0; padding: 14px 14px 0; border: 1px solid #ddd; background: #fff; }
.dwp-modal__form .wc-bookings-booking-form .form-field { margin: 0 0 12px; }
.dwp-modal__form .wc-bookings-booking-form label { font: 500 14px/1.7em var(--dwp-font-body); color: var(--dwp-text); }
.dwp-modal__form .wc-bookings-booking-form select { width: 100%; height: 26px; border: 1px solid #888; border-radius: 2px; background: #fff; color: var(--dwp-text); font: 500 13px var(--dwp-font-body); }
.dwp-modal__form .wc-bookings-date-picker { margin: 0; }
.dwp-modal__form .wc-bookings-date-picker .ui-datepicker { width: 100%; margin: 0 auto; padding: 0; border: 0; box-shadow: none; }
.dwp-modal__form .wc-bookings-date-picker .ui-datepicker td, .dwp-modal__form .wc-bookings-date-picker .ui-datepicker th { font-family: var(--dwp-font-body); }
.dwp-modal__form .wc-bookings-date-picker .ui-datepicker-header { background: #727272; }
.dwp-modal__form .wc-bookings-date-picker .ui-datepicker-title { color: #fff; text-transform: uppercase; }
.dwp-modal .single_add_to_cart_button.wc-bookings-booking-form-button,
.dwp-modal .single_add_to_cart_button {
	display: inline-block; margin-top: 15px; padding: 6px 20px; border: 1px solid var(--dwp-text); border-radius: 25px;
	background: transparent; color: var(--dwp-text); font: 500 20px/1.7em var(--dwp-font-text); text-shadow: none; box-shadow: none;
}
.dwp-modal .single_add_to_cart_button.disabled, .dwp-modal .single_add_to_cart_button:disabled { opacity: .5; background: transparent; }
.dwp-modal .single_add_to_cart_button:not(.disabled):hover { background: rgba(0, 0, 0, 0.05); }
.dwp-modal .single_add_to_cart_button { background: transparent !important; background-image: none !important; color: var(--dwp-text) !important; border: 1px solid var(--dwp-text) !important; }
.dwp-modal .single_add_to_cart_button.disabled { opacity: .5; }
.dwp-modal__form .wc-bookings-date-picker .picker, .dwp-modal__form .wc-bookings-date-picker .ui-datepicker-inline { border: 0 !important; }

/* ---------- Koszyk i zamówienie ---------- */
.dwp-main .dwp-text--ctitle { width: 70%; }
.dwp-main .dwp-text--ctitle p { font: 600 25px/1.5em var(--dwp-font-text); padding: 0; }
.dwp-main .dwp-shop { width: 100%; }
.dwp-main .dwp-shop .woocommerce { color: var(--dwp-text); font: 500 14px/1.7em var(--dwp-font-text); }
.dwp-main .dwp-shop .woocommerce-info, .dwp-main .dwp-shop .woocommerce-message, .dwp-main .dwp-shop .cart-empty {
	margin: 0; padding: 13px 16px; border: 0; background: #f2f2f2; color: var(--dwp-text); text-align: center; font: 500 17px/25.5px var(--dwp-font-text);
}
.dwp-main .dwp-shop .woocommerce-info::before, .dwp-main .dwp-shop .woocommerce-message::before { display: none; }
.dwp-main .dwp-shop .woocommerce-message, .dwp-main .dwp-shop .woocommerce-info, .dwp-main .dwp-shop .woocommerce-error { outline: 0; }
.dwp-main .dwp-shop .button, .dwp-main .dwp-shop button.button, .dwp-main .dwp-shop #place_order, .dwp-main .dwp-shop a.checkout-button {
	padding: 6px 20px; border: 1px solid var(--dwp-text); border-radius: 25px; background: transparent; color: var(--dwp-text);
	font: 500 17px/1.7em var(--dwp-font-text); text-shadow: none; box-shadow: none; transition: background-color .3s;
}
.dwp-main .dwp-shop .button:hover, .dwp-main .dwp-shop #place_order:hover, .dwp-main .dwp-shop a.checkout-button:hover { background: rgba(0, 0, 0, 0.05); color: var(--dwp-text); }
.dwp-main .dwp-shop a.checkout-button { display: block; text-align: center; font-size: 20px; }
.dwp-main .dwp-shop .button.disabled, .dwp-main .dwp-shop .button:disabled { opacity: .5; }
.dwp-main .dwp-shop input[type=text], .dwp-main .dwp-shop input[type=email], .dwp-main .dwp-shop input[type=tel], .dwp-main .dwp-shop textarea, .dwp-main .dwp-shop select { font-family: var(--dwp-font-text); color: var(--dwp-text); }
.dwp-main .dwp-text { overflow-wrap: break-word; }
@media (min-width: 981px) { .dwp-card__body { padding-top: 18px; } }

/* Przyciski w górnym pasku: oba na tej samej wysokości, czcionka i wymiary jak we wzorcu */
.dwp-topbar__ctas { align-self: flex-start; }
.dwp-topbar__cta { margin: 5px 5px 0 0; font-family: var(--dwp-font-text); font-weight: 500; font-size: 13px; line-height: 27.73px; }
.dwp-topbar__cta--solid { margin: 5px 0 0 5px; }
