/* Gold Addis Massage — 2026 luxury UI (sparkling gold, modern glass) */

:root {
	--abs-radius: 18px;
	--abs-radius-sm: 12px;
	--abs-shadow: 0 28px 72px rgba(0, 0, 0, 0.55);
	--abs-glow: 0 0 48px rgba(var(--abs-primary-rgb), 0.35);
	--abs-gold-shimmer: linear-gradient(115deg, var(--abs-primary-light) 0%, var(--abs-primary) 35%, var(--abs-accent) 55%, var(--abs-primary-dark) 100%);
	--abs-font-sans: 'DM Sans', system-ui, -apple-system, sans-serif;
	--abs-font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--abs-header-h: 76px;
	--abs-safe-bottom: env(safe-area-inset-bottom, 0px);
	--font-sans: var(--abs-font-sans);
	--font-serif: var(--abs-font-serif);
}

*, *::before, *::after { box-sizing: border-box; }
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

body {
	margin: 0;
	background: var(--abs-bg);
	color: var(--abs-text);
	font-family: var(--abs-font-sans);
	font-weight: 400;
	line-height: 1.65;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	min-height: 100dvh;
}

/* Sparkling gold atmosphere */
.abs-sparkle-field {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}
#abs-sparkle-canvas {
	width: 100%;
	height: 100%;
	display: block;
	opacity: 0.85;
}

body::before {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background:
		radial-gradient(ellipse 90% 60% at 12% 8%, rgba(var(--abs-primary-rgb), 0.22), transparent 58%),
		radial-gradient(ellipse 65% 50% at 88% 18%, rgba(255, 215, 0, 0.12), transparent 62%),
		radial-gradient(ellipse 70% 55% at 50% 100%, rgba(var(--abs-primary-rgb), 0.14), transparent 60%),
		linear-gradient(180deg, color-mix(in srgb, var(--abs-bg) 92%, #1a1408) 0%, var(--abs-bg) 45%, color-mix(in srgb, var(--abs-bg) 88%, #120e08) 100%);
	animation: absGoldPulse 14s ease-in-out infinite;
}
body::after {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: 0.045;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	mix-blend-mode: soft-light;
}
@keyframes absGoldPulse {
	0%, 100% { opacity: 1; filter: brightness(1); }
	50% { opacity: 0.96; filter: brightness(1.06); }
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; }

/* Glass surfaces — modern gold edge */
.glass-panel, .abs-glass {
	background: linear-gradient(145deg, color-mix(in srgb, var(--abs-surface) 88%, transparent), color-mix(in srgb, var(--abs-surface) 72%, transparent));
	backdrop-filter: blur(24px) saturate(160%);
	-webkit-backdrop-filter: blur(24px) saturate(160%);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 28%, transparent);
	border-radius: var(--abs-radius);
	box-shadow: var(--abs-shadow), inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 12%, transparent);
}
.abs-glass:hover {
	border-color: color-mix(in srgb, var(--abs-primary) 65%, transparent);
	box-shadow: var(--abs-glow), var(--abs-shadow), inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 18%, transparent);
	transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

/* Ambient gold orbs */
.orb {
	position: fixed;
	border-radius: 50%;
	filter: blur(110px);
	opacity: 0.16;
	z-index: 0;
	pointer-events: none;
	will-change: transform;
	animation: absOrbFloat 18s ease-in-out infinite;
}
.orb-gold { width: min(480px, 95vw); height: 480px; background: var(--abs-primary); top: 12%; left: -12%; }
.orb-champagne { width: min(540px, 98vw); height: 540px; background: var(--abs-accent); top: 42%; right: -18%; animation-delay: -6s; }
.orb-sm { width: 300px; height: 300px; bottom: 72px; left: 28%; animation-delay: -10s; opacity: 0.12; }
@keyframes absOrbFloat {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33% { transform: translate(2%, -1.5%) scale(1.03); }
	66% { transform: translate(-1.5%, 2%) scale(0.98); }
}

/* Header — sticky glass gold bar */
.abs-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	height: var(--abs-header-h);
	padding: 0 max(1.25rem, env(safe-area-inset-right)) 0 max(1.25rem, env(safe-area-inset-left));
	background: color-mix(in srgb, var(--abs-surface) 78%, transparent);
	backdrop-filter: blur(28px) saturate(170%);
	-webkit-backdrop-filter: blur(28px) saturate(170%);
	border-bottom: 1px solid color-mix(in srgb, var(--abs-primary) 22%, transparent);
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 10%, transparent);
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.abs-header.is-scrolled {
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.42), inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 14%, transparent);
	border-bottom-color: color-mix(in srgb, var(--abs-primary) 35%, transparent);
}

.abs-brand {
	font-family: var(--abs-font-serif);
	font-size: clamp(1.08rem, 2.8vw, 1.55rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	background: var(--abs-gold-shimmer);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	white-space: nowrap;
	text-transform: none;
	filter: drop-shadow(0 2px 12px rgba(var(--abs-primary-rgb), 0.25));
}
.abs-brand-star {
	color: var(--abs-accent);
	font-size: 0.72em;
	margin-left: 0.35rem;
	letter-spacing: 0;
	-webkit-text-fill-color: var(--abs-accent);
	text-shadow: 0 0 20px color-mix(in srgb, var(--abs-accent) 65%, transparent);
}

.abs-nav { display: none; gap: 1.75rem; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--abs-text-muted); }
@media (min-width: 768px) { .abs-nav { display: flex; } }
.abs-nav a {
	position: relative;
	padding: 0.35rem 0;
	transition: color 0.25s;
}
.abs-nav a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: var(--abs-primary);
	transition: width 0.3s ease;
}
.abs-nav a:hover { color: var(--abs-primary); }
.abs-nav a:hover::after { width: 100%; }

.abs-header-actions {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}
.abs-header-cta { display: none; }
@media (min-width: 768px) {
	.abs-header-cta { display: inline-flex; }
}

/* Mobile menu */
.abs-menu-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--abs-border);
	border-radius: var(--abs-radius-sm);
	color: var(--abs-primary);
	font-size: 1.25rem;
}
@media (min-width: 768px) { .abs-menu-toggle { display: none; } }

.abs-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: color-mix(in srgb, var(--abs-bg) 92%, transparent);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	padding: 2rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.35s ease, visibility 0.35s;
}
.abs-mobile-nav.is-open { opacity: 1; visibility: visible; }
.abs-mobile-nav a {
	font-family: var(--abs-font-serif);
	font-size: 1.5rem;
	color: var(--abs-text);
	letter-spacing: 0.08em;
	min-height: 44px;
	display: flex;
	align-items: center;
}
.abs-mobile-nav a:hover { color: var(--abs-primary); }
.abs-mobile-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 44px;
	height: 44px;
	font-size: 1.5rem;
	color: var(--abs-text-muted);
}

/* Buttons */
.abs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.65rem 1.5rem;
	border: 1px solid var(--abs-primary);
	background: transparent;
	color: var(--abs-primary);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border-radius: 999px;
	transition: transform 0.25s, background 0.35s, color 0.35s, box-shadow 0.35s;
}
.abs-btn:active { transform: scale(0.98); }
.abs-btn-outline:hover {
	background: var(--abs-primary);
	color: var(--abs-bg);
	box-shadow: var(--abs-glow);
}
.abs-btn-gold {
	background: var(--abs-gold-shimmer);
	background-size: 200% 200%;
	animation: absGoldShimmer 6s ease infinite;
	color: #1a1208;
	border-color: transparent;
	font-weight: 600;
	padding: 1rem 2.25rem;
	box-shadow: 0 14px 40px color-mix(in srgb, var(--abs-primary) 42%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.abs-btn-gold:hover {
	filter: brightness(1.08);
	color: #1a1208;
	border-color: transparent;
	box-shadow: 0 18px 48px color-mix(in srgb, var(--abs-primary) 55%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.45);
	transform: translateY(-1px);
}
@keyframes absGoldShimmer {
	0%, 100% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
}
.abs-btn.block { width: 100%; }
.abs-btn-telegram { background: rgba(37, 99, 235, 0.15); border-color: rgba(59, 130, 246, 0.45); }
.abs-btn-whatsapp { background: rgba(22, 163, 74, 0.15); border-color: rgba(34, 197, 94, 0.45); }

.abs-container {
	width: min(1140px, 100%);
	margin: 0 auto;
	padding: 0 max(1.25rem, env(safe-area-inset-left)) 0 max(1.25rem, env(safe-area-inset-right));
	position: relative;
	z-index: 1;
}

.abs-section {
	padding: clamp(4rem, 10vw, 7rem) 0;
	position: relative;
	z-index: 1;
}
.center { text-align: center; }

.abs-eyebrow {
	display: inline-block;
	color: var(--abs-primary-light);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	font-size: 0.62rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
	padding: 0.4rem 1rem;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 45%, transparent);
	background: linear-gradient(135deg, color-mix(in srgb, var(--abs-primary) 14%, transparent), color-mix(in srgb, var(--abs-primary) 6%, transparent));
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 20%, transparent);
}
.abs-eyebrow-blue {
	color: var(--abs-accent);
	border-color: color-mix(in srgb, var(--abs-accent) 45%, transparent);
	background: color-mix(in srgb, var(--abs-accent) 12%, transparent);
	text-shadow: 0 0 14px color-mix(in srgb, var(--abs-accent) 45%, transparent);
}

