/*
Theme Name: linea-medica
Author: Hedea
Author URI: https://hedea.pl
Theme URI: https://hedea.pl
Tags: full-site-editing, block-patterns
Text Domain: linea-medica
Requires at least: 6.4
Requires PHP: 7.4
Tested up to: 6.4
Version: 100.0

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
   Tokens
   ========================================================================== */

:root {
	--lm-line: rgba(158, 30, 99, 0.16);
	--lm-line-dark: rgba(251, 248, 250, 0.2);
	--lm-radius: 14px;
	--lm-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--lm-header-h: 76px;
}

html {
	scroll-padding-top: 88px;
}

/* Fallback only: with GSAP running, site.js turns this off (it breaks
   ScrollTrigger.refresh() mid-page) and scrolls to anchors itself. */
@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

:where(.lm-main) > * {
	margin-block: 0;
}

::selection {
	background: var(--wp--preset--color--primary);
	color: #fff;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.lm-on-dark :focus-visible {
	outline-color: var(--wp--preset--color--blush);
}

/* Body copy measure */
.lm-measure {
	max-width: 62ch;
}

.lm-muted {
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.25s var(--lm-ease), color 0.25s var(--lm-ease), transform 0.25s var(--lm-ease);
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	cursor: pointer;
}

.wp-element-button:hover {
	transform: translateY(-2px);
}

/* Phone icon on every button that dials (mask keeps it in the text colour) */
.wp-block-button__link[href^="tel:"] {
	gap: 0.6em;
}

.wp-block-button__link[href^="tel:"]::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: url("assets/images/phone-solid-full.svg") center / contain no-repeat;
	mask: url("assets/images/phone-solid-full.svg") center / contain no-repeat;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--surface);
}

.lm-on-dark .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--surface);
}

.lm-on-dark .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--deep);
}

.lm-on-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--deep);
}

/* ==========================================================================
   Header (template part)
   ========================================================================== */

header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: transform 0.45s var(--lm-ease);
}

.admin-bar header.wp-block-template-part {
	top: 32px;
}

header.wp-block-template-part.is-hidden {
	transform: translateY(-100%);
}

.lm-header {
	background: rgba(251, 248, 250, 0.8);
	-webkit-backdrop-filter: saturate(1.4) blur(16px);
	backdrop-filter: saturate(1.4) blur(16px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

header.is-scrolled .lm-header {
	border-bottom-color: var(--lm-line);
	background: rgba(251, 248, 250, 0.92);
}

.lm-header__inner {
	min-height: var(--lm-header-h);
	flex-wrap: nowrap;
}

.lm-header .wp-block-site-logo img {
	height: 46px;
	width: auto;
	display: block;
}

.lm-header .wp-block-navigation {
	gap: 2rem;
}

.lm-header .wp-block-navigation-item__content {
	position: relative;
	padding: 0.35rem 0;
}

.lm-header .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--lm-ease);
}

.lm-header .wp-block-navigation-item__content:hover::after {
	transform: scaleX(1);
}

.lm-header .wp-block-button__link {
	min-height: 46px;
	padding: 0.7rem 1.4rem;
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 781px) {
	.lm-header__inner {
		min-height: 64px;
	}

	.lm-header .wp-block-site-logo img {
		height: 38px;
	}

	.lm-header__cta {
		display: none;
	}
}

/* ==========================================================================
   Reveal + hero hide states (only while JS is pending)
   ========================================================================== */

.js .lm-reveal,
.js .lm-offer .wp-block-details {
	opacity: 0;
	transform: translateY(36px);
}

.js .lm-hero__title,
.js .lm-hero__in,
.js .lm-hero__media {
	opacity: 0;
}

.lm-w {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.14em;
	margin-bottom: -0.14em;
}

.lm-wi {
	display: inline-block;
	will-change: transform;
}

.lm-draw {
	transform-origin: left center;
}

/* ==========================================================================
   Shared section rhythm
   ========================================================================== */

.lm-section {
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

.lm-stats {
	padding-top: var(--wp--preset--spacing--60) !important;
	padding-bottom: var(--wp--preset--spacing--60) !important;
	background: var(--wp--preset--color--tint);
}

.lm-on-dark {
	background: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--surface);
}

.lm-on-dark :where(h1, h2, h3, h4, p, li, cite, a:not(.wp-element-button)) {
	color: inherit;
}

.lm-on-dark .lm-muted {
	color: rgba(251, 248, 250, 0.72);
}

/* Also the hero H1 (clinic name + city), so heading styles are reset here */
.lm-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--primary);
	margin: 0;
}

.lm-h2 {
	font-size: var(--wp--preset--font-size--display);
	line-height: 1;
	letter-spacing: -0.04em;
	margin: 0;
}

/* ==========================================================================
   Hero
   ========================================================================== */

.lm-hero {
	position: relative;
	padding-top: clamp(2rem, 1rem + 4vw, 4.5rem);
	padding-bottom: 0;
	z-index: 2;
}

.lm-hero__grid {
	gap: clamp(2rem, 1rem + 5vw, 6rem);
	align-items: center;
	margin: 0;
}

@media (min-width: 782px) {
	.lm-hero__grid > .wp-block-column:first-child {
		flex-basis: 61% !important;
	}

	.lm-hero__grid > .wp-block-column:last-child {
		flex-basis: 39% !important;
		align-self: flex-end;
	}
}

.lm-hero__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.3rem, 1rem + 4vw, 4.6rem);
	line-height: 1;
	letter-spacing: -0.045em;
	margin: 1rem 0 0;
	font-weight: 450;
}

.lm-hero__sub {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
	max-width: 34ch;
	margin-top: 1.75rem;
}

.lm-hero .wp-block-buttons {
	margin-top: 2.25rem;
}

.lm-hero__media {
	margin: 0;
	position: relative;
	z-index: 3;
}

.lm-hero__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 62% 50%;
	border-radius: var(--lm-radius);
	display: block;
	transform-origin: center;
}

.lm-hero__media {
	overflow: hidden;
	border-radius: var(--lm-radius);
}

@media (min-width: 782px) {
	.lm-hero__media {
		margin-bottom: -5.5rem;
	}
}

@media (max-width: 781px) {
	.lm-hero__media img {
		aspect-ratio: 5 / 4;
	}
}

/* ==========================================================================
   Facts strip (sits under the hero image, image overlaps into it)
   ========================================================================== */

.lm-facts {
	background: var(--wp--preset--color--tint);
	padding-top: 2rem;
	padding-bottom: 2rem;
	position: relative;
	z-index: 1;
}

/* The hero image overlaps into the strip; !important beats the section seam reset. */
@media (min-width: 782px) {
	.lm-main .wp-block-post-content > .lm-facts {
		margin-top: -2rem !important;
		padding-top: 6rem;
	}
}

.lm-facts__row {
	gap: 0;
}

.lm-facts__row > * {
	margin: 0;
	padding: 1rem 2rem 1rem 0;
	flex: 1 1 14rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}

.lm-facts__row > * + * {
	padding-left: 2rem;
	border-left: 1px solid var(--lm-line);
}

