/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.0.0
Text Domain:  Avada
*/

/* =========================================================================
   ReliefMed design system
   -------------------------------------------------------------------------
   Colours are lifted from the Relief Medical logo: the navy of the wordmark
   and the cyan of the swoosh. Everything on the site is built from the tokens
   below, so a brand tweak happens here and nowhere else.
   ========================================================================= */

:root {
	--rm-navy: #194982;
	--rm-navy-deep: #10305a;
	--rm-navy-ink: #0a2246;
	--rm-blue: #1ea8e8;
	--rm-blue-dark: #1387bd;
	--rm-blue-soft: #e8f5fd;

	--rm-ink: #17222e;
	--rm-muted: #5c6b7a;
	--rm-line: #e2e8ee;
	--rm-bg: #ffffff;
	--rm-bg-alt: #f5f8fb;

	--rm-radius: 10px;
	--rm-radius-lg: 16px;
	--rm-shadow: 0 1px 2px rgba(16, 48, 90, .06), 0 8px 24px -12px rgba(16, 48, 90, .18);
	--rm-shadow-lift: 0 2px 4px rgba(16, 48, 90, .08), 0 18px 40px -18px rgba(16, 48, 90, .3);

	--rm-head: "Barlow", "Helvetica Neue", Arial, sans-serif;
	--rm-body: "Inter", "Helvetica Neue", Arial, sans-serif;
}

/* Re-skin the ReliefMed Core components from the same tokens. Core enqueues its
   stylesheet from the shortcodes, so it can land after this file — the extra
   `body` keeps these winning on specificity rather than on load order. */
body .rm-browser,
body .rm-contracts,
body .rm-brands,
body .rm-contact,
body .rm-compliance,
body .rm-feed {
	--rm-accent: var(--rm-navy);
	--rm-ink: #17222e;
	--rm-ink-muted: #5c6b7a;
	--rm-line: #e2e8ee;
	--rm-surface-alt: #f5f8fb;
	--rm-radius: 10px;
}

/* -------------------------------------------------------------- Foundations */

body {
	font-family: var(--rm-body);
	color: var(--rm-ink);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.fusion-title h1, .fusion-title h2, .fusion-title h3,
.title-heading-left, .title-heading-center {
	font-family: var(--rm-head);
	color: var(--rm-navy-ink);
	letter-spacing: -.015em;
}

.rm-lede {
	font-size: clamp(1.05rem, .35vw + 1rem, 1.2rem);
	line-height: 1.65;
	color: var(--rm-muted);
	max-width: 62ch;
}

.rm-lede--center {
	margin-inline: auto;
	text-align: center;
}

.rm-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	margin: 0 0 .9rem;
	font-family: var(--rm-head);
	font-size: .78rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rm-blue);
}

.rm-eyebrow::before {
	content: "";
	width: 1.75rem;
	height: 2px;
	background: currentColor;
	flex: none;
}

.rm-eyebrow--center {
	justify-content: center;
}

/* A back-link inside an eyebrow must not fall back to the navy body link
   colour — on the navy hero that is invisible. */
.rm-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.rm-eyebrow a:hover,
.rm-eyebrow a:focus-visible {
	color: #fff;
	text-decoration: underline;
}

/* Section headings share one rhythm across every page. */
.rm-head {
	max-width: 46rem;
	margin-bottom: 2.75rem;
}

.rm-head--center {
	margin-inline: auto;
	text-align: center;
}

.rm-head h2 {
	margin: 0 0 1rem;
	font-size: clamp(1.75rem, 1.6vw + 1.25rem, 2.5rem);
	font-weight: 700;
	line-height: 1.15;
}

.rm-head p {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--rm-muted);
}

/* --------------------------------------------------------------- Buttons */

.rm-btn {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	padding: .9em 1.6em;
	border: 2px solid transparent;
	border-radius: var(--rm-radius);
	font-family: var(--rm-head);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}

.rm-btn:hover,
.rm-btn:focus-visible {
	transform: translateY(-1px);
	text-decoration: none;
}

