/* ==========================================================================
   ESCOVA Flavour Grid — Elementor widget styles
   ========================================================================== */

.escova-fv-wrap {
	width: 100%;
	box-sizing: border-box;
}

/* ---------- Section heading ---------- */
.escova-fv-head {
	text-align: center;
	max-width: 820px;
	margin: 0 auto 34px;
}

.escova-fv-title {
	margin: 0;
	font-family: 'Oswald', Impact, 'Arial Narrow', sans-serif;
	font-size: 58px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .5px;
	text-transform: uppercase;
}

.escova-fv-title .escova-fv-line1,
.escova-fv-title .escova-fv-line2 {
	display: block;
}

.escova-fv-title .escova-fv-line1 {
	color: #FFFFFF;
}

.escova-fv-title .escova-fv-line2 {
	color: #E8112D;
}

.escova-fv-sub {
	margin: 14px auto 0;
	max-width: 560px;
	color: #9A9AA4;
	font-size: 16px;
	line-height: 1.6;
}

/* ---------- Grid: 4 desktop / 2 tablet / 2 mobile (overridable in Elementor) ---------- */
.escova-fv-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
	align-items: start;
	width: 100%;
	box-sizing: border-box;
}

/* ---------- Card ---------- */
.escova-fv-card {
	display: flex;
	flex-direction: column;
	height: auto;
	align-self: start;
	background: #FFFFFF;
	border: 1px solid #E8E8EC;
	border-radius: 14px;
	overflow: hidden;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	transition: border-color .25s ease, transform .25s ease;
}

.escova-fv-card:hover {
	border-color: #E8112D;
	transform: translateY(-3px);
}

/* ---------- Image ---------- */
.escova-fv-img {
	flex: 0 0 auto;
	background: #FFFFFF;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px 14px 6px;
	min-height: 0;
	line-height: 0;
}

.escova-fv-img img,
.escova-fv-img > img {
	display: block;
	width: auto;
	height: 150px;
	max-width: 100%;
	max-height: 150px;
	object-fit: contain;
	aspect-ratio: auto;
	margin: 0 auto;
	border-radius: 0;
	box-shadow: none;
}

/* ---------- Body: name + description ---------- */
.escova-fv-body {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-align: center;
	background: transparent;
	padding: 8px 16px 20px;
	margin: 0;
}

.escova-fv-name {
	font-family: 'Oswald', 'Arial Narrow', sans-serif;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.25;
	color: #0B0B0D;
	margin: 0 0 8px;
	padding: 0;
	text-transform: none;
}

.escova-fv-desc {
	font-size: 13px;
	line-height: 1.55;
	color: #4A4A52;
	margin: 0;
	padding: 0;
	max-width: 300px;
}

/* ---------- Meter panel: 2 x 2, label + 5 dots ---------- */
.escova-fv-meta {
	flex: 0 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	margin: auto 0 0;
	padding: 0;
	background: #14141A;
	overflow: hidden;
}

.escova-fv-metric {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 7px;
	padding: 13px 14px 12px;
	margin: 0;
	border-right: 1px solid rgba(255, 255, 255, .08);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	min-width: 0;
	box-sizing: border-box;
}

.escova-fv-metric span {
	display: block;
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: .7px;
	text-transform: uppercase;
	line-height: 1;
	color: #FFFFFF;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}

.escova-fv-dots {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 5px;
	margin: 0;
	padding: 0;
}

.escova-fv-dot {
	display: block;
	width: 9px;
	height: 9px;
	min-width: 9px;
	border-radius: 50%;
	background: #3A3A3A;
	margin: 0;
	aspect-ratio: auto;
}

.escova-fv-dot.is-on {
	background: #5ED86A;
	box-shadow: 0 0 6px rgba(94, 216, 106, .5);
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.escova-fv-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}
	.escova-fv-title {
		font-size: 46px;
	}
	.escova-fv-img img,
	.escova-fv-img > img {
		height: 130px;
		max-height: 130px;
	}
}

@media (max-width: 767px) {
	.escova-fv-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.escova-fv-head {
		margin-bottom: 24px;
	}
	.escova-fv-title {
		font-size: 32px;
	}
	.escova-fv-sub {
		font-size: 14px;
	}
	.escova-fv-card {
		border-radius: 11px;
	}
	.escova-fv-img {
		padding: 14px 9px 4px;
	}
	.escova-fv-img img,
	.escova-fv-img > img {
		height: 105px;
		max-height: 105px;
	}
	.escova-fv-body {
		padding: 4px 10px 14px;
	}
	.escova-fv-name {
		font-size: 13.5px;
		margin: 4px 0 6px;
	}
	.escova-fv-desc {
		font-size: 11px;
		line-height: 1.45;
	}
	.escova-fv-metric {
		padding: 10px 9px 9px;
		gap: 6px;
	}
	.escova-fv-metric span {
		font-size: 8px;
		letter-spacing: .5px;
	}
	.escova-fv-dots {
		gap: 3.5px;
	}
	.escova-fv-dot {
		width: 7px;
		height: 7px;
		min-width: 7px;
	}
}

@media (max-width: 400px) {
	.escova-fv-img img,
	.escova-fv-img > img {
		height: 90px;
		max-height: 90px;
	}
	.escova-fv-name {
		font-size: 12px;
	}
	.escova-fv-desc {
		font-size: 10px;
	}
	.escova-fv-metric span {
		font-size: 7.2px;
	}
	.escova-fv-dot {
		width: 6px;
		height: 6px;
		min-width: 6px;
	}
}

/* ============================================================
 * ESCOVA TIMELINE
 * ============================================================ */

.escova-tl-wrap {
	--escova-tl-line: rgba(255, 255, 255, 0.13);
	--escova-tl-accent: #E8112D;
	width: 100%;
	box-sizing: border-box;
}

/* font-family preset mapping (set via Elementor --escova-tl-font) */
.escova-tl-wrap[style*="--escova-tl-font: helvetica"] { --escova-tl-font: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.escova-tl-wrap[style*="--escova-tl-font: oswald"]    { --escova-tl-font: "Oswald", "Helvetica Neue", Arial, sans-serif; }
.escova-tl-wrap[style*="--escova-tl-font: inter"]     { --escova-tl-font: "Inter", "Helvetica Neue", Arial, sans-serif; }
.escova-tl-wrap[style*="--escova-tl-font: arial"]     { --escova-tl-font: Arial, Helvetica, sans-serif; }
.escova-tl-wrap[style*="--escova-tl-font: system"]    { --escova-tl-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }

.escova-tl-head {
	margin: 0 0 52px;
}

.escova-tl-heading {
	font-family: var(--escova-tl-font);
	font-size: 56px;
	font-weight: 700;
	line-height: 1.0;
	color: #FFFFFF;
	margin: 0 0 12px;
}

.escova-tl-sub {
	font-size: 16px;
	line-height: 1.7;
	color: #9A9AA4;
	margin: 0;
}

.escova-tl {
	position: relative;
	display: flex;
	flex-direction: column;
	padding-left: 40px;
}

/* vertical hairline — runs through the centre of every dot */
.escova-tl::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 6px;
	bottom: 6px;
	width: 1px;
	background: var(--escova-tl-line);
}

.escova-tl-item {
	position: relative;
	padding: 0 0 56px;
}

.escova-tl-item:last-child {
	padding-bottom: 0;
}

/* solid red dot — centred on the vertical line */
.escova-tl-dot {
	position: absolute;
	left: -40px;
	top: 2px;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: var(--escova-tl-accent);
	z-index: 1;
}

.escova-tl-phase {
	display: block;
	font-family: var(--escova-tl-font);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.4px;
	color: var(--escova-tl-accent);
	margin: 0 0 10px;
	line-height: 1.2;
}

.escova-tl-title {
	font-family: var(--escova-tl-font);
	font-size: 27px;
	font-weight: 700;
	line-height: 1.15;
	color: #FFFFFF;
	margin: 0 0 14px;
	text-transform: uppercase;
	letter-spacing: 0.2px;
}

.escova-tl-desc {
	font-family: var(--escova-tl-font);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.65;
	color: #9A9AA4;
	margin: 0;
	max-width: 1100px;
}

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
	.escova-tl-heading { font-size: 44px; }
	.escova-tl-title   { font-size: 23px; }
	.escova-tl-desc    { font-size: 16px; }
}

/* ---------- mobile ---------- */
@media (max-width: 767px) {
	.escova-tl {
		padding-left: 32px;
	}
	.escova-tl::before {
		left: 5px;
	}
	.escova-tl-dot {
		left: -32px;
		width: 11px;
		height: 11px;
	}
	.escova-tl-heading { font-size: 34px; }
	.escova-tl-phase   { font-size: 14px; }
	.escova-tl-title   { font-size: 20px; }
	.escova-tl-desc    { font-size: 15px; }
	.escova-tl-item    { padding-bottom: 42px; }
}

/* ============================================================
 * ESCOVA WATERMARK — giant brand text behind content
 * ============================================================ */

/* widget itself takes no layout space and does not clip */
.elementor-widget-escova_watermark {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	overflow: hidden;
	pointer-events: none;
	z-index: 0 !important;
}

.elementor-widget-escova_watermark .elementor-widget-container {
	width: 100%;
	height: 100%;
	margin: 0;
}

.escova-wm-wrap {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow: hidden;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.escova-wm {
	display: block;
	font-family: "Helvetica Neue", Helvetica, Arial, "Archivo", sans-serif;
	font-size: 320px;
	font-weight: 800;
	line-height: 0.78;
	letter-spacing: -0.045em;
	text-transform: uppercase;
	white-space: nowrap;
	color: rgba(255, 255, 255, 0.055);
	user-select: none;
	pointer-events: none;
	margin: 0;
}

.escova-wm.is-repeat {
	white-space: normal;
	word-break: break-all;
	max-width: 62%;
	line-height: 0.85;
}

/* section must clip */
.elementor-section {
	position: relative;
	overflow: hidden;
}

/* real content floats above the watermark */
.elementor-section > .elementor-container > .elementor-column,
.elementor-section > .elementor-container .elementor-widget-wrap > .elementor-element:not(.elementor-widget-escova_watermark) {
	position: relative;
	z-index: 2;
}

@media (max-width: 1024px) {
	.escova-wm { font-size: 220px; }
}

@media (max-width: 767px) {
	.escova-wm { font-size: 130px; }
}

/* ============================================================
 * ESCOVA WORLDWIDE — heading rule + country cards
 * ============================================================ */

.escova-ww-wrap {
	--escova-ww-h: 300px;
	--escova-ww-line: rgba(255, 255, 255, 0.16);
	width: 100%;
	box-sizing: border-box;
}

/* ---------- header row ---------- */
.escova-ww-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 40px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--escova-ww-line);
	position: relative;
}

/* red rule sitting on the border line */
.escova-ww-head::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 64px;
	height: 2px;
	background: #FF0000;
}

.escova-ww-title {
	margin: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0.5px;
	color: #FFFFFF;
	text-transform: uppercase;
}

.escova-ww-note {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #6B6B6B;
	padding-bottom: 4px;
	white-space: nowrap;
}

/* ---------- grid ---------- */
.escova-ww-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	width: 100%;
	box-sizing: border-box;
}

/* ---------- card ---------- */
.escova-ww-card {
	position: relative;
	display: block;
	height: var(--escova-ww-h);
	overflow: hidden;
	border: 1px solid var(--escova-ww-line);
	text-decoration: none;
	background: #0a0000;
	box-sizing: border-box;
}

.escova-ww-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: brightness(0.55) saturate(1.1);
	transition: transform 0.4s ease, filter 0.4s ease;
}

.escova-ww-card:hover .escova-ww-img {
	transform: scale(1.06);
	filter: brightness(0.65) saturate(1.2);
}

/* dark scrim so text always reads */
.escova-ww-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10,0,0,0.10) 0%, rgba(10,0,0,0.55) 55%, rgba(10,0,0,0.88) 100%);
	z-index: 2;
	pointer-events: none;
}

.escova-ww-body {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 20px;
	z-index: 3;
	text-align: left;
}

.escova-ww-name {
	margin: 0 0 6px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.5px;
	color: #FFFFFF;
	text-transform: uppercase;
}

.escova-ww-tagline {
	display: block;
	margin: 0 0 16px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #F4F4F2;
	line-height: 1.4;
}

/* outline button */
.escova-ww-btn {
	display: inline-block;
	padding: 11px 22px;
	border: 1px solid #FFFFFF;
	color: #FFFFFF;
	background: transparent;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	line-height: 1;
	transition: background 0.25s ease, color 0.25s ease;
}

.escova-ww-card:hover .escova-ww-btn {
	background: #FF0000;
	border-color: #FF0000;
	color: #FFFFFF;
}

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
	.escova-ww-title   { font-size: 34px; }
	.escova-ww-name    { font-size: 20px; }
	.escova-ww-grid    { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.escova-ww-wrap    { --escova-ww-h: 280px; }
}

/* ---------- mobile ---------- */
@media (max-width: 767px) {
	.escova-ww-head    { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 26px; }
	.escova-ww-title   { font-size: 26px; }
	.escova-ww-note    { padding-bottom: 0; }
	.escova-ww-grid    { grid-template-columns: 1fr; }
	.escova-ww-wrap    { --escova-ww-h: 260px; }
	.escova-ww-name    { font-size: 19px; }
	.escova-ww-body    { left: 16px; right: 16px; bottom: 16px; }
}

/* ============================================================
 * ESCOVA COLLECTION — heading rule + product cards with device stage
 * ============================================================ */

.escova-cl-wrap {
	--escova-cl-h: 220px;
	--escova-cl-line: rgba(255, 255, 255, 0.12);
	--escova-cl-flame: #FF0000;
	width: 100%;
	box-sizing: border-box;
}

/* ---------- header ---------- */
.escova-cl-head {
	position: relative;
	margin: 0 0 40px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--escova-cl-line);
}

.escova-cl-head::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 64px;
	height: 2px;
	background: var(--escova-cl-flame);
}

.escova-cl-title {
	margin: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #FFFFFF;
}

/* ---------- grid ---------- */
.escova-cl-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border: 1px solid var(--escova-cl-line);
	border-left: none;
	width: 100%;
	box-sizing: border-box;
}

.escova-cl-card {
	border-left: 1px solid var(--escova-cl-line);
	background: #131317;
	padding: 26px 24px 30px;
	transition: background 0.25s ease;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.escova-cl-card:hover {
	background: #1d1414;
}

/* ---------- device stage ---------- */
.escova-cl-stage {
	height: var(--escova-cl-h);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	position: relative;
	overflow: hidden;
	background: radial-gradient(ellipse at 50% 110%, rgba(225, 6, 0, 0.18), transparent 60%), #0d0d10;
	margin: 0 0 18px;
}

/* uploaded image styling handled below */

/* CSS device — full size */
.escova-cl-pen {
	display: block;
	width: 46px;
	height: 160px;
	background: linear-gradient(120deg, #4a4a4a 0%, #1c1c1c 45%, #050505 100%);
	border-radius: 10px 10px 5px 5px;
	border: 1px solid #3a3a3a;
	position: relative;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
}

.escova-cl-pen::before {
	content: "";
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	width: 18px;
	height: 16px;
	background: #0c0c0c;
	border-radius: 3px 3px 0 0;
	border: 1px solid #333;
}

.escova-cl-pen::after {
	content: "";
	position: absolute;
	bottom: 30px;
	left: 6px;
	right: 6px;
	height: 3px;
	background: var(--escova-cl-flame);
	box-shadow: 0 0 10px rgba(255, 0, 0, 0.35);
}

/* CSS device — mini */
.escova-cl-pen-mini {
	width: 34px;
	height: 110px;
}

/* CSS accessory buds */
.escova-cl-bud {
	display: block;
	width: 30px;
	height: 40px;
	background: linear-gradient(160deg, #4a4a4a, #0c0c0c);
	border-radius: 12px 12px 16px 16px;
	border: 1px solid #3a3a3a;
	margin: 0 6px;
}

.escova-cl-accessory {
	gap: 10px;
}

/* ---------- text ---------- */
.escova-cl-name {
	margin: 0 0 8px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.escova-cl-tagline {
	margin: 0 0 18px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	color: #9A9AA4;
	flex-grow: 1;
}

.escova-cl-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #FFFFFF;
	text-decoration: none;
	margin-top: auto;
}

.escova-cl-arrow {
	color: var(--escova-cl-flame);
}

.escova-cl-cta:hover {
	color: var(--escova-cl-flame);
}

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
	.escova-cl-title  { font-size: 34px; }
	.escova-cl-grid   { grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid var(--escova-cl-line); }
	.escova-cl-wrap   { --escova-cl-h: 190px; }
	.escova-cl-pen    { width: 40px; height: 130px; }
	.escova-cl-pen-mini { width: 30px; height: 92px; }
}

/* ---------- mobile ---------- */
@media (max-width: 767px) {
	.escova-cl-head   { margin-bottom: 26px; padding-bottom: 14px; }
	.escova-cl-title  { font-size: 26px; }
	.escova-cl-grid   { grid-template-columns: 1fr; }
	.escova-cl-card   { padding: 20px 18px 22px; }
	.escova-cl-wrap   { --escova-cl-h: 170px; }
	.escova-cl-name   { font-size: 18px; }
	.escova-cl-tagline{ font-size: 12.5px; margin-bottom: 14px; }
	.escova-cl-pen    { width: 36px; height: 118px; }
	.escova-cl-pen-mini { width: 28px; height: 86px; }
	.escova-cl-bud    { width: 26px; height: 34px; }
}

/* uploaded device images fill the stage without cropping the product */
.escova-cl-stage .escova-cl-img{width:auto!important;height:auto!important;max-width:92%!important;max-height:92%!important;object-fit:contain!important;display:block!important}
.escova-cl-name{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:normal!important}


/* ============================================================
 * FONT PRESET MAPPING
 * Elementor writes the raw option key (e.g. "bebas-neue") as the
 * font-family value. Map each key to a real font stack.
 * ============================================================ */
.escova-cl-title,.escova-cl-name,.escova-cl-tagline,.escova-cl-cta,
.escova-ww-title,.escova-ww-note,.escova-ww-name,.escova-ww-tagline,.escova-ww-btn,
.escova-tl-heading,.escova-tl-phase,.escova-tl-title,.escova-tl-desc,
.escova-fv-name,.escova-fv-desc{}

/* helvetica */
[style*="font-family: helvetica"],[style*="font-family:helvetica"]{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important}
.escova-cl-title,.escova-cl-name,.escova-cl-tagline,.escova-cl-cta{font-family:inherit}
/* arial */
[style*="font-family: arial"],[style*="font-family:arial"]{font-family:Arial,Helvetica,sans-serif!important}
/* oswald */
[style*="font-family: oswald"],[style*="font-family:oswald"]{font-family:"Oswald","Helvetica Neue",sans-serif!important}
/* inter */
[style*="font-family: inter"],[style*="font-family:inter"]{font-family:"Inter","Helvetica Neue",sans-serif!important}
/* anton */
[style*="font-family: anton"],[style*="font-family:anton"]{font-family:"Anton","Arial Narrow",sans-serif!important}
/* archivo */
[style*="font-family: archivo"],[style*="font-family:archivo"]{font-family:"Archivo","Helvetica Neue",sans-serif!important}
/* barlow */
[style*="font-family: barlow"],[style*="font-family:barlow"]{font-family:"Barlow","Helvetica Neue",sans-serif!important}
/* bebas-neue */
[style*="font-family: bebas-neue"],[style*="font-family:bebas-neue"]{font-family:"Bebas Neue","Arial Narrow",sans-serif!important}
/* dm-sans */
[style*="font-family: dm-sans"],[style*="font-family:dm-sans"]{font-family:"DM Sans","Helvetica Neue",sans-serif!important}
/* figtree */
[style*="font-family: figtree"],[style*="font-family:figtree"]{font-family:"Figtree","Helvetica Neue",sans-serif!important}
/* georgia */
[style*="font-family: georgia"],[style*="font-family:georgia"]{font-family:Georgia,"Times New Roman",serif!important}
/* jost */
[style*="font-family: jost"],[style*="font-family:jost"]{font-family:"Jost","Helvetica Neue",sans-serif!important}
/* karla */
[style*="font-family: karla"],[style*="font-family:karla"]{font-family:"Karla","Helvetica Neue",sans-serif!important}
/* lato */
[style*="font-family: lato"],[style*="font-family:lato"]{font-family:"Lato","Helvetica Neue",sans-serif!important}
/* manrope */
[style*="font-family: manrope"],[style*="font-family:manrope"]{font-family:"Manrope","Helvetica Neue",sans-serif!important}
/* montserrat */
[style*="font-family: montserrat"],[style*="font-family:montserrat"]{font-family:"Montserrat","Helvetica Neue",sans-serif!important}
/* noto-sans */
[style*="font-family: noto-sans"],[style*="font-family:noto-sans"]{font-family:"Noto Sans","Helvetica Neue",sans-serif!important}
/* nunito */
[style*="font-family: nunito"],[style*="font-family:nunito"]{font-family:"Nunito Sans","Helvetica Neue",sans-serif!important}
/* open-sans */
[style*="font-family: open-sans"],[style*="font-family:open-sans"]{font-family:"Open Sans","Helvetica Neue",sans-serif!important}
/* playfair */
[style*="font-family: playfair"],[style*="font-family:playfair"]{font-family:"Playfair Display",Georgia,serif!important}
/* poppins */
[style*="font-family: poppins"],[style*="font-family:poppins"]{font-family:"Poppins","Helvetica Neue",sans-serif!important}
/* pt-sans */
[style*="font-family: pt-sans"],[style*="font-family:pt-sans"]{font-family:"PT Sans","Helvetica Neue",sans-serif!important}
/* raleway */
[style*="font-family: raleway"],[style*="font-family:raleway"]{font-family:"Raleway","Helvetica Neue",sans-serif!important}
/* roboto-condensed */
[style*="font-family: roboto-condensed"],[style*="font-family:roboto-condensed"]{font-family:"Roboto Condensed","Arial Narrow",sans-serif!important}
/* roboto */
[style*="font-family: roboto"],[style*="font-family:roboto"]{font-family:"Roboto","Helvetica Neue",sans-serif!important}
/* rubik */
[style*="font-family: rubik"],[style*="font-family:rubik"]{font-family:"Rubik","Helvetica Neue",sans-serif!important}
/* source-sans */
[style*="font-family: source-sans"],[style*="font-family:source-sans"]{font-family:"Source Sans 3","Helvetica Neue",sans-serif!important}
/* titillium */
[style*="font-family: titillium"],[style*="font-family:titillium"]{font-family:"Titillium Web","Helvetica Neue",sans-serif!important}
/* ubuntu */
[style*="font-family: ubuntu"],[style*="font-family:ubuntu"]{font-family:"Ubuntu","Helvetica Neue",sans-serif!important}
/* work-sans */
[style*="font-family: work-sans"],[style*="font-family:work-sans"]{font-family:"Work Sans","Helvetica Neue",sans-serif!important}
/* bukra */
[style*="font-family: bukra"],[style*="font-family:bukra"]{font-family:"Bukra","Helvetica Neue",sans-serif!important}

/* ============================================================
 * ESCOVA BANNER SLIDER — split-tone hero, editable, responsive
 * ============================================================ */

.escova-bs-banner{
	--escova-bs-h: 620px;
	height: var(--escova-bs-h);
	min-height: 340px;
	--escova-bs-pw: 42%;
	--escova-bs-angle: 8deg;
	--escova-bs-light: #ECEAE4;
	--escova-bs-dark: #A80000;
	--escova-bs-accent: #E8112D;
	--escova-bs-ink: #0A0A0C;
	--escova-bs-ink-inv: #FFFFFF;
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--escova-bs-light);
	isolation: isolate;
}

/* ---------- slide ---------- */
.escova-bs-slide{
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .7s ease;
	z-index: 1;
}

.escova-bs-slide.is-active{
	opacity: 1;
	visibility: visible;
	z-index: 2;
}

/* the two-tone diagonal background */
.escova-bs-slide::before{
	content: "";
	position: absolute;
	inset: 0;
	background: var(--escova-bs-light);
	z-index: 0;
}

.escova-bs-slide::after{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--escova-bs-dark);
}

/* photo panel on the RIGHT (default) */
.escova-bs-slide.is-photo-right::after{
	left: calc(100% - var(--escova-bs-pw));
	right: calc(var(--escova-bs-angle) * -1);
	top: calc(var(--escova-bs-angle) * -3);
	bottom: calc(var(--escova-bs-angle) * -3);
	transform: skewX(calc(var(--escova-bs-angle) * -1));
	transform-origin: bottom left;
}

/* photo panel on the LEFT */
.escova-bs-slide.is-photo-left::after{
	right: calc(100% - var(--escova-bs-pw));
	left: calc(var(--escova-bs-angle) * -1);
	top: calc(var(--escova-bs-angle) * -3);
	bottom: calc(var(--escova-bs-angle) * -3);
	transform: skewX(calc(var(--escova-bs-angle) * -1));
	transform-origin: bottom right;
}

/* ---------- photo panel content ---------- */
.escova-bs-photo-panel{
	position: absolute;
	top: 0;
	bottom: 0;
	width: var(--escova-bs-pw);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
	padding: 46px 0;
	box-sizing: border-box;
}

.escova-bs-slide.is-photo-right .escova-bs-photo-panel{ right: 0; }
.escova-bs-slide.is-photo-left  .escova-bs-photo-panel{ left: 0; }

.escova-bs-photos{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	height: 100%;
	max-height: 100%;
	width: 100%;
	padding: 0 6%;
	box-sizing: border-box;
}

.escova-bs-photo{
	display: block;
	height: 100%;
	max-height: calc(var(--escova-bs-h) - 130px);
	width: auto;
	max-width: 48%;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 0 24px 48px rgba(0,0,0,.35);
	background: #111;
}

.escova-bs-photo-b{ margin-top: 26px; }

/* ---------- stat card ---------- */
.escova-bs-card{
	position: absolute;
	bottom: 34px;
	right: 26px;
	background: rgba(10,10,12,.78);
	border: 1px solid rgba(255,255,255,.16);
	padding: 16px 18px;
	min-width: 150px;
	text-align: right;
	z-index: 5;
	backdrop-filter: blur(3px);
}

.escova-bs-slide.is-photo-left .escova-bs-card{ right: auto; left: 26px; }

.escova-bs-card-value{
	display: block;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 1px;
	color: var(--escova-bs-accent);
	line-height: 1.2;
}

