/**
 * Styles for components shared by the theme templates and blocks (blocks/).
 * Class names use the acevo- prefix so they can't collide with GenerateBlocks
 * global classes (section, card, …). Also loaded in the block editor.
 */

/* ----- Call to action band (template-parts/cta-band.php), matching Elementor's Call to Action widget ----- */

.acevo-cta {
	margin-top: 70px;
	background-color: #48d5b5;
	text-align: center;
}

.acevo-cta__inner {
	padding: 10px;
}

.acevo-cta__content {
	padding: 50px 180px;
}

.acevo-cta__title {
	margin: 0 0 35px;
	font-size: 40px;
	font-weight: 500;
	color: #002e53;
}

.acevo-cta__button.button {
	display: inline-block;
	margin-bottom: 30px;
	font-size: 23px;
	padding: 14px 40px;
}

.acevo-cta__description {
	color: #333;
	font-family: aktiv-grotesk, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
	font-weight: 400;
}

.acevo-cta__description p {
	margin: 0;
}

.acevo-cta__description a {
	color: #002e53;
	font-weight: 400;
	text-decoration: underline;
}

.acevo-cta__description a:hover {
	text-decoration-thickness: 2px;
}

/* As a block (blocks/cta): full width from inside the page content */
.acevo-cta--block {
	margin-top: 0;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.editor-styles-wrapper .acevo-cta--block {
	margin-left: 0;
	margin-right: 0;
}

@media (max-width: 1024px) {
	.acevo-cta__content {
		padding: 50px;
	}
}

@media (max-width: 767px) {
	.acevo-cta__content {
		padding: 20px 20px 30px;
	}

	.acevo-cta__title {
		margin-bottom: 25px;
	}
}

/* ----- Call to action panel (template-parts/cta-panel.php), matching Elementor's "CTA with Newsletter" global widget ----- */

.acevo-cta-panel {
	margin-top: 70px;
	background-color: #48d5b5;
	text-align: center;
}

.acevo-cta-panel__inner {
	padding: 85px 30px;
}

.acevo-cta-panel__title {
	margin: 0 0 25px;
	font-size: 40px;
	font-weight: 500;
	line-height: 1.2;
	color: #002e53;
}

.acevo-cta-panel__buttons {
	margin: 15px 0;
}

.acevo-cta-panel__button.button {
	display: inline-block;
	margin: 10px 10px 15px;
	font-size: 23px;
	padding: 14px 40px;
}

.acevo-cta-panel__description p {
	font-weight: 400;
}

.acevo-cta-panel__description p:last-child {
	margin-bottom: 0;
}

.acevo-cta-panel__description a {
	color: #000;
	font-weight: 400;
	text-decoration: underline;
}

.acevo-cta-panel__description a:hover {
	text-decoration-thickness: 2px;
}

/* As a block: full width from inside the page content */
.acevo-cta-panel--block {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.editor-styles-wrapper .acevo-cta-panel--block {
	margin-left: 0;
	margin-right: 0;
}

/* ----- Post grid (template-parts/post-grid.php), matching the Elementor posts widgets ----- */

.acevo-posts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 35px 60px;
}

.acevo-posts__item {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.acevo-posts__thumbnail {
	display: block;
	position: relative;
	margin-bottom: 20px;
	overflow: hidden;
}

.acevo-posts__thumbnail img {
	display: block;
	width: 100%;
	height: auto;
}

/* Fixed ratio, cropped to fill (Elementor's "image ratio") */
.acevo-posts--crop .acevo-posts__thumbnail {
	padding-bottom: 66%;
}

.acevo-posts--crop .acevo-posts__thumbnail img {
	position: absolute;
	top: calc(50% + 1px);
	left: calc(50% + 1px);
	height: 100%;
	object-fit: cover;
	transform: scale(1.01) translate(-50%, -50%);
}

.acevo-posts__title {
	margin: 0 0 20px;
	font-family: "Geomanist", Sans-serif;
	font-size: 25px;
	font-weight: 500;
	line-height: 30px;
}

.acevo-posts__title a {
	color: #002e53;
	font-weight: 500; /* the theme's h3 is 600 !important, so set it on the link */
}

.acevo-posts__title a:hover {
	color: #48d5b5;
}

.acevo-posts__meta {
	margin-bottom: 13px;
	color: #000;
	font-size: 16px;
	line-height: 1.3em;
}

@media (max-width: 1024px) {
	.acevo-posts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.acevo-posts {
		grid-template-columns: minmax(0, 1fr);
	}

	.acevo-posts--crop .acevo-posts__thumbnail {
		padding-bottom: 50%;
	}
}

/* Front covers (Post list block): the whole cover at 80% width, with a border */
.acevo-posts--covers .acevo-posts__thumbnail {
	padding-bottom: 117%;
}

.acevo-posts--covers .acevo-posts__thumbnail img {
	position: absolute;
	top: 0;
	left: 0;
	width: 80%;
	border: 1px solid #ccc;
}

@media (min-width: 1025px) {
	.acevo-posts--columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* ----- Menus that collapse to a toggle button (acevo_toggle_menu() in inc/templates.php) ----- */

.acevo-menu__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.acevo-menu__list a {
	display: flex;
	font-family: "Geomanist", Sans-serif;
	font-weight: 500;
	line-height: 20px;
}

.acevo-menu__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	padding: 7.5px;
	border: 0;
	border-radius: 3px;
	cursor: pointer;
}

.acevo-menu__toggle svg {
	width: 30px;
	height: 30px;
	fill: currentColor;
}

.acevo-menu__toggle[aria-expanded="false"] .acevo-menu__icon-close,
.acevo-menu__toggle[aria-expanded="true"] .acevo-menu__icon-open {
	display: none;
}

/* Category menu: blog archives, the Category menu block and the supplier directory */
.acevo-menu--categories .acevo-menu__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.acevo-menu--categories .acevo-menu__list a {
	display: block;
	padding: 13px 20px;
	background-color: #f5f6f7;
	color: #002e53;
	font-family: "Roboto", sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 32px;
	text-align: center;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.4em;
	transition: text-decoration-color 0.25s ease;
}

.acevo-menu--categories .acevo-menu__list a:hover,
.acevo-menu--categories .acevo-menu__list a:focus-visible {
	color: #002e53;
	text-decoration-color: #48d5b5;
}

.acevo-menu--categories .acevo-menu__list a:focus-visible {
	outline: 2px solid #0070a7;
	outline-offset: 2px;
}

.acevo-menu--categories .current-menu-item > a,
.acevo-menu--categories .current-menu-item > a:hover {
	color: #fff;
	background-color: #002e53;
	text-decoration-color: transparent;
}

.acevo-menu--categories .acevo-menu__toggle {
	color: #002e53;
	background-color: #f5f6f7;
}

/* Tablet and mobile: collapsed behind the toggle until it is pressed */
@media (max-width: 1024px) {
	.acevo-menu--categories {
		padding: 10px 10px 0;
		background-color: #f5f6f7;
	}

	.acevo-menu--categories .acevo-menu__toggle {
		display: flex;
	}

	.acevo-menu--categories .acevo-menu__list {
		margin-top: 10px;
		background-color: #fff; /* shows between the items */
	}

	.acevo-menu--categories .acevo-menu__list a {
		padding: 12px 34px;
		text-align: left;
	}

	.acevo-menu--categories .acevo-menu__toggle[aria-expanded="false"] + .acevo-menu__list {
		max-height: 0;
		overflow: hidden;
		visibility: hidden;
	}
}

/* ----- Columns block, Sidebar style (inc/block-styles.php): 25% / 75%, stacked on tablets and phones ----- */

.wp-block-columns.is-style-sidebar {
	gap: 0;
}

.wp-block-columns.is-style-sidebar > .wp-block-column {
	padding: 10px;
}

.wp-block-columns.is-style-sidebar > .wp-block-column:first-child {
	flex: 0 0 25%;
	padding-right: 50px;
}

.wp-block-columns.is-style-sidebar > .wp-block-column:not(:first-child) {
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 1024px) {
	.wp-block-columns.is-style-sidebar {
		flex-wrap: wrap !important; /* core sets nowrap !important from 782px */
	}

	.wp-block-columns.is-style-sidebar > .wp-block-column {
		flex-basis: 100% !important; /* over the column widths set inline */
	}

	.wp-block-columns.is-style-sidebar > .wp-block-column:first-child {
		padding-right: 10px;
	}
}

/* ----- Accordion block (core), matching the Elementor accordion ----- */

.wp-block-accordion > .wp-block-accordion-item {
	margin: 0 0 20px;
	border: 1px solid #c4c9cc;
}

/* Through the item, to win over the editor's Tailwind typography (css/output.css) */
.wp-block-accordion .wp-block-accordion-item > .wp-block-accordion-heading {
	margin: 0;
	font-family: "Geomanist", sans-serif;
	font-size: 25px;
	font-weight: 600;
	line-height: 30px;
}

/* Also undoes the theme's [type="button"] styles (style.css) */
.wp-block-accordion-heading .wp-block-accordion-heading__toggle,
.wp-block-accordion-heading .wp-block-accordion-heading__toggle:hover {
	display: flex;
	align-items: flex-start; /* chevron level with the first line of the title */
	gap: 20px;
	width: 100%;
	padding: 15px 20px;
	border: 0;
	border-radius: 0;
	color: #002e53;
	background-color: #f5f6f7;
	font: inherit;
	text-align: left;
	white-space: normal;
	user-select: auto;
	transition: none;
}

.wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle {
	color: #fff;
	background-color: #002e53;
}

.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
	text-decoration: none;
}

/* Chevron (Font Awesome's angle-down, as Elementor used) in place of core's "+" */
.wp-block-accordion-heading__toggle-icon {
	width: auto;
	height: 30px;
	font-size: 0;
}

.wp-block-accordion-heading__toggle-icon::before {
	content: "";
	width: 16px;
	height: 25px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M143 352.3 7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M143 352.3 7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
	transform: rotate(180deg);
}

.wp-block-accordion-panel {
	padding: 15px 20px;
	border-top: 1px solid #c4c9cc;
}

.wp-block-accordion-panel > :first-child {
	margin-top: 0;
}

@media (max-width: 767px) {
	.wp-block-accordion-heading .wp-block-accordion-heading__toggle,
	.wp-block-accordion-heading .wp-block-accordion-heading__toggle:hover {
		padding: 12px 15px;
	}

	.wp-block-accordion-panel {
		padding: 7px 15px;
	}
}

/*
 * Opening and closing: the title bar's colours, the chevron and the panel's
 * height. Core hides a closed panel with hidden="until-found" (content-visibility:
 * hidden), so the height needs interpolate-size, @starting-style and a discrete
 * content-visibility transition; browsers without them fade the panel and snap
 * its height.
 */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-accordion-heading .wp-block-accordion-heading__toggle,
	.wp-block-accordion-heading .wp-block-accordion-heading__toggle:hover {
		transition: color 0.3s ease, background-color 0.3s ease;
	}

	.wp-block-accordion-item > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
		transition: transform 0.3s ease;
	}

	.wp-block-accordion-panel {
		overflow: clip;
		interpolate-size: allow-keywords;
		transition: height 0.3s ease, opacity 0.3s ease, padding 0.3s ease, display 0.3s allow-discrete, content-visibility 0.3s allow-discrete;
	}

	.wp-block-accordion-panel[hidden] {
		height: 0;
		opacity: 0;
	}

	@starting-style {
		.wp-block-accordion-panel:not([hidden]) {
			height: 0;
			opacity: 0;
			padding-top: 0;
			padding-bottom: 0;
		}
	}
}

