/**
 * Block styles
 * Styles that apply to blocks in both editor and front-end contexts
 *
 * @package Suite
 * @author  Townhouse
 * @since 1.0.0
 */

/* Fonts
--------------------------------------------- */



/* Alignment
--------------------------------------------- */

.full-width-content .entry-content>.alignfull,
.block-editor-block-list__layout.is-root-container>[data-align="full"],
.full-width-content .entry-content>.alignwide {
	border-radius: 0;
	margin-left: calc(-100vw / 2 + 100% / 2);
	margin-right: calc(-100vw / 2 + 100% / 2);
	max-width: 100vw;
	width: auto;
}

.content-sidebar .site-container .alignfull,
.sidebar-content .site-container .alignfull {
	margin: 0 0 30px;
	width: 100%;
}

.site-footer .block-area-footer .alignfull {
    margin: 0;
}

.wp-block-image.aligncenter {
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 1240px) {

	.full-width-content .entry-content>.alignwide {
		border-radius: var(--wp--preset--border-radius--none);
		margin-left: calc((100% - var(--wp--style--global--wide-size)) / 2);
		margin-right: calc((100% - var(--wp--style--global--wide-size)) / 2);
		max-width: var(--wp--style--global--wide-size);
		width: auto;
	}

}

/* Block Styles
--------------------------------------------- */

.is-style-border {
	border: 1px solid var(--wp--preset--color--borderline);
}

.is-style-boxshadow {
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
}

.is-style-boxshadow-border {
	border: 1px solid var(--wp--preset--color--borderline);
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
}

.is-style-frame img {
	border: 2px solid var(--wp--preset--color--base);
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
}

.is-style-kicker {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xxxx-small);
	font-weight: var(--wp--custom--font-weight--bold);
	letter-spacing: 0.075em;
	line-height: var(--wp--custom--line-height--body);
	margin-bottom: var(--wp--preset--spacing--xx-small);
	text-transform: uppercase;
}

.is-style-kicker.has-background {
    display: inline-block;
    line-height: 1;
    margin-bottom: var(--wp--preset--spacing--x-small);
    padding: 0.35em 0.65em;
}

p.is-style-no-margin,
.is-style-no-margin,
.wp-block-column.is-style-no-margin,
.wp-block-image.is-style-no-margin {
	margin: 0;
}

ol.is-style-no-margin,
ul.is-style-no-margin,
.is-style-no-margin ul,
.wp-block-query.is-style-no-margin ul {
	margin-bottom: 0;
}

/* Border Radius Presets
--------------------------------------------- */

:root {
	--wp--preset--border-radius--none: 0;
	--wp--preset--border-radius--small: 7px;
	--wp--preset--border-radius--medium: 15px;
	--wp--preset--border-radius--large: 20px;
}

/* Buttons
--------------------------------------------- */

.wp-block-button__link {
	-webkit-appearance: none;
	cursor: pointer;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	white-space: normal;
}

.wp-block-button.has-custom-width .wp-block-button__link {
	box-sizing: border-box;
	width: 100%;
}

/*
 * Flex % widths collapse when the buttons group/column sizes to content
 * (100% works; 25/50/75 do not). Use a 4-column grid instead: each preset
 * spans 1–4 tracks so width is real layout, not a circular percentage.
 */
.wp-block-buttons.is-layout-flex:has(.has-custom-width) {
	display: grid !important;
	gap: 0.625em;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: 100%;
}

.wp-block-buttons:has(.has-custom-width) > .wp-block-button.has-custom-width {
	box-sizing: border-box;
	max-width: none;
	min-width: 0;
	width: auto;
}

.wp-block-buttons:has(.has-custom-width) > .wp-block-button.wp-block-button__width-25 {
	grid-column: span 1;
}

.wp-block-buttons:has(.has-custom-width) > .wp-block-button.wp-block-button__width-50 {
	grid-column: span 2;
}

.wp-block-buttons:has(.has-custom-width) > .wp-block-button.wp-block-button__width-75 {
	grid-column: span 3;
}

.wp-block-buttons:has(.has-custom-width) > .wp-block-button.wp-block-button__width-100 {
	grid-column: span 4;
}

.wp-block-buttons.is-content-justification-center > .wp-block-button.wp-block-button__width-25:only-child {
	grid-column: 2 / span 1;
}

.wp-block-buttons.is-content-justification-center > .wp-block-button.wp-block-button__width-50:only-child {
	grid-column: 2 / span 2;
}

.wp-block-buttons.is-content-justification-center > .wp-block-button.wp-block-button__width-75:only-child {
	grid-column: 1 / span 3;
}

.wp-block-button__link:focus,
.wp-block-button__link:hover {
	opacity: 0.8;
	text-decoration: none;
}

/* Caption
--------------------------------------------- */

figcaption,
.gallery-caption,
.wp-caption-text,
.wp-block-gallery.has-nested-images figcaption,
.blocks-gallery-caption {
	text-align: center;
}

/* Columns
--------------------------------------------- */

