/**
 * Versbloed homepage — full Figma home, mobile-friendly.
 * Vertical spacing is theme CSS; Gutenberg flow block-gap resets are disabled.
 */

/* Homepage layout tokens and foundations. */
.wp-site-blocks>.vb-home,
.wp-site-blocks>.vb-home+.wp-block-template-part {
	margin-block-start: 0;
}

body.home,
.vb-home,
.vb-hero,
.vb-offer,
.vb-story,
.vb-method,
.vb-strengths,
.vb-generation,
.vb-audience,
.vb-news,
.vb-join,
.vb-contact,
.editor-styles-wrapper {
	--vb-home-gutter: var(--vb-page-gutter);
	--vb-grid-item-min-width: 20rem;
	--vb-hero-copy-max-width: 770px;
	--vb-hero-desktop-height: 645px;
	--vb-join-media-size: 454px;
	--vb-news-card-min-height: 387px;
	--vb-news-card-content-min-height: 337px;
	--vb-contact-overlap: clamp(5rem, 11vw, 12.5rem);
	--vb-contact-footer-space: clamp(3rem, 11vw, 11rem);
}

.vb-home {
	width: 100%;
	max-width: none;
	overflow: visible;
}

.vb-home>*,
.vb-home .wp-block-group,
.vb-home .wp-block-columns,
.vb-home .wp-block-column {
	min-width: 0;
}

.vb-home.alignfull,
.vb-home .alignfull,
.editor-styles-wrapper .alignfull {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
	max-width: none;
}

.vb-hero__media .wp-block-image,
.vb-generation__media .wp-block-image,
.vb-story__media .wp-block-image,
.vb-join__media .wp-block-image,
.vb-news-card>.wp-block-image {
	margin: 0;
}

.vb-news-card>.wp-block-image {
	min-width: 0;
	min-height: 0;
	overflow: hidden;
}

.vb-home .wp-block-post-content>.wp-block-group,
.editor-styles-wrapper>.wp-block-group {
	margin-block-start: 0;
}

.vb-contact .wp-block-shortcode {
	margin: 0;
}

.vb-sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

/* Shared homepage typography. */
.vb-section-title {
	max-width: 40rem;
	margin: 0 0 2.15rem;
	color: var(--vb-color-white);
	line-height: 1.1;
	overflow-wrap: break-word;
	text-wrap: balance;
}

@media (max-width: 640px) {
	.vb-section-title {
		margin-bottom: 1.5rem;
	}
}

.vb-home p,
.editor-styles-wrapper :is(.vb-hero,
	.vb-offer,
	.vb-story,
	.vb-method,
	.vb-strengths,
	.vb-generation,
	.vb-audience,
	.vb-news,
	.vb-join,
	.vb-contact
) p {
	margin: 0 0 3rem;
	color: var(--vb-color-white);
}

.vb-home p:last-child,
.editor-styles-wrapper :is(.vb-hero,
	.vb-offer,
	.vb-story,
	.vb-method,
	.vb-strengths,
	.vb-generation,
	.vb-audience,
	.vb-news,
	.vb-join,
	.vb-contact) p:last-child {
	margin-bottom: 0;
}

/* Hero. */
.vb-hero {
	position: relative;
	overflow: hidden;
	background: var(--vb-color-panel);
	color: var(--vb-color-white);
}

.vb-hero__inner,
.wp-block-group.vb-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(20rem, 0.9fr) minmax(0, 1.1fr);
	align-items: stretch;
	min-height: min(36rem, 72vh);
}

.vb-hero__copy {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-block: clamp(2.5rem, 6vw, 5.5rem);
	padding-right: 1.5rem;
	padding-left: var(--vb-home-gutter);
}

.vb-hero .vb-hero__eyebrow {
	margin: 0 0 1rem;
	color: var(--vb-color-white);
	font-family: var(--vb-font-display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.3;
}

.vb-hero .vb-hero__title {
	margin: 0 0 1.35rem;
	color: var(--vb-color-white);
}

.vb-hero__text {
	max-width: 32rem;
}

.vb-hero__actions,
.wp-block-group.vb-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.25rem;
	margin-top: 1.5rem;
}

a.vb-hero__more,
.vb-hero__more a,
a.vb-hero__more:link,
.vb-hero__more a:link,
a.vb-hero__more:visited,
.vb-hero__more a:visited {
	display: inline-flex;
	align-items: center;
	color: var(--vb-color-white);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: underline;
	text-underline-offset: 0.28em;
}

.vb-hero__more {
	margin: 0;
}

a.vb-hero__more:hover,
a.vb-hero__more:focus,
a.vb-hero__more:focus-visible,
a.vb-hero__more:active,
.vb-hero__more a:hover,
.vb-hero__more a:focus,
.vb-hero__more a:focus-visible,
.vb-hero__more a:active {
	color: var(--vb-color-accent);
}

.vb-hero__media {
	position: relative;
	min-height: 18rem;
}

.vb-hero__media img {
	position: absolute;
	inset: -1% 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 42% center;
}

/* Training offer. */
.vb-offer {
	position: relative;
	overflow: hidden;
	scroll-margin-top: 5rem;
	padding-block: 6rem 5rem;
	background-color: #000;
	color: var(--vb-color-white);
}

.vb-offer::before {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: url("../images/bricks.jpg") center / cover no-repeat;
	filter: grayscale(1);
	content: "";
	pointer-events: none;
}

.vb-offer::after {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: #000000d9;
	content: "";
	pointer-events: none;
}

.vb-home .vb-offer__inner {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--vb-wide-width);
	margin-inline: auto;
	margin-block: 0;
}

.vb-offer__intro {
	margin-bottom: 2.5rem;
}

.vb-offer__title {
	max-width: 48rem;
	margin: 0 0 1.35rem;
	color: var(--vb-color-white);
	font-family: var(--vb-font-display);
	font-size: 48px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.1;
}

.vb-offer__cards,
.wp-block-group.vb-offer__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	margin-bottom: 2.5rem;
}

.vb-offer__text {
	margin: 0;
	color: var(--vb-color-white);
	max-width: 39rem;
	font-family: var(--vb-font);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
}

.vb-offer .is-style-card {
	min-height: var(--vb-card-min-height);
	padding: 45px 40px 44px;
	border-right-width: 6px;
	background-color: #211F21;
}

