/* ==========================================================================
   Cards — icon cards, principles, quote card, callouts, link cards, tiers,
   people (hosts + alumni) and the contact card.
   ========================================================================== */

/* ---- Base card (rounded-2xl border-2 border-pine/15 p-6) ---- */
.efa-card {
	border: 2px solid var(--efa-line-15);
	border-radius: 1rem;
	padding: 1.5rem;
}

.efa-card > * {
	margin: 0 !important;
}

.efa-card--p7 { padding: 1.75rem; }
.efa-card--cream { background: var(--wp--preset--color--cream); }
.efa-card--white { background: #fff; }

.efa-card--column {
	display: flex;
	flex-direction: column;
}

.efa-main .efa-card__title,
.efa-card .efa-card__title {
	font-size: 1.25rem;
	line-height: 1.75rem;
	color: var(--wp--preset--color--pine-dark);
}

.efa-main .efa-card__title--2xl,
.efa-card .efa-card__title--2xl {
	font-size: 1.5rem;
	line-height: 2rem;
}

/* Icon above the card title (size-11, then mt-4 to the title) */
.efa-card-icon::before {
	display: block !important;
	margin-bottom: 1rem;
	--efa-icon-size: 2.75rem;
	--efa-icon-color: var(--wp--preset--color--pine);
}

/* size-10, mt-3 */
.efa-card-icon--sm::before {
	margin-bottom: 0.75rem;
	--efa-icon-size: 2.5rem;
}

.efa-card .efa-card__body {
	margin-top: 0.5rem !important;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-75);
}

.efa-card .efa-card__body--grow {
	flex: 1;
}

.efa-card .efa-card__link {
	margin-top: 1.25rem !important;
}

/* ---- Principle card (flex gap-5, numbered circle) ---- */
.efa-principle {
	display: flex;
	gap: 1.25rem;
	border: 2px solid var(--efa-line-15);
	border-radius: 1rem;
	background: var(--wp--preset--color--cream);
	padding: 1.5rem;
	transition: border-color 0.15s var(--efa-ease);
}

.efa-principle:hover {
	border-color: var(--efa-line-40);
}

.efa-principle > * {
	margin: 0 !important;
}

.efa-principle__number {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	flex-shrink: 0;
	border-radius: 9999px;
	background: var(--wp--preset--color--pine);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 800;
	color: #fff;
}

.efa-principle__text > * {
	margin: 0 !important;
}

.efa-principle__text .efa-card__body {
	margin-top: 0.5rem !important;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-75);
}

.efa-principle .efa-card__title {
	font-size: 1.25rem;
	line-height: 1.75rem;
}

/* ---- Quote card (blockquote rounded-3xl border cream p-8) ---- */
.wp-block-quote.efa-quote-card {
	margin: 0;
	border: 2px solid var(--efa-line-15);
	border-radius: 1.5rem;
	background: var(--wp--preset--color--cream);
	padding: 2rem;
}

.wp-block-quote.efa-quote-card::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	background-color: var(--wp--preset--color--leaf-deep);
	-webkit-mask: var(--efa-icon) center / contain no-repeat;
	mask: var(--efa-icon) center / contain no-repeat;
}

.efa-quote-card > * {
	margin: 0 !important;
}

.efa-quote-card .efa-quote-card__quote {
	margin-top: 1rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	line-height: 1.375;
	font-weight: 800;
	color: var(--wp--preset--color--pine-dark);
}

.efa-quote-card .efa-quote-card__body {
	margin-top: 0.75rem !important;
	font-size: 1.125rem;
	line-height: 1.75rem;
	color: var(--efa-ink-75);
}

/* ---- Callouts (border-l-4 border-leaf bg-cream) ---- */
.efa-callout {
	border-left: 4px solid var(--wp--preset--color--leaf);
	border-radius: 1rem;
	background: var(--wp--preset--color--cream);
	padding: 1.5rem;
}