.wp-block-columns .wp-block-column.has-background {
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.8);
}

.wp-block-columns.alignfull {
	padding: 0 20px;
}

/* .wp-block-columns {
	gap: 30px 20px !important;
} */

.wp-block-columns.is-style-column-gapless {
	gap: 0 !important;
}

.wp-block-columns.is-style-column-gap-10 {
	gap: 10px !important;
}

.wp-block-columns.is-style-column-gap-20 {
	gap: 20px !important;
}

.wp-block-columns.is-style-column-gap-30 {
	gap: 30px !important;
}

.wp-block-columns.is-style-column-gap-40 {
	gap: 30px 40px !important;
}

.wp-block-columns.is-style-column-gap-50 {
	gap: 30px 50px !important;
}

.wp-block-columns.is-style-column-gap-60 {
	gap: 30px 60px !important;
}

.wp-block-columns.is-style-column-gap-70 {
	gap: 30px 70px !important;
}

.wp-block-columns.is-style-column-gap-80 {
	gap: 30px 80px !important;
}

@media (min-width: 600px) and (max-width: 780px) {

	.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:only-child) {
		flex-basis: unset !important;
	}

	.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column:nth-child(2n) {
		margin-left: 0;
	}

}

@media (min-width: 360px) and (max-width: 780px) {

    .wp-block-query:not(.is-style-featured-post) .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid,
	.wp-block-query:not(.is-style-featured-2-column) .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid {
        grid-template-columns: 1fr 1fr;
    }

}

@media (min-width: 781px) and (max-width: 1023px) {

    .sidebar .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid {
       grid-template-columns: 1fr 1fr;
    }

}

/* Cover
---------------------------------------------*/

.wp-block-cover {
	padding-right: 10px;
	padding-left: 10px;
}

@media (min-width: 360px) {

	.wp-block-cover {
		padding-right: 20px;
		padding-left: 20px;
	}

}

/* Divider Style
--------------------------------------------- */

.wp-block-heading.is-style-divider,
p.is-style-divider {
	align-items: center;
	display: flex;
	gap: var(--wp--preset--spacing--xx-small);
}

.wp-block-heading.is-style-divider::before,
.wp-block-heading.is-style-divider::after,
p.is-style-divider::before,
p.is-style-divider::after {
	border-top: 1px solid var(--wp--preset--color--borderline);
	content: "";
	flex: 1 1 auto;
}

.wp-block-heading.is-style-divider::before,
p.is-style-divider::before {
	display: none;
}

.wp-block-heading.is-style-divider.has-text-align-center::before,
p.is-style-divider.has-text-align-center::before {
	display: block;
}

.wp-block-heading.is-style-divider.has-text-align-right::before,
p.is-style-divider.has-text-align-right::before {
	display: block;
}

.wp-block-heading.is-style-divider.has-text-align-right::after,
p.is-style-divider.has-text-align-right::after {
	display: none;
}

.wp-block-buttons.is-style-divider {
	align-items: center;
	gap: var(--wp--preset--spacing--xx-small);
}

.wp-block-buttons.is-style-divider::before,
.wp-block-buttons.is-style-divider::after {
	border-top: 1px solid var(--wp--preset--color--borderline);
	content: "";
	flex: 1 1 auto;
}

.wp-block-buttons.is-style-divider::before {
	display: none;
}

.wp-block-buttons.is-style-divider.is-content-justification-center::before {
	display: block;
}

.wp-block-buttons.is-style-divider.is-content-justification-right::before {
	display: block;
}

.wp-block-buttons.is-style-divider.is-content-justification-right::after {
	display: none;
}

/* Divider + Kicker
--------------------------------------------- */

.wp-block-heading.is-style-divider-kicker,
p.is-style-divider-kicker {
	align-items: center;
	display: flex;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xxxx-small);
	font-weight: var(--wp--custom--font-weight--bold);
	gap: var(--wp--preset--spacing--xx-small);
	letter-spacing: 0.075em;
	line-height: var(--wp--custom--line-height--body);
	margin-bottom: var(--wp--preset--spacing--xx-small);
	text-transform: uppercase;
}

.wp-block-heading.is-style-divider-kicker::before,
.wp-block-heading.is-style-divider-kicker::after,
p.is-style-divider-kicker::before,
p.is-style-divider-kicker::after {
	border-top: 1px solid var(--wp--preset--color--borderline);
	content: "";
	flex: 1 1 auto;
}

.wp-block-heading.is-style-divider-kicker::before,
p.is-style-divider-kicker::before {
	display: none;
}

.wp-block-heading.is-style-divider-kicker.has-text-align-center::before,
p.is-style-divider-kicker.has-text-align-center::before {
	display: block;
}

.wp-block-heading.is-style-divider-kicker.has-text-align-right::before,
p.is-style-divider-kicker.has-text-align-right::before {
	display: block;
}

.wp-block-heading.is-style-divider-kicker.has-text-align-right::after,
p.is-style-divider-kicker.has-text-align-right::after {
	display: none;
}

