/* Header i stopka z Elementora (Recepcja Core). */

/* Ozdoby wychodzące za krawędź (liście, pochylone owale) nie mogą dawać przewijania w bok. clip nie psuje sticky. */
html,
body {
	overflow-x: clip;
}

.rcp-site-header {
	position: relative;
	z-index: 100;
	background: var(--rcp-color-bg);
}

.rcp-site-header--sticky {
	--rcp-hdr-top: 0px;
	position: sticky;
	top: var(--rcp-hdr-top);
}

.admin-bar .rcp-site-header--sticky {
	--rcp-hdr-top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .rcp-site-header--sticky {
		--rcp-hdr-top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .rcp-site-header--sticky {
		--rcp-hdr-top: 0px;
	}
}


.admin-bar.rcp-header-transparent .rcp-site-header:not(.rcp-site-header--sticky) {
	--rcp-hdr-top: 32px;
}

@media (max-width: 782px) {
	.admin-bar.rcp-header-transparent .rcp-site-header:not(.rcp-site-header--sticky) {
		--rcp-hdr-top: 46px;
	}
}

/* Chowanie przy przewijaniu w dół, powrót przy ruchu w górę. */
.rcp-site-header--autohide {
	/* bez will-change: tworzyłoby to kontener dla position:fixed i psuło panel menu na telefonie */
	transition: transform 0.35s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.rcp-site-header--autohide.is-hidden {
	transform: translateY(calc(-100% - var(--rcp-hdr-top)));
}

@media (prefers-reduced-motion: reduce) {
	.rcp-site-header--autohide {
		transition: none;
	}
}

/* Przezroczysty header nad pierwszą sekcją (zaznaczane przy stronie). */
.rcp-header-transparent .rcp-site-header {
	position: absolute;
	inset-inline: 0;
	
	top: var(--rcp-hdr-top, 0px);
	background: transparent;
	
	transition: transform 0.35s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.rcp-header-transparent .rcp-site-header--sticky {
	position: fixed;
}


.rcp-header-transparent .rcp-site-header:not(.is-scrolled) > .elementor > .e-con,
.rcp-header-transparent .rcp-site-header:not(.is-scrolled) > .elementor > .e-con > .e-con-inner > .e-con {
	background-color: transparent;
	background-image: none;
}

.rcp-header-transparent .rcp-site-header--sticky.is-scrolled {
	background: var(--rcp-color-bg);
	box-shadow: 0 2px 16px color-mix(in srgb, var(--rcp-color-text) 10%, transparent);
}


.rcp-site-header--sticky.is-scrolled:has(.rcp-hdr-float),
.rcp-site-header:has(.rcp-hdr-float) {
	background: transparent;
	box-shadow: none;
}


.rcp-header-light .rcp-site-header:not(.is-scrolled) .rcp-logo img {
	filter: brightness(0) invert(1);
}

.rcp-header-light .rcp-site-header:not(.is-scrolled) .rcp-menu__list--desktop > li > a,
.rcp-header-light .rcp-site-header:not(.is-scrolled) .rcp-menu__toggle {
	color: #fff !important;
}

/* Przyciski w headerze w jednej linii (np. „Umów wizytę” przy węższym ekranie). */
.rcp-site-header .elementor-button {
	white-space: nowrap;
}

/* Klasa „rcp-hide-narrow” (Zaawansowane → Klasy CSS): element znika poniżej 1280 px, np. telefon w headerze z logo między dwiema częściami menu. */
@media (max-width: 1279px) {
	.rcp-hide-narrow {
		display: none !important;
	}
}

/* Kafelek-link ze zdjęciem i kartą (klasa rcp-tile na kontenerze-linku, rcp-tile__arrow na widżecie ze strzałką).
 * Elementor ze zoptymalizowanym kodem nie ma .elementor-widget-container, więc styl idzie na sam widżet.
 * Strzałka to równe kółko; po najechaniu na kafelek wypełnia się kolorem głównym i obraca, karta lekko się unosi. */
.rcp-tile__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--rcp-tile-line, rgb(0 0 0 / 0.12));
	border-radius: 50%;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.rcp-tile__arrow p {
	margin: 0;
	line-height: 1;
}

.rcp-tile .rcp-tile__card {
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.rcp-tile:is(:hover, :focus-visible) .rcp-tile__arrow {
	border-color: var(--rcp-color-primary, #8c5e52);
	background-color: var(--rcp-color-primary, #8c5e52);
	color: #fff;
	transform: rotate(45deg);
}

.rcp-tile:is(:hover, :focus-visible) .rcp-tile__card {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgb(0 0 0 / 0.14);
}


@media (min-width: 768px) and (max-width: 1024px) {
	.e-grid > .rcp-tile:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rcp-tile .rcp-tile__card,
	.rcp-tile__arrow {
		transition: none;
	}
}


.rcp-site-header:has(.rcp-menu__panel:not([hidden])) {
	z-index: 100000;
}


@media (min-width: 1025px) {
	.rcp-sticky {
		position: sticky !important;
		top: 110px;
		align-self: start;
	}
}


.rcp-row-link { cursor: pointer; text-decoration: none; }
.rcp-row-link .elementor-heading-title { transition: color 0.3s ease, transform 0.3s ease; }
.rcp-row-link > .e-con-inner > .elementor-widget-heading:last-child .elementor-heading-title,
.rcp-row-link > .elementor-widget-heading:last-child .elementor-heading-title { display: inline-block; }
.rcp-row-link:is(:hover, :focus-visible) .elementor-heading-title { color: var(--rcp-color-primary, #b5838d) !important; }
.rcp-row-link:is(:hover, :focus-visible) > .elementor-widget-heading:last-child .elementor-heading-title,
.rcp-row-link:is(:hover, :focus-visible) > .e-con-inner > .elementor-widget-heading:last-child .elementor-heading-title { transform: translateX(6px); }

/* Tekst po łuku (Elementor Text Path) wyśrodkowany na ścieżce: klasa rcp-tp-center + punkt startowy 50%. */
.rcp-tp-center .e-text-path text { text-anchor: middle; }

/* Tekst po łuku jako pierścień wokół zdjęcia z łukiem (kształt „rounded” 999px): SVG na pełną szerokość widgetu,
   widget szerszy od zdjęcia o 2× odstęp i przesunięty o odstęp w lewo i w górę, więc łuk jest współśrodkowy z górą zdjęcia. */
.rcp-tp-ring .e-text-path,
.rcp-tp-ring .e-text-path svg { width: 100% !important; max-width: none !important; --width: 100%; }
.rcp-tp-ring .e-text-path svg { display: block; overflow: visible; }
.elementor-element.rcp-tp-ring {
	--rcp-ring-gap: 16px;
	position: absolute !important;
	width: calc(100% + 2 * var(--rcp-ring-gap)) !important;
	max-width: none !important;
	left: calc(-1 * var(--rcp-ring-gap)) !important;
	top: calc(-1 * var(--rcp-ring-gap)) !important;
	right: auto !important;
	margin: 0 !important;
	pointer-events: none;
}

/* Plakietka z napisem po okręgu, obracana jak we wzorze Dermix (20 s, pauza po najechaniu). Klasa na widgecie Tekst po ścieżce. */
@keyframes rcp-spin { to { transform: rotate(360deg); } }
.rcp-tp-spin { animation: rcp-spin 20s linear infinite; }
.rcp-tp-spin .e-text-path, .rcp-tp-spin .e-text-path svg { width: 100% !important; max-width: none !important; }
.rcp-tp-spin .e-text-path svg { display: block; overflow: visible; }
.rcp-tp-spin:hover, .rcp-spin-box:hover .rcp-tp-spin { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .rcp-tp-spin { animation: none; } }

/* Szklana karta na zdjęciu (rozmycie tła, jasna ramka). */
.rcp-glass {
	background-color: rgba(255, 255, 255, 0.14) !important;
	border: 1px solid rgba(255, 255, 255, 0.24);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

/* Zdjęcia w kółkach jedno na drugim (awatary). Kontener z klasą rcp-avatars, w środku widgety Obraz. */
.rcp-avatars { flex-direction: row !important; flex-wrap: nowrap !important; }
.rcp-avatars > .elementor-widget-image { width: 42px !important; flex: none; }
.rcp-avatars > .elementor-widget-image + .elementor-widget-image { margin-left: -12px !important; }
.rcp-avatars img { width: 42px !important; height: 42px !important; object-fit: cover; border-radius: 50%; border: 2px solid #fff; display: block; }

/* Element pozycjonowany absolutnie, wyśrodkowany na punkcie z przesunięcia (np. plakietka na styku zdjęć). */
.elementor-element.rcp-abs-center { transform: translate(-50%, -50%); }


body.rcp-header-transparent:has(.rcp-hero-card) { --rcp-card-gap: 10px; }
body.rcp-header-transparent:has(.rcp-hero-card) .rcp-site-header:not(.is-scrolled) {
	top: calc(var(--rcp-hdr-top, 0px) + var(--rcp-card-gap));
	inset-inline: var(--rcp-card-gap);
	border-radius: 24px 24px 0 0;
	overflow: hidden;
}
@media (max-width: 767px) { body.rcp-header-transparent:has(.rcp-hero-card) { --rcp-card-gap: 8px; } }
/* Górny pasek headera (klasa rcp-hdr-keep) zachowuje swoje tło także nad zdjęciem. */
.rcp-header-transparent .rcp-site-header:not(.is-scrolled) > .elementor > .e-con.rcp-hdr-keep { background-color: var(--rcp-hdr-keep-bg, var(--e-global-color-primary)) !important; }


.rcp-frost {
	-webkit-backdrop-filter: blur(var(--rcp-frost-blur, 18px)) saturate(1.25);
	backdrop-filter: blur(var(--rcp-frost-blur, 18px)) saturate(1.25);
}
.rcp-btn-frost .elementor-button {
	-webkit-backdrop-filter: blur(14px) saturate(1.3);
	backdrop-filter: blur(14px) saturate(1.3);
}


.rcp-cg {
	overflow: hidden;
	transition: background-color 0.5s ease;
}
.rcp-cg .rcp-cg-pic {
	transition: width 0.8s cubic-bezier(0.22, 0.8, 0.2, 1);
}
.rcp-cg .rcp-cg-pic .rcp-frame__shape {
	transition: border-radius 0.8s cubic-bezier(0.22, 0.8, 0.2, 1);
}

@media (hover: hover) and (min-width: 768px) {
	.rcp-cg:is(:hover, :focus-visible) {
		background-color: var(--rcp-cg-hover, #ffffff) !important;
	}
	.rcp-cg .rcp-cg-pic .rcp-frame__img { transition: transform 0.8s cubic-bezier(0.22, 0.8, 0.2, 1); }
	.rcp-cg:is(:hover, :focus-visible) .rcp-cg-pic .rcp-frame__img { transform: scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
	.rcp-cg .rcp-cg-pic, .rcp-cg .rcp-cg-pic .rcp-frame__shape { transition: none; }
}


.rcp-mq-tight { --rcp-pro-mq-gap: 12px; }
@media (max-width: 767px) { .rcp-mq-tight { --rcp-pro-mq-gap: 8px; } }


.rcp-avatars.rcp-avatars-lg > .elementor-widget-image { width: 52px !important; }
.rcp-avatars.rcp-avatars-lg > .elementor-widget-image + .elementor-widget-image { margin-left: -11px !important; }
.rcp-avatars.rcp-avatars-lg img { width: 52px !important; height: 52px !important; border-width: 1px; }


.rcp-hover-reveal .rcp-frame__media::after { transition: opacity 0.5s ease; }
@media (hover: hover) and (min-width: 1025px) {
	.rcp-hover-reveal .rcp-hr {
		opacity: 0;
		max-height: 0;
		overflow: hidden;
		transform: translateY(14px);
		transition: opacity 0.45s ease, transform 0.5s cubic-bezier(0.22, 0.8, 0.2, 1), max-height 0.5s ease;
	}
	.rcp-hover-reveal:is(:hover, :focus-visible, :focus-within) .rcp-hr {
		opacity: 1;
		max-height: 220px;
		transform: none;
	}
	.rcp-hover-reveal:is(:hover, :focus-visible, :focus-within) .rcp-frame { --fr-dim: var(--rcp-hr-dim, 0.42); }
}
@media (prefers-reduced-motion: reduce) {
	.rcp-hover-reveal .rcp-hr { transition: opacity 0.2s ease; transform: none; }
}


@media (hover: hover) and (min-width: 768px) {
	.rcp-cg.rcp-cg-invert:is(:hover, :focus-visible) { background-color: var(--rcp-cg-hover, var(--e-global-color-primary, #333)) !important; }
	.rcp-cg.rcp-cg-invert :is(h1, h2, h3, h4, h5, h6, p, span, a, li, b, strong, em, .elementor-heading-title, .elementor-widget-text-editor) { transition: color 0.4s ease; }
	.rcp-cg.rcp-cg-invert:is(:hover, :focus-visible) :is(h1, h2, h3, h4, h5, h6, p, span, a, li, b, strong, em, .elementor-heading-title, .elementor-widget-text-editor) { color: #fff !important; }
	.rcp-cg.rcp-cg-invert:is(:hover, :focus-visible) :is(hr, .elementor-divider-separator) { border-color: rgba(255, 255, 255, 0.25) !important; }
}


@media (max-width: 767px) {
	.elementor-element.rcp-flat-mobile { background: transparent !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
}


.rcp-site-header:has(.rcp-menu__panel.is-open) :is(.rcp-frost, .e-con) {
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	filter: none !important;
}


.rcp-ask-2l a { white-space: nowrap; }
@media (max-width: 767px) {
	.rcp-ask-2l, .rcp-ask-2l p { text-align: center !important; }
	.rcp-ask-2l a { display: table; margin: 6px auto 0; }
}

/* Proporcje zdjęć z widgetów przy leniwym ładowaniu (bez wagi: proporcje z CSS widgetu wygrywają). */
:where(img[style*="--rcp-ar"]) { aspect-ratio: var(--rcp-ar); }


@media (max-width: 767px) {
	footer.rcp-site-footer .elementor-widget,
	footer.rcp-site-footer .elementor-widget .elementor-widget-container,
	footer.rcp-site-footer .elementor-heading-title,
	footer.rcp-site-footer .elementor-widget p {
		text-align: center !important;
	}

	footer.rcp-site-footer .elementor-widget__width-initial,
	footer.rcp-site-footer .elementor-widget__width-auto {
		margin-inline: auto !important;
		max-width: 100%;
	}

	/* Kontenery jeden pod drugim (pasek z copyright i linkami miał dwa teksty obok siebie). */
	footer.rcp-site-footer .e-con.e-flex {
		--flex-direction: column !important;
		--align-items: center !important;
		--justify-content: center !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: center !important;
	}

	footer.rcp-site-footer .e-con.e-flex > .elementor-widget {
		max-width: 100%;
	}

	footer.rcp-site-footer .rcp-logo,
	footer.rcp-site-footer .rcp-logo a {
		justify-content: center !important;
		margin-inline: auto;
	}

	footer.rcp-site-footer .rcp-contact__list {
		align-items: center;
	}

	/* Ikona tuż przy tekście, a adres w dwóch liniach (ulica, miasto). */
	footer.rcp-site-footer .rcp-contact__txt {
		flex: 0 1 auto;
	}

	footer.rcp-site-footer .rcp-contact__item:has(.rcp-contact__icon) :is(.rcp-contact__a1, .rcp-contact__a2) {
		display: block;
	}

	footer.rcp-site-footer .rcp-contact__item,
	footer.rcp-site-footer .rcp-contact__social,
	footer.rcp-site-footer .elementor-social-icons-wrapper,
	footer.rcp-site-footer .elementor-icon-list-items,
	footer.rcp-site-footer .elementor-icon-list-item {
		justify-content: center !important;
	}

	footer.rcp-site-footer .rcp-menu,
	footer.rcp-site-footer .rcp-menu__list--desktop {
		justify-content: center !important;
		text-align: center;
	}

	footer.rcp-site-footer .rcp-hours-layout-inline .rcp-hours__row,
	footer.rcp-site-footer .rcp-hours-layout-row .rcp-hours__row {
		justify-content: center;
	}

	footer.rcp-site-footer .rcp-hours-layout-inline .rcp-hours {
		display: flex;
		flex-direction: column;
		align-items: center;
	}
}
