:root {
	--cp-content-width: min(1120px, calc(100vw - 3rem));
	--cp-transition-base: 220ms ease;
	--cp-radius-pill: 999px;
	--cp-radius-card: 28px;
	--cp-space-section: clamp(5rem, 8vw, 9rem);
	--cp-shadow-soft: 0 24px 60px rgba(17, 30, 23, 0.08);
}

body {
	color: var(--cp-color-ink);
	background: var(--cp-color-sand);
	font-family: var(--cp-font-body);
}

body,
body button,
body input,
body optgroup,
body select,
body textarea,
body .site-branding,
body .site-title,
body .site-title a,
body .site-description,
body .page-header .entry-title,
body .entry-title,
body .entry-title a,
body .post-navigation .nav-title,
body .widget-title,
body .comment-reply-title,
body .screen-reader-text:focus {
	font-family: var(--cp-font-body) !important;
}

body .site-main {
	min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title {
	font-family: var(--cp-font-display);
}

body .elementor-widget-heading .elementor-heading-title,
body .elementor h1,
body .elementor h2,
body .elementor h3,
body .elementor h4,
body .elementor h5,
body .elementor h6,
body .cp-theme-shell h1,
body .cp-theme-shell h2,
body .cp-theme-shell h3,
body .cp-theme-shell h4,
body .cp-theme-shell h5,
body .cp-theme-shell h6,
body .page-header .entry-title {
	font-family: var(--cp-font-display) !important;
}

p,
li,
a,
span,
input,
textarea,
select,
button {
	font-family: var(--cp-font-body);
}

body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-widget-text-editor li,
body .elementor-widget-text-editor a,
body .elementor-widget-animated-headline,
body .elementor-widget-animated-headline span,
body .elementor-widget-button .elementor-button,
body .elementor-widget-icon-list .elementor-icon-list-text,
body .elementor-widget-theme-post-content,
body .elementor-widget-theme-post-content p,
body .elementor-widget-theme-post-content li {
	font-family: var(--cp-font-body) !important;
}

body .elementor-widget-animated-headline .elementor-headline {
	font-family: var(--cp-font-display) !important;
}

.cp-section {
	position: relative;
	padding: var(--cp-space-section) 0;
}

.cp-header {
	background-color: transparent !important;
	box-shadow: none;
	border-color: transparent;
	transition:
		background-color 260ms ease,
		box-shadow 260ms ease,
		border-color 260ms ease;
}

.cp-header.is-scrolled {
	background-color: var(--cp-color-forest) !important;
	box-shadow: 0 16px 40px rgba(0, 18, 26, 0.16);
}

.cp-header.is-scrolled,
.cp-header.is-scrolled.e-con,
.elementor-sticky--active .cp-header.is-scrolled {
	background-color: var(--cp-color-forest) !important;
}

.cp-section--boxed > .e-con-inner,
.cp-section--boxed > .elementor-container,
.cp-container {
	width: var(--cp-content-width);
	margin-inline: auto;
}

.cp-card {
	background: rgba(255, 255, 255, 0.66);
	backdrop-filter: blur(16px);
	border: 1px solid rgba(22, 49, 38, 0.08);
	border-radius: var(--cp-radius-card);
	box-shadow: var(--cp-shadow-soft);
}

.cp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.65rem 1rem;
	border: 1px solid rgba(22, 49, 38, 0.12);
	border-radius: var(--cp-radius-pill);
	color: var(--cp-color-forest);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cp-lead,
body .cp-lead p {
	font-size: clamp(1.05rem, 1.25vw, 1.35rem);
	line-height: 1.75;
	color: rgba(30, 30, 30, 0.78);
}

.cp-button,
body .elementor-widget-button .elementor-button.cp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 3.5rem;
	padding: 0.85rem 1.5rem;
	border: 1px solid transparent;
	border-radius: var(--cp-radius-pill);
	background: var(--cp-color-forest);
	color: var(--cp-color-white);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	text-decoration: none;
	transition:
		transform var(--cp-transition-base),
		background-color var(--cp-transition-base),
		color var(--cp-transition-base),
		border-color var(--cp-transition-base);
}

