/**
 * Apartamenty Szklarska Poręba – uzupełniający CSS motywu.
 *
 * Zasada: wszystko, co da się opisać w theme.json, jest w theme.json.
 * Tutaj tylko to, czego theme.json nie wyrazi: efekty hover, sticky header,
 * formularz rezerwacji, ikony udogodnień, stany fokusu i preferencje ruchu.
 *
 * Podejście mobile-first: style bazowe = telefon, media queries min-width w górę.
 * Ładowany na froncie i w edytorze (add_editor_style).
 */

/* ==========================================================================
   1. Tokeny pomocnicze
   ========================================================================== */
:root {
	--szp-ease: var(--wp--custom--transition, 280ms cubic-bezier(0.2, 0.7, 0.2, 1));
	--szp-line: var(--wp--preset--color--line, #e4ded4);
	--szp-focus: var(--wp--preset--color--accent-strong, #8a6a3f);
	--szp-muted-on-dark: #b5b5b5; /* 8.5:1 na #1A1A1A */
	--szp-header-offset: 0px;
}

/* ==========================================================================
   2. Baza
   ========================================================================== */
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--dark);
}

/* Sekcje przylegają do siebie – odstępy nadają same sekcje (padding). */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Kotwice nie chowają się pod przyklejonym nagłówkiem. */
:where([id]) {
	scroll-margin-top: calc(var(--szp-header-offset) + 6rem);
}

img {
	height: auto;
	max-width: 100%;
}

/* ==========================================================================
   3. Dostępność
   ========================================================================== */
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

/* Jednolity, wyraźny fokus (WCAG 2.4.7 / 2.4.11). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--szp-focus);
	outline-offset: 3px;
}

:where(.is-style-section-dark, .szp-hero) :where(a, button, input, select, textarea, summary):focus-visible {
	--szp-focus: var(--wp--preset--color--accent);
}

/* Link „Przejdź do treści” generowany przez WordPress. */
.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--dark);
	clip-path: none;
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	height: auto;
	left: 1rem;
	padding: 0.875rem 1.25rem;
	top: 1rem;
	width: auto;
	z-index: 100000;
}

/* Tryb wysokiego kontrastu (Windows). */
@media (forced-colors: active) {
	.szp-card,
	.szp-booking {
		border: 1px solid CanvasText;
	}

	.szp-feature::before {
		background: CanvasText;
	}
}

/* ==========================================================================
   4. Elementy wspólne
   ========================================================================== */
.szp-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--eyebrow, 0.22em);
	line-height: 1.4;
	text-transform: uppercase;
}

.wp-element-button,
.wp-block-button__link {
	transition:
		background-color var(--szp-ease),
		border-color var(--szp-ease),
		color var(--szp-ease);
}

.szp-section-head {
	margin-block-end: var(--wp--preset--spacing--10);
}

/* Na ciemnym tle tekst pomocniczy musi być jaśniejszy (kontrast AA). */
.is-style-section-dark .has-muted-color,
.szp-footer__muted {
	color: var(--szp-muted-on-dark) !important;
}

/* ==========================================================================
   5. Nagłówek (sticky)
   ========================================================================== */
.szp-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

@media (min-width: 601px) {
	.admin-bar .szp-site-header {
		top: 46px;
	}
}

@media (min-width: 783px) {
	.admin-bar .szp-site-header {
		top: 32px;
	}
}

.szp-header {
	border-bottom: 1px solid var(--szp-line);
}

/* Rozmycie na pseudo-elemencie, NIE na samym nagłówku: backdrop-filter tworzy
   blok zawierający dla position:fixed, co zamknęłoby mobilne menu (overlay)
   w wysokości paska nagłówka. */
@supports (backdrop-filter: blur(1px)) {
	.szp-header.has-light-background-color {
		background-color: transparent !important;
		isolation: isolate;
		position: relative;
	}

	.szp-header.has-light-background-color::before {
		backdrop-filter: saturate(1.4) blur(12px);
		background-color: rgb(250 250 250 / 0.9);
		content: "";
		inset: 0;
		position: absolute;
		z-index: -1;
	}
}

.szp-brand__mark {
	flex-shrink: 0;
	margin: 0;
}

/* Mobile: chowamy slogan i przycisk CTA – zostaje logo + hamburger. */
.szp-header .wp-block-site-tagline,
.szp-header .szp-header__cta {
	display: none;
}

@media (min-width: 782px) {
	.szp-header .szp-header__cta {
		display: flex;
	}
}