.abs-section-title {
	font-family: var(--abs-font-serif);
	font-size: clamp(1.9rem, 5.2vw, 3.15rem);
	font-weight: 700;
	color: var(--abs-text);
	margin: 0 0 1rem;
	line-height: 1.1;
	letter-spacing: -0.025em;
}
.abs-body { color: var(--abs-text-muted); line-height: 1.8; font-size: clamp(0.95rem, 2vw, 1.05rem); }
.abs-body.narrow { max-width: 38rem; margin: 0 auto; }
.abs-divider {
	width: 3rem;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--abs-primary), transparent);
	margin: 1.25rem auto 0;
	border-radius: 2px;
}
.abs-section-head.center { text-align: center; margin-bottom: clamp(2rem, 5vw, 3.5rem); }

/* Scroll reveal — hide only until made visible; failsafe prevents “blank section” on mobile */
.abs-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.65s ease, transform 0.65s ease;
}
.abs-reveal.is-visible {
	opacity: 1;
	transform: none;
}
/* If JS is slow/blocked, content still appears (2.2s max) */
@keyframes abs-reveal-fallback {
	to {
		opacity: 1;
		transform: none;
	}
}
.abs-reveal:not(.is-visible) {
	animation: abs-reveal-fallback 0.45s ease 2.2s forwards;
}
/* Short viewports / reduced motion: always show — prevents empty rituals/services cards */
@media (prefers-reduced-motion: reduce) {
	.abs-reveal,
	.abs-reveal:not(.is-visible) {
		opacity: 1;
		transform: none;
		animation: none;
	}
}
@media (max-width: 768px) {
	.abs-reveal {
		/* Softer start so content is readable even mid-animation */
		opacity: 0.08;
		transform: translateY(10px);
	}
	.abs-reveal.is-visible,
	.abs-reveal:not(.is-visible) {
		animation: abs-reveal-fallback 0.4s ease 0.6s forwards;
	}
	.abs-reveal.is-visible {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* Admin preview highlight */
.abs-preview-highlight {
	outline: 3px solid var(--abs-accent) !important;
	outline-offset: 6px;
	box-shadow: 0 0 0 6px color-mix(in srgb, var(--abs-accent) 25%, transparent), var(--abs-glow) !important;
	animation: absPreviewPulse 1.5s ease-in-out 2;
}
@keyframes absPreviewPulse {
	0%, 100% { outline-color: var(--abs-accent); }
	50% { outline-color: var(--abs-primary); }
}

/* Hero */
.abs-hero {
	position: relative;
	min-height: 100dvh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--abs-header-h);
	overflow: hidden;
}
.abs-hero-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	transform: scale(1.04);
	animation: absHeroPulse 12s ease-in-out infinite;
}
.abs-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.42;
	filter: contrast(1.15) brightness(0.5) sepia(0.25) saturate(1.1);
}
.abs-hero-gradient {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, var(--abs-bg) 0%, transparent 38%, transparent 62%, color-mix(in srgb, var(--abs-bg) 85%, transparent) 100%),
		radial-gradient(ellipse at center, color-mix(in srgb, var(--abs-primary) 8%, transparent) 0%, transparent 45%),
		radial-gradient(ellipse at center, transparent 25%, var(--abs-bg) 100%);
}
@keyframes absHeroPulse {
	0%, 100% { transform: scale(1.04); }
	50% { transform: scale(1.07); }
}

.abs-hero-inner { position: relative; z-index: 2; width: 100%; padding: 1.5rem; }
.abs-hero-copy { max-width: 56rem; margin: 0 auto; text-align: center; }
.abs-hero-title {
	font-family: var(--abs-font-serif);
	font-size: clamp(2.6rem, 10vw, 6rem);
	color: #fff9f0;
	line-height: 0.96;
	margin: 0.75rem 0;
	letter-spacing: -0.025em;
	font-weight: 700;
	text-shadow: 0 16px 48px rgba(0, 0, 0, 0.5), 0 0 40px rgba(var(--abs-primary-rgb), 0.15);
}
.abs-hero-accent {
	font-style: italic;
	font-weight: 600;
	display: block;
	margin-top: 0.08em;
	background: var(--abs-gold-shimmer);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: absGoldShimmer 8s ease infinite;
	filter: drop-shadow(0 4px 20px rgba(var(--abs-primary-rgb), 0.35));
}
.abs-hero-sub {
	color: color-mix(in srgb, var(--abs-text) 78%, var(--abs-text-muted));
	max-width: 38rem;
	margin: 1.25rem auto 2rem;
	font-size: clamp(1rem, 2.6vw, 1.2rem);
	line-height: 1.65;
}

.abs-scroll-hint {
	position: absolute;
	bottom: max(1.5rem, var(--abs-safe-bottom));
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	opacity: 0.55;
	z-index: 2;
}
.abs-scroll-hint span {
	font-size: 0.58rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--abs-primary);
}
.abs-scroll-line {
	width: 1px;
	height: 2.5rem;
	margin: 0.5rem auto 0;
	background: linear-gradient(to bottom, var(--abs-primary), transparent);
	animation: absScrollLine 2s ease-in-out infinite;
}
@keyframes absScrollLine {
	0%, 100% { opacity: 0.4; transform: scaleY(0.8); }
	50% { opacity: 1; transform: scaleY(1); }
}

/* Hero layouts */
.abs-hero-style-2 .abs-hero-split,
.abs-hero-style-3 .abs-hero-split {
	display: grid;
	gap: 2rem;
	align-items: center;
	max-width: 1140px;
	margin: 0 auto;
}
@media (min-width: 960px) {
	.abs-hero-style-2 .abs-hero-split { grid-template-columns: 1fr 1fr; text-align: left; }
	.abs-hero-style-2 .abs-hero-copy { margin: 0; text-align: left; }
	.abs-hero-style-3 .abs-hero-split { grid-template-columns: 1fr 1fr; }
	.abs-hero-style-3 .abs-hero-copy { order: 2; text-align: left; margin: 0; }
	.abs-hero-style-3 .abs-hero-side-image { order: 1; }
}
.abs-hero-side-image img {
	width: 100%;
	height: min(65vh, 520px);
	object-fit: cover;
	border-radius: var(--abs-radius);
	border: 1px solid var(--abs-border);
	box-shadow: var(--abs-shadow);
}
.abs-hero-style-4 .abs-hero-bg img { opacity: 0.18; }
.abs-hero-style-4 .abs-hero-title { font-size: clamp(2rem, 7vw, 4.25rem); }
.abs-hero-style-5 { align-items: flex-end; padding-bottom: clamp(3rem, 8vw, 5rem); }
.abs-hero-style-5 .abs-hero-copy {
	text-align: left;
	margin: 0;
	max-width: 720px;
	padding: 2rem;
	background: color-mix(in srgb, var(--abs-surface) 70%, transparent);
	border-radius: var(--abs-radius);
	border: 1px solid var(--abs-border);
	backdrop-filter: blur(16px);
}

/* Style 6 — Diagonal reveal */
.abs-hero-style-6 .abs-hero-bg img {
	opacity: 0.55;
	filter: contrast(1.15) brightness(0.5) saturate(1.05);
}
.abs-hero-diag {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(118deg, var(--abs-bg) 0%, var(--abs-bg) 42%, transparent 42.2%, transparent 100%);
	pointer-events: none;
}
.abs-hero-style-6 .abs-hero-gradient {
	background:
		linear-gradient(to top, var(--abs-bg) 0%, transparent 35%),
		radial-gradient(ellipse at 70% 40%, transparent 20%, color-mix(in srgb, var(--abs-bg) 55%, transparent) 100%);
}
.abs-hero-style-6 .abs-hero-split {
	display: grid;
	gap: 2rem;
	align-items: center;
	max-width: 1180px;
	margin: 0 auto;
}
@media (min-width: 960px) {
	.abs-hero-style-6 .abs-hero-split { grid-template-columns: 1.05fr 0.95fr; }
	.abs-hero-style-6 .abs-hero-copy { text-align: left; margin: 0; }
}
.abs-hero-style-6 .abs-hero-title {
	font-size: clamp(2.75rem, 10vw, 6.25rem);
	transform: rotate(-1.5deg);
	transform-origin: left center;
}
.abs-hero-style-6 .abs-hero-side-image {
	position: relative;
	justify-self: end;
}
.abs-hero-style-6 .abs-hero-side-image img {
	height: min(72vh, 600px);
	width: min(100%, 420px);
	border-radius: 2px 48px 2px 48px;
	border: none;
	box-shadow: -24px 24px 0 color-mix(in srgb, var(--abs-primary) 22%, transparent), var(--abs-shadow);
	clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
	animation: absHeroFloat 7s ease-in-out infinite;
}
.abs-hero-frame-glow {
	position: absolute;
	inset: -8% -12%;
	background: radial-gradient(circle at 60% 40%, color-mix(in srgb, var(--abs-accent) 35%, transparent), transparent 65%);
	filter: blur(28px);
	z-index: -1;
	pointer-events: none;
}
@keyframes absHeroFloat {
	0%, 100% { transform: translateY(0) rotate(0.4deg); }
	50% { transform: translateY(-10px) rotate(-0.4deg); }
}

