/**
 * Homepage Block 5 — Kleuren en afwerking.
 *
 * Left #F9F9FD | Right #3273EB | product overlaps the split.
 * CHANGE THE VISUALS cycles color variants.
 */

:root {
	--tf-blue: #3273EB;
	--tf-orange: #EB6049;
	--tf-colors-bg: #F9F9FD;
	--tf-colors-text: #111111;
}

.tf-colors.e-con,
.tf-colors {
	--padding-top: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
	--padding-right: 0 !important;
	position: relative !important;
	display: grid !important;
	grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr);
	align-items: stretch !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 720px;
	overflow: hidden;
	background: var(--tf-colors-bg) !important;
}

.tf-colors > .e-con,
.tf-colors-copy,
.tf-colors-visual,
.tf-colors-media {
	--width: 100%;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	flex: none !important;
}

/* ----- Left copy ----- */
.tf-colors-copy.e-con,
.tf-colors-copy {
	position: relative;
	z-index: 2;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: flex-start !important;
	background-color: var(--tf-colors-bg) !important;
	padding: clamp(48px, 12vw, 200px) clamp(40px, 5vw, 100px) clamp(48px, 12vw, 200px) var(--tf-page-x) !important;
	margin: 0 !important;
	gap: 0 !important;
}

.tf-colors-title {
	margin: 0 0 28px !important;
	max-width: 12ch;
}

.tf-colors-title .elementor-heading-title {
	color: var(--tf-blue) !important;
	font-family: "Garet", sans-serif !important;
	font-weight: 800 !important;
	font-size: clamp(40px, 4.2vw, 66px) !important;
	line-height: 1.08 !important;
	margin: 0 !important;
	text-align: left !important;
}

.tf-colors-text {
	margin: 0 0 48px !important;
	max-width: 34ch;
}

.tf-colors-text .elementor-widget-container,
.tf-colors-text p {
	color: var(--tf-colors-text) !important;
	font-family: "Garet", sans-serif !important;
	font-weight: 400 !important;
	font-size: clamp(18px, 1.4vw, 24px) !important;
	line-height: 165% !important;
	margin: 0 !important;
	text-align: left !important;
}

.tf-colors-text p{
	max-width: 67%;
}

.tf-colors-cta .elementor-button{
	position:relative; display:inline-block;
	padding:0 .78125rem 0 0;
	background:transparent!important; border:0!important; border-radius:0!important;
	color: #eb6049; !important;
	font-size:.8125rem; font-weight:500; letter-spacing:.15em; line-height:1; text-transform:uppercase;
	transition:all .5s cubic-bezier(.22,.61,.36,1);
}
.tf-colors-cta .elementor-button .elementor-button-icon{ display:none!important; }
.tf-colors-cta .elementor-button .elementor-button-content-wrapper{ display:inline; }
.tf-colors-cta .elementor-button::after,
.tf-colors-cta .elementor-button::before{
	content:""; position:absolute; top:50%;
	width:.75rem; height:1.0625rem; transform:translateY(-50%);
	background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNS41MjQiIGhlaWdodD0iOS41NTMiPjxwYXRoIGRhdGEtbmFtZT0iUGF0aCAyMDUiIGQ9Im0xMC43NDcgMC0uODQyLjg0MiAzLjMzMiAzLjMzOEgwdjEuMTk0aDEzLjIzN0w5Ljg5OSA4LjcwNmwuODQ4Ljg0OCA0Ljc3Ny00Ljc3N3oiIGZpbGw9IiNlYjYwNDkiLz48L3N2Zz4=") no-repeat 50%/contain;
	transition:all .5s cubic-bezier(.22,.61,.36,1); pointer-events:none;
}
.tf-colors-cta .elementor-button::after{ left:100%; opacity:1; }
.tf-colors-cta .elementor-button::before{ left:-10%; opacity:0; }
.tf-colors-cta .elementor-button:hover{ padding-left:1.5625rem; }
.tf-colors-cta .elementor-button:hover::after{ left:110%; opacity:0; }
.tf-colors-cta .elementor-button:hover::before{ left:0; opacity:1; }

