@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,700;1,9..40,400&family=Dancing+Script:wght@600&display=swap');

/* ==========================================================================
   Riverwalk Campaign Pages — campaign.css v1.2.0
   Scoped entirely under .rw-campaign. Design tokens in custom properties.
   ========================================================================== */

.rw-campaign {
	--rwcp-navy:        #3B457B;  /* Heritage Navy (2026 rebrand) */
	--rwcp-navy-deep:   #2C345F;
	--rwcp-gold:        #E6A276;  /* Spanish Terracotta (was gold) */
	--rwcp-gold-deep:   #C97F4E;
	--rwcp-white:       #FFFFFF;
	--rwcp-gray-bg:     #F5F6FA;
	--rwcp-blue-soft:   #EDF1FA;
	--rwcp-ink:         #232941;
	--rwcp-ink-soft:    #545C7E;
	--rwcp-line:        #DFE3F0;

	--rwcp-font-head:   'Poppins', 'Helvetica Neue', Arial, sans-serif;
	--rwcp-font-body:   'DM Sans', 'Helvetica Neue', Arial, sans-serif;

	--rwcp-radius:      14px;
	--rwcp-shadow:      0 4px 18px rgba(59, 69, 123, 0.08);
	--rwcp-container:   min(1560px, 95vw);

	/* Spacing scale — all vertical rhythm derives from these */
	--rwcp-space-sm:    clamp(16px, 1.5vw, 24px);
	--rwcp-space-md:    clamp(32px, 3vw, 44px);
	--rwcp-space-lg:    clamp(48px, 4.5vw, 64px);
	--rwcp-space-xl:    clamp(64px, 6vw, 88px);
	--rwcp-section-pad: var(--rwcp-space-xl);

	font-family: var(--rwcp-font-body);
	color: var(--rwcp-ink);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	background: var(--rwcp-white);
}

.rw-campaign *, .rw-campaign *::before, .rw-campaign *::after { box-sizing: border-box; }
.rw-campaign :where(h1, h2, h3, h4, p, ul) { margin: 0; padding: 0; }
.rw-campaign ul { list-style: none; }
.rw-campaign img { max-width: 100%; height: auto; display: block; }
.rw-campaign h1, .rw-campaign h2, .rw-campaign h3, .rw-campaign h4 {
	font-family: var(--rwcp-font-head);
	line-height: 1.15;
}
/* Heading color via :where() = zero added specificity, so single-class
   component colors (e.g. white titles on navy bands) always win. */
.rw-campaign :where(h1, h2, h3, h4) { color: var(--rwcp-navy); }

.rwcp-container { max-width: var(--rwcp-container); margin: 0 auto; padding: 0 clamp(16px, 2.5vw, 40px); }

/* Section title with flanking gold rules (mock treatment) */
.rwcp-section-title {
	display: flex; align-items: center; justify-content: center; gap: 24px;
	width: 100%;
	font-size: clamp(29.6px, 3.4vw, 42.4px); font-weight: 700;
	letter-spacing: 0.02em; text-transform: uppercase;
	text-align: center; margin: 0 0 var(--rwcp-space-lg);
}
.rwcp-section-title::before, .rwcp-section-title::after {
	content: ""; flex: 0 0 auto; width: clamp(48px, 11vw, 160px); height: 2px;
	background: var(--rwcp-gold); border-radius: 1px;
}

.rwcp-icon { width: 1.5em; height: 1.5em; flex: 0 0 auto; }
.rwcp-card { background: var(--rwcp-white); border: 1px solid var(--rwcp-line); border-radius: var(--rwcp-radius); box-shadow: var(--rwcp-shadow); }

.rw-campaign .rwcp-btn {
	display: inline-block; font-family: var(--rwcp-font-head); font-weight: 700; font-size: 16px;
	letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
	padding: 16.8px 35.2px; border-radius: 8px; border: 2px solid transparent;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
	cursor: pointer; text-align: center;
}
.rw-campaign .rwcp-btn:hover { transform: translateY(-1px); }
.rw-campaign .rwcp-btn:focus-visible { outline: 3px solid var(--rwcp-gold); outline-offset: 3px; }
.rw-campaign .rwcp-btn--navy { background: var(--rwcp-navy); color: var(--rwcp-white); }
.rw-campaign .rwcp-btn--navy:hover { background: var(--rwcp-navy-deep); color: var(--rwcp-white); }
.rw-campaign .rwcp-btn--gold { background: var(--rwcp-gold); color: var(--rwcp-navy-deep); }
.rw-campaign .rwcp-btn--gold:hover { background: var(--rwcp-gold-deep); color: var(--rwcp-navy-deep); }