/* ----- Slogan band (patterns/slogan.php), matching the Elementor "slogan" sections ----- */

/* Group, Slogan style: full-width mint band holding a Columns block (inside the
   group's inner container, so not a direct child) */
.wp-block-group.is-style-slogan {
	margin: 0 calc(50% - 50vw) 70px;
	padding: 40px 60px;
	background-color: #48d5b5;
}

/* Sits against the title band when it opens the page, over the page's top
   spacing (templates.css, and the block pages' padding in style.css) */
.acevo-page__content > .wp-block-group.is-style-slogan:first-child {
	margin-top: -60px;
}

.editor-styles-wrapper .wp-block-group.is-style-slogan {
	margin-left: 0;
	margin-right: 0;
}

.wp-block-group.is-style-slogan .wp-block-columns {
	max-width: 1140px;
	margin: 0 auto;
	gap: 0;
	align-items: center !important; /* core sets normal !important */
}

.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column {
	padding: 10px;
}

.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:first-child {
	flex: 0 0 55% !important; /* over core's stacking and any widths set inline */
}

.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:not(:first-child) {
	flex: 0 0 45% !important;
}

.wp-block-group.is-style-slogan .wp-block-image {
	margin: 0;
}

.wp-block-group.is-style-slogan .wp-block-image img {
	width: 100%;
	vertical-align: middle;
}

