/* Elementor Kaffi Highlight Widget */
.elementor-widget-ekhw_kaffi_highlight {
	width: 100%;
}

.ekhw-section {
	--ekhw-bg: #f3e4c8;
	--ekhw-title-color: #d85f2d;
	--ekhw-accent: #ff7043;
	--ekhw-text: #3e4858;
	--ekhw-soft: rgba(255,255,255,.44);
	--ekhw-section-padding-top: clamp(58px, 7vw, 110px);
	--ekhw-section-padding-bottom: clamp(58px, 7vw, 110px);
	--ekhw-title-font-size: clamp(34px, 4.6vw, 68px);
	--ekhw-feature-title-font-size: clamp(26px, 3vw, 42px);
	--ekhw-feature-text-font-size: clamp(15px, 1.25vw, 22px);
	--ekhw-feature-title-margin-top: 0px;
	--ekhw-feature-title-margin-bottom: 6px;
	--ekhw-feature-offset-y: 0px;
	--ekhw-icon-size: clamp(66px, 7vw, 94px);
	--ekhw-product-image-size: 400px;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--ekhw-bg);
	color: var(--ekhw-text);
	padding: var(--ekhw-section-padding-top) 22px var(--ekhw-section-padding-bottom);
	font-family: inherit;
}

.ekhw-breakout {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.ekhw-inner {
	width: min(1440px, 100%);
	margin: 0 auto;
	position: relative;
	z-index: 2;
}

.ekhw-title {
	margin: 0 0 clamp(44px, 5.2vw, 86px);
	text-align: center;
	color: var(--ekhw-title-color);
	font-family: inherit;
	font-size: var(--ekhw-title-font-size);
	font-weight: 900;
	line-height: .98;
	letter-spacing: -.035em;
}

.ekhw-grid {
	display: grid;
	grid-template-columns: minmax(250px, 1fr) minmax(260px, 420px) minmax(250px, 1fr);
	align-items: center;
	gap: clamp(28px, 4vw, 72px);
}

.ekhw-list {
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 78px);
	transform: translateY(var(--ekhw-feature-offset-y));
}

.ekhw-feature {
	display: grid;
	align-items: center;
	gap: clamp(16px, 2vw, 30px);
}

.ekhw-feature-left {
	grid-template-columns: 1fr var(--ekhw-icon-size);
	text-align: right;
}

.ekhw-feature-right {
	grid-template-columns: var(--ekhw-icon-size) 1fr;
	text-align: left;
}

.ekhw-feature h3 {
	margin: var(--ekhw-feature-title-margin-top) 0 var(--ekhw-feature-title-margin-bottom);
	color: var(--ekhw-accent);
	font-size: var(--ekhw-feature-title-font-size);
	font-weight: 850;
	line-height: 1;
	letter-spacing: -.025em;
}

.ekhw-feature p {
	margin: 0;
	color: var(--ekhw-text);
	font-size: var(--ekhw-feature-text-font-size);
	font-weight: 500;
	line-height: 1.35;
}

.ekhw-feature-icon {
	width: var(--ekhw-icon-size);
	height: var(--ekhw-icon-size);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--ekhw-accent);
	background: rgba(255,255,255,.32);
	box-shadow:
		inset 0 0 0 1px rgba(39,90,132,.11),
		0 18px 44px rgba(39,90,132,.10);
	backdrop-filter: blur(10px);
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
	line-height: 0;
}

.ekhw-feature:hover .ekhw-feature-icon {
	transform: translateY(-4px) scale(1.05);
	background: rgba(255,255,255,.52);
	box-shadow:
		inset 0 0 0 1px rgba(39,90,132,.18),
		0 24px 54px rgba(39,90,132,.16);
}

