:root {
	--jcnat-green: #29463a;
	--jcnat-deep-green: #17372f;
	--jcnat-terracotta: #b64a0a;
	--jcnat-gold: #c58b28;
	--jcnat-cream: #fbf6ed;
	--jcnat-line: rgba(74, 54, 42, .2);
}

.jcnat-upcoming,
.jcnat-agenda,
.jcnat-tariffs {
	box-sizing: border-box;
	width: min(100%, 1040px);
	margin: 2rem auto;
	color: #2d2926;
}

.jcnat-upcoming__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.jcnat-upcoming__header h2,
.jcnat-agenda__header h2,
.jcnat-tariffs h2 {
	margin: 0;
	font-size: clamp(1.8rem, 5vw, 3rem);
	line-height: 1.08;
}

.jcnat-carousel__controls,
.jcnat-agenda__controls,
.jcnat-popup__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .65rem;
}

.jcnat-carousel__arrow,
.jcnat-agenda__arrow,
.jcnat-popup__controls button {
	display: inline-grid;
	place-items: center;
	box-sizing: border-box;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--jcnat-gold);
	border-radius: 50%;
	background: #fff;
	color: var(--jcnat-deep-green);
	cursor: pointer;
	font-size: 1.35rem;
}

.jcnat-carousel__arrow:hover,
.jcnat-carousel__arrow:focus-visible,
.jcnat-agenda__arrow:hover,
.jcnat-agenda__arrow:focus-visible,
.jcnat-popup__controls button:hover,
.jcnat-popup__controls button:focus-visible {
	background: var(--jcnat-deep-green);
	color: #fff;
}

.jcnat-carousel__count,
.jcnat-agenda__count,
.jcnat-popup__controls span {
	min-width: 3.8rem;
	text-align: center;
	font-weight: 700;
}

.jcnat-carousel__viewport {
	overflow: hidden;
	border-radius: 28px 6px 28px 6px;
}

.jcnat-carousel__track {
	display: flex;
	transition: transform .38s ease;
	will-change: transform;
}

