/* -------------------------------------------------------------------------------------------------
 * The Rewards & Membership page: /membership/, the glp/membership-page pattern.
 *
 * A banner in the Winners Circle's look ( winners.css ) - gold eyebrow, serif headline on the dark ground - with
 * the links down the page where the Winners Circle has its figures, between the same hairlines.  Below it the
 * sections take turns on white, the light ground and, for membership, the banner's dark one.  The two
 * accordions are the FAQ's ( faq.css ); the rewards' tables are the Rewards List block's own.
 * ------------------------------------------------------------------------------------------------- */

.glp-membership > * {
	margin-block: 0;
}

/* The links land a section below the sticky header, not under it. */
.glp-membership [id] {
	scroll-margin-top: calc(var(--glp-band-top, 0px) + var(--glp-nav-height, 100px));
}

@media (prefers-reduced-motion: no-preference) {
	html:has(.glp-membership) {
		scroll-behavior: smooth;
	}
}

/* The banner ------------------------------------------------------------------------------------- */

.glp-membership-intro {
	padding: var(--wp--preset--spacing--x-large) var(--wp--preset--spacing--medium);
}

.glp-membership-intro > * {
	margin-block: 0;
}

.glp-membership-intro__eyebrow {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--wp--custom--color--accent--600);
}

.glp-membership-intro .glp-membership-intro__title {
	margin-block-start: var(--wp--preset--spacing--small);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xxx-large);
	font-style: normal;
	font-weight: 500;
	letter-spacing: var(--wp--custom--letter-spacing--tight);
	line-height: 1.05;
	text-wrap: balance;
	color: inherit;
}

.glp-membership-intro .glp-membership-intro__copy {
	margin-block-start: var(--wp--preset--spacing--x-small);
	font-size: var(--wp--preset--font-size--medium);
	letter-spacing: var(--wp--custom--letter-spacing--snug);
	color: var(--wp--custom--color--tertiary--100);
}

/* The links: the Winners Circle's row of figures, two by two on a phone.  Core repeats the block's class on the
 * list inside, so the hairlines are the nav's alone. */
.glp-membership-intro nav.glp-membership-intro__nav {
	margin-block-start: var(--wp--preset--spacing--large);
	padding-block: var(--wp--preset--spacing--small);
	border-block: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 20%, transparent);
}

.glp-membership-intro__nav .wp-block-navigation__container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--x-small) 0;
	width: 100%;
}

.glp-membership-intro__nav .wp-block-navigation-item {
	justify-content: center;
}

.glp-membership-intro__nav .wp-block-navigation-item__content {
	padding: var(--wp--preset--spacing--x-small);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--custom--color--tertiary--100);
	transition: color 0.2s ease;
}

.glp-membership-intro__nav .wp-block-navigation-item__content:hover,
.glp-membership-intro__nav .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--custom--color--accent--600);
}

@media (min-width: 600px) {
	.glp-membership-intro__nav .wp-block-navigation__container {
		grid-auto-flow: column;
		grid-template-columns: none;
		grid-auto-columns: minmax(0, 1fr);
	}

	.glp-membership-intro__nav .wp-block-navigation-item + .wp-block-navigation-item {
		border-inline-start: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 20%, transparent);
	}
}

/* The sections ------------------------------------------------------------------------------------ */

.glp-membership__section {
	padding: var(--wp--preset--spacing--x-large) var(--wp--preset--spacing--medium);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: var(--wp--custom--color--secondary--800);
}

.glp-membership__section > * {
	margin-block: 0;
}

.glp-membership__section > * + * {
	margin-block-start: var(--wp--preset--spacing--small);
}

.glp-membership__section--soft {
	background: var(--wp--custom--color--secondary--50);
}

.glp-membership__section .wp-block-column > * {
	margin-block: 0;
}

.glp-membership__section .wp-block-column > * + * {
	margin-block-start: var(--wp--preset--spacing--small);
}

.glp-membership__split {
	align-items: center;
	gap: var(--wp--preset--spacing--large);
}

.glp-membership__eyebrow {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.glp-membership .glp-membership__eyebrow + .glp-membership__title {
	margin-block-start: var(--wp--preset--spacing--x-small);
}

.glp-membership__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-style: normal;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: var(--wp--custom--letter-spacing--tight);
	text-wrap: balance;
	color: var(--wp--preset--color--secondary);
}

.glp-membership__note,
.glp-membership .wp-element-caption {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--custom--color--secondary--600);
}

.glp-membership__link a {
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

.glp-membership__link a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* What points are worth: one big figure on a card, the crown beside it. */
.glp-membership__value {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--small);
	padding: var(--wp--preset--spacing--large) var(--wp--preset--spacing--medium);
	border: 1px solid var(--wp--custom--color--secondary--200);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--custom--color--secondary--50);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.1;
	text-align: center;
	color: var(--wp--preset--color--primary);
	--glp-points-icon-size: 2rem;
	--glp-points-icon-gap: 0;
}