/* Images & Galleries
--------------------------------------------- */

.wp-block-image.is-style-rounded img {
    border-radius: 9999px;
}

.wp-block-image img {
	border-radius: var(--wp--preset--border-radius--medium);
    height: auto;
}

/* Override core aligncenter display:table so sub-content-width images stretch (singles only) */
.single .entry-content .wp-block-image:not(.alignleft):not(.alignright):not(.alignwide):not(.alignfull),
.single .entry-content .wp-block-image.aligncenter {
	display: block;
	max-width: 100%;
	width: 100%;
}

.single .entry-content .wp-block-image:not(.alignleft):not(.alignright):not(.alignwide):not(.alignfull) img,
.single .entry-content .wp-block-image.aligncenter img {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

.wp-block-image.is-style-boxshadow {
	box-shadow: none;
	padding: 0;
}

.wp-block-image.is-style-boxshadow img {
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
}

.wp-block-gallery {
    --wp--style--unstable-gallery-gap: var(--wp--preset--spacing--xx-small) !important;
    gap: var(--wp--preset--spacing--xx-small) !important;
}

/* Embeds
--------------------------------------------- */

.wp-block-embed.is-type-video .wp-block-embed__wrapper {
	border-radius: var(--wp--preset--border-radius--medium);
	overflow: hidden;
}

.wp-block-embed.is-style-frame .wp-block-embed__wrapper {
	border: 2px solid var(--wp--preset--color--base);
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
}

/* Links
--------------------------------------------- */

/* Dark palette backgrounds → light text unless a text color is set */
:is(
	.has-contrast-background-color,
	.has-contrast-muted-background-color,
	.has-brand-background-color,
	.has-brand-light-background-color,
	.has-hyperlink-background-color,
	.has-hyperlink-dark-background-color,
	.has-accent-background-color,
	.has-accent-light-background-color
):not(.has-text-color) {
	color: var(--wp--preset--color--base);
}

.has-contrast-background-color a {
	color: var(--wp--preset--color--base);
}

.has-contrast-background-color a:focus-visible {
	outline-color: var(--wp--preset--color--base);
}

.is-style-no-link-underline a {
	text-decoration: none;
}

.is-style-no-link-underline.has-contrast-color a {
	color: var(--wp--preset--color--contrast);
}

.is-style-no-link-underline a:focus,
.is-style-no-link-underline a:hover {
	text-decoration: underline;
}

/* Lists
--------------------------------------------- */

ol li::marker {
	font-weight: var(--wp--custom--font-weight--semi-bold);
}

.has-contrast-background-color ul li::marker {
	color: var(--wp--preset--color--base);
}

ul.is-style-arrows>li,
ul.is-style-checkmarks>li,
ul.is-style-xmarks>li {
	list-style-type: none;
	position: relative;
}

ul.is-style-arrows li::before {
    background-image: url('../icons/arrow-right.svg');
    background-repeat: no-repeat;
    background-size: 15px 8px;
    content: ' ';
    height: 8px;
    left: -25px;
    position: absolute;
    top: 0.4em;
    width: 15px;
}

ul.is-style-checkmarks li::before {
    background-image: url('../icons/checkmark.svg');
    background-repeat: no-repeat;
    background-size: 12px 12px;
    content: ' ';
    height: 12px;
    left: -22px;
    position: absolute;
    top: 0.3em;
    width: 12px;
}

ul.is-style-xmarks li::before {
    background-image: url('../icons/xmark.svg');
    background-repeat: no-repeat;
    background-size: 9px 9px;
    content: ' ';
    height: 9px;
    left: -20px;
    position: absolute;
    top: 0.35em;
    width: 9px;
}

ul.is-style-no-markers li {
	list-style-type: none;
}

ul.is-style-link-list-column,
ul.is-style-link-list-column-centered {
	display: flex;
	flex-direction: column;
	font-weight: var(--wp--custom--font-weight--medium);
	gap: 0.5em 1em;
	list-style-type: none;
	padding: 0;
}

ul.is-style-link-list-column-centered {
	align-items: center;
}

ul.is-style-link-list-row,
ul.is-style-link-list-row-centered {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	font-weight: var(--wp--custom--font-weight--medium);
	gap: 0.5em 1em;
	list-style-type: none;
	padding: 0;
}

ul.is-style-link-list-column a,
ul.is-style-link-list-row a,
ul.is-style-link-list-row-centered a,
ul.is-style-link-list-column-centered a {
	text-decoration: none !important;
}

ul.is-style-link-list-row-centered {
	justify-content: center;
}

ul.is-style-link-list-column li,
ul.is-style-link-list-row li,
ul.is-style-link-list-row-centered li,
ul.is-style-link-list-column-centered li {
	list-style-type: none;
}

/* Media & Text
--------------------------------------------- */

/*
 * Background lives on __content only — block-level bg bleeds through image
 * corner anti-aliasing. Side-by-side (601px+) stretches columns and centers
 * the text group; stacked (mobile + sidebar) hugs content with equal padding.
 */
.wp-block-media-text.has-background,
.wp-block-media-text.has-background[class*="background-color"] {
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	margin-bottom: 30px;
	overflow: visible;
}

.wp-block-media-text.has-background > .wp-block-media-text__media {
	line-height: 0;
	overflow: hidden;
}

.wp-block-media-text.has-background > .wp-block-media-text__media img {
	border-radius: 0;
	display: block;
	height: auto;
	vertical-align: top;
	width: 100%;
}

.wp-block-media-text:is(.is-image-fill, .is-image-fill-element).has-background > .wp-block-media-text__media img {
	height: 100%;
	object-fit: cover;
}

.wp-block-media-text.has-background.has-base-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--base);
}

