/* ==========================================================================
   The Recyclers — inner pages: About (Our Story) and the service pages
   From the About and Estate comps. Every `is-style-rcy-*` rule here matches a
   variation in inc/block-styles.php; the rest are section classes the seed
   writes (tools/seed/pages/).
   ========================================================================== */

/* Rhythm ------------------------------------------------------------------- */

.rcy-section :is(.is-style-rcy-pill-mint, .is-style-rcy-eyebrow-spaced) + h2 {
	margin-block-start: 1rem;
}

:is(.rcy-story, .rcy-timeline, .rcy-team, .rcy-work, .rcy-donation, .rcy-intro, .rcy-clear, .rcy-time, .rcy-handling, .rcy-gallery, .rcy-contact) h2 {
	font-size: clamp(2.25rem, 3.6vw, 3.25rem);
}

/* Body copy beside a photo or card is the comps' muted gray. */
:is(.rcy-story, .rcy-team, .rcy-work, .rcy-donation, .rcy-intro, .rcy-time, .rcy-gallery) :is(.wp-block-column, .fwf-container) > p:not([class*="is-style"]) {
	max-width: 40rem;
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--wp--preset--color--muted);
}

:is(.rcy-story, .rcy-team, .rcy-work, .rcy-donation, .rcy-intro, .rcy-time) .wp-block-columns {
	gap: clamp(2rem, 6vw, 5.5rem);
}

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

/* Wider than the lead, so a three-line headline keeps the comps' breaks. */
.is-style-rcy-hero .rcy-hero__inner > h1 {
	max-width: 46rem;
}

/*
 * Room above and below when the copy is taller than the photo — on a phone
 * the tag otherwise touched the header. On a desktop the hero's min-height
 * is taller than this, so nothing moves.
 */
.wp-block-cover.is-style-rcy-hero {
	padding-block: 3.5rem;
}

.is-style-rcy-hero .rcy-hero__inner > .rcy-hero__lead--wide {
	max-width: 46rem;
}

.is-style-rcy-hero .rcy-hero__inner > .rcy-hero__sub {
	max-width: 46rem;
	margin-block-end: 1.25rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.25rem, 2vw, 1.625rem);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.is-style-rcy-hero .rcy-hero__inner > :is(.is-style-rcy-tag, .is-style-rcy-tag-dot) + .rcy-hero__lead {
	margin-block-start: 1.5rem;
}

/* Hero Tag, Hero Tag Dot */

.is-style-rcy-tag,
.is-style-rcy-tag-dot {
	display: inline-flex;
	align-items: center;
	gap: 0.65em;
	width: fit-content;
	padding: 0.45rem 1.1rem;
	border: 1px solid rgb(126 231 135 / 50%);
	border-radius: 999px;
	background: rgb(13 43 30 / 60%);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-tint);
}

.is-style-rcy-tag-dot::before {
	content: "";
	flex: none;
	width: 0.5em;
	height: 0.5em;
	border-radius: 50%;
	background: currentcolor;
}

/* Breadcrumb band ------------------------------------------------------------ */

.rcy-crumbs {
	padding-block: 0.95rem;
	border-block-end: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface-alt);
}

.rcy-crumbs .breadcrumbs__list {
	margin: 0;
	font-size: 0.9375rem;
}

.rcy-crumbs .breadcrumbs__item + .breadcrumbs__item::before {
	content: "›";
	opacity: 0.7;
}

.rcy-crumbs .breadcrumbs__list a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.rcy-crumbs .breadcrumbs__list a:hover {
	color: var(--wp--preset--color--primary);
}

.rcy-crumbs .breadcrumbs__list [aria-current] {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	color: var(--wp--preset--color--contrast);
}

/* Pill, Mint ------------------------------------------------------------------- */

.is-style-rcy-pill-mint {
	display: block;
	width: fit-content;
	padding: 0.4rem 1rem;
	border: 1px solid rgb(22 101 52 / 22%);
	border-radius: 999px;
	background: var(--wp--preset--color--mint-strong);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-deep);
}

