/* Icon beside a section title. */
.wp-block-group.is-style-icon-title {
	gap: 12px;
	margin-bottom: 17px;
}

.wp-block-group.is-style-icon-title > * {
	margin: 0;
}

.wp-block-group.is-style-icon-title > .wp-block-image {
	flex: 0 0 auto;
}

/* Rows of a small icon followed by a line of text. */
.wp-block-group.is-style-icon-list > .wp-block-group {
	gap: 12px;
	margin-block: 0 12px;
}

.wp-block-group.is-style-icon-list .wp-block-image {
	flex: 0 0 21px;
	margin: 3px 0 0;
}

.wp-block-group.is-style-icon-list p {
	margin: 0;
}

.wp-block-group.is-style-card {
	border-radius: 10px;
	height: 100%;
	overflow: hidden;
}

.wp-block-group.is-style-callout {
	padding-block: var(--wp--preset--spacing--medium);
	text-align: center;
}

/* Site header. */
.sg-header {
	box-shadow: 0 1px 0 var(--wp--preset--color--light-grey);
}

.sg-header .sg-header__inner {
	min-height: var(--wp--custom--header--height-mobile);
}

.sg-header .sg-logo {
	flex: 0 0 auto;
	margin: 0;
}

.sg-header .sg-logo img {
	border-radius: 0;
}

@media (min-width: 1025px) {
	.sg-header .sg-header__inner {
		min-height: var(--wp--custom--header--height);
	}
}

.sg-announcements {
	padding-block: 6px;
}

.sg-announcements p {
	margin: 0;
}

.sg-announcements a {
	margin-left: 10px;
	color: inherit;
	font-weight: 700;
}

.sg-announcements .sg-carousel__arrow {
	box-shadow: none;
	background-color: transparent;
	width: 24px;
	height: 24px;
}

/* Site footer. */
.sg-footer .wp-block-navigation a {
	color: var(--wp--preset--color--dark-grey);
}

.sg-footer .sg-footer__copyright {
	border-top: 1px solid var(--wp--preset--color--light-grey);
	padding-top: var(--wp--preset--spacing--small);
}

/* Logo rows. */
.sg-logos {
	gap: var(--wp--preset--spacing--medium);
}

.sg-logos .wp-block-image,
.sg-logos .wp-block-post-featured-image {
	margin: 0;
}

.sg-logos img {
	border-radius: 0;
	width: auto;
	max-height: 40px;
	object-fit: contain;
}

.sg-badges img {
	border-radius: 0;
}

/* Forms. */
.sg-form {
	border-radius: 10px;
}

.sg-form.has-text-color a {
	color: inherit;
}

.sg-icon-grid img {
	border-radius: 0;
}

/* Announcement bar. */
.sg-announcements.has-red-background-color {
	padding-block: 8px;
}

.sg-announcements a {
	display: inline-block;
	margin-left: 16px;
	border-radius: 24px;
	background: var(--wp--preset--color--blue);
	padding: 4px 16px;
	color: var(--wp--preset--color--white);
	font-weight: 400;
	text-decoration: none;
}

.sg-announcements .sg-carousel__arrow {
	filter: brightness(0) invert(1);
}

/* The header keeps its own spacing; the original navigation styles handle the menu. */
.sg-header.site__header__container {
	padding-inline: 20px;
}

.sg-header .site__header__inner {
	padding-block: 10px;
	width: 100%;
}

.sg-header .site__header__logo {
	float: none;
	margin: 0;
}

/* Sections that hold a carousel: centred intro and a narrower slide area, as before. */
.wp-block-group:has(> .sg-carousel) > p {
	margin-inline: auto;
	max-width: 840px;
	text-align: center;
}

.wp-block-group > .sg-carousel.alignwide {
	max-width: 860px;
}

.sg-carousel .sg-carousel__arrow {
	background-color: var(--wp--preset--color--red);
	background-image: url("../img/arrow-right.svg");
	background-size: 18px 18px;
}

.wp-block-group > .sg-carousel.alignwide .sg-carousel__arrow--previous {
	left: -60px;
}

.wp-block-group > .sg-carousel.alignwide .sg-carousel__arrow--next {
	right: -60px;
}

@media (max-width: 1024px) {
	.wp-block-group > .sg-carousel.alignwide .sg-carousel__arrow--previous {
		left: 10px;
	}

	.wp-block-group > .sg-carousel.alignwide .sg-carousel__arrow--next {
		right: 10px;
	}
}

.sg-announcements .sg-carousel__arrow {
	border-radius: 0;
	background-color: transparent;
	background-image: url("../img/arrow-right.svg");
	filter: none;
}

/* Client and partner logos sit at a common height. */
.sg-logos img {
	width: auto;
	max-width: 150px;
	height: 40px;
	max-height: none;
}

/* Icons in the icon list are white, on a red disc. */
.wp-block-group.is-style-icon-list .wp-block-image img {
	border-radius: 50%;
	background: var(--wp--preset--color--red);
	padding: 4px;
	width: 21px;
	height: 21px;
}

.sg-logos .wp-block-image img,
.sg-logos .wp-block-post-featured-image img {
	width: auto;
	max-width: 150px;
	height: 40px;
	object-fit: contain;
}

/* Section titles beside an icon use the regular weight of the heading face. */
.wp-block-group.is-style-icon-title :is(h2, h3, h4) {
	font-family: var(--wp--preset--font-family--carnas-regular);
}

/* Announcement bar: one centred announcement at a time. */
.sg-announcements.has-red-background-color {
	padding-block: 0;
}

.sg-announcements .sg-carousel {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
}

.sg-announcements .sg-carousel__track > p {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	min-height: 56px;
	padding: 8px 48px;
	font-size: 1rem;
	font-weight: 500;
}

.sg-announcements .sg-carousel__track > p a {
	flex: 0 0 auto;
	margin: 0;
	padding: 6px 22px;
	font-weight: 500;
}

.sg-announcements .sg-carousel__arrow {
	width: 28px;
	height: 28px;
	background-size: 20px 20px;
}

/* Client logos: outlined pills in a centred row with room above and below. */
.wp-block-post-content > .wp-block-query.sg-logos,
.sg-client-logos {
	margin-block: var(--wp--preset--spacing--large);
}

.sg-logos,
.sg-logos .wp-block-post-template {
	justify-content: center;
	gap: 16px 20px;
}

.sg-logos .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.sg-logos .wp-block-image,
.sg-logos .wp-block-post-featured-image {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--light-grey);
	border-radius: 30px;
	background: var(--wp--preset--color--white);
	padding: 10px 24px;
	min-width: 130px;
	height: 52px;
}

.sg-logos .wp-block-image img,
.sg-logos .wp-block-post-featured-image img {
	max-width: 110px;
	height: 30px;
}

/* Cards on a dark tile ("Your Business"). */
.sg-card-tiles {
	gap: 16px;
}

.sg-card-tiles > .wp-block-group {
	display: flex;
	flex-direction: column;
	border-radius: 5px;
	padding: 28px 26px;
	min-height: 100%;
}

.sg-card-tiles > .wp-block-group > .wp-block-buttons {
	margin-top: auto;
	padding-top: 16px;
}

.sg-card-tiles .is-style-icon-title img {
	border-radius: 50%;
	background: var(--wp--preset--color--white);
	padding: 6px;
	width: 36px !important;
	height: 36px;
}

.sg-card-tiles p {
	font-size: 0.9375rem;
}

/* Interactive schematic chooser. */
.wp-block-columns:has(> .schematic-block) {
	align-items: center;
	border-radius: 10px;
	background: var(--wp--preset--color--grey-blue);
	padding: var(--wp--preset--spacing--medium);
}

.wp-block-columns:has(> .schematic-block) .wp-block-image img {
	border-radius: 5px;
	box-shadow: var(--wp--preset--shadow--soft);
}

.wp-block-columns:has(> .schematic-block) .wp-block-columns,
.wp-block-columns:has(> .schematic-block) .wp-block-group.is-layout-flex {
	align-items: center;
	margin-block: 0 14px;
}

.wp-block-columns:has(> .schematic-block) a {
	color: var(--wp--preset--color--dark-grey);
	font-family: var(--wp--preset--font-family--carnas-regular);
	font-size: 1.25rem;
	text-decoration: none;
}

.wp-block-columns:has(> .schematic-block) a:hover {
	color: var(--wp--preset--color--red);
}

.wp-block-columns:has(> .schematic-block) p {
	margin: 0;
}

/* Testimonials: dark cards in a row, controls underneath. */
.sg-testimonials.has-background {
	background-color: var(--wp--preset--color--light-grey) !important;
}

.sg-testimonials .sg-carousel {
	--sg-gap: 16px;
	padding-bottom: 64px;
}

@media (min-width: 1025px) {
	.sg-testimonials .sg-carousel {
		--sg-slides: 3;
	}
}

.sg-testimonials .sg-carousel__track > li {
	border-radius: 5px;
	background: var(--wp--preset--color--dark-grey);
	padding: 40px 34px;
	min-height: 380px;
	color: var(--wp--preset--color--white);
}

.sg-testimonials .sg-carousel__track > li .wp-block-post-featured-image {
	margin: 0 0 26px;
	border-radius: 50%;
	background: var(--wp--preset--color--red);
	padding: 12px;
	width: 60px;
	height: 60px !important;
}

.sg-testimonials .sg-carousel__track > li .wp-block-post-featured-image img {
	border-radius: 0;
	width: 100%;
	height: 100% !important;
	object-fit: contain;
}

.sg-testimonials .sg-carousel__track > li .wp-block-post-title {
	order: 3;
	margin-top: 18px;
	color: var(--wp--preset--color--light-grey);
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 0.875rem !important;
}

.sg-testimonials .sg-carousel__track > li {
	display: flex;
	flex-direction: column;
}

.sg-testimonials .sg-carousel__track > li p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
}

.sg-testimonials .sg-carousel__arrow {
	top: auto;
	bottom: 0;
	transform: none;
	background-color: var(--wp--preset--color--blue);
	box-shadow: none;
	width: 44px;
	height: 44px;
}

.sg-testimonials .sg-carousel__arrow--previous {
	left: 4px;
	transform: rotate(180deg);
}

.sg-testimonials .sg-carousel__arrow--next {
	right: auto;
	left: 200px;
}

.sg-testimonials .sg-carousel__dots {
	position: absolute;
	bottom: 16px;
	left: 60px;
	justify-content: center;
	margin: 0;
	width: 130px;
}

.sg-testimonials .sg-carousel__dot {
	background: var(--wp--preset--color--white);
}

.sg-testimonials .sg-carousel__dot.is-active {
	background: var(--wp--preset--color--blue);
}

/* Case study and post cards. */
.sg-post-list .wp-block-post-template > li {
	border-radius: 5px;
	background: var(--wp--preset--color--grey-blue);
	overflow: hidden;
}

.sg-post-list .wp-block-post-template > li .wp-block-post-featured-image {
	margin: 0;
}

.sg-post-list .wp-block-post-template > li .wp-block-post-featured-image img {
	border-radius: 0;
	aspect-ratio: 1;
	width: 100%;
	object-fit: cover;
}

.sg-post-list .wp-block-post-template > li .wp-block-post-title {
	margin: 0;
	padding: 20px 22px 26px;
	font-size: 1.25rem !important;
	line-height: 1.3;
}

.sg-post-list .sg-post-card {
	border-radius: 0;
}

/* Contact section: compact form on a blue card. */
.sg-contact .sg-form {
	border-radius: 5px;
}

.sg-contact .sg-form h3 {
	margin-bottom: 8px;
}

.sg-contact .is-style-icon-list .wp-block-image {
	flex-basis: 32px;
	margin-top: 0;
}

.sg-contact .is-style-icon-list .wp-block-image img {
	padding: 6px;
	width: 32px;
	height: 32px;
}

.sg-contact .sg-badges {
	justify-content: space-around;
}

/* Parallax feature band. */
.wp-block-cover.sg-parallax {
	padding-block: var(--wp--preset--spacing--x-large);
}

/* Mega menu panels sit directly under the header. */
.sg-header .ubermenu .ubermenu-item-level-0 > .ubermenu-submenu-drop {
	top: 100% !important;
	margin-top: 0 !important;
}

/* Testimonials: wider cards with the next one peeking in, as on the original. */
@media (min-width: 1025px) {
	.sg-testimonials .sg-carousel {
		--sg-slides: 2.4;
	}
}

.sg-testimonials .wp-block-columns {
	align-items: flex-start;
}

/* Icon list: larger discs, text centred against them. */
.wp-block-group.is-style-icon-list > .wp-block-group {
	align-items: center;
}

.wp-block-group.is-style-icon-list .wp-block-image {
	flex-basis: 32px;
	margin: 0;
}

.wp-block-group.is-style-icon-list .wp-block-image img {
	padding: 6px;
	width: 32px !important;
	height: 32px;
}

.sg-testimonials .wp-block-column {
	align-self: flex-start;
}

/* Header band on posts and case studies. */
.sg-post-hero {
	position: relative;
	padding-block: var(--wp--preset--spacing--large) calc(var(--wp--preset--spacing--large) + 50px);
}

.sg-post-hero::after {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	background: url("../img/home-curve-lg.svg") top center / cover no-repeat;
	height: clamp(30px, 5vw, 70px);
	content: "";
}

.sg-post-hero > .wp-block-columns {
	position: relative;
	z-index: 1;
	gap: var(--wp--preset--spacing--large);
}

.sg-post-hero .wp-block-column > * {
	margin-block: 0 14px;
}

.sg-post-hero .wp-block-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
}

.sg-post-hero .sg-post-hero__category,
.sg-post-hero .sg-post-hero__category a {
	color: var(--wp--preset--color--red);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.sg-post-hero .wp-block-post-title {
	font-family: var(--wp--preset--font-family--carnas-regular);
	line-height: 1.2;
}

.sg-post-hero .wp-block-post-date {
	color: var(--wp--preset--color--grey);
}

.sg-post-hero .wp-block-post-featured-image {
	margin: 0;
}

.sg-post-hero .wp-block-post-featured-image img {
	border-radius: 10px;
	box-shadow: var(--wp--preset--shadow--raised);
}

/* Small pieces used by the section patterns. */
.sg-eyebrow {
	color: var(--wp--preset--color--red);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sg-disc-icon img {
	border-radius: 50%;
	background: var(--wp--preset--color--red);
	padding: 10px;
	object-fit: contain;
	aspect-ratio: 1;
}

.sg-card-grid {
	gap: 20px;
}

.sg-stat > * {
	margin: 0;
}

.sg-stat__number {
	font-family: var(--wp--preset--font-family--carnas-regular);
	line-height: 1.1;
}

.sg-step__number {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 14px;
	border-radius: 50%;
	background: var(--wp--preset--color--red);
	width: 48px;
	height: 48px;
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--carnas-regular);
	font-size: 1.25rem;
}

.sg-cta-band {
	gap: 16px 40px;
}

.sg-cta-band > * {
	margin: 0;
}

.sg-team {
	gap: 20px;
}

.sg-person > * {
	margin-block: 0 6px;
}

.sg-person .wp-block-image {
	margin-bottom: 14px;
}

.sg-person .wp-block-image img {
	aspect-ratio: 5 / 6;
	width: 100%;
	object-fit: cover;
}

.sg-quote {
	font-family: var(--wp--preset--font-family--carnas-light);
	line-height: 1.35;
}

@media (max-width: 781px) {
	.sg-card-tiles,
	.sg-card-grid.is-layout-grid,
	.wp-block-group.is-layout-grid:has(> .sg-step) {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 781px) {
	.sg-stats .is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 781px) {
	/* Announcement: text above its button. */
	.sg-announcements .sg-carousel__track > p {
		flex-direction: column;
		gap: 6px;
		padding: 8px 40px;
		font-size: 0.8125rem;
		line-height: 1.3;
	}

	.sg-announcements .sg-carousel__track > p a {
		padding: 4px 16px;
	}

	/* Team: two portraits per row. */
	.sg-team.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px;
	}

	.sg-team .wp-block-cover.is-style-reveal {
		padding: 14px;
		min-height: 260px !important;
	}
}