.efa-callout > * {
	margin: 0 !important;
}

.efa-callout__text {
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 600;
	color: var(--wp--preset--color--pine-dark);
}

.efa-callout--card {
	border-radius: 1.5rem;
	padding: 2rem;
}

.efa-partner-logo {
	margin: 0;
}

.efa-partner-logo img {
	display: block;
	width: auto;
	height: 6rem;
}

.efa-callout .efa-callout__title {
	margin-top: 1.5rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1.375;
	font-weight: 800;
	color: var(--wp--preset--color--pine-dark);
}

.efa-callout .efa-callout__body {
	margin-top: 0.75rem !important;
	font-size: 1.125rem;
	line-height: 1.75rem;
	color: var(--efa-ink-75);
}

/* ---- Link card — whole card clickable via the title link ---- */
.efa-link-card {
	position: relative;
	border: 2px solid var(--efa-line-15);
	border-radius: 1rem;
	background: var(--wp--preset--color--cream);
	padding: 1.25rem 4rem 1.25rem 1.5rem;
	transition: border-color 0.15s var(--efa-ease);
}

.efa-link-card:hover,
.efa-link-card:focus-within {
	border-color: var(--wp--preset--color--pine);
}

.efa-link-card > * {
	margin: 0 !important;
}

.efa-link-card::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1.5rem;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: -0.625rem;
	background-color: var(--wp--preset--color--pine);
	-webkit-mask: url(../../assets/icons/arrow.svg) center / contain no-repeat;
	mask: url(../../assets/icons/arrow.svg) center / contain no-repeat;
	transform: rotate(-45deg);
	transition: transform 0.15s var(--efa-ease);
}

.efa-link-card:hover::after {
	transform: translate(0.25rem, -0.25rem) rotate(-45deg);
}

.efa-link-card__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 800;
}

.efa-link-card__name a {
	color: var(--wp--preset--color--pine-dark);
	text-decoration: none;
}

.efa-link-card__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 1rem;
}

.efa-link-card .efa-link-card__detail {
	margin-top: 0.25rem !important;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-70);
}

.efa-link-card .efa-link-card__url {
	margin-top: 0.25rem !important;
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--leaf-deep);
	word-break: break-all;
}

/* ---- Patreon tiers ---- */
.efa-tier {
	display: flex;
	flex-direction: column;
	border: 2px solid var(--efa-line-15);
	border-radius: 1.5rem;
	background: #fff;
	padding: 2rem;
}

.efa-tier > * {
	margin: 0 !important;
}

.efa-tier--featured {
	border-color: var(--wp--preset--color--leaf);
	box-shadow: var(--efa-shadow-leaf-xl);
}

.efa-tier .efa-tier__flag {
	margin-bottom: 1rem !important;
	width: fit-content;
	border-radius: 9999px;
	background: var(--wp--preset--color--leaf);
	padding: 0.25rem 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 800;
	letter-spacing: 0.025em;
	text-transform: uppercase;
	color: var(--wp--preset--color--pine-dark);
}

.efa-main .efa-tier__name {
	font-size: 1.5rem;
	line-height: 2rem;
}

.efa-tier .efa-tier__price {
	margin-top: 0.5rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: 3rem;
	line-height: 1;
	font-weight: 800;
	color: var(--wp--preset--color--pine);
}

.efa-tier__per {
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 700;
	color: var(--efa-ink-60);
}

.efa-tier .efa-tier__blurb {
	margin-top: 0.75rem !important;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-75);
}

.efa-tier .efa-checklist {
	flex: 1;
	margin-top: 1.5rem !important;
}

.efa-tier .efa-tier__cta {
	margin-top: 2rem !important;
}

.efa-tier__cta .wp-block-button,
.efa-tier__cta .wp-block-button__link {
	width: 100%;
}

.efa-tier__cta .wp-block-button__link {
	padding: 1rem 1.5rem;
	font-weight: 800;
}