/* HERO */
.rwcp-hero {
	position: relative; min-height: clamp(500px, 52vw, 680px);
	background-size: cover; background-position: center bottom;
	display: flex; align-items: center; justify-content: flex-end; overflow: hidden; isolation: isolate;
	background-color: var(--rwcp-navy);
	background-image: linear-gradient(135deg, #3B457B, #5A6BAD);
}
.rwcp-hero__scrim {
	position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(270deg,
		rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.82) 38%,
		rgba(255,255,255,0.15) 75%, rgba(255,255,255,0) 100%);
}
.rwcp-hero__badge { position: absolute; top: 0; left: clamp(40px, 8vw, 112px); right: auto; width: clamp(124px, 13.2vw, 192px); z-index: 2; container-type: inline-size; }
.rwcp-hero__badge img { width: 100%; height: auto; display: block; }
.rwcp-hero__badge-text {
	position: absolute; inset: 7% 4% 24% 4%;
	display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
	gap: 4cqw; text-align: center;
	font-family: var(--rwcp-font-head); text-transform: uppercase; line-height: 1;
	pointer-events: none;
}
.rwcp-hero__badge-line--1 { font-size: 8.5cqw; letter-spacing: 0.18em; color: #FFFFFF; }
.rwcp-hero__badge-line--2 { font-size: 36cqw; font-weight: 800; color: #FFFFFF; }
.rwcp-hero__badge-line--3 { font-size: 11cqw; letter-spacing: 0.42em; color: var(--rwcp-gold); text-indent: 0.42em; }
.rwcp-hero__badge-line--4 { font-size: 8.5cqw; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.9); }
.rwcp-hero__inner { position: relative; z-index: 2; width: 100%; padding-top: 40px; padding-bottom: 40px; }
.rwcp-hero__content { max-width: 576px; margin-left: auto; }
.rwcp-hero__eyebrow {
	font-family: var(--rwcp-font-head); font-weight: 700; font-size: 16px;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--rwcp-navy); margin-bottom: 10.4px;
}
.rwcp-hero__headline { font-size: clamp(48px, 6.4vw, 81.6px); font-weight: 800; text-transform: uppercase; letter-spacing: 0.01em; }
.rwcp-hero__line { display: block; color: var(--rwcp-navy); }
.rwcp-hero__line--accent { color: var(--rwcp-gold); }
.rwcp-hero__sub { font-size: clamp(17.6px, 1.7vw, 22.4px); color: var(--rwcp-ink); margin-top: 19.2px; max-width: 480px; }
.rwcp-hero__actions { display: flex; flex-wrap: wrap; gap: 14.4px; margin-top: 28px; }

/* OFFER BANNER (full-bleed gold) */
.rwcp-offer { background: linear-gradient(90deg, var(--rwcp-gold-deep), var(--rwcp-gold)); padding: clamp(28px, 3vw, 36px) 0; }
.rwcp-offer__inner { display: flex; align-items: center; justify-content: center; gap: 24px; }
.rwcp-offer__icon .rwcp-icon { width: 48px; height: 48px; color: var(--rwcp-white); opacity: 0.9; }
.rwcp-offer__title { color: var(--rwcp-white); font-size: clamp(23.2px, 2.3vw, 28.8px); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 4.8px; }
.rwcp-offer__body { color: rgba(255,255,255,0.95); max-width: 736px; }

