/* ==========================================================================
   Inner pages (About Us and similar): banner, intro collage, stats, quote,
   service cards and feature boxes. Uses the --tnv-* tokens from theme.css.
   ========================================================================== */

/* ---------- page title banner ---------- */

#tnv-page-banner {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #FDFBF7 0%, #F6EDDC 100%);
	border-bottom: 1px solid var(--tnv-gold-line);
}
#tnv-page-banner::before,
#tnv-page-banner::after {
	content: "";
	position: absolute;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 50%;
	pointer-events: none;
}
#tnv-page-banner::before { width: 520px; height: 520px; top: -60%; right: -8%; }
#tnv-page-banner::after { width: 340px; height: 340px; bottom: -70%; left: -6%; }
#tnv-page-banner > .elementor-container { position: relative; z-index: 1; }

.tnv-crumbs p {
	margin: 0;
	font-family: var(--tnv-sans);
	font-size: 14px !important;
	letter-spacing: .08em;
	color: var(--tnv-muted);
}
.tnv-crumbs a { color: var(--tnv-gold); text-decoration: none; }
.tnv-crumbs a:hover { color: var(--tnv-gold-deep); }

/* ---------- intro collage with experience badge ---------- */

.tnv-collage { position: relative; }
.tnv-collage > .elementor-widget-wrap { position: relative; padding-bottom: 60px !important; }

.tnv-collage-main img {
	display: block;
	width: 88%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: top center;
	border-radius: 200px 200px 28px 28px;
	box-shadow: 0 30px 60px rgba(90, 70, 30, .16);
}
.tnv-collage-main { text-align: left !important; }

.tnv-collage-small {
	position: absolute !important;
	right: 0;
	bottom: 0;
	width: 46% !important;
	z-index: 2;
}
.tnv-collage-small img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 8px solid var(--tnv-cream);
	border-radius: 24px;
	box-shadow: 0 22px 44px rgba(90, 70, 30, .18);
}

.tnv-exp-badge {
	position: absolute !important;
	top: 36px;
	right: 2%;
	z-index: 3;
	width: auto !important;
}
.tnv-exp-badge .elementor-heading-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 132px;
	height: 132px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--tnv-gold-light), var(--tnv-gold-deep));
	box-shadow: 0 16px 34px rgba(138, 106, 32, .3);
	color: #fff;
	font-family: var(--tnv-sans);
	font-size: 12px !important;
	letter-spacing: .08em;
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
}
.tnv-exp-badge .elementor-heading-title strong {
	display: block;
	font-family: var(--tnv-serif);
	font-size: 44px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
}

/* Checklist beside the intro. */
.tnv-checks .elementor-icon-list-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 24px;
}
.tnv-checks .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; font-family: var(--tnv-sans); color: var(--tnv-ink); }
.tnv-checks .elementor-icon-list-icon svg,
.tnv-checks .elementor-icon-list-icon i { color: var(--tnv-gold); fill: var(--tnv-gold); }

@media (max-width: 767px) {
	/* One photo on a phone: the overlapping second photo gets too small. */
	.tnv-collage > .elementor-widget-wrap { padding-bottom: 0 !important; }
	.tnv-collage-small { display: none; }
	.tnv-collage-main img { width: 100%; }
	.tnv-exp-badge { top: 20px; right: 16px; }
	.tnv-checks .elementor-icon-list-items { grid-template-columns: minmax(0, 1fr); }
	.tnv-exp-badge .elementor-heading-title { width: 108px; height: 108px; }
	.tnv-exp-badge .elementor-heading-title strong { font-size: 36px; }
}

/* ---------- stats band ---------- */

#tnv-stats > .elementor-container {
	background: #fff;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 28px;
	box-shadow: 0 20px 44px rgba(120, 95, 40, .08);
	padding: 44px 20px;
}
.tnv-stat-col:not(:last-child) > .elementor-widget-wrap { border-right: 1px solid var(--tnv-gold-line); }
.tnv-stat .elementor-counter-number-wrapper {
	justify-content: center;
	font-family: var(--tnv-serif);
	font-size: 56px;
	font-weight: 500;
	line-height: 1;
	color: var(--tnv-gold);
}
.tnv-stat .elementor-counter-title {
	justify-content: center;
	margin-top: 10px;
	font-family: var(--tnv-sans);
	font-size: 13px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tnv-muted);
	text-align: center;
}
@media (max-width: 767px) {
	.tnv-stat-col:not(:last-child) > .elementor-widget-wrap { border-right: 0; border-bottom: 1px solid var(--tnv-gold-line); padding-bottom: 24px !important; margin-bottom: 24px; }
	.tnv-stat .elementor-counter-number-wrapper { font-size: 46px; }
}

/* ---------- philosophy quote ---------- */

.tnv-quote .elementor-heading-title {
	position: relative;
	font-family: var(--tnv-serif);
	font-size: clamp(26px, 2.6vw, 38px) !important;
	font-style: italic;
	font-weight: 400;
	line-height: 1.35;
	color: var(--tnv-ink);
}
.tnv-quote .elementor-heading-title::before {
	content: "\201C";
	display: block;
	margin-bottom: -10px;
	font-size: 110px;
	font-style: normal;
	line-height: 1;
	color: var(--tnv-gold);
	opacity: .5;
}
.tnv-sign p {
	margin: 0;
	font-family: var(--tnv-sans);
	font-size: 13px !important;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--tnv-gold);
}