.escova-bs-card-label{
	display: block;
	margin-top: 6px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: rgba(255,255,255,.75);
	line-height: 1.5;
}

/* ---------- copy block ---------- */
.escova-bs-copy{
	position: relative;
	z-index: 4;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 60px max(32px, 5vw);
	box-sizing: border-box;
	max-width: calc(100% - var(--escova-bs-pw) + 40px);
}

.escova-bs-slide.is-photo-left .escova-bs-copy{
	margin-left: var(--escova-bs-pw);
}

/* on light layouts ink is dark; on dark layouts ink is white */
.escova-bs-slide.is-light .escova-bs-heading{ color: var(--escova-bs-ink); }
.escova-bs-slide.is-light .escova-bs-subtitle{ color: var(--escova-bs-ink); opacity: .82; }
.escova-bs-slide.is-dark  .escova-bs-heading{ color: var(--escova-bs-ink-inv); }
.escova-bs-slide.is-dark  .escova-bs-subtitle{ color: var(--escova-bs-ink-inv); opacity: .88; }

.escova-bs-eyebrow{
	display: block;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--escova-bs-accent);
	margin: 0 0 16px;
}

.escova-bs-heading{
	margin: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 78px;
	font-weight: 700;
	line-height: .98;
	letter-spacing: -1.5px;
	text-transform: uppercase;
}

.escova-bs-subtitle{
	margin: 20px 0 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: .5px;
	text-transform: uppercase;
}

.escova-bs-btn{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 34px;
	padding: 17px 40px;
	background: var(--escova-bs-accent);
	color: #fff;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid var(--escova-bs-accent);
	transition: background .25s ease, color .25s ease;
}

.escova-bs-btn:hover{
	background: transparent;
	color: var(--escova-bs-accent);
}

.escova-bs-slide.is-dark .escova-bs-btn:hover{
	background: #fff;
	border-color: #fff;
	color: var(--escova-bs-dark);
}

.escova-bs-arrow{ font-size: 15px; line-height: 1; }

/* ---------- nav arrows ---------- */
.escova-bs-nav{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(10,10,12,.35);
	border: 1px solid rgba(255,255,255,.42);
	color: #fff;
	font-size: 15px;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease;
}

.escova-bs-nav:hover{
	background: var(--escova-bs-accent);
	border-color: var(--escova-bs-accent);
}

.escova-bs-nav.is-prev{ left: 18px; }
.escova-bs-nav.is-next{ right: 18px; }

/* ---------- dots ---------- */
.escova-bs-dots{
	position: absolute;
	left: 50%;
	bottom: 22px;
	transform: translateX(-50%);
	display: flex;
	gap: 7px;
	z-index: 10;
}

.escova-bs-dots button{
	width: 34px;
	height: 3px;
	padding: 0;
	border: none;
	background: rgba(0,0,0,.22);
	cursor: pointer;
	transition: background .2s ease;
}

.escova-bs-dots button.is-active{ background: var(--escova-bs-accent); }

/* ============================================================
 * TABLET
 * ============================================================ */
@media (max-width: 1024px){
	.escova-bs-banner{ --escova-bs-h: 520px; }
	.escova-bs-heading{ font-size: 54px; }
	.escova-bs-copy{ padding: 44px 4vw; max-width: 62%; }
	.escova-bs-photo{ max-height: calc(var(--escova-bs-h) - 110px); }
}

/* ============================================================
 * MOBILE — photos on top, copy below (matches the source design)
 * ============================================================ */
@media (max-width: 767px){
	.escova-bs-banner{
		height: auto !important;
		min-height: 0 !important;
	}

	/* slides flow normally so the banner auto-heights */
	.escova-bs-slide{
		position: relative !important;
		inset: auto !important;
		display: none;
	}
	.escova-bs-slide.is-active{ display: block !important; }

	/* drop the diagonal split */
	.escova-bs-slide::before{
		background: var(--escova-bs-light) !important;
	}
	.escova-bs-slide.is-dark::before{
		background: var(--escova-bs-dark) !important;
	}
	.escova-bs-slide::after{ display: none !important; }

	/* order: photos first, then copy */
	.escova-bs-slide{ display: none; flex-direction: column; }
	.escova-bs-slide.is-active{ display: flex !important; flex-direction: column; }

	/* order controlled by the slide's Mobile Order setting */
	.escova-bs-slide.is-mob-photos-top .escova-bs-photo-panel{ order: 1; }
	.escova-bs-slide.is-mob-photos-top .escova-bs-copy{ order: 2; }
	.escova-bs-slide.is-mob-photos-bottom .escova-bs-photo-panel{ order: 2; }
	.escova-bs-slide.is-mob-photos-bottom .escova-bs-copy{ order: 1; }

	.escova-bs-photo-panel{
		position: relative !important;
		width: 100% !important;
		left: auto !important;
		right: auto !important;
		height: 260px;
		padding: 0;
		background: var(--escova-bs-dark);
	}

	.escova-bs-photos{
		padding: 0 14px;
		gap: 10px;
		height: 100%;
	}

	.escova-bs-photo{
		height: 100% !important;
		max-height: 236px !important;
		max-width: 48% !important;
		width: auto !important;
		margin: 0 !important;
		box-shadow: 0 12px 24px rgba(0,0,0,.35);
	}
	.escova-bs-photo-b{ margin-top: 0 !important; }

	.escova-bs-card{
		bottom: 12px;
		right: 12px;
		padding: 11px 13px;
		min-width: 120px;
	}
	.escova-bs-slide.is-photo-left .escova-bs-card{ left: 12px; right: auto; }

	/* copy block */
	.escova-bs-copy{
		position: relative !important;
		max-width: 100% !important;
		width: 100%;
		height: auto !important;
		padding: 30px 22px 28px !important;
		align-items: flex-start;
		margin-left: 0 !important;
		box-sizing: border-box;
	}

	.escova-bs-eyebrow{
		font-size: 11px !important;
		letter-spacing: 3px !important;
		margin: 0 0 10px !important;
	}

	/* keep the heading inside the viewport */
	.escova-bs-heading{
		font-size: 9vw !important;
		line-height: 1.02 !important;
		letter-spacing: -0.5px !important;
		word-break: break-word;
		overflow-wrap: anywhere;
		max-width: 100%;
	}

	.escova-bs-subtitle{
		font-size: 12.5px !important;
		margin-top: 12px !important;
		line-height: 1.55 !important;
	}

	.escova-bs-btn{
		width: 100% !important;
		justify-content: center !important;
		margin-top: 22px !important;
		padding: 15px 18px !important;
		font-size: 12px !important;
		box-sizing: border-box;
	}

	/* controls */
	.escova-bs-nav{ display: none !important; }

	.escova-bs-dots{
		position: static !important;
		transform: none !important;
		justify-content: center !important;
		gap: 7px;
		padding: 14px 0;
	}
	.escova-bs-dots button{
		width: 30px;
		height: 3px;
		background: rgba(0,0,0,.2);
	}
}

/* per-slide colour overrides inherit down to the pseudo panels */
.escova-bs-slide{ background: var(--escova-bs-light); }
.escova-bs-slide.is-dark{ background: var(--escova-bs-dark); }

/* ============================================================
 * ESCOVA BUTTON — solid red CTA with a clipped corner
 * ============================================================ */

.escova-btn-wrap{
	display: flex;
	width: 100%;
	justify-content: flex-start;
}

.escova-btn{
	--escova-btn-cut: 9%;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 20px 42px;
	background: #E10600;
	color: #FFFFFF;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	box-sizing: border-box;
	transition: background .25s ease, color .25s ease, clip-path .25s ease;
}