/* Style 7 — Magazine stack */
.abs-hero-style-7 .abs-hero-bg img { opacity: 0.22; filter: grayscale(0.35) brightness(0.45) contrast(1.1); }
.abs-hero-style-7 .abs-hero-split {
	display: grid;
	gap: 2.5rem;
	align-items: end;
	max-width: 1140px;
	margin: 0 auto;
}
@media (min-width: 960px) {
	.abs-hero-style-7 .abs-hero-split { grid-template-columns: 1.2fr 0.8fr; }
	.abs-hero-style-7 .abs-hero-copy { text-align: left; margin: 0; }
}
.abs-hero-rules {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-bottom: 1.25rem;
}
.abs-hero-rules span {
	display: block;
	height: 1px;
	background: linear-gradient(90deg, var(--abs-primary), transparent);
}
.abs-hero-rules span:first-child { width: 4.5rem; }
.abs-hero-rules span:last-child { width: 2.5rem; opacity: 0.55; }
.abs-hero-style-7 .abs-hero-title {
	display: flex;
	flex-direction: column;
	gap: 0;
	line-height: 0.88;
}
.abs-hero-stack {
	display: block;
	font-size: clamp(3rem, 12vw, 7rem);
	letter-spacing: -0.04em;
	text-transform: uppercase;
	color: #fff8f0;
}
.abs-hero-stack-accent {
	font-size: clamp(2.2rem, 8vw, 4.5rem);
	font-style: italic;
	letter-spacing: 0.08em;
	text-transform: none;
	margin-top: 0.15em;
	align-self: flex-start;
	padding-left: 0.15em;
	border-left: 3px solid var(--abs-accent);
}
.abs-hero-style-7 .abs-hero-sub {
	max-width: 28rem;
	margin-left: 0;
	border-top: 1px solid var(--abs-border);
	padding-top: 1.25rem;
}
.abs-hero-style-7 .abs-hero-side-image {
	position: relative;
	justify-self: center;
}
.abs-hero-style-7 .abs-hero-side-image img {
	width: min(100%, 340px);
	height: min(58vh, 480px);
	border-radius: 0;
	border: 1px solid var(--abs-primary);
	box-shadow: 18px 18px 0 var(--abs-surface), 19px 19px 0 var(--abs-primary);
	object-position: top center;
}
.abs-hero-photo-caption {
	position: absolute;
	bottom: 1rem;
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.62rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--abs-primary-light);
	background: color-mix(in srgb, var(--abs-bg) 75%, transparent);
	padding: 0.45rem 0.9rem;
	backdrop-filter: blur(8px);
	white-space: nowrap;
}

/* Style 8 — Immersive veil */
.abs-hero-style-8 {
	align-items: center;
}
.abs-hero-style-8 .abs-hero-bg img {
	opacity: 0.72;
	filter: contrast(1.1) brightness(0.62) saturate(1.05);
	animation: absHeroKen 18s ease-in-out infinite alternate;
}
@keyframes absHeroKen {
	from { transform: scale(1.05) translate(0, 0); }
	to { transform: scale(1.12) translate(-2%, 1%); }
}
.abs-hero-style-8 .abs-hero-bg { animation: none; transform: none; }
.abs-hero-veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		radial-gradient(ellipse 55% 50% at 50% 48%, color-mix(in srgb, var(--abs-bg) 55%, transparent) 0%, transparent 70%),
		linear-gradient(to top, var(--abs-bg) 0%, transparent 28%);
	pointer-events: none;
}
.abs-hero-style-8 .abs-hero-gradient { opacity: 0.45; }
.abs-hero-veil-panel {
	max-width: 40rem;
	margin: 0 auto;
	padding: clamp(1.75rem, 4vw, 2.75rem);
	text-align: center;
	background: color-mix(in srgb, var(--abs-surface) 42%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 35%, transparent);
	border-radius: 2px;
	backdrop-filter: blur(22px) saturate(130%);
	-webkit-backdrop-filter: blur(22px) saturate(130%);
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.45);
	position: relative;
	overflow: hidden;
}
.abs-hero-veil-panel::before {
	content: '';
	position: absolute;
	top: 0;
	left: -40%;
	width: 40%;
	height: 100%;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--abs-primary-light) 18%, transparent), transparent);
	animation: absVeilShimmer 5.5s ease-in-out infinite;
	pointer-events: none;
}
@keyframes absVeilShimmer {
	0%, 100% { transform: translateX(0); opacity: 0; }
	40% { opacity: 1; }
	100% { transform: translateX(320%); opacity: 0; }
}
.abs-hero-style-8 .abs-hero-title {
	font-size: clamp(2.4rem, 8vw, 5rem);
}
.abs-hero-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
	justify-content: center;
}
.abs-hero-style-6 .abs-hero-cta-row,
.abs-hero-style-7 .abs-hero-cta-row { justify-content: flex-start; }
.abs-hero-phone-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.85rem 1.25rem;
	border: 1px solid var(--abs-border);
	border-radius: 999px;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	color: var(--abs-primary-light);
	background: color-mix(in srgb, var(--abs-bg) 40%, transparent);
	transition: border-color 0.25s, color 0.25s, background 0.25s;
}
.abs-hero-phone-chip:hover {
	border-color: var(--abs-primary);
	color: #fff;
	background: color-mix(in srgb, var(--abs-primary) 18%, transparent);
}

@media (prefers-reduced-motion: reduce) {
	.abs-hero-style-6 .abs-hero-side-image img,
	.abs-hero-style-8 .abs-hero-bg img,
	.abs-hero-style-9 .abs-hero-orbit span,
	.abs-hero-style-12 .abs-hero-letterbox-band,
	.abs-hero-veil-panel::before {
		animation: none !important;
	}
}

/* Style 9 — Gold spotlight */
.abs-hero-style-9 .abs-hero-bg img {
	opacity: 0.28;
	filter: brightness(0.48) contrast(1.1) sepia(0.15);
}
.abs-hero-spotlight {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		radial-gradient(ellipse 55% 48% at 50% 44%, rgba(var(--abs-primary-rgb), 0.42), transparent 68%),
		radial-gradient(circle at 50% 50%, rgba(255, 215, 0, 0.08), transparent 55%);
	pointer-events: none;
	animation: absSpotlightPulse 8s ease-in-out infinite;
}
@keyframes absSpotlightPulse {
	0%, 100% { opacity: 0.92; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.03); }
}
.abs-hero-style-9 .abs-hero-inner { position: relative; }
.abs-hero-orbit {
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(92vw, 640px);
	height: min(92vw, 640px);
	transform: translate(-50%, -52%);
	pointer-events: none;
	z-index: 0;
}
.abs-hero-orbit span {
	position: absolute;
	inset: 0;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 28%, transparent);
	border-radius: 50%;
}
.abs-hero-orbit span:first-child {
	inset: 8%;
	animation: absOrbitSpin 24s linear infinite;
}
.abs-hero-orbit span:last-child {
	inset: 18%;
	border-style: dashed;
	opacity: 0.55;
	animation: absOrbitSpin 36s linear infinite reverse;
}
@keyframes absOrbitSpin {
	to { transform: rotate(360deg); }
}
.abs-hero-style-9 .abs-hero-copy {
	position: relative;
	z-index: 2;
	max-width: 48rem;
}
.abs-hero-style-9 .abs-hero-title {
	font-size: clamp(2.8rem, 11vw, 6.5rem);
}
.abs-hero-style-9 .abs-hero-cta-row { justify-content: center; }