.ekhw-feature-icon > * {
	width: 100%;
	height: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.ekhw-feature-icon svg,
.ekhw-feature-icon i,
.ekhw-feature-icon .elementor-icon {
	width: 48%;
	height: 48%;
	font-size: calc(var(--ekhw-icon-size) * .52);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: auto;
	color: currentColor;
	fill: currentColor;
	line-height: 1;
	vertical-align: middle;
}

.ekhw-feature-icon svg {
	overflow: visible;
}

.ekhw-product {
	position: relative;
	min-height: max(430px, calc(var(--ekhw-product-image-size) + 120px));
	display: flex;
	align-items: center;
	justify-content: center;
}

.ekhw-product-halo {
	position: absolute;
	inset: 11% -8%;
	border-radius: 999px;
	background:
		radial-gradient(circle at 50% 54%, rgba(255,255,255,.58) 0%, rgba(255,255,255,.22) 35%, rgba(255,255,255,0) 70%),
		radial-gradient(circle at 50% 50%, rgba(39,90,132,.12), rgba(39,90,132,0) 62%);
	filter: blur(.2px);
	transform: rotate(-4deg);
}

.ekhw-product-img {
	position: relative;
	z-index: 4;
	display: block;
	width: auto;
	max-width: min(82vw, var(--ekhw-product-image-size));
	max-height: var(--ekhw-product-image-size);
	object-fit: contain;
	filter: drop-shadow(0 34px 45px rgba(24,45,63,.22));
	transform-origin: 50% 82%;
	transition:
		transform .45s cubic-bezier(.19, 1, .22, 1),
		filter .45s ease,
		opacity .18s ease;
	will-change: transform, filter;
	cursor: pointer;
}

.ekhw-product:hover .ekhw-product-img {
	transform: translateY(-14px) scale(1.065) rotate(-1.5deg);
	filter: drop-shadow(0 46px 54px rgba(24,45,63,.30));
}

.ekhw-splash {
	position: absolute;
	z-index: 1;
	border-radius: 999px;
	pointer-events: none;
	opacity: 0;
	transform: scale(.7);
	transition: opacity .38s ease, transform .55s cubic-bezier(.19, 1, .22, 1);
}

.ekhw-splash-a {
	width: clamp(210px, 24vw, 360px);
	height: clamp(210px, 24vw, 360px);
	background: radial-gradient(circle, rgba(255,255,255,.55), rgba(39,90,132,.18) 42%, rgba(39,90,132,0) 68%);
}

.ekhw-splash-b {
	width: clamp(170px, 20vw, 300px);
	height: clamp(170px, 20vw, 300px);
	background: radial-gradient(circle, rgba(255,255,255,.35), rgba(255,255,255,0) 72%);
	transform: translate(22%, -18%) scale(.7);
}

.ekhw-splash-enabled .ekhw-product:hover .ekhw-splash {
	opacity: 1;
	transform: scale(1.18);
}

.ekhw-splash-enabled .ekhw-product:hover .ekhw-splash-b {
	transform: translate(22%, -18%) scale(1.32);
}

.ekhw-bg {
	position: absolute;
	pointer-events: none;
	z-index: 0;
	border-radius: 50%;
	filter: blur(28px);
	opacity: .48;
}

.ekhw-bg-one {
	width: 420px;
	height: 420px;
	left: -150px;
	top: 12%;
	background: rgba(255,255,255,.52);
}

.ekhw-bg-two {
	width: 360px;
	height: 360px;
	right: -120px;
	bottom: 8%;
	background: rgba(39,90,132,.16);
}

@media (max-width: 1024px) {
	.ekhw-section {
		padding-left: 18px;
		padding-right: 18px;
	}

	.ekhw-grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.ekhw-product {
		order: 1;
		min-height: 520px;
	}

	.ekhw-list-left {
		order: 2;
	}

	.ekhw-list-right {
		order: 3;
	}

	.ekhw-list {
		width: min(760px, 100%);
		margin: 0 auto;
		gap: 24px;
	}

	.ekhw-feature-left,
	.ekhw-feature-right {
		grid-template-columns: var(--ekhw-icon-size) 1fr;
		text-align: left;
	}

	.ekhw-feature-left .ekhw-feature-copy {
		order: 2;
	}

	.ekhw-feature-left .ekhw-feature-icon {
		order: 1;
	}
}

@media (max-width: 640px) {
	.ekhw-title {
		margin-bottom: 36px;
		font-size: clamp(32px, 12vw, 48px);
	}

	.ekhw-product {
		min-height: max(360px, calc(var(--ekhw-product-image-size) + 100px));
	}

	.ekhw-product-img {
		max-width: min(82vw, var(--ekhw-product-image-size));
		max-height: var(--ekhw-product-image-size);
	}

	.ekhw-feature {
		grid-template-columns: var(--ekhw-icon-size) 1fr !important;
		gap: 14px;
	}

	.ekhw-feature-icon {
		width: var(--ekhw-icon-size);
		height: var(--ekhw-icon-size);
	}

	.ekhw-feature h3 {
		font-size: var(--ekhw-feature-title-font-size);
	}

	.ekhw-feature p {
		font-size: var(--ekhw-feature-text-font-size);
	}
}

body.ekhw-modal-open {
	overflow: hidden;
}

.ekhw-stores {
	width: 100%;
	margin: 10px 0 34px;
}

.wc-np-nutrition-trigger + .ekhw-stores {
	margin-top: -24px;
}

.woocommerce-product-details__short-description:has(.wc-np-nutrition-trigger) + .ekhw-stores {
	margin-top: -18px !important;
}

.ekhw-stores-button {
	appearance: none !important;
	width: 100% !important;
	min-height: 94px !important;
	display: grid !important;
	grid-template-columns: 62px 1fr auto !important;
	align-items: center !important;
	gap: 18px !important;
	border: 1.5px solid #ffd0b8 !important;
	border-radius: 18px !important;
	background: rgba(255,255,255,.74) !important;
	color: #071624 !important;
	padding: 18px 24px !important;
	text-align: left !important;
	font-family: inherit;
	cursor: pointer;
	box-shadow: 0 16px 35px rgba(160,78,16,.07) !important;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
	text-transform: none !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
}

.ekhw-stores-button:hover,
.ekhw-stores-button:focus-visible {
	border-color: #ffd0b8 !important;
	box-shadow: 0 20px 42px rgba(160,78,16,.11) !important;
	transform: translateY(-1px);
	outline: none;
}

.ekhw-stores-button__icon {
	width: 54px;
	height: 54px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.2px solid #ffd9c5;
	border-radius: 50%;
	color: #ee5a2a;
	background: #fff9f2;
}

.ekhw-stores-button__icon svg {
	width: 30px;
	height: 30px;
}

.ekhw-stores-button strong,
.ekhw-stores-button small {
	display: block;
}

.ekhw-stores-button strong {
	margin: 0;
	font-size: 20px;
	line-height: 1.15;
	font-weight: 900;
	color: #071624;
	letter-spacing: 0;
	text-transform: none;
	white-space: normal;
}

.ekhw-stores-button small {
	margin: 5px 0 0;
	font-size: 15px;
	line-height: 1.2;
	font-weight: 400;
	color: #2b3548;
	letter-spacing: 0;
	text-transform: none;
}

.ekhw-stores-button__arrow {
	color: #94431f;
	font-size: 48px;
	line-height: 1;
	font-weight: 500;
}

@media (min-width: 981px) {
	.single-product .ekhw-stores {
		margin: 4px 0 25px !important;
	}

	.single-product .wc-np-nutrition-trigger + .ekhw-stores {
		margin-top: -20px !important;
	}

	.single-product .woocommerce-product-details__short-description:has(.wc-np-nutrition-trigger) + .ekhw-stores {
		margin-top: -20px !important;
	}

	.single-product div.product .summary:has(.ekhw-stores) {
		padding-top: 14px !important;
		padding-bottom: 46px !important;
	}

	.single-product div.product .summary:has(.ekhw-stores) form.cart {
		align-items: stretch !important;
		padding: 10px !important;
		gap: 12px !important;
	}

	.single-product div.product .summary:has(.ekhw-stores) form.cart .single_add_to_cart_button {
		gap: 8px !important;
		justify-content: center !important;
		text-align: center !important;
		padding: 0 18px !important;
	}

	.single-product div.product .summary:has(.ekhw-stores) form.cart .quantity,
	.single-product div.product .summary:has(.ekhw-stores) form.cart .single_add_to_cart_button {
		transform: translateY(-3px);
	}

	.single-product div.product .summary:has(.ekhw-stores) form.cart .single_add_to_cart_button:before {
		content: none !important;
		display: none !important;
	}

	.single-product div.product .summary:has(.ekhw-stores) form.cart .single_add_to_cart_button:after {
		margin-left: 4px !important;
		line-height: .58 !important;
	}

	.single-product .ekhw-stores-button {
		min-height: 70px !important;
		padding: 12px 18px !important;
		border-radius: 15px !important;
		grid-template-columns: 46px 1fr auto !important;
		gap: 14px !important;
	}

	.single-product .ekhw-stores-button__icon {
		width: 42px !important;
		height: 42px !important;
	}

	.single-product .ekhw-stores-button__icon svg {
		width: 23px !important;
		height: 23px !important;
	}

	.single-product .ekhw-stores-button strong {
		font-size: 16px !important;
		white-space: nowrap;
	}

	.single-product .ekhw-stores-button small {
		margin-top: 4px !important;
		font-size: 13px !important;
	}

	.single-product .ekhw-stores-button__arrow {
		font-size: 36px !important;
	}
}

.ekhw-store-modal[hidden] {
	display: none;
}

.ekhw-store-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: block;
	isolation: isolate;
}

