/*
 * Jasmine Global Experience v2.3
 * No external fonts. All rules are scoped to JGE classes.
 */

body.jge-active {
	--jge-brand:#ED1941;
	--jge-dark:#A7122E;
	--jge-deep:#7E0E23;
	--jge-soft:#FFF2F5;
	--jge-width:920px;
	--jge-desktop:18px;
	--jge-mobile:17px;
	--jge-leading:1.95;
}

body.jge-active :where(main, .site-main, #content) :focus-visible {
	outline:3px solid var(--jge-brand);
	outline-offset:3px;
}

/* Long-form article */
body.jge-article .jge-article-content {
	font-family:inherit;
	font-size:var(--jge-desktop);
	line-height:var(--jge-leading);
	color:#242424;
	overflow-wrap:anywhere;
	text-align:start;
}

@media (min-width:769px) {
	body.jge-article .jge-article-content {
		width:min(var(--jge-width), calc(100% - 40px));
		margin:32px auto 58px;
		padding:48px clamp(34px,5vw,64px) 60px;
		background:#fff;
		border:1px solid #e5dde0;
		border-radius:20px;
		box-shadow:0 18px 52px rgba(36,20,23,.07);
	}

	body.jge-article :where(.entry-title,.post-title,.elementor-widget-theme-post-title .elementor-heading-title) {
		width:min(var(--jge-width), calc(100% - 40px));
		margin-inline:auto;
	}
}

body.jge-article .jge-article-content p {
	font-size:inherit;
	line-height:inherit;
	margin:0 0 1.15em;
}

body.jge-article .jge-article-content h2 {
	font-family:inherit;
	font-size:clamp(25px,3vw,30px);
	line-height:1.55;
	font-weight:800;
	color:#191919;
	margin:2em 0 .7em;
	padding-inline-start:18px;
	border-inline-start:5px solid var(--jge-brand);
	text-wrap:balance;
	scroll-margin-top:120px;
}

body.jge-article .jge-article-content h2::after {
	content:"";
	display:block;
	width:min(190px,42%);
	height:2px;
	margin-top:9px;
	background:linear-gradient(90deg,var(--jge-brand),transparent);
	border-radius:99px;
}

html[dir=rtl] body.jge-article .jge-article-content h2::after {
	background:linear-gradient(270deg,var(--jge-brand),transparent);
}

body.jge-article .jge-article-content h3 {
	font-family:inherit;
	font-size:clamp(20px,2.2vw,23px);
	line-height:1.65;
	font-weight:700;
	color:var(--jge-dark);
	margin:1.55em 0 .52em;
	text-wrap:balance;
	scroll-margin-top:120px;
}