@media (min-width: 1024px) {
	.szp-header .wp-block-site-tagline {
		display: block;
	}
}

.szp-header__cta .wp-block-button__link {
	padding: 0.8rem 1.4rem;
}

/* Menu mobilne (overlay) – elegancka, duża typografia. */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
}

/* ==========================================================================
   6. Hero
   ========================================================================== */
.szp-hero .szp-eyebrow {
	margin-block-end: var(--wp--preset--spacing--20);
}

.szp-hero__title {
	letter-spacing: -0.015em;
	line-height: 1.02;
	text-wrap: balance;
}

.szp-hero__lead {
	font-size: clamp(1.0625rem, 0.95rem + 0.5vw, 1.3rem);
	line-height: 1.6;
	margin-inline: auto;
	max-width: 38rem;
	text-wrap: pretty;
}

@media (prefers-reduced-motion: no-preference) {
	.szp-hero .wp-block-cover__image-background,
	.szp-hero .wp-block-cover__video-background {
		animation: szp-hero-zoom 18s ease-out both;
	}

	.szp-hero .wp-block-cover__inner-container > * {
		animation: szp-fade-up 900ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}

	.szp-hero .wp-block-cover__inner-container > :nth-child(2) { animation-delay: 120ms; }
	.szp-hero .wp-block-cover__inner-container > :nth-child(3) { animation-delay: 240ms; }
	.szp-hero .wp-block-cover__inner-container > :nth-child(4) { animation-delay: 360ms; }
}

@keyframes szp-hero-zoom {
	from { transform: scale(1.08); }
	to { transform: scale(1); }
}

@keyframes szp-fade-up {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: none; }
}

/* ==========================================================================
   7. Ramka rezerwacji + formularz awaryjny [szp_booking_search]
   ========================================================================== */
.szp-booking {
	background: rgb(250 250 250 / 0.97);
	border-top: 2px solid var(--wp--preset--color--accent);
	box-shadow: var(--wp--preset--shadow--lifted);
	color: var(--wp--preset--color--dark);
	text-align: start;
}

.szp-booking__label {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Formularz reaguje na szerokość KONTENERA (container queries), a nie ekranu –
   dzięki temu ten sam shortcode działa w szerokiej ramce hero i w wąskiej
   karcie rezerwacji na podstronie apartamentu. */
.szp-booking-search {
	container-type: inline-size;
}

.szp-booking-form {
	align-items: end;
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: 1fr;
	margin: 0;
}

@container (min-width: 500px) {
	.szp-booking-form {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.szp-booking-form__submit {
		grid-column: 1 / -1;
	}
}

@container (min-width: 820px) {
	.szp-booking-form {
		grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	}

	.szp-booking-form__submit {
		grid-column: auto;
	}
}

.szp-booking-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
}

.szp-booking-form label {
	color: var(--wp--preset--color--dark);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.szp-booking-form :is(input, select) {
	background-color: var(--wp--preset--color--white);
	border: 1px solid #8f8f8f; /* 3.3:1 – granica pola widoczna (WCAG 1.4.11) */
	border-radius: 0;
	color: var(--wp--preset--color--dark);
	font: inherit;
	box-sizing: border-box;
	display: block;
	font-size: 1rem; /* min. 16px – iOS nie powiększa widoku */
	height: 3.25rem;
	line-height: 1.25;
	margin: 0;
	max-width: 100%;
	min-width: 0;
	padding: 0 0.9rem;
	width: 100%;
}

.szp-booking-form select {
	appearance: none;
}

.szp-booking-form select {
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 1.15rem) 50%, calc(100% - 0.8rem) 50%;
	background-repeat: no-repeat;
	background-size: 0.35rem 0.35rem;
	padding-inline-end: 2.25rem;
}

.szp-booking-form :is(input, select):hover {
	border-color: var(--wp--preset--color--dark);
}

.szp-booking-form__submit {
	display: flex;
}

.szp-booking-form__submit .wp-block-button__link {
	cursor: pointer;
	min-height: 3.25rem;
	white-space: nowrap;
	width: 100%;
}

/* ==========================================================================
   8. Karta apartamentu
   ========================================================================== */
.szp-card {
	border: 1px solid var(--szp-line);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	padding: 0; /* nadpisuje domyślny padding grupy z tłem */
	position: relative;
	transition: box-shadow var(--szp-ease), transform var(--szp-ease), border-color var(--szp-ease);
}

.szp-card:hover {
	border-color: transparent;
	box-shadow: var(--wp--preset--shadow--lifted);
}

.szp-card:focus-within {
	outline: 2px solid var(--szp-focus);
	outline-offset: 4px;
}

.szp-card .szp-card__media,
.szp-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.szp-card__media img,
.szp-card .wp-block-post-featured-image img {
	display: block;
	transition: transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1);
	width: 100%;
}