.ekhw-store-modal__backdrop {
	position: fixed;
	inset: 0;
	z-index: 0;
	background: rgba(20,20,18,.36);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	opacity: 0;
	transition: opacity .18s ease;
}

.ekhw-store-modal__panel {
	position: absolute;
	z-index: 1;
	right: max(28px, calc((100vw - 1240px) / 2));
	top: 50%;
	width: min(420px, calc(100vw - 40px));
	max-height: 88vh;
	overflow: auto;
	background: #fffaf5;
	border: 1px solid #f6d5bf;
	border-radius: 22px;
	box-shadow: 0 32px 80px rgba(33,23,12,.18);
	padding: 28px 30px;
	opacity: 0;
	transform: translateY(-48%) scale(.97);
	transition: opacity .18s ease, transform .22s ease;
}

.ekhw-store-modal.is-open .ekhw-store-modal__backdrop,
.ekhw-store-modal.is-open .ekhw-store-modal__panel {
	opacity: 1;
}

.ekhw-store-modal.is-open .ekhw-store-modal__panel {
	transform: translateY(-50%) scale(1);
}

.ekhw-store-modal__panel:focus {
	outline: none;
}

.ekhw-store-modal__close {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: #94431f;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 8px 18px rgba(60,34,10,.08);
}

.ekhw-store-modal__title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 42px 22px 0;
	color: #071624;
	font-family: inherit;
	font-size: 24px;
	line-height: 1.15;
	font-weight: 900;
	letter-spacing: 0;
}