/* Style 10 — Gold frame split */
.abs-hero-style-10 .abs-hero-bg img { opacity: 0.2; }
.abs-hero-style-10 .abs-hero-split {
	display: grid;
	gap: 2rem;
	align-items: center;
	max-width: 1180px;
	margin: 0 auto;
}
@media (min-width: 960px) {
	.abs-hero-style-10 .abs-hero-split { grid-template-columns: 1fr 1fr; }
	.abs-hero-style-10 .abs-hero-copy { text-align: left; margin: 0; }
	.abs-hero-style-10 .abs-hero-cta-row { justify-content: flex-start; }
}
.abs-hero-gold-frame {
	padding: 10px;
	background: var(--abs-gold-shimmer);
	background-size: 200% 200%;
	animation: absGoldShimmer 8s ease infinite;
	border-radius: 4px;
	box-shadow: var(--abs-glow), 0 24px 60px rgba(0, 0, 0, 0.45);
}
.abs-hero-gold-frame img {
	height: min(70vh, 560px);
	width: 100%;
	object-fit: cover;
	border-radius: 2px;
	border: none;
	box-shadow: none;
}
.abs-hero-side-image--frame { justify-self: end; }

/* Style 11 — Circle portrait */
.abs-hero-style-11 .abs-hero-bg img {
	opacity: 0.16;
	filter: blur(2px) brightness(0.42);
}
.abs-hero-style-11 .abs-hero-copy {
	max-width: 40rem;
}
.abs-hero-circle-portrait {
	width: min(168px, 38vw);
	height: min(168px, 38vw);
	margin: 0 auto 1.35rem;
	border-radius: 50%;
	padding: 4px;
	background: var(--abs-gold-shimmer);
	background-size: 200% 200%;
	animation: absGoldShimmer 7s ease infinite;
	box-shadow: 0 0 0 6px color-mix(in srgb, var(--abs-primary) 18%, transparent), var(--abs-glow);
}
.abs-hero-circle-portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	border: 2px solid var(--abs-bg);
}
.abs-hero-style-11 .abs-hero-title {
	font-size: clamp(2.2rem, 8vw, 4.5rem);
}
.abs-hero-style-11 .abs-hero-sub { margin-bottom: 1.5rem; }

/* Style 12 — Letterbox banner */
.abs-hero-style-12 {
	min-height: 88dvh;
	align-items: center;
}
.abs-hero-style-12 .abs-hero-bg img {
	opacity: 0.45;
	filter: contrast(1.08) brightness(0.52) saturate(1.05);
}
.abs-hero-letterbox-bar {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 2;
	background: color-mix(in srgb, var(--abs-bg) 92%, transparent);
	pointer-events: none;
}
.abs-hero-letterbox-bar--top { top: 0; height: clamp(3.5rem, 10vh, 5.5rem); }
.abs-hero-letterbox-bar--bottom { bottom: 0; height: clamp(3.5rem, 10vh, 5.5rem); }
.abs-hero-letterbox-band {
	position: relative;
	width: min(100%, 920px);
	margin: 0 auto;
	padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 2rem);
	text-align: center;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--abs-primary) 22%, transparent), transparent);
	border-top: 1px solid color-mix(in srgb, var(--abs-primary) 45%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--abs-primary) 45%, transparent);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
.abs-hero-letterbox-band::before,
.abs-hero-letterbox-band::after {
	content: '✦';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	color: var(--abs-primary);
	font-size: 0.85rem;
	opacity: 0.75;
}
.abs-hero-letterbox-band::before { left: 1rem; }
.abs-hero-letterbox-band::after { right: 1rem; }
.abs-hero-style-12 .abs-hero-title {
	font-size: clamp(2rem, 7.5vw, 4.75rem);
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.abs-hero-style-12 .abs-hero-accent {
	text-transform: none;
	letter-spacing: 0.04em;
}

/* Style 13 — Editorial glass card */
.abs-hero-style-13 .abs-hero-bg img {
	opacity: 0.5;
	filter: contrast(1.05) brightness(0.55);
}
.abs-hero-style-13 .abs-hero-split {
	display: grid;
	gap: 2rem;
	align-items: center;
	max-width: 1180px;
	margin: 0 auto;
}
@media (min-width: 960px) {
	.abs-hero-style-13 .abs-hero-split { grid-template-columns: 0.95fr 1.05fr; }
}
.abs-hero-editorial-card {
	position: relative;
	padding: clamp(1.75rem, 4vw, 2.5rem);
	background: color-mix(in srgb, var(--abs-surface) 78%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 32%, transparent);
	border-left: 4px solid var(--abs-primary);
	border-radius: 0 var(--abs-radius) var(--abs-radius) 0;
	backdrop-filter: blur(24px) saturate(150%);
	-webkit-backdrop-filter: blur(24px) saturate(150%);
	box-shadow: var(--abs-shadow), inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 15%, transparent);
}
.abs-hero-editorial-card::after {
	content: '';
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	width: 48px;
	height: 48px;
	border-top: 1px solid color-mix(in srgb, var(--abs-primary) 50%, transparent);
	border-right: 1px solid color-mix(in srgb, var(--abs-primary) 50%, transparent);
	opacity: 0.6;
	pointer-events: none;
}
.abs-hero-style-13 .abs-hero-copy {
	text-align: left;
	margin: 0;
	max-width: none;
}
.abs-hero-style-13 .abs-hero-title {
	font-size: clamp(2.25rem, 7vw, 4.25rem);
}
.abs-hero-style-13 .abs-hero-sub {
	margin-left: 0;
	max-width: 32rem;
}
.abs-hero-style-13 .abs-hero-cta-row { justify-content: flex-start; }
.abs-hero-style-13 .abs-hero-side-image img {
	height: min(74vh, 580px);
	border-radius: var(--abs-radius);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 35%, transparent);
	box-shadow: var(--abs-glow), var(--abs-shadow);
	object-position: top center;
}

/* About */
.abs-about-grid { display: grid; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
@media (min-width: 960px) { .abs-about-grid { grid-template-columns: 1.1fr 0.9fr; } }
.abs-quote {
	border-left: 3px solid var(--abs-primary);
	padding: 1rem 0 1rem 1.5rem;
	font-family: var(--abs-font-serif);
	font-style: italic;
	color: var(--abs-primary-light);
	font-size: clamp(1rem, 2.5vw, 1.2rem);
	margin-top: 1.75rem;
	background: linear-gradient(90deg, color-mix(in srgb, var(--abs-primary) 8%, transparent), transparent);
	border-radius: 0 var(--abs-radius-sm) var(--abs-radius-sm) 0;
}
.abs-about-media {
	border-radius: var(--abs-radius);
	padding: 0.5rem;
	background: color-mix(in srgb, var(--abs-surface) 80%, transparent);
	border: 1px solid var(--abs-border);
	overflow: hidden;
}
.abs-about-media img {
	width: 100%;
	height: min(520px, 60vh);
	object-fit: cover;
	border-radius: calc(var(--abs-radius) - 4px);
	filter: brightness(0.85);
	transition: transform 1.2s ease, filter 0.5s;
}
.abs-about-media:hover img { transform: scale(1.04); filter: brightness(1); }

/* Gallery — infinite marquee */
.abs-gallery-wrap {
	background: color-mix(in srgb, var(--abs-surface) 50%, transparent);
	border-block: 1px solid var(--abs-border);
	overflow: hidden;
}
.abs-gallery-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 2rem;
	gap: 1rem;
	flex-wrap: wrap;
}
.abs-gallery-hint {
	font-size: 0.62rem;
	color: var(--abs-text-muted);
	letter-spacing: 0.18em;
	opacity: 0.8;
}
.abs-gallery-track {
	display: flex;
	gap: 1.25rem;
	width: max-content;
	animation: absGallery 45s linear infinite;
}
.abs-gallery-track:hover { animation-play-state: paused; }
@keyframes absGallery {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
.abs-gallery-item {
	width: min(320px, 75vw);
	height: min(420px, 55vh);
	overflow: hidden;
	border-radius: var(--abs-radius-sm);
	border: 1px solid var(--abs-border);
	flex-shrink: 0;
}
.abs-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.8);
	transition: transform 0.8s ease, filter 0.4s;
}
.abs-gallery-item:hover img { transform: scale(1.08); filter: brightness(1); }

/* Gallery style 1 — rail (default marquee track above) */
.abs-gallery-style-1 { overflow: hidden; }

/* Gallery style 2 — Mosaic grid */
.abs-gallery-style-2 { overflow: visible; }
.abs-gallery-mosaic {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 1rem;
}
.abs-gallery-style-2 .abs-gallery-item {
	width: auto;
	height: auto;
	min-height: 200px;
}
.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+1) { grid-column: span 7; min-height: 280px; }
.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+2) { grid-column: span 5; min-height: 280px; }
.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+3) { grid-column: span 4; min-height: 240px; }
.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+4) { grid-column: span 4; min-height: 240px; }
.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+5) { grid-column: span 4; min-height: 240px; }
.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+6) { grid-column: span 12; min-height: 220px; }
@media (max-width: 768px) {
	.abs-gallery-mosaic { grid-template-columns: 1fr 1fr; }
	.abs-gallery-style-2 .abs-gallery-item,
	.abs-gallery-style-2 .abs-gallery-item:nth-child(n) { grid-column: span 1; min-height: 180px; }
	.abs-gallery-style-2 .abs-gallery-item:nth-child(6n+6) { grid-column: span 2; }
}