.jcnat-date-card {
	display: flex;
	flex: 0 0 100%;
	box-sizing: border-box;
	min-height: 360px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: clamp(1.5rem, 5vw, 3.4rem);
	border: 1px solid var(--jcnat-line);
	background: linear-gradient(145deg, #fff 0%, var(--jcnat-cream) 100%);
	text-align: center;
}

.jcnat-eyebrow {
	margin: 0 0 .55rem;
	color: var(--jcnat-terracotta);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.jcnat-date-card h3,
.jcnat-popup__slide h3 {
	margin: 0;
	color: var(--jcnat-deep-green);
	font-size: clamp(1.4rem, 4vw, 2.2rem);
	line-height: 1.15;
}

.jcnat-date-card__date {
	margin: .7rem 0 1rem;
	font-size: 1.08rem;
	font-weight: 700;
}

.jcnat-date-card__location {
	margin: -.35rem 0 .7rem;
	color: #514b46;
	font-size: .94rem;
	line-height: 1.35;
	overflow-wrap: break-word;
	writing-mode: horizontal-tb !important;
}

.jcnat-event-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: .3rem .55rem;
	margin: .6rem 0 1.25rem;
}

.jcnat-event-price__badge {
	align-self: center;
	padding: .25rem .55rem;
	border-radius: 999px;
	background: var(--jcnat-terracotta);
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.jcnat-event-price strong {
	color: var(--jcnat-deep-green);
	font-size: 1.5rem;
}

.jcnat-event-price small {
	flex-basis: 100%;
	color: #625b55;
}

.jcnat-date-card__button {
	margin-top: .25rem;
}

.jcnat-agenda {
	width: min(100%, 1180px);
}

.jcnat-agenda__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.jcnat-agenda__viewport {
	box-sizing: border-box;
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	scrollbar-width: none;
	touch-action: pan-x pan-y;
}

.jcnat-agenda__viewport::-webkit-scrollbar {
	display: none;
}

.jcnat-agenda__viewport:focus-visible {
	border-radius: 18px 4px 18px 4px;
	outline: 3px solid rgba(197, 139, 40, .45);
	outline-offset: 4px;
}

.jcnat-agenda__track {
	display: grid;
	grid-auto-columns: calc((100% - 2rem) / 3);
	grid-auto-flow: column;
	gap: 1rem;
	box-sizing: border-box;
	width: 100%;
}

.jcnat-date-card.jcnat-agenda-card {
	min-width: 0;
	min-height: 390px;
	justify-content: flex-start;
	padding: 1.35rem;
	border-radius: 20px 5px 20px 5px;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	writing-mode: horizontal-tb !important;
}

.jcnat-agenda-card h3 {
	font-size: clamp(1.2rem, 1.55vw, 1.5rem);
	hyphens: auto;
	overflow-wrap: break-word;
	writing-mode: horizontal-tb !important;
}

.jcnat-agenda-card .jcnat-date-card__date {
	font-size: 1rem;
	line-height: 1.4;
	overflow-wrap: break-word;
	writing-mode: horizontal-tb !important;
}

.jcnat-agenda-card .jcnat-event-price {
	margin-bottom: 1rem;
}

.jcnat-agenda-card .jcnat-date-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 3.4rem;
	margin-top: auto;
	padding: .8rem 1rem;
	font-family: inherit;
	font-size: 1rem;
	font-style: normal;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
	white-space: normal;
	overflow-wrap: break-word;
	writing-mode: horizontal-tb !important;
}

.jcnat-agenda__hint {
	margin: .8rem 0 0;
	color: #625b55;
	font-size: .86rem;
	text-align: center;
}

.jcnat-agenda-direct {
	display: grid;
	gap: .9rem;
	margin-top: 1.45rem;
}

.jcnat-agenda-direct__row {
	display: grid;
	grid-template-columns: minmax(170px, 220px) minmax(0, 1fr);
	align-items: stretch;
	gap: .85rem;
}

.jcnat-agenda-direct__row h3 {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 104px;
	margin: 0;
	padding: 1rem;
	border: 1px solid var(--jcnat-gold);
	border-radius: 18px 4px 18px 4px;
	background: var(--jcnat-cream);
	color: var(--jcnat-deep-green);
	font-size: 1.12rem;
	line-height: 1.25;
	text-align: center;
}

.jcnat-agenda-direct__buttons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .85rem;
}

.jcnat-agenda-direct__button {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 0;
	min-height: 104px;
	flex-direction: column;
	gap: .2rem;
	padding: .85rem 1rem;
	border: 1px solid var(--jcnat-gold);
	border-radius: 18px 4px 18px 4px;
	background: var(--jcnat-terracotta);
	box-shadow: 0 6px 16px rgba(45, 41, 38, .13);
	color: #fff !important;
	font-family: inherit;
	font-style: normal;
	line-height: 1.3;
	text-align: center;
	text-decoration: none !important;
	white-space: normal;
	overflow-wrap: break-word;
	writing-mode: horizontal-tb !important;
}

.jcnat-agenda-direct__button:hover,
.jcnat-agenda-direct__button:focus-visible {
	background: var(--jcnat-deep-green);
	color: #fff !important;
}

.jcnat-agenda-direct__button strong,
.jcnat-agenda-direct__button span,
.jcnat-agenda-direct__button small {
	color: inherit;
	writing-mode: horizontal-tb !important;
}

.jcnat-agenda-direct__button strong {
	font-size: 1rem;
}

.jcnat-agenda-direct__button span {
	font-size: .92rem;
	font-weight: 700;
}

.jcnat-agenda-direct__button .jcnat-agenda-direct__location {
	font-size: .82rem;
	font-weight: 500;
}

.jcnat-agenda-direct__button small {
	font-size: .78rem;
	opacity: .92;
}