/* Heading, Slogan style: first line navy, the rest white. The element names
   outrank the editor's Tailwind prose headings. */
:is(h1, h2, h3, h4, h5, h6).wp-block-heading.is-style-slogan {
	margin: 0;
	font-family: "Geomanist";
	font-size: 75px;
	font-weight: 900;
	line-height: 1.1 !important; /* over style.css's h2 */
	color: #fff;
}

:is(h1, h2, h3, h4, h5, h6).wp-block-heading.is-style-slogan::first-line {
	color: #002e53;
}

@media (max-width: 1024px) {
	.wp-block-group.is-style-slogan {
		margin-bottom: 50px;
		padding: 40px;
	}

	.acevo-page__content > .wp-block-group.is-style-slogan:first-child {
		margin-top: -100px;
	}

	.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:first-child {
		flex-basis: 60% !important;
	}

	.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:not(:first-child) {
		flex-basis: 40% !important;
	}

	:is(h1, h2, h3, h4, h5, h6).wp-block-heading.is-style-slogan {
		font-size: 50px;
	}
}

@media (min-width: 768px) {
	.wp-block-group.is-style-slogan .wp-block-columns {
		flex-wrap: nowrap !important; /* core wraps below 782px */
	}
}

@media (max-width: 767px) {
	.wp-block-group.is-style-slogan {
		padding: 30px;
	}

	.acevo-page__content > .wp-block-group.is-style-slogan:first-child {
		margin-top: -80px;
	}

	.wp-block-group.is-style-slogan .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:first-child,
	.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:not(:first-child) {
		flex-basis: 100% !important;
	}

	.wp-block-group.is-style-slogan .wp-block-columns > .wp-block-column:first-child {
		padding-bottom: 20px;
	}

	:is(h1, h2, h3, h4, h5, h6).wp-block-heading.is-style-slogan {
		font-size: 40px;
	}
}