/* ---------- What we offer: staggered photos with overlapping cards ---------- */

#tnv-offer { overflow: hidden; }

/* The second photo column sits lower, so the pair reads as a stagger. */
.tnv-offer-col--low > .elementor-widget-wrap { padding-top: 48px !important; }

.tnv-offer-img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 22px;
}

/* White card over the foot of the photo, pushed a little past its right edge. */
.tnv-offer-card {
	position: relative;
	z-index: 2;
	width: calc(100% + 4px) !important;
	margin: -90px -18px 0 18px !important;
}
.tnv-offer-card .elementor-widget-container,
.tnv-offer-card .elementor-icon-box-wrapper {
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 22px 44px rgba(90, 70, 30, .14);
}
.tnv-offer-card .elementor-icon-box-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 26px 24px 28px;
	text-align: left !important;
	transition: transform .2s ease, box-shadow .2s ease;
}
.tnv-offer-card .elementor-widget-container .elementor-icon-box-wrapper { box-shadow: none; }
.tnv-offer-card:hover .elementor-icon-box-wrapper { transform: translateY(-3px); }
.tnv-offer-card .elementor-icon-box-content { text-align: left !important; }

.tnv-offer-card .elementor-icon-box-icon {
	display: inline-flex;
	flex: 0 0 54px;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	margin: 0 !important;
	border-radius: 12px;
	background: var(--tnv-cream-2);
}
.tnv-offer-card .elementor-icon { color: var(--tnv-gold); font-size: 22px; }
.tnv-offer-card .elementor-icon svg { fill: var(--tnv-gold); width: 22px; height: 22px; }
.tnv-offer-card .elementor-icon-box-title,
.tnv-offer-card .elementor-icon-box-title a {
	margin: 0 0 8px;
	font-family: var(--tnv-serif);
	font-size: 25px !important;
	font-weight: 500;
	line-height: 1.2;
	color: var(--tnv-ink);
	text-decoration: none;
}
.tnv-offer-card .elementor-icon-box-title a:hover { color: var(--tnv-gold); }
.tnv-offer-card .elementor-icon-box-description {
	font-family: var(--tnv-sans);
	font-size: 15.5px !important;
	line-height: 1.65;
	color: var(--tnv-muted);
}

/* Script-style eyebrow above the heading. */
.tnv-label--script .elementor-heading-title {
	font-family: var(--tnv-serif) !important;
	font-size: 22px !important;
	font-style: italic;
	letter-spacing: .04em !important;
	text-transform: none !important;
	margin-bottom: 8px !important;
}

@media (max-width: 1024px) {
	.tnv-offer-card { margin: -70px -10px 0 10px !important; }
	.tnv-offer-card .elementor-icon-box-wrapper { flex-direction: column; gap: 14px; padding: 22px 20px; }
}
@media (max-width: 767px) {
	.tnv-offer-col--low > .elementor-widget-wrap { padding-top: 0 !important; }
	.tnv-offer-img img { aspect-ratio: 4 / 3; }
	.tnv-offer-card { width: calc(100% - 32px) !important; margin: -60px 16px 0 !important; }
	.tnv-offer-card .elementor-icon-box-wrapper { flex-direction: row; }
}