.wp-block-media-text.has-background.has-contrast-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--contrast);
}

/* Default buttons to accent on contrast Media & Text; skip if a button bg is set */
.wp-block-media-text.has-background.has-contrast-background-color .wp-block-button__link:not(.has-background) {
	background-color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}

.wp-block-media-text.has-background.has-contrast-background-color .wp-block-button__link:not(.has-background):focus,
.wp-block-media-text.has-background.has-contrast-background-color .wp-block-button__link:not(.has-background):hover {
	background-color: var(--wp--preset--color--accent-light);
	border-color: var(--wp--preset--color--accent-light);
	color: var(--wp--preset--color--base);
}

.wp-block-media-text.has-background.has-contrast-muted-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--contrast-muted);
}

.wp-block-media-text.has-background.has-neutral-warm-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--neutral-warm);
}

.wp-block-media-text.has-background.has-neutral-warm-medium-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--neutral-warm-medium);
}

.wp-block-media-text.has-background.has-neutral-cool-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--neutral-cool);
}

.wp-block-media-text.has-background.has-neutral-cool-medium-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--neutral-cool-medium);
}

.wp-block-media-text.has-background.has-borderline-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--borderline);
}

.wp-block-media-text.has-background.has-hyperlink-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--hyperlink);
}

.wp-block-media-text.has-background.has-brand-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--brand);
}

.wp-block-media-text.has-background.has-brand-light-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--brand-light);
}

.wp-block-media-text.has-background.has-accent-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--accent);
}

.wp-block-media-text.has-background.has-accent-light-background-color > .wp-block-media-text__content {
	background-color: var(--wp--preset--color--accent-light);
}

.wp-block-media-text > .wp-block-media-text__content {
	padding: 25px 0 0;
}

.wp-block-media-text.has-background > .wp-block-media-text__content {
	padding: 25px 20px;
}

/* Stacked — image top corners, content bottom corners. */
@media (max-width: 600px) {

	.wp-block-media-text.has-background > .wp-block-media-text__media {
		border-radius: var(--wp--preset--border-radius--medium) var(--wp--preset--border-radius--medium) 0 0;
	}

	.wp-block-media-text.has-background > .wp-block-media-text__content {
		border-radius: 0 0 var(--wp--preset--border-radius--medium) var(--wp--preset--border-radius--medium);
	}

}

@media (min-width: 415px) {

	.wp-block-media-text.has-background > .wp-block-media-text__content {
		padding: 25px;
	}

}