/* ----- Right visual ----- */
.tf-colors-visual.e-con,
.tf-colors-visual {
	position: relative !important;
	z-index: 1;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: flex-end !important;
	background-color: var(--tf-blue) !important;
	padding: clamp(32px, 4vw, 56px) var(--tf-page-x) clamp(32px, 4vw, 56px) clamp(32px, 4vw, 64px) !important;
	margin: 0 !important;
	min-height: 720px;
	overflow: hidden;
}

/* White geometric frame */

.tf-colors-frame {
	position: absolute;
	inset: 10% 8% 12% 6%;
	pointer-events: none;
	z-index: 2;
}

.tf-colors-frame svg {
	display: block;
	width: 100%;
	height: 100%;
}

.tf-colors-label {
	position: absolute !important;
	top: 14%;
	right: 12%;
	z-index: 3;
	margin: 0 !important;
	pointer-events: none;
}

.tf-colors-label .elementor-heading-title,
.tf-colors-label .elementor-widget-container {
	color: #fff !important;
	font-family: "Garet", sans-serif !important;
	font-weight: 500 !important;
	font-size: 13px !important;
	letter-spacing: 0.12em;
	text-transform: uppercase !important;
	line-height: 1.2 !important;
	margin: 0 !important;
	text-align: right !important;
}

.tf-colors-change {
	position: relative;
	z-index: 4;
	margin: 0 !important;
}

.tf-colors-change .elementor-button,
.tf-colors-change a.elementor-button,
.tf-colors-change button.elementor-button {
	background-color: var(--tf-orange) !important;
	border: 0 !important;
	border-radius: 5px !important;
	padding: 15px 20px !important;
	font-family: "Garet", sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em;
	text-transform: uppercase !important;
	color: #fff !important;
	box-shadow: none !important;
	cursor: pointer;
}

.tf-colors-change .elementor-button-icon {
	display: none !important;
}

.tf-colors-change .elementor-button:hover,
.tf-colors-change .elementor-button:focus {
	background-color: #d45540 !important;
	color: #fff !important;
}

/* Desktop: match hero CTA — no arrows, horizontal padding 35px */
@media (min-width: 1025px) {
	.tf-colors-change .elementor-button,
	.tf-colors-change a.elementor-button,
	.tf-colors-change button.elementor-button {
		padding: 15px 35px !important;
	}

	.tf-colors-change .elementor-button-text {
		padding-left: 0 !important;
		padding-right: 0 !important;
		transform: none !important;
	}

	.tf-colors-change .elementor-button:hover .elementor-button-text,
	.tf-colors-change .elementor-button:focus .elementor-button-text {
		padding-left: 0 !important;
		padding-right: 0 !important;
		transform: none !important;
	}

	.tf-colors-change .elementor-button-text::before,
	.tf-colors-change .elementor-button-text::after {
		content: none !important;
		display: none !important;
	}

	.tf-colors-media.e-con,
	.tf-colors-media {
		left: 58%;
	}
}

/* ----- Overlapping product ----- */
.tf-colors-media.e-con,
.tf-colors-media {
	position: absolute !important;
	left: 53%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 5;
	width: min(52vw, 530px) !important;
	max-width: 640px !important;
	pointer-events: none;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
}

.tf-colors-media .tf-colors-photo {
	position: absolute !important;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease;
	margin: 0 !important;
	width: 100% !important;
}

.tf-colors-media .tf-colors-photo.is-active {
	position: relative !important;
	opacity: 1;
	visibility: visible;
}

.tf-colors-media img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	object-fit: contain;
	filter: drop-shadow(0 18px 40px rgba(17, 17, 17, 0.18));
}