/* HOW IT WORKS — divider columns + offices card */
.rwcp-how { padding: var(--rwcp-section-pad) 0 var(--rwcp-space-lg); background: var(--rwcp-white); }
.rwcp-how__grid { display: grid; grid-template-columns: repeat(3, 1fr) 1.25fr; align-items: stretch; }
.rwcp-how__step {
	padding: 8px clamp(16px, 2vw, 32px);
	border-right: 1px solid var(--rwcp-line);
	display: flex; flex-direction: column; gap: 16px;
}
.rwcp-how__step:first-child { padding-left: 4px; }
.rwcp-how__step:nth-child(3) { border-right: 0; }
.rwcp-how__step-head { display: flex; align-items: center; justify-content: center; gap: 12px; }
.rwcp-how__num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 35.2px; height: 35.2px; flex: 0 0 auto; border-radius: 50%;
	background: var(--rwcp-navy); color: var(--rwcp-white);
	font-family: var(--rwcp-font-head); font-weight: 700; font-size: 16px;
}
.rwcp-how__step-title { font-size: 20.48px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.rwcp-how__icon {
	display: flex; align-items: center; justify-content: center;
	width: 124px; height: 124px; margin: 0 auto; border-radius: 50%;
	background: var(--rwcp-blue-soft); color: var(--rwcp-navy);
}
.rwcp-how__icon .rwcp-icon { width: 56px; height: 56px; }
.rwcp-how__body { color: var(--rwcp-ink-soft); text-align: center; font-size: 16.8px; }
.rwcp-how__checklist { display: flex; flex-direction: column; gap: 8px; margin: 0 auto; }
.rwcp-how__checklist li { display: flex; align-items: flex-start; gap: 9.6px; font-size: 16px; font-weight: 600; }
.rwcp-how__checklist .rwcp-icon { width: 17.6px; height: 17.6px; margin-top: 3.2px; color: var(--rwcp-gold-deep); }
.rwcp-how__offices { padding: 24px 22.4px; margin-left: clamp(16px, 2vw, 32px); display: flex; flex-direction: column; justify-content: center; gap: 14.4px; }
.rwcp-how__office { display: flex; gap: 14.4px; align-items: flex-start; }
.rwcp-how__office-icon {
	display: flex; align-items: center; justify-content: center;
	width: 60px; height: 60px; flex: 0 0 auto; border-radius: 50%;
	background: var(--rwcp-navy); color: var(--rwcp-white);
}
.rwcp-how__office-icon .rwcp-icon { width: 27.2px; height: 27.2px; }
.rwcp-how__office-text h4 { text-wrap: balance; font-size: 16.32px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; margin-bottom: 4px; }
.rwcp-how__office-text p { font-size: 15.68px; color: var(--rwcp-ink-soft); line-height: 1.45; }
.rwcp-how__or {
	display: flex; align-items: center; gap: 12px; color: var(--rwcp-ink-soft);
	font-family: var(--rwcp-font-head); font-weight: 700; font-size: 12px;
	letter-spacing: 0.12em; text-transform: uppercase;
}
.rwcp-how__or::before, .rwcp-how__or::after { content: ""; flex: 1; height: 1px; background: var(--rwcp-line); }
.rwcp-how__note { margin-top: var(--rwcp-space-md); text-align: center; font-size: 14.72px; font-style: italic; color: var(--rwcp-ink-soft); }

/* BENEFITS — inset rounded soft-blue box */
.rwcp-benefits { background: var(--rwcp-white); padding: var(--rwcp-space-sm) 0; }
.rwcp-benefits__inner {
	background: var(--rwcp-blue-soft); border-radius: var(--rwcp-radius);
	padding: clamp(28px, 3vw, 40px) clamp(24px, 3.5vw, 48px);
	display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.rwcp-benefits__lead { display: flex; align-items: center; gap: 20px; min-width: 0; }
.rwcp-benefits__icon {
	display: flex; align-items: center; justify-content: center;
	width: 92px; height: 92px; flex: 0 0 auto; border-radius: 50%;
	background: var(--rwcp-navy); color: var(--rwcp-white);
}
.rwcp-benefits__icon .rwcp-icon { width: 43.2px; height: 43.2px; }
.rwcp-benefits__title { font-size: clamp(31.2px, 3.4vw, 42.4px); font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.rwcp-benefits__body { color: var(--rwcp-ink-soft); margin-top: 5.6px; max-width: 416px; }
.rwcp-benefits__chips { display: flex; flex-wrap: wrap; }
.rwcp-benefits__chip {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
	text-align: center; font-family: var(--rwcp-font-head); font-weight: 700; font-size: 11.52px;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--rwcp-navy);
	flex: 0 0 208px; width: 208px; padding: 0 22.4px;
	font-size: 13.12px;
}
.rwcp-benefits__chip + .rwcp-benefits__chip { border-left: 1px solid rgba(59, 69, 123, 0.18); }
.rwcp-benefits__chip .rwcp-icon { width: 32px; height: 32px; color: var(--rwcp-navy); }
.rwcp-benefits__chip-icon { width: 58px; height: 58px; object-fit: contain; }

/* VIP — inset rounded navy box */
.rwcp-vip { background: var(--rwcp-white); padding: var(--rwcp-space-sm) 0; }
.rwcp-vip__inner {
	background: var(--rwcp-navy-deep); color: var(--rwcp-white);
	border-radius: var(--rwcp-radius);
	padding: clamp(32px, 3.5vw, 48px) clamp(24px, 3.5vw, 48px);
	display: grid; grid-template-columns: 1.2fr auto 1fr;
	gap: clamp(24px, 4vw, 48px); align-items: center;
}
.rwcp-vip__intro { display: flex; gap: 17.6px; align-items: flex-start; }
.rwcp-vip__star {
	display: flex; align-items: center; justify-content: center;
	width: 78px; height: 78px; flex: 0 0 auto; border-radius: 50%;
	background: var(--rwcp-gold); color: var(--rwcp-navy-deep);
}
.rwcp-vip__star .rwcp-icon { width: 27.2px; height: 27.2px; }
.rwcp-vip__title { color: var(--rwcp-white); font-size: clamp(30.4px, 3.2vw, 41.6px); font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; margin-bottom: 6.4px; }
.rwcp-vip__body { color: rgba(255,255,255,0.85); }
.rwcp-vip__qr { background: var(--rwcp-white); border-radius: 12px; padding: 16px; width: clamp(180px, 17vw, 240px); box-shadow: var(--rwcp-shadow); }
.rwcp-vip__how { display: flex; flex-direction: column; gap: 9.6px; align-items: flex-start; }
.rwcp-vip__step { display: flex; align-items: center; gap: 13.6px; font-weight: 600; font-size: 23.2px; color: var(--rwcp-white); }
.rwcp-vip__step .rwcp-icon { width: 1.4em; height: 1.4em; }
.rwcp-vip__step .rwcp-icon { color: var(--rwcp-gold); }
.rwcp-vip__step--url a { color: var(--rwcp-gold); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rwcp-vip__step--url a:hover { color: var(--rwcp-white); }
.rwcp-vip__or { font-family: var(--rwcp-font-head); font-size: 12.8px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.rwcp-vip__how .rwcp-btn { margin-top: 11.2px; }

/* SPEND YOUR DAY — copy | tiles | image */
.rwcp-day { padding: var(--rwcp-space-lg) 0 var(--rwcp-section-pad); background: var(--rwcp-white); }
.rwcp-day__inner {
	display: grid; grid-template-columns: 0.9fr 1.05fr 1.15fr;
	grid-template-areas: "copy features image";
	gap: clamp(20px, 3vw, 40px); align-items: stretch;
}
.rwcp-day__copy { grid-area: copy; }
.rwcp-day__title {
	display: block; text-align: left; position: relative;
	padding-bottom: 18.4px; margin-bottom: 30.4px; justify-content: flex-start;
}
.rwcp-day__title::before { display: none; }
.rwcp-day__title::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 64px; height: 3px; max-width: none; flex: none;
	background: var(--rwcp-gold); border-radius: 2px;
}
.rwcp-day__para { color: var(--rwcp-ink-soft); margin-bottom: 17.6px; max-width: 544px; font-size: 16.8px; }
.rwcp-day__features {
	grid-area: features; display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr;
	gap: 1px; background: var(--rwcp-line);
	border: 1px solid var(--rwcp-line); border-radius: 12px; overflow: hidden;
}
.rwcp-day__feature {
	background: var(--rwcp-gray-bg);
	padding: 24px 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8.8px;
	text-align: center; font-family: var(--rwcp-font-head); font-size: 13.12px; font-weight: 700;
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--rwcp-navy);
}
.rwcp-day__feature-icon { width: 64px; height: 64px; object-fit: contain; }
.rwcp-day__feature .rwcp-icon { width: 35.2px; height: 35.2px; }
.rwcp-day__image { grid-area: image; border-radius: var(--rwcp-radius); overflow: hidden; box-shadow: var(--rwcp-shadow); min-height: 400px; }
.rwcp-day__image img { width: 100%; height: 100%; object-fit: cover; }

/* ANNIVERSARY — inset rounded gray box */
.rwcp-anniv { background: var(--rwcp-white); padding: var(--rwcp-space-sm) 0; }
.rwcp-anniv__inner {
	background: var(--rwcp-gray-bg); border-radius: var(--rwcp-radius);
	padding: clamp(32px, 3.5vw, 48px) clamp(24px, 3.5vw, 48px);
	display: flex; flex-direction: column; align-items: center; text-align: center;
	gap: clamp(24px, 3vw, 36px);
}
.rwcp-anniv__timeline { display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; }
.rwcp-anniv__timeline img { width: 100%; max-width: 880px; height: auto; margin-inline: auto; }
.rwcp-anniv__year { font-family: var(--rwcp-font-head); font-size: clamp(24px, 2.8vw, 33.6px); font-weight: 700; color: var(--rwcp-gold-deep); }
.rwcp-anniv__rule { flex: 1; height: 2px; background: var(--rwcp-gold); min-width: 32px; }
.rwcp-anniv__center { display: flex; flex-direction: column; align-items: center; line-height: 1; }
.rwcp-anniv__number { font-family: var(--rwcp-font-head); font-size: clamp(44.8px, 5.5vw, 64px); font-weight: 800; color: var(--rwcp-navy); }
.rwcp-anniv__label { font-family: var(--rwcp-font-head); font-size: 13.12px; font-weight: 700; letter-spacing: 0.4em; text-transform: uppercase; color: var(--rwcp-navy); margin-top: 4.8px; }
.rwcp-anniv__text { max-width: 832px; margin-inline: auto; }
.rwcp-anniv__body { color: var(--rwcp-ink); font-size: 17.28px; }
.rwcp-anniv__quote { margin-top: 12px; font-family: 'Dancing Script', cursive; font-style: normal; font-weight: 600; font-size: 36px; line-height: 1.3; color: var(--rwcp-navy); }

/* FAQ */
.rwcp-faq { padding: var(--rwcp-space-lg) 0 var(--rwcp-section-pad); background: var(--rwcp-white); }
.rwcp-faq__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px; align-items: start; }
.rwcp-faq__item { background: var(--rwcp-gray-bg); border: 1px solid var(--rwcp-line); border-radius: 10px; overflow: hidden; }
.rwcp-faq__q { font-size: inherit; margin: 0; }
.rw-campaign .rwcp-faq__toggle {
	appearance: none; background: transparent; border: 0; width: 100%;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 21.6px 24px; font-family: var(--rwcp-font-head); font-size: 16.8px; font-weight: 700;
	letter-spacing: 0.05em; text-transform: uppercase; color: var(--rwcp-navy); text-align: left; cursor: pointer;
}
.rw-campaign .rwcp-faq__toggle:focus-visible { outline: 3px solid var(--rwcp-gold); outline-offset: -3px; }
.rwcp-faq__plus { position: relative; width: 16px; height: 16px; flex: 0 0 auto; transition: transform 240ms cubic-bezier(0.34, 1.45, 0.64, 1); }
.rwcp-faq__toggle[aria-expanded="true"] .rwcp-faq__plus { transform: rotate(90deg); }
.rwcp-faq__plus::before, .rwcp-faq__plus::after { content: ""; position: absolute; background: var(--rwcp-navy); transition: transform 180ms ease; }
.rwcp-faq__plus::before { left: 0; top: 7px; width: 16px; height: 2px; }
.rwcp-faq__plus::after { left: 7px; top: 0; width: 2px; height: 16px; }
.rwcp-faq__toggle[aria-expanded="true"] .rwcp-faq__plus::after { transform: scaleY(0); }
.rwcp-faq__a {
	display: grid; grid-template-rows: 0fr; opacity: 0;
	padding: 0 24px;
	color: var(--rwcp-ink-soft); font-size: 16.32px;
	transition: grid-template-rows 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms ease, padding 220ms ease;
}
.rwcp-faq__a > p {
	min-height: 0; overflow: hidden;
	transform: translateY(-4px);
	transition: transform 240ms cubic-bezier(0.34, 1.45, 0.64, 1);
}
.rwcp-faq__item { transition: border-color 200ms ease, box-shadow 200ms ease; }
.rwcp-faq__item.rwcp-open { border-color: var(--rwcp-gold); box-shadow: 0 4px 14px rgba(59, 69, 123, 0.08); }
.rwcp-faq__item.rwcp-open .rwcp-faq__a { grid-template-rows: 1fr; opacity: 1; padding: 0 24px 21.6px; }
.rwcp-faq__item.rwcp-open .rwcp-faq__a > p { transform: translateY(0); }

/* PRE-FOOTER (full-bleed navy) */
.rwcp-prefooter { background: linear-gradient(180deg, var(--rwcp-navy) 0%, var(--rwcp-navy-deep) 100%); padding: var(--rwcp-space-xl) 0; }
.rwcp-prefooter__inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22.4px; }
.rwcp-prefooter__icon {
	width: 120px; height: 120px; border-radius: 50%;
	background: rgba(255,255,255,0.06); border: 2px solid var(--rwcp-gold);
	display: flex; align-items: center; justify-content: center; color: var(--rwcp-gold);
}
.rwcp-prefooter__icon .rwcp-icon { width: 54.4px; height: 54.4px; }
.rwcp-prefooter__text { max-width: 832px; }
.rwcp-prefooter__title { color: var(--rwcp-white); font-size: clamp(41.6px, 5.2vw, 64px); font-weight: 800; letter-spacing: 0.01em; text-transform: uppercase; margin-bottom: 14.4px; line-height: 1.12; }
.rwcp-prefooter__title span { color: var(--rwcp-white); }
.rwcp-prefooter__title .rwcp-prefooter__accent { color: var(--rwcp-gold); }
.rwcp-prefooter__body { color: rgba(255,255,255,0.85); max-width: 768px; margin-inline: auto; font-size: 20.8px; }
.rwcp-prefooter__btn { flex: 0 0 auto; margin-top: 6.4px; }
.rwcp-prefooter__btn.rwcp-btn { padding: 19.2px 48px; font-size: 16.8px; }