.rm-btn--primary {
	background: var(--rm-blue);
	border-color: var(--rm-blue);
	color: #fff;
}

.rm-btn--primary:hover,
.rm-btn--primary:focus-visible {
	background: var(--rm-blue-dark);
	border-color: var(--rm-blue-dark);
	color: #fff;
}

.rm-btn--ghost-light {
	border-color: rgba(255, 255, 255, .45);
	color: #fff;
}

.rm-btn--ghost-light:hover,
.rm-btn--ghost-light:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--rm-navy);
}

.rm-btn--ghost {
	border-color: var(--rm-navy);
	color: var(--rm-navy);
}

.rm-btn--ghost:hover,
.rm-btn--ghost:focus-visible {
	background: var(--rm-navy);
	color: #fff;
}

.rm-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: .85rem;
	margin-top: 2rem;
}

/* ------------------------------------------------------------------ Hero */

/* Padding and the navy gradient come from the container's own Avada settings,
   so the client can retune them in the builder. Everything below is the part
   the builder cannot express. */
.rm-hero,
.fusion-fullwidth.rm-hero {
	position: relative;
	overflow: hidden;
	color: #fff;
}

/* The swoosh from the logo, redrawn large as a background motif. */
.rm-hero::before,
.rm-hero::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

/* Ending on a fully transparent *blue* rather than `transparent` keeps the
   gradient from interpolating through grey and showing a hard disc edge. */
.rm-hero::before {
	right: -16%;
	top: -60%;
	width: 70%;
	aspect-ratio: 1;
	background: radial-gradient(circle closest-side, rgba(30, 168, 232, .34), rgba(30, 168, 232, 0) 100%);
}

.rm-hero::after {
	left: -20%;
	bottom: -65%;
	width: 60%;
	aspect-ratio: 1;
	background: radial-gradient(circle closest-side, rgba(30, 168, 232, .14), rgba(30, 168, 232, 0) 100%);
}

.rm-hero > * {
	position: relative;
	z-index: 1;
}

/* Avada's h1 typography sets a colour on the bare h1, so the override has to
   out-specify it rather than merely follow it. */
.rm-hero h1,
.rm-hero .fusion-text h1,
.rm-cta h2,
.rm-cta .fusion-text h2 {
	color: #fff;
}