/* ----- Columns block, Wide gap style (inc/block-styles.php), matching Elementor sections with the "Wider" column gap, which most multi-column sections use ----- */

.wp-block-columns.is-style-wide-gap {
	gap: 0;
	margin: 0;
}

.wp-block-columns.is-style-wide-gap > .wp-block-column {
	padding: 30px;
}

/* 20px between items, as between Elementor widgets; text keeps its
   paragraphs' 25px, and a further 20px before anything else */
.wp-block-columns.is-style-wide-gap > .wp-block-column > * {
	margin-top: 0;
	margin-bottom: 20px;
}

.wp-block-columns.is-style-wide-gap > .wp-block-column > p {
	margin-bottom: 25px;
}

.wp-block-columns.is-style-wide-gap > .wp-block-column > p:has(+ :not(p)) {
	margin-bottom: 45px;
}

.wp-block-columns.is-style-wide-gap > .wp-block-column > :last-child:not(p) {
	margin-bottom: 0;
}

/* ----- Columns block, People style (patterns/people.php), matching the Elementor "people" rows on the team and trustees pages ----- */

.wp-block-columns.is-style-people {
	gap: 0;
	margin: 0 0 20px;
}

@media (min-width: 768px) {
	.wp-block-columns.is-style-people {
		flex-wrap: nowrap !important; /* core wraps below 782px */
	}

	.wp-block-columns.is-style-people > .wp-block-column {
		flex: 1 1 0 !important;
		min-width: 0;
	}
}