.escova-btn:hover{ background: #0A0A0C; color: #FFFFFF; }

.escova-btn-label{ display: inline-block; }

.escova-btn-arrow{
	display: inline-block;
	font-size: 19px;
	line-height: 1;
	transition: transform .25s ease;
}

.escova-btn:hover .escova-btn-arrow{ transform: translateX(4px); }

/* ---------- corner cut (small notch at one corner, matches the design) ---------- */
/* --escova-btn-cut   = horizontal length of the cut (% of button WIDTH)
   --escova-btn-cutv  = vertical extent of the cut (% of button HEIGHT)          */

.escova-btn.is-notch-bottom-right{
	clip-path: polygon(
		0 0,
		100% 0,
		100% calc(100% - var(--escova-btn-cutv, 30%)),
		calc(100% - var(--escova-btn-cut, 8%)) 100%,
		0 100%
	);
}

.escova-btn.is-notch-bottom-left{
	clip-path: polygon(
		0 0,
		100% 0,
		100% 100%,
		var(--escova-btn-cut, 8%) 100%,
		0 calc(100% - var(--escova-btn-cutv, 30%))
	);
}

.escova-btn.is-notch-top-right{
	clip-path: polygon(
		0 0,
		calc(100% - var(--escova-btn-cut, 8%)) 0,
		100% var(--escova-btn-cutv, 30%),
		100% 100%,
		0 100%
	);
}

.escova-btn.is-notch-top-left{
	clip-path: polygon(
		var(--escova-btn-cut, 8%) 0,
		100% 0,
		100% 100%,
		0 100%,
		0 var(--escova-btn-cutv, 30%)
	);
}

.escova-btn.is-notch-both-bottom{
	clip-path: polygon(
		0 0,
		100% 0,
		calc(100% - var(--escova-btn-cut, 8%)) 100%,
		var(--escova-btn-cut, 8%) 100%
	);
}

.escova-btn.is-notch-both-right{
	clip-path: polygon(
		0 0,
		100% 0,
		100% 100%,
		calc(100% - var(--escova-btn-cut, 8%)) 100%,
		100% 0
	);
}

.escova-btn.is-notch-none{ clip-path: none; }

/* the label sits before the cut, so a modest right padding is enough */
/* the angled cut eats into the right edge, so the label needs a little breathing room
   there — but only the cut's width, not a fixed extra block. */
.escova-btn.is-notch-bottom-right,
.escova-btn.is-notch-top-right{
	padding-right: calc(var(--escova-btn-pad-r, 38px) + var(--escova-btn-cut, 8%) * 0.55);
}

.escova-btn.is-notch-bottom-left,
.escova-btn.is-notch-top-left{
	padding-left: calc(var(--escova-btn-pad-l, 38px) + var(--escova-btn-cut, 8%) * 0.55);
}

/* ---------- responsive ---------- */
@media (max-width: 767px){
	.escova-btn{
		padding: 17px 30px;
		font-size: 14px;
		letter-spacing: 1.6px;
		gap: 12px;
		--escova-btn-cut: 9%;
	}
	.escova-btn-arrow{ font-size: 17px; }
}

/* ============================================================
 * PHOTO PANEL — solid colour / image background for transparent PNGs
 * ============================================================ */

/* the panel colour lives on its own layer so the diagonal still works */
.escova-bs-banner{
	--escova-bs-panel: #A80000;
}

.escova-bs-photo-panel{
	background: var(--escova-bs-panel) !important;
	background-image: var(--escova-bs-panel-img, none) !important;
	background-size: var(--escova-bs-panel-fit, cover) !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}

/* keep the diagonal clip on the panel so it follows the split */
.escova-bs-slide.is-photo-right .escova-bs-photo-panel{
	clip-path: polygon(
		var(--escova-bs-angle) 0,
		100% 0,
		100% 100%,
		0 100%
	);
}

.escova-bs-slide.is-photo-left .escova-bs-photo-panel{
	clip-path: polygon(
		0 0,
		calc(100% - var(--escova-bs-angle)) 0,
		100% 100%,
		0 100%
	);
}

/* transparent PNGs should not show a plate behind them */
.escova-bs-photo{
	background: transparent !important;
	box-shadow: none !important;
}

/* re-enable a soft shadow only for non-transparent images via the toggle below */
.escova-bs-banner[data-photo-shadow="yes"] .escova-bs-photo{
	box-shadow: 0 24px 48px rgba(0,0,0,.35) !important;
}

@media (max-width: 767px){
	.escova-bs-slide.is-photo-right .escova-bs-photo-panel,
	.escova-bs-slide.is-photo-left  .escova-bs-photo-panel{
		clip-path: none;
	}
	.escova-bs-photo-panel{
		background: var(--escova-bs-panel) !important;
		background-image: var(--escova-bs-panel-img, none) !important;
		background-size: var(--escova-bs-panel-fit, cover) !important;
		background-position: center !important;
	}
}

/* ============================================================
 * ESCOVA CONTACT — form panel + info items + map + FAQ accordion
 * ============================================================ */

.escova-ct{
	width: 100%;
	box-sizing: border-box;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* ---------- two-column grid ---------- */
.escova-ct-grid{
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	gap: 40px;
	align-items: start;
}

/* ---------- form panel ---------- */
.escova-ct-panel{
	background: #0F0F12;
	border: 1px solid rgba(255,255,255,.10);
	padding: 34px 32px 38px;
	box-sizing: border-box;
}

.escova-ct-title{
	margin: 0 0 26px;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .3px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.escova-ct-form{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 0;
}

.escova-ct-field{ display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.escova-ct-field--full{ grid-column: 1 / -1; }

.escova-ct-label{
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #9A9AA4;
}

.escova-ct-input{
	width: 100%;
	padding: 15px 16px;
	background: #14141A;
	border: 1px solid rgba(255,255,255,.14);
	color: #FFFFFF;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.4;
	box-sizing: border-box;
	transition: border-color .2s ease, background .2s ease;
	-webkit-appearance: none;
	appearance: none;
	border-radius: 0;
}

.escova-ct-input::placeholder{ color: rgba(255,255,255,.34); }

.escova-ct-input:focus{
	outline: none;
	border-color: #E8112D;
	background: #17171E;
}

.escova-ct-textarea{ resize: vertical; min-height: 130px; }

.escova-ct-hp{ display: none !important; }

.escova-ct-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	padding: 18px 32px;
	background: #E8112D;
	border: 1px solid #E8112D;
	color: #FFFFFF;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s ease, color .25s ease;
}

.escova-ct-btn:hover{ background: transparent; color: #E8112D; }
.escova-ct-arrow{ font-size: 16px; line-height: 1; }

/* ---------- info column ---------- */
.escova-ct-side{ display: flex; flex-direction: column; gap: 24px; }

.escova-ct-info{
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.escova-ct-info-item{
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.escova-ct-info-icon{
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255,255,255,.14);
	color: #E8112D;
	font-size: 18px;
}

.escova-ct-info-icon svg{ width: 18px; height: 18px; fill: currentColor; }

.escova-ct-info-label{
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.escova-ct-info-value{
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
	color: #9A9AA4;
}

.escova-ct-info-value a{ color: inherit; text-decoration: none; }
.escova-ct-info-value a:hover{ color: #E8112D; }

/* ---------- map ---------- */
.escova-ct-map{
	position: relative;
	width: 100%;
	height: 220px;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.10);
	background: #101014;
}

.escova-ct-map iframe{
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
	filter: grayscale(.35) contrast(1.05);
}

.escova-ct-map--placeholder{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	color: #6B6B76;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	background:
		linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 26px 26px,
		linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 26px 26px,
		#101014;
}

.escova-ct-pin{
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #E8112D;
	box-shadow: 0 0 0 6px rgba(232,17,45,.18);
}

/* ---------- FAQ ---------- */
.escova-ct-faq-wrap{ margin-top: 62px; }

.escova-ct-head{
	position: relative;
	margin: 0 0 30px;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(255,255,255,.12);
}

.escova-ct-head::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 64px;
	height: 2px;
	background: #E8112D;
}

.escova-ct-heading{
	margin: 0;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.5px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.escova-ct-faq{
	border-bottom: 1px solid rgba(255,255,255,.10);
}

.escova-ct-faq summary{
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: 22px 46px 22px 0;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.5;
	color: #FFFFFF;
	transition: color .2s ease;
}

.escova-ct-faq summary::-webkit-details-marker{ display: none; }

.escova-ct-faq summary::after{
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
	color: #E8112D;
	transition: transform .25s ease;
}

.escova-ct-faq[open] summary::after{
	content: "–";
	transform: translateY(-50%) rotate(0deg);
}

.escova-ct-faq[open] summary{ color: #E8112D; }

.escova-ct-faq p{
	margin: 0 46px 24px 0;
	font-size: 15.5px;
	line-height: 1.75;
	color: #9A9AA4;
}

/* ============================================================
 * TABLET
 * ============================================================ */
@media (max-width: 1024px){
	.escova-ct-grid{ grid-template-columns: 1fr; gap: 34px; }
	.escova-ct-heading{ font-size: 32px; }
	.escova-ct-title{ font-size: 24px; }
	.escova-ct-map{ height: 200px; }
}

/* ============================================================
 * MOBILE
 * ============================================================ */
@media (max-width: 767px){
	.escova-ct-panel{ padding: 24px 20px 28px; }
	.escova-ct-form{ grid-template-columns: 1fr; gap: 16px; }
	.escova-ct-field--full{ grid-column: auto; }

	.escova-ct-title{ font-size: 20px; margin-bottom: 20px; }

	.escova-ct-input{ padding: 14px 14px; font-size: 16px; } /* 16px stops iOS zoom */
	.escova-ct-textarea{ min-height: 120px; }

	.escova-ct-btn{ padding: 16px 20px; font-size: 13px; letter-spacing: 1.6px; }

	.escova-ct-info-item{ gap: 13px; }
	.escova-ct-info-icon{ width: 40px; height: 40px; font-size: 16px; }
	.escova-ct-info-label{ font-size: 14px; }
	.escova-ct-info-value{ font-size: 14.5px; }

	.escova-ct-heading{ font-size: 24px; }
	.escova-ct-faq-wrap{ margin-top: 44px; }
	.escova-ct-faq summary{ font-size: 15.5px; padding: 18px 38px 18px 0; }
	.escova-ct-faq summary::after{ font-size: 21px; right: 2px; }
	.escova-ct-faq p{ font-size: 14.5px; margin-right: 24px; }

	.escova-ct-map{ height: 180px; }
}


/* ============================================================
 * PHOTO PANEL — fit transparent PNG device shots inside the panel
 * ============================================================ */

/* images scale to the panel height and never exceed their half */
.escova-bs-photos{
	padding: 0 4% !important;
	gap: 10px !important;
	overflow: visible !important;
}

.escova-bs-photo{
	height: auto !important;
	max-height: 76% !important;
	width: auto !important;
	max-width: 46% !important;
	object-fit: contain !important;
	margin: 0 !important;
	align-self: center;
}

/* second photo drops slightly, as in the design */
.escova-bs-photo-b{
	margin-top: 46px !important;
}

/* on the cream side of a dark layout, transparent PNGs still read fine */
.escova-bs-slide.is-light .escova-bs-photo{ filter: none !important; }

@media (max-width: 1024px){
	.escova-bs-photo{ max-height: 72% !important; max-width: 47% !important; }
}

@media (max-width: 767px){
	.escova-bs-photo{
		max-height: 218px !important;
		max-width: 46% !important;
		height: auto !important;
	}
	.escova-bs-photo-b{ margin-top: 18px !important; }
}

/* ============================================================
 * ESCOVA FAQ — standalone accordion
 * ============================================================ */

.escova-fq-wrap{
	width: 100%;
	box-sizing: border-box;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.escova-fq-head{
	position: relative;
	margin: 0 0 30px;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(255,255,255,.12);
}

.escova-fq-head::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 64px;
	height: 2px;
	background: #E8112D;
}

.escova-fq-heading{
	margin: 0;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.5px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.escova-fq-sub{
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: #9A9AA4;
}

.escova-fq-list{
	display: block;
	width: 100%;
}

.escova-fq{
	border-bottom: 1px solid rgba(255,255,255,.10);
}

.escova-fq summary{
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: 22px 46px 22px 0;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.5;
	color: #FFFFFF;
	transition: color .2s ease;
}

.escova-fq summary::-webkit-details-marker{ display: none; }
.escova-fq summary::marker{ content: ""; }

.escova-fq summary::after{
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
	color: #E8112D;
	transition: transform .25s ease;
}

.escova-fq[open] summary{ color: #E8112D; }
.escova-fq[open] summary::after{ content: "–"; }

.escova-fq p{
	margin: 0 46px 24px 0;
	font-size: 15.5px;
	line-height: 1.75;
	color: #9A9AA4;
}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
	.escova-fq-heading{ font-size: 32px; }
}

@media (max-width: 767px){
	.escova-fq-heading{ font-size: 24px; }
	.escova-fq-head{ margin-bottom: 22px; padding-bottom: 14px; }
	.escova-fq summary{ font-size: 15.5px; padding: 18px 38px 18px 0; }
	.escova-fq summary::after{ font-size: 21px; right: 2px; }
	.escova-fq p{ font-size: 14.5px; margin-right: 24px; margin-bottom: 20px; }
}

/* ============================================================
 * ESCOVA MARQUEE — infinite scrolling text band (pure CSS)
 * ============================================================ */

.escova-mq-wrap{
	position: relative;
	width: 100%;
}

/* SCROLL caption + moving line above the band */
.escova-mq-hint{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 0 0 22px;
}

.escova-mq-hint-label{
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 3.2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.55);
}

.escova-mq-hint-line{
	display: block;
	width: 1px;
	height: 26px;
	background: linear-gradient(180deg, rgba(255,255,255,.05), #E8112D);
	transform-origin: top center;
	animation: escova-mq-hint 1.9s ease-in-out infinite;
}

@keyframes escova-mq-hint{
	0%   { transform: scaleY(.25); opacity: .3; }
	50%  { transform: scaleY(1);   opacity: 1; }
	100% { transform: scaleY(.25); opacity: .3; }
}

.escova-mq{
	--escova-mq-gap: 54px;
	--escova-mq-speed: 28s;
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #E01F26;
	color: #FFFFFF;
	box-sizing: border-box;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 46px;
	font-weight: 700;
	letter-spacing: 0.5px;
	line-height: 1;
	-webkit-user-select: none;
	user-select: none;
}

.escova-mq-band{
	width: 100%;
	padding-top: 24px;
	padding-bottom: 24px;
	overflow: hidden;
}

.escova-mq-track{
	display: flex;
	flex-wrap: nowrap;
	width: max-content;
	will-change: transform;
	animation: escova-mq-scroll var(--escova-mq-speed) linear infinite;
}

.escova-mq.is-right .escova-mq-track{
	animation-direction: reverse;
}

.escova-mq[data-pause="yes"]:hover .escova-mq-track{
	animation-play-state: paused;
}

.escova-mq-group{
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	flex: 0 0 auto;
}

.escova-mq-item{
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	padding-right: var(--escova-mq-gap);
}

.escova-mq-text{
	display: inline-block;
	white-space: nowrap;
	text-transform: uppercase;
}

.escova-mq-sep{
	display: inline-block;
	margin-left: var(--escova-mq-gap);
	font-size: 0.62em;
	line-height: 1;
	opacity: .95;
	white-space: nowrap;
}

.escova-mq-sep svg{
	width: 1em;
	height: 1em;
	fill: currentColor;
	display: block;
}

@keyframes escova-mq-scroll{
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce){
	.escova-mq-track{ animation: none; }
}

/* ---------- tablet ---------- */
@media (max-width: 1024px){
	.escova-mq{
		font-size: 34px;
		padding-top: 18px;
		padding-bottom: 18px;
		--escova-mq-gap: 38px;
	}
}

/* ---------- mobile ---------- */
@media (max-width: 767px){
	.escova-mq{
		font-size: 26px;
		padding-top: 14px;
		padding-bottom: 14px;
		--escova-mq-gap: 26px;
	}
}

/* ============================================================
 * FLAVOUR GRID — numeric value badge beside the dots
 * ============================================================ */

.escova-fv-metric{
	display: flex;
	align-items: center;
	gap: 10px;
}

.escova-fv-metric > span:first-child{
	flex: 0 0 auto;
}

.escova-fv-dots{
	flex: 1 1 auto;
}

.escova-fv-value{
	flex: 0 0 auto;
	min-width: 30px;
	padding: 5px 9px;
	text-align: center;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.18);
	color: inherit;
	font-size: 0.95em;
	font-weight: 700;
	line-height: 1;
	border-radius: 0;
}

@media (max-width: 767px){
	.escova-fv-value{
		min-width: 24px;
		padding: 3px 6px;
		font-size: 0.85em;
	}
}

/* ============================================================
 * FLAVOUR GRID — when labels are hidden, dots + value centre up
 * ============================================================ */

.escova-fv-metric.is-no-label{
	justify-content: center;
	gap: 12px;
}

.escova-fv-metric.is-no-label .escova-fv-dots{
	flex: 0 1 auto;
}

.escova-fv-metric.is-no-label .escova-fv-value{
	flex: 0 0 auto;
}

/* keep the value box the same size whether or not a label exists */
.escova-fv-value{
	min-width: 46px;
}

/* ============================================================
 * FLAVOUR GRID — label-less mode sizing (matches the reference)
 * ============================================================ */

.escova-fv-metric.is-no-label{
	justify-content: center;
	gap: 16px;
	padding: 4px 0;
}

.escova-fv-metric.is-no-label .escova-fv-dots{
	gap: 8px;
}

.escova-fv-metric.is-no-label .escova-fv-dot{
	width: 13px;
	height: 13px;
	min-width: 13px;
}

.escova-fv-metric.is-no-label .escova-fv-value{
	min-width: 54px;
	padding: 7px 12px;
	font-size: 1em;
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.22);
}

@media (max-width: 767px){
	.escova-fv-metric.is-no-label{ gap: 12px; }
	.escova-fv-metric.is-no-label .escova-fv-dots{ gap: 6px; }
	.escova-fv-metric.is-no-label .escova-fv-dot{ width: 11px; height: 11px; min-width: 11px; }
	.escova-fv-metric.is-no-label .escova-fv-value{ min-width: 46px; padding: 5px 9px; font-size: .95em; }
}

/* ============================================================
 * FLAVOUR GRID — dots only (no number box): natural alignment
 * ============================================================ */

.escova-fv-metric .escova-fv-dots{
	flex: 0 0 auto;
}

.escova-fv-metric .escova-fv-label + .escova-fv-dots{
	margin-top: 8px;
}

/* label-less + value-less: dots centred on their own row */
.escova-fv-metric.is-no-label .escova-fv-dots{
	flex: 0 0 auto;
}

.escova-fv-value{
	display: none;
}
.escova-fv-metric .escova-fv-value{
	display: inline-block;
}

/* ============================================================
 * HEADER NAVIGATION (Astra) — ESCOVA styling
 * Scoped to .main-header-menu so nothing else is affected.
 * ============================================================ */

/* ---------- top-level menu ---------- */
.main-header-menu .menu-item > .menu-link{
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	transition: color .2s ease;
}

/* current page shows in the brand red */
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current_page_item > .menu-link{
	color: #E8112D !important;
}

.main-header-menu .menu-item > .menu-link:hover{
	color: #E8112D;
}

/* ---------- dropdown panel ---------- */
.main-header-menu .sub-menu{
	min-width: 240px;
	padding: 8px 0;
	background: #0A0A0C;
	border: 1px solid rgba(255,255,255,.12);
	border-top: 2px solid #E8112D;
	box-shadow: 0 18px 40px rgba(0,0,0,.55);
}

.main-header-menu .sub-menu .menu-item{
	border-bottom: 1px solid rgba(255,255,255,.06);
}

.main-header-menu .sub-menu .menu-item:last-child{
	border-bottom: none;
}

.main-header-menu .sub-menu .menu-link{
	display: block;
	padding: 13px 20px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: #FFFFFF !important;
	background: transparent;
	transition: background .2s ease, color .2s ease, padding-left .2s ease;
}

.main-header-menu .sub-menu .menu-link:hover{
	background: #131317;
	color: #E8112D !important;
	padding-left: 26px;
}

/* the small arrow next to a parent item */
.main-header-menu .dropdown-menu-toggle .ast-icon svg{
	width: 10px;
	height: 10px;
	fill: currentColor;
	transition: transform .25s ease;
}

.main-header-menu .menu-item-has-children:hover .dropdown-menu-toggle .ast-icon svg{
	transform: rotate(180deg);
}

/* ---------- mobile ---------- */
@media (max-width: 921px){
	.main-header-menu{
		background: #0A0A0C;
	}
	.main-header-menu .menu-item > .menu-link{
		padding: 15px 20px;
		border-bottom: 1px solid rgba(255,255,255,.08);
	}
	.main-header-menu .sub-menu{
		min-width: 0;
		border: none;
		border-top: 1px solid rgba(255,255,255,.08);
		box-shadow: none;
		padding: 0;
		background: #101014;
	}
	.main-header-menu .sub-menu .menu-link{
		padding: 13px 32px;
		font-size: 12.5px;
	}
}

/* hide the stray arrow icons Astra injects inside dropdown children */
.main-header-menu .sub-menu .menu-link .ast-icon,
.main-header-menu .sub-menu .menu-link svg{
	display: none !important;
}

/* keep only the parent toggle arrow */
.main-header-menu > .menu-item-has-children > .menu-link .ast-icon{
	display: inline-flex !important;
}

/* dropdown panel width + right alignment so it never leaves the viewport */
.main-header-menu .sub-menu{
	min-width: 250px;
}

.main-header-menu .menu-item-has-children{
	position: relative;
}

/* ============================================================
 * NICOTINE WARNING BAR (Astra above-header html widget)
 * ============================================================ */

.ast-above-header-bar{
	background-color: #000000 !important;
}

.ast-above-header-bar .ast-builder-html-element,
.ast-above-header-bar .ast-builder-html-element p{
	margin: 0;
	color: #FFFFFF !important;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.35px;
	text-align: center;
	line-height: 1.4;
}

@media (max-width: 767px){
	.ast-above-header-bar .ast-builder-html-element,
	.ast-above-header-bar .ast-builder-html-element p{
		font-size: 9.5px;
		line-height: 1.35;
		letter-spacing: 0.15px;
		padding: 0 8px;
	}
}

/* ============================================================
 * ESCOVA PARTNER FORM — wholesale / distributor application
 * Light panel (matches the reference design)
 * ============================================================ */

.escova-pf{
	max-width: 900px;
	margin: 0 auto;
	padding: 44px 40px;
	background: #EFEFEF;
	border-radius: 6px;
}

.escova-pf-head{
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}

.escova-pf-badge{
	display: inline-block;
	padding: 6px 12px;
	background: #E8112D;
	color: #FFFFFF;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.9px;
	text-transform: uppercase;
	white-space: nowrap;
}

.escova-pf-title{
	margin: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 38px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.5px;
	color: #111111;
}

.escova-pf-sub{
	margin: 0 0 28px;
	font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.55;
	color: #333333;
	text-align: center;
}

/* ---------- fields ---------- */
.escova-pf-grid{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.escova-pf-field.is-full{ grid-column: 1 / -1; }
.escova-pf-field.is-half{ grid-column: span 1; }

.escova-pf-field input[type="text"],
.escova-pf-field input[type="email"],
.escova-pf-field input[type="tel"],
.escova-pf-field input[type="number"],
.escova-pf-field textarea,
.escova-pf-field select{
	width: 100%;
	padding: 17px 22px;
	background: #FFFFFF;
	border: 1px solid #FFFFFF;
	border-radius: 26px;
	font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px;
	color: #111111;
	box-shadow: 0 1px 2px rgba(0,0,0,.04);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.escova-pf-field input::placeholder,
.escova-pf-field textarea::placeholder{
	color: #8A8A8A;
}

.escova-pf-field input:focus,
.escova-pf-field textarea:focus,
.escova-pf-field select:focus{
	outline: none;
	border-color: #E8112D;
	box-shadow: 0 0 0 3px rgba(232,17,45,.12);
}

.escova-pf-field textarea{
	min-height: 110px;
	resize: vertical;
	border-radius: 22px;
	padding-top: 18px;
}

.escova-pf-field select{
	appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23111111'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 20px center;
	background-size: 22px;
	padding-right: 52px;
	cursor: pointer;
}

/* phone field with country code */
.escova-pf-tel{
	display: flex;
	align-items: center;
	background: #FFFFFF;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(0,0,0,.04);
}

.escova-pf-tel .escova-pf-cc{
	padding: 0 10px 0 22px;
	font-family: "Archivo", sans-serif;
	font-size: 15px;
	color: #111111;
	white-space: nowrap;
}

.escova-pf-tel input{
	border: none !important;
	box-shadow: none !important;
	padding-left: 4px !important;
}

/* checkbox row */
.escova-pf-check{
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 6px 4px;
	cursor: pointer;
	font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15.5px;
	line-height: 1.45;
	color: #222222;
}

.escova-pf-check input[type="checkbox"]{
	appearance: none;
	width: 20px;
	height: 20px;
	min-width: 20px;
	margin-top: 1px;
	border: 2px solid #333333;
	border-radius: 3px;
	background: #FFFFFF;
	cursor: pointer;
	position: relative;
	transition: background .15s ease, border-color .15s ease;
}

.escova-pf-check input[type="checkbox"]:checked{
	background: #E8112D;
	border-color: #E8112D;
}

.escova-pf-check input[type="checkbox"]:checked::after{
	content: "";
	position: absolute;
	left: 6px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid #FFFFFF;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}

/* honeypot — never visible */
.escova-pf-hp{
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	opacity: 0;
}

/* ---------- submit ---------- */
.escova-pf-submit{
	display: block;
	width: 100%;
	margin-top: 22px;
	padding: 19px 28px;
	background: #000000;
	color: #FFFFFF;
	border: none;
	border-radius: 34px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.4px;
	cursor: pointer;
	transition: background .2s ease, transform .15s ease;
}

.escova-pf-submit:hover{
	background: #E8112D;
}

.escova-pf-submit:active{
	transform: translateY(1px);
}

.escova-pf-ok{
	margin: 18px 0 0;
	padding: 15px 20px;
	background: rgba(232,17,45,.08);
	border-left: 3px solid #E8112D;
	font-family: "Archivo", sans-serif;
	font-size: 15px;
	color: #111111;
}

/* ---------- responsive ---------- */
@media (max-width: 767px){
	.escova-pf{ padding: 30px 20px; border-radius: 0; }
	.escova-pf-title{ font-size: 27px; }
	.escova-pf-sub{ font-size: 14.5px; text-align: left; }
	.escova-pf-grid{ grid-template-columns: 1fr; gap: 13px; }
	.escova-pf-field.is-half{ grid-column: 1 / -1; }
	.escova-pf-field input,
	.escova-pf-field textarea,
	.escova-pf-field select{ padding: 14px 18px; font-size: 15px; border-radius: 22px; }
	.escova-pf-submit{ padding: 16px 24px; font-size: 16px; }
}

/* ============================================================
 * PARTNER FORM — dark variant (matches the ESCOVA dark design)
 * ============================================================ */

.escova-pf{
	background: #131317;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 4px;
	max-width: 860px;
}

.escova-pf-title{
	color: #FFFFFF;
	font-size: 30px;
}

.escova-pf-sub{
	color: #9A9AA4;
	text-align: left;
	font-size: 15px;
}

.escova-pf-field input[type="text"],
.escova-pf-field input[type="email"],
.escova-pf-field input[type="tel"],
.escova-pf-field input[type="number"],
.escova-pf-field textarea,
.escova-pf-field select{
	background: #0A0A0C;
	border: 1px solid rgba(255,255,255,.14);
	color: #FFFFFF;
	box-shadow: none;
}

.escova-pf-field input::placeholder,
.escova-pf-field textarea::placeholder{
	color: #8A8A94;
}

.escova-pf-field select{
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFFFFF'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 20px center;
	background-size: 22px;
	color: #FFFFFF;
}

.escova-pf-field select option{
	background: #131317;
	color: #FFFFFF;
}

.escova-pf-tel{
	background: #0A0A0C;
	border: 1px solid rgba(255,255,255,.14);
	box-shadow: none;
}

.escova-pf-tel .escova-pf-cc{ color: #FFFFFF; }

.escova-pf-check{ color: #C8C8D0; }

.escova-pf-check input[type="checkbox"]{
	background: #0A0A0C;
	border-color: rgba(255,255,255,.35);
}

.escova-pf-check input[type="checkbox"]:checked{
	background: #E8112D;
	border-color: #E8112D;
}

.escova-pf-submit{
	background: #E8112D;
	color: #FFFFFF;
}

.escova-pf-submit:hover{
	background: #FFFFFF;
	color: #0A0A0C;
}

/* benefit-card icon box (Elementor free has no FA, so style the wrapper) */
.escova-whydark .elementor-widget-icon{
	color: #E8112D;
}

/* ============================================================
 * ESCOVA IMAGE PILLS — photo with floating stat pills
 * ============================================================ */

.escova-ip{
	--escova-ip-dist: 12px;
	--escova-ip-dur: 3.4s;
	--escova-ip-fs: 21px;
	position: relative;
	width: 100%;
	max-width: 780px;
	margin: 0 auto;
}

.escova-ip-media{
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #101014;
}

.escova-ip-media img{
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* brand + big title laid over the photo */
.escova-ip-head{
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	padding: 30px 22px 0;
	text-align: center;
	pointer-events: none;
}

.escova-ip-brand{
	display: block;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 700;
	font-style: italic;
	letter-spacing: 3.4px;
	text-transform: uppercase;
	margin-bottom: 2px;
}

.escova-ip-title{
	display: block;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 46px;
	font-weight: 900;
	font-style: italic;
	letter-spacing: -1.2px;
	line-height: 1;
	text-transform: uppercase;
}

/* ---------- pills ---------- */
.escova-ip-pill{
	position: absolute;
	display: inline-flex;
	align-items: center;
	gap: 11px;
	background: #1C1C20;
	color: #FFFFFF;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	white-space: nowrap;
	z-index: 4;
	box-shadow: 0 10px 26px rgba(0,0,0,.4);
}

.escova-ip-ic{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	font-style: normal;
}

.escova-ip-value{
	font-size: var(--escova-ip-fs);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.4px;
}

.escova-ip-unit{
	font-size: calc(var(--escova-ip-fs) * 0.82);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.2px;
}

/* ---------- 6 anchor positions ---------- */
.escova-ip-pill.at-top-left{ top: 14%; left: -3%; }
.escova-ip-pill.at-top-right{ top: 12%; right: -3%; }
.escova-ip-pill.at-center-left{ top: 47%; left: -3%; }
.escova-ip-pill.at-center-right{ top: 45%; right: -3%; }
.escova-ip-pill.at-bottom-left{ bottom: 8%; left: -2%; }
.escova-ip-pill.at-bottom-right{ bottom: 6%; right: -3%; }

/* ---------- float animation ---------- */
@keyframes escova-ip-float{
	0%   { transform: translateY(0); }
	50%  { transform: translateY(calc(var(--escova-ip-dist) * -1)); }
	100% { transform: translateY(0); }
}

.escova-ip.is-anim .escova-ip-pill{
	animation: escova-ip-float var(--escova-ip-dur) ease-in-out infinite;
	will-change: transform;
}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
	/* handled by the widget's tablet controls */
}

@media (max-width: 767px){
	/* Sizing is owned by the Elementor responsive controls (tablet/mobile tabs).
	   Only the pill anchors move inward so they don't hang off a narrow screen. */
	.escova-ip-head{ padding: 20px 14px 0; }
	.escova-ip-brand{ letter-spacing: 2.4px; }
	.escova-ip-pill{
		gap: 8px;
	}
	.escova-ip-pill.at-top-left{ left: 3%; top: 15%; }
	.escova-ip-pill.at-top-right{ right: 3%; top: 13%; }
	.escova-ip-pill.at-center-left{ left: 3%; }
	.escova-ip-pill.at-center-right{ right: 3%; }
	.escova-ip-pill.at-bottom-left{ left: 3%; bottom: 6%; }
	.escova-ip-pill.at-bottom-right{ right: 3%; bottom: 6%; }
	.escova-ip-pill.hide-mobile{ display: none; }
}

/* respect the user's motion preference */
@media (prefers-reduced-motion: reduce){
	.escova-ip.is-anim .escova-ip-pill{ animation: none; }
}

/* image pills: let the media clip its own radius and honour the alignment control */
.escova-ip{
	display: block;
}
.escova-ip-media{
	overflow: hidden;
	line-height: 0;
}
.escova-ip-media img{
	display: block;
	width: 100%;
}

/* ============================================================
 * MARQUEE — skewed band + multi-item labels
 * ============================================================ */

/* when the band is tilted, widen it so the slanted edges never show a gap */
.escova-mq-wrap.is-bleed{
	overflow: hidden;
}

.escova-mq-wrap.is-bleed .escova-mq{
	width: 112%;
	margin-left: -6%;
}

/* the tilting transform is applied inline via the widget's Skew control;
   keep the band from clipping its own corners */
.escova-mq{
	transform-origin: center center;
	backface-visibility: hidden;
}

/* emphasis: a lighter weight inside a bold band reads as a highlight.
   Used for items the owner marks as "Bold / Lighter weight". */
.escova-mq-text.is-strong{
	font-weight: 400 !important;
	opacity: .88;
}

/* Manrope needs its own family stack (loaded by the plugin's Google Fonts request) */
.escova-mq.font-manrope,
.escova-mq.font-manrope .escova-mq-text,
.escova-mq.font-manrope .escova-mq-sep{
	font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.escova-mq.font-anton,
.escova-mq.font-anton .escova-mq-text,
.escova-mq.font-anton .escova-mq-sep{
	font-family: "Anton", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 400 !important;
	letter-spacing: 1.2px;
}

/* SCROLL hint shouldn't tilt with the band */
.escova-mq-hint{
	transform: none;
}

/* ============================================================
 * ESCOVA FEATURE CARD — icon tile + outlined number + heading + copy
 * ============================================================ */

.escova-fc{
	--escova-fc-hover: rgba(232,17,45,.55);
	display: flex;
	flex-direction: column;
	gap: 26px;
	width: 100%;
	padding: 44px;
	background: #0E0E12;
	border: 1px solid rgba(255,255,255,.09);
	border-radius: 22px;
	box-sizing: border-box;
	transition: border-color .3s ease, transform .3s ease, background .3s ease;
}

/* ---------- top row ---------- */
.escova-fc-top{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
}

/* icon tile */
.escova-fc-ic{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
	background: rgba(232,17,45,.10);
	border: 1.5px solid #7A1220;
	border-radius: 20px;
	line-height: 1;
}

.escova-fc-ic-img{
	display: block;
	line-height: 1;
	font-style: normal;
}

/* outlined number */
.escova-fc-num{
	flex: 0 0 auto;
	font-family: "Anton", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 62px;
	font-weight: 400;
	line-height: 0.86;
	letter-spacing: 1px;
	color: transparent;
	-webkit-text-stroke-width: 1.5px;
	-webkit-text-stroke-color: #7A1220;
	text-stroke: 1.5px #7A1220;
	-webkit-user-select: none;
	user-select: none;
}

/* ---------- copy ---------- */
.escova-fc-title{
	margin: 0;
	font-family: "Anton", "Arial Narrow", sans-serif;
	font-size: 35px;
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.escova-fc-desc{
	margin: 0;
	font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.72;
	color: #9A9AA4;
}

/* ---------- hover ---------- */
.escova-fc.has-lift:hover{
	transform: translateY(-4px);
	border-color: var(--escova-fc-hover);
	background: #121218;
}

/* ---------- responsive ---------- */
@media (max-width: 767px){
	.escova-fc{
		padding: 28px 24px;
		border-radius: 18px;
		gap: 20px;
	}
	.escova-fc-ic{
		width: 56px;
		height: 56px;
		border-radius: 16px;
	}
	.escova-fc-ic-img{ font-size: 26px !important; }
	.escova-fc-num{ font-size: 48px; }
	.escova-fc-title{ font-size: 26px; }
	.escova-fc-desc{ font-size: 15px; line-height: 1.65; }
}

/* ============================================================
 * FEATURE CARD — equal-height fix
 * Cards sit side by side in a flex container, so they must stretch
 * to the tallest one. The text block also grows so the copy sits at
 * the same baseline across all cards.
 * ============================================================ */

/* 1. make the widget element itself stretch inside the container */
.elementor-widget-escova_feature_card{
	display: flex;
	flex-direction: column;
	height: 100%;
	align-self: stretch;
}

.escova-fc{
	flex: 1 1 auto;
	height: 100%;
	justify-content: flex-start;
}

/* 2. keep the copy block growing so short and long descriptions
      both end at the same place */
.escova-fc-desc{
	flex: 1 1 auto;
}

/* 3. the top row should never collapse when a heading wraps to two lines */
.escova-fc-top{
	flex: 0 0 auto;
	min-height: 72px;
	align-items: flex-start;
}

/* 4. keep the number optically aligned with the top of the icon tile:
      the outlined numerals have a tall cap-height, so nudge them down
      by the difference between the tile's top and the digit's top */
.escova-fc-num{
	position: relative;
	top: 6px;
	margin-top: 0;
}

@media (max-width: 767px){
	.escova-fc-top{ min-height: 56px; }
	.escova-fc-num{ top: 4px; }
}

/* equal-height mode: the card becomes a full-height flex column */
.escova-fc.is-equal{
	flex: 1 1 auto;
	height: 100%;
}

.escova-fc.is-equal .escova-fc-desc{
	flex: 1 1 auto;
}

/* inside a stretched card the heading/description block should not be
   pushed apart — keep the natural stacking, just fill the space */
.escova-fc.is-equal .escova-fc-top{
	flex: 0 0 auto;
}

/* ============================================================
 * FLAVOUR GRID — product image hover (zoom + rotate)
 * Values come from the widget's Image Hover Effect controls.
 * ============================================================ */

.escova-fv-wrap{
	--escova-fv-zoom: 112;
	--escova-fv-rotate: -6deg;
	--escova-fv-speed: .45s;
}

/* the image needs its own stacking context so the transform is smooth */
.escova-fv-img{
	overflow: hidden;
}

.escova-fv-img img,
.escova-fv-img > img{
	transform: scale(1) rotate(0deg);
	transform-origin: center center;
	transition:
		transform var(--escova-fv-speed) cubic-bezier(.22,.61,.36,1),
		filter var(--escova-fv-speed) ease;
	will-change: transform;
	backface-visibility: hidden;
}

/* hover the whole card, not just the photo, so the effect is easy to trigger */
.escova-fv-card:hover .escova-fv-img img,
.escova-fv-card:hover .escova-fv-img > img,
.escova-fv-img:hover img{
	transform: scale(calc(var(--escova-fv-zoom) / 100)) rotate(var(--escova-fv-rotate));
}

/* keyboard / touch users still get the zoom on focus */
.escova-fv-card:focus-within .escova-fv-img img{
	transform: scale(calc(var(--escova-fv-zoom) / 100)) rotate(var(--escova-fv-rotate));
}

/* respect the reduced-motion preference */
@media (prefers-reduced-motion: reduce){
	.escova-fv-img img,
	.escova-fv-img > img{
		transition: none;
	}
	.escova-fv-card:hover .escova-fv-img img,
	.escova-fv-card:hover .escova-fv-img > img{
		transform: none;
	}
}

/* on touch devices there is no hover, so add a gentle tap-hold zoom instead */
@media (hover: none){
	.escova-fv-card:active .escova-fv-img img{
		transform: scale(calc(var(--escova-fv-zoom) / 100)) rotate(var(--escova-fv-rotate));
	}
}

/* ============================================================
 * IMAGE PILLS — background motion (Ken Burns style)
 * The photo drifts and zooms slowly so the composition feels alive.
 * Amount and duration come from the widget's Background Motion controls.
 * ============================================================ */

.escova-ip{
	--escova-ip-bg-amt: 1.05;
	--escova-ip-bg-dur: 18s;
}

.escova-ip-media{
	overflow: hidden;
}

.escova-ip-media img{
	transform-origin: center center;
	will-change: transform;
	backface-visibility: hidden;
}

/* --- Zoom + Drift (Ken Burns) — the default, most "alive" option --- */
@keyframes escova-ip-kb{
	0%   { transform: scale(1) translate3d(0, 0, 0); }
	25%  { transform: scale(var(--escova-ip-bg-amt)) translate3d(-1.2%, -0.8%, 0); }
	50%  { transform: scale(var(--escova-ip-bg-amt)) translate3d(1.2%, 0.6%, 0); }
	75%  { transform: scale(1.01) translate3d(0.6%, 1.2%, 0); }
	100% { transform: scale(1) translate3d(0, 0, 0); }
}

/* --- Zoom in / out --- */
@keyframes escova-ip-zoom{
	0%   { transform: scale(1); }
	50%  { transform: scale(var(--escova-ip-bg-amt)); }
	100% { transform: scale(1); }
}

/* --- Pan left / right --- */
@keyframes escova-ip-pan{
	0%   { transform: scale(var(--escova-ip-bg-amt)) translate3d(-1.6%, 0, 0); }
	50%  { transform: scale(var(--escova-ip-bg-amt)) translate3d(1.6%, 0, 0); }
	100% { transform: scale(var(--escova-ip-bg-amt)) translate3d(-1.6%, 0, 0); }
}

/* --- Sway (very subtle rotation) --- */
@keyframes escova-ip-sway{
	0%   { transform: scale(var(--escova-ip-bg-amt)) rotate(-0.6deg); }
	50%  { transform: scale(var(--escova-ip-bg-amt)) rotate(0.6deg); }
	100% { transform: scale(var(--escova-ip-bg-amt)) rotate(-0.6deg); }
}

.escova-ip.is-bg-kenburns{
	--escova-ip-bg-anim: escova-ip-kb;
}
.escova-ip.is-bg-kenburns .escova-ip-media img{
	animation: escova-ip-kb var(--escova-ip-bg-dur) ease-in-out infinite;
}

.escova-ip.is-bg-zoom{
	--escova-ip-bg-anim: escova-ip-zoom;
}
.escova-ip.is-bg-zoom .escova-ip-media img{
	animation: escova-ip-zoom var(--escova-ip-bg-dur) ease-in-out infinite;
}

.escova-ip.is-bg-pan{
	--escova-ip-bg-anim: escova-ip-pan;
}
.escova-ip.is-bg-pan .escova-ip-media img{
	animation: escova-ip-pan var(--escova-ip-bg-dur) ease-in-out infinite;
}

.escova-ip.is-bg-sway{
	--escova-ip-bg-anim: escova-ip-sway;
}
.escova-ip.is-bg-sway .escova-ip-media img{
	animation: escova-ip-sway var(--escova-ip-bg-dur) ease-in-out infinite;
}

/* pause the motion while the pointer is over the card, so pills stay readable */
.escova-ip:hover .escova-ip-media img{
	animation-play-state: paused;
}

/* respect the reduced-motion preference */
@media (prefers-reduced-motion: reduce){
	.escova-ip .escova-ip-media img{
		animation: none !important;
	}
}

/* ============================================================
 * IMAGE PILLS — float targets
 *   .is-float-whole -> the entire composition drifts (photo + pills)
 *   .is-float-pills -> only the pills drift (photo stays put)
 * ============================================================ */

/* --- whole card floats: one animation on the wrapper --- */
@keyframes escova-ip-float-whole{
	0%   { transform: translateY(0) rotate(0deg); }
	50%  { transform: translateY(calc(var(--escova-ip-dist, 12px) * -1)) rotate(var(--escova-ip-whole-rot, 0deg)); }
	100% { transform: translateY(0) rotate(0deg); }
}

.escova-ip.is-float-whole{
	animation: escova-ip-float-whole var(--escova-ip-dur, 3.4s) ease-in-out infinite;
	will-change: transform;
}

/* when the whole card floats, the pills must NOT float again on top of it */
/* pills keep their own motion even when the card floats — but on a different
   rhythm, so they never read as locked to the photo */
.escova-ip.is-float-whole .escova-ip-pill{
	animation-name: escova-ip-pill-float;
}

/* the background photo keeps its own slow Ken Burns motion inside the drifting card */
.escova-ip.is-float-whole .escova-ip-media img{
	animation-name: var(--escova-ip-bg-anim, escova-ip-kb);
}

/* --- pills only (previous behaviour, explicit) --- */
.escova-ip.is-float-pills .escova-ip-pill{
	animation: escova-ip-float var(--escova-ip-dur, 3.4s) ease-in-out infinite;
}

/* the float distance/duration are set on the wrapper by the widget */
.escova-ip{
	--escova-ip-dist: 12px;
	--escova-ip-dur: 3.4s;
	--escova-ip-whole-rot: 0deg;
}

/* a very small rotation adds life to the whole-card drift */
.escova-ip.is-float-whole{
	--escova-ip-whole-rot: 0.4deg;
}

@media (prefers-reduced-motion: reduce){
	.escova-ip.is-float-whole{ animation: none; }
	.escova-ip.is-float-pills .escova-ip-pill{ animation: none; }
}

/* ============================================================
 * ESCOVA GALLERY CARDS — image cards with a VIEW button + warning strip
 * ============================================================ */

.escova-gc{
	--escova-gc-accent: #E8112D;
	--escova-gc-zoom: 1.07;
	--escova-gc-speed: .5s;
	--escova-gc-label-fs: 22px;
	width: 100%;
}

.escova-gc-grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

/* ---------- card ---------- */
.escova-gc-card{
	position: relative;
	display: block;
	width: 100%;
	padding-bottom: 118%;          /* height ratio — widget control overrides */
	overflow: hidden;
	border-radius: 26px;
	background: #14141A;
	text-decoration: none;
	box-sizing: border-box;
	isolation: isolate;
}

.escova-gc-media{
	position: absolute;
	inset: 0;
	display: block;
	overflow: hidden;
	z-index: 0;
}

.escova-gc-media img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transform-origin: center center;
	transition: transform var(--escova-gc-speed) cubic-bezier(.22,.61,.36,1);
	will-change: transform;
	backface-visibility: hidden;
}

/* ---------- bottom content ---------- */
.escova-gc-inner{
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0;
	pointer-events: none;
}

/* soft scrim so the VIEW row always reads over a bright photo */
.escova-gc-inner::before{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	top: -40px;
	background: linear-gradient(180deg, rgba(10,10,12,0) 0%, rgba(10,10,12,.55) 55%, rgba(10,10,12,.85) 100%);
	z-index: -1;
}

/* ---------- VIEW row ---------- */
.escova-gc-view{
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 24px 14px;
}

.escova-gc-play{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--escova-gc-accent);
	color: #FFFFFF;
	transition: transform var(--escova-gc-speed) ease, background var(--escova-gc-speed) ease;
}

.escova-gc-play svg{
	width: 46%;
	height: 46%;
	display: block;
}

.escova-gc-label{
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: var(--escova-gc-label-fs);
	font-weight: 800;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	line-height: 1;
	color: #FFFFFF;
}

/* ---------- warning bar ---------- */
.escova-gc-bar{
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 22px 15px;
	background: rgba(10,10,12,.82);
	backdrop-filter: blur(3px);
}

/* 21+ badge — a rounded pentagon outline with the number inside */
.escova-gc-21{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border: 1.4px solid rgba(255,255,255,.75);
	border-radius: 9px 9px 14px 14px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 800;
	color: #FFFFFF;
	letter-spacing: -0.4px;
}

.escova-gc-21-plus{
	position: absolute;
	top: 1px;
	right: 2px;
	font-size: 8px;
	font-weight: 800;
	line-height: 1;
}

.escova-gc-warn{
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.35px;
	line-height: 1.35;
	text-transform: uppercase;
	color: rgba(255,255,255,.72);
}

/* ---------- hover ---------- */
.escova-gc-card:hover .escova-gc-media img,
.escova-gc-card:focus-visible .escova-gc-media img{
	transform: scale(var(--escova-gc-zoom));
}

.escova-gc-card:hover .escova-gc-play,
.escova-gc-card:focus-visible .escova-gc-play{
	transform: scale(1.12);
	background: #FFFFFF;
	color: #E8112D;
}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
	.escova-gc-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px){
	.escova-gc-grid{ grid-template-columns: 1fr; gap: 16px; }
	.escova-gc-card{ border-radius: 18px; }
	.escova-gc-view{ padding: 16px 18px 11px; gap: 11px; }
	.escova-gc-play{ width: 42px; height: 42px; }
	.escova-gc{ --escova-gc-label-fs: 18px; }
	.escova-gc-bar{ padding: 10px 16px 12px; gap: 11px; }
	.escova-gc-21{ width: 28px; height: 28px; font-size: 12px; border-radius: 8px 8px 12px 12px; }
	.escova-gc-warn{ font-size: 8.5px; }
}

@media (prefers-reduced-motion: reduce){
	.escova-gc-media img{ transition: none; }
	.escova-gc-card:hover .escova-gc-media img{ transform: none; }
}

/* ============================================================
 * MATERIAL SYMBOLS — loaded from Google Fonts
 * ============================================================ */

.ms,
.material-symbols-rounded{
	font-family: 'Material Symbols Rounded' !important;
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.material-symbols-rounded.is-filled,
.ms.is-filled,
.escova-ms.is-filled{
	font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
}

/* feature card icon host */
.escova-fc-ic-raw,
.escova-fc-ic-emoji{
	display: block;
	font-size: inherit;
	line-height: 1;
}

.escova-fc-ic-raw{
	width: 60%;
	height: 60%;
	object-fit: contain;
}

.escova-fc-ic .ms{
	font-size: inherit;
	color: inherit;
}

/* Material Symbols must always render as the icon font, never as raw text */
.ms,
.material-symbols-rounded,
span.ms{
	font-family: 'Material Symbols Rounded', 'Material Icons', sans-serif !important;
	font-weight: normal !important;
	font-style: normal !important;
	font-size: inherit;
	line-height: 1;
	letter-spacing: normal !important;
	text-transform: none !important;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-feature-settings: 'liga';
	-webkit-font-smoothing: antialiased;
	font-feature-settings: 'liga';
	text-rendering: optimizeLegibility;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* the icon tile sizes the symbol */
.escova-fc-ic .ms{
	font-size: inherit;
	line-height: 1;
	color: #E8112D;
}

.escova-fc-ic .ms.is-filled,
.escova-fc-ic .escova-ms.is-filled{
	font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
}

/* ============================================================
 * IMAGE PILLS — independent per-pill motion
 * Each pill uses its own duration + delay (+ optional drift), so the pills
 * never move in step with each other or with the background photo.
 * ============================================================ */

.escova-ip-pill{
	--escova-ip-pill-dur: 4.2s;
	--escova-ip-pill-delay: 0s;
	--escova-ip-pill-drift: 0px;
}

/* vertical float only (used when no drift is set) */
@keyframes escova-ip-pill-float{
	0%   { transform: translate3d(0, 0, 0); }
	50%  { transform: translate3d(0, calc(var(--escova-ip-dist, 12px) * -1), 0); }
	100% { transform: translate3d(0, 0, 0); }
}

/* vertical float + horizontal sway */
@keyframes escova-ip-pill-float-drift{
	0%   { transform: translate3d(0, 0, 0); }
	25%  { transform: translate3d(var(--escova-ip-pill-drift, 6px), calc(var(--escova-ip-dist, 12px) * -0.55), 0); }
	50%  { transform: translate3d(0, calc(var(--escova-ip-dist, 12px) * -1), 0); }
	75%  { transform: translate3d(calc(var(--escova-ip-pill-drift, 6px) * -1), calc(var(--escova-ip-dist, 12px) * -0.5), 0); }
	100% { transform: translate3d(0, 0, 0); }
}

/* pills only mode: each pill runs its OWN duration + delay */
.escova-ip.is-float-pills .escova-ip-pill{
	animation-name: escova-ip-pill-float;
	animation-duration: var(--escova-ip-pill-dur);
	animation-delay: var(--escova-ip-pill-delay);
	animation-timing-function: cubic-bezier(.45,.05,.55,.95);
	animation-iteration-count: infinite;
	will-change: transform;
	backface-visibility: hidden;
}

/* pills inside a floating card still move on their own rhythm:
   the card drifts, and each pill adds its own independent motion on top */
.escova-ip.is-float-whole .escova-ip-pill{
	animation-name: escova-ip-pill-float;
	animation-duration: var(--escova-ip-pill-dur);
	animation-delay: var(--escova-ip-pill-delay);
	animation-timing-function: cubic-bezier(.45,.05,.55,.95);
	animation-iteration-count: infinite;
	will-change: transform;
}

@media (prefers-reduced-motion: reduce){
	.escova-ip .escova-ip-pill{ animation: none !important; }
}

/* ============================================================
 * FLAVOUR GRID — reveal on scroll (cards fade in one by one)
 * The stagger comes from --escova-fv-i (card index in its row) multiplied by
 * --escova-fv-reveal-delay. The JS observer toggles .is-hidden / .is-shown.
 * ============================================================ */

/* hidden ONLY once JS has armed the wrapper — so a JS failure never blanks the grid */
.escova-fv-wrap.has-reveal.is-armed .escova-fv-card{
	opacity: 0;
	transition:
		opacity .62s cubic-bezier(.22,.61,.36,1),
		transform .62s cubic-bezier(.22,.61,.36,1);
	will-change: opacity, transform;
}

/* --- pre-reveal states, one per effect --- */
.escova-fv-wrap.has-reveal.is-armed.is-reveal-up .escova-fv-card{
	transform: translate3d(0, 34px, 0);
}

.escova-fv-wrap.has-reveal.is-armed.is-reveal-fade .escova-fv-card{
	transform: none;
}

.escova-fv-wrap.has-reveal.is-armed.is-reveal-left .escova-fv-card{
	transform: translate3d(-44px, 0, 0);
}

.escova-fv-wrap.has-reveal.is-armed.is-reveal-right .escova-fv-card{
	transform: translate3d(44px, 0, 0);
}

.escova-fv-wrap.has-reveal.is-armed.is-reveal-scale .escova-fv-card{
	transform: scale(.9);
}

/* --- revealed --- */
.escova-fv-wrap.has-reveal .escova-fv-card.is-shown{
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

/* fallback for browsers without JS: never leave the grid invisible */
.escova-fv-wrap.has-reveal.no-js .escova-fv-card{
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce){
	.escova-fv-wrap.has-reveal .escova-fv-card{
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* ============================================================
 * ESCOVA BENTO FEATURES — bento grid of feature cards
 * Light cards on a white section, rounded, with an optional image,
 * corner label chip, big stat, title and description.
 * ============================================================ */

.escova-bn{
	--escova-bn-zoom: 1.04;
	--escova-bn-delay: 90ms;
	width: 100%;
	background: #FFFFFF;
}

.escova-bn-grid{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: 240px;
	gap: 16px;
	width: 100%;
}

/* ---------- card ---------- */
.escova-bn-card{
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #F2F2F2;
	border-radius: 26px;
	text-decoration: none;
	box-sizing: border-box;
	isolation: isolate;
	min-height: 0;
}

.escova-bn-card.span-c2{ grid-column: span 2; }
.escova-bn-card.span-r2{ grid-row: span 2; }

/* ---------- media ---------- */
.escova-bn-media{
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden;
}

.escova-bn-media img{
	display: block;
	width: 100%;
	height: 100%;
	transform: scale(1);
	transition: transform .55s cubic-bezier(.22,.61,.36,1);
	will-change: transform;
}

.escova-bn-media.is-cover img{ object-fit: cover; object-position: center; }
.escova-bn-media.is-contain img{ object-fit: contain; }

.escova-bn-card:hover .escova-bn-media img{
	transform: scale(var(--escova-bn-zoom));
}

/* corner label chip */
.escova-bn-chip{
	position: absolute;
	left: 6%;
	top: 50%;
	transform: translateY(-50%);
	padding: 9px 18px;
	background: #6E7377;
	color: #FFFFFF;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.4px;
	border-radius: 6px;
	white-space: nowrap;
}

/* ---------- body ---------- */
.escova-bn-body{
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px;
	min-height: 0;
}

/* when the card is only a photo, the body floats over it */
.escova-bn-card.is-image-fill .escova-bn-body{
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.62) 100%);
}
.escova-bn-card.is-image-fill .escova-bn-title,
.escova-bn-card.is-image-fill .escova-bn-desc,
.escova-bn-card.is-image-fill .escova-bn-stat{ color: #FFFFFF; }

/* stat beside the copy */
.escova-bn-card.is-split{
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 0;
}
.escova-bn-card.is-split .escova-bn-media{
	order: 2;
	height: 100%;
}
.escova-bn-card.is-split .escova-bn-body{
	order: 1;
	justify-content: center;
}

/* ---------- typography ---------- */
.escova-bn-stat{
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 58px;
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -1.2px;
	color: #111111;
}

.escova-bn-text{
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: auto;
}

.escova-bn-caption{
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-style: italic;
	font-weight: 500;
	color: #444444;
}

.escova-bn-title{
	margin: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.2px;
	color: #111111;
}

.escova-bn-desc{
	margin: 0;
	font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15.5px;
	font-weight: 400;
	line-height: 1.45;
	color: #2B2B2B;
}

/* ---------- reveal on scroll ---------- */
.escova-bn.has-reveal.is-armed .escova-bn-card{
	opacity: 0;
	transform: translate3d(0, 26px, 0);
	transition:
		opacity .6s cubic-bezier(.22,.61,.36,1),
		transform .6s cubic-bezier(.22,.61,.36,1);
	will-change: opacity, transform;
}

.escova-bn.has-reveal .escova-bn-card.is-shown{
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
	.escova-bn-grid{ grid-auto-rows: 220px; }
	.escova-bn-stat{ font-size: 46px; }
	.escova-bn-title{ font-size: 19px; }
}

@media (max-width: 767px){
	.escova-bn-grid{
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
		gap: 14px;
	}
	.escova-bn-card.span-c2{ grid-column: span 1; }
	.escova-bn-card.span-r2{ grid-row: span 1; }
	.escova-bn-card{ border-radius: 18px; min-height: 260px; }
	.escova-bn-body{ padding: 20px; }
	.escova-bn-stat{ font-size: 38px; }
	.escova-bn-title{ font-size: 18px; }
	.escova-bn-desc{ font-size: 14.5px; }
	.escova-bn-card.is-split{ grid-template-columns: 1fr; }
	.escova-bn-card.is-split .escova-bn-media{ order: 1; height: 180px; }
	.escova-bn-card.is-split .escova-bn-body{ order: 2; }
}

@media (prefers-reduced-motion: reduce){
	.escova-bn.has-reveal.is-armed .escova-bn-card{
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.escova-bn-card:hover .escova-bn-media img{ transform: none; }
}

/* ============================================================
 * ESCOVA HERO STAGE — centred hero with ghost word, orbit rings,
 * bobbing product and floating chips.
 * ============================================================ */

.escova-hs{
	--escova-hs-accent: #E8112D;
	--escova-hs-title: 118px;
	--escova-hs-sub: 17px;
	--escova-hs-prod: 360px;
	position: relative;
	display: flex;
	flex-direction: column;   /* copy ABOVE the stage — without this they sit side by side */
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow: hidden;
	background: #0A0A0C;
	min-height: 88vh;
	padding: 90px 24px 60px;
	box-sizing: border-box;
}

/* faint grid lines behind everything */
.escova-hs-lines{
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
	background-size: 90px 90px;
	-webkit-mask-image: radial-gradient(ellipse at 50% 50%, #000, transparent 80%);
	mask-image: radial-gradient(ellipse at 50% 50%, #000, transparent 80%);
}

/* soft red bloom */
.escova-hs::before{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse 70% 55% at 50% 62%, rgba(232,17,45,.28), transparent 65%),
		radial-gradient(ellipse 50% 40% at 50% 20%, rgba(255,255,255,.04), transparent 60%);
}

/* giant outlined word */
.escova-hs-ghost{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
	font-family: "Anton", "Arial Narrow", sans-serif;
	font-size: clamp(180px, 42vw, 640px);
	line-height: 1;
	letter-spacing: -0.02em;
	-webkit-text-stroke: 1px rgba(255,255,255,.05);
	color: transparent;
	user-select: none;
	pointer-events: none;
	white-space: nowrap;
}

.escova-hs-inner{
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* ---------- eyebrow ---------- */
.escova-hs-eyebrow{
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 26px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: #C6C6CE;
}

.escova-hs-eyebrow.has-lines::before,
.escova-hs-eyebrow.has-lines::after{
	content: "";
	width: 36px;
	height: 2px;
	background: var(--escova-hs-accent);
}

/* ---------- title ---------- */
.escova-hs-title{
	margin: 0;
	display: flex;
	flex-direction: column;
	font-family: "Anton", "Arial Narrow", sans-serif;
	font-weight: 400;
	line-height: .95;
	text-transform: uppercase;
}

.escova-hs-line{
	display: block;
	font-size: var(--escova-hs-title);
	letter-spacing: -0.01em;
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.escova-hs-line.is-light{
	background-image: linear-gradient(180deg, #FFFFFF 30%, #8B8B94 100%);
}

.escova-hs-line.is-accent{
	background-image: linear-gradient(180deg, #FF4A5E, var(--escova-hs-accent));
}

.escova-hs-sub{
	margin: 24px auto 0;
	max-width: 560px;
	font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: var(--escova-hs-sub);
	line-height: 1.65;
	color: #9A9AA4;
}

/* ---------- button ---------- */
.escova-hs-cta{ margin-top: 30px; }

.escova-hs-btn{
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 18px 40px;
	background: var(--escova-hs-accent);
	color: #FFFFFF;
	font-family: "Anton", "Arial Narrow", sans-serif;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	/* PILL shape — fully rounded, no corner cut */
	border-radius: 999px;
	clip-path: none;
	border: none;
	line-height: 1;
	transition: background .3s ease, transform .3s ease;
}

.escova-hs-btn:hover{
	background: #B00A20;
	transform: translateY(-2px);
}

.escova-hs-arr{
	display: inline-block;
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	transition: transform .3s ease;
}
.escova-hs-btn:hover .escova-hs-arr{ transform: translateX(4px); }

/* ---------- stage ---------- */
.escova-hs-stage{
	position: relative;
	margin: 44px auto 0;
	width: 100%;
	max-width: var(--escova-hs-stage-w, 460px);
	min-height: var(--escova-hs-prod, 360px);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* a wide lineup photo must never overflow its stage or collide with the copy */
.escova-hs-prod{
	max-width: 100%;
	height: auto;
}

.escova-hs-glow{
	position: absolute;
	inset: -12%;
	background: radial-gradient(circle, rgba(232,17,45,.4), transparent 65%);
	filter: blur(50px);
	z-index: 0;
	pointer-events: none;
}

/* ring sizing/positioning is handled by the .escova-hs-visual scoped rules
   further down, which also carry the spin animation. */

@keyframes escova-hs-orbit{
	to { transform: translate(-50%, -50%) rotate(360deg); }
}

.escova-hs-prod{
	position: relative;
	z-index: 1;
	max-height: var(--escova-hs-prod);
	width: auto;
	object-fit: contain;
	filter: drop-shadow(0 40px 60px rgba(0,0,0,.7));
}

/* gentle bob, only when enabled */
.escova-hs.is-bob .escova-hs-prod{
	animation: escova-hs-bob 5s ease-in-out infinite;
}

@keyframes escova-hs-bob{
	0%,100% { transform: translateY(0) rotate(-1.2deg); }
	50%     { transform: translateY(-16px) rotate(1.2deg); }
}

/* ---------- chips ---------- */
.escova-hs-chip{
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: rgba(20,20,24,.88);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 100px;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	font-family: "Anton", "Arial Narrow", sans-serif;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #FFFFFF;
	white-space: nowrap;
	box-shadow: 0 12px 30px rgba(0,0,0,.5);
	animation: escova-hs-chipfloat 5s ease-in-out infinite;
}

.escova-hs-chip b{ color: var(--escova-hs-accent); font-weight: 400; }

@keyframes escova-hs-chipfloat{
	0%,100% { transform: translateY(0); }
	50%     { transform: translateY(-12px); }
}

.escova-hs-chip.is-top-left{ top: -4%; left: 0%; }
.escova-hs-chip.is-top-right{ top: -4%; right: 0%; animation-delay: .8s; }
.escova-hs-chip.is-middle-right{ top: 40%; right: -12%; animation-delay: 1.6s; }
.escova-hs-chip.is-middle-left{ top: 40%; left: -12%; animation-delay: 1.6s; }
.escova-hs-chip.is-bottom-left{ bottom: 4%; left: -6%; animation-delay: 2.2s; }
.escova-hs-chip.is-bottom-right{ bottom: 4%; right: -6%; animation-delay: 2.2s; }

/* ---------- scroll cue ---------- */
.escova-hs-cue{
	position: absolute;
	left: 50%;
	bottom: 26px;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	font-size: 11px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #9A9AA4;
}

.escova-hs-cue i{
	display: block;
	width: 1px;
	height: 44px;
	background: linear-gradient(180deg, var(--escova-hs-accent), transparent);
	animation: escova-hs-cue 1.8s ease-in-out infinite;
}

@keyframes escova-hs-cue{
	0%   { transform: scaleY(0); transform-origin: top; }
	45%  { transform: scaleY(1); transform-origin: top; }
	55%  { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
	.escova-hs-chip.is-middle-right{ right: -2%; }
	.escova-hs-chip.is-middle-left{ left: -2%; }
	.escova-hs-ring1{ width: 340px; height: 340px; }
	.escova-hs-ring2{ width: 270px; height: 270px; }
}

@media (max-width: 767px){
	.escova-hs{ padding: 70px 20px 50px; min-height: auto; }
	.escova-hs-ghost{ font-size: clamp(120px, 40vw, 240px); }
	.escova-hs-eyebrow{ font-size: 10px; letter-spacing: 2.6px; }
	.escova-hs-cue{ position: static; left: auto; bottom: auto; transform: none; margin-top: 40px; }
	.escova-hs-chip{ font-size: 11px; padding: 8px 14px; }
	.escova-hs-chip.is-top-left{ left: 0; }
	.escova-hs-chip.is-middle-right{ right: 0; }
	.escova-hs-chip.is-middle-left{ left: 0; }
	.escova-hs-chip.is-bottom-left{ left: 0; }
	.escova-hs-chip.is-bottom-right{ right: 0; }
	.escova-hs-ring1{ width: 260px; height: 260px; }
	.escova-hs-ring2{ width: 200px; height: 200px; }
	.escova-hs-btn{ padding: 15px 28px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce){
	.escova-hs .escova-hs-prod,
	.escova-hs .escova-hs-chip,
	.escova-hs .escova-hs-ring,
	.escova-hs .escova-hs-cue i{ animation: none !important; }
}

/* ============================================================
 * HERO — split mode
 * Hero Copy (eyebrow + title + subtitle + button) and Hero Visual
 * (product + rings + chips) as separate widgets, so each can be edited
 * and positioned on its own.
 * ============================================================ */

.escova-hs-copy{
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
}

.escova-hs-copy.is-center{ align-items: center; text-align: center; }
.escova-hs-copy.is-left{ align-items: flex-start; text-align: left; }
.escova-hs-copy.is-right{ align-items: flex-end; text-align: right; }

/* the right-aligned eyebrow lines look wrong when left/right aligned */
.escova-hs-copy.is-left .escova-hs-eyebrow.has-lines::before,
.escova-hs-copy.is-right .escova-hs-eyebrow.has-lines::after{ display: none; }

.escova-hs-visual{
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	overflow: visible;
}

/* the ghost word centers on the visual widget, not the whole page */
.escova-hs-visual .escova-hs-ghost{
	z-index: 0;
}

.escova-hs-visual .escova-hs-stage{
	position: relative;
	z-index: 2;
}

/* a standalone visual keeps a sensible minimum so the rings have room */
.escova-hs-visual .escova-hs-stage{
	min-height: calc(var(--escova-hs-prod, 360px) * 1.15);
}

/* ============================================================
 * HERO VISUAL — orbit rings must actually spin
 * The rings are pseudo-free spans; the animation lives on the span itself.
 * ============================================================ */

.escova-hs-visual{
	--escova-hs-ring: rgba(232,17,45,.5);
	--escova-hs-ring-size: 420px;
	--escova-hs-ring-dur: 26s;
}

.escova-hs-visual .escova-hs-ring{
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--escova-hs-ring-size);
	height: var(--escova-hs-ring-size);
	margin: 0;
	border-radius: 50%;
	border-style: dashed;
	border-width: 1.5px;
	border-color: var(--escova-hs-ring);
	transform: translate(-50%, -50%);
	animation: escova-hs-orbit var(--escova-hs-ring-dur) linear infinite;
	will-change: transform;
	pointer-events: none;
	z-index: 1;
}

.escova-hs-visual .escova-hs-ring2{
	width: calc(var(--escova-hs-ring-size) * .78);
	height: calc(var(--escova-hs-ring-size) * .78);
	border-color: rgba(255,255,255,.14);
	animation-duration: calc(var(--escova-hs-ring-dur) * 1.35);
	animation-direction: reverse;
}

/* ring style variants */
.escova-hs-visual.ring-solid .escova-hs-ring{ border-style: solid; opacity: .55; }
.escova-hs-visual.ring-dotted .escova-hs-ring{ border-style: dotted; border-width: 2.5px; }

/* keep the ring animation running even when the product bobs */
@keyframes escova-hs-orbit{
	from { transform: translate(-50%, -50%) rotate(0deg); }
	to   { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (prefers-reduced-motion: reduce){
	.escova-hs-visual .escova-hs-ring{ animation: none !important; }
}

/* the visual widget must never clip the orbit ring animation */
.escova-hs-visual .escova-hs-stage{
	overflow: visible;
}

/* ============================================================
 * HERO STAGE — combined widget: inner alignment + eyebrow sizing
 * ============================================================ */

.escova-hs-inner{
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
}

.escova-hs-inner.is-center{ align-items: center; text-align: center; }
.escova-hs-inner.is-left{ align-items: flex-start; text-align: left; }
.escova-hs-inner.is-right{ align-items: flex-end; text-align: right; }

.escova-hs-eyebrow{
	font-size: var(--escova-hs-eyebrow, 12px);
}

/* when the widget is left/right aligned the eyebrow side lines look wrong */
.escova-hs-inner.is-left .escova-hs-eyebrow.has-lines::before,
.escova-hs-inner.is-right .escova-hs-eyebrow.has-lines::after{ display: none; }

/* the product stage sits inside the inner column */
.escova-hs .escova-hs-stage{
	position: relative;
	z-index: 2;
}

/* the visual is no longer the outer wrapper, so ring rules must target .escova-hs */
.escova-hs .escova-hs-ring{
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--escova-hs-ring-size, 420px);
	height: var(--escova-hs-ring-size, 420px);
	max-width: none;
	margin: 0;
	border-radius: 50%;
	border-style: dashed;
	border-width: 1.5px;
	border-color: var(--escova-hs-ring, rgba(232,17,45,.5));
	transform: translate(-50%, -50%);
	animation: escova-hs-orbit var(--escova-hs-ring-dur, 26s) linear infinite;
	will-change: transform;
	pointer-events: none;
	z-index: 1;
}

.escova-hs .escova-hs-ring2{
	width: calc(var(--escova-hs-ring-size, 420px) * .78);
	height: calc(var(--escova-hs-ring-size, 420px) * .78);
	border-color: rgba(255,255,255,.14);
	animation-duration: calc(var(--escova-hs-ring-dur, 26s) * 1.35);
	animation-direction: reverse;
}

.escova-hs.ring-solid .escova-hs-ring{ border-style: solid; opacity: .55; }
.escova-hs.ring-dotted .escova-hs-ring{ border-style: dotted; border-width: 2.5px; }

/* ============================================================
 * HERO STAGE — title must never overlap itself
 * The gradient-clipped two-line title needs an explicit line box; without it
 * the background-clip:text + huge font-size lets the lines collide.
 * ============================================================ */

.escova-hs-title{
	display: flex;
	flex-direction: column;
	align-items: inherit;
	gap: 0;
	width: 100%;
}

.escova-hs-line{
	display: block;
	width: 100%;
	line-height: 1.02;
	padding: 0.02em 0;
	/* a gradient-clipped line needs its own paint layer or the descenders of
	   the line above bleed through on some browsers */
	isolation: isolate;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* the accent line sits UNDER the light line, so pull it back if it overlaps */
.escova-hs-line + .escova-hs-line{
	position: relative;
	z-index: 1;
}

/* without the gradient clip (plain colour), no bleed can happen */
.escova-hs-line.is-p1,
.escova-hs-line.is-p2{
	-webkit-text-fill-color: currentColor;
	background-image: none;
}

/* keep the hero title inside its column on every breakpoint */
.escova-hs-title{
	max-width: 100%;
}

.escova-hs-line{
	max-width: 100%;
	overflow-wrap: break-word;
}

@media (max-width: 767px){
	.escova-hs-line{ line-height: 1.06; }
}


/* the section carries every size var; make sure each part reads it */
.escova-hs .escova-hs-prod{ max-height: var(--escova-hs-prod, 380px); }
.escova-hs .escova-hs-stage{ max-width: var(--escova-hs-stage-w, 460px); min-height: var(--escova-hs-prod, 380px); }
.escova-hs .escova-hs-ring{ width: var(--escova-hs-ring-size, 420px); height: var(--escova-hs-ring-size, 420px); }
.escova-hs .escova-hs-title{ font-size: var(--escova-hs-title, 92px); }
.escova-hs .escova-hs-sub{ font-size: var(--escova-hs-sub, 17px); }

/* ============================================================
 * HERO STAGE — hard-centre every block
 * There are duplicate .escova-hs-inner rules in this sheet; the last one drops
 * align-items, so the copy column falls to flex-start and the whole stage
 * (max-width + margin auto) reads as left-shifted. Force centring here.
 * ============================================================ */

.escova-hs > .escova-hs-inner{
	width: 100%;
	max-width: var(--escova-hs-inner-max, 1100px);
	margin-left: auto;
	margin-right: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex: 0 1 auto;
	min-width: 0;
}

.escova-hs > .escova-hs-inner > *{
	max-width: 100%;
}

/* the stage sits under the copy, always centred */
.escova-hs .escova-hs-stage{
	margin-left: auto;
	margin-right: auto;
	flex: 0 0 auto;
}

/* a wide lineup must scale DOWN, never spill to one side */
.escova-hs .escova-hs-stage > .escova-hs-prod{
	max-width: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* ============================================================
 * HERO STAGE — button (pill) + font picker support
 * ============================================================ */

.escova-hs .escova-hs-btn{
	font-size: var(--escova-hs-btn-fs, 15px) !important;
	font-weight: var(--escova-hs-btn-fw, 400) !important;
	letter-spacing: var(--escova-hs-btn-ls, 2px) !important;
	color: var(--escova-hs-btn-c, #FFFFFF) !important;
	background: var(--escova-hs-btn-bg, var(--escova-hs-accent, #E8112D)) !important;
	border-radius: var(--escova-hs-btn-r, 999px) !important;
	clip-path: none !important;
}

/* the font picker classes must win over the base Helvetica rule */
.escova-hs-title.esv-font-anton.esv-font-anton,
.escova-hs-sub.esv-font-anton.esv-font-anton,
.escova-hs-btn.esv-font-anton.esv-font-anton,
.escova-hs-eyebrow.esv-font-anton.esv-font-anton{ font-family: "Anton", "Arial Narrow", sans-serif !important; }

.escova-hs-title.esv-font-manrope.esv-font-manrope,
.escova-hs-sub.esv-font-manrope.esv-font-manrope,
.escova-hs-btn.esv-font-manrope.esv-font-manrope,
.escova-hs-eyebrow.esv-font-manrope.esv-font-manrope{ font-family: "Manrope", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-inter.esv-font-inter,
.escova-hs-sub.esv-font-inter.esv-font-inter,
.escova-hs-btn.esv-font-inter.esv-font-inter,
.escova-hs-eyebrow.esv-font-inter.esv-font-inter{ font-family: "Inter", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-archivo.esv-font-archivo,
.escova-hs-sub.esv-font-archivo.esv-font-archivo,
.escova-hs-btn.esv-font-archivo.esv-font-archivo,
.escova-hs-eyebrow.esv-font-archivo.esv-font-archivo{ font-family: "Archivo", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hs-sub.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hs-btn.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hs-eyebrow.esv-font-bebas-neue.esv-font-bebas-neue{ font-family: "Bebas Neue", "Arial Narrow", sans-serif !important; }

.escova-hs-title.esv-font-oswald.esv-font-oswald,
.escova-hs-sub.esv-font-oswald.esv-font-oswald,
.escova-hs-btn.esv-font-oswald.esv-font-oswald,
.escova-hs-eyebrow.esv-font-oswald.esv-font-oswald{ font-family: "Oswald", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-montserrat.esv-font-montserrat,
.escova-hs-sub.esv-font-montserrat.esv-font-montserrat,
.escova-hs-btn.esv-font-montserrat.esv-font-montserrat,
.escova-hs-eyebrow.esv-font-montserrat.esv-font-montserrat{ font-family: "Montserrat", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-helvetica.esv-font-helvetica,
.escova-hs-sub.esv-font-helvetica.esv-font-helvetica,
.escova-hs-btn.esv-font-helvetica.esv-font-helvetica,
.escova-hs-eyebrow.esv-font-helvetica.esv-font-helvetica{ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; }

/* ============================================================
 * HERO STAGE — typography vars + font picker overrides
 * ============================================================ */

.escova-hs .escova-hs-title{
	font-size: var(--escova-hs-title, 118px) !important;
	font-weight: var(--escova-hs-title-fw, 400) !important;
	letter-spacing: var(--escova-hs-title-ls, 0px) !important;
}
.escova-hs .escova-hs-title .escova-hs-line{
	font-family: inherit;
}

.escova-hs .escova-hs-sub{
	font-size: var(--escova-hs-sub, 17px) !important;
	font-weight: var(--escova-hs-sub-fw, 400) !important;
}

.escova-hs .escova-hs-eyebrow{
	font-weight: var(--escova-hs-eyebrow-fw, 800) !important;
}

/* single title colour, when the user sets one */
.escova-hs .escova-hs-title[style]{ }

/* ---------- font picker: element-level classes ---------- */
/* the picker emits esv-font-<key> on the element itself (the {{WRAPPER}} selector
   would land on the outer wrapper, which the inner rules never read). */
.escova-hs-title.esv-font-anton.esv-font-anton,
.escova-hs-sub.esv-font-anton.esv-font-anton,
.escova-hs-btn.esv-font-anton.esv-font-anton,
.escova-hs-eyebrow.esv-font-anton.esv-font-anton{ font-family: "Anton", "Arial Narrow", Impact, sans-serif !important; }

.escova-hs-title.esv-font-manrope.esv-font-manrope,
.escova-hs-sub.esv-font-manrope.esv-font-manrope,
.escova-hs-btn.esv-font-manrope.esv-font-manrope,
.escova-hs-eyebrow.esv-font-manrope.esv-font-manrope{ font-family: "Manrope", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-inter.esv-font-inter,
.escova-hs-sub.esv-font-inter.esv-font-inter,
.escova-hs-btn.esv-font-inter.esv-font-inter,
.escova-hs-eyebrow.esv-font-inter.esv-font-inter{ font-family: "Inter", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-archivo.esv-font-archivo,
.escova-hs-sub.esv-font-archivo.esv-font-archivo,
.escova-hs-btn.esv-font-archivo.esv-font-archivo,
.escova-hs-eyebrow.esv-font-archivo.esv-font-archivo{ font-family: "Archivo", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hs-sub.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hs-btn.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hs-eyebrow.esv-font-bebas-neue.esv-font-bebas-neue{ font-family: "Bebas Neue", "Arial Narrow", sans-serif !important; }

.escova-hs-title.esv-font-oswald.esv-font-oswald,
.escova-hs-sub.esv-font-oswald.esv-font-oswald,
.escova-hs-btn.esv-font-oswald.esv-font-oswald,
.escova-hs-eyebrow.esv-font-oswald.esv-font-oswald{ font-family: "Oswald", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-montserrat.esv-font-montserrat,
.escova-hs-sub.esv-font-montserrat.esv-font-montserrat,
.escova-hs-btn.esv-font-montserrat.esv-font-montserrat,
.escova-hs-eyebrow.esv-font-montserrat.esv-font-montserrat{ font-family: "Montserrat", "Helvetica Neue", sans-serif !important; }

.escova-hs-title.esv-font-helvetica.esv-font-helvetica,
.escova-hs-sub.esv-font-helvetica.esv-font-helvetica,
.escova-hs-btn.esv-font-helvetica.esv-font-helvetica,
.escova-hs-eyebrow.esv-font-helvetica.esv-font-helvetica{ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; }

/* colour vars */
.escova-hs .escova-hs-sub{ color: var(--escova-hs-sub-c, #C6C6CE) !important; }
.escova-hs .escova-hs-title{ color: var(--escova-hs-title-c, inherit); }

/* button pill — radius/size/weight/colour from controls */
.escova-hs .escova-hs-btn{
	font-size: var(--escova-hs-btn-fs, 15px) !important;
	font-weight: var(--escova-hs-btn-fw, 400) !important;
	letter-spacing: var(--escova-hs-btn-ls, 2px) !important;
	color: var(--escova-hs-btn-c, #FFFFFF) !important;
	background: var(--escova-hs-btn-bg, var(--escova-hs-accent, #E8112D)) !important;
	border-radius: var(--escova-hs-btn-r, 999px) !important;
	clip-path: none !important;
}

/* ============================================================
 * HERO STAGE — title must never collapse
 * Elementor emitted `line-height: 1.02em` (invalid) which dropped the rule entirely,
 * letting the two gradient lines collide. Force a sane line box here.
 * ============================================================ */

.escova-hs .escova-hs-title{
	line-height: var(--escova-hs-title-lh, 0.98) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0;
}

.escova-hs .escova-hs-title .escova-hs-line{
	display: block !important;
	line-height: .92 !important;
	padding-bottom: .06em;
}

/* ============================================================
 * HERO STAGE — orbit rings must actually spin  (final override)
 * A later bare rule `.escova-hs .escova-hs-ring{width;height}` came AFTER the
 * animated rule with EQUAL specificity, so its missing `animation` reset the
 * spin to none. Re-assert everything LAST with extra specificity.
 * ============================================================ */

.escova-hs .escova-hs-stage .escova-hs-ring{
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--escova-hs-ring-size, 420px);
	height: var(--escova-hs-ring-size, 420px);
	max-width: none;
	margin: 0;
	border-radius: 50%;
	border-width: 1.5px;
	border-color: var(--escova-hs-ring, rgba(232,17,45,.5));
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 0;
	animation-name: escova-hs-orbit;
	animation-duration: var(--escova-hs-ring-dur, 26s);
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	will-change: transform;
}

.escova-hs.ring-dashed .escova-hs-stage .escova-hs-ring{ border-style: dashed; }
.escova-hs.ring-solid  .escova-hs-stage .escova-hs-ring{ border-style: solid; opacity: .55; }
.escova-hs.ring-dotted .escova-hs-stage .escova-hs-ring{ border-style: dotted; border-width: 2.5px; }

.escova-hs .escova-hs-stage .escova-hs-ring2{
	width: calc(var(--escova-hs-ring-size, 420px) * .78);
	height: calc(var(--escova-hs-ring-size, 420px) * .78);
	border-color: rgba(255,255,255,.14);
	animation-duration: calc(var(--escova-hs-ring-dur, 26s) * 1.35);
	animation-direction: reverse;
}

@keyframes escova-hs-orbit{
	from { transform: translate(-50%, -50%) rotate(0deg); }
	to   { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (prefers-reduced-motion: reduce){
	.escova-hs .escova-hs-stage .escova-hs-ring{ animation: none !important; }
}

/* ---------- copy block and visual block are separate stacks ---------- */
.escova-hs > .escova-hs-inner{ margin-bottom: 8px; }
.escova-hs > .escova-hs-stage{ margin-top: 52px; }

/* ============================================================
 * HERO — SPLIT MODE
 * .escova-hs-copy-only  = heading / subtitle / button block
 * .escova-hs-visual-only = product image + rings + chips block
 * Each renders inside its own Elementor section, so they stack naturally.
 * ============================================================ */

/* copy block: no forced full height, just breathing room */
.escova-hs.escova-hs-copy-only{
	min-height: 0;
	padding: 90px 24px 40px;
	overflow: visible;
	background: transparent;
}

.escova-hs.escova-hs-copy-only > .escova-hs-inner{
	margin-bottom: 0;
}

/* visual block: image + rings, centred, no background of its own */
.escova-hs.escova-hs-visual-only{
	min-height: 0;
	padding: 20px 24px 90px;
	overflow: visible;
	background: transparent;
}

.escova-hs.escova-hs-visual-only > .escova-hs-stage{
	margin-top: 0;
}

/* when the visual IS the whole section (no copy above), give it top air */
.escova-hs.escova-hs-visual-only > .escova-hs-stage:first-child{
	margin-top: 40px;
}

@media (max-width: 767px){
	.escova-hs.escova-hs-copy-only{ padding: 60px 18px 28px; }
	.escova-hs.escova-hs-visual-only{ padding: 10px 18px 60px; }
}

/* the section background/height come from CSS vars so a widget-level rule can never
   double-apply them to the inner section */
.escova-hs{ background: var(--escova-hs-bg, #0A0A0C); }

.escova-hs.escova-hs-copy-only,
.escova-hs.escova-hs-visual-only{
	min-height: var(--escova-hs-min-h, 0);
	background: var(--escova-hs-bg, transparent);
}

/* a copy-only block should never occupy a full viewport */
.escova-hs.escova-hs-copy-only{ min-height: 0 !important; }

/* the visual block owns the dark stage background */
.escova-hs.escova-hs-visual-only{
	min-height: 0 !important;
	padding: 40px 24px 90px !important;
}

/* make sure the product image always shows */
.escova-hs.escova-hs-visual-only .escova-hs-stage{
	min-height: calc(var(--escova-hs-prod, 380px) * 1.1);
	display: flex;
	align-items: center;
	justify-content: center;
}

.escova-hs.escova-hs-visual-only .escova-hs-prod{
	max-height: var(--escova-hs-prod, 380px);
	width: auto;
	max-width: 100%;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* ---------- transparent background support ---------- */
.escova-hs.escova-hs-visual-only{
	/* the var is set to `transparent` by the Transparent Background toggle */
	background: var(--escova-hs-bg, #0A0A0C) !important;
}

/* also let the copy block go transparent */
.escova-hs.escova-hs-copy-only{
	background: var(--escova-hs-bg, transparent) !important;
}

/* and the base section */
.escova-hs{
	background: var(--escova-hs-bg, #0A0A0C);
}

/* ============================================================
 * FORCE TRANSPARENT — when the toggle is ON, nothing in the hero may paint a panel
 * ============================================================ */
.escova-hs.escova-hs-visual-only[data-transparent="1"],
.escova-hs.escova-hs-copy-only[data-transparent="1"],
.escova-hs.escova-hs-visual-only.is-transparent,
.escova-hs.escova-hs-copy-only.is-transparent{
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
}

/* the section must span the full width so no inset panel is visible */
.escova-hs.escova-hs-visual-only,
.escova-hs.escova-hs-copy-only{
	width: 100%;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* the grid-line overlay must not be clipped into a smaller box */
.escova-hs.escova-hs-visual-only > .escova-hs-lines,
.escova-hs.escova-hs-copy-only > .escova-hs-lines{
	inset: 0;
	width: 100%;
	height: 100%;
}

/* ============================================================
 * TRANSPARENT HERO — kill anything that reads as a panel
 * The grid-line overlay (.escova-hs-lines) uses a radial mask, which in a
 * transparent section looks like a floating lighter box. Fade it out.
 * ============================================================ */

.escova-hs.is-transparent > .escova-hs-lines{
	opacity: .35;
}

.escova-hs.is-transparent .escova-hs-glow{
	/* the red bloom was sized to the old panel; keep it centred on the bottle */
	inset: 6%;
}

/* no borders/shadows may survive on a transparent section */
.escova-hs.is-transparent{
	border: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
}

/* ============================================================
 * HERO — PLAIN BLACK (Apeh's request)
 * No grid-line overlay, no panel edges: just clean black behind the product.
 * ============================================================ */

/* the grid-line overlay is what read as a floating box — remove it entirely */
.escova-hs > .escova-hs-lines,
.escova-hs-lines{
	display: none !important;
	background-image: none !important;
}

/* the ghost word also drew a visible block — hide it */
.escova-hs > .escova-hs-ghost,
.escova-hs-ghost{
	display: none !important;
}

/* no panel, no border, no shadow — one flat black area */
.escova-hs,
.escova-hs.escova-hs-visual-only,
.escova-hs.escova-hs-copy-only{
	border: 0 !important;
	box-shadow: none !important;
}

/* keep a soft red bloom centred on the product, but nothing rectangular */
.escova-hs .escova-hs-glow{
	inset: auto;
	width: 120%;
	height: 120%;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(232,17,45,.34), transparent 62%);
	filter: blur(60px);
}

/* ============================================================
 * ESCOVA SPECIFICATIONS — follows the reference design file
 * ============================================================ */

.escova-specs{
	--escova-spec-accent: #E5262C;
	--escova-spec-bg: #000;
	--escova-spec-panel: #0D0D0F;
	--escova-spec-text: #F7F7F7;
	--escova-spec-muted: #9C9CA3;
	--escova-spec-line: rgba(255,255,255,.08);
	--escova-spec-title: 84px;
	--escova-spec-prod: 340px;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--escova-spec-bg, #000);
	min-height: 620px;
	padding: clamp(56px, 6vw, 110px) 24px;
	color: var(--escova-spec-text);
}

/* soft red bloom behind the product */
.escova-specs::after{
	content: "";
	position: absolute;
	width: 700px;
	height: 700px;
	right: -160px;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 50%;
	z-index: -2;
	background: radial-gradient(circle, rgba(229,38,44,.20) 0%, rgba(229,38,44,.07) 38%, transparent 68%);
	animation: escova-specs-pulse 5s ease-in-out infinite;
	pointer-events: none;
}
.escova-specs.no-glow::after{ display: none; }

/* faint grid lines, faded to the right */
.escova-specs::before{
	content: "";
	position: absolute;
	inset: 0;
	z-index: -3;
	opacity: .28;
	background-image:
		linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
	background-size: 54px 54px;
	-webkit-mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 88%);
	mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 88%);
	pointer-events: none;
}
.escova-specs.no-lines::before{ display: none; }

/* diagonal red slash art */
.escova-specs-slash{
	position: absolute;
	right: 6%;
	top: 9%;
	width: 360px;
	height: 80px;
	transform: rotate(-10deg);
	opacity: .26;
	z-index: -1;
	pointer-events: none;
	background: linear-gradient(90deg, transparent 0 8%, var(--escova-spec-accent) 8% 14%, transparent 14% 22%, var(--escova-spec-accent) 22% 30%, transparent 30% 37%, var(--escova-spec-accent) 37% 44%, transparent 44%);
}

.escova-specs-wrap{
	width: min(1450px, 100%);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
	gap: clamp(32px, 5vw, 90px);
	align-items: center;
}

/* ---------- copy column ---------- */
.escova-specs-eyebrow{
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	color: #FF3138;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .28em;
	text-transform: uppercase;
}
.escova-specs-eyebrow::before{
	content: "";
	width: 42px;
	height: 3px;
	border-radius: 999px;
	background: var(--escova-spec-accent);
	box-shadow: 0 0 22px rgba(229,38,44,.55);
}

.escova-specs-title{
	margin: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: clamp(38px, 6.4vw, var(--escova-spec-title));
	line-height: .92;
	letter-spacing: -.055em;
	font-weight: 900;
	text-transform: uppercase;
}
.escova-specs-title span{
	display: inline-block;
	position: relative;
}
.escova-specs-title span::after{
	content: "";
	position: absolute;
	left: 2%;
	right: -3%;
	bottom: -11px;
	height: 7px;
	background: var(--escova-spec-accent);
	transform: skewX(-22deg);
	box-shadow: 0 0 28px rgba(229,38,44,.4);
}

.escova-specs-sub{
	max-width: 700px;
	margin: 30px 0 34px;
	color: #B9B9BF;
	font-size: clamp(14px, 1.3vw, 17px);
	line-height: 1.72;
}

/* ---------- spec cards ---------- */
.escova-specs-grid{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.escova-specs-card{
	position: relative;
	overflow: hidden;
	min-height: 132px;
	display: grid;
	grid-template-columns: 58px 1fr;
	align-items: center;
	gap: 16px;
	padding: 20px;
	border: 1px solid var(--escova-spec-line);
	border-radius: 22px;
	background: linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.008)), linear-gradient(180deg, #141416, var(--escova-spec-panel));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 18px 45px rgba(0,0,0,.35);
	/* VISIBLE by default — JS only hides them once it has armed the reveal */
	opacity: 1;
	transform: none;
	transition: transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s ease, border-color .3s ease, box-shadow .3s ease;
}
.escova-specs-grid.is-armed .escova-specs-card{ opacity: 0; transform: translateY(22px); }
.escova-specs-grid.is-armed .escova-specs-card.is-in{ opacity: 1; transform: translateY(0); }

.escova-specs-card::before{
	content: "";
	position: absolute;
	left: 0;
	top: 18%;
	bottom: 18%;
	width: 4px;
	border-radius: 0 999px 999px 0;
	background: var(--escova-spec-accent);
	box-shadow: 0 0 20px rgba(229,38,44,.55);
}
.escova-specs-card::after{
	content: "";
	position: absolute;
	width: 160px;
	height: 160px;
	right: -100px;
	top: -100px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(229,38,44,.16), transparent 70%);
	transition: transform .35s ease;
}
.escova-specs-card:hover{
	transform: translateY(-7px);
	border-color: rgba(229,38,44,.58);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 24px 60px rgba(0,0,0,.46), 0 0 0 1px rgba(229,38,44,.08);
}
.escova-specs-card:hover::after{ transform: scale(1.35); }

.escova-specs-icon{
	width: var(--escova-spec-tile, 64px);
	height: var(--escova-spec-tile, 64px);
	flex: 0 0 auto;
	border-radius: var(--escova-spec-tile-r, 18px);
	display: grid;
	place-items: center;
	color: #fff;
	background: linear-gradient(145deg, rgba(229,38,44,.22), rgba(229,38,44,.03)), #0A0A0B;
	border: 1px solid rgba(229,38,44,.5);
	box-shadow: inset 0 0 22px rgba(229,38,44,.08), 0 0 28px rgba(229,38,44,.12);
}
.escova-specs-icon i{
	width: auto;
	height: auto;
	font-size: var(--escova-spec-icon, 26px);
	line-height: 1;
	color: var(--escova-spec-icon-c, #fff);
}

/* icons from the Elementor library: respect whatever kind they are
   (stroke icons vs filled icons) — do NOT force fill:none, it blanks
   solid icons and brand glyphs. */
.escova-specs-icon svg{
	width: var(--escova-spec-icon, 26px);
	height: var(--escova-spec-icon, 26px);
	max-width: var(--escova-spec-icon, 26px);
	max-height: var(--escova-spec-icon, 26px);
	fill: currentColor;
	color: var(--escova-spec-icon-c, #fff);
	display: block;
}

/* Elementor marks stroke-style icon sets with .e-fas / no special class; a
   stroke-drawn set (Feather, eicons-line) needs fill cleared and stroke painted. */
.escova-specs-icon svg[fill="none"],
.escova-specs-icon svg[stroke],
.escova-specs-icon .e-font-icon-svg{
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Font-icon libraries (Font Awesome, eicons) render as an <i> with a ::before */
.escova-specs-icon .e-font-icon,
.escova-specs-icon i[class*="eicon"],
.escova-specs-icon i[class*="fa"]{
	display: inline-block;
	font-size: 24px;
	width: auto;
	height: auto;
	color: #fff;
}
/* default tick when no icon is chosen */
.escova-specs-tick{
	display: block;
	width: 18px;
	height: 11px;
	border-left: 2.6px solid #fff;
	border-bottom: 2.6px solid #fff;
	transform: rotate(-45deg) translate(1px, -2px);
}

.escova-specs-body h3{
	margin: 0 0 6px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 13px;
	line-height: 1.15;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 900;
	color: #fff;
}
.escova-specs-body p{
	margin: 0;
	color: var(--escova-spec-muted);
	font-size: 14px;
	line-height: 1.5;
}

/* ---------- trust badges ---------- */
.escova-specs-trust{
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 26px;
	color: #9B9BA1;
	font-size: 11px;
	letter-spacing: .09em;
	text-transform: uppercase;
}
.escova-specs-trust-item{ display: inline-flex; align-items: center; gap: 9px; }
.escova-specs-trust-item i{
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--escova-spec-accent);
	box-shadow: 0 0 13px rgba(229,38,44,.85);
	display: block;
}

/* ---------- product stage ---------- */
.escova-specs-stage{
	position: relative;
	min-height: 560px;
	display: grid;
	place-items: center;
}

.escova-specs-stage::before{
	content: "";
	position: absolute;
	width: 340px;
	height: 340px;
	border: 1px solid rgba(229,38,44,.22);
	border-radius: 50%;
	box-shadow: 0 0 0 34px rgba(229,38,44,.025), 0 0 0 68px rgba(229,38,44,.012), inset 0 0 90px rgba(229,38,44,.07);
	animation: escova-specs-spin 22s linear infinite;
}
.escova-specs.no-ring .escova-specs-stage::before{ display: none; }

.escova-specs-stage::after{
	content: "";
	position: absolute;
	bottom: 70px;
	width: 240px;
	height: 42px;
	border-radius: 50%;
	background: rgba(229,38,44,.20);
	filter: blur(26px);
	animation: escova-specs-shadow 3.8s ease-in-out infinite;
}
.escova-specs.no-glow .escova-specs-stage::after{ display: none; }

.escova-specs-badge{
	position: absolute;
	z-index: 3;
	top: 10%;
	right: 0;
	padding: 11px 16px;
	border: 1px solid rgba(229,38,44,.36);
	background: rgba(8,8,8,.72);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}
.escova-specs-badge::before{
	content: "●";
	color: var(--escova-spec-accent);
	margin-right: 8px;
}

.escova-specs-prod{
	position: relative;
	z-index: 2;
	width: min(var(--escova-spec-prod), 82%);
	height: auto;
	display: block;
	filter: drop-shadow(0 36px 34px rgba(0,0,0,.8)) drop-shadow(0 0 32px rgba(229,38,44,.18));
	animation: escova-specs-float 4.4s ease-in-out infinite;
}
.escova-specs-prod-empty{
	display: block;
	width: 1px;
	height: var(--escova-spec-prod);
}

.escova-specs-vcopy{
	position: absolute;
	right: 0;
	bottom: 14%;
	z-index: 3;
	color: var(--escova-spec-accent);
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .28em;
	text-transform: uppercase;
	opacity: .8;
}

@keyframes escova-specs-float{
	0%,100%{ transform: translateY(0) rotate(-1deg); }
	50%{ transform: translateY(-16px) rotate(1deg); }
}
@keyframes escova-specs-pulse{
	0%,100%{ opacity: .75; transform: translateY(-50%) scale(.98); }
	50%{ opacity: 1; transform: translateY(-50%) scale(1.06); }
}
@keyframes escova-specs-spin{ to{ transform: rotate(360deg); } }
@keyframes escova-specs-shadow{
	0%,100%{ transform: scale(.88); opacity: .55; }
	50%{ transform: scale(1.08); opacity: .88; }
}

@media (prefers-reduced-motion: reduce){
	.escova-specs *,
	.escova-specs *::before,
	.escova-specs *::after{ animation: none !important; transition: none !important; }
	.escova-specs-card{ opacity: 1; transform: none; }
}

@media (max-width: 1024px){
	.escova-specs-wrap{ grid-template-columns: 1fr; }
	.escova-specs-stage{ min-height: 480px; order: 2; }
	.escova-specs-badge{ right: 8%; }
	.escova-specs-vcopy{ right: 4%; }
}

@media (max-width: 767px){
	.escova-specs{ padding: 56px 16px 66px; }
	.escova-specs-title{ font-size: clamp(34px, 12vw, 60px); }
	.escova-specs-title span::after{ height: 5px; bottom: -8px; }
	.escova-specs-grid{ grid-template-columns: 1fr; }
	.escova-specs-card{ min-height: 112px; padding: 18px; grid-template-columns: 50px 1fr; gap: 14px; border-radius: 18px; }
	.escova-specs-icon{ width: 48px; height: 48px; border-radius: 14px; }
	.escova-specs-icon i, .escova-specs-icon svg{ width: 21px; height: 21px; }
	.escova-specs-stage{ min-height: 420px; }
	.escova-specs-stage::before{ width: 260px; height: 260px; }
	.escova-specs-badge{ top: 4%; right: 0; }
	.escova-specs-vcopy{ display: none; }
	.escova-specs-slash{ width: 220px; height: 54px; right: 2%; }
}

/* ============================================================
 * SPECIFICATIONS — fixes after first visual check
 * ============================================================ */

/* 1) the image was BLURRY because the source was a 300px thumbnail */
.escova-specs-prod{
	image-rendering: -webkit-optimize-contrast;
}

/* 2) the tick mark was too big / mis-aligned — make it a clean small check */
.escova-specs-tick{
	display: block;
	width: 0.66em;
	height: 0.38em;
	border-left: 0.14em solid var(--escova-spec-icon-c, #ffffff);
	border-bottom: 0.14em solid var(--escova-spec-icon-c, #ffffff);
	font-size: var(--escova-spec-icon, 30px);
	transform: rotate(-45deg) translate(0.05em, -0.06em);
	box-sizing: border-box;
}

/* 3) the red bloom was washing the whole right side pink — tone it down a lot */
.escova-specs::after{
	background: radial-gradient(circle, rgba(229,38,44,.11) 0%, rgba(229,38,44,.04) 38%, transparent 62%);
	opacity: .85;
}

/* 4) the section needs a solid dark base so it never reads as pink/white */
.escova-specs{
	background-color: var(--escova-spec-bg, #000);
}

/* 5) the slash art was too bold and sat over the product area */
.escova-specs-slash{
	opacity: .16;
	right: 4%;
	top: 7%;
	width: 300px;
	height: 66px;
}

/* 6) badge must never overlap the product */
.escova-specs-badge{
	top: 8%;
	right: 4%;
}

/* 7) the product column needs real height so the bottle is not tiny */
.escova-specs-stage{
	min-height: 520px;
}

/* 8) vertical copy overlapped the bottle */
.escova-specs-vcopy{
	right: -6px;
	bottom: 12%;
	font-size: 11px;
	letter-spacing: .24em;
	opacity: .65;
}

/* 9) the outer card */
.escova-specs-card{
	border-radius: 18px;
}

/* ============================================================
 * ESCOVA PRODUCT STAGE — full-height bottle showcase
 * ============================================================ */

.escova-ps{
	--escova-ps-accent: #E5262C;
	--escova-ps-bg: #000;
	--escova-ps-h: 88vh;
	--escova-ps-prod: 340px;
	--escova-ps-ring: 620px;
	--escova-ps-spin: 26s;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--escova-ps-bg, #000);
	min-height: var(--escova-ps-h, 88vh);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 24px;
}

/* soft red bloom */
.escova-ps::after{
	content: "";
	position: absolute;
	width: 76%;
	max-width: 900px;
	aspect-ratio: 1;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	z-index: -2;
	background: radial-gradient(circle, rgba(229,38,44,.16) 0%, rgba(229,38,44,.06) 38%, transparent 66%);
	animation: escova-ps-pulse 5s ease-in-out infinite;
	pointer-events: none;
}
.escova-ps.no-glow::after{ display: none; }

.escova-ps-stage{
	position: relative;
	width: 100%;
	max-width: min(1200px, 100%);
	min-height: calc(var(--escova-ps-ring) * .92);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ---------- concentric rings ---------- */
.escova-ps-ring{
	position: absolute;
	top: 50%;
	left: 50%;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	animation: escova-ps-spin var(--escova-ps-spin, 26s) linear infinite;
	will-change: transform;
}
.escova-ps-ring.is-r1{
	width: var(--escova-ps-ring);
	height: var(--escova-ps-ring);
	border: 1px solid rgba(229,38,44,.28);
	box-shadow: 0 0 0 34px rgba(229,38,44,.02), inset 0 0 90px rgba(229,38,44,.05);
}
.escova-ps-ring.is-r2{
	width: calc(var(--escova-ps-ring) * .72);
	height: calc(var(--escova-ps-ring) * .72);
	border: 1px solid rgba(229,38,44,.18);
	animation-direction: reverse;
	animation-duration: calc(var(--escova-ps-spin) * 1.5);
}
.escova-ps-ring.is-r3{
	width: calc(var(--escova-ps-ring) * 1.16);
	height: calc(var(--escova-ps-ring) * 1.16);
	border: 1px solid rgba(229,38,44,.10);
	animation-duration: calc(var(--escova-ps-spin) * 1.9);
}

/* ring style variants come through a class on <section> */
.escova-ps.ring-dashed .escova-ps-ring{ border-style: dashed; }
.escova-ps.ring-dotted .escova-ps-ring{ border-style: dotted; border-width: 2px; }

/* ---------- product ---------- */
.escova-ps-prod{
	position: relative;
	z-index: 2;
	width: min(var(--escova-ps-prod), 78%);
	height: auto;
	max-height: 78vh;
	object-fit: contain;
	display: block;
	filter: drop-shadow(0 40px 40px rgba(0,0,0,.85)) drop-shadow(0 0 36px rgba(229,38,44,.20));
}
.escova-ps.is-float .escova-ps-prod{
	animation: escova-ps-float 4.6s ease-in-out infinite;
}

/* ---------- badge ---------- */
.escova-ps-badge{
	position: absolute;
	z-index: 3;
	right: 2%;
	top: 26%;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 20px;
	border: 1px solid rgba(229,38,44,.36);
	background: rgba(8,8,8,.72);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-radius: 999px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}
.escova-ps-badge.has-dot::before{
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--escova-ps-accent);
	box-shadow: 0 0 14px rgba(229,38,44,.9);
	flex: 0 0 auto;
}
.escova-ps[style*="--escova-ps-badge-pos:left"] .escova-ps-badge{ right: auto; left: 2%; }
.escova-ps[style*="--escova-ps-badge-pos:top"] .escova-ps-badge{ right: auto; left: 50%; top: 2%; transform: translateX(-50%); }

/* ---------- vertical copy ---------- */
.escova-ps-vcopy{
	position: absolute;
	z-index: 3;
	right: 0;
	bottom: 6%;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	color: var(--escova-ps-accent);
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .28em;
	text-transform: uppercase;
	opacity: .85;
}

/* ---------- slash marks, top-right ---------- */
.escova-ps-slash{
	position: absolute;
	right: 8%;
	top: 6%;
	z-index: 1;
	display: flex;
	gap: 14px;
	transform: rotate(-10deg);
	pointer-events: none;
	opacity: .5;
}
.escova-ps-slash i{
	display: block;
	width: 26px;
	height: 74px;
	background: var(--escova-ps-accent);
	filter: blur(.2px);
}
.escova-ps.no-slash .escova-ps-slash{ display: none; }

@keyframes escova-ps-spin{ to{ transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes escova-ps-float{
	0%,100%{ transform: translateY(0) rotate(-1deg); }
	50%{ transform: translateY(-18px) rotate(1deg); }
}
@keyframes escova-ps-pulse{
	0%,100%{ opacity: .8; transform: translate(-50%, -50%) scale(.98); }
	50%{ opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
}

@media (prefers-reduced-motion: reduce){
	.escova-ps *,
	.escova-ps *::before,
	.escova-ps *::after{ animation: none !important; }
}

@media (max-width: 1024px){
	.escova-ps-badge{ top: 8%; right: 4%; }
	.escova-ps-vcopy{ right: 0; bottom: 3%; }
}

@media (max-width: 767px){
	.escova-ps{ padding: 48px 16px; }
	.escova-ps-stage{ min-height: calc(var(--escova-ps-ring) * 1.05); }
	.escova-ps-badge{ top: 2%; right: 0; padding: 10px 15px; font-size: 10px; letter-spacing: .14em; }
	.escova-ps-vcopy{ display: none; }
	.escova-ps-slash{ right: 4%; top: 3%; gap: 9px; }
	.escova-ps-slash i{ width: 16px; height: 44px; }
}

/* ============================================================
 * PRODUCT STAGE — visibility pass
 * ============================================================ */

.escova-ps{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100%;
	flex-direction: column;
}

.escova-ps-stage{
	margin: 0 auto;
	width: 100%;
	max-width: min(1200px, 100%);
	min-height: calc(var(--escova-ps-ring, 620px) * 1.02);
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: visible !important;
}

/* rings: bring the opacity up so they actually read on black */
.escova-ps-ring.is-r1{
	border-color: rgba(229,38,44,.42) !important;
	box-shadow:
		0 0 0 38px rgba(229,38,44,.028),
		0 0 0 76px rgba(229,38,44,.014),
		inset 0 0 120px rgba(229,38,44,.07) !important;
}
.escova-ps-ring.is-r2{ border-color: rgba(229,38,44,.26) !important; }
.escova-ps-ring.is-r3{ border-color: rgba(229,38,44,.16) !important; }

/* the bottle must be visible and centred */
.escova-ps .escova-ps-prod{
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	margin: 0 auto;
	width: auto;
	max-width: min(var(--escova-ps-prod, 340px), 76vw);
	max-height: 64vh;
	height: auto;
	object-fit: contain;
	position: relative;
	z-index: 2;
}

/* badge + vcopy must sit above everything */
.escova-ps-badge{ z-index: 4 !important; }
.escova-ps-vcopy{ z-index: 4 !important; }

/* Elementor's container around a widget can add its own max-width — make sure
   this widget's own width is not collapsed */
.elementor-widget-escova_product_stage,
.elementor-widget-escova_product_stage > .elementor-widget-container{
	width: 100%;
}

/* ============================================================
 * SPECS + PRODUCT STAGE — transparent by default
 * Apeh wants the section background to be the page's own black, with no
 * separate panel showing. Both widgets must not paint anything.
 * ============================================================ */

.escova-specs,
.escova-ps{
	background: var(--escova-spec-bg, transparent);
	background-color: var(--escova-spec-bg, transparent);
}

.escova-ps{
	background: var(--escova-ps-bg, transparent) !important;
	background-color: var(--escova-ps-bg, transparent) !important;
}

/* the Elementor wrapper around each widget must also stay clear */
.elementor-widget-escova_specifications,
.elementor-widget-escova_product_stage,
.elementor-widget-escova_specifications > .elementor-widget-container,
.elementor-widget-escova_product_stage > .elementor-widget-container{
	background: transparent !important;
}

/* the visible "panel edge" was the grid-line overlay + the big glow clipping —
   keep the glow round and inset so no rectangle edge shows */
.escova-specs::after{
	width: 620px;
	height: 620px;
	right: -120px;
}

/* ============================================================
 * ESCOVA HOME HERO
 * ============================================================ */

.escova-hh{
	--escova-hh-accent: #E8112D;
	--escova-hh-bg: #0A0A0C;
	--escova-hh-title: 92px;
	--escova-hh-spin: 30s;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--escova-hh-bg, #0A0A0C);
	color: #fff;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
}

/* faint grid */
.escova-hh-grid{
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 90px 90px;
	-webkit-mask-image: radial-gradient(ellipse at 70% 45%, #000, transparent 75%);
	mask-image: radial-gradient(ellipse at 70% 45%, #000, transparent 75%);
}
.escova-hh.no-grid .escova-hh-grid{ display: none; }

/* red glow, right side */
.escova-hh-glow{
	position: absolute;
	top: 0;
	right: 0;
	width: 55%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	background: radial-gradient(ellipse at center, rgba(232,17,45,.25), transparent 70%);
	filter: blur(40px);
}
.escova-hh.no-glow .escova-hh-glow{ display: none; }

.escova-hh-wrap{
	position: relative;
	z-index: 2;
	max-width: 1200px;
	margin: 0 auto;
	padding: 110px 24px 80px;
	display: grid;
	grid-template-columns: 1.25fr .85fr;
	gap: 50px;
	align-items: center;
}

/* ---------- copy ---------- */
.escova-hh-kick{
	display: block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--escova-hh-accent);
	margin-bottom: 18px;
}

.escova-hh-title{
	margin: 0;
	font-size: clamp(38px, 8vw, var(--escova-hh-title));
	font-weight: 800;
	line-height: .95;
	letter-spacing: -.02em;
	text-transform: uppercase;
}
.escova-hh-rd{ color: var(--escova-hh-accent); }

.escova-hh-sub{
	max-width: 520px;
	margin: 26px 0 14px;
	color: rgba(255,255,255,.62);
	font-size: 17px;
	line-height: 1.6;
}

.escova-hh-proof{
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	margin: 6px 0 30px;
}
.escova-hh-proof span{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 800;
	font-size: 12.5px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.62);
}
.escova-hh-proof svg{
	width: 14px;
	height: 14px;
	color: var(--escova-hh-accent);
	flex: 0 0 auto;
}

.escova-hh-cta{ display: flex; gap: 14px; flex-wrap: wrap; }

.escova-hh-btn{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 15px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #fff;
	background: var(--escova-hh-accent);
	padding: 20px 48px;
	border: 2px solid var(--escova-hh-accent);
	border-radius: 100px;
	text-decoration: none;
	transition: background .25s, transform .25s, border-color .25s;
}
.escova-hh-btn:hover{ background: #B00A20; border-color: #B00A20; transform: translateY(-2px); }
.escova-hh-arr{ display: inline-flex; width: 18px; height: 18px; transition: transform .25s; }
.escova-hh-arr svg{ width: 18px; height: 18px; }
.escova-hh-btn:hover .escova-hh-arr{ transform: translateX(4px); }

.escova-hh-btn.ghost{
	background: transparent;
	border-color: rgba(255,255,255,.35);
	padding: 20px 40px;
}
.escova-hh-btn.ghost:hover{ border-color: var(--escova-hh-accent); background: transparent; }

/* ---------- stage ---------- */
.escova-hh-stage{
	position: relative;
	min-height: 520px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.escova-hh-ring{
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	animation: escova-hh-orbit var(--escova-hh-spin, 30s) linear infinite;
	will-change: transform;
}
.escova-hh-ring.r1{
	width: min(470px, 84%);
	aspect-ratio: 1;
	border: 1.5px dashed rgba(232,17,45,.42);
}
.escova-hh-ring.r2{
	width: min(560px, 96%);
	aspect-ratio: 1;
	border: 1.5px solid rgba(255,255,255,.12);
	animation-duration: calc(var(--escova-hh-spin, 30s) * 1.35);
	animation-direction: reverse;
}

.escova-hh-imgs{
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
}
.escova-hh-p{
	width: 45%;
	max-width: 260px;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 36px 50px rgba(0,0,0,.6));
	animation: escova-hh-bob 6s ease-in-out infinite;
}
.escova-hh-p.p1{ margin-right: -34px; }
.escova-hh-p.p2{ width: 36%; max-width: 210px; animation-delay: 1s; }

/* ---------- chips ---------- */
.escova-hh-chip{
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #151518;
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 100px;
	padding: 11px 18px;
	font-weight: 800;
	font-size: 11.5px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
	box-shadow: 0 14px 30px rgba(0,0,0,.4);
}
.escova-hh-chip b{ color: var(--escova-hh-accent); }

.escova-hh-chip.is-tl{ top: 8%; left: 0; }
.escova-hh-chip.is-tr{ top: 8%; right: 0; }
.escova-hh-chip.is-ml{ top: 42%; left: -2%; }
.escova-hh-chip.is-mr{ top: 36%; right: -2%; }
.escova-hh-chip.is-bl{ bottom: 10%; left: 2%; }
.escova-hh-chip.is-br{ bottom: 10%; right: 2%; }

/* ---------- stats bar ---------- */
.escova-hh-stats{
	position: relative;
	z-index: 2;
	border-top: 1px solid rgba(255,255,255,.1);
	background: #0F0F12;
}
.escova-hh-stats-in{
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.escova-hh-stat{
	padding: 30px 20px;
	text-align: center;
}
.escova-hh-stat + .escova-hh-stat{ border-left: 1px solid rgba(255,255,255,.1); }
.escova-hh-num{
	display: block;
	font-weight: 800;
	font-size: clamp(32px, 4.4vw, 54px);
	line-height: 1;
	letter-spacing: -.02em;
	color: #fff;
}
.escova-hh-num i{ font-style: normal; color: var(--escova-hh-accent); }
.escova-hh-lab{
	display: block;
	margin-top: 6px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: rgba(255,255,255,.45);
}

@keyframes escova-hh-orbit{ to{ transform: rotate(360deg); } }
@keyframes escova-hh-bob{
	0%,100%{ transform: translateY(0); }
	50%{ transform: translateY(-14px); }
}

@media (prefers-reduced-motion: reduce){
	.escova-hh *, .escova-hh *::before, .escova-hh *::after{ animation: none !important; transition: none !important; }
}

@media (max-width: 1024px){
	.escova-hh-wrap{ grid-template-columns: 1fr; text-align: center; padding-top: 80px; }
	.escova-hh-sub{ margin-left: auto; margin-right: auto; }
	.escova-hh-proof{ justify-content: center; }
	.escova-hh-cta{ justify-content: center; }
	.escova-hh-stage{ min-height: 440px; order: -1; }
	.escova-hh-stats-in{ grid-template-columns: repeat(2, 1fr); }
	.escova-hh-stat:nth-child(3){ border-left: none; }
	.escova-hh-stat:nth-child(2) ~ .escova-hh-stat{ border-top: 1px solid rgba(255,255,255,.1); }
}

@media (max-width: 767px){
	.escova-hh-wrap{ padding: 56px 16px 56px; gap: 36px; }
	.escova-hh-stage{ min-height: 340px; }
	.escova-hh-btn{ padding: 16px 32px; font-size: 13px; width: 100%; justify-content: center; }
	.escova-hh-btn.ghost{ padding: 16px 28px; }
	.escova-hh-cta{ width: 100%; }
	.escova-hh-chip{ font-size: 10px; padding: 9px 14px; letter-spacing: 1.1px; }
	.escova-hh-chip.is-tl{ top: 2%; left: 0; }
	.escova-hh-chip.is-mr{ top: 40%; right: 0; }
	.escova-hh-chip.is-bl{ bottom: 2%; left: 0; }
	.escova-hh-p.p1{ width: 52%; max-width: 190px; }
	.escova-hh-p.p2{ width: 42%; max-width: 155px; }
	.escova-hh-stats-in{ grid-template-columns: repeat(2, 1fr); }
	.escova-hh-stat{ padding: 22px 12px; }
}

/* ============================================================
 * ESCOVA URGENCY BAR
 * ============================================================ */
.escova-ur{
	--escova-ur-bg: #E8112D;
	--escova-ur-pad: 18px;
	--escova-ur-fs: 15px;
	position: relative;
	background: var(--escova-ur-bg, #E8112D);
	overflow: hidden;
}
.escova-ur-in{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 26px;
	flex-wrap: wrap;
	padding: var(--escova-ur-pad, 18px) 24px;
	max-width: 1200px;
	margin: 0 auto;
}
.escova-ur-msg{
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: var(--escova-ur-fs, 15px);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #fff;
}
.escova-ur-live{
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 12px rgba(255,255,255,.9);
	animation: escova-ur-pulse 1.4s infinite;
	flex: 0 0 auto;
}
@keyframes escova-ur-pulse{
	0%,100%{ opacity: 1; }
	50%{ opacity: .35; }
}
.escova-ur-cd{ display: flex; gap: 10px; }
.escova-ur-box{
	background: rgba(0,0,0,.35);
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 10px;
	padding: 8px 14px;
	text-align: center;
	min-width: 64px;
}
.escova-ur-box b{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 22px;
	line-height: 1;
	color: #fff;
}
.escova-ur-box em{
	font-style: normal;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.85);
}
.escova-ur-btn{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 13.5px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #fff;
	background: rgba(0,0,0,.55);
	border-radius: 100px;
	padding: 14px 30px;
	text-decoration: none;
	transition: background .25s, transform .25s;
}
.escova-ur-btn:hover{ background: #000; transform: translateY(-2px); }
.escova-ur-btn i{ display: inline-flex; width: 17px; height: 17px; transition: transform .25s; }
.escova-ur-btn i svg{ width: 17px; height: 17px; }
.escova-ur-btn:hover i{ transform: translateX(4px); }

/* ============================================================
 * ESCOVA MARQUEE BAR
 * ============================================================ */
.escova-mb{
	--escova-mb-bg: #151518;
	--escova-mb-accent: #E8112D;
	--escova-mb-fs: 18px;
	--escova-mb-pad: 16px;
	--escova-mb-speed: 24s;
	position: relative;
	background: var(--escova-mb-bg, #151518);
	overflow: hidden;
	padding: var(--escova-mb-pad, 16px) 0;
	border-top: 1px solid rgba(255,255,255,.1);
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.escova-mb-track{
	display: flex;
	width: max-content;
	animation: escova-mb-scroll var(--escova-mb-speed, 24s) linear infinite;
}
.escova-mb.is-right .escova-mb-track{ animation-direction: reverse; }
.escova-mb-group{
	display: flex;
	align-items: center;
	gap: 40px;
	padding-right: 40px;
	flex: 0 0 auto;
}
.escova-mb-item{
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: var(--escova-mb-fs, 18px);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}
.escova-mb-sep{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--escova-mb-accent, #E8112D);
	font-size: var(--escova-mb-fs, 18px);
	line-height: 1;
	flex: 0 0 auto;
}
.escova-mb-sep svg{ width: calc(var(--escova-mb-fs, 18px) * .95); height: calc(var(--escova-mb-fs, 18px) * .95); }
.escova-mb:hover .escova-mb-track{ animation-play-state: paused; }

@keyframes escova-mb-scroll{ to{ transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce){
	.escova-mb-track, .escova-ur-live{ animation: none !important; }
}

@media (max-width: 767px){
	.escova-ur-in{ gap: 16px; padding: 14px 16px; }
	.escova-ur-msg{ font-size: 11px; letter-spacing: 1.4px; text-align: center; }
	.escova-ur-box{ min-width: 52px; padding: 6px 10px; }
	.escova-ur-box b{ font-size: 18px; }
	.escova-ur-btn{ padding: 12px 22px; font-size: 12px; }
	.escova-ur-cd{ gap: 6px; }
	.escova-mb{ --escova-mb-fs: 14px; }
	.escova-mb-group{ gap: 24px; padding-right: 24px; }
}

/* ============================================================
 * ESCOVA SECTION HEAD
 * ============================================================ */
.escova-sh{
	--escova-sh-accent: #E8112D;
	--escova-sh-bg: transparent;
	--escova-sh-title: 78px;
	--escova-sh-mb: 56px;
	background: var(--escova-sh-bg, transparent);
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
	margin-bottom: var(--escova-sh-mb, 56px);
}
.escova-sh.is-center{ flex-direction: column; align-items: center; text-align: center; }
.escova-sh.is-left{ flex-direction: column; align-items: flex-start; text-align: left; }
.escova-sh-kick{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--escova-sh-accent, #E8112D);
	margin-bottom: 14px;
}
.escova-sh-title{
	margin: 0;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: clamp(26px, 5.4vw, var(--escova-sh-title, 78px));
	line-height: .95;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: #fff;
}
.escova-hp-rd{ color: var(--escova-sh-accent, #E8112D); }
.escova-sh-side{
	max-width: 380px;
	margin: 0;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 15px;
	line-height: 1.6;
}

/* ============================================================
 * ESCOVA WHY / PROOF
 * ============================================================ */
.escova-why{
	--escova-why-accent: #E8112D;
	--escova-why-bg: transparent;
	--escova-why-title: 70px;
	--escova-why-img: 460px;
	position: relative;
	background: var(--escova-why-bg, transparent);
	padding: 60px 0;
}
.escova-why-wrap{
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 90px;
	align-items: center;
}
.escova-why.is-img-right .escova-why-vis{ order: 2; }
.escova-why.is-img-right .escova-why-copy{ order: 1; }

.escova-why-vis{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: var(--escova-why-img, 460px);
}
.escova-why-glow{
	position: absolute;
	inset: 0;
	background: radial-gradient(circle, rgba(232,17,45,.3), transparent 65%);
	filter: blur(60px);
	pointer-events: none;
}
.escova-why-vis img{
	position: relative;
	z-index: 2;
	max-height: var(--escova-why-img, 460px);
	width: auto;
	max-width: 100%;
	object-fit: contain;
	filter: drop-shadow(0 40px 60px rgba(0,0,0,.6));
	animation: escova-why-bob 6s ease-in-out infinite;
}
@keyframes escova-why-bob{
	0%,100%{ transform: translateY(0); }
	50%{ transform: translateY(-14px); }
}

.escova-why-kick{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--escova-why-accent, #E8112D);
	margin-bottom: 14px;
}
.escova-why-title{
	margin: 0 0 24px;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: clamp(26px, 5vw, var(--escova-why-title, 70px));
	line-height: .96;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: #fff;
}
.escova-why-lead{
	margin: 0 0 28px;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 16.5px;
	line-height: 1.65;
}
.escova-why-row{
	display: flex;
	gap: 14px;
	padding: 22px 0;
	border-top: 1px solid rgba(255,255,255,.1);
	align-items: flex-start;
}
.escova-why-row:last-child{ border-bottom: 1px solid rgba(255,255,255,.1); }
.escova-why-n{
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 30px;
	color: var(--escova-why-accent, #E8112D);
	line-height: 1;
	min-width: 52px;
	flex: 0 0 auto;
}
.escova-why-tx b{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 17px;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: #fff;
}
.escova-why-tx p{
	margin: 4px 0 0;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 14px;
	line-height: 1.6;
}

@media (prefers-reduced-motion: reduce){
	.escova-why-vis img{ animation: none !important; }
}

@media (max-width: 1024px){
	.escova-why-wrap{ grid-template-columns: 1fr; gap: 46px; }
	.escova-why.is-img-right .escova-why-vis{ order: 0; }
	.escova-why.is-img-right .escova-why-copy{ order: 1; }
	.escova-sh{ flex-direction: column; align-items: flex-start; }
	.escova-sh.is-center{ align-items: center; }
}

@media (max-width: 767px){
	.escova-why{ padding: 40px 0; }
	.escova-why-wrap{ padding: 0 16px; gap: 32px; }
	.escova-why-n{ font-size: 24px; min-width: 40px; }
	.escova-why-tx b{ font-size: 15px; }
	.escova-sh-side{ max-width: 100%; }
}

/* ============================================================
 * ESCOVA BROWSE CARDS
 * ============================================================ */
.escova-br{
	--escova-br-bg: transparent;
	--escova-br-accent: #E8112D;
	--escova-br-h: 340px;
	--escova-br-cols: 3;
	--escova-br-r: 22px;
	position: relative;
	background: var(--escova-br-bg, transparent);
	padding: 30px 24px 60px;
}
.escova-br-grid{
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(var(--escova-br-cols, 3), minmax(0, 1fr));
	gap: 24px;
}
.escova-br-card{
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: var(--escova-br-h, 340px);
	border-radius: var(--escova-br-r, 22px);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.1);
	text-decoration: none;
}
.escova-br-card img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}
.escova-br-card:hover img{ transform: scale(1.08); }
.escova-br-shade{
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 35%, rgba(10,10,12,.88) 100%);
}
.escova-br-bx{
	position: relative;
	z-index: 2;
	padding: 30px;
	width: 100%;
	display: block;
}
.escova-br-t{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 27px;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: #fff;
}
.escova-br-d{
	display: block;
	margin-top: 6px;
	color: rgba(255,255,255,.75);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 14px;
	line-height: 1.5;
}
.escova-br-cta{
	margin-top: 18px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--escova-br-accent, #E8112D);
	color: #fff;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	padding: 10px 20px;
	border-radius: 100px;
	transition: background .25s;
}
.escova-br-card:hover .escova-br-cta{ background: #B00A20; }
.escova-br-cta .ar{ transition: transform .3s; }
.escova-br-card:hover .escova-br-cta .ar{ transform: translateX(5px); }

/* ============================================================
 * ESCOVA TESTIMONIALS
 * ============================================================ */
.escova-ts{
	--escova-ts-bg: transparent;
	--escova-ts-card: #151518;
	--escova-ts-accent: #E8112D;
	--escova-ts-r: 20px;
	background: var(--escova-ts-bg, transparent);
	padding: 60px 24px;
	border-top: 1px solid rgba(255,255,255,.1);
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.escova-ts-grid{
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.escova-ts-card{
	background: var(--escova-ts-card, #151518);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: var(--escova-ts-r, 20px);
	padding: 34px;
	margin: 0;
}
.escova-ts-stars{
	display: block;
	color: var(--escova-ts-accent, #E8112D);
	letter-spacing: 3px;
	font-size: 15px;
	margin-bottom: 16px;
}
.escova-ts-quote{
	margin: 0;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 15px;
	font-style: italic;
	line-height: 1.65;
}
.escova-ts-who{
	margin-top: 20px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.escova-ts-av,
.escova-ts-av-img{
	width: 42px;
	height: 42px;
	border-radius: 50%;
	flex: 0 0 auto;
	object-fit: cover;
}
.escova-ts-av{
	background: var(--escova-ts-accent, #E8112D);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 15px;
	color: #fff;
}
.escova-ts-meta b{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 14px;
	text-transform: uppercase;
	color: #fff;
}
.escova-ts-meta span{
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 12px;
	color: rgba(255,255,255,.45);
}

@media (max-width: 1024px){
	.escova-br-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
	.escova-ts-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 767px){
	.escova-br{ padding: 20px 16px 40px; }
	.escova-br-grid{ grid-template-columns: 1fr; }
	.escova-br-t{ font-size: 22px; }
	.escova-ts{ padding: 40px 16px; }
	.escova-ts-card{ padding: 24px; }
}

/* ============================================================
 * ESCOVA BANDS
 * ============================================================ */
.escova-bd{
	--escova-bd-bg: transparent;
	--escova-bd-accent: #E8112D;
	--escova-bd-pad: 50px;
	background: var(--escova-bd-bg, transparent);
	padding: 40px 24px;
}
.escova-bd-grid{
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.escova-bd-card{
	position: relative;
	border-radius: 22px;
	padding: var(--escova-bd-pad, 50px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border: 1px solid rgba(255,255,255,.1);
	min-height: 260px;
}
.escova-bd-card.is-dark{ background: #151518; }
.escova-bd-card.is-red{
	background: linear-gradient(135deg, #F00020, var(--escova-bd-accent, #E8112D) 55%, #B80023);
	border-color: transparent;
}
.escova-bd-emb{
	position: absolute;
	right: -22px;
	bottom: -34px;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: clamp(70px, 11vw, 140px);
	line-height: 1;
	white-space: nowrap;
	user-select: none;
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(255,255,255,.08);
	pointer-events: none;
}
.escova-bd-card.is-red .escova-bd-emb{ -webkit-text-stroke: 1.5px rgba(0,0,0,.15); }

.escova-bd-kx{ position: relative; z-index: 2; }
.escova-bd-kick{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--escova-bd-accent, #E8112D);
	margin-bottom: 14px;
}
.escova-bd-card.is-red .escova-bd-kick{ color: #fff; }

.escova-bd-title{
	margin: 0;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: clamp(24px, 3.4vw, 42px);
	line-height: .98;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: #fff;
}
.escova-bd-desc{
	margin: 14px 0 26px;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 15px;
	line-height: 1.6;
}
.escova-bd-card.is-red .escova-bd-desc{ color: rgba(255,255,255,.92); }

.escova-bd-btn{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: flex-start;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 13.5px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #fff;
	background: var(--escova-bd-accent, #E8112D);
	padding: 16px 32px;
	border-radius: 100px;
	text-decoration: none;
	transition: background .25s, transform .25s;
}
.escova-bd-btn:hover{ background: #B00A20; transform: translateY(-2px); }
.escova-bd-card.is-red .escova-bd-btn{ background: #0A0A0C; }
.escova-bd-card.is-red .escova-bd-btn:hover{ background: #000; }
.escova-bd-btn i{ display: inline-flex; width: 17px; height: 17px; transition: transform .25s; }
.escova-bd-btn i svg{ width: 17px; height: 17px; }
.escova-bd-btn:hover i{ transform: translateX(4px); }

/* ============================================================
 * ESCOVA FINAL CTA
 * ============================================================ */
.escova-fc{
	--escova-fc-bg: transparent;
	--escova-fc-accent: #E8112D;
	--escova-fc-title: 96px;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--escova-fc-bg, transparent);
	padding: 80px 24px;
	text-align: center;
}
.escova-fc-glow{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 70%;
	max-width: 900px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(232,17,45,.20), transparent 66%);
	filter: blur(60px);
	z-index: -1;
	pointer-events: none;
}
.escova-fc-in{ position: relative; max-width: 1000px; margin: 0 auto; }
.escova-fc-kick{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--escova-fc-accent, #E8112D);
	margin-bottom: 16px;
}
.escova-fc-title{
	margin: 0;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: clamp(32px, 7vw, var(--escova-fc-title, 96px));
	line-height: .95;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: #fff;
}
.escova-fc-desc{
	max-width: 540px;
	margin: 26px auto 38px;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 17px;
	line-height: 1.6;
}
.escova-fc-btn{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 15px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #fff;
	background: var(--escova-fc-accent, #E8112D);
	padding: 20px 48px;
	border-radius: 100px;
	text-decoration: none;
	transition: background .25s, transform .25s;
}
.escova-fc-btn:hover{ background: #B00A20; transform: translateY(-2px); }
.escova-fc-btn i{ display: inline-flex; width: 18px; height: 18px; transition: transform .25s; }
.escova-fc-btn i svg{ width: 18px; height: 18px; }
.escova-fc-btn:hover i{ transform: translateX(4px); }

/* ============================================================
 * ESCOVA NEWSLETTER
 * ============================================================ */
.escova-nl{
	--escova-nl-bg: transparent;
	--escova-nl-accent: #E8112D;
	--escova-nl-title: 58px;
	background: var(--escova-nl-bg, transparent);
	padding: 80px 24px;
	border-top: 1px solid rgba(255,255,255,.1);
}
.escova-nl-in{ max-width: 800px; margin: 0 auto; text-align: center; }
.escova-nl-kick{
	display: block;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--escova-nl-accent, #E8112D);
}
.escova-nl-title{
	margin: 14px 0 0;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: clamp(24px, 5vw, var(--escova-nl-title, 58px));
	line-height: .98;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: #fff;
}
.escova-nl-desc{
	margin: 10px 0 0;
	color: rgba(255,255,255,.62);
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 15px;
}
.escova-nl-form{
	margin-top: 32px;
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}
.escova-nl-form input{
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 15px;
	padding: 15px 22px;
	border-radius: 100px;
	border: 1.5px solid rgba(255,255,255,.12);
	background: #0A0A0C;
	color: #fff;
	min-width: 320px;
	outline: none;
	transition: border-color .25s;
}
.escova-nl-form input:focus{ border-color: var(--escova-nl-accent, #E8112D); }
.escova-nl-btn{
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-weight: 800;
	font-size: 13.5px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #fff;
	background: var(--escova-nl-accent, #E8112D);
	border: none;
	border-radius: 100px;
	padding: 16px 36px;
	cursor: pointer;
	transition: background .25s, transform .25s;
}
.escova-nl-btn:hover{ background: #B00A20; transform: translateY(-2px); }
.escova-nl-note{
	display: block;
	margin-top: 14px;
	color: #5ed86a;
	font-family: "Manrope", "Helvetica Neue", sans-serif;
	font-size: 14px;
	font-weight: 700;
	min-height: 20px;
}

@media (max-width: 1024px){
	.escova-bd-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 767px){
	.escova-bd{ padding: 30px 16px; }
	.escova-bd-card{ padding: 32px 24px; min-height: 0; }
	.escova-bd-btn, .escova-fc-btn{ padding: 15px 28px; font-size: 13px; }
	.escova-fc{ padding: 60px 16px; }
	.escova-nl{ padding: 60px 16px; }
	.escova-nl-form input{ min-width: 100%; }
	.escova-nl-btn{ width: 100%; padding: 16px 24px; }
}

/* ============================================================
 * GENERIC FONT PICKER — works on EVERY ESCOVA widget
 * Ant (etc.) could not be applied because the old rules only listed
 * .escova-hs-* selectors. These cover all section/widget titles.
 * ============================================================ */

.escova-hh-title.esv-font-anton.esv-font-anton,
.escova-hh-sub.esv-font-anton.esv-font-anton,
.escova-hh-kick.esv-font-anton.esv-font-anton,
.escova-sh-title.esv-font-anton.esv-font-anton,
.escova-sh-kick.esv-font-anton.esv-font-anton,
.escova-sh-side.esv-font-anton.esv-font-anton,
.escova-why-title.esv-font-anton.esv-font-anton,
.escova-why-kick.esv-font-anton.esv-font-anton,
.escova-why-lead.esv-font-anton.esv-font-anton,
.escova-why-tx b.esv-font-anton.esv-font-anton,
.escova-br-t.esv-font-anton.esv-font-anton,
.escova-br-d.esv-font-anton.esv-font-anton,
.escova-br-cta.esv-font-anton.esv-font-anton,
.escova-ts-quote.esv-font-anton.esv-font-anton,
.escova-ts-meta b.esv-font-anton.esv-font-anton,
.escova-bd-title.esv-font-anton.esv-font-anton,
.escova-bd-kick.esv-font-anton.esv-font-anton,
.escova-bd-desc.esv-font-anton.esv-font-anton,
.escova-bd-btn.esv-font-anton.esv-font-anton,
.escova-fc-title.esv-font-anton.esv-font-anton,
.escova-fc-kick.esv-font-anton.esv-font-anton,
.escova-fc-desc.esv-font-anton.esv-font-anton,
.escova-fc-btn.esv-font-anton.esv-font-anton,
.escova-nl-title.esv-font-anton.esv-font-anton,
.escova-nl-kick.esv-font-anton.esv-font-anton,
.escova-nl-desc.esv-font-anton.esv-font-anton,
.escova-nl-btn.esv-font-anton.esv-font-anton,
.escova-ur-msg.esv-font-anton.esv-font-anton,
.escova-ur-box b.esv-font-anton.esv-font-anton,
.escova-ur-btn.esv-font-anton.esv-font-anton,
.escova-mb-item.esv-font-anton.esv-font-anton,
.escova-mb-sep.esv-font-anton.esv-font-anton{ font-family: "Anton", "Arial Narrow", sans-serif !important !important; }

.escova-hh-title.esv-font-manrope.esv-font-manrope,
.escova-hh-sub.esv-font-manrope.esv-font-manrope,
.escova-hh-kick.esv-font-manrope.esv-font-manrope,
.escova-sh-title.esv-font-manrope.esv-font-manrope,
.escova-sh-kick.esv-font-manrope.esv-font-manrope,
.escova-sh-side.esv-font-manrope.esv-font-manrope,
.escova-why-title.esv-font-manrope.esv-font-manrope,
.escova-why-kick.esv-font-manrope.esv-font-manrope,
.escova-why-lead.esv-font-manrope.esv-font-manrope,
.escova-why-tx b.esv-font-manrope.esv-font-manrope,
.escova-br-t.esv-font-manrope.esv-font-manrope,
.escova-br-d.esv-font-manrope.esv-font-manrope,
.escova-br-cta.esv-font-manrope.esv-font-manrope,
.escova-ts-quote.esv-font-manrope.esv-font-manrope,
.escova-ts-meta b.esv-font-manrope.esv-font-manrope,
.escova-bd-title.esv-font-manrope.esv-font-manrope,
.escova-bd-kick.esv-font-manrope.esv-font-manrope,
.escova-bd-desc.esv-font-manrope.esv-font-manrope,
.escova-bd-btn.esv-font-manrope.esv-font-manrope,
.escova-fc-title.esv-font-manrope.esv-font-manrope,
.escova-fc-kick.esv-font-manrope.esv-font-manrope,
.escova-fc-desc.esv-font-manrope.esv-font-manrope,
.escova-fc-btn.esv-font-manrope.esv-font-manrope,
.escova-nl-title.esv-font-manrope.esv-font-manrope,
.escova-nl-kick.esv-font-manrope.esv-font-manrope,
.escova-nl-desc.esv-font-manrope.esv-font-manrope,
.escova-nl-btn.esv-font-manrope.esv-font-manrope,
.escova-ur-msg.esv-font-manrope.esv-font-manrope,
.escova-ur-box b.esv-font-manrope.esv-font-manrope,
.escova-ur-btn.esv-font-manrope.esv-font-manrope,
.escova-mb-item.esv-font-manrope.esv-font-manrope,
.escova-mb-sep.esv-font-manrope.esv-font-manrope{ font-family: "Manrope", "Helvetica Neue", sans-serif !important !important; }

.escova-hh-title.esv-font-inter.esv-font-inter,
.escova-hh-sub.esv-font-inter.esv-font-inter,
.escova-hh-kick.esv-font-inter.esv-font-inter,
.escova-sh-title.esv-font-inter.esv-font-inter,
.escova-sh-kick.esv-font-inter.esv-font-inter,
.escova-sh-side.esv-font-inter.esv-font-inter,
.escova-why-title.esv-font-inter.esv-font-inter,
.escova-why-kick.esv-font-inter.esv-font-inter,
.escova-why-lead.esv-font-inter.esv-font-inter,
.escova-why-tx b.esv-font-inter.esv-font-inter,
.escova-br-t.esv-font-inter.esv-font-inter,
.escova-br-d.esv-font-inter.esv-font-inter,
.escova-br-cta.esv-font-inter.esv-font-inter,
.escova-ts-quote.esv-font-inter.esv-font-inter,
.escova-ts-meta b.esv-font-inter.esv-font-inter,
.escova-bd-title.esv-font-inter.esv-font-inter,
.escova-bd-kick.esv-font-inter.esv-font-inter,
.escova-bd-desc.esv-font-inter.esv-font-inter,
.escova-bd-btn.esv-font-inter.esv-font-inter,
.escova-fc-title.esv-font-inter.esv-font-inter,
.escova-fc-kick.esv-font-inter.esv-font-inter,
.escova-fc-desc.esv-font-inter.esv-font-inter,
.escova-fc-btn.esv-font-inter.esv-font-inter,
.escova-nl-title.esv-font-inter.esv-font-inter,
.escova-nl-kick.esv-font-inter.esv-font-inter,
.escova-nl-desc.esv-font-inter.esv-font-inter,
.escova-nl-btn.esv-font-inter.esv-font-inter,
.escova-ur-msg.esv-font-inter.esv-font-inter,
.escova-ur-box b.esv-font-inter.esv-font-inter,
.escova-ur-btn.esv-font-inter.esv-font-inter,
.escova-mb-item.esv-font-inter.esv-font-inter,
.escova-mb-sep.esv-font-inter.esv-font-inter{ font-family: "Inter", "Helvetica Neue", sans-serif !important !important; }

.escova-hh-title.esv-font-archivo.esv-font-archivo,
.escova-hh-sub.esv-font-archivo.esv-font-archivo,
.escova-hh-kick.esv-font-archivo.esv-font-archivo,
.escova-sh-title.esv-font-archivo.esv-font-archivo,
.escova-sh-kick.esv-font-archivo.esv-font-archivo,
.escova-sh-side.esv-font-archivo.esv-font-archivo,
.escova-why-title.esv-font-archivo.esv-font-archivo,
.escova-why-kick.esv-font-archivo.esv-font-archivo,
.escova-why-lead.esv-font-archivo.esv-font-archivo,
.escova-why-tx b.esv-font-archivo.esv-font-archivo,
.escova-br-t.esv-font-archivo.esv-font-archivo,
.escova-br-d.esv-font-archivo.esv-font-archivo,
.escova-br-cta.esv-font-archivo.esv-font-archivo,
.escova-ts-quote.esv-font-archivo.esv-font-archivo,
.escova-ts-meta b.esv-font-archivo.esv-font-archivo,
.escova-bd-title.esv-font-archivo.esv-font-archivo,
.escova-bd-kick.esv-font-archivo.esv-font-archivo,
.escova-bd-desc.esv-font-archivo.esv-font-archivo,
.escova-bd-btn.esv-font-archivo.esv-font-archivo,
.escova-fc-title.esv-font-archivo.esv-font-archivo,
.escova-fc-kick.esv-font-archivo.esv-font-archivo,
.escova-fc-desc.esv-font-archivo.esv-font-archivo,
.escova-fc-btn.esv-font-archivo.esv-font-archivo,
.escova-nl-title.esv-font-archivo.esv-font-archivo,
.escova-nl-kick.esv-font-archivo.esv-font-archivo,
.escova-nl-desc.esv-font-archivo.esv-font-archivo,
.escova-nl-btn.esv-font-archivo.esv-font-archivo,
.escova-ur-msg.esv-font-archivo.esv-font-archivo,
.escova-ur-box b.esv-font-archivo.esv-font-archivo,
.escova-ur-btn.esv-font-archivo.esv-font-archivo,
.escova-mb-item.esv-font-archivo.esv-font-archivo,
.escova-mb-sep.esv-font-archivo.esv-font-archivo{ font-family: "Archivo", "Helvetica Neue", sans-serif !important !important; }

.escova-hh-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hh-sub.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-hh-kick.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-sh-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-sh-kick.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-sh-side.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-why-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-why-kick.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-why-lead.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-why-tx b.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-br-t.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-br-d.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-br-cta.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-ts-quote.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-ts-meta b.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-bd-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-bd-kick.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-bd-desc.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-bd-btn.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-fc-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-fc-kick.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-fc-desc.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-fc-btn.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-nl-title.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-nl-kick.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-nl-desc.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-nl-btn.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-ur-msg.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-ur-box b.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-ur-btn.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-mb-item.esv-font-bebas-neue.esv-font-bebas-neue,
.escova-mb-sep.esv-font-bebas-neue.esv-font-bebas-neue{ font-family: "Bebas Neue", "Arial Narrow", sans-serif !important !important; }

.escova-hh-title.esv-font-oswald.esv-font-oswald,
.escova-hh-sub.esv-font-oswald.esv-font-oswald,
.escova-hh-kick.esv-font-oswald.esv-font-oswald,
.escova-sh-title.esv-font-oswald.esv-font-oswald,
.escova-sh-kick.esv-font-oswald.esv-font-oswald,
.escova-sh-side.esv-font-oswald.esv-font-oswald,
.escova-why-title.esv-font-oswald.esv-font-oswald,
.escova-why-kick.esv-font-oswald.esv-font-oswald,
.escova-why-lead.esv-font-oswald.esv-font-oswald,
.escova-why-tx b.esv-font-oswald.esv-font-oswald,
.escova-br-t.esv-font-oswald.esv-font-oswald,
.escova-br-d.esv-font-oswald.esv-font-oswald,
.escova-br-cta.esv-font-oswald.esv-font-oswald,
.escova-ts-quote.esv-font-oswald.esv-font-oswald,
.escova-ts-meta b.esv-font-oswald.esv-font-oswald,
.escova-bd-title.esv-font-oswald.esv-font-oswald,
.escova-bd-kick.esv-font-oswald.esv-font-oswald,
.escova-bd-desc.esv-font-oswald.esv-font-oswald,
.escova-bd-btn.esv-font-oswald.esv-font-oswald,
.escova-fc-title.esv-font-oswald.esv-font-oswald,
.escova-fc-kick.esv-font-oswald.esv-font-oswald,
.escova-fc-desc.esv-font-oswald.esv-font-oswald,
.escova-fc-btn.esv-font-oswald.esv-font-oswald,
.escova-nl-title.esv-font-oswald.esv-font-oswald,
.escova-nl-kick.esv-font-oswald.esv-font-oswald,
.escova-nl-desc.esv-font-oswald.esv-font-oswald,
.escova-nl-btn.esv-font-oswald.esv-font-oswald,
.escova-ur-msg.esv-font-oswald.esv-font-oswald,
.escova-ur-box b.esv-font-oswald.esv-font-oswald,
.escova-ur-btn.esv-font-oswald.esv-font-oswald,
.escova-mb-item.esv-font-oswald.esv-font-oswald,
.escova-mb-sep.esv-font-oswald.esv-font-oswald{ font-family: "Oswald", "Helvetica Neue", sans-serif !important !important; }

.escova-hh-title.esv-font-montserrat.esv-font-montserrat,
.escova-hh-sub.esv-font-montserrat.esv-font-montserrat,
.escova-hh-kick.esv-font-montserrat.esv-font-montserrat,
.escova-sh-title.esv-font-montserrat.esv-font-montserrat,
.escova-sh-kick.esv-font-montserrat.esv-font-montserrat,
.escova-sh-side.esv-font-montserrat.esv-font-montserrat,
.escova-why-title.esv-font-montserrat.esv-font-montserrat,
.escova-why-kick.esv-font-montserrat.esv-font-montserrat,
.escova-why-lead.esv-font-montserrat.esv-font-montserrat,
.escova-why-tx b.esv-font-montserrat.esv-font-montserrat,
.escova-br-t.esv-font-montserrat.esv-font-montserrat,
.escova-br-d.esv-font-montserrat.esv-font-montserrat,
.escova-br-cta.esv-font-montserrat.esv-font-montserrat,
.escova-ts-quote.esv-font-montserrat.esv-font-montserrat,
.escova-ts-meta b.esv-font-montserrat.esv-font-montserrat,
.escova-bd-title.esv-font-montserrat.esv-font-montserrat,
.escova-bd-kick.esv-font-montserrat.esv-font-montserrat,
.escova-bd-desc.esv-font-montserrat.esv-font-montserrat,
.escova-bd-btn.esv-font-montserrat.esv-font-montserrat,
.escova-fc-title.esv-font-montserrat.esv-font-montserrat,
.escova-fc-kick.esv-font-montserrat.esv-font-montserrat,
.escova-fc-desc.esv-font-montserrat.esv-font-montserrat,
.escova-fc-btn.esv-font-montserrat.esv-font-montserrat,
.escova-nl-title.esv-font-montserrat.esv-font-montserrat,
.escova-nl-kick.esv-font-montserrat.esv-font-montserrat,
.escova-nl-desc.esv-font-montserrat.esv-font-montserrat,
.escova-nl-btn.esv-font-montserrat.esv-font-montserrat,
.escova-ur-msg.esv-font-montserrat.esv-font-montserrat,
.escova-ur-box b.esv-font-montserrat.esv-font-montserrat,
.escova-ur-btn.esv-font-montserrat.esv-font-montserrat,
.escova-mb-item.esv-font-montserrat.esv-font-montserrat,
.escova-mb-sep.esv-font-montserrat.esv-font-montserrat{ font-family: "Montserrat", "Helvetica Neue", sans-serif !important !important; }

.escova-hh-title.esv-font-helvetica.esv-font-helvetica,
.escova-hh-sub.esv-font-helvetica.esv-font-helvetica,
.escova-hh-kick.esv-font-helvetica.esv-font-helvetica,
.escova-sh-title.esv-font-helvetica.esv-font-helvetica,
.escova-sh-kick.esv-font-helvetica.esv-font-helvetica,
.escova-sh-side.esv-font-helvetica.esv-font-helvetica,
.escova-why-title.esv-font-helvetica.esv-font-helvetica,
.escova-why-kick.esv-font-helvetica.esv-font-helvetica,
.escova-why-lead.esv-font-helvetica.esv-font-helvetica,
.escova-why-tx b.esv-font-helvetica.esv-font-helvetica,
.escova-br-t.esv-font-helvetica.esv-font-helvetica,
.escova-br-d.esv-font-helvetica.esv-font-helvetica,
.escova-br-cta.esv-font-helvetica.esv-font-helvetica,
.escova-ts-quote.esv-font-helvetica.esv-font-helvetica,
.escova-ts-meta b.esv-font-helvetica.esv-font-helvetica,
.escova-bd-title.esv-font-helvetica.esv-font-helvetica,
.escova-bd-kick.esv-font-helvetica.esv-font-helvetica,
.escova-bd-desc.esv-font-helvetica.esv-font-helvetica,
.escova-bd-btn.esv-font-helvetica.esv-font-helvetica,
.escova-fc-title.esv-font-helvetica.esv-font-helvetica,
.escova-fc-kick.esv-font-helvetica.esv-font-helvetica,
.escova-fc-desc.esv-font-helvetica.esv-font-helvetica,
.escova-fc-btn.esv-font-helvetica.esv-font-helvetica,
.escova-nl-title.esv-font-helvetica.esv-font-helvetica,
.escova-nl-kick.esv-font-helvetica.esv-font-helvetica,
.escova-nl-desc.esv-font-helvetica.esv-font-helvetica,
.escova-nl-btn.esv-font-helvetica.esv-font-helvetica,
.escova-ur-msg.esv-font-helvetica.esv-font-helvetica,
.escova-ur-box b.esv-font-helvetica.esv-font-helvetica,
.escova-ur-btn.esv-font-helvetica.esv-font-helvetica,
.escova-mb-item.esv-font-helvetica.esv-font-helvetica,
.escova-mb-sep.esv-font-helvetica.esv-font-helvetica{ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important !important; }

/* ============================================================
 * FONT PICKER — per-family tuning
 * Anton has a single weight (400): forcing 800 makes the browser synthesise a
 * fake bold, which looks muddy and cramped. Each family now gets the weight and
 * tracking it was designed for, so the choice is clearly visible.
 * ============================================================ */

/* --- ANTON: condensed display — weight 400, a touch of tracking --- */
.esv-font-anton.esv-font-anton{
	font-weight: 400 !important;
	letter-spacing: .005em !important;
	line-height: .98 !important;
}

/* --- BEBAS NEUE: condensed, single weight --- */
.esv-font-bebas-neue.esv-font-bebas-neue{
	font-weight: 400 !important;
	letter-spacing: .02em !important;
	line-height: 1.02 !important;
}

/* --- OSWALD: variable, works well at 600-700 --- */
.esv-font-oswald.esv-font-oswald{
	font-weight: 600 !important;
	letter-spacing: .01em !important;
}

/* --- MANROPE / INTER / ARCHIVO / MONTSERRAT: geometric, love 800 --- */
.esv-font-manrope.esv-font-manrope,
.esv-font-inter.esv-font-inter,
.esv-font-archivo.esv-font-archivo,
.esv-font-montserrat.esv-font-montserrat{ letter-spacing: -.01em !important; }

/* --- HELVETICA: classic --- */
.esv-font-helvetica.esv-font-helvetica{
	font-weight: 700 !important;
	letter-spacing: -.01em !important;
}

/* Anton needs a bit more size to read as a display face */
.escova-hh-title.esv-font-anton.esv-font-anton{
	font-size: clamp(44px, 9.5vw, calc(var(--escova-hh-title, 92px) * 1.18)) !important;
}
.escova-sh-title.esv-font-anton.esv-font-anton,
.escova-why-title.esv-font-anton.esv-font-anton{
	font-size: clamp(30px, 6.4vw, calc(var(--escova-sh-title, 78px) * 1.15)) !important;
}
.escova-fc-title.esv-font-anton.esv-font-anton,
.escova-nl-title.esv-font-anton.esv-font-anton{
	font-size: clamp(34px, 8vw, calc(var(--escova-fc-title, 96px) * 1.1)) !important;
}

/* ESCOVA UNIVERSAL FONT APPLICATION — any .esv-font-<key> element takes that family */
.esv-font-manrope.esv-font-manrope{ font-family: "Manrope", "Helvetica Neue", sans-serif !important; }
.esv-font-helvetica.esv-font-helvetica{ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; }
.esv-font-anton.esv-font-anton{ font-family: "Anton", "Arial Narrow", sans-serif !important; }
.esv-font-inter.esv-font-inter{ font-family: "Inter", "Helvetica Neue", sans-serif !important; }
.esv-font-archivo.esv-font-archivo{ font-family: "Archivo", "Helvetica Neue", sans-serif !important; }
.esv-font-bebas-neue.esv-font-bebas-neue{ font-family: "Bebas Neue", "Arial Narrow", sans-serif !important; }
.esv-font-oswald.esv-font-oswald{ font-family: "Oswald", "Helvetica Neue", sans-serif !important; }
.esv-font-montserrat.esv-font-montserrat{ font-family: "Montserrat", "Helvetica Neue", sans-serif !important; }
.esv-font-poppins.esv-font-poppins{ font-family: "Poppins", "Helvetica Neue", sans-serif !important; }
.esv-font-roboto.esv-font-roboto{ font-family: "Roboto", "Helvetica Neue", sans-serif !important; }
.esv-font-lato.esv-font-lato{ font-family: "Lato", "Helvetica Neue", sans-serif !important; }
.esv-font-raleway.esv-font-raleway{ font-family: "Raleway", "Helvetica Neue", sans-serif !important; }
.esv-font-rubik.esv-font-rubik{ font-family: "Rubik", "Helvetica Neue", sans-serif !important; }
.esv-font-jost.esv-font-jost{ font-family: "Jost", "Helvetica Neue", sans-serif !important; }
.esv-font-figtree.esv-font-figtree{ font-family: "Figtree", "Helvetica Neue", sans-serif !important; }
.esv-font-work-sans.esv-font-work-sans{ font-family: "Work Sans", "Helvetica Neue", sans-serif !important; }
.esv-font-dm-sans.esv-font-dm-sans{ font-family: "DM Sans", "Helvetica Neue", sans-serif !important; }
.esv-font-nunito-sans.esv-font-nunito-sans{ font-family: "Nunito Sans", "Helvetica Neue", sans-serif !important; }
.esv-font-playfair-display.esv-font-playfair-display{ font-family: "Playfair Display", Georgia, serif !important; }
.esv-font-barlow.esv-font-barlow{ font-family: "Barlow", "Helvetica Neue", sans-serif !important; }
.esv-font-karla.esv-font-karla{ font-family: "Karla", "Helvetica Neue", sans-serif !important; }
.esv-font-ubuntu.esv-font-ubuntu{ font-family: "Ubuntu", "Helvetica Neue", sans-serif !important; }
.esv-font-pt-sans.esv-font-pt-sans{ font-family: "PT Sans", "Helvetica Neue", sans-serif !important; }
.esv-font-open-sans.esv-font-open-sans{ font-family: "Open Sans", "Helvetica Neue", sans-serif !important; }
.esv-font-noto-sans.esv-font-noto-sans{ font-family: "Noto Sans", "Helvetica Neue", sans-serif !important; }
.esv-font-source-sans-3.esv-font-source-sans-3{ font-family: "Source Sans 3", "Helvetica Neue", sans-serif !important; }
.esv-font-roboto-condensed.esv-font-roboto-condensed{ font-family: "Roboto Condensed", "Arial Narrow", sans-serif !important; }
.esv-font-titillium-web.esv-font-titillium-web{ font-family: "Titillium Web", "Helvetica Neue", sans-serif !important; }

/* per-family weight + tracking so each face looks the way it was designed */
.esv-font-anton.esv-font-anton,.esv-font-bebas-neue.esv-font-bebas-neue,.esv-font-roboto-condensed.esv-font-roboto-condensed{ font-weight:400 !important; letter-spacing:.005em !important; line-height:.98 !important; }
.esv-font-oswald.esv-font-oswald{ font-weight:600 !important; letter-spacing:.01em !important; }
.esv-font-playfair-display.esv-font-playfair-display{ font-weight:700 !important; letter-spacing:0 !important; }
.esv-font-helvetica.esv-font-helvetica{ font-weight:700 !important; letter-spacing:-.01em !important; }
.esv-font-manrope.esv-font-manrope,.esv-font-inter.esv-font-inter,.esv-font-archivo.esv-font-archivo,.esv-font-montserrat.esv-font-montserrat,.esv-font-poppins.esv-font-poppins,.esv-font-roboto.esv-font-roboto,.esv-font-lato.esv-font-lato,.esv-font-raleway.esv-font-raleway,.esv-font-rubik.esv-font-rubik,.esv-font-jost.esv-font-jost,.esv-font-figtree.esv-font-figtree,.esv-font-work-sans.esv-font-work-sans,.esv-font-dm-sans.esv-font-dm-sans,.esv-font-nunito-sans.esv-font-nunito-sans,.esv-font-barlow.esv-font-barlow,.esv-font-karla.esv-font-karla,.esv-font-ubuntu.esv-font-ubuntu,.esv-font-pt-sans.esv-font-pt-sans,.esv-font-open-sans.esv-font-open-sans,.esv-font-noto-sans.esv-font-noto-sans,.esv-font-source-sans-3.esv-font-source-sans-3,.esv-font-titillium-web.esv-font-titillium-web{ letter-spacing: -.01em !important; }

/* ============================================================
 * GLOBAL BODY FONT — Manrope everywhere (audit 21 Sep 2026)
 * Body text on every ESCOVA page must be Manrope. Headings/display
 * stay Anton (handled by .esv-font-anton). These rules override the
 * legacy Helvetica / Archivo / Oswald defaults baked into old widgets.
 * ============================================================ */

/* --- legacy widgets that shipped with Helvetica --- */
.escova-cl-title, .escova-cl-name, .escova-cl-tagline, .escova-cl-cta,
.escova-cl-price, .escova-cl-desc,
.escova-wm, .escova-wm-word, .escova-wm-text,
.escova-ip-label, .escova-ip-value, .escova-ip-unit, .escova-ip b, .escova-ip span,
.escova-gc-label, .escova-gc-warn, .escova-gc-title, .escova-gc-desc,
.escova-ct-title, .escova-ct-label, .escova-ct-btn, .escova-ct-info-label,
.escova-ct-info-value, .escova-ct-desc, .escova-ct p, .escova-ct a, .escova-ct span, .escova-ct h4,
.escova-specs-title, .escova-specs-card, .escova-specs-card h3, .escova-specs-card p,
.escova-specs-eyebrow, .escova-specs-subtitle, .escova-specs-vcopy,
.escova-mq-text, .escova-mq-item, .escova-mq-sep,
.escova-tl-phase, .escova-tl-title, .escova-tl-desc, .escova-tl-heading, .escova-tl-sub,
.escova-fv-name, .escova-fv-desc, .escova-fv-label, .escova-fv-metric,
.escova-pf-cc, .escova-pf-submit, .escova-pf-title, .escova-pf-subtitle, .escova-pf label,
.escova-pf input, .escova-pf select, .escova-pf textarea, .escova-pf option, .escova-pf span,
.escova-pf p, .escova-pf small, .escova-pf-note, .escova-pf-check
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif; }

/* the flavour grid + partner form shipped with Oswald/Archivo */
.escova-fv-card, .escova-fv-body, .escova-fv-wrap,
.escova-pf, .escova-pf-wrap, .escova-pf-form
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif; }

/* --- Elementor core widgets: heading / text-editor / accordion / counter --- */
.escova-page .elementor-heading-title,
.escova-page .elementor-text-editor,
.escova-page .elementor-text-editor p,
.escova-page .elementor-widget-text-editor,
.escova-page .elementor-counter-title,
.escova-page .elementor-image-box-description,
.escova-page .elementor-accordion-title,
.escova-page .elementor-tab-title,
.escova-page .elementor-tab-content,
.elementor-widget-text-editor, .elementor-widget-text-editor p
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif; }

/* keep display headings on Anton — must come AFTER the Manrope rules */
.esv-font-anton.esv-font-anton, .esv-font-anton.esv-font-anton * { font-family: "Anton", "Arial Narrow", sans-serif; }
.esv-font-manrope.esv-font-manrope, .esv-font-manrope.esv-font-manrope * { font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif; }

/* --- theme chrome: body, nav menu, warning bar, footer --- */
body, .ast-container, .site-content,
.main-header-menu .menu-link, .main-header-menu > .menu-item > .menu-link,
.ast-builder-menu .menu-link, .ast-mobile-menu .menu-link,
.site-footer, .site-footer p, .site-footer a, .site-footer .menu-link,
.ast-above-header-bar, .ast-above-header-bar p
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif; }

/* ============================================================
 * BODY FONT WEIGHT — Manrope NORMAL (400)  [audit 21 Sep 2026]
 * Apeh: "font manrope untuk text body tu jangan bagi bold, just normal je"
 * Body paragraphs / descriptions / values = 400.
 * Buttons, labels, eyebrows, kickers keep their bold weight (they are UI, not body).
 * ============================================================ */

/* --- widget body copy --- */
.escova-ct-info-value, .escova-ct-info-value a, .escova-ct-desc, .escova-ct p,
.escova-fv-desc, .escova-fv-label,
.escova-tl-desc, .escova-tl-sub,
.escova-why-lead, .escova-why-tx p,
.escova-sh-side, .escova-hh-sub,
.escova-bd-desc, .escova-nl-desc, .escova-fc-desc, .escova-br-d,
.escova-ts-quote, .escova-ts-meta span,
.escova-specs-card p, .escova-specs-subtitle,
.escova-pf p, .escova-pf small, .escova-pf-note,
.escova-wm, .escova-wm-word, .escova-wm-text,
.escova-ip-value, .escova-ip-unit, .escova-ip span,
.escova-gc-desc, .escova-gc-warn,
.escova-mq-text, .escova-mq-item, .escova-mq-sep,
.ewm-hint, .ewm-detail, .ewm-iname, .ewm-icount
{ font-weight: 400 !important; }

/* --- descriptions Apeh set bold in the WP editor --- */
.escova-hh-proof span, .escova-hh-lab, .escova-hh-chip,
.escova-cl-tagline, .escova-cl-price,
.elementor-image-box-description
{ font-weight: 400 !important; }

/* --- Elementor core body text (paragraphs) --- */
.elementor-text-editor, .elementor-text-editor p,
.elementor-widget-text-editor p,
.elementor-widget-text-editor .elementor-widget-container
{ font-weight: 400 !important; }

/* --- form inputs + long-form body --- */
.escova-ct-info-value, .escova-pf input, .escova-pf select, .escova-pf textarea
{ font-weight: 400 !important; }

/* --- stragglers found in the 21 Sep audit --- */
.escova-fv-card b, .escova-fv-card strong,
.escova-page b, .escova-page strong { font-weight: 400 !important; }
.escova-tl-title { font-weight: 400 !important; }
.escova-pf-check span, .escova-pf-check label, .escova-pf-checkbox span
{ font-weight: 400 !important; }

/* ============================================================
 * AUDIT PASS 2 — remaining body text [21 Sep 2026]
 * ============================================================ */

/* homepage Collection widget: names + taglines were Helvetica */
.escova-cl-name, .escova-cl-tagline, .escova-cl-title, .escova-cl-cta, .escova-cl-price,
.escova-cl-card, .escova-cl-wrap, .escova-cl p, .escova-cl span, .escova-cl h3
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }
.escova-cl-tagline { font-weight: 400 !important; }


/* contact info labels are small UI labels — normal, not bold */
.escova-ct-info-label { font-weight: 400 !important; letter-spacing: .08em; }
.escova-specs-card h3 { font-weight: 400 !important; }

/* header warning bar -> Manrope normal */
.ast-above-header-bar, .ast-above-header-bar p, .ast-above-header-bar span,
.ast-builder-html-element, .ast-builder-html-element p
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important; }

/* ============================================================
 * Elementor core text — SAFE scoping
 * Body/description text = Manrope 400. Display headings stay whatever
 * the widget/editor set (Anton), so the big type is not flattened.
 * ============================================================ */

/* body-ish Elementor widgets only */
.elementor-text-editor, .elementor-text-editor p,
.elementor-widget-text-editor, .elementor-widget-text-editor p,
.elementor-accordion-title, .elementor-tab-title, .elementor-tab-content,
.elementor-image-box-description, .elementor-counter-title,
.elementor-icon-box-description, .elementor-testimonial-content,
.elementor-divider__text, .elementor-tab-description
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important; }

/* small Elementor headings (eyebrow-ish) may use Manrope; big ones keep Anton */
.elementor-heading-title.elementor-size-small,
.elementor-heading-title.elementor-size-medium
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }

/* ============================================================
 * AUDIT PASS 3 — final stragglers [21 Sep 2026]
 * ============================================================ */

/* homepage Collection widget: product names + taglines are body copy, not display */
.escova-cl-name, .escova-cl-tagline, .escova-cl-desc, .escova-cl-price
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important; }
.escova-cl-title { font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }

/* why-list item names + inline <b> in body copy -> normal */
.escova-why-tx b, .escova-why-tx strong, .escova-why-list b,
.escova-page b, .escova-page strong,
.escova-hp b, .escova-hp strong
{ font-weight: 400 !important; }

/* partner form country-code prefix */
.escova-pf-cc, .escova-pf-cc span
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important; }

/* wholesale page heading set in Helvetica by the editor */
.escova-pf-title, .escova-pf-subtitle
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }

/* ============================================================
 * MOBILE FIXES [21 Sep 2026]
 * Audit @390px found: NBN overflow 502px (hero orbit ring), Xvante 432px,
 * plus unreadably small labels. Rings/marquee must never widen the page.
 * ============================================================ */

/* 1) Nothing may exceed the viewport width */
html, body { overflow-x: hidden !important; max-width: 100% !important; }
.escova-hs, .escova-hs-inner, .escova-hs-wrap, .escova-hs-copy, .escova-hs-stage,
.escova-hh, .escova-hh-wrap, .escova-hh-copy, .escova-hh-stage,
.escova-specs, .escova-specs-wrap, .escova-page { max-width: 100% !important; }

/* 2) Hero orbit rings are decorative — clip them on small screens */
.escova-hs { overflow: hidden !important; }
.escova-hh { overflow: hidden !important; }

@media (max-width: 1024px) {
  .escova-hs-stage, .escova-hh-stage { overflow: hidden; }
}

@media (max-width: 767px) {
  .escova-hs-ring,
  .escova-hs-stage .escova-hs-ring {
    width: min(var(--escova-hs-ring-size, 420px), 78vw) !important;
    height: min(var(--escova-hs-ring-size, 420px), 78vw) !important;
    max-width: 78vw !important;
    max-height: 78vw !important;
  }
  .escova-hs-ring2,
  .escova-hs-stage .escova-hs-ring2 {
    width: min(calc(var(--escova-hs-ring-size, 420px) * .78), 61vw) !important;
    height: min(calc(var(--escova-hs-ring-size, 420px) * .78), 61vw) !important;
    max-width: 61vw !important;
    max-height: 61vw !important;
  }
  .escova-hh-ring, .escova-hh-ring.r1, .escova-hh-ring.r2 {
    width: min(var(--escova-hh-ring, 420px), 78vw) !important;
    height: min(var(--escova-hh-ring, 420px), 78vw) !important;
    max-width: 78vw !important;
  }
  .escova-hs-stage { max-width: 100% !important; }
  .escova-hh-stage { max-width: 100% !important; }
}

/* 3) Marquee tracks must not create page scroll */
.escova-mb, .escova-mq-wrap, .escova-mq, .escova-mb-wrap { overflow: hidden !important; }

/* 4) Readable minimum text sizes on phones */
@media (max-width: 767px) {
  .escova-fv-label { font-size: 10px !important; }
  .escova-fv-desc  { font-size: 12.5px !important; line-height: 1.5 !important; }
  .escova-gc-warn  { font-size: 10px !important; line-height: 1.4 !important; }
  .escova-ip-value { font-size: 15px !important; }
  .escova-ip-unit  { font-size: 10px !important; }
  .escova-cl-tagline, .escova-fv-desc, .escova-why-tx p, .escova-tl-desc,
  .escova-ct-info-value, .escova-pf p, .escova-pf small { font-size: 13px !important; }
  .escova-ts-quote { font-size: 14.5px !important; }
  .escova-bd-desc, .escova-nl-desc, .escova-fc-desc, .escova-hh-sub { font-size: 13.5px !important; }
  .escova-ct-label, .escova-ct-info-label, .escova-specs-card p { font-size: 12px !important; }
}

/* ============================================================
 * TABLET text floor [21 Sep 2026] — labels were 9px at 820px
 * ============================================================ */
@media (min-width: 768px) and (max-width: 1024px) {
  .escova-fv-label { font-size: 11px !important; }
  .escova-fv-desc  { font-size: 13px !important; }
  .escova-gc-warn  { font-size: 10.5px !important; }
  .escova-ip-unit  { font-size: 11px !important; }
  .escova-ct-label, .escova-ct-info-label { font-size: 12.5px !important; }
  .escova-specs-card p { font-size: 13px !important; }
}

/* flavour rating labels are micro-UI — never below 10px anywhere */
@media (max-width: 1024px) {
  .escova-fv-label { font-size: max(10px, .8rem) !important; letter-spacing: .04em !important; }
}

/* ============================================================
 * MOBILE TYPOGRAPHY POLISH [21 Sep 2026]
 * Hero eyebrow wrapped over the big title on phones.
 * ============================================================ */
@media (max-width: 767px) {
  .escova-hh-kick, .escova-hs-eyebrow, .escova-sh-kick, .escova-why-kick,
  .escova-fc-kick, .escova-nl-kick, .escova-bd-kick {
    display: block;
    font-size: 10px !important;
    line-height: 1.5 !important;
    letter-spacing: .16em !important;
    margin-bottom: 14px !important;
    white-space: normal !important;
  }
  .escova-hh-title {
    font-size: clamp(34px, 10.5vw, 58px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.01em !important;
  }
  .escova-sh-title, .escova-why-title { line-height: 1.06 !important; }
  .escova-fc-title, .escova-nl-title { line-height: 1.06 !important; }

  /* hero vertical rhythm */
  .escova-hh-wrap, .escova-hs-wrap { gap: 28px !important; }
  .escova-hh-copy .escova-hh-kick + .escova-hh-title { margin-top: 0 !important; }
  .escova-hh-stage, .escova-hs-stage { margin-top: 8px !important; }

  /* stats bar: 2 columns on phones, readable numbers */
  .escova-hh-stats-in { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 18px 12px !important; }
  .escova-hh-num { font-size: 30px !important; }
  .escova-hh-lab { font-size: 10.5px !important; }

  /* buttons: comfortable tap targets */
  .escova-hh-btn, .escova-ur-btn, .escova-fc-btn, .escova-nl-btn,
  .escova-ct-btn, .escova-bd-btn, .escova-pf-submit {
    min-height: 46px !important;
    padding: 14px 22px !important;
    font-size: 12.5px !important;
  }
  .escova-hh-cta { display: flex !important; flex-direction: column !important; gap: 10px !important; }
  .escova-hh-cta > * { width: 100% !important; justify-content: center !important; }

  /* collection + browse grids: 2 columns */
  .escova-cl-grid, .escova-br-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }

  /* testimonial + bands + specs stack */
  .escova-ts-grid, .escova-bd-grid, .escova-specs-grid { grid-template-columns: 1fr !important; }
}

/* ============================================================
 * FLAVOUR NAME sizing [21 Sep 2026]
 * Desktop 40px looked right; on a 390-414px phone in 2 columns the card is
 * ~170px wide, so the name must scale down or it overflows the card.
 * ============================================================ */
@media (max-width: 1024px) {
  .escova-fv-name { font-size: 26px !important; line-height: 1.05 !important; }
}
@media (max-width: 767px) {
  .escova-fv-name { font-size: 19px !important; line-height: 1.08 !important; }
  .escova-fv-desc { font-size: 11.5px !important; line-height: 1.45 !important; }
}
@media (max-width: 400px) {
  .escova-fv-name { font-size: 17px !important; }
  .escova-fv-desc { font-size: 11px !important; }
}

/* long single words must break instead of overflowing */
.escova-fv-name, .escova-fv-desc { overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }

/* ============================================================
 * ASTRA MENU — semua item guna Manrope [21 Sep 2026]
 * Submenu dropdown (Xvante 10.5, Naughty But Nice) masih Helvetica.
 * Need stronger specificity + !important because Astra sets its own font.
 * ============================================================ */
.main-header-menu a,
.main-header-menu .menu-link,
.main-header-menu li a,
.main-header-menu > .menu-item > .menu-link,
.main-header-menu .sub-menu a,
.main-header-menu .sub-menu .menu-link,
.main-header-menu .ast-menu-toggle,
.ast-builder-menu a,
.ast-builder-menu .menu-link,
.ast-builder-menu-1 a,
.ast-builder-menu-1 .menu-link,
.ast-desktop .ast-menu-hover-style-underline > .menu-item > .menu-link,
.ast-mobile-menu a,
.ast-mobile-menu .menu-link,
.ast-nav-menu a,
.ast-nav-menu .menu-link,
.main-header-menu .menu-item a,
.site-header .menu-link,
.site-header a
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }

/* submenu panel text + any dropdown headings */
.main-header-menu .sub-menu,
.main-header-menu .sub-menu li,
.main-header-menu .sub-menu span,
.ast-menu-toggle,
.ast-mobile-popup-content a,
.ast-mobile-popup-content .menu-link
{ font-family: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }
