/**
 * Editor components: styles behind the block styles and patterns registered in
 * includes/blocks.php. Loaded on the front end and in the editor.
 *
 * Rules key off is-style-bbmri-* classes only (never page IDs), so any page can
 * use them. Colours read the Global Styles palette first, so changing a palette
 * colour in Appearance > Editor > Styles updates these components too; colours
 * an editor picks on a block (has-*-color classes) still win.
 *
 * Contents
 *   1. Jump links        (core/paragraph  "Jump links")
 *   2. Team grid         (core/group      "Team grid")
 *   3. Portrait image    (core/image      "Portrait")
 *   4. Card              (core/group      "Card")
 *   5. Link tiles        (core/group      "Link tiles")
 *   6. Feature           (core/media-text "Feature")
 *   7. Embeds
 */

/* ---------------------------------------------------------------------------
 * 1. Jump links: a paragraph of in-page links shown as a row of pills.
 * ------------------------------------------------------------------------- */
.is-style-bbmri-jump-nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bb-space-1);
	margin-block-end: var(--bb-space-4);
	font-size: var(--bb-text-sm);
}

.is-style-bbmri-jump-nav a {
	display: inline-block;
	padding: 0.4rem 1rem;
	border: 1px solid var(--bb-line);
	border-radius: var(--bb-radius-pill);
	background: var(--wp--preset--color--base, var(--bb-surface));
	color: var(--wp--preset--color--accent-3, var(--bb-navy));
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--bb-dur) var(--bb-ease), border-color var(--bb-dur) var(--bb-ease);
}

.is-style-bbmri-jump-nav a:hover,
.is-style-bbmri-jump-nav a:focus-visible {
	border-color: var(--wp--preset--color--accent-3, var(--bb-navy));
	background: var(--bb-navy-tint);
}

/* ---------------------------------------------------------------------------
 * 2. Team grid: a grid group whose children are person cards
 *    (image, name heading, role, email). Column width is set on the block
 *    (Layout > Minimum column width), so editors can change it.
 * ------------------------------------------------------------------------- */
.is-style-bbmri-team-grid {
	row-gap: var(--bb-space-5);
	margin-block: var(--bb-space-3) var(--bb-space-5);
}

.is-style-bbmri-team-grid > .wp-block-group {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 0;
}

.is-style-bbmri-team-grid > .wp-block-group > * {
	margin: 0;
}

.is-style-bbmri-team-grid > .wp-block-group > .wp-block-image {
	margin-block-end: var(--bb-space-2);
}

.is-style-bbmri-team-grid .wp-block-heading {
	font-family: var(--bb-font-text);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
}

.is-style-bbmri-team-grid .wp-block-heading:not(.has-text-color) {
	color: var(--wp--preset--color--accent-2, var(--bb-orange));
}

.is-style-bbmri-team-grid .wp-block-group > p {
	font-size: var(--bb-text-sm);
	line-height: 1.45;
}

.is-style-bbmri-team-grid .wp-block-group > p a[href^="mailto:"] {
	font-weight: 600;
	overflow-wrap: anywhere;
}

/* ---------------------------------------------------------------------------
 * 3. Portrait image: 3:4 crop that fills its column, whatever the upload's
 *    size. Replacing the image keeps the crop.
 * ------------------------------------------------------------------------- */
.wp-block-image.is-style-bbmri-portrait {
	margin: 0;
}

.wp-block-image.is-style-bbmri-portrait img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: var(--bb-radius);
	background: var(--bb-surface-alt);
}

/* ---------------------------------------------------------------------------
 * 4. Card: a framed box for any content (download cards, contacts, ...).
 * ------------------------------------------------------------------------- */
.wp-block-group.is-style-bbmri-card {
	display: flex;
	flex-direction: column;
	gap: var(--bb-space-2);
	padding: var(--bb-space-3);
	border: 1px solid var(--bb-line);
	border-radius: var(--bb-radius);
	background: var(--wp--preset--color--base, var(--bb-surface));
	box-shadow: var(--bb-shadow-sm);
}

.wp-block-group.is-style-bbmri-card > * {
	margin: 0;
}

.wp-block-group.is-style-bbmri-card > .wp-block-buttons {
	margin-top: auto;
}

.wp-block-group.is-style-bbmri-card .wp-block-image img {
	width: 100%;
	height: auto;
}

/* ---------------------------------------------------------------------------
 * 5. Link tiles: a grid group whose children are small cards. The first link
 *    in a tile's heading makes the whole tile clickable.
 * ------------------------------------------------------------------------- */
.is-style-bbmri-tile-grid {
	margin-block: var(--bb-space-3) var(--bb-space-5);
}

.is-style-bbmri-tile-grid > .wp-block-group {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--bb-space-1);
	min-width: 0;
	padding: var(--bb-space-4) var(--bb-space-3) var(--bb-space-3);
	border: 1px solid var(--bb-line);
	border-top: 4px solid var(--wp--preset--color--accent-2, var(--bb-orange));
	border-radius: var(--bb-radius-sm);
	background: var(--wp--preset--color--base, var(--bb-surface));
	transition: transform var(--bb-dur) var(--bb-ease), box-shadow var(--bb-dur) var(--bb-ease);
}

.is-style-bbmri-tile-grid > .wp-block-group > * {
	margin: 0;
}

.is-style-bbmri-tile-grid > .wp-block-group:hover,
.is-style-bbmri-tile-grid > .wp-block-group:focus-within {
	transform: translateY(-3px);
	box-shadow: var(--bb-shadow);
}

.is-style-bbmri-tile-grid .wp-block-heading {
	font-size: var(--bb-h3);
	line-height: 1.2;
}

.is-style-bbmri-tile-grid .wp-block-heading a {
	color: inherit;
	text-decoration: none;
}

.is-style-bbmri-tile-grid .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.is-style-bbmri-tile-grid > .wp-block-group > p {
	color: var(--bb-muted);
	font-size: var(--bb-text-sm);
	line-height: 1.5;
}

/* The editor must still let people click into the heading text. */
.editor-styles-wrapper .is-style-bbmri-tile-grid .wp-block-heading a::after {
	content: none;
}

/* ---------------------------------------------------------------------------
 * 6. Feature: image and text side by side, image rounded.
 * ------------------------------------------------------------------------- */
.wp-block-media-text.is-style-bbmri-feature {
	gap: var(--bb-space-4);
	margin-block: var(--bb-space-4);
}

.wp-block-media-text.is-style-bbmri-feature .wp-block-media-text__media img {
	border-radius: var(--bb-radius);
}

.wp-block-media-text.is-style-bbmri-feature .wp-block-media-text__content {
	padding: 0;
}

@media (max-width: 600px) {
	.wp-block-media-text.is-style-bbmri-feature.is-stacked-on-mobile .wp-block-media-text__content {
		padding-top: var(--bb-space-2);
	}
}

/* ---------------------------------------------------------------------------
 * 7. Embeds: Flourish maps/charts pasted into a Custom HTML block.
 * ------------------------------------------------------------------------- */
.flourish-embed {
	max-width: 1100px;
	margin-inline: auto;
}