.lm-facts__row strong {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: -0.02em;
	margin-bottom: 0.15rem;
}

@media (max-width: 781px) {
	.lm-facts__row > * + * {
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid var(--lm-line);
	}
}

/* ==========================================================================
   Stats
   ========================================================================== */

.lm-stats__row {
	gap: clamp(2rem, 1rem + 4vw, 5rem);
	align-items: flex-start;
}

.lm-stat__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--mega);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: -0.06em;
	margin: 0;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.lm-stat__num sup,
.lm-stat__num span {
	color: var(--wp--preset--color--primary);
}

.lm-stat__label {
	color: var(--wp--preset--color--muted);
	max-width: 24ch;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--lm-line);
}

@media (min-width: 782px) {
	.lm-stats__row > .wp-block-column:nth-child(2) {
		margin-top: 5rem;
	}

	.lm-stats__row > .wp-block-column:nth-child(3) {
		margin-top: 10rem;
	}
}

/* ==========================================================================
   First visit (sticky split)
   ========================================================================== */

.lm-visit__grid {
	gap: clamp(2rem, 1rem + 6vw, 7rem);
	align-items: flex-start;
}

@media (min-width: 782px) {
	.lm-visit__sticky {
		position: sticky;
		top: calc(var(--lm-header-h) + 2rem);
	}
}

.lm-visit__sticky h2 {
	font-size: var(--wp--preset--font-size--xx-large);
	letter-spacing: -0.04em;
}

.lm-visit__photo {
	margin-top: 2.5rem;
	border-radius: var(--lm-radius);
	overflow: hidden;
}

.lm-visit__photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: 50% 30%;
	display: block;
}

.lm-step {
	gap: clamp(1.25rem, 0.5rem + 3vw, 3rem);
	padding: clamp(2rem, 1rem + 3vw, 3.5rem) 0;
	border-top: 1px solid var(--lm-line);
	flex-wrap: nowrap;
	align-items: flex-start;
	margin: 0;
}

.lm-step__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4.5rem, 2rem + 8vw, 9rem);
	line-height: 0.78;
	letter-spacing: -0.06em;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--wp--preset--color--primary);
	margin: 0;
	flex: 0 0 auto;
	min-width: 0.6em;
}

.lm-step h3 {
	font-size: var(--wp--preset--font-size--x-large);
	letter-spacing: -0.03em;
	margin: 0 0 0.6rem;
}

.lm-step p {
	margin: 0;
	color: var(--wp--preset--color--muted);
	max-width: 44ch;
}

.lm-promise {
	margin-top: 0;
	padding-top: clamp(2rem, 1rem + 3vw, 3.5rem);
	border-top: 1px solid var(--lm-line);
}

.lm-promise p {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.15;
	letter-spacing: -0.03em;
	margin: 0;
}

.lm-promise p strong {
	font-weight: 500;
	color: var(--wp--preset--color--primary);
}

/* ==========================================================================
   Offer (accordion rows)
   ========================================================================== */

.lm-offer__head {
	margin-bottom: clamp(2rem, 1rem + 4vw, 4.5rem);
}

.lm-offer__head p {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--large);
	max-width: 44ch;
}

.lm-offer .wp-block-details {
	border-top: 1px solid var(--lm-line);
	margin: 0;
	padding: 0;
}

.lm-offer .wp-block-details:last-of-type {
	border-bottom: 1px solid var(--lm-line);
}

.lm-offer .wp-block-details summary {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding: clamp(1.4rem, 1rem + 1.6vw, 2.4rem) 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.7rem, 1rem + 2.6vw, 3.4rem);
	font-weight: 450;
	line-height: 1.05;
	letter-spacing: -0.035em;
	cursor: pointer;
	list-style: none;
	transition: color 0.25s ease, padding 0.4s var(--lm-ease);
}

.lm-offer .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.lm-offer .wp-block-details summary::marker {
	content: "";
}

.lm-offer .wp-block-details summary::after {
	content: "";
	flex: 0 0 auto;
	margin-left: auto;
	width: 46px;
	height: 46px;
	border: 1px solid currentColor;
	border-radius: 50%;
	background:
		linear-gradient(currentColor, currentColor) center / 16px 1.5px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1.5px 16px no-repeat;
	transition: transform 0.4s var(--lm-ease), background-color 0.25s ease, color 0.25s ease;
}

.lm-offer .wp-block-details summary:hover {
	color: var(--wp--preset--color--primary);
}

.lm-offer .wp-block-details[open] summary {
	color: var(--wp--preset--color--primary);
}

.lm-offer .wp-block-details[open] summary::after {
	transform: rotate(45deg);
}

.lm-offer__body {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(1.5rem, 1rem + 4vw, 6rem);
	padding: 0.25rem 0 clamp(2rem, 1rem + 2vw, 3.5rem);
	animation: lm-open 0.6s var(--lm-ease) both;
}

.lm-offer__body > * {
	margin: 0;
}

/* H3 naming the treatments (the summary above is the service name),
   styled as a lead rather than a heading */
.lm-offer__lead {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0;
	color: var(--wp--preset--color--muted);
	max-width: 26ch;
}

.lm-offer__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}

.lm-offer__list li {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--lm-line);
	font-size: var(--wp--preset--font-size--medium);
}

.lm-offer__list li:first-child {
	padding-top: 0;
}

.lm-offer__list li:last-child {
	border-bottom: 0;
}

.lm-offer__list li strong {
	font-weight: 600;
}