/* Four appointment steps: extends the homepage step style. */
.tnv-step-4 .elementor-icon-box-icon::after { content: "4"; }
#tnv-about-steps { position: relative; }
#tnv-about-steps::before {
	content: "";
	position: absolute;
	top: 34px;
	left: 12%;
	right: 12%;
	height: 1px;
	background: var(--tnv-gold-line);
}
@media (max-width: 1024px) { #tnv-about-steps::before { display: none; } }

/* ---------- why choose us ---------- */

.tnv-feature .elementor-icon-box-wrapper { display: flex; align-items: flex-start; gap: 18px; text-align: left; }
.tnv-feature .elementor-icon-box-icon {
	display: inline-flex;
	flex: 0 0 56px;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 !important;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 50%;
	background: #fff;
}
.tnv-feature .elementor-icon { color: var(--tnv-gold); font-size: 22px; }
.tnv-feature .elementor-icon svg { fill: var(--tnv-gold); width: 22px; height: 22px; }
.tnv-feature .elementor-icon-box-title {
	margin: 0 0 6px;
	font-family: var(--tnv-serif);
	font-size: 24px !important;
	font-weight: 500;
	color: var(--tnv-ink);
}
.tnv-feature .elementor-icon-box-description { font-family: var(--tnv-sans); line-height: 1.7; color: var(--tnv-muted); }
.tnv-feature { margin-bottom: 30px !important; }

/* ---------- contact page ---------- */

.tnv-info .elementor-icon-box-wrapper {
	display: flex;
	flex-direction: column !important;
	align-items: flex-start;
	gap: 14px;
	height: 100%;
	padding: 24px 22px;
	background: #fff;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 18px;
	text-align: left !important;
}
.tnv-info .elementor-icon-box-content { text-align: left !important; }
.tnv-info .elementor-icon-box-icon {
	display: inline-flex;
	flex: 0 0 50px;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	margin: 0 !important;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--tnv-gold-light), var(--tnv-gold-deep));
}
.tnv-info .elementor-icon { color: #fff; font-size: 19px; }
.tnv-info .elementor-icon svg { fill: #fff; width: 19px; height: 19px; }
.tnv-info .elementor-icon-box-title,
.tnv-info .elementor-icon-box-title a {
	margin: 0 0 4px;
	font-family: var(--tnv-serif);
	font-size: 22px !important;
	font-weight: 500;
	color: var(--tnv-ink);
	text-decoration: none;
}
.tnv-info .elementor-icon-box-description,
.tnv-info .elementor-icon-box-description a {
	overflow-wrap: anywhere;
	font-family: var(--tnv-sans);
	font-size: 15.5px !important;
	line-height: 1.6;
	color: var(--tnv-muted);
	text-decoration: none;
}
.tnv-info a:hover { color: var(--tnv-gold) !important; }
.tnv-info-col > .elementor-widget-wrap { padding: 8px !important; }

/* Form panel. */
.tnv-form-col > .elementor-widget-wrap {
	padding: 44px 40px !important;
	background: #fff;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 28px;
	box-shadow: 0 22px 48px rgba(120, 95, 40, .09);
}
@media (max-width: 767px) { .tnv-form-col > .elementor-widget-wrap { padding: 30px 22px !important; } }

.tnv-form { font-family: var(--tnv-sans); }
.tnv-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
@media (max-width: 600px) { .tnv-form__row { grid-template-columns: minmax(0, 1fr); } }
.tnv-form__field { margin: 0 0 18px; }
.tnv-form__field label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px !important;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--tnv-ink);
}
.tnv-form__field label span { color: var(--tnv-gold); }
.tnv-form input[type="text"],
.tnv-form input[type="email"],
.tnv-form input[type="url"],
.tnv-form input[type="tel"],
.tnv-form textarea {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid rgba(176, 138, 60, .35);
	border-radius: 12px;
	background: var(--tnv-cream);
	font: inherit;
	font-size: 16px;
	color: var(--tnv-ink);
	transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.tnv-form textarea { resize: vertical; min-height: 150px; }
.tnv-form input:focus,
.tnv-form textarea:focus {
	outline: none;
	border-color: var(--tnv-gold);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(176, 138, 60, .15);
}
.tnv-form__actions { margin: 6px 0 0; }
.tnv-form__submit {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 17px 34px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--tnv-gold-light) 0%, var(--tnv-gold-deep) 100%);
	box-shadow: 0 12px 26px rgba(138, 106, 32, .22);
	color: #fff;
	font-family: var(--tnv-sans);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: transform .18s ease;
}
.tnv-form__submit:hover { transform: translateY(-2px); }
.tnv-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tnv-form__notice { margin: 0 0 20px; padding: 14px 18px; border-radius: 12px; font-size: 15px !important; }
.tnv-form__notice--ok { background: #EEF6EC; color: #2F6B2A; border: 1px solid #CFE5CA; }
.tnv-form__notice--error { background: #FBEDEA; color: #9A3324; border: 1px solid #F0CFC8; }

/* Map strip. */
.tnv-map iframe { display: block; border-radius: 28px; filter: grayscale(.35) sepia(.12); }

/* ---------- blog page ---------- */

.tnv-blog-grid .tnv-posts { gap: 32px; }

/* ---------- prices: treatment cards ---------- */

.tnv-price {
	height: 100%;
	padding: 34px 32px 30px;
	background: #fff;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 24px;
	box-shadow: 0 18px 40px rgba(120, 95, 40, .07);
	font-family: var(--tnv-sans);
}
.elementor-widget-tanuva-price-menu,
.elementor-widget-tanuva-price-menu > .elementor-widget-container { height: 100%; }
.tnv-price-col > .elementor-widget-wrap { height: 100%; }

.tnv-price__head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 18px;
	margin-bottom: 6px;
	border-bottom: 1px solid var(--tnv-gold-line);
}
.tnv-price__icon {
	display: inline-flex;
	flex: 0 0 50px;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--tnv-gold-light), var(--tnv-gold-deep));
	color: #fff;
	font-size: 20px;
}
.tnv-price__icon svg { width: 20px; height: 20px; fill: #fff; }
.tnv-price__title {
	margin: 0;
	font-family: var(--tnv-serif);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.15;
	color: var(--tnv-ink);
}
.tnv-price__group {
	margin: 22px 0 8px;
	font-family: var(--tnv-sans);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--tnv-gold);
}
.tnv-price__group small {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	letter-spacing: .02em;
	text-transform: none;
	color: var(--tnv-muted);
}
.tnv-price__list { list-style: none; margin: 0; padding: 0; }
.tnv-price__row {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 7px 0;
	font-size: 16px !important;
	color: var(--tnv-ink);
}
.tnv-price__label small { display: block; font-size: 12.5px; color: var(--tnv-muted); }
/* Dotted leader between treatment and price. */
.tnv-price__dots { flex: 1 1 auto; min-width: 16px; border-bottom: 1px dotted rgba(176, 138, 60, .55); transform: translateY(-4px); }
.tnv-price__amount {
	flex: 0 0 auto;
	font-family: var(--tnv-serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--tnv-gold-deep);
	white-space: nowrap;
}
.tnv-price__amount small {
	margin-right: 3px;
	font-family: var(--tnv-sans);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--tnv-muted);
}
.tnv-price__note {
	margin: 18px 0 0;
	padding: 14px 16px;
	border-radius: 12px;
	background: var(--tnv-cream-2);
	font-size: 14.5px !important;
	line-height: 1.6;
	color: var(--tnv-muted);
}
@media (max-width: 767px) {
	.tnv-price { padding: 28px 22px 24px; }
	.tnv-price__title { font-size: 26px; }
}