.vb-offer .is-style-card h3 {
	margin: 0 0 1.5rem;
	color: var(--vb-color-white);
	font-family: var(--vb-font-display);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.25;
}

.vb-offer .is-style-card p {
	max-width: 28rem;
	margin: 0;
	color: var(--vb-color-white);
	font-family: var(--vb-font);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
}

.vb-offer .wp-block-buttons {
	margin: 0;
}

.vb-offer .wp-block-button__link {
	width: 226px;
	min-width: 226px;
	height: 43px;
	min-height: 43px;
	padding: 0 25px;
	background-color: #ce0217;
	color: var(--vb-color-white);
	font-family: var(--vb-font-display);
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0;
	line-height: 1.5;
}

/* Story. */
.vb-story {
	position: relative;
	overflow: hidden;
	scroll-margin-top: 5rem;
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
	padding-right: 0;
	background: var(--vb-color-bg);
}

#vb-story-title,
#vb-method-title {
	max-width: 40rem;
	margin-bottom: 3.15rem;
}

.vb-story::before {
	position: absolute;
	z-index: 0;
	right: 0;
	bottom: -120px;
	width: min(58vw, 688px);
	height: auto;
	aspect-ratio: 688 / 480;
	background-image: url("../images/mark-pattern.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: right bottom;
	opacity: 1;
	pointer-events: none;
	content: "";
}

.vb-story__inner,
.wp-block-group.vb-story__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(16rem, 0.95fr);
	align-items: center;
	gap: 2.5rem;
	max-width: 100%;
}

.vb-story__copy {
	max-width: 100%;
}

.vb-story__media {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 100%;
	min-height: clamp(16rem, 45vw, 22rem);
}

.vb-story__media img,
.vb-story__media .wp-block-image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 430px;
	max-height: 28rem;
	aspect-ratio: 1;
	object-fit: cover;
	clip-path: url("#vb-mark-v-clip");
}

/* Method. */
.vb-method {
	--vb-method-pad-y: clamp(3.5rem, 8vw, 5.1rem);
	position: relative;
	overflow: hidden;
	scroll-margin-top: 5rem;
	padding-block: var(--vb-method-pad-y);
	background: #961b28;
	color: var(--vb-color-white);
}

.vb-method::after {
	display: none;
	position: absolute;
	z-index: 0;
	top: var(--vb-method-pad-y);
	left: var(--vb-home-gutter);
	width: calc(208px + 188px);
	height: 209px;
	background-image: url("../images/vb-mark-v.svg"), url("../images/vb-mark-b.svg");
	background-repeat: no-repeat;
	background-size: 208px 209px, 208px 209px;
	background-position: left top, 188px top;
	pointer-events: none;
	content: "";
}

.vb-method__inner {
	position: relative;
	z-index: 1;
}

.vb-method .vb-section-title,
.vb-method p,
.vb-method h3 {
	color: var(--vb-color-white);
}

.vb-method__lead {
	max-width: 40rem;
	margin-bottom: 2.75rem;
}

.vb-method__steps,
.wp-block-group.vb-method__steps {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.85fr);
	align-items: stretch;
	align-content: start;
	gap: 2.5rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vb-method__steps>.wp-block-group {
	box-sizing: border-box;
	min-width: 0;
	width: 100%;
	height: 100%;
}

.vb-method__steps h3 {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 0.85rem;
}

/* Keep number + label from eating the rule; grow the line in leftover space. */
.vb-method__steps h3>span {
	flex: 0 0 auto;
	margin-right: 0.75rem;
}

.vb-method__steps h3::after {
	content: "";
	flex: 1 0 0;
	align-self: center;
	height: 2px;
	min-width: 1.5rem;
	margin-left: 0.3rem;
	background-color: currentColor;
}

/* End of each desktop row (3rd + 5th/last step): no title rule. */
.vb-method__steps>.wp-block-group:nth-child(3n) h3::after,
.vb-method__steps>.wp-block-group:last-child h3::after {
	content: none;
}

.vb-method__steps>.wp-block-group:nth-child(3n) p,
.vb-method__steps>.wp-block-group:last-child p {
	margin-right: 0;
}

.vb-method__steps p {
	margin: 0;
	margin-right: 2.5rem;
}

/* Strengths. */
.vb-strengths {
	position: relative;
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
	background-color: #101214;
	background-image: linear-gradient(#00000099, #00000099), url("../images/city.jpg");
	background-position: center;
	background-size: cover;
	color: var(--vb-color-white);
}

.vb-strengths__inner .vb-section-title {
	max-width: 30rem;
}

p.vb-strengths__lead {
	max-width: 38rem;
	margin-bottom: 2.5rem;
}

.vb-strengths__grid,
.wp-block-group.vb-strengths__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem 8rem;
}

.vb-strengths__grid h3 {
	color: var(--vb-color-white);
}

.vb-strengths__grid p {
	margin: 0;
}

/* Generation. */
.vb-generation {
	overflow: hidden;
	background: var(--vb-color-panel);
}

.vb-generation__inner,
.wp-block-group.vb-generation__inner {
	display: grid;
	grid-template-columns: minmax(18rem, 0.95fr) minmax(0, 1.05fr);
	align-items: stretch;
	min-height: min(36rem, 70vh);
}

.vb-generation__copy {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-block: clamp(2.5rem, 6vw, 5rem);
	padding-right: 5.5rem;
	padding-left: var(--wp--style--root--padding-left);
}

.vb-generation__copy p {
	max-width: 32rem;
}

.vb-generation__media {
	position: relative;
	min-height: 20rem;
}

.vb-generation__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.vb-generation__media::after {
	position: absolute;
	z-index: 1;
    bottom: 44px;
    right: 118px;
    width: 150px;
	height: 454px;
	background-image: url("../images/mark-pattern.png");
	background-repeat: no-repeat;
	background-size: 900px auto;
	content: "";
}

/* Audience. */
.vb-audience {
	position: relative;
	/* overflow intentionally NOT hidden — decorative marks bleed into .vb-news */
	scroll-margin-top: 5rem;
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
	background: var(--wp--preset--color--surface);
}

/*
 * Two large decorative brand-mark outlines straddling the boundary between
 * .vb-audience and .vb-news, matching the Figma design.
 *
 * Each logo is added separately so you can independently adjust:
 * - position (right, bottom, left, top)
 * - size (width, height)
 * - rotation / direction (transform: rotate(...))
 */

/* Left Logo (V-mark outline) */
.vb-audience::before {
    position: absolute;
    z-index: 2;
    right: 433px;
    bottom: -167px;
    width: 332px;
    height: 332px;
	content: "";
	background-image: url("../images/mark-outline-v.svg");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	pointer-events: none;
	transform: rotate(0deg); /* Adjust rotation of Left Logo here */
}

/* Right Logo (B-mark outline) */
.vb-audience::after {
    position: absolute;
    z-index: 2;
    right: 68px;
    bottom: -165px;
    width: 332px;
    height: 332px;
	content: "";
	background-image: url("../images/mark-outline-b.svg");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	pointer-events: none;
	transform: rotate(0deg); /* Adjust rotation of Right Logo here */
}

.vb-audience__inner {
	position: relative;
	z-index: 5;
}

.vb-audience__lead {
	max-width: 32rem;
	margin-bottom: 2.25rem;
}

.vb-audience__grid,
.wp-block-group.vb-audience__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.75rem 2rem;
	margin: 0 0 1.75rem;
	padding: 0;
	list-style: none;
}

.vb-audience__grid li,
.vb-audience__grid>.wp-block-group {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
}

.vb-audience__grid img {
	display: block;
	width: auto;
	height: 42px;
	object-fit: contain;
}

.vb-audience__grid span,
.vb-audience__grid p {
	margin: 0;
	color: var(--vb-color-white);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	font-family: Helvetica, Arial, sans-serif;
}

.vb-audience__note {
	max-width: 36rem;
	margin-bottom: 1.5rem;
}

/* News and partners. */
.vb-news {
	/* position:relative + z-index:1 ensures .vb-news background stacks on top of
	   the decorative marks that bleed out of .vb-audience above. */
	position: relative;
	z-index: 1;
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
	background-color: #0f0f10;
	background-image: linear-gradient(rgba(11, 11, 12, 0.45), rgba(11, 11, 12, 0.45)), url("../images/news-bg.jpg");
	background-position: center;
	background-size: cover;
}

.vb-news__lead {
	max-width: 40rem;
	margin-bottom: 2rem;
}

.vb-news-card,
.wp-block-group.vb-news-card {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	overflow: hidden;
	margin-bottom: 2rem;
	background: var(--vb-color-card);
}

.vb-news-card>.wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 16rem;
	object-fit: cover;
}

.vb-news-card__body {
	min-width: 0;
	min-height: 0;
	padding: 1.5rem 1.65rem 1.75rem;
}

.vb-news-card__body h3 {
	margin: 0 0 0.85rem;
	color: var(--vb-color-white);
}

.vb-partners,
.wp-block-group.vb-partners {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	gap: 0.85rem 1.5rem;
	padding-top: 1.35rem;
	border-top: 1px solid rgba(255, 255, 255, 0.35);
}

.vb-partners p {
	margin: 0;
	font-weight: 700;
}

.vb-partners ul,
.vb-partners__logos,
.wp-block-group.vb-partners__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 1.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vb-partners li,
.vb-partners__logos .wp-block-image {
	margin: 0;
	line-height: 0;
}

.vb-partners img {
	display: block;
	height: 38px;
	width: auto;
	max-width: 13.75rem;
	object-fit: contain;
}

/* Join. */
.vb-join {
	overflow: hidden;
	background: var(--vb-color-bg);
}

.vb-join__inner,
.wp-block-group.vb-join__inner {
	display: grid;
	grid-template-columns: minmax(18rem, 1fr) minmax(16rem, 0.9fr);
	align-items: center;
	gap: 2rem;
	padding-block: clamp(3rem, 7vw, 5.5rem);
}

.vb-join__copy {
	max-width: 34rem;
}

.vb-join__copy .vb-btn,
.vb-join__copy .wp-block-buttons {
	margin-top: 0.75rem;
}

.vb-join__media img,
.vb-join__media .wp-block-image {
	display: block;
	width: 100%;
	max-height: 28rem;
	aspect-ratio: 208 / 209;
	object-fit: cover;
	clip-path: url("#vb-mark-b-clip");
}

/* Contact form. */
.vb-contact {
	position: relative;
	overflow: hidden;
	scroll-margin-top: 5rem;
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
	background: var(--vb-color-bg);
}

.vb-contact__frame {
	position: absolute;
	inset: 4% 0;
	background-image: url("../images/vb-frame.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	opacity: 0.95;
	pointer-events: none;
}

.vb-contact__inner {
	position: relative;
	z-index: 1;
	max-width: 950px;
}

.vb-contact__intro p {
	max-width: 40rem;
}

.vb-contact__intro .vb-section-title {
	max-width: none;
	font-size: clamp(1.75rem, 4vw + 1rem, 2.5rem);
	line-height: 1.15;
}

.vb-contact .wpcf7 {
	margin-top: 1.75rem;
}

.vb-story::before {
    width: min(46vw, 688px);
    bottom: -120px;
}

@media (max-width: 1400px) {
    .vb-story::before {
        bottom: -110px;
    }

}

@media (max-width: 1300px) {
    .vb-story::before {
        width: min(43vw, 688px);
        bottom: -95px;
    }

}

@media (max-width: 1200px) {
    .vb-story::before {
        width: min(40vw, 688px);
        bottom: -82px;
    }

}

@media (max-width: 1090px) {
    .vb-story::before {
        width: min(35vw, 688px);
        bottom: -64px;
    }

}

@media (max-width: 1000px) {
    .vb-story::before {
        width: min(33vw, 688px);
        bottom: -58px;
    }

}

/* Desktop composition. */
@media (min-width: 901px) {
	.vb-join {
		background: var(--vb-color-panel);
	}

	.vb-offer__cards,
	.wp-block-group.vb-offer__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vb-story {
		overflow: visible;
		z-index: 1;
	}

	.vb-method {
		z-index: 0;
	}

	.vb-method::after {
		display: block;
		top: calc(var(--vb-method-pad-y) - 25px);
		left: calc(var(--vb-home-gutter) - 18px);
		width: calc(208px + 236px);
		background-position: left top, 236px top;
	}

	.vb-story__media {
		display: flex;
		align-items: end;
		justify-content: center;
		height: 100%;
	}

	.vb-story__inner,
	.wp-block-group.vb-story__inner {
		max-width: min(100%, calc(900px + var(--vb-home-gutter)));
		grid-template-columns: minmax(0, 620px) minmax(0, 1fr);
	}

	.vb-story__copy {
		max-width: 620px;
	}

	.vb-story__media img {
		width: min(430px, 100%);
		height: auto;
	}

	.vb-join__inner,
	.wp-block-group.vb-join__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, var(--vb-join-media-size));
	}

	.vb-join__media,
	.wp-block-group.vb-join__media {
		width: min(var(--vb-join-media-size), 100%);
		max-width: var(--vb-join-media-size);
		justify-self: end;
	}

	.vb-join__media .wp-block-image,
	.vb-join__media img {
		width: 100%;
		height: auto;
		max-width: var(--vb-join-media-size);
		max-height: var(--vb-join-media-size);
		aspect-ratio: 1;
	}

	.vb-offer::after {
		background-image: url("../images/offer-mark.svg");
		background-repeat: no-repeat;
		background-position: right bottom;
		background-size: 156px 300px;
	}

	.vb-offer.is-mark-parallax::after {
		background-image: none;
	}

	.vb-offer__mark {
		position: absolute;
		z-index: 1;
		right: 0;
		bottom: 0;
		width: 156px;
		height: 300px;
		background-image: url("../images/offer-mark.svg");
		background-repeat: no-repeat;
		background-position: right bottom;
		background-size: 156px 300px;
		pointer-events: none;
		transform: translate3d(0, 0, 0);
		will-change: transform;
	}

	.vb-hero__actions {
		gap: 12px 24px;
	}

	a.vb-hero__more,
	.vb-hero__more a {
		border: 0;
		padding: 0;
		height: auto;
		font-family: var(--vb-font-display);
		font-weight: 700;
		font-style: normal;
		font-size: 16px;
		line-height: 1.5;
		letter-spacing: 0;
		text-decoration: underline;
		text-underline-offset: 0.28em;
	}

	p.vb-hero__eyebrow {
		font-family: var(--vb-font-display);
		font-weight: 700;
		font-style: normal;
		font-size: 18px;
		line-height: 1.3;
		letter-spacing: 0;
	}

	.vb-hero {
		background-color: var(--vb-color-panel);
		background-image: url("../images/hero-marks.svg");
		background-repeat: no-repeat;
		background-position: left bottom;
		background-size: 676px 263px;
	}

	.vb-hero__inner,
	.wp-block-group.vb-hero__inner {
		display: flex;
		align-items: center;
		width: min(1560px, calc(100% - var(--wp--style--root--padding-left)));
		margin-left: auto;
		margin-right: 0;
	}

	.vb-hero__inner.has-global-left-padding {
		padding-left: 0;
	}

	.vb-hero__copy {
		flex: 0 0 min(var(--vb-hero-copy-max-width), 50%);
		width: min(var(--vb-hero-copy-max-width), 50%);
		height: var(--vb-hero-desktop-height);
		padding: 0;
	}

	.vb-hero__media {
		flex: 1 1 auto;
		width: auto;
		height: var(--vb-hero-desktop-height);
		min-height: var(--vb-hero-desktop-height);
	}

	.vb-hero__media img {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 80%, 20% 55%, 0 30%)
	}

	/* VBC-36: Hospitality mirrors the hero so the photo sits on the left. */
	.vb-hero.vb-hospitality {
		background-color: var(--vb-color-bg);
		background-position: right bottom;
	}

	.vb-hero.vb-hospitality .vb-hero__inner,
	.wp-block-group.vb-hero.vb-hospitality .vb-hero__inner {
		flex-direction: row-reverse;
		column-gap: clamp(2rem, 4vw, 4rem);
		width: min(1560px, calc(100% - var(--wp--style--root--padding-left)));
		margin-left: auto;
		margin-right: 0;
	}

	.vb-hero.vb-hospitality .vb-hero__media img {
		clip-path: polygon(0 0, 100% 0, 100% 30%, 80% 55%, 100% 80%, 100% 100%, 0 100%);
	}

	.vb-hero.vb-hospitality .vb-hero__title {
		margin-right: clamp(1rem, 2.5vw, 2rem);
	}

	.vb-news-card {
		box-sizing: border-box;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: minmax(var(--vb-news-card-content-min-height), auto);
		align-items: stretch;
		gap: 40px;
		padding: 25px 40px;
		max-width: 1200px;
		min-height: var(--vb-news-card-min-height);
	}

	.vb-news-card>.wp-block-image {
		height: 100%;
		min-height: 0;
		overflow: hidden;
	}

	.vb-news-card>.wp-block-image img {
		min-height: 0;
		height: 100%;
		object-fit: cover;
	}

	.vb-news-card__body {
		display: flex;
		flex-direction: column;
		justify-content: center;
		height: auto;
		padding: 0;
	}

	.vb-partners {
		flex-wrap: nowrap;
		gap: 1.5rem 2rem;
	}

	.vb-partners p {
		flex: 0 0 auto;
		white-space: nowrap;
	}

	.vb-partners ul,
	.vb-partners__logos,
	.wp-block-group.vb-partners__logos {
		flex: 1 1 auto;
		flex-wrap: nowrap;
		justify-content: space-between;
		gap: 1.25rem 2rem;
		min-width: 0;
	}

	.vb-partners li,
	.vb-partners__logos .wp-block-image {
		flex: 0 0 auto;
	}

	.vb-partners img {
		max-width: none;
	}

	.vb-generation__inner,
	.wp-block-group.vb-generation__inner {
		display: flex;
		align-items: stretch;
		width: min(1560px, calc(100% - var(--wp--style--root--padding-left)));
		min-height: 769px;
		margin-left: auto;
		margin-right: 0;
	}

	.vb-generation__copy {
		flex: 0 0 auto;
		width: fit-content;
		max-width: 38rem;
		padding-left: 0;
		padding-right: 0;
	}

	.vb-generation__copy p {
		max-width: none;
	}

	.vb-generation__media {
		flex: 1 1 auto;
		clip-path: polygon(26% 1px, 100% 0px, 100% 100%, 26% 100%, 26% 84.22%, 3.5% 53.57%, 26% 24%);
	}

	.vb-generation__media img {
		/* Fill the media container; center the trainer's face and hoodie logo */
		inset: 0;
		width: 100%;
		height: 100%;
		max-width: none;
		object-fit: cover;
		object-position: 52% top;
	}

	.vb-contact,
	.wp-block-group.vb-contact,
	.wp-block-group.alignfull.vb-contact,
	body.home .vb-contact {
		overflow: visible;
		z-index: auto;
		background: transparent;
		padding-bottom: 0;
	}

	.vb-contact__frame,
	body.home .vb-contact__frame {
		display: block;
		inset: auto auto auto 48.75%;
		top: 330px;
		bottom: calc((-1 * var(--vb-contact-overlap)) + 100px);
		z-index: 1;
		width: min(1477px,
				max(77vw,
					calc(min(1400px, calc(95vw - 2 * var(--vb-home-gutter))) + 4rem)));
		height: auto;
		background-position: top center;
		background-size: 100% 100%;
		opacity: 1;
		transform: translateX(-50%);
	}

	.vb-contact__inner,
	body.home .vb-contact__inner {
		z-index: 2;
	}

	.vb-contact .wpcf7 {
		margin-top: calc(1.75rem + 4.5rem);
		padding-bottom: 6rem;
	}

	body.home main.vb-home,
	body.home #wp--skip-link--target {
		position: relative;
		z-index: auto;
		overflow: visible;
		flex: 0 0 auto;
		margin-bottom: calc(-1 * var(--vb-contact-overlap));
	}

	.wp-site-blocks>.vb-home+.wp-block-template-part,
	body.home footer.wp-block-template-part {
		display: block;
		flex: 0 0 auto;
		margin-top: 0;
		margin-block-start: 0;
		position: relative;
		z-index: 0;
		overflow: visible;
	}

	.wp-site-blocks>.vb-home+.wp-block-template-part .vb-site-footer,
	body.home .vb-site-footer {
		position: relative;
		overflow: visible;
		flex: none;
		padding-top: calc(var(--vb-contact-overlap) + var(--vb-contact-footer-space));
	}

	body.home .vb-site-footer::before {
		display: none !important;
	}
}

@media (max-width: 1300px) and (min-width: 901px) {
	.vb-generation__inner,
	.wp-block-group.vb-generation__inner {
		min-height: clamp(480px, 52vw, 680px);
	}

	.vb-generation__copy {
		flex: 0 0 min(32rem, 46%);
		max-width: 32rem;
		padding-right: 2rem;
	}

	.vb-generation__media {
		flex: 1 1 auto;
		clip-path: polygon(18% 1px, 100% 0px, 100% 100%, 18% 100%, 18% 84.22%, 2% 53.57%, 18% 24%);
	}

	.vb-generation__media img {
		object-position: 50% 10%;
	}

	.vb-generation__media::after {
		right: 3rem;
		left: auto;
	}
}

@media (max-width: 1220px) and (min-width: 900px) {
    .vb-audience::before {
        right: 317px;
        bottom: -123px;
        width: 250px;
        height: 250px;
    }

    .vb-audience::after {
        right: 40px;
        bottom: -123px;
        width: 250px;
        height: 250px;
    }
}

.vb-offer .is-style-card p {
	margin-right: 70px;
}

@media (max-width: 1100px) {
	.vb-offer .is-style-card p {
		margin-right: 35px;
	}
}

/* Tablet and mobile composition. */
@media (max-width: 900px) {
	:root {
		--wp--style--root--padding-left: 1.25rem;
		--wp--style--root--padding-right: 1.25rem;
		--vb-color-panel: var(--vb-color-bg);
		--wp--preset--color--panel: var(--wp--preset--color--base);
	}

	.vb-hero,
	.vb-generation,
	.vb-audience,
	.vb-join {
		background: var(--vb-color-black);
		background-color: var(--vb-color-black);
	}

	.vb-home,
	.vb-hero,
	.vb-offer,
	.vb-story,
	.vb-method,
	.vb-strengths,
	.vb-generation,
	.vb-audience,
	.vb-news,
	.vb-join,
	.vb-contact,
	.editor-styles-wrapper {
		--vb-home-gutter: var(--wp--style--root--padding-left);
	}

	.vb-home p {
		margin: 0 0 1.5rem;
	}

	.vb-hero__inner,
	.wp-block-group.vb-hero__inner,
	.vb-story__inner,
	.wp-block-group.vb-story__inner,
	.vb-generation__inner,
	.wp-block-group.vb-generation__inner,
	.vb-join__inner,
	.wp-block-group.vb-join__inner,
	.vb-news-card,
	.wp-block-group.vb-news-card {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
		min-height: 0;
		height: auto;
		max-height: none;
	}

	.vb-hero__copy,
	.vb-story__copy,
	.vb-generation__copy,
	.vb-join__copy,
	.vb-hero__media,
	.vb-story__media,
	.vb-generation__media,
	.vb-join__media,
	.vb-news-card>.wp-block-image {
		flex: none;
		width: 100%;
		max-width: none;
		min-width: 0;
		height: auto;
	}

	.vb-news-card>.wp-block-image {
		max-height: 18rem;
	}

	.vb-news-card>.wp-block-image img {
		min-height: 0;
		height: 18rem;
		max-height: 18rem;
		width: 100%;
		object-fit: cover;
	}

	.vb-hero__copy {
		margin-right: 0;
		padding-block: 2rem 2.25rem;
		padding-right: var(--wp--style--root--padding-right);
		padding-left: var(--wp--style--root--padding-left);
		clip-path: none;
	}

	.vb-generation__copy {
		margin-right: 0;
		padding-block: 2rem 2.25rem;
		padding-right: var(--wp--style--root--padding-right);
		padding-left: var(--wp--style--root--padding-left);
		clip-path: none;
	}

	.vb-hero__media,
	.vb-generation__media,
	.vb-story__media,
	.vb-join__media {
		min-height: 16rem;
	}

	.vb-hero__media img,
	.vb-generation__media img {
		position: relative;
		inset: auto;
		width: 100%;
		height: 100%;
		min-height: 16rem;
		object-fit: cover;
		object-position: center top;
		clip-path: none;
	}

	.vb-hero__media .wp-block-image,
	.vb-generation__media .wp-block-image {
		position: relative;
		inset: auto;
		width: 100%;
		height: auto;
	}

	.vb-hero__title {
		font-size: clamp(1.85rem, 9vw, 2.5rem);
	}

	.vb-offer,
	.vb-story,
	.vb-method,
	.vb-strengths,
	.vb-audience,
	.vb-news,
	.vb-contact {
		padding-block: 3rem 3.5rem;
	}

	.vb-offer__intro {
		margin-bottom: 2rem;
	}

	.vb-offer__title {
		max-width: 42rem;
		font-size: 40px;
		line-height: 1.12;
	}

	.vb-offer .is-style-card {
		min-height: 0;
		padding: 32px 24px;
	}

	.vb-story.has-global-left-padding {
		padding-right: var(--wp--style--root--padding-right);
	}

	.vb-story__media img,
	.vb-join__media img,
	.vb-story__media .wp-block-image,
	.vb-join__media .wp-block-image {
		width: 100%;
		max-width: none;
		max-height: 18rem;
		aspect-ratio: auto;
		clip-path: none;
	}

	.vb-offer__cards,
	.wp-block-group.vb-offer__cards {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.vb-method__steps,
	.wp-block-group.vb-method__steps {
		/* One column so the third step is not orphaned half-width without a full title rule. */
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.vb-method__steps>.wp-block-group {
		text-align: center;
	}

	.vb-method__steps h3 {
		justify-content: center;
		text-align: center;
	}

	.vb-method__steps h3::after {
		content: none;
	}

	.vb-method__steps p {
		margin-right: 0;
		margin-inline: auto;
		max-width: 32rem;
		text-align: center;
	}

	.vb-story {
		overflow: visible;
		z-index: 1;
	}

	.vb-method {
		z-index: 0;
	}
	.vb-method::before {
		display: none;
	}

	.vb-method::after,
	.vb-method.has-global-padding::after {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 0 !important;
		top: calc(var(--vb-method-pad-y) - 10px) !important;
		left: var(--vb-home-gutter) !important;
		right: auto !important;
		bottom: auto !important;
		width: calc(140px + 126px) !important;
		height: 140px !important;
		background-image: url("../images/vb-mark-v.svg"), url("../images/vb-mark-b.svg") !important;
		background-repeat: no-repeat !important;
		background-size: 140px 140px, 140px 140px !important;
		background-position: left top, 126px top !important;
		opacity: 0.95 !important;
		pointer-events: none !important;
	}

	.vb-story::before {
        width: min(43vw, 688px);
        bottom: -67px;
		opacity: 0.6;
	}

	.vb-story,
	.vb-story.has-global-left-padding {
		overflow: visible;
	}

	.vb-story::before,
	.vb-story.has-global-left-padding::before {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		right: 0 !important;
		bottom: 0 !important;
		left: auto !important;
		top: auto !important;
		width: min(420px, 68vw) !important;
		height: 285px !important;
		background-image: url("../images/mark-pattern.png") !important;
		background-repeat: no-repeat !important;
		background-size: contain !important;
		background-position: right bottom !important;
		opacity: 0.42 !important;
		pointer-events: none !important;
		z-index: 0 !important;
	}

	.vb-generation__media::after {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 1 !important;
		bottom: 1rem !important;
		left: 1.25rem !important;
		right: auto !important;
		top: auto !important;
		width: 70px !important;
		height: 222px !important;
		background-image: url("../images/mark-pattern.png") !important;
		background-repeat: no-repeat !important;
		background-size: 420px auto !important;
		background-position: left top !important;
		opacity: 0.95 !important;
		pointer-events: none !important;
	}

	.vb-strengths__grid,
	.vb-audience__grid,
	.vb-form__grid {
		grid-template-columns: 1fr 1fr;
	}

	.vb-strengths__grid,
	.wp-block-group.vb-strengths__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
	}

	.vb-audience__grid,
	.wp-block-group.vb-audience__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vb-audience__grid>.wp-block-group,
	.vb-audience__grid li {
		min-width: 0;
		align-items: center;
		text-align: center;
	}

	.vb-audience__grid .wp-block-image,
	.vb-audience__grid img {
		margin-inline: auto;
	}

	.vb-audience__grid span,
	.vb-audience__grid p {
		text-align: center;
	}

	.vb-join__inner,
	.wp-block-group.vb-join__inner {
		padding-block: 2.5rem 3rem;
	}

	.vb-news-card,
	.wp-block-group.vb-news-card {
		min-width: 0;
	}

	.vb-partners,
	.wp-block-group.vb-partners,
	.vb-partners__logos,
	.wp-block-group.vb-partners__logos {
		min-width: 0;
	}

	.vb-contact,
	.vb-contact.has-global-padding,
	.wp-block-group.vb-contact,
	.wp-block-group.alignfull.vb-contact,
	body.home .vb-contact {
		overflow: visible !important;
		z-index: auto !important;
		background: transparent !important;
		padding-bottom: 0 !important;
	}

	.vb-contact__frame,
	.vb-contact.has-global-padding .vb-contact__frame,
	.wp-block-group.vb-contact .vb-contact__frame,
	.wp-block-group.alignfull.vb-contact .vb-contact__frame,
	body.home .vb-contact__frame {
		display: block !important;
		/* Left/right padding instead of centered transform. */
		inset: auto var(--vb-home-gutter) !important;
		/* Start at the form level, not the top of the section. */
		top: 10rem !important;
		/* Extend into the footer overlap zone. */
		bottom: calc(-1 * var(--vb-contact-overlap)) !important;
		z-index: 1 !important;
		width: auto !important;
		height: auto !important;
		background-image: url("../images/vb-frame.svg") !important;
		background-repeat: no-repeat !important;
		background-position: top center !important;
		background-size: 100% 100% !important;
		opacity: 1 !important;
		transform: none !important;
		pointer-events: none !important;
	}

	.vb-contact__inner,
	body.home .vb-contact__inner {
		z-index: 2 !important;
	}

	/* Mobile footer overlap — mirrors the desktop mechanism so the frame SVG
	   can extend from the contact section into the footer background. */
	body.home main.vb-home,
	body.home #wp--skip-link--target {
		position: relative !important;
		z-index: auto !important;
		overflow: visible !important;
		flex: 0 0 auto !important;
		margin-bottom: calc(-1 * var(--vb-contact-overlap)) !important;
	}

	body.home footer.wp-block-template-part {
		display: block !important;
		flex: 0 0 auto !important;
		margin-top: 0 !important;
		margin-block-start: 0 !important;
		position: relative !important;
		z-index: 0 !important;
		overflow: visible !important;
	}

	.wp-site-blocks>.vb-home+.wp-block-template-part .vb-site-footer,
	body.home .vb-site-footer {
		position: relative !important;
		overflow: visible !important;
		flex: none !important;
		padding-top: calc(var(--vb-contact-overlap) + var(--vb-contact-footer-space)) !important;
	}

	body.home .vb-site-footer::before {
		display: none !important;
	}

	.vb-site-footer,
	footer.wp-block-template-part .vb-site-footer,
	.wp-block-group.vb-site-footer {
		background-color: var(--vb-color-accent) !important;
		background-image: url("../images/footer-pattern.svg") !important;
		background-repeat: repeat !important;
		background-position: -37px top !important;
		background-size: auto !important;
	}

	.vb-hero {
		background-image: none;
		background-color: var(--vb-color-bg);
	}

	.vb-hero__copy {
		position: relative;
		background-image: url("../images/hero-marks.svg");
		background-repeat: no-repeat;
		background-position: left bottom;
		background-size: min(420px, 70vw) auto;
		padding-bottom: 3.5rem;
	}

	/* VBC-36: Hospitality keeps the stacked order but moves the mark right. */
	.vb-hero.vb-hospitality .vb-hero__copy {
		background-position: right bottom;
	}

	.vb-offer::after {
		background-color: #000000d9;
		background-image: url("../images/offer-mark.svg");
		background-repeat: no-repeat;
		background-position: right bottom;
		background-size: min(120px, 28vw) 230px;
	}

	/* Tablet (max-width: 900px): scale and position marks */
	.vb-audience::before {
		right: 250px;
		bottom: -96px;
		width: 190px;
		height: 190px;
	}

	.vb-audience::after {
		right: 30px;
        bottom: -96px;
		width: 190px;
		height: 190px;
	}
}

/* Small tablet / under 800px: smaller than 900px */
@media (max-width: 800px) {
	.vb-audience::before {
		right: 217px;
		bottom: -90px;
		width: 180px;
		height: 180px;
	}

	.vb-audience::after {
		right: 15px;
		bottom: -90px;
		width: 180px;
		height: 180px;
	}
}

@media (max-width: 767px) {
    .vb-audience::before {
        right: 195px;
        bottom: -80px;
        width: 160px;
        height: 160px;
    }

    .vb-audience::after {
        right: 15px;
        bottom: -80px;
        width: 160px;
        height: 160px;
    }

	.vb-contact__frame,
	.vb-contact.has-global-padding .vb-contact__frame,
	.wp-block-group.vb-contact .vb-contact__frame,
	.wp-block-group.alignfull.vb-contact .vb-contact__frame,
	body.home .vb-contact__frame {
		display: none !important;
	}
}

/* Narrow mobile composition. */
@media (max-width: 640px) {
	.vb-offer .is-style-card p {
		margin-right: 0;
	}

	.vb-audience__grid,
	.wp-block-group.vb-audience__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem 1rem;
	}

	.vb-offer__cards,
	.wp-block-group.vb-offer__cards,
	.vb-method__steps,
	.wp-block-group.vb-method__steps,
	.vb-strengths__grid {
		grid-template-columns: 1fr;
	}

	.vb-strengths__grid,
	.wp-block-group.vb-strengths__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.vb-story::before {
		width: min(64vw, 420px);
		bottom: -60px;
		opacity: 0.5;
	}

	.vb-story,
	.vb-story.has-global-left-padding {
		overflow: visible !important;
	}

	.vb-story::before,
	.vb-story.has-global-left-padding::before {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: auto !important;
		top: auto !important;
		width: min(320px, 72vw) !important;
		height: 220px !important;
		background-image: url("../images/mark-pattern.png") !important;
		background-repeat: no-repeat !important;
		background-size: contain !important;
		background-position: right bottom !important;
		opacity: 0.45 !important;
		pointer-events: none !important;
	}

	.vb-method::after,
	.vb-method.has-global-padding::after {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 0 !important;
		top: 1.2rem !important;
		left: var(--vb-home-gutter) !important;
		right: auto !important;
		bottom: auto !important;
		width: calc(90px + 80px) !important;
		height: 90px !important;
		background-image: url("../images/vb-mark-v.svg"), url("../images/vb-mark-b.svg") !important;
		background-repeat: no-repeat !important;
		background-size: 90px 90px, 90px 90px !important;
		background-position: left top, 80px top !important;
		opacity: 0.9 !important;
		pointer-events: none !important;
	}

	.vb-generation__media::after {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 1 !important;
		bottom: 1rem !important;
		left: 1.25rem !important;
		right: auto !important;
		top: auto !important;
		width: 70px !important;
		height: 222px !important;
		background-image: url("../images/mark-pattern.png") !important;
		background-repeat: no-repeat !important;
		background-size: 420px auto !important;
		background-position: left top !important;
		opacity: 0.95 !important;
		pointer-events: none !important;
	}

	.vb-hero {
		background-image: none !important;
	}

	.vb-hero__copy {
		background-image: url("../images/hero-marks.svg") !important;
		background-repeat: no-repeat !important;
		background-position: left bottom !important;
		background-size: min(300px, 88vw) auto !important;
		padding-bottom: 2.8rem !important;
	}

	/* VBC-36: Hospitality keeps the stacked order but moves the mark right. */
	.vb-hero.vb-hospitality .vb-hero__copy {
		background-position: right bottom !important;
	}

	.vb-offer::after {
		background-image: url("../images/offer-mark.svg") !important;
		background-repeat: no-repeat !important;
		background-position: right 12px bottom !important;
		background-size: min(90px, 32vw) 175px !important;
	}

	.vb-hero__eyebrow {
		font-size: 1rem;
	}

	.vb-hero__actions,
	.wp-block-group.vb-hero__actions,
	.wp-block-group.vb-hero__actions.is-layout-flow {
		align-items: center;
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}

	.vb-hero__actions .wp-block-buttons,
	.wp-block-group.vb-hero__actions .wp-block-buttons,
	.vb-hero__actions .wp-block-buttons.is-layout-flex,
	.wp-block-group.vb-hero__actions .wp-block-buttons.is-layout-flex {
		justify-content: center;
		width: 100%;
		max-width: 17.5rem;
	}

	.vb-hero__actions .wp-block-button,
	.wp-block-group.vb-hero__actions .wp-block-button {
		width: 100%;
		max-width: 17.5rem;
	}

	.vb-hero__actions .vb-hero__more,
	.wp-block-group.vb-hero__actions .vb-hero__more {
		width: 100%;
		max-width: 17.5rem;
		text-align: center;
	}

	a.vb-btn,
	button.vb-btn,
	input.vb-btn,
	.wp-block-button__link,
	.wp-element-button,
	.wpcf7 input[type="submit"],
	.wpcf7 input[type="button"],
	.wpcf7-submit,
	.vb-home .wp-block-button__link,
	.editor-styles-wrapper .wp-block-button__link {
		width: 100%;
		max-width: 17.5rem;
		height: auto;
		min-height: 44px;
		padding: 0.8rem 1rem;
		white-space: normal;
		text-align: center;
		line-height: 1.4;
	}

	.vb-news-card>.wp-block-image,
	.vb-news-card>.wp-block-image img {
		height: 12rem;
		max-height: 12rem;
		min-height: 12rem;
	}

	.vb-news-card__body,
	.vb-join__copy,
	.vb-generation__copy,
	.vb-story__copy {
		min-width: 0;
	}

	.vb-partners img {
		max-width: min(13.75rem, 38vw);
	}
}

@media (max-width: 670px) {
    /* Mobile: scale down and adjust position */
    .vb-audience::before {
        right: 145px;
        bottom: -60px;
        width: 120px;
        height: 120px;
    }

    .vb-audience::after {
        right: 10px;
        bottom: -60px;
        width: 120px;
        height: 120px;
    }
}

@media (max-width: 480px) {

	.vb-offer,
	.vb-story,
	.vb-method,
	.vb-strengths,
	.vb-audience,
	.vb-news,
	.vb-contact {
		padding-block: 2.5rem 3rem;
	}

	.vb-audience__grid,
	.wp-block-group.vb-audience__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.vb-audience__grid img {
		height: 36px;
	}

	.vb-hero__title {
		font-size: clamp(1.75rem, 11vw, 2.25rem);
	}

	.vb-offer__title {
		font-size: 32px;
	}

	.vb-offer .is-style-card {
		padding: 24px 20px;
		border-right-width: 4px;
	}

	.vb-contact__intro .vb-section-title {
		font-size: clamp(1.6rem, 8vw, 2rem);
	}

	.vb-news-card__body {
		padding: 1.25rem 1.1rem 1.5rem;
	}

	.vb-contact,
	.vb-contact.has-global-padding,
	.wp-block-group.vb-contact,
	.wp-block-group.alignfull.vb-contact,
	body.home .vb-contact {
		overflow: visible !important;
		z-index: auto !important;
		background: transparent !important;
		padding-bottom: 0 !important;
	}

	.vb-contact__frame,
	.vb-contact.has-global-padding .vb-contact__frame,
	.wp-block-group.vb-contact .vb-contact__frame,
	.wp-block-group.alignfull.vb-contact .vb-contact__frame,
	body.home .vb-contact__frame {
		display: none !important;
	}

	.vb-contact__inner,
	body.home .vb-contact__inner {
		z-index: 2 !important;
	}

	/* Narrow mobile footer overlap — same mechanism as desktop for frame continuity. */
	body.home main.vb-home,
	body.home #wp--skip-link--target {
		margin-bottom: calc(-1 * var(--vb-contact-overlap)) !important;
	}

	.wp-site-blocks>.vb-home+.wp-block-template-part .vb-site-footer,
	body.home .vb-site-footer {
		padding-top: calc(var(--vb-contact-overlap) + var(--vb-contact-footer-space)) !important;
	}

	.vb-site-footer,
	footer.wp-block-template-part .vb-site-footer,
	.wp-block-group.vb-site-footer {
		background-color: var(--vb-color-accent) !important;
		background-image: url("../images/footer-pattern.svg") !important;
		background-repeat: repeat !important;
		background-position: -37px top !important;
		background-size: auto !important;
	}
}

