/**
 * Luxury sections — B&A slider, stories, Instagram, concierge, footer.
 */

/* ===== BEFORE / AFTER CASES ===== */
.cases--lux {
	padding: var(--space-section) 0;
	background:
		radial-gradient(ellipse 55% 60% at 35% 45%, rgba(242, 140, 159, 0.2), transparent 55%),
		linear-gradient(180deg, #874A5D 0%, #7B3F59 48%, #1f1816 100%);
	color: var(--tolin-canvas);
	overflow: clip;
}

.cases__intro {
	margin-bottom: clamp(40px, 5vw, 64px);
	max-width: min(100%, 40rem);
}

.cases__display {
	margin: 0 0 clamp(16px, 2vw, 28px);
	font-family: var(--tolin-font-serif);
	font-size: var(--tolin-text-editorial);
	font-weight: 500;
	line-height: 1.05;
	color: var(--tolin-canvas);
}

.cases__lede {
	margin: 0;
	max-width: var(--measure-lede);
	font-size: var(--tolin-text-md);
	line-height: 1.75;
	color: rgba(255, 252, 250, 0.7);
	white-space: pre-line;
}

.cases__stage {
	display: grid;
	gap: 28px;
	align-items: center;
}

.ba-compare {
	position: relative;
	aspect-ratio: 4 / 5;
	max-height: 480px;
	min-height: 0;
	border-radius: 0 36px 0 0;
	overflow: hidden;
	box-shadow: var(--tolin-shadow-xl);
	user-select: none;
	touch-action: none;
	cursor: ew-resize;
}

.ba-compare__after,
.ba-compare__before {
	position: absolute;
	inset: 0;
	background: center / cover no-repeat;
}

.ba-compare__before {
	width: 50%;
	overflow: hidden;
	border-right: 2px solid rgba(255, 252, 250, 0.85);
	box-shadow: 8px 0 24px rgba(45, 40, 48, 0.25);
}

.ba-compare__label {
	position: absolute;
	top: 18px;
	padding: 7px 12px;
	border-radius: var(--tolin-radius-pill);
	background: rgba(45, 40, 48, 0.55);
	backdrop-filter: blur(8px);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tolin-canvas);
	z-index: 2;
}

.ba-compare__label--before { inset-inline-start: 16px; }
.ba-compare__label--after { inset-inline-end: 16px; }

.ba-compare__badge {
	position: absolute;
	inset-inline-start: 16px;
	bottom: 18px;
	z-index: 3;
	padding: 8px 14px;
	border-radius: var(--tolin-radius-pill);
	background: linear-gradient(135deg, var(--tolin-rose-vibrant), var(--tolin-rose));
	color: #FFFDFC;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ba-compare__handle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 44px;
	transform: translateX(-50%);
	z-index: 4;
	display: grid;
	place-items: center;
	outline: none;
}

.ba-compare__handle span {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--tolin-canvas);
	border: 2px solid var(--tolin-champagne);
	box-shadow: var(--tolin-shadow-md);
	position: relative;
}

.ba-compare__handle span::before,
.ba-compare__handle span::after {
	content: '';
	position: absolute;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 1.5px solid var(--tolin-mocha);
	border-inline-end: 1.5px solid var(--tolin-mocha);
	transform: translateY(-50%) rotate(45deg);
}

.ba-compare__handle span::before {
	inset-inline-start: 12px;
	transform: translateY(-50%) rotate(-135deg);
}

.ba-compare__handle span::after {
	inset-inline-end: 12px;
}

.cases__meta {
	padding: 28px 28px 24px;
	background: linear-gradient(160deg, rgba(255, 252, 250, 0.1), rgba(255, 252, 250, 0.04));
	border: 1px solid rgba(242, 140, 159, 0.32);
	border-radius: 28px;
	backdrop-filter: blur(14px);
	box-shadow: 0 24px 56px rgba(0, 0, 0, 0.35);
}

.cases__meta-kicker {
	margin: 0 0 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--tolin-champagne);
}

.cases__meta-title {
	margin: 0 0 22px;
	font-family: var(--tolin-font-serif);
	font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--tolin-canvas);
	max-width: 16ch;
}

.cases__facts {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: grid;
	gap: 14px;
}

.cases__facts li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: var(--tolin-text-sm);
	line-height: 1.5;
	color: rgba(255, 252, 250, 0.82);
}

.cases__facts .tolin-icon,
.cases__facts svg { color: var(--tolin-champagne); flex-shrink: 0; margin-top: 2px; }