@media (min-width: 601px) {

	.wp-block-media-text > .wp-block-media-text__content {
		padding: 25px 8% 0;
	}

	.wp-block-media-text.has-background > .wp-block-media-text__content {
		padding: 25px 8%;
	}

	/* Equal-height panels; text column fills remaining width (core uses `N% auto`). */
	.wp-block-media-text.has-background {
		align-items: stretch;
		width: 100%;
	}

	.wp-block-media-text.has-background:not(.has-media-on-the-right) {
		grid-template-columns: 50% 1fr !important;
	}

	.wp-block-media-text.has-background.has-media-on-the-right {
		grid-template-columns: 1fr 50% !important;
	}

	.wp-block-media-text.has-background > .wp-block-media-text__media {
		align-self: stretch;
	}

	/* Crop off — keep natural image height, center in the equal-height cell. */
	.wp-block-media-text.has-background:not(.is-image-fill, .is-image-fill-element) > .wp-block-media-text__media {
		align-items: center;
		display: flex;
	}

	.wp-block-media-text.has-background > .wp-block-media-text__content {
		align-self: stretch;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.wp-block-media-text.has-background.is-vertically-aligned-top > .wp-block-media-text__content {
		justify-content: flex-start;
	}

	.wp-block-media-text.has-background.is-vertically-aligned-bottom > .wp-block-media-text__content {
		justify-content: flex-end;
	}

	/* Crop on — image must fill the full media column height.
	 * WP 6.7+ uses `is-image-fill-element`; older markup keeps `is-image-fill`. */
	.wp-block-media-text:is(.is-image-fill, .is-image-fill-element).has-background > .wp-block-media-text__media {
		height: 100%;
		min-height: 100%;
		position: relative;
	}

	.wp-block-media-text:is(.is-image-fill, .is-image-fill-element).has-background > .wp-block-media-text__media img {
		height: 100%;
		left: 0;
		max-height: none;
		max-width: none;
		object-fit: cover;
		position: absolute;
		top: 0;
		width: 100%;
	}

	.wp-block-media-text.has-background:not(.has-media-on-the-right) > .wp-block-media-text__media {
		border-radius: var(--wp--preset--border-radius--medium) 0 0 var(--wp--preset--border-radius--medium);
	}

	.wp-block-media-text.has-background:not(.has-media-on-the-right) > .wp-block-media-text__content {
		border-radius: 0 var(--wp--preset--border-radius--medium) var(--wp--preset--border-radius--medium) 0;
	}

	.wp-block-media-text.has-background.has-media-on-the-right > .wp-block-media-text__media {
		border-radius: 0 var(--wp--preset--border-radius--medium) var(--wp--preset--border-radius--medium) 0;
	}

	.wp-block-media-text.has-background.has-media-on-the-right > .wp-block-media-text__content {
		border-radius: var(--wp--preset--border-radius--medium) 0 0 var(--wp--preset--border-radius--medium);
	}

}

@media (min-width: 1024px) {

	/* Sidebar is ~300px — stay stacked; WP uses viewport width, not container. */
	.sidebar .wp-block-media-text,
	.sidebar .wp-block-media-text.is-stacked-on-mobile,
	.sidebar .wp-block-media-text.has-media-on-the-right {
		align-items: stretch;
		grid-template-columns: 100% !important;
	}

	.sidebar .wp-block-media-text .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
	}

	.sidebar .wp-block-media-text .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
	}

	/* Reset side-by-side flex stretch so stacked content hugs + equal padding. */
	.sidebar .wp-block-media-text.has-background > .wp-block-media-text__media {
		border-radius: var(--wp--preset--border-radius--medium) var(--wp--preset--border-radius--medium) 0 0;
		display: block;
	}

	.sidebar .wp-block-media-text.has-background > .wp-block-media-text__content {
		border-radius: 0 0 var(--wp--preset--border-radius--medium) var(--wp--preset--border-radius--medium);
		display: block;
		height: auto;
		justify-content: flex-start;
		min-height: 0;
		padding: 25px 15px;
	}

	.sidebar .wp-block-media-text:not(.has-background) > .wp-block-media-text__content {
		padding: 25px 20px 0;
	}

	.sidebar .wp-block-media-text.has-background > .wp-block-media-text__media img {
		height: auto;
		object-fit: unset;
	}

}

/* Navigation
--------------------------------------------- */

.wp-block-navigation ul {
	gap: 12px 24px;
}

/* Objects
--------------------------------------------- */

mark {
	background-color: var(--wp--preset--color--borderline);
	color: var(--wp--preset--color--contrast);
}

/* Paragraphs & Groups
--------------------------------------------- */

.wp-block-group.alignfull {
	padding-left: 10px;
	padding-right: 10px;
}

p.is-style-border,
p.is-style-boxshadow,
p.is-style-boxshadow-border,
p.has-background,
.wp-block-group.has-background:not(.alignfull, .alignwide),
.wp-block-group:is(.is-style-background, .is-style-border, .is-style-boxshadow, .is-style-boxshadow-border):not(.alignfull, .alignwide) {
	border-radius: var(--wp--preset--border-radius--medium);
	margin-bottom: var(--wp--preset--spacing--medium-larger);
	padding: var(--wp--preset--spacing--small);
}

/* Card style default fills; sidebar color (has-background) still wins */
.wp-block-group.is-style-background:not(.alignfull, .alignwide):not(.has-background) {
	background-color: var(--wp--preset--color--neutral-cool);
}

.wp-block-group.is-style-boxshadow:not(.alignfull, .alignwide):not(.has-background) {
	background-color: var(--wp--preset--color--base);
}

.wp-block-group:is(.is-style-border, .is-style-boxshadow-border):not(.alignfull, .alignwide):not(.has-background) {
	background-color: var(--wp--preset--color--neutral-warm);
}

.single .wp-block-group,
.post-type-post .wp-block-group {
	margin-bottom: var(--wp--preset--spacing--medium-larger);
}

.wp-block-column>*:last-child,
.wp-block-group.has-background>*:last-child,
.wp-block-group:is(.is-style-background, .is-style-border, .is-style-boxshadow, .is-style-boxshadow-border)>*:last-child,
.wp-block-media-text.has-background > .wp-block-media-text__content > *:last-child {
	margin-bottom: 0;
	margin-block-end: 0;
}

/* Dashed call-outs with a visible border color (not old-theme white "background"). */
.wp-block-group[class*="is-style-call-out"][style*="dashed"].has-border-color:not(.has-background-border-color) {
	background-color: var(--wp--preset--color--neutral-warm);
	border: 1px solid var(--wp--preset--color--borderline) !important;
	border-radius: var(--wp--preset--border-radius--medium);
	border-style: solid !important;
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
	margin-bottom: var(--wp--preset--spacing--medium-larger);
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
}