.szp-card:is(:hover, :focus-within) :is(.szp-card__media, .wp-block-post-featured-image) img {
	transform: scale(1.06);
}

@media (prefers-reduced-motion: no-preference) {
	.szp-card:hover {
		transform: translateY(-4px);
	}
}

.szp-card > * {
	margin-block: 0;
}

.szp-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.szp-card__body > * {
	margin-block: 0;
}

.szp-card__title {
	margin-block-end: var(--wp--preset--spacing--10) !important;
}

/* Udogodnienia w karcie: ikony SVG jako maski (kolor z palety, zero requestów JS). */
.szp-features {
	color: var(--wp--preset--color--muted);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--wp--preset--font-size--small);
	gap: 0.5rem 1.25rem;
	list-style: none;
	margin-inline: 0;
	padding: 0;
}

.szp-feature {
	align-items: center;
	display: inline-flex;
	gap: 0.45rem;
	margin: 0;
}

.szp-feature::before {
	-webkit-mask: var(--szp-icon) center / contain no-repeat;
	mask: var(--szp-icon) center / contain no-repeat;
	background-color: var(--wp--preset--color--accent-strong);
	content: "";
	flex-shrink: 0;
	height: 1.15rem;
	width: 1.15rem;
}

.szp-feature--area { --szp-icon: url("../icons/area.svg"); }
.szp-feature--guests { --szp-icon: url("../icons/guests.svg"); }
.szp-feature--bedrooms { --szp-icon: url("../icons/bed.svg"); }
.szp-feature--wifi { --szp-icon: url("../icons/wifi.svg"); }
.szp-feature--parking { --szp-icon: url("../icons/parking.svg"); }
.szp-feature--coffee { --szp-icon: url("../icons/coffee.svg"); }
.szp-feature--view { --szp-icon: url("../icons/mountain.svg"); }
.szp-feature--kitchen { --szp-icon: url("../icons/kitchen.svg"); }
.szp-feature--patio { --szp-icon: url("../icons/patio.svg"); }

.szp-card__footer {
	border-top: 1px solid var(--szp-line);
	gap: var(--wp--preset--spacing--20);
	margin-top: auto !important;
	padding-top: var(--wp--preset--spacing--30);
}

/* Odstęp między listą a stopką karty. */
.szp-features + .szp-card__footer {
	margin-block-start: var(--wp--preset--spacing--20);
}

.szp-price {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.2;
	margin: 0;
}

.szp-price strong {
	color: var(--wp--preset--color--dark);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.75rem;
	font-weight: 500;
	letter-spacing: 0;
}

.szp-card__cta .wp-block-button__link {
	padding: 0.85rem 1.25rem;
}

/* Cała karta klikalna – rozciągnięty link CTA (tylko front; w edytorze
   nakładka blokowałaby zaznaczanie bloków). Jeden link = mniej szumu dla czytników. */
body:not(.editor-styles-wrapper) .szp-card__cta .wp-block-button__link::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

/* ==========================================================================
   8b. Apartament wyróżniony (jeden obiekt)
   ========================================================================== */
.szp-featured__media {
	margin: 0;
	overflow: hidden;
}

.szp-featured__media img {
	display: block;
	width: 100%;
}

.szp-features--grid {
	display: grid;
	gap: 0.75rem 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.szp-featured__footer {
	border-top: 1px solid var(--szp-line);
	gap: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--30);
}

.szp-featured__footer .wp-block-buttons {
	flex: 1 1 100%;
	gap: 0.75rem;
}

.szp-featured__footer .wp-block-button {
	flex: 1 1 12rem;
}

.szp-featured__footer .wp-block-button__link {
	white-space: nowrap;
	width: 100%;
}

/* ==========================================================================
   8c. Galeria – mozaika (1 duże + 8 małych), mobile: 2 kolumny
   ========================================================================== */
.szp-gallery-head > * {
	margin: 0;
}