@media (max-width: 767px) {
	.wp-block-columns.is-style-people > .wp-block-column {
		flex-basis: 100% !important;
	}
}

.wp-block-columns.is-style-people > .wp-block-column {
	padding: 30px 30px 31px; /* the Elementor icons widget left 31px below the icons */
}

.wp-block-columns.is-style-people > .wp-block-column > * {
	margin: 0;
}

.wp-block-columns.is-style-people > .wp-block-column > * + * {
	margin-top: 20px;
}

.wp-block-columns.is-style-people .wp-block-image img {
	vertical-align: middle;
}

/* Name, and role */
.wp-block-columns.is-style-people :is(h3, h4).wp-block-heading {
	font-family: "Geomanist";
	font-weight: 600;
	color: #002e53;
}

.wp-block-columns.is-style-people h3.wp-block-heading {
	font-size: 25px;
	line-height: 30px !important; /* over style.css's headings */
}

.wp-block-columns.is-style-people h4.wp-block-heading {
	font-size: 20px;
	line-height: 24px !important;
	text-transform: uppercase;
}

.wp-block-columns.is-style-people > .wp-block-column > h3 + h4 {
	margin-top: 5px;
}

.wp-block-columns.is-style-people p {
	font-size: 16px;
	line-height: 28px;
	color: #333; /* the editor's Tailwind prose is grey */
}

.wp-block-columns.is-style-people > .wp-block-column > p + p {
	margin-top: 15px;
}

/* Email and LinkedIn icons: navy and LinkedIn blue circles with the Font
   Awesome icons Elementor used, drawn in CSS over core's own. The anchor class
   covers the link on the site and the button in the editor. */
.wp-block-columns.is-style-people .wp-block-social-links {
	gap: 12px;
	padding: 0;
}

.wp-block-columns.is-style-people .wp-social-link {
	margin: 0;
	background-color: #002e53;
	color: #fff;
	transition: opacity 0.3s;
}

.wp-block-columns.is-style-people .wp-social-link:hover {
	transform: none;
	opacity: 0.9;
}

.wp-block-columns.is-style-people .wp-social-link-linkedin {
	background-color: #0077b5;
}

.wp-block-columns.is-style-people .wp-social-link .wp-block-social-link-anchor {
	padding: 8px;
}

.wp-block-columns.is-style-people .wp-social-link svg {
	display: none;
}

.wp-block-columns.is-style-people .wp-social-link .wp-block-social-link-anchor::before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background-color: currentColor;
}

.wp-block-columns.is-style-people .wp-social-link-mail .wp-block-social-link-anchor::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-columns.is-style-people .wp-social-link-linkedin .wp-block-social-link-anchor::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ----- Testimonial carousel (blocks/testimonial-carousel), laid out as Elementor's Testimonial Carousel widget, with the theme's quote styling ----- */

.acevo-testimonials {
	position: relative;
}

.acevo-testimonials--carousel {
	padding-bottom: 40px;
}

.acevo-testimonials__viewport {
	overflow: hidden;
}

.acevo-testimonials--carousel .acevo-testimonials__viewport {
	width: 95%;
	margin: 0 auto;
	touch-action: pan-y;
}

.acevo-testimonials--carousel .acevo-testimonials__track {
	display: flex;
	gap: 10px;
	transition: transform 0.5s ease;
}

.acevo-testimonials__slide {
	padding: 20px;
}

.acevo-testimonials--carousel .acevo-testimonials__slide {
	flex: 0 0 100%;
	min-width: 0;
}

/* Before the script runs, only the first quote shows */
.acevo-testimonials--carousel:not(.is-ready) .acevo-testimonials__slide:not(:first-child),
.acevo-testimonials--carousel:not(.is-ready) .acevo-testimonials__arrow,
.acevo-testimonials--carousel:not(.is-ready) .acevo-testimonials__dots {
	visibility: hidden;
}

.acevo-testimonials__quote {
	margin: 0;
}

.acevo-testimonials__quote p {
	margin: 0 0 15px;
}

.acevo-testimonials__quote p:last-of-type {
	margin-bottom: 0;
}