.wp-block-group[class*="is-style-call-out"][style*="dashed"].has-border-color:not(.has-background-border-color) > *:last-child {
	margin-bottom: 0;
	margin-block-end: 0;
}

/* FAQ call-outs with old-theme primary border — light fill only, no border. */
.wp-block-group.is-style-call-out-faq.has-primary-border-color {
	background-color: var(--wp--preset--color--neutral-cool);
	border: 0 !important;
	border-radius: var(--wp--preset--border-radius--medium);
	box-shadow: none;
	margin-bottom: var(--wp--preset--spacing--medium-larger);
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
}

.wp-block-group.is-style-call-out-faq.has-primary-border-color > *:last-child {
	margin-bottom: 0;
	margin-block-end: 0;
}

/* Note call-outs — warm card; override inline border color/radius + quaternary bg. */
.wp-block-group.is-style-call-out-note {
	background-color: var(--wp--preset--color--neutral-warm) !important;
	border: 1px solid var(--wp--preset--color--borderline) !important;
	border-radius: var(--wp--preset--border-radius--medium) !important;
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
	margin-bottom: var(--wp--preset--spacing--medium-larger);
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
}

.wp-block-group.is-style-call-out-note > *:last-child {
	margin-bottom: 0;
	margin-block-end: 0;
}

/* Legacy bordered quaternary groups (no call-out style) — same card as note. */
.wp-block-group.has-quaternary-background-color.has-border-color:not([class*="is-style-call-out"]) {
	background-color: var(--wp--preset--color--neutral-warm) !important;
	border: 1px solid var(--wp--preset--color--borderline) !important;
	border-radius: var(--wp--preset--border-radius--medium) !important;
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
	margin-bottom: var(--wp--preset--spacing--medium-larger);
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
}

.wp-block-group.has-quaternary-background-color.has-border-color:not([class*="is-style-call-out"]) > *:last-child {
	margin-bottom: 0;
	margin-block-end: 0;
}

p.has-background-color.has-secondary-background-color.has-text-color.has-background.wp-block-paragraph {
	background-color: var(--wp--preset--color--neutral-cool);
}

.has-quaternary-background-color {
	background-color: var(--wp--preset--color--neutral-cool);
}

/* Intro box only for a text paragraph immediately before the hero image */
.single .entry-content > p:has(+ .first-content-image):not(:empty) {
	background-color: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--neutral-warm);
	border-radius: var(--wp--preset--border-radius--medium);
	font-style: italic;
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
	text-align: center;
}

.single .entry-content > p:empty {
	display: none;
}

@media (min-width: 360px) {

	.wp-block-group.alignfull,
	.wp-block-group.alignwide {
		padding-left: 15px;
		padding-right: 15px;
	}

}

@media (min-width: 431px) {

	.wp-block-group.alignfull,
	.wp-block-group.alignwide {
		padding-left: 20px;
		padding-right: 20px;
	}

}

@media (max-width: 781px) {

	.is-style-center-on-mobile * {
		justify-content: center !important;
		align-items: center !important;
		text-align: center !important;
	}

}

@media (min-width: 1240px) {

	p.is-style-border,
	p.is-style-boxshadow,
	p.is-style-boxshadow-border,
	p.has-background,
	.wp-block-group.has-background:not(.alignfull, .alignwide) {
		padding: var(--wp--preset--spacing--small);
		padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
	}

}

/* Query Loop
--------------------------------------------- */

.wp-block-query ul {
	flex-grow: 1;
	margin-bottom: 0;
	padding-left: 0;
}

.wp-block-query ul>li {
	list-style-type: none;
	margin: 0;
}

.wp-block-post-template.is-flex-container,
.wp-block-query-loop.is-flex-container {
	flex-grow: 1;
	gap: 20px 10px;
	justify-content: space-between;
}

.wp-block-query .wp-block-post-featured-image {
	margin-bottom: var(--wp--preset--spacing--xx-small);
}

.wp-block-query .wp-block-post-featured-image img {
	border-radius: var(--wp--preset--border-radius--medium);
}

.wp-block-query .wp-block-post-title {
	font-size: var(--wp--preset--font-size--medium-smaller);
	margin-bottom: 0;
}

.wp-block-query .post-link-wrapper,
.wp-block-query .wp-block-post-title a {
    color: var(--wp--preset--color--contrast);
    text-decoration: none;
}

/* Editor has no post-link-wrapper; match frontend title color on dark groups */
.has-contrast-background-color .wp-block-query .wp-block-post-title,
.has-contrast-background-color .wp-block-query .wp-block-post-title a,
.has-contrast-background-color .wp-block-query .post-link-wrapper {
	color: var(--wp--preset--color--base);
}

.has-contrast-background-color .wp-block-query .post-link-wrapper:hover .wp-block-post-title,
.has-contrast-background-color .wp-block-query .post-link-wrapper:focus .wp-block-post-title,
.has-contrast-background-color .wp-block-query .wp-block-post-title a:hover,
.has-contrast-background-color .wp-block-query .wp-block-post-title a:focus {
	color: var(--wp--preset--color--accent-light);
}