.lm-offer__list li em {
	display: block;
	font-style: normal;
	margin-top: 0.15rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

/* With JS the accordion is driven by initOffer() in site.js. */
.lm-offer-js .lm-offer .wp-block-details {
	box-sizing: border-box;
}

.lm-offer-js .lm-offer__body {
	animation: none;
}

@keyframes lm-open {
	from {
		opacity: 0;
		transform: translateY(-12px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 781px) {
	.lm-offer__body {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Implants (dark band)
   ========================================================================== */

.lm-implants__grid {
	gap: clamp(2rem, 1rem + 6vw, 7rem);
	align-items: flex-start;
}

.lm-implants h2 {
	font-size: var(--wp--preset--font-size--display);
	line-height: 0.98;
	letter-spacing: -0.045em;
	margin: 0;
}

.lm-implants h2 mark {
	background: none;
	color: var(--wp--preset--color--blush);
}

.lm-implants__lead {
	font-size: var(--wp--preset--font-size--large);
	max-width: 36ch;
	margin-top: 1.75rem;
}

.lm-doctor {
	margin-top: 3rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--lm-line-dark);
	max-width: 52ch;
}

.lm-doctor__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0;
}

.lm-doctor__role {
	margin: 0.35rem 0 1.25rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--blush);
	font-weight: 600;
}

.lm-doctor__bio {
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.8;
	margin: 0;
}

.lm-implants .lm-offer__list li {
	border-bottom-color: var(--lm-line-dark);
	font-size: var(--wp--preset--font-size--large);
	padding: 1.25rem 0;
}

.lm-implants .lm-offer__list li:first-child {
	padding-top: 1.25rem;
	border-top: 1px solid var(--lm-line-dark);
}

.lm-implants .lm-offer__list li:last-child {
	border-bottom: 1px solid var(--lm-line-dark);
}

.lm-implants .lm-offer__list li em {
	color: rgba(251, 248, 250, 0.72);
}

/* ==========================================================================
   Testimonials
   ========================================================================== */

.lm-quotes {
	background: var(--wp--preset--color--tint);
}

.lm-quotes__head {
	margin-bottom: clamp(2rem, 1rem + 4vw, 4.5rem);
}

.lm-quotes__source {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	margin-top: 1rem;
}

.lm-quotes__row {
	gap: clamp(2rem, 1rem + 4vw, 5rem);
	align-items: flex-start;
}

.lm-quotes .wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.lm-quotes .wp-block-quote::before {
	content: "\201E";
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: 6rem;
	line-height: 0.7;
	height: 2.6rem;
	color: var(--wp--preset--color--primary);
}

.lm-quotes .wp-block-quote p {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.2rem, 1rem + 0.9vw, 1.6rem);
	line-height: 1.3;
	letter-spacing: -0.015em;
	margin: 0;
}

.lm-quotes .wp-block-quote cite {
	display: block;
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--lm-line);
	font-style: normal;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

@media (min-width: 782px) {
	.lm-quotes__row > .wp-block-column:nth-child(2) {
		margin-top: 5rem;
	}

	.lm-quotes__row > .wp-block-column:nth-child(3) {
		margin-top: 2.5rem;
	}
}

/* ==========================================================================
   Team
   ========================================================================== */

.lm-team__grid {
	gap: clamp(2rem, 1rem + 6vw, 7rem);
	align-items: flex-start;
}

@media (min-width: 782px) {
	.lm-team__sticky {
		position: sticky;
		top: calc(var(--lm-header-h) + 2rem);
	}
}

.lm-team__sticky h2 {
	font-size: var(--wp--preset--font-size--xx-large);
	letter-spacing: -0.04em;
}

.lm-team__sticky p {
	color: var(--wp--preset--color--muted);
	max-width: 32ch;
}

.lm-team__group {
	margin: 0 0 clamp(2rem, 1rem + 3vw, 3.5rem);
}

.lm-team__group h3 {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin: 0 0 0.5rem;
}

.lm-team__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.lm-team__list li {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--lm-line);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.lm-team__list li em {
	display: block;
	font-style: normal;
	margin-top: 0.15rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0;
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   Fear (cinematic cover)
   ========================================================================== */

.lm-fear.wp-block-cover {
	min-height: clamp(30rem, 78vh, 46rem);
	padding: var(--wp--preset--spacing--80) clamp(1.25rem, 0.5rem + 3vw, 2.5rem);
	overflow: hidden;
}

.lm-fear .wp-block-cover__image-background {
	transform-origin: center;
}

.lm-fear .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 1240px);
}

.lm-fear h2 {
	font-size: var(--wp--preset--font-size--display);
	line-height: 0.98;
	letter-spacing: -0.045em;
	color: #fff;
	max-width: 12ch;
	margin: 0;
}

.lm-fear p {
	color: rgba(255, 255, 255, 0.86);
	font-size: var(--wp--preset--font-size--large);
	max-width: 40ch;
	margin-top: 1.5rem;
}

.lm-fear .wp-block-buttons {
	margin-top: 2rem;
}

/* ==========================================================================
   Contact
   ========================================================================== */

.lm-contact h2 {
	font-size: var(--wp--preset--font-size--display);
	line-height: 0.98;
	letter-spacing: -0.045em;
	margin: 0;
	max-width: 15ch;
}

.lm-contact__lead {
	font-size: var(--wp--preset--font-size--large);
	max-width: 46ch;
	margin-top: 1.75rem;
}

.lm-contact .wp-block-buttons {
	margin-top: 2.25rem;
}

.lm-contact__info {
	margin-top: clamp(3rem, 2rem + 4vw, 6rem);
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
}

.lm-contact__col {
	border-top: 1px solid var(--lm-line-dark);
	padding-top: 1.25rem;
}

.lm-contact__col h3 {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blush);
	margin: 0 0 0.75rem;
}

.lm-contact__col p {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.4;
}

.lm-contact__col a {
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat;
	transition: background-size 0.4s var(--lm-ease);
}

.lm-contact__col a:hover {
	background-size: 100% 1px;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.lm-footer {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding-top: clamp(3rem, 2rem + 4vw, 5.5rem);
	padding-bottom: 2rem;
}

.lm-footer :where(p, li, a, h4) {
	color: inherit;
}

.lm-footer .wp-block-site-logo img {
	height: 56px;
	width: auto;
	filter: brightness(0) invert(1);
	opacity: 0.92;
}

/* Footer e-mail hidden for now; delete this rule to bring it back. */
.lm-footer__email {
	display: none;
}

.lm-footer__about {
	max-width: 34ch;
	opacity: 0.72;
	font-size: var(--wp--preset--font-size--small);
	margin-top: 1.25rem;
}

.lm-footer__cols {
	gap: clamp(1.5rem, 1rem + 3vw, 4rem);
}

.lm-footer h4 {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.6;
	margin: 0 0 1rem;
}

.lm-footer p {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--small);
}

.lm-footer a {
	text-decoration: none;
}

.lm-footer a:hover {
	text-decoration: underline;
}

.lm-footer__bottom {
	margin-top: clamp(2.5rem, 2rem + 3vw, 5rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--lm-line-dark);
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.6;
}

.lm-footer__bottom p {
	margin: 0;
}

/* ==========================================================================
   Motion preferences
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* Text groups inside constrained sections keep a left edge (flow layout, no auto margins) */
.lm-fear__text {
	max-width: 40rem;
}

.lm-contact__intro,
.lm-offer__head,
.lm-quotes__head {
	margin: 0;
}

/* ==========================================================================
   Refinements after first visual review
   ========================================================================== */

/* No stray gaps between full-width sections */
.lm-main .wp-block-post-content > * {
	margin-block: 0 !important;
}

.lm-section {
	padding-top: clamp(4rem, 2rem + 6vw, 7.5rem);
	padding-bottom: clamp(4rem, 2rem + 6vw, 7.5rem);
}

/* Header and footer logo size */
.lm-header .wp-block-site-logo img {
	height: 58px;
}

.lm-footer .wp-block-site-logo img {
	height: 76px;
}

/* Hero image overlaps the facts strip below it */
@media (min-width: 782px) {
	.lm-hero__media {
		margin-bottom: 0;
	}
}

/* Stats: numbers must fit their column */
.lm-stat__num {
	font-size: clamp(3.2rem, 1rem + 6.4vw, 7.2rem);
}

/* Step numerals stay outlined (beats `.lm-step p` colour) */
.lm-step .lm-step__num {
	color: transparent;
	max-width: none;
}

/* Implants heading a step smaller */
.lm-implants h2 {
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1;
}