.tf-colors-frame-widget{ position:absolute; top: 50%; transform: translateY(-50%); left: 0%; z-index:3; pointer-events:none; }
.tf-colors-frame-widget .o-shape{
	position:relative; 
	width: 512px;
	height: 512px;
	display:flex; align-items: flex-start;
	justify-content: flex-end;
}
.tf-colors-frame-widget .o-shape-bg{
	position:absolute; 
	left: 80px;
	top: 4px;
	width:100%; height:100%; z-index:1;
}
.tf-colors-frame-widget .o-shape-bg path{ stroke:#fff; fill:none; }
.tf-colors-frame-widget .o-shape-text{
	position:relative; 
	z-index: 2;
	margin: 53px -30px 0 0;
	color:#fff; font-size: .6875rem;
	font-weight:500; letter-spacing:.15em; line-height:1.8; text-transform:uppercase;
}


.tf-colors-change{ position:absolute; z-index:5; right: 18%;
	bottom: 22%; 
}




/* Кнопка (c-btn--ghost) з ефектом заливки колом */
.tf-colors .tf-colors-change .elementor-button{
	position:relative;
	overflow:hidden;
	z-index:1;
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:3.75rem;
	padding:0 2.1875rem;
	border:.0625rem solid var(--tf-accent);
	border-radius:.625rem;
	background-color:transparent;
	color:var(--tf-accent);
	font-size:.8125rem;
	font-weight:500;
	letter-spacing:.15em;
	line-height:3.625rem;
	text-transform:uppercase;
	transition:color .5s cubic-bezier(.22,.61,.36,1),
	border-color .5s cubic-bezier(.22,.61,.36,1);
}

/* саме "коло" (js-btn-bg) */
.tf-colors .tf-colors-change .elementor-button::before{
	content:"";
	position:absolute;
	z-index:-1;
	top:var(--y,50%);
	left:var(--x,50%);
	width:0;
	height:0;
	border-radius:50%;
	background: #fff;
	transform:translate(-50%,-50%);
	transition:width .4s ease-in-out, height .4s ease-in-out;
}

/* текст завжди над колом */
.tf-colors .tf-colors-change .elementor-button .elementor-button-content-wrapper{
	position:relative;
	z-index:1;
}

/* hover: коло розтікається, бордер синій, текст білий */
.tf-colors .tf-colors-change .elementor-button:hover,
.tf-colors .tf-colors-change .elementor-button:focus{
	color: #eb6049 !important;
	border-color: #fff;
	background-color:transparent;
}
.tf-colors .tf-colors-change .elementor-button:hover::before,
.tf-colors .tf-colors-change .elementor-button:focus::before{
	width:250%;
	height:250%;
}




@media (max-width: 1440px) {
	.tf-colors,
	.tf-colors-visual {
		min-height: 640px;
	}

	.tf-colors-media.e-con, .tf-colors-media {
		width: min(48vw, 450px) !important;
		left: 58%;
		transform: translate(-50%, -50%);
	}
	.tf-colors-frame-widget .o-shape {
		width: 412px;
		height: 412px;
	}
}

@media (max-width: 1024px) {
	.tf-colors.e-con,
	.tf-colors {
		--flex-direction: column !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		min-height: 0 !important;
		overflow-x: clip;
		overflow-y: visible;
	}

	.tf-colors-copy.e-con,
	.tf-colors-copy {
		order: 1;
		padding: 56px var(--tf-page-x) 0 !important;
		justify-content: flex-start !important;
		margin-bottom: -122px !important;
	}

	.tf-colors-title {
		max-width: none;
		margin: 0 0 20px !important;
	}

	.tf-colors-title .elementor-heading-title {
		font-size: 30px !important;
		line-height: 1.15 !important;
	}

	.tf-colors-text {
		max-width: none;
		margin-bottom: 20px !important;
	}

	.tf-colors-text .elementor-widget-container,
	.tf-colors-text p {
		font-size: 18px !important;
		line-height: 1.45 !important;
	}

	.tf-colors-cta {
		margin: 0 !important;
	}

	.tf-colors-cta .elementor-button,
	.tf-colors-cta a.elementor-button {
		font-size: 13px !important;
	}

	.tf-colors-media.e-con,
	.tf-colors-media {
		position: relative !important;
		order: 2;
		left: auto !important;
		top: auto !important;
		transform: none !important;
		width: min(78vw, 440px) !important;
		max-width: 440px !important;
		margin: 12px 40px -220px auto !important;
		z-index: 6;
		pointer-events: none;
	}

	.tf-colors-frame-widget .o-shape {
		width: 420px;
		height: 420px;
		align-items: flex-end;
		justify-content: flex-start;
	}

	.tf-colors-frame-widget {
		left: 24%;
	}

	.tf-colors-change {
		right: auto;
		left: 36%;
		bottom: 32%;
	}

	.tf-colors-text p {
		max-width: 100%;
	}

	.tf-colors-frame-widget .o-shape-text {
		margin: 0 128px 25px auto;
	}

	.tf-colors-media img {
		filter: drop-shadow(0 12px 28px rgba(17, 17, 17, 0.16));
	}

	.tf-colors-visual.e-con,
	.tf-colors-visual {
		order: 3;
		min-height: 450px;
		align-items: stretch !important;
		justify-content: flex-end !important;
		padding: 140px var(--tf-page-x) 32px !important;
	}

	.tf-colors-frame {
		inset: 10% 8% 22% 8%;
	}

	.tf-colors-label {
		top: 14%;
		right: var(--tf-page-x);
	}


	.tf-colors-change .elementor-widget-container,
	.tf-colors-change .elementor-button-wrapper {
		width: 100%;
		display: flex;
		justify-content: flex-start;
	}

	.tf-colors-change .elementor-button,
	.tf-colors-change a.elementor-button,
	.tf-colors-change button.elementor-button {
		width: auto;
		max-width: 100%;
	}
}

@media (max-width: 767px) {
	.tf-colors-copy {
		padding: 48px var(--tf-page-x) 0 !important;
	}

	.tf-colors-copy.e-con,
	.tf-colors-copy {
		margin-bottom: 0 !important;
	}

	.tf-colors-media {
		width: min(82vw, 300px) !important;
		margin: 8px auto -110px !important;
		transform: none !important;
	}

	.tf-colors-visual {
		min-height: 380px;
		padding: 120px var(--tf-page-x) 28px !important;
	}

	.tf-colors-title br{
		display: none;
	}


	.tf-colors-change .elementor-button,
	.tf-colors-change a.elementor-button,
	.tf-colors-change button.elementor-button {
		width: 100% !important;
		justify-content: center !important;
		text-align: center !important;
	}
}

@media (max-width: 600px) {
	.tf-colors-title .elementor-heading-title {
		font-size: 26px !important;
		overflow-wrap: anywhere;
	}

	.tf-colors-text .elementor-widget-container,
	.tf-colors-text p {
		font-size: 16px !important;
	}

	.tf-colors-media {
		width: min(88vw, 280px) !important;
		margin: 6px auto -100px !important;
		transform: none !important;
	}

	.tf-colors-frame-widget .o-shape-bg {
		left: 0px;
	}

	.tf-colors-frame-widget {
		left: 1.5625rem;
	}

	.tf-colors-frame-widget .o-shape-text {
		margin: 00 25px 20px;
	}

	.tf-colors-change {
		right: auto;
		left: 46px;
		bottom: 32%;
	}

	.tf-colors-frame-widget .o-shape {
		width: 373px;
		height: 373px;
	}

	.tf-colors-change .elementor-button,
	.tf-colors-change a.elementor-button,
	.tf-colors-change button.elementor-button {
		padding-left: 14px !important;
		padding-right: 14px !important;
		max-width: 100% !important;
	}
}