/* Gallery style 3 — Gold frame carousel */
.abs-gallery-style-3 { overflow: hidden; padding-bottom: 0.5rem; }
.abs-gallery-carousel {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	padding: 0.5rem max(1.25rem, env(safe-area-inset-left)) 1.25rem;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--abs-primary) transparent;
}
.abs-gallery-carousel::-webkit-scrollbar { height: 6px; }
.abs-gallery-carousel::-webkit-scrollbar-thumb { background: var(--abs-primary); border-radius: 3px; }
.abs-gallery-style-3 .abs-gallery-item {
	width: min(300px, 78vw);
	height: min(400px, 52vh);
	flex-shrink: 0;
	scroll-snap-align: center;
	padding: 8px;
	background: var(--abs-gold-shimmer);
	background-size: 200% 200%;
	animation: absGoldShimmer 8s ease infinite;
	box-shadow: var(--abs-glow);
}
.abs-gallery-style-3 .abs-gallery-item img {
	border-radius: 2px;
}

/* Gallery style 4 — Polaroid stack */
.abs-gallery-style-4 { overflow: visible; }
.abs-gallery-polaroids {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.75rem 1.25rem;
	padding: 0.5rem 0 1rem;
}
.abs-gallery-style-4 .abs-gallery-item {
	width: min(240px, 42vw);
	height: auto;
	background: #faf6ee;
	padding: 0.65rem 0.65rem 2.5rem;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 25%, transparent);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.abs-gallery-style-4 .abs-gallery-polaroid-1 { transform: rotate(-2.5deg); }
.abs-gallery-style-4 .abs-gallery-polaroid-2 { transform: rotate(1.8deg); margin-top: 1.25rem; }
.abs-gallery-style-4 .abs-gallery-polaroid-3 { transform: rotate(-1.2deg); }
.abs-gallery-style-4 .abs-gallery-item:hover {
	transform: rotate(0deg) translateY(-6px) !important;
	box-shadow: var(--abs-glow), 0 20px 48px rgba(0, 0, 0, 0.4);
	z-index: 2;
}
.abs-gallery-style-4 .abs-gallery-item img {
	height: min(260px, 38vw);
	filter: brightness(0.95) sepia(0.08);
	border-radius: 2px;
}
.abs-gallery-caption {
	display: block;
	margin-top: 0.65rem;
	font-family: var(--abs-font-serif);
	font-size: 0.78rem;
	font-style: italic;
	color: #3d3428;
	text-align: center;
	line-height: 1.3;
}

/* Gallery style 5 — Cinematic strips */
.abs-gallery-style-5 { overflow: hidden; padding-inline: 0; }
.abs-gallery-strips {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}
.abs-gallery-style-5 .abs-gallery-item {
	width: 100%;
	height: auto;
	border-radius: 0;
	border-inline: none;
	border-block: 1px solid color-mix(in srgb, var(--abs-primary) 22%, transparent);
}
.abs-gallery-style-5 .abs-gallery-strip--wide {
	height: min(52vh, 420px);
}
.abs-gallery-style-5 .abs-gallery-strip--tall {
	height: min(38vh, 300px);
}
.abs-gallery-style-5 .abs-gallery-item img {
	filter: brightness(0.72) contrast(1.05);
}
.abs-gallery-style-5 .abs-gallery-item:hover img {
	filter: brightness(0.88);
	transform: scale(1.03);
}

.abs-gallery-caption { display: none; }
.abs-gallery-style-4 .abs-gallery-caption { display: block; }

/* Companions — card grid */
.abs-companion-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
}
@media (min-width: 540px) { .abs-companion-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .abs-companion-grid { grid-template-columns: repeat(3, 1fr); } }

.abs-companion-card {
	padding: 1.1rem;
	display: flex;
	flex-direction: column;
	transition: transform 0.4s ease, box-shadow 0.4s ease;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 18%, transparent);
	background: linear-gradient(160deg, color-mix(in srgb, var(--abs-surface) 92%, transparent), color-mix(in srgb, var(--abs-surface) 75%, transparent));
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--abs-primary-light) 10%, transparent);
}
.abs-companion-card:hover {
	transform: translateY(-8px);
	box-shadow: var(--abs-glow), var(--abs-shadow);
	border-color: color-mix(in srgb, var(--abs-primary) 38%, transparent);
}
.abs-companion-photo {
	height: min(420px, 55vh);
	overflow: hidden;
	position: relative;
	border-radius: var(--abs-radius-sm);
	background: var(--abs-bg);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 22%, transparent);
}
.abs-companion-photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, var(--abs-bg) 0%, transparent 48%), linear-gradient(135deg, color-mix(in srgb, var(--abs-primary) 8%, transparent), transparent 55%);
	pointer-events: none;
}
.abs-companion-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.92) saturate(1.05);
	transition: transform 0.8s ease;
}
.abs-companion-card:hover .abs-companion-photo img { transform: scale(1.06); }
.abs-companion-meta { padding-top: 1.25rem; text-align: center; }
.abs-companion-meta h3 {
	font-family: var(--abs-font-serif);
	font-size: 1.45rem;
	color: var(--abs-primary-light);
	margin: 0;
}
.abs-companion-meta p {
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--abs-text-muted);
	margin-top: 0.35rem;
}
.abs-companion-links {
	display: flex;
	justify-content: center;
	gap: 0.65rem;
	flex-wrap: wrap;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--abs-border);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.12em;
}
.abs-companion-links a {
	color: var(--abs-primary);
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	padding: 0 0.75rem;
	border-radius: 999px;
	border: 1px solid transparent;
	transition: border-color 0.25s, background 0.25s;
}
.abs-companion-links a:hover {
	border-color: var(--abs-border);
	background: color-mix(in srgb, var(--abs-primary) 10%, transparent);
	color: var(--abs-text);
}

/* Rituals */
.abs-rituals-bg {
	background: color-mix(in srgb, var(--abs-surface) 40%, transparent);
	border-top: 1px solid var(--abs-border);
}
.abs-ritual-grid { display: grid; gap: 1.5rem; }
@media (min-width: 960px) { .abs-ritual-grid { grid-template-columns: 1fr 1fr; } }