.is-style-rcy-pill-mint.has-text-align-center {
	margin-inline: auto;
}

/* Eyebrow, Spaced -------------------------------------------------------------- */

.is-style-rcy-eyebrow-spaced {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

/* Lead, Callout ------------------------------------------------------------------ */

.rcy-section p.is-style-rcy-lead {
	max-width: 46rem;
	font-size: clamp(1.125rem, 1.4vw, 1.25rem);
	font-weight: 500;
	line-height: 1.6;
	color: var(--wp--preset--color--contrast);
}

.rcy-section p.is-style-rcy-lead.has-text-align-center {
	max-width: 60rem;
	text-wrap: balance;
	margin-inline: auto;
}

.rcy-section p.is-style-rcy-callout {
	max-width: 46rem;
	margin-block-start: 1.75rem;
	padding: 1.5rem 1.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-inline-start: 5px solid var(--wp--preset--color--primary);
	border-radius: 16px;
	background: var(--wp--preset--color--mint);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.7;
	color: var(--wp--preset--color--contrast);
}

/* Buttons: Dark with Arrow, Green ------------------------------------------------ */

.wp-block-button.is-style-rcy-pill-dark .wp-block-button__link,
.wp-block-button.is-style-rcy-pill-green .wp-block-button__link {
	padding: 1rem 1.85rem;
	border-radius: 999px;
	box-shadow: 0 10px 24px rgb(13 43 30 / 18%);
}

.wp-block-button.is-style-rcy-pill-dark .wp-block-button__link {
	background: var(--wp--preset--color--secondary);
}

.wp-block-button.is-style-rcy-pill-green .wp-block-button__link {
	background: var(--wp--preset--color--primary);
}

.wp-block-button.is-style-rcy-pill-dark .wp-block-button__link:hover,
.wp-block-button.is-style-rcy-pill-green .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary-deep);
}

.wp-block-button.is-style-rcy-pill-dark .wp-block-button__link::after {
	content: "";
	width: 0.85em;
	height: 0.85em;
	background: currentcolor;
	mask: var(--rcy-icon-arrow-right) center / contain no-repeat;
	transition: translate 0.3s var(--rcy-ease);
}

.wp-block-button.is-style-rcy-bright .wp-block-button__link {
	box-shadow: 0 10px 24px rgb(34 197 94 / 22%);
}

@media (hover: hover) {
	.wp-block-button.is-style-rcy-pill-dark .wp-block-button__link:hover::after {
		translate: 4px 0;
	}
}

/* Icon, Dark ----------------------------------------------------------------- */

/* Doubled class: the parent sizes images in Columns at (0,3,0). */
figure.wp-block-image.is-style-rcy-icon-dark.is-style-rcy-icon-dark {
	display: grid;
	flex: none;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--secondary);
}