/* RESPONSIVE */

/* ≤1200px: offices card drops below the three steps; Spend Your Day
   becomes copy on top, tiles + image side by side; VIP goes 2-column. */
@media (max-width: 1200px) {
	.rwcp-how__grid { grid-template-columns: repeat(3, 1fr); }
	.rwcp-how__step:nth-child(3) { border-right: 0; }
	.rwcp-how__offices {
		grid-column: 1 / -1; margin: 28px 0 0;
		flex-direction: row; flex-wrap: wrap; justify-content: center;
		align-items: center; gap: 16px 48px;
	}
	.rwcp-how__or::before, .rwcp-how__or::after { display: none; }
	.rwcp-day__inner { grid-template-columns: 1fr 1.15fr; grid-template-areas: "copy copy" "features image"; }
	.rwcp-day__para { max-width: 736px; }
	.rwcp-vip__inner { grid-template-columns: 1fr auto; grid-template-areas: "intro qr" "how qr"; }
	.rwcp-vip__intro { grid-area: intro; }
	.rwcp-vip__qr { grid-area: qr; }
	.rwcp-vip__how { grid-area: how; }
}

/* ≤1000px: benefits box stacks lead over chips; chips spread evenly. */
@media (max-width: 1000px) {
	.rwcp-benefits__inner { flex-direction: column; align-items: flex-start; gap: 24px; }
	.rwcp-benefits__chips { width: 100%; justify-content: space-between; }
	.rwcp-benefits__chip { padding: 0 16px; flex: 1; max-width: none; }
	.rwcp-benefits__chip:first-child { padding-left: 0; }
}