.jcnat-tariffs__heading {
	max-width: 780px;
	margin-bottom: 1.2rem;
}

.jcnat-tariffs__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.jcnat-tariff-card {
	display: flex;
	box-sizing: border-box;
	min-height: 220px;
	flex-direction: column;
	padding: 1.3rem;
	border: 1px solid var(--jcnat-line);
	border-radius: 18px 4px 18px 4px;
	background: #fff;
}

.jcnat-tariff-card h3 {
	margin: 0 0 .9rem;
	color: var(--jcnat-deep-green);
	font-size: 1.15rem;
}

.jcnat-tariff-card__price {
	color: var(--jcnat-terracotta);
	font-size: 1.55rem;
}

.jcnat-tariff-card p {
	margin: auto 0 0;
	padding-top: 1rem;
}

.jcnat-tariffs__note {
	margin-top: 1rem;
	font-size: .9rem;
}

.jcnat-construction-popup[hidden] {
	display: none !important;
}

.jcnat-construction-popup {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	padding: 1rem;
}

.jcnat-construction-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 25, 22, .72);
	backdrop-filter: blur(4px);
}

.jcnat-construction-popup__dialog {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: min(95vw, 1040px);
	max-height: 92vh;
	overflow-y: auto;
	padding: clamp(4.2rem, 7vw, 5.4rem) clamp(2rem, 6vw, 4.5rem) clamp(3.8rem, 6vw, 4.8rem);
	border: 2px solid rgba(197, 139, 40, .72);
	border-radius: 30px 7px 30px 7px;
	background:
		radial-gradient(circle at 68% 30%, rgba(255, 255, 255, .96), rgba(255, 255, 255, 0) 42%),
		var(--jcnat-cream);
	box-shadow: 0 28px 80px rgba(0, 0, 0, .36);
	color: #2d2926;
}

.jcnat-construction-popup__dialog:focus {
	outline: 3px solid rgba(197, 139, 40, .42);
	outline-offset: 3px;
}

.jcnat-construction-popup__layout {
	display: grid;
	grid-template-columns: minmax(210px, .78fr) minmax(340px, 1.22fr);
	align-items: center;
	gap: clamp(1.6rem, 5vw, 4.2rem);
}

.jcnat-construction-tree {
	position: relative;
	width: auto;
	height: min(62vh, 560px);
	max-width: 100%;
	margin-inline: auto;
	overflow: hidden;
	aspect-ratio: 313 / 620;
}

.jcnat-construction-tree__sprite {
	display: block;
	width: 400% !important;
	max-width: none !important;
	height: 100% !important;
	object-fit: fill;
	transform: translate3d(0, 0, 0);
	animation: jcnat-tree-seasons 7s steps(1, end) forwards;
	will-change: transform;
}

.jcnat-construction-popup__content {
	max-width: 510px;
	opacity: 0;
	transform: translateY(12px);
	text-align: left;
}

.jcnat-construction-popup.is-visible .jcnat-construction-popup__content {
	animation: jcnat-construction-text-fade 1.5s .65s ease-out forwards;
}

.jcnat-construction-popup__content h2 {
	margin: 0 0 1.15rem;
	color: #432b19;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(2rem, 5vw, 3.35rem);
	font-weight: 500;
	letter-spacing: .035em;
	line-height: 1.02;
	text-transform: uppercase;
}

.jcnat-construction-popup__content > p:not(.jcnat-eyebrow):not(.jcnat-construction-popup__thanks) {
	margin: 0 0 1rem;
	font-size: clamp(1rem, 2vw, 1.15rem);
	line-height: 1.55;
}