.wp-block-image.is-style-rcy-icon-dark img {
	width: 1.35rem !important;
	height: 1.35rem !important;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

/* Photo Card ------------------------------------------------------------------ */

.is-style-rcy-photo-card {
	padding: 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 24px;
	background: var(--wp--preset--color--base);
	box-shadow: var(--rcy-shadow-lg);
}

.is-style-rcy-photo-card > * {
	margin-block: 0;
}

.is-style-rcy-photo-card .rcy-photo-card__photo img {
	width: 100% !important;
	aspect-ratio: 6 / 5;
	object-fit: cover;
	border-radius: 16px;
}

/* The story card's label sits on the photo's bottom edge. */
.is-style-rcy-photo-card .rcy-photo-card__label {
	position: relative;
	align-items: center;
	margin: -1.5rem 0.75rem 0.75rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	background: var(--wp--preset--color--base);
	box-shadow: var(--rcy-shadow);
}

.rcy-section .rcy-photo-card__label p {
	font-size: 0.9375rem;
}

.rcy-section .rcy-photo-card__label p + p {
	margin-block-start: 0.15rem;
}

.rcy-section .rcy-photo-card__label p.rcy-photo-card__kicker {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.rcy-section .rcy-photo-card__label p.rcy-photo-card__figure {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1;
	color: var(--wp--preset--color--primary);
}

/* The team card: padding round the photo, the badge row under a rule. */
.rcy-team .is-style-rcy-photo-card {
	padding: clamp(1.25rem, 2.5vw, 2rem);
}

.rcy-team .is-style-rcy-photo-card .rcy-photo-card__photo img {
	aspect-ratio: 13 / 12;
}

.is-style-rcy-photo-card .rcy-photo-card__foot {
	align-items: center;
	gap: 1rem;
	margin-block-start: 1.5rem;
	padding-block-start: 1.5rem;
	border-block-start: 1px solid var(--wp--preset--color--border);
}

/* Doubled class: the parent sizes images in Columns to 100% at (0,3,0). */
figure.wp-block-image.rcy-photo-card__badge.rcy-photo-card__badge {
	flex: none;
	width: 4rem;
	margin: 0;
}

.is-style-rcy-photo-card .rcy-photo-card__foot > .wp-block-group {
	flex: 1;
	min-width: 0;
}

.is-style-rcy-photo-card .rcy-photo-card__badge img {
	width: 4rem !important;
	height: auto;
}

.rcy-section .rcy-photo-card__foot p strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
}

.rcy-section .rcy-photo-card__foot p + p {
	margin-block-start: 0.2rem;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
}

/* Timeline Card, Timeline Card Current ---------------------------------------------- */

.rcy-timeline .rcy-timeline__grid {
	gap: 1.75rem;
	margin-block-start: var(--wp--preset--spacing--50);
}

.is-style-rcy-timeline-card,
.is-style-rcy-timeline-now {
	display: flex;
	flex-direction: column;
	padding: 2rem 2rem 1.5rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 20px;
	background: var(--wp--preset--color--base);
}

.is-style-rcy-timeline-card::before,
.is-style-rcy-timeline-now::before {
	content: "";
	width: 4rem;
	height: 6px;
	margin-block-end: 1.75rem;
	border-radius: 6px;
	background: var(--wp--preset--color--primary);
}

.is-style-rcy-timeline-now {
	border: 2px solid rgb(34 197 94 / 40%);
	background: linear-gradient(180deg, var(--wp--preset--color--base) 0%, var(--wp--preset--color--mint) 100%);
	box-shadow: var(--rcy-shadow);
}

.is-style-rcy-timeline-now::before {
	background: var(--wp--preset--color--primary-tint);
}

:is(.is-style-rcy-timeline-card, .is-style-rcy-timeline-now) > * {
	margin-block: 0;
}

:is(.is-style-rcy-timeline-card, .is-style-rcy-timeline-now) .rcy-timeline__top {
	align-items: center;
	gap: 1rem;
}

.rcy-section .rcy-timeline__year {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.125rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--wp--preset--color--primary);
}

.rcy-section .rcy-timeline__label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* The current card names its stage as a badge beside the year. */
.is-style-rcy-timeline-now .rcy-timeline__top {
	justify-content: flex-start !important;
}

.rcy-section .is-style-rcy-timeline-now .rcy-timeline__year {
	color: var(--wp--preset--color--secondary);
}

.rcy-section .is-style-rcy-timeline-now .rcy-timeline__label {
	padding: 0.2rem 0.6rem;
	border-radius: 6px;
	background: var(--wp--preset--color--mint-strong);
	color: var(--wp--preset--color--primary);
}

:is(.is-style-rcy-timeline-card, .is-style-rcy-timeline-now) h3 {
	margin-block: 1.4rem 0.85rem;
	font-size: 1.375rem;
}