/* ≤860px: single-column steps with horizontal dividers; day, VIP,
   and anniversary all stack; hero shifts to bottom-anchored scrim. */
@media (max-width: 860px) {
	.rwcp-hero { align-items: flex-end; }
	.rwcp-hero__scrim { background: linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.92) 55%, rgba(255,255,255,0.97) 100%); }
	.rwcp-offer__inner { flex-direction: column; align-items: flex-start; gap: 14.4px; }
	.rwcp-how__grid { grid-template-columns: 1fr; }
	.rwcp-how__step { border-right: 0; border-bottom: 1px solid var(--rwcp-line); padding: 0 0 24px; margin-bottom: 24px; }
	.rwcp-how__step:first-child { padding-left: 0; }
	.rwcp-how__offices { flex-direction: column; align-items: stretch; gap: 14.4px; margin-top: 4px; }
	.rwcp-how__or::before, .rwcp-how__or::after { display: block; }
	.rwcp-day__inner { grid-template-columns: 1fr; grid-template-areas: "copy" "features" "image"; }
	.rwcp-vip__inner { grid-template-columns: 1fr; grid-template-areas: "intro" "qr" "how"; justify-items: start; }
	.rwcp-vip__qr { justify-self: center; }
	.rwcp-anniv__text { max-width: none; }
}