/* Drawn quote mark (no glyph overlap) */
.lm-quotes .wp-block-quote::before {
	content: "";
	height: 2.2rem;
	width: 3.2rem;
	margin-bottom: 1.25rem;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 48'><g fill='%239E1E63'><path d='M0 28C0 12 10 3 24 0l3 7C18 10 14 15 14 21h13v27H0z'/><path d='M37 28C37 12 47 3 61 0l3 7C55 10 51 15 51 21h13v27H37z'/></g></svg>") no-repeat left center / contain;
	font-size: 0;
}

@media (max-width: 781px) {
	.lm-header .lm-header__cta {
		display: none;
	}
}

/* Trustindex Google reviews widget (shortcode) */
.lm-reviews {
	margin-top: clamp(3rem, 2rem + 4vw, 5.5rem);
}

/* Without the "Doświadczenie" cookie consent (initReviewsConsent() in
   site.js) the widget is hidden and this placeholder takes its place. */
.lm-reviews.is-gated > :not(.lm-reviews__gate) {
	display: none;
}

.lm-reviews__gate {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	padding: clamp(2.5rem, 2rem + 3vw, 4.5rem) 1.5rem;
	border: 1px solid var(--lm-line);
	border-radius: var(--lm-radius);
	text-align: center;
}

.lm-reviews__gate > * {
	margin: 0;
}

/* Drawn quote mark, as on the reviews themselves */
.lm-reviews__gate::before {
	content: "\201D";
	height: 0.5em;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--display);
	font-size: 5rem;
	line-height: 0.9;
}

.lm-reviews__note {
	max-width: 36ch;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.lm-reviews__alt {
	font-size: var(--wp--preset--font-size--small);
}

.lm-reviews__alt a {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Trustindex Google reviews: restyled to match the editorial quotes.
   Scoped with .lm-reviews so it out-ranks the plugin stylesheet.
   -------------------------------------------------------------------------- */

.lm-reviews .ti-widget.ti-goog .ti-widget-container {
	color: var(--wp--preset--color--contrast);
	margin-bottom: 0;
}

.lm-reviews .ti-widget.ti-goog .ti-widget-container,
.lm-reviews .ti-widget.ti-goog .ti-widget-container * {
	font-family: var(--wp--preset--font-family--body);
}

/* Slider controls: circles like the offer accordion, right-aligned above the row */
.lm-reviews .ti-widget.ti-goog .ti-controls {
	position: static;
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 0.75rem;
	width: auto;
	height: auto;
	margin: 0 0 1.75rem;
}

.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev {
	position: relative;
	inset: auto;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background-color: transparent;
	outline: 0;
	border: 1px solid var(--wp--preset--color--contrast);
}

.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next:before,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev:before {
	border-color: var(--wp--preset--color--contrast);
}

.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next:hover,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next:focus,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev:hover,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev:focus {
	background-color: var(--wp--preset--color--contrast) !important;
	outline: 0 !important;
	box-shadow: none;
}

.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next:hover:before,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next:focus:before,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev:hover:before,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev:focus:before {
	border-color: var(--wp--preset--color--surface) !important;
}

.lm-reviews .ti-widget.ti-goog .ti-controls-line {
	background: var(--lm-line);
	margin: 2rem 0 0;
	width: 100%;
	height: 2px;
}

.lm-reviews .ti-widget.ti-goog .ti-controls-line .dot {
	background: var(--wp--preset--color--primary);
}

/* Each review: no card, hairline + author underneath, like the featured quotes */
.lm-reviews .ti-widget.ti-goog .ti-review-item {
	display: flex;
	flex-direction: column;
	padding: 0 clamp(1rem, 0.5rem + 2vw, 2.5rem);
}

.lm-reviews .ti-widget.ti-goog .ti-review-item > .ti-inner {
	flex: 1 1 auto;
	display: block !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
}

.lm-reviews .ti-widget.ti-goog .ti-review-content {
	display: flex;
	flex-direction: column;
	height: auto;
	overflow: visible !important;
	-webkit-line-clamp: unset;
	font-size: inherit;
}

.lm-reviews .ti-widget.ti-goog .ti-review-content::before {
	content: "";
	order: -1;
	width: 3.2rem;
	height: 2.2rem;
	margin-bottom: 1.25rem;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 48'><g fill='%239E1E63'><path d='M0 28C0 12 10 3 24 0l3 7C18 10 14 15 14 21h13v27H0z'/><path d='M37 28C37 12 47 3 61 0l3 7C55 10 51 15 51 21h13v27H37z'/></g></svg>") no-repeat left center / contain;
}

.lm-reviews .ti-widget.ti-goog .ti-review-content .ti-review-text {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.15rem, 1rem + 0.6vw, 1.45rem);
	font-weight: 400;
	line-height: 1.32;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--contrast);
	height: 7.92em;
	-webkit-line-clamp: 6;
}

.lm-reviews .ti-widget.ti-goog .ti-read-more {
	order: 1;
	padding: 0.75rem 0 0;
}

.lm-reviews .ti-widget.ti-goog .ti-read-more span {
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	opacity: 1;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.lm-reviews .ti-widget.ti-goog .ti-review-content .ti-stars {
	order: 2;
	margin: 1.25rem 0 0;
	height: auto;
	line-height: 0;
}

.lm-reviews .ti-widget.ti-goog .ti-star {
	width: 15px !important;
	height: 15px !important;
	filter: hue-rotate(-75deg) saturate(1.3) brightness(0.68);
}

.lm-reviews .ti-widget.ti-goog .ti-review-header {
	margin-top: 1.5rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--lm-line);
	align-items: center;
}

.lm-reviews .ti-widget.ti-goog .ti-profile-img img,
.lm-reviews .ti-widget.ti-goog .ti-profile-img .ti-profile-img-sprite {
	width: 36px !important;
	height: 36px !important;
}