.rcy-section :is(.is-style-rcy-timeline-card, .is-style-rcy-timeline-now) > p {
	margin-block-end: 2rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}

:is(.is-style-rcy-timeline-card, .is-style-rcy-timeline-now) .rcy-timeline__foot {
	align-items: center;
	gap: 0.5rem;
	margin-block-start: auto;
	padding-block-start: 1.25rem;
	border-block-start: 1px solid var(--wp--preset--color--border);
}

.rcy-section .rcy-timeline__foot p {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary-deep);
}

.rcy-timeline__foot .wp-block-image.is-style-rcy-icon-plain {
	margin: 0;
}

.rcy-timeline__foot .wp-block-image.is-style-rcy-icon-plain img {
	width: 0.9rem !important;
	height: 0.9rem !important;
}

/* Feature Row ----------------------------------------------------------------- */

.rcy-team .rcy-team__features {
	display: grid;
	gap: 1.25rem;
	margin-block-start: 2.25rem;
}

.is-style-rcy-feature {
	gap: 1.25rem;
	padding: 1.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	background: var(--wp--preset--color--base);
}

.is-style-rcy-feature h3 {
	margin: 0 0 0.5rem;
	font-size: 1.375rem;
}

.rcy-section .is-style-rcy-feature p {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}

/* Captioned photo, large: Our Work and the donation band ---------------------------- */

.rcy-section .wp-block-cover.is-style-rcy-photo-caption {
	min-height: 0;
	aspect-ratio: 16 / 9.25;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 0;
	border-radius: 24px;
	box-shadow: var(--rcy-shadow-lg);
}

.rcy-section .wp-block-cover.is-style-rcy-photo-caption p.rcy-photo-caption__kicker {
	margin-block-end: 0.35rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-tint);
}

.rcy-section .wp-block-cover.is-style-rcy-photo-caption p strong {
	font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
	line-height: 1.4;
}

/* Info Card -------------------------------------------------------------------- */

.is-style-rcy-info-card {
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	border: 1px solid rgb(22 101 52 / 12%);
	border-radius: 28px;
	background: linear-gradient(135deg, var(--wp--preset--color--mint) 0%, var(--wp--preset--color--surface) 100%);
}

.is-style-rcy-info-card > * {
	margin-block: 0;
}

.is-style-rcy-info-card .rcy-info-card__head {
	gap: 1rem;
}

.is-style-rcy-info-card figure.wp-block-image.is-style-rcy-icon-dark {
	border-radius: 12px;
}

.is-style-rcy-info-card h3 {
	margin: 0;
	font-size: clamp(1.5rem, 2.2vw, 1.875rem);
	font-weight: 800;
}

.rcy-section .is-style-rcy-info-card > p {
	max-width: 30rem;
	margin-block: 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.6;
}

.rcy-section .is-style-rcy-info-card p.rcy-info-card__chip {
	font-size: 0.9375rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	max-width: none;
	margin-block-end: 0;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	background: var(--wp--preset--color--base);
}

.rcy-info-card__chip::before {
	content: "";
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	background: var(--wp--preset--color--primary);
	mask: var(--rcy-icon-calendar) center / contain no-repeat;
}

/* Feature Card -------------------------------------------------------------------- */

.rcy-section .rcy-cards__grid {
	gap: 1.75rem;
	margin-block-start: var(--wp--preset--spacing--50);
}

.is-style-rcy-feature-card {
	padding: 2rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	background: var(--wp--preset--color--base);
}

.is-style-rcy-feature-card > * {
	margin-block: 0;
}

.is-style-rcy-feature-card figure.wp-block-image.is-style-rcy-icon-square.is-style-rcy-icon-square {
	/* Left, as in the comp: the icon style centers it, and Chrome now honors
	   justify-self in block layout. */
	justify-self: start;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 12px;
}