/* ≤700px: FAQ single column; pre-footer stacks; shorter title rules. */
@media (max-width: 700px) {
	.rwcp-faq__grid { grid-template-columns: 1fr; }
	.rwcp-section-title { gap: 16px; }
	.rwcp-section-title::before, .rwcp-section-title::after { width: clamp(28px, 8vw, 56px); }
}

/* ≤480px: full-width hero buttons, row-style benefit chips,
   2-up feature tiles, compact icons. */
@media (max-width: 480px) {
	.rwcp-hero__actions { flex-direction: column; align-items: stretch; }
	.rwcp-hero__badge { width: 96px; }
	.rwcp-day__features { grid-template-columns: repeat(2, 1fr); }
	.rwcp-benefits__chips { flex-direction: column; gap: 16px; }
	.rwcp-benefits__chip { border-left: 0; padding: 0; flex-direction: row; gap: 12px; text-align: left; }
	.rwcp-how__icon { width: 72px; height: 72px; }
}

@media (prefers-reduced-motion: reduce) {
	.rw-campaign .rwcp-btn, .rwcp-faq__plus, .rwcp-faq__plus::before, .rwcp-faq__plus::after,
	.rwcp-faq__item, .rwcp-faq__a, .rwcp-faq__a > p { transition: none; }
	.rw-campaign .rwcp-btn:hover { transform: none; }
}


/* ==========================================================================
   THEME OVERRIDE GUARD
   The Riverwalk author theme (Genesis child) styles headings, paragraphs,
   and links with enough specificity to override scoped section styles.
   !important is used deliberately and only where the theme was observed
   winning: text on colored bands, hero copy, and buttons.
   ========================================================================== */