/* Script: Gelato Fresco variable at wght 600 */
.has-script-font-family {
	font-variation-settings: "wght" 600;
}

.wp-block-heading.has-script-font-family,
.has-script-font-family.wp-block-heading,
:is(h1, h2, h3, h4, h5, h6).has-script-font-family {
	font-weight: var(--wp--custom--font-weight--semi-bold);
}

/* Italic words in headings → script accent (sized up to match heading optical size) */
.wp-block-heading em,
:is(h1, h2, h3, h4, h5, h6) em {
	font-family: var(--wp--preset--font-family--script);
	font-size: 1.1em;
	font-style: normal;
	font-variation-settings: "wght" 600;
	font-weight: var(--wp--custom--font-weight--semi-bold);
}

.wp-block-query .post-link-wrapper:focus,
.wp-block-query .post-link-wrapper:hover {
    opacity: 1;
}

.wp-block-query .post-link-wrapper:hover .wp-block-post-title,
.wp-block-query .post-link-wrapper:focus .wp-block-post-title {
    color: var(--wp--preset--color--hyperlink);
    opacity: 1 !important;
}

.wp-block-query .post-link-wrapper .wp-block-post-excerpt__more-text {
    color: inherit;
}

.wp-block-query .post-link-wrapper:hover .wp-block-post-excerpt__more-text,
.wp-block-query .post-link-wrapper:focus .wp-block-post-excerpt__more-text {
    color: var(--wp--preset--color--hyperlink);
    opacity: 1 !important;
	text-decoration: underline;
}

.wp-block-query .post-link-wrapper .wp-block-post-title {
    color: inherit;
    opacity: 1 !important;
}

.wp-block-query .post-link-wrapper .wp-block-post-excerpt__excerpt {
    color: inherit;
    opacity: 1 !important;
}

.wp-block-query.is-style-featured-post .wp-block-post-title,
.wp-block-query.is-style-featured-2-column .wp-block-post-title {
	font-size: var(--wp--preset--font-size--xx-large);
	margin: 0.3em 0;
}

.wp-block-query.is-style-featured-post .wp-block-post-template,
.wp-block-query.is-style-featured-2-column .wp-block-post-template,
.wp-block-query.is-style-featured-post .wp-block-post-template.is-layout-grid,
.wp-block-query.is-style-featured-2-column .wp-block-post-template.is-layout-grid,
.wp-block-query.is-style-featured-post .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid,
.wp-block-query.is-style-featured-2-column .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid {
	grid-template-columns: minmax(0, 1fr) !important;
}

@media (max-width: 767px) {

	.wp-block-query.is-style-featured-post .post-link-wrapper,
	.wp-block-query.is-style-featured-2-column .post-link-wrapper {
		display: block;
	}

}

.wp-block-post-excerpt__excerpt {
	margin-bottom: 15px;
}

.wp-block-post-excerpt__more-text {
	font-size: var(--wp--preset--font-size--x-small);
	margin-bottom: 0;
}

.wp-block-post-excerpt__more-link {
	text-decoration: none;
}

.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li,
.wp-block-query-loop.is-flex-container.is-flex-container.columns-4>li {
	width: calc(50% - 5px);
}

@media (min-width: 360px) {

	.wp-block-post-template.is-flex-container,
	.wp-block-query-loop.is-flex-container {
		gap: 20px 15px;
	}

	.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li,
	.wp-block-query-loop.is-flex-container.is-flex-container.columns-4>li {
		width: calc(50% - 7.5px);
	}

}

@media (min-width: 415px) {

	.wp-block-post-template.is-flex-container,
	.wp-block-query-loop.is-flex-container {
		gap: 20px;
	}

	.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li,
	.wp-block-query-loop.is-flex-container.is-flex-container.columns-4>li {
		width: calc(50% - 10px);
	}

}

@media (min-width: 768px) and (max-width: 1023px) {

	.wp-block-query.is-style-featured-post {
		margin-bottom: calc(var(--wp--preset--spacing--x-large) / 2);
	}

	.wp-block-query.is-style-featured-post .post-link-wrapper {
		align-items: center;
		color: inherit;
		display: grid;
		column-gap: var(--wp--preset--spacing--medium);
		grid-template-columns: 1fr 1fr;
		text-decoration: none;
	}

	.wp-block-query.is-style-featured-post .wp-block-post-featured-image {
		margin-bottom: 0;
	}

	.wp-block-query.is-style-featured-post .wp-block-post-featured-image img {
		display: block;
		height: auto;
		width: 100%;
	}

	.wp-block-query.is-style-featured-post .wp-block-group {
		min-width: 0;
	}

}