.ekhw-store-modal__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #ee5a2a;
	flex: 0 0 auto;
}

.ekhw-store-modal__icon svg {
	width: 28px;
	height: 28px;
}

.ekhw-store-modal__section-title {
	margin: 20px 0 12px;
	color: #ee5a2a;
	font-size: 17px;
	line-height: 1.2;
	font-weight: 900;
}

.ekhw-store-list {
	display: grid;
	gap: 0;
}

.ekhw-store-card {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: start;
	gap: 14px;
	border-bottom: 1px solid #ecd8c9;
	padding: 11px 0;
}

.ekhw-store-card h3 {
	margin: 0;
	color: #071624;
	font-size: 15px;
	line-height: 1.25;
	font-weight: 800;
}

.ekhw-store-card p {
	margin: 4px 0 0;
	color: #263244;
	font-size: 14px;
	line-height: 1.35;
}

.ekhw-store-card__meta {
	text-align: right;
	font-size: 14px;
	font-weight: 800;
	color: #071624;
}

.ekhw-store-card a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid #f0c5aa;
	border-radius: 999px;
	color: #94431f;
	padding: 7px 14px;
	text-decoration: none;
	font-weight: 800;
	font-size: 13px;
	transition: background .2s ease, color .2s ease;
}

.ekhw-store-card a:hover,
.ekhw-store-card a:focus-visible {
	background: #ee5a2a;
	color: #fff;
	outline: none;
}

.ekhw-store-modal__done {
	display: block;
	margin: 22px auto 0;
	border: 1.5px solid #f0c5aa;
	border-radius: 999px;
	background: #fff8f1;
	color: #94431f;
	padding: 12px 34px;
	font-family: inherit;
	font-weight: 900;
	cursor: pointer;
}

@media (max-width: 700px) {
	.ekhw-stores-button {
		grid-template-columns: 50px 1fr auto !important;
		gap: 14px !important;
		padding: 14px 16px !important;
	}

	.ekhw-stores-button__icon {
		width: 48px;
		height: 48px;
	}

	.ekhw-stores-button__icon svg {
		width: 26px;
		height: 26px;
	}

	.ekhw-stores-button strong {
		font-size: 18px;
	}

	.ekhw-stores-button small {
		font-size: 14px;
	}

	.ekhw-stores-button__arrow {
		font-size: 42px;
	}

	.ekhw-store-modal__panel {
		top: auto;
		right: 10px;
		bottom: 10px;
		left: 10px;
		width: auto;
		max-height: calc(100vh - 20px);
		border-radius: 22px;
		transform: translateY(24px);
	}

	.ekhw-store-modal.is-open .ekhw-store-modal__panel {
		transform: translateY(0);
	}

	.ekhw-store-card {
		grid-template-columns: 1fr;
		align-items: start;
	}
}