.is-style-rcy-feature-card h3 {
	margin-block: 1.75rem 0.9rem;
	font-size: 1.1875rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.rcy-section .is-style-rcy-feature-card p {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}

.rcy-section .rcy-cards__grid--3 .is-style-rcy-feature-card p {
	font-size: 1.125rem;
	line-height: 1.75;
}

.rcy-cards__grid--3 .is-style-rcy-feature-card h3 {
	margin-block-start: 1.5rem;
	font-size: 1.125rem;
}

/* Photo with Badges ---------------------------------------------------------------- */

.is-style-rcy-media-badges {
	position: relative;
}

.is-style-rcy-media-badges > * {
	margin-block: 0;
}

.is-style-rcy-media-badges .rcy-media-badges__photo img {
	width: 100% !important;
	aspect-ratio: 7 / 5;
	object-fit: cover;
	border-radius: 20px;
	box-shadow: var(--rcy-shadow-lg);
}

.is-style-rcy-media-badges .rcy-media-badges__badge {
	position: absolute;
	right: -1.5rem;
	bottom: -1.5rem;
	gap: 0.75rem;
	padding: 0.9rem 1.4rem;
	border-radius: 12px;
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--base);
	box-shadow: var(--rcy-shadow-lg);
}

.rcy-section .rcy-media-badges__badge p {
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	line-height: 1.3;
	text-transform: uppercase;
	color: rgb(255 255 255 / 85%);
}

.rcy-section .rcy-media-badges__badge p strong {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--base);
}

/* Doubled class: the parent sizes images in Columns to 100% at (0,3,0). */
figure.wp-block-image.is-style-rcy-icon-plain.is-style-rcy-icon-plain {
	flex: none;
	width: auto;
	margin: 0;
}

.rcy-section .rcy-media-badges__badge p {
	white-space: nowrap;
}

/* The glyph is brand green; lifted so it reads on the dark badge. */
.rcy-media-badges__badge .wp-block-image.is-style-rcy-icon-plain img {
	width: 1.25rem !important;
	height: 1.25rem !important;
	filter: brightness(2.3) saturate(1.2);
}

/* Mint Fade, Panel, Panel Mint ----------------------------------------------------- */

.is-style-rcy-fade {
	background: linear-gradient(180deg, var(--wp--preset--color--mint) 0%, var(--wp--preset--color--base) 40%);
}

.rcy-section p.rcy-handling__intro {
	max-width: 58rem;
	font-size: clamp(1.0625rem, 1.3vw, 1.1875rem);
	line-height: 1.9;
	color: var(--wp--preset--color--contrast);
}

.rcy-handling .rcy-panels__grid {
	gap: 1.75rem;
	margin-block-start: clamp(4rem, 8vw, 6rem);
}

.is-style-rcy-panel,
.is-style-rcy-panel-mint {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.75rem, 4vw, 3rem);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 24px;
	background: var(--wp--preset--color--base);
}

.is-style-rcy-panel-mint {
	border-color: rgb(22 101 52 / 12%);
	background: var(--wp--preset--color--mint);
}

:is(.is-style-rcy-panel, .is-style-rcy-panel-mint) > * {
	margin-block: 0;
}

.rcy-section :is(.is-style-rcy-panel, .is-style-rcy-panel-mint) .is-style-rcy-eyebrow-spaced {
	font-size: 0.8125rem;
}

.rcy-section :is(.is-style-rcy-panel, .is-style-rcy-panel-mint) h2 {
	margin-block: 0.75rem 0;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
}

.rcy-section :is(.is-style-rcy-panel, .is-style-rcy-panel-mint) p:not([class*="is-style"]) {
	max-width: 34rem;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--wp--preset--color--muted);
}

.rcy-section :is(.is-style-rcy-panel, .is-style-rcy-panel-mint) h2 + p {
	margin-block-start: 1.25rem;
}

.rcy-section :is(.is-style-rcy-panel, .is-style-rcy-panel-mint) p + p {
	margin-block-start: 1rem;
}