@media (min-width: 768px) {

	.wp-block-query.is-style-featured-2-column .post-link-wrapper {
		align-items: center;
		color: inherit;
		display: grid;
		gap: var(--wp--preset--spacing--large);
		grid-template-columns: 1fr 1fr;
		text-decoration: none;
	}

	.wp-block-query.is-style-featured-2-column .wp-block-post-featured-image {
		margin-bottom: 0;
	}

	.wp-block-query.is-style-featured-2-column .wp-block-post-featured-image img {
		display: block;
		height: auto;
		width: 100%;
	}

	.wp-block-query.is-style-featured-2-column .wp-block-group {
		min-width: 0;
	}

	.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li,
	.wp-block-query-loop.is-flex-container.is-flex-container.columns-4>li {
		width: calc(25% - 15px);
	}

}

@media (min-width: 1024px) {

	.wp-block-query.is-style-featured-post .post-link-wrapper {
		display: block;
	}

}

/* Quotes
--------------------------------------------- */

blockquote,
.wp-block-quote {
	border: 0;
	margin: 0 0 25px;
	padding: 15px;
	position: relative;
}

blockquote p {
	font-style: italic;
}

blockquote:not(.is-style-plain) {
    border-left: 4px solid var(--wp--preset--color--borderline);
}

.wp-block-quote.is-style-card {
	background-color: var(--wp--preset--color--base);
	border: 0;
	border-left: 0;
	border-radius: var(--wp--preset--border-radius--medium);
	box-shadow: 0 0 20px rgb(0 0 0 / 7%);
	padding: var(--wp--preset--spacing--small);
	padding-top: calc(var(--wp--preset--spacing--small) * 0.85);
}

@media (min-width: 768px) {

	.wp-block-quote.is-style-card {
		padding: var(--wp--preset--spacing--medium);
		padding-top: calc(var(--wp--preset--spacing--medium) * 0.85);
	}

}

.wp-block-quote p:last-of-type {
	margin-bottom: 0;
}

.wp-block-pullquote blockquote {
	border: 0;
	margin: 0;
}

.wp-block-pullquote blockquote::before {
	background: none;
	content: none;
}

.wp-block-pullquote cite,
.wp-block-quote cite {
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: var(--wp--custom--font-weight--semi-bold);
	margin-top: 10px;
	opacity: 0.8;
	text-align: inherit;
}

.wp-block-quote cite::before {
	content: '—';
}

@media (min-width: 415px) {

	blockquote,
	.wp-block-quote {
		padding: 15px 20px;
	}

}

@media (min-width: 768px) {

	blockquote,
	.wp-block-quote {
		padding: 15px 30px;
	}

}

/* Separator
--------------------------------------------- */

.wp-block-separator {
	border-top: 1px solid;
	opacity: 1;
}

/* Social Icons
--------------------------------------------- */

.wp-block-social-links {
    gap: 0.65em;
}

.wp-block-social-links .wp-social-link svg {
    height: .75em;
    width: .75em;
}

.wp-block-social-links, 
.wp-block-social-links.has-normal-icon-size {
    font-size: 30px;
}

/* Tables
--------------------------------------------- */

table,
.wp-block-table table {
    border-collapse: collapse;
    border-spacing: 0;
    font-size: var(--wp--preset--font-size--x-small);
    margin-bottom: 40px;
    width: 100%;
    word-break: break-all;
}

tbody,
.wp-block-table tbody {
    border-bottom: 1px solid var(--wp--preset--color--borderline);
}

td,
th,
.wp-block-table td,
.wp-block-table th {
    line-height: var(--wp--custom--line-height--medium);
    text-align: left;
    vertical-align: top;
    padding: var(--wp--preset--spacing--xx-small);
}

tr,
.wp-block-table tr {
    border-top: 1px solid var(--wp--preset--color--borderline);
}

th,
.wp-block-table th {
    font-weight: var(--wp--custom--font-weight--semi-bold);
    padding: var(--wp--preset--spacing--xx-small);
}

.wp-block-table td,
.wp-block-table th {
    border: none;
}

table td:first-child,
table th:first-child,
.wp-block-table td:first-child,
.wp-block-table th:first-child {
    padding-left: 0;
}

table td:last-child,
table th:last-child,
.wp-block-table td:last-child,
.wp-block-table th:last-child {
    padding-right: 0;
}

/* Easy Accordion Block — show panels marked active (plugin relies on jQuery for the rest) */
.wp-block-esab-accordion .esab__body.esab__active {
	display: block;
}

/* Poppins: tighten line box and nudge text to match the icon */
.wp-block-esab-accordion .esab__head {
	align-items: center;
	font-size: var(--wp--preset--font-size--medium) !important;
	line-height: 1;
	padding-block: 10px;
}

.wp-block-esab-accordion .esab__heading_txt {
	align-items: center;
	display: flex;
	line-height: 1;
}

.wp-block-esab-accordion .esab__heading_tag {
	display: block;
	line-height: 1;
	transform: translateY(0.06em);
}

.wp-block-esab-accordion .wp-block-image,
.wp-block-esab-accordion .wp-block-image img {
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.wp-block-esab-accordion .wp-block-image {
	overflow: hidden;
}