/* ---------- prices: hair & scalp packages on a dark band ---------- */

#tnv-packages { background: #141210; }
#tnv-packages .tnv-label .elementor-heading-title { color: var(--tnv-gold-light); }
#tnv-packages .tnv-display .elementor-heading-title { color: #FBF6EC; }
#tnv-packages .tnv-lead p { color: rgba(251, 246, 236, .72); }

.tnv-pack {
	height: 100%;
	overflow: hidden;
	border: 1px solid rgba(201, 162, 74, .45);
	border-radius: 22px;
	background: #1D1A16;
	font-family: var(--tnv-sans);
	color: #F3EBDD;
}
.elementor-widget-tanuva-price-package,
.elementor-widget-tanuva-price-package > .elementor-widget-container { height: 100%; }
.tnv-pack--featured { border-color: var(--tnv-gold-light); box-shadow: 0 0 0 1px var(--tnv-gold-light), 0 24px 50px rgba(0, 0, 0, .35); }
.tnv-pack__bar {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 22px;
	background: linear-gradient(135deg, var(--tnv-gold-light), var(--tnv-gold-deep));
	color: #1D1A16;
}
.tnv-pack__num {
	display: inline-flex;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #1D1A16;
	color: var(--tnv-gold-light);
	font-family: var(--tnv-serif);
	font-size: 22px;
	font-weight: 600;
}
.tnv-pack__title {
	flex: 1 1 auto;
	margin: 0;
	font-family: var(--tnv-serif);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.2;
	color: #1D1A16;
}
.tnv-pack__badge {
	padding: 5px 10px;
	border: 1px solid rgba(29, 26, 22, .5);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
}
.tnv-pack__body { display: flex; flex-direction: column; gap: 20px; padding: 24px 22px 26px; }
.tnv-pack__desc { margin: 0; font-size: 15.5px !important; line-height: 1.65; color: rgba(243, 235, 221, .8); }
.tnv-pack__list { list-style: none; margin: 0; padding: 0; }
.tnv-pack__list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(201, 162, 74, .2);
	font-size: 15.5px !important;
	color: #F3EBDD;
}
.tnv-pack__list small { font-size: 12px; color: rgba(243, 235, 221, .6); }
.tnv-pack__item-price { font-family: var(--tnv-serif); font-size: 19px; color: var(--tnv-gold-light); white-space: nowrap; }
.tnv-pack__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding: 16px 18px;
	border: 1px solid rgba(201, 162, 74, .45);
	border-radius: 14px;
	background: rgba(201, 162, 74, .08);
}
.tnv-pack__total-label { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--tnv-gold-light); }
.tnv-pack__total-price { font-family: var(--tnv-serif); font-size: 40px; font-weight: 600; line-height: 1; color: #FBF6EC; }
.tnv-pack-col > .elementor-widget-wrap { height: 100%; }

/* ---------- prices: info strip (consultation, languages, Blue Light) ---------- */

.tnv-strip .elementor-icon-box-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	height: 100%;
	padding: 26px 24px;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 20px;
	background: #fff;
	text-align: left !important;
}
.tnv-strip .elementor-icon-box-content { text-align: left !important; }
.tnv-strip .elementor-icon-box-icon {
	display: inline-flex;
	flex: 0 0 52px;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0 !important;
	border-radius: 50%;
	background: var(--tnv-cream-2);
}
.tnv-strip .elementor-icon { color: var(--tnv-gold); font-size: 20px; }
.tnv-strip .elementor-icon svg { fill: var(--tnv-gold); width: 20px; height: 20px; }
.tnv-strip .elementor-icon-box-title { margin: 0 0 6px; font-family: var(--tnv-serif); font-size: 23px !important; font-weight: 500; color: var(--tnv-ink); }
.tnv-strip .elementor-icon-box-description { font-family: var(--tnv-sans); font-size: 15px !important; line-height: 1.65; color: var(--tnv-muted); }
.tnv-strip-col > .elementor-widget-wrap { height: 100%; }

/* Package badges sit on their own line under the title so long titles stay readable. */
.tnv-pack__bar { flex-wrap: wrap; row-gap: 8px; }
.tnv-pack__title { flex: 1 1 calc(100% - 52px); }
.tnv-pack__badge { margin-left: 52px; }

/* ==========================================================================
   Treatment pages
   ========================================================================== */

.tnv-banner-intro { max-width: 780px; margin: 0 auto; }
.tnv-h3 .elementor-heading-title { font-size: clamp(26px, 2.6vw, 36px) !important; }
.tnv-call .elementor-button { gap: 6px; }

/* Overview text and sub-headings. */
.tnv-subhead .elementor-heading-title {
	margin: 18px 0 10px;
	font-family: var(--tnv-sans);
	font-size: 15px !important;
	font-weight: 500;
	letter-spacing: .04em;
	color: var(--tnv-gold-deep);
}
.tnv-body p:last-child { margin-bottom: 0; }