/* Checklist (tick-box icon per item) */
.wp-block-list.efa-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.efa-checklist li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-80);
}

.efa-checklist li + li {
	margin-top: 0.75rem;
}

.efa-checklist li::before {
	content: "";
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.125rem;
	background-color: var(--wp--preset--color--leaf-deep);
	-webkit-mask: url(../../assets/icons/vote.svg) center / contain no-repeat;
	mask: url(../../assets/icons/vote.svg) center / contain no-repeat;
}

/* ---- People: hosts (initials avatar) ---- */
.efa-person {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	border: 2px solid var(--efa-line-15);
	border-radius: 1rem;
	background: var(--wp--preset--color--cream);
	padding: 1.5rem;
}

.efa-person > *,
.efa-person .wp-block-group > * {
	margin: 0 !important;
}

/* The name links to the host profile; the link covers the whole card. */
.efa-alum:has(.efa-alum__name a),
.efa-person:has(.efa-person__name a) {
	position: relative;
	transition: border-color 0.15s var(--efa-ease), box-shadow 0.15s var(--efa-ease);
}

.efa-alum:has(.efa-alum__name a):hover,
.efa-alum:has(.efa-alum__name a):focus-within,
.efa-person:has(.efa-person__name a):hover,
.efa-person:has(.efa-person__name a):focus-within {
	border-color: var(--wp--preset--color--pine);
	box-shadow: var(--efa-shadow-card);
}

.efa-alum__name a,
.efa-person__name a {
	color: inherit;
	text-decoration: none;
}

.efa-alum__name a::after,
.efa-person__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 1rem;
}

.efa-alum:hover .efa-alum__name a,
.efa-person:hover .efa-person__name a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.efa-person__avatar {
	display: grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	flex-shrink: 0;
	border-radius: 9999px;
	background: var(--wp--preset--color--pine);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 800;
	color: #fff;
}

.efa-person__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 800;
	color: var(--wp--preset--color--pine-dark);
}

.efa-person .efa-person__role {
	margin-top: 0.25rem !important;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-70);
}

.efa-person .efa-person__since {
	margin-top: 0.25rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 700;
	color: var(--wp--preset--color--leaf-deep);
}

/* ---- Alumni ---- */
.efa-alum {
	border: 2px solid var(--efa-line-15);
	border-radius: 1rem;
	background: #fff;
	padding: 1.25rem;
}

.efa-alum > *,
.efa-alum__head > * {
	margin: 0 !important;
}

.efa-alum__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
}

.efa-alum__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 800;
	color: var(--wp--preset--color--pine-dark);
}

.efa-alum__years {
	flex-shrink: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--leaf-deep);
}

.efa-alum .efa-alum__role {
	margin-top: 0.25rem !important;
	font-size: 1rem;
	line-height: 1.5rem;
	color: var(--efa-ink-70);
}

.efa-thanks {
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 600;
	color: var(--efa-ink-70);
}

/* ---- Contact card ---- */
.efa-contact-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	border: 2px solid var(--efa-line-15);
	border-radius: 1.5rem;
	background: var(--wp--preset--color--cream);
	padding: 2rem;
}

.efa-contact-card > *,
.efa-contact-card .wp-block-group > * {
	margin: 0 !important;
}

@media (min-width: 640px) {
	.efa-contact-card {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

.efa-contact-card .wp-block-buttons {
	flex-shrink: 0;
}

.efa-contact-card__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 800;
	color: var(--wp--preset--color--pine-dark);
}

.efa-contact-card .efa-contact-card__text {
	margin-top: 0.25rem !important;
	font-size: 1.125rem;
	line-height: 1.75rem;
	color: var(--efa-ink-75);
}

.efa-contact-card__text a {
	font-weight: 700;
	color: var(--wp--preset--color--pine);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
}

.efa-contact-card__text a:hover {
	color: var(--wp--preset--color--pine-deep);
}
