/* Generated from src/blocks/group by scripts/build-theme.mjs — do not edit. */
/*
 * core/group — block styles.
 *
 * Card (Figma: Custom Blocks: Cards 15896:15208): white card, 1px dark grey border, 10px
 * corners, soft shadow. Put an Image first, then a Subtext paragraph, a heading with a link
 * and body text. The heading link stretches over the whole card. Hover: 1.5px orange
 * border, shadow 10% → 24%, the heading arrow slides right.
 */

.wp-block-group.is-style-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--black);
	box-shadow:
		inset 0 0 0 1px var(--wp--preset--color--dark-grey),
		0 4px 20px rgb(0 0 0 / 0.1);
	transition: box-shadow var(--wp--custom--transition);
	--acc-accent: var(--wp--preset--color--orange);
	--acc-fg: var(--wp--preset--color--black);
	--acc-focus: var(--wp--preset--color--black);
}

.wp-block-group.is-style-card:has(a:hover),
.wp-block-group.is-style-card:hover:has(.wp-block-heading a) {
	box-shadow:
		inset 0 0 0 var(--wp--custom--border--default) var(--wp--preset--color--orange),
		0 4px 20px rgb(0 0 0 / 0.24);
}

.wp-block-group.is-style-card > .wp-block-image:first-child {
	margin: 0;
}

.wp-block-group.is-style-card > .wp-block-image:first-child img {
	width: 100%;
	aspect-ratio: 2000 / 1437;
	object-fit: cover;
	border-radius: 0;
	box-shadow: none;
}

.wp-block-group.is-style-card > :not(.wp-block-image) {
	margin: 0;
	padding-inline: 20px;
}

.wp-block-group.is-style-card > .wp-block-image + * {
	padding-top: 20px;
}

.wp-block-group.is-style-card > * + :not(.wp-block-image) {
	margin-top: 10px;
}

.wp-block-group.is-style-card > :last-child {
	padding-bottom: 24px;
}

.wp-block-group.is-style-card > .has-subtext-small-font-size + .wp-block-heading {
	margin-top: 12px;
}

.wp-block-group.is-style-card .wp-block-heading {
	font-size: var(--wp--preset--font-size--h-5);
	font-weight: 500;
}

.wp-block-group.is-style-card .wp-block-heading a {
	text-decoration: none;
}

/* Trailing arrow on linked headings, and the whole card as the click target. */
.wp-block-group.is-style-card .wp-block-heading a::after {
	content: "";
	display: inline-block;
	width: 0.7em;
	height: 0.6em;
	margin-left: 0.3em;
	background: var(--wp--preset--color--orange);
	mask: url(../../icons/arrow.svg) center / contain no-repeat;
	transition: transform var(--wp--custom--transition);
}

.wp-block-group.is-style-card:hover .wp-block-heading a::after {
	transform: translateX(6px);
}

.wp-block-group.is-style-card .wp-block-heading a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.wp-block-group.is-style-card .wp-block-heading a:focus-visible {
	outline: none;
}

.wp-block-group.is-style-card:has(.wp-block-heading a:focus-visible) {
	outline: var(--wp--custom--focus--width) solid var(--acc-focus);
	outline-offset: var(--wp--custom--focus--offset);
}

/* Card, row layout (Image List): image on the left, text on the right; stacks on SM. */
@media (min-width: 700px) {

	.wp-block-group.is-style-card.acc-card--row {
		display: grid;
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
		grid-auto-rows: min-content;
		column-gap: 30px;
		padding: 20px;
		align-content: center;
	}

	.wp-block-group.is-style-card.acc-card--row > .wp-block-image:first-child {
		grid-row: 1 / span 10;
	}

	.wp-block-group.is-style-card.acc-card--row > .wp-block-image:first-child img {
		height: 100%;
		border-radius: var(--wp--custom--radius--image);
	}

	.wp-block-group.is-style-card.acc-card--row > :not(.wp-block-image) {
		padding-inline: 0;
	}

	.wp-block-group.is-style-card.acc-card--row > :last-child {
		padding-bottom: 0;
	}

	.wp-block-group.is-style-card.acc-card--row > .wp-block-image + * {
		padding-top: 0;
	}
}

/*
 * Carousel (Figma: Media Carousel 15896:15583, Quote Carousel 15896:15658, Program Carousel
 * 21852:42842, Vertical Media Carousel 15896:16039). Each child block is a slide; slides
 * scroll-snap and peek past the right edge. theme.js adds the controls: a progress line
 * (yellow on dark) and round arrows. Without JS it is a swipeable row.
 * Slide width: default ~ full; add class acc-carousel--thirds or --halves for smaller slides.
 */
.wp-block-group.is-style-carousel {
	--acc-slide: 100%;
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: var(--wp--preset--spacing--30);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.wp-block-group.is-style-carousel::-webkit-scrollbar {
	display: none;
}

.wp-block-group.is-style-carousel > * {
	flex: 0 0 var(--acc-slide);
	margin: 0 !important;
	scroll-snap-align: start;
}

.wp-block-group.is-style-carousel.acc-carousel--halves {
	--acc-slide: calc((100% - var(--wp--preset--spacing--30)) / 2);
}

.wp-block-group.is-style-carousel.acc-carousel--thirds {
	--acc-slide: calc((100% - 2 * var(--wp--preset--spacing--30)) / 3);
}

@media (max-width: 781px) {

	.wp-block-group.is-style-carousel.acc-carousel--halves,
	.wp-block-group.is-style-carousel.acc-carousel--thirds {
		--acc-slide: 80%;
	}
}

/* Full-bleed: slides start on the wide grid and run off the right edge. */
.wp-block-group.is-style-carousel.alignfull {
	padding-inline: max(var(--wp--custom--gutter), calc((100% - var(--wp--style--global--wide-size)) / 2));
	scroll-padding-inline: max(var(--wp--custom--gutter), calc((100% - var(--wp--style--global--wide-size)) / 2));
}

.wp-block-group.is-style-carousel.alignfull.acc-carousel--peek {
	--acc-slide: min(100%, var(--wp--style--global--wide-size));
}

.acc-carousel__controls {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: var(--wp--preset--spacing--30);
}

.alignfull + .acc-carousel__controls {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto !important;
}

.acc-carousel__progress {
	position: relative;
	flex: 1;
	height: 1px;
	background: var(--acc-fg-muted);
}

.acc-carousel__progress span {
	position: absolute;
	top: -1px;
	left: 0;
	height: 3px;
	width: 0;
	background: var(--acc-accent);
	transition: width var(--wp--custom--transition), left var(--wp--custom--transition);
}

.acc-carousel__controls .acc-arrow {
	background: transparent;
}

/* Contact card (Intro + Contact, Contact Cards): name, title, rule, phone and email links. */
.wp-block-group.is-style-card.acc-contact-card {
	padding: 20px 24px;
	gap: 0;
}

.wp-block-group.is-style-card.acc-contact-card > * {
	padding: 0 !important;
	margin: 0;
}

.acc-contact-card > .has-subtext-small-font-size + p {
	margin-top: 6px !important;
}

.acc-contact-card .wp-block-separator {
	margin-block: 20px !important;
}

.acc-contact-card p + p a {
	margin-top: 10px;
}

.acc-contact-card a {
	display: inline-block;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 6px !important;
}