.rcy-section :is(.is-style-rcy-panel, .is-style-rcy-panel-mint) p strong {
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--heading);
}

/* Reviews, service-page shape ---------------------------------------------------- */

.rcy-reviews .rcy-section__head .wp-block-buttons {
	flex: none;
	margin: 0;
}

/* Sized so the heading and its button share a line, as in the comp. */
.rcy-reviews--service h2 {
	font-size: clamp(2rem, 2.9vw, 2.5rem);
	text-wrap: balance;
}

/* The heading wraps its text before it pushes the button to a new line. */
.rcy-reviews .rcy-section__head > .wp-block-group:first-child {
	flex: 1 1 28rem;
}

@media (min-width: 1100px) {
	.rcy-reviews .rcy-reviews__grid.rcy-reviews__grid--cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.rcy-reviews__grid--cards .is-style-rcy-review-card:nth-child(2) .is-style-rcy-avatar { background: #7e22ce; }
.rcy-reviews__grid--cards .is-style-rcy-review-card:nth-child(3) .is-style-rcy-avatar { background: var(--wp--preset--color--blue); }

/* Grids ------------------------------------------------------------------------ */

/* Two classes, to beat the `.wp-container-*` rule core prints for the count. */
.rcy-timeline .rcy-timeline__grid,
.rcy-section .rcy-cards__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rcy-section .rcy-cards__grid.rcy-cards__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rcy-handling .rcy-panels__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/*
 * Five cards: three over two, the second row centered. Flex rather than grid —
 * a grid cannot center a short last row.
 */
.rcy-section .rcy-cards__grid.rcy-cards__grid--5 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.rcy-section .rcy-cards__grid--5 > * {
	flex: 0 1 calc((100% - 2 * 1.75rem) / 3);
}

/* One closing panel spans the row. */
.rcy-handling .rcy-panels__grid.rcy-panels__grid--1 { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 1100px) {
	.rcy-timeline .rcy-timeline__grid,
	.rcy-section .rcy-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
	.rcy-section .rcy-cards__grid--5 > * {
		flex-basis: calc((100% - 1.75rem) / 2);
	}
}

@media (max-width: 600px) {
	.rcy-section .rcy-cards__grid--5 > * {
		flex-basis: 100%;
	}
}

@media (max-width: 900px) {
	.rcy-section .rcy-cards__grid.rcy-cards__grid--3,
	.rcy-handling .rcy-panels__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
	.is-style-rcy-tag,
	.is-style-rcy-tag-dot {
		font-size: 0.6875rem;
		letter-spacing: 0.1em;
	}

	.rcy-timeline .rcy-timeline__grid,
	.rcy-section .rcy-cards__grid { grid-template-columns: minmax(0, 1fr); }

	.is-style-rcy-media-badges .rcy-media-badges__badge {
		right: 0.75rem;
		bottom: -1.25rem;
	}

	.is-style-rcy-feature {
		flex-wrap: wrap !important;
		padding: 1.5rem;
	}

	.rcy-section .wp-block-cover.is-style-rcy-photo-caption {
		aspect-ratio: 4 / 3.4;
	}
}

/* Company pages: crew, partner groups, contact cards, gallery ------------------ */

.rcy-timeline .rcy-crew__grid {
	gap: 1.25rem;
	margin-block-start: var(--wp--preset--spacing--50);
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.rcy-crew__grid .is-style-rcy-figure-card {
	padding-block: 1.75rem 1.5rem;
}

.rcy-section .rcy-crew__grid .is-style-rcy-figure {
	font-size: 2.75rem;
}

.rcy-section .rcy-crew__grid .is-style-rcy-figure-card > p:last-child {
	margin-block-start: 0.5rem;
	font-size: 1.125rem;
	letter-spacing: 0;
	color: var(--wp--preset--color--contrast);
}

/* Recycling & Donations: three partner groups under one heading. */
.rcy-partners-section .rcy-partners {
	margin-block-start: clamp(3rem, 6vw, 4.5rem);
}

.rcy-partners-section .rcy-partners > h3 {
	margin-block: 0.75rem 0;
	font-size: clamp(1.5rem, 2.2vw, 1.875rem);
}

.rcy-section .rcy-partners > p:not([class*="is-style"]) {
	max-width: 46rem;
	margin-block-start: 0.85rem;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--wp--preset--color--muted);
}

.rcy-partners-section .rcy-partners .rcy-cards__grid {
	margin-block-start: 1.75rem;
}

.rcy-section .rcy-cards__grid.rcy-cards__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Contact: each card's value is a Theme Settings binding. */
.rcy-contact .rcy-cards__grid {
	margin-block-start: var(--wp--preset--spacing--50);
}

.rcy-section .rcy-contact-card__value {
	margin-block-start: 0.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--contrast);
	overflow-wrap: anywhere;
}

.rcy-contact-card__value a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

/* Before & After: the lightbox gallery. */
.rcy-gallery .wp-block-gallery {
	margin-block-start: var(--wp--preset--spacing--50) !important;
	gap: 1.25rem;
}

.rcy-gallery .wp-block-gallery .wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 16px;
}