.abs-ritual-card {
	border-left: 4px solid var(--abs-primary);
	padding: clamp(1.5rem, 4vw, 2rem);
	transition: transform 0.4s ease, box-shadow 0.4s;
	overflow: hidden;
}
.abs-ritual-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--abs-glow);
}
.abs-ritual-image img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	margin-bottom: 1rem;
	border-radius: var(--abs-radius-sm);
}
.abs-ritual-top { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.abs-ritual-top h3 {
	font-family: var(--abs-font-serif);
	color: var(--abs-primary-light);
	margin: 0;
	font-size: 1.35rem;
}
.abs-ritual-price { color: var(--abs-primary); font-family: var(--abs-font-serif); white-space: nowrap; }
.abs-ritual-body p { font-size: 0.9rem; color: var(--abs-text-muted); line-height: 1.65; }
.abs-ritual-bullets {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.abs-ritual-bullets li {
	font-size: 0.62rem;
	color: var(--abs-text-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	border: 1px solid var(--abs-border);
	background: color-mix(in srgb, var(--abs-surface) 80%, transparent);
}
.abs-ritual-btn {
	margin-top: 1.25rem;
	background: none;
	color: var(--abs-primary);
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.5rem 0;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}
.abs-ritual-btn:hover { color: var(--abs-text); }
.abs-ritual-btn::after { content: '→'; transition: transform 0.25s; }
.abs-ritual-btn:hover::after { transform: translateX(4px); }

/* —— Model cards: Style 2 Immersive overlay —— */
.abs-companions-style-2 .abs-companion-card {
	padding: 0;
	overflow: hidden;
	border-radius: var(--abs-radius);
}
.abs-companions-style-2 .abs-companion-photo {
	height: min(520px, 70vh);
	border-radius: 0;
}
.abs-companions-style-2 .abs-companion-photo::after {
	background: linear-gradient(to top, rgba(8, 6, 5, 0.92) 0%, rgba(8, 6, 5, 0.35) 45%, transparent 70%);
}
.abs-companion-overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 1.5rem 1.25rem 1.35rem;
	text-align: left;
	transform: translateY(0.35rem);
	transition: transform 0.45s ease;
}
.abs-companions-style-2 .abs-companion-card:hover .abs-companion-overlay { transform: translateY(0); }
.abs-companion-overlay h3 {
	font-family: var(--abs-font-serif);
	font-size: 1.65rem;
	color: #fff8f0;
	margin: 0;
}
.abs-companion-overlay p {
	font-size: 0.65rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--abs-primary-light);
	margin: 0.4rem 0 0;
}
.abs-companions-style-2 .abs-companion-links {
	justify-content: flex-start;
	border-top: none;
	padding-top: 0.85rem;
	margin-top: 0.85rem;
}
.abs-companions-style-2 .abs-companion-links a {
	background: color-mix(in srgb, var(--abs-bg) 45%, transparent);
	border-color: color-mix(in srgb, var(--abs-primary) 40%, transparent);
	backdrop-filter: blur(8px);
}

/* —— Model cards: Style 3 Editorial polaroid —— */
.abs-companions-style-3 .abs-companion-grid {
	gap: 2rem 1.75rem;
}
.abs-companions-style-3 .abs-companion-card {
	background: color-mix(in srgb, var(--abs-surface) 88%, #1a1410);
	padding: 0.85rem 0.85rem 1.35rem;
	border-radius: 2px;
	box-shadow: 10px 14px 0 color-mix(in srgb, var(--abs-primary) 18%, transparent);
	transform: rotate(-0.6deg);
}
.abs-companions-style-3 .abs-companion-card:nth-child(even) { transform: rotate(0.7deg); }
.abs-companions-style-3 .abs-companion-card:hover {
	transform: rotate(0deg) translateY(-8px);
	box-shadow: 14px 18px 0 color-mix(in srgb, var(--abs-accent) 22%, transparent);
}
.abs-companions-style-3 .abs-companion-photo {
	height: min(380px, 50vh);
	border-radius: 0;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 35%, transparent);
}
.abs-companions-style-3 .abs-companion-photo::after { display: none; }
.abs-companions-style-3 .abs-companion-meta {
	text-align: left;
	padding: 1rem 0.35rem 0;
	position: relative;
}
.abs-companion-index {
	display: block;
	width: 2.5rem;
	height: 2px;
	background: var(--abs-accent);
	margin-bottom: 0.75rem;
}
.abs-companions-style-3 .abs-companion-links {
	justify-content: flex-start;
	border-top-color: color-mix(in srgb, var(--abs-primary) 25%, transparent);
}

/* —— Model cards: Style 4 Horizontal strip —— */
.abs-companions-style-4 .abs-companion-grid {
	grid-template-columns: 1fr;
	gap: 1rem;
	max-width: 920px;
	margin: 0 auto;
}
.abs-companions-style-4 .abs-companion-card {
	flex-direction: row;
	align-items: stretch;
	padding: 0.65rem;
	gap: 1rem;
}
.abs-companions-style-4 .abs-companion-photo {
	width: min(38%, 200px);
	flex-shrink: 0;
	height: auto;
	min-height: 160px;
	aspect-ratio: 3 / 4;
	border-radius: var(--abs-radius-sm);
}
.abs-companions-style-4 .abs-companion-photo::after {
	background: linear-gradient(90deg, transparent 40%, color-mix(in srgb, var(--abs-surface) 40%, transparent));
}
.abs-companions-style-4 .abs-companion-meta {
	flex: 1;
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0.5rem 0.75rem 0.5rem 0;
}
.abs-companions-style-4 .abs-companion-links {
	justify-content: flex-start;
	margin-top: auto;
}
@media (max-width: 560px) {
	.abs-companions-style-4 .abs-companion-card { flex-direction: column; }
	.abs-companions-style-4 .abs-companion-photo {
		width: 100%;
		aspect-ratio: 4 / 5;
		min-height: 240px;
	}
}

/* —— Service cards: Style 2 Cover stack —— */
.abs-rituals-style-2 .abs-ritual-grid {
	grid-template-columns: 1fr;
}
@media (min-width: 720px) {
	.abs-rituals-style-2 .abs-ritual-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1100px) {
	.abs-rituals-style-2 .abs-ritual-grid { grid-template-columns: repeat(3, 1fr); }
}
.abs-rituals-style-2 .abs-ritual-card {
	border-left: none;
	padding: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.abs-rituals-style-2 .abs-ritual-image {
	position: relative;
}
.abs-rituals-style-2 .abs-ritual-image img {
	height: 220px;
	margin: 0;
	border-radius: 0;
}
.abs-rituals-style-2 .abs-ritual-price-badge {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	z-index: 2;
	padding: 0.35rem 0.7rem;
	background: color-mix(in srgb, var(--abs-bg) 70%, transparent);
	border: 1px solid var(--abs-border);
	backdrop-filter: blur(10px);
	font-size: 0.75rem;
}
.abs-rituals-style-2 .abs-ritual-body {
	padding: 1.35rem 1.25rem 1.5rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.abs-rituals-style-2 .abs-ritual-top { flex-direction: column; gap: 0.35rem; }
.abs-rituals-style-2 .abs-ritual-btn {
	margin-top: auto;
	align-self: flex-start;
	padding: 0.65rem 1.1rem;
	border: 1px solid var(--abs-primary);
	border-radius: 999px;
}

/* —— Service cards: Style 3 Minimal line —— */
.abs-rituals-style-3 .abs-ritual-grid { gap: 0; }
.abs-rituals-style-3 .abs-ritual-card {
	background: transparent;
	backdrop-filter: none;
	border: none;
	border-radius: 0;
	border-bottom: 1px solid var(--abs-border);
	border-left: 3px solid transparent;
	box-shadow: none;
	padding: 1.75rem 0 1.75rem 1.25rem;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.25rem;
	align-items: start;
}
.abs-rituals-style-3 .abs-ritual-card:hover {
	transform: none;
	border-left-color: var(--abs-primary);
	box-shadow: none;
	background: linear-gradient(90deg, color-mix(in srgb, var(--abs-primary) 8%, transparent), transparent 55%);
}
.abs-rituals-style-3 .abs-ritual-image img {
	width: 96px;
	height: 120px;
	margin: 0;
	border-radius: 2px;
	object-fit: cover;
	border: 1px solid var(--abs-border);
}
.abs-rituals-style-3 .abs-ritual-bullets li {
	border-radius: 0;
	background: transparent;
	border: none;
	border-bottom: 1px solid var(--abs-border);
	padding: 0.15rem 0;
}
@media (max-width: 560px) {
	.abs-rituals-style-3 .abs-ritual-card { grid-template-columns: 1fr; }
}

/* —— Service cards: Style 4 Cinema panel —— */
.abs-rituals-style-4 .abs-ritual-grid {
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
.abs-rituals-style-4 .abs-ritual-card {
	position: relative;
	border-left: none;
	padding: 0;
	min-height: min(340px, 55vh);
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr;
}
.abs-rituals-style-4 .abs-ritual-image {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.abs-rituals-style-4 .abs-ritual-image img {
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
	filter: brightness(0.45) saturate(1.05);
	transition: transform 1s ease, filter 0.5s;
}
.abs-rituals-style-4 .abs-ritual-card:hover .abs-ritual-image img {
	transform: scale(1.06);
	filter: brightness(0.55) saturate(1.1);
}
.abs-rituals-style-4 .abs-ritual-body {
	position: relative;
	z-index: 1;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	max-width: 34rem;
	background: linear-gradient(90deg, color-mix(in srgb, var(--abs-bg) 82%, transparent) 0%, color-mix(in srgb, var(--abs-bg) 35%, transparent) 70%, transparent);
}
.abs-rituals-style-4 .abs-ritual-top h3 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	color: #fff8f0;
}
.abs-rituals-style-4 .abs-ritual-price {
	padding: 0.3rem 0.75rem;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 50%, transparent);
	background: color-mix(in srgb, var(--abs-bg) 40%, transparent);
}
.abs-rituals-style-4 .abs-ritual-body p { color: color-mix(in srgb, var(--abs-text) 85%, transparent); }
.abs-rituals-style-4 .abs-ritual-btn {
	margin-top: 1.5rem;
	padding: 0.75rem 1.35rem;
	background: linear-gradient(120deg, var(--abs-primary-light), var(--abs-primary));
	color: #1a120e;
	border-radius: 999px;
	font-weight: 600;
}
.abs-rituals-style-4 .abs-ritual-btn::after { color: inherit; }

/* —— Model cards: Style 5 Soft silk portrait —— */
.abs-companions-style-5 .abs-companion-grid {
	gap: 2rem;
}
.abs-companions-style-5 .abs-companion-card {
	padding: 0;
	background: transparent;
	border: none;
	box-shadow: none;
	backdrop-filter: none;
}
.abs-companions-style-5 .abs-companion-card:hover { transform: translateY(-4px); }
.abs-companions-style-5 .abs-companion-photo {
	height: min(460px, 58vh);
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 24px 48px rgba(0, 0, 0, 0.35);
}
.abs-companions-style-5 .abs-companion-photo::after {
	background: linear-gradient(to top, color-mix(in srgb, var(--abs-bg) 55%, transparent), transparent 50%);
}
.abs-companions-style-5 .abs-companion-meta {
	text-align: left;
	margin: -2.25rem 1rem 0;
	position: relative;
	z-index: 2;
	padding: 1.15rem 1.25rem 1.2rem;
	border-radius: 18px;
	background: color-mix(in srgb, var(--abs-surface) 88%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 22%, transparent);
	backdrop-filter: blur(18px) saturate(140%);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
}
.abs-companions-style-5 .abs-companion-index {
	width: 2rem;
	height: 1px;
	background: var(--abs-primary);
	margin-bottom: 0.65rem;
}
.abs-companions-style-5 .abs-companion-links {
	justify-content: flex-start;
	border-top: none;
	padding-top: 0.75rem;
	gap: 0.45rem;
}
.abs-companions-style-5 .abs-companion-links a {
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	border-color: color-mix(in srgb, var(--abs-primary) 28%, transparent);
}

/* —— Model cards: Style 6 Modern frame —— */
.abs-companions-style-6 .abs-companion-card {
	padding: 0.75rem;
	border-radius: 4px;
	background: color-mix(in srgb, var(--abs-surface) 70%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-text) 8%, transparent);
}
.abs-companions-style-6 .abs-companion-photo {
	position: relative;
	height: min(440px, 56vh);
	border-radius: 2px;
	overflow: hidden;
}
.abs-companions-style-6 .abs-companion-photo::after { display: none; }
.abs-companion-frame {
	position: absolute;
	inset: 12px;
	border: 1px solid color-mix(in srgb, var(--abs-primary-light) 55%, transparent);
	pointer-events: none;
	z-index: 2;
	transition: inset 0.4s ease;
}
.abs-companions-style-6 .abs-companion-card:hover .abs-companion-frame {
	inset: 8px;
}
.abs-companions-style-6 .abs-companion-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	text-align: left;
	padding: 1rem 0.35rem 0.25rem;
}
.abs-companions-style-6 .abs-companion-meta h3 {
	font-size: 1.25rem;
	letter-spacing: 0.02em;
}
.abs-companions-style-6 .abs-companion-meta > p {
	order: 3;
	width: 100%;
	margin: 0;
	opacity: 0.85;
}
.abs-companions-style-6 .abs-companion-links {
	order: 2;
	margin: 0;
	padding: 0;
	border: none;
	gap: 0.35rem;
}
.abs-companions-style-6 .abs-companion-links a {
	min-height: 36px;
	padding: 0 0.55rem;
	border-radius: 2px;
	font-size: 0.58rem;
}

/* —— Model cards: Style 7 Spotlight circle —— */
.abs-companions-style-7 .abs-companion-grid {
	gap: 2.5rem 1.5rem;
}
@media (min-width: 960px) {
	.abs-companions-style-7 .abs-companion-grid { grid-template-columns: repeat(3, 1fr); }
}
.abs-companions-style-7 .abs-companion-card {
	padding: 1.5rem 1rem 1.25rem;
	text-align: center;
	background: radial-gradient(ellipse at 50% 18%, color-mix(in srgb, var(--abs-primary) 14%, transparent), transparent 55%),
		color-mix(in srgb, var(--abs-surface) 55%, transparent);
	border-radius: 999px 999px 28px 28px;
	border: 1px solid color-mix(in srgb, var(--abs-primary) 18%, transparent);
}
.abs-companions-style-7 .abs-companion-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 50px color-mix(in srgb, var(--abs-primary) 18%, transparent);
}
.abs-companions-style-7 .abs-companion-photo {
	width: min(220px, 70%);
	aspect-ratio: 1;
	height: auto;
	margin: 0 auto;
	border-radius: 50%;
	border: 2px solid color-mix(in srgb, var(--abs-primary) 45%, transparent);
	box-shadow: 0 0 0 8px color-mix(in srgb, var(--abs-bg) 70%, transparent),
		0 18px 40px rgba(0, 0, 0, 0.4);
}
.abs-companions-style-7 .abs-companion-photo::after {
	background: radial-gradient(circle at 50% 30%, transparent 40%, color-mix(in srgb, var(--abs-bg) 35%, transparent) 100%);
}
.abs-companions-style-7 .abs-companion-photo img {
	object-position: top center;
}
.abs-companions-style-7 .abs-companion-meta {
	padding-top: 1.35rem;
}
.abs-companions-style-7 .abs-companion-meta h3 {
	font-size: 1.55rem;
}
.abs-companions-style-7 .abs-companion-links {
	justify-content: center;
	border-top: none;
	gap: 0.4rem;
}
.abs-companions-style-7 .abs-companion-links a {
	border-radius: 999px;
	background: color-mix(in srgb, var(--abs-primary) 10%, transparent);
}