.cp-button:hover,
.cp-button:focus-visible {
	transform: translateY(-2px);
	background: #0f425b;
	color: var(--cp-color-white);
}

.cp-button--ghost {
	background: transparent;
	color: var(--cp-color-forest);
	border-color: rgba(22, 49, 38, 0.18);
}

.cp-button--ghost:hover,
.cp-button--ghost:focus-visible {
	background: rgba(22, 49, 38, 0.06);
	color: var(--cp-color-forest);
}

.cp-showcase-slider {
	--cp-slider-gap: clamp(1.1rem, 1.8vw, 1.75rem);
	--cp-slider-side-width: clamp(15rem, 32vw, 23rem);
	--cp-slider-active-width: clamp(15rem, 36vw, 26rem);
	position: relative;
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
	padding: 0.5rem 0 0;
}

.cp-showcase-slider__viewport {
	position: relative;
	height: calc((var(--cp-slider-active-width) * 1.5) + 1rem);
	touch-action: none;
	user-select: none;
	cursor: auto;
}

.cp-showcase-slider__viewport.is-dragging {
	cursor: auto;
}

.cp-showcase-slider__slide {
	position: absolute;
	top: 0;
	left: 50%;
	width: var(--cp-slider-side-width);
	aspect-ratio: 2 / 3;
	opacity: 0;
	cursor: inherit;
	pointer-events: none;
	transform: translate3d(-50%, 0, 0) scale(0.86);
	transform-origin: center center;
	transition:
		transform 520ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 360ms ease,
		filter 420ms ease;
}

.cp-showcase-slider__slide.is-prev,
.cp-showcase-slider__slide.is-next,
.cp-showcase-slider__slide.is-active {
	opacity: 1;
	pointer-events: auto;
}

.cp-showcase-slider__slide.is-prev {
	transform: translate3d(
			calc(-50% - (var(--cp-slider-active-width) / 2) - (var(--cp-slider-side-width) / 2) - var(--cp-slider-gap)),
			calc(((var(--cp-slider-active-width) * 1.5) - (var(--cp-slider-side-width) * 1.5)) / 2),
			0
		)
		scale(0.97);
	filter: saturate(0.9);
}

.cp-showcase-slider__slide.is-next {
	transform: translate3d(
			calc(-50% + (var(--cp-slider-active-width) / 2) + (var(--cp-slider-side-width) / 2) + var(--cp-slider-gap)),
			calc(((var(--cp-slider-active-width) * 1.5) - (var(--cp-slider-side-width) * 1.5)) / 2),
			0
		)
		scale(0.97);
	filter: saturate(0.9);
}

.cp-showcase-slider__slide.is-active {
	width: var(--cp-slider-active-width);
	transform: translate3d(-50%, 0, 0) scale(1);
	z-index: 2;
}

.cp-showcase-slider__slide.is-hidden {
	opacity: 0;
	pointer-events: none;
	transform: translate3d(-50%, 0, 0) scale(0.84);
}

.cp-showcase-slider__media {
	width: 100%;
	height: 100%;
	aspect-ratio: 2 / 3;
	border-radius: 0.15rem;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.52);
	box-shadow: 0 18px 36px rgba(0, 18, 26, 0.08);
}

.cp-showcase-slider__media img,
.cp-showcase-slider__media picture,
.cp-showcase-slider__media video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-user-drag: none;
	user-select: none;
	pointer-events: none;
}

.cp-showcase-slider__slide,
.cp-showcase-slider__media {
	cursor: inherit;
}

.cp-theme-shell {
	width: var(--cp-content-width);
	margin: 0 auto;
	padding: 8rem 0 6rem;
}

.cp-theme-shell__intro {
	max-width: 42rem;
}