/* Booking card beside the overview. */
.tnv-side > .elementor-widget-wrap {
	align-content: flex-start;
	padding: 34px 30px 30px !important;
	background: linear-gradient(160deg, #FFFFFF 0%, #FAF4E8 100%);
	border: 1px solid var(--tnv-gold-line);
	border-radius: 24px;
	box-shadow: 0 20px 44px rgba(120, 95, 40, .09);
}
@media (min-width: 1025px) { .tnv-side > .elementor-widget-wrap { position: sticky; top: 24px; } }
.tnv-side-title .elementor-heading-title { margin: 0 0 8px; font-family: var(--tnv-serif); font-size: 28px !important; font-weight: 500; color: var(--tnv-ink); }
.tnv-side-text p { margin: 0 0 18px; font-family: var(--tnv-sans); font-size: 15.5px !important; line-height: 1.65; color: var(--tnv-muted); }
.tnv-side-list { margin-bottom: 22px !important; }
.tnv-side-list .elementor-icon-list-item { align-items: flex-start; }
.tnv-side-list .elementor-icon-list-item a,
.tnv-side-list .elementor-icon-list-text { font-family: var(--tnv-sans); font-size: 15.5px !important; line-height: 1.5; color: var(--tnv-ink); overflow-wrap: anywhere; }
.tnv-side-list .elementor-icon-list-icon { padding-top: 4px; }
.tnv-side-list .elementor-icon-list-icon svg,
.tnv-side-list .elementor-icon-list-icon i { color: var(--tnv-gold); fill: var(--tnv-gold); }
.tnv-side .tnv-btn { width: 100% !important; margin: 0 0 10px !important; }
.tnv-side .tnv-btn .elementor-button { width: 100%; justify-content: center; }
@media (max-width: 767px) { .tnv-side > .elementor-widget-wrap { padding: 28px 22px 22px !important; } }

/* List sections as cards, two per row. */
.tnv-tcard > .elementor-widget-wrap {
	height: 100%;
	align-content: flex-start;
	padding: 32px 30px 28px !important;
	background: #fff;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 22px;
	box-shadow: 0 14px 32px rgba(120, 95, 40, .06);
}
.tnv-tcard { padding: 0 12px 24px !important; }
@media (max-width: 767px) {
	.tnv-tcard { padding: 0 0 18px !important; }
	.tnv-tcard > .elementor-widget-wrap { padding: 26px 22px 22px !important; }
}
.tnv-card-title .elementor-heading-title {
	position: relative;
	margin: 0 0 18px;
	padding-bottom: 14px;
	font-family: var(--tnv-serif);
	font-size: 27px !important;
	font-weight: 500;
	line-height: 1.2;
	color: var(--tnv-ink);
}
.tnv-card-title .elementor-heading-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 42px;
	height: 2px;
	background: linear-gradient(90deg, var(--tnv-gold-light), var(--tnv-gold-deep));
}
.tnv-tlist .elementor-icon-list-item { align-items: flex-start; }
.tnv-tlist .elementor-icon-list-text { font-family: var(--tnv-sans); font-size: 16px !important; line-height: 1.6; color: var(--tnv-ink); }
.tnv-tlist .elementor-icon-list-icon {
	display: inline-flex;
	flex: 0 0 22px;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin-top: 2px;
	border-radius: 50%;
	background: var(--tnv-cream-2);
}
.tnv-tlist .elementor-icon-list-icon svg,
.tnv-tlist .elementor-icon-list-icon i { width: 11px; font-size: 11px; color: var(--tnv-gold-deep); fill: var(--tnv-gold-deep); }

/* Full-width text sections. */
.tnv-textblock .tnv-body p { font-size: 17px !important; line-height: 1.85; }

/* FAQ accordion. */
.tnv-faq { margin-top: 26px !important; }
.tnv-faq .elementor-accordion-item {
	margin-bottom: 12px;
	overflow: hidden;
	border: 1px solid var(--tnv-gold-line) !important;
	border-radius: 16px;
	background: #fff;
}
.tnv-faq .elementor-tab-title {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px !important;
	border: 0 !important;
	font-family: var(--tnv-serif);
	font-size: 21px !important;
	font-weight: 500;
	line-height: 1.35;
	color: var(--tnv-ink);
	cursor: pointer;
}
.tnv-faq .elementor-tab-title a { color: inherit; text-decoration: none; }
.tnv-faq .elementor-tab-title.elementor-active { color: var(--tnv-gold-deep); }
.tnv-faq .elementor-accordion-icon {
	display: inline-flex;
	flex: 0 0 32px;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--tnv-cream-2);
	color: var(--tnv-gold-deep);
	font-size: 13px;
}
.tnv-faq .elementor-accordion-icon svg { width: 13px; fill: var(--tnv-gold-deep); }
.tnv-faq .elementor-tab-content {
	padding: 0 24px 22px !important;
	border: 0 !important;
	font-family: var(--tnv-sans);
	line-height: 1.8;
	color: var(--tnv-muted);
}
.tnv-faq .elementor-tab-content p { margin: 0 0 10px; }
@media (max-width: 767px) {
	.tnv-faq .elementor-tab-title { padding: 16px 18px !important; font-size: 18px !important; }
	.tnv-faq .elementor-tab-content { padding: 0 18px 18px !important; }
}