.lm-reviews .ti-widget.ti-goog .ti-widget-container .ti-name {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.lm-reviews .ti-widget.ti-goog .ti-widget-container .ti-date {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
}

.lm-reviews .ti-widget.ti-goog .ti-platform-icon {
	width: 22px !important;
	height: 22px !important;
}

/* The widget script sets inline display:block on the content; keep the flex ordering */
.lm-reviews .ti-widget.ti-goog .ti-review-content {
	display: flex !important;
}

.lm-reviews .ti-widget.ti-goog .ti-widget-container .ti-name {
	padding-right: 0;
}

/* Widget refinements: alignment, darker stars, taller text window, controls beside the heading */
.lm-reviews .ti-widget.ti-goog .ti-reviews-container-wrapper {
	margin: 0 !important;
	padding-top: 0;
}

.lm-reviews .ti-widget.ti-goog .ti-review-item {
	padding: 0 clamp(1rem, 0.5rem + 2vw, 2.25rem) 0 0;
}

.lm-reviews .ti-widget.ti-goog .ti-review-header:before,
.lm-reviews .ti-widget.ti-goog .ti-review-header:after {
	display: none;
}

.lm-reviews .ti-widget.ti-goog .ti-review-content .ti-review-text {
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
	height: 10.56em;
	-webkit-line-clamp: 8;
}

.lm-reviews .ti-widget.ti-goog .ti-star {
	filter: hue-rotate(-75deg) saturate(1.8) brightness(0.62);
}

@media (min-width: 782px) {
	.lm-reviews .ti-widget.ti-goog .ti-controls {
		position: absolute;
		top: -6.75rem;
		right: 0;
		margin: 0;
	}
}

.lm-reviews .ti-widget.ti-goog .ti-review-header {
	padding-left: 0;
	padding-right: 0;
}

/* Slider arrows on the sides, vertically centred on the quotes (desktop);
   below the review on small screens. Disabled state comes from site.js. */
@media (min-width: 782px) {
	.lm-reviews .ti-widget.ti-goog .ti-controls {
		display: block;
		position: absolute;
		top: 42%;
		left: 0;
		right: 0;
		width: 100%;
		height: 0;
		margin: 0;
		z-index: 2;
		pointer-events: none;
	}

	.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next,
	.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev {
		position: absolute;
		top: -23px;
		pointer-events: auto;
		background-color: var(--wp--preset--color--tint);
	}

	.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev {
		left: -4rem;
	}

	.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next {
		right: -4rem;
	}
}

/* Not enough room outside the column: reserve a gutter for the arrows */
@media (min-width: 782px) and (max-width: 1399px) {
	.lm-reviews .ti-widget.ti-goog .ti-widget-container {
		padding: 0 4rem;
	}
}

@media (max-width: 781px) {
	.lm-reviews .ti-widget.ti-goog .ti-reviews-container {
		display: flex;
		flex-direction: column;
	}

	.lm-reviews .ti-widget.ti-goog .ti-reviews-container-wrapper {
		order: 1;
	}

	.lm-reviews .ti-widget.ti-goog .ti-controls {
		order: 2;
		justify-content: center;
		margin: 1.5rem 0 0;
	}

	.lm-reviews .ti-widget.ti-goog .ti-controls-line {
		order: 3;
	}
}

/* Disabled arrow: nothing to scroll in that direction */
.lm-reviews .ti-widget.ti-goog .ti-controls .is-disabled,
.lm-reviews .ti-widget.ti-goog .ti-controls .is-disabled:hover,
.lm-reviews .ti-widget.ti-goog .ti-controls .is-disabled:focus {
	opacity: 0.3;
	cursor: default;
	pointer-events: none;
	background-color: transparent !important;
	border-color: var(--wp--preset--color--contrast);
}

.lm-reviews .ti-widget.ti-goog .ti-controls .is-disabled:hover:before,
.lm-reviews .ti-widget.ti-goog .ti-controls .is-disabled:focus:before {
	border-color: var(--wp--preset--color--contrast) !important;
}

/* ==========================================================================
   Mobile navigation fixes
   The header's backdrop-filter made the fixed full-screen menu overlay
   position itself against the header bar (so it only filled the bar).
   The blur now lives on a pseudo-element, so the overlay is viewport-sized.
   ========================================================================== */

.lm-header {
	position: relative;
	isolation: isolate;
	background: none;
	border-bottom: 0;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.lm-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(251, 248, 250, 0.8);
	-webkit-backdrop-filter: saturate(1.4) blur(16px);
	backdrop-filter: saturate(1.4) blur(16px);
	border-bottom: 1px solid transparent;
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

header.is-scrolled .lm-header {
	background: none;
	border-bottom-color: transparent;
}

header.is-scrolled .lm-header::before {
	background: rgba(251, 248, 250, 0.92);
	border-bottom-color: var(--lm-line);
}

.lm-header .wp-block-navigation {
	margin-left: auto;
}

@media (min-width: 782px) {
	.lm-header .wp-block-navigation {
		margin-left: 0;
	}
}

@media (max-width: 781px) {
	/* CTA group is hidden on phones; only logo and menu button remain */
	.lm-header__inner > .wp-block-group {
		display: none;
	}
}

/* Open menu overlay */
.lm-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem clamp(1.25rem, 0.5rem + 3vw, 2.5rem) 2.5rem;
}

.lm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.25rem;
	align-items: flex-start;
}

.lm-header .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.2rem, 1rem + 8vw, 3.4rem);
	font-weight: 450;
	letter-spacing: -0.035em;
	line-height: 1.1;
	padding: 0.4rem 0;
}

.lm-header .is-menu-open .wp-block-navigation-item__content::after {
	display: none;
}

.lm-header .wp-block-navigation__responsive-container-open,
.lm-header .wp-block-navigation__responsive-container-close {
	padding: 0.5rem;
	margin-right: -0.5rem;
}

/* Reviews arrows on phones: real gap (the widget resets column-gap with !important) */
@media (max-width: 781px) {
	.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next {
		margin-left: 0.75rem;
	}
}

/* Footer credit line */
.lm-footer__bottom a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Menu links start at the left edge of the overlay */
.lm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.lm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.lm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
	width: 100%;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	text-align: left;
}

.lm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start;
	width: 100%;
}

/* The widget hides the "previous" arrow at the start; keep both visible (disabled state is dimmed instead) */
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-prev,
.lm-reviews .ti-widget.ti-goog .ti-controls .ti-next {
	display: block !important;
	visibility: visible !important;
}

/* ==========================================================================
   Stats: one row, each figure inside a ring
   ========================================================================== */

.lm-stats .lm-stats__row {
	gap: clamp(1.25rem, 0.5rem + 2.5vw, 3rem);
	align-items: center;
	justify-content: center;
}

.lm-stats .lm-stats__row > .wp-block-column {
	aspect-ratio: 1;
	border: 1px solid rgba(158, 30, 99, 0.4);
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.5rem;
	margin: 0 auto !important;
}

@media (min-width: 782px) {
	.lm-stats .lm-stats__row > .wp-block-column {
		flex: 1 1 0 !important;
		max-width: 22rem;
	}
}

@media (max-width: 781px) {
	.lm-stats .lm-stats__row > .wp-block-column {
		width: min(78vw, 17rem);
		flex: 0 0 auto !important;
	}
}

.lm-stats .lm-stat__num {
	font-size: clamp(2.4rem, 1rem + 3.6vw, 4.4rem);
	text-align: center;
}

.lm-stats .lm-stat__label {
	border-top: 0;
	margin: 0.6rem 0 0;
	padding: 0;
	max-width: 15ch;
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
}

.lm-stats .lm-stats__row > .wp-block-column {
	border-color: rgba(158, 30, 99, 0.55);
}

.lm-stats .lm-stat__num {
	font-size: clamp(2.6rem, 1rem + 4.4vw, 5.2rem);
}

@media (max-width: 781px) {
	.lm-stats .lm-stats__row > .wp-block-column {
		width: min(72vw, 15rem);
	}
}

/* Stats rings: solid brand colour, thicker line, smaller overall */
.lm-stats .lm-stats__row {
	gap: clamp(1.25rem, 0.5rem + 3vw, 3.5rem);
}

.lm-stats .lm-stats__row > .wp-block-column {
	border: 3px solid var(--wp--preset--color--primary);
	padding: 1rem;
}