.wp-block-group.szp-gallery {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.szp-gallery .szp-gallery__item {
	height: 100%;
	margin: 0;
	overflow: hidden;
}

.szp-gallery .szp-gallery__item img {
	aspect-ratio: 4 / 3;
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1), filter var(--szp-ease);
	width: 100%;
}

.szp-gallery .szp-gallery__item:first-child {
	grid-column: span 2;
}

.szp-gallery .szp-gallery__item:hover img {
	filter: brightness(1.05);
	transform: scale(1.04);
}

@media (min-width: 782px) {
	.wp-block-group.szp-gallery {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.szp-gallery .szp-gallery__item:first-child {
		grid-row: span 2;
	}

	.szp-gallery .szp-gallery__item:first-child img {
		aspect-ratio: auto;
	}
}

/* Galeria na otwarcie podstrony: 1 duże + 4 małe */
@media (min-width: 782px) {
	.szp-gallery--hero .szp-gallery__item img {
		aspect-ratio: 3 / 2;
	}

	.szp-gallery--hero .szp-gallery__item:first-child img {
		aspect-ratio: auto;
	}
}

/* Pełna galeria: równa siatka (pierwsze zdjęcie bez wyróżnienia) */
.szp-gallery--all .szp-gallery__item:first-child {
	grid-column: auto;
	grid-row: auto;
}

.szp-gallery--all .szp-gallery__item:first-child img {
	aspect-ratio: 4 / 3;
}

@media (min-width: 600px) {
	.wp-block-group.szp-gallery--all {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.wp-block-group.szp-gallery--all {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* ==========================================================================
   8d. Podstrona apartamentu
   ========================================================================== */
.szp-apt-head > * {
	margin: 0;
}

.szp-apt-head__main > * {
	margin-block: 0;
}

.szp-apt-head__main {
	flex: 1 1 28rem;
}

.szp-apt-head .szp-features {
	margin-top: var(--wp--preset--spacing--10);
}

.szp-price--lg strong {
	font-size: 2.25rem;
}

.szp-booking-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--szp-line);
	border-top: 2px solid var(--wp--preset--color--accent);
	box-shadow: var(--wp--preset--shadow--soft);
}

.szp-booking-card,
.szp-spec {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
}

.szp-booking-card > *,
.szp-spec > * {
	margin-block: 0 !important;
}

@media (min-width: 782px) {
	.szp-booking-card {
		position: sticky;
		top: 7rem;
	}
}

.szp-booking-card__notes {
	border-top: 1px solid var(--szp-line);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	list-style: none;
	margin: 0;
	padding: var(--wp--preset--spacing--20) 0 0;
}

.szp-booking-card__notes li + li {
	margin-top: 0.35rem;
}

.szp-rooms {
	display: grid;
	gap: 0.85rem;
	list-style: none;
	padding: 0;
}

.szp-rooms li {
	border-left: 2px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--muted);
	padding-left: 1rem;
}

.szp-rooms strong {
	color: var(--wp--preset--color--dark);
	font-weight: 600;
}

/* Wyposażenie – lista z ikoną zaznaczenia */
.szp-spec {
	border-top: 1px solid var(--wp--preset--color--accent);
	padding-top: var(--wp--preset--spacing--30);
}


.szp-checklist {
	display: grid;
	font-size: var(--wp--preset--font-size--small);
	gap: 0.55rem;
	list-style: none;
	padding: 0;
}

.szp-checklist li {
	align-items: flex-start;
	display: flex;
	gap: 0.6rem;
}

.szp-checklist li::before {
	-webkit-mask: url("../icons/check.svg") center / contain no-repeat;
	mask: url("../icons/check.svg") center / contain no-repeat;
	background-color: var(--wp--preset--color--accent-strong);
	content: "";
	flex-shrink: 0;
	height: 1.1rem;
	margin-top: 0.2rem;
	width: 1.1rem;
}

/* Zasady pobytu – natywne <details> */
.szp-faq {
	border-top: 1px solid var(--szp-line);
}

.szp-faq .wp-block-details {
	margin: 0;
	padding-block: 0;
}

.szp-faq summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	list-style: none;
	padding: var(--wp--preset--spacing--30) 2.5rem var(--wp--preset--spacing--30) 0;
	position: relative;
}

.szp-faq summary::-webkit-details-marker {
	display: none;
}

.szp-faq summary::after {
	color: var(--wp--preset--color--accent-strong);
	content: "+";
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.5rem;
	font-weight: 300;
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	transition: transform var(--szp-ease);
}

