:root {
	--ls-bg: #f6f3ea;
	--ls-surface: #ffffff;
	--ls-text: #193127;
	--ls-muted: #66736c;
	--ls-green: #274f3b;
	--ls-green-dark: #183a2a;
	--ls-border: rgba(25, 49, 39, .12);
	--ls-radius-sm: 16px;
	--ls-radius-md: 24px;
	--ls-radius-lg: 36px;
	--ls-container: 1240px;
	--ls-header-height: 86px;
	--ls-shadow: 0 20px 60px rgba(25, 49, 39, .08);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--ls-bg);
	color: var(--ls-text);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.5;
}

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

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea,
select {
	font: inherit;
}

.skip-link {
	position: fixed;
	left: 16px;
	top: -100px;
	z-index: 99999;
	padding: 12px 18px;
	background: #fff;
	border-radius: 12px;
}

.skip-link:focus {
	top: 16px;
}

.site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: linear-gradient(180deg, rgba(8,24,16,.45) 0%, rgba(8,24,16,0) 100%);
	border-bottom: 0;
}

.site-header__inner {
	width: min(calc(100% - 48px), var(--ls-container));
	min-height: var(--ls-header-height);
	margin-inline: auto;
	display: flex;
	align-items: center;
	gap: 28px;
}

.site-brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
}

.site-brand img,
.site-brand .custom-logo {
	max-height: 56px;
	width: auto;
}

.site-navigation {
	margin-left: auto;
}

.site-menu {
	display: flex;
	align-items: center;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-menu li {
	position: relative;
}

.site-menu a {
	display: block;
	padding: 14px 0;
	font-size: 15px;
	font-weight: 600;
	color: #fff;
}

.site-menu .sub-menu {
	position: absolute;
	left: -18px;
	top: 100%;
	min-width: 260px;
	margin: 0;
	padding: 12px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--ls-border);
	border-radius: 18px;
	box-shadow: var(--ls-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: .18s ease;
}

.site-menu .sub-menu a {
	color: var(--ls-text);
	padding: 9px 12px;
	border-radius: 10px;
}

.site-menu li:hover > .sub-menu,
.site-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.site-menu .sub-menu a:hover {
	background: var(--ls-bg);
}

.site-header__tickets {
	flex: 0 0 auto;
	padding: 12px 20px;
	background: rgba(255,255,255,.18);
	color: #fff;
	font-weight: 700;
	border-radius: 999px;
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255,255,255,.18);
}

.menu-toggle {
	display: none;
	width: 46px;
	height: 46px;
	margin-left: auto;
	padding: 11px;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.14);
	backdrop-filter: blur(8px);
	cursor: pointer;
}

.menu-toggle span {
	display: block;
	height: 2px;
	margin: 5px 0;
	background: #fff;
}

.site-main {
	min-height: 60vh;
}

.shell {
	width: min(calc(100% - 48px), var(--ls-container));
	margin-inline: auto;
}

.section {
	padding: 104px 0;
}

.eyebrow {
	margin: 0 0 14px;
	color: var(--ls-green);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.eyebrow--light {
	color: rgba(255,255,255,.72);
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 24px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 800;
	transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

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

.button--light {
	background: #fff;
	color: var(--ls-green-dark);
}

.button--glass {
	border: 1px solid rgba(255,255,255,.4);
	background: rgba(255,255,255,.1);
	color: #fff;
	backdrop-filter: blur(10px);
}

.button--green {
	background: var(--ls-green);
	color: #fff;
}

.button--outline-light {
	border: 1px solid rgba(255,255,255,.45);
	color: #fff;
}

.text-link,
.arrow-link {
	font-size: 15px;
	font-weight: 800;
}

.text-link:hover,
.arrow-link:hover {
	opacity: .72;
}

/* Hero slider */

.hero-slider {
	position: relative;
	background: #112116;
	color: #fff;
	padding-bottom: 40px;
}

.hero-slider__viewport {
	position: relative;
	min-height: 860px;
	overflow: hidden;
}

.hero-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity .55s ease;
}

.hero-slide.is-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 2;
}

.hero-slide__media,
.hero-slide__overlay {
	position: absolute;
	inset: 0;
}

.hero-slide__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.hero-slide__overlay {
	background:
		linear-gradient(90deg, rgba(7,20,14,.78) 0%, rgba(7,20,14,.48) 38%, rgba(7,20,14,.12) 72%),
		linear-gradient(0deg, rgba(7,20,14,.55) 0%, transparent 40%);
}

.hero-slide__content {
	position: relative;
	z-index: 3;
	min-height: 860px;
	display: flex;
	align-items: center;
	padding-top: 110px;
	padding-bottom: 170px;
}

.hero-slide__panel {
	max-width: 640px;
}

.hero-slide .hero-slide__title {
	margin: 0;
	font-size: clamp(52px, 7vw, 96px);
	line-height: .9;
	letter-spacing: -.05em;
}

.hero-slide__lead {
	margin: 28px 0 0;
	max-width: 560px;
	font-size: clamp(17px, 1.7vw, 22px);
	line-height: 1.5;
	color: rgba(255,255,255,.84);
}

.hero-slide__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 34px;
}

.hero-slider__controls {
	position: absolute;
	left: 50%;
	bottom: 160px;
	z-index: 5;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(calc(100% - 48px), var(--ls-container));
	pointer-events: none;
}

.hero-slider__arrow,
.hero-slider__dots {
	pointer-events: auto;
}

.hero-slider__arrow {
	width: 52px;
	height: 52px;
	border: 1px solid rgba(255,255,255,.24);
	border-radius: 50%;
	background: rgba(255,255,255,.12);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	backdrop-filter: blur(8px);
}

.hero-slider__dots {
	display: flex;
	gap: 10px;
}

.hero-slider__dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.35);
	cursor: pointer;
}

.hero-slider__dot.is-active {
	background: #fff;
	transform: scale(1.08);
}

.hero-benefits {
	position: relative;
	z-index: 10;
	margin-top: -90px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.hero-benefit {
	padding: 24px 22px;
	background: rgba(255,255,255,.96);
	color: var(--ls-text);
	border: 1px solid rgba(255,255,255,.5);
	border-radius: 24px;
	box-shadow: var(--ls-shadow);
}

.hero-benefit h3 {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.2;
}

.hero-benefit p {
	margin: 0;
	color: var(--ls-muted);
	font-size: 14px;
	line-height: 1.55;
}

/* Rest */

.section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 42px;
}

.section-heading--wide {
	align-items: flex-start;
}

.section-heading h2,
.story-content h2,
.feeding-card h2,
.contact-panel h2 {
	margin: 0;
	font-size: clamp(36px, 4.4vw, 68px);
	line-height: .98;
	letter-spacing: -.04em;
}

.section-heading > p {
	width: min(100%, 430px);
	margin: 4px 0 0;
	color: var(--ls-muted);
	font-size: 17px;
}

.plan-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.plan-card {
	min-height: 300px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	background: var(--ls-surface);
	border: 1px solid var(--ls-border);
	border-radius: var(--ls-radius-md);
	transition: transform .2s ease, box-shadow .2s ease;
}

.plan-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--ls-shadow);
}

.plan-card__number {
	color: var(--ls-muted);
	font-size: 12px;
	font-weight: 800;
}

.plan-card h3 {
	margin: auto 0 14px;
	font-size: 25px;
	line-height: 1.05;
	letter-spacing: -.025em;
}

.plan-card p {
	min-height: 76px;
	margin: 0 0 20px;
	color: var(--ls-muted);
	font-size: 14px;
}

.story-section {
	padding-top: 64px;
}

.story-grid {
	display: grid;
	grid-template-columns: 1.12fr .88fr;
	gap: clamp(50px, 8vw, 120px);
	align-items: center;
}

.story-media {
	overflow: hidden;
	border-radius: var(--ls-radius-lg);
	aspect-ratio: 1 / .86;
}

.story-media__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lead-text {
	max-width: 570px;
	margin: 32px 0;
	color: var(--ls-muted);
	font-size: 18px;
	line-height: 1.65;
}

/* =========================================================
   0.4.15 — ANIMALS
   Desktop + Mobile
   ========================================================= */

.home-page .animals-section {
	padding: 28px 0 72px;
	background: var(--lion-ivory);
	color: var(--lion-brown);
}

.home-page .animals-section .section-heading {
	align-items: flex-end;
	margin-bottom: 28px;
}

.home-page .animals-section .eyebrow {
	margin-bottom: 7px;
	color: var(--lion-green);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.home-page .animals-section .section-heading h2 {
	margin: 0;
	color: var(--lion-brown);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(40px, 3.4vw, 52px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -.025em;
}

.home-page .animals-section .text-link {
	color: var(--lion-green);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.home-page .animal-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.home-page .animal-card {
	position: relative;
	display: block;
	overflow: hidden;
	min-height: 0;
	aspect-ratio: 3 / 4;
	border-radius: 24px;
	background: #e8e1d4;
	box-shadow: 0 12px 30px rgba(62, 45, 28, .08);
	text-decoration: none;
	isolation: isolate;
}

.home-page .animal-card__media {
	position: absolute;
	inset: 0;
}

.home-page .animal-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			180deg,
			rgba(13, 24, 15, 0) 45%,
			rgba(11, 24, 14, .10) 62%,
			rgba(9, 22, 13, .78) 100%
		);
}

.home-page .animal-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.home-page .animal-card:hover img {
	transform: scale(1.025);
}

.home-page .animal-card__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 24px 22px 22px;
}

.home-page .animal-card h3 {
	margin: 0 0 5px;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(25px, 2vw, 32px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -.02em;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .18);
}

.home-page .animal-card__content span {
	color: rgba(255,255,255,.82);
	font-size: 12.5px;
	font-weight: 700;
}

/* Tablet */
@media (max-width: 960px) {
	.home-page .animal-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-page .animal-card {
		aspect-ratio: 4 / 3;
	}
}

/* Mobile — separate 2×2 composition */
@media (max-width: 600px) {
	.home-page .animals-section {
		padding: 22px 0 50px;
	}

	.home-page .animals-section .section-heading {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 8px;
		margin-bottom: 20px;
		text-align: center;
	}

	.home-page .animals-section .section-heading h2 {
		font-size: 34px;
	}

	.home-page .animals-section .eyebrow {
		margin-bottom: 5px;
		font-size: 10px;
	}

	.home-page .animals-section .text-link {
		display: inline-flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
		font-size: 12px;
		white-space: nowrap;
	}

	.home-page .animal-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.home-page .animal-card {
		aspect-ratio: 4 / 5;
		border-radius: 18px;
		box-shadow: 0 8px 22px rgba(62, 45, 28, .07);
	}

	.home-page .animal-card__content {
		padding: 16px 12px 14px;
	}

	.home-page .animal-card h3 {
		margin-bottom: 3px;
		font-size: 21px;
	}

	.home-page .animal-card__content span {
		font-size: 10px;
	}
}

/* =========================================================
   END 0.4.15 — ANIMALS
   ========================================================= */

.home-page .animals-section {
        padding-bottom: 34px;
}

.home-page .feeding-section {
        padding-top: 34px;
        padding-bottom: 34px;
}

.home-page .pride-section {
        padding-top: 34px;
}

.feeding-card {
        display: grid;
        grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
        grid-template-areas:
                "media intro"
                "media body";
        grid-template-rows: auto 1fr;
        min-height: 520px;
        overflow: hidden;
        background: #f2f0e9;
        border: 1px solid var(--ls-border);
        border-radius: var(--ls-radius-lg);
        color: inherit;
}

.feeding-card__intro {
        grid-area: intro;
        align-self: end;
        padding: clamp(44px, 4.5vw, 64px) clamp(38px, 4.7vw, 66px) 0;
}

.feeding-card__intro .eyebrow {
        margin-bottom: 15px;
}

.feeding-card h2 {
        font-size: clamp(44px, 4vw, 60px);
        line-height: .98;
        letter-spacing: -.04em;
}

.feeding-card__body {
        grid-area: body;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        padding: 22px clamp(38px, 4.7vw, 66px) clamp(44px, 4.5vw, 64px);
}

.feeding-card__body p {
        max-width: 500px;
        margin: 0;
        color: var(--ls-muted);
        font-size: 16px;
        line-height: 1.62;
}

.feeding-card__media {
        grid-area: media;
        min-width: 0;
        min-height: 520px;
        overflow: hidden;
        background: #dfe5da;
}

.feeding-card__media img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 54% center;
}

.pride-panel {
	padding: clamp(34px, 5vw, 64px);
	background: #fff;
	border: 1px solid var(--ls-border);
	border-radius: var(--ls-radius-lg);
}

.pride-stat {
	display: flex;
	align-items: baseline;
	gap: 15px;
	margin-bottom: 36px;
}

.pride-stat strong {
	font-size: clamp(62px, 8vw, 110px);
	line-height: .8;
	letter-spacing: -.07em;
	color: var(--ls-green);
}

.pride-stat span {
	color: var(--ls-muted);
	font-size: 16px;
}

.pride-people {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.friend-chip {
	padding: 11px 15px;
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--ls-bg);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
}

.friend-chip__mark {
	color: var(--ls-green);
}

.pride-actions {
	display: flex;
	align-items: center;
	gap: 22px;
	margin-top: 36px;
}

.guardians-section {
	padding-bottom: 40px;
}

.post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.post-card,
.empty-card {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ls-border);
	border-radius: var(--ls-radius-md);
}

.post-card__media {
	display: block;
	aspect-ratio: 1.35 / 1;
	overflow: hidden;
}

.post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.post-card:hover .post-card__media img {
	transform: scale(1.035);
}

.post-card__body {
	padding: 25px;
}

.post-card__date {
	color: var(--ls-muted);
	font-size: 12px;
}

.post-card h3 {
	margin: 12px 0 0;
	font-size: 20px;
	line-height: 1.27;
	letter-spacing: -.02em;
}

.post-card p {
	margin: 14px 0 0;
	color: var(--ls-muted);
	font-size: 14px;
}

.empty-card {
	padding: 30px;
}

.contact-section {
	padding-bottom: 0;
}

.contact-panel {
	padding: clamp(42px, 6vw, 76px);
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 60px;
	background: var(--ls-green);
	border-radius: var(--ls-radius-lg);
	color: #fff;
}

.contact-panel p:not(.eyebrow) {
	max-width: 570px;
	margin: 28px 0 0;
	color: rgba(255,255,255,.76);
	font-size: 17px;
}

.contact-actions {
	flex: 0 0 auto;
	display: flex;
	gap: 10px;
}

.site-footer {
	margin-top: 90px;
	background: var(--ls-green-dark);
	color: #fff;
}

.site-footer__inner {
	width: min(calc(100% - 48px), var(--ls-container));
	margin-inline: auto;
	padding: 64px 0 44px;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 48px;
}

.site-footer__brand strong,
.site-footer__brand span {
	display: block;
}

.site-footer__brand strong {
	font-size: 26px;
}

.site-footer__brand span {
	margin-top: 4px;
	opacity: .72;
}

.footer-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-menu li + li {
	margin-top: 10px;
}

.site-footer__links {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.site-footer__bottom {
	padding: 20px 24px;
	border-top: 1px solid rgba(255,255,255,.12);
	text-align: center;
	font-size: 13px;
	opacity: .7;
}

@media (max-width: 1040px) {
	.site-header {
		background: rgba(8,24,16,.36);
		backdrop-filter: blur(10px);
	}

	.site-header__inner,
	.shell,
	.site-footer__inner {
		width: min(calc(100% - 32px), var(--ls-container));
	}

	.menu-toggle {
		display: block;
	}

	.site-navigation {
		position: absolute;
		left: 16px;
		right: 16px;
		top: calc(100% + 8px);
		margin: 0;
		padding: 14px;
		background: rgba(14, 28, 20, .96);
		border: 1px solid rgba(255,255,255,.12);
		border-radius: 22px;
		box-shadow: var(--ls-shadow);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: .18s ease;
	}

	.site-navigation.is-open {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.site-menu {
		display: block;
	}

	.site-menu a {
		padding: 11px 12px;
		border-radius: 10px;
	}

	.site-menu .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		padding: 0 0 0 14px;
		border: 0;
		box-shadow: none;
		background: transparent;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.site-menu .sub-menu a {
		color: rgba(255,255,255,.86);
	}

	.site-header__tickets {
		display: none;
	}

	.hero-slider__viewport,
	.hero-slide__content {
		min-height: 760px;
	}

	.hero-slider__controls {
		bottom: 150px;
	}

	.hero-benefits {
		grid-template-columns: repeat(2, 1fr);
	}

	.section {
		padding: 84px 0;
	}

	.plan-grid {
		grid-template-columns: repeat(2, 1fr);
	}

        .story-grid {
                grid-template-columns: 1fr;
        }

        .home-page .animals-section {
                padding-bottom: 28px;
        }

        .home-page .feeding-section {
                padding-top: 28px;
                padding-bottom: 28px;
        }

        .home-page .pride-section {
                padding-top: 28px;
        }

        .feeding-card {
                grid-template-columns: 1fr;
                grid-template-areas:
                        "intro"
                        "media"
                        "body";
                grid-template-rows: auto;
                min-height: 0;
        }

        .feeding-card__intro {
                padding: 40px 40px 0;
        }

        .feeding-card__media {
                height: auto;
                min-height: 0;
                margin-top: 24px;
                aspect-ratio: 3 / 2;
        }

        .feeding-card__body {
                padding: 24px 40px 40px;
        }

	.post-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.post-card:nth-child(3) {
		display: none;
	}
}

@media (max-width: 720px) {
	:root {
		--ls-header-height: 72px;
	}

	.site-header__inner,
	.shell,
	.site-footer__inner {
		width: calc(100% - 28px);
	}

	.site-brand img,
	.site-brand .custom-logo {
		max-height: 48px;
	}

	.hero-slider {
		padding-bottom: 24px;
	}

	.hero-slider__viewport,
	.hero-slide__content {
		min-height: 680px;
	}

	.hero-slide__content {
		padding-top: 90px;
		padding-bottom: 170px;
		align-items: flex-end;
	}

	.hero-slide .hero-slide__title {
		font-size: clamp(42px, 14vw, 64px);
	}

	.hero-slide__lead {
		font-size: 16px;
	}

	.hero-slide__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.hero-slide__actions .button {
		width: 100%;
	}

	.hero-slider__controls {
		width: calc(100% - 28px);
		bottom: 134px;
	}

	.hero-slider__arrow {
		width: 46px;
		height: 46px;
		font-size: 24px;
	}

	.hero-benefits {
		margin-top: -58px;
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.hero-benefit {
		border-radius: 20px;
	}

	.section {
		padding: 68px 0;
	}

	.section-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 18px;
		margin-bottom: 30px;
	}

	.section-heading h2,
	.story-content h2,
	.feeding-card h2,
	.contact-panel h2 {
		font-size: clamp(38px, 12vw, 52px);
	}

	.plan-grid,
	.post-grid {
		grid-template-columns: 1fr;
	}

	.plan-card {
		min-height: 250px;
	}

	.story-media {
		border-radius: 25px;
		aspect-ratio: 4 / 5;
	}

	.feeding-card,
	.pride-panel,
	.contact-panel {
		border-radius: 25px;
	}

        .home-page .animals-section {
                padding-bottom: 20px;
        }

        .home-page .feeding-section {
                padding-top: 20px;
                padding-bottom: 20px;
        }

        .home-page .pride-section {
                padding-top: 20px;
        }

        .feeding-card__intro {
                padding: 26px 20px 0;
        }

        .feeding-card h2 {
                font-size: clamp(34px, 9.8vw, 40px);
                line-height: 1;
                letter-spacing: -.035em;
        }

        .feeding-card__media {
                height: auto;
                min-height: 0;
                margin-top: 20px;
                aspect-ratio: 3 / 2;
        }

        .feeding-card__body {
                gap: 14px;
                padding: 20px 20px 26px;
        }

        .feeding-card__body p {
                font-size: 15px;
                line-height: 1.58;
        }

	.pride-actions,
	.contact-panel,
	.contact-actions {
		flex-direction: column;
		align-items: flex-start;
	}

	.contact-actions {
		width: 100%;
	}

	.contact-actions .button {
		width: 100%;
	}

	.site-footer {
		margin-top: 64px;
	}

	.site-footer__inner {
		padding: 48px 0 36px;
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.post-card:nth-child(3) {
		display: block;
	}
}


/* =========================================================
   Hero refinement 0.3.1
   ========================================================= */

.hero-slider__viewport {
	cursor: grab;
	touch-action: pan-y;
	user-select: none;
}

.hero-slider__viewport.is-dragging {
	cursor: grabbing;
}

.hero-slide__image {
	user-select: none;
	-webkit-user-drag: none;
	pointer-events: none;
}

/*
 * Стрелки больше не участвуют в одной flex-строке
 * вместе с точками. Каждая стоит отдельно у края hero.
 */
.hero-slider__controls {
	position: absolute;
	inset: 0;
	z-index: 6;
	width: 100%;
	max-width: none;
	transform: none;
	pointer-events: none;
}

.hero-slider__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: auto;
	width: 50px;
	height: 50px;
	background: rgba(8, 24, 16, .30);
	border-color: rgba(255, 255, 255, .34);
	transition:
		background .18s ease,
		transform .18s ease;
}

.hero-slider__arrow:hover {
	background: rgba(8, 24, 16, .56);
}

.hero-slider__arrow--prev {
	left: 28px;
}

.hero-slider__arrow--next {
	right: 28px;
}

.hero-slider__dots {
	position: absolute;
	left: 50%;
	bottom: 126px;
	transform: translateX(-50%);
	pointer-events: auto;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(5, 18, 12, .24);
	backdrop-filter: blur(8px);
}

/*
 * Немного сужаем текстовую область, чтобы даже
 * длинный заголовок никогда не встречался со стрелкой.
 */
.hero-slide__panel {
	max-width: 610px;
	margin-left: 24px;
}

.hero-slide .hero-slide__title {
	font-size: clamp(50px, 5.7vw, 88px);
	line-height: .92;
}

/* Header */

.site-brand img,
.site-brand .custom-logo {
	max-height: 64px;
}

.site-menu {
	gap: 20px;
}

.site-menu a {
	font-size: 14px;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .25);
}

.site-header__tickets {
	background: rgba(255, 255, 255, .92);
	color: var(--ls-green-dark);
	border-color: rgba(255, 255, 255, .7);
	text-shadow: none;
}

/* Advantages */

.hero-benefits {
	gap: 10px;
}

.hero-benefit {
	padding: 20px 21px;
	border-radius: 18px;
	background: rgba(250, 249, 245, .95);
	box-shadow:
		0 10px 30px rgba(7, 24, 15, .08);
}

.hero-benefit h3 {
	font-size: 16px;
}

.hero-benefit p {
	font-size: 13px;
	line-height: 1.45;
}

@media (max-width: 1040px) {

	.hero-slider__arrow--prev {
		left: 18px;
	}

	.hero-slider__arrow--next {
		right: 18px;
	}

	.hero-slide__panel {
		margin-left: 44px;
		max-width: 560px;
	}
}

@media (max-width: 720px) {

	.hero-slide__panel {
		margin-left: 0;
		max-width: 100%;
	}

	.hero-slider__arrow {
		top: auto;
		bottom: 112px;
		width: 44px;
		height: 44px;
	}

	.hero-slider__arrow--prev {
		left: 14px;
	}

	.hero-slider__arrow--next {
		right: 14px;
	}

	.hero-slider__dots {
		bottom: 119px;
	}

	.hero-slide .hero-slide__title {
		font-size: clamp(40px, 13vw, 58px);
	}
}


/* =========================================================
   Real drag / swipe 0.3.2
   ========================================================= */

.hero-slide {
	transform: translate3d(0, 0, 0);
	will-change: transform, opacity;
}

/*
 * Во время обычной смены остаётся мягкий переход.
 * Во время перетаскивания JS временно отключает transition.
 */
.hero-slide.is-drag-current,
.hero-slide.is-drag-target {
	opacity: 1;
	pointer-events: none;
}

.hero-slider__viewport.is-dragging .hero-slide {
	transition: none !important;
}

.hero-slider__viewport.is-settling .hero-slide {
	transition:
		transform .32s cubic-bezier(.22, .61, .36, 1),
		opacity .28s ease !important;
}

.hero-slider__viewport.is-dragging {
	cursor: grabbing;
}

.hero-slider__viewport:not(.is-dragging) {
	cursor: grab;
}


/* =========================================================
   Exact legacy content + visual refinement 0.3.3
   ========================================================= */

/* Пустые временные поля теперь вообще не занимают место */

.hero-slide .eyebrow:empty,
.hero-slide__lead:empty,
.hero-slide__actions .button:empty {
	display: none;
}


/* Заголовок чуть спокойнее — особенно длинные 2 и 3 слайды */

.hero-slide__panel {
	max-width: 700px;
}

.hero-slide .hero-slide__title {
	max-width: 700px;
	font-size: clamp(46px, 4.9vw, 78px);
	line-height: .96;
	letter-spacing: -.045em;
	text-wrap: balance;
}

.hero-slide__actions {
	margin-top: 30px;
}


/* Одна главная CTA-кнопка — как на старом слайдере */

.hero-slide__actions .button--light {
	min-width: 150px;
}


/* Лёгкий Ken Burns — он был включён и в старом слайдере */

@keyframes lionspark-hero-kenburns {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(1.055);
	}
}

.hero-slide.is-active:not(.is-drag-current):not(.is-drag-target) .hero-slide__image {
	animation: lionspark-hero-kenburns 12s ease-out both;
}

.hero-slider__viewport.is-dragging .hero-slide__image {
	animation-play-state: paused;
}


/*
 * Преимущества больше не выглядят как четыре
 * отдельные белые WordPress-карточки.
 */

.hero-benefits {
	margin-top: -82px;
	gap: 0;
	padding: 0 12px;
	overflow: hidden;

	background: rgba(250, 249, 245, .96);
	border: 1px solid rgba(255, 255, 255, .65);
	border-radius: 24px;

	box-shadow:
		0 18px 48px rgba(7, 24, 15, .12);

	backdrop-filter: blur(16px);
}

.hero-benefit {
	position: relative;

	padding: 24px 25px;

	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.hero-benefit:not(:last-child)::after {
	content: "";

	position: absolute;
	top: 22px;
	right: 0;
	bottom: 22px;

	width: 1px;

	background: rgba(25, 49, 39, .11);
}

.hero-benefit h3 {
	margin-bottom: 7px;

	font-size: 16px;
	line-height: 1.25;
}

.hero-benefit p {
	font-size: 13px;
	line-height: 1.45;
}


/* Пожертвование в шапке не конкурирует с CTA слайда */

.site-header__tickets {
	background: rgba(8, 24, 16, .20);
	color: #fff;

	border: 1px solid rgba(255, 255, 255, .42);

	backdrop-filter: blur(12px);
}


/* На мобильном преимущества снова вертикальные */

@media (max-width: 720px) {

	.hero-benefits {
		padding: 6px 18px;
	}

	.hero-benefit {
		padding: 18px 4px;
	}

	.hero-benefit:not(:last-child)::after {
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;

		width: auto;
		height: 1px;
	}

	.hero-slide .hero-slide__title {
		font-size: clamp(40px, 12vw, 56px);
		line-height: .98;
	}
}


/* =========================================================
   Navigation fix 0.3.4
   ========================================================= */

.site-navigation {
	display: block;
}

.site-menu {
	display: flex;
	align-items: center;
	gap: 20px;

	margin: 0;
	padding: 0;

	list-style: none;
}

.site-menu > li > a {
	white-space: nowrap;
}

.site-menu .menu-item-has-children > a::after {
	content: "⌄";

	display: inline-block;

	margin-left: 6px;

	font-size: 11px;
	opacity: .72;
}


@media (max-width: 1040px) {

	.site-navigation {
		display: block;

		max-height: calc(100vh - 110px);
		overflow-y: auto;
	}

	.site-menu {
		display: block;
	}

	.site-menu > li {
		border-bottom: 1px solid rgba(255, 255, 255, .08);
	}

	.site-menu > li:last-child {
		border-bottom: 0;
	}

	.site-menu a {
		display: block;

		padding: 13px 12px;

		color: #fff;
	}

	.site-menu .sub-menu {
		display: block;

		margin: 0;
		padding: 0 0 8px 18px;

		list-style: none;
	}

	.site-menu .sub-menu a {
		padding: 9px 12px;

		color: rgba(255, 255, 255, .72);

		font-size: 13px;
	}

	.site-menu .menu-item-has-children > a::after {
		content: "";
	}
}


/* =========================================================
   LIONSPARK 2026
   Concept direction 0.4.0

   Approved visual direction:
   warm ivory / natural green / serif headings /
   real park photography / lightweight UI
   ========================================================= */


:root {
	--lion-ivory: #fbf8f2;
	--lion-ivory-deep: #f4efe5;
	--lion-card: #fffdf9;

	--lion-green: #477d2e;
	--lion-green-dark: #315d25;
	--lion-green-soft: #82a95a;

	--lion-brown: #2b1c17;
	--lion-gold: #b59a65;

	--lion-border: rgba(93, 73, 46, .12);

	--lion-shadow:
		0 16px 50px rgba(66, 48, 29, .07);

	--lion-radius: 28px;
}


/* =========================================================
   PAGE BACKGROUND
   ========================================================= */

.home-page {
	background:
		linear-gradient(
			180deg,
			#fbf8f2 0%,
			#fffdf9 45%,
			#fbf8f2 100%
		);

	color: var(--lion-brown);
}


/* =========================================================
   LIGHT HEADER
   ========================================================= */

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;

	width: 100%;

	background: rgba(255, 253, 249, .97);

	border-bottom: 1px solid var(--lion-border);

	box-shadow:
		0 5px 24px rgba(49, 36, 23, .04);

	backdrop-filter: blur(16px);
}


.site-header__inner {
	position: relative;

	display: flex;
	align-items: center;

	width: min(1380px, calc(100% - 48px));
	min-height: 88px;

	margin: 0 auto;
}


/* LOGO */

.site-brand {
	order: 1;

	display: flex;
	align-items: center;
	gap: 12px;

	flex: 0 0 auto;

	color: var(--lion-brown);
	text-decoration: none;
}


.site-brand__logo {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 66px;
	height: 66px;

	flex: 0 0 66px;
}


.site-brand__image {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: contain;
}


.site-brand__copy {
	display: flex;
	flex-direction: column;

	line-height: 1;
}


.site-brand__copy small {
	margin-bottom: 5px;

	color: #493c32;

	font-size: 13px;
	font-weight: 700;
	letter-spacing: .045em;
	text-transform: uppercase;
}


.site-brand__copy strong {
	color: var(--lion-green-dark);

	font-size: 27px;
	font-weight: 850;
	letter-spacing: -.025em;
	text-transform: uppercase;
}


/* DESKTOP NAV */

.site-navigation {
	order: 2;

	display: block;

	margin-left: auto;
	margin-right: auto;
}


.site-menu {
	display: flex;
	align-items: center;
	gap: 27px;

	margin: 0;
	padding: 0;

	list-style: none;
}


.site-menu > li {
	position: relative;

	margin: 0;
	padding: 0;
}


.site-menu > li > a {
	display: flex;
	align-items: center;

	min-height: 88px;

	padding: 0;

	color: #352922;

	font-size: 14px;
	font-weight: 650;
	line-height: 1.2;

	text-decoration: none;

	transition:
		color .18s ease,
		opacity .18s ease;
}


.site-menu > li > a:hover {
	color: var(--lion-green);
}


.site-menu .menu-item-has-children > a::after {
	content: "⌄";

	margin-left: 6px;

	color: var(--lion-green);

	font-size: 11px;
}


/* SUBMENU */

.site-menu .sub-menu {
	position: absolute;
	top: calc(100% - 10px);
	left: -18px;
	z-index: 20;

	display: none;

	min-width: 220px;

	margin: 0;
	padding: 10px;

	list-style: none;

	background: #fffdf9;

	border: 1px solid var(--lion-border);
	border-radius: 18px;

	box-shadow:
		0 18px 45px rgba(47, 35, 22, .12);
}


.site-menu li:hover > .sub-menu,
.site-menu li:focus-within > .sub-menu {
	display: block;
}


.site-menu .sub-menu a {
	display: block;

	padding: 10px 12px;

	color: #392e26;

	border-radius: 10px;

	font-size: 13px;
	font-weight: 600;

	text-decoration: none;
}


.site-menu .sub-menu a:hover {
	background: var(--lion-ivory-deep);
	color: var(--lion-green);
}


/* HEADER CTA */

.site-header__tickets {
	order: 3;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;

	min-height: 48px;

	padding: 0 21px;

	flex: 0 0 auto;

	color: #fff;

	background:
		linear-gradient(
			135deg,
			#548937,
			#376c28
		);

	border: 0;
	border-radius: 18px;

	box-shadow:
		0 9px 22px rgba(54, 106, 40, .18);

	font-size: 14px;
	font-weight: 700;

	text-decoration: none;

	transition:
		transform .18s ease,
		box-shadow .18s ease;
}


.site-header__tickets:hover {
	color: #fff;

	transform: translateY(-1px);

	box-shadow:
		0 13px 28px rgba(54, 106, 40, .24);
}


.site-header__ticket-icon {
	width: 23px;
	height: 23px;

	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
}


/* BURGER */

.menu-toggle {
	order: 4;

	display: none;
}


/* =========================================================
   HERO
   Keep existing JS / drag / autoplay mechanics
   ========================================================= */

.hero-slider {
	position: relative;

	padding: 0;

	background: var(--lion-ivory);

	overflow: visible;
}


.hero-slider__viewport {
	position: relative;

	height: clamp(620px, calc(100vh - 88px), 760px);

	overflow: hidden;

	border-radius:
		0 0 52px 52px;
}


.hero-slide {
	inset: 0;

	height: 100%;
	min-height: 100%;
}


.hero-slide__media {
	position: absolute;
	inset: 0;
}


.hero-slide__image {
	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center;
}


/* Darker on the left, lighter around the animal */

.hero-slide__overlay {
	background:
		linear-gradient(
			90deg,
			rgba(13, 28, 17, .83) 0%,
			rgba(14, 31, 19, .68) 30%,
			rgba(14, 29, 18, .30) 58%,
			rgba(10, 20, 13, .07) 82%
		);
}


.hero-slide__content {
	position: relative;
	z-index: 4;

	display: flex;
	align-items: center;

	height: 100%;

	padding-top: 10px;
	padding-bottom: 110px;
}


.hero-slide__panel {
	width: min(650px, 56vw);
	max-width: 650px;
}


.hero-slide .hero-slide__title {
	max-width: 650px;

	margin: 0;

	color: #fff;

	font-family:
		Georgia,
		'Times New Roman',
		serif;

	font-size:
		clamp(50px, 4.45vw, 78px);

	font-weight: 700;

	line-height: .99;

	letter-spacing: -.035em;

	text-wrap: balance;

	text-shadow:
		0 3px 22px rgba(0, 0, 0, .15);
}


.hero-slide__lead:empty,
.hero-slide .eyebrow:empty {
	display: none;
}


.hero-slide__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;

	margin-top: 34px;
}


/* HERO CTA */

.hero-slide__actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 54px;

	padding: 0 28px;

	border-radius: 16px;

	font-size: 16px;
	font-weight: 700;
}


.hero-slide__actions .button--light {
	color: #fff;

	background:
		linear-gradient(
			135deg,
			#5c923d,
			#3b712b
		);

	border: 1px solid transparent;

	box-shadow:
		0 12px 28px rgba(42, 83, 31, .25);
}


.hero-slide__actions .button--light:hover {
	color: #fff;
}


.hero-slide__actions .button--glass {
	color: #fff;

	background: rgba(17, 28, 19, .18);

	border: 1.5px solid rgba(255, 255, 255, .80);

	backdrop-filter: blur(8px);
}


.hero-slide__actions .button--glass:hover {
	color: #fff;

	background: rgba(255, 255, 255, .12);
}


/* HERO CONTROLS */

.hero-slider__controls {
	position: absolute;
	inset: 0;
	z-index: 8;

	width: 100%;
	max-width: none;

	margin: 0;
	padding: 0;

	pointer-events: none;
}


.hero-slider__arrow {
	position: absolute;
	top: 50%;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 46px;
	height: 46px;

	margin: 0;

	color: #fff;

	background: rgba(19, 31, 21, .26);

	border: 1px solid rgba(255, 255, 255, .36);
	border-radius: 50%;

	backdrop-filter: blur(9px);

	transform: translateY(-50%);

	pointer-events: auto;
}


.hero-slider__arrow--prev {
	left: 24px;
}


.hero-slider__arrow--next {
	right: 24px;
}


.hero-slider__dots {
	position: absolute;
	left: 50%;
	bottom: 118px;

	display: flex;
	gap: 9px;

	padding: 7px 10px;

	background: rgba(17, 28, 19, .33);

	border-radius: 999px;

	backdrop-filter: blur(7px);

	transform: translateX(-50%);

	pointer-events: auto;
}


.hero-slider__dot {
	width: 8px;
	height: 8px;

	margin: 0;
	padding: 0;

	background: rgba(255, 255, 255, .48);

	border: 0;
	border-radius: 50%;
}


.hero-slider__dot.is-active {
	background: #fff;

	transform: scale(1.12);
}


/* =========================================================
   HERO FACTS
   ========================================================= */

.hero-facts {
	position: relative;
	z-index: 12;

	display: grid;
	grid-template-columns:
		repeat(3, minmax(0, 1fr));
	gap: 12px;

	width: min(820px, calc(100% - 48px));

	margin-top: -88px;
	margin-bottom: 25px;
}


.hero-fact {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;

	min-height: 62px;

	padding: 11px 18px;

	color: #fff;

	background: rgba(19, 31, 21, .62);

	border: 1px solid rgba(136, 175, 93, .38);
	border-radius: 18px;

	box-shadow:
		0 10px 32px rgba(0, 0, 0, .08);

	backdrop-filter: blur(12px);

	font-size: 14px;
	font-weight: 650;
}


.hero-fact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 28px;
	height: 28px;

	color: #92c365;

	font-size: 27px;
	font-weight: 400;
	line-height: 1;
}


/* =========================================================
   CONCEPT SECTION HEADINGS
   ========================================================= */

.concept-section-heading {
	margin-bottom: 32px;
}


.concept-section-heading--center {
	text-align: center;
}


.concept-section-heading h2,
.story-concept h2 {
	margin: 0;

	color: var(--lion-brown);

	font-family:
		Georgia,
		'Times New Roman',
		serif;

	font-weight: 700;

	letter-spacing: -.025em;
}


.concept-section-heading h2 {
	font-size: clamp(38px, 3.5vw, 55px);
}


.concept-section-heading--center h2::before,
.concept-section-heading--center h2::after {
	content: "❧";

	display: inline-block;

	margin: 0 18px;

	color: #d6c49f;

	font-size: .55em;
	font-weight: 400;

	vertical-align: middle;

	opacity: .78;
}


/* =========================================================
   0.4.11 — PLAN YOUR VISIT
   Desktop + Mobile
   ========================================================= */

.home-page .plan-section {
	position: relative;
	padding: 42px 0 44px;
	background:
		radial-gradient(
			circle at 5% 5%,
			rgba(131, 161, 94, .045),
			transparent 21%
		),
		radial-gradient(
			circle at 95% 0%,
			rgba(131, 161, 94, .045),
			transparent 20%
		),
		var(--lion-ivory);
}

.home-page .plan-section .concept-section-heading {
	margin-bottom: 24px;
}

.home-page .plan-section .concept-section-heading h2 {
	font-size: clamp(36px, 3vw, 46px);
	line-height: 1.03;
}

.home-page .plan-section .concept-section-heading--center h2::before,
.home-page .plan-section .concept-section-heading--center h2::after {
	margin: 0 12px;
	font-size: .50em;
}

.home-page .plan-section .trip-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.home-page .plan-section .trip-card {
	display: grid;
	grid-template-columns: 60px minmax(0, 1fr);
	gap: 16px;
	min-height: 150px;
	padding: 21px 22px;

	color: inherit;
	text-decoration: none;

	background:
		linear-gradient(
			145deg,
			rgba(255, 255, 255, .94),
			rgba(255, 253, 249, .82)
		);

	border: 1px solid rgba(161, 134, 94, .15);
	border-radius: 22px;

	box-shadow:
		0 10px 28px rgba(66, 48, 29, .065);

	transition:
		transform .18s ease,
		box-shadow .18s ease,
		border-color .18s ease;
}

.home-page .plan-section .trip-card:hover {
	color: inherit;
	transform: translateY(-2px);
	border-color: rgba(83, 126, 55, .22);
	box-shadow:
		0 16px 36px rgba(66, 48, 29, .09);
}

.home-page .plan-section .trip-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 56px;
	height: 56px;

	color: var(--lion-green);

	background:
		linear-gradient(
			145deg,
			#f4efdf,
			#fbf8ef
		);

	border-radius: 50%;
}

.home-page .plan-section .trip-card__icon svg {
	width: 31px;
	height: 31px;

	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.home-page .plan-section .trip-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
}

.home-page .plan-section .trip-card__title {
	display: block;
	margin-bottom: 7px;

	color: var(--lion-brown);

	font-family:
		Georgia,
		'Times New Roman',
		serif;

	font-size: 23px;
	font-weight: 700;
	line-height: 1.08;
}

.home-page .plan-section .trip-card__text {
	display: block;
	max-width: 300px;

	color: #4a4540;

	font-size: 14px;
	line-height: 1.42;
}

.home-page .plan-section .trip-card__link {
	display: inline-flex;
	align-items: center;
	gap: 14px;

	margin-top: auto;
	padding-top: 11px;

	color: var(--lion-green);

	font-size: 13px;
	font-weight: 700;
}

/* Tablet */
@media (max-width: 960px) {
	.home-page .plan-section {
		padding: 34px 0 38px;
	}

	.home-page .plan-section .trip-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.home-page .plan-section .trip-card {
		min-height: 0;
		padding: 18px 20px;
	}
}

/* Mobile — separate compact composition */
@media (max-width: 600px) {
	.home-page .plan-section {
		padding: 26px 0 30px;
	}

	.home-page .plan-section .concept-section-heading {
		margin-bottom: 18px;
	}

	.home-page .plan-section .concept-section-heading h2 {
		font-size: 31px;
		line-height: 1.04;
	}

	.home-page .plan-section .concept-section-heading--center h2::before,
	.home-page .plan-section .concept-section-heading--center h2::after {
		margin: 0 7px;
		font-size: .46em;
	}

	.home-page .plan-section .trip-grid {
		gap: 10px;
	}

	.home-page .plan-section .trip-card {
		grid-template-columns: 54px minmax(0, 1fr);
		gap: 14px;

		min-height: 0;
		padding: 15px 16px;

		border-radius: 18px;

		box-shadow:
			0 8px 22px rgba(66, 48, 29, .06);
	}

	.home-page .plan-section .trip-card__icon {
		width: 50px;
		height: 50px;
	}

	.home-page .plan-section .trip-card__icon svg {
		width: 28px;
		height: 28px;
	}

	.home-page .plan-section .trip-card__title {
		margin-bottom: 5px;
		font-size: 21px;
	}

	.home-page .plan-section .trip-card__text {
		max-width: none;
		font-size: 13.5px;
		line-height: 1.38;
	}

	.home-page .plan-section .trip-card__link {
		gap: 10px;
		padding-top: 8px;
		font-size: 12.5px;
	}
}

/* =========================================================
   END 0.4.11 — PLAN YOUR VISIT
   ========================================================= */

/* =========================================================
   0.4.13 — STORY / "Место, где отдыхаешь душой"
   Desktop + Mobile
   ========================================================= */

.home-page .story-section {
	padding: 32px 0 32px;
	background: var(--lion-ivory);
}

.home-page .story-concept {
	display: grid;

	grid-template-columns:
		minmax(300px, .74fr)
		minmax(0, 1.55fr);

	grid-template-areas:
		"heading media"
		"copy media";

	gap: 12px 46px;
	align-items: center;
}

.home-page .story-concept__heading {
	grid-area: heading;
	align-self: end;
}

.home-page .story-concept__heading h2 {
	max-width: 390px;
	margin: 0;

	color: var(--lion-brown);

	font-family:
		Georgia,
		'Times New Roman',
		serif;

	font-size: clamp(46px, 3.55vw, 56px);
	font-weight: 700;
	line-height: 1.035;
	letter-spacing: -.025em;
}

.home-page .story-concept__media {
	position: relative;
	grid-area: media;

	overflow: hidden;

	min-height: 405px;

	border-radius: 28px;

	box-shadow:
		0 18px 44px rgba(60, 43, 26, .09);
}

.home-page .story-concept__image {
	position: absolute;
	inset: 0;

	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center 47%;
}

.home-page .story-concept__copy {
	grid-area: copy;
	align-self: start;

	max-width: 410px;
}

.home-page .story-concept__copy p {
	margin: 12px 0 21px;

	color: #48433d;

	font-size: 16px;
	line-height: 1.58;
}


/* Tablet */
@media (max-width: 960px) {

	.home-page .story-section {
		padding: 28px 0 58px;
	}

	.home-page .story-concept {
		grid-template-columns: 1fr;

		grid-template-areas:
			"heading"
			"media"
			"copy";

		gap: 20px;
	}

	.home-page .story-concept__heading {
		align-self: auto;
	}

	.home-page .story-concept__heading h2 {
		max-width: 600px;
		font-size: 44px;
	}

	.home-page .story-concept__media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.home-page .story-concept__copy {
		max-width: 620px;
	}

	.home-page .story-concept__copy p {
		margin-top: 0;
	}
}


/* Mobile — separate composition */
@media (max-width: 600px) {

	.home-page .story-section {
		padding: 24px 0 20px;
	}

	.home-page .story-concept {
		gap: 16px;
	}

	.home-page .story-concept__heading h2 {
		max-width: 340px;

		font-size: 34px;
		line-height: 1.04;
	}

	.home-page .story-concept__media {
		aspect-ratio: 4 / 3;

		min-height: 0;

		border-radius: 20px;

		box-shadow:
			0 12px 30px rgba(60, 43, 26, .08);
	}

	.home-page .story-concept__image {
		object-position: center 48%;
	}

	.home-page .story-concept__copy {
		max-width: none;
	}

	.home-page .story-concept__copy p {
		margin: 0 0 17px;

		font-size: 15px;
		line-height: 1.55;
	}
}

/* =========================================================
   END 0.4.13 — STORY
   ========================================================= */

.concept-text-link {
	display: inline-flex;
	align-items: center;
	gap: 21px;

	color: var(--lion-green);

	font-size: 15px;
	font-weight: 750;

	text-decoration: none;
}


.concept-text-link:hover {
	color: var(--lion-green-dark);
}


/* =========================================================
   TABLET / MOBILE
   ========================================================= */

@media (max-width: 1100px) {

	.site-header__inner {
		width: min(100% - 32px, 1380px);
	}


	.site-brand__copy small {
		font-size: 10px;
	}


	.site-brand__copy strong {
		font-size: 20px;
	}


	.site-menu {
		gap: 17px;
	}


	.site-menu > li > a {
		font-size: 12.5px;
	}


	.site-header__tickets {
		padding: 0 17px;
	}
}


@media (max-width: 960px) {

	.site-header__inner {
		min-height: 78px;
	}


	.site-brand {
		order: 1;
	}


	.site-brand__logo {
		width: 48px;
		height: 48px;

		flex-basis: 48px;
	}


	.site-brand__copy strong {
		font-size: 18px;
	}


	.site-header__tickets {
		order: 2;

		margin-left: auto;
		margin-right: 10px;

		min-height: 44px;

		padding: 0 17px;

		border-radius: 15px;
	}


	.menu-toggle {
		order: 3;

		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;

		width: 46px;
		height: 46px;

		padding: 0;

		background: transparent;

		border: 0;
	}


	.menu-toggle span {
		display: block;

		width: 28px;
		height: 2px;

		background: #30231c;

		border-radius: 999px;
	}


	.site-navigation {
		position: absolute;
		top: calc(100% + 1px);
		left: 0;
		right: 0;
		z-index: 50;

		display: none;

		margin: 0;
		padding: 12px;

		background: #fffdf9;

		border: 1px solid var(--lion-border);
		border-radius: 0 0 22px 22px;

		box-shadow:
			0 25px 50px rgba(49, 36, 23, .14);
	}


	.menu-toggle[aria-expanded="true"] + .site-navigation {
		display: block;
	}


	.site-menu {
		display: block;
	}


	.site-menu > li {
		border-bottom:
			1px solid rgba(87, 67, 43, .08);
	}


	.site-menu > li:last-child {
		border-bottom: 0;
	}


	.site-menu > li > a,
	.site-menu .sub-menu a {
		min-height: 0;

		padding: 12px 10px;

		color: #33261f;

		font-size: 14px;
	}


	.site-menu .menu-item-has-children > a::after {
		content: "";
	}


	.site-menu .sub-menu {
		position: static;

		display: block;

		min-width: 0;

		padding:
			0 0 7px 15px;

		background: transparent;

		border: 0;
		border-radius: 0;

		box-shadow: none;
	}


	.site-menu .sub-menu a {
		color: #6b625a;

		font-size: 13px;
	}


	.hero-slider__viewport {
		height: 650px;

		border-radius:
			0 0 40px 40px;
	}


	.hero-slide__content {
		align-items: flex-end;

		padding-top: 90px;
		padding-bottom: 150px;
	}


	.hero-slide__panel {
		width: min(620px, 76vw);
	}


	.hero-slide .hero-slide__title {
		font-size: clamp(43px, 7vw, 64px);
	}


	.hero-slide__overlay {
		background:
			linear-gradient(
				180deg,
				rgba(13, 25, 16, .10) 0%,
				rgba(13, 27, 17, .27) 38%,
				rgba(11, 25, 15, .80) 100%
			);
	}


	.hero-slider__dots {
		bottom: 120px;
	}


	.hero-facts {
		width: min(720px, calc(100% - 32px));
	}


	.trip-grid {
		grid-template-columns: 1fr;
	}


	.trip-card {
		min-height: 0;
	}


	.story-concept {
		grid-template-columns: 1fr;

		grid-template-areas:
			"heading"
			"media"
			"copy";

		gap: 22px;
	}


	.story-concept__media {
		min-height: 400px;
	}
}


@media (max-width: 600px) {

	.site-header {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 5000;
		width: 100%;
		transform: none;
		overflow: visible;
	}

	.site-main {
		padding-top: 74px;
	}

	.site-header__inner {
		width: calc(100% - 24px);
		min-height: 74px;
		gap: 6px;
	}


	.site-brand {
		gap: 7px;
		min-width: 0;
		flex-shrink: 1;
	}


	.site-brand__logo {
		width: 47px;
		height: 47px;

		flex-basis: 47px;
	}


	.site-brand__copy small {
		font-size: 8.5px;

		margin-bottom: 3px;
	}


	.site-brand__copy strong {
		font-size: 15px;
	}


	.site-header__tickets {
		min-height: 42px;

		padding: 0 11px;

		margin-right: 0;
		margin-left: auto;

		flex-shrink: 0;

		font-size: 12px;
	}


	.site-header__ticket-icon {
		width: 20px;
		height: 20px;
	}


	.menu-toggle {
		width: 40px;
		height: 42px;
		flex: 0 0 40px;
	}


	.menu-toggle span {
		width: 25px;
	}


	.hero-slider__viewport {
		height: 610px;

		border-radius:
			0 0 30px 30px;
	}


	.hero-slide__image {
		object-position: center;
	}


	.hero-slide__content {
		align-items: flex-end;

		padding:
			90px 0 150px;
	}


	.hero-slide__panel {
		width: 100%;
		max-width: 100%;
	}


	.hero-slide .hero-slide__title {
		max-width: 96%;

		font-size:
			clamp(38px, 10.5vw, 51px);

		line-height: 1.01;

		letter-spacing: -.035em;
	}


	.hero-slide__actions {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;

		width: min(310px, 100%);

		margin-top: 27px;
	}


	.hero-slide__actions .button {
		width: 100%;

		min-height: 50px;

		padding: 0 18px;
	}


	.hero-slider__arrow {
		width: 40px;
		height: 40px;

		top: 46%;
	}


	.hero-slider__arrow--prev {
		left: 12px;
	}


	.hero-slider__arrow--next {
		right: 12px;
	}


	.hero-slider__dots {
		bottom: 116px;
	}


	.hero-facts {
		grid-template-columns:
			repeat(3, minmax(0, 1fr));

		gap: 6px;

		width: calc(100% - 24px);

		margin-top: -88px;
		margin-bottom: 10px;
	}


	.hero-fact {
		flex-direction: column;
		gap: 3px;

		min-height: 74px;

		padding: 8px 5px;

		border-radius: 14px;

		font-size: 10.5px;

		text-align: center;
	}


	.hero-fact__icon {
		width: 23px;
		height: 23px;

		font-size: 22px;
	}


	.plan-section {
		padding: 65px 0 34px;
	}


	.concept-section-heading {
		margin-bottom: 24px;
	}


	.concept-section-heading h2 {
		font-size: 35px;
		line-height: 1.05;
	}


	.concept-section-heading--center h2::before,
	.concept-section-heading--center h2::after {
		margin: 0 8px;

		font-size: .48em;
	}


	.trip-card {
		grid-template-columns: 66px minmax(0, 1fr);
		gap: 17px;

		padding: 22px 20px;

		border-radius: 22px;
	}


	.trip-card__icon {
		width: 62px;
		height: 62px;
	}


	.trip-card__icon svg {
		width: 35px;
		height: 35px;
	}


	.trip-card__title {
		font-size: 24px;
	}


	.trip-card__text {
		font-size: 14px;
	}


	.story-section {
		padding: 28px 0 65px;
	}


	.story-concept__heading h2 {
		font-size: 39px;

		line-height: 1.04;
	}


	.story-concept__media {
		min-height: 295px;

		border-radius: 22px;
	}


	.story-concept__copy p {
		font-size: 15px;
		line-height: 1.6;
	}

}


/* =========================================================
   END 0.4.0 CONCEPT PASS
   ========================================================= */


/* =========================================================
   0.4.10 — HERO GEOMETRY REBUILD
   Desktop + Mobile
   Replaces 0.4.4; keeps existing slider JS / markup.
   ========================================================= */

.hero-slider {
	position: relative;
	padding: 0;
	background: var(--lion-ivory);
	overflow: hidden;
}

.hero-slider__viewport {
	position: relative;
	height: clamp(470px, calc(100vh - 285px), 535px);
	min-height: 0;
	overflow: hidden;
	border-radius: 0;
}

.hero-slide {
	inset: 0;
	height: 100%;
	min-height: 0;
}

.hero-slide__media {
	position: absolute;
	inset: 0;
}

.hero-slide__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform-origin: center center;
}

.hero-slide[data-slide="0"] .hero-slide__image { object-position: 62% 47%; }
.hero-slide[data-slide="1"] .hero-slide__image { object-position: 60% 48%; }
.hero-slide[data-slide="2"] .hero-slide__image { object-position: 58% 47%; }
.hero-slide[data-slide="3"] .hero-slide__image { object-position: 61% 48%; }

.hero-slide__overlay {
	background:
		linear-gradient(
			90deg,
			rgba(10, 25, 15, .84) 0%,
			rgba(11, 27, 16, .70) 27%,
			rgba(12, 27, 17, .40) 47%,
			rgba(11, 24, 15, .13) 67%,
			rgba(9, 18, 11, .02) 100%
		);
}

.hero-slide__content {
	position: relative;
	z-index: 4;
	display: flex;
	align-items: center;
	height: 100%;
	padding-top: 0;
	padding-bottom: 72px;
}

.hero-slide__panel,
.hero-slide[data-slide="3"] .hero-slide__panel {
	width: min(575px, 47vw);
	max-width: 575px;
        transform: translateY(-82px);
}

.hero-slide .hero-slide__title,
.hero-slide[data-slide="3"] .hero-slide__title {
	width: 100%;
	max-width: 575px;
	margin: 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(40px, 3.15vw, 53px);
	font-weight: 700;
	line-height: 1.07;
	letter-spacing: -.03em;
	text-wrap: balance;
	text-shadow: 0 3px 20px rgba(0, 0, 0, .15);
}

.hero-slide[data-slide="1"] .hero-slide__title,
.hero-slide[data-slide="2"] .hero-slide__title {
	max-width: 620px;
	font-size: clamp(35px, 2.65vw, 46px);
	line-height: 1.07;
}

.hero-slide__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.hero-slide__actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 23px;
	border-radius: 13px;
	font-size: 14px;
	font-weight: 700;
}

.hero-slide__actions .button--light {
	color: #fff;
	background: linear-gradient(135deg, #5c913e, #3e742d);
	border: 1px solid transparent;
	box-shadow: 0 10px 24px rgba(31, 69, 25, .22);
}

.hero-slide__actions .button--glass {
	color: #fff;
	background: rgba(12, 23, 15, .14);
	border: 1.25px solid rgba(255, 255, 255, .84);
	backdrop-filter: blur(6px);
}

/* Controls */
.hero-slider__controls {
	position: absolute;
	inset: 0;
	z-index: 16;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	pointer-events: none;
}

.hero-slider__arrow {
	position: absolute;
	top: 47%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: 0;
	color: #fff;
	background: rgba(18, 29, 20, .22);
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 50%;
	backdrop-filter: blur(6px);
	transform: translateY(-50%);
	pointer-events: auto;
}

.hero-slider__arrow--prev { left: 18px; }
.hero-slider__arrow--next { right: 18px; }

.hero-slider__dots {
	position: absolute;
	left: 50%;
	bottom: 78px;
	display: flex;
	gap: 7px;
	padding: 5px 8px;
	background: rgba(17, 28, 19, .25);
	border-radius: 999px;
	backdrop-filter: blur(6px);
	transform: translateX(-50%);
	pointer-events: auto;
}

.hero-slider__dot {
	width: 7px;
	height: 7px;
	margin: 0;
	padding: 0;
	background: rgba(255, 255, 255, .46);
	border: 0;
	border-radius: 50%;
}

.hero-slider__dot.is-active {
	background: #fff;
	transform: scale(1.12);
}

/* Facts are part of the banner, not separate cards */
.hero-facts {
	position: absolute;
	left: 50%;
	bottom: 35px;
	z-index: 15;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 46px;
	width: min(920px, calc(100% - 110px));
	margin: 0;
	transform: translateX(-50%);
	pointer-events: none;
}

.hero-fact {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 0;
	min-height: 0;
	padding: 0;
	color: #fff;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	backdrop-filter: none;
	font-size: 13px;
	font-weight: 650;
	text-align: left;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .22);
}

.hero-fact__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 23px;
	height: 23px;
	flex: 0 0 23px;
	color: #91bf57;
}

.hero-fact__icon svg {
	display: block;
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.hero-fact__text {
	white-space: nowrap;
}

/* Small decorative edge, not a large empty band */
.hero-wave {
	position: absolute;
	left: -1px;
	right: -1px;
	bottom: -1px;
	z-index: 12;
	height: 34px;
	pointer-events: none;
}

.hero-wave svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.hero-wave__fill { fill: var(--lion-ivory); }

.hero-wave__line {
	fill: none;
	stroke: rgba(194, 173, 132, .55);
	stroke-width: 1.15;
	vector-effect: non-scaling-stroke;
}

/* Pull the next section closer to the compact hero */
.plan-section {
	padding-top: 52px;
}

/* TABLET */
@media (max-width: 1000px) {
	.hero-slider__viewport {
		height: 540px;
	}

	.hero-slide__content {
		align-items: flex-end;
		padding: 64px 0 116px;
	}

	.hero-slide__panel,
	.hero-slide[data-slide="3"] .hero-slide__panel {
		width: min(620px, 76vw);
		max-width: 620px;
                transform: translateY(-26px);
	}

	.hero-slide .hero-slide__title,
	.hero-slide[data-slide="3"] .hero-slide__title {
		max-width: 620px;
		font-size: clamp(38px, 5.2vw, 49px);
	}

	.hero-slide[data-slide="1"] .hero-slide__title,
	.hero-slide[data-slide="2"] .hero-slide__title {
		font-size: clamp(33px, 4.6vw, 43px);
	}

	.hero-slide__overlay {
		background:
			linear-gradient(
				180deg,
				rgba(11, 23, 14, .04) 0%,
				rgba(12, 26, 16, .10) 30%,
				rgba(12, 27, 16, .40) 58%,
				rgba(10, 24, 14, .86) 100%
			);
	}

	.hero-facts {
		bottom: 32px;
		gap: 26px;
		width: calc(100% - 60px);
	}

	.hero-slider__dots {
		bottom: 78px;
	}
}

/* MOBILE — separate composition */
@media (max-width: 600px) {
        .hero-slider {
                padding: 0;
                overflow: hidden;
        }

        .hero-slider__viewport {
                height: clamp(500px, 72svh, 530px);
                min-height: 0;
        }

        .hero-slide[data-slide="0"] .hero-slide__image { object-position: 56% 44%; }
        .hero-slide[data-slide="1"] .hero-slide__image { object-position: 54% 45%; }
        .hero-slide[data-slide="2"] .hero-slide__image { object-position: 52% 44%; }
        .hero-slide[data-slide="3"] .hero-slide__image { object-position: 57% 45%; }

        .hero-slide__overlay {
                background:
                        linear-gradient(
                                180deg,
                                rgba(10, 23, 14, .01) 0%,
                                rgba(10, 24, 14, .05) 30%,
                                rgba(10, 24, 14, .28) 54%,
                                rgba(9, 22, 13, .90) 100%
                        );
        }

        /*
         * 0.4.7: mobile zones are deliberately separated:
         * photo / title+CTA / dots / facts / wave.
         */
        .hero-slide__content {
                position: absolute;
                inset: 0;
                display: block;
                height: 100%;
                padding: 0;
        }

        .hero-slide__panel,
        .hero-slide[data-slide="3"] .hero-slide__panel {
                position: absolute;
                left: 18px;
                right: 18px;
                bottom: 276px;
                z-index: 2;
                width: auto;
                max-width: none;
                transform: none;
        }

        .hero-slide .hero-slide__title,
        .hero-slide[data-slide="3"] .hero-slide__title {
                width: 100%;
                max-width: 100%;
                font-size: clamp(27px, 7.4vw, 32px);
                line-height: 1.09;
                letter-spacing: -.022em;
                text-wrap: balance;
        }

        .hero-slide[data-slide="1"] .hero-slide__title,
        .hero-slide[data-slide="2"] .hero-slide__title {
                max-width: 100%;
                font-size: clamp(22px, 6.1vw, 26px);
                line-height: 1.09;
        }

        .hero-slide__actions {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 8px;
                width: 100%;
                margin-top: 12px;
        }

        .hero-slide__actions .button {
                width: 100%;
                min-height: 42px;
                padding: 0 8px;
                border-radius: 12px;
                font-size: 11.5px;
                white-space: nowrap;
        }

        .hero-facts {
                left: 14px;
                right: 14px;
                bottom: 18px;
                display: grid;
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 0;
                width: auto;
                transform: none;
        }

        .hero-fact {
                flex-direction: column;
                gap: 2px;
                min-height: 34px;
                padding: 0 3px;
                font-size: 8.8px;
                line-height: 1.1;
                text-align: center;
                text-shadow: 0 1px 8px rgba(0, 0, 0, .24);
        }

        .hero-fact + .hero-fact {
                border-left: 1px solid rgba(255, 255, 255, .22);
        }

        .hero-fact__icon {
                width: 18px;
                height: 18px;
                flex-basis: 18px;
        }

        .hero-fact__icon svg {
                width: 17px;
                height: 17px;
        }

        .hero-fact__text {
                white-space: nowrap;
        }

        .hero-wave {
                height: 16px;
        }

        .hero-slider__dots {
                bottom: 61px;
                gap: 6px;
                padding: 4px 7px;
        }

        .hero-slider__dot {
                width: 6px;
                height: 6px;
        }

        .hero-slider__arrow {
                top: 42%;
                width: 32px;
                height: 32px;
                font-size: 22px;
                background: rgba(13, 26, 15, .20);
        }

        .hero-slider__arrow--prev { left: 8px; }
        .hero-slider__arrow--next { right: 8px; }

        .plan-section {
                padding-top: 30px;
        }
}

@media (max-width: 390px) {
        .hero-slider__viewport {
                height: 500px;
        }

        .hero-slide__panel,
        .hero-slide[data-slide="3"] .hero-slide__panel {
                left: 16px;
                right: 16px;
                bottom: 276px;
        }

        .hero-slide .hero-slide__title,
        .hero-slide[data-slide="3"] .hero-slide__title {
                font-size: 27px;
        }

        .hero-slide[data-slide="1"] .hero-slide__title,
        .hero-slide[data-slide="2"] .hero-slide__title {
                font-size: 22px;
        }

        .hero-slide__actions .button {
                font-size: 11px;
        }

        .hero-fact {
                font-size: 8.2px;
        }
}


/* =========================================================
   END 0.4.10
   ========================================================= */

/* =========================================================
   BEGIN 0.4.22 — NATIVE PRIDE COMPACT
   Родной lionspark-pride-friends не изменяется.
   ========================================================= */

.home-page .lpf-home {
        margin: 28px 0 0;
}

.home-page .lpf-home__shell {
        padding: clamp(28px, 3.2vw, 44px);
}

.home-page .lpf-home__header {
        gap: 32px;
        padding-bottom: 26px;
}

.home-page .lpf-home__latest,
.home-page .lpf-home__leaders {
        padding-top: 28px;
}

.home-page .lpf-home__section-title {
        margin-bottom: 18px;
}

.home-page .lpf-home__leaders {
        margin-top: 24px;
        padding-top: 28px;
}

.home-page .lpf-home__footer {
        margin-top: 28px;
        padding-top: 22px;
}

/*
 * Когда все участники уже помещаются, JS плагина
 * добавляет .is-static. Стрелки тогда не нужны.
 */
.home-page .lpf-home__rail.is-static {
        grid-template-columns: minmax(0, 1fr);
}

.home-page .lpf-home__rail.is-static .lpf-home__arrow {
        display: none;
}

/* Не заставляем карточки быть выше, чем требует содержимое. */
.home-page .lpf-home-card {
        min-height: 232px;
}

.home-page .lpf-home__leader-grid .lpf-home-card {
        min-height: 250px;
}

/*
 * 1 участник — одна аккуратная карточка.
 * 2 участника — две карточки.
 * При 3+ остаётся родная сетка плагина.
 */
@media (min-width: 761px) {
        .home-page .lpf-home__track:has(> .lpf-home-card:only-child) {
                grid-template-columns: minmax(0, 1fr);
                max-width: 520px;
        }

        .home-page .lpf-home__track:has(> .lpf-home-card:nth-child(2):last-child) {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                max-width: 1040px;
        }
}

/* Стык Прайда со следующим блоком. */
.home-page .guardians-section {
        padding-top: 44px;
}

@media (max-width: 760px) {
        .home-page .lpf-home {
                margin: 20px 0 0;
        }

        .home-page .lpf-home__shell {
                padding: 23px 16px;
        }

        .home-page .lpf-home__header {
                padding-bottom: 22px;
        }

        .home-page .lpf-home__latest,
        .home-page .lpf-home__leaders {
                padding-top: 24px;
        }

        .home-page .lpf-home__section-title {
                margin-bottom: 16px;
        }

        .home-page .lpf-home__leaders {
                margin-top: 20px;
                padding-top: 24px;
        }

        .home-page .lpf-home__footer {
                margin-top: 24px;
                padding-top: 20px;
        }

        /*
         * Главная проблема исходного плагина:
         * viewport принудительно имеет 420–450 px.
         *
         * Если карточек 1 или 2, внутренний скролл не нужен:
         * высота становится естественной.
         */
        .home-page .lpf-home__viewport:has(.lpf-home-card:only-child),
        .home-page .lpf-home__viewport:has(.lpf-home-card:nth-child(2):last-child) {
                height: auto;
                min-height: 0;
                margin-right: 0;
                padding-right: 0;
                overflow: visible;
        }

        .home-page .lpf-home-card {
                min-height: 200px;
        }

        .home-page .lpf-home-card__direction {
                margin: 12px 0;
        }

        .home-page .lpf-home__leader-grid .lpf-home-card {
                min-height: 230px;
        }

        .home-page .guardians-section {
                padding-top: 24px;
        }
}

/* =========================================================
   END 0.4.22 — NATIVE PRIDE COMPACT
   ========================================================= */

/* =========================================================
   BEGIN 0.4.24 — GUARDIANS CAROUSEL
   Все опекуны. Autoplay + mouse drag + mobile swipe.
   ========================================================= */

.home-page .guardians-section {
        padding-top: 52px;
        padding-bottom: 52px;
        overflow: hidden;
}

.home-page .guardians-section .section-heading {
        margin-bottom: 30px;
}

.guardians-carousel {
        position: relative;
        width: 100%;
}

.guardians-carousel__viewport {
        width: 100%;
        overflow: hidden;
        cursor: grab;
        touch-action: pan-y;
        user-select: none;
}

.guardians-carousel.is-dragging .guardians-carousel__viewport {
        cursor: grabbing;
}

.guardians-carousel__track {
        display: flex;
        align-items: stretch;
        gap: 18px;
        width: max-content;
        padding: 4px 0 18px;
        will-change: transform;
}

.guardian-card {
        flex: 0 0 clamp(280px, 22vw, 330px);
        display: flex;
        flex-direction: column;
        min-width: 0;
        overflow: hidden;
        background: #fff;
        border: 1px solid var(--ls-border);
        border-radius: 24px;
        box-shadow: 0 12px 34px rgba(25,64,42,.07);
}

.guardian-card__media {
        display: block;
        width: 100%;
        overflow: hidden;
        background: #fff;
        border-bottom: 1px solid var(--ls-border);
}

.guardian-card__media img {
        display: block;
        width: 100%;
        height: auto;
        max-width: 100%;
        object-fit: contain;
        object-position: center;
        pointer-events: none;
        user-select: none;
        -webkit-user-drag: none;
}

.guardian-card__body {
        display: flex;
        flex: 1;
        align-items: flex-start;
        padding: 18px 19px 21px;
}

.guardian-card h3 {
        display: -webkit-box;
        margin: 0;
        font-size: 18px;
        line-height: 1.35;
        letter-spacing: -.015em;
        -webkit-line-clamp: 4;
        -webkit-box-orient: vertical;
        overflow: hidden;
}

.guardian-card h3 a {
        color: inherit;
        text-decoration: none;
}

.guardians-carousel__actions {
        display: flex;
        justify-content: center;
        margin-top: 22px;
}

.guardians-carousel__actions .button {
        min-width: 210px;
}

@media (max-width: 1020px) {
        .guardian-card {
                flex-basis: min(44vw, 320px);
        }
}

@media (max-width: 720px) {
        .home-page .guardians-section {
                padding-top: 32px;
                padding-bottom: 38px;
        }

        .home-page .guardians-section .section-heading {
                align-items: center;
                text-align: center;
                margin-bottom: 24px;
        }

        .home-page .guardians-section .section-heading > div,
        .home-page .guardians-section .section-heading .text-link {
                width: 100%;
                text-align: center;
        }

        .guardians-carousel__track {
                gap: 14px;
                padding-bottom: 14px;
        }

        /*
         * Одна карточка + видимый край следующей:
         * пользователь сразу понимает, что ленту можно свайпать.
         */
        .guardian-card {
                flex-basis: 84vw;
                max-width: 315px;
                border-radius: 21px;
        }

        .guardian-card__body {
                padding: 16px 17px 19px;
        }

        .guardian-card h3 {
                font-size: 17px;
                line-height: 1.35;
        }

        .guardians-carousel__actions {
                margin-top: 18px;
        }

        .guardians-carousel__actions .button {
                width: 100%;
        }
}

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

/* =========================================================
   END 0.4.24 — GUARDIANS CAROUSEL
   ========================================================= */

/* =========================================================
   BEGIN 0.4.25 — GUARDIANS FULL BLEED
   Desktop: лента на всю ширину.
   Mobile: две карточки одновременно.
   ========================================================= */

.home-page .guardians-section {
        overflow: hidden;
}

/* Заголовок остаётся по основной сетке,
   сама карусель выходит на ширину окна. */
.home-page .guardians-carousel {
        width: 100vw;
        max-width: none;
        margin-left: calc(50% - 50vw);
}

.home-page .guardians-carousel__track {
        gap: 16px;
        padding: 4px 12px 18px;
}

/* Desktop: примерно 5–7 карточек в зависимости от экрана. */
.home-page .guardian-card {
        flex-basis: clamp(220px, 16.5vw, 280px);
        border-radius: 20px;
}

/* Важно для партнёров: логотип + животное не обрезаем. */
.home-page .guardian-card__media {
        display: grid;
        place-items: center;
        aspect-ratio: 4 / 5;
        background: #fff;
}

.home-page .guardian-card__media img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
}

.home-page .guardian-card__body {
        padding: 15px 16px 18px;
}

.home-page .guardian-card h3 {
        font-size: 16px;
        line-height: 1.35;
        -webkit-line-clamp: 4;
}

@media (max-width: 1020px) and (min-width: 721px) {
        .home-page .guardian-card {
                flex-basis: clamp(210px, 27vw, 260px);
        }
}

@media (max-width: 720px) {
        .home-page .guardians-section .section-heading h2 {
                font-size: clamp(38px, 11vw, 46px);
        }

        .home-page .guardians-carousel__track {
                gap: 12px;
                padding-left: 12px;
                padding-right: 12px;
        }

        /* 390 px: две карточки полностью помещаются рядом. */
        .home-page .guardian-card {
                flex: 0 0 calc((100vw - 36px) / 2);
                max-width: 190px;
                min-width: 0;
                border-radius: 17px;
        }

        .home-page .guardian-card__media {
                aspect-ratio: 4 / 5;
        }

        .home-page .guardian-card__body {
                padding: 11px 10px 14px;
        }

        .home-page .guardian-card h3 {
                font-size: 13px;
                line-height: 1.34;
                -webkit-line-clamp: 5;
        }

        .home-page .guardians-carousel__actions {
                width: min(calc(100% - 32px), 360px);
                margin-left: auto;
                margin-right: auto;
        }
}

/* =========================================================
   END 0.4.25 — GUARDIANS FULL BLEED
   ========================================================= */

/* =========================================================
   BEGIN 0.4.27 — COMPACT NEWS
   Компактные горизонтальные карточки.
   Все правила ограничены .news-section.
   ========================================================= */

.home-page .news-section {
        padding-top: 54px;
        padding-bottom: 54px;
}

.home-page .news-section__heading {
        justify-content: center;
        margin-bottom: 28px;
        text-align: center;
}

.home-page .news-section__heading > div {
        width: 100%;
}

.home-page .news-section__heading h2 {
        margin-bottom: 0;
}

.home-page .news-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
}

.home-page .news-card {
        display: grid;
        grid-template-columns: minmax(120px, 38%) minmax(0, 1fr);
        min-height: 215px;
        overflow: hidden;
        border-radius: 22px;
        background: #fff;
}

.home-page .news-card__media {
        width: 100%;
        height: 100%;
        min-height: 215px;
        aspect-ratio: auto;
        overflow: hidden;
}

.home-page .news-card__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
}

.home-page .news-card__body {
        display: flex;
        flex-direction: column;
        min-width: 0;
        padding: 20px 18px 18px;
}

.home-page .news-card .post-card__date {
        margin: 0 0 8px;
        font-size: 11px;
        line-height: 1.2;
}

.home-page .news-card h3 {
        display: -webkit-box;
        margin: 0;
        overflow: hidden;
        font-size: 17px;
        line-height: 1.28;
        letter-spacing: -.015em;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
}

.home-page .news-card h3 a {
        color: inherit;
        text-decoration: none;
}

.home-page .news-card__excerpt {
        display: -webkit-box;
        margin: 10px 0 0;
        overflow: hidden;
        color: var(--ls-muted);
        font-size: 13px;
        line-height: 1.42;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
}

.home-page .news-card__more {
        display: inline-flex;
        align-items: center;
        width: fit-content;
        margin-top: auto;
        padding-top: 12px;
        color: var(--ls-green);
        font-size: 13px;
        font-weight: 800;
        text-decoration: none;
}

.home-page .news-section__actions {
        display: flex;
        justify-content: center;
        margin-top: 24px;
}

.home-page .news-section__actions .text-link {
        font-size: 15px;
}

@media (max-width: 1180px) {
        .home-page .news-grid {
                grid-template-columns: 1fr;
        }

        /*
         * Отменяем старое глобальное скрытие третьей post-card
         * на tablet.
         */
        .home-page .news-section .post-card:nth-child(3) {
                display: grid;
        }

        .home-page .news-card {
                grid-template-columns: 200px minmax(0, 1fr);
                min-height: 175px;
        }

        .home-page .news-card__media {
                min-height: 175px;
        }
}

@media (max-width: 720px) {
        .home-page .news-section {
                padding-top: 38px;
                padding-bottom: 42px;
        }

        .home-page .news-section__heading {
                margin-bottom: 22px;
        }

        .home-page .news-section__heading h2 {
                font-size: clamp(38px, 11vw, 46px);
        }

        .home-page .news-grid {
                grid-template-columns: 1fr;
                gap: 12px;
        }

        .home-page .news-card,
        .home-page .news-section .post-card:nth-child(3) {
                display: grid;
                grid-template-columns: 118px minmax(0, 1fr);
                min-height: 150px;
                border-radius: 18px;
        }

        .home-page .news-card__media {
                min-height: 150px;
        }

        .home-page .news-card__body {
                padding: 13px 13px 12px;
        }

        .home-page .news-card .post-card__date {
                margin-bottom: 5px;
                font-size: 10px;
        }

        .home-page .news-card h3 {
                font-size: 14px;
                line-height: 1.25;
                -webkit-line-clamp: 3;
        }

        .home-page .news-card__excerpt {
                margin-top: 7px;
                font-size: 11px;
                line-height: 1.35;
                -webkit-line-clamp: 2;
        }

        .home-page .news-card__more {
                padding-top: 7px;
                font-size: 11px;
        }

        .home-page .news-section__actions {
                margin-top: 20px;
        }
}

/* =========================================================
   END 0.4.27 — COMPACT NEWS
   ========================================================= */

/* =========================================================
   BEGIN 0.4.28 — LOCATION MAP
   Финальный блок главной: адрес + маршрут + Яндекс Карта.
   ========================================================= */

.home-page .location-section {
        padding-top: 58px;
        padding-bottom: 0;
}

.home-page .location-section__header {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 40px;
        margin-bottom: 30px;
}

.home-page .location-section__copy {
        max-width: 760px;
}

.home-page .location-section__copy h2 {
        margin: 0;
        font-size: clamp(46px, 5vw, 72px);
        line-height: .98;
        letter-spacing: -.045em;
}

.home-page .location-section__copy p {
        margin: 22px 0 0;
        color: var(--ls-muted);
        font-size: 17px;
        line-height: 1.55;
}

.home-page .location-section__actions {
        display: flex;
        flex: 0 0 auto;
        align-items: center;
        gap: 12px;
}

.home-page .location-map {
        position: relative;
        width: 100%;
        height: 420px;
        overflow: hidden;
        background: #eef1ec;
        border: 1px solid var(--ls-border);
        border-radius: 30px;
}

.home-page .location-map__frame {
        display: block;
        width: 100%;
        height: 100%;
        border: 0;
}

@media (max-width: 900px) {
        .home-page .location-section__header {
                align-items: flex-start;
                flex-direction: column;
                gap: 24px;
        }

        .home-page .location-section__actions {
                width: 100%;
        }
}

@media (max-width: 720px) {
        .home-page .location-section {
                padding-top: 42px;
        }

        .home-page .location-section__header {
                gap: 20px;
                margin-bottom: 22px;
        }

        .home-page .location-section__copy h2 {
                font-size: clamp(38px, 11vw, 46px);
        }

        .home-page .location-section__copy p {
                margin-top: 16px;
                font-size: 15px;
                line-height: 1.5;
        }

        .home-page .location-section__copy p br {
                display: none;
        }

        .home-page .location-section__actions {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 10px;
        }

        .home-page .location-section__actions .button {
                width: 100%;
                min-width: 0;
                padding-left: 14px;
                padding-right: 14px;
                text-align: center;
        }

        .home-page .location-map {
                height: 320px;
                border-radius: 22px;
        }
}

@media (max-width: 390px) {
        .home-page .location-section__actions {
                grid-template-columns: 1fr;
        }
}

/* =========================================================
   END 0.4.28 — LOCATION MAP
   ========================================================= */

/* =========================================================
   BEGIN 0.4.29 — YANDEX JS MAP
   Полноценная интерактивная карта вместо iframe/whatshere.
   ========================================================= */

.home-page .location-map__canvas {
        width: 100%;
        height: 100%;
        min-height: 100%;
}

.home-page .location-map__fallback {
        display: grid;
        place-items: center;
        height: 100%;
        margin: 0;
        padding: 24px;
        color: var(--ls-muted);
        text-align: center;
}

/*
 * Пока API загружается — спокойный фон без скачка layout.
 */
.home-page .location-map:not(.is-map-ready)::before {
        content: "Загружаем карту…";
        position: absolute;
        inset: 0;
        z-index: 0;
        display: grid;
        place-items: center;
        color: var(--ls-muted);
        font-size: 14px;
}

.home-page .location-map__canvas {
        position: relative;
        z-index: 1;
}

.home-page .location-map.is-map-ready::before {
        display: none;
}

/* =========================================================
   END 0.4.29 — YANDEX JS MAP
   ========================================================= */

/* =========================================================
   BEGIN 0.4.31 — FOOTER
   Компактный информационный футер новой главной.
   ========================================================= */

.site-footer {
        margin-top: 56px;
        background: var(--ls-green-dark);
        color: #fff;
}

.site-footer__inner {
        width: min(calc(100% - 48px), var(--ls-container));
        margin-inline: auto;
        padding: 58px 0 48px;
        display: grid;
        grid-template-columns: 1.25fr .9fr .9fr;
        gap: 64px;
}

.site-footer a {
        color: inherit;
        text-decoration: none;
}

.site-footer__name {
        display: inline-block;
        font-size: 31px;
        line-height: 1;
        font-weight: 900;
        letter-spacing: -.035em;
}

.site-footer__tagline {
        display: block;
        margin-top: 7px;
        opacity: .65;
        font-size: 14px;
}

.site-footer__address {
        max-width: 390px;
        margin: 24px 0 0;
        color: rgba(255,255,255,.76);
        font-size: 14px;
        line-height: 1.65;
}

.site-footer__title {
        display: block;
        margin-bottom: 20px;
        color: rgba(255,255,255,.56);
        font-size: 12px;
        line-height: 1;
        font-weight: 800;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.site-footer__menu {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px 24px;
}

.site-footer__menu a,
.site-footer__contact > a {
        transition: opacity .2s ease;
}

.site-footer__menu a:hover,
.site-footer__contact > a:hover {
        opacity: .68;
}

.site-footer__contact {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
}

.site-footer__phone {
        font-size: 21px;
        line-height: 1.2;
        font-weight: 800;
}

.site-footer__email {
        margin-top: 10px;
        color: rgba(255,255,255,.76) !important;
        font-size: 14px;
}

.site-footer__socials {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 24px;
}

.site-footer__socials a {
        display: inline-flex;
        align-items: center;
        min-height: 36px;
        padding: 8px 13px;
        border: 1px solid rgba(255,255,255,.2);
        border-radius: 999px;
        font-size: 12px;
        font-weight: 800;
        transition:
                background-color .2s ease,
                border-color .2s ease;
}

.site-footer__socials a:hover {
        background: rgba(255,255,255,.1);
        border-color: rgba(255,255,255,.36);
}

.site-footer__bottom {
        padding: 0;
        border-top: 1px solid rgba(255,255,255,.12);
        text-align: left;
        font-size: 12px;
        opacity: 1;
}

.site-footer__bottom-inner {
        width: min(calc(100% - 48px), var(--ls-container));
        min-height: 62px;
        margin-inline: auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        color: rgba(255,255,255,.55);
}

.site-footer__bottom a {
        color: inherit;
}

@media (max-width: 1040px) {
        .site-footer__inner {
                width: min(calc(100% - 32px), var(--ls-container));
                grid-template-columns: 1fr 1fr;
                gap: 42px;
        }

        .site-footer__brand {
                grid-column: 1 / -1;
        }

        .site-footer__bottom-inner {
                width: min(calc(100% - 32px), var(--ls-container));
        }
}

@media (max-width: 720px) {
        .site-footer {
                margin-top: 42px;
        }

        .site-footer__inner {
                padding: 44px 0 36px;
                grid-template-columns: 1fr;
                gap: 34px;
        }

        .site-footer__brand {
                grid-column: auto;
        }

        .site-footer__name {
                font-size: 28px;
        }

        .site-footer__address {
                margin-top: 18px;
        }

        .site-footer__menu {
                grid-template-columns: 1fr 1fr;
                gap: 11px 20px;
        }

        .site-footer__title {
                margin-bottom: 16px;
        }

        .site-footer__socials {
                margin-top: 20px;
        }

        .site-footer__bottom-inner {
                min-height: 0;
                padding: 20px 0;
                flex-direction: column;
                align-items: flex-start;
                gap: 8px;
        }
}

/* =========================================================
   END 0.4.31 — FOOTER
   ========================================================= */

/* =========================================================
   BEGIN 0.4.34 — FOOTER DETAILS
   WhatsApp + логотип + история + credits.
   ========================================================= */

.site-footer__story-row {
        border-top: 1px solid rgba(255,255,255,.12);
}

.site-footer__story-inner {
        width: min(calc(100% - 48px), var(--ls-container));
        margin-inline: auto;
        padding: 34px 0;
        display: grid;
        grid-template-columns: 150px minmax(0, 1.2fr) minmax(260px, .9fr);
        align-items: center;
        gap: 42px;
}

.site-footer__logo {
        display: block;
        width: 120px;
}

.site-footer__logo img {
        display: block;
        width: 100%;
        height: auto;
}

.site-footer__story p,
.site-footer__developer p {
        margin: 0;
}

.site-footer__story p {
        max-width: 620px;
        color: rgba(255,255,255,.76);
        font-size: 14px;
        line-height: 1.7;
}

.site-footer__developer {
        font-size: 13px;
        line-height: 1.55;
}

.site-footer__developer p {
        color: rgba(255,255,255,.82);
        font-weight: 650;
}

.site-footer__developer p a {
        color: #ff9c34;
        font-weight: 800;
}

.site-footer__developer span {
        display: block;
        margin-top: 6px;
        color: rgba(255,255,255,.48);
        font-size: 12px;
}

@media (max-width: 1040px) {
        .site-footer__story-inner {
                width: min(calc(100% - 32px), var(--ls-container));
                grid-template-columns: 120px minmax(0, 1fr);
                gap: 28px 34px;
        }

        .site-footer__developer {
                grid-column: 2;
        }

        .site-footer__logo {
                width: 105px;
        }
}

@media (max-width: 720px) {
        .site-footer__story-inner {
                padding: 30px 0;
                grid-template-columns: 1fr;
                gap: 22px;
        }

        .site-footer__developer {
                grid-column: auto;
        }

        .site-footer__logo {
                width: 98px;
        }

        .site-footer__story p {
                font-size: 13px;
        }
}

/* =========================================================
   END 0.4.34 — FOOTER DETAILS
   ========================================================= */

/* =========================================================
   BEGIN 0.4.35 — FOOTER POLISH
   Убираем лишнюю подпись бренда, выравниваем соцсети,
   добавляем компактную юридическую пометку.
   ========================================================= */

.site-footer__instagram-note {
        max-width: 310px;
        margin: 14px 0 0;
        color: rgba(255,255,255,.42);
        font-size: 10px;
        line-height: 1.5;
}

/* На desktop — аккуратные две колонки. */
@media (min-width: 721px) {
        .site-footer__socials {
                display: grid;
                grid-template-columns: repeat(2, max-content);
                align-items: center;
                justify-content: start;
                gap: 8px;
        }
}

/* На телефоне оставляем естественный перенос кнопок. */
@media (max-width: 720px) {
        .site-footer__socials {
                display: flex;
                flex-wrap: wrap;
        }

        .site-footer__instagram-note {
                max-width: 360px;
                margin-top: 13px;
                font-size: 9px;
        }
}

/* =========================================================
   END 0.4.35 — FOOTER POLISH
   ========================================================= */

/* =========================================================
   BEGIN 0.4.40 — BEST VISIT TIME COMPACT
   ========================================================= */

.best-visit-time {
        padding: clamp(36px, 4vw, 56px) 0;
        background: #f7f4ec;
}

.best-visit-time__poster {
        position: relative;
        overflow: hidden;
        border-radius: 26px;
        background:
                radial-gradient(circle at 95% 0%, rgba(239, 160, 28, .14), transparent 30%),
                linear-gradient(145deg, #153f2d 0%, #0e3022 100%);
        box-shadow: 0 18px 46px rgba(16, 54, 38, .14);
}

.best-visit-time__heading {
        max-width: 860px;
        padding:
                clamp(30px, 3.5vw, 44px)
                clamp(26px, 4vw, 52px)
                24px;
}

.best-visit-time__heading h2 {
        max-width: 760px;
        margin: 0;
        color: #fff;
        font-size: clamp(38px, 4.2vw, 58px);
        line-height: .99;
        letter-spacing: -.04em;
        text-wrap: balance;
}

.best-visit-time__lead {
        max-width: 680px;
        margin: 14px 0 0;
        color: rgba(255,255,255,.72);
        font-size: 17px;
        line-height: 1.45;
}

.best-visit-time__photos {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        height: clamp(165px, 15vw, 230px);
        margin: 0 clamp(18px, 3vw, 40px);
        overflow: hidden;
        border-radius: 19px;
        background: #0a2419;
}

.best-visit-time__photo {
        position: relative;
        min-width: 0;
        overflow: hidden;
}

.best-visit-time__photo + .best-visit-time__photo {
        border-left: 2px solid #153f2d;
}

.best-visit-time__photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transform: scale(1.02);
}

.best-visit-time__photo::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
                180deg,
                rgba(7,27,18,.01),
                rgba(7,27,18,.10)
        );
        pointer-events: none;
}

.best-visit-time__advice {
        display: grid;
        gap: 8px;
        padding:
                12px
                clamp(18px, 3vw, 40px)
                clamp(22px, 3vw, 32px);
}

.best-visit-time__row {
        display: grid;
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 17px;
        align-items: center;
        padding: 14px 18px;
        border: 1px solid rgba(255,255,255,.09);
        border-radius: 16px;
        background: rgba(255,255,255,.06);
}

.best-visit-time__row--tip {
        background: rgba(239,161,27,.08);
}

.best-visit-time__icon {
        display: grid;
        place-items: center;
        width: 50px;
        height: 50px;
        border-radius: 50%;
        color: #efa11b;
        border: 1px solid rgba(239,161,27,.34);
        background: rgba(239,161,27,.07);
}

.best-visit-time__icon svg {
        display: block;
        width: 27px;
        height: 27px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.4;
        stroke-linecap: round;
        stroke-linejoin: round;
}

.best-visit-time__content h3 {
        margin: 0 0 3px;
        color: #fff;
        font-size: clamp(18px, 1.4vw, 22px);
        line-height: 1.18;
}

.best-visit-time__content h3 strong,
.best-visit-time__content p strong {
        color: #efa11b;
        font-weight: 800;
}

.best-visit-time__content p {
        max-width: 980px;
        margin: 0;
        color: rgba(255,255,255,.78);
        font-size: 15.5px;
        line-height: 1.4;
}

.best-visit-time__row--tip .best-visit-time__content p {
        color: #fff;
        font-size: 16px;
        font-weight: 600;
}


@media (max-width: 720px) {

        .best-visit-time {
                padding: 24px 0 34px;
        }

        .best-visit-time__poster {
                border-radius: 20px;
        }

        .best-visit-time__heading {
                padding: 25px 16px 19px;
        }

        .best-visit-time__heading h2 {
                font-size: clamp(29px, 8.5vw, 35px);
                line-height: 1.02;
                letter-spacing: -.03em;
        }

        .best-visit-time__lead {
                margin-top: 11px;
                font-size: 14px;
                line-height: 1.4;
        }

        .best-visit-time__photos {
                height: 145px;
                margin: 0 10px;
                border-radius: 15px;
        }

        .best-visit-time__photo + .best-visit-time__photo {
                border-left-width: 1px;
        }

        .best-visit-time__advice {
                gap: 7px;
                padding: 9px 10px 14px;
        }

        .best-visit-time__row {
                grid-template-columns: 42px minmax(0, 1fr);
                gap: 11px;
                padding: 11px 12px;
                border-radius: 14px;
        }

        .best-visit-time__icon {
                width: 40px;
                height: 40px;
        }

        .best-visit-time__icon svg {
                width: 23px;
                height: 23px;
        }

        .best-visit-time__content h3 {
                margin-bottom: 2px;
                font-size: 15.5px;
        }

        .best-visit-time__content p,
        .best-visit-time__row--tip .best-visit-time__content p {
                font-size: 13.5px;
                line-height: 1.35;
        }
}

/* =========================================================
   END 0.4.40 — BEST VISIT TIME COMPACT
   ========================================================= */

/* =========================================================
   BEGIN 0.4.41 — VISITORS PAGE
   ========================================================= */

.visitors-page {
        overflow: hidden;
        background: #fff;
}


/* HERO */

.visitors-hero {
        padding: 34px 0 22px;
        background: #f7f4ec;
}

.visitors-hero__inner {
        display: grid;
        grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr);
        min-height: 430px;
        overflow: hidden;
        border-radius: 30px;
        background:
                radial-gradient(
                        circle at 10% 10%,
                        rgba(238, 162, 29, .13),
                        transparent 34%
                ),
                #153f2d;
        box-shadow: 0 20px 52px rgba(18, 55, 39, .13);
}

.visitors-hero__copy {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: clamp(44px, 5vw, 72px);
}

.visitors-hero__eyebrow {
        margin: 0 0 12px;
        color: #efa11b;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.visitors-hero h1 {
        max-width: 620px;
        margin: 0;
        color: #fff;
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(54px, 6vw, 82px);
        font-weight: 700;
        line-height: .96;
        letter-spacing: -.045em;
}

.visitors-hero__lead {
        max-width: 560px;
        margin: 22px 0 0;
        color: rgba(255,255,255,.78);
        font-size: 19px;
        line-height: 1.55;
}

.visitors-hero__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 30px;
}

.visitors-hero__media {
        position: relative;
        min-height: 430px;
        overflow: hidden;
}

.visitors-hero__media::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
                linear-gradient(
                        90deg,
                        rgba(21,63,45,.30) 0%,
                        transparent 28%
                );
        pointer-events: none;
}

.visitors-hero__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
}


/* QUICK INFO */

.visitors-quick {
        padding: 18px 0 26px;
        background: #f7f4ec;
}

.visitors-quick__grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
}

.visitors-quick__item {
        display: grid;
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 15px;
        align-items: center;
        min-width: 0;
        padding: 18px 20px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 18px;
        background: #fff;
        color: #173e2d;
        text-decoration: none;
        box-shadow: 0 8px 28px rgba(20,55,40,.04);
        transition:
                transform .2s ease,
                box-shadow .2s ease;
}

.visitors-quick__item:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 34px rgba(20,55,40,.08);
}

.visitors-quick__icon {
        display: grid;
        place-items: center;
        width: 48px;
        height: 48px;
        border-radius: 15px;
        color: #e89a11;
        background: #fff3d6;
}

.visitors-quick__icon svg {
        width: 27px;
        height: 27px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.5;
        stroke-linecap: round;
        stroke-linejoin: round;
}

.visitors-quick__item strong,
.visitors-quick__item small {
        display: block;
}

.visitors-quick__item strong {
        font-size: 16px;
        line-height: 1.25;
}

.visitors-quick__item small {
        margin-top: 4px;
        color: #657269;
        font-size: 13px;
        line-height: 1.4;
}


/* SECTION HEADING */

.visitors-services {
        padding: clamp(58px, 6vw, 88px) 0;
}

.visitors-section-heading {
        max-width: 800px;
        margin-bottom: 34px;
}

.visitors-section-heading__eyebrow {
        margin: 0 0 10px;
        color: #d78c0d;
        font-size: 12px;
        font-weight: 800;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.visitors-section-heading h1,
.visitors-section-heading h2,
.visitors-location__copy h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(38px, 4.2vw, 58px);
        line-height: 1.03;
        letter-spacing: -.04em;
}

.visitors-section-heading > p:last-child {
        max-width: 670px;
        margin: 15px 0 0;
        color: #66736b;
        font-size: 17px;
        line-height: 1.55;
}


/* SERVICE CARDS */

.visitors-services__grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
}

.visitors-card {
        min-width: 0;
        overflow: hidden;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 22px;
        background: #fff;
        color: inherit;
        text-decoration: none;
        box-shadow: 0 10px 34px rgba(19,55,39,.055);
        transition:
                transform .22s ease,
                box-shadow .22s ease;
}

.visitors-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 18px 42px rgba(19,55,39,.11);
}

.visitors-card__media {
        position: relative;
        aspect-ratio: 16 / 10;
        overflow: hidden;
        background: #e9eee9;
}

.visitors-card__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .4s ease;
}

.visitors-card:hover .visitors-card__image {
        transform: scale(1.035);
}

.visitors-card__shade {
        position: absolute;
        inset: 0;
        background:
                linear-gradient(
                        180deg,
                        transparent 56%,
                        rgba(10,35,23,.18) 100%
                );
        pointer-events: none;
}

.visitors-card__body {
        padding: 21px 22px 23px;
}

.visitors-card h3 {
        margin: 0;
        color: #173e2d;
        font-size: 21px;
        line-height: 1.18;
        letter-spacing: -.02em;
}

.visitors-card p {
        min-height: 48px;
        margin: 9px 0 0;
        color: #66736b;
        font-size: 14px;
        line-height: 1.5;
}

.visitors-card__link {
        display: inline-flex;
        gap: 6px;
        align-items: center;
        margin-top: 15px;
        color: #168142;
        font-size: 14px;
        font-weight: 800;
}


/* LOCATION */

.visitors-location {
        padding: clamp(54px, 6vw, 82px) 0;
        background: #f7f4ec;
}

.visitors-location__header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 40px;
        align-items: end;
        margin-bottom: 28px;
}

.visitors-location__copy p:last-child {
        margin: 16px 0 0;
        color: #66736b;
        font-size: 16px;
        line-height: 1.55;
}

.visitors-location__actions {
        display: flex;
        gap: 10px;
        align-items: center;
}

.visitors-page .location-map {
        position: relative;
        height: 420px;
        overflow: hidden;
        border-radius: 24px;
        background: #e9eee9;
}

.visitors-page .location-map__canvas {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
        min-height: 100%;
}

.visitors-page .location-map__fallback {
        display: grid;
        place-items: center;
        height: 100%;
        margin: 0;
        padding: 24px;
        color: #66736b;
        text-align: center;
}

.visitors-page .location-map:not(.is-map-ready)::before {
        content: "Загружаем карту…";
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #66736b;
        font-size: 14px;
}

.visitors-page .location-map.is-map-ready::before {
        display: none;
}

.visitors-page + .site-footer {
        margin-top: 0;
}


/* TABLET */

@media (max-width: 960px) {

        .visitors-hero__inner {
                grid-template-columns: 1fr 1fr;
                min-height: 390px;
        }

        .visitors-hero__copy {
                padding: 40px;
        }

        .visitors-hero__media {
                min-height: 390px;
        }

        .visitors-services__grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .visitors-location__header {
                grid-template-columns: 1fr;
                gap: 22px;
                align-items: start;
        }
}


/* MOBILE */

@media (max-width: 720px) {

        .visitors-hero {
                padding: 18px 0 14px;
        }

        .visitors-hero__inner {
                grid-template-columns: 1fr;
                min-height: 0;
                border-radius: 22px;
        }

        .visitors-hero__copy {
                padding: 30px 20px 26px;
        }

        .visitors-hero__eyebrow {
                margin-bottom: 8px;
                font-size: 11px;
        }

        .visitors-hero h1 {
                font-size: clamp(42px, 13vw, 58px);
        }

        .visitors-hero__lead {
                margin-top: 14px;
                font-size: 15px;
                line-height: 1.45;
        }

        .visitors-hero__actions {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 8px;
                margin-top: 20px;
        }

        .visitors-hero__actions .button {
                min-width: 0;
                padding-left: 12px;
                padding-right: 12px;
                text-align: center;
        }

        .visitors-hero__media {
                min-height: 225px;
        }

        .visitors-hero__media::after {
                background:
                        linear-gradient(
                                180deg,
                                rgba(21,63,45,.16) 0%,
                                transparent 30%
                        );
        }

        .visitors-quick {
                padding: 10px 0 20px;
        }

        .visitors-quick__grid {
                grid-template-columns: 1fr;
                gap: 8px;
        }

        .visitors-quick__item {
                grid-template-columns: 44px minmax(0, 1fr);
                gap: 12px;
                padding: 14px 15px;
                border-radius: 15px;
        }

        .visitors-quick__icon {
                width: 42px;
                height: 42px;
                border-radius: 13px;
        }

        .visitors-quick__icon svg {
                width: 23px;
                height: 23px;
        }

        .visitors-services {
                padding: 46px 0 54px;
        }

        .visitors-section-heading {
                margin-bottom: 24px;
        }

        .visitors-section-heading h2,
        .visitors-location__copy h2 {
                font-size: clamp(34px, 10vw, 43px);
        }

        .visitors-section-heading > p:last-child {
                margin-top: 11px;
                font-size: 15px;
        }

        .visitors-services__grid {
                grid-template-columns: 1fr;
                gap: 12px;
        }

        .visitors-card {
                border-radius: 18px;
        }

        .visitors-card__media {
                aspect-ratio: 16 / 9;
        }

        .visitors-card__body {
                padding: 17px 18px 19px;
        }

        .visitors-card h3 {
                font-size: 19px;
        }

        .visitors-card p {
                min-height: 0;
                margin-top: 7px;
                font-size: 13.5px;
        }

        .visitors-card__link {
                margin-top: 11px;
                font-size: 13px;
        }

        .visitors-location {
                padding: 44px 0 48px;
        }

        .visitors-location__copy p:last-child {
                margin-top: 12px;
                font-size: 14px;
        }

        .visitors-location__copy p br {
                display: none;
        }

        .visitors-location__actions {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 8px;
                width: 100%;
        }

        .visitors-location__actions .button {
                min-width: 0;
                width: 100%;
                padding-left: 12px;
                padding-right: 12px;
                text-align: center;
        }

        .visitors-page .location-map {
                height: 310px;
                border-radius: 18px;
        }
}

@media (max-width: 390px) {

        .visitors-hero__actions,
        .visitors-location__actions {
                grid-template-columns: 1fr;
        }
}

/* =========================================================
   END 0.4.41 — VISITORS PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.44 — VISITORS MOBILE GRID
   Two cards per row on mobile, inspired by the legacy page.
   ========================================================= */

@media (max-width: 720px) {

        .visitors-services__grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 8px;
        }

        .visitors-card {
                min-width: 0;
                border-radius: 14px;
        }

        .visitors-card__media {
                aspect-ratio: 1 / 1;
        }

        .visitors-card__body {
                padding: 11px 11px 12px;
        }

        .visitors-card h3 {
                font-size: 15px;
                line-height: 1.18;
                letter-spacing: -.015em;
        }

        .visitors-card p {
                min-height: 0;
                margin-top: 6px;
                font-size: 11.5px;
                line-height: 1.35;
        }

        .visitors-card__link {
                margin-top: 8px;
                font-size: 11.5px;
        }

        /*
         * После удаления старого HFE-header новая страница
         * начинается сразу под нормальной шапкой темы.
         */
        .visitors-quick {
                padding-top: 10px;
        }
}

/* =========================================================
   END 0.4.44 — VISITORS MOBILE GRID
   ========================================================= */

/* =========================================================
   BEGIN 0.4.46 — VISITORS CARD ART RATIO
   Less aggressive desktop crop for square illustrated covers.
   Mobile remains 1:1 as approved.
   ========================================================= */

@media (min-width: 721px) {
        .visitors-card__media {
                aspect-ratio: 4 / 3;
        }
}

/* =========================================================
   END 0.4.46 — VISITORS CARD ART RATIO
   ========================================================= */

/* =========================================================
   BEGIN 0.4.47 — PRICES PAGE
   ========================================================= */

.prices-page {
        overflow: hidden;
        background: #fff;
}

.prices-intro {
        padding: 34px 0 60px;
        background: #f7f4ec;
}

.prices-back {
        display: inline-flex;
        margin-bottom: 22px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.prices-intro__grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(280px, 390px);
        gap: clamp(32px, 6vw, 84px);
        align-items: center;
}

.prices-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.prices-intro h1 {
        max-width: 820px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(45px, 5.6vw, 76px);
        line-height: .98;
        letter-spacing: -.045em;
}

.prices-intro__lead {
        max-width: 660px;
        margin: 20px 0 26px;
        color: #66736b;
        font-size: 18px;
        line-height: 1.55;
}

.prices-intro__art {
        overflow: hidden;
        aspect-ratio: 1 / 1;
        border-radius: 26px;
        box-shadow: 0 18px 46px rgba(20,55,40,.10);
}

.prices-intro__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}

.prices-main {
        padding: clamp(62px, 6vw, 90px) 0;
}

.prices-heading {
        max-width: 790px;
        margin-bottom: 32px;
}

.prices-heading h2,
.prices-hours h2,
.prices-location h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 56px);
        line-height: 1.04;
        letter-spacing: -.035em;
}

.prices-heading > p:last-child {
        margin: 13px 0 0;
        color: #68746c;
        font-size: 16px;
        line-height: 1.5;
}

.prices-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px;
}

.price-card {
        padding: 24px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 20px;
        background: #fff;
        box-shadow: 0 8px 30px rgba(20,55,40,.05);
}

.price-card h3 {
        margin: 0;
        color: #173e2d;
        font-size: 18px;
        line-height: 1.25;
}

.price-card__price {
        display: block;
        margin-top: 25px;
        color: #168142;
        font-size: clamp(28px, 2.7vw, 39px);
        line-height: 1;
        letter-spacing: -.035em;
}

.price-card p {
        margin: 10px 0 0;
        color: #747d77;
        font-size: 13px;
        line-height: 1.45;
}

.prices-benefits {
        display: grid;
        grid-template-columns: 60px minmax(0, 1fr);
        gap: 20px;
        max-width: 960px;
        margin-top: 22px;
        padding: 24px 26px;
        border-radius: 20px;
        background: #fff5dc;
}

.prices-benefits__icon {
        display: grid;
        place-items: center;
        width: 56px;
        height: 56px;
        border-radius: 16px;
        background: #efa11b;
        color: #fff;
        font-size: 23px;
        font-weight: 900;
}

.prices-benefits h3 {
        margin: 0;
        color: #153f2d;
        font-size: 19px;
}

.prices-benefits p {
        margin: 6px 0 0;
        color: #5c665f;
        line-height: 1.5;
}

.prices-benefits strong {
        display: block;
        margin-top: 11px;
        color: #153f2d;
        font-size: 13px;
        line-height: 1.5;
}

.prices-extras {
        padding: clamp(58px, 6vw, 84px) 0;
        background: #f7f4ec;
}

.prices-extras__grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
}

.extra-card {
        padding: 27px;
        border-radius: 22px;
        background: #fff;
        border: 1px solid rgba(20,74,49,.09);
}

.extra-card__top {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        align-items: baseline;
        color: #173e2d;
        font-size: 20px;
        font-weight: 800;
}

.extra-card__top strong {
        flex: 0 0 auto;
        color: #168142;
        font-size: 24px;
}

.extra-card > p {
        margin: 14px 0 0;
        color: #68746c;
        font-size: 14px;
        line-height: 1.55;
}

.extra-card > a {
        display: inline-block;
        margin-top: 17px;
        color: #168142;
        font-size: 13px;
        font-weight: 800;
        text-decoration: none;
}

.feed-price {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        margin-top: 15px;
        padding-top: 15px;
        border-top: 1px solid rgba(20,74,49,.10);
        color: #526057;
}

.feed-price strong {
        color: #168142;
}

.prices-hours {
        padding: clamp(62px, 6vw, 88px) 0;
        background: #153f2d;
        color: #fff;
}

.prices-eyebrow--light {
        color: #efa11b;
}

.prices-hours h2 {
        color: #fff;
}

.prices-hours__intro > p:last-child {
        max-width: 630px;
        margin: 15px 0 0;
        color: rgba(255,255,255,.72);
        font-size: 17px;
}

.prices-hours__grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin-top: 30px;
}

.prices-hours__grid article {
        padding: 24px;
        border: 1px solid rgba(255,255,255,.11);
        border-radius: 20px;
        background: rgba(255,255,255,.06);
}

.prices-hours__grid span,
.prices-hours__grid strong,
.prices-hours__grid small {
        display: block;
}

.prices-hours__grid span {
        color: rgba(255,255,255,.65);
        font-size: 14px;
}

.prices-hours__grid strong {
        margin-top: 8px;
        color: #fff;
        font-size: clamp(32px, 4vw, 50px);
        line-height: 1;
}

.prices-hours__grid small {
        margin-top: 9px;
        color: rgba(255,255,255,.58);
}

.prices-hours__note {
        margin-top: 14px;
        padding: 17px 20px;
        border-radius: 16px;
        background: rgba(239,161,27,.12);
        color: #fff;
        font-weight: 700;
}

.prices-best-time {
        padding: clamp(58px, 6vw, 84px) 0;
}

.prices-heading--center {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
}

.prices-best-time__grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
}

.prices-best-time__grid article {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 15px;
        padding: 22px;
        border-radius: 19px;
        background: #f7f4ec;
}

.prices-best-time__icon {
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        border-radius: 50%;
        color: #e89a11;
        background: #fff3d6;
        font-size: 21px;
}

.prices-best-time h3 {
        margin: 0 0 5px;
        color: #173e2d;
        font-size: 17px;
}

.prices-best-time h3 strong,
.prices-best-time article p strong {
        color: #e89a11;
}

.prices-best-time article p {
        margin: 0;
        color: #606d65;
        font-size: 14px;
        line-height: 1.45;
}

.prices-location {
        padding: clamp(56px, 6vw, 82px) 0;
        background: #f7f4ec;
}

.prices-location__header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 30px;
        align-items: end;
        margin-bottom: 25px;
}

.prices-location__header p {
        max-width: 680px;
        margin: 13px 0 0;
        color: #68746c;
        line-height: 1.5;
}

.prices-location__header > div > a {
        display: inline-block;
        margin-top: 10px;
        color: #168142;
        font-weight: 800;
        text-decoration: none;
}

.prices-page .location-map {
        position: relative;
        height: 350px;
        overflow: hidden;
        border-radius: 22px;
        background: #e8eee9;
}

.prices-page .location-map__canvas {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
}

.prices-page .location-map:not(.is-map-ready)::before {
        content: "Загружаем карту…";
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #68746c;
        font-size: 14px;
}

.prices-page .location-map.is-map-ready::before {
        display: none;
}

.prices-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .prices-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .prices-intro__grid {
                grid-template-columns: minmax(0, 1fr) 300px;
        }

        .prices-best-time__grid {
                grid-template-columns: 1fr;
        }
}


@media (max-width: 720px) {

        .prices-intro {
                padding: 20px 0 42px;
        }

        .prices-back {
                margin-bottom: 16px;
        }

        .prices-intro__grid {
                grid-template-columns: 1fr;
                gap: 25px;
        }

        .prices-intro h1 {
                font-size: clamp(38px, 10.5vw, 48px);
        }

        .prices-intro__lead {
                margin-top: 14px;
                margin-bottom: 19px;
                font-size: 15px;
        }

        .prices-intro__art {
                max-width: 340px;
                border-radius: 20px;
        }

        .prices-main,
        .prices-extras,
        .prices-best-time,
        .prices-location {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .prices-heading {
                margin-bottom: 23px;
        }

        .prices-heading h2,
        .prices-hours h2,
        .prices-location h2 {
                font-size: clamp(32px, 9vw, 40px);
        }

        .prices-grid {
                gap: 8px;
        }

        .price-card {
                padding: 17px;
                border-radius: 16px;
        }

        .price-card h3 {
                font-size: 15px;
        }

        .price-card__price {
                margin-top: 18px;
                font-size: 27px;
        }

        .price-card p {
                font-size: 11.5px;
        }

        .prices-benefits {
                grid-template-columns: 44px minmax(0, 1fr);
                gap: 13px;
                margin-top: 13px;
                padding: 17px;
                border-radius: 16px;
        }

        .prices-benefits__icon {
                width: 42px;
                height: 42px;
                border-radius: 13px;
                font-size: 18px;
        }

        .prices-benefits p {
                font-size: 13px;
        }

        .prices-benefits strong {
                font-size: 11.5px;
        }

        .prices-extras__grid,
        .prices-hours__grid {
                grid-template-columns: 1fr;
        }

        .extra-card {
                padding: 20px;
                border-radius: 17px;
        }

        .extra-card__top {
                font-size: 17px;
        }

        .extra-card__top strong {
                font-size: 20px;
        }

        .prices-hours {
                padding: 48px 0;
        }

        .prices-hours__intro > p:last-child {
                font-size: 15px;
        }

        .prices-hours__grid {
                margin-top: 22px;
        }

        .prices-hours__grid article {
                padding: 19px;
                border-radius: 16px;
        }

        .prices-best-time__grid article {
                grid-template-columns: 42px minmax(0, 1fr);
                gap: 12px;
                padding: 17px;
                border-radius: 16px;
        }

        .prices-best-time__icon {
                width: 38px;
                height: 38px;
        }

        .prices-location__header {
                grid-template-columns: 1fr;
                gap: 18px;
        }

        .prices-location__header .button {
                width: 100%;
                text-align: center;
        }

        .prices-page .location-map {
                height: 310px;
                border-radius: 18px;
        }
}

/* =========================================================
   END 0.4.47 — PRICES PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.49 — PARK MAP PAGE
   ========================================================= */

.park-map-page {
        overflow: hidden;
        background: #fff;
}

.park-map-intro {
        padding: 34px 0 54px;
        background: #f7f4ec;
}

.park-map-back {
        display: inline-flex;
        margin-bottom: 22px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.park-map-heading {
        max-width: 820px;
}

.park-map-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.park-map-heading h1 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(48px, 6vw, 78px);
        line-height: .98;
        letter-spacing: -.045em;
}

.park-map-heading > p:last-child {
        max-width: 680px;
        margin: 18px 0 0;
        color: #66736b;
        font-size: 18px;
        line-height: 1.55;
}


/* REAL PARK PLAN */

.park-map-plan {
        padding: clamp(58px, 6vw, 88px) 0;
}

.park-map-plan__header {
        display: flex;
        justify-content: space-between;
        gap: 30px;
        align-items: end;
        max-width: 820px;
        margin: 0 auto 25px;
}

.park-map-plan__header h2,
.park-map-location__header h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 56px);
        line-height: 1.04;
        letter-spacing: -.035em;
}

.park-map-plan__open {
        flex: 0 0 auto;
        color: #168142;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.park-map-plan__frame {
        width: min(100%, 820px);
        margin-inline: auto;
        padding: 18px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 28px;
        background: #f7f4ec;
        box-shadow: 0 18px 52px rgba(20,55,40,.08);
}

.park-map-plan__image-link {
        display: block;
        overflow: hidden;
        border-radius: 18px;
        background: #fff;
}

.park-map-plan__image {
        display: block;
        width: 100%;
        height: auto;
}

.park-map-plan__note {
        width: min(100%, 820px);
        margin: 13px auto 0;
        color: #7b847e;
        font-size: 13px;
        line-height: 1.45;
        text-align: center;
}


/* YANDEX LOCATION */

.park-map-location {
        padding: clamp(58px, 6vw, 84px) 0;
        background: #f7f4ec;
}

.park-map-location__header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
        align-items: end;
        margin-bottom: 26px;
}

.park-map-location__header p:last-child {
        max-width: 700px;
        margin: 14px 0 0;
        color: #66736b;
        font-size: 16px;
        line-height: 1.55;
}

.park-map-location__actions {
        display: flex;
        gap: 10px;
        align-items: center;
}

.park-map-page .location-map {
        position: relative;
        height: 390px;
        overflow: hidden;
        border-radius: 24px;
        background: #e9eee9;
}

.park-map-page .location-map__canvas {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
}

.park-map-page .location-map__fallback {
        display: grid;
        place-items: center;
        height: 100%;
        margin: 0;
        padding: 24px;
        color: #66736b;
        text-align: center;
}

.park-map-page .location-map:not(.is-map-ready)::before {
        content: "Загружаем карту…";
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #66736b;
        font-size: 14px;
}

.park-map-page .location-map.is-map-ready::before {
        display: none;
}

.park-map-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 720px) {

        .park-map-intro {
                padding: 20px 0 40px;
        }

        .park-map-back {
                margin-bottom: 16px;
        }

        .park-map-heading h1 {
                font-size: clamp(40px, 12vw, 52px);
        }

        .park-map-heading > p:last-child {
                margin-top: 13px;
                font-size: 15px;
        }

        .park-map-plan,
        .park-map-location {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .park-map-plan__header {
                display: block;
                margin-bottom: 18px;
        }

        .park-map-plan__header h2,
        .park-map-location__header h2 {
                font-size: clamp(32px, 9vw, 40px);
        }

        .park-map-plan__open {
                display: inline-block;
                margin-top: 10px;
                font-size: 13px;
        }

        .park-map-plan__frame {
                padding: 8px;
                border-radius: 20px;
        }

        .park-map-plan__image-link {
                border-radius: 14px;
        }

        .park-map-plan__note {
                margin-top: 10px;
                font-size: 12px;
        }

        .park-map-location__header {
                grid-template-columns: 1fr;
                gap: 18px;
        }

        .park-map-location__header p:last-child {
                font-size: 14px;
        }

        .park-map-location__actions {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 8px;
        }

        .park-map-location__actions .button {
                min-width: 0;
                width: 100%;
                padding-left: 12px;
                padding-right: 12px;
                text-align: center;
        }

        .park-map-page .location-map {
                height: 310px;
                border-radius: 18px;
        }
}

@media (max-width: 390px) {

        .park-map-location__actions {
                grid-template-columns: 1fr;
        }
}

/* =========================================================
   END 0.4.49 — PARK MAP PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.50 — PARK MAP VIEWER
   ========================================================= */

.park-map-plan__image-button {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 18px;
        overflow: hidden;
        background: transparent;
        cursor: zoom-in;
}

.park-map-plan__image-button:focus-visible {
        outline: 3px solid #e89a11;
        outline-offset: 4px;
}


/* LIGHTBOX */

.park-map-viewer[hidden] {
        display: none !important;
}

.park-map-viewer {
        position: fixed;
        inset: 0;
        z-index: 100000;
        display: grid;
        place-items: center;
        padding: 24px;
}

.park-map-viewer__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(8, 22, 15, .82);
        backdrop-filter: blur(5px);
}

.park-map-viewer__dialog {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        width: min(94vw, 1180px);
        height: min(92vh, 960px);
        overflow: hidden;
        border-radius: 22px;
        background: #f7f4ec;
        box-shadow: 0 30px 100px rgba(0,0,0,.38);
}

.park-map-viewer__toolbar {
        flex: 0 0 auto;
        display: flex;
        justify-content: space-between;
        gap: 20px;
        align-items: center;
        min-height: 62px;
        padding: 10px 14px 10px 20px;
        border-bottom: 1px solid rgba(20,74,49,.10);
        background: #fff;
}

.park-map-viewer__toolbar > strong {
        color: #153f2d;
        font-size: 16px;
}

.park-map-viewer__controls {
        display: flex;
        align-items: center;
        gap: 7px;
}

.park-map-viewer__controls button {
        display: grid;
        place-items: center;
        min-width: 38px;
        height: 38px;
        padding: 0 11px;
        border: 1px solid rgba(20,74,49,.14);
        border-radius: 11px;
        background: #f7f4ec;
        color: #153f2d;
        font: inherit;
        font-weight: 800;
        cursor: pointer;
}

.park-map-viewer__controls button:hover {
        background: #eef2e9;
}

.park-map-viewer__controls > span {
        min-width: 52px;
        color: #617067;
        font-size: 13px;
        font-weight: 700;
        text-align: center;
}

.park-map-viewer__reset {
        font-size: 12px !important;
}

.park-map-viewer__close {
        margin-left: 5px;
        color: #fff !important;
        background: #153f2d !important;
        font-size: 22px !important;
        line-height: 1;
}

.park-map-viewer__stage {
        position: relative;
        flex: 1 1 auto;
        min-height: 0;
        overflow: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: #e8ece5;
}

.park-map-viewer__image {
        display: block;
        width: 100%;
        max-width: none;
        height: auto;
        margin: 0 auto;
        user-select: none;
        -webkit-user-drag: none;
        transition: width .16s ease;
}

body.park-map-viewer-open {
        overflow: hidden;
}


@media (max-width: 720px) {

        .park-map-viewer {
                padding: 8px;
        }

        .park-map-viewer__dialog {
                width: 100%;
                height: calc(100dvh - 16px);
                border-radius: 16px;
        }

        .park-map-viewer__toolbar {
                min-height: 54px;
                padding: 8px 9px 8px 13px;
        }

        .park-map-viewer__toolbar > strong {
                font-size: 14px;
        }

        .park-map-viewer__controls {
                gap: 4px;
        }

        .park-map-viewer__controls button {
                min-width: 34px;
                height: 34px;
                padding: 0 8px;
                border-radius: 9px;
        }

        .park-map-viewer__controls > span {
                min-width: 42px;
                font-size: 11px;
        }

        .park-map-viewer__reset {
                display: none !important;
        }
}

/* =========================================================
   END 0.4.50 — PARK MAP VIEWER
   ========================================================= */

/* =========================================================
   BEGIN 0.4.51 — FEEDINGS PAGE
   ========================================================= */

.feedings-page {
        overflow: hidden;
        background: #fff;
}

.feedings-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.feedings-eyebrow--light {
        color: #efa11b;
}


/* INTRO */

.feedings-intro {
        padding: 34px 0 58px;
        background: #f7f4ec;
}

.feedings-back {
        display: inline-flex;
        margin-bottom: 22px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.feedings-intro__grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
        gap: clamp(34px, 6vw, 80px);
        align-items: center;
}

.feedings-intro h1 {
        max-width: 760px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(46px, 5.4vw, 74px);
        line-height: .98;
        letter-spacing: -.045em;
}

.feedings-intro__lead {
        max-width: 660px;
        margin: 20px 0 0;
        color: #66736b;
        font-size: 18px;
        line-height: 1.55;
}

.feedings-intro__media {
        overflow: hidden;
        aspect-ratio: 4 / 3;
        border-radius: 26px;
        background: #e9eee9;
        box-shadow: 0 18px 48px rgba(20,55,40,.10);
}

.feedings-intro__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}


/* ABOUT */

.feedings-about {
        padding: clamp(64px, 7vw, 96px) 0;
}

.feedings-about__grid {
        display: grid;
        grid-template-columns: .75fr 1.25fr;
        gap: clamp(40px, 7vw, 100px);
}

.feedings-about h2,
.feedings-show h2,
.feedings-schedule h2,
.feedings-heading h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 56px);
        line-height: 1.04;
        letter-spacing: -.035em;
}

.feedings-about__copy {
        max-width: 760px;
}

.feedings-about__copy p {
        margin: 0;
        color: #5f6c64;
        font-size: 17px;
        line-height: 1.65;
}

.feedings-about__copy p + p {
        margin-top: 18px;
}


/* SHOW */

.feedings-show {
        padding: clamp(58px, 6vw, 86px) 0;
        background: #153f2d;
        color: #fff;
}

.feedings-show__grid {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
        gap: clamp(36px, 6vw, 80px);
        align-items: center;
}

.feedings-show h2 {
        color: #fff;
}

.feedings-show__copy > p:not(.feedings-eyebrow) {
        max-width: 750px;
        margin: 18px 0 0;
        color: rgba(255,255,255,.76);
        font-size: 16px;
        line-height: 1.6;
}

.feedings-warning {
        display: grid;
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 17px;
        padding: 22px;
        border: 1px solid rgba(239,161,27,.24);
        border-radius: 20px;
        background: rgba(239,161,27,.10);
}

.feedings-warning__icon {
        display: grid;
        place-items: center;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background: #efa11b;
        color: #153f2d;
        font-size: 23px;
        font-weight: 900;
}

.feedings-warning strong {
        color: #fff;
        font-size: 17px;
}

.feedings-warning p {
        margin: 7px 0 0;
        color: rgba(255,255,255,.72);
        font-size: 14px;
        line-height: 1.5;
}


/* SCHEDULE */

.feedings-schedule {
        padding: clamp(58px, 6vw, 84px) 0;
        background: #f7f4ec;
}

.feedings-schedule__card {
        overflow: hidden;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 26px;
        background: #fff;
        box-shadow: 0 16px 48px rgba(20,55,40,.07);
}

.feedings-schedule__head {
        display: flex;
        justify-content: space-between;
        gap: 30px;
        align-items: center;
        padding: 30px 34px;
}

.feedings-schedule__head h2 {
        font-size: clamp(29px, 3.6vw, 45px);
}

.feedings-schedule__time {
        flex: 0 0 auto;
        color: #168142;
        font-size: clamp(32px, 4vw, 52px);
        font-weight: 900;
        line-height: 1;
        letter-spacing: -.035em;
}

.feedings-schedule__season {
        margin: 0;
        padding: 14px 34px;
        border-top: 1px solid rgba(20,74,49,.08);
        border-bottom: 1px solid rgba(20,74,49,.08);
        background: #fff5dc;
        color: #675e47;
        font-size: 14px;
        font-weight: 700;
}

.feedings-route {
        padding: 27px 34px 31px;
}

.feedings-route__start span,
.feedings-route__start strong {
        display: block;
}

.feedings-route__start span {
        color: #78837c;
        font-size: 12px;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
}

.feedings-route__start strong {
        margin-top: 5px;
        color: #153f2d;
        font-size: 21px;
}

.feedings-route__line {
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
        align-items: center;
        margin-top: 22px;
}

.feedings-route__line span {
        padding: 9px 12px;
        border-radius: 999px;
        background: #eef3e9;
        color: #204a35;
        font-size: 13px;
        font-weight: 800;
}

.feedings-route__line i {
        color: #d88d0c;
        font-style: normal;
        font-weight: 900;
}

.feedings-route > p {
        margin: 17px 0 0;
        color: #69756d;
        font-size: 14px;
        line-height: 1.5;
}


/* GALLERY */

.feedings-gallery {
        padding: clamp(62px, 7vw, 94px) 0;
}

.feedings-heading {
        margin-bottom: 27px;
}

.feedings-gallery__grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
}

.feedings-gallery__item {
        overflow: hidden;
        aspect-ratio: 1 / 1;
        border-radius: 18px;
        background: #e9eee9;
}

.feedings-gallery__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .35s ease;
}

.feedings-gallery__item:hover .feedings-gallery__image {
        transform: scale(1.035);
}

.feedings-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .feedings-intro__grid {
                grid-template-columns: 1fr 340px;
        }

        .feedings-about__grid,
        .feedings-show__grid {
                grid-template-columns: 1fr;
        }

        .feedings-gallery__grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }
}


@media (max-width: 720px) {

        .feedings-intro {
                padding: 20px 0 42px;
        }

        .feedings-back {
                margin-bottom: 16px;
        }

        .feedings-intro__grid {
                grid-template-columns: 1fr;
                gap: 24px;
        }

        .feedings-intro h1 {
                font-size: clamp(38px, 10vw, 47px);
        }

        .feedings-intro__lead {
                margin-top: 14px;
                font-size: 15px;
        }

        .feedings-intro__media {
                aspect-ratio: 16 / 10;
                border-radius: 20px;
        }

        .feedings-about,
        .feedings-show,
        .feedings-schedule,
        .feedings-gallery {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .feedings-about__grid {
                gap: 22px;
        }

        .feedings-about h2,
        .feedings-show h2,
        .feedings-schedule h2,
        .feedings-heading h2 {
                font-size: clamp(32px, 9vw, 40px);
        }

        .feedings-about__copy p {
                font-size: 15px;
                line-height: 1.55;
        }

        .feedings-show__copy > p:not(.feedings-eyebrow) {
                font-size: 14px;
        }

        .feedings-warning {
                grid-template-columns: 44px minmax(0, 1fr);
                gap: 13px;
                padding: 17px;
                border-radius: 16px;
        }

        .feedings-warning__icon {
                width: 40px;
                height: 40px;
        }

        .feedings-schedule__head {
                display: block;
                padding: 22px 20px;
        }

        .feedings-schedule__head h2 {
                font-size: 25px;
        }

        .feedings-schedule__time {
                margin-top: 14px;
                font-size: 36px;
        }

        .feedings-schedule__season {
                padding: 12px 20px;
                font-size: 12px;
        }

        .feedings-route {
                padding: 21px 20px 23px;
        }

        .feedings-route__start strong {
                font-size: 18px;
        }

        .feedings-route__line {
                margin-top: 17px;
        }

        .feedings-route__line span {
                padding: 8px 10px;
                font-size: 11.5px;
        }

        .feedings-gallery__grid {
                gap: 7px;
        }

        .feedings-gallery__item {
                border-radius: 14px;
        }
}

/* =========================================================
   END 0.4.51 — FEEDINGS PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.53 — EXCURSIONS PAGE
   ========================================================= */

.excursions-page {
        overflow: hidden;
        background: #fff;
}

.excursions-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.excursions-eyebrow--light {
        color: #efa11b;
}


/* INTRO */

.excursions-intro {
        padding: 34px 0 60px;
        background: #f7f4ec;
}

.excursions-back {
        display: inline-flex;
        margin-bottom: 22px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.excursions-intro__grid {
        display: grid;
        grid-template-columns:
                minmax(0, 1fr)
                minmax(330px, 420px);
        gap: clamp(34px, 6vw, 82px);
        align-items: center;
}

.excursions-intro h1 {
        max-width: 760px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(47px, 5.6vw, 76px);
        line-height: .98;
        letter-spacing: -.045em;
}

.excursions-intro__lead {
        max-width: 660px;
        margin: 20px 0 26px;
        color: #66736b;
        font-size: 18px;
        line-height: 1.55;
}

.excursions-intro__art {
        overflow: hidden;
        aspect-ratio: 1 / 1;
        border-radius: 26px;
        background: #eee8da;
        box-shadow: 0 18px 48px rgba(20,55,40,.10);
}

.excursions-intro__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}


/* ABOUT */

.excursions-about {
        padding: clamp(64px, 7vw, 96px) 0;
}

.excursions-about__grid {
        display: grid;
        grid-template-columns: .82fr 1.18fr;
        gap: clamp(42px, 7vw, 100px);
}

.excursions-about h2,
.excursions-heading h2,
.excursions-keeper-about h2,
.excursions-booking h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 56px);
        line-height: 1.04;
        letter-spacing: -.035em;
}

.excursions-about__copy {
        max-width: 760px;
}

.excursions-about__copy p {
        margin: 0;
        color: #5f6c64;
        font-size: 17px;
        line-height: 1.65;
}

.excursions-about__copy p + p {
        margin-top: 17px;
}


/* PROGRAMS */

.excursions-programs {
        padding: clamp(60px, 6vw, 88px) 0;
        background: #f7f4ec;
}

.excursions-heading {
        margin-bottom: 30px;
}

.excursions-programs__grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
}

.excursion-card {
        display: flex;
        flex-direction: column;
        min-width: 0;
        padding: 30px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 24px;
        background: #fff;
        box-shadow: 0 12px 38px rgba(20,55,40,.055);
}

.excursion-card--keeper {
        background:
                radial-gradient(
                        circle at 100% 0%,
                        rgba(239,161,27,.12),
                        transparent 32%
                ),
                #fff;
}

.excursion-card__head {
        display: flex;
        justify-content: space-between;
        gap: 24px;
        align-items: flex-start;
}

.excursion-card__label {
        display: block;
        margin-bottom: 8px;
        color: #d88d0c;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
}

.excursion-card h3 {
        max-width: 440px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(25px, 2.5vw, 34px);
        line-height: 1.08;
        letter-spacing: -.025em;
}

.excursion-card__price {
        flex: 0 0 auto;
        color: #168142;
        font-size: clamp(27px, 2.7vw, 38px);
        line-height: 1;
        letter-spacing: -.035em;
}

.excursion-card__price-note,
.excursion-card__intro {
        margin: 17px 0 0;
        color: #69756d;
        font-size: 14px;
        line-height: 1.5;
}

.excursion-card__facts {
        display: grid;
        gap: 0;
        margin: 24px 0 0;
        padding: 0;
        list-style: none;
        border-top: 1px solid rgba(20,74,49,.09);
}

.excursion-card__facts li {
        padding: 14px 0;
        border-bottom: 1px solid rgba(20,74,49,.09);
        color: #68746c;
        font-size: 13px;
        line-height: 1.4;
}

.excursion-card__facts strong {
        display: block;
        margin-bottom: 3px;
        color: #173e2d;
        font-size: 15px;
}

.excursion-card__note {
        margin: 18px 0 0;
        color: #69756d;
        font-size: 13px;
        line-height: 1.5;
}

.excursion-card .button {
        align-self: flex-start;
        margin-top: auto;
        padding-top: 15px;
}


/* KEEPER INFO */

.excursions-keeper-about {
        padding: clamp(62px, 6vw, 90px) 0;
        background: #153f2d;
        color: #fff;
}

.excursions-keeper-about__grid {
        display: grid;
        grid-template-columns: .8fr 1.2fr;
        gap: clamp(42px, 7vw, 100px);
}

.excursions-keeper-about h2 {
        color: #fff;
}

.excursions-keeper-about__grid > div:last-child {
        max-width: 760px;
}

.excursions-keeper-about__grid > div:last-child p {
        margin: 0;
        color: rgba(255,255,255,.75);
        font-size: 16px;
        line-height: 1.6;
}

.excursions-keeper-about__grid > div:last-child p + p {
        margin-top: 17px;
}


/* BOOKING */

.excursions-booking {
        padding: clamp(58px, 6vw, 86px) 0;
        background: #f7f4ec;
}

.excursions-booking__card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 50px;
        align-items: center;
        padding: 34px 38px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 24px;
        background: #fff;
        box-shadow: 0 12px 38px rgba(20,55,40,.05);
}

.excursions-booking__card > div:first-child > p:last-child {
        max-width: 650px;
        margin: 13px 0 0;
        color: #69756d;
        font-size: 15px;
        line-height: 1.5;
}

.excursions-booking__contact {
        min-width: 290px;
        text-align: right;
}

.excursions-booking__contact a {
        display: block;
        color: #168142;
        font-size: clamp(27px, 3vw, 38px);
        font-weight: 900;
        line-height: 1;
        text-decoration: none;
        letter-spacing: -.035em;
}

.excursions-booking__contact span {
        display: block;
        max-width: 300px;
        margin-top: 10px;
        color: #747f78;
        font-size: 12px;
        line-height: 1.45;
}

.excursions-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .excursions-intro__grid {
                grid-template-columns: 1fr 330px;
        }

        .excursions-about__grid,
        .excursions-keeper-about__grid {
                grid-template-columns: 1fr;
                gap: 25px;
        }
}


@media (max-width: 720px) {

        .excursions-intro {
                padding: 20px 0 42px;
        }

        .excursions-back {
                margin-bottom: 16px;
        }

        .excursions-intro__grid {
                grid-template-columns: 1fr;
                gap: 24px;
        }

        .excursions-intro h1 {
                font-size: clamp(38px, 10vw, 47px);
        }

        .excursions-intro__lead {
                margin-top: 14px;
                margin-bottom: 19px;
                font-size: 15px;
        }

        .excursions-intro__art {
                max-width: 340px;
                border-radius: 20px;
        }

        .excursions-about,
        .excursions-programs,
        .excursions-keeper-about,
        .excursions-booking {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .excursions-about h2,
        .excursions-heading h2,
        .excursions-keeper-about h2,
        .excursions-booking h2 {
                font-size: clamp(32px, 9vw, 40px);
        }

        .excursions-about__copy p {
                font-size: 15px;
                line-height: 1.55;
        }

        .excursions-programs__grid {
                grid-template-columns: 1fr;
                gap: 12px;
        }

        .excursion-card {
                padding: 20px;
                border-radius: 18px;
        }

        .excursion-card__head {
                gap: 15px;
        }

        .excursion-card h3 {
                font-size: 24px;
        }

        .excursion-card__price {
                font-size: 27px;
        }

        .excursion-card__facts {
                margin-top: 18px;
        }

        .excursion-card__facts li {
                padding: 11px 0;
        }

        .excursions-keeper-about__grid > div:last-child p {
                font-size: 14px;
        }

        .excursions-booking__card {
                grid-template-columns: 1fr;
                gap: 22px;
                padding: 22px;
                border-radius: 18px;
        }

        .excursions-booking__contact {
                min-width: 0;
                text-align: left;
        }

        .excursions-booking__contact span {
                max-width: none;
        }
}

/* =========================================================
   END 0.4.53 — EXCURSIONS PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.55 — CAFE PAGE
   ========================================================= */

.cafe-page {
        overflow: hidden;
        background: #fff;
}

.cafe-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.cafe-eyebrow--light {
        color: #efa11b;
}


/* INTRO */

.cafe-intro {
        padding: 34px 0 60px;
        background: #f7f4ec;
}

.cafe-back {
        display: inline-flex;
        margin-bottom: 22px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.cafe-intro__grid {
        display: grid;
        grid-template-columns:
                minmax(0, 1fr)
                minmax(330px, 420px);
        gap: clamp(34px, 6vw, 82px);
        align-items: center;
}

.cafe-intro h1 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(52px, 6vw, 82px);
        line-height: .96;
        letter-spacing: -.045em;
}

.cafe-intro__lead {
        max-width: 620px;
        margin: 20px 0 0;
        color: #153f2d;
        font-size: 23px;
        font-weight: 700;
        line-height: 1.35;
}

.cafe-intro__text {
        max-width: 650px;
        margin: 14px 0 0;
        color: #66736b;
        font-size: 17px;
        line-height: 1.55;
}

.cafe-intro__art {
        overflow: hidden;
        aspect-ratio: 1 / 1;
        border-radius: 26px;
        background: #eee8da;
        box-shadow: 0 18px 48px rgba(20,55,40,.10);
}

.cafe-intro__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}


/* MENU */

.cafe-menu {
        padding: clamp(62px, 7vw, 94px) 0;
}

.cafe-heading {
        margin-bottom: 28px;
}

.cafe-heading h2,
.cafe-groups h2,
.cafe-location h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 56px);
        line-height: 1.04;
        letter-spacing: -.035em;
}

.cafe-menu__grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 13px;
}

.cafe-menu-card {
        min-width: 0;
        padding: 24px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 20px;
        background: #f7f4ec;
}

.cafe-menu-card--accent {
        background: #fff3d6;
}

.cafe-menu-card__icon {
        display: grid;
        place-items: center;
        width: 48px;
        height: 48px;
        border-radius: 15px;
        background: #fff;
        color: #e89a11;
        font-size: 23px;
}

.cafe-menu-card h3 {
        margin: 18px 0 0;
        color: #153f2d;
        font-size: 19px;
        line-height: 1.2;
}

.cafe-menu-card p {
        margin: 8px 0 0;
        color: #68746c;
        font-size: 13px;
        line-height: 1.5;
}


/* GROUP LUNCH */

.cafe-groups {
        padding: clamp(58px, 6vw, 84px) 0;
        background: #153f2d;
        color: #fff;
}

.cafe-groups__card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 50px;
        align-items: center;
}

.cafe-groups h2 {
        color: #fff;
}

.cafe-groups__card > div:first-child > p:last-child {
        max-width: 650px;
        margin: 14px 0 0;
        color: rgba(255,255,255,.72);
        font-size: 16px;
        line-height: 1.55;
}

.cafe-groups__contact {
        min-width: 300px;
        text-align: right;
}

.cafe-groups__contact a {
        display: block;
        color: #efa11b;
        font-size: clamp(28px, 3vw, 40px);
        font-weight: 900;
        line-height: 1;
        text-decoration: none;
        letter-spacing: -.035em;
}

.cafe-groups__contact span {
        display: block;
        max-width: 300px;
        margin-top: 10px;
        color: rgba(255,255,255,.62);
        font-size: 12px;
        line-height: 1.45;
}


/* LOCATION */

.cafe-location {
        padding: clamp(58px, 6vw, 84px) 0;
        background: #f7f4ec;
}

.cafe-location__header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
        align-items: end;
        margin-bottom: 26px;
}

.cafe-location__header p:last-child {
        max-width: 700px;
        margin: 14px 0 0;
        color: #66736b;
        font-size: 16px;
        line-height: 1.55;
}

.cafe-location__actions {
        display: flex;
        gap: 10px;
}

.cafe-page .location-map {
        position: relative;
        height: 380px;
        overflow: hidden;
        border-radius: 24px;
        background: #e9eee9;
}

.cafe-page .location-map__canvas {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
}

.cafe-page .location-map:not(.is-map-ready)::before {
        content: "Загружаем карту…";
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #66736b;
        font-size: 14px;
}

.cafe-page .location-map.is-map-ready::before {
        display: none;
}

.cafe-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .cafe-intro__grid {
                grid-template-columns: 1fr 330px;
        }

        .cafe-menu__grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }
}


@media (max-width: 720px) {

        .cafe-intro {
                padding: 20px 0 42px;
        }

        .cafe-back {
                margin-bottom: 16px;
        }

        .cafe-intro__grid {
                grid-template-columns: 1fr;
                gap: 24px;
        }

        .cafe-intro h1 {
                font-size: clamp(44px, 13vw, 58px);
        }

        .cafe-intro__lead {
                margin-top: 13px;
                font-size: 19px;
        }

        .cafe-intro__text {
                font-size: 15px;
        }

        .cafe-intro__art {
                max-width: 340px;
                border-radius: 20px;
        }

        .cafe-menu,
        .cafe-groups,
        .cafe-location {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .cafe-heading h2,
        .cafe-groups h2,
        .cafe-location h2 {
                font-size: clamp(32px, 9vw, 40px);
        }

        .cafe-menu__grid {
                gap: 8px;
        }

        .cafe-menu-card {
                padding: 17px;
                border-radius: 16px;
        }

        .cafe-menu-card__icon {
                width: 40px;
                height: 40px;
                border-radius: 13px;
                font-size: 19px;
        }

        .cafe-menu-card h3 {
                margin-top: 13px;
                font-size: 16px;
        }

        .cafe-menu-card p {
                font-size: 11.5px;
        }

        .cafe-groups__card {
                grid-template-columns: 1fr;
                gap: 23px;
        }

        .cafe-groups__contact {
                min-width: 0;
                text-align: left;
        }

        .cafe-groups__contact span {
                max-width: none;
        }

        .cafe-location__header {
                grid-template-columns: 1fr;
                gap: 18px;
        }

        .cafe-location__actions {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 8px;
        }

        .cafe-location__actions .button {
                min-width: 0;
                width: 100%;
                padding-left: 12px;
                padding-right: 12px;
                text-align: center;
        }

        .cafe-page .location-map {
                height: 310px;
                border-radius: 18px;
        }
}

@media (max-width: 390px) {

        .cafe-location__actions {
                grid-template-columns: 1fr;
        }
}

/* =========================================================
   END 0.4.55 — CAFE PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.56 — RULES PAGE
   ========================================================= */

.rules-page {
        overflow: hidden;
        background: #fff;
}

.rules-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.rules-eyebrow--light {
        color: #efa11b;
}


/* INTRO */

.rules-intro {
        padding: 34px 0 60px;
        background: #f7f4ec;
}

.rules-back {
        display: inline-flex;
        margin-bottom: 22px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.rules-intro__grid {
        display: grid;
        grid-template-columns:
                minmax(0, 1fr)
                minmax(330px, 420px);
        gap: clamp(34px, 6vw, 82px);
        align-items: center;
}

.rules-intro h1 {
        max-width: 760px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(47px, 5.6vw, 76px);
        line-height: .98;
        letter-spacing: -.045em;
}

.rules-intro__lead {
        max-width: 670px;
        margin: 20px 0 0;
        color: #66736b;
        font-size: 18px;
        line-height: 1.55;
}

.rules-intro__art {
        overflow: hidden;
        aspect-ratio: 1 / 1;
        border-radius: 26px;
        background: #eee8da;
        box-shadow: 0 18px 48px rgba(20,55,40,.10);
}

.rules-intro__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}


/* MAIN RULES */

.rules-main {
        padding: clamp(62px, 7vw, 94px) 0;
}

.rules-heading {
        max-width: 760px;
        margin-bottom: 30px;
}

.rules-heading h2,
.rules-children h2,
.rules-bridge h2,
.rules-final h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(34px, 4vw, 54px);
        line-height: 1.05;
        letter-spacing: -.035em;
}

.rules-list {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
}

.rule-item {
        min-width: 0;
        padding: 22px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 19px;
        background: #f7f4ec;
}

.rule-item > span {
        display: inline-flex;
        margin-bottom: 16px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 900;
        letter-spacing: .08em;
}

.rule-item p {
        margin: 0;
        color: #53635a;
        font-size: 14px;
        line-height: 1.55;
}


/* CHILDREN */

.rules-children {
        padding: clamp(60px, 6vw, 90px) 0;
        background: #153f2d;
        color: #fff;
}

.rules-children__grid {
        display: grid;
        grid-template-columns: .9fr 1.1fr;
        gap: clamp(42px, 7vw, 100px);
}

.rules-children h2 {
        color: #fff;
}

.rules-children__content {
        max-width: 760px;
}

.rules-children__content p {
        margin: 0;
        color: rgba(255,255,255,.74);
        font-size: 15px;
        line-height: 1.6;
}

.rules-children__content p + p {
        margin-top: 15px;
}

.rules-children__content strong {
        display: block;
        margin: 22px 0;
        padding: 17px 19px;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 14px;
        background: rgba(255,255,255,.07);
        color: #fff;
        font-size: 16px;
        line-height: 1.45;
}


/* BRIDGE */

.rules-bridge {
        padding: clamp(60px, 6vw, 88px) 0;
        background: #f7f4ec;
}

.rules-bridge__card {
        display: grid;
        grid-template-columns: 80px minmax(0, 1fr);
        gap: 26px;
        padding: clamp(26px, 4vw, 46px);
        border: 1px solid rgba(175,74,38,.14);
        border-radius: 24px;
        background: #fff;
        box-shadow: 0 12px 38px rgba(20,55,40,.05);
}

.rules-bridge__warning {
        display: grid;
        place-items: center;
        width: 66px;
        height: 66px;
        border-radius: 50%;
        background: #d88d0c;
        color: #fff;
        font-size: 35px;
        font-weight: 900;
}

.rules-bridge__lead {
        max-width: 760px;
        margin: 16px 0 0;
        color: #8a4e2c;
        font-size: 17px;
        font-weight: 700;
        line-height: 1.5;
}

.rules-bridge ul {
        display: grid;
        gap: 9px;
        margin: 23px 0 0;
        padding: 0;
        list-style: none;
}

.rules-bridge li {
        position: relative;
        padding-left: 24px;
        color: #59665f;
        font-size: 15px;
        line-height: 1.5;
}

.rules-bridge li::before {
        content: "—";
        position: absolute;
        left: 0;
        color: #d88d0c;
        font-weight: 900;
}


/* FINAL */

.rules-final {
        padding: clamp(58px, 6vw, 84px) 0;
}

.rules-final__card {
        max-width: 850px;
        margin: 0 auto;
        text-align: center;
}

.rules-final__card p {
        max-width: 690px;
        margin: 16px auto 24px;
        color: #66736b;
        font-size: 16px;
        line-height: 1.6;
}

.rules-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .rules-intro__grid {
                grid-template-columns: 1fr 330px;
        }

        .rules-list {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .rules-children__grid {
                grid-template-columns: 1fr;
                gap: 27px;
        }
}


@media (max-width: 720px) {

        .rules-intro {
                padding: 20px 0 42px;
        }

        .rules-back {
                margin-bottom: 16px;
        }

        .rules-intro__grid {
                grid-template-columns: 1fr;
                gap: 24px;
        }

        .rules-intro h1 {
                font-size: clamp(39px, 10.7vw, 50px);
        }

        .rules-intro__lead {
                margin-top: 14px;
                font-size: 15px;
        }

        .rules-intro__art {
                max-width: 340px;
                border-radius: 20px;
        }

        .rules-main,
        .rules-children,
        .rules-bridge,
        .rules-final {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .rules-heading h2,
        .rules-children h2,
        .rules-bridge h2,
        .rules-final h2 {
                font-size: clamp(31px, 8.5vw, 39px);
        }

        .rules-list {
                grid-template-columns: 1fr;
                gap: 8px;
        }

        .rule-item {
                display: grid;
                grid-template-columns: 35px minmax(0, 1fr);
                gap: 10px;
                padding: 16px;
                border-radius: 15px;
        }

        .rule-item > span {
                margin: 2px 0 0;
        }

        .rule-item p {
                font-size: 13px;
        }

        .rules-children__content p {
                font-size: 14px;
        }

        .rules-bridge__card {
                grid-template-columns: 1fr;
                gap: 17px;
                padding: 21px;
                border-radius: 18px;
        }

        .rules-bridge__warning {
                width: 52px;
                height: 52px;
                font-size: 28px;
        }

        .rules-bridge__lead {
                font-size: 15px;
        }

        .rules-bridge li {
                font-size: 14px;
        }

        .rules-final__card {
                text-align: left;
        }

        .rules-final__card p {
                margin-left: 0;
                margin-right: 0;
        }
}

/* =========================================================
   END 0.4.56 — RULES PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.57 — CONTACTS PAGE
   ========================================================= */

.contacts-page {
        overflow: hidden;
        background: #fff;
}

.contacts-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.contacts-eyebrow--light {
        color: #efa11b;
}


/* INTRO */

.contacts-intro {
        padding: 58px 0 72px;
        background: #f7f4ec;
}

.contacts-intro h1 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(56px, 7vw, 92px);
        line-height: .95;
        letter-spacing: -.05em;
}

.contacts-intro__lead {
        max-width: 650px;
        margin: 20px 0 0;
        color: #66736b;
        font-size: 18px;
        line-height: 1.55;
}

.contacts-cards {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 12px;
        margin-top: 40px;
}

.contacts-card {
        min-width: 0;
        padding: 22px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 19px;
        background: #fff;
}

.contacts-card__label {
        display: block;
        margin-bottom: 12px;
        color: #d88d0c;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
}

.contacts-card__value {
        display: block;
        color: #153f2d;
        font-size: clamp(19px, 1.8vw, 25px);
        font-weight: 850;
        line-height: 1.18;
        text-decoration: none;
        word-break: break-word;
}

.contacts-card__value--email {
        font-size: clamp(16px, 1.45vw, 21px);
}

.contacts-card__hint {
        display: block;
        margin-top: 9px;
        color: #78837c;
        font-size: 12px;
        line-height: 1.4;
}


/* INFO */

.contacts-info {
        padding: clamp(62px, 7vw, 94px) 0;
}

.contacts-info__grid {
        display: grid;
        grid-template-columns: .85fr 1.15fr;
        gap: clamp(42px, 7vw, 100px);
}

.contacts-info h2,
.contacts-route h2,
.contacts-map-section h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 56px);
        line-height: 1.04;
        letter-spacing: -.035em;
}

.contacts-info__copy {
        max-width: 760px;
}

.contacts-info__copy p {
        margin: 0;
        color: #5f6c64;
        font-size: 17px;
        line-height: 1.65;
}

.contacts-info__copy p + p {
        margin-top: 16px;
}


/* ROUTE */

.contacts-route {
        padding: clamp(62px, 7vw, 92px) 0;
        background: #153f2d;
        color: #fff;
}

.contacts-route__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
        align-items: end;
        margin-bottom: 35px;
}

.contacts-route h2 {
        max-width: 820px;
        color: #fff;
}

.contacts-route__address {
        margin: 14px 0 0;
        color: rgba(255,255,255,.70);
        font-size: 17px;
        line-height: 1.5;
}

.contacts-route__directions {
        display: grid;
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 18px;
        padding: 21px 0;
        border-top: 1px solid rgba(255,255,255,.12);
}

.contacts-route__directions:last-of-type {
        border-bottom: 1px solid rgba(255,255,255,.12);
}

.contacts-route__number {
        color: #efa11b;
        font-size: 12px;
        font-weight: 900;
        letter-spacing: .08em;
}

.contacts-route__directions h3 {
        margin: 0;
        color: #fff;
        font-size: 18px;
        line-height: 1.3;
}

.contacts-route__directions p {
        max-width: 780px;
        margin: 7px 0 0;
        color: rgba(255,255,255,.68);
        font-size: 14px;
        line-height: 1.55;
}

.contacts-route__notice {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 32px;
        margin-top: 25px;
        padding: 20px;
        border-radius: 15px;
        background: rgba(255,255,255,.07);
}

.contacts-route__notice > div {
        display: grid;
        gap: 7px;
        align-content: start;
}

.contacts-route__notice strong {
        display: block;
        color: #fff;
        font-size: 14px;
        line-height: 1.4;
}

.contacts-route__notice span {
        display: block;
        color: rgba(255,255,255,.68);
        font-size: 13px;
        line-height: 1.5;
}

/* MAP */

.contacts-map-section {
        padding: clamp(60px, 6vw, 88px) 0;
        background: #f7f4ec;
}

.contacts-map-section__header {
        margin-bottom: 25px;
}

.contacts-page .location-map {
        position: relative;
        height: 430px;
        overflow: hidden;
        border-radius: 24px;
        background: #e9eee9;
}

.contacts-page .location-map__canvas {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
}

.contacts-page .location-map:not(.is-map-ready)::before {
        content: "Загружаем карту…";
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #66736b;
        font-size: 14px;
}

.contacts-page .location-map.is-map-ready::before {
        display: none;
}


/* DETAILS */

.contacts-details-section {
        padding: 54px 0 78px;
}

.contacts-details {
        border: 1px solid rgba(20,74,49,.11);
        border-radius: 20px;
        background: #fff;
        overflow: hidden;
}

.contacts-details summary {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        align-items: center;
        padding: 22px 25px;
        cursor: pointer;
        list-style: none;
        color: #153f2d;
        font-size: 18px;
        font-weight: 800;
}

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

.contacts-details summary small {
        color: #348146;
        font-size: 12px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .06em;
}

.contacts-details[open] summary {
        border-bottom: 1px solid rgba(20,74,49,.10);
}

.contacts-details__body {
        padding: 8px 25px 25px;
}

.contacts-details dl {
        margin: 0;
}

.contacts-details dl > div {
        display: grid;
        grid-template-columns: 210px minmax(0, 1fr);
        gap: 20px;
        padding: 14px 0;
        border-bottom: 1px solid rgba(20,74,49,.08);
}

.contacts-details dl > div:last-child {
        border-bottom: 0;
}

.contacts-details dt {
        color: #7b857f;
        font-size: 13px;
}

.contacts-details dd {
        margin: 0;
        color: #263e31;
        font-size: 14px;
        font-weight: 650;
        line-height: 1.5;
        word-break: break-word;
}

.contacts-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .contacts-cards {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .contacts-info__grid {
                grid-template-columns: 1fr;
                gap: 26px;
        }
}


@media (max-width: 720px) {

        .contacts-intro {
                padding: 36px 0 48px;
        }

        .contacts-intro h1 {
                font-size: clamp(48px, 15vw, 66px);
        }

        .contacts-intro__lead {
                margin-top: 14px;
                font-size: 15px;
        }

        .contacts-cards {
                grid-template-columns: 1fr 1fr;
                gap: 8px;
                margin-top: 28px;
        }

        .contacts-card {
                padding: 16px;
                border-radius: 15px;
        }

        .contacts-card__value {
                font-size: 17px;
        }

        .contacts-card__value--email {
                font-size: 13px;
        }

        .contacts-card__hint {
                font-size: 10.5px;
        }

        .contacts-info,
        .contacts-route,
        .contacts-map-section {
                padding-top: 46px;
                padding-bottom: 50px;
        }

        .contacts-info h2,
        .contacts-route h2,
        .contacts-map-section h2 {
                font-size: clamp(32px, 9vw, 40px);
        }

        .contacts-info__copy p {
                font-size: 15px;
                line-height: 1.55;
        }

        .contacts-route__head {
                grid-template-columns: 1fr;
                gap: 22px;
        }

        .contacts-route__head .button {
                justify-self: start;
        }

        .contacts-route__address {
                font-size: 15px;
        }

        .contacts-route__directions {
                grid-template-columns: 35px minmax(0, 1fr);
                gap: 10px;
                padding: 17px 0;
        }

        .contacts-route__directions h3 {
                font-size: 16px;
        }

        .contacts-route__directions p {
                font-size: 13px;
        }

        .contacts-route__notice {
                grid-template-columns: 1fr;
                gap: 20px;
                padding: 16px;
        }

        .contacts-page .location-map {
                height: 320px;
                border-radius: 18px;
        }

        .contacts-details-section {
                padding: 38px 0 52px;
        }

        .contacts-details summary {
                padding: 18px;
                font-size: 16px;
        }

        .contacts-details__body {
                padding: 4px 18px 18px;
        }

        .contacts-details dl > div {
                grid-template-columns: 1fr;
                gap: 5px;
                padding: 12px 0;
        }

        .contacts-details dt {
                font-size: 11px;
        }

        .contacts-details dd {
                font-size: 13px;
        }
}

/* =========================================================
   END 0.4.57 — CONTACTS PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.59 — ABOUT PAGE
   ========================================================= */

.about-page {
        overflow: hidden;
        background: #fff;
}

.about-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}

.about-eyebrow--light {
        color: #efa11b;
}


/* INTRO */

.about-intro {
        padding: 54px 0 64px;
        background: #f7f4ec;
}

.about-intro__grid {
        display: grid;
        grid-template-columns:
                minmax(0, 1fr)
                minmax(370px, 500px);
        gap: clamp(38px, 6vw, 88px);
        align-items: center;
}

.about-intro h1 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(58px, 7vw, 94px);
        line-height: .94;
        letter-spacing: -.05em;
}

.about-intro__lead {
        max-width: 680px;
        margin: 21px 0 0;
        color: #153f2d;
        font-size: clamp(21px, 2vw, 28px);
        font-weight: 700;
        line-height: 1.35;
}

.about-intro__text {
        max-width: 650px;
        margin: 17px 0 0;
        color: #66736b;
        font-size: 16px;
        line-height: 1.6;
}

.about-intro__media {
        overflow: hidden;
        aspect-ratio: 4 / 3;
        border-radius: 26px;
        background: #e8e6dc;
        box-shadow: 0 18px 48px rgba(20,55,40,.10);
}

.about-intro__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}


/* HISTORY */

.about-history {
        padding: clamp(66px, 7vw, 100px) 0;
}

.about-history__grid {
        display: grid;
        grid-template-columns: .8fr 1.2fr;
        gap: clamp(45px, 7vw, 105px);
}

.about-history h2,
.about-rescue h2,
.about-support h2,
.about-video h2,
.about-visit h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(36px, 4.2vw, 57px);
        line-height: 1.03;
        letter-spacing: -.038em;
}

.about-history__copy {
        max-width: 760px;
}

.about-history__copy p {
        margin: 0;
        color: #5e6b63;
        font-size: 17px;
        line-height: 1.65;
}

.about-history__copy p + p {
        margin-top: 17px;
}


/* TIMELINE */

.about-timeline {
        padding: 0 0 clamp(68px, 7vw, 100px);
}

.about-timeline__grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
}

.about-year {
        min-width: 0;
        padding: 26px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 21px;
        background: #f7f4ec;
}

.about-year > strong {
        display: block;
        color: #d88d0c;
        font-size: clamp(35px, 4vw, 50px);
        line-height: 1;
        letter-spacing: -.045em;
}

.about-year h3 {
        margin: 21px 0 0;
        color: #153f2d;
        font-size: 20px;
        line-height: 1.25;
}

.about-year p {
        margin: 9px 0 0;
        color: #68746c;
        font-size: 13px;
        line-height: 1.55;
}


/* RESCUE */

.about-rescue {
        padding: clamp(64px, 7vw, 96px) 0;
        background: #f7f4ec;
}

.about-rescue__grid {
        display: grid;
        grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
        gap: clamp(38px, 6vw, 82px);
        align-items: center;
}

.about-rescue__photo {
        overflow: hidden;
        aspect-ratio: 4 / 3;
        border-radius: 25px;
        background: #e5e3da;
}

.about-rescue__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}

.about-rescue__copy p:not(.about-eyebrow) {
        margin: 15px 0 0;
        color: #606d65;
        font-size: 15px;
        line-height: 1.6;
}

.about-rescue__copy .button {
        margin-top: 24px;
}


/* SUPPORT */

.about-support {
        padding: clamp(62px, 7vw, 94px) 0;
        background: #153f2d;
        color: #fff;
}

.about-support__grid {
        display: grid;
        grid-template-columns: .85fr 1.15fr;
        gap: clamp(42px, 7vw, 100px);
}

.about-support h2 {
        color: #fff;
}

.about-support__copy {
        max-width: 760px;
}

.about-support__copy p {
        margin: 0;
        color: rgba(255,255,255,.72);
        font-size: 16px;
        line-height: 1.65;
}

.about-support__copy p + p {
        margin-top: 17px;
}


/* VIDEO */

.about-video {
        padding: clamp(62px, 7vw, 94px) 0;
}

.about-video__header {
        margin-bottom: 27px;
}

.about-video__frame {
        position: relative;
        overflow: hidden;
        aspect-ratio: 16 / 9;
        border-radius: 24px;
        background: #111;
        box-shadow: 0 18px 50px rgba(20,55,40,.10);
}

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


/* VISIT */

.about-visit {
        padding: 0 0 clamp(66px, 7vw, 96px);
}

.about-visit__card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 40px;
        align-items: center;
        padding: 34px 38px;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 24px;
        background: #f7f4ec;
}

.about-visit__card p:last-child {
        max-width: 630px;
        margin: 13px 0 0;
        color: #68746c;
        font-size: 15px;
        line-height: 1.55;
}

.about-visit__actions {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        justify-content: flex-end;
}

.about-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .about-intro__grid {
                grid-template-columns: 1fr 360px;
        }

        .about-history__grid,
        .about-support__grid {
                grid-template-columns: 1fr;
                gap: 27px;
        }

        .about-rescue__grid {
                grid-template-columns: 1fr 1fr;
                gap: 32px;
        }

        .about-visit__card {
                grid-template-columns: 1fr;
        }

        .about-visit__actions {
                justify-content: flex-start;
        }
}


@media (max-width: 720px) {

        .about-intro {
                padding: 36px 0 46px;
        }

        .about-intro__grid {
                grid-template-columns: 1fr;
                gap: 25px;
        }

        .about-intro h1 {
                font-size: clamp(50px, 15vw, 67px);
        }

        .about-intro__lead {
                margin-top: 14px;
                font-size: 20px;
        }

        .about-intro__text {
                margin-top: 12px;
                font-size: 14px;
        }

        .about-intro__media {
                max-width: 390px;
                border-radius: 20px;
        }

        .about-history,
        .about-rescue,
        .about-support,
        .about-video {
                padding-top: 47px;
                padding-bottom: 52px;
        }

        .about-history h2,
        .about-rescue h2,
        .about-support h2,
        .about-video h2,
        .about-visit h2 {
                font-size: clamp(31px, 8.8vw, 40px);
        }

        .about-history__copy p {
                font-size: 15px;
                line-height: 1.57;
        }

        .about-timeline {
                padding-bottom: 52px;
        }

        .about-timeline__grid {
                grid-template-columns: 1fr;
                gap: 8px;
        }

        .about-year {
                padding: 19px;
                border-radius: 17px;
        }

        .about-year > strong {
                font-size: 36px;
        }

        .about-year h3 {
                margin-top: 14px;
                font-size: 18px;
        }

        .about-rescue__grid {
                grid-template-columns: 1fr;
                gap: 27px;
        }

        .about-rescue__photo {
                max-width: 430px;
                border-radius: 19px;
        }

        .about-rescue__copy p:not(.about-eyebrow) {
                font-size: 14px;
        }

        .about-support__copy p {
                font-size: 14px;
                line-height: 1.57;
        }

        .about-video__frame {
                border-radius: 18px;
        }

        .about-visit {
                padding-bottom: 52px;
        }

        .about-visit__card {
                gap: 24px;
                padding: 22px;
                border-radius: 18px;
        }

        .about-visit__actions {
                display: grid;
                grid-template-columns: 1fr;
                width: 100%;
        }

        .about-visit__actions .button {
                width: 100%;
                text-align: center;
        }
}

/* =========================================================
   END 0.4.59 — ABOUT PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.60 — ANIMALS ROOT PAGE
   ========================================================= */

.animals-root-page {
        overflow: hidden;
        background: #fff;
}

.animals-root-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}


/* INTRO */

.animals-root-intro {
        padding: 58px 0 54px;
        background: #f7f4ec;
}

.animals-root-intro h1 {
        max-width: 850px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(55px, 7vw, 92px);
        line-height: .95;
        letter-spacing: -.05em;
}

.animals-root-intro__lead {
        max-width: 720px;
        margin: 20px 0 0;
        color: #66736b;
        font-size: 18px;
        line-height: 1.58;
}


/* CATALOG */

.animals-root-catalog {
        padding: clamp(54px, 6vw, 82px) 0;
}

.animals-root-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 13px;
}

.animals-root-card {
        display: block;
        min-width: 0;
        overflow: hidden;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 22px;
        background: #fff;
        box-shadow: 0 12px 36px rgba(20,55,40,.055);
        color: inherit;
        text-decoration: none;
        transition:
                transform .2s ease,
                box-shadow .2s ease;
}

.animals-root-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 17px 44px rgba(20,55,40,.10);
}

.animals-root-card__media {
        overflow: hidden;
        aspect-ratio: 4 / 5;
        background: #e8e5dc;
}

.animals-root-card__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .35s ease;
}

.animals-root-card:hover .animals-root-card__image {
        transform: scale(1.025);
}

.animals-root-card__body {
        padding: 19px 19px 20px;
}

.animals-root-card h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(21px, 2vw, 28px);
        line-height: 1.1;
        letter-spacing: -.025em;
}

.animals-root-card__body span {
        display: block;
        margin-top: 11px;
        color: #348146;
        font-size: 12px;
        font-weight: 800;
}


/* NOTE */

.animals-root-note {
        padding: 0 0 clamp(66px, 7vw, 94px);
}

.animals-root-note__card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
        align-items: center;
        padding: 31px 34px;
        border-radius: 22px;
        background: #f7f4ec;
}

.animals-root-note h2 {
        max-width: 700px;
        margin: 0;
        color: #153f2d;
        font-size: clamp(30px, 3.6vw, 48px);
        line-height: 1.05;
        letter-spacing: -.035em;
}

.animals-root-note__card p:last-child {
        max-width: 650px;
        margin: 12px 0 0;
        color: #68746c;
        font-size: 14px;
        line-height: 1.55;
}

.animals-root-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 960px) {

        .animals-root-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
        }
}


@media (max-width: 720px) {

        .animals-root-intro {
                padding: 37px 0 40px;
        }

        .animals-root-intro h1 {
                font-size: clamp(45px, 13vw, 60px);
        }

        .animals-root-intro__lead {
                margin-top: 14px;
                font-size: 15px;
                line-height: 1.5;
        }

        .animals-root-catalog {
                padding-top: 38px;
                padding-bottom: 46px;
        }

        .animals-root-grid {
                gap: 8px;
        }

        .animals-root-card {
                border-radius: 17px;
        }

        .animals-root-card__media {
                aspect-ratio: 1 / 1;
        }

        .animals-root-card__body {
                padding: 14px;
        }

        .animals-root-card h2 {
                font-size: 18px;
        }

        .animals-root-card__body span {
                margin-top: 8px;
                font-size: 10.5px;
        }

        .animals-root-note {
                padding-bottom: 52px;
        }

        .animals-root-note__card {
                grid-template-columns: 1fr;
                gap: 21px;
                padding: 21px;
                border-radius: 18px;
        }

        .animals-root-note h2 {
                font-size: clamp(29px, 8.2vw, 37px);
        }

        .animals-root-note .button {
                justify-self: start;
        }
}

/* =========================================================
   END 0.4.60 — ANIMALS ROOT PAGE
   ========================================================= */

/* =========================================================
   BEGIN 0.4.61 — ANIMAL SECTION CATALOG
   ========================================================= */

.animal-section-page {
        overflow: hidden;
        background: #fff;
}

.animal-section-eyebrow {
        margin: 0 0 10px;
        color: #d88d0c;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
}


/* INTRO */

.animal-section-intro {
        padding: 34px 0 52px;
        background: #f7f4ec;
}

.animal-section-back {
        display: inline-flex;
        margin-bottom: 23px;
        color: #348146;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
}

.animal-section-intro h1 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(55px, 7vw, 90px);
        line-height: .95;
        letter-spacing: -.05em;
}

.animal-section-intro__lead {
        max-width: 740px;
        margin: 20px 0 0;
        color: #66736b;
        font-size: 18px;
        line-height: 1.58;
}


/* CATALOG */

.animal-section-catalog {
        padding: clamp(50px, 6vw, 78px) 0;
}

.animal-section-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 13px;
}

.animal-section-card {
        display: block;
        min-width: 0;
        overflow: hidden;
        border: 1px solid rgba(20,74,49,.10);
        border-radius: 20px;
        background: #fff;
        box-shadow: 0 10px 32px rgba(20,55,40,.05);
        color: inherit;
        text-decoration: none;
        transition:
                transform .2s ease,
                box-shadow .2s ease;
}

.animal-section-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 16px 42px rgba(20,55,40,.10);
}

.animal-section-card__media {
        overflow: hidden;
        aspect-ratio: 4 / 3;
        background: #e8e5dc;
}

.animal-section-card__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .35s ease;
}

.animal-section-card:hover .animal-section-card__image {
        transform: scale(1.025);
}


/* Missing verified photograph — intentional. */

.animal-section-card__placeholder {
        display: grid;
        place-items: center;
        width: 100%;
        height: 100%;
        padding: 20px;
        background:
                radial-gradient(
                        circle at 70% 25%,
                        rgba(255,255,255,.08),
                        transparent 35%
                ),
                #153f2d;
        text-align: center;
}

.animal-section-card__placeholder span {
        color: rgba(255,255,255,.72);
        font-size: 12px;
        font-weight: 750;
        letter-spacing: .04em;
        text-transform: uppercase;
}

.animal-section-card__body {
        min-height: 105px;
        padding: 17px 18px 18px;
}

.animal-section-card h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(17px, 1.55vw, 22px);
        line-height: 1.16;
        letter-spacing: -.02em;
}

.animal-section-card__body > span {
        display: block;
        margin-top: 10px;
        color: #348146;
        font-size: 11px;
        font-weight: 800;
}


/* FOOT */

.animal-section-footer {
        padding: 0 0 clamp(66px, 7vw, 94px);
}

.animal-section-footer__card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
        align-items: center;
        padding: 30px 34px;
        border-radius: 22px;
        background: #f7f4ec;
}

.animal-section-footer h2 {
        margin: 0;
        color: #153f2d;
        font-size: clamp(30px, 3.6vw, 48px);
        line-height: 1.05;
        letter-spacing: -.035em;
}

.animal-section-footer__card p:last-child {
        max-width: 650px;
        margin: 12px 0 0;
        color: #68746c;
        font-size: 14px;
        line-height: 1.55;
}

.animal-section-page + .site-footer {
        margin-top: 0;
}


@media (max-width: 1050px) {

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


@media (max-width: 760px) {

        .animal-section-intro {
                padding: 20px 0 39px;
        }

        .animal-section-back {
                margin-bottom: 17px;
        }

        .animal-section-intro h1 {
                font-size: clamp(46px, 14vw, 61px);
        }

        .animal-section-intro__lead {
                margin-top: 14px;
                font-size: 15px;
                line-height: 1.5;
        }

        .animal-section-catalog {
                padding-top: 37px;
                padding-bottom: 45px;
        }

        .animal-section-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 8px;
        }

        .animal-section-card {
                border-radius: 16px;
        }

        .animal-section-card__media {
                aspect-ratio: 1 / 1;
        }

        .animal-section-card__body {
                min-height: 88px;
                padding: 13px;
        }

        .animal-section-card h2 {
                font-size: 15px;
        }

        .animal-section-card__body > span {
                margin-top: 7px;
                font-size: 10px;
        }

        .animal-section-card__placeholder span {
                font-size: 9px;
        }

        .animal-section-footer {
                padding-bottom: 52px;
        }

        .animal-section-footer__card {
                grid-template-columns: 1fr;
                gap: 21px;
                padding: 21px;
                border-radius: 18px;
        }

        .animal-section-footer h2 {
                font-size: clamp(29px, 8.2vw, 37px);
        }

        .animal-section-footer .button {
                justify-self: start;
        }
}

/* =========================================================
   END 0.4.61 — ANIMAL SECTION CATALOG
   ========================================================= */




/* =========================================================
   BEGIN 0.4.68 — ANIMAL DETAIL
   ========================================================= */

.animal-detail-page {
        background: #f6f4ee;
}

.animal-detail-hero {
        padding: clamp(42px, 7vw, 88px) 0 30px;
}

.animal-detail-breadcrumbs {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        margin: 0 0 24px;
        font-size: 14px;
}

.animal-detail-breadcrumbs a {
        color: inherit;
        text-decoration: none;
        opacity: .72;
}

.animal-detail-breadcrumbs a:hover {
        opacity: 1;
}

.animal-detail-breadcrumbs span {
        opacity: .35;
}

.animal-detail-heading {
        display: flex;
        align-items: end;
        justify-content: space-between;
        gap: 30px;
}

.animal-detail-eyebrow {
        margin: 0 0 10px;
        font-size: 13px;
        font-weight: 800;
        line-height: 1.3;
        letter-spacing: .08em;
        text-transform: uppercase;
        opacity: .58;
}

.animal-detail-heading h1 {
        max-width: 950px;
        margin: 0;
        font-size: clamp(42px, 7vw, 88px);
        line-height: .98;
        letter-spacing: -.045em;
}

.animal-detail-back {
        flex: 0 0 auto;
        padding-bottom: 8px;
        color: inherit;
        font-size: 15px;
        font-weight: 700;
        text-decoration: none;
}

.animal-detail-gallery {
        padding: 0 0 clamp(48px, 7vw, 82px);
}

.animal-detail-gallery__card {
        padding: clamp(14px, 2vw, 22px);
        overflow: hidden;
        border-radius: 30px;
        background: #fff;
        box-shadow: 0 20px 55px rgba(20, 38, 30, .08);
}

.animal-detail-gallery__toolbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        padding: 2px 2px 16px;
}

.animal-detail-gallery__toolbar p,
.animal-detail-gallery__toolbar strong {
        margin: 0;
}

.animal-detail-gallery__toolbar p {
        margin-bottom: 2px;
        font-size: 13px;
        font-weight: 700;
        opacity: .55;
}

.animal-detail-gallery__toolbar strong {
        font-size: 17px;
}

.animal-detail-gallery__buttons {
        display: flex;
        gap: 8px;
}

.animal-detail-gallery__buttons button {
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid rgba(20, 38, 30, .12);
        border-radius: 50%;
        background: #f6f4ee;
        color: inherit;
        font: inherit;
        font-size: 19px;
        cursor: pointer;
}

.animal-detail-gallery__buttons button:hover {
        background: #ece9e0;
}

.animal-detail-gallery__track {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(68%, 820px);
        gap: 14px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-behavior: smooth;
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
}

.animal-detail-gallery__track::-webkit-scrollbar {
        display: none;
}

.animal-detail-gallery__slide {
        position: relative;
        margin: 0;
        overflow: hidden;
        aspect-ratio: 4 / 3;
        border-radius: 22px;
        background: #ece9e0;
        scroll-snap-align: start;
}

.animal-detail-gallery__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
}

.animal-detail-content {
        padding: 0 0 clamp(72px, 10vw, 125px);
}

.animal-detail-layout {
        display: grid;
        grid-template-columns:
                minmax(0, 1.75fr)
                minmax(280px, .72fr);
        align-items: start;
        gap: clamp(28px, 5vw, 70px);
}

.animal-detail-article {
        padding: clamp(28px, 5vw, 58px);
        border-radius: 30px;
        background: #fff;
}

.animal-detail-article > h2 {
        margin: 0 0 30px;
        font-size: clamp(30px, 4vw, 48px);
        line-height: 1.05;
        letter-spacing: -.025em;
}

.animal-detail-prose {
        font-size: clamp(16px, 1.35vw, 18px);
        line-height: 1.72;
}

.animal-detail-prose > *:first-child {
        margin-top: 0;
}

.animal-detail-prose > *:last-child {
        margin-bottom: 0;
}

.animal-detail-prose p {
        margin: 0 0 1.25em;
}

.animal-detail-prose strong,
.animal-detail-prose b {
        font-weight: 800;
}

.animal-detail-prose ul,
.animal-detail-prose ol {
        padding-left: 1.35em;
}

.animal-detail-sidebar {
        position: sticky;
        top: 110px;
        display: grid;
        gap: 18px;
}

.animal-detail-support,
.animal-detail-section-link {
        padding: 28px;
        border-radius: 26px;
}

.animal-detail-support {
        background: #173f2f;
        color: #fff;
}

.animal-detail-support h2 {
        margin: 0 0 14px;
        font-size: 30px;
        line-height: 1.05;
}

.animal-detail-support > p:not(
        .animal-detail-eyebrow
) {
        margin: 0 0 24px;
        line-height: 1.55;
        opacity: .84;
}

.animal-detail-support .animal-detail-eyebrow {
        opacity: .62;
}

.animal-detail-support .button {
        width: 100%;
        justify-content: center;
        text-align: center;
}

.animal-detail-section-link {
        background: #fff;
}

.animal-detail-section-link span,
.animal-detail-section-link strong,
.animal-detail-section-link a {
        display: block;
}

.animal-detail-section-link span {
        margin-bottom: 5px;
        font-size: 13px;
        font-weight: 700;
        opacity: .55;
}

.animal-detail-section-link strong {
        margin-bottom: 18px;
        font-size: 22px;
}

.animal-detail-section-link a {
        color: inherit;
        font-size: 15px;
        font-weight: 800;
        text-decoration: none;
}

@media (max-width: 900px) {

        .animal-detail-heading {
                display: block;
        }

        .animal-detail-back {
                display: inline-block;
                margin-top: 22px;
        }

        .animal-detail-layout {
                grid-template-columns: 1fr;
        }

        .animal-detail-sidebar {
                position: static;
                grid-template-columns: 1fr 1fr;
        }

        .animal-detail-gallery__track {
                grid-auto-columns: minmax(78%, 720px);
        }
}

@media (max-width: 640px) {

        .animal-detail-hero {
                padding-top: 32px;
        }

        .animal-detail-heading h1 {
                font-size: clamp(38px, 13vw, 58px);
        }

        .animal-detail-gallery__card {
                margin-inline: -4px;
                border-radius: 24px;
        }

        .animal-detail-gallery__track {
                grid-auto-columns: 88%;
                gap: 10px;
        }

        .animal-detail-gallery__slide {
                border-radius: 18px;
        }

        .animal-detail-layout {
                gap: 18px;
        }

        .animal-detail-article {
                padding: 26px 20px;
                border-radius: 24px;
        }

        .animal-detail-sidebar {
                grid-template-columns: 1fr;
        }

        .animal-detail-support,
        .animal-detail-section-link {
                padding: 24px 20px;
                border-radius: 22px;
        }
}

/* =========================================================
   END 0.4.68 — ANIMAL DETAIL
   ========================================================= */


/* =========================================================
   BEGIN 0.4.69 — ANIMAL GALLERY UPGRADE
   ========================================================= */


/* ---------- Большое фото ---------- */

.animal-detail-gallery__track {
        grid-auto-columns: 100%;
        gap: 14px;
        cursor: grab;
        user-select: none;
        -webkit-user-select: none;
}

.animal-detail-gallery__track.is-mouse-dragging {
        cursor: grabbing;
        scroll-behavior: auto;
        scroll-snap-type: none;
}

.animal-detail-gallery__slide {
        width: 100%;
}

.animal-detail-gallery__open {
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        border-radius: inherit;
        background: transparent;
        color: inherit;
        cursor: zoom-in;
}

.animal-detail-gallery__image {
        pointer-events: none;
        user-select: none;
        -webkit-user-select: none;
        -webkit-user-drag: none;
}


/* ---------- Миниатюры: два ряда ---------- */

.animal-detail-gallery__thumbs-wrap {
        margin-top: 12px;
        overflow: hidden;
        border-radius: 18px;
}

.animal-detail-gallery__thumbs {
        display: grid;
        grid-template-rows: repeat(2, 92px);
        grid-auto-flow: column;
        grid-auto-columns: 116px;
        gap: 8px;

        overflow-x: auto;
        overflow-y: hidden;

        padding: 2px 2px 7px;

        scrollbar-width: none;
        overscroll-behavior-inline: contain;

        cursor: grab;
        user-select: none;
        -webkit-user-select: none;

        touch-action: pan-x pan-y;
}

.animal-detail-gallery__thumbs::-webkit-scrollbar {
        display: none;
}

.animal-detail-gallery__thumbs.is-mouse-dragging {
        cursor: grabbing;
        scroll-behavior: auto;
}

.animal-detail-gallery__thumb {
        position: relative;
        width: 100%;
        height: 100%;

        padding: 0;

        overflow: hidden;

        border: 2px solid transparent;
        border-radius: 12px;

        background: #ece9e0;

        cursor: pointer;

        opacity: .72;

        transition:
                opacity .18s ease,
                border-color .18s ease,
                transform .18s ease;
}

.animal-detail-gallery__thumb:hover {
        opacity: 1;
}

.animal-detail-gallery__thumb.is-active {
        border-color: #173f2f;
        opacity: 1;
}

.animal-detail-gallery__thumb img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;

        pointer-events: none;

        user-select: none;
        -webkit-user-select: none;
        -webkit-user-drag: none;
}


/* ---------- Fullscreen viewer ---------- */

html:has(.animal-lightbox:not([hidden])),
body.animal-lightbox-open {
        overflow: hidden;
}

.animal-lightbox[hidden] {
        display: none;
}

.animal-lightbox {
        position: fixed;
        inset: 0;
        z-index: 999999;

        display: block;

        background: rgba(8, 12, 10, .97);

        color: #fff;
}

.animal-lightbox__backdrop {
        position: absolute;
        inset: 0;
}

.animal-lightbox__topbar {
        position: absolute;
        z-index: 5;

        top: 12px;
        left: 14px;
        right: 14px;

        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;

        pointer-events: none;
}

.animal-lightbox__counter,
.animal-lightbox__zoom,
.animal-lightbox__close {
        pointer-events: auto;
}

.animal-lightbox__counter {
        min-width: 70px;

        padding: 9px 12px;

        border-radius: 999px;

        background: rgba(255, 255, 255, .12);

        font-size: 13px;
        font-weight: 800;
}

.animal-lightbox__zoom {
        display: flex;
        align-items: center;

        overflow: hidden;

        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 999px;

        background: rgba(15, 20, 17, .78);

        backdrop-filter: blur(12px);
}

.animal-lightbox__zoom button,
.animal-lightbox__close,
.animal-lightbox__nav {
        border: 0;

        color: #fff;

        font: inherit;

        cursor: pointer;
}

.animal-lightbox__zoom button {
        min-width: 44px;
        height: 42px;

        padding: 0 12px;

        background: transparent;

        font-size: 20px;
}

.animal-lightbox__zoom button:hover {
        background: rgba(255, 255, 255, .10);
}

.animal-lightbox__scale {
        min-width: 70px !important;

        border-inline: 1px solid rgba(255, 255, 255, .14) !important;

        font-size: 13px !important;
        font-weight: 800 !important;
}

.animal-lightbox__close {
        width: 44px;
        height: 44px;

        padding: 0;

        border-radius: 50%;

        background: rgba(255, 255, 255, .14);

        font-size: 30px;
        line-height: 1;
}

.animal-lightbox__viewport {
        position: absolute;

        inset: 60px 0 0;

        display: grid;
        place-items: center;

        overflow: hidden;

        touch-action: none;

        cursor: default;
}

.animal-lightbox__viewport.is-panning {
        cursor: grabbing;
}

.animal-lightbox__image {
        display: block;

        max-width: calc(100vw - 32px);
        max-height: calc(100vh - 92px);

        width: auto;
        height: auto;

        object-fit: contain;

        transform:
                translate3d(0, 0, 0)
                scale(1);

        transform-origin: center center;

        will-change: transform;

        user-select: none;
        -webkit-user-select: none;
        -webkit-user-drag: none;

        cursor: zoom-in;
}

.animal-lightbox__image.is-zoomed {
        cursor: grab;
}

.animal-lightbox__nav {
        position: absolute;
        z-index: 6;

        top: 50%;

        width: 50px;
        height: 50px;

        padding: 0;

        border-radius: 50%;

        background: rgba(255, 255, 255, .14);

        font-size: 23px;

        transform: translateY(-50%);

        backdrop-filter: blur(8px);
}

.animal-lightbox__nav:hover {
        background: rgba(255, 255, 255, .23);
}

.animal-lightbox__nav--prev {
        left: 16px;
}

.animal-lightbox__nav--next {
        right: 16px;
}


@media (max-width: 640px) {

        .animal-detail-gallery__track {
                grid-auto-columns: 100%;
        }

        .animal-detail-gallery__thumbs {
                grid-template-rows: repeat(2, 72px);
                grid-auto-columns: 88px;
                gap: 6px;
        }

        .animal-detail-gallery__thumb {
                border-radius: 9px;
        }

        .animal-lightbox__topbar {
                top: 8px;
                left: 8px;
                right: 8px;
                gap: 7px;
        }

        .animal-lightbox__counter {
                min-width: 56px;
                padding: 8px 9px;
                font-size: 12px;
        }

        .animal-lightbox__zoom button {
                min-width: 38px;
                height: 38px;
                padding: 0 9px;
        }

        .animal-lightbox__scale {
                min-width: 56px !important;
        }

        .animal-lightbox__close {
                width: 40px;
                height: 40px;
        }

        .animal-lightbox__viewport {
                inset-top: 54px;
        }

        .animal-lightbox__image {
                max-width: 100vw;
                max-height: calc(100vh - 64px);
        }

        .animal-lightbox__nav {
                width: 44px;
                height: 44px;

                background: rgba(0, 0, 0, .32);
        }

        .animal-lightbox__nav--prev {
                left: 8px;
        }

        .animal-lightbox__nav--next {
                right: 8px;
        }
}


/* =========================================================
   END 0.4.69 — ANIMAL GALLERY UPGRADE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.74 — ANIMAL DETAIL DESKTOP REDESIGN

   Desktop visual refinement only.
   Gallery interaction from 0.4.70 remains untouched.
   ========================================================= */

@media (min-width: 901px) {

        /*
         * Overall page
         */

        .animal-detail-page {
                background:
                        radial-gradient(
                                circle at 84% 2%,
                                rgba(95, 143, 74, .10),
                                transparent 26rem
                        ),
                        #f5f3ec;
        }


        .animal-detail-page > section > .shell {
                width: min(
                        1180px,
                        calc(100% - 64px)
                );

                margin-inline: auto;
        }


        /*
         * Hero
         */

        .animal-detail-hero {
                padding:
                        42px
                        0
                        34px;
        }


        .animal-detail-breadcrumbs {
                gap: 10px;

                margin-bottom: 24px;

                font-size: 14px;
                line-height: 1.4;
        }


        .animal-detail-breadcrumbs a {
                display: inline-flex;
                align-items: center;

                color: #254536;

                font-weight: 650;

                opacity: .75;

                transition:
                        opacity .18s ease,
                        color .18s ease;
        }


        .animal-detail-breadcrumbs a:hover {
                color: #173f2f;
                opacity: 1;
        }


        .animal-detail-heading {
                align-items: flex-end;

                gap: 48px;
        }


        .animal-detail-heading h1 {
                max-width: 850px;

                font-size: clamp(
                        46px,
                        5vw,
                        68px
                );

                line-height: .98;

                letter-spacing: -.038em;

                color: #173f2f;
        }


        .animal-detail-heading
        .animal-detail-eyebrow {
                margin-bottom: 12px;

                color: #487342;

                opacity: 1;
        }


        .animal-detail-back {
                display: inline-flex;
                align-items: center;

                min-height: 42px;

                padding:
                        10px
                        16px;

                margin-bottom: 3px;

                border:
                        1px solid
                        rgba(23, 63, 47, .14);

                border-radius: 999px;

                background:
                        rgba(255, 255, 255, .58);

                color: #173f2f;

                font-size: 14px;

                transition:
                        background .18s ease,
                        border-color .18s ease,
                        transform .18s ease;
        }


        .animal-detail-back:hover {
                border-color:
                        rgba(23, 63, 47, .25);

                background: #fff;

                transform:
                        translateY(-1px);
        }


        /*
         * Gallery area
         */

        .animal-detail-gallery {
                padding-bottom: 62px;
        }


        .animal-detail-gallery__card {
                position: relative;

                padding: 16px;

                border:
                        1px solid
                        rgba(23, 63, 47, .08);

                border-radius: 28px;

                background: #fff;

                box-shadow:
                        0 24px 70px
                        rgba(27, 49, 37, .09);
        }


        .animal-detail-gallery__toolbar {
                min-height: 58px;

                padding:
                        3px
                        6px
                        14px;

                border-bottom:
                        1px solid
                        rgba(23, 63, 47, .07);
        }


        .animal-detail-gallery__toolbar p {
                margin-bottom: 3px;

                color: #66766d;

                font-size: 12px;
                font-weight: 800;

                letter-spacing: .08em;

                text-transform: uppercase;

                opacity: 1;
        }


        .animal-detail-gallery__toolbar strong {
                color: #173f2f;

                font-size: 16px;
                font-weight: 800;
        }


        /*
         * Gallery arrows
         */

        .animal-detail-page
        .animal-detail-gallery__buttons {
                display: flex;

                gap: 8px;
        }


        .animal-detail-page
        .animal-detail-gallery__buttons button {
                display: grid;
                place-items: center;

                width: 44px;
                height: 44px;

                padding: 0;

                border:
                        1px solid
                        rgba(23, 63, 47, .12);

                border-radius: 50%;

                background: #f3f5ef;

                color: #173f2f;

                box-shadow: none;

                font-size: 20px;
                font-weight: 700;
                line-height: 1;

                transition:
                        background .18s ease,
                        color .18s ease,
                        border-color .18s ease,
                        transform .18s ease;
        }


        .animal-detail-page
        .animal-detail-gallery__buttons button:hover {
                border-color: #367b35;

                background: #367b35;

                color: #fff;

                transform:
                        translateY(-1px);
        }


        /*
         * Main photograph
         */

        .animal-detail-gallery__track {
                margin-top: 16px;

                border-radius: 20px;

                background: #ebe9e1;
        }


        .animal-detail-gallery__slide {
                height:
                        clamp(
                                480px,
                                58vw,
                                630px
                        );

                max-height: 630px;

                aspect-ratio: auto;

                border-radius: 20px;

                background:
                        linear-gradient(
                                135deg,
                                #e8e7df,
                                #deddd5
                        );
        }


        .animal-detail-gallery__open {
                border-radius: 20px;
        }


        .animal-detail-gallery__image {
                width: 100%;
                height: 100%;

                object-fit: contain;

                background: #ebe9e1;
        }


        /*
         * Two rows of thumbnails
         */

        .animal-detail-gallery__thumbs-wrap {
                margin-top: 13px;

                padding-top: 13px;

                border-top:
                        1px solid
                        rgba(23, 63, 47, .07);

                border-radius: 0;
        }


        .animal-detail-gallery__thumbs {
                grid-template-rows:
                        repeat(2, 84px);

                grid-auto-columns: 108px;

                gap: 8px;

                padding:
                        2px
                        2px
                        5px;
        }


        .animal-detail-gallery__thumb {
                border:
                        2px solid
                        transparent;

                border-radius: 11px;

                background: #e8e7df;

                opacity: .64;
        }


        .animal-detail-gallery__thumb:hover {
                opacity: .9;
        }


        .animal-detail-gallery__thumb.is-active {
                border-color: #367b35;

                box-shadow:
                        0 0 0 2px
                        rgba(54, 123, 53, .12);

                opacity: 1;
        }


        /*
         * Text/content section
         */

        .animal-detail-content {
                padding-bottom: 105px;
        }


        .animal-detail-layout {
                grid-template-columns:
                        minmax(0, 1.72fr)
                        minmax(290px, .63fr);

                gap: 34px;
        }


        .animal-detail-article {
                padding:
                        42px
                        48px
                        48px;

                border:
                        1px solid
                        rgba(23, 63, 47, .07);

                border-radius: 28px;

                background: #fff;

                box-shadow:
                        0 15px 50px
                        rgba(27, 49, 37, .055);
        }


        .animal-detail-article > h2 {
                margin-bottom: 30px;

                color: #173f2f;

                font-size: 38px;

                letter-spacing: -.025em;
        }


        .animal-detail-prose {
                max-width: 790px;

                color: #283b32;

                font-size: 17px;
                line-height: 1.76;
        }


        .animal-detail-prose p {
                margin-bottom: 1.35em;
        }


        .animal-detail-prose strong,
        .animal-detail-prose b {
                color: #173f2f;
        }


        /*
         * Sidebar
         */

        .animal-detail-sidebar {
                top: 104px;

                gap: 16px;
        }


        .animal-detail-support,
        .animal-detail-section-link {
                padding: 28px;

                border-radius: 24px;
        }


        .animal-detail-support {
                background:
                        linear-gradient(
                                145deg,
                                #173f2f,
                                #245941
                        );

                box-shadow:
                        0 18px 45px
                        rgba(23, 63, 47, .18);
        }


        .animal-detail-support h2 {
                margin-bottom: 13px;

                font-size: 29px;
                letter-spacing: -.02em;
        }


        .animal-detail-support
        .button {
                min-height: 48px;

                margin-top: 4px;

                border-radius: 999px;
        }


        .animal-detail-section-link {
                border:
                        1px solid
                        rgba(23, 63, 47, .07);

                box-shadow:
                        0 12px 34px
                        rgba(27, 49, 37, .045);
        }


        .animal-detail-section-link strong {
                color: #173f2f;

                font-size: 21px;
        }


        .animal-detail-section-link a {
                color: #367b35;
        }


        .animal-detail-section-link a:hover {
                color: #173f2f;
        }
}


/*
 * Large desktop: do not let the animal photo become enormous.
 */

@media (min-width: 1450px) {

        .animal-detail-page > section > .shell {
                width: min(
                        1240px,
                        calc(100% - 80px)
                );
        }

        .animal-detail-gallery__slide {
                height: 650px;
                max-height: 650px;
        }
}


/* =========================================================
   END 0.4.74 — ANIMAL DETAIL DESKTOP REDESIGN
   ========================================================= */


/* =========================================================
   BEGIN 0.4.77 — OPEKA PAGE
   ========================================================= */

.opeka-page {
        background: #f5f3ec;
        color: #243a30;
}

.opeka-hero {
        padding: clamp(44px, 7vw, 88px) 0
                clamp(60px, 8vw, 96px);
}

.opeka-hero__grid {
        display: grid;
        grid-template-columns:
                minmax(0, 1.55fr)
                minmax(290px, .65fr);
        align-items: end;
        gap: clamp(32px, 6vw, 78px);
}

.opeka-back {
        display: inline-flex;
        margin-bottom: 34px;
        color: #315a45;
        font-size: 14px;
        font-weight: 750;
        text-decoration: none;
}

.opeka-eyebrow {
        margin: 0 0 12px;
        color: #5c7e58;
        font-size: 12px;
        font-weight: 850;
        letter-spacing: .09em;
        text-transform: uppercase;
}

.opeka-hero h1 {
        max-width: 850px;
        margin: 0;
        color: #173f2f;
        font-size: clamp(48px, 7vw, 84px);
        line-height: .96;
        letter-spacing: -.045em;
}

.opeka-hero__lead {
        max-width: 760px;
        margin: 28px 0 0;
        font-size: clamp(18px, 1.6vw, 22px);
        line-height: 1.58;
}

.opeka-hero__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 30px;
}

.opeka-button-secondary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 48px;
        padding: 11px 22px;
        border: 1px solid rgba(23, 63, 47, .18);
        border-radius: 999px;
        background: rgba(255,255,255,.55);
        color: #173f2f;
        font-weight: 800;
        text-decoration: none;
}

.opeka-summary {
        padding: 30px;
        border-radius: 28px;
        background: #173f2f;
        color: #fff;
        box-shadow:
                0 24px 60px
                rgba(23, 63, 47, .18);
}

.opeka-summary__label {
        margin: 0 0 22px;
        font-size: 13px;
        font-weight: 800;
        opacity: .65;
}

.opeka-summary__price {
        padding: 18px 0;
        border-top:
                1px solid
                rgba(255,255,255,.13);
}

.opeka-summary__price strong,
.opeka-summary__price span {
        display: block;
}

.opeka-summary__price strong {
        font-size: 30px;
        line-height: 1;
}

.opeka-summary__price span {
        margin-top: 7px;
        font-size: 14px;
        opacity: .72;
}

.opeka-summary__contact {
        padding-top: 20px;
        border-top:
                1px solid
                rgba(255,255,255,.13);
}

.opeka-summary__contact span,
.opeka-summary__contact small,
.opeka-summary__contact a {
        display: block;
}

.opeka-summary__contact span {
        margin-bottom: 10px;
        font-size: 12px;
        font-weight: 800;
        opacity: .6;
        text-transform: uppercase;
}

.opeka-summary__contact a {
        margin-top: 4px;
        color: #fff;
        font-size: 16px;
        font-weight: 800;
        text-decoration: none;
}

.opeka-summary__contact small {
        margin: 4px 0 12px;
        opacity: .62;
}

.opeka-purpose,
.opeka-process,
.opeka-benefits,
.opeka-faq {
        padding: clamp(64px, 8vw, 100px) 0;
}

.opeka-purpose,
.opeka-benefits {
        background: #fff;
}

.opeka-section-heading {
        max-width: 760px;
        margin-bottom: 40px;
}

.opeka-section-heading h2,
.opeka-benefits h2,
.opeka-form-copy h2 {
        margin: 0;
        color: #173f2f;
        font-size: clamp(34px, 4.5vw, 54px);
        line-height: 1.03;
        letter-spacing: -.035em;
}

.opeka-section-heading > p:last-child {
        margin: 20px 0 0;
        font-size: 18px;
        line-height: 1.65;
}

.opeka-purpose__grid,
.opeka-process__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
}

.opeka-purpose__grid article,
.opeka-process__grid article {
        padding: 28px;
        border-radius: 24px;
}

.opeka-purpose__grid article {
        background: #f5f3ec;
}

.opeka-process__grid article {
        border: 1px solid rgba(23,63,47,.08);
        background: #fff;
}

.opeka-purpose__grid span,
.opeka-process__grid b {
        display: inline-grid;
        place-items: center;
        width: 42px;
        height: 42px;
        margin-bottom: 24px;
        border-radius: 50%;
        background: #dfead8;
        color: #315f38;
        font-size: 13px;
        font-weight: 900;
}

.opeka-purpose__grid h3,
.opeka-process__grid h3 {
        margin: 0 0 12px;
        color: #173f2f;
        font-size: 22px;
        line-height: 1.15;
}

.opeka-purpose__grid p,
.opeka-process__grid p {
        margin: 0;
        line-height: 1.6;
}

.opeka-benefits__grid {
        display: grid;
        grid-template-columns: .8fr 1.2fr;
        gap: clamp(40px, 7vw, 90px);
        align-items: start;
}

.opeka-benefits__list {
        display: grid;
        gap: 12px;
}

.opeka-benefits__list > div {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 20px 22px;
        border-radius: 18px;
        background: #f5f3ec;
}

.opeka-benefits__list span {
        display: grid;
        place-items: center;
        flex: 0 0 34px;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        background: #367b35;
        color: #fff;
        font-weight: 900;
}

.opeka-benefits__list p {
        margin: 0;
        font-weight: 750;
}

.opeka-faq__list {
        max-width: 920px;
        display: grid;
        gap: 10px;
}

.opeka-faq details {
        padding: 0 24px;
        border:
                1px solid
                rgba(23,63,47,.09);
        border-radius: 18px;
        background: #fff;
}

.opeka-faq summary {
        padding: 22px 0;
        color: #173f2f;
        font-size: 18px;
        font-weight: 800;
        cursor: pointer;
}

.opeka-faq details p {
        margin: -2px 0 24px;
        max-width: 760px;
        line-height: 1.65;
}

.opeka-form-section {
        padding: clamp(70px, 9vw, 120px) 0;
        background: #173f2f;
        color: #fff;
}

.opeka-form-section__grid {
        display: grid;
        grid-template-columns:
                minmax(0, .72fr)
                minmax(0, 1.28fr);
        gap: clamp(36px, 7vw, 90px);
        align-items: start;
}

.opeka-form-copy {
        position: sticky;
        top: 110px;
}

.opeka-form-copy .opeka-eyebrow {
        color: #a9c79f;
}

.opeka-form-copy h2 {
        color: #fff;
}

.opeka-form-copy > p:not(.opeka-eyebrow) {
        margin: 22px 0 0;
        max-width: 450px;
        line-height: 1.65;
        opacity: .82;
}

.opeka-form-copy__contacts {
        margin-top: 30px;
}

.opeka-form-copy__contacts a,
.opeka-form-copy__contacts span {
        display: block;
}

.opeka-form-copy__contacts a {
        margin-top: 7px;
        color: #fff;
        font-weight: 800;
        text-decoration: none;
}

.opeka-form-copy__contacts span {
        margin-top: 4px;
        font-size: 13px;
        opacity: .6;
}

.opeka-form-card {
        padding: clamp(24px, 4vw, 42px);
        border-radius: 28px;
        background: #fff;
        color: #243a30;
}

.opeka-form-message {
        margin-bottom: 22px;
        padding: 15px 18px;
        border-radius: 14px;
        font-weight: 750;
}

.opeka-form-message--success {
        background: #e3f2dd;
        color: #28582b;
}

.opeka-form-message--error {
        background: #f7e3df;
        color: #8a3327;
}

.opeka-form {
        display: grid;
        gap: 18px;
}

.opeka-form__row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px;
}

.opeka-form label {
        display: grid;
        gap: 8px;
}

.opeka-form label > span {
        color: #315043;
        font-size: 13px;
        font-weight: 800;
}

.opeka-form input,
.opeka-form textarea {
        width: 100%;
        padding: 14px 16px;
        border:
                1px solid
                rgba(23,63,47,.15);
        border-radius: 13px;
        background: #f9f8f4;
        color: #243a30;
        font: inherit;
        outline: 0;
}

.opeka-form input {
        min-height: 50px;
}

.opeka-form textarea {
        resize: vertical;
}

.opeka-form input:focus,
.opeka-form textarea:focus {
        border-color: #4b8a43;
        box-shadow:
                0 0 0 3px
                rgba(75,138,67,.12);
        background: #fff;
}

.opeka-form__submit {
        justify-self: start;
        min-width: 210px;
        margin-top: 4px;
}

.opeka-hp {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0,0,0,0) !important;
        white-space: nowrap !important;
}

@media (max-width: 900px) {

        .opeka-hero__grid,
        .opeka-benefits__grid,
        .opeka-form-section__grid {
                grid-template-columns: 1fr;
        }

        .opeka-purpose__grid,
        .opeka-process__grid {
                grid-template-columns: 1fr;
        }

        .opeka-summary {
                max-width: 520px;
        }

        .opeka-form-copy {
                position: static;
        }
}

@media (max-width: 640px) {

        .opeka-hero {
                padding-top: 34px;
        }

        .opeka-back {
                margin-bottom: 26px;
        }

        .opeka-hero h1 {
                font-size: clamp(44px, 14vw, 62px);
        }

        .opeka-hero__actions {
                display: grid;
        }

        .opeka-hero__actions .button,
        .opeka-button-secondary {
                width: 100%;
        }

        .opeka-summary {
                padding: 24px 20px;
                border-radius: 23px;
        }

        .opeka-purpose__grid article,
        .opeka-process__grid article {
                padding: 24px 20px;
                border-radius: 20px;
        }

        .opeka-form-card {
                padding: 24px 18px;
                border-radius: 22px;
        }

        .opeka-form__row {
                grid-template-columns: 1fr;
        }

        .opeka-form__submit {
                width: 100%;
        }
}

/* =========================================================
   END 0.4.77 — OPEKA PAGE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.78 — HELP PARK PAGE
   ========================================================= */

.help-park-page {
        background: #f5f3ec;
        color: #243a30;
}

.help-park-hero {
        padding:
                clamp(56px, 8vw, 100px)
                0
                clamp(52px, 7vw, 80px);
}

.help-park-eyebrow {
        margin: 0 0 12px;

        color: #5b7d58;

        font-size: 12px;
        font-weight: 850;

        letter-spacing: .09em;
        text-transform: uppercase;
}

.help-park-hero h1 {
        max-width: 900px;

        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        52px,
                        8vw,
                        94px
                );

        line-height: .94;

        letter-spacing: -.05em;
}

.help-park-hero__lead {
        max-width: 760px;

        margin: 28px 0 0;

        font-size:
                clamp(
                        18px,
                        1.8vw,
                        23px
                );

        line-height: 1.58;
}


.help-park-options {
        padding: 0 0
                clamp(72px, 9vw, 120px);
}

.help-park-options__grid {
        display: grid;

        grid-template-columns:
                repeat(3, minmax(0, 1fr));

        gap: 18px;
}

.help-park-card {
        display: flex;
        flex-direction: column;

        min-width: 0;

        overflow: hidden;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 26px;

        background: #fff;

        box-shadow:
                0 18px 50px
                rgba(27, 49, 37, .055);
}

.help-park-card__media {
        position: relative;

        display: block;

        overflow: hidden;

        aspect-ratio: 4 / 3;

        background: #e7e6de;
}

.help-park-card__image {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;

        transition:
                transform .45s ease;
}

.help-park-card:hover
.help-park-card__image {
        transform: scale(1.035);
}

.help-park-card__body {
        display: flex;
        flex: 1;
        flex-direction: column;

        padding: 28px;
}

.help-park-card h2 {
        margin: 0 0 14px;

        color: #173f2f;

        font-size:
                clamp(
                        25px,
                        2.3vw,
                        32px
                );

        line-height: 1.06;

        letter-spacing: -.025em;
}

.help-park-card p {
        margin: 0 0 28px;

        line-height: 1.65;
}

.help-park-card__link {
        display: inline-flex;
        align-items: center;
        gap: 9px;

        margin-top: auto;

        color: #367b35;

        font-size: 14px;
        font-weight: 850;

        text-decoration: none;
}

.help-park-card__link span {
        transition:
                transform .18s ease;
}

.help-park-card__link:hover span {
        transform: translateX(4px);
}


.help-park-closing {
        padding:
                clamp(70px, 8vw, 100px)
                0;

        background: #fff;
}

.help-park-closing__card {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 40px;

        padding:
                clamp(30px, 5vw, 52px);

        border-radius: 30px;

        background:
                linear-gradient(
                        140deg,
                        #e7efe1,
                        #f4f1e8
                );
}

.help-park-closing__card > div {
        max-width: 720px;
}

.help-park-closing__card h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        32px,
                        4vw,
                        48px
                );

        line-height: 1.04;

        letter-spacing: -.035em;
}

.help-park-closing__card
> div
> p:last-child {
        max-width: 650px;

        margin: 18px 0 0;

        line-height: 1.65;
}


@media (max-width: 900px) {

        .help-park-options__grid {
                grid-template-columns: 1fr;
        }

        .help-park-card {
                display: grid;

                grid-template-columns:
                        minmax(220px, .78fr)
                        minmax(0, 1.22fr);
        }

        .help-park-card__media {
                height: 100%;

                aspect-ratio: auto;
        }

        .help-park-closing__card {
                align-items: flex-start;
                flex-direction: column;
        }
}


@media (max-width: 640px) {

        .help-park-hero {
                padding-top: 38px;
        }

        .help-park-hero h1 {
                font-size:
                        clamp(
                                48px,
                                16vw,
                                68px
                        );
        }

        .help-park-options__grid {
                gap: 14px;
        }

        .help-park-card {
                display: flex;
        }

        .help-park-card__media {
                aspect-ratio: 4 / 3;
        }

        .help-park-card__body {
                padding: 23px 20px;
        }

        .help-park-card p {
                margin-bottom: 22px;
        }

        .help-park-closing__card {
                padding: 26px 20px;

                border-radius: 23px;
        }

        .help-park-closing__card .button {
                width: 100%;

                justify-content: center;
        }
}

/* =========================================================
   END 0.4.78 — HELP PARK PAGE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.79 — DONATION PAGE
   ========================================================= */

.donation-page {
        background: #f5f3ec;
        color: #243a30;
}

.donation-hero {
        padding:
                clamp(46px, 7vw, 88px)
                0
                clamp(64px, 9vw, 104px);
}

.donation-hero__grid {
        display: grid;
        grid-template-columns:
                minmax(0, 1.55fr)
                minmax(290px, .62fr);
        gap: clamp(36px, 7vw, 84px);
        align-items: end;
}

.donation-back {
        display: inline-flex;
        margin-bottom: 34px;
        color: #315a45;
        font-size: 14px;
        font-weight: 750;
        text-decoration: none;
}

.donation-eyebrow {
        margin: 0 0 12px;
        color: #5b7d58;
        font-size: 12px;
        font-weight: 850;
        letter-spacing: .09em;
        text-transform: uppercase;
}

.donation-hero h1 {
        max-width: 900px;
        margin: 0;
        color: #173f2f;
        font-size: clamp(50px, 8vw, 90px);
        line-height: .95;
        letter-spacing: -.05em;
}

.donation-hero__lead {
        max-width: 760px;
        margin: 28px 0 0;
        font-size: clamp(19px, 1.8vw, 23px);
        line-height: 1.58;
}

.donation-hero__text {
        max-width: 720px;
        margin: 18px 0 0;
        line-height: 1.66;
}

.donation-hero__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 30px;
}

.donation-secondary-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 48px;
        padding: 11px 22px;
        border:
                1px solid
                rgba(23,63,47,.18);
        border-radius: 999px;
        background: rgba(255,255,255,.55);
        color: #173f2f;
        font-weight: 800;
        text-decoration: none;
}

.donation-help-card {
        padding: 30px;
        border-radius: 28px;
        background: #173f2f;
        color: #fff;
        box-shadow:
                0 24px 60px
                rgba(23,63,47,.18);
}

.donation-help-card__label {
        margin: 0 0 18px;
        font-size: 13px;
        font-weight: 800;
        opacity: .62;
}

.donation-help-card > div {
        padding: 18px 0;
        border-top:
                1px solid
                rgba(255,255,255,.13);
}

.donation-help-card strong,
.donation-help-card span {
        display: block;
}

.donation-help-card strong {
        font-size: 20px;
}

.donation-help-card span {
        margin-top: 5px;
        font-size: 14px;
        line-height: 1.45;
        opacity: .7;
}


.donation-payment {
        padding:
                clamp(66px, 9vw, 110px)
                0;
        background: #fff;
}

.donation-payment__grid {
        display: grid;
        grid-template-columns:
                minmax(0, .85fr)
                minmax(340px, .62fr);
        gap: clamp(42px, 8vw, 100px);
        align-items: center;
}

.donation-payment__content h2,
.donation-section-heading h2,
.donation-contact h2,
.donation-opeka h2 {
        margin: 0;
        color: #173f2f;
        font-size: clamp(34px, 4.7vw, 56px);
        line-height: 1.03;
        letter-spacing: -.035em;
}

.donation-payment__content > p:not(.donation-eyebrow) {
        max-width: 620px;
        margin: 20px 0 0;
        line-height: 1.65;
}

.donation-payment__content .button {
        margin-top: 26px;
}

.donation-qr {
        display: block;
        max-width: 500px;
        justify-self: end;
        padding: 18px;
        border:
                1px solid
                rgba(23,63,47,.09);
        border-radius: 28px;
        background: #f5f3ec;
        color: #173f2f;
        text-decoration: none;
        box-shadow:
                0 18px 50px
                rgba(27,49,37,.07);
}

.donation-qr__image {
        display: block;
        width: 100%;
        height: auto;
        border-radius: 18px;
}

.donation-qr span {
        display: block;
        padding: 15px 4px 2px;
        text-align: center;
        font-size: 14px;
        font-weight: 850;
}


.donation-other-help {
        padding:
                clamp(70px, 9vw, 110px)
                0;
}

.donation-section-heading {
        max-width: 760px;
        margin-bottom: 40px;
}

.donation-other-help__grid {
        display: grid;
        grid-template-columns:
                repeat(3, minmax(0, 1fr));
        gap: 18px;
}

.donation-other-help article {
        padding: 28px;
        border:
                1px solid
                rgba(23,63,47,.07);
        border-radius: 24px;
        background: #fff;
}

.donation-other-help article > span {
        display: inline-grid;
        place-items: center;
        width: 42px;
        height: 42px;
        margin-bottom: 24px;
        border-radius: 50%;
        background: #dfead8;
        color: #315f38;
        font-size: 13px;
        font-weight: 900;
}

.donation-other-help h3 {
        margin: 0 0 13px;
        color: #173f2f;
        font-size: 23px;
        line-height: 1.12;
}

.donation-other-help p {
        margin: 0;
        line-height: 1.65;
}


.donation-contact {
        padding:
                clamp(70px, 8vw, 100px)
                0;
        background: #fff;
}

.donation-contact__card,
.donation-opeka__card {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 42px;
        padding:
                clamp(30px, 5vw, 52px);
        border-radius: 30px;
}

.donation-contact__card {
        background:
                linear-gradient(
                        140deg,
                        #e6efe0,
                        #f3f0e7
                );
}

.donation-contact__card > div:first-child,
.donation-opeka__card > div:first-child {
        max-width: 740px;
}

.donation-contact__card p:last-child,
.donation-opeka__card p:last-child {
        max-width: 660px;
        margin: 18px 0 0;
        line-height: 1.65;
}

.donation-contact__actions {
        flex: 0 0 auto;
        text-align: center;
}

.donation-contact__actions span {
        display: block;
        margin-top: 8px;
        font-size: 12px;
        opacity: .6;
}


.donation-opeka {
        padding:
                clamp(60px, 8vw, 90px)
                0;
}

.donation-opeka__card {
        border:
                1px solid
                rgba(23,63,47,.08);
        background: #fff;
}

.donation-text-link {
        flex: 0 0 auto;
        color: #367b35;
        font-weight: 850;
        text-decoration: none;
}


@media (max-width: 900px) {

        .donation-hero__grid,
        .donation-payment__grid {
                grid-template-columns: 1fr;
        }

        .donation-help-card {
                max-width: 560px;
        }

        .donation-qr {
                justify-self: start;
        }

        .donation-other-help__grid {
                grid-template-columns: 1fr;
        }

        .donation-contact__card,
        .donation-opeka__card {
                align-items: flex-start;
                flex-direction: column;
        }
}


@media (max-width: 640px) {

        .donation-hero {
                padding-top: 34px;
        }

        .donation-back {
                margin-bottom: 27px;
        }

        .donation-hero h1 {
                font-size:
                        clamp(
                                46px,
                                15vw,
                                66px
                        );
        }

        .donation-hero__actions {
                display: grid;
        }

        .donation-hero__actions .button,
        .donation-secondary-button {
                width: 100%;
        }

        .donation-help-card {
                padding: 24px 20px;
                border-radius: 23px;
        }

        .donation-qr {
                width: 100%;
                padding: 12px;
                border-radius: 22px;
        }

        .donation-qr__image {
                border-radius: 15px;
        }

        .donation-other-help article {
                padding: 24px 20px;
                border-radius: 20px;
        }

        .donation-contact__card,
        .donation-opeka__card {
                padding: 26px 20px;
                border-radius: 23px;
        }

        .donation-contact__actions,
        .donation-contact__actions .button {
                width: 100%;
        }

        .donation-contact__actions .button {
                justify-content: center;
        }
}

/* =========================================================
   END 0.4.79 — DONATION PAGE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.80 — DONATION MOBILE WIDTH FIX

   Fix horizontal overflow caused by long H1/min-content
   sizing inside mobile CSS grid.
   ========================================================= */

@media (max-width: 900px) {

        .donation-page {
                overflow-x: clip;
        }

        .donation-hero__grid,
        .donation-payment__grid {
                grid-template-columns:
                        minmax(0, 1fr);
        }

        .donation-hero__content,
        .donation-help-card,
        .donation-payment__content,
        .donation-qr,
        .donation-contact__card,
        .donation-opeka__card {
                min-width: 0;
                max-width: 100%;
                box-sizing: border-box;
        }
}


@media (max-width: 640px) {

        /*
         * "Пожертвование" is a long unbreakable word.
         * Keep it on one line without expanding the viewport.
         */
        .donation-hero h1 {
                max-width: 100%;

                font-size:
                        clamp(
                                38px,
                                10.5vw,
                                46px
                        );

                line-height: .98;
                letter-spacing: -.04em;
        }


        .donation-hero__lead,
        .donation-hero__text {
                max-width: 100%;
        }


        .donation-hero__lead {
                font-size: 18px;
        }


        .donation-hero__actions {
                width: 100%;
                min-width: 0;

                grid-template-columns:
                        minmax(0, 1fr);
        }


        .donation-hero__actions .button,
        .donation-secondary-button {
                width: 100%;
                max-width: 100%;
                min-width: 0;

                box-sizing: border-box;

                white-space: normal;
                text-align: center;
        }


        .donation-help-card,
        .donation-qr,
        .donation-contact__card,
        .donation-opeka__card {
                width: 100%;
        }


        .donation-contact__actions {
                width: 100%;
                min-width: 0;
        }


        .donation-contact__actions .button {
                max-width: 100%;

                box-sizing: border-box;

                white-space: normal;
                text-align: center;
        }
}

/* =========================================================
   END 0.4.80 — DONATION MOBILE WIDTH FIX
   ========================================================= */


/* =========================================================
   BEGIN 0.4.81 — ADVERTISING PAGE
   ========================================================= */

.advertising-page {
        overflow-x: clip;

        background: #f5f3ec;
        color: #243a30;
}

.advertising-page * {
        min-width: 0;
}

.advertising-hero {
        padding:
                clamp(46px, 7vw, 90px)
                0
                clamp(68px, 9vw, 110px);
}

.advertising-hero__grid {
        display: grid;

        grid-template-columns:
                minmax(0, 1.52fr)
                minmax(280px, .62fr);

        gap:
                clamp(36px, 7vw, 84px);

        align-items: end;
}

.advertising-back {
        display: inline-flex;

        margin-bottom: 34px;

        color: #315a45;

        font-size: 14px;
        font-weight: 750;

        text-decoration: none;
}

.advertising-eyebrow {
        margin: 0 0 12px;

        color: #5b7d58;

        font-size: 12px;
        font-weight: 850;

        letter-spacing: .09em;
        text-transform: uppercase;
}

.advertising-hero h1 {
        max-width: 940px;

        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        48px,
                        7vw,
                        86px
                );

        line-height: .96;

        letter-spacing: -.048em;
}

.advertising-hero__lead {
        max-width: 760px;

        margin: 28px 0 0;

        font-size:
                clamp(
                        19px,
                        1.8vw,
                        23px
                );

        line-height: 1.58;
}

.advertising-hero__actions {
        display: flex;
        flex-wrap: wrap;

        gap: 12px;

        margin-top: 30px;
}

.advertising-secondary-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        min-height: 48px;

        padding: 11px 22px;

        border:
                1px solid
                rgba(23,63,47,.18);

        border-radius: 999px;

        background:
                rgba(255,255,255,.55);

        color: #173f2f;

        font-weight: 800;

        text-decoration: none;
}


.advertising-summary {
        padding: 30px;

        border-radius: 28px;

        background: #173f2f;

        color: #fff;

        box-shadow:
                0 24px 60px
                rgba(23,63,47,.18);
}

.advertising-summary__label {
        margin: 0 0 18px;

        font-size: 13px;
        font-weight: 800;

        opacity: .62;
}

.advertising-summary > div {
        padding: 18px 0;

        border-top:
                1px solid
                rgba(255,255,255,.13);
}

.advertising-summary strong,
.advertising-summary span {
        display: block;
}

.advertising-summary strong {
        font-size: 20px;
}

.advertising-summary span {
        margin-top: 5px;

        font-size: 14px;
        line-height: 1.45;

        opacity: .72;
}


.advertising-formats {
        padding:
                clamp(70px, 9vw, 110px)
                0;

        background: #fff;
}

.advertising-section-heading {
        max-width: 780px;

        margin-bottom: 40px;
}

.advertising-section-heading h2,
.advertising-partnership h2,
.advertising-flexible h2,
.advertising-contact h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        34px,
                        4.7vw,
                        56px
                );

        line-height: 1.03;

        letter-spacing: -.035em;
}

.advertising-formats__grid {
        display: grid;

        grid-template-columns:
                repeat(3, minmax(0, 1fr));

        gap: 18px;
}

.advertising-formats article {
        padding: 28px;

        border:
                1px solid
                rgba(23,63,47,.08);

        border-radius: 24px;

        background: #f5f3ec;
}

.advertising-formats article > span {
        display: inline-grid;
        place-items: center;

        width: 42px;
        height: 42px;

        margin-bottom: 23px;

        border-radius: 50%;

        background: #dfead8;

        color: #315f38;

        font-size: 13px;
        font-weight: 900;
}

.advertising-formats h3 {
        margin: 0 0 12px;

        color: #173f2f;

        font-size: 22px;
        line-height: 1.15;
}

.advertising-formats p {
        margin: 0;

        line-height: 1.62;
}


.advertising-partnership {
        padding:
                clamp(70px, 9vw, 110px)
                0;
}

.advertising-partnership__grid {
        display: grid;

        grid-template-columns:
                minmax(0, .75fr)
                minmax(0, 1.25fr);

        gap:
                clamp(40px, 8vw, 100px);
}

.advertising-partnership__content {
        display: grid;

        gap: 18px;
}

.advertising-partnership__content p {
        margin: 0;

        font-size: 18px;
        line-height: 1.72;
}


.advertising-flexible {
        padding:
                0
                0
                clamp(70px, 9vw, 110px);
}

.advertising-flexible__card {
        padding:
                clamp(30px, 5vw, 52px);

        border-radius: 30px;

        background:
                linear-gradient(
                        140deg,
                        #e6efe0,
                        #f3f0e7
                );
}

.advertising-flexible__card > div {
        max-width: 800px;
}

.advertising-flexible__card p:last-child {
        max-width: 690px;

        margin: 18px 0 0;

        line-height: 1.65;
}


.advertising-contact {
        padding:
                clamp(70px, 9vw, 110px)
                0;

        background: #173f2f;

        color: #fff;
}

.advertising-contact__grid {
        display: grid;

        grid-template-columns:
                minmax(0, .9fr)
                minmax(320px, .65fr);

        gap:
                clamp(40px, 8vw, 100px);

        align-items: center;
}

.advertising-contact .advertising-eyebrow {
        color: #a9c79f;
}

.advertising-contact h2 {
        color: #fff;
}

.advertising-contact__grid
> div:first-child
> p:last-child {
        max-width: 650px;

        margin: 20px 0 0;

        line-height: 1.65;

        opacity: .82;
}

.advertising-contact__card {
        padding: 28px;

        border:
                1px solid
                rgba(255,255,255,.12);

        border-radius: 24px;

        background:
                rgba(255,255,255,.07);
}

.advertising-contact__card span,
.advertising-contact__card small,
.advertising-contact__card a {
        display: block;
}

.advertising-contact__card span {
        margin-top: 20px;

        font-size: 12px;
        font-weight: 800;

        opacity: .58;

        text-transform: uppercase;
}

.advertising-contact__card span:first-child {
        margin-top: 0;
}

.advertising-contact__card a {
        margin-top: 7px;

        overflow-wrap: anywhere;

        color: #fff;

        font-size:
                clamp(
                        17px,
                        2vw,
                        22px
                );

        font-weight: 850;

        text-decoration: none;
}

.advertising-contact__card small {
        margin-top: 5px;

        opacity: .58;
}


@media (max-width: 900px) {

        .advertising-hero__grid,
        .advertising-partnership__grid,
        .advertising-contact__grid {
                grid-template-columns:
                        minmax(0, 1fr);
        }

        .advertising-summary {
                max-width: 560px;
        }

        .advertising-formats__grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );
        }
}


@media (max-width: 640px) {

        .advertising-hero {
                padding-top: 34px;
        }

        .advertising-back {
                margin-bottom: 27px;
        }

        .advertising-hero h1 {
                max-width: 100%;

                font-size:
                        clamp(
                                38px,
                                11vw,
                                48px
                        );

                line-height: 1;

                overflow-wrap: anywhere;
        }

        .advertising-hero__lead {
                font-size: 18px;
        }

        .advertising-hero__actions {
                display: grid;

                width: 100%;

                grid-template-columns:
                        minmax(0, 1fr);
        }

        .advertising-hero__actions .button,
        .advertising-secondary-button {
                width: 100%;
                max-width: 100%;

                box-sizing: border-box;

                white-space: normal;

                text-align: center;
        }

        .advertising-summary {
                width: 100%;

                padding: 24px 20px;

                border-radius: 23px;
        }

        .advertising-formats__grid {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 14px;
        }

        .advertising-formats article {
                padding: 24px 20px;

                border-radius: 20px;
        }

        .advertising-flexible__card,
        .advertising-contact__card {
                width: 100%;

                box-sizing: border-box;
        }

        .advertising-flexible__card {
                padding: 26px 20px;

                border-radius: 23px;
        }

        .advertising-contact__card {
                padding: 24px 20px;

                border-radius: 20px;
        }
}

/* =========================================================
   END 0.4.81 — ADVERTISING PAGE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.82 — GUARDIANS ARCHIVE
   ========================================================= */

.guardians-archive-page {
        overflow-x: clip;

        background: #f5f3ec;
        color: #243a30;
}

.guardians-archive-page * {
        min-width: 0;
}


.guardians-archive-hero {
        padding:
                clamp(48px, 7vw, 90px)
                0
                clamp(56px, 8vw, 88px);
}

.guardians-archive-hero__grid {
        display: grid;

        grid-template-columns:
                minmax(0, 1.45fr)
                minmax(260px, .55fr);

        align-items: end;

        gap:
                clamp(36px, 7vw, 84px);
}

.guardians-archive-back {
        display: inline-flex;

        margin-bottom: 34px;

        color: #315a45;

        font-size: 14px;
        font-weight: 750;

        text-decoration: none;
}

.guardians-archive-eyebrow {
        margin: 0 0 12px;

        color: #5b7d58;

        font-size: 12px;
        font-weight: 850;

        letter-spacing: .09em;
        text-transform: uppercase;
}

.guardians-archive-hero h1 {
        max-width: 900px;

        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        50px,
                        7vw,
                        88px
                );

        line-height: .95;

        letter-spacing: -.048em;
}

.guardians-archive-hero__lead {
        max-width: 760px;

        margin: 28px 0 0;

        font-size:
                clamp(
                        18px,
                        1.8vw,
                        23px
                );

        line-height: 1.6;
}

.guardians-archive-hero__action {
        padding: 26px;

        border:
                1px solid
                rgba(23,63,47,.08);

        border-radius: 24px;

        background: #fff;
}

.guardians-archive-hero__action p {
        margin: 0 0 18px;

        color: #173f2f;

        font-size: 17px;
        font-weight: 750;

        line-height: 1.45;
}


.guardians-archive-list {
        padding:
                0
                0
                clamp(80px, 10vw, 130px);
}

.guardians-archive-grid {
        display: grid;

        grid-template-columns:
                repeat(
                        3,
                        minmax(0, 1fr)
                );

        gap: 20px;
}

.guardians-archive-card {
        display: flex;
        flex-direction: column;

        overflow: hidden;

        border:
                1px solid
                rgba(23,63,47,.075);

        border-radius: 25px;

        background: #fff;

        box-shadow:
                0 16px 46px
                rgba(27,49,37,.055);
}

.guardians-archive-card__media {
        position: relative;

        display: block;

        overflow: hidden;

        aspect-ratio: 4 / 5;

        background: #e7e5dc;
}

.guardians-archive-card__image {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;

        transition:
                transform .42s ease;
}

.guardians-archive-card:hover
.guardians-archive-card__image {
        transform: scale(1.025);
}

.guardians-archive-card__body {
        display: flex;
        flex: 1;
        flex-direction: column;

        padding:
                23px
                22px
                24px;
}

.guardians-archive-card__eyebrow {
        margin: 0 0 9px;

        color: #64805e;

        font-size: 11px;
        font-weight: 850;

        letter-spacing: .08em;

        text-transform: uppercase;
}

.guardians-archive-card h2 {
        margin: 0 0 22px;

        color: #173f2f;

        font-size:
                clamp(
                        19px,
                        1.7vw,
                        23px
                );

        line-height: 1.22;

        letter-spacing: -.018em;
}

.guardians-archive-card h2 a {
        color: inherit;

        text-decoration: none;
}

.guardians-archive-card__link {
        display: inline-flex;
        align-items: center;

        gap: 8px;

        margin-top: auto;

        color: #367b35;

        font-size: 14px;
        font-weight: 850;

        text-decoration: none;
}

.guardians-archive-card__link span {
        transition:
                transform .18s ease;
}

.guardians-archive-card__link:hover span {
        transform: translateX(4px);
}


.guardians-archive-cta {
        padding:
                clamp(70px, 9vw, 110px)
                0;

        background: #fff;
}

.guardians-archive-cta__card {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 40px;

        padding:
                clamp(
                        30px,
                        5vw,
                        52px
                );

        border-radius: 30px;

        background:
                linear-gradient(
                        140deg,
                        #e5eee0,
                        #f3f0e7
                );
}

.guardians-archive-cta__card > div {
        max-width: 730px;
}

.guardians-archive-cta h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        32px,
                        4.4vw,
                        52px
                );

        line-height: 1.04;

        letter-spacing: -.035em;
}

.guardians-archive-cta__card
> div
> p:last-child {
        max-width: 650px;

        margin: 18px 0 0;

        line-height: 1.65;
}


@media (max-width: 900px) {

        .guardians-archive-hero__grid {
                grid-template-columns:
                        minmax(0, 1fr);
        }

        .guardians-archive-hero__action {
                max-width: 520px;
        }

        .guardians-archive-grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );
        }

        .guardians-archive-cta__card {
                align-items: flex-start;
                flex-direction: column;
        }
}


@media (max-width: 640px) {

        .guardians-archive-hero {
                padding-top: 34px;
        }

        .guardians-archive-back {
                margin-bottom: 27px;
        }

        .guardians-archive-hero h1 {
                max-width: 100%;

                font-size:
                        clamp(
                                43px,
                                13vw,
                                58px
                        );

                line-height: .98;
        }

        .guardians-archive-hero__lead {
                font-size: 18px;
        }

        .guardians-archive-hero__action {
                width: 100%;

                box-sizing: border-box;

                padding: 22px 20px;

                border-radius: 21px;
        }

        .guardians-archive-hero__action .button {
                width: 100%;

                justify-content: center;

                text-align: center;
        }

        .guardians-archive-grid {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 14px;
        }

        .guardians-archive-card {
                border-radius: 22px;
        }

        .guardians-archive-card__body {
                padding: 21px 19px 22px;
        }

        .guardians-archive-card h2 {
                font-size: 21px;
        }

        .guardians-archive-cta__card {
                padding: 26px 20px;

                border-radius: 23px;
        }

        .guardians-archive-cta__card .button {
                width: 100%;

                justify-content: center;

                text-align: center;
        }
}

/* =========================================================
   END 0.4.82 — GUARDIANS ARCHIVE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.83 — GUARDIANS ARCHIVE TOP GAP
   Keep the existing Elementor archive layout:
   desktop 5 cards / mobile 2 cards.
   Only add breathing room below the site header.
   ========================================================= */

body.category-opeka .elementor-location-archive,
body.category-54 .elementor-location-archive {
        padding-top: 24px;
}

@media (max-width: 640px) {

        body.category-opeka .elementor-location-archive,
        body.category-54 .elementor-location-archive {
                padding-top: 32px;
        }
}

/* =========================================================
   END 0.4.83 — GUARDIANS ARCHIVE TOP GAP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.84 — NEWS
   ========================================================= */

.news-archive-page,
.news-single-page {
        background: #f5f1e7;
}


/* Archive */

.news-archive-hero {
        padding:
                clamp(52px, 7vw, 88px)
                0
                clamp(34px, 4vw, 52px);
}

.news-archive-eyebrow {
        margin: 0 0 14px;

        color: #67816f;

        font-size: 14px;
        font-weight: 700;

        letter-spacing: .1em;
        text-transform: uppercase;
}

.news-archive-hero h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        48px,
                        7vw,
                        82px
                );

        line-height: .98;
        letter-spacing: -.045em;
}

.news-archive-lead {
        max-width: 720px;

        margin: 22px 0 0;

        color: #405449;

        font-size:
                clamp(
                        18px,
                        2vw,
                        22px
                );

        line-height: 1.55;
}

.news-archive-list {
        padding:
                0
                0
                clamp(80px, 10vw, 130px);
}

.news-archive-grid {
        display: grid;

        grid-template-columns:
                repeat(
                        3,
                        minmax(0, 1fr)
                );

        gap: 22px;
}

.news-card {
        min-width: 0;

        overflow: hidden;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 25px;

        background: #fff;

        box-shadow:
                0 12px 34px
                rgba(31, 45, 36, .06);
}

.news-card__media {
        position: relative;

        display: block;

        aspect-ratio: 4 / 3;

        overflow: hidden;

        background: #e8e2d5;
}

.news-card__media img {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;

        transition:
                transform .35s ease;
}

.news-card:hover .news-card__media img {
        transform: scale(1.025);
}

.news-card__media-placeholder {
        display: block;

        width: 100%;
        height: 100%;
}

.news-card__body {
        padding: 22px 22px 24px;
}

.news-card__date {
        display: block;

        margin: 0 0 10px;

        color: #738078;

        font-size: 14px;
        line-height: 1.4;
}

.news-card__title {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        20px,
                        1.65vw,
                        27px
                );

        line-height: 1.15;
        letter-spacing: -.025em;
}

.news-card__title a {
        display: -webkit-box;

        overflow: hidden;

        color: inherit;

        text-decoration: none;
        overflow-wrap: anywhere;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
}

.news-card__link {
        display: inline-flex;
        align-items: center;

        gap: 8px;

        margin-top: 20px;

        color: #24724d;

        font-size: 15px;
        font-weight: 700;

        text-decoration: none;
}

.news-card__link span {
        transition:
                transform .18s ease;
}

.news-card__link:hover span {
        transform: translateX(4px);
}


/* Single news */

.news-single-header {
        padding:
                clamp(46px, 7vw, 82px)
                0
                clamp(30px, 4vw, 48px);
}

.news-single-header__inner {
        max-width: 1020px;

        margin: 0 auto;
}

.news-single-back {
        display: inline-block;

        margin-bottom: 30px;

        color: #24724d;

        font-size: 15px;
        font-weight: 700;

        text-decoration: none;
}

.news-single-date {
        display: block;

        margin-bottom: 16px;

        color: #6e7e74;

        font-size: 15px;
}

.news-single-header h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        40px,
                        5.6vw,
                        72px
                );

        line-height: 1.03;
        letter-spacing: -.04em;

        overflow-wrap: anywhere;
}

.news-single-featured {
        padding-bottom:
                clamp(
                        38px,
                        5vw,
                        62px
                );
}

.news-single-featured__frame {
        display: flex;
        align-items: center;
        justify-content: center;

        min-height: 260px;

        overflow: hidden;

        border-radius: 29px;

        background: #e7e1d5;
}

.news-single-featured__frame img {
        display: block;

        width: 100%;
        height: auto;

        max-height: 780px;

        object-fit: contain;
}

.news-single-body {
        padding-bottom:
                clamp(
                        58px,
                        8vw,
                        92px
                );
}

.news-single-content {
        max-width: 860px;

        margin: 0 auto;

        color: #2d3d34;

        font-size:
                clamp(
                        18px,
                        1.5vw,
                        20px
                );

        line-height: 1.75;

        overflow-wrap: anywhere;
}

.news-single-content > *:first-child {
        margin-top: 0;
}

.news-single-content > *:last-child {
        margin-bottom: 0;
}

.news-single-content p,
.news-single-content ul,
.news-single-content ol,
.news-single-content blockquote,
.news-single-content figure {
        margin-top: 0;
        margin-bottom: 1.35em;
}

.news-single-content h2,
.news-single-content h3,
.news-single-content h4 {
        margin:
                1.7em
                0
                .7em;

        color: #173f2f;

        line-height: 1.15;
        letter-spacing: -.025em;
}

.news-single-content img,
.news-single-content video,
.news-single-content iframe {
        max-width: 100%;
}

.news-single-content img,
.news-single-content video {
        height: auto;

        border-radius: 22px;
}

.news-single-content video {
        display: block;

        width: 100%;
}

.news-single-content iframe {
        width: 100%;
}

.news-single-content figure {
        max-width: 100%;
}

.news-single-content figcaption {
        margin-top: 8px;

        color: #718078;

        font-size: 14px;
        line-height: 1.45;
}

.news-single-footer {
        padding:
                0
                0
                clamp(76px, 10vw, 120px);
}

.news-single-footer .shell {
        max-width: 860px;
}

.news-single-all {
        display: inline-flex;
        align-items: center;

        gap: 10px;

        padding:
                14px
                20px;

        border-radius: 999px;

        background: #1f704a;

        color: #fff;

        font-size: 15px;
        font-weight: 700;

        text-decoration: none;
}

.news-single-all span {
        transition:
                transform .18s ease;
}

.news-single-all:hover span {
        transform: translateX(4px);
}


@media (max-width: 980px) {

        .news-archive-grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );
        }
}


@media (max-width: 640px) {

        .news-archive-hero {
                padding-top: 38px;
        }

        .news-archive-hero h1 {
                font-size:
                        clamp(
                                45px,
                                15vw,
                                62px
                        );
        }

        .news-archive-grid {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 16px;
        }

        .news-card {
                border-radius: 22px;
        }

        .news-card__body {
                padding: 20px 18px 22px;
        }

        .news-card__title {
                font-size: 22px;
        }

        .news-single-header {
                padding-top: 38px;
        }

        .news-single-back {
                margin-bottom: 25px;
        }

        .news-single-header h1 {
                font-size:
                        clamp(
                                36px,
                                10.8vw,
                                48px
                        );
        }

        .news-single-featured__frame {
                border-radius: 22px;
        }

        .news-single-content {
                font-size: 18px;
        }

        .news-single-content img,
        .news-single-content video {
                border-radius: 18px;
        }
}

/* =========================================================
   END 0.4.84 — NEWS
   ========================================================= */


/* =========================================================
   BEGIN 0.4.85 — NEWS MOBILE TITLE
   Reduce only single-news H1 on phones.
   Desktop and news archive stay unchanged.
   ========================================================= */

@media (max-width: 640px) {

        .news-single-header h1 {
                font-size:
                        clamp(
                                30px,
                                8.2vw,
                                36px
                        );

                line-height: 1.05;
                letter-spacing: -.03em;
        }
}

/* =========================================================
   END 0.4.85 — NEWS MOBILE TITLE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.86 — NEWS TITLE SIZE
   Calmer single-news headline on desktop and mobile.
   Archive stays unchanged.
   ========================================================= */

.news-single-header h1 {
        font-size:
                clamp(
                        34px,
                        3.2vw,
                        48px
                );

        line-height: 1.08;
        letter-spacing: -.025em;
}

@media (max-width: 640px) {

        .news-single-header h1 {
                font-size:
                        clamp(
                                26px,
                                7vw,
                                30px
                        );

                line-height: 1.08;
                letter-spacing: -.02em;
        }
}

/* =========================================================
   END 0.4.86 — NEWS TITLE SIZE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.87 — SHOP
   Shop archive only.
   Product / cart / checkout stay on existing templates.
   ========================================================= */

.tickets-shop-page {
        background: #f5f1e7;
}


.tickets-shop-hero {
        padding:
                clamp(54px, 7vw, 88px)
                0
                34px;
}

.tickets-shop-hero__inner {
        max-width: 900px;
}

.tickets-shop-eyebrow {
        margin: 0 0 13px;

        color: #67816f;

        font-size: 14px;
        font-weight: 700;

        letter-spacing: .1em;
        text-transform: uppercase;
}

.tickets-shop-hero h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        44px,
                        5vw,
                        66px
                );

        line-height: 1;
        letter-spacing: -.04em;
}

.tickets-shop-lead {
        max-width: 700px;

        margin: 20px 0 0;

        color: #405449;

        font-size:
                clamp(
                        19px,
                        2vw,
                        23px
                );

        line-height: 1.5;
}

.tickets-shop-actions {
        display: flex;
        align-items: center;
        flex-wrap: wrap;

        gap: 20px;

        margin-top: 28px;
}

.tickets-shop-help-link {
        color: #24724d;

        font-size: 15px;
        font-weight: 700;

        text-decoration: none;
}


.tickets-shop-rules {
        padding:
                10px
                0
                clamp(54px, 7vw, 76px);
}

.tickets-shop-rules__grid {
        display: grid;

        grid-template-columns:
                repeat(
                        4,
                        minmax(0, 1fr)
                );

        gap: 14px;
}

.tickets-shop-rule {
        min-width: 0;

        padding: 22px 20px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 22px;

        background:
                rgba(255, 255, 255, .72);
}

.tickets-shop-rule span {
        display: block;

        margin-bottom: 14px;

        color: #24724d;

        font-size: 13px;
        font-weight: 800;

        letter-spacing: .08em;
}

.tickets-shop-rule p {
        margin: 0;

        color: #30473a;

        font-size: 15px;
        line-height: 1.55;
}


.tickets-shop-products {
        padding:
                clamp(50px, 7vw, 74px)
                0
                clamp(80px, 10vw, 120px);

        background: #fff;
}

.tickets-shop-section-heading {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;

        gap: 30px;

        margin-bottom: 30px;
}

.tickets-shop-section-heading h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        34px,
                        4vw,
                        52px
                );

        line-height: 1.05;
        letter-spacing: -.035em;
}

.tickets-shop-section-heading > a {
        display: inline-flex;
        align-items: center;

        gap: 8px;

        color: #24724d;

        font-size: 15px;
        font-weight: 700;

        text-decoration: none;
}


.tickets-shop-grid {
        display: grid;

        grid-template-columns:
                repeat(
                        4,
                        minmax(0, 1fr)
                );

        gap: 18px;
}

.tickets-product-card {
        display: flex;
        flex-direction: column;

        min-width: 0;

        overflow: hidden;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 24px;

        background: #f8f5ed;

        box-shadow:
                0 12px 34px
                rgba(31, 45, 36, .05);
}

.tickets-product-card__media {
        display: block;

        aspect-ratio: 4 / 3;

        overflow: hidden;

        background: #ece6da;
}

.tickets-product-card__media img {
        display: block;

        width: 100%;
        height: 100%;

        object-fit: cover;

        transition:
                transform .3s ease;
}

.tickets-product-card:hover
.tickets-product-card__media img {
        transform: scale(1.025);
}

.tickets-product-card__body {
        display: flex;
        flex: 1;
        flex-direction: column;

        padding: 21px 20px 22px;
}

.tickets-product-card h3 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        20px,
                        1.45vw,
                        24px
                );

        line-height: 1.15;
        letter-spacing: -.025em;

        overflow-wrap: anywhere;
}

.tickets-product-card h3 a {
        color: inherit;
        text-decoration: none;
}

.tickets-product-card__summary {
        margin: 15px 0 0;

        color: #506057;

        font-size: 15px;
        line-height: 1.55;
}

.tickets-product-card__bottom {
        margin-top: auto;
        padding-top: 22px;
}

.tickets-product-card__price {
        margin-bottom: 17px;

        color: #173f2f;

        font-size: 24px;
        font-weight: 800;

        line-height: 1;
}

.tickets-product-card__price del {
        opacity: .55;
}

.tickets-product-card__price ins {
        text-decoration: none;
}

.tickets-product-card__actions {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 12px;
}

.tickets-product-card__details {
        color: #24724d;

        font-size: 14px;
        font-weight: 700;

        text-decoration: none;
}

.tickets-product-card__cart {
        flex: 0 0 auto;
}

.tickets-product-card .added_to_cart {
        display: inline-block;

        margin-top: 12px;

        color: #24724d;

        font-size: 14px;
        font-weight: 700;

        text-decoration: none;
}


.tickets-shop-info {
        padding:
                clamp(70px, 9vw, 104px)
                0;
}

.tickets-shop-info__card {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 40px;

        padding:
                clamp(
                        28px,
                        5vw,
                        48px
                );

        border-radius: 28px;

        background:
                linear-gradient(
                        135deg,
                        #e6efe7,
                        #f2eee2
                );
}

.tickets-shop-info__card > div {
        max-width: 700px;
}

.tickets-shop-info h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        32px,
                        4vw,
                        48px
                );

        line-height: 1.05;
        letter-spacing: -.035em;
}

.tickets-shop-info__card p:last-child {
        margin: 17px 0 0;

        color: #405449;

        font-size: 17px;
        line-height: 1.6;
}


.tickets-shop-page
.woocommerce-notices-wrapper {
        margin-bottom: 24px;
}

.tickets-shop-page
.woocommerce-message,
.tickets-shop-page
.woocommerce-error,
.tickets-shop-page
.woocommerce-info {
        box-sizing: border-box;

        margin: 0 0 20px;

        padding: 16px 18px;

        border: 0;
        border-radius: 16px;

        background: #edf4ed;

        color: #294738;

        list-style: none;
}


@media (max-width: 1050px) {

        .tickets-shop-rules__grid,
        .tickets-shop-grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );
        }
}


@media (max-width: 700px) {

        .tickets-shop-hero {
                padding-top: 38px;
        }

        .tickets-shop-hero h1 {
                font-size:
                        clamp(
                                38px,
                                11vw,
                                48px
                        );
        }

        .tickets-shop-actions {
                align-items: flex-start;
                flex-direction: column;
        }

        .tickets-shop-rules__grid,
        .tickets-shop-grid {
                grid-template-columns:
                        minmax(0, 1fr);
        }

        .tickets-shop-section-heading {
                align-items: flex-start;
                flex-direction: column;

                gap: 14px;
        }

        .tickets-product-card {
                border-radius: 22px;
        }

        .tickets-product-card__actions {
                align-items: stretch;
                flex-direction: column;
        }

        .tickets-product-card__details {
                padding: 4px 0;
        }

        .tickets-product-card__cart {
                justify-content: center;
                width: 100%;
        }

        .tickets-shop-info__card {
                align-items: flex-start;
                flex-direction: column;

                gap: 26px;

                border-radius: 24px;
        }

        .tickets-shop-info__card .button {
                width: 100%;

                justify-content: center;
        }
}

/* =========================================================
   END 0.4.87 — SHOP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.88 — SHOP COMPACT
   Restore theme header on Woo shop.
   Make hero/rules compact and bring products higher.
   Hide only the floating cart button on the shop archive.
   Product/cart/checkout logic stays untouched.
   ========================================================= */


/* Theme header must be visible on the shop archive. */

body.woocommerce-shop .site-header {
        display: block !important;
        visibility: visible !important;

        opacity: 1 !important;
}

body.woocommerce-shop .site-header__inner {
        display: flex !important;
        visibility: visible !important;

        opacity: 1 !important;
}


/* Woo styles must not neutralize our green buttons. */

.tickets-shop-page .button.button--green {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        border-color: #1f704a !important;

        background: #1f704a !important;
        color: #fff !important;

        box-shadow: none !important;
}


/* Compact hero. */

.tickets-shop-hero {
        padding:
                clamp(28px, 3.2vw, 42px)
                0
                18px;
}

.tickets-shop-eyebrow {
        margin-bottom: 9px;
}

.tickets-shop-hero h1 {
        font-size:
                clamp(
                        40px,
                        4.2vw,
                        58px
                );
}

.tickets-shop-lead {
        margin-top: 12px;

        font-size:
                clamp(
                        17px,
                        1.5vw,
                        20px
                );

        line-height: 1.45;
}

.tickets-shop-actions {
        gap: 16px;

        margin-top: 18px;
}

.tickets-shop-actions .button {
        min-height: 44px;

        padding:
                11px
                18px;
}


/* Compact rules. */

.tickets-shop-rules {
        padding:
                4px
                0
                clamp(28px, 3.5vw, 40px);
}

.tickets-shop-rules__grid {
        gap: 10px;
}

.tickets-shop-rule {
        display: grid;

        grid-template-columns:
                30px
                minmax(0, 1fr);

        align-items: start;

        gap: 9px;

        padding:
                14px
                15px;

        border-radius: 17px;
}

.tickets-shop-rule span {
        margin: 1px 0 0;

        font-size: 12px;
        line-height: 1.4;
}

.tickets-shop-rule p {
        font-size: 14px;
        line-height: 1.4;
}


/* Products should begin much sooner. */

.tickets-shop-products {
        padding:
                clamp(32px, 4vw, 46px)
                0
                clamp(70px, 8vw, 100px);
}

.tickets-shop-section-heading {
        margin-bottom: 23px;
}

.tickets-shop-section-heading h2 {
        font-size:
                clamp(
                        32px,
                        3.5vw,
                        46px
                );
}


/*
 * The fixed FunnelKit cart button covers content on narrow screens.
 * The cart plugin itself and its drawer remain active; only this
 * floating launcher is hidden on the shop archive.
 */

body.woocommerce-shop #fkcart-floating-toggler {
        display: none !important;
}


@media (max-width: 700px) {

        .tickets-shop-hero {
                padding:
                        24px
                        0
                        14px;
        }

        .tickets-shop-eyebrow {
                font-size: 12px;
        }

        .tickets-shop-hero h1 {
                font-size:
                        clamp(
                                34px,
                                9.5vw,
                                40px
                        );

                line-height: 1.02;
        }

        .tickets-shop-lead {
                margin-top: 10px;

                font-size: 17px;
                line-height: 1.4;
        }

        .tickets-shop-actions {
                display: grid;

                grid-template-columns:
                        auto
                        minmax(0, 1fr);

                align-items: center;

                gap: 10px;

                margin-top: 16px;
        }

        .tickets-shop-actions .button {
                width: auto;

                min-height: 40px;

                padding:
                        9px
                        13px;

                font-size: 14px;
        }

        .tickets-shop-help-link {
                font-size: 13px;
                line-height: 1.25;
        }


        /*
         * Important: keep rules 2 x 2 on phones,
         * instead of the old four-card vertical stack.
         */

        .tickets-shop-rules__grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );

                gap: 8px;
        }

        .tickets-shop-rule {
                display: block;

                padding:
                        12px
                        11px;

                border-radius: 15px;
        }

        .tickets-shop-rule span {
                margin-bottom: 6px;

                font-size: 11px;
        }

        .tickets-shop-rule p {
                font-size: 12.5px;
                line-height: 1.35;
        }


        /*
         * 0.4.87 changed both rules and products to one column.
         * Rules stay 2 columns; product cards remain 1 column.
         */

        .tickets-shop-grid {
                grid-template-columns:
                        minmax(0, 1fr);
        }


        .tickets-shop-products {
                padding-top: 28px;
        }

        .tickets-shop-section-heading {
                margin-bottom: 18px;
        }

        .tickets-shop-section-heading h2 {
                font-size: 34px;
        }
}


/* =========================================================
   END 0.4.88 — SHOP COMPACT
   ========================================================= */


/* =========================================================
   BEGIN 0.4.89 — SHOP PRODUCT CARDS
   Compact catalog:
   image / title / price / add-to-cart.
   Product description remains stored but is not shown here.
   Mobile: two products per row.
   ========================================================= */


/* Catalog does not need excerpts or a duplicate Details link. */

.tickets-product-card__summary,
.tickets-product-card__details {
        display: none !important;
}


.tickets-product-card__bottom {
        margin-top: auto;
        padding-top: 16px;
}


.tickets-product-card__actions {
        justify-content: flex-start;
}


/* Floating launcher must not cover shop cards. */

body.woocommerce-shop #fkcart-floating-toggler,
body.post-type-archive-product #fkcart-floating-toggler {
        display: none !important;
}


@media (max-width: 700px) {

        /*
         * Two products side by side.
         */

        .tickets-shop-grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );

                gap: 10px;
        }


        .tickets-product-card {
                min-width: 0;

                border-radius: 16px;
        }


        /*
         * Keep ticket/certificate artwork visible.
         */

        .tickets-product-card__media {
                aspect-ratio: 1 / 1;

                background: #fff;
        }

        .tickets-product-card__media img {
                object-fit: contain;
        }


        .tickets-product-card__body {
                padding:
                        12px
                        10px
                        13px;
        }


        .tickets-product-card h3 {
                margin: 0;

                font-size: 15px;
                line-height: 1.18;
                letter-spacing: -.015em;
        }

        .tickets-product-card h3 a {
                display: -webkit-box;

                overflow: hidden;

                -webkit-box-orient: vertical;
                -webkit-line-clamp: 3;
        }


        .tickets-product-card__bottom {
                padding-top: 12px;
        }


        .tickets-product-card__price {
                margin-bottom: 10px;

                font-size: 20px;
                line-height: 1;
        }


        .tickets-product-card__actions {
                display: block;
        }


        .tickets-product-card__cart {
                display: flex;
                align-items: center;
                justify-content: center;

                width: 100%;
                min-height: 36px;

                box-sizing: border-box;

                padding:
                        8px
                        5px;

                font-size: 12.5px;
                line-height: 1.1;

                text-align: center;
        }


        .tickets-product-card .added_to_cart {
                margin-top: 7px;

                font-size: 11.5px;
        }
}

/* =========================================================
   END 0.4.89 — SHOP PRODUCT CARDS
   ========================================================= */


/* =========================================================
   BEGIN 0.4.90 — SHOP HEADER AND CARDS

   Shop must use the same light theme header/navigation
   as the rest of the rebuilt site.

   Mobile product cards remain 2 per row, but regain
   the rounded visual language used on desktop.

   WooCommerce business logic is untouched.
   ========================================================= */


/* =========================================================
   SHOP — DESKTOP HEADER
   ========================================================= */

body.woocommerce-shop .site-header {
        display: block !important;

        position: sticky !important;
        top: 0 !important;
        z-index: 10000 !important;

        width: 100% !important;
        min-height: 88px !important;

        visibility: visible !important;
        opacity: 1 !important;

        background:
                rgba(
                        255,
                        253,
                        249,
                        .98
                ) !important;

        border-bottom:
                1px solid
                rgba(
                        58,
                        72,
                        62,
                        .10
                ) !important;

        box-shadow:
                0 5px 24px
                rgba(
                        49,
                        36,
                        23,
                        .04
                ) !important;

        backdrop-filter:
                blur(16px);
}


body.woocommerce-shop .site-header__inner {
        position: relative !important;

        display: flex !important;
        align-items: center !important;

        width:
                min(
                        1380px,
                        calc(100% - 48px)
                ) !important;

        min-height: 88px !important;

        margin:
                0
                auto !important;

        visibility: visible !important;
        opacity: 1 !important;
}


body.woocommerce-shop .site-brand {
        order: 1;

        display: flex !important;

        visibility: visible !important;
        opacity: 1 !important;
}


body.woocommerce-shop .site-navigation {
        order: 2;

        position: static !important;

        display: block !important;

        width: auto !important;
        max-height: none !important;

        margin-left: auto !important;
        margin-right: auto !important;

        padding: 0 !important;

        overflow: visible !important;

        visibility: visible !important;
        opacity: 1 !important;

        transform: none !important;

        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
}


body.woocommerce-shop .site-menu {
        display: flex !important;
        align-items: center !important;

        gap: 27px !important;

        margin: 0 !important;
        padding: 0 !important;
}


body.woocommerce-shop
.site-menu > li > a {
        color: #352f28 !important;

        text-shadow: none !important;
}


body.woocommerce-shop
.site-menu > li > a:hover {
        color: #2f793e !important;
}


body.woocommerce-shop .menu-toggle {
        display: none !important;
}


body.woocommerce-shop
.site-header__tickets {
        order: 3;

        display: inline-flex !important;

        visibility: visible !important;
        opacity: 1 !important;
}


/* =========================================================
   SHOP — MOBILE / TABLET HEADER
   ========================================================= */

@media (max-width: 1040px) {

        body.woocommerce-shop .site-header {
                min-height: 72px !important;
        }


        body.woocommerce-shop
        .site-header__inner {
                width:
                        min(
                                calc(100% - 32px),
                                var(--ls-container)
                        ) !important;

                min-height: 72px !important;
        }


        body.woocommerce-shop
        .menu-toggle {
                order: 3;

                display: block !important;

                width: 44px;
                height: 44px;

                margin-left: auto !important;

                padding: 10px;

                border:
                        1px solid
                        rgba(
                                23,
                                63,
                                47,
                                .12
                        ) !important;

                border-radius: 50%;

                background:
                        #eef3ec !important;

                box-shadow: none !important;

                visibility: visible !important;
                opacity: 1 !important;
        }


        body.woocommerce-shop
        .menu-toggle span {
                display: block !important;

                height: 2px;

                margin: 5px 0;

                background:
                        #173f2f !important;
        }


        body.woocommerce-shop
        .site-navigation {
                position: absolute !important;

                left: 0 !important;
                right: 0 !important;

                top:
                        calc(100% + 8px) !important;

                display: block !important;

                width: auto !important;
                max-height:
                        calc(
                                100vh - 110px
                        ) !important;

                margin: 0 !important;

                padding:
                        12px !important;

                overflow-y: auto !important;

                visibility: hidden !important;
                opacity: 0 !important;

                pointer-events: none;

                transform:
                        translateY(-8px) !important;

                background:
                        rgba(
                                255,
                                253,
                                249,
                                .99
                        ) !important;

                border:
                        1px solid
                        rgba(
                                23,
                                63,
                                47,
                                .11
                        ) !important;

                border-radius:
                        20px !important;

                box-shadow:
                        0 18px 50px
                        rgba(
                                20,
                                40,
                                28,
                                .16
                        ) !important;

                transition:
                        opacity .18s ease,
                        transform .18s ease,
                        visibility .18s ease;
        }


        body.woocommerce-shop
        .site-navigation.is-open {
                visibility: visible !important;
                opacity: 1 !important;

                pointer-events: auto;

                transform:
                        translateY(0) !important;
        }


        body.woocommerce-shop
        .site-menu {
                display: block !important;

                margin: 0 !important;
                padding: 0 !important;
        }


        body.woocommerce-shop
        .site-menu > li {
                border-bottom:
                        1px solid
                        rgba(
                                23,
                                63,
                                47,
                                .08
                        );
        }


        body.woocommerce-shop
        .site-menu > li:last-child {
                border-bottom: 0;
        }


        body.woocommerce-shop
        .site-menu a {
                display: block;

                padding:
                        10px
                        11px;

                color:
                        #2e4035 !important;

                text-shadow: none !important;

                border-radius:
                        10px;
        }


        body.woocommerce-shop
        .site-menu a:hover {
                color:
                        #24724d !important;

                background:
                        #edf3eb;
        }


        body.woocommerce-shop
        .site-menu .sub-menu {
                position: static !important;

                display: block !important;

                min-width: 0 !important;

                padding-left:
                        12px !important;

                background:
                        transparent !important;

                border: 0 !important;
                box-shadow: none !important;
        }


        body.woocommerce-shop
        .site-menu .sub-menu a {
                color:
                        #52635a !important;
        }


        body.woocommerce-shop
        .site-header__tickets {
                display: none !important;
        }
}


/* Admin bar + sticky header. */

@media (min-width: 783px) {

        body.admin-bar.woocommerce-shop
        .site-header {
                top: 32px !important;
        }
}


@media (max-width: 782px) {

        body.admin-bar.woocommerce-shop
        .site-header {
                top: 46px !important;
        }
}


/* =========================================================
   MOBILE SHOP CARDS — ROUNDED
   ========================================================= */

@media (max-width: 700px) {

        .tickets-shop-grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );

                gap: 12px;
        }


        .tickets-product-card {
                overflow: hidden;

                border-radius:
                        24px !important;

                box-shadow:
                        0 9px 26px
                        rgba(
                                31,
                                45,
                                36,
                                .07
                        );
        }


        .tickets-product-card__media {
                overflow: hidden;

                border-radius:
                        23px
                        23px
                        0
                        0;

                background: #fff;
        }


        .tickets-product-card__media img {
                border-radius:
                        23px
                        23px
                        0
                        0;
        }


        .tickets-product-card__body {
                border-radius:
                        0
                        0
                        23px
                        23px;
        }
}


/* =========================================================
   END 0.4.90 — SHOP HEADER AND CARDS
   ========================================================= */


/* =========================================================
   BEGIN 0.4.92 — SHOP MOBILE STICKY HEADER

   On small WordPress screens the admin bar is not a fixed
   desktop-style 32/46px layer. Keeping a 46px sticky offset
   makes the shop header float in the middle of the viewport.

   Let the mobile shop header stick to the actual viewport top.
   ========================================================= */

@media (max-width: 782px) {

        body.admin-bar.woocommerce-shop
        .site-header {
                top: 0 !important;
        }
}

/* =========================================================
   END 0.4.92 — SHOP MOBILE STICKY HEADER
   ========================================================= */


/* =========================================================
   BEGIN 0.4.93 — SHOP MOBILE TOP GAP

   Header and shop main are adjacent in the real HTML.
   Neutralize legacy Woo/main top spacing on phones and
   keep only a deliberate 24px gap below the site header.
   ========================================================= */

@media (max-width: 700px) {

        body.woocommerce-shop
        main#primary.tickets-shop-page {
                margin-top: 0 !important;
                padding-top: 0 !important;
        }

        body.woocommerce-shop
        .tickets-shop-hero {
                margin-top: 0 !important;

                padding:
                        24px
                        0
                        14px
                        !important;
        }
}

/* =========================================================
   END 0.4.93 — SHOP MOBILE TOP GAP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.94 — SHOP MOBILE IMAGES

   Match mobile product artwork to the desktop treatment:
   full-bleed image, rounded top corners, compact 4:3 media.
   Product grid remains two columns.
   ========================================================= */

@media (max-width: 700px) {

        .tickets-product-card__media {
                aspect-ratio: 4 / 3;

                overflow: hidden;

                border-radius:
                        24px
                        24px
                        0
                        0;

                background: #ece6da;
        }


        .tickets-product-card__media img {
                display: block;

                width: 100%;
                height: 100%;

                object-fit: cover;
                object-position: center;

                border-radius:
                        24px
                        24px
                        0
                        0;
        }
}

/* =========================================================
   END 0.4.94 — SHOP MOBILE IMAGES
   ========================================================= */


/* =========================================================
   BEGIN 0.4.95 — CUSTOMER PRODUCT PAGES
   ========================================================= */

.tickets-product-page {
        background: #f5f1e7;
}

.tickets-product-hero {
        padding:
                clamp(34px, 4vw, 52px)
                0
                clamp(58px, 7vw, 86px);
}

.tickets-product-back {
        display: inline-flex;

        margin-bottom: 24px;

        color: #24724d;

        font-size: 14px;
        font-weight: 750;

        text-decoration: none;
}

.tickets-product-layout {
        display: grid;

        grid-template-columns:
                minmax(0, .92fr)
                minmax(0, 1.08fr);

        align-items: center;

        gap:
                clamp(
                        34px,
                        5vw,
                        70px
                );
}

.tickets-product-media {
        display: flex;
        align-items: center;
        justify-content: center;

        min-width: 0;
        min-height: 440px;

        overflow: hidden;

        box-sizing: border-box;

        padding: 22px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 30px;

        background: #fff;

        box-shadow:
                0 18px 48px
                rgba(31, 45, 36, .07);
}

.tickets-product-image {
        display: block;

        width: auto;
        height: auto;

        max-width: 100%;
        max-height: 620px;

        object-fit: contain;

        border-radius: 22px;
}

.tickets-product-image-placeholder {
        width: 100%;

        aspect-ratio: 1 / 1;

        border-radius: 22px;

        background: #ebe5d9;
}

.tickets-product-summary {
        min-width: 0;
}

.tickets-product-eyebrow {
        margin: 0 0 12px;

        color: #67816f;

        font-size: 13px;
        font-weight: 800;

        letter-spacing: .09em;
        text-transform: uppercase;
}

.tickets-product-summary h1 {
        max-width: 780px;

        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        32px,
                        3.2vw,
                        46px
                );

        line-height: 1.06;
        letter-spacing: -.035em;

        overflow-wrap: anywhere;
}

.tickets-product-price {
        margin-top: 25px;

        color: #173f2f;

        font-size:
                clamp(
                        30px,
                        3vw,
                        40px
                );

        font-weight: 850;
        line-height: 1;
}

.tickets-product-price del {
        opacity: .5;
}

.tickets-product-price ins {
        text-decoration: none;
}

.tickets-product-stock {
        display: inline-flex;

        margin-top: 14px;

        padding: 7px 11px;

        border-radius: 999px;

        background: #e5efe5;

        color: #286343;

        font-size: 13px;
        font-weight: 750;
}

.tickets-product-buy {
        margin-top: 26px;
}

.tickets-product-buy form.cart {
        display: flex !important;
        align-items: stretch;

        gap: 12px;

        margin: 0 !important;
}

.tickets-product-buy .quantity {
        float: none !important;

        margin: 0 !important;
}

.tickets-product-buy
.quantity .qty {
        width: 78px !important;
        height: 48px;

        box-sizing: border-box;

        margin: 0;

        padding: 8px 10px;

        border:
                1px solid
                rgba(23, 63, 47, .16);

        border-radius: 13px;

        background: #fff;

        color: #173f2f;

        font-size: 17px;
        font-weight: 700;

        text-align: center;
}

.tickets-product-buy
.single_add_to_cart_button {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;

        min-height: 48px;

        margin: 0 !important;

        padding:
                0
                25px !important;

        border: 0 !important;
        border-radius: 999px !important;

        background: #1f704a !important;

        color: #fff !important;

        font-size: 15px !important;
        font-weight: 800 !important;

        line-height: 1 !important;

        box-shadow: none !important;
}

.tickets-product-buy
.single_add_to_cart_button:hover {
        background: #185e3e !important;
}

.tickets-product-cart-link {
        display: inline-flex;

        margin-top: 17px;

        color: #24724d;

        font-size: 14px;
        font-weight: 750;

        text-decoration: none;
}

.tickets-product-page
.woocommerce-notices-wrapper {
        margin-bottom: 20px;
}

.tickets-product-page
.woocommerce-message,
.tickets-product-page
.woocommerce-error,
.tickets-product-page
.woocommerce-info {
        margin:
                0
                0
                18px !important;

        padding:
                15px
                18px !important;

        border: 0 !important;
        border-radius: 15px;

        background: #edf4ed;

        color: #294738;

        list-style: none;
}

.tickets-product-description {
        padding:
                clamp(58px, 7vw, 84px)
                0;

        background: #fff;
}

.tickets-product-description__inner {
        max-width: 880px;

        margin: 0 auto;
}

.tickets-product-description h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        30px,
                        3.5vw,
                        44px
                );

        line-height: 1.08;
        letter-spacing: -.03em;
}

.tickets-product-content {
        margin-top: 24px;

        color: #34483d;

        font-size:
                clamp(
                        17px,
                        1.4vw,
                        19px
                );

        line-height: 1.72;

        overflow-wrap: anywhere;
}

.tickets-product-content > *:first-child {
        margin-top: 0;
}

.tickets-product-content > *:last-child {
        margin-bottom: 0;
}

.tickets-product-content p {
        margin: 0 0 1.15em;
}

.tickets-product-content a {
        color: #24724d;
}

.tickets-product-bottom {
        padding:
                clamp(64px, 8vw, 96px)
                0;
}

.tickets-product-bottom__card {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 36px;

        padding:
                clamp(
                        26px,
                        4vw,
                        42px
                );

        border-radius: 27px;

        background:
                linear-gradient(
                        135deg,
                        #e6efe7,
                        #f2eee2
                );
}

.tickets-product-bottom__card > div {
        max-width: 670px;
}

.tickets-product-bottom h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        28px,
                        3vw,
                        40px
                );

        line-height: 1.08;
        letter-spacing: -.03em;
}

.tickets-product-bottom p {
        margin: 12px 0 0;

        color: #4a5d52;

        line-height: 1.55;
}


@media (max-width: 800px) {

        .tickets-product-hero {
                padding:
                        24px
                        0
                        52px;
        }

        .tickets-product-back {
                margin-bottom: 18px;
        }

        .tickets-product-layout {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 24px;
        }

        .tickets-product-media {
                min-height: 0;

                padding: 12px;

                border-radius: 23px;
        }

        .tickets-product-image {
                max-height: 440px;

                border-radius: 17px;
        }

        .tickets-product-summary h1 {
                font-size:
                        clamp(
                                28px,
                                8vw,
                                34px
                        );

                line-height: 1.08;
        }

        .tickets-product-price {
                margin-top: 18px;

                font-size: 30px;
        }

        .tickets-product-buy {
                margin-top: 20px;
        }

        .tickets-product-buy
        form.cart {
                display: grid !important;

                grid-template-columns:
                        72px
                        minmax(0, 1fr);

                gap: 9px;
        }

        .tickets-product-buy
        .quantity .qty {
                width: 72px !important;
                height: 44px;
        }

        .tickets-product-buy
        .single_add_to_cart_button {
                width: 100%;

                min-height: 44px;

                padding:
                        0
                        14px !important;
        }

        .tickets-product-description {
                padding:
                        48px
                        0;
        }

        .tickets-product-description h2 {
                font-size: 30px;
        }

        .tickets-product-content {
                margin-top: 18px;

                font-size: 17px;
                line-height: 1.65;
        }

        .tickets-product-bottom {
                padding:
                        54px
                        0
                        70px;
        }

        .tickets-product-bottom__card {
                align-items: flex-start;
                flex-direction: column;

                gap: 22px;

                border-radius: 23px;
        }

        .tickets-product-bottom__card
        .button {
                width: 100%;

                justify-content: center;
        }
}

/* =========================================================
   END 0.4.95 — CUSTOMER PRODUCT PAGES
   ========================================================= */

/* =========================================================
   BEGIN 0.4.96 — PRODUCT MOBILE TOP GAP

   Custom ticket product pages use the normal site header
   followed directly by the custom main element.

   Neutralize the generic mobile .site-main 74px spacer.
   The product hero already provides its own deliberate
   24px spacing below the header.

   Only .tickets-product-page is affected.
   ========================================================= */

@media (max-width: 700px) {

        body.single-product
        main#primary.tickets-product-page {
                margin-top: 0 !important;
                padding-top: 0 !important;
        }
}

/* =========================================================
   END 0.4.96 — PRODUCT MOBILE TOP GAP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.98 — NATIVE CART
   ========================================================= */


.tickets-cart-page {
        background: #f5f1e7;
        color: #173f2f;
}


.tickets-cart-hero {
        padding:
                clamp(34px, 4vw, 48px)
                0
                28px;
}


.tickets-cart-back {
        display: inline-flex;

        margin-bottom: 24px;

        color: #24724d;

        font-size: 14px;
        font-weight: 750;

        text-decoration: none;
}


.tickets-cart-eyebrow {
        margin: 0 0 10px;

        color: #67816f;

        font-size: 13px;
        font-weight: 800;

        letter-spacing: .09em;
        text-transform: uppercase;
}


.tickets-cart-hero h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        38px,
                        4vw,
                        54px
                );

        line-height: 1.04;
        letter-spacing: -.035em;
}


.tickets-cart-intro {
        max-width: 620px;

        margin:
                15px
                0
                0;

        color: #52665b;

        font-size: 17px;
        line-height: 1.55;
}


.tickets-cart-content {
        padding:
                0
                0
                clamp(
                        70px,
                        8vw,
                        100px
                );
}


.tickets-cart-shell
.woocommerce {
        display: grid;

        grid-template-columns:
                minmax(0, 1.55fr)
                minmax(320px, .75fr);

        align-items: start;

        gap:
                clamp(
                        24px,
                        3vw,
                        34px
                );
}


.tickets-cart-shell
.woocommerce-notices-wrapper,
.tickets-cart-shell
.woocommerce-message,
.tickets-cart-shell
.woocommerce-error,
.tickets-cart-shell
.woocommerce-info {
        grid-column:
                1
                /
                -1;
}


.tickets-cart-shell
.woocommerce-message,
.tickets-cart-shell
.woocommerce-error,
.tickets-cart-shell
.woocommerce-info {
        margin:
                0
                0
                20px !important;

        padding:
                15px
                18px !important;

        border: 0 !important;
        border-radius: 16px;

        background: #e8f1e9;

        color: #244d38;

        list-style: none;
}


.tickets-cart-shell
.woocommerce-cart-form {
        min-width: 0;

        margin: 0;

        padding:
                18px
                22px
                22px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 26px;

        background: #fff;

        box-shadow:
                0
                18px
                46px
                rgba(31, 45, 36, .06);
}


.tickets-cart-shell
.woocommerce-cart-form
table.shop_table {
        width: 100%;

        margin: 0 !important;

        border: 0 !important;
        border-collapse: collapse !important;

        background: transparent;
}


.tickets-cart-shell
.woocommerce-cart-form
table.shop_table
thead th {
        padding:
                12px
                10px
                16px;

        border: 0;

        color: #627369;

        font-size: 12px;
        font-weight: 800;

        letter-spacing: .035em;
        text-transform: uppercase;
}


.tickets-cart-shell
.woocommerce-cart-form
tr.cart_item
td {
        padding:
                18px
                10px;

        border:
                0;

        border-top:
                1px solid
                rgba(23, 63, 47, .09);

        vertical-align: middle;
}


.tickets-cart-shell
.woocommerce-cart-form
tr.cart_item:first-child
td {
        border-top: 0;
}


.tickets-cart-shell
.product-remove {
        width: 34px;
}


.tickets-cart-shell
.product-remove
a.remove {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;

        width: 30px !important;
        height: 30px !important;

        border-radius: 999px;

        background: #f2e9e5 !important;

        color: #8a473d !important;

        font-size: 20px !important;
        font-weight: 500 !important;

        line-height: 1 !important;

        text-decoration: none;
}


.tickets-cart-shell
.product-remove
a.remove:hover {
        background: #eadbd5 !important;
        color: #73372f !important;
}


.tickets-cart-shell
.product-thumbnail {
        width: 92px;
}


.tickets-cart-shell
.product-thumbnail
img {
        display: block;

        width: 72px !important;
        height: 90px !important;

        max-width: none !important;

        object-fit: cover;

        border-radius: 13px;
}


.tickets-cart-shell
.product-name {
        min-width: 180px;
}


.tickets-cart-shell
.product-name
a {
        color: #173f2f;

        font-size: 16px;
        font-weight: 800;
        line-height: 1.35;

        text-decoration: none;
}


.tickets-cart-shell
.product-name
a:hover {
        color: #24724d;
}


.tickets-cart-shell
.product-name
dl.variation {
        margin:
                9px
                0
                0;

        color: #5d6d64;

        font-size: 13px;
        line-height: 1.45;
}


.tickets-cart-shell
.product-name
dl.variation
dt,
.tickets-cart-shell
.product-name
dl.variation
dd {
        float: none;

        display: inline;

        margin: 0;
        padding: 0;
}


.tickets-cart-shell
.product-name
dl.variation
dd::after {
        content: "";

        display: block;
}


.tickets-cart-shell
.product-price,
.tickets-cart-shell
.product-subtotal {
        color: #173f2f;

        font-weight: 750;

        white-space: nowrap;
}


.tickets-cart-shell
.quantity
.qty {
        width: 70px !important;
        height: 44px;

        box-sizing: border-box;

        margin: 0;

        padding:
                8px
                10px;

        border:
                1px solid
                rgba(23, 63, 47, .16);

        border-radius: 12px;

        background: #fff;

        color: #173f2f;

        font-size: 16px;
        font-weight: 700;

        text-align: center;
}


.tickets-cart-shell
.woocommerce-cart-form
td.actions {
        display: grid !important;

        grid-template-columns:
                minmax(0, 1fr)
                auto;

        align-items: center;

        gap: 12px;

        padding:
                20px
                10px
                4px !important;

        border-top:
                1px solid
                rgba(23, 63, 47, .09) !important;
}


.tickets-cart-shell
td.actions
.coupon {
        display: flex !important;

        float: none !important;

        gap: 10px;

        width: 100%;
        max-width: 520px;
}


.tickets-cart-shell
td.actions
.coupon
#coupon_code {
        flex: 1;

        width: auto !important;
        min-width: 0;
        min-height: 46px;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                0
                15px !important;

        border:
                1px solid
                rgba(23, 63, 47, .14);

        border-radius: 13px;

        background: #faf9f5;

        color: #173f2f;

        font-size: 14px;
}


.tickets-cart-shell
td.actions
button {
        min-height: 46px;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                0
                19px !important;

        border:
                1px solid
                #24724d !important;

        border-radius: 999px !important;

        background: transparent !important;

        color: #24724d !important;

        font-size: 14px !important;
        font-weight: 800 !important;

        line-height: 1 !important;

        box-shadow: none !important;
}


.tickets-cart-shell
td.actions
button:hover {
        background: #e8f1e9 !important;
}


.tickets-cart-shell
td.actions
button:disabled {
        opacity: .38;
}


.tickets-cart-shell
.cart-collaterals {
        width: 100% !important;

        margin: 0 !important;
}


.tickets-cart-shell
.cart-collaterals
.cart_totals {
        float: none !important;

        width: 100% !important;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                26px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 26px;

        background: #fff;

        box-shadow:
                0
                18px
                46px
                rgba(31, 45, 36, .06);
}


.tickets-cart-shell
.cart_totals
h2 {
        margin:
                0
                0
                20px;

        color: #173f2f;

        font-size: 24px;
        line-height: 1.15;
}


.tickets-cart-shell
.cart_totals
table.shop_table {
        width: 100%;

        margin: 0 !important;

        border: 0 !important;
        border-collapse: collapse !important;
}


.tickets-cart-shell
.cart_totals
table.shop_table
th,
.tickets-cart-shell
.cart_totals
table.shop_table
td {
        padding:
                14px
                0;

        border:
                0;

        border-top:
                1px solid
                rgba(23, 63, 47, .09);

        background: transparent;

        color: #52665b;
}


.tickets-cart-shell
.cart_totals
table.shop_table
tr:first-child
th,
.tickets-cart-shell
.cart_totals
table.shop_table
tr:first-child
td {
        border-top: 0;
}


.tickets-cart-shell
.cart_totals
table.shop_table
td {
        color: #173f2f;

        font-size: 17px;
        font-weight: 800;

        text-align: right;
}


.tickets-cart-shell
.order-total
th,
.tickets-cart-shell
.order-total
td {
        color: #173f2f !important;

        font-size: 18px !important;
        font-weight: 850 !important;
}


.tickets-cart-shell
.wc-proceed-to-checkout {
        padding:
                20px
                0
                0 !important;
}


.tickets-cart-shell
.wc-proceed-to-checkout
.checkout-button {
        display: flex !important;
        align-items: center;
        justify-content: center;

        width: 100%;

        min-height: 52px;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                0
                22px !important;

        border: 0 !important;
        border-radius: 999px !important;

        background: #1f704a !important;

        color: #fff !important;

        font-size: 16px !important;
        font-weight: 850 !important;

        line-height: 1 !important;

        text-align: center;
        text-decoration: none;

        box-shadow: none !important;
}


.tickets-cart-shell
.wc-proceed-to-checkout
.checkout-button:hover {
        background: #185e3e !important;
}


.tickets-cart-shell
.cart-empty {
        margin: 0 !important;

        padding:
                24px !important;

        border: 0 !important;
        border-radius: 22px;

        background: #fff;

        color: #173f2f;
}


.tickets-cart-shell
.return-to-shop {
        margin:
                18px
                0
                0;
}


.tickets-cart-shell
.return-to-shop
.button {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        min-height: 48px;

        padding:
                0
                22px !important;

        border-radius: 999px !important;

        background: #1f704a !important;

        color: #fff !important;

        font-weight: 800 !important;
}


@media (max-width: 800px) {

        body.woocommerce-cart
        main#primary.tickets-cart-page {
                margin-top: 0 !important;
                padding-top: 0 !important;
        }


        .tickets-cart-hero {
                padding:
                        24px
                        0
                        20px;
        }


        .tickets-cart-back {
                margin-bottom: 18px;
        }


        .tickets-cart-hero h1 {
                font-size: 34px;
        }


        .tickets-cart-intro {
                margin-top: 12px;

                font-size: 15px;
        }


        .tickets-cart-content {
                padding-bottom: 58px;
        }


        .tickets-cart-shell
        .woocommerce {
                display: block;
        }


        .tickets-cart-shell
        .woocommerce-cart-form {
                padding:
                        10px
                        14px
                        16px;

                border-radius: 22px;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        table.shop_table,
        .tickets-cart-shell
        .woocommerce-cart-form
        table.shop_table
        tbody {
                display: block !important;

                width: 100% !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        table.shop_table
        thead {
                display: none !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        tr.cart_item {
                display: grid !important;

                grid-template-columns:
                        76px
                        minmax(0, 1fr)
                        32px;

                grid-template-areas:
                        "thumb name remove"
                        "thumb price price"
                        "thumb qty qty"
                        "thumb subtotal subtotal";

                gap:
                        8px
                        12px;

                padding:
                        17px
                        2px;

                border-bottom:
                        1px solid
                        rgba(23, 63, 47, .09);
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        tr.cart_item
        td {
                display: block !important;

                width: auto !important;

                padding: 0 !important;

                border: 0 !important;

                text-align: left !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        tr.cart_item
        td::before {
                display: none !important;
        }


        .tickets-cart-shell
        .product-thumbnail {
                grid-area: thumb;

                display: block !important;
        }


        .tickets-cart-shell
        .product-thumbnail
        img {
                width: 76px !important;
                height: 96px !important;

                border-radius: 12px;
        }


        .tickets-cart-shell
        .product-name {
                grid-area: name;

                min-width: 0;

                padding-right: 4px !important;
        }


        .tickets-cart-shell
        .product-name
        a {
                font-size: 16px;
        }


        .tickets-cart-shell
        .product-remove {
                grid-area: remove;

                align-self: start;
                justify-self: end;
        }


        .tickets-cart-shell
        .product-price {
                grid-area: price;
        }


        .tickets-cart-shell
        .product-quantity {
                grid-area: qty;
        }


        .tickets-cart-shell
        .product-subtotal {
                grid-area: subtotal;
        }


        .tickets-cart-shell
        .product-price,
        .tickets-cart-shell
        .product-quantity,
        .tickets-cart-shell
        .product-subtotal {
                display: flex !important;
                align-items: center;
                justify-content: space-between;

                gap: 14px;

                min-height: 34px;

                color: #173f2f;
        }


        .tickets-cart-shell
        .product-price::before,
        .tickets-cart-shell
        .product-quantity::before,
        .tickets-cart-shell
        .product-subtotal::before {
                color: #697a70;

                font-size: 13px;
                font-weight: 750;
        }


        .tickets-cart-shell
        .product-price::before {
                content: "Цена";
        }


        .tickets-cart-shell
        .product-quantity::before {
                content: "Количество";
        }


        .tickets-cart-shell
        .product-subtotal::before {
                content: "Подытог";
        }


        .tickets-cart-shell
        .quantity
        .qty {
                width: 68px !important;
                height: 42px;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        td.actions {
                display: grid !important;

                grid-template-columns:
                        minmax(0, 1fr);

                gap: 10px;

                padding:
                        17px
                        2px
                        2px !important;
        }


        .tickets-cart-shell
        td.actions
        .coupon {
                display: grid !important;

                grid-template-columns:
                        minmax(0, 1fr);

                gap: 9px;

                max-width: none;
        }


        .tickets-cart-shell
        td.actions
        .coupon
        #coupon_code {
                width: 100% !important;
        }


        .tickets-cart-shell
        td.actions
        button {
                width: 100%;
        }


        .tickets-cart-shell
        .cart-collaterals {
                margin-top: 18px !important;
        }


        .tickets-cart-shell
        .cart-collaterals
        .cart_totals {
                padding: 21px;

                border-radius: 22px;
        }


        .tickets-cart-shell
        .cart_totals
        h2 {
                font-size: 22px;
        }


        .tickets-cart-shell
        .wc-proceed-to-checkout
        .checkout-button {
                min-height: 50px;
        }
}


/* =========================================================
   END 0.4.98 — NATIVE CART
   ========================================================= */


/* =========================================================
   BEGIN 0.4.99 — CART POLISH
   ========================================================= */


/* Desktop coupon/update controls */

@media (min-width: 801px) {

        .tickets-cart-shell
        .woocommerce-cart-form
        td.actions {
                display: flex !important;
                align-items: center;
                justify-content: space-between;
                flex-wrap: wrap;

                gap: 12px;

                width: auto !important;
        }


        .tickets-cart-shell
        td.actions
        .coupon {
                display: flex !important;
                align-items: center;

                flex: 1 1 470px;

                float: none !important;

                width: auto !important;
                max-width: 560px;

                margin: 0 !important;
        }


        .tickets-cart-shell
        td.actions
        .coupon
        #coupon_code {
                flex: 1 1 auto;

                width: auto !important;
                min-width: 180px;
        }


        .tickets-cart-shell
        td.actions
        .coupon
        button {
                flex: 0 0 auto;

                float: none !important;
                width: auto !important;
        }


        .tickets-cart-shell
        td.actions
        > button[name="update_cart"] {
                flex: 0 0 auto;

                float: none !important;
                position: static !important;

                width: auto !important;
                min-width: 176px;

                margin: 0 0 0 auto !important;
        }
}


/* 11085 has no thumbnail */

.tickets-cart-shell
.lionspark-cart-service-product
.product-thumbnail
img {
        display: none !important;
}


/* Service-product metadata */

.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation {
        display: grid;

        grid-template-columns:
                minmax(0, .9fr)
                minmax(0, 1.1fr);

        gap: 5px 10px;

        margin: 11px 0 0;
}


.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation
dt,
.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation
dd {
        display: block !important;

        margin: 0 !important;
        padding: 0 !important;
}


.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation
dt {
        color: #697a70;

        font-size: 12px;
        font-weight: 750;
}


.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation
dd {
        color: #34483d;

        font-size: 13px;
        line-height: 1.4;
}


.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation
dd::after {
        display: none;
}


.tickets-cart-shell
.lionspark-cart-service-product
.product-name
dl.variation
p {
        margin: 0;
}


@media (max-width: 800px) {

        .tickets-cart-shell
        .woocommerce-cart-form
        tr.lionspark-cart-service-product {
                grid-template-columns:
                        minmax(0, 1fr)
                        32px !important;

                grid-template-areas:
                        "name remove"
                        "price price"
                        "qty qty"
                        "subtotal subtotal"
                        !important;
        }


        .tickets-cart-shell
        tr.lionspark-cart-service-product
        .product-thumbnail {
                display: none !important;
        }


        .tickets-cart-shell
        tr.lionspark-cart-service-product
        .product-name {
                padding-right: 8px !important;
        }


        .tickets-cart-shell
        tr.lionspark-cart-service-product
        .product-name
        dl.variation {
                grid-template-columns:
                        minmax(0, .95fr)
                        minmax(0, 1.05fr);

                gap: 5px 9px;

                margin-top: 12px;
        }


        .tickets-cart-shell
        tr.lionspark-cart-service-product
        .product-name
        dl.variation
        dd {
                text-align: right;
        }
}


/* =========================================================
   END 0.4.99 — CART POLISH
   ========================================================= */


/* =========================================================
   BEGIN 0.4.100 — CART DESKTOP COLUMNS

   Prevent long service-product metadata from changing the
   automatic WooCommerce table column calculation.

   Desktop only. Mobile cart layout stays untouched.
   ========================================================= */


@media (min-width: 801px) {

        .tickets-cart-shell
        .woocommerce-cart-form
        table.shop_table {
                width: 100% !important;

                table-layout: fixed !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        table.shop_table
        th,
        .tickets-cart-shell
        .woocommerce-cart-form
        table.shop_table
        td {
                box-sizing: border-box;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-remove {
                width: 44px !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-thumbnail {
                width: 92px !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-name {
                width: auto !important;
                min-width: 0 !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-price {
                width: 92px !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-quantity {
                width: 112px !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-subtotal {
                width: 102px !important;
        }


        .tickets-cart-shell
        .woocommerce-cart-form
        .product-name
        a {
                display: block;

                min-width: 0;

                overflow-wrap: break-word;
        }


        .tickets-cart-shell
        .lionspark-cart-service-product
        .product-name
        dl.variation {
                grid-template-columns:
                        110px
                        minmax(0, 1fr);
        }


        .tickets-cart-shell
        .lionspark-cart-service-product
        .product-name
        dl.variation
        dd {
                min-width: 0;

                overflow-wrap: anywhere;
        }
}


/* =========================================================
   END 0.4.100 — CART DESKTOP COLUMNS
   ========================================================= */


/* =========================================================
   BEGIN 0.4.101 — CART MOBILE TOP GAP

   Give the mobile cart a little more breathing room
   between the site header and "Продолжить покупки".

   Cart only. Desktop stays unchanged.
   ========================================================= */

@media (max-width: 800px) {

        .tickets-cart-hero {
                padding-top: 36px;
        }
}

/* =========================================================
   END 0.4.101 — CART MOBILE TOP GAP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.102 — PRODUCT RECOMMENDATIONS
   ========================================================= */


.tickets-product-recommendations {
        padding:
                clamp(
                        64px,
                        8vw,
                        96px
                )
                0;

        background: #f5f1e7;
}


.tickets-product-recommendations__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;

        gap: 32px;

        margin-bottom:
                clamp(
                        25px,
                        3vw,
                        36px
                );
}


.tickets-product-recommendations__head
.tickets-product-eyebrow {
        margin-bottom: 10px;
}


.tickets-product-recommendations__head
h2 {
        max-width: 720px;

        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        30px,
                        3.4vw,
                        44px
                );

        line-height: 1.07;
        letter-spacing: -.03em;
}


.tickets-product-recommendations__all {
        flex: 0 0 auto;

        padding-bottom: 4px;

        color: #24724d;

        font-size: 14px;
        font-weight: 800;

        text-decoration: none;
}


.tickets-product-recommendations__all:hover {
        color: #173f2f;
}


.tickets-product-recommendations__grid {
        display: grid;

        grid-template-columns:
                repeat(
                        3,
                        minmax(0, 1fr)
                );

        gap:
                clamp(
                        16px,
                        2.2vw,
                        26px
                );
}


.tickets-product-recommendation {
        display: flex;
        flex-direction: column;

        min-width: 0;

        overflow: hidden;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 25px;

        background: #fff;

        box-shadow:
                0
                16px
                42px
                rgba(31, 45, 36, .06);
}


.tickets-product-recommendation__media {
        display: block;

        aspect-ratio: 4 / 5;

        box-sizing: border-box;

        overflow: hidden;

        padding: 12px;

        background: #f3efe5;

        text-decoration: none;
}


.tickets-product-recommendation__image,
.tickets-product-recommendation__placeholder {
        display: block;

        width: 100%;
        height: 100%;

        border-radius: 17px;
}


.tickets-product-recommendation__image {
        object-fit: contain;
}


.tickets-product-recommendation__placeholder {
        background: #ebe5d9;
}


.tickets-product-recommendation__body {
        display: flex;
        flex: 1;
        flex-direction: column;

        min-width: 0;

        padding:
                19px
                19px
                20px;
}


.tickets-product-recommendation
h3 {
        margin: 0;
}


.tickets-product-recommendation
h3 a {
        display: -webkit-box;

        overflow: hidden;

        color: #173f2f;

        font-size:
                clamp(
                        17px,
                        1.7vw,
                        21px
                );

        font-weight: 850;
        line-height: 1.3;

        text-decoration: none;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;

        overflow-wrap: anywhere;
}


.tickets-product-recommendation
h3 a:hover {
        color: #24724d;
}


.tickets-product-recommendation__price {
        margin-top: 14px;

        color: #24724d;

        font-size: 21px;
        font-weight: 850;

        line-height: 1.1;
}


.tickets-product-recommendation__price
del {
        opacity: .5;
}


.tickets-product-recommendation__price
ins {
        text-decoration: none;
}


.tickets-product-recommendation__button {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        align-self: flex-start;

        min-height: 44px;

        box-sizing: border-box;

        margin-top: 20px;

        padding:
                0
                20px;

        border-radius: 999px;

        background: #1f704a;

        color: #fff;

        font-size: 14px;
        font-weight: 800;

        text-decoration: none;
}


.tickets-product-recommendation__button:hover {
        background: #185e3e;

        color: #fff;
}


@media (max-width: 800px) {

        .tickets-product-recommendations {
                padding:
                        54px
                        0
                        66px;
        }


        .tickets-product-recommendations__head {
                align-items: flex-start;
                flex-direction: column;

                gap: 14px;

                margin-bottom: 22px;
        }


        .tickets-product-recommendations__head
        h2 {
                font-size: 30px;
        }


        .tickets-product-recommendations__grid {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );

                gap: 12px;
        }


        .tickets-product-recommendation {
                border-radius: 19px;
        }


        .tickets-product-recommendation__media {
                padding: 8px;
        }


        .tickets-product-recommendation__image,
        .tickets-product-recommendation__placeholder {
                border-radius: 13px;
        }


        .tickets-product-recommendation__body {
                padding:
                        13px
                        12px
                        14px;
        }


        .tickets-product-recommendation
        h3 a {
                font-size: 14px;
                line-height: 1.32;
        }


        .tickets-product-recommendation__price {
                margin-top: 10px;

                font-size: 18px;
        }


        .tickets-product-recommendation__button {
                width: 100%;

                min-height: 42px;

                margin-top: 14px;

                padding:
                        0
                        10px;

                font-size: 13px;
        }
}


/* =========================================================
   END 0.4.102 — PRODUCT RECOMMENDATIONS
   ========================================================= */


/* =========================================================
   BEGIN 0.4.103 — NATIVE CHECKOUT
   ========================================================= */


.tickets-checkout-page {
        background: #f5f1e7;
        color: #173f2f;
}


.tickets-checkout-hero {
        padding:
                clamp(34px, 4vw, 48px)
                0
                28px;
}


.tickets-checkout-back {
        display: inline-flex;

        margin-bottom: 24px;

        color: #24724d;

        font-size: 14px;
        font-weight: 750;

        text-decoration: none;
}


.tickets-checkout-eyebrow {
        margin: 0 0 10px;

        color: #67816f;

        font-size: 13px;
        font-weight: 800;

        letter-spacing: .09em;
        text-transform: uppercase;
}


.tickets-checkout-hero h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        38px,
                        4vw,
                        54px
                );

        line-height: 1.04;
        letter-spacing: -.035em;
}


.tickets-checkout-intro {
        max-width: 620px;

        margin: 15px 0 0;

        color: #52665b;

        font-size: 17px;
        line-height: 1.55;
}


.tickets-checkout-content {
        padding:
                0
                0
                clamp(
                        70px,
                        8vw,
                        100px
                );
}


.tickets-checkout-shell
.woocommerce {
        min-width: 0;
}


.tickets-checkout-shell
.woocommerce-notices-wrapper,
.tickets-checkout-shell
.woocommerce-message,
.tickets-checkout-shell
.woocommerce-error,
.tickets-checkout-shell
.woocommerce-info {
        width: 100%;
        box-sizing: border-box;
}


.tickets-checkout-shell
.woocommerce-message,
.tickets-checkout-shell
.woocommerce-error,
.tickets-checkout-shell
.woocommerce-info {
        margin:
                0
                0
                20px !important;

        padding:
                15px
                18px !important;

        border: 0 !important;
        border-radius: 16px;

        background: #e8f1e9;

        color: #244d38;

        list-style: none;
}


.tickets-checkout-shell
form.checkout {
        display: grid;

        grid-template-columns:
                minmax(0, 1.18fr)
                minmax(360px, .82fr);

        grid-template-rows:
                auto
                auto;

        column-gap:
                clamp(
                        24px,
                        3vw,
                        34px
                );

        row-gap: 0;

        align-items: start;
}


.tickets-checkout-shell
#customer_details {
        grid-column: 1;
        grid-row:
                1
                /
                span 2;

        min-width: 0;

        box-sizing: border-box;

        padding: 28px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 26px;

        background: #fff;

        box-shadow:
                0
                18px
                46px
                rgba(31, 45, 36, .06);
}


.tickets-checkout-shell
#customer_details::after {
        display: table;
        clear: both;

        content: "";
}


.tickets-checkout-shell
#customer_details
.col-1,
.tickets-checkout-shell
#customer_details
.col-2 {
        float: none !important;

        width: 100% !important;

        margin: 0 !important;
}


.tickets-checkout-shell
#customer_details
.col-2 {
        margin-top: 26px !important;
}


.tickets-checkout-shell
.woocommerce-billing-fields
> h3,
.tickets-checkout-shell
.woocommerce-shipping-fields
> h3,
.tickets-checkout-shell
.woocommerce-additional-fields
> h3 {
        margin:
                0
                0
                22px;

        color: #173f2f;

        font-size: 25px;
        line-height: 1.15;
}


.tickets-checkout-shell
.woocommerce-billing-fields__field-wrapper,
.tickets-checkout-shell
.woocommerce-shipping-fields__field-wrapper {
        display: grid;

        grid-template-columns:
                repeat(
                        2,
                        minmax(0, 1fr)
                );

        gap:
                18px
                14px;
}


.tickets-checkout-shell
.form-row {
        float: none !important;

        width: auto !important;

        box-sizing: border-box;

        margin: 0 !important;
        padding: 0 !important;
}


.tickets-checkout-shell
.form-row-wide,
.tickets-checkout-shell
#billing_phone_field,
.tickets-checkout-shell
#billing_email_field {
        grid-column:
                1
                /
                -1;
}


.tickets-checkout-shell
.form-row
label {
        display: block;

        margin:
                0
                0
                7px;

        color: #4d6156;

        font-size: 13px;
        font-weight: 750;

        line-height: 1.35;
}


.tickets-checkout-shell
.form-row
.required {
        color: #a34d3f;
}


.tickets-checkout-shell
.form-row
.input-text,
.tickets-checkout-shell
.form-row
select,
.tickets-checkout-shell
.form-row
textarea {
        width: 100% !important;

        min-height: 50px;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                0
                15px !important;

        border:
                1px solid
                rgba(23, 63, 47, .14) !important;

        border-radius: 13px !important;

        outline: none;

        background: #faf9f5 !important;

        color: #173f2f !important;

        font: inherit;

        box-shadow: none !important;
}


.tickets-checkout-shell
.form-row
textarea {
        min-height: 110px;

        padding:
                13px
                15px !important;

        resize: vertical;
}


.tickets-checkout-shell
.form-row
.input-text:focus,
.tickets-checkout-shell
.form-row
select:focus,
.tickets-checkout-shell
.form-row
textarea:focus {
        border-color: #24724d !important;

        background: #fff !important;
}


.tickets-checkout-shell
.select2-container {
        width: 100% !important;
}


.tickets-checkout-shell
.select2-container
.select2-selection--single {
        min-height: 50px;

        border:
                1px solid
                rgba(23, 63, 47, .14) !important;

        border-radius: 13px !important;

        background: #faf9f5 !important;
}


.tickets-checkout-shell
.select2-container
.select2-selection--single
.select2-selection__rendered {
        line-height: 48px;
}


.tickets-checkout-shell
#order_review_heading {
        grid-column: 2;
        grid-row: 1;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                27px
                27px
                16px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-bottom: 0;

        border-radius:
                26px
                26px
                0
                0;

        background: #fff;

        color: #173f2f;

        font-size: 25px;
        line-height: 1.15;

        box-shadow:
                0
                18px
                46px
                rgba(31, 45, 36, .06);
}


.tickets-checkout-shell
#order_review {
        grid-column: 2;
        grid-row: 2;

        min-width: 0;

        box-sizing: border-box;

        padding:
                0
                27px
                27px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-top: 0;

        border-radius:
                0
                0
                26px
                26px;

        background: #fff;

        box-shadow:
                0
                18px
                46px
                rgba(31, 45, 36, .06);
}


.tickets-checkout-shell
#order_review
table.shop_table {
        width: 100%;

        table-layout: fixed;

        margin: 0 !important;

        border: 0 !important;
        border-collapse: collapse !important;

        background: transparent;
}


.tickets-checkout-shell
#order_review
table.shop_table
th,
.tickets-checkout-shell
#order_review
table.shop_table
td {
        box-sizing: border-box;

        padding:
                14px
                0;

        border: 0;

        border-top:
                1px solid
                rgba(23, 63, 47, .09);

        background: transparent;

        vertical-align: top;
}


.tickets-checkout-shell
#order_review
table.shop_table
thead
th {
        padding-top: 7px;

        border-top: 0;

        color: #687a70;

        font-size: 12px;
        font-weight: 800;

        letter-spacing: .035em;
        text-transform: uppercase;
}


.tickets-checkout-shell
#order_review
table.shop_table
th:last-child,
.tickets-checkout-shell
#order_review
table.shop_table
td:last-child {
        width: 112px;

        text-align: right;
}


.tickets-checkout-shell
#order_review
.product-name {
        padding-right: 16px !important;

        color: #34483d;

        line-height: 1.5;

        overflow-wrap: anywhere;
}


.tickets-checkout-shell
#order_review
.product-total {
        color: #173f2f;

        font-weight: 800;

        white-space: nowrap;
}


.tickets-checkout-shell
#order_review
tfoot
th {
        color: #52665b;

        font-weight: 750;
}


.tickets-checkout-shell
#order_review
tfoot
td {
        color: #173f2f;

        font-weight: 850;
}


.tickets-checkout-shell
#order_review
.order-total
th,
.tickets-checkout-shell
#order_review
.order-total
td {
        color: #173f2f !important;

        font-size: 17px;
        font-weight: 850 !important;
}


.tickets-checkout-shell
#payment {
        margin-top: 18px;

        border: 0 !important;
        border-radius: 18px !important;

        background: #f7f5ef !important;
}


.tickets-checkout-shell
#payment
ul.payment_methods {
        margin: 0 !important;

        padding:
                18px
                18px
                4px !important;

        border: 0 !important;

        list-style: none;
}


.tickets-checkout-shell
#payment
ul.payment_methods
li {
        margin:
                0
                0
                13px;

        color: #34483d;
}


.tickets-checkout-shell
#payment
.payment_box {
        margin:
                10px
                0
                0 !important;

        padding: 13px !important;

        border-radius: 12px;

        background: #fff !important;

        color: #52665b !important;
}


.tickets-checkout-shell
#payment
.payment_box::before {
        display: none !important;
}


.tickets-checkout-shell
#payment
.form-row.place-order {
        display: block;

        padding:
                18px !important;

        border: 0 !important;
}


.tickets-checkout-shell
#payment
.woocommerce-privacy-policy-text {
        margin-bottom: 18px;

        color: #66776e;

        font-size: 13px;
        line-height: 1.55;
}


.tickets-checkout-shell
#payment
.woocommerce-privacy-policy-text
a,
.tickets-checkout-shell
#payment
.woocommerce-terms-and-conditions-wrapper
a {
        color: #24724d;
}


.tickets-checkout-shell
.woocommerce-terms-and-conditions-wrapper {
        margin-bottom: 18px;

        color: #52665b;

        font-size: 14px;
        line-height: 1.5;
}


.tickets-checkout-shell
.woocommerce-terms-and-conditions-wrapper
.form-row {
        margin-top: 12px !important;
}


.tickets-checkout-shell
.woocommerce-terms-and-conditions-checkbox-text {
        display: inline;

        font-weight: 600;
}


.tickets-checkout-shell
input[type="checkbox"],
.tickets-checkout-shell
input[type="radio"] {
        width: 18px;
        height: 18px;

        margin:
                0
                7px
                0
                0;

        vertical-align: -3px;

        accent-color: #1f704a;
}


.tickets-checkout-shell
#place_order {
        display: flex !important;
        align-items: center;
        justify-content: center;

        float: none !important;

        width: 100% !important;

        min-height: 52px;

        box-sizing: border-box;

        margin: 0 !important;

        padding:
                0
                22px !important;

        border: 0 !important;
        border-radius: 999px !important;

        background: #1f704a !important;

        color: #fff !important;

        font-size: 16px !important;
        font-weight: 850 !important;

        line-height: 1 !important;

        text-align: center;

        box-shadow: none !important;
}


.tickets-checkout-shell
#place_order:hover {
        background: #185e3e !important;
}


.tickets-checkout-shell
.woocommerce-form-coupon-toggle,
.tickets-checkout-shell
.woocommerce-form-login-toggle {
        margin-bottom: 18px;
}


.tickets-checkout-shell
.woocommerce-form-coupon,
.tickets-checkout-shell
.woocommerce-form-login {
        box-sizing: border-box;

        margin:
                0
                0
                20px !important;

        padding: 20px !important;

        border:
                1px solid
                rgba(23, 63, 47, .08) !important;

        border-radius: 18px;

        background: #fff;
}


.tickets-checkout-shell
.woocommerce-form-coupon
.form-row {
        margin-top: 12px !important;
}


.tickets-checkout-shell
.woocommerce-form-coupon
.button,
.tickets-checkout-shell
.woocommerce-form-login
.button {
        min-height: 44px;

        padding:
                0
                18px !important;

        border-radius: 999px !important;

        background: #1f704a !important;

        color: #fff !important;

        font-weight: 800 !important;
}


@media (max-width: 800px) {

        body.woocommerce-checkout
        main#primary.tickets-checkout-page {
                margin-top: 0 !important;
                padding-top: 0 !important;
        }


        .tickets-checkout-hero {
                padding:
                        36px
                        0
                        22px;
        }


        .tickets-checkout-back {
                margin-bottom: 18px;
        }


        .tickets-checkout-hero h1 {
                font-size: 34px;
        }


        .tickets-checkout-intro {
                margin-top: 12px;

                font-size: 15px;
        }


        .tickets-checkout-content {
                padding-bottom: 60px;
        }


        .tickets-checkout-shell
        form.checkout {
                display: block;
        }


        .tickets-checkout-shell
        #customer_details {
                padding: 21px;

                border-radius: 22px;
        }


        .tickets-checkout-shell
        .woocommerce-billing-fields
        > h3,
        .tickets-checkout-shell
        .woocommerce-shipping-fields
        > h3,
        .tickets-checkout-shell
        .woocommerce-additional-fields
        > h3 {
                margin-bottom: 19px;

                font-size: 22px;
        }


        .tickets-checkout-shell
        .woocommerce-billing-fields__field-wrapper,
        .tickets-checkout-shell
        .woocommerce-shipping-fields__field-wrapper {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 16px;
        }


        .tickets-checkout-shell
        .form-row-wide,
        .tickets-checkout-shell
        #billing_phone_field,
        .tickets-checkout-shell
        #billing_email_field {
                grid-column: auto;
        }


        .tickets-checkout-shell
        #order_review_heading {
                margin-top: 18px !important;

                padding:
                        22px
                        21px
                        13px;

                border-radius:
                        22px
                        22px
                        0
                        0;

                font-size: 22px;
        }


        .tickets-checkout-shell
        #order_review {
                padding:
                        0
                        21px
                        21px;

                border-radius:
                        0
                        0
                        22px
                        22px;
        }


        .tickets-checkout-shell
        #order_review
        table.shop_table
        th:last-child,
        .tickets-checkout-shell
        #order_review
        table.shop_table
        td:last-child {
                width: 92px;
        }


        .tickets-checkout-shell
        #order_review
        .product-name {
                padding-right: 10px !important;

                font-size: 14px;
        }


        .tickets-checkout-shell
        #order_review
        table.shop_table
        th,
        .tickets-checkout-shell
        #order_review
        table.shop_table
        td {
                padding:
                        13px
                        0;
        }


        .tickets-checkout-shell
        #payment {
                margin-top: 15px;
        }


        .tickets-checkout-shell
        #payment
        .form-row.place-order {
                padding: 16px !important;
        }


        .tickets-checkout-shell
        #place_order {
                min-height: 50px;
        }
}


/* =========================================================
   END 0.4.103 — NATIVE CHECKOUT
   ========================================================= */


/* =========================================================
   BEGIN 0.4.104 — CHECKOUT POLISH

   Remove legacy WooCommerce icon-font pseudo-elements
   that render as broken squares in the native theme.

   Normalize checkout item metadata presentation.
   Product / order data itself stays untouched.
   ========================================================= */


/* Broken WooCommerce icon-font markers */

.tickets-checkout-shell
.woocommerce-info::before,
.tickets-checkout-shell
.woocommerce-message::before,
.tickets-checkout-shell
.woocommerce-error::before,
.tickets-checkout-shell
.woocommerce-form-coupon-toggle
.woocommerce-info::before,
.tickets-checkout-shell
#payment
.woocommerce-info::before,
.tickets-checkout-shell
#payment
.woocommerce-notice::before {
        display: none !important;

        content: none !important;
}


/* Checkout product metadata */

.tickets-checkout-shell
#order_review
.product-name
dl.variation {
        display: grid;

        grid-template-columns:
                118px
                minmax(0, 1fr);

        gap:
                5px
                10px;

        margin:
                10px
                0
                0;

        color: #52665b;

        font-size: 13px;
        line-height: 1.4;
}


.tickets-checkout-shell
#order_review
.product-name
dl.variation
dt,
.tickets-checkout-shell
#order_review
.product-name
dl.variation
dd {
        float: none !important;
        clear: none !important;

        display: block !important;

        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;
}


.tickets-checkout-shell
#order_review
.product-name
dl.variation
dt {
        color: #687a70;

        font-size: 12px;
        font-weight: 750;

        line-height: 1.4;
}


.tickets-checkout-shell
#order_review
.product-name
dl.variation
dd {
        min-width: 0;

        color: #34483d;

        overflow-wrap: anywhere;
}


.tickets-checkout-shell
#order_review
.product-name
dl.variation
dd::after {
        display: none !important;

        content: none !important;
}


.tickets-checkout-shell
#order_review
.product-name
dl.variation
p {
        margin: 0 !important;
        padding: 0 !important;

        line-height: inherit;
}


@media (max-width: 800px) {

        .tickets-checkout-shell
        #order_review
        .product-name
        dl.variation {
                grid-template-columns:
                        98px
                        minmax(0, 1fr);

                gap:
                        5px
                        8px;

                margin-top: 9px;

                font-size: 12px;
        }


        .tickets-checkout-shell
        #order_review
        .product-name
        dl.variation
        dt {
                font-size: 11px;
        }
}


/* =========================================================
   END 0.4.104 — CHECKOUT POLISH
   ========================================================= */


/* =========================================================
   BEGIN 0.4.105 — WOO NOTICES POLISH

   Native cart and native product pages already provide
   their own notice styling.

   Remove legacy WooCommerce icon-font pseudo-elements,
   which overlap the notice text / render as broken boxes.

   Also allow long WooCommerce messages to wrap normally.
   ========================================================= */


/* Product pages */

.tickets-product-page
.woocommerce-message::before,
.tickets-product-page
.woocommerce-error::before,
.tickets-product-page
.woocommerce-info::before {
        display: none !important;

        content: none !important;
}


.tickets-product-page
.woocommerce-message,
.tickets-product-page
.woocommerce-error,
.tickets-product-page
.woocommerce-info {
        width: 100%;

        box-sizing: border-box;

        padding-left: 18px !important;

        white-space: normal !important;

        overflow-wrap: anywhere;
        word-break: normal;

        line-height: 1.5;
}


.tickets-product-page
.woocommerce-error
li {
        margin: 0;

        white-space: normal;

        overflow-wrap: anywhere;
}


/* Native cart */

.tickets-cart-page
.woocommerce-message::before,
.tickets-cart-page
.woocommerce-error::before,
.tickets-cart-page
.woocommerce-info::before,
.tickets-cart-page
.cart-empty::before {
        display: none !important;

        content: none !important;
}


.tickets-cart-page
.woocommerce-message,
.tickets-cart-page
.woocommerce-error,
.tickets-cart-page
.woocommerce-info,
.tickets-cart-page
.cart-empty {
        box-sizing: border-box;

        padding-left: 18px !important;

        white-space: normal !important;

        overflow-wrap: anywhere;
        word-break: normal;

        line-height: 1.5;
}


/* =========================================================
   END 0.4.105 — WOO NOTICES POLISH
   ========================================================= */


/* =========================================================
   BEGIN 0.4.106 — VACANCIES
   ========================================================= */


.vacancies-page {
        background: #f5f1e7;
        color: #173f2f;
}


.vacancies-hero {
        padding:
                clamp(40px, 5vw, 68px)
                0
                34px;
}


.vacancies-hero__inner {
        max-width: 880px;

        padding:
                clamp(30px, 5vw, 56px);

        border-radius: 32px;

        background:
                linear-gradient(
                        135deg,
                        #e5efe5,
                        #efeadd
                );
}


.vacancies-eyebrow {
        margin: 0 0 10px;

        color: #67816f;

        font-size: 13px;
        font-weight: 800;

        letter-spacing: .09em;
        text-transform: uppercase;
}


.vacancies-hero h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        44px,
                        6vw,
                        68px
                );

        line-height: 1;
        letter-spacing: -.045em;
}


.vacancies-hero__lead {
        max-width: 700px;

        margin: 20px 0 0;

        color: #40584b;

        font-size:
                clamp(
                        18px,
                        2vw,
                        22px
                );

        line-height: 1.55;
}


.vacancies-intro {
        padding:
                34px
                0
                50px;
}


.vacancies-intro__grid {
        display: grid;

        grid-template-columns:
                minmax(0, 1.25fr)
                minmax(280px, .75fr);

        gap:
                clamp(
                        28px,
                        5vw,
                        70px
                );

        align-items: start;
}


.vacancies-copy {
        max-width: 790px;

        color: #34483d;

        font-size:
                clamp(
                        17px,
                        1.45vw,
                        19px
                );

        line-height: 1.72;
}


.vacancies-copy p {
        margin: 0 0 1.15em;
}


.vacancies-copy p:last-child {
        margin-bottom: 0;
}


.vacancies-note {
        padding:
                24px;

        border-radius: 24px;

        background: #173f2f;

        color: #fff;
}


.vacancies-note strong {
        display: block;

        margin-bottom: 10px;

        font-size: 18px;
}


.vacancies-note p {
        margin: 0;

        color: rgba(255, 255, 255, .82);

        line-height: 1.6;
}


.vacancies-roles {
        padding:
                58px
                0
                72px;

        background: #fff;
}


.vacancies-section-head {
        margin-bottom: 28px;
}


.vacancies-section-head h2,
.vacancies-work h2,
.vacancies-contact h2,
.vacancies-form-card h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        30px,
                        3.5vw,
                        46px
                );

        line-height: 1.08;
        letter-spacing: -.03em;
}


.vacancies-role-grid {
        display: grid;

        grid-template-columns:
                repeat(
                        3,
                        minmax(0, 1fr)
                );

        gap: 18px;
}


.vacancies-role-card {
        min-width: 0;

        padding:
                25px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 24px;

        background: #f7f4ec;
}


.vacancies-role-card__number {
        display: inline-flex;

        margin-bottom: 32px;

        color: #6c8475;

        font-size: 13px;
        font-weight: 850;
}


.vacancies-role-card h3 {
        margin:
                0
                0
                10px;

        color: #173f2f;

        font-size: 25px;
        line-height: 1.15;
}


.vacancies-role-card p {
        margin: 0;

        color: #52665b;

        line-height: 1.6;
}


.vacancies-work {
        padding:
                70px
                0;
}


.vacancies-work__card {
        display: grid;

        grid-template-columns:
                minmax(0, .8fr)
                minmax(0, 1.2fr);

        gap:
                clamp(
                        30px,
                        6vw,
                        80px
                );

        align-items: start;

        padding:
                clamp(
                        30px,
                        5vw,
                        50px
                );

        border-radius: 30px;

        background: #e7efe7;
}


.vacancies-work__card > p {
        margin: 0;

        color: #40584b;

        font-size:
                clamp(
                        17px,
                        1.5vw,
                        19px
                );

        line-height: 1.7;
}


.vacancies-apply {
        padding:
                0
                0
                clamp(
                        72px,
                        9vw,
                        110px
                );
}


.vacancies-apply__grid {
        display: grid;

        grid-template-columns:
                minmax(0, .8fr)
                minmax(0, 1.2fr);

        gap:
                clamp(
                        26px,
                        5vw,
                        60px
                );

        align-items: start;
}


.vacancies-contact {
        padding:
                30px
                4px;
}


.vacancies-contact > p:not(.vacancies-eyebrow) {
        max-width: 430px;

        margin:
                18px
                0
                0;

        color: #52665b;

        line-height: 1.6;
}


.vacancies-contact__links {
        display: grid;

        gap: 12px;

        margin-top: 28px;
}


.vacancies-contact__links a {
        display: flex;
        flex-direction: column;

        gap: 4px;

        padding:
                17px
                19px;

        border:
                1px solid
                rgba(23, 63, 47, .1);

        border-radius: 17px;

        background: #fff;

        color: #173f2f;

        text-decoration: none;
}


.vacancies-contact__links span {
        color: #718177;

        font-size: 12px;
        font-weight: 750;

        text-transform: uppercase;
        letter-spacing: .05em;
}


.vacancies-contact__links strong {
        overflow-wrap: anywhere;
}


.vacancies-form-card {
        padding:
                clamp(
                        24px,
                        4vw,
                        36px
                );

        border-radius: 28px;

        background: #fff;

        box-shadow:
                0
                18px
                46px
                rgba(31, 45, 36, .06);
}


.vacancies-form-card h2 {
        font-size:
                clamp(
                        28px,
                        3vw,
                        38px
                );
}


.vacancies-form-card__intro {
        margin:
                12px
                0
                0;

        color: #64766c;

        line-height: 1.55;
}


.vacancies-form {
        display: grid;

        gap: 16px;

        margin-top: 25px;
}


.vacancies-form__field label {
        display: block;

        margin-bottom: 7px;

        color: #435b4e;

        font-size: 13px;
        font-weight: 800;
}


.vacancies-form__field label span {
        color: #a34d3f;
}


.vacancies-form__field input,
.vacancies-form__field textarea {
        width: 100%;

        box-sizing: border-box;

        border:
                1px solid
                rgba(23, 63, 47, .15);

        border-radius: 13px;

        background: #faf9f5;

        color: #173f2f;

        font: inherit;

        outline: none;
}


.vacancies-form__field input {
        min-height: 50px;

        padding:
                0
                15px;
}


.vacancies-form__field textarea {
        min-height: 140px;

        padding:
                13px
                15px;

        resize: vertical;
}


.vacancies-form__field input:focus,
.vacancies-form__field textarea:focus {
        border-color: #24724d;

        background: #fff;
}


.vacancies-form__submit {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        min-height: 52px;

        margin-top: 3px;

        padding:
                0
                24px;

        border: 0;
        border-radius: 999px;

        background: #1f704a;

        color: #fff;

        font-size: 15px;
        font-weight: 850;

        cursor: pointer;
}


.vacancies-form__submit:hover {
        background: #185e3e;
}


.vacancies-form__honeypot {
        position: absolute !important;

        width: 1px !important;
        height: 1px !important;

        overflow: hidden !important;

        clip: rect(0 0 0 0) !important;
        clip-path: inset(50%) !important;

        white-space: nowrap !important;
}


.vacancies-form-notice {
        margin-top: 20px;

        padding:
                14px
                16px;

        border-radius: 14px;

        line-height: 1.5;
}


.vacancies-form-notice--success {
        background: #e5efe5;

        color: #286343;
}


.vacancies-form-notice--error {
        background: #f3e5e1;

        color: #8a473d;
}


@media (max-width: 800px) {

        body.page-id-1728
        main#primary.vacancies-page {
                margin-top: 0 !important;
                padding-top: 0 !important;
        }


        .vacancies-hero {
                padding:
                        36px
                        0
                        24px;
        }


        .vacancies-hero__inner {
                padding:
                        28px
                        22px;

                border-radius: 24px;
        }


        .vacancies-hero h1 {
                font-size: 38px;
        }


        .vacancies-hero__lead {
                margin-top: 15px;

                font-size: 17px;
        }


        .vacancies-intro {
                padding:
                        24px
                        0
                        44px;
        }


        .vacancies-intro__grid,
        .vacancies-work__card,
        .vacancies-apply__grid {
                grid-template-columns:
                        minmax(0, 1fr);
        }


        .vacancies-intro__grid {
                gap: 24px;
        }


        .vacancies-copy {
                font-size: 17px;
                line-height: 1.65;
        }


        .vacancies-note {
                padding: 21px;

                border-radius: 20px;
        }


        .vacancies-roles {
                padding:
                        48px
                        0
                        56px;
        }


        .vacancies-role-grid {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 12px;
        }


        .vacancies-role-card {
                padding: 21px;

                border-radius: 20px;
        }


        .vacancies-role-card__number {
                margin-bottom: 20px;
        }


        .vacancies-work {
                padding:
                        52px
                        0;
        }


        .vacancies-work__card {
                gap: 20px;

                padding:
                        25px
                        22px;

                border-radius: 23px;
        }


        .vacancies-apply__grid {
                gap: 12px;
        }


        .vacancies-contact {
                padding:
                        0
                        0
                        20px;
        }


        .vacancies-form-card {
                padding:
                        23px
                        20px;

                border-radius: 23px;
        }


        .vacancies-form {
                gap: 14px;
        }


        .vacancies-form__submit {
                width: 100%;
        }
}


/* =========================================================
   END 0.4.106 — VACANCIES
   ========================================================= */


/* =========================================================
   BEGIN 0.4.107 — VACANCIES COMPACT SPACING

   Keep the approved 0.4.106 design and form behaviour,
   but reduce excessive vertical travel between sections.

   Form controls keep their comfortable touch/input sizes.
   ========================================================= */


/* ---------- DESKTOP / TABLET ---------- */

.vacancies-hero {
        padding:
                clamp(28px, 3.5vw, 44px)
                0
                22px;
}


.vacancies-hero__inner {
        padding:
                clamp(26px, 4vw, 44px);
}


.vacancies-hero__lead {
        margin-top: 15px;
}


.vacancies-intro {
        padding:
                18px
                0
                34px;
}


.vacancies-intro__grid {
        gap:
                clamp(
                        24px,
                        3.5vw,
                        50px
                );
}


.vacancies-note {
        padding: 21px;
}


.vacancies-roles {
        padding:
                40px
                0
                48px;
}


.vacancies-section-head {
        margin-bottom: 20px;
}


.vacancies-role-grid {
        gap: 14px;
}


.vacancies-role-card {
        padding: 22px;
}


.vacancies-role-card__number {
        margin-bottom: 18px;
}


.vacancies-work {
        padding:
                44px
                0;
}


.vacancies-work__card {
        gap:
                clamp(
                        24px,
                        4vw,
                        56px
                );

        padding:
                clamp(
                        26px,
                        4vw,
                        40px
                );
}


.vacancies-apply {
        padding:
                0
                0
                clamp(
                        44px,
                        5vw,
                        62px
                );
}


.vacancies-apply__grid {
        gap:
                clamp(
                        22px,
                        4vw,
                        46px
                );
}


.vacancies-contact {
        padding:
                14px
                4px;
}


.vacancies-contact__links {
        margin-top: 20px;
}


.vacancies-form-card {
        padding:
                clamp(
                        22px,
                        3vw,
                        30px
                );
}


.vacancies-form {
        gap: 13px;

        margin-top: 20px;
}


/* ---------- MOBILE ---------- */

@media (max-width: 800px) {

        .vacancies-hero {
                padding:
                        22px
                        0
                        16px;
        }


        .vacancies-hero__inner {
                padding:
                        24px
                        20px;
        }


        .vacancies-hero__lead {
                margin-top: 12px;
        }


        .vacancies-intro {
                padding:
                        14px
                        0
                        28px;
        }


        .vacancies-intro__grid {
                gap: 18px;
        }


        .vacancies-note {
                padding: 18px;
        }


        .vacancies-roles {
                padding:
                        32px
                        0
                        38px;
        }


        .vacancies-section-head {
                margin-bottom: 17px;
        }


        .vacancies-role-grid {
                gap: 10px;
        }


        .vacancies-role-card {
                padding:
                        18px
                        20px;
        }


        .vacancies-role-card__number {
                margin-bottom: 11px;
        }


        .vacancies-role-card h3 {
                margin-bottom: 7px;
        }


        .vacancies-work {
                padding:
                        32px
                        0;
        }


        .vacancies-work__card {
                gap: 14px;

                padding:
                        21px
                        18px;
        }


        .vacancies-apply {
                padding-bottom: 42px;
        }


        .vacancies-apply__grid {
                gap: 8px;
        }


        .vacancies-contact {
                padding:
                        0
                        0
                        14px;
        }


        .vacancies-contact > p:not(.vacancies-eyebrow) {
                margin-top: 12px;
        }


        .vacancies-contact__links {
                gap: 9px;

                margin-top: 17px;
        }


        .vacancies-contact__links a {
                padding:
                        14px
                        16px;
        }


        .vacancies-form-card {
                padding:
                        20px
                        18px;
        }


        .vacancies-form-card__intro {
                margin-top: 9px;
        }


        .vacancies-form {
                gap: 12px;

                margin-top: 18px;
        }
}


/* =========================================================
   END 0.4.107 — VACANCIES COMPACT SPACING
   ========================================================= */


/* =========================================================
   BEGIN 0.4.109 — FOUND ANIMAL
   ========================================================= */


.found-animal-page {
        background: #f5f1e7;
        color: #173f2f;
}


.found-animal-hero {
        padding:
                clamp(28px, 3.5vw, 44px)
                0
                20px;
}


.found-animal-hero__inner {
        max-width: 920px;

        padding:
                clamp(28px, 4vw, 44px);

        border-radius: 30px;

        background:
                linear-gradient(
                        135deg,
                        #e4eee5,
                        #eee9dc
                );
}


.found-animal-eyebrow {
        margin: 0 0 10px;

        color: #67816f;

        font-size: 13px;
        font-weight: 800;

        letter-spacing: .09em;
        text-transform: uppercase;
}


.found-animal-hero h1 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        42px,
                        5vw,
                        64px
                );

        line-height: 1;
        letter-spacing: -.04em;
}


.found-animal-hero__lead {
        max-width: 720px;

        margin: 16px 0 0;

        color: #40584b;

        font-size:
                clamp(
                        18px,
                        1.8vw,
                        21px
                );

        line-height: 1.55;
}


.found-animal-first {
        padding:
                20px
                0
                40px;
}


.found-animal-first__grid {
        display: grid;

        grid-template-columns:
                minmax(0, .82fr)
                minmax(0, 1.18fr);

        gap:
                clamp(
                        28px,
                        5vw,
                        70px
                );

        align-items: start;
}


.found-animal-first h2,
.found-animal-section-head h2,
.found-animal-help h2,
.found-animal-final h2 {
        margin: 0;

        color: #173f2f;

        font-size:
                clamp(
                        30px,
                        3.4vw,
                        44px
                );

        line-height: 1.08;
        letter-spacing: -.03em;
}


.found-animal-first__copy {
        color: #40584b;

        font-size: 18px;
        line-height: 1.7;
}


.found-animal-first__copy p {
        margin: 0 0 1em;
}


.found-animal-first__copy p:last-child {
        margin-bottom: 0;
}


.found-animal-alert {
        display: grid;

        grid-template-columns:
                minmax(220px, .7fr)
                minmax(0, 1.3fr);

        gap: 24px;

        align-items: center;

        margin-top: 28px;

        padding:
                22px
                24px;

        border-radius: 22px;

        background: #173f2f;

        color: #fff;
}


.found-animal-alert strong {
        font-size: 20px;
        line-height: 1.25;
}


.found-animal-alert p {
        margin: 0;

        color: rgba(255, 255, 255, .82);

        line-height: 1.55;
}


.found-animal-actions {
        padding:
                42px
                0
                52px;

        background: #fff;
}


.found-animal-section-head {
        max-width: 850px;

        margin-bottom: 22px;
}


.found-animal-section-head > p:not(.found-animal-eyebrow) {
        max-width: 680px;

        margin:
                14px
                0
                0;

        color: #52665b;

        font-size: 17px;
        line-height: 1.6;
}


.found-animal-card-grid,
.found-animal-species-grid {
        display: grid;

        grid-template-columns:
                repeat(
                        3,
                        minmax(0, 1fr)
                );

        gap: 14px;
}


.found-animal-card {
        padding: 22px;

        border:
                1px solid
                rgba(23, 63, 47, .08);

        border-radius: 22px;

        background: #f7f4ec;
}


.found-animal-card > span {
        display: inline-flex;

        margin-bottom: 16px;

        color: #6b8274;

        font-size: 13px;
        font-weight: 850;
}


.found-animal-card h3,
.found-animal-species h3 {
        margin:
                0
                0
                9px;

        color: #173f2f;

        font-size: 23px;
        line-height: 1.18;
}


.found-animal-card p,
.found-animal-species p {
        margin: 0;

        color: #52665b;

        line-height: 1.6;
}


.found-animal-help {
        padding:
                46px
                0;
}


.found-animal-help__card {
        display: grid;

        grid-template-columns:
                minmax(0, .8fr)
                minmax(0, 1.2fr);

        gap:
                clamp(
                        28px,
                        5vw,
                        64px
                );

        padding:
                clamp(
                        28px,
                        4vw,
                        40px
                );

        border-radius: 28px;

        background: #e6efe7;
}


.found-animal-help__copy {
        color: #40584b;

        line-height: 1.65;
}


.found-animal-help__copy p {
        margin:
                0
                0
                1em;
}


.found-animal-help__copy p:last-child {
        margin-bottom: 0;
}


.found-animal-young {
        padding:
                46px
                0
                54px;

        background: #fff;
}


.found-animal-species {
        padding: 22px;

        border-radius: 22px;

        background: #f5f1e7;
}


.found-animal-final {
        padding:
                48px
                0
                58px;
}


.found-animal-final__inner {
        display: grid;

        grid-template-columns:
                minmax(0, .9fr)
                minmax(0, 1.1fr);

        gap:
                clamp(
                        28px,
                        5vw,
                        64px
                );

        align-items: start;
}


.found-animal-final__inner > p {
        margin: 0;

        color: #40584b;

        font-size: 18px;
        line-height: 1.7;
}


@media (max-width: 800px) {

        body.page-id-3005
        main#primary.found-animal-page {
                margin-top: 0 !important;
                padding-top: 0 !important;
        }


        .found-animal-hero {
                padding:
                        20px
                        0
                        12px;
        }


        .found-animal-hero__inner {
                padding:
                        24px
                        20px;

                border-radius: 23px;
        }


        .found-animal-hero h1 {
                font-size: 38px;
        }


        .found-animal-hero__lead {
                margin-top: 12px;

                font-size: 17px;
        }


        .found-animal-first {
                padding:
                        16px
                        0
                        30px;
        }


        .found-animal-first__grid,
        .found-animal-alert,
        .found-animal-help__card,
        .found-animal-final__inner {
                grid-template-columns:
                        minmax(0, 1fr);
        }


        .found-animal-first__grid {
                gap: 16px;
        }


        .found-animal-first__copy {
                font-size: 17px;
                line-height: 1.62;
        }


        .found-animal-alert {
                gap: 8px;

                margin-top: 20px;

                padding:
                        19px
                        18px;
        }


        .found-animal-actions {
                padding:
                        32px
                        0
                        38px;
        }


        .found-animal-section-head {
                margin-bottom: 17px;
        }


        .found-animal-card-grid,
        .found-animal-species-grid {
                grid-template-columns:
                        minmax(0, 1fr);

                gap: 10px;
        }


        .found-animal-card,
        .found-animal-species {
                padding:
                        18px
                        20px;
        }


        .found-animal-card > span {
                margin-bottom: 10px;
        }


        .found-animal-help {
                padding:
                        32px
                        0;
        }


        .found-animal-help__card {
                gap: 16px;

                padding:
                        21px
                        18px;

                border-radius: 23px;
        }


        .found-animal-young {
                padding:
                        32px
                        0
                        38px;
        }


        .found-animal-final {
                padding:
                        32px
                        0
                        42px;
        }


        .found-animal-final__inner {
                gap: 16px;
        }


        .found-animal-final__inner > p {
                font-size: 17px;
                line-height: 1.62;
        }
}


/* =========================================================
   END 0.4.109 — FOUND ANIMAL
   ========================================================= */


/* =========================================================
   BEGIN 0.4.111 - NATIVE MY ACCOUNT
   ========================================================= */

.tickets-account-shell {
	max-width: 1180px;
	margin: 0 auto;
}

.tickets-account-shell::after,
.tickets-account-shell .woocommerce::after {
	display: table;
	clear: both;
	content: "";
}


/* WooCommerce notices */

.tickets-account-shell
.woocommerce-message::before,
.tickets-account-shell
.woocommerce-error::before,
.tickets-account-shell
.woocommerce-info::before {
	display: none !important;
	content: none !important;
}

.tickets-account-shell
.woocommerce-message,
.tickets-account-shell
.woocommerce-error,
.tickets-account-shell
.woocommerce-info {
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 24px;
	padding: 16px 18px;
	border: 1px solid rgba(22, 66, 52, 0.14);
	border-radius: 14px;
	background: #fff;
	color: #173f33;
	line-height: 1.55;
}


/* Logged-out login form */

body:not(.logged-in)
.tickets-account-shell
.woocommerce {
	max-width: 680px;
	margin: 0 auto;
}

.tickets-account-shell
.woocommerce-form-login {
	box-sizing: border-box;
	margin: 0 !important;
	padding: 30px !important;
	border: 1px solid rgba(22, 66, 52, 0.14) !important;
	border-radius: 20px !important;
	background: #fff;
	box-shadow:
		0 18px 50px
		rgba(23, 63, 51, 0.07);
}

.tickets-account-shell
.woocommerce-form-login
.form-row {
	margin: 0 0 20px;
	padding: 0;
}

.tickets-account-shell
.woocommerce-form-login
label {
	display: block;
	margin: 0 0 8px;
	color: #173f33;
	font-weight: 700;
	line-height: 1.4;
}

.tickets-account-shell
.woocommerce-form-login
.input-text {
	box-sizing: border-box;
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 11px 14px;
	border: 1px solid rgba(22, 66, 52, 0.22);
	border-radius: 10px;
	background: #fff;
	color: #173f33;
	font: inherit;
	outline: 0;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.tickets-account-shell
.woocommerce-form-login
.input-text:focus {
	border-color: #1d664e;
	box-shadow:
		0 0 0 3px
		rgba(29, 102, 78, 0.10);
}

.tickets-account-shell
.woocommerce-form-login
.show-password-input {
	top: 50%;
	transform: translateY(-50%);
}

.tickets-account-shell
.woocommerce-form-login
.woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 18px 12px 0;
	font-weight: 500;
}

.tickets-account-shell
.woocommerce-form-login
.woocommerce-form-login__rememberme
input {
	margin: 0;
}

.tickets-account-shell
.woocommerce-form-login
.woocommerce-form-login__submit {
	float: none;
	min-height: 48px;
	margin: 0 14px 12px 0;
	padding: 11px 24px;
	border: 0;
	border-radius: 10px;
	background: #174c3b;
	color: #fff;
	font-weight: 800;
	line-height: 1.2;
	cursor: pointer;
}

.tickets-account-shell
.woocommerce-form-login
.woocommerce-form-login__submit:hover {
	background: #103e30;
	color: #fff;
}

.tickets-account-shell
.woocommerce-LostPassword {
	clear: both;
	margin: 8px 0 0;
}

.tickets-account-shell
.woocommerce-LostPassword
a {
	color: #174c3b;
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}


/* Logged-in navigation */

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation {
	float: left;
	box-sizing: border-box;
	width: 27%;
	margin: 0;
}

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation
ul {
	margin: 0;
	padding: 8px;
	list-style: none;
	border: 1px solid rgba(22, 66, 52, 0.14);
	border-radius: 18px;
	background: #fff;
	box-shadow:
		0 18px 50px
		rgba(23, 63, 51, 0.05);
}

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation
li {
	margin: 0;
	padding: 0;
	border: 0;
}

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation
li + li {
	border-top: 1px solid rgba(22, 66, 52, 0.08);
}

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation
a {
	display: block;
	padding: 13px 15px;
	border-radius: 10px;
	color: #24483d;
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
	transition:
		background 0.18s ease,
		color 0.18s ease;
}

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation
a:hover {
	background: rgba(23, 76, 59, 0.06);
	color: #174c3b;
}

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-navigation
.is-active
a {
	background: #174c3b;
	color: #fff;
}


/* Logged-in content */

body.logged-in.woocommerce-account
.tickets-account-shell
.woocommerce-MyAccount-content {
	float: right;
	box-sizing: border-box;
	width: 69%;
	min-height: 220px;
	margin: 0;
	padding: 28px 30px;
	border: 1px solid rgba(22, 66, 52, 0.14);
	border-radius: 20px;
	background: #fff;
	box-shadow:
		0 18px 50px
		rgba(23, 63, 51, 0.05);
	color: #28493f;
	line-height: 1.65;
}

.tickets-account-shell
.woocommerce-MyAccount-content
> :first-child {
	margin-top: 0;
}

.tickets-account-shell
.woocommerce-MyAccount-content
> :last-child {
	margin-bottom: 0;
}

.tickets-account-shell
.woocommerce-MyAccount-content
a {
	color: #174c3b;
}

.tickets-account-shell
.woocommerce-MyAccount-content
h2,
.tickets-account-shell
.woocommerce-MyAccount-content
h3 {
	color: #173f33;
}


/* Orders / subscriptions / downloads tables */

.tickets-account-shell
table.shop_table {
	width: 100%;
	margin: 20px 0 0;
	border: 1px solid rgba(22, 66, 52, 0.12);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
}

.tickets-account-shell
table.shop_table
th,
.tickets-account-shell
table.shop_table
td {
	padding: 13px 14px;
	border-right: 0;
	border-bottom: 1px solid rgba(22, 66, 52, 0.09);
	text-align: left;
	vertical-align: middle;
}

.tickets-account-shell
table.shop_table
tr:last-child
td {
	border-bottom: 0;
}

.tickets-account-shell
table.shop_table
th {
	background: rgba(23, 76, 59, 0.055);
	color: #173f33;
	font-weight: 800;
}


/* Buttons */

.tickets-account-shell
.woocommerce-button,
.tickets-account-shell
.button,
.tickets-account-shell
button.button,
.tickets-account-shell
input.button {
	box-sizing: border-box;
	min-height: 42px;
	padding: 10px 17px !important;
	border: 0 !important;
	border-radius: 9px !important;
	background: #174c3b !important;
	color: #fff !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	box-shadow: none !important;
}

.tickets-account-shell
.woocommerce-button:hover,
.tickets-account-shell
.button:hover,
.tickets-account-shell
button.button:hover,
.tickets-account-shell
input.button:hover {
	background: #103e30 !important;
	color: #fff !important;
}


/* Addresses */

.tickets-account-shell
.woocommerce-Addresses,
.tickets-account-shell
.u-columns.woocommerce-Addresses {
	display: grid;
	grid-template-columns:
		repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin-top: 20px;
}

.tickets-account-shell
.woocommerce-Addresses
.col-1,
.tickets-account-shell
.woocommerce-Addresses
.col-2 {
	float: none;
	box-sizing: border-box;
	width: auto;
	margin: 0;
	padding: 20px;
	border: 1px solid rgba(22, 66, 52, 0.12);
	border-radius: 14px;
}


/* Account forms */

.tickets-account-shell
.woocommerce-EditAccountForm
.form-row,
.tickets-account-shell
.woocommerce-address-fields
.form-row,
.tickets-account-shell
.woocommerce-form
.form-row {
	box-sizing: border-box;
	margin-bottom: 18px;
}

.tickets-account-shell
.woocommerce-EditAccountForm
.input-text,
.tickets-account-shell
.woocommerce-address-fields
.input-text,
.tickets-account-shell
.woocommerce-form
.input-text,
.tickets-account-shell
select {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 10px 13px;
	border: 1px solid rgba(22, 66, 52, 0.20);
	border-radius: 9px;
	background: #fff;
	color: #173f33;
	font: inherit;
}

.tickets-account-shell
fieldset {
	margin: 26px 0;
	padding: 20px;
	border: 1px solid rgba(22, 66, 52, 0.12);
	border-radius: 14px;
}

.tickets-account-shell
legend {
	padding: 0 8px;
	color: #173f33;
	font-weight: 800;
}


/* Mobile */

@media (max-width: 900px) {

	body.logged-in.woocommerce-account
	.tickets-account-shell
	.woocommerce-MyAccount-navigation,
	body.logged-in.woocommerce-account
	.tickets-account-shell
	.woocommerce-MyAccount-content {
		float: none;
		width: 100%;
	}

	body.logged-in.woocommerce-account
	.tickets-account-shell
	.woocommerce-MyAccount-navigation {
		margin-bottom: 20px;
	}

	.tickets-account-shell
	.woocommerce-Addresses,
	.tickets-account-shell
	.u-columns.woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

}


@media (max-width: 640px) {

	.tickets-account-shell
	.woocommerce-form-login,
	body.logged-in.woocommerce-account
	.tickets-account-shell
	.woocommerce-MyAccount-content {
		padding: 20px !important;
		border-radius: 16px !important;
	}

	body.logged-in.woocommerce-account
	.tickets-account-shell
	.woocommerce-MyAccount-navigation
	ul {
		border-radius: 16px;
	}

	.tickets-account-shell
	table.shop_table {
		font-size: 14px;
	}

	.tickets-account-shell
	table.shop_table
	th,
	.tickets-account-shell
	table.shop_table
	td {
		padding: 10px;
	}

}


/* =========================================================
   END 0.4.111 - NATIVE MY ACCOUNT
   ========================================================= */


/* =========================================================
   BEGIN 0.4.112 - MY ACCOUNT MOBILE TOP GAP
   Reduce empty space below the mobile header on My Account.
   Desktop and other WooCommerce pages stay unchanged.
   ========================================================= */

@media (max-width: 640px) {

	body.woocommerce-account
	main#primary.tickets-account-page
	.tickets-account-hero {
		padding-top: 42px;
	}

}

/* =========================================================
   END 0.4.112 - MY ACCOUNT MOBILE TOP GAP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.113 - MY ACCOUNT CLEANUP

   WooCommerce legacy col2-set rules can keep the account
   address blocks floated even inside our CSS grid.
   Force billing + shipping into one clean desktop row.
   ========================================================= */

.tickets-account-shell
.woocommerce-Addresses,
.tickets-account-shell
.u-columns.woocommerce-Addresses {
	display: grid !important;
	grid-template-columns:
		repeat(2, minmax(0, 1fr)) !important;
	gap: 20px !important;
	align-items: stretch;
}

.tickets-account-shell
.woocommerce-Addresses
> .woocommerce-Address,
.tickets-account-shell
.woocommerce-Addresses
> .u-column1,
.tickets-account-shell
.woocommerce-Addresses
> .u-column2,
.tickets-account-shell
.woocommerce-Addresses
> .col-1,
.tickets-account-shell
.woocommerce-Addresses
> .col-2 {
	float: none !important;
	clear: none !important;
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.tickets-account-shell
.woocommerce-Addresses
> .u-column1,
.tickets-account-shell
.woocommerce-Addresses
> .col-1 {
	grid-column: 1 !important;
	grid-row: 1 !important;
}

.tickets-account-shell
.woocommerce-Addresses
> .u-column2,
.tickets-account-shell
.woocommerce-Addresses
> .col-2 {
	grid-column: 2 !important;
	grid-row: 1 !important;
}


@media (max-width: 900px) {

	.tickets-account-shell
	.woocommerce-Addresses,
	.tickets-account-shell
	.u-columns.woocommerce-Addresses {
		grid-template-columns: 1fr !important;
	}

	.tickets-account-shell
	.woocommerce-Addresses
	> .u-column1,
	.tickets-account-shell
	.woocommerce-Addresses
	> .u-column2,
	.tickets-account-shell
	.woocommerce-Addresses
	> .col-1,
	.tickets-account-shell
	.woocommerce-Addresses
	> .col-2 {
		grid-column: 1 !important;
		grid-row: auto !important;
	}

}


/* =========================================================
   END 0.4.113 - MY ACCOUNT CLEANUP
   ========================================================= */


/* =========================================================
   BEGIN 0.4.115 - VIEW ORDER PAY ACTION
   ========================================================= */

.tickets-account-shell
.tickets-account-order-actions {
	display: flex;
	align-items: center;
	margin: 0 0 24px;
}

.tickets-account-shell
.tickets-account-order-pay {
	min-width: 180px;
	text-align: center;
}


@media (max-width: 640px) {

	.tickets-account-shell
	.tickets-account-order-actions {
		display: block;
	}

	.tickets-account-shell
	.tickets-account-order-pay {
		display: block;
		width: 100%;
	}

}

/* =========================================================
   END 0.4.115 - VIEW ORDER PAY ACTION
   ========================================================= */


/* =========================================================
   BEGIN 0.4.116 - LOST PASSWORD POLISH
   Native WooCommerce lost-password form.
   ========================================================= */

.tickets-account-shell
.woocommerce-ResetPassword.lost_reset_password {
	box-sizing: border-box;
	max-width: 680px;
	margin: 0 auto;
	padding: 30px;
	border: 1px solid rgba(22, 66, 52, 0.14);
	border-radius: 20px;
	background: #fff;
	box-shadow:
		0 18px 50px
		rgba(23, 63, 51, 0.07);
	color: #28493f;
	line-height: 1.6;
}

.tickets-account-shell
.woocommerce-ResetPassword
.form-row {
	box-sizing: border-box;
	width: 100%;
	margin: 22px 0 0;
	padding: 0;
}

.tickets-account-shell
.woocommerce-ResetPassword
label {
	display: block;
	margin: 0 0 8px;
	color: #173f33;
	font-weight: 700;
	line-height: 1.4;
}

.tickets-account-shell
.woocommerce-ResetPassword
.input-text {
	box-sizing: border-box;
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 11px 14px;
	border: 1px solid rgba(22, 66, 52, 0.22);
	border-radius: 10px;
	background: #fff !important;
	color: #173f33 !important;
	font: inherit;
	outline: 0;
	box-shadow: none;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.tickets-account-shell
.woocommerce-ResetPassword
.input-text:focus {
	border-color: #1d664e;
	box-shadow:
		0 0 0 3px
		rgba(29, 102, 78, 0.10);
}

.tickets-account-shell
.woocommerce-ResetPassword
button.button {
	min-width: 170px;
}


@media (max-width: 640px) {

	.tickets-account-shell
	.woocommerce-ResetPassword.lost_reset_password {
		width: 100%;
		padding: 20px;
		border-radius: 16px;
	}

	.tickets-account-shell
	.woocommerce-ResetPassword
	button.button {
		display: block;
		width: 100%;
	}

}

/* =========================================================
   END 0.4.116 - LOST PASSWORD POLISH
   ========================================================= */


/* =========================================================
   BEGIN 0.4.117 - NATIVE PRIDE FEED

   The lionspark-pride-friends shortcode contains its own
   presentation and remains untouched.

   Its built-in negative top margin was designed for the
   legacy hero page. Neutralize only that positioning inside
   our native wrapper.
   ========================================================= */

.pride-feed-native-page {
	background: #f7f3e9;
	color: #173f33;
}


.pride-feed-native-hero {
	padding: 64px 0 38px;
}

.pride-feed-native-eyebrow {
	margin: 0 0 12px;
	color: #5d786d;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.14em;
	line-height: 1.3;
	text-transform: uppercase;
}

.pride-feed-native-hero h1 {
	max-width: 820px;
	margin: 0;
	color: #174c3b;
	font-size: clamp(44px, 5vw, 64px);
	font-weight: 850;
	letter-spacing: -0.045em;
	line-height: 0.98;
}

.pride-feed-native-intro {
	max-width: 680px;
	margin: 20px 0 0;
	color: #587067;
	font-size: 19px;
	line-height: 1.6;
}


.pride-feed-native-content {
	padding: 0 0 10px;
}


/*
 * Higher specificity than the plugin's own
 * .lpf-program--feed !important rule.
 */

.pride-feed-native-page
.lpf-program--feed {
	margin:
		0 auto 72px
		!important;
	padding:
		0 16px
		!important;
}


/*
 * Remove paragraph artifacts if WordPress ever wraps
 * the shortcode content.
 */

.pride-feed-native-content
> p:empty {
	display: none;
}


@media (max-width: 680px) {

	.pride-feed-native-hero {
		padding:
			42px 0 28px;
	}

	.pride-feed-native-eyebrow {
		margin-bottom: 10px;
		font-size: 12px;
	}

	.pride-feed-native-hero h1 {
		font-size: 40px;
		line-height: 1.02;
	}

	.pride-feed-native-intro {
		margin-top: 16px;
		font-size: 17px;
		line-height: 1.55;
	}

	.pride-feed-native-page
	.lpf-program--feed {
		margin:
			0 auto 44px
			!important;
		padding:
			0 14px
			!important;
	}

}


/* =========================================================
   END 0.4.117 - NATIVE PRIDE FEED
   ========================================================= */


/* =========================================================
   BEGIN 0.4.118 - NATIVE PRIDE FRIEND SINGLE

   The actual participant card remains styled and rendered
   by lionspark-pride-friends. These rules affect only the
   native outer shell and spacing.
   ========================================================= */

.pride-friend-native-page {
	background: #f7f3e9;
	color: #173f33;
}


.pride-friend-native-hero {
	padding: 60px 0 34px;
}

.pride-friend-native-back {
	display: inline-flex;
	margin: 0 0 30px;
	color: #17634a;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.4;
	text-decoration: none;
}

.pride-friend-native-back:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pride-friend-native-eyebrow {
	margin: 0 0 12px;
	color: #5d786d;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.14em;
	line-height: 1.3;
	text-transform: uppercase;
}

.pride-friend-native-hero h1 {
	max-width: 820px;
	margin: 0;
	color: #174c3b;
	font-size: clamp(44px, 5vw, 64px);
	font-weight: 850;
	letter-spacing: -0.045em;
	line-height: 0.98;
}

.pride-friend-native-intro {
	max-width: 640px;
	margin: 19px 0 0;
	color: #587067;
	font-size: 19px;
	line-height: 1.6;
}


.pride-friend-native-content {
	padding: 4px 0 70px;
}


/*
 * Preserve the plugin's single-card presentation while
 * integrating its spacing with the new page shell.
 */

.pride-friend-native-content
.lpf-single {
	max-width: 780px;
	margin: 0 auto;
	padding: 0 18px;
}

.pride-friend-native-content
.lpf-single
> .lpf-kicker {
	margin-bottom: 14px;
}

.pride-friend-native-content
.lpf-single__actions {
	margin-top: 22px;
}


/*
 * "Подробнее" points to the page already being viewed.
 * Keep the date row but hide that redundant self-link
 * only on the single friend page.
 */

.pride-friend-native-content
.lpf-single
.lpf-card__footer
a {
	display: none;
}


@media (max-width: 680px) {

	.pride-friend-native-hero {
		padding: 42px 0 26px;
	}

	.pride-friend-native-back {
		margin-bottom: 24px;
		font-size: 14px;
	}

	.pride-friend-native-eyebrow {
		margin-bottom: 10px;
		font-size: 12px;
	}

	.pride-friend-native-hero h1 {
		font-size: 40px;
		line-height: 1.02;
	}

	.pride-friend-native-intro {
		margin-top: 15px;
		font-size: 17px;
		line-height: 1.55;
	}

	.pride-friend-native-content {
		padding-bottom: 50px;
	}

	.pride-friend-native-content
	.lpf-single {
		padding:
			0 14px;
	}

	.pride-friend-native-content
	.lpf-single__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.pride-friend-native-content
	.lpf-single__actions
	> a {
		justify-content: center;
		text-align: center;
	}

	.pride-friend-native-content
	.lpf-single__actions
	.lpf-submit {
		width: 100% !important;
	}

}


/* =========================================================
   END 0.4.118 - NATIVE PRIDE FRIEND SINGLE
   ========================================================= */


/* =========================================================
   BEGIN 0.4.119 - NATIVE PRIDE JOIN

   lionspark-pride-friends owns all inner program styles.

   Its inline shortcode CSS applies a negative top margin
   designed for the legacy lion hero. Higher specificity
   here neutralizes only that old page-shell offset.
   ========================================================= */

.pride-join-native-page {
	background: #f7f3e9;
	color: #173f33;
}

.pride-join-native-content {
	padding: 48px 0 1px;
}


/*
 * Plugin inline rule:
 * body.lpf-join-page .lpf-program { margin:-92px ... !important }
 *
 * Use stronger specificity because the plugin inline style
 * is printed later in the document.
 */

body.lpf-join-page
.pride-join-native-page
.lpf-program {
	margin:
		0 auto 70px
		!important;
}


/*
 * The plugin already provides its own max-width and
 * responsive layout. Do not restyle form internals here.
 */

body.lpf-join-page
.pride-join-native-page
.lpf-program
> :first-child {
	margin-top: 0;
}


@media (max-width: 760px) {

	.pride-join-native-content {
		padding-top: 34px;
	}

	body.lpf-join-page
	.pride-join-native-page
	.lpf-program {
		margin:
			0 auto 52px
			!important;
		padding-top:
			0
			!important;
	}

}


/* =========================================================
   END 0.4.119 - NATIVE PRIDE JOIN
   ========================================================= */


/*
==========================================================
BEGIN 0.4.127 - LEGAL PAGE
==========================================================
*/

.legal-page__section {
	padding: clamp(48px, 6vw, 88px) 0;
}

.legal-page__content {
	max-width: 980px;
	margin: 0 auto;
}

.legal-page__header {
	margin-bottom: 36px;
}

.legal-page__header h1 {
	max-width: 900px;
	margin: 0 0 16px;
	font-size: clamp(34px, 5vw, 64px);
	line-height: 1.04;
}

.legal-page__updated {
	margin: 0;
	opacity: .68;
}

.legal-page__notice {
	margin: 0 0 42px;
	padding: 22px 24px;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 18px;
}

.legal-page__notice p {
	margin: 0;
}

.legal-page h2 {
	margin: 44px 0 18px;
	font-size: clamp(25px, 3vw, 34px);
	line-height: 1.15;
}

.legal-page h3 {
	margin: 30px 0 12px;
	font-size: clamp(20px, 2.4vw, 26px);
	line-height: 1.2;
}

.legal-page p,
.legal-page li {
	font-size: 17px;
	line-height: 1.72;
}

.legal-page p {
	margin: 0 0 16px;
}

.legal-page ul {
	margin: 0 0 22px;
	padding-left: 24px;
}

.legal-page li + li {
	margin-top: 7px;
}

.legal-page a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 767px) {

	.legal-page__section {
		padding: 38px 0 56px;
	}

	.legal-page__notice {
		padding: 18px;
	}

	.legal-page p,
	.legal-page li {
		font-size: 16px;
	}
}

/*
==========================================================
END 0.4.127 - LEGAL PAGE
==========================================================
*/


/*
==========================================================
BEGIN 0.4.128 - FORM PRIVACY CONSENTS
==========================================================
*/

.vacancies-form__consent,
.opeka-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 4px 0 20px;
	font-size: 14px;
	line-height: 1.5;
	cursor: pointer;
}

.vacancies-form__consent input,
.opeka-form__consent input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 3px 0 0;
	accent-color: currentColor;
}

.vacancies-form__consent a,
.opeka-form__consent a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.vacancies-form__consent a:hover,
.opeka-form__consent a:hover {
	text-decoration-thickness: 2px;
}

/*
==========================================================
END 0.4.128 - FORM PRIVACY CONSENTS
==========================================================
*/


/*
==========================================================
BEGIN 0.4.130 - CHECKOUT EMPTY STATE
==========================================================
*/

.tickets-checkout-empty {
	max-width: 680px;
	margin: 0 auto;
	padding: clamp(34px, 6vw, 64px) clamp(22px, 5vw, 52px);
	text-align: center;
}

.tickets-checkout-empty h2 {
	margin: 0 0 14px;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.1;
}

.tickets-checkout-empty p {
	max-width: 520px;
	margin: 0 auto 26px;
	font-size: 17px;
	line-height: 1.65;
}

@media (max-width: 767px) {

	.tickets-checkout-empty p {
		font-size: 16px;
	}

}

/*
==========================================================
END 0.4.130 - CHECKOUT EMPTY STATE
==========================================================
*/


/*
==========================================================
BEGIN 0.4.131 - GUARDIAN SINGLE
==========================================================
*/

.guardian-single-hero {
	padding: clamp(50px, 7vw, 92px) 0 34px;
}

.guardian-single-hero__inner {
	max-width: 980px;
	margin: 0 auto;
}

.guardian-single-back {
	display: inline-flex;
	margin-bottom: 32px;
	font-weight: 700;
	text-decoration: none;
}

.guardian-single-eyebrow {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.guardian-single-hero h1 {
	max-width: 1000px;
	margin: 0;
	font-size: clamp(34px, 5vw, 64px);
	line-height: 1.06;
}

.guardian-single-lead {
	max-width: 680px;
	margin: 20px 0 0;
	font-size: 18px;
	line-height: 1.6;
}

.guardian-single-featured {
	padding: 12px 0 42px;
}

.guardian-single-featured__frame {
	max-width: 920px;
	margin: 0 auto;
	overflow: hidden;
	border-radius: 26px;
}

.guardian-single-featured__frame img {
	display: block;
	width: 100%;
	height: auto;
}

.guardian-single-body {
	padding: 4px 0 54px;
}

.guardian-single-content {
	max-width: 820px;
	margin: 0 auto;
	font-size: 18px;
	line-height: 1.78;
}

.guardian-single-content p {
	margin: 0 0 20px;
}

.guardian-single-content img {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}

.guardian-single-cta {
	padding: 0 0 54px;
}

.guardian-single-cta__card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	max-width: 980px;
	margin: 0 auto;
	padding: clamp(26px, 5vw, 46px);
	border-radius: 26px;
	background: rgba(54, 126, 58, .08);
}

.guardian-single-cta__card h2 {
	margin: 0 0 10px;
	font-size: clamp(26px, 3vw, 38px);
}

.guardian-single-cta__card p {
	max-width: 620px;
	margin: 0;
	line-height: 1.6;
}

.guardian-single-footer {
	padding: 0 0 64px;
}

.guardian-single-footer .shell {
	max-width: 980px;
}

.guardian-single-footer a {
	font-weight: 800;
	text-decoration: none;
}

@media (max-width: 767px) {

	.guardian-single-hero {
		padding-top: 38px;
	}

	.guardian-single-back {
		margin-bottom: 24px;
	}

	.guardian-single-lead,
	.guardian-single-content {
		font-size: 16px;
	}

	.guardian-single-featured__frame {
		border-radius: 18px;
	}

	.guardian-single-cta__card {
		align-items: flex-start;
		flex-direction: column;
	}

}

/*
==========================================================
END 0.4.131 - GUARDIAN SINGLE
==========================================================
*/

/* ============================================================
 * LIONSPARK USEFUL LINKS BLOCK v1
 * Homepage: "Полезно знать"
 * ============================================================ */

.useful-links-section {
	padding-top: clamp(58px, 6.5vw, 96px);
	padding-bottom: clamp(66px, 7vw, 108px);
	background:
		radial-gradient(
			circle at 50% 0,
			rgba(92, 126, 88, 0.08),
			transparent 36%
		),
		#f7f4eb;
}

.useful-links-section__heading {
	margin-bottom: clamp(28px, 3.5vw, 48px);
}

.useful-links-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 1.7vw, 26px);
}

.useful-link-card {
	position: relative;
	display: block;
	min-height: clamp(330px, 31vw, 430px);
	overflow: hidden;
	border-radius: 28px;
	background: #244b37;
	box-shadow:
		0 18px 45px rgba(24, 54, 39, 0.13),
		0 2px 8px rgba(24, 54, 39, 0.06);
	color: #fff;
	text-decoration: none;
	isolation: isolate;
	transform: translateZ(0);
	transition:
		transform 220ms ease,
		box-shadow 220ms ease;
}

.useful-link-card__media,
.useful-link-card__shade {
	position: absolute;
	inset: 0;
}

.useful-link-card__media {
	z-index: 0;
}

.useful-link-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.01);
	transition: transform 650ms cubic-bezier(.2,.65,.25,1);
}

.useful-link-card--help .useful-link-card__image {
	object-position: 52% center;
}

.useful-link-card--rules .useful-link-card__image {
	object-position: 50% center;
}

.useful-link-card--found .useful-link-card__image {
	object-position: 50% 38%;
}

.useful-link-card--tour .useful-link-card__image {
	object-position: 50% center;
}

.useful-link-card__shade {
	z-index: 1;
	background:
		linear-gradient(
			180deg,
			rgba(15, 44, 31, 0.04) 5%,
			rgba(15, 44, 31, 0.12) 38%,
			rgba(12, 39, 27, 0.88) 100%
		);
	transition: background 220ms ease;
}

.useful-link-card__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	min-height: inherit;
	padding:
		clamp(22px, 2.2vw, 32px)
		clamp(20px, 2vw, 29px);
}

.useful-link-card__icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin-bottom: auto;
	border: 1px solid rgba(255, 255, 255, 0.48);
	border-radius: 50%;
	background: rgba(16, 48, 33, 0.20);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
}

.useful-link-card__icon svg {
	width: 32px;
	height: 32px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.useful-link-card__title {
	display: block;
	max-width: 90%;
	margin-top: clamp(28px, 4vw, 62px);
	font-family: inherit;
	font-size: clamp(25px, 2vw, 34px);
	font-weight: 650;
	line-height: 1.08;
	letter-spacing: -0.025em;
	color: #fff;
	text-wrap: balance;
}

.useful-link-card__cta {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-top: 20px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	color: #2f6446;
	box-shadow: 0 8px 24px rgba(8, 32, 21, 0.18);
	transition:
		transform 220ms ease,
		background 220ms ease;
}

.useful-link-card__cta svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (hover: hover) {

	.useful-link-card:hover {
		transform: translateY(-6px);
		box-shadow:
			0 26px 58px rgba(24, 54, 39, 0.18),
			0 4px 12px rgba(24, 54, 39, 0.08);
	}

	.useful-link-card:hover .useful-link-card__image {
		transform: scale(1.065);
	}

	.useful-link-card:hover .useful-link-card__shade {
		background:
			linear-gradient(
				180deg,
				rgba(15, 44, 31, 0.02) 5%,
				rgba(15, 44, 31, 0.08) 34%,
				rgba(12, 39, 27, 0.82) 100%
			);
	}

	.useful-link-card:hover .useful-link-card__cta {
		transform: translateX(4px);
		background: #fff;
	}

}

.useful-link-card:focus-visible {
	outline: 3px solid #d6a84a;
	outline-offset: 5px;
}

@media (max-width: 1050px) {

	.useful-links-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.useful-link-card {
		min-height: 390px;
	}

}

@media (max-width: 640px) {

	.useful-links-section {
		padding-top: 54px;
		padding-bottom: 68px;
	}

	.useful-links-section__heading {
		margin-bottom: 26px;
	}

	.useful-links-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.useful-link-card {
		min-height: 315px;
		border-radius: 24px;
	}

	.useful-link-card__content {
		padding: 22px;
	}

	.useful-link-card__icon {
		width: 52px;
		height: 52px;
	}

	.useful-link-card__icon svg {
		width: 29px;
		height: 29px;
	}

	.useful-link-card__title {
		max-width: 82%;
		margin-top: 38px;
		font-size: clamp(27px, 8vw, 32px);
	}

}

@media (prefers-reduced-motion: reduce) {

	.useful-link-card,
	.useful-link-card__image,
	.useful-link-card__shade,
	.useful-link-card__cta {
		transition: none;
	}

}

/* ============================================================
 * LIONSPARK USEFUL LINKS BLOCK v2
 * Square desktop cards + four compact mobile cards in one row
 * ============================================================ */

.useful-link-card {
	aspect-ratio: 1 / 1;
	min-height: 0;
}

.useful-link-card__content {
	min-height: 100%;
}

.useful-link-card--help .useful-link-card__image,
.useful-link-card--rules .useful-link-card__image,
.useful-link-card--found .useful-link-card__image,
.useful-link-card--tour .useful-link-card__image {
	object-position: center;
}

@media (max-width: 1050px) and (min-width: 641px) {

	.useful-links-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.useful-link-card {
		aspect-ratio: 1 / 1;
		min-height: 0;
	}

}

@media (max-width: 640px) {

	.useful-links-section {
		padding-top: 48px;
		padding-bottom: 58px;
	}

	.useful-links-section__heading {
		margin-bottom: 22px;
	}

	.useful-links-section__heading h2 {
		font-size: clamp(30px, 9vw, 38px);
	}

	.useful-links-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 7px;
	}

	.useful-link-card {
		aspect-ratio: 1 / 1;
		min-width: 0;
		min-height: 0;
		border-radius: 17px;
		box-shadow:
			0 8px 18px rgba(24, 54, 39, 0.12),
			0 1px 4px rgba(24, 54, 39, 0.06);
	}

	.useful-link-card__content {
		align-items: center;
		justify-content: flex-start;
		min-height: 100%;
		padding: 7px 4px 7px;
		text-align: center;
	}

	.useful-link-card__icon {
		width: 31px;
		height: 31px;
		margin: 0;
		border-color: rgba(255, 255, 255, 0.55);
		background: rgba(16, 48, 33, 0.18);
	}

	.useful-link-card__icon svg {
		width: 19px;
		height: 19px;
		stroke-width: 1.9;
	}

	.useful-link-card__title {
		width: 100%;
		max-width: 100%;
		margin-top: auto;
		font-size: clamp(9px, 2.75vw, 11.5px);
		font-weight: 750;
		line-height: 1.04;
		letter-spacing: -0.025em;
		text-align: center;
		text-wrap: balance;
	}

	.useful-link-card__cta {
		display: none;
	}

	.useful-link-card__shade {
		background:
			linear-gradient(
				180deg,
				rgba(12, 39, 27, 0.06) 0%,
				rgba(12, 39, 27, 0.13) 40%,
				rgba(12, 39, 27, 0.84) 100%
			);
	}

}

@media (max-width: 390px) {

	.useful-links-grid {
		gap: 5px;
	}

	.useful-link-card {
		border-radius: 15px;
	}

	.useful-link-card__content {
		padding: 6px 3px;
	}

	.useful-link-card__icon {
		width: 27px;
		height: 27px;
	}

	.useful-link-card__icon svg {
		width: 17px;
		height: 17px;
	}

	.useful-link-card__title {
		font-size: clamp(8px, 2.65vw, 10px);
	}

}

/* ============================================================
 * LIONSPARK USEFUL LINKS BLOCK v3
 * Quick links directly below homepage hero, without heading
 * ============================================================ */

.useful-links-section {
	padding-top: clamp(20px, 2.4vw, 34px);
	padding-bottom: clamp(38px, 4vw, 58px);
}

@media (max-width: 640px) {

	.useful-links-section {
		padding-top: 18px;
		padding-bottom: 38px;
	}

}

