/* nunshen-ui — home page hero "new tea" (2026-10-22, 120 Majorelle). Natalie's claude.ai design "Hero staging - variante
   bloc plus clair" (docs/home-2026-10/majorelle/hero-v2-clair/): a lighter block (#FDFDFC) on the crème page, content
   max 1296 px. Text left: eyebrow, "120", "MAJORELLE", 1 px rule, description, note, two buttons; 5:4 slideshow right with
   its dots underneath (home-promo.js). Phones: text, then the slideshow. Built by scripts/home/apply-home-promo.php with
   native Elementor widgets. Font weight 500 of the design = CORE SANS 600 (the family ships 200 / 400 / 600). */

body .elementor .e-con.nui-promo {
	--padding-top: 48px;
	--padding-bottom: 64px;
	--padding-left: 32px;
	--padding-right: 32px;
	display: grid;
	grid-template-columns: minmax(0, 460px) minmax(0, 780px); /* the slideshow larger than in the design (owner, 2026-10-22) */
	justify-content: center;
	align-items: center;
	column-gap: 56px;
	background: #FDFDFC;
	color: #1A1A1A;
}
body .elementor .e-con.nui-promo > .e-con-inner { display: contents; }

/* ---- text ---------------------------------------------------------------------------------------------------------- */
body .elementor .nui-promo .nui-promo__text.e-con {
	--gap: 22px;
	--row-gap: 22px;
	gap: 22px;
	padding: 0 0 0 24px;
}
.nui-promo .nui-promo__text > .elementor-element { margin: 0 !important; }
.nui-promo .elementor-heading-title,
.nui-promo .nui-promo__desc p {
	margin: 0;
	font-family: var(--nui-font, "CORE SANS", sans-serif);
	color: #1A1A1A;
	text-align: left;
}
.nui-promo .nui-promo__eyebrow .elementor-heading-title {
	font-size: 13px;
	font-weight: var(--nui-w-bold, 600);
	line-height: 1.4;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #5E5A55;
}
/* number + name: one group, 6 px apart */
body .elementor .nui-promo .nui-promo__name { margin-top: -16px !important; }
.nui-promo .nui-promo__num .elementor-heading-title {
	font-size: 120px;
	font-weight: var(--nui-w-regular, 400);
	line-height: .95;
	font-variant-numeric: lining-nums;
}
.nui-promo .nui-promo__name .elementor-heading-title {
	font-size: 36px;
	font-weight: var(--nui-w-regular, 400);
	line-height: 1.2;
	letter-spacing: .14em;
	text-transform: uppercase;
}
body .elementor .nui-promo .nui-promo__rule { width: 100%; max-width: 420px !important; }
.nui-promo .nui-promo__rule .elementor-divider { padding: 0 !important; }
.nui-promo .nui-promo__rule .elementor-divider-separator { display: block; width: 100% !important; border-top: 1px solid #1A1A1A !important; }
body .elementor .nui-promo .nui-promo__desc { max-width: 440px !important; }
.nui-promo .nui-promo__desc p {
	font-size: 19px;
	font-weight: var(--nui-w-regular, 400);
	line-height: 1.55;
}
.nui-promo .nui-promo__note .elementor-heading-title {
	font-size: 14px;
	font-weight: var(--nui-w-regular, 400);
	line-height: 1.4;
	letter-spacing: .02em;
	color: #5E5A55;
}
/* buttons: black, then outlined */
body .elementor .nui-promo .nui-promo__ctas.e-con {
	--gap: 12px;
	--row-gap: 12px;
	--column-gap: 12px;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 12px;
	padding: 6px 0 0;
}
.nui-promo .nui-promo__ctas > .elementor-element { width: auto; margin: 0 !important; }
.nui-promo .nui-promo__btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 28px;
	border: 1px solid #1A1A1A;
	border-radius: 0;
	background: #000;
	color: #fff;
	font-family: var(--nui-font, "CORE SANS", sans-serif);
	font-size: 13px;
	font-weight: var(--nui-w-bold, 600);
	line-height: 1;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
}
.nui-promo .nui-promo__btn--outline .elementor-button { background: transparent; color: #1A1A1A; }
.nui-promo .nui-promo__btn .elementor-button:hover,
.nui-promo .nui-promo__btn .elementor-button:focus { background: #000; color: #fff; } /* kit + touch screens */
.nui-promo .nui-promo__btn--outline .elementor-button:hover,
.nui-promo .nui-promo__btn--outline .elementor-button:focus { background: transparent; color: #1A1A1A; }
@media (hover: hover) {
	.nui-promo .nui-promo__btn .elementor-button:hover { background: #2B2926; color: #fff; }
	.nui-promo .nui-promo__btn--outline .elementor-button:hover { background: #1A1A1A; color: #fff; }
}
.nui-promo .nui-promo__btn .elementor-button:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 3px; }

/* ---- slideshow -------------------------------------------------------------------------------------------------------- */
body .elementor .nui-promo .nui-promo__media.e-con {
	--gap: 18px;
	--row-gap: 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	/* 5:4 images, never taller than the screen under the fixed header (minus paddings and the dots) */
	width: min(100%, calc((100svh - var(--nui-hd-band, 34px) - var(--nui-hd-main, 76px) - var(--nui-hd-nav, 50px) - 110px) * 1.25));
	min-width: min(100%, 420px);
	justify-self: end;
	padding: 0;
}
.nui-promo__viewport {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 4;
	overflow: hidden;
	background: #EEEAE4;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}
.nui-promo__track {
	display: flex;
	height: 100%;
	transition: transform .9s cubic-bezier(.65, 0, .35, 1);
	will-change: transform;
}
.nui-promo__track.is-dragging { transition: none; cursor: grabbing; }
.nui-promo__track > .nui-promo__slide { flex: 0 0 100%; width: 100%; height: 100%; margin: 0 !important; }
.nui-promo__slide .elementor-widget-container { height: 100%; }
.nui-promo__slide img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	-webkit-user-drag: none;
	pointer-events: none;
}
/* before the script runs (or without it): the first image only, in the same place (no layout shift) */
.nui-promo__media:not(.is-ready) .nui-promo__slide + .nui-promo__slide { display: none; }
.nui-promo__media:not(.is-ready) .nui-promo__slide { width: 100%; aspect-ratio: 5 / 4; overflow: hidden; }
body .elementor .nui-promo__media:not(.is-ready) { padding-bottom: 62px; }

/* dots: 8 px, in 44 px targets */
.nui-promo__dots { display: flex; gap: 4px; }
.nui-promo .nui-promo__dot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	cursor: pointer;
}
.nui-promo__dot::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #B9B2A8;
	transition: background .3s ease;
}
.nui-promo__dot[aria-current="true"]::before { background: #1A1A1A; }
.nui-promo .nui-promo__dot:focus-visible { outline: 2px solid #1A1A1A; outline-offset: -8px; }

/* ---- tablets / phones --------------------------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	body .elementor .e-con.nui-promo { column-gap: 40px; --padding-top: 48px; --padding-bottom: 56px; }
	body .elementor .nui-promo .nui-promo__text.e-con { padding-left: 0; }
	.nui-promo .nui-promo__num .elementor-heading-title { font-size: 96px; }
	.nui-promo .nui-promo__name .elementor-heading-title { font-size: 30px; }
	.nui-promo .nui-promo__desc p { font-size: 17px; }
}
@media (max-width: 767px) {
	body .elementor .e-con.nui-promo {
		--padding-top: 40px;
		--padding-bottom: 40px;
		--padding-left: 20px;
		--padding-right: 20px;
		grid-template-columns: minmax(0, 1fr);
		row-gap: 36px;
	}
	body .elementor .nui-promo .nui-promo__text.e-con { --gap: 18px; --row-gap: 18px; gap: 18px; }
	.nui-promo .nui-promo__num .elementor-heading-title { font-size: 88px; }
	body .elementor .nui-promo .nui-promo__name { margin-top: -12px !important; }
	.nui-promo .nui-promo__name .elementor-heading-title { font-size: 28px; }
	.nui-promo .nui-promo__ctas > .elementor-element,
	.nui-promo .nui-promo__ctas .elementor-button-wrapper,
	.nui-promo .nui-promo__btn .elementor-button { width: 100%; }
	body .elementor .nui-promo .nui-promo__media.e-con { justify-self: stretch; width: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.nui-promo__track { transition-duration: .01s; }
	.nui-promo .nui-promo__btn .elementor-button { transition: none; }
}