.jcnat-construction-popup__enter {
	display: block;
	width: min(100%, 390px);
	margin: 1.55rem 0 1rem;
	padding: .95rem 1.2rem;
	border: 1px solid var(--jcnat-gold);
	border-radius: 12px 3px 12px 3px;
	background: var(--jcnat-deep-green);
	box-shadow: 0 7px 18px rgba(23, 55, 47, .18);
	color: #fff;
	cursor: pointer;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.jcnat-construction-popup__enter:hover,
.jcnat-construction-popup__enter:focus-visible {
	background: var(--jcnat-terracotta);
}

.jcnat-construction-popup__thanks {
	margin: 0;
	font-size: .95rem;
}

.jcnat-construction-popup__corner {
	position: absolute;
	z-index: 2;
	width: clamp(42px, 5vw, 62px);
	height: auto;
	pointer-events: none;
}

.jcnat-construction-popup__corner--top-left {
	top: .9rem;
	left: .9rem;
}

.jcnat-construction-popup__corner--top-right {
	top: .9rem;
	right: .9rem;
}

.jcnat-construction-popup__corner--bottom-left {
	bottom: .9rem;
	left: .9rem;
}

.jcnat-construction-popup__corner--bottom-right {
	right: .9rem;
	bottom: .9rem;
}

.jcnat-construction-popup__close {
	position: absolute;
	z-index: 3;
	top: 1.05rem;
	right: clamp(4.4rem, 8vw, 5.8rem);
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgba(197, 139, 40, .55);
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--jcnat-deep-green);
	cursor: pointer;
	font-size: 1.6rem;
	line-height: 1;
}

.jcnat-construction-popup__close:hover,
.jcnat-construction-popup__close:focus-visible {
	background: var(--jcnat-deep-green);
	color: #fff;
}

@keyframes jcnat-tree-seasons {
	0%, 24.99% {
		transform: translate3d(0, 0, 0);
	}
	25%, 49.99% {
		transform: translate3d(-25%, 0, 0);
	}
	50%, 74.99% {
		transform: translate3d(-50%, 0, 0);
	}
	75%, 100% {
		transform: translate3d(-75%, 0, 0);
	}
}

@keyframes jcnat-construction-text-fade {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.jcnat-popup[hidden] {
	display: none !important;
}

.jcnat-popup {
	position: fixed;
	z-index: 99999;
	inset: 0;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	padding: 1rem;
}

.jcnat-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 25, 22, .68);
	backdrop-filter: blur(3px);
}

.jcnat-popup__dialog {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: min(92vw, 590px);
	max-height: min(88vh, 760px);
	overflow-y: auto;
	padding: clamp(1.5rem, 5vw, 2.6rem);
	border: 1px solid rgba(197, 139, 40, .7);
	border-radius: 28px 6px 28px 6px;
	background: var(--jcnat-cream);
	box-shadow: 0 24px 70px rgba(0, 0, 0, .32);
	color: #2d2926;
	text-align: center;
}

.jcnat-popup__dialog:focus {
	outline: 3px solid rgba(197, 139, 40, .4);
	outline-offset: 3px;
}

.jcnat-popup__dialog > h2 {
	margin: 0 2rem 1rem;
	color: var(--jcnat-deep-green);
	font-size: clamp(1.6rem, 5vw, 2.35rem);
}

.jcnat-popup__close {
	position: absolute;
	top: .65rem;
	right: .65rem;
	width: 2.45rem;
	height: 2.45rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--jcnat-deep-green);
	cursor: pointer;
	font-size: 1.55rem;
	line-height: 1;
}

.jcnat-popup__slide[hidden] {
	display: none;
}

.jcnat-popup__slide .jcnat-date-card__date {
	margin-bottom: .7rem;
}

.jcnat-popup__controls {
	margin-top: 1.25rem;
}

.jcnat-popup-open {
	overflow: hidden;
}

.jcnat-gift-fields {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid var(--jcnat-line);
	border-radius: 14px 4px 14px 4px;
	background: var(--jcnat-cream);
}

.jcnat-gift-fields legend {
	padding: 0 .4rem;
	color: var(--jcnat-deep-green);
	font-weight: 800;
}