.rcy-gallery .wp-block-gallery .wp-block-image figcaption {
	border-radius: 0 0 16px 16px;
	font-weight: 600;
}

@media (max-width: 1100px) {
	.rcy-timeline .rcy-crew__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.rcy-timeline .rcy-crew__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rcy-section .rcy-cards__grid.rcy-cards__grid--2 { grid-template-columns: minmax(0, 1fr); }
}

/* Interaction ------------------------------------------------------------------- */

.is-style-rcy-timeline-card,
.is-style-rcy-timeline-now,
.is-style-rcy-feature,
.is-style-rcy-feature-card,
.is-style-rcy-panel,
.is-style-rcy-panel-mint {
	transition:
		translate 0.35s var(--rcy-ease),
		box-shadow 0.35s var(--rcy-ease),
		border-color 0.35s var(--rcy-ease);
}

.is-style-rcy-photo-card .rcy-photo-card__photo,
.is-style-rcy-media-badges .rcy-media-badges__photo {
	overflow: hidden;
	border-radius: 16px;
}

.is-style-rcy-media-badges .rcy-media-badges__photo {
	border-radius: 20px;
}

.is-style-rcy-photo-card .rcy-photo-card__photo img,
.is-style-rcy-media-badges .rcy-media-badges__photo img {
	transition: scale 0.8s var(--rcy-ease);
}

@media (hover: hover) {
	.is-style-rcy-timeline-card:hover,
	.is-style-rcy-timeline-now:hover,
	.is-style-rcy-feature:hover,
	.is-style-rcy-feature-card:hover {
		translate: 0 -4px;
		box-shadow: var(--rcy-shadow-lg);
		border-color: rgb(34 197 94 / 45%);
	}

	.is-style-rcy-feature:hover figure.is-style-rcy-icon-square,
	.is-style-rcy-feature-card:hover figure.is-style-rcy-icon-square {
		background: var(--wp--preset--color--primary);
		scale: 1.08;
	}

	.is-style-rcy-feature:hover figure.is-style-rcy-icon-square img,
	.is-style-rcy-feature-card:hover figure.is-style-rcy-icon-square img {
		filter: brightness(0) invert(1);
	}

	.is-style-rcy-feature-card:hover figure.is-style-rcy-icon-dark {
		background: var(--wp--preset--color--primary);
		scale: 1.08;
	}

	.is-style-rcy-photo-card:hover .rcy-photo-card__photo img,
	.is-style-rcy-media-badges:hover .rcy-media-badges__photo img {
		scale: 1.04;
	}
}

figure.wp-block-image.is-style-rcy-icon-dark {
	transition: background-color 0.3s var(--rcy-ease), scale 0.3s var(--rcy-ease);
}