@media (min-width: 782px) {
	.lm-stats .lm-stats__row > .wp-block-column {
		flex: 0 1 15rem !important;
		max-width: 15rem;
	}
}

@media (max-width: 781px) {
	.lm-stats .lm-stats__row > .wp-block-column {
		width: min(60vw, 13rem);
	}
}

.lm-stats .lm-stat__num {
	font-size: clamp(1.9rem, 1rem + 1.9vw, 2.9rem);
}

.lm-stats .lm-stat__label {
	font-size: 0.8125rem;
	margin-top: 0.4rem;
	max-width: 13ch;
}

/* ==========================================================================
   Custom scrollbar (page)
   WebKit/Blink get the styled bar; Firefox gets the standard properties.
   ========================================================================== */

:root {
	--lm-scroll-track: var(--wp--preset--color--base);
	--lm-scroll-thumb: var(--wp--preset--color--primary);
	--lm-scroll-thumb-hover: var(--wp--preset--color--deep);
}

@supports not selector(::-webkit-scrollbar) {
	html {
		scrollbar-width: thin;
		scrollbar-color: var(--lm-scroll-thumb) var(--lm-scroll-track);
	}
}

::-webkit-scrollbar {
	width: 14px;
	height: 14px;
}

::-webkit-scrollbar-track {
	background: var(--lm-scroll-track);
	border-left: 1px solid var(--lm-line);
}

::-webkit-scrollbar-thumb {
	background: var(--lm-scroll-thumb);
	border-radius: 999px;
	border: 4px solid var(--lm-scroll-track);
	min-height: 48px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--lm-scroll-thumb-hover);
}

::-webkit-scrollbar-corner {
	background: var(--lm-scroll-track);
}

/* ==========================================================================
   Overlay scrollbar (created by site.js on mouse devices).
   Native bar is hidden so sections run to the very edge of the window.
   ========================================================================== */

html.lm-custom-scroll {
	scrollbar-width: none;
}

html.lm-custom-scroll::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

.lm-scrollbar {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 20px;
	z-index: 200;
	pointer-events: none;
	opacity: 0.45;
	transition: opacity 0.3s ease;
}

.lm-scrollbar.is-active,
.lm-scrollbar.is-dragging,
.lm-scrollbar:hover {
	opacity: 1;
}

.lm-scrollbar.is-inactive {
	display: none;
}

.lm-scrollbar__thumb {
	position: absolute;
	top: 0;
	right: 4px;
	width: 6px;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 1px rgba(251, 248, 250, 0.75);
	pointer-events: auto;
	cursor: grab;
	will-change: transform;
	transition: width 0.2s var(--lm-ease), right 0.2s var(--lm-ease), background-color 0.2s ease;
}

.lm-scrollbar__thumb:hover,
.lm-scrollbar.is-dragging .lm-scrollbar__thumb {
	width: 10px;
	right: 3px;
	background: var(--wp--preset--color--deep);
}

.lm-scrollbar.is-dragging .lm-scrollbar__thumb {
	cursor: grabbing;
}

/* Hide over the open mobile menu */
html.has-modal-open .lm-scrollbar {
	display: none;
}

/* ==========================================================================
   Pinned columns (visit + team)
   `position: sticky` only travels inside its parent, and the columns were
   sized to their content (align-items: flex-start), so nothing could pin.
   The left column now stretches to the row height; the sticky group inside
   is what stays put.
   ========================================================================== */

@media (min-width: 782px) {
	.lm-visit__grid > .wp-block-column:first-child,
	.lm-team__grid > .wp-block-column:first-child {
		align-self: stretch;
	}

	/* Long runway so the left column stays pinned while the steps pass */
	.lm-visit .lm-step {
		min-height: 48vh;
		align-items: center;
	}

	.lm-visit .lm-promise {
		min-height: 30vh;
		display: flex;
		align-items: center;
	}
}

/* Steps: the one in focus is full strength, the others recede (only when JS drives it) */
html.lm-steps .lm-step {
	opacity: 0.32;
	transition: opacity 0.5s var(--lm-ease);
}

html.lm-steps .lm-step.is-active {
	opacity: 1;
}

html.lm-steps .lm-step .lm-step__num {
	transition: color 0.5s var(--lm-ease);
}

html.lm-steps .lm-step.is-active .lm-step__num {
	color: var(--wp--preset--color--primary);
}

/* ==========================================================================
   ENT (laryngolog): heading, lead and CTA left (pinned on desktop),
   list of typical problems right (reuses .lm-offer__list)
   ========================================================================== */

.lm-ent__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2rem, 1rem + 4vw, 6rem);
	align-items: start;
}

.lm-ent__grid > * {
	margin: 0;
}

.lm-ent__head {
	position: sticky;
	top: 120px;
}

.lm-ent__head > * {
	margin: 0;
}

.lm-ent__lead {
	margin-top: 1.5rem !important;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
	max-width: 34ch;
}

.lm-ent .wp-block-buttons {
	margin-top: 2rem !important;
}

.lm-ent__list li {
	padding: 1.1rem 0;
	font-size: var(--wp--preset--font-size--large);
}

@media (max-width: 781px) {
	.lm-ent__grid {
		grid-template-columns: 1fr;
	}

	.lm-ent__head {
		position: static;
	}
}

/* ==========================================================================
   Map in the contact section: Google loads only with the "Doświadczenie"
   cookie consent (initMap() in site.js); otherwise the button opens the
   cookie settings. Without JS the button opens the Google Maps listing.
   ========================================================================== */

.lm-map {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	aspect-ratio: 21 / 8;
	margin-top: clamp(2.5rem, 1.5rem + 3vw, 4rem);
	padding: 2rem 1.5rem;
	overflow: hidden;
	border: 1px solid var(--lm-line-dark);
	border-radius: var(--lm-radius);
	text-align: center;
	background:
		repeating-linear-gradient(0deg, rgba(251, 248, 250, 0.05) 0 1px, transparent 1px 56px),
		repeating-linear-gradient(90deg, rgba(251, 248, 250, 0.05) 0 1px, transparent 1px 56px);
}

.lm-map > * {
	margin: 0;
}

/* Drawn pin above the note */
.lm-map::before {
	content: "";
	width: 34px;
	height: 44px;
	background-color: var(--wp--preset--color--blush);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 44'><path d='M17 0C7.6 0 0 7.5 0 16.8 0 29.4 17 44 17 44s17-14.6 17-27.2C34 7.5 26.4 0 17 0zm0 23.5a6.8 6.8 0 1 1 0-13.6 6.8 6.8 0 0 1 0 13.6z'/></svg>") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 44'><path d='M17 0C7.6 0 0 7.5 0 16.8 0 29.4 17 44 17 44s17-14.6 17-27.2C34 7.5 26.4 0 17 0zm0 23.5a6.8 6.8 0 1 1 0-13.6 6.8 6.8 0 0 1 0 13.6z'/></svg>") center / contain no-repeat;
}

.lm-map__note {
	max-width: 36ch;
	font-size: var(--wp--preset--font-size--small);
	color: rgba(251, 248, 250, 0.72);
}