.cp-theme-shell__intro h1 {
	margin-bottom: 1rem;
	color: var(--cp-color-forest);
	font-size: clamp(2.75rem, 7vw, 5.5rem);
	line-height: 0.95;
}

.cp-theme-shell__intro p {
	margin: 0;
	font-size: 1.1rem;
	line-height: 1.7;
}

[data-gsap='fade-up'] {
	opacity: 0;
	transform: translateY(18px);
}

[data-gsap='fade-down'] {
	opacity: 0;
	transform: translateY(-18px);
}

[data-gsap='fade-left'] {
	opacity: 0;
	transform: translateX(22px);
}

[data-gsap='fade-right'] {
	opacity: 0;
	transform: translateX(-22px);
}

[data-gsap='zoom-in'] {
	opacity: 0;
	transform: scale(0.86);
}

[data-gsap='clip-reveal'] {
	opacity: 1;
	clip-path: none;
}

[data-gsap='clip-reveal-ltr'] {
	opacity: 1;
	clip-path: none;
}

[data-gsap='clip-reveal-rtl'] {
	opacity: 1;
	clip-path: none;
}

[data-gsap='clip-reveal-ttb'] {
	opacity: 1;
	clip-path: none;
}

[data-gsap='clip-reveal-btt'] {
	opacity: 1;
	clip-path: none;
}

.cp-clip-frame {
	display: block;
	overflow: hidden;
	will-change: mask-size, -webkit-mask-size;
}

.cp-clip-frame img,
.cp-clip-frame svg,
.cp-clip-frame video,
.cp-clip-frame canvas {
	display: block;
	width: 100%;
}

.animated-texts,
.animated-titles .elementor-heading-title,
.animated-titles .elementor-headline,
.animated-words .elementor-heading-title,
.animated-words .elementor-headline,
.animated-scale-in {
	will-change: transform, opacity;
}

.cp-line {
	display: block;
	overflow: hidden;
	padding-bottom: 0.1em;
}

.cp-line > div,
.cp-line > span {
	display: block;
}

.cp-word {
	display: inline-block;
	overflow: hidden;
	padding: 0 0.04em 0.1em 0;
}

[data-gsap='parallax'] {
	will-change: transform;
}

@media (max-width: 767px) {
	:root {
		--cp-content-width: min(100vw - 1.5rem, 100%);
	}

	.cp-theme-shell {
		padding: 5rem 0 4rem;
	}

	.cp-showcase-slider {
		--cp-slider-gap: 0.75rem;
		--cp-slider-active-width: min(70vw, 19rem);
		--cp-slider-side-width: min(42vw, 12rem);
		width: 100%;
		margin-inline: 0;
		padding-bottom: 3.5rem;
	}

	.cp-showcase-slider__viewport {
		height: calc(var(--cp-slider-height) + 1rem);
	}

	.cp-showcase-slider__slide.is-prev {
		transform: translate3d(
				calc(-50% - (var(--cp-slider-active-width) / 2) - (var(--cp-slider-side-width) / 2) - var(--cp-slider-gap)),
				calc(((var(--cp-slider-active-width) * 1.5) - (var(--cp-slider-side-width) * 1.5)) / 2),
				0
			)
			scale(0.93);
	}

	.cp-showcase-slider__slide.is-next {
		transform: translate3d(
				calc(-50% + (var(--cp-slider-active-width) / 2) + (var(--cp-slider-side-width) / 2) + var(--cp-slider-gap)),
				calc(((var(--cp-slider-active-width) * 1.5) - (var(--cp-slider-side-width) * 1.5)) / 2),
				0
			)
			scale(0.93);
	}
}

@media (hover: none), (pointer: coarse) {
	.cp-showcase-slider__viewport,
	.cp-showcase-slider__viewport.is-dragging,
	.cp-showcase-slider__slide,
	.cp-showcase-slider__media {
		cursor: auto;
	}

	.cp-showcase-slider::after {
		display: none;
	}
}