.rm-hero h1 {
	margin: 0 0 1.25rem;
	font-size: clamp(2.1rem, 3.4vw + 1.1rem, 3.6rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -.025em;
	max-width: 20ch;
}

.rm-hero .rm-eyebrow {
	color: #7fd0f5;
}

.rm-hero p {
	max-width: 54ch;
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: clamp(1.05rem, .4vw + 1rem, 1.2rem);
	line-height: 1.65;
}

/* Compliance numbers, straight off the client's slide, as hero trust chips. */
.rm-trust {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 1.75rem;
	margin: 2.75rem 0 0;
	padding: 1.4rem 0 0;
	border-top: 1px solid rgba(255, 255, 255, .18);
	list-style: none;
}

.rm-trust li {
	margin: 0;
}

.rm-trust dt,
.rm-trust__label {
	display: block;
	margin-bottom: .2rem;
	font-family: var(--rm-head);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
}

.rm-trust__value {
	font-family: var(--rm-head);
	font-size: 1.05rem;
	font-weight: 600;
	color: #fff;
	font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------- Numbered category grid */

.rm-cats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
	gap: .75rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: rm-cat;
}

.rm-cats li {
	counter-increment: rm-cat;
	display: flex;
	align-items: stretch;
	margin: 0;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius);
	background: #fff;
	overflow: hidden;
	transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.rm-cats li:hover {
	border-color: var(--rm-blue);
	box-shadow: var(--rm-shadow);
	transform: translateY(-1px);
}

.rm-cats li::before {
	content: counter(rm-cat);
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	background: var(--rm-blue);
	color: #fff;
	font-family: var(--rm-head);
	font-size: .95rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	/* the arrow notch from the client's deck */
	clip-path: polygon(0 0, calc(100% - .55rem) 0, 100% 50%, calc(100% - .55rem) 100%, 0 100%);
}

.rm-cats li span {
	padding: .85rem 1rem .85rem 1.1rem;
	font-family: var(--rm-head);
	font-size: 1rem;
	font-weight: 600;
	color: var(--rm-navy-ink);
	align-self: center;
}

/* ------------------------------------------------------ Vision / mission / values */

.rm-vmv {
	display: grid;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-vmv > li {
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	gap: 1.5rem;
	align-items: start;
	margin: 0;
	padding: 1.75rem;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	background: #fff;
}

.rm-vmv__icon {
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: var(--rm-radius);
	background: var(--rm-blue);
	color: #fff;
}

.rm-vmv__icon svg {
	width: 2.1rem;
	height: 2.1rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.rm-vmv h3 {
	margin: .1rem 0 .5rem;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: .01em;
	text-transform: uppercase;
	color: var(--rm-blue);
}

.rm-vmv p {
	margin: 0;
	color: var(--rm-muted);
	line-height: 1.7;
}

.rm-vmv strong {
	color: var(--rm-navy-ink);
	font-weight: 600;
}

@media (max-width: 540px) {
	.rm-vmv > li {
		grid-template-columns: 1fr;
		gap: 1rem;
		padding: 1.4rem;
	}
}

/* ----------------------------------------------------------------- Cards */

.rm-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-card {
	margin: 0;
	padding: 1.75rem;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	background: #fff;
	transition: box-shadow .18s ease, transform .18s ease;
}

.rm-card:hover {
	box-shadow: var(--rm-shadow-lift);
	transform: translateY(-2px);
}

.rm-card__icon {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin: 0 0 1.1rem;
	border-radius: var(--rm-radius);
	background: var(--rm-blue-soft);
	color: var(--rm-navy);
}

/* Avada gives headings a large em-based top margin; inside a card the icon
   already provides the space. */
.rm-card h3,
.rm-card .fusion-text h3,
.rm-vmv h3,
.rm-vmv .fusion-text h3 {
	margin-top: 0;
}

.rm-card__icon svg {
	width: 1.5rem;
	height: 1.5rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.rm-card h3 {
	margin: 0 0 .5rem;
	font-size: 1.1875rem;
	font-weight: 600;
}

.rm-card p {
	margin: 0;
	color: var(--rm-muted);
	line-height: 1.65;
}

.rm-card p + p {
	margin-top: .75rem;
}

/* ------------------------------------------------------------ Coverage map */

.rm-map {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

.rm-map__svg {
	display: block;
	width: 100%;
	height: auto;
}

.rm-map__land path {
	fill: #d7e3ef;
	transition: fill .2s ease;
}

.rm-map__province:hover path {
	fill: #b9cee2;
}

/* The map is drawn on a 1000px viewBox but displayed around 560px wide, so the
   markers are specified oversized to land at a readable size on screen. */
.rm-map__dot {
	fill: var(--rm-blue);
	stroke: #fff;
	stroke-width: 4;
}

.rm-map__pulse {
	fill: var(--rm-blue);
	opacity: .2;
}

.rm-map__cities text {
	font-family: var(--rm-head);
	font-size: 28px;
	font-weight: 600;
	fill: var(--rm-navy-ink);
	paint-order: stroke;
	stroke: rgba(245, 248, 251, .9);
	stroke-width: 4;
}

.rm-map__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
	gap: .5rem 1rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.rm-map__list li {
	position: relative;
	margin: 0;
	padding-left: 1.5rem;
	font-size: .95rem;
	color: var(--rm-navy-ink);
}

.rm-map__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: var(--rm-blue);
}

@media (max-width: 860px) {
	.rm-map {
		grid-template-columns: 1fr;
	}

	.rm-map__figure {
		order: 2;
		max-width: 34rem;
		margin-inline: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rm-map__land path,
	.rm-btn,
	.rm-card,
	.rm-cats li {
		transition: none;
	}
}

/* ------------------------------------------------------------- Stat strip */

.rm-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
	gap: 1px;
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--rm-line);
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	overflow: hidden;
}

.rm-stats li {
	margin: 0;
	padding: 1.75rem 1.5rem;
	background: #fff;
	text-align: center;
}

.rm-stats b {
	display: block;
	font-family: var(--rm-head);
	font-size: clamp(1.9rem, 2vw + 1.2rem, 2.6rem);
	font-weight: 700;
	line-height: 1;
	color: var(--rm-navy);
	font-variant-numeric: tabular-nums;
}

.rm-stats span {
	display: block;
	margin-top: .5rem;
	font-size: .9rem;
	line-height: 1.45;
	color: var(--rm-muted);
}

/* -------------------------------------------------------------- CTA band */

.rm-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(2.75rem, 5vw, 4.25rem) clamp(1.5rem, 4vw, 3.5rem);
	border-radius: var(--rm-radius-lg);
	background: linear-gradient(135deg, var(--rm-navy) 0%, var(--rm-navy-deep) 100%);
	color: #fff;
	text-align: center;
}

.rm-cta::after {
	content: "";
	position: absolute;
	right: -10%;
	top: -75%;
	width: 55%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle closest-side, rgba(30, 168, 232, .32), rgba(30, 168, 232, 0) 100%);
	pointer-events: none;
}

.rm-cta > * {
	position: relative;
	z-index: 1;
}

.rm-cta h2 {
	margin: 0 0 .9rem;
	color: #fff;
	font-size: clamp(1.6rem, 1.5vw + 1.2rem, 2.25rem);
	font-weight: 700;
	line-height: 1.15;
}

.rm-cta p {
	max-width: 52ch;
	margin: 0 auto;
	color: rgba(255, 255, 255, .82);
	line-height: 1.65;
}

.rm-cta .rm-btn-row {
	justify-content: center;
}

/* --------------------------------------------------------- Contact blocks */

.rm-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-contact-grid li {
	margin: 0;
	padding: 1.5rem;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	background: #fff;
}

.rm-contact-grid__label {
	display: block;
	margin-bottom: .4rem;
	font-family: var(--rm-head);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rm-muted);
}