.jcnat-gift-fields__terms {
	margin-bottom: 0;
	font-size: .82rem;
}

@media (max-width: 760px) {
	.jcnat-upcoming {
		padding-inline: 1rem;
	}

	.jcnat-upcoming__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.jcnat-upcoming__header h2 {
		max-width: 12ch;
	}

	.jcnat-agenda {
		padding-inline: 1rem;
	}

	.jcnat-agenda__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.jcnat-agenda-direct__row {
		grid-template-columns: 1fr;
	}

	.jcnat-agenda-direct__row h3 {
		min-height: 0;
		padding: .7rem 1rem;
	}

	.jcnat-tariffs__grid {
		grid-template-columns: 1fr;
	}

	.jcnat-tariff-card {
		min-height: 0;
	}

	.jcnat-construction-popup {
		padding: .55rem;
	}

	.jcnat-construction-popup__dialog {
		width: min(96vw, 560px);
		max-height: 94vh;
		padding: 3.8rem 1.3rem 3.5rem;
	}

	.jcnat-construction-popup__layout {
		grid-template-columns: 1fr;
		gap: .8rem;
	}

	.jcnat-construction-tree {
		height: min(30vh, 230px);
	}

	.jcnat-construction-popup__content {
		max-width: 480px;
		margin-inline: auto;
		text-align: center;
	}

	.jcnat-construction-popup__content h2 {
		margin-bottom: .75rem;
		font-size: clamp(1.6rem, 9vw, 2.35rem);
	}

	.jcnat-construction-popup__content > p:not(.jcnat-eyebrow):not(.jcnat-construction-popup__thanks) {
		margin-bottom: .7rem;
		font-size: .94rem;
		line-height: 1.42;
	}

	.jcnat-construction-popup__enter {
		margin: 1rem auto .8rem;
		padding: .8rem 1rem;
		font-size: .88rem;
	}

	.jcnat-construction-popup__corner {
		width: 38px;
	}

	.jcnat-construction-popup__corner--top-left,
	.jcnat-construction-popup__corner--top-right {
		top: .55rem;
	}

	.jcnat-construction-popup__corner--bottom-left,
	.jcnat-construction-popup__corner--bottom-right {
		bottom: .55rem;
	}

	.jcnat-construction-popup__corner--top-left,
	.jcnat-construction-popup__corner--bottom-left {
		left: .55rem;
	}

	.jcnat-construction-popup__corner--top-right,
	.jcnat-construction-popup__corner--bottom-right {
		right: .55rem;
	}

	.jcnat-construction-popup__close {
		top: .5rem;
		right: 3.35rem;
		width: 2.25rem;
		height: 2.25rem;
	}
}

@media (min-width: 641px) and (max-width: 1024px) {
	.jcnat-agenda {
		padding-inline: 1rem;
	}

	.jcnat-agenda__track {
		grid-auto-columns: calc((100% - 1rem) / 2);
	}
}

@media (max-width: 640px) {
	.jcnat-agenda__track {
		grid-auto-columns: 100%;
	}

	.jcnat-date-card.jcnat-agenda-card {
		min-height: 360px;
		padding: 1.35rem 1.15rem;
	}

	.jcnat-agenda-card h3 {
		font-size: clamp(1.25rem, 6vw, 1.55rem);
	}

	.jcnat-agenda__count {
		min-width: 4.8rem;
	}

	.jcnat-agenda-direct__buttons {
		grid-template-columns: 1fr;
	}

	.jcnat-agenda-direct__button {
		min-height: 96px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jcnat-carousel__track {
		transition: none;
	}

	.jcnat-agenda__viewport {
		scroll-behavior: auto;
	}

	.jcnat-construction-tree__sprite {
		transform: translate3d(-75%, 0, 0);
		animation: none;
	}

	.jcnat-construction-popup__content,
	.jcnat-construction-popup.is-visible .jcnat-construction-popup__content {
		opacity: 1;
		transform: none;
		animation: none;
	}
}
