/*
 * Visual alignment layer: keeps the partnership page unmistakably SparClean
 * while preserving its own real-estate storytelling and imagery.
 */

/* A lighter champagne treatment keeps the partnership header warm and airy. */
.rep-announcement {
	background: linear-gradient(105deg, #c38b1d, #f8dc7a 48%, #d6a238);
}

.rep-nav > .rep-button {
	background: linear-gradient(
		110deg,
		#c9952b,
		#e3bc4b 26%,
		#fff4b8 52%,
		#e9bd5b 75%,
		#fae8b6
	);
	border-color: #c79a3b;
	box-shadow: inset 0 1px #ffffffe0, 0 12px 32px #d4af3738;
}

.rep-hero {
	background:
		radial-gradient(circle at 8% 24%, rgba(212, 175, 55, .14), transparent 25%),
		var(--cream);
}

.rep-image-frame {
	border-radius: 84px 12px 92px 12px;
}

.rep-image-frame > img {
	object-position: center;
}

.rep-intro {
	padding-bottom: 42px;
}

.rep-intro-visual {
	background: var(--ink);
	border-radius: 30px;
	grid-template-columns: 1.25fr .75fr;
	align-items: stretch;
	min-height: 430px;
	margin-top: 68px;
	display: grid;
	overflow: hidden;
	box-shadow: 0 28px 75px rgba(25, 25, 22, .16);
}

.rep-intro-visual > img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.rep-intro-visual-copy {
	background:
		radial-gradient(circle at 100% 0, rgba(255, 255, 255, .3), transparent 36%),
		var(--gold);
	color: var(--ink);
	flex-direction: column;
	justify-content: flex-end;
	padding: 42px;
	display: flex;
}

.rep-intro-visual-copy span {
	letter-spacing: .15em;
	text-transform: uppercase;
	font-size: .56rem;
	font-weight: 850;
}

.rep-intro-visual-copy strong {
	margin: 18px 0 14px;
	font-family: var(--serif);
	font-size: clamp(1.7rem, 2.5vw, 2.6rem);
	font-weight: 400;
	line-height: 1.08;
}

.rep-intro-visual-copy p {
	color: rgba(25, 25, 22, .7);
	margin: 0;
	font-size: .75rem;
	line-height: 1.65;
}

/* The main brand uses dark tones as an accent, not as a whole-page rhythm. */
.rep-advantage {
	background:
		radial-gradient(circle at 4% 12%, rgba(212, 175, 55, .18), transparent 30%),
		var(--paper);
	color: var(--ink);
	border-block: 1px solid var(--line);
}

.rep-advantage::before {
	background-image: radial-gradient(rgba(154, 101, 0, .12) 1px, transparent 1px);
	mask-image: linear-gradient(90deg, #000, transparent 55%);
}

.rep-advantage .rep-eyebrow,
.rep-advantage h2 {
	color: var(--ink);
}

.rep-advantage h2 em {
	color: var(--gold-dark);
}

.rep-advantage-intro {
	background: linear-gradient(145deg, #b98114, #edc84d 64%, #f8e5a4);
	border: 1px solid rgba(138, 91, 0, .34);
	border-radius: 28px;
	padding: 38px;
	box-shadow: 0 22px 60px rgba(138, 91, 0, .18);
}

.rep-advantage-intro > p,
.rep-advantage-list p {
	color: var(--muted);
}

.rep-light-link {
	color: var(--ink);
	border-color: var(--ink);
}

.rep-advantage-list article {
	border-color: var(--line);
}

.rep-advantage-list article:last-child {
	border-color: var(--line);
}

.rep-advantage-list article > span {
	color: var(--gold-dark);
}

.rep-value {
	background: var(--cream);
}

.rep-value blockquote {
	background: linear-gradient(110deg, #b98114, #edc84d 54%, #f5dda0);
	color: var(--ink);
	border: 1px solid rgba(138, 91, 0, .28);
	box-shadow: 0 18px 50px rgba(138, 91, 0, .14);
}

.rep-value blockquote span {
	color: var(--ink);
}

.rep-gift {
	background:
		linear-gradient(90deg, rgba(212, 175, 55, .09), transparent 45%),
		var(--paper);
}

.rep-gift-art {
	background: var(--cream);
	border: 1px solid var(--line);
	min-height: 550px;
	padding: 0;
	position: relative;
	overflow: hidden;
}

.rep-gift-art > img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	position: absolute;
	inset: 0;
}

.rep-gift-art::after {
	content: "";
	background: linear-gradient(180deg, transparent 42%, rgba(25, 25, 22, .45));
	position: absolute;
	inset: 0;
}

.rep-gift-card {
	z-index: 1;
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	background: rgba(255, 253, 249, .88);
	width: min(390px, calc(100% - 44px));
	margin: auto 22px 22px auto;
	padding: 28px;
	align-self: end;
	transform: none;
	position: relative;
}

.rep-gift-card strong {
	margin: 18px 0 22px;
	font-size: 1.55rem;
}

.rep-process {
	background:
		radial-gradient(circle at 85% 15%, rgba(212, 175, 55, .18), transparent 25%),
		var(--cream);
}

.rep-fit {
	background: linear-gradient(115deg, #aa750d, #e9c349 55%, #f5dda0);
	color: var(--ink);
	border-block: 1px solid rgba(25, 25, 22, .2);
}

.rep-fit .rep-eyebrow {
	color: var(--ink);
}

.rep-pill-list span {
	background: rgba(255, 253, 249, .34);
	border-color: rgba(25, 25, 22, .22);
}

.rep-apply {
	background:
		radial-gradient(circle at 0 0, rgba(212, 175, 55, .2), transparent 31%),
		var(--cream);
	border-top: 1px solid var(--line);
}

.rep-apply::before {
	border-color: rgba(212, 175, 55, .22);
}

.rep-apply-copy {
	border-top: 1px solid var(--line);
	padding-top: 34px;
}

.rep-form-benefits {
	border-block: 1px solid var(--line);
	gap: 0;
	margin: 36px 0 0;
	display: grid;
}

.rep-form-benefits > div {
	grid-template-columns: 32px 1fr;
	gap: 4px 12px;
	padding: 17px 0;
	display: grid;
}

.rep-form-benefits > div + div {
	border-top: 1px solid var(--line);
}

.rep-form-benefits span {
	color: var(--gold-dark);
	grid-row: 1 / 3;
	font-family: var(--serif);
	font-size: .72rem;
}

.rep-form-benefits strong,
.rep-form-benefits small {
	display: block;
}

.rep-form-benefits strong {
	font-family: var(--serif);
	font-size: .93rem;
	font-weight: 400;
}

.rep-form-benefits small {
	color: var(--muted);
	font-size: .59rem;
}

.rep-form {
	border-color: rgba(154, 101, 0, .22);
	min-height: 610px;
	box-shadow: 0 28px 75px rgba(25, 25, 22, .12);
}

.rep-staged-form {
	flex-direction: column;
	display: flex;
}

.rep-staged-form [hidden] {
	display: none !important;
}

.rep-staged-form .rep-form-head {
	justify-content: space-between;
	align-items: end;
	gap: 20px;
	display: flex;
}

.rep-staged-form .rep-form-head small {
	color: var(--gold-dark);
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: .55rem;
	font-weight: 850;
}

.rep-step-progress {
	background: rgba(138, 91, 0, .11);
	border-radius: 99px;
	height: 4px;
	margin: -10px 0 28px;
	overflow: hidden;
}

.rep-step-progress span {
	background: linear-gradient(90deg, #9b6805, var(--gold), #f1cf65);
	border-radius: inherit;
	width: 25%;
	height: 100%;
	transition: width .45s var(--ease);
	display: block;
}

.rep-form-step {
	border: 0;
	min-width: 0;
	margin: 0;
	padding: 0;
	display: none;
}

.rep-form-step.is-active {
	animation: repStepIn .42s var(--ease) both;
	display: block;
}

.rep-form-step legend {
	color: var(--ink);
	margin: 0;
	padding: 0;
	font-family: var(--serif);
	font-size: 1.42rem;
	font-weight: 400;
	line-height: 1.2;
}

.rep-form-step > p {
	color: var(--muted);
	margin: 9px 0 24px;
	font-size: .68rem;
	line-height: 1.55;
}

.rep-partner-options {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	display: grid;
}

.rep-partner-options label {
	cursor: pointer;
	min-width: 0;
}

.rep-partner-options input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.rep-partner-options label > span {
	background: #fffdfa;
	border: 1px solid var(--line);
	border-radius: 13px;
	min-height: 78px;
	padding: 14px;
	transition: border-color .25s, background .25s, box-shadow .25s, transform .25s var(--ease);
	display: block;
}

.rep-partner-options label:hover > span {
	border-color: rgba(138, 91, 0, .52);
	transform: translateY(-2px);
}

.rep-partner-options input:checked + span {
	background: linear-gradient(145deg, #fff9e7, #f3dfaa);
	border-color: var(--gold-dark);
	box-shadow: inset 0 0 0 1px rgba(138, 91, 0, .16), 0 10px 24px rgba(138, 91, 0, .12);
}

.rep-partner-options input:focus-visible + span {
	outline: 3px solid rgba(138, 91, 0, .24);
	outline-offset: 2px;
}

.rep-partner-options strong,
.rep-partner-options small {
	display: block;
}

.rep-partner-options strong {
	color: var(--ink);
	font-family: var(--serif);
	font-size: .9rem;
	font-weight: 400;
}

.rep-partner-options small {
	color: var(--muted);
	margin-top: 5px;
	font-size: .55rem;
	line-height: 1.35;
}

.rep-step-actions {
	align-items: center;
	gap: 14px;
	margin-top: auto;
	padding-top: 26px;
	display: flex;
}

.rep-step-next,
.rep-staged-form .rep-submit {
	margin-left: auto;
}

.rep-step-back {
	color: var(--ink);
	cursor: pointer;
	background: transparent;
	border: 0;
	padding: 13px 2px;
	font-size: .7rem;
	font-weight: 800;
}

.rep-step-next,
.rep-staged-form .rep-submit {
	cursor: pointer;
	min-width: 190px;
}

@keyframes repStepIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.rep-footer {
	background:
		radial-gradient(circle at 10% 20%, rgba(255, 255, 255, .2), transparent 24%),
		var(--gold);
	color: rgba(25, 25, 22, .68);
	border-top: 1px solid rgba(25, 25, 22, .2);
}

.rep-footer-grid strong {
	color: var(--ink);
}

.rep-footer-bottom {
	border-color: rgba(25, 25, 22, .2);
}

/* Premium motion and atmosphere */
:root {
	--rep-parallax-y: 0px;
	--rep-parallax-soft: 0px;
}

body {
	background:
		radial-gradient(circle at 12% 8%, rgba(212, 175, 55, .1), transparent 23%),
		radial-gradient(circle at 88% 28%, rgba(154, 101, 0, .06), transparent 26%),
		var(--cream);
}

main {
	overflow: clip;
}

main > section {
	isolation: isolate;
	position: relative;
	overflow: hidden;
}

main > section > .rep-shell {
	z-index: 2;
	position: relative;
}

.rep-page-progress {
	z-index: 120;
	background: rgba(138, 91, 0, .08);
	width: 100%;
	height: 3px;
	pointer-events: none;
	position: fixed;
	top: 0;
	left: 0;
}

.rep-page-progress span {
	background: linear-gradient(90deg, #9a6500, #efcb56 52%, #fff1ae);
	width: 100%;
	height: 100%;
	display: block;
	transform: scaleX(0);
	transform-origin: left center;
	box-shadow: 0 0 14px rgba(212, 175, 55, .65);
}

.rep-ambient {
	z-index: 0;
	pointer-events: none;
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.rep-ambient > span {
	position: absolute;
	display: block;
}

.rep-ambient-orb {
	background: radial-gradient(circle at 34% 32%, rgba(255, 241, 174, .7), rgba(212, 175, 55, .2) 42%, transparent 70%);
	filter: blur(1px);
	border-radius: 50%;
	width: 420px;
	height: 420px;
	opacity: .62;
	transform: translate3d(0, var(--rep-parallax-soft), 0);
}

.rep-ambient-ring {
	border: 1px solid rgba(154, 101, 0, .18);
	border-radius: 50%;
	width: 360px;
	height: 360px;
	opacity: .72;
}

.rep-ambient-ring::before,
.rep-ambient-ring::after {
	content: "";
	border: inherit;
	border-radius: inherit;
	position: absolute;
}

.rep-ambient-ring::before {
	inset: 28px;
}

.rep-ambient-ring::after {
	inset: 66px;
}

.rep-ambient-dots {
	background-image: radial-gradient(rgba(154, 101, 0, .22) 1px, transparent 1px);
	background-size: 19px 19px;
	width: 280px;
	height: 260px;
	opacity: .46;
	mask-image: linear-gradient(135deg, #000, transparent 78%);
}

.rep-ambient-spark {
	background: var(--gold);
	width: 7px;
	height: 7px;
	opacity: .75;
	transform: rotate(45deg);
	box-shadow: 0 0 0 6px rgba(212, 175, 55, .1), 0 0 24px rgba(212, 175, 55, .4);
	animation: repSparkPulse 4.8s ease-in-out infinite;
}

.rep-ambient-spark::before,
.rep-ambient-spark::after {
	content: "";
	background: inherit;
	opacity: .6;
	position: absolute;
	inset: 2px -5px;
}

.rep-ambient-spark::after {
	inset: -5px 2px;
}

.rep-ambient-spark-two {
	width: 5px;
	height: 5px;
	animation-delay: -2.2s;
}

.rep-ambient--hero .rep-ambient-orb {
	top: -190px;
	left: -120px;
	width: 600px;
	height: 600px;
}

.rep-ambient--hero .rep-ambient-ring {
	top: 13%;
	right: -190px;
	width: 520px;
	height: 520px;
	animation: repAmbientSpin 32s linear infinite;
}

.rep-ambient--hero .rep-ambient-dots {
	right: 3%;
	bottom: 2%;
}

.rep-ambient--hero .rep-ambient-spark-one {
	top: 18%;
	left: 48%;
}

.rep-ambient--hero .rep-ambient-spark-two {
	right: 4%;
	bottom: 20%;
}

.rep-ambient--apply .rep-ambient-orb {
	right: -170px;
	bottom: -220px;
}

.rep-ambient--apply .rep-ambient-ring {
	top: -180px;
	left: -130px;
	width: 470px;
	height: 470px;
	transform: translate3d(0, var(--rep-parallax-soft), 0);
}

.rep-ambient--apply .rep-ambient-dots {
	top: 12%;
	right: 1%;
}

.rep-ambient--apply .rep-ambient-spark-one {
	top: 20%;
	left: 6%;
}

.rep-ambient--apply .rep-ambient-spark-two {
	right: 8%;
	bottom: 14%;
}

.rep-ambient--intro .rep-ambient-orb {
	top: 18%;
	right: -180px;
}

.rep-ambient--intro .rep-ambient-ring {
	left: -220px;
	bottom: -210px;
	width: 500px;
	height: 500px;
}

.rep-ambient--intro .rep-ambient-dots {
	top: 8%;
	left: 2%;
}

.rep-ambient--intro .rep-ambient-spark-one {
	top: 16%;
	right: 7%;
}

.rep-ambient--intro .rep-ambient-spark-two {
	bottom: 16%;
	left: 8%;
}

.rep-ambient--solutions .rep-ambient-orb {
	top: 22%;
	left: -260px;
	width: 560px;
	height: 560px;
}

.rep-ambient--solutions .rep-ambient-ring {
	top: -160px;
	right: -130px;
}

.rep-ambient--solutions .rep-ambient-dots {
	right: 3%;
	bottom: 5%;
	width: 360px;
}

.rep-ambient--solutions .rep-ambient-spark-one {
	top: 14%;
	left: 4%;
}

.rep-ambient--solutions .rep-ambient-spark-two {
	right: 8%;
	bottom: 10%;
}

.rep-ambient--advantage .rep-ambient-orb {
	top: -170px;
	left: 22%;
	width: 520px;
	height: 520px;
	opacity: .42;
}

.rep-ambient--advantage .rep-ambient-ring {
	right: -180px;
	bottom: -190px;
	width: 480px;
	height: 480px;
	animation: repAmbientSpin 38s linear infinite reverse;
}

.rep-ambient--advantage .rep-ambient-dots {
	top: 8%;
	left: 1%;
}

.rep-ambient--advantage .rep-ambient-spark-one {
	top: 12%;
	right: 12%;
}

.rep-ambient--advantage .rep-ambient-spark-two {
	bottom: 9%;
	left: 41%;
}

.rep-ambient--value .rep-ambient-orb {
	right: -210px;
	bottom: -230px;
	width: 520px;
	height: 520px;
}

.rep-ambient--value .rep-ambient-ring {
	top: -210px;
	left: -180px;
	width: 500px;
	height: 500px;
}

.rep-ambient--value .rep-ambient-dots {
	top: 5%;
	right: 3%;
}

.rep-ambient--value .rep-ambient-spark-one {
	top: 19%;
	left: 7%;
}

.rep-ambient--value .rep-ambient-spark-two {
	right: 6%;
	bottom: 12%;
}

.rep-ambient--gift .rep-ambient-orb {
	top: -200px;
	right: 18%;
}

.rep-ambient--gift .rep-ambient-ring {
	left: -160px;
	bottom: -150px;
}

.rep-ambient--gift .rep-ambient-dots {
	right: 2%;
	bottom: 7%;
}

.rep-ambient--gift .rep-ambient-spark-one {
	top: 10%;
	left: 43%;
}

.rep-ambient--gift .rep-ambient-spark-two {
	right: 4%;
	bottom: 21%;
}

.rep-ambient--process .rep-ambient-orb {
	right: -160px;
	bottom: -220px;
}

.rep-ambient--process .rep-ambient-ring {
	top: -170px;
	left: 32%;
}

.rep-ambient--process .rep-ambient-dots {
	top: 8%;
	left: 1%;
}

.rep-ambient--process .rep-ambient-spark-one {
	top: 15%;
	right: 8%;
}

.rep-ambient--process .rep-ambient-spark-two {
	bottom: 12%;
	left: 10%;
}

.rep-ambient--fit .rep-ambient-orb {
	top: -240px;
	left: -120px;
	width: 530px;
	height: 530px;
	opacity: .38;
}

.rep-ambient--fit .rep-ambient-ring {
	right: -140px;
	bottom: -250px;
	width: 470px;
	height: 470px;
}

.rep-ambient--fit .rep-ambient-dots {
	top: 0;
	right: 10%;
	opacity: .3;
}

.rep-ambient--fit .rep-ambient-spark-one {
	top: 24%;
	left: 45%;
}

.rep-ambient--fit .rep-ambient-spark-two {
	right: 5%;
	bottom: 20%;
}

.rep-ambient--faq .rep-ambient-orb {
	top: 20%;
	right: -210px;
}

.rep-ambient--faq .rep-ambient-ring {
	left: -200px;
	bottom: -230px;
	width: 520px;
	height: 520px;
}

.rep-ambient--faq .rep-ambient-dots {
	top: 5%;
	left: 2%;
}

.rep-ambient--faq .rep-ambient-spark-one {
	top: 12%;
	right: 7%;
}

.rep-ambient--faq .rep-ambient-spark-two {
	bottom: 13%;
	left: 8%;
}

.rep-motion-ready .rep-reveal {
	opacity: 0;
	filter: blur(5px);
	transition:
		opacity .85s var(--ease) var(--rep-delay, 0ms),
		transform .9s var(--ease) var(--rep-delay, 0ms),
		filter .8s ease var(--rep-delay, 0ms);
	transform: translate3d(0, 34px, 0);
}

.rep-motion-ready .rep-reveal.rep-reveal-left {
	transform: translate3d(-30px, 24px, 0);
}

.rep-motion-ready .rep-reveal.rep-reveal-right {
	transform: translate3d(30px, 24px, 0);
}

.rep-motion-ready .rep-reveal.is-visible {
	opacity: 1;
	filter: none;
	transform: none;
}

.rep-motion-ready .rep-hero-copy {
	opacity: 0;
	transform: translate3d(-38px, 22px, 0);
	transition: opacity 1s var(--ease), transform 1.1s var(--ease);
}

.rep-motion-ready .rep-hero-visual {
	opacity: 0;
	transform: translate3d(35px, 18px, 0) scale(.975);
	transition: opacity 1.1s var(--ease) .12s, transform 1.25s var(--ease) .12s;
}

.rep-page-loaded .rep-hero-copy,
.rep-page-loaded .rep-hero-visual {
	opacity: 1;
	transform: none;
}

.rep-image-frame {
	border: 1px solid rgba(255, 255, 255, .7);
	transition: transform .7s var(--ease), box-shadow .7s var(--ease);
}

.rep-image-frame::before {
	content: "";
	z-index: 2;
	background: linear-gradient(115deg, transparent 28%, rgba(255, 255, 255, .38) 48%, transparent 68%);
	width: 55%;
	pointer-events: none;
	position: absolute;
	top: 0;
	bottom: 0;
	left: -75%;
	transform: skewX(-12deg);
	animation: repHeroGlint 8s ease-in-out 1.2s infinite;
}

.rep-image-frame > img {
	transform: scale(1.025);
	transition: transform 1.25s var(--ease), filter .7s;
}

.rep-hero-visual:hover .rep-image-frame {
	box-shadow: 0 38px 105px rgba(25, 25, 22, .23);
	transform: translateY(-6px);
}

.rep-hero-visual:hover .rep-image-frame > img {
	filter: saturate(1.04) contrast(1.02);
	transform: scale(1.055);
}

.rep-hero-note {
	animation: repFloat 6s ease-in-out infinite;
}

.rep-property-card {
	animation: repFloat 7.2s ease-in-out -2.4s infinite;
}

.rep-button {
	isolation: isolate;
	position: relative;
	overflow: hidden;
}

.rep-button::before {
	content: "";
	z-index: -1;
	background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, .7) 48%, transparent 76%);
	width: 60%;
	position: absolute;
	top: -30%;
	bottom: -30%;
	left: -85%;
	transform: skewX(-16deg);
	transition: left .75s var(--ease);
}

.rep-button:hover::before,
.rep-button:focus-visible::before {
	left: 130%;
}

.rep-solution {
	transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s;
}

.rep-solution::after {
	content: "";
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .48), transparent);
	width: 52%;
	pointer-events: none;
	position: absolute;
	top: -20%;
	bottom: -20%;
	left: -75%;
	transform: skewX(-14deg);
	transition: left .85s var(--ease);
}

.rep-solution:hover::after {
	left: 135%;
}

.rep-solution:hover {
	border-color: rgba(154, 101, 0, .3);
	box-shadow: 0 28px 70px rgba(25, 25, 22, .12);
}

.rep-solution .rep-card-icon {
	transition: transform .55s var(--ease), background .4s, box-shadow .4s;
}

.rep-solution:hover .rep-card-icon {
	box-shadow: 0 10px 28px rgba(138, 91, 0, .18);
	transform: rotate(-7deg) scale(1.08);
}

.rep-advantage-intro {
	transition: transform .55s var(--ease), box-shadow .55s var(--ease);
}

.rep-advantage-intro:hover {
	box-shadow: 0 30px 78px rgba(138, 91, 0, .24);
	transform: translateY(-6px);
}

.rep-advantage-list article {
	transition: transform .45s var(--ease), padding-left .45s var(--ease), background .35s;
}

.rep-advantage-list article:hover {
	background: linear-gradient(90deg, rgba(212, 175, 55, .1), transparent);
	padding-left: 14px;
	transform: translateX(6px);
}

.rep-advantage-list article > span {
	transition: transform .45s var(--ease), color .35s;
}

.rep-advantage-list article:hover > span {
	color: var(--ink);
	transform: scale(1.18);
}

.rep-value-grid article {
	position: relative;
	overflow: hidden;
	transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s;
}

.rep-value-grid article::after {
	content: "";
	background: radial-gradient(circle, rgba(212, 175, 55, .23), transparent 70%);
	border-radius: 50%;
	width: 180px;
	height: 180px;
	pointer-events: none;
	position: absolute;
	right: -100px;
	bottom: -110px;
	transition: transform .65s var(--ease), opacity .45s;
}

.rep-value-grid article:hover {
	border-color: rgba(154, 101, 0, .34);
	box-shadow: 0 24px 58px rgba(25, 25, 22, .1);
	transform: translateY(-8px);
}

.rep-value-grid article:hover::after {
	opacity: .9;
	transform: scale(1.7);
}

.rep-intro-visual {
	transition: transform .65s var(--ease), box-shadow .65s var(--ease);
}

.rep-intro-visual > img {
	transition: transform 1s var(--ease), filter .6s;
}

.rep-intro-visual:hover {
	box-shadow: 0 38px 95px rgba(25, 25, 22, .22);
	transform: translateY(-7px);
}

.rep-intro-visual:hover > img {
	filter: saturate(1.04);
	transform: scale(1.035);
}

.rep-gift-art {
	transition: transform .65s var(--ease), box-shadow .65s var(--ease);
}

.rep-gift-art > img {
	transform: scale(1.015);
	transition: transform 1.1s var(--ease), filter .7s;
}

.rep-gift-art:hover {
	box-shadow: 0 34px 88px rgba(25, 25, 22, .16);
	transform: translateY(-7px);
}

.rep-gift-art:hover > img {
	filter: saturate(1.05) contrast(1.025);
	transform: scale(1.055);
}

.rep-gift-card {
	transition: transform .6s var(--ease), box-shadow .6s var(--ease);
}

.rep-gift-art:hover .rep-gift-card {
	box-shadow: 0 28px 64px rgba(25, 25, 22, .23);
	transform: translateY(-7px) rotate(-1deg);
}

.rep-process-grid {
	position: relative;
}

.rep-process-grid::before {
	content: "";
	z-index: 2;
	background: linear-gradient(90deg, transparent, var(--gold-dark) 12%, var(--gold) 50%, var(--gold-dark) 88%, transparent);
	height: 2px;
	opacity: .32;
	pointer-events: none;
	position: absolute;
	top: 48px;
	right: 3%;
	left: 3%;
	transform: scaleX(.05);
	transform-origin: left;
	transition: transform 1.6s var(--ease) .2s;
}

.rep-process-grid.is-visible::before,
.rep-process:has(.rep-process-grid li.is-visible) .rep-process-grid::before {
	transform: scaleX(1);
}

.rep-process-grid li {
	z-index: 3;
	transition: transform .45s var(--ease), background .4s, box-shadow .45s;
	position: relative;
}

.rep-process-grid li:hover {
	z-index: 4;
	background: var(--paper);
	box-shadow: 0 24px 60px rgba(25, 25, 22, .12);
	transform: translateY(-9px);
}

.rep-process-grid span {
	background: var(--cream);
	border: 1px solid rgba(154, 101, 0, .22);
	border-radius: 99px;
	width: 35px;
	height: 24px;
	place-items: center;
	display: grid;
	position: relative;
}

.rep-pill-list span {
	transition: transform .35s var(--ease), background .35s, border-color .35s, box-shadow .35s;
}

.rep-pill-list span:hover {
	background: rgba(255, 253, 249, .64);
	border-color: rgba(25, 25, 22, .36);
	box-shadow: 0 12px 25px rgba(98, 63, 3, .12);
	transform: translateY(-4px);
}

.rep-faq-list details {
	transition: background .35s, padding .4s var(--ease), border-color .35s;
}

.rep-faq-list details:hover {
	background: rgba(212, 175, 55, .065);
	padding-inline: 16px;
}

.rep-faq-list summary i {
	border: 1px solid rgba(154, 101, 0, .22);
	border-radius: 50%;
	width: 28px;
	height: 28px;
	place-items: center;
	display: grid;
}

.rep-form {
	transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s;
}

.rep-form:focus-within {
	border-color: rgba(154, 101, 0, .42);
	box-shadow: 0 34px 90px rgba(25, 25, 22, .15), 0 0 0 5px rgba(212, 175, 55, .06);
	transform: translateY(-4px);
}

@keyframes repFloat {
	0%,
	100% {
		transform: translate3d(0, 0, 0);
	}
	50% {
		transform: translate3d(0, -8px, 0);
	}
}

@keyframes repSparkPulse {
	0%,
	100% {
		opacity: .34;
		transform: rotate(45deg) scale(.78);
	}
	50% {
		opacity: .9;
		transform: rotate(45deg) scale(1.12);
	}
}

@keyframes repAmbientSpin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes repHeroGlint {
	0%,
	62% {
		left: -75%;
	}
	82%,
	100% {
		left: 145%;
	}
}

@media (max-width: 820px) {
	.rep-intro-visual {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.rep-intro-visual > img {
		height: 390px;
	}

	.rep-intro-visual-copy {
		padding: 30px;
	}

	.rep-advantage-intro {
		position: static;
	}

	.rep-form {
		min-height: 580px;
	}
}

@media (max-width: 600px) {
	.rep-image-frame {
		border-radius: 52px 8px;
	}

	.rep-intro-visual {
		border-radius: 22px;
		margin-top: 42px;
	}

	.rep-intro-visual > img {
		height: 290px;
	}

	.rep-intro-visual-copy {
		padding: 24px;
	}

	.rep-advantage-intro {
		border-radius: 22px;
		padding: 26px 22px;
	}

	.rep-gift-art {
		min-height: 440px;
	}

	.rep-form {
		min-height: 600px;
	}

	.rep-partner-options {
		grid-template-columns: 1fr;
	}

	.rep-partner-options label > span {
		min-height: 66px;
	}

	.rep-step-actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}

	.rep-step-next,
	.rep-staged-form .rep-submit {
		width: 100%;
		margin-left: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rep-page-progress,
	.rep-ambient-spark {
		display: none;
	}

	.rep-motion-ready .rep-reveal,
	.rep-motion-ready .rep-hero-copy,
	.rep-motion-ready .rep-hero-visual {
		opacity: 1;
		filter: none;
		transform: none;
		transition: none;
	}

	.rep-hero-note,
	.rep-property-card,
	.rep-ambient-ring,
	.rep-image-frame::before {
		animation: none;
	}

	.rep-image-frame > img,
	.rep-intro-visual > img,
	.rep-gift-art > img {
		transition: none;
	}
}