@media (max-width: 767px) {
	.vb-form__grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* Tablet portrait: force .vb-generation__media::after to left side of screen. */
@media (max-width: 1024px) and (orientation: portrait) {
	.vb-generation__media::after {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 1 !important;
		top: auto !important;
		bottom: 1rem !important;
		left: 1.25rem !important;
		right: auto !important;
        width: 70px !important;
        height: 222px !important;
		background-image: url("../images/mark-pattern.png") !important;
		background-repeat: no-repeat !important;
		background-size: 420px auto !important;
		background-position: left top !important;
		opacity: 0.95 !important;
		pointer-events: none !important;
	}
}

/*
 * Large tablets (iPad Pro 13, Surface Pro 10 ~901-1100px):
 * stack generation to full width and remove the angled clip-path.
 * The clip-path was cutting off the left-positioned ::after,
 * and the 2-column grid kept the photo at half width.
 */
@media (max-width: 1100px) and (min-width: 901px) {
	.vb-generation__inner,
	.wp-block-group.vb-generation__inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		width: 100% !important;
		min-height: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.vb-generation__copy,
	.wp-block-group.vb-generation__copy {
		width: 100% !important;
		max-width: none !important;
		padding-block: 2rem 2.25rem !important;
		padding-right: var(--wp--style--root--padding-right, 1.25rem) !important;
		padding-left: var(--wp--style--root--padding-left, 1.25rem) !important;
	}

	.vb-generation__media,
	.wp-block-group.vb-generation__media {
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		min-height: 16rem !important;
		clip-path: none !important;
	}

	.vb-generation__media .wp-block-image {
		position: relative !important;
		inset: auto !important;
		width: 100% !important;
		height: auto !important;
	}

	.vb-generation__media img {
		position: relative !important;
		inset: auto !important;
		width: 100% !important;
		height: auto !important;
		min-height: 16rem !important;
		max-height: 30rem !important;
		max-width: none !important;
		object-fit: cover !important;
		object-position: center top !important;
		clip-path: none !important;
	}

	.vb-generation__media::after {
		display: block !important;
		content: "" !important;
		position: absolute !important;
		z-index: 1 !important;
		top: auto !important;
		bottom: 1rem !important;
		left:  1.25rem !important;
		right: auto !important;
        width: 70px !important;
        height: 222px !important;
		background-image: url("../images/mark-pattern.png") !important;
		background-repeat: no-repeat !important;
		background-size: 420px auto !important;
		background-position: left top !important;
		opacity: 1 !important;
		pointer-events: none !important;
	}
}

