/* Public wave: architectural templates, scoped to public blocks/compositions. */
.wp-site-blocks > main.vb-public { padding-inline: 0; }
body.vb-shell-ready .wp-site-blocks > main.vb-public { margin-block-start: -80px; }
.vb-public { background: var(--wp--preset--color--surface); }
.vb-public > *, .vb-public .wp-block-group > :first-child { margin-block-start: 0; }
.vb-public :where(h1,h2,h3,p,figure) { margin-block: 0; }
.vb-public :where(section,div,article) { min-width: 0; }
.vb-public h1 { font-size: clamp(2rem,3.2vw,2.75rem); line-height: 1.35; max-width: 56rem; }
.vb-public h2 { font-size: clamp(1.5rem,2.4vw,2rem); line-height: 1.4; }
.vb-public h3 { font-size: 1.125rem; line-height: 1.65; }
.vb-public :where(h1,h2,h3) { overflow-wrap: anywhere; }
.vb-public :where(p,.vb-entry-content) { line-height: 2; }
.vb-public :where(img,video,iframe) { max-width: 100%; }
.vb-public img { height: auto; display: block; }
.vb-public video { width: 100%; }
.vb-public [id] { scroll-margin-top: calc(var(--vb-admin-offset) + 96px); }
.vb-page-hero { padding-block: calc(80px + clamp(2.5rem,5vw,4.5rem)) clamp(2.5rem,5vw,4rem); border-block-end: 1px solid var(--wp--preset--color--border); }
.vb-page-hero h1 { margin-block-start: 1.25rem; }
.vb-page-intro { max-width: 48rem; margin-block-start: 1.25rem !important; color: var(--wp--preset--color--muted); }
.vb-public-section { padding-block: clamp(2.5rem,5vw,4.5rem); }
.vb-public-section + .vb-public-section { padding-block-start: 1rem; }
.vb-public-list .vb-list-content { padding-block: 2.5rem 4rem; }
.vb-result-count { font-size: .875rem; color: var(--wp--preset--color--muted); margin-block-end: 1.5rem !important; }
.vb-filter-band { background: white; border-block-end: 1px solid var(--wp--preset--color--border); }
.vb-public-filters { padding-block: 2rem; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1rem; align-items: end; }
.vb-filter-field label,.vb-form-fields label { display: block; font-size: .875rem; font-weight: 700; margin-block-end: .5rem; }
.vb-public-filters :where(input,select),.vb-form-preview :where(input:not([type=checkbox]),select,textarea) { width: 100%; min-height: 48px; padding: .625rem .75rem; border: 1px solid #1f1f1f66; background: white; color: #1f1f1f; box-sizing: border-box; border-radius: 0; font: inherit; font-size: 1rem; }
.vb-filter-actions { grid-column: 1/-1; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.vb-public .wp-element-button,.vb-public button.wp-element-button { display: inline-block; padding: .75rem 1.5rem; background: #ED1B24; color: white; border: 0; border-radius: 0; font: inherit; font-size: 1.1875rem; font-weight: 800; text-decoration: none; min-height: 48px; box-sizing: border-box; cursor: pointer; }
.vb-public .wp-element-button:hover { background: #C81018; }
.vb-public [aria-disabled=true] { cursor: default; }
.vb-public-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.vb-list-fabricator .vb-public-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.vb-public-card { display: flex; flex-direction: column; border: 1px solid var(--wp--preset--color--border); background: white; overflow: hidden; }
.vb-card-media { display: block; overflow: hidden; aspect-ratio: 16/10; background: #1F1F1F; }
.vb-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease-out; }
.vb-public-card:hover .vb-card-media img { transform: scale(1.045); }
.vb-card-copy { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; gap: 1rem; }
.vb-card-copy :where(h2,h3) { font-size: 1.25rem; line-height: 1.65; }
.vb-card-copy :where(h2,h3) a { color: inherit; text-decoration: none; }
.vb-card-excerpt { font-size: .9375rem; color: var(--wp--preset--color--muted); }
.vb-card-more { display: flex; justify-content: space-between; gap: 1rem; border-block-start: 1px solid var(--wp--preset--color--border); padding-block-start: 1rem; margin-block-start: auto; color: inherit; text-decoration: none; font-weight: 700; min-height: 44px; }
.vb-card-more span { transition: transform 300ms; }
.vb-public-card:hover .vb-card-more span { transform: translateX(-4px); }
.vb-card-product { background: #1F1F1F; color: white; padding: 1.5rem; border-color: #1F1F1F; }
.vb-card-product .vb-card-copy { padding-inline: 0; padding-block-end: 0; }
.vb-card-product .vb-card-media { aspect-ratio: 2/1; border: 1px solid #ffffff30; margin-block-start: 1.25rem; }
.vb-card-product .vb-card-media img { object-fit: contain; padding: 1rem; box-sizing: border-box; }
.vb-card-product .vb-card-excerpt { color: #d1d5db; }
.vb-card-product :where(.vb-specs,.vb-card-more) { border-color: #ffffff30; }
.vb-card-codes { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; font-size: .8125rem; color: #d1d5db; overflow-wrap: anywhere; }
.vb-winabest-card { border-block-start: 2px solid #31927E; }
.vb-specs { border-block: 1px solid var(--wp--preset--color--border); margin-block: 1rem; }
.vb-specs > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem; padding-block: .875rem; border-block-end: 1px solid var(--wp--preset--color--border); font-size: .875rem; }
.vb-specs > div:last-child { border: 0; }
.vb-specs dt { font-weight: 500; }
.vb-specs dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.vb-card-fabricator .vb-card-media { aspect-ratio: 3/1; }
.vb-card-fabricator .vb-card-media img { object-fit: contain; padding: 1rem; box-sizing: border-box; }
.vb-card-certificate .vb-card-media { aspect-ratio: 3/4; background: white; }
.vb-card-certificate .vb-card-media img { object-fit: contain; padding: 1rem; box-sizing: border-box; }
.vb-list-project .vb-card-media { aspect-ratio: 4/3; }
.vb-featured-event .vb-list-content { padding-block: 3rem; }
.vb-event-featured-grid { grid-template-columns: 1fr; }
.vb-event-featured-grid .vb-card-event { display: grid; grid-template-columns: 7fr 5fr; background: #1F1F1F; color: white; border-color: #ffffff30; }
.vb-event-featured-grid .vb-card-media { aspect-ratio: auto; min-height: 400px; }
.vb-event-featured-grid .vb-card-copy { padding: 2.5rem; justify-content: center; }
.vb-event-featured-grid .vb-card-excerpt { color: #d1d5db; }
.vb-dark .vb-specs,.vb-dark .vb-specs > div { border-color: #ffffff30; }
.vb-empty { padding: clamp(1.5rem,3vw,3rem); border: 1px dashed var(--wp--preset--color--border); color: var(--wp--preset--color--muted); font-size: .9375rem; }
.vb-dark .vb-empty { color: #d1d5db; border-color: #ffffff40; }
.vb-media-empty { min-height: 160px; display: flex; align-items: center; justify-content: center; padding: 1.5rem; color: #d1d5db; border: 1px dashed #ffffff40; font-size: .875rem; box-sizing: border-box; text-align: center; }
.vb-card-media > .vb-media-empty { height: 100%; }
.vb-card-certificate .vb-media-empty { color: #525B67; border-color: #E5E7EB; }
.vb-pagination ul { display: flex; flex-wrap: wrap; gap: .625rem; list-style: none; padding: 0; margin-block: 2rem 0; }
.vb-pagination :where(a,span) { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #E5E7EB; padding: .25rem .5rem; box-sizing: border-box; text-decoration: none; }
.vb-pagination .current { background: #1F1F1F; color: white; }
.vb-detail-hero { padding-block: calc(80px + 3rem) 3.5rem; }
.vb-detail-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.vb-detail-hero h1 { margin-block-start: 1.5rem; }
.vb-detail-en { margin-block-start: 1.5rem !important; font-size: .875rem; text-align: start; unicode-bidi: isolate; }
.vb-detail-lead { margin-block-start: 1.5rem !important; max-width: 44rem; color: #d1d5db; }
.vb-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .625rem; font-size: .8125rem; color: #d1d5db; }
.vb-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-block-start: 2rem; }
.vb-product-stage { border: 1px solid #ffffff30; padding: 2rem; }
.vb-product-stage > img { width: 100%; height: 320px; object-fit: contain; }
.vb-product-stage details { margin-block-start: 1rem; }
.vb-product-stage summary { cursor: pointer; min-height: 44px; }
.vb-media-note { font-size: .875rem; color: #d1d5db; margin-block-start: 1rem !important; }
.vb-detail-content { padding-block: 3rem 4rem; }
.vb-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-block-end: 3rem; }
.vb-gallery > a { display: block; aspect-ratio: 16/10; overflow: hidden; background: #1F1F1F; }
.vb-gallery > a:first-child { grid-column: span 2; grid-row: span 2; }
.vb-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms; }
.vb-gallery a:hover img { transform: scale(1.035); }
.vb-entry-content { margin-block: 2rem; overflow-wrap: anywhere; }
.vb-entry-content > * { margin-block-start: 1.5rem; }
.vb-entry-content table { display: block; overflow-x: auto; max-width: 100%; }
.vb-entry-content iframe { width: 100%; }
.vb-entry-content :where(pre,code) { white-space: pre-wrap; overflow-wrap: anywhere; }
.vb-article-body { max-width: 960px; }
.vb-detail-section { margin-block-start: 3.5rem; border-block-start: 1px solid #E5E7EB; padding-block-start: 2rem; }
.vb-detail-section > h2 { margin-block-end: 1.5rem; }
.vb-two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.vb-corporate-split { display: grid; grid-template-columns: 7fr 5fr; gap: 3rem; align-items: center; }
.vb-corporate-media { min-height: 340px; background: #1F1F1F; }
.vb-corporate-media img { width: 100%; height: 340px; object-fit: cover; }
.vb-corporate-copy > p,.vb-callout > p { margin-block-start: 1.25rem; }
.vb-corporate-copy .wp-block-buttons,.vb-callout .wp-block-buttons { margin-block-start: 1.5rem; }
.vb-callout { border: 1px solid #E5E7EB; padding: clamp(1.5rem,3vw,2.5rem); }
.vb-contact-maps { display: grid; gap: 1.5rem; }
.vb-contact-maps .vb-corporate-media { min-height: 240px; }
.vb-contact-information h3 { margin-block-start: 1.5rem; }
.vb-contact-information p { color: #525B67; }
.vb-contact-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: 1rem; border-block-end: 1px solid #E5E7EB; }
.vb-form-column { margin-block-start: 3rem; }
.vb-form-preview { border: 1px solid #E5E7EB; padding: clamp(1.25rem,3vw,2rem); margin-block-start: 1.5rem; }
.vb-form-preview > p { font-size: .875rem; margin-block-end: 1rem; }
.vb-form-preview fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.vb-form-preview legend { font-weight: 700; margin-block-end: 1rem; }
.vb-form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vb-form-preview button { margin-block-start: 1.5rem; background: #1F1F1F; color: white; border: 1px solid #ffffff60; padding: .75rem 1rem; font: inherit; font-weight: 700; min-height: 48px; cursor: default; }
.vb-form-preview :disabled { opacity: 1; -webkit-text-fill-color: currentColor; }
.vb-form-preview .vb-checkbox { display: flex; gap: .625rem; align-items: center; min-height: 44px; }
.vb-form-preview textarea { resize: vertical; }
.vb-certificate-open { display: inline-block; max-width: 100%; }
.vb-certificate-open img { max-height: 420px; object-fit: contain; }

/* On-demand, dependency-free document/gallery viewer. */
.vb-document-viewer { background: #1F1F1F; color: white; border: 1px solid #ffffff30; padding: 0; width: min(1280px,96vw); height: 92dvh; max-width: 100vw; max-height: 100dvh; }
.vb-document-viewer::backdrop { background: #1f1f1fed; }
.vb-viewer-shell { display: grid; grid-template-rows: auto minmax(0,1fr) auto; height: 100%; }
.vb-viewer-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem; border-block-end: 1px solid #ffffff30; }
.vb-viewer-toolbar strong { flex: 1 1 160px; overflow-wrap: anywhere; font-size: .875rem; }
.vb-viewer-controls { display: flex; flex-wrap: wrap; gap: .5rem; }
.vb-document-viewer button { min-height: 44px; min-width: 44px; background: #1F1F1F; color: white; border: 1px solid #ffffff60; padding: .375rem .625rem; font: inherit; cursor: pointer; }
.vb-document-viewer button:focus-visible { outline: 3px solid white; outline-offset: 2px; }
.vb-viewer-stage { display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: none; cursor: grab; direction: ltr; }
.vb-viewer-stage img { max-width: 100%; max-height: 100%; object-fit: contain; transform-origin: center; user-select: none; -webkit-user-drag: none; }
.vb-viewer-status { padding: .5rem 1rem; margin: 0; border-block-start: 1px solid #ffffff30; font-size: .875rem; }
@media(max-width:1100px) { .vb-list-fabricator .vb-public-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:1023px) {
	.vb-public-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.vb-detail-split,.vb-corporate-split,.vb-two-columns,.vb-public .vb-network-grid { grid-template-columns: 1fr; gap: 2rem; }
	.vb-public-grid,.vb-list-fabricator .vb-public-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.vb-event-featured-grid { grid-template-columns: 1fr; }
	.vb-event-featured-grid .vb-card-event { grid-template-columns: 1fr; }
	.vb-event-featured-grid .vb-card-media { aspect-ratio: 16/9; min-height: 0; }
}
@media(max-width:639px) {
	.vb-public-filters,.vb-public-grid,.vb-list-fabricator .vb-public-grid,.vb-form-fields { grid-template-columns: 1fr; }
	.vb-page-hero { padding-block: 112px 2rem; }
	.vb-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.vb-gallery > a:first-child { grid-row: auto; }
	.vb-corporate-media { min-height: 240px; }
	.vb-document-viewer { width: 100vw; height: 100dvh; border: 0; margin: 0; }
	.vb-viewer-toolbar { padding: .5rem; }
	.vb-product-stage { padding: 1rem; }
	.vb-product-stage > img { height: 240px; }
}
@media(prefers-reduced-motion:reduce) { .vb-public * { transition: none !important; animation: none !important; } .vb-public-card:hover img,.vb-gallery a:hover img,.vb-public-card:hover .vb-card-more span { transform: none; } }

/* Approved page-specific rails and four-column sub-brand/project compositions. */
.vb-card-project,.vb-card-event { border: 0; background: transparent; }
.vb-card-project .vb-card-copy,.vb-card-event .vb-card-copy { padding-inline: 0; border-block-end: 1px solid #E5E7EB; }
.vb-list-project .vb-card-media { aspect-ratio: 16/10; }
.vb-list-project .vb-public-grid { row-gap: 3rem; }
.vb-list-certificate .vb-public-grid,.vb-article-rail .vb-public-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(300px,85vw); overflow-x: auto; scroll-snap-type: x mandatory; gap: 1.5rem; padding-block-end: 1rem; }
.vb-list-certificate .vb-public-card,.vb-article-rail .vb-public-card { scroll-snap-align: start; }
.vb-winabest-series .vb-public-grid,.vb-project-showcase .vb-public-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
@media(max-width:1023px) { .vb-winabest-series .vb-public-grid,.vb-project-showcase .vb-public-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:639px) { .vb-winabest-series .vb-public-grid { grid-template-columns: 1fr; } }

@media (min-width: 1024px) { .vb-team-split { grid-template-columns: 5fr 7fr; } }

/* Static corporate Pages: parity with the approved Emergent editorial system. */
.vb-public .vb-page-hero { background: #0B0D0F; color: #fff; border: 0; padding-block: calc(80px + clamp(3.25rem,6vw,5rem)) clamp(3.5rem,6vw,5rem); }
.vb-page-hero .vb-container { max-width: 1440px; }
.vb-page-hero .vb-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: #ffffff80; font-size: .75rem; }
.vb-page-hero .vb-breadcrumb a { color: inherit; text-decoration: none; transition: color 200ms; }
.vb-page-hero .vb-breadcrumb a:hover { color: #fff; }
.vb-page-hero .vb-index { display: flex; align-items: center; gap: 1rem; margin-block-start: 2rem !important; color: #ffffff73; font-size: .625rem; letter-spacing: .22em; direction: ltr; justify-content: flex-end; }
.vb-page-hero .vb-index::before { content: ""; width: 3rem; height: 2px; background: #ED1B24; }
.vb-public .vb-page-hero h1 { margin-block-start: 1.25rem; font-size: clamp(2rem,3.2vw,2.75rem); line-height: 1.2; font-weight: 900; }
.vb-page-hero .vb-page-intro { max-width: 42rem; margin-block-start: 1.5rem !important; color: #ffffffa6; font-size: clamp(1rem,1.3vw,1.125rem); line-height: 2; }
.vb-editorial-section { padding-block-end: clamp(4rem,7vw,6rem); }
.vb-section-offset { margin-block-start: clamp(4rem,7vw,6rem) !important; }
.vb-section-heading { display: flex; align-items: center; gap: .75rem; }
.vb-section-heading::before { content: ""; width: 2rem; height: 2px; flex: 0 0 auto; background: #ED1B24; }
.vb-media-tall { min-height: 480px; }
.vb-feature-split { align-items: center; gap: 2.5rem; }
.vb-media-feature { min-height: 460px; }
.vb-service-grid,.vb-consultation-intro { display: grid; grid-template-columns: 7fr 5fr; gap: 2.5rem; }
.vb-service-grid > *,.vb-consultation-intro > * { height: 100%; box-sizing: border-box; }
.vb-callout.vb-dark { background: #0B0D0F; color: #fff; border-color: #0B0D0F; }
.vb-callout.vb-dark p { color: #ffffffa6; }
.vb-card-icon { color: #ED1B24 !important; font-size: 2.5rem; line-height: 1; }
.vb-service-coverage { display: flex; flex-direction: column; }
.vb-accent-list,.vb-benefit-list { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1rem; }
.vb-accent-list li { display: flex; gap: .75rem; align-items: center; color: #525B67; font-size: .9375rem; }
.vb-accent-list li::before { content: ""; width: 1.25rem; height: 1px; background: #ED1B24; flex: 0 0 auto; }
.vb-benefit-list li { display: flex; align-items: center; gap: 1rem; border: 1px solid #E5E7EB; background: #fff; padding: 1.25rem; font-weight: 800; }
.vb-benefit-list li::before { content: "✓"; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; background: #0B0D0F; color: #ED1B24; }
.vb-resource-pending { border-inline-start: 2px solid #ED1B24; padding-inline-start: 1rem; color: #525B67; font-size: .875rem; }
.vb-section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; }
.vb-section-head a { color: #121417; font-weight: 800; text-decoration: none; }
.vb-form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: start; }
.vb-form-pair .vb-form-column { margin-block-start: 0; }
.vb-contact-layout { display: grid; grid-template-columns: 5fr 7fr; gap: 2.5rem; align-items: start; }
.vb-contact-card { border: 1px solid #E5E7EB; background: #fff; padding: clamp(1.75rem,3vw,2.25rem); }
.vb-map-placeholder { position: relative; min-height: 256px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; overflow: hidden; padding: 2rem; box-sizing: border-box; text-align: center; color: #fff; background-color: #111418; background-image: linear-gradient(#ffffff0f 1px,transparent 1px),linear-gradient(90deg,#ffffff0f 1px,transparent 1px); background-size: 32px 32px; }
.vb-map-placeholder p { font-weight: 800; }
.vb-map-placeholder span { color: #ffffff66; font-size: .625rem; letter-spacing: .2em; }
.vb-cooperation-layout { display: grid; grid-template-columns: 5fr 7fr; gap: 2.5rem; align-items: start; }
.vb-accent-note { border-inline-start: 2px solid #ED1B24; padding-inline-start: 1rem; font-size: .875rem; color: #525B67; }
.vb-articles-archive .vb-card-media { height: 224px; aspect-ratio: auto; }
.vb-articles-archive .vb-card-copy { padding: 1.5rem; }
@media(max-width:1023px) {
	.vb-service-grid,.vb-consultation-intro,.vb-form-pair,.vb-contact-layout,.vb-cooperation-layout { grid-template-columns: 1fr; gap: 2rem; }
	.vb-media-tall,.vb-media-feature { min-height: 384px; }
}
@media(max-width:639px) {
	.vb-public .vb-page-hero { padding-block: 112px 3.5rem; }
	.vb-page-hero .vb-index { margin-block-start: 1.75rem !important; }
	.vb-media-tall,.vb-media-feature { min-height: 288px; }
	.vb-team-split .vb-corporate-copy { order: 2; }
	.vb-team-split .vb-corporate-media { order: 1; }
}