.lm-map .lm-map__alt {
	font-size: var(--wp--preset--font-size--small);
}

.lm-map .lm-map__alt a {
	color: var(--wp--preset--color--blush);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.lm-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.lm-map.is-loaded {
	padding: 0;
}

.lm-map.is-loaded::before,
.lm-map.is-loaded > :not(iframe) {
	visibility: hidden;
}

@media (max-width: 781px) {
	.lm-map {
		aspect-ratio: 1 / 1;
	}
}

/* ==========================================================================
   Urgent card ("Ostry ból zęba?"): shown by initUrgent() in site.js,
   bottom left on desktop, across the bottom on phones.
   ========================================================================== */

.lm-urgent {
	display: none;
}

html.lm-urgent-on .lm-urgent {
	display: block;
	position: fixed;
	left: clamp(12px, 2vw, 28px);
	bottom: clamp(12px, 2vw, 28px);
	z-index: 150;
	width: min(380px, calc(100vw - 24px));
	margin: 0;
	padding: 1.6rem 1.6rem 1.5rem;
	/* Keeps the card apart from the dark (deep) sections it floats over */
	border: 1px solid rgba(251, 190, 244, 0.75);
	border-radius: var(--lm-radius);
	box-shadow: 0 24px 60px -20px rgba(63, 11, 39, 0.55);
	opacity: 0;
	transform: translateY(24px);
	pointer-events: none;
	transition: opacity 0.5s var(--lm-ease), transform 0.5s var(--lm-ease);
}

html.lm-urgent-on .lm-urgent.is-open {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

.lm-urgent > * {
	margin: 0;
}

.lm-urgent__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.02em;
}

.lm-urgent .lm-urgent__eyebrow {
	color: var(--wp--preset--color--blush);
}

/* Pulsing dot: this card is the one thing on the page that is urgent */
.lm-urgent__eyebrow::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0 0 rgba(251, 190, 244, 0.6);
	animation: lm-pulse 2s ease-out infinite;
}

@keyframes lm-pulse {
	to {
		box-shadow: 0 0 0 10px rgba(251, 190, 244, 0);
	}
}

.lm-urgent__title {
	margin-top: 0.6rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem);
	font-weight: 450;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.lm-urgent .lm-urgent__text {
	margin-top: 0.5rem;
	color: rgba(251, 248, 250, 0.78);
	font-size: var(--wp--preset--font-size--small);
}

.lm-urgent__actions {
	margin-top: 1.2rem !important;
}

.lm-urgent__actions .wp-block-button,
.lm-urgent__actions .wp-block-button__link {
	width: 100%;
}

/* Labelled, high-contrast pill so closing is obvious to every visitor */
.lm-urgent__close {
	position: absolute;
	top: 0.9rem;
	right: 0.9rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 40px;
	padding: 0 0.7rem 0 1rem;
	border: 0;
	border-radius: 999px;
	color: var(--wp--preset--color--deep);
	background: var(--wp--preset--color--surface);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease;
}

.lm-urgent__close:hover {
	background-color: var(--wp--preset--color--blush);
}

.lm-urgent__close:focus-visible {
	outline: 2px solid var(--wp--preset--color--surface);
	outline-offset: 3px;
}

.lm-urgent__x {
	width: 14px;
	height: 14px;
	background:
		linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat,
		linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat;
	transform: rotate(45deg);
}