.szp-faq details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.szp-faq details > p {
	margin: 0 0 var(--wp--preset--spacing--30);
	max-width: 42rem;
}

.szp-cta .szp-eyebrow {
	margin-bottom: 0;
}

/* Listy „bez punktorów” – wyższa specyficzność niż globalny styl
   core/list z theme.json (padding-left), który ładuje się później. */
ul.szp-features,
ul.szp-checklist,
ul.szp-rooms,
ul.szp-booking-card__notes {
	padding-left: 0;
}

/* ==========================================================================
   8e. Atrakcje
   ========================================================================== */
.szp-chips {
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--20) !important;
}

.szp-chips .wp-block-button__link {
	font-size: 0.6875rem;
	padding: 0.65rem 1rem;
}

.szp-atr-note {
	margin-top: var(--wp--preset--spacing--10) !important;
}

.szp-atr-cat__head > * {
	margin: 0;
}

.szp-atr-cat__head .wp-block-group > * {
	margin-block: 0;
}

.szp-atr-cat__head .szp-amenity__icon {
	flex-shrink: 0;
	height: 3.5rem;
	margin: 0 !important;
	width: 3.5rem;
}

.szp-attraction {
	border: 1px solid var(--szp-line);
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	height: 100%;
	transition: box-shadow var(--szp-ease), border-color var(--szp-ease);
}

.szp-attraction > * {
	margin-block: 0 !important;
}

.szp-attraction:hover {
	border-color: transparent;
	box-shadow: var(--wp--preset--shadow--soft);
}

.szp-badge {
	align-items: center;
	align-self: flex-start;
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--dark);
	display: inline-flex;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	gap: 0.4rem;
	letter-spacing: 0.04em;
	padding: 0.3rem 0.7rem 0.3rem 0.55rem;
}

.szp-badge::before {
	-webkit-mask: url("../icons/pin.svg") center / contain no-repeat;
	mask: url("../icons/pin.svg") center / contain no-repeat;
	background-color: var(--wp--preset--color--accent-strong);
	content: "";
	height: 0.95rem;
	width: 0.95rem;
}

.szp-maplink {
	margin-top: auto !important;
	padding-top: var(--wp--preset--spacing--10);
}

.szp-maplink a {
	font-weight: 600;
	text-decoration-color: var(--wp--preset--color--accent);
	text-underline-offset: 0.25em;
}

.szp-maplink a::after {
	content: " \2197";
	content: " \2197" / ""; /* strzałka dekoracyjna – pomijana przez czytniki */
}

/* ==========================================================================
   8f. O nas
   ========================================================================== */
.szp-about-lead {
	font-family: var(--wp--preset--font-family--heading);
}

.szp-signature {
	color: var(--wp--preset--color--accent-strong);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
}

.szp-about-photo {
	margin: 0;
}

.szp-about-photo img {
	display: block;
	width: 100%;
}

ul.szp-company {
	border-top: 1px solid var(--szp-line);
	display: grid;
	list-style: none;
	margin: var(--wp--preset--spacing--20) 0 0;
	padding: 0;
}

.szp-company li {
	border-bottom: 1px solid var(--szp-line);
	padding: var(--wp--preset--spacing--20) 0;
}

.szp-company strong {
	display: inline-block;
	font-weight: 600;
	min-width: 13rem;
}

/* ==========================================================================
   8g. Formularz zapytania o rezerwację [szp_booking_request]
   ========================================================================== */
:root {
	--szp-error: #b3261e; /* 6.5:1 na białym */
}

.szp-br {
	display: grid;
	gap: var(--wp--preset--spacing--40);
}

.szp-br__group {
	border: 0;
	display: grid;
	gap: var(--wp--preset--spacing--30);
	margin: 0;
	min-width: 0;
	padding: 0;
}

.szp-br__group legend {
	border-bottom: 1px solid var(--szp-line);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	margin-bottom: var(--wp--preset--spacing--30);
	padding: 0 0 var(--wp--preset--spacing--10);
	width: 100%;
}

.szp-br__row {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.szp-br__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.szp-br__row--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.szp-br__field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
}

.szp-br label {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.szp-br__req {
	color: var(--szp-error);
}

.szp-br__opt {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.szp-br :is(input[type="text"], input[type="email"], input[type="tel"], input[type="date"], select, textarea) {
	background-color: var(--wp--preset--color--white);
	border: 1px solid #8f8f8f;
	border-radius: 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--dark);
	font: inherit;
	font-size: 1rem;
	margin: 0;
	max-width: 100%;
	min-height: 3.25rem;
	padding: 0.75rem 0.9rem;
	width: 100%;
}

.szp-br select {
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 1.15rem) 50%, calc(100% - 0.8rem) 50%;
	background-repeat: no-repeat;
	background-size: 0.35rem 0.35rem;
	padding-inline-end: 2.25rem;
}