/* Treatment pages: small-screen fixes. */
@media (max-width: 767px) {
	/* The long "Call us…" button wraps instead of running off the screen. */
	.tnv-call,
	.tnv-call .elementor-button { width: 100% !important; max-width: 100%; }
	.tnv-call .elementor-button { justify-content: center; white-space: normal; line-height: 1.4; text-align: center; }
	.tnv-btn-row .tnv-btn { margin-right: 0 !important; }
}
@media (max-width: 1024px) {
	/* Booking card sits under the text on tablets, with room for the email address. */
	.tnv-side .tnv-btn { width: auto !important; }
	.tnv-side .tnv-btn .elementor-button { min-width: 220px; }
}

/* FAQ +/− centred in its circle. */
.tnv-faq .elementor-accordion-icon { float: none !important; line-height: 1; }
.tnv-faq .elementor-accordion-icon span { display: flex; align-items: center; justify-content: center; }
.tnv-faq .elementor-accordion-icon .elementor-accordion-icon-opened { display: none; }
.tnv-faq .elementor-active .elementor-accordion-icon .elementor-accordion-icon-closed { display: none; }
.tnv-faq .elementor-active .elementor-accordion-icon .elementor-accordion-icon-opened { display: flex; }

/* FAQ +/− : fixed-size icon centred in a grid circle (overrides Elementor's float/line-height layout). */
.tnv-faq .elementor-tab-title .elementor-accordion-icon {
	display: grid !important;
	place-items: center;
	flex: 0 0 32px;
	width: 32px !important;
	height: 32px;
	margin: 0 !important;
	padding: 0;
	line-height: 0 !important;
	text-align: center !important;
}
.tnv-faq .elementor-tab-title .elementor-accordion-icon > span { grid-area: 1 / 1; line-height: 0; }
.tnv-faq .elementor-tab-title .elementor-accordion-icon svg { display: block; width: 12px !important; height: 12px !important; margin: 0 !important; }

/* ==========================================================================
   Services page
   ========================================================================== */

.tnv-svc-col > .elementor-widget-wrap { height: 100%; }
.elementor-widget-icon-box.tnv-svc,
.tnv-svc > .elementor-widget-container { height: 100%; }

.tnv-svc .elementor-icon-box-wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	height: 100%;
	padding: 32px 30px 28px;
	background: #fff;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 22px;
	text-align: left !important;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.tnv-svc:hover .elementor-icon-box-wrapper {
	transform: translateY(-5px);
	border-color: rgba(176, 138, 60, .55);
	box-shadow: 0 22px 44px rgba(120, 95, 40, .12);
}
.tnv-svc .elementor-icon-box-content { display: flex; flex: 1 1 auto; flex-direction: column; text-align: left !important; }

/* "View treatment" prompt pinned to the bottom of every card. */
.tnv-svc .elementor-icon-box-content::after {
	content: "View treatment  →";
	margin-top: auto;
	padding-top: 20px;
	font-family: var(--tnv-sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
	color: var(--tnv-gold);
	transition: letter-spacing .2s ease;
}
.tnv-svc:hover .elementor-icon-box-content::after { letter-spacing: .14em; }

.tnv-svc .elementor-icon-box-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	margin: 0 0 22px !important;
	border-radius: 18px;
	background: linear-gradient(135deg, var(--tnv-gold-light), var(--tnv-gold-deep));
	box-shadow: 0 10px 22px rgba(138, 106, 32, .22);
}
.tnv-svc .elementor-icon { color: #fff; font-size: 24px; }
.tnv-svc .elementor-icon svg { width: 24px; height: 24px; fill: #fff; }
.tnv-svc .elementor-icon-box-title { margin: 0 0 10px; }
.tnv-svc .elementor-icon-box-title,
.tnv-svc .elementor-icon-box-title a {
	font-family: var(--tnv-serif);
	font-size: 25px !important;
	font-weight: 500;
	line-height: 1.2;
	color: var(--tnv-ink);
	text-decoration: none;
}
/* The whole card is clickable through the title link. */
.tnv-svc .elementor-icon-box-title a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 22px; }
.tnv-svc .elementor-icon-box-description {
	font-family: var(--tnv-sans);
	font-size: 15.5px !important;
	line-height: 1.7;
	color: var(--tnv-muted);
}
@media (max-width: 767px) {
	.tnv-svc .elementor-icon-box-wrapper { padding: 26px 22px 22px; }
	.tnv-svc .elementor-icon-box-title,
	.tnv-svc .elementor-icon-box-title a { font-size: 23px !important; }
}

/* Category jump links under the intro. */
.tnv-svc-jump { margin: 22px 0 18px !important; }
.tnv-svc-jump .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; }
.tnv-svc-jump .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.tnv-svc-jump .elementor-icon-list-item::after { display: none !important; }
.tnv-svc-jump .elementor-icon-list-item > a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 999px;
	background: #fff;
	font-family: var(--tnv-sans);
	font-size: 14px !important;
	color: var(--tnv-ink);
	transition: background .18s ease, color .18s ease;
}
.tnv-svc-jump .elementor-icon-list-item > a:hover { background: var(--tnv-gold); color: #fff; }
.tnv-svc-jump .elementor-icon-list-icon svg,
.tnv-svc-jump .elementor-icon-list-icon i { width: 11px; font-size: 11px; color: var(--tnv-gold); fill: var(--tnv-gold); }
.tnv-svc-jump .elementor-icon-list-item > a:hover svg { fill: #fff; }
html { scroll-behavior: smooth; }
[id^="svc-"] { scroll-margin-top: 20px; }

/* ==========================================================================
   Treatment pages: results gallery, two-column FAQ, visit-our-clinic panel
   ========================================================================== */

/* Results. */
.tnv-results-stats .elementor-icon-list-item { font-family: var(--tnv-sans); color: var(--tnv-ink); }
.tnv-results-stats .elementor-icon-list-icon svg,
.tnv-results-stats .elementor-icon-list-icon i { color: var(--tnv-gold); fill: var(--tnv-gold); }
.tnv-results-stats { margin-top: 10px !important; }
.tnv-result-img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 22px;
	box-shadow: 0 20px 40px rgba(90, 70, 30, .14);
}
.tnv-result-img + .tnv-result-img { margin-top: 16px !important; }
.tnv-result-img--tall img { aspect-ratio: auto; height: 100%; min-height: 440px; }
.tnv-results-gallery .elementor-inner-section .elementor-column > .elementor-widget-wrap { height: 100%; }
.tnv-result-img--tall,
.tnv-result-img--tall .elementor-widget-container { height: 100%; }
@media (max-width: 767px) {
	.tnv-results-gallery .elementor-inner-section .elementor-column { width: 100% !important; padding: 0 !important; }
	.tnv-result-img--tall img { min-height: 0; aspect-ratio: 4 / 3; }
	.tnv-result-img--tall { margin-bottom: 16px !important; }
}

/* FAQ: intro on the left stays in view while the questions scroll. */
@media (min-width: 1025px) {
	.tnv-faq-intro > .elementor-widget-wrap { position: sticky; top: 24px; align-self: flex-start; }
}
.tnv-faq-intro .tnv-btn { margin-top: 10px !important; }
.tnv-faq-intro + .elementor-column .tnv-faq { margin-top: 0 !important; }

/* Visit our clinic. */
#tnv-visit > .elementor-container {
	overflow: hidden;
	border-radius: 28px;
	box-shadow: 0 30px 60px rgba(40, 30, 10, .16);
}
.tnv-visit-photo { min-height: 620px; }
.tnv-visit-photo > .elementor-widget-wrap { padding: 32px !important; align-content: flex-end; }
.tnv-visit-card {
	max-width: 440px;
	padding: 26px 28px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 24px;
	background: rgba(43, 43, 43, .42);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	color: #fff;
	font-family: var(--tnv-sans);
}
.tnv-visit-card small {
	display: block;
	margin-bottom: 4px;
	font-size: 12px !important;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}