@media (max-width: 781px) {
	html.lm-urgent-on .lm-urgent {
		left: 12px;
		right: 12px;
		bottom: 12px;
		width: auto;
		padding: 1.25rem 1.25rem 1.2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html.lm-urgent-on .lm-urgent {
		transition: none;
	}

	.lm-urgent__eyebrow::before {
		animation: none;
	}
}

/* ==========================================================================
   Cookie consent (plugin "Cookies and Content Security Policy", cacsp).
   The plugin's sheet loads before this one, so these rules repeat its
   selector chains to win. Banner: floating card at the bottom over a plum
   backdrop; settings: centred card with a plum header. The urgent card
   steps aside while either is open.
   ========================================================================== */

body.modal-cacsp-open .modal-cacsp-backdrop {
	background-color: var(--wp--preset--color--deep);
	opacity: 0.55;
}

.modal-cacsp-position {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
}

.modal-cacsp-position,
.modal-cacsp-position * {
	color: var(--wp--preset--color--contrast);
}

.modal-cacsp-position .modal-cacsp-box {
	border-radius: var(--lm-radius);
}

.modal-cacsp-position .modal-cacsp-box > * {
	background-color: var(--wp--preset--color--surface);
}

.modal-cacsp-position .modal-cacsp-box a {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.modal-cacsp-position .modal-cacsp-box a:hover {
	color: var(--wp--preset--color--deep);
}

.modal-cacsp-position :focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

/* Close (×): a round solid button instead of a loose glyph on the backdrop */
body.modal-cacsp-open .modal-cacsp-position > .modal-cacsp-box-close {
	position: fixed;
	top: clamp(12px, 2vw, 28px);
	right: clamp(12px, 2vw, 28px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--deep);
	font-size: 1.6rem;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.25s ease;
}

body.modal-cacsp-open .modal-cacsp-position > .modal-cacsp-box-close:hover {
	opacity: 1;
	background-color: var(--wp--preset--color--blush);
}

/* Banner */
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom {
	left: clamp(12px, 2vw, 28px);
	right: clamp(12px, 2vw, 28px);
	bottom: clamp(12px, 2vw, 28px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	row-gap: 0.5rem;
	width: auto;
	max-width: 1080px;
	margin: 0 auto;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem) clamp(1.25rem, 1rem + 1.5vw, 2.5rem);
	border: 1px solid var(--lm-line);
	border-radius: var(--lm-radius);
	background-color: var(--wp--preset--color--surface);
	box-shadow: 0 24px 60px -20px rgba(63, 11, 39, 0.55);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-box-header {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	grid-column: 1;
	padding: 0;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.02em;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-box-header,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-box-header * {
	color: var(--wp--preset--color--primary);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-box-header::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-box-content {
	grid-column: 1;
	width: auto;
	max-width: 62ch;
	padding: 0;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-btns {
	grid-column: 2;
	grid-row: 1 / span 2;
	width: auto;
	padding: 0;
	border: 0;
}

/* The plugin stretches banner buttons to full width below 992px */
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-btns .modal-cacsp-btn {
	width: auto;
	max-width: none;
	margin: 0;
}

/* Buttons: the site's pills. Accept is filled, refuse is an outline of the
   same size (refusing has to be as easy as accepting), settings is quieter. */
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.6rem;
	padding: clamp(1.1rem, 1rem + 0.5vw, 1.5rem) clamp(1.25rem, 1rem + 1vw, 2rem);
	border-top: 1px solid var(--lm-line);
	white-space: nowrap;
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 0;
	padding: 0 1.4rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	background-color: transparent;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.2;
	transition: background-color 0.25s var(--lm-ease), color 0.25s var(--lm-ease), border-color 0.25s var(--lm-ease), transform 0.25s var(--lm-ease);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn * {
	color: var(--wp--preset--color--contrast);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn:hover {
	opacity: 1;
	transform: translateY(-2px);
	background-color: var(--wp--preset--color--tint);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-settings,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-save {
	border-color: transparent;
	background-color: transparent;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-settings:hover,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-save:hover {
	background-color: var(--wp--preset--color--tint);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse-all {
	border: 1px solid var(--wp--preset--color--contrast);
	background-color: transparent;
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse *,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse-all,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse-all * {
	color: var(--wp--preset--color--contrast);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse:hover,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-refuse-all:hover {
	background-color: var(--wp--preset--color--tint);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept-all {
	border: 1px solid var(--wp--preset--color--primary);
	background-color: var(--wp--preset--color--primary);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept *,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept-all,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept-all * {
	color: var(--wp--preset--color--surface);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept:hover,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-accept-all:hover {
	border-color: var(--wp--preset--color--deep);
	background-color: var(--wp--preset--color--deep);
}

/* Settings */
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings.modal-cacsp-box-show {
	width: calc(100% - 24px);
	min-width: 0;
	max-width: 640px;
	box-shadow: 0 24px 60px -20px rgba(63, 11, 39, 0.55);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-box-header {
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem) clamp(1.25rem, 1rem + 1vw, 2rem);
	background-color: var(--wp--preset--color--deep);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem);
	font-weight: 450;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-box-header,
.modal-cacsp-position .modal-cacsp-box .modal-cacsp-box-header * {
	color: var(--wp--preset--color--surface);
}

.modal-cacsp-position .modal-cacsp-box .modal-cacsp-box-content {
	padding: clamp(1.1rem, 1rem + 0.5vw, 1.5rem) clamp(1.25rem, 1rem + 1vw, 2rem);
	font-size: var(--wp--preset--font-size--small);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li {
	padding: 1.1rem clamp(1.25rem, 1rem + 1vw, 2rem) 0;
	border-bottom: 1px solid var(--lm-line);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li:first-child {
	border-top: 1px solid var(--lm-line);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li:last-child {
	border-bottom: 0;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch {
	gap: 1rem;
	padding-bottom: 1.1rem;
	font-weight: 600;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li .modal-cacsp-toggle-switch br {
	display: none;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch span > span,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch span > span {
	display: block;
	margin-top: 0.2rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.93em;
	font-weight: 400;
	line-height: 1.5;
}

/* Switch: tint track with a white knob; on = magenta */
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch span.modal-cacsp-toggle,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch span.modal-cacsp-toggle {
	flex: none;
	width: 46px;
	height: 26px;
	margin: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--tint);
	box-shadow: inset 0 0 0 1px var(--lm-line);
	transition: background-color 0.25s ease;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch span.modal-cacsp-toggle-switch-handle,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch span.modal-cacsp-toggle-switch-handle {
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	margin: 0;
	border-radius: 50%;
	background-color: var(--wp--preset--color--surface);
	box-shadow: 0 1px 3px rgba(63, 11, 39, 0.3);
	transition: left 0.25s var(--lm-ease);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active span.modal-cacsp-toggle,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active span.modal-cacsp-toggle {
	background-color: var(--wp--preset--color--primary);
	box-shadow: none;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active span.modal-cacsp-toggle-switch-handle,
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active span.modal-cacsp-toggle-switch-handle {
	left: 23px;
	background-color: var(--wp--preset--color--surface);
}

/* "Konieczne" is always on and locked: the same switch, dimmed */
.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active.disabled span {
	color: var(--wp--preset--color--contrast);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active.disabled span > span {
	color: var(--wp--preset--color--muted);
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active.disabled span.modal-cacsp-toggle {
	background-color: var(--wp--preset--color--primary);
	opacity: 0.4;
}

.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li span.modal-cacsp-toggle-switch.modal-cacsp-toggle-switch-active.disabled span.modal-cacsp-toggle-switch-handle {
	background-color: var(--wp--preset--color--surface);
}

/* Placeholder the plugin shows in place of a blocked embed (e.g. the map) */
.warning-cacsp-iframe-content,
.warning-cacsp-object-content {
	gap: 1rem;
	padding: 2rem 1.5rem;
	border-radius: var(--lm-radius);
	background-color: var(--wp--preset--color--tint);
	font-size: var(--wp--preset--font-size--small);
}

.warning-cacsp-iframe-content,
.warning-cacsp-iframe-content *,
.warning-cacsp-object-content,
.warning-cacsp-object-content * {
	color: var(--wp--preset--color--contrast);
}

.warning-cacsp-iframe-content .warning-cacsp-iframe-content-text,
.warning-cacsp-object-content .warning-cacsp-object-content-text {
	margin: 0 auto;
}

.warning-cacsp-iframe-content .warning-cacsp-iframe-content-button a,
.warning-cacsp-object-content .warning-cacsp-object-content-button a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 1.4rem;
	border: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--primary);
	font-weight: 600;
	line-height: 1.2;
	transition: background-color 0.25s ease;
}

.warning-cacsp-iframe-content .warning-cacsp-iframe-content-button a,
.warning-cacsp-iframe-content .warning-cacsp-iframe-content-button a *,
.warning-cacsp-object-content .warning-cacsp-object-content-button a,
.warning-cacsp-object-content .warning-cacsp-object-content-button a * {
	color: var(--wp--preset--color--surface);
}

.warning-cacsp-iframe-content .warning-cacsp-iframe-content-button a:hover,
.warning-cacsp-object-content .warning-cacsp-object-content-button a:hover {
	background-color: var(--wp--preset--color--deep);
}

/* The urgent card waits until the visitor has made a cookie choice */
html.modal-cacsp-open.lm-urgent-on .lm-urgent {
	visibility: hidden;
	opacity: 0;
}

@media (max-width: 781px) {
	/* Settings card starts below the round close button */
	body.modal-cacsp-open .modal-cacsp-position {
		padding: 68px 0 12px;
	}

	.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom {
		grid-template-columns: minmax(0, 1fr);
	}

	.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-btns {
		grid-column: 1;
		grid-row: auto;
		margin-top: 0.6rem;
	}

	.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns {
		white-space: normal;
	}

	/* Refuse and accept side by side, settings as a link underneath */
	.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn,
	.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-btns .modal-cacsp-btn {
		flex: 1 1 calc(50% - 0.3rem);
		width: auto;
		max-width: none;
		margin: 0;
		padding: 0 1rem;
	}

	.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-settings,
	.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-save,
	.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-show.modal-cacsp-box-bottom .modal-cacsp-btns .modal-cacsp-btn.modal-cacsp-btn-settings {
		flex-basis: 100%;
		order: 3;
		min-height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn,
	.modal-cacsp-position .modal-cacsp-box.modal-cacsp-box-settings .modal-cacsp-box-settings-list ul li a.modal-cacsp-toggle-switch span.modal-cacsp-toggle-switch-handle {
		transition: none;
	}

	.modal-cacsp-position .modal-cacsp-box .modal-cacsp-btns .modal-cacsp-btn:hover {
		transform: none;
	}
}