/* —— Service cards: Style 5 Soft silk panel —— */
.abs-rituals-style-5 .abs-ritual-grid {
	gap: 1.75rem;
}
@media (min-width: 900px) {
	.abs-rituals-style-5 .abs-ritual-grid { grid-template-columns: repeat(2, 1fr); }
}
.abs-rituals-style-5 .abs-ritual-card {
	border: none;
	border-left: none;
	padding: 0;
	border-radius: 24px;
	overflow: hidden;
	background: color-mix(in srgb, var(--abs-surface) 78%, transparent);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
}
.abs-rituals-style-5 .abs-ritual-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 28px 60px color-mix(in srgb, var(--abs-primary) 16%, transparent);
}
.abs-rituals-style-5 .abs-ritual-image {
	position: relative;
}
.abs-rituals-style-5 .abs-ritual-image img {
	height: 210px;
	margin: 0;
	border-radius: 0;
	filter: saturate(1.05) brightness(0.92);
}
.abs-rituals-style-5 .abs-ritual-price-badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	right: auto;
	padding: 0.4rem 0.9rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--abs-bg) 55%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 35%, transparent);
	backdrop-filter: blur(12px);
	font-size: 0.72rem;
}
.abs-rituals-style-5 .abs-ritual-body {
	padding: 1.5rem 1.4rem 1.6rem;
}
.abs-rituals-style-5 .abs-ritual-top h3 {
	font-size: 1.45rem;
}
.abs-rituals-style-5 .abs-ritual-btn {
	margin-top: 1.35rem;
	padding: 0.7rem 1.3rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--abs-primary) 16%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 40%, transparent);
}

/* —— Service cards: Style 6 Modern split —— */
.abs-rituals-style-6 .abs-ritual-grid {
	grid-template-columns: 1fr;
	gap: 1.15rem;
}
.abs-rituals-style-6 .abs-ritual-card {
	display: grid;
	grid-template-columns: minmax(120px, 32%) 1fr;
	gap: 0;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--abs-text) 10%, transparent);
	border-left: 1px solid color-mix(in srgb, var(--abs-text) 10%, transparent);
	border-radius: 4px;
	overflow: hidden;
	background: color-mix(in srgb, var(--abs-surface) 65%, transparent);
}
.abs-rituals-style-6 .abs-ritual-card:hover {
	transform: none;
	border-color: color-mix(in srgb, var(--abs-primary) 45%, transparent);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--abs-primary) 20%, transparent);
}
.abs-rituals-style-6 .abs-ritual-image {
	min-height: 100%;
}
.abs-rituals-style-6 .abs-ritual-image img {
	height: 100%;
	min-height: 220px;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
}
.abs-rituals-style-6 .abs-ritual-body {
	padding: 1.35rem 1.4rem;
	display: flex;
	flex-direction: column;
}
.abs-rituals-style-6 .abs-ritual-top {
	align-items: center;
	gap: 0.75rem;
}
.abs-rituals-style-6 .abs-ritual-price {
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.3rem 0.55rem;
	border: 1px solid var(--abs-border);
	border-radius: 2px;
}
.abs-rituals-style-6 .abs-ritual-btn {
	margin-top: auto;
	align-self: flex-start;
	letter-spacing: 0.18em;
}
@media (max-width: 640px) {
	.abs-rituals-style-6 .abs-ritual-card { grid-template-columns: 1fr; }
	.abs-rituals-style-6 .abs-ritual-image img { min-height: 180px; height: 180px; }
}

/* —— Service cards: Style 7 Numbered elegant —— */
.abs-rituals-style-7 .abs-ritual-grid {
	counter-reset: abs-ritual;
	gap: 1.5rem;
}
@media (min-width: 960px) {
	.abs-rituals-style-7 .abs-ritual-grid { grid-template-columns: repeat(2, 1fr); }
}
.abs-rituals-style-7 .abs-ritual-card {
	counter-increment: abs-ritual;
	position: relative;
	border: none;
	border-top: 1px solid color-mix(in srgb, var(--abs-primary) 35%, transparent);
	border-radius: 0;
	padding: 1.75rem 1.25rem 1.5rem 1.35rem;
	background: linear-gradient(180deg, color-mix(in srgb, var(--abs-primary) 7%, transparent), transparent 40%),
		color-mix(in srgb, var(--abs-surface) 40%, transparent);
	backdrop-filter: none;
	box-shadow: none;
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 1.15rem;
	align-items: start;
}
.abs-rituals-style-7 .abs-ritual-card::before {
	content: counter(abs-ritual, decimal-leading-zero);
	position: absolute;
	top: 1.1rem;
	right: 1.1rem;
	font-family: var(--abs-font-serif);
	font-size: 2rem;
	line-height: 1;
	color: color-mix(in srgb, var(--abs-primary) 45%, transparent);
	font-style: italic;
}
.abs-rituals-style-7 .abs-ritual-card:hover {
	transform: translateY(-3px);
	background: linear-gradient(180deg, color-mix(in srgb, var(--abs-primary) 12%, transparent), transparent 45%),
		color-mix(in srgb, var(--abs-surface) 55%, transparent);
	box-shadow: none;
}
.abs-rituals-style-7 .abs-ritual-image img {
	width: 88px;
	height: 110px;
	margin: 0;
	border-radius: 2px;
	object-fit: cover;
	border: 1px solid var(--abs-border);
}
.abs-rituals-style-7 .abs-ritual-top {
	padding-right: 2.5rem;
}
.abs-rituals-style-7 .abs-ritual-top h3 {
	font-size: 1.3rem;
}
.abs-rituals-style-7 .abs-ritual-bullets {
	gap: 0.35rem 0.85rem;
}
.abs-rituals-style-7 .abs-ritual-bullets li {
	border: none;
	background: none;
	padding: 0;
	border-radius: 0;
	font-size: 0.68rem;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--abs-text-muted);
}
.abs-rituals-style-7 .abs-ritual-btn {
	margin-top: 1rem;
	border-bottom: 1px solid var(--abs-primary);
	padding: 0.25rem 0;
	border-radius: 0;
}
@media (max-width: 560px) {
	.abs-rituals-style-7 .abs-ritual-card { grid-template-columns: 72px 1fr; }
	.abs-rituals-style-7 .abs-ritual-image img { width: 72px; height: 96px; }
}

/* CTA */
.abs-cta {
	background:
		radial-gradient(ellipse at center, color-mix(in srgb, var(--abs-primary) 16%, transparent), transparent 68%),
		linear-gradient(180deg, transparent, color-mix(in srgb, var(--abs-primary) 4%, transparent));
	border-top: 1px solid color-mix(in srgb, var(--abs-primary) 20%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--abs-primary) 20%, transparent);
}
.abs-cta-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.85rem;
	margin-top: 2rem;
}

/* Footer */
.abs-footer {
	border-top: 1px solid color-mix(in srgb, var(--abs-primary) 24%, transparent);
	padding: clamp(2.5rem, 6vw, 3.5rem) 0 max(2.5rem, var(--abs-safe-bottom));
	font-size: 0.68rem;
	color: var(--abs-text-muted);
	letter-spacing: 0.06em;
	position: relative;
	z-index: 1;
	background: linear-gradient(180deg, color-mix(in srgb, var(--abs-primary) 5%, transparent), var(--abs-bg));
}
.abs-footer-inner {
	text-align: center;
}
.abs-footer-brand {
	font-family: var(--abs-font-serif);
	background: var(--abs-gold-shimmer);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	letter-spacing: 0.14em;
	font-size: 0.82rem;
	font-weight: 700;
	margin: 0 0 0.75rem;
}
.abs-footer-address,
.abs-footer-legal,
.abs-footer-copy {
	margin: 0.35rem 0;
	line-height: 1.65;
}

/* Footer style 1 — classic centered (default) */
.abs-footer-style-1 .abs-footer-inner { text-align: center; }

/* Footer style 2 — split columns */
.abs-footer-style-2 .abs-footer-inner { text-align: left; }
.abs-footer-split {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}
@media (min-width: 768px) {
	.abs-footer-split { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
}
.abs-footer-split-brand .abs-footer-brand {
	font-size: clamp(1.1rem, 3vw, 1.45rem);
	letter-spacing: 0.06em;
	margin-bottom: 0.5rem;
}
.abs-footer-copy {
	font-size: 0.62rem;
	opacity: 0.85;
}

/* Footer style 3 — gold bar minimal */
.abs-footer-style-3 {
	padding-top: 0;
	border-top: 4px solid var(--abs-primary);
	background: var(--abs-bg);
}
.abs-footer-style-3 .abs-footer-inner { padding-top: 1.25rem; }
.abs-footer-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.65rem 1rem;
	padding: 0.85rem 1rem;
	background: color-mix(in srgb, var(--abs-primary) 10%, transparent);
	border: 1px solid color-mix(in srgb, var(--abs-primary) 28%, transparent);
	border-radius: var(--abs-radius-sm);
}
.abs-footer-bar-brand {
	font-family: var(--abs-font-serif);
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--abs-primary-light);
	letter-spacing: 0.08em;
}
.abs-footer-bar-divider { color: var(--abs-primary); opacity: 0.7; }
.abs-footer-bar-meta {
	font-size: 0.62rem;
	color: var(--abs-text-muted);
	letter-spacing: 0.08em;
}
.abs-footer-legal--compact {
	margin-top: 0.85rem;
	text-align: center;
	font-size: 0.58rem;
	opacity: 0.75;
}

/* Footer style 4 — editorial block */
.abs-footer-style-4 .abs-footer-inner { text-align: left; }
.abs-footer-brand--large {
	font-size: clamp(1.35rem, 4vw, 2rem) !important;
	letter-spacing: 0.04em !important;
	margin-bottom: 0 !important;
}
.abs-footer-rule {
	height: 2px;
	margin: 1.25rem 0 1.5rem;
	background: linear-gradient(90deg, var(--abs-primary), color-mix(in srgb, var(--abs-primary) 20%, transparent));
}
.abs-footer-editorial {
	display: grid;
	gap: 1.5rem;
}
@media (min-width: 768px) {
	.abs-footer-editorial { grid-template-columns: 1.1fr 0.9fr; gap: 2rem; }
}
.abs-footer-label {
	font-size: 0.58rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--abs-primary);
	margin: 0 0 0.45rem;
	font-weight: 600;
}

/* Floating contacts — AMP-style touch targets */
.abs-floating {
	position: fixed;
	bottom: max(1.25rem, var(--abs-safe-bottom));
	right: max(1.25rem, env(safe-area-inset-right));
	z-index: 90;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}
.abs-float {
	width: 3.75rem;
	height: 3.75rem;
	min-width: 48px;
	min-height: 48px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.abs-float:hover, .abs-float:focus-visible { transform: scale(1.08); }
.abs-float-wa { background: linear-gradient(145deg, #10b981, #059669); }
.abs-float-tg { background: linear-gradient(145deg, #0ea5e9, #0284c7); }
.abs-float-call { background: linear-gradient(145deg, var(--abs-primary-light), var(--abs-primary)); color: var(--abs-bg); font-size: 1.15rem; }

/* Modal */
.abs-modal {
	position: fixed;
	inset: 0;
	z-index: 300;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0;
	background: color-mix(in srgb, var(--abs-bg) 88%, transparent);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
@media (min-width: 640px) {
	.abs-modal { align-items: center; padding: 1rem; }
}
.abs-modal[hidden] { display: none !important; }
.abs-modal-panel {
	width: 100%;
	max-width: 28rem;
	padding: clamp(1.5rem, 5vw, 2rem);
	position: relative;
	border-radius: var(--abs-radius) var(--abs-radius) 0 0;
	max-height: 92dvh;
	overflow-y: auto;
}
@media (min-width: 640px) {
	.abs-modal-panel { border-radius: var(--abs-radius); }
}
.abs-modal-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 44px;
	height: 44px;
	color: var(--abs-text-muted);
	font-size: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.abs-modal-sub {
	font-size: 0.62rem;
	color: var(--abs-text-muted);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.abs-booking-form label {
	display: block;
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--abs-primary);
	margin-bottom: 1rem;
}
.abs-booking-form input,
.abs-booking-form select {
	width: 100%;
	margin-top: 0.4rem;
	background: var(--abs-bg);
	border: 1px solid var(--abs-border);
	color: var(--abs-text);
	padding: 0.85rem 1rem;
	font-size: 1rem;
	border-radius: var(--abs-radius-sm);
	min-height: 48px;
}
.abs-booking-form input:focus,
.abs-booking-form select:focus {
	outline: 2px solid color-mix(in srgb, var(--abs-primary) 50%, transparent);
	outline-offset: 2px;
}
.abs-form-row { display: grid; grid-template-columns: 1fr; gap: 0; }
@media (min-width: 480px) { .abs-form-row { grid-template-columns: 1fr 1fr; gap: 1rem; } }

/* Auto-linked words in body copy */
.abs-content-link {
	color: var(--abs-primary-light);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--abs-primary) 45%, transparent);
	text-underline-offset: 3px;
	transition: color 0.25s, text-decoration-color 0.25s;
}
.abs-content-link:hover {
	color: var(--abs-accent);
	text-decoration-color: var(--abs-accent);
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--abs-bg); }
::-webkit-scrollbar-thumb { background: var(--abs-primary); border-radius: 3px; }