body.rwcp-campaign-template .site-inner,
body.rwcp-campaign-template .site-inner > .wrap,
body.rwcp-campaign-template .content-sidebar-wrap,
body.rwcp-campaign-template .content {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

body.rwcp-campaign-template { overflow-x: hidden; }

/* Shortcode path: the theme's own page wrappers and page title around
   our content are neutralized; the theme header/footer are untouched. */
body.rwcp-campaign-template .entry,
body.rwcp-campaign-template .entry-content {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

body.rwcp-campaign-template .entry-header,
body.rwcp-campaign-template .entry-title {
	display: none !important;
}


/* Full-bleed safety: computes to zero when the wrapper is already full width. */
.rw-campaign > section,
.rw-campaign > .rwcp-siteheader,
.rw-campaign > .rwcp-sitefooter {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.rw-campaign .rwcp-hero { isolation: isolate; }
.rw-campaign .rwcp-hero__scrim { z-index: 0; pointer-events: none; }
.rw-campaign .rwcp-hero__inner { position: relative !important; z-index: 2 !important; }

.rw-campaign .rwcp-hero__eyebrow,
.rw-campaign .rwcp-hero__line { color: var(--rwcp-navy) !important; }
.rw-campaign .rwcp-hero__line--accent { color: var(--rwcp-gold) !important; }
.rw-campaign .rwcp-hero__sub { color: var(--rwcp-ink) !important; }

.rw-campaign .rwcp-offer__title { color: var(--rwcp-white) !important; }
.rw-campaign .rwcp-offer__body { color: rgba(255, 255, 255, 0.95) !important; }

.rw-campaign .rwcp-vip__title { color: var(--rwcp-white) !important; }
.rw-campaign .rwcp-vip__body { color: rgba(255, 255, 255, 0.85) !important; }
.rw-campaign .rwcp-vip__step,
.rw-campaign .rwcp-vip__step span { color: var(--rwcp-white) !important; }
.rw-campaign .rwcp-vip__or { color: rgba(255, 255, 255, 0.6) !important; }
.rw-campaign .rwcp-vip__step--url a { color: var(--rwcp-gold) !important; }
.rw-campaign .rwcp-vip__step--url a:hover { color: var(--rwcp-white) !important; }

.rw-campaign .rwcp-prefooter__title,
.rw-campaign .rwcp-prefooter__title span { color: var(--rwcp-white) !important; }
.rw-campaign .rwcp-prefooter__title .rwcp-prefooter__accent { color: var(--rwcp-gold) !important; }
.rw-campaign .rwcp-prefooter__body { color: rgba(255, 255, 255, 0.85) !important; }

.rw-campaign .rwcp-section-title,
.rw-campaign .rwcp-benefits__title { color: var(--rwcp-navy) !important; }

.rw-campaign .rwcp-btn,
.rw-campaign .rwcp-btn:hover,
.rw-campaign .rwcp-btn:focus,
.rw-campaign .rwcp-btn:visited {
	text-decoration: none !important;
	border-bottom: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
}
.rw-campaign .rwcp-btn--navy, .rw-campaign .rwcp-btn--navy:visited { background-color: var(--rwcp-navy) !important; color: var(--rwcp-white) !important; }
.rw-campaign .rwcp-btn--navy:hover, .rw-campaign .rwcp-btn--navy:focus { background-color: var(--rwcp-navy-deep) !important; color: var(--rwcp-white) !important; }
.rw-campaign .rwcp-btn--gold, .rw-campaign .rwcp-btn--gold:visited { background-color: var(--rwcp-gold) !important; color: var(--rwcp-navy-deep) !important; }
.rw-campaign .rwcp-btn--gold:hover, .rw-campaign .rwcp-btn--gold:focus { background-color: var(--rwcp-gold-deep) !important; color: var(--rwcp-navy-deep) !important; }

.rw-campaign a { box-shadow: none; border-bottom: 0; }


/* ── Typography guard: the theme's .site-inner h1/h2/p rules outrank
      single-class font styles, so pin faces and the display sizes. ── */
.rw-campaign,
.rw-campaign p,
.rw-campaign li {
	font-family: var(--rwcp-font-body) !important;
}

.rw-campaign h1, .rw-campaign h2, .rw-campaign h3, .rw-campaign h4,
.rw-campaign .rwcp-btn,
.rw-campaign .rwcp-hero__eyebrow,
.rw-campaign .rwcp-how__num,
.rw-campaign .rwcp-how__or,
.rw-campaign .rwcp-vip__or,
.rw-campaign .rwcp-anniv__number,
.rw-campaign .rwcp-anniv__label,
.rw-campaign .rwcp-anniv__year,
.rw-campaign .rwcp-benefits__chip,
.rw-campaign .rwcp-day__feature,
.rw-campaign .rwcp-faq__toggle,
.rw-campaign .rwcp-section-title {
	font-family: var(--rwcp-font-head) !important;
}

.rw-campaign .rwcp-anniv__quote {
	font-family: 'Dancing Script', cursive !important;
}

/* Hero display type: full size, weight, and stacking regardless of theme */
.rw-campaign .rwcp-hero__headline {
	font-size: clamp(35.2px, 5vw, 56px) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.01em !important;
	margin: 0 !important;
}

.rw-campaign .rwcp-hero__line {
	display: block !important;
	font-size: inherit !important;
	font-weight: inherit !important;
}

.rw-campaign .rwcp-hero__eyebrow {
	font-size: 14.4px !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	margin: 0 0 10.4px !important;
}

.rw-campaign .rwcp-hero__sub {
	font-size: clamp(16px, 1.5vw, 18.4px) !important;
	line-height: 1.6 !important;
	margin: 17.6px 0 0 !important;
}

/* Section titles: size pinned so every heading matches the preview */
.rw-campaign .rwcp-section-title {
	font-size: clamp(22.4px, 2.6vw, 30.4px) !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
}


/* ==========================================================================
   TYPOGRAPHY GUARD
   The Genesis child theme's .site-inner heading/paragraph rules tie or beat
   single-class selectors. Anchoring to the #rwcp-main ID (specificity 1-0-0)
   settles the font-family and type-scale battles permanently.
   ========================================================================== */

#rwcp-main,
#rwcp-main p,
#rwcp-main li {
	font-family: var(--rwcp-font-body);
}

#rwcp-main h1, #rwcp-main h2, #rwcp-main h3, #rwcp-main h4,
#rwcp-main .rwcp-btn,
#rwcp-main .rwcp-hero__eyebrow,
#rwcp-main .rwcp-faq__toggle,
#rwcp-main .rwcp-vip__or,
#rwcp-main .rwcp-how__num,
#rwcp-main .rwcp-benefits__chip,
#rwcp-main .rwcp-day__feature,
#rwcp-main .rwcp-anniv__year,
#rwcp-main .rwcp-anniv__number,
#rwcp-main .rwcp-anniv__label {
	font-family: var(--rwcp-font-head);
}

#rwcp-main .rwcp-anniv__quote {
	font-family: 'Dancing Script', cursive;
}

/* Type scale: sizes the theme was observed overriding */
#rwcp-main .rwcp-hero__headline {
	font-size: clamp(48px, 6.4vw, 81.6px) !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	text-transform: uppercase !important;
}

#rwcp-main .rwcp-hero__sub { font-size: clamp(17.6px, 1.7vw, 22.4px) !important; }
#rwcp-main .rwcp-section-title { font-size: clamp(29.6px, 3.4vw, 42.4px) !important; font-weight: 700 !important; }
#rwcp-main .rwcp-benefits__title { font-size: clamp(31.2px, 3.4vw, 42.4px) !important; font-weight: 800 !important; }
#rwcp-main .rwcp-vip__title { font-size: clamp(30.4px, 3.2vw, 41.6px) !important; font-weight: 800 !important; }
#rwcp-main .rwcp-prefooter__title { font-size: clamp(41.6px, 5.2vw, 64px) !important; font-weight: 800 !important; }
#rwcp-main .rwcp-offer__title { font-size: clamp(23.2px, 2.3vw, 28.8px) !important; font-weight: 700 !important; }
#rwcp-main .rwcp-anniv__number { font-size: clamp(44.8px, 5.5vw, 64px) !important; }
#rwcp-main .rwcp-anniv__quote { font-size: 36px !important; font-weight: 600 !important; font-style: normal !important; }