.tnv-visit-card p { margin: 0; font-size: 15px !important; line-height: 1.6; color: #fff; }
.tnv-visit-card__phone { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.tnv-visit-card__phone a { font-family: var(--tnv-serif); font-size: 26px; font-weight: 500; color: #fff; text-decoration: none; }
.tnv-visit-card__icon {
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A6A20' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.18 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.1 9.9a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / 22px no-repeat;
}
.tnv-visit-card__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 24px; }

.tnv-visit-panel > .elementor-widget-wrap {
	align-content: center;
	padding: 60px 54px !important;
	background: linear-gradient(160deg, #2A2520 0%, #1B1815 100%);
}
.tnv-visit-panel .tnv-label .elementor-heading-title { color: var(--tnv-gold-light); }
.tnv-visit-title .elementor-heading-title { color: #FBF6EC !important; }
.tnv-visit-text p { margin: 0 0 26px; font-family: var(--tnv-sans); font-size: 16px !important; line-height: 1.7; color: rgba(251, 246, 236, .78); }

/* Form on the dark panel. */
.tnv-form--visit .tnv-form__field label { color: #FBF6EC; letter-spacing: .04em; text-transform: none; font-size: 14px !important; }
.tnv-form--visit .tnv-form__field label span { color: var(--tnv-gold-light); }
.tnv-form--visit input[type="text"],
.tnv-form--visit input[type="email"],
.tnv-form--visit input[type="tel"],
.tnv-form--visit textarea {
	border: 1px solid transparent;
	border-radius: 999px;
	background: #fff;
	padding: 14px 20px;
}
.tnv-form--visit textarea { border-radius: 22px; min-height: 130px; }
.tnv-form--visit input:focus,
.tnv-form--visit textarea:focus { border-color: var(--tnv-gold-light); box-shadow: 0 0 0 3px rgba(201, 162, 74, .3); }
.tnv-form--visit ::placeholder { color: #8A857E; }

@media (max-width: 1024px) {
	.tnv-visit-photo { min-height: 460px; }
	.tnv-visit-panel > .elementor-widget-wrap { padding: 44px 32px !important; }
}
@media (max-width: 767px) {
	#tnv-visit > .elementor-container { border-radius: 22px; }
	.tnv-visit-photo { min-height: 420px; }
	.tnv-visit-photo > .elementor-widget-wrap { padding: 16px !important; }
	.tnv-visit-card { padding: 20px; }
	.tnv-visit-card__grid { grid-template-columns: 1fr; }
	.tnv-visit-card__phone a { font-size: 22px; }
	.tnv-visit-panel > .elementor-widget-wrap { padding: 34px 20px !important; }
}

/* ==========================================================================
   Services page: category tiles (photo + dark panel, alternating sides)
   ========================================================================== */

.tnv-tile { height: 100%; }
.tnv-tile > .elementor-container { height: 100%; min-height: 300px; }
.tnv-tile-col > .elementor-widget-wrap { height: 100%; }

.tnv-tile-photo { min-height: 300px; }
.tnv-tile-photo > .elementor-widget-wrap { align-content: flex-end; padding: 18px !important; }
.tnv-tile-pill { width: 100%; }
.tnv-tile-pill .elementor-heading-title {
	display: inline-block;
	padding: 9px 20px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
	font-family: var(--tnv-serif);
	font-size: 18px !important;
	font-weight: 500;
	color: var(--tnv-ink);
}

.tnv-tile-panel > .elementor-widget-wrap {
	align-content: flex-start;
	height: 100%;
	padding: 26px 22px 22px !important;
	background: #3E2F20;
	color: #F6EEDF;
}
.tnv-tile-icon .elementor-icon { color: var(--tnv-gold-light); font-size: 34px; }
.tnv-tile-icon .elementor-icon svg { width: 34px; height: 34px; fill: var(--tnv-gold-light); }
.tnv-tile-icon { margin-bottom: 18px !important; }
.tnv-tile-tagline .elementor-heading-title {
	margin-bottom: 14px;
	font-family: var(--tnv-sans);
	font-size: 15.5px !important;
	font-weight: 500;
	line-height: 1.5;
	color: #FBF6EC;
}
.tnv-tile-list .elementor-icon-list-item a,
.tnv-tile-list .elementor-icon-list-text {
	font-family: var(--tnv-sans);
	font-size: 14.5px !important;
	line-height: 1.45;
	color: #F6EEDF !important;
	transition: color .18s ease;
}
.tnv-tile-list .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--tnv-gold-light) !important; }
.tnv-tile-list .elementor-icon-list-icon svg,
.tnv-tile-list .elementor-icon-list-icon i { width: 5px; font-size: 5px; fill: #F6EEDF; color: #F6EEDF; }
.tnv-tile-list { margin-bottom: 18px !important; }

.tnv-tile-btn { margin-top: auto !important; width: 100% !important; }
.tnv-tile-btn .elementor-button {
	width: 100%;
	justify-content: center;
	padding: 13px 20px;
	border: 1px solid rgba(246, 238, 223, .75);
	border-radius: 999px;
	background: transparent;
	color: #FBF6EC;
	font-size: 14px !important;
}
.tnv-tile-btn .elementor-button:hover { background: var(--tnv-gold); border-color: var(--tnv-gold); color: #fff; }
.tnv-tile-btn .elementor-button-icon svg { fill: currentColor; width: 12px; }

@media (max-width: 767px) {
	.tnv-tile .elementor-column { width: 100% !important; }
	.tnv-tile-photo { min-height: 240px; }
	.tnv-tile-panel > .elementor-widget-wrap { padding: 24px 20px 22px !important; }
}

/* "Real Results" gallery: the tall photo is exactly as tall as the two photos beside it.
   The tall column takes its height from the right-hand pair, and its photo fills it, cropped from the centre. */
@media (min-width: 768px) {
	.tnv-results-gallery .elementor-inner-section > .elementor-container { align-items: stretch; }
	.tnv-results-gallery .elementor-inner-section .elementor-column:first-child > .elementor-widget-wrap { position: relative; height: 100%; }
	.tnv-results-gallery .tnv-result-img--tall { position: absolute !important; inset: 0 8px 0 0; margin: 0 !important; height: auto; }
	.tnv-results-gallery .tnv-result-img--tall .elementor-widget-container { height: 100%; }
	.tnv-results-gallery .tnv-result-img--tall img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100% !important;
		min-height: 0;
		aspect-ratio: auto;
		object-fit: cover;
		object-position: center 30%;
	}
}

/* ==========================================================================
   Blog grid: equal cards and page numbers
   ========================================================================== */

/* Every card in a row is the same height, with the same image shape. */
.tnv-posts { align-items: stretch; }
.tnv-post { height: 100%; }
.tnv-post__media { flex: 0 0 auto; aspect-ratio: 16 / 9; background: var(--tnv-cream-2); }
.tnv-post__media img { height: 100% !important; aspect-ratio: auto; }
/* Titles and excerpts take a fixed number of lines, so "Read more" lines up across the row. */
.tnv-post__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.2em); }
.tnv-post__excerpt p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tnv-post__body { flex: 1 1 auto; }
.tnv-post__more { margin-top: auto; }

/* Page numbers. */
.tnv-pager { margin-top: 44px; }
.tnv-pager ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tnv-pager .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	padding: 0 16px;
	border: 1px solid var(--tnv-gold-line);
	border-radius: 999px;
	background: #fff;
	font-family: var(--tnv-sans);
	font-size: 15px;
	color: var(--tnv-ink);
	text-decoration: none;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.tnv-pager a.page-numbers:hover { border-color: var(--tnv-gold); color: var(--tnv-gold-deep); }
.tnv-pager .page-numbers.current { background: linear-gradient(135deg, var(--tnv-gold-light), var(--tnv-gold-deep)); border-color: transparent; color: #fff; }
.tnv-pager .page-numbers.dots { border: 0; background: transparent; min-width: 0; padding: 0 4px; }
@media (max-width: 767px) {
	.tnv-pager { margin-top: 28px; }
	.tnv-pager .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; }
}