.rm-contact-grid a,
.rm-contact-grid strong {
	display: block;
	font-family: var(--rm-head);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--rm-navy-ink);
	text-decoration: none;
	word-break: break-word;
}

.rm-contact-grid a:hover,
.rm-contact-grid a:focus-visible {
	color: var(--rm-blue);
}

.rm-contact-grid small {
	display: block;
	margin-top: .35rem;
	font-size: .85rem;
	color: var(--rm-muted);
}

/* Card treatment for the Core contact block when it sits on its own panel.
   Six items read best as two rows of three, and three columns give the longer
   email addresses room to sit on one line. */
.rm-contact-panel .rm-contact {
	gap: 1.25rem;
}

@media (min-width: 900px) {
	.rm-contact-panel .rm-contact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.rm-contact-panel .rm-contact__item {
	padding: 1.5rem;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	background: #fff;
}

.rm-contact-panel .rm-contact__label {
	font-family: var(--rm-head);
	letter-spacing: .14em;
	font-weight: 600;
}

.rm-contact-panel .rm-contact__item a {
	font-family: var(--rm-head);
	color: var(--rm-navy-ink);
}

.rm-contact-panel .rm-contact__item a:hover,
.rm-contact-panel .rm-contact__item a:focus-visible {
	color: var(--rm-blue);
	text-decoration: none;
}

/* Reference numbers and a contact form both read badly at 1200px wide. */
.rm-compliance {
	border-radius: var(--rm-radius-lg);
	max-width: 44rem;
}

.rm-form-panel .fusion-form,
.rm-form-panel .rm-head {
	max-width: 44rem;
}

/* Vision / mission / values lines run to ~130 characters at full width. */
.rm-vmv {
	max-width: 58rem;
	margin-inline: auto;
}

.rm-compliance dt {
	font-family: var(--rm-head);
}

.rm-compliance dd {
	color: var(--rm-navy-ink);
	font-weight: 600;
}

/* --------------------------------------------------- Partner / brand strip */

.rm-feed {
	padding-block: .5rem;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.rm-feed__item img {
	max-height: 46px;
	width: auto;
}

/* With motion off the track stops scrolling and wraps, at which point the
   duplicate set the animation needs is just repeated logos on screen. */
@media (prefers-reduced-motion: reduce) {
	.rm-feed__track {
		gap: 2rem 3.5rem;
	}

	.rm-feed__item[aria-hidden="true"] {
		display: none;
	}
}

.rm-brand__logo img {
	max-height: 54px;
	width: auto;
}

.rm-brand {
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	background: #fff;
	padding: 1.75rem 1.5rem;
	transition: box-shadow .18s ease, transform .18s ease;
}

.rm-brand:hover {
	box-shadow: var(--rm-shadow-lift);
	transform: translateY(-2px);
}

/* -------------------------------------------------------------- Contracts */

/* The single-contract template is a plain PHP template, not a builder page, so
   it provides its own site-width wrapper and section rhythm. */
.rm-contract__header {
	padding: clamp(3rem, 6vw, 4.5rem) 1.5rem;
	background: linear-gradient(155deg, var(--rm-navy) 0%, var(--rm-navy-ink) 100%);
}

.rm-contract__header-inner,
.rm-contract__body-inner {
	max-width: 1200px;
	margin-inline: auto;
}

.rm-contract__header h1 {
	margin: 0 0 .75rem;
	color: #fff;
	font-size: clamp(2rem, 2.4vw + 1.3rem, 3rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.02em;
}

.rm-contract__header p {
	margin: 0;
	color: rgba(255, 255, 255, .82);
}

.rm-contract__status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	margin-top: 1.5rem !important;
}

.rm-contract__period {
	font-family: var(--rm-head);
	font-weight: 600;
	color: rgba(255, 255, 255, .82);
}

.rm-contract__header .rm-badge--active {
	background: rgba(255, 255, 255, .16);
	color: #8ce8b4;
}

.rm-contract__header .rm-badge--unknown {
	background: rgba(255, 255, 255, .16);
	color: rgba(255, 255, 255, .85);
}

.rm-contract__header .rm-badge--expired {
	background: rgba(255, 255, 255, .16);
	color: #ffb3ae;
}

.rm-contract__body {
	padding: clamp(2.5rem, 5vw, 4rem) 1.5rem clamp(4rem, 7vw, 6rem);
}

.rm-contract__body-inner > p {
	max-width: 62ch;
	color: var(--rm-muted);
	line-height: 1.7;
}

/* The contract's own facts, above the item table. The `body` prefix is there
   because Core's stylesheet is enqueued from the shortcode and can load after
   this one. */
body .rm-compliance--contract {
	max-width: none;
	margin: 2.5rem 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 1px;
	background: var(--rm-line);
}

body .rm-compliance--contract .rm-compliance__row {
	display: block;
	padding: 1.25rem 1.5rem;
}

body .rm-compliance--contract dt {
	flex: none;
	margin-bottom: .3rem;
	font-family: var(--rm-head);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rm-muted);
}

body .rm-compliance--contract dd {
	font-family: var(--rm-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--rm-navy-ink);
}

/* This slot now carries the contracting authority, not a reference number. */
body .rm-contract-card__number {
	font-family: var(--rm-body);
	font-size: .95rem;
	letter-spacing: 0;
	color: var(--rm-muted);
}

.rm-browser {
	margin-top: 2.5rem;
}

/* Contract cards on the /contracts/ index. */
.rm-contract-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.75rem;
	border-radius: var(--rm-radius-lg);
	background: #fff;
	transition: box-shadow .18s ease, transform .18s ease;
}

.rm-contract-card:hover {
	box-shadow: var(--rm-shadow-lift);
	transform: translateY(-2px);
}

.rm-contract-card__title {
	font-family: var(--rm-head);
	font-size: 1.5rem;
	font-weight: 700;
}

.rm-contract-card__title a {
	color: var(--rm-navy-ink);
	text-decoration: none;
}

.rm-contract-card__title a:hover {
	color: var(--rm-blue);
}

.rm-contract-card .rm-button--ghost {
	margin-top: auto;
	border-color: var(--rm-navy);
	color: var(--rm-navy);
	font-family: var(--rm-head);
}

.rm-contract-card .rm-button--ghost:hover {
	background: var(--rm-navy);
	color: #fff;
}

/* ------------------------------------------------------------------ Legal */

.rm-legal {
	max-width: 46rem;
}

.rm-legal h2 {
	margin: 2.75rem 0 .9rem;
	font-size: 1.4rem;
	font-weight: 600;
	scroll-margin-top: 7rem;
}

.rm-legal h2:first-child {
	margin-top: 0;
}

.rm-legal h3 {
	margin: 1.75rem 0 .6rem;
	font-size: 1.0625rem;
	font-weight: 600;
}

.rm-legal p,
.rm-legal li {
	color: #33414f;
	line-height: 1.75;
}

.rm-legal ul,
.rm-legal ol {
	margin: 0 0 1.25rem 1.25rem;
}

.rm-legal li + li {
	margin-top: .4rem;
}

.rm-legal__meta {
	margin: 0 0 2.5rem;
	padding: 1rem 1.25rem;
	border-left: 3px solid var(--rm-blue);
	background: var(--rm-bg-alt);
	font-size: .95rem;
	color: var(--rm-muted);
}

.rm-legal__toc {
	margin: 0 0 3rem;
	padding: 1.5rem 1.75rem;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius-lg);
	background: var(--rm-bg-alt);
}

.rm-legal__toc h2 {
	margin: 0 0 .85rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rm-muted);
}

.rm-legal__toc ol {
	margin: 0 0 0 1.1rem;
	columns: 2;
	column-gap: 2rem;
}

.rm-legal__toc li {
	margin: 0 0 .3rem;
	break-inside: avoid;
	font-size: .95rem;
}

.rm-legal__toc a {
	color: var(--rm-navy);
	text-decoration: none;
}

.rm-legal__toc a:hover {
	color: var(--rm-blue);
	text-decoration: underline;
}

@media (max-width: 600px) {
	.rm-legal__toc ol {
		columns: 1;
	}
}

/* Placeholders the client still has to supply — obvious in the page, quiet in print. */
.rm-todo {
	display: inline-block;
	padding: .1em .5em;
	border-radius: 4px;
	background: #fff3cd;
	box-shadow: inset 0 0 0 1px #e5c76b;
	color: #6b5312;
	font-size: .92em;
	font-weight: 600;
}

/* -------------------------------------------------------- Avada overrides */

/* Header */
.fusion-header-wrapper .fusion-header {
	box-shadow: 0 1px 0 var(--rm-line);
}

/* Guard rail only: the logo assets are supplied at their display size, so
   Avada's own inline max-height already does the work. This keeps a
   re-uploaded logo from blowing the header open. */
.fusion-header .fusion-logo img {
	max-height: 58px;
	width: auto;
}

.fusion-main-menu > ul > li > a {
	font-family: var(--rm-head);
	font-weight: 600;
	letter-spacing: .005em;
}

.fusion-main-menu .fusion-main-menu-cart,
.fusion-main-menu > ul > li > a .menu-text {
	transition: color .15s ease;
}

.fusion-main-menu > ul > li.menu-item-button-1 > a,
.fusion-main-menu .fusion-menu-cart-items {
	border-radius: var(--rm-radius);
}

/* Footer */
.fusion-footer-widget-area,
.fusion-footer-copyright-area {
	border-top: 0;
}

.fusion-footer-widget-area {
	background: var(--rm-navy-ink);
}

.fusion-footer-copyright-area {
	background: #071a35;
}

/* Avada's legacy col-* grid lands these at 50% each. The footer has a fixed,
   known set of four columns, so it is laid out here instead — wider on the
   logo and contact columns, which carry the most text. */