.glp-membership__value::before {
	color: var(--wp--preset--color--tertiary);
}

.glp-membership__value:empty {
	display: none;
}

/* The checkout: the points choices as a card. */
.glp-membership__checkout img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--custom--color--secondary--200);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--base);
	box-shadow: 0 8px 24px color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}

.glp-membership__checkout .wp-element-caption {
	margin-block-start: var(--wp--preset--spacing--x-small);
	text-align: center;
}

/* Earning rewards: the list under the words. */
.glp-membership__section > .glp-reward-list {
	margin-block-start: var(--wp--preset--spacing--medium);
}

/* Membership -------------------------------------------------------------------------------------- */

.glp-membership__section--members {
	text-align: center;
	color: var(--wp--custom--color--tertiary--100);
}

.glp-membership__section--members .glp-membership__eyebrow {
	color: var(--wp--custom--color--accent--600);
}

.glp-membership__section--members .glp-membership__title,
.glp-membership__section--members .glp-membership__subtitle {
	color: var(--wp--preset--color--base);
}

.glp-membership__section--members .glp-membership__note {
	color: var(--wp--custom--color--tertiary--200);
}

/* Four benefits: two across on a phone ( one below 360px ), four on a desktop. */
.glp-membership .glp-membership__benefits {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--small);
	margin-block-start: var(--wp--preset--spacing--large);
	text-align: start;
}

@media (max-width: 359px) {
	.glp-membership .glp-membership__benefits {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 960px) {
	.glp-membership .glp-membership__benefits {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.glp-membership .glp-membership__benefits > * {
	margin: 0;
}

.glp-membership__benefit {
	padding: var(--wp--preset--spacing--medium);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 15%, transparent);
	border-radius: var(--wp--custom--radius--large);
	background: color-mix(in srgb, var(--wp--preset--color--base) 6%, transparent);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}

.glp-membership__benefit > * {
	margin-block: 0;
}

.glp-membership__benefit > * + * {
	margin-block-start: var(--wp--preset--spacing--x-small);
}

/* Each benefit's icon: a masked background, so it takes the gold whatever the file's own colour. */
.glp-membership__benefit::before {
	content: "";
	display: block;
	width: 2rem;
	height: 2rem;
	margin-block-end: var(--wp--preset--spacing--small);
	background-color: var(--wp--custom--color--accent--600);
	-webkit-mask: var(--glp-membership-icon) no-repeat center / contain;
	mask: var(--glp-membership-icon) no-repeat center / contain;
}

.glp-membership__benefit--pricing {
	--glp-membership-icon: url('../assets/icons/sell.svg');
}

.glp-membership__benefit--vote {
	--glp-membership-icon: url('../assets/icons/how-to-vote.svg');
}

.glp-membership__benefit--competitions {
	--glp-membership-icon: url('../assets/icons/redeem.svg');
}

.glp-membership__benefit--concierge {
	--glp-membership-icon: url('../assets/icons/support-agent.svg');
}

.glp-membership .glp-membership__benefit-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-style: normal;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: var(--wp--custom--letter-spacing--tight);
	color: var(--wp--preset--color--base);
}

.glp-membership .glp-membership__subtitle {
	margin-block-start: var(--wp--preset--spacing--x-large);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-style: normal;
	font-weight: 400;
}

/* How to become a member: the two thresholds as figures, "or" between them - one above the other on a phone. */
.glp-membership .glp-membership__qualify {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium);
}

.glp-membership__qualify > * {
	margin: 0;
}

.glp-membership__threshold {
	padding: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium);
	border: 1px solid color-mix(in srgb, var(--wp--custom--color--accent--600) 60%, transparent);
	border-radius: var(--wp--custom--radius--medium);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.2;
	color: var(--wp--preset--color--base);
}

.glp-membership__or {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	text-transform: uppercase;
	color: var(--wp--custom--color--accent--600);
}

/* A threshold the settings leave at 0 is bound to '': it goes, and "or" with it. */
.glp-membership__threshold:empty,
.glp-membership__qualify:has(.glp-membership__threshold:empty) .glp-membership__or {
	display: none;
}

.glp-membership .glp-membership__actions {
	margin-block-start: var(--wp--preset--spacing--large);
}

@media (min-width: 600px) {
	.glp-membership .glp-membership__qualify {
		flex-direction: row;
	}

	.glp-membership__value {
		font-size: var(--wp--preset--font-size--xx-large);
		--glp-points-icon-size: 2.5rem;
	}
}

@media (min-width: 782px) {
	.glp-membership-intro .glp-membership-intro__title {
		font-size: var(--wp--preset--font-size--xxxx-large);
	}

	.glp-membership__section {
		padding-block: var(--wp--preset--spacing--xx-large);
	}

	.glp-membership__title {
		font-size: var(--wp--preset--font-size--xxx-large);
	}
}