.cases__thumbs {
	display: flex;
	gap: 10px;
	margin-top: 24px;
}

.cases__thumb {
	width: 72px;
	height: 72px;
	border-radius: 16px;
	border: 2px solid transparent;
	background: center / cover no-repeat;
	cursor: pointer;
	opacity: 0.7;
	transition: opacity var(--tolin-duration) ease, border-color var(--tolin-duration) ease, transform var(--tolin-duration) ease;
}

.cases__thumb:hover,
.cases__thumb.is-active {
	opacity: 1;
	border-color: var(--tolin-champagne);
	transform: translateY(-3px);
}

@media (min-width: 960px) {
	.cases__stage {
		grid-template-columns: 0.95fr 1.05fr;
		gap: clamp(28px, 4vw, 48px);
	}

	.ba-compare {
		aspect-ratio: 5 / 6;
		max-height: 520px;
	}
}

/* ===== CUSTOMER STORIES ===== */
.stories--lux {
	padding: var(--space-section) 0;
	background:
		radial-gradient(circle at 12% 8%, rgba(216, 111, 142, 0.14), transparent 40%),
		var(--tolin-ivory);
}

.stories__masthead {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: clamp(36px, 5vw, 56px);
}

.stories__display {
	margin: 0 0 12px;
	font-family: var(--tolin-font-serif);
	font-size: var(--tolin-text-editorial);
	font-weight: 500;
	line-height: 1.05;
	color: var(--tolin-mocha);
	max-width: 14ch;
}

.stories__lede {
	margin: 0;
	max-width: 42ch;
	font-size: var(--tolin-text-md);
	line-height: 1.7;
	color: var(--tolin-ink-muted);
}

.stories__nav { display: flex; gap: 10px; }

.stories__nav .carousel-btn {
	border-color: rgba(168, 95, 114, 0.35);
	color: var(--tolin-mocha);
	background: var(--tolin-canvas);
}

.stories__viewport { overflow: hidden; }

.stories__track {
	display: flex;
	gap: 22px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 12px;
}

.stories__track::-webkit-scrollbar { display: none; }

.story-card {
	flex: 0 0 min(86vw, 340px);
	scroll-snap-align: start;
	display: grid;
	background: var(--tolin-canvas);
	border-radius: 28px;
	overflow: hidden;
	border: 1px solid rgba(216, 111, 142, 0.25);
	box-shadow: var(--tolin-shadow-md);
	transition: transform var(--tolin-duration) var(--tolin-ease), box-shadow var(--tolin-duration) ease;
}

.story-card.is-featured {
	flex-basis: min(90vw, 640px);
	grid-template-columns: 0.85fr 1.15fr;
}

.story-card:hover {
	transform: translateY(-8px);
	box-shadow: var(--tolin-shadow-xl);
}

.story-card__media {
	position: relative;
	min-height: 200px;
	aspect-ratio: 4 / 5;
	background: var(--tolin-ivory-deep) center / cover no-repeat;
}

.story-card.is-featured .story-card__media {
	min-height: 0;
	height: 100%;
	aspect-ratio: auto;
}

.story-card__verified {
	position: absolute;
	top: 14px;
	inset-inline-start: 14px;
	padding: 6px 12px;
	border-radius: var(--tolin-radius-pill);
	background: rgba(255, 252, 250, 0.92);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tolin-rose);
}

.story-card__video {
	position: absolute;
	inset-inline-end: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-radius: var(--tolin-radius-pill);
	background: rgba(45, 40, 48, 0.72);
	color: var(--tolin-canvas);
	font-size: 12px;
	font-weight: 600;
	border: 1px solid rgba(216, 111, 142, 0.4);
	cursor: pointer;
}

.story-card__play {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--tolin-rose);
	font-size: 10px;
}

.story-card__body {
	padding: 22px 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.story-card__stars {
	color: var(--tolin-champagne-rich);
	letter-spacing: 2px;
	font-size: 14px;
}

.story-card__treatment {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tolin-rose);
}

.story-card__quote {
	margin: 0;
	font-family: var(--tolin-font-serif);
	font-size: clamp(1.15rem, 1rem + 0.7vw, 1.55rem);
	font-style: italic;
	line-height: 1.45;
	color: var(--tolin-mocha);
}