/* ==========================================================================
   MOBILE OPTIMIZATION PASS (v1.6.0)
   ========================================================================== */

@media (max-width: 768px) {
	/* Hero: shorter on phones, larger touch-friendly CTAs stack naturally */
	.rwcp-hero { min-height: clamp(440px, 120vw, 560px); }
	.rwcp-hero__content { max-width: 100%; margin-left: 0; }
	.rwcp-hero__badge { width: 110px; }

	/* Comfortable tap targets throughout */
	.rw-campaign .rwcp-btn { padding: 17.6px 25.6px; width: auto; }
	.rw-campaign .rwcp-faq__toggle { padding: 20px 20px; min-height: 56px; }

	/* How It Works: icons scale down proportionally on small screens */
	.rwcp-how__icon { width: 104px; height: 104px; }

	/* VIP: QR sized for comfortable scanning without dominating */
	.rwcp-vip__qr { width: min(240px, 62vw); }

	/* Day image: don't force tall boxes on phones */
	.rwcp-day__image { min-height: 260px; }
}

@media (max-width: 480px) {
	/* Full-width primary actions on small phones */
	.rwcp-vip__how .rwcp-btn,
	.rwcp-prefooter__btn { width: 100%; }
	.rwcp-vip__how { width: 100%; }

	/* Chip rows: icon beside label at new icon size */
	.rwcp-benefits__chip { width: 100%; flex: 1 1 auto; }
	.rwcp-benefits__chip-icon { width: 44px; height: 44px; }

	/* Anniversary: timeline graphic gets the full width */
	.rwcp-anniv__timeline img { max-width: 100%; }

	/* Slightly tighter section rhythm on small screens */
	.rw-campaign { --rwcp-space-xl: clamp(48px, 12vw, 64px); --rwcp-space-lg: clamp(36px, 9vw, 48px); }
}

/* ============================================================
   FINAL PRE-FOOTER FIX
   ============================================================ */

#rwcp-main .rwcp-prefooter__inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	gap: 22px !important;
}

#rwcp-main .rwcp-prefooter__text {
	max-width: 832px !important;
	width: 100% !important;
	text-align: center !important;
}

#rwcp-main .rwcp-prefooter__title {
	font-size: clamp(41.6px, 5.2vw, 64px) !important;
	line-height: 1.12 !important;
	font-weight: 800 !important;
	letter-spacing: 0.01em !important;
	text-transform: uppercase !important;
	color: #FFFFFF !important;
	margin: 0 0 14px !important;
	text-align: center !important;
}

#rwcp-main .rwcp-prefooter__title > span {
	display: block !important;
	color: #FFFFFF !important;
}

#rwcp-main .rwcp-prefooter__title > .rwcp-prefooter__accent {
	color: #E6A276 !important;
}

#rwcp-main .rwcp-prefooter__body {
	font-size: 20.8px !important;
	line-height: 1.6 !important;
	max-width: 768px !important;
	margin: 0 auto !important;
	color: rgba(255, 255, 255, 0.85) !important;
	text-align: center !important;
}

#rwcp-main .rwcp-prefooter__icon {
	width: 120px !important;
	height: 120px !important;
	flex: 0 0 120px !important;
	border: 2px solid #E6A276 !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #E6A276 !important;
}

#rwcp-main .rwcp-prefooter__icon .rwcp-icon,
#rwcp-main .rwcp-prefooter__icon svg {
	width: 54px !important;
	height: 54px !important;
}

#rwcp-main .rwcp-prefooter__btn {
	margin-top: 6px !important;
}

/* FINAL FIX — PREFOOTER HEADLINE SIZE */

body.rwcp-campaign-template #rwcp-main .rwcp-prefooter h2.rwcp-prefooter__title {
	display: block !important;
	width: 100% !important;
	margin: 0 0 14px !important;
	padding: 0 !important;

	font-family: 'Poppins', Arial, sans-serif !important;
	font-size: 52px !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	letter-spacing: 0.01em !important;
	text-transform: uppercase !important;
	text-align: center !important;
	color: #FFFFFF !important;
}

body.rwcp-campaign-template #rwcp-main .rwcp-prefooter h2.rwcp-prefooter__title span {
	display: inline !important;
	font: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	text-transform: inherit !important;
	color: #FFFFFF !important;
}

body.rwcp-campaign-template #rwcp-main .rwcp-prefooter h2.rwcp-prefooter__title span.rwcp-prefooter__accent {
	color: #E6A276 !important;
}

@media (max-width: 700px) {
	body.rwcp-campaign-template #rwcp-main .rwcp-prefooter h2.rwcp-prefooter__title {
		font-size: 38px !important;
	}
}