/* Memberships page (exm-page--memberships): pieces that are only used here. Core: modern.css */

/* A visually hidden separator that keeps the old reading ("Members - No quotation request fee ...") for screen readers. */
.exm-page--memberships .exm-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
/* On the light sections the core's gold focus ring is too faint: use the ink colour. */
.exm-page--memberships .exm-light :is(a, .elementor-button):focus-visible,
.exm-page--memberships .exm-surface :is(a, .elementor-button):focus-visible { outline-color: #101B18; }

/* ------------------------------------------------------------------ tier cards */
.exm-page--memberships .exm-tiers.e-con { align-items: stretch; padding-top: 22px; }
.exm-page--memberships .exm-tier.e-con {
	gap: 0;
	padding: clamp(30px, 3vw, 44px) clamp(26px, 2.6vw, 40px) clamp(30px, 3vw, 40px);
}
.exm-page--memberships .exm-tier .exm-number .elementor-heading-title { color: var(--exm-kicker); margin-bottom: 0; }
.exm-page--memberships .exm-tier > .exm-tier__name.elementor-widget { padding: 14px 0 clamp(28px, 3vw, 40px); }
.exm-page--memberships .exm-tier__name .elementor-heading-title {
	color: var(--exm-ink);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .26em;
	line-height: 1.3;
}
.exm-page--memberships .exm-tier > .exm-tier__price.elementor-widget { padding: 0 0 clamp(30px, 3vw, 42px); }
.exm-page--memberships .exm-tier__price .elementor-heading-title {
	color: var(--exm-ink);
	font-size: clamp(50px, 4.7vw, 70px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.055em;
}
.exm-page--memberships .exm-price__cur {
	display: block;
	margin-bottom: 16px;
	color: var(--exm-kicker);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .24em;
	line-height: 1;
}
.exm-page--memberships .exm-price__num { white-space: nowrap; }
.exm-page--memberships .exm-tier__price small {
	margin-left: .3em;
	color: var(--exm-muted);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	white-space: nowrap;
}
.exm-page--memberships .exm-tier > .exm-tier__list.elementor-widget { flex: 1 1 auto; }
.exm-page--memberships .exm-tier__list ul,
.exm-page--memberships .exm-tier__list .elementor-icon-list-items { gap: 0; border-top: 1px solid var(--exm-line); }
.exm-page--memberships .exm-tier__list .elementor-icon-list-item {
	padding: 15px 0 15px 22px;
	border-bottom: 1px solid var(--exm-line);
}
.exm-page--memberships .exm-tier__list .elementor-icon-list-item::before { top: calc(15px + .66em); }
.exm-page--memberships .exm-tier__list .elementor-icon-list-text { font-size: 15px; line-height: 1.55; color: var(--exm-ink); }
.exm-page--memberships .exm-tier > .exm-tier__action.elementor-widget { padding-top: clamp(30px, 3vw, 40px); }

/* The Elite card: dark with gold, a little taller than its neighbours */
.exm-page--memberships .exm-tier--elite.e-con {
	border-color: var(--exm-accent);
	background:
		radial-gradient(ellipse 90% 55% at 100% 0, rgba(195, 170, 120, .22), transparent 65%),
		radial-gradient(ellipse 70% 40% at 0 100%, rgba(195, 170, 120, .09), transparent 70%),
		#101B18;
}
.exm-page--memberships .exm-tier--elite.e-con::before { transform: scaleX(1); }
.exm-page--memberships .exm-tier--elite .exm-tier__name .elementor-heading-title { color: var(--exm-accent); }
.exm-page--memberships .exm-tier--elite .exm-tier__list .elementor-icon-list-item::before { background: var(--exm-accent); }

/* ------------------------------------------------------------------ notes */
.exm-page--memberships .exm-notes.e-con {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(28px, 4vw, 72px);
	margin-top: clamp(64px, 7vw, 108px);
}
.exm-page--memberships .exm-note.e-con {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-top: 26px;
	border-top: 1px solid var(--exm-line);
}
.exm-page--memberships .exm-note.e-con::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	right: auto;
	bottom: auto;
	width: 56px;
	height: 2px;
	background: var(--exm-accent);
}
.exm-page--memberships .exm-note__n .elementor-heading-title {
	color: var(--exm-kicker);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	line-height: 1.5;
}
.exm-page--memberships .exm-note .exm-text p { font-size: 15px; line-height: 1.75; }

/* ------------------------------------------------------------------ quotation fee statement */
/* the core's kicker colour is 4.3:1 on the surface variant: a shade darker for the small labels here (4.8:1) */
.exm-page--memberships .exm-fee-section { --exm-kicker: #6E634C; }
.exm-page--memberships .exm-fee__head.e-con { display: flex; flex-direction: column; align-items: flex-start; }
.exm-page--memberships .exm-fee__title .elementor-heading-title {
	color: var(--exm-ink);
	font-size: clamp(38px, 4.3vw, 64px);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -.045em;
	text-wrap: balance;
}
.exm-page--memberships .exm-fee__rows.e-con { display: block; border-top: 1px solid var(--exm-line); }
.exm-page--memberships .exm-fee__row p {
	display: grid;
	grid-template-columns: minmax(110px, 180px) minmax(0, 1fr);
	gap: 10px 28px;
	align-items: baseline;
	margin: 0;
	padding: clamp(24px, 2.6vw, 34px) 0;
	border-bottom: 1px solid var(--exm-line);
	color: var(--exm-ink);
}
.exm-page--memberships .exm-fee__label {
	color: var(--exm-kicker);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	line-height: 1.5;
	text-transform: uppercase;
}
.exm-page--memberships .exm-fee__text {
	color: var(--exm-ink);
	font-size: clamp(21px, 2vw, 30px);
	line-height: 1.32;
	letter-spacing: -.028em;
}
.exm-page--memberships .exm-fee__text b { color: #766B54; font-weight: 500; white-space: nowrap; }
.exm-page--memberships .exm-fee__note p { max-width: 560px; padding-top: 26px; font-size: 14px; line-height: 1.7; }
.exm-page--memberships .exm-fee__body .exm-actions { padding-top: 30px; }

/* ------------------------------------------------------------------ closing */
.exm-page--memberships .exm-cta .exm-cta__meta { padding-top: 34px; text-align: center; }
.exm-page--memberships .exm-cta .exm-cta__meta p { color: var(--exm-muted); letter-spacing: .06em; }

/* ------------------------------------------------------------------ responsive */
@media (max-width: 1199px) {
	.exm-page--memberships .exm-tiers.e-con { padding-top: 0; }
	.exm-page--memberships .exm-tier--elite.e-con { grid-column: 1 / -1; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.exm-page--memberships .exm-tier--elite .exm-tier__list ul,
	.exm-page--memberships .exm-tier--elite .exm-tier__list .elementor-icon-list-items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 40px;
	}
	.exm-page--memberships .exm-tier--elite > .exm-tier__action.elementor-widget { max-width: 380px; }
}
@media (min-width: 1200px) {
	/* 22px taller than its neighbours, and the extra goes on top so the rows inside line up across the three cards */
	.exm-page--memberships .exm-tier--elite.e-con { margin-top: -22px; padding-top: calc(clamp(30px, 3vw, 44px) + 22px); }
}
@media (max-width: 899px) {
	.exm-page--memberships .exm-notes.e-con { grid-template-columns: 1fr; gap: 40px; }
	.exm-page--memberships .exm-fee__row p { grid-template-columns: 1fr; }
}

/* Cards lift on hover (core): .exm-reveal.is-visible resets transform after the card hover rule, so it is restored here;
   the stagger delay that modern.js leaves inline on the card must not delay the lift. */
@media (hover: hover) {
	.exm-motion .exm-page--memberships .exm-card.exm-reveal.is-visible:hover {
		transform: translateY(-6px);
		transition: opacity .8s ease, transform .5s cubic-bezier(.22, 1, .36, 1), border-color .4s, box-shadow .5s;
		transition-delay: 0s !important;
	}
}