body.jge-article .jge-article-content :is(ul,ol):not(
	.ez-toc-list,
	.lwptoc_itemWrap,
	.elementor-nav-menu,
	.elementor-icon-list-items,
	.wp-block-gallery
) {
	margin:1.15em 0 1.55em;
	padding-block:17px;
	padding-inline:42px 22px;
	background:linear-gradient(135deg,var(--jge-soft),#fff 72%);
	border:1px solid #f0cbd4;
	border-radius:14px;
}

body.jge-article .jge-article-content li {
	line-height:1.8;
	margin:.38em 0;
}

body.jge-article .jge-article-content li::marker {
	color:var(--jge-dark);
	font-weight:800;
}

body.jge-article .jge-article-content :where(
	.lwptoc,
	.ez-toc-container,
	#ez-toc-container,
	.rank-math-toc-block,
	.wp-block-rank-math-toc-block,
	nav.table-of-contents,
	.toc
) {
	margin:1.8em 0 2.3em;
	padding:clamp(18px,3vw,26px);
	background:linear-gradient(135deg,var(--jge-soft),#fff 72%);
	border:1px solid #efc1cc;
	border-inline-start:6px solid var(--jge-brand);
	border-radius:16px;
}

body.jge-article .jge-article-content img:not(.emoji):not(.avatar) {
	max-width:100%;
	height:auto;
	border-radius:15px;
}

body.jge-article .jge-article-content table {
	display:block;
	width:100%;
	max-width:100%;
	overflow-x:auto;
	border-collapse:collapse;
	margin:1.5em 0;
}

body.jge-article .jge-article-content :is(th,td) {
	padding:12px 14px;
	border:1px solid #e5e5e5;
	text-align:start;
}

/* Conservative page profiles */
body.jge-page :where(.elementor-widget-text-editor,.entry-content,.page-content) p {
	line-height:1.9;
}

body:is(.jge-profile-about,.jge-profile-private-label,.jge-profile-catalogs,.jge-profile-contact,.jge-profile-history,.jge-profile-mission)
:where(.elementor-widget-text-editor,.entry-content,.page-content) h2 {
	font-family:inherit;
	font-weight:800;
	line-height:1.55;
	padding-inline-start:15px;
	border-inline-start:4px solid var(--jge-brand);
}

body:is(.jge-profile-about,.jge-profile-private-label)
:where(.elementor-icon-box-wrapper,.elementor-image-box-wrapper) {
	height:100%;
	padding:18px;
	background:linear-gradient(145deg,var(--jge-soft),#fff 72%);
	border:1px solid #efd0d7;
	border-radius:16px;
}

/* Contact */
body.jge-profile-contact :where(.elementor-form,.wpcf7-form,.wpforms-form,.fluentform,.gform_wrapper form)
:is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),select,textarea) {
	width:100%;
	min-height:46px;
	padding:11px 13px;
	font:inherit;
	border:1px solid #d8d4d5;
	border-radius:10px;
	background:#fff;
}

body.jge-profile-contact :where(.elementor-form,.wpcf7-form,.wpforms-form,.fluentform,.gform_wrapper form)
:is(input,select,textarea):focus {
	border-color:var(--jge-dark);
	outline:3px solid #f8ccd5;
	outline-offset:1px;
}

body.jge-profile-contact :where(.elementor-form,.wpcf7-form,.wpforms-form,.fluentform,.gform_wrapper form)
:is(button[type=submit],input[type=submit]) {
	min-height:44px;
	padding:11px 20px;
	color:#fff;
	background:var(--jge-dark);
	border:0;
	border-radius:10px;
	font-weight:700;
}

html[dir=rtl] body.jge-profile-contact :is(input[type=email],input[type=tel],input[type=url]) {
	direction:ltr;
	text-align:left;
}

/* Catalogs */
body.jge-profile-catalogs :where(a[href$=".pdf"],.wp-block-file__button) {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:9px 16px;
	color:#fff!important;
	background:var(--jge-dark);
	border-radius:9px;
	text-decoration:none!important;
	font-weight:700;
}

/* News and archive cards */
body:is(.jge-profile-news,.jge-archive) :where(
	.elementor-post,
	.e-loop-item,
	.jet-listing-grid__item,
	.posts-list > article,
	.blog-posts > article
) {
	height:100%;
	background:#fff;
	border:1px solid #e7e0e2;
	border-radius:16px;
	overflow:hidden;
	box-shadow:0 10px 30px rgba(45,20,25,.05);
	transition:transform .18s ease,box-shadow .18s ease;
	content-visibility:auto;
	contain-intrinsic-size:360px 440px;
}

body:is(.jge-profile-news,.jge-archive) :where(
	.elementor-post__thumbnail img,
	.e-loop-item img,
	.jet-listing-grid__item img,
	.posts-list article img,
	.blog-posts article img
) {
	width:100%;
	aspect-ratio:16/9;
	object-fit:cover;
}

/* Brand listing */
body.jge-brand :where(.filters,.filter-wrapper,.jet-smart-filters,.wpc-filters-widget-content) {
	padding:16px;
	background:#fff;
	border:1px solid #e6dfe1;
	border-radius:14px;
}

body.jge-brand :where(.perfume,.product,.e-loop-item,.jet-listing-grid__item,.products > li) {
	height:100%;
	background:#fff;
	border:1px solid #e8e1e3;
	border-radius:15px;
	overflow:hidden;
	box-shadow:0 8px 24px rgba(45,20,25,.045);
	content-visibility:auto;
	contain-intrinsic-size:300px 390px;
}

body.jge-brand :where(.perfume img,.product img,.e-loop-item img,.jet-listing-grid__item img,.products > li img) {
	width:100%;
	aspect-ratio:1/1;
	object-fit:contain;
	background:#fff;
}

/* Perfume detail */
body.jge-perfume :where(.elementor-icon-box-wrapper,.elementor-image-box-wrapper,.product-spec,.perfume-spec,.specification-item) {
	height:100%;
	padding:15px;
	background:linear-gradient(145deg,var(--jge-soft),#fff 75%);
	border:1px solid #efd0d7;
	border-radius:14px;
}

/* Back to top */
.jge-back-top {
	position:fixed;
	inset-inline-end:18px;
	bottom:max(18px,env(safe-area-inset-bottom));
	z-index:999;
	display:grid;
	place-items:center;
	width:48px;
	height:48px;
	color:#fff;
	background:var(--jge-dark);
	border:0;
	border-radius:50%;
	box-shadow:0 10px 28px rgba(40,15,20,.22);
	cursor:pointer;
	opacity:0;
	visibility:hidden;
	transform:translateY(10px);
	transition:.2s;
}

.jge-back-top.is-visible {
	opacity:1;
	visibility:visible;
	transform:none;
}

@media (max-width:768px) {
	body.jge-article .jge-article-content {
		width:100%;
		max-width:100%;
		margin:0;
		padding:28px 18px 44px;
		border:0;
		border-radius:0;
		box-shadow:none;
		font-size:var(--jge-mobile);
		line-height:var(--jge-leading);
	}

	body.jge-article .jge-article-content h2 {
		font-size:clamp(22px,6.3vw,26px);
		margin:1.8em 0 .62em;
		padding-inline-start:14px;
		border-inline-start-width:4px;
	}

	body.jge-article .jge-article-content h3 {
		font-size:clamp(19px,5.3vw,22px);
	}

	body.jge-profile-contact :where(.elementor-form,.wpcf7-form,.wpforms-form,.fluentform,.gform_wrapper form)
	:is(button[type=submit],input[type=submit]) {
		width:100%;
	}
}

@media (prefers-reduced-motion:reduce) {
	body.jge-active *,body.jge-active *::before,body.jge-active *::after {
		animation-duration:.01ms!important;
		transition-duration:.01ms!important;
		scroll-behavior:auto!important;
	}
}

@media print {
	.jge-back-top{display:none!important}
	body.jge-article .jge-article-content {
		width:auto!important;
		max-width:none!important;
		margin:0!important;
		padding:0!important;
		border:0!important;
		box-shadow:none!important;
	}
}

/* Categories above the article: names only */
body.jge-article .jge-article-categories {
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:8px;
	margin:0 0 26px;
	padding:12px 14px;
	background:var(--jge-soft);
	border:1px solid #efc7d0;
	border-inline-start:4px solid var(--jge-brand);
	border-radius:12px;
}

body.jge-article .jge-taxonomy-heading {
	color:#6e5b5f;
	font-size:12px;
	font-weight:700;
}

body.jge-article .jge-taxonomy-items {
	display:flex;
	flex-wrap:wrap;
	gap:7px;
}

body.jge-article .jge-article-categories .jge-taxonomy-name {
	display:inline-flex;
	align-items:center;
	min-height:30px;
	padding:5px 10px;
	color:var(--jge-dark);
	background:#fff;
	border:1px solid #ebc4cd;
	border-radius:999px;
	font-size:12.5px;
	line-height:1.4;
	font-weight:800;
	text-decoration:none;
}

body.jge-article .jge-article-categories .jge-taxonomy-name:hover,
body.jge-article .jge-article-categories .jge-taxonomy-name:focus-visible {
	color:#fff;
	background:var(--jge-dark);
	border-color:var(--jge-dark);
}

/* Tags below the article: smaller names only */
body.jge-article .jge-article-tags {
	display:flex;
	align-items:flex-start;
	flex-wrap:wrap;
	gap:7px;
	margin:44px 0 0;
	padding-top:18px;
	border-top:1px solid #e9e2e4;
}

body.jge-article .jge-article-tags .jge-taxonomy-heading {
	padding-top:5px;
	font-size:11px;
}

body.jge-article .jge-article-tags .jge-taxonomy-name {
	display:inline-flex;
	align-items:center;
	min-height:26px;
	padding:4px 8px;
	color:#62595b;
	background:#faf8f9;
	border:1px solid #ebe4e6;
	border-radius:999px;
	font-size:11px;
	line-height:1.35;
	font-weight:700;
	text-decoration:none;
}

body.jge-article .jge-article-tags .jge-taxonomy-name::before {
	content:"#";
	margin-inline-end:2px;
	color:var(--jge-brand);
}

body.jge-article .jge-article-tags .jge-taxonomy-name:hover,
body.jge-article .jge-article-tags .jge-taxonomy-name:focus-visible {
	color:var(--jge-dark);
	border-color:#e3b6c0;
	background:var(--jge-soft);
}

@media (max-width:768px) {
	body.jge-article .jge-article-categories {
		margin-bottom:22px;
		padding:10px 11px;
		gap:6px;
	}

	body.jge-article .jge-article-categories .jge-taxonomy-name {
		font-size:12px;
	}

	body.jge-article .jge-article-tags {
		margin-top:36px;
	}

	body.jge-article .jge-article-tags .jge-taxonomy-name {
		font-size:10.5px;
	}
}


/* ----------------------------------------------------------
   v2.3 category and tag archive header
   ---------------------------------------------------------- */

body.jge-term-archive {
	background:#f7f5f6;
}

body.jge-term-archive .jge-term-archive-intro {
	width:min(1080px,calc(100% - 40px));
	margin:28px auto 34px;
	padding:clamp(22px,4vw,38px);
	background:
		radial-gradient(circle at 85% 15%,rgba(237,25,65,.08),transparent 30%),
		linear-gradient(135deg,var(--jge-soft),#fff 72%);
	border:1px solid #edc8d0;
	border-inline-start:6px solid var(--jge-brand);
	border-radius:18px;
	box-shadow:0 14px 38px rgba(48,19,25,.055);
}

body.jge-term-archive .jge-term-archive-intro :where(
	h1,
	.page-title,
	.archive-title,
	.elementor-heading-title
) {
	margin:0 0 13px;
	color:#181617;
	font-family:inherit;
	font-size:clamp(28px,4vw,42px);
	line-height:1.45;
	font-weight:800;
	text-wrap:balance;
}

body.jge-term-archive .jge-term-description {
	max-width:900px;
	color:#4f494b;
	font-family:inherit;
	font-size:16px;
	line-height:1.9;
	overflow-wrap:anywhere;
}

body.jge-term-archive .jge-term-description > :first-child {
	margin-top:0;
}

body.jge-term-archive .jge-term-description > :last-child {
	margin-bottom:0;
}

body.jge-term-archive .jge-term-description :is(p,ul,ol) {
	margin-block:0 1em;
}

body.jge-term-archive .jge-term-description :is(ul,ol) {
	padding-inline-start:28px;
}

body.jge-term-archive .jge-term-description li {
	margin-block:.35em;
}

body.jge-term-archive .jge-term-description a {
	color:var(--jge-dark);
	text-decoration:underline;
	text-decoration-color:#dfabb7;
	text-underline-offset:3px;
}

body.jge-term-archive .jge-term-description a:hover {
	color:var(--jge-deep);
	text-decoration-color:currentColor;
}

/* Better separation between the archive introduction and cards. */
body.jge-term-archive :where(
	.elementor-loop-container,
	.elementor-posts-container,
	.jet-listing-grid__items,
	.posts-list,
	.blog-posts,
	.site-main > .grid,
	.site-main > .row
) {
	margin-top:10px;
}

/* Pagination on category and tag archives. */
body.jge-term-archive :where(
	.navigation.pagination,
	nav.pagination,
	.page-numbers,
	.elementor-pagination
) {
	font-family:inherit;
}

body.jge-term-archive :where(
	.navigation.pagination,
	nav.pagination,
	.elementor-pagination
) {
	display:flex;
	justify-content:center;
	align-items:center;
	flex-wrap:wrap;
	gap:7px;
	margin:34px auto 52px;
}

body.jge-term-archive :where(
	.navigation.pagination a,
	.navigation.pagination span,
	nav.pagination a,
	nav.pagination span,
	.elementor-pagination a,
	.elementor-pagination span
) {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:38px;
	min-height:38px;
	padding:6px 10px;
	color:#3c3638;
	background:#fff;
	border:1px solid #e6dfe1;
	border-radius:9px;
	text-decoration:none;
}

body.jge-term-archive :where(
	.navigation.pagination .current,
	nav.pagination .current,
	.elementor-pagination .current
) {
	color:#fff;
	background:var(--jge-dark);
	border-color:var(--jge-dark);
}

@media (max-width:768px) {
	body.jge-term-archive .jge-term-archive-intro {
		width:calc(100% - 36px);
		margin:18px auto 25px;
		padding:18px 16px;
		border-inline-start-width:4px;
		border-radius:14px;
		box-shadow:none;
	}

	body.jge-term-archive .jge-term-description {
		font-size:14.5px;
		line-height:1.85;
	}
}