.acevo-testimonials__arrow {
	position: absolute;
	top: calc(50% - 20px); /* the middle of the quotes, above the dots */
	z-index: 1;
	display: flex;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: rgba(237, 237, 237, 0.9);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	transition: none; /* over the theme's button transition */
}

.acevo-testimonials__arrow:hover,
.acevo-testimonials__arrow:focus {
	background: none;
	color: rgba(237, 237, 237, 0.9);
}

.acevo-testimonials__arrow svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.acevo-testimonials__arrow--prev {
	left: 10px;
}

.acevo-testimonials__arrow--next {
	right: 10px;
}

.acevo-testimonials__dots {
	position: absolute;
	bottom: 15px;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	gap: 12px;
}

.acevo-testimonials__dot {
	width: 6px;
	height: 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #000;
	opacity: 0.2;
	cursor: pointer;
	transition: none;
}

.acevo-testimonials__dot:hover,
.acevo-testimonials__dot:focus {
	background: #000;
}

.acevo-testimonials__dot[aria-current] {
	opacity: 1;
}

/* ----- Price list (blocks/price-list), matching Elementor's Price List widget on The value of ACEVO ----- */

.acevo-price-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.acevo-price-list > li {
	margin: 0;
	padding: 0;
}

.acevo-price-list > li:not(:last-child) {
	margin-bottom: 35px;
}

.acevo-price-list__item {
	display: block;
	text-decoration: none !important; /* over the content link styles */
}

.acevo-price-list__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
	font-family: "Geomanist", sans-serif;
	font-size: 19px;
	font-weight: 600;
	color: #002e53;
}

.acevo-price-list__title {
	max-width: 80%;
	line-height: 1.3;
	text-decoration: underline;
	text-decoration-color: #002e53;
	text-underline-offset: 3px;
}

a.acevo-price-list__item:hover .acevo-price-list__title {
	text-decoration-color: #48d5b5;
	text-decoration-thickness: 2px;
}

.acevo-price-list__price {
	max-width: 180px;
	line-height: 1.3;
	text-align: right;
}

.acevo-price-list__note {
	display: block;
	font-size: 14px;
	font-weight: 400;
}

.acevo-price-list__description {
	margin: 0;
	font-family: "Roboto", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 32px;
	color: #002e53;
}

/* ----- Text on block pages: headings, text, lists, quotes and buttons placed
   straight on the page sit in the narrower column the Elementor "page-intro"
   and "page-body" sections made (900px of the 1120px page on desktop), while
   columns, groups and the theme's blocks keep the full width ----- */

body.page.has-blocks .acevo-page__content {
	--acevo-text-inset: 110px;
}

body.page.has-blocks .acevo-page__content > :is(p, h1, h2, h3, h4, h5, h6, .wp-block-quote, .wp-block-buttons, .wp-block-table, .wp-block-file) {
	margin-right: var(--acevo-text-inset);
	margin-left: var(--acevo-text-inset);
}

body.page.has-blocks .acevo-page__content > :is(ul, ol) {
	margin-right: var(--acevo-text-inset);
	margin-left: calc(var(--acevo-text-inset) + 25px);
}

/* Opening the page, text sits where the Elementor intro did, over the block
   pages' top padding in style.css */
body.page.has-blocks .acevo-page__content > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, .wp-block-quote, .wp-block-buttons):first-child {
	margin-top: 20px;
}

body.page.has-blocks .acevo-page__content > h2:first-child {
	margin-bottom: 50px;
}

@media (max-width: 1024px) {
	body.page.has-blocks .acevo-page__content {
		--acevo-text-inset: 30px;
	}

	body.page.has-blocks .acevo-page__content > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, .wp-block-quote, .wp-block-buttons):first-child {
		margin-top: -40px;
	}

	body.page.has-blocks .acevo-page__content > h2:first-child {
		margin-bottom: 25px;
	}
}

@media (max-width: 767px) {
	body.page.has-blocks .acevo-page__content {
		--acevo-text-inset: 15px;
	}
}

/* ----- Block editor placeholder, shown while a block is empty ----- */

.acevo-block-placeholder {
	padding: 20px;
	border: 1px dashed #c4c9cc;
	font-size: 16px;
}
