/**
 * redefined.homes — visual motion + premium homepage/footer presence.
 * Uses CSS logical properties for LTR/RTL.
 */

:root {
	--rh-white: #ffffff;
	--rh-ink: #0a0a0a;
	--rh-gold: #c8a96e;
	--rh-muted: #888888;
	--rh-surface: #f5f5f5;
	--rh-cream: #f7f5f2;
	--rh-paper: #faf9f7;
	--rh-ease: cubic-bezier(0.22, 1, 0.36, 1);
	/* Brand type: Latin first, Arabic glyph fallbacks */
	--rh-font-body: "Jost", "IBM Plex Sans Arabic", sans-serif;
	--rh-font-heading: "Cormorant Garamond", "Amiri", serif;
	/* Barely-there paper grain / hairline geometry — luxury, not texture wallpaper */
	--rh-ambient-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.05 0 0 0 0 0.045 0 0 0 0.28 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--rh-ambient-lines: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cpath d='M48 0v96M0 48h96' stroke='%23C8A96E' stroke-opacity='0.07' stroke-width='0.5' fill='none'/%3E%3C/svg%3E");
	--rh-ambient-dots: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='1.5' cy='1.5' r='0.5' fill='%230A0A0A' fill-opacity='0.045'/%3E%3C/svg%3E");
	--rh-hero-lines: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cpath d='M50 0v100M0 50h100' stroke='%23C8A96E' stroke-opacity='0.14' stroke-width='0.55' fill='none'/%3E%3C/svg%3E");
}

/* —— Site-wide ambient atmosphere (luxury, quiet) —— */
body {
	background-color: var(--rh-paper);
	background-image:
		radial-gradient(ellipse 90% 55% at 8% -5%, rgba(200, 169, 110, 0.075), transparent 58%),
		radial-gradient(ellipse 70% 45% at 100% 12%, rgba(247, 245, 242, 0.95), transparent 52%),
		radial-gradient(ellipse 55% 40% at 50% 100%, rgba(200, 169, 110, 0.04), transparent 60%),
		var(--rh-ambient-dots);
	background-attachment: scroll;
}

#wrapper,
#main,
.page-wrapper {
	position: relative;
	z-index: 1;
}

/* Brand gold period — sentence / wordmark dots only (decimals left alone in JS). */
.rh-gold-period,
.rh-wordmark__dot,
.rh-about-open__dot {
	color: var(--rh-gold);
}

/*
 * Flatsome blockquote uses physical border-left / padding-left (even in flatsome-rtl.css).
 * Force logical edges so the rule sits on inline-start in both LTR and RTL.
 */
blockquote {
	border-left: 0 !important;
	border-right: 0 !important;
	border-inline-start: 2px solid var(--fs-color-primary, var(--rh-gold)) !important;
	border-inline-end: 0 !important;
	padding-block: 0 !important;
	padding-inline-start: 1.875em !important;
	padding-inline-end: 1.25em !important;
	margin-inline: 0 !important;
	margin-block: 0 1.25em !important;
}

.rh-ambient {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
	contain: strict;
}

.rh-ambient__grain,
.rh-ambient__glow,
.rh-ambient__veil {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.rh-ambient__grain {
	opacity: 0.28;
	background-image: var(--rh-ambient-grain);
	background-size: 180px 180px;
	mix-blend-mode: multiply;
}

.rh-ambient__veil {
	opacity: 0.4;
	background-image: var(--rh-ambient-lines);
	background-size: 96px 96px;
	background-position: 0 0;
	animation: rh-ambient-drift 96s linear infinite;
}

.rh-ambient__glow {
	background:
		radial-gradient(42% 36% at 18% 28%, rgba(200, 169, 110, 0.11), transparent 70%),
		radial-gradient(38% 32% at 82% 62%, rgba(255, 255, 255, 0.45), transparent 72%),
		radial-gradient(48% 40% at 55% 88%, rgba(200, 169, 110, 0.07), transparent 70%);
	/* No live filter:blur — full-viewport blur is costly on first paint */
	animation: rh-ambient-breathe 28s var(--rh-ease) infinite alternate;
	transform-origin: center;
}

@keyframes rh-ambient-drift {
	from {
		background-position: 0 0;
	}

	to {
		background-position: 96px 48px;
	}
}

@keyframes rh-ambient-breathe {
	from {
		opacity: 0.55;
		transform: translate3d(0, 0, 0) scale(1);
	}

	to {
		opacity: 0.85;
		transform: translate3d(1.5%, -1.25%, 0) scale(1.04);
	}
}

/* —— Section surfaces — intentional color rhythm —— */
.rh-surface-cream {
	--rh-surface-bg: var(--rh-cream);
}

.rh-surface-paper {
	--rh-surface-bg: var(--rh-paper);
}

.rh-surface-white {
	--rh-surface-bg: var(--rh-white);
}

.rh-surface-mist {
	--rh-surface-bg: var(--rh-surface);
}

.rh-surface-ink {
	--rh-surface-bg: var(--rh-ink);
}

.rh-shop-section,
.rh-cta:not(.rh-cta--scene),
.rh-mosaic,
.rh-split,
.rh-panel,
.rh-hero:not(.rh-hero--scene),
.rh-statement,
.rh-shop-intro,
.rh-unfold {
	isolation: isolate;
	background-color: var(--rh-surface-bg, var(--rh-white));
}

/* Quiet in-section pattern only — no radial washes at the seams */
.rh-shop-section::before,
.rh-cta:not(.rh-cta--scene)::before,
.rh-mosaic::before,
.rh-split__copy::before,
.page-title-bg::before,
/* Wrapper only — not h1.shop-page-title (same class would paint a full-width bar) */
div.shop-page-title::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: var(--rh-ambient-grain), var(--rh-ambient-dots);
	background-size: 200px 200px, 32px 32px;
	opacity: 0.7;
}

.rh-shop-section,
.rh-cta,
.rh-mosaic,
.page-title-bg,
div.shop-page-title {
	position: relative;
}

.rh-shop-section>*,
.rh-cta>*,
.rh-mosaic>* {
	position: relative;
	z-index: 1;
}

/*
 * Clean section boundary: a short centered gold hairline.
 * No feather gradients or inset shadows between bands.
 */
.rh-shop-section::after,
.rh-cta:not(.rh-cta--scene)::after,
.rh-mosaic::after,
.rh-split::after {
	content: "";
	position: absolute;
	inset-inline-start: 50%;
	inset-block-start: 0;
	inline-size: min(7.5rem, 28%);
	block-size: 1px;
	z-index: 2;
	pointer-events: none;
	transform: translateX(-50%);
	background: rgba(200, 169, 110, 0.45);
}

.rh-shop-section,
.rh-cta:not(.rh-cta--scene),
.rh-mosaic,
.rh-split {
	box-shadow: none;
}

/* Same-surface continuity — no divider when cream follows cream */
.rh-cats-section.rh-surface-cream::after,
.rh-hero+.rh-shop-section.rh-surface-cream::after {
	content: none;
}

/* Footer atmosphere — quiet grain only */
.rh-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: var(--rh-ambient-grain);
	background-size: 180px 180px;
	opacity: 0.28;
	animation: none;
}

.rh-footer>* {
	position: relative;
	z-index: 1;
}

.rh-hero__glow {
	animation: rh-hero-atmosphere 26s var(--rh-ease) infinite alternate;
}

@keyframes rh-hero-atmosphere {
	from {
		opacity: 0.75;
		transform: translate3d(0, 0, 0) scale(1);
	}

	to {
		opacity: 1;
		transform: translate3d(0, -1%, 0) scale(1.025);
	}
}

/* Product image bands keep calm — no busy overlays on cards */
.rh-shop-section .box-image::before,
.rh-cat-card__media::before {
	content: none;
}

@media (prefers-reduced-motion: reduce) {

	.rh-ambient__veil,
	.rh-ambient__glow,
	.rh-footer::before,
	.rh-hero__glow {
		animation: none !important;
		transform: none !important;
	}
}

/* —— UX Builder preview: never hide ST Extras elements —— */
.ux-builder-iframe .rh-reveal,
.ux-builder-iframe .rh-motion,
.ux-builder-iframe .rh-hero,
.ux-builder-iframe .rh-panel,
.ux-builder-iframe .rh-split,
.ux-builder-iframe .rh-shop-section,
.ux-builder-iframe .rh-mosaic,
.ux-builder-iframe .rh-mosaic-block,
.ux-builder-iframe .rh-cta,
.ux-builder-iframe .rh-footer,
.ux-builder-iframe .rh-about-open,
.ux-builder-iframe .rh-about-dual,
.ux-builder-iframe .rh-about-quote,
.ux-builder-iframe .rh-about-letter,
.ux-builder-iframe .rh-about-principles,
.ux-builder-iframe .rh-about-index,
.ux-builder-iframe .rh-about-place,
.ux-builder-iframe .rh-contact-routes,
.ux-builder-iframe .rh-contact-note,
.ux-builder-iframe .rh-consult,
.ux-builder-iframe .rh-journal-index,
.rh-ux-builder .rh-reveal,
.rh-ux-builder .rh-motion,
.rh-ux-builder .rh-hero,
.rh-ux-builder .rh-panel,
.rh-ux-builder .rh-split,
.rh-ux-builder .rh-shop-section,
.rh-ux-builder .rh-mosaic,
.rh-ux-builder .rh-mosaic-block,
.rh-ux-builder .rh-cta,
.rh-ux-builder .rh-footer,
.rh-ux-builder .rh-about-open,
.rh-ux-builder .rh-about-dual,
.rh-ux-builder .rh-about-quote,
.rh-ux-builder .rh-about-letter,
.rh-ux-builder .rh-about-principles,
.rh-ux-builder .rh-about-index,
.rh-ux-builder .rh-about-place,
.rh-ux-builder .rh-contact-routes,
.rh-ux-builder .rh-contact-note,
.rh-ux-builder .rh-consult,
.rh-ux-builder .rh-journal-index {
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
	clip-path: none !important;
	animation: none !important;
	transition: none !important;
	visibility: visible !important;
}

.ux-builder-iframe .rh-cat-card__media.rh-motion--clip img,
.ux-builder-iframe .rh-split__media.rh-motion--clip img,
.ux-builder-iframe .rh-panel.rh-motion--clip .rh-panel__img,
.ux-builder-iframe .box-image.rh-motion--clip img,
.ux-builder-iframe .rh-mosaic__item.rh-motion--clip img,
.rh-ux-builder .rh-cat-card__media.rh-motion--clip img,
.rh-ux-builder .rh-split__media.rh-motion--clip img,
.rh-ux-builder .rh-panel.rh-motion--clip .rh-panel__img,
.rh-ux-builder .box-image.rh-motion--clip img,
.rh-ux-builder .rh-mosaic__item.rh-motion--clip img {
	transform: none !important;
}

.ux-builder-iframe .rh-ambient__glow,
.ux-builder-iframe .rh-ambient__veil,
.rh-ux-builder .rh-ambient__glow,
.rh-ux-builder .rh-ambient__veil {
	animation: none !important;
}