.story-card:not(.is-featured) .story-card__quote {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.story-card__excerpt {
	margin: 0;
	font-size: var(--tolin-text-sm);
	line-height: 1.6;
	color: var(--tolin-ink-muted);
}

.story-card.is-featured .story-card__excerpt { display: none; }

.story-card__who {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: 8px;
}

.story-card__who strong {
	font-size: 14px;
	color: var(--tolin-mocha);
}

.story-card__who span {
	font-size: 12px;
	color: var(--tolin-ink-muted);
}

@media (max-width: 800px) {
	.story-card.is-featured {
		flex-basis: min(92vw, 420px);
		grid-template-columns: 1fr;
	}
}

/* ===== INSTAGRAM MASONRY ===== */
.ig--lux {
	padding: var(--space-section) 0;
	background:
		radial-gradient(circle at 70% 0%, rgba(240, 217, 220, 0.45), transparent 45%),
		linear-gradient(180deg, #FBF6F1 0%, var(--tolin-canvas) 100%);
	overflow: clip;
}

.ig__head {
	display: grid;
	gap: 18px;
	margin-bottom: clamp(32px, 5vw, 52px);
	align-items: end;
}

.ig__brand {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ig__mark {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 16px;
	background: linear-gradient(145deg, #f58529, #dd2a7b 50%, #8134af);
	color: #fff;
}

.ig__display {
	margin: 0;
	font-family: var(--tolin-font-serif);
	font-size: clamp(2rem, 1.4rem + 1.8vw, 3rem);
	font-weight: 500;
	color: var(--tolin-mocha);
}

.ig__lede {
	margin: 0;
	max-width: 44ch;
	font-size: var(--tolin-text-md);
	line-height: 1.7;
	color: var(--tolin-ink-muted);
}

@media (min-width: 900px) {
	.ig__head {
		grid-template-columns: 1.1fr 1fr auto;
	}
}

.ig__masonry {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-auto-rows: minmax(64px, 8vw);
	gap: 14px;
	width: 100%;
}

.ig__tile {
	position: relative;
	display: block;
	min-height: 100%;
	height: 100%;
	overflow: hidden;
	background: var(--tolin-ivory-deep) center / cover no-repeat;
	box-shadow: var(--tolin-shadow-md);
	transition: transform var(--tolin-duration-slow) var(--tolin-ease), box-shadow var(--tolin-duration) ease;
}

.ig__tile:hover {
	transform: translateY(-6px) scale(1.01);
	box-shadow: var(--tolin-shadow-xl);
	z-index: 2;
}

.ig__tile:hover .ig__veil { opacity: 1; }
.ig__tile:hover .ig__meta { opacity: 1; transform: translateY(0); }

.ig__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 30%, rgba(45, 40, 48, 0.72));
	opacity: 0.35;
	transition: opacity var(--tolin-duration) ease;
}

.ig__reel {
	position: absolute;
	top: 14px;
	inset-inline-end: 14px;
	z-index: 2;
	padding: 6px 12px;
	border-radius: var(--tolin-radius-pill);
	background: rgba(255, 252, 250, 0.92);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tolin-mocha);
}

.ig__meta {
	position: absolute;
	inset-inline: 14px;
	bottom: 14px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 6px;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity var(--tolin-duration) ease, transform var(--tolin-duration) ease;
	color: var(--tolin-canvas);
}

.ig__likes { font-size: 13px; font-weight: 600; }
.ig__cta {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tolin-champagne);
}

.ig__tile--1 { grid-column: 1 / span 5; grid-row: span 5; border-radius: 0 44px 0 0; }
.ig__tile--2 { grid-column: 6 / span 4; grid-row: span 3; border-radius: 28px 0 28px 0; margin-top: 40px; }
.ig__tile--3 { grid-column: 10 / span 3; grid-row: span 5; border-radius: 0 0 0 40px; margin-top: 8px; }
.ig__tile--4 { grid-column: 6 / span 3; grid-row: span 4; border-radius: 0 32px 0 24px; margin-top: -8px; }
.ig__tile--5 { grid-column: 1 / span 4; grid-row: span 3; border-radius: 36px 0 0 0; margin-top: 12px; }
.ig__tile--6 { grid-column: 9 / span 4; grid-row: span 2; border-radius: 0 0 48px 12px; margin-top: 24px; }

@media (max-width: 767px) {
	.ig__masonry {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 140px;
		gap: 10px;
	}
	.ig__tile--1,
	.ig__tile--2,
	.ig__tile--3,
	.ig__tile--4,
	.ig__tile--5,
	.ig__tile--6 {
		grid-column: auto;
		grid-row: span 1;
		margin: 0;
		border-radius: 18px;
	}
	.ig__tile--1 { grid-column: 1 / -1; grid-row: span 2; border-radius: 0 28px 0 0; }
	.ig__tile--3,
	.ig__tile--5 { grid-row: span 2; }
	.ig__meta { opacity: 1; transform: none; }
}