.fusion-footer-widget-area .fusion-columns.fusion-columns-4 {
	display: grid !important;
	grid-template-columns: 1.3fr 1fr 1.25fr 1fr;
	gap: 2.5rem 3rem;
}

.fusion-footer-widget-area .fusion-columns .fusion-column {
	width: auto !important;
	float: none !important;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.fusion-footer-widget-area .fusion-clearfix {
	display: none;
}

.fusion-footer-widget-area .fusion-footer-widget-column {
	margin-bottom: 0;
}

@media (max-width: 1000px) {
	.fusion-footer-widget-area .fusion-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.fusion-footer-widget-area .fusion-columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.25rem;
	}
}

.fusion-footer-widget-area .widget-title,
.fusion-footer-widget-area h4 {
	margin: 0 0 1.1rem !important;
	font-family: var(--rm-head);
	font-size: .8rem !important;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .62) !important;
}

.fusion-footer-widget-area,
.fusion-footer-widget-area p,
.fusion-footer-widget-area li,
.fusion-footer-copyright-area,
.fusion-footer-copyright-area p {
	color: rgba(255, 255, 255, .72);
}

.fusion-footer a,
.fusion-footer-copyright-area a {
	color: rgba(255, 255, 255, .72);
	text-decoration: none;
}

.fusion-footer a:hover,
.fusion-footer-copyright-area a:hover {
	color: #fff;
}

.fusion-footer .rm-footer-logo img {
	max-width: 200px;
	height: auto;
	margin-bottom: 1.1rem;
}

.fusion-footer .rm-footer-blurb {
	max-width: 30ch;
	font-size: .95rem;
	line-height: 1.7;
}

.rm-footer-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-footer-list li {
	margin: 0 0 .55rem;
	font-size: .95rem;
	line-height: 1.5;
}

.rm-footer-list li:last-child {
	margin-bottom: 0;
}

.rm-footer-list__label {
	display: block;
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .38);
}

/* Forms */
.fusion-form .fusion-form-input,
.fusion-form textarea,
.fusion-form select,
.post-password-form input[type="password"],
.search-form input[type="text"] {
	border: 1px solid var(--rm-line) !important;
	border-radius: var(--rm-radius) !important;
	background: #fff !important;
	padding: .8em 1em !important;
	font-family: var(--rm-body);
	font-size: 1rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.fusion-form .fusion-form-input:focus,
.fusion-form textarea:focus,
.fusion-form select:focus {
	border-color: var(--rm-blue) !important;
	box-shadow: 0 0 0 3px rgba(30, 168, 232, .18) !important;
	outline: none;
}

.fusion-form .fusion-form-label {
	font-family: var(--rm-head);
	font-size: .9rem;
	font-weight: 600;
	color: var(--rm-navy-ink);
}

.fusion-form .fusion-form-field {
	margin-bottom: 1.35rem;
}

.fusion-form .fusion-button {
	border-radius: var(--rm-radius);
	font-family: var(--rm-head);
	font-weight: 600;
}

/* Avada buttons picked up in builder content */
.fusion-button.button-large {
	border-radius: var(--rm-radius);
	font-family: var(--rm-head);
	font-weight: 600;
	letter-spacing: 0;
}

/* Keyboard focus is visible everywhere, on light and dark sections alike. */
a:focus-visible,
button:focus-visible,
.rm-btn:focus-visible,
.fusion-button:focus-visible {
	outline: 3px solid var(--rm-blue);
	outline-offset: 3px;
}

.rm-hero a:focus-visible,
.rm-cta a:focus-visible {
	outline-color: #fff;
}

/* Skip link so keyboard users can jump the header. */
.rm-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: .8em 1.2em;
	background: var(--rm-navy-ink);
	color: #fff;
	font-weight: 600;
}

.rm-skip:focus {
	left: 1rem;
	top: 1rem;
}

/* Utility spacing used by builder columns. */
.rm-mt-0 { margin-top: 0 !important; }
.rm-mt-2 { margin-top: 2rem; }
.rm-mt-3 { margin-top: 3rem; }
.rm-mb-0 { margin-bottom: 0 !important; }