.szp-br textarea {
	min-height: 8rem;
	resize: vertical;
}

.szp-br :is(input, select, textarea):hover {
	border-color: var(--wp--preset--color--dark);
}

.szp-br [aria-invalid="true"] {
	border-color: var(--szp-error) !important;
	box-shadow: inset 3px 0 0 var(--szp-error);
}

.szp-br__error {
	color: var(--szp-error);
	font-size: var(--wp--preset--font-size--small);
	margin: 0;
}

.szp-br__summary {
	background: #fdf2f1;
	border-left: 3px solid var(--szp-error);
	padding: var(--wp--preset--spacing--30);
}

.szp-br__summary p,
.szp-br__summary ul {
	margin: 0;
}

.szp-br__summary ul {
	margin-top: 0.5rem;
	padding-left: 1.2rem;
}

.szp-br__summary a {
	color: var(--szp-error);
}

.szp-br__nights {
	color: var(--wp--preset--color--accent-strong);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	margin: 0;
}

.szp-br__nights:empty {
	display: none;
}

.szp-br__consent {
	align-items: flex-start;
	display: grid;
	gap: 0.3rem 0.75rem;
	grid-template-columns: auto 1fr;
}

.szp-br__consent input {
	accent-color: var(--wp--preset--color--dark);
	height: 1.25rem;
	margin: 0.1rem 0 0;
	width: 1.25rem;
}

.szp-br__consent label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.szp-br__consent .szp-br__error {
	grid-column: 2;
}

.szp-br__hp {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.szp-br__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.szp-br__actions button {
	cursor: pointer;
	min-height: 3.25rem;
}

.szp-br__note {
	color: var(--wp--preset--color--muted);
	flex: 1 1 16rem;
	font-size: var(--wp--preset--font-size--x-small);
	margin: 0;
}

.szp-br-success {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--szp-line);
	border-top: 2px solid var(--wp--preset--color--accent);
	padding: var(--wp--preset--spacing--50);
}

.szp-br-success > * {
	margin-block: 0 var(--wp--preset--spacing--20);
}

.szp-br-summary {
	overflow: hidden;
}

.szp-br-summary__img {
	margin: 0 !important;
}

.szp-br-summary__img img {
	display: block;
	width: 100%;
}

.szp-br-summary__body > * {
	margin-block: 0 var(--wp--preset--spacing--20) !important;
}

/* ==========================================================================
   9. Udogodnienia
   ========================================================================== */
.szp-amenity {
	border-top: 1px solid var(--wp--preset--color--accent);
	padding-top: var(--wp--preset--spacing--30);
}

.szp-amenity > * {
	margin-block: 0;
}

.szp-amenity__icon {
	align-items: center;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--szp-line);
	border-radius: 50%;
	display: flex !important;
	height: 4rem;
	justify-content: center;
	margin-block-end: var(--wp--preset--spacing--10) !important;
	width: 4rem;
}

.szp-amenity__title {
	margin-block-start: var(--wp--preset--spacing--10) !important;
}

/* ==========================================================================
   10. Stopka
   ========================================================================== */
.szp-footer .wp-block-site-title {
	color: var(--wp--preset--color--light);
}

.szp-footer__heading {
	color: var(--wp--preset--color--accent) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 600 !important;
	letter-spacing: var(--wp--custom--letter-spacing--eyebrow, 0.22em) !important;
	text-transform: uppercase;
}

.szp-footer .wp-block-image {
	margin: 0;
}

.szp-footer__nav {
	gap: 0.6rem;
}

.szp-footer__sep {
	border-color: rgb(250 250 250 / 0.14) !important;
	opacity: 1;
}

.szp-footer a:not(.wp-element-button) {
	text-decoration-color: rgb(197 168 128 / 0.6);
	text-underline-offset: 0.2em;
}

/* ==========================================================================
   11. Treści / blog
   ========================================================================== */
.szp-divider {
	margin-block: var(--wp--preset--spacing--50) !important;
}

.wp-block-post-content a:not(.wp-element-button) {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

/* ==========================================================================
   12. Ograniczenie ruchu
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