/* ===== CONCIERGE CONTACT ===== */
.concierge--lux {
	padding: var(--space-section) 0;
	background:
		linear-gradient(180deg, var(--tolin-canvas) 0%, var(--tolin-ivory) 100%);
	overflow: clip;
}

.concierge__shell {
	display: grid;
	gap: clamp(24px, 4vw, 48px);
	max-width: var(--tolin-container);
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 32px);
	align-items: stretch;
}

.concierge__visual {
	position: relative;
	min-height: 280px;
	border-radius: 0 32px 0 0;
	overflow: hidden;
	background: var(--tolin-mocha) center / cover no-repeat;
}

.concierge__visual-veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(45, 40, 48, 0.25), rgba(45, 40, 48, 0.72));
}

.concierge__visual-card {
	position: relative;
	z-index: 1;
	padding: clamp(22px, 3vw, 32px);
	color: var(--tolin-canvas);
	max-width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 100%;
	box-sizing: border-box;
}

.concierge__display {
	margin: 0 0 14px;
	font-family: var(--tolin-font-serif);
	font-size: clamp(1.45rem, 1.1rem + 1vw, 2rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--tolin-canvas);
	max-width: 14ch;
}

.concierge__benefits {
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
	display: grid;
	gap: 8px;
}

.concierge__benefits {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	gap: 12px;
}

.concierge__benefits li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: var(--tolin-text-sm);
	line-height: 1.55;
	color: rgba(255, 252, 250, 0.88);
}

.concierge__benefits .tolin-icon,
.concierge__benefits svg { color: var(--tolin-champagne); flex-shrink: 0; margin-top: 2px; }

.concierge__promise {
	margin: 0;
	padding: 12px 16px;
	border-radius: var(--tolin-radius-pill);
	background: rgba(216, 111, 142, 0.18);
	border: 1px solid rgba(216, 111, 142, 0.4);
	font-size: 13px;
	font-weight: 600;
	color: var(--tolin-champagne);
	width: fit-content;
}

.concierge__panel {
	padding: 0;
	background: transparent;
}

.concierge__info {
	display: grid;
	gap: 14px;
	margin-bottom: 18px;
}

.concierge__info-item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: var(--tolin-text-sm);
	line-height: 1.55;
	color: var(--tolin-ink);
}

.concierge__info-item .tolin-icon,
.concierge__info-item svg { color: var(--tolin-rose); flex-shrink: 0; }

.concierge__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 22px;
}

.concierge__trust span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 12px;
	border-radius: var(--tolin-radius-pill);
	background: var(--tolin-blush);
	font-size: 12px;
	font-weight: 600;
	color: var(--tolin-rose-deep);
}

.concierge__form-shell {
	padding: clamp(28px, 3.5vw, 40px);
	border-radius: 28px;
	background: linear-gradient(180deg, #FFFCFA, var(--tolin-ivory));
	border: 1px solid rgba(216, 111, 142, 0.4);
	box-shadow: var(--tolin-shadow-xl);
}

.concierge__form-label {
	margin: 0 0 10px;
	font-family: var(--tolin-font-serif);
	font-size: clamp(1.55rem, 1.2rem + 1vw, 2.1rem);
	font-weight: 500;
	color: var(--tolin-mocha);
}

.concierge__form-lede {
	margin: 0 0 18px;
	font-size: var(--tolin-text-sm);
	line-height: 1.6;
	color: var(--tolin-ink-muted);
}

.concierge__wa {
	margin-top: 14px;
	width: 100%;
}

@media (min-width: 960px) {
	.concierge__shell {
		grid-template-columns: 0.68fr 1.32fr;
		min-height: 0;
		align-items: start;
	}

	.concierge__visual {
		min-height: 0;
		max-height: 420px;
		aspect-ratio: 4 / 5;
		align-self: start;
		position: sticky;
		top: 104px;
	}

	.concierge__panel {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		padding-top: 0;
	}

	.concierge__benefits li:nth-child(n+3) {
		display: none;
	}
}

@media (max-width: 959px) {
	.concierge__visual {
		min-height: 0;
		aspect-ratio: 16 / 9;
		max-height: 280px;
	}
}

/* ===== FOOTER — superseded by maison atelier styles ===== */
.site-footer--lux.site-footer--atelier {
	/* layout owned by maison.css */
}
