/* WebMax Page Builder — live site styles.
   Colours use the theme's palette variables with fallbacks. */

.wmpb-section {
	--wmpb-ink: var(--wp--preset--color--ink, #0F2533);
	--wmpb-ink-soft: var(--wp--preset--color--ink-soft, #3D5463);
	--wmpb-accent: var(--wp--preset--color--accent, #B5562F);
	--wmpb-accent-dark: var(--wp--preset--color--accent-dark, #8F4022);
	--wmpb-sand: var(--wp--preset--color--sand, #F5EFE6);
	--wmpb-line: var(--wp--preset--color--line, #E3DACB);
	--wmpb-heading-font: var(--wp--preset--font-family--heading, Georgia, serif);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	position: relative;
	color: var(--wmpb-ink);
}
.wmpb-section + .wmpb-section { margin-top: 0 !important; }

.wmpb-section :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote) { margin-top: 0; }
.wmpb-section :where(h1, h2) { margin-bottom: .6em; }
.wmpb-section :where(h3) { margin-bottom: .4em; }
.wmpb-section :where(p, ul, ol) { margin-bottom: 1em; }
.wmpb-section :where(p:last-child, ul:last-child) { margin-bottom: 0; }

/* Dark backgrounds */
.wmpb-dark { color: var(--wmpb-sand); }
.wmpb-dark :is(h1, h2, h3, h4) { color: #fff; }
.wmpb-dark a:not(.wp-element-button) { color: color-mix(in srgb, var(--wp--preset--color--accent, #B5562F) 42%, #fff); }
.wmpb-dark .wmpb-muted { color: rgba(245, 239, 230, .86); }
.wmpb-dark .wmpb-eyebrow { color: color-mix(in srgb, var(--wp--preset--color--accent, #B5562F) 55%, #fff); }

/* Shared bits */
.wmpb-eyebrow {
	color: var(--wmpb-accent);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: .75rem !important;
}
.wmpb-muted { color: var(--wmpb-ink-soft); }
.wmpb-small { font-size: .9375rem; }
.wmpb-center { text-align: center; }
.wmpb-head { margin-bottom: clamp(1.75rem, 4vw, 2.75rem) !important; }
.wmpb-head .wmpb-intro { max-width: 40rem; }
.wmpb-head.wmpb-center .wmpb-intro { margin-left: auto; margin-right: auto; }
.wmpb-rich > :last-child { margin-bottom: 0; }

.wmpb-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.wmpb-btn { text-decoration: none; display: inline-block; }
.wmpb-section .wmpb-btn-outline {
	background: transparent !important;
	color: inherit !important;
	box-shadow: inset 0 0 0 1px currentColor;
}
.wmpb-section .wmpb-btn-outline:hover { background: rgba(127, 127, 127, .12) !important; }

.wmpb-img { display: block; width: 100%; height: auto; }
.wmpb-img-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: .5rem;
	width: 100%;
	height: 100%;
	min-height: 220px;
	background: linear-gradient(160deg, var(--wp--preset--color--sea, #1E4A5C) 0%, var(--wp--preset--color--ink, #0F2533) 75%);
	color: rgba(245, 239, 230, .8);
	text-align: center;
}
.wmpb-img-ph-label { display: none; }
.wmpb-empty-box {
	border: 2px dashed var(--wmpb-line);
	border-radius: 10px;
	padding: 2rem;
	text-align: center;
	color: var(--wmpb-ink-soft);
}

/* Cards / grids */
.wmpb-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(min(var(--wmpb-min, 18rem), 100%), 1fr));
}
.wmpb-grid--small { --wmpb-min: 13rem; }
.wmpb-grid--medium { --wmpb-min: 17rem; }
.wmpb-grid--large { --wmpb-min: 24rem; }

.wmpb-card {
	background: #fff;
	color: var(--wmpb-ink);
	border: 1px solid var(--wmpb-line);
	border-radius: 10px;
	padding: 1.5rem;
	transition: transform .2s ease, box-shadow .2s ease;
}
.wmpb-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(15, 37, 51, .10); }
.wmpb-card :is(h3) { color: var(--wmpb-ink); }
.wmpb-card .wmpb-muted { color: var(--wmpb-ink-soft); }
.wmpb-card-link { font-weight: 600; margin-top: .75rem; }
.wmpb-card-link a { color: var(--wmpb-accent) !important; text-decoration: none; }

/* Hero */
.wmpb-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}
.wmpb-hero-grid.wmpb-no-card { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
.wmpb-hero-title { font-size: var(--wp--preset--font-size--huge, clamp(2.4rem, 5vw, 4rem)); }
.wmpb-lead { font-size: var(--wp--preset--font-size--large, 1.25rem); margin-bottom: 1.75rem !important; }
.wmpb-hero-card {
	background: var(--wp--preset--color--paper, #FFFDF9);
	color: var(--wmpb-ink);
	border-radius: 12px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
}
.wmpb-hero-card h3 { color: var(--wmpb-ink) !important; }
.wmpb-hero-card .wmpb-muted { color: var(--wmpb-ink-soft) !important; }
.wmpb-phone { font-family: var(--wmpb-heading-font); font-size: 1.4rem; font-weight: 600; margin-bottom: .5rem !important; }
.wmpb-phone a { color: var(--wmpb-accent) !important; text-decoration: none; }

/* Stats */
.wmpb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1.5rem; text-align: center; }
.wmpb-stat-value {
	font-family: var(--wmpb-heading-font);
	font-size: 2.2rem;
	line-height: 1.1;
	color: var(--wmpb-accent);
	margin-bottom: .35rem !important;
}
.wmpb-dark .wmpb-stat-value { color: color-mix(in srgb, var(--wp--preset--color--accent, #B5562F) 55%, #fff); }
.wmpb-stat-label { font-size: .9375rem; }

/* Image + text */
.wmpb-mt { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.wmpb-mt.is-image-right .wmpb-mt-media { order: 2; }
.wmpb-mt-media { border-radius: 12px; overflow: hidden; min-height: 320px; display: flex; }
.wmpb-mt-media .wmpb-img { object-fit: cover; height: 100%; min-height: 320px; }
.wmpb-mt-media .wmpb-img-ph { min-height: 420px; }
.wmpb-points { padding-left: 1.1rem; }
.wmpb-points li + li { margin-top: .4rem; }

/* Text */
.wmpb-text.wmpb-center .wmpb-rich { text-align: center; }

/* Image */
.wmpb-figure { margin: 0; }
.wmpb-figure:not(.alignfull) .wmpb-img, .wmpb-figure:not(.alignfull) .wmpb-img-ph { border-radius: 12px; }
.wmpb-figure figcaption { text-align: center; margin-top: .75rem; }
.wmpb-figure .wmpb-img-ph { min-height: 360px; }

/* Video */
.wmpb-video iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; display: block; }

/* Team */
.wmpb-person { padding: 0; overflow: hidden; }
.wmpb-person-photo { aspect-ratio: 4 / 4.2; background: var(--wmpb-sand); }
.wmpb-person-photo .wmpb-img { width: 100%; height: 100%; object-fit: cover; }
.wmpb-person-photo .wmpb-img-ph { background: var(--wmpb-sand); min-height: 0; }
.wmpb-initials { font-family: var(--wmpb-heading-font); font-size: 3rem; color: var(--wmpb-line); }
.wmpb-person-body { padding: 1.25rem 1.5rem 1.5rem; }
.wmpb-role { color: var(--wmpb-accent); font-weight: 600; margin-bottom: .5rem !important; }

/* Testimonials */
.wmpb-quote { margin: 0; border-left: 3px solid var(--wmpb-accent); padding: .5rem 1rem .5rem 1.5rem; }
.wmpb-quote blockquote { margin: 0 0 1rem; padding: 0; border: 0; }
.wmpb-quote blockquote p { font-family: var(--wmpb-heading-font); font-style: italic; font-size: 1.15rem; line-height: 1.55; }
.wmpb-quote figcaption { font-size: .9375rem; font-weight: 600; color: var(--wmpb-accent); }
.wmpb-dark .wmpb-quote figcaption { color: color-mix(in srgb, var(--wp--preset--color--accent, #B5562F) 55%, #fff); }

/* FAQ */
.wmpb-faq-item { border-bottom: 1px solid var(--wmpb-line); padding: 1.1rem 0; }
.wmpb-faq-item summary {
	cursor: pointer;
	font-family: var(--wmpb-heading-font);
	font-size: 1.2rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.wmpb-faq-item summary::-webkit-details-marker { display: none; }
.wmpb-faq-item summary::after { content: "+"; color: var(--wmpb-accent); font-size: 1.5rem; line-height: 1; flex: none; }
.wmpb-faq-item[open] summary::after { content: "–"; }
.wmpb-faq-item > p { margin: .75rem 0 0 !important; }

/* Pricing */
.wmpb-price-card { display: flex; flex-direction: column; }
.wmpb-price-card.is-featured { border: 2px solid var(--wmpb-accent); box-shadow: 0 14px 30px rgba(15, 37, 51, .10); }
.wmpb-price { margin-bottom: 1rem !important; }
.wmpb-price-amount { font-family: var(--wmpb-heading-font); font-size: 2.25rem; color: var(--wmpb-ink); }
.wmpb-checklist { list-style: none; padding: 0; margin: 0 0 1.5rem !important; flex: 1; }
.wmpb-checklist li { padding: .35rem 0 .35rem 1.6rem; position: relative; border-top: 1px solid var(--wmpb-line); font-size: .9375rem; }
.wmpb-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--wmpb-accent); font-weight: 700; }
.wmpb-price-card .wmpb-btns .wmpb-btn { width: 100%; text-align: center; }

/* CTA */
.wmpb-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.wmpb-cta-text { max-width: 40rem; }
.wmpb-cta-text h2 { margin-bottom: .35em !important; }

/* Contact */
.wmpb-contact { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: clamp(2rem, 6vw, 5rem); }
.wmpb-contact-line { margin-bottom: 1rem !important; }
.wmpb-contact-form {
	background: #fff;
	color: var(--wmpb-ink);
	border: 1px solid var(--wmpb-line);
	border-radius: 12px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	align-self: start;
}
.wmpb-form p { margin: 0 0 1rem; }
.wmpb-form .wmpb-req { color: var(--wmpb-accent); }
.wmpb-form .wmpb-form-check label { display: flex; gap: .6rem; align-items: center; font-weight: 500; }
.wmpb-form .wmpb-form-check input { width: 1.15rem; height: 1.15rem; padding: 0; flex: none; }
.wmpb-form .wmpb-form-actions { margin: 1.25rem 0 0; }
.wmpb-form .wmpb-form-btn { cursor: text; }
.wmpb-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.wmpb-form label { display: block; font-size: .9rem; font-weight: 600; margin: 0 0 .35rem; color: var(--wmpb-ink); }
.wmpb-form :is(input, textarea, select) {
	width: 100%;
	padding: .8rem 1rem;
	border: 1px solid var(--wmpb-line);
	border-radius: 6px;
	font: inherit;
	background: #fff;
	color: var(--wmpb-ink);
	box-sizing: border-box;
}
.wmpb-form :is(input, textarea, select):focus { outline: 2px solid var(--wmpb-accent); outline-offset: 1px; border-color: transparent; }
.wmpb-form button { cursor: pointer; border: 0; }
.wmpb-form button[disabled] { opacity: .6; cursor: wait; }
.wmpb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.wmpb-form-status { color: #9b1c1c; font-size: .9375rem; }
.wmpb-form-success {
	background: #eaf5ec;
	color: #1d5c2b;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin: 0 !important;
}
.wmpb-form.is-sent > :not(.wmpb-form-success) { display: none; }

/* Spacer */
.wmpb-spacer { display: flex; align-items: center; }
.wmpb-hr { width: 100%; border: 0; border-top: 1px solid var(--wmpb-line); margin: 0; }

/* Responsive */
@media (max-width: 781px) {
	.wmpb-hero-grid, .wmpb-mt, .wmpb-contact { grid-template-columns: minmax(0, 1fr); }
	.wmpb-mt.is-image-right .wmpb-mt-media { order: 0; }
	.wmpb-mt-media .wmpb-img-ph { min-height: 260px; }
	.wmpb-form-row { grid-template-columns: 1fr; }
}

/* ---------- Heading roles: the look stays the same whatever tag is chosen ---------- */
.wmpb-section :is(.wmpb-h-main, .wmpb-h-item) {
	font-family: var(--wmpb-heading-font);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.wmpb-section .wmpb-h-main { font-size: var(--wp--preset--font-size--x-large, 2rem); }
.wmpb-section .wmpb-h-item { font-size: 1.35rem; }
.wmpb-section .wmpb-hero-title { font-size: var(--wp--preset--font-size--huge, clamp(2.4rem, 5vw, 4rem)); }
.wmpb-section .wmpb-h.wmpb-h-large { font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
.wmpb-section .wmpb-h.wmpb-h-small { font-size: 1.3rem; }
.wmpb-section .wmpb-iconbox .wmpb-h-item { font-size: 1.3rem; }
.wmpb-section p:is(.wmpb-h-main, .wmpb-h-item) { color: var(--wmpb-ink); }
.wmpb-dark :is(h5, h6) { color: #fff; }
.wmpb-dark p:is(.wmpb-h-main, .wmpb-h-item) { color: #fff; }
.wmpb-dark :is(.wmpb-card, .wmpb-hero-card, .wmpb-col-bg-card, .wmpb-col-bg-white, .wmpb-col-bg-sand) p:is(.wmpb-h-main, .wmpb-h-item) { color: var(--wmpb-ink); }

/* Headings inside light cards stay dark on dark sections, whatever tag they use */
.wmpb-section :is(.wmpb-card, .wmpb-hero-card, .wmpb-form-card, .wmpb-contact-form, .wmpb-col-bg-card, .wmpb-col-bg-white, .wmpb-col-bg-sand) :is(h1, h2, h3, h4, h5, h6) { color: var(--wmpb-ink); }

/* ---------- Text formatting from the toolbar (v1.5) ---------- */
.wmpb-fs-xs { font-size: .75em; }
.wmpb-fs-sm { font-size: .875em; }
.wmpb-fs-lg { font-size: 1.25em; }
.wmpb-fs-xl { font-size: 1.5em; }
.wmpb-fs-2xl { font-size: 2em; line-height: 1.15; }
.wmpb-fs-3xl { font-size: 2.75em; line-height: 1.1; }
.wmpb-c-accent { color: var(--wp--preset--color--accent, #B5562F) !important; }
.wmpb-c-ink { color: var(--wp--preset--color--ink, #0F2533) !important; }
.wmpb-c-sea { color: var(--wp--preset--color--sea, #1E4A5C) !important; }
.wmpb-c-ink-soft { color: var(--wp--preset--color--ink-soft, #4A5A66) !important; }
.wmpb-c-sand { color: var(--wp--preset--color--sand, #F5EFE6) !important; }
.wmpb-c-paper { color: var(--wp--preset--color--paper, #FFFDF9) !important; }
.wmpb-c-white { color: #fff !important; }
[class*="wmpb-hl-"] { padding: .04em .18em; border-radius: .2em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.wmpb-hl-accent { background: color-mix(in srgb, var(--wp--preset--color--accent, #B5562F) 22%, transparent); }
.wmpb-hl-sand { background: var(--wp--preset--color--sand, #F5EFE6); color: var(--wp--preset--color--ink, #0F2533); }
.wmpb-hl-yellow { background: #fff2a8; color: #1d1d1d; }
.wmpb-hl-ink { background: var(--wp--preset--color--ink, #0F2533); color: #fff; }
.wmpb-upper { text-transform: uppercase; letter-spacing: .06em; }
.wmpb-font-heading { font-family: var(--wp--preset--font-family--heading, Georgia, serif); }
.wmpb-font-body { font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); }
span[style*="color"] a, .wmpb-c-accent a, [class*="wmpb-c-"] a { color: inherit; }

/* ===================================================================
   Modern sections (v1.9)
   =================================================================== */
.wmpb-section { --wmpb-radius: 14px; }
.wmpb-ico { width: 1.25em; height: 1.25em; flex: none; }
.wmpb-btn-ic { display: inline-flex !important; align-items: center; gap: .55em; }
.wmpb-btn-ic .wmpb-btn-ico { width: 1.15em; height: 1.15em; }
.wmpb-head-bar .wp-block-heading::after, .wmpb-head-bar :is(h2, h3, p.wmpb-h-main)::after {
	content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; background: var(--wmpb-accent); margin: .55em 0 0;
}
.wmpb-head-bar.wmpb-center :is(h2, h3, p.wmpb-h-main)::after { margin-left: auto; margin-right: auto; }

/* Hero: photo & badges */
.wmpb-s-hero-split { overflow: hidden; }
.wmpb-hs { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; min-height: clamp(420px, 58vh, 620px); }
.wmpb-hs-main { position: relative; z-index: 2; max-width: 40rem; }
.wmpb-section .wmpb-hs-title { font-size: clamp(2.4rem, 5.2vw, 4.25rem); line-height: 1.05; letter-spacing: -.02em; margin-bottom: .45em !important; }
.wmpb-hs-lead { max-width: 34rem; color: var(--wmpb-ink-soft); }
.wmpb-dark .wmpb-hs-lead { color: rgba(255, 255, 255, .86); }
.wmpb-hs .wmpb-btns { margin-bottom: 2rem; }
.wmpb-hs-media { position: relative; z-index: 1; }
.wmpb-hs-media .wmpb-img, .wmpb-hs-media .wmpb-img-ph { width: 100%; height: 100%; object-fit: cover; }
/* Fade: the photo runs to the page edge and fades into the background */
.wmpb-hs--fade, .wmpb-hs--overlay { position: static; }
.wmpb-hs--fade .wmpb-hs-media { position: absolute; top: 0; bottom: 0; width: 54%; max-width: none !important; }
.wmpb-hs--fade.wmpb-hs--right .wmpb-hs-media { right: 0; -webkit-mask-image: linear-gradient(to right, transparent 0, #000 30%); mask-image: linear-gradient(to right, transparent 0, #000 30%); }
.wmpb-hs--fade.wmpb-hs--left .wmpb-hs-media { left: 0; -webkit-mask-image: linear-gradient(to left, transparent 0, #000 30%); mask-image: linear-gradient(to left, transparent 0, #000 30%); }
.wmpb-hs--fade.wmpb-hs--left .wmpb-hs-main { grid-column: 2; }
.wmpb-hs--fade .wmpb-hs-main::before { content: ""; position: absolute; inset: -2rem -3rem -2rem -2rem; z-index: -1; background: radial-gradient(closest-side, var(--wmpb-hs-bg, rgba(255,255,255,.75)), transparent); pointer-events: none; }
.wmpb-dark .wmpb-hs--fade .wmpb-hs-main::before { --wmpb-hs-bg: rgba(0, 0, 0, .25); }
/* Rounded photo */
.wmpb-hs--rounded .wmpb-hs-media { align-self: stretch; min-height: 380px; border-radius: 24px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(15, 37, 51, .45); }
.wmpb-hs--rounded.wmpb-hs--left .wmpb-hs-media { order: -1; }
/* Photo behind the text */
.wmpb-hs--overlay { grid-template-columns: minmax(0, 1fr); }
.wmpb-hs--overlay .wmpb-hs-media { position: absolute; inset: 0; max-width: none !important; }
.wmpb-hs--overlay .wmpb-hs-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 20, 30, .82) 0%, rgba(10, 20, 30, .55) 45%, rgba(10, 20, 30, .1) 100%); }
.wmpb-hs--overlay .wmpb-hs-main { color: #fff; }
.wmpb-hs--overlay :is(.wmpb-hs-title, .wmpb-badges b) { color: #fff; }
.wmpb-hs--overlay .wmpb-hs-lead, .wmpb-hs--overlay .wmpb-badges span span { color: rgba(255, 255, 255, .85); }
.wmpb-hs--overlay .wmpb-eyebrow { color: color-mix(in srgb, var(--wmpb-accent) 50%, #fff); }
.wmpb-hs--noimg { grid-template-columns: minmax(0, 1fr); min-height: 0; }
/* Trust badges */
.wmpb-badges { list-style: none; padding: 0 !important; margin: 0 !important; display: flex; flex-wrap: wrap; gap: 1rem 1.75rem; }
.wmpb-badges li { display: flex; align-items: center; gap: .6rem; font-size: .9rem; line-height: 1.25; }
.wmpb-badges .wmpb-badge-ico { width: 30px; height: 30px; color: var(--wmpb-accent); stroke-width: 1.6; }
.wmpb-badges li > span { display: flex; flex-direction: column; }
.wmpb-badges b { font-weight: 600; }
.wmpb-badges span span { color: var(--wmpb-ink-soft); }
.wmpb-dark .wmpb-badges span span { color: rgba(255, 255, 255, .8); }

/* Services grid */
.wmpb-sg { display: grid; gap: clamp(.9rem, 2vw, 1.25rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.wmpb-sg--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wmpb-sg--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wmpb-sg--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wmpb-sg--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.wmpb-sg-card { position: relative; display: flex; flex-direction: column; gap: .55rem; padding: clamp(1.25rem, 2vw, 1.6rem); border-radius: var(--wmpb-radius); transition: transform .2s ease, box-shadow .2s ease; }
.wmpb-sg--card .wmpb-sg-card { background: #fff; box-shadow: 0 1px 2px rgba(15, 37, 51, .06), 0 8px 24px -12px rgba(15, 37, 51, .18); }
.wmpb-sg--card .wmpb-sg-card:hover, .wmpb-sg--outline .wmpb-sg-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(15, 37, 51, .06), 0 18px 36px -16px rgba(15, 37, 51, .28); }
.wmpb-sg--outline .wmpb-sg-card { border: 1px solid var(--wmpb-line); background: transparent; }
.wmpb-sg--plain .wmpb-sg-card { padding: 0; }
.wmpb-sg--center .wmpb-sg-card { text-align: center; align-items: center; }
.wmpb-sg-ico { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; color: var(--wmpb-accent); background: color-mix(in srgb, var(--wmpb-accent) 12%, transparent); margin-bottom: .35rem; }
.wmpb-sg-ico .wmpb-ico { width: 28px; height: 28px; stroke-width: 1.6; }
.wmpb-sg--ico-solid .wmpb-sg-ico { background: var(--wmpb-accent); color: #fff; }
.wmpb-sg--ico-plain .wmpb-sg-ico { width: auto; height: auto; background: none; border-radius: 0; }
.wmpb-sg--ico-plain .wmpb-sg-ico .wmpb-ico { width: 52px; height: 52px; stroke-width: 1.3; }
.wmpb-sg-photo { margin: calc(-1 * clamp(1.25rem, 2vw, 1.6rem)) calc(-1 * clamp(1.25rem, 2vw, 1.6rem)) .5rem; border-radius: var(--wmpb-radius) var(--wmpb-radius) 0 0; overflow: hidden; aspect-ratio: 4 / 3; }
.wmpb-sg--plain .wmpb-sg-photo { margin: 0 0 .5rem; border-radius: var(--wmpb-radius); }
.wmpb-sg-photo .wmpb-img, .wmpb-sg-photo .wmpb-img-ph { width: 100%; height: 100%; object-fit: cover; min-height: 0; }
.wmpb-section .wmpb-sg-title { font-size: 1.15rem; margin: 0 !important; line-height: 1.3; }
.wmpb-sg-card .wmpb-small { margin: 0 !important; flex: 1; }
.wmpb-sg-link { margin: .35rem 0 0 !important; font-weight: 600; font-size: .95rem; }
.wmpb-sg-link a { display: inline-flex; align-items: center; gap: .35rem; text-decoration: none; color: var(--wmpb-accent); }
.wmpb-sg-link .wmpb-ico { width: 1.05em; height: 1.05em; transition: transform .2s ease; }
.wmpb-sg-card:hover .wmpb-sg-link .wmpb-ico { transform: translateX(3px); }
.wmpb-dark .wmpb-sg--card .wmpb-sg-card { background: rgba(255, 255, 255, .06); box-shadow: none; }

/* Feature band */
.wmpb-fb { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 1.25rem 0; }
.wmpb-fb--band { border-radius: 18px; padding: clamp(1.4rem, 3vw, 2rem) clamp(1rem, 2vw, 1.5rem); color: #fff; }
.wmpb-fb--ink { background: var(--wp--preset--color--ink, #0F2533); }
.wmpb-fb--sea { background: var(--wp--preset--color--sea, #1E4A5C); }
.wmpb-fb--accent { background: var(--wmpb-accent); }
.wmpb-fb-item { display: flex; gap: .9rem; align-items: flex-start; padding: 0 clamp(.75rem, 2vw, 1.5rem); }
.wmpb-fb.has-dividers .wmpb-fb-item + .wmpb-fb-item { border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
.wmpb-fb-ico { width: 40px; height: 40px; stroke-width: 1.5; flex: none; }
.wmpb-fb--plain .wmpb-fb-ico { color: var(--wmpb-accent); }
.wmpb-section .wmpb-fb-title { font-size: 1.05rem; margin: 0 0 .2rem !important; }
.wmpb-fb--band .wmpb-fb-title { color: #fff; }
.wmpb-fb-text { margin: 0 !important; font-size: .92rem; opacity: .85; }

/* How it works */
.wmpb-steps { list-style: none; padding: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 1.5rem; counter-reset: none; }
.wmpb-step { position: relative; padding-top: 3.6rem; }
.wmpb-step-num { position: absolute; top: 0; left: 0; width: 2.8rem; height: 2.8rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 1.1rem; background: var(--wmpb-accent); color: #fff; box-shadow: 0 0 0 6px color-mix(in srgb, var(--wmpb-accent) 15%, transparent); }
.wmpb-step:not(:last-child)::after { content: ""; position: absolute; top: 1.4rem; left: 3.6rem; right: -1rem; height: 2px; background: repeating-linear-gradient(90deg, var(--wmpb-line) 0 8px, transparent 8px 14px); }
.wmpb-section .wmpb-step-title { font-size: 1.15rem; margin-bottom: .3rem !important; }

/* Reviews */
.wmpb-rv-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem 2rem; margin-bottom: 2rem; }
.wmpb-rv-top :is(h2, h3) { margin-bottom: 0 !important; }
.wmpb-rv-sum { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.wmpb-rv-score { font-size: 2.4rem; font-weight: 700; line-height: 1; }
.wmpb-stars { display: inline-flex; gap: 2px; }
.wmpb-stars svg { width: 18px; height: 18px; fill: #F5B301; stroke: none; }
.wmpb-stars svg.off { fill: color-mix(in srgb, currentColor 18%, transparent); }
.wmpb-rv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1.25rem; }
.wmpb-rv { margin: 0; background: #fff; border-radius: var(--wmpb-radius); padding: 1.5rem; display: flex; flex-direction: column; gap: .9rem; box-shadow: 0 8px 24px -14px rgba(15, 37, 51, .2); }
.wmpb-rv blockquote { margin: 0; padding: 0; border: 0; flex: 1; }
.wmpb-rv blockquote p { margin: 0; font-size: 1rem; line-height: 1.6; }
.wmpb-rv figcaption { display: flex; flex-direction: column; font-size: .9rem; }
.wmpb-rv-btn { margin-top: 1.75rem; text-align: center; }
.wmpb-dark .wmpb-rv { background: rgba(255, 255, 255, .07); box-shadow: none; }

/* Service areas */
.wmpb-areas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.wmpb-areas.no-media { grid-template-columns: minmax(0, 1fr); }
.wmpb-areas-list { list-style: none; padding: 0 !important; margin: 0 0 1.5rem !important; display: flex; flex-wrap: wrap; gap: .5rem; }
.wmpb-areas-list li { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .85rem; border-radius: 99px; background: color-mix(in srgb, var(--wmpb-accent) 9%, transparent); font-weight: 500; font-size: .95rem; }
.wmpb-areas-list .wmpb-ico { width: 1em; height: 1em; color: var(--wmpb-accent); }
.wmpb-areas-media { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; }
.wmpb-areas-media .wmpb-img, .wmpb-areas-media .wmpb-img-ph { width: 100%; height: 100%; object-fit: cover; }

/* Call band */
.wmpb-cb { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.25rem 1.75rem; align-items: center; border-radius: 20px; padding: clamp(1.5rem, 3vw, 2.25rem); color: #fff; }
.wmpb-cb--accent { background: var(--wmpb-accent); }
.wmpb-cb--ink { background: var(--wp--preset--color--ink, #0F2533); }
.wmpb-cb--sea { background: var(--wp--preset--color--sea, #1E4A5C); }
.wmpb-cb-ico { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .15); }
.wmpb-cb-ico .wmpb-ico { width: 30px; height: 30px; }
.wmpb-section .wmpb-cb-title { color: #fff; margin: 0 0 .25rem !important; font-size: clamp(1.5rem, 3vw, 2rem); }
.wmpb-cb-text { margin: 0 !important; opacity: .9; }
.wmpb-cb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; justify-content: flex-end; }
.wmpb-cb-phone { color: #fff !important; text-decoration: none; font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 700; letter-spacing: -.01em; white-space: nowrap; }
.wmpb-section .wmpb-cb .wmpb-cb-btn { background: #fff !important; color: var(--wp--preset--color--ink, #0F2533) !important; }

@media (max-width: 1100px) {
	.wmpb-sg--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wmpb-sg--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.wmpb-hs, .wmpb-areas { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.wmpb-hs--fade .wmpb-hs-media, .wmpb-hs--rounded .wmpb-hs-media { position: relative; inset: auto; width: auto; order: -1; height: 260px; min-height: 0; border-radius: 16px; overflow: hidden; -webkit-mask-image: none; mask-image: none; }
	.wmpb-hs--fade.wmpb-hs--left .wmpb-hs-main { grid-column: auto; }
	.wmpb-hs--fade .wmpb-hs-main::before { display: none; }
	.wmpb-sg--2, .wmpb-sg--3, .wmpb-sg--4, .wmpb-sg--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wmpb-fb.has-dividers .wmpb-fb-item + .wmpb-fb-item { border-left: 0; }
	.wmpb-step:not(:last-child)::after { display: none; }
	.wmpb-cb { grid-template-columns: minmax(0, 1fr); text-align: left; }
	.wmpb-cb-actions { justify-content: flex-start; }
}
@media (max-width: 480px) {
	.wmpb-sg--2, .wmpb-sg--3, .wmpb-sg--4, .wmpb-sg--6, .wmpb-sg { grid-template-columns: minmax(0, 1fr); }
	.wmpb-badges { gap: .8rem 1.2rem; }
}
.wmpb-tpl-ph { background: linear-gradient(135deg, color-mix(in srgb, var(--wmpb-accent) 22%, #fff), color-mix(in srgb, var(--wmpb-ink) 35%, #fff)); color: rgba(255,255,255,.95); padding: 1.5rem; font-size: .85rem; min-height: 220px; }
.wmpb-tpl-ph .wmpb-ico { width: 40px; height: 40px; stroke-width: 1.4; }
.wmpb-tpl-ph span { max-width: 26rem; text-shadow: 0 1px 2px rgba(0,0,0,.2); }
.wmpb-sg-ico { align-self: flex-start; }
.wmpb-sg--center .wmpb-sg-ico { align-self: center; }
@media (max-width: 480px) {
	.wmpb-sg--4, .wmpb-sg--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
	.wmpb-sg--4 .wmpb-sg-card, .wmpb-sg--6 .wmpb-sg-card { padding: 1rem; }
	.wmpb-sg--4 .wmpb-sg-card .wmpb-small, .wmpb-sg--6 .wmpb-sg-card .wmpb-small { font-size: .85rem; }
	.wmpb-section .wmpb-sg--6 .wmpb-sg-title, .wmpb-section .wmpb-sg--4 .wmpb-sg-title { font-size: 1rem; }
}

/* Hero quick form (v1.9.2) */
.wmpb-hs--formcard { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); min-height: 0; }
.wmpb-hs--formcard.wmpb-hs--left .wmpb-hs-media { order: -1; }
.wmpb-hs-formcard { background: #fff; color: var(--wmpb-ink); border-radius: 20px; padding: clamp(1.25rem, 2.5vw, 2rem); box-shadow: 0 30px 70px -30px rgba(15, 23, 42, .35), 0 0 0 1px color-mix(in srgb, var(--wmpb-ink) 8%, transparent); }
.wmpb-section .wmpb-hs-formtitle { font-family: var(--wp--preset--font-family--heading, inherit); font-size: 1.45rem; font-weight: 700; margin: 0 0 .25rem !important; color: var(--wmpb-ink); }
.wmpb-hs-formcard > .wmpb-small { margin-bottom: 1rem !important; }
.wmpb-hs-form { display: grid; gap: .1rem; }
.wmpb-hs-form p { margin: 0 0 .7rem !important; }
.wmpb-hs-form .wmpb-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.wmpb-hs-form label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .3rem; }
.wmpb-hs-form :is(input, select, textarea) { width: 100%; box-sizing: border-box; min-height: 46px; padding: .55rem .8rem; border: 1px solid var(--wmpb-line); border-radius: 10px; font: inherit; font-size: 1rem; background: #fff; color: var(--wmpb-ink); }
.wmpb-hs-form :is(input, select, textarea):focus { outline: 2px solid var(--wmpb-accent); outline-offset: 1px; border-color: transparent; }
.wmpb-hs-form textarea { min-height: 96px; line-height: 1.5; resize: vertical; }
.wmpb-hs-form .wmpb-hs-hint { display: block; margin-top: 6px; font-size: .85rem; line-height: 1.45; color: var(--wmpb-ink, #0f172a); }
.wmpb-hs-form .wmpb-hs-submit { width: 100%; min-height: 50px; font-size: 1.05rem; font-weight: 700; }
.wmpb-hs-formnote { font-size: .8rem; color: var(--wmpb-ink-soft); text-align: center; margin: .2rem 0 0 !important; }
.wmpb-hs-form.is-sent > :not(.wmpb-form-success) { display: none; }
.wmpb-dark .wmpb-hs-formcard :is(h2, h3, p, label) { color: var(--wmpb-ink); }
@media (max-width: 781px) {
	.wmpb-hs--formcard { grid-template-columns: minmax(0, 1fr); }
	.wmpb-hs--formcard .wmpb-hs-media { order: 0 !important; }
}
@media (max-width: 480px) { .wmpb-hs-form .wmpb-form-row { grid-template-columns: 1fr; gap: 0; } }

/* Fonts & buttons follow Site Styles in any theme (v1.9.2) */
.wmpb-section, .wmpb-section :is(p, li, label, input, select, textarea, button, .wp-element-button, blockquote, figcaption, b, strong, span):not([class*="wmpb-ff-"] *) { font-family: var(--wp--preset--font-family--body, inherit); }
.wmpb-section :is(h1, h2, h3, h4, h5, h6, .wp-block-heading, .wmpb-stat-value, .wmpb-rv-score, .wmpb-cb-title, .wmpb-hs-formtitle, .wmpb-h-main, .wmpb-h-item):not([class*="wmpb-ff-"] *), .wmpb-section :is(h1, h2, h3, h4, h5, h6) :is(span, b, strong):not([class*="wmpb-ff-"]):not([class*="wmpb-ff-"] *) { font-family: var(--wp--preset--font-family--heading, inherit); }

/* ===================================================================
   Layout families (v1.11): more hero layouts, card looks and sections
   =================================================================== */
.wmpb-section :is(.wmpb-hs--full, .wmpb-hs--overlay) .wmpb-btn-outline { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .75); }

/* Hero: full-screen photo */
.wmpb-hs--full { position: static; grid-template-columns: minmax(0, 1fr); align-items: end; min-height: clamp(520px, 82vh, 860px); padding-top: clamp(3rem, 10vh, 7rem); }
.wmpb-hs--full .wmpb-hs-media { position: absolute; inset: 0; max-width: none !important; }
.wmpb-hs--full .wmpb-hs-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6, 12, 20, .88) 0%, rgba(6, 12, 20, .5) 45%, rgba(6, 12, 20, .12) 100%); }
.wmpb-hs--full .wmpb-hs-main { max-width: 54rem; color: #fff; }
.wmpb-section .wmpb-hs--full .wmpb-hs-title { font-size: clamp(2.8rem, 6.6vw, 5.8rem); line-height: .98; letter-spacing: -.03em; color: #fff; }
.wmpb-hs--full .wmpb-hs-lead { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: rgba(255, 255, 255, .86); max-width: 40rem; }
.wmpb-hs--full .wmpb-eyebrow { color: color-mix(in srgb, var(--wmpb-accent) 45%, #fff); }
.wmpb-hs--full .wmpb-hs-title .wmpb-c-accent, .wmpb-hs--overlay .wmpb-hs-title .wmpb-c-accent { color: color-mix(in srgb, var(--wmpb-accent) 55%, #fff) !important; }
.wmpb-hs--full :is(.wmpb-badges b) { color: #fff; }
.wmpb-hs--full .wmpb-badges span span { color: rgba(255, 255, 255, .8); }
.wmpb-hs--full .wmpb-badges { padding-top: 1.5rem !important; border-top: 1px solid rgba(255, 255, 255, .2); }
.wmpb-hs--full .wmpb-badges .wmpb-badge-ico { color: #fff; }

/* Hero: half and half (the photo fills one half to the page edge) */
.wmpb-hs--split { position: static; min-height: clamp(480px, 72vh, 760px); }
.wmpb-hs--split .wmpb-hs-media { position: absolute; top: 0; bottom: 0; width: 50%; max-width: none !important; }
.wmpb-hs--split.wmpb-hs--right .wmpb-hs-media { right: 0; }
.wmpb-hs--split.wmpb-hs--left .wmpb-hs-media { left: 0; }
.wmpb-hs--split.wmpb-hs--left .wmpb-hs-main { grid-column: 2; }
.wmpb-hs--split .wmpb-hs-main { padding-block: 1rem; }
.wmpb-hs--split.wmpb-hs--right .wmpb-hs-main { padding-right: clamp(0rem, 3vw, 2.5rem); }
.wmpb-hs--split.wmpb-hs--left .wmpb-hs-main { padding-left: clamp(0rem, 3vw, 2.5rem); }

/* Hero: centred text, wide photo below */
.wmpb-hs--center { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: clamp(2rem, 5vw, 3.5rem); text-align: center; }
.wmpb-hs--center .wmpb-hs-main { max-width: 56rem; margin: 0 auto; }
.wmpb-section .wmpb-hs--center .wmpb-hs-title { font-size: clamp(2.6rem, 6vw, 5.2rem); }
.wmpb-hs--center .wmpb-hs-lead { margin-left: auto; margin-right: auto; max-width: 40rem; font-size: clamp(1.05rem, 1.5vw, 1.2rem); }
.wmpb-hs--center :is(.wmpb-btns, .wmpb-badges) { justify-content: center; }
.wmpb-hs--center .wmpb-badges li { text-align: left; }
.wmpb-hs--center .wmpb-hs-media { aspect-ratio: 21 / 9; border-radius: calc(var(--wmpb-radius) * 1.6); overflow: hidden; box-shadow: 0 40px 80px -40px rgba(15, 23, 42, .45); }

/* Hero: three-photo collage */
.wmpb-hs--collage { min-height: 0; }
.wmpb-hs--collage.wmpb-hs--left .wmpb-hs-media { order: -1; }
.wmpb-hs-collage { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 1fr 1fr; gap: clamp(.6rem, 1.4vw, 1rem); height: clamp(380px, 58vh, 580px); }
.wmpb-hs-collage > div { border-radius: calc(var(--wmpb-radius) * 1.3); overflow: hidden; min-height: 0; }
.wmpb-hs-c1 { grid-row: 1 / span 2; }
.wmpb-hs-collage :is(.wmpb-img, .wmpb-img-ph) { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.wmpb-hs-c2 .wmpb-img-ph { background: linear-gradient(160deg, color-mix(in srgb, var(--wmpb-accent) 70%, #fff), var(--wmpb-accent)); }
.wmpb-hs-c3 .wmpb-img-ph { background: linear-gradient(160deg, color-mix(in srgb, var(--wmpb-ink) 55%, #fff), var(--wmpb-ink)); }
.wmpb-hs--full .wmpb-tpl-ph > *, .wmpb-sg--photo .wmpb-tpl-ph > * { display: none; }

/* Services: tinted tiles, numbered list, photo cards */
.wmpb-sg--tint .wmpb-sg-card { background: color-mix(in srgb, var(--wmpb-accent) 8%, #fff); }
.wmpb-sg--tint .wmpb-sg-card:hover { background: color-mix(in srgb, var(--wmpb-accent) 13%, #fff); }
.wmpb-dark .wmpb-sg--tint .wmpb-sg-card { background: rgba(255, 255, 255, .06); }
.wmpb-sg--list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0 clamp(1.5rem, 5vw, 4rem); }
.wmpb-sg--list .wmpb-sg-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1.25rem; row-gap: .35rem; padding: 1.5rem 0; border-radius: 0; border-top: 1px solid var(--wmpb-line); align-items: baseline; }
.wmpb-dark .wmpb-sg--list .wmpb-sg-card { border-top-color: rgba(255, 255, 255, .16); }
.wmpb-sg--list .wmpb-sg-card > * { grid-column: 2; }
.wmpb-sg--list .wmpb-sg-num { grid-column: 1; grid-row: 1 / span 3; font-family: var(--wmpb-heading-font); font-size: 1rem; font-weight: 600; color: var(--wmpb-accent); letter-spacing: .04em; }
.wmpb-section .wmpb-sg--list .wmpb-sg-title { font-size: clamp(1.25rem, 2vw, 1.5rem); }
.wmpb-sg--list .wmpb-sg-card:hover { transform: none; }
.wmpb-sg--photo .wmpb-sg-card { padding: 0; overflow: hidden; min-height: 340px; justify-content: flex-end; color: #fff; background: var(--wmpb-ink); }
.wmpb-sg--photo .wmpb-sg-photo { position: absolute; inset: 0; margin: 0; border-radius: 0; aspect-ratio: auto; }
.wmpb-sg--photo .wmpb-sg-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6, 12, 20, .85) 0%, rgba(6, 12, 20, .35) 55%, rgba(6, 12, 20, .05) 100%); }
.wmpb-sg--photo .wmpb-sg-photo :is(.wmpb-img, .wmpb-img-ph) { transition: transform .5s ease; }
.wmpb-sg--photo .wmpb-sg-card:hover .wmpb-sg-photo :is(.wmpb-img, .wmpb-img-ph) { transform: scale(1.04); }
.wmpb-sg--photo .wmpb-sg-card > :not(.wmpb-sg-photo) { position: relative; z-index: 1; margin-left: 1.4rem !important; margin-right: 1.4rem !important; }
.wmpb-sg--photo .wmpb-sg-card > :last-child { margin-bottom: 1.4rem !important; }
.wmpb-section .wmpb-sg--photo .wmpb-sg-title { color: #fff; font-size: 1.35rem; }
.wmpb-sg--photo .wmpb-small { color: rgba(255, 255, 255, .85); flex: 0 0 auto; }
.wmpb-sg--photo .wmpb-sg-link a { color: #fff; }
.wmpb-sg--photo .wmpb-sg-card:hover { transform: none; }

/* How it works: cards, big numbers */
.wmpb-steps--cards .wmpb-step { padding: 1.6rem; padding-top: 4.4rem; border-radius: var(--wmpb-radius); background: #fff; box-shadow: 0 10px 30px -18px rgba(15, 37, 51, .25); }
.wmpb-dark .wmpb-steps--cards .wmpb-step { background: rgba(255, 255, 255, .06); box-shadow: none; }
.wmpb-steps--cards .wmpb-step-num { top: 1.5rem; left: 1.6rem; box-shadow: none; }
.wmpb-steps--cards .wmpb-step::after, .wmpb-steps--big .wmpb-step::after { display: none; }
.wmpb-steps--big .wmpb-step { padding-top: 0; border-top: 2px solid var(--wmpb-ink); }
.wmpb-dark .wmpb-steps--big .wmpb-step { border-top-color: rgba(255, 255, 255, .5); }
.wmpb-steps--big .wmpb-step-num { position: static; display: block; width: auto; height: auto; background: none; box-shadow: none; color: var(--wmpb-accent); font-family: var(--wmpb-heading-font); font-size: clamp(3rem, 6vw, 4.5rem); line-height: 1; padding: 1rem 0 .75rem; text-align: left; }

/* Reviews: big quotes, featured */
.wmpb-rv--quotes .wmpb-rv { background: none; box-shadow: none; padding: 0 0 0 1.5rem; border-left: 3px solid var(--wmpb-accent); border-radius: 0; }
.wmpb-rv--quotes .wmpb-rv blockquote p { font-family: var(--wmpb-heading-font); font-size: 1.2rem; line-height: 1.5; }
.wmpb-rv--featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wmpb-rv--featured .wmpb-rv:first-child { grid-row: span 2; justify-content: center; padding: clamp(1.75rem, 3vw, 2.75rem); background: var(--wmpb-ink); color: #fff; }
.wmpb-rv--featured .wmpb-rv:first-child blockquote { flex: 0 0 auto; }
.wmpb-rv--featured .wmpb-rv:first-child blockquote p { font-family: var(--wmpb-heading-font); font-size: clamp(1.25rem, 2.2vw, 1.65rem); line-height: 1.45; }
.wmpb-rv--featured .wmpb-rv:first-child .wmpb-muted { color: rgba(255, 255, 255, .75); }
.wmpb-rv--featured .wmpb-rv:nth-child(n+4) { display: none; }

/* Call band: centred, split */
.wmpb-cb-look--center { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 3rem); }
.wmpb-section .wmpb-cb-look--center .wmpb-cb-title { font-size: clamp(1.9rem, 4.4vw, 3.2rem); line-height: 1.1; }
.wmpb-cb-look--center .wmpb-cb-text { max-width: 36rem; margin: .4rem auto 0 !important; }
.wmpb-cb-look--center .wmpb-cb-actions { justify-content: center; }
.wmpb-cb-look--split { grid-template-columns: minmax(0, 1fr) auto; background: none !important; color: inherit; padding: 0; border-radius: 0; }
.wmpb-section .wmpb-cb-look--split .wmpb-cb-title { color: inherit; font-size: clamp(1.8rem, 4vw, 2.8rem); }
.wmpb-cb-look--split .wmpb-cb-phone { color: inherit !important; }
.wmpb-section .wmpb-cb-look--split .wmpb-cb-btn { background: var(--wmpb-accent) !important; color: #fff !important; }

/* Projects gallery */
.wmpb-gal { display: grid; gap: clamp(.6rem, 1.4vw, 1rem); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wmpb-gal--mosaic { grid-auto-rows: clamp(180px, 22vw, 280px); }
.wmpb-gal--mosaic .wmpb-gal-item:nth-child(5n+1) { grid-column: span 2; grid-row: span 2; }
.wmpb-gal--mosaic .wmpb-gal-item:nth-child(5n) { grid-column: span 2; }
.wmpb-gal--grid .wmpb-gal-photo { aspect-ratio: 4 / 3; }
.wmpb-gal--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wmpb-gal--wide .wmpb-gal-photo { aspect-ratio: 3 / 2; }
.wmpb-gal-item { position: relative; margin: 0; min-height: 0; display: flex; flex-direction: column; }
.wmpb-gal-photo { position: relative; overflow: hidden; border-radius: var(--wmpb-radius); flex: 1; min-height: 0; }
.wmpb-gal-photo :is(.wmpb-img, .wmpb-img-ph) { width: 100%; height: 100%; min-height: 0; object-fit: cover; transition: transform .5s ease; }
.wmpb-gal-item:hover .wmpb-gal-photo :is(.wmpb-img, .wmpb-img-ph) { transform: scale(1.04); }
.wmpb-gal-item:nth-child(3n+2) .wmpb-gal-photo .wmpb-img-ph { background: linear-gradient(160deg, color-mix(in srgb, var(--wmpb-accent) 65%, #fff), var(--wmpb-accent)); }
.wmpb-gal-cap--over figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 2.5rem 1.1rem 1rem; color: #fff; background: linear-gradient(to top, rgba(6, 12, 20, .78), transparent); border-radius: 0 0 var(--wmpb-radius) var(--wmpb-radius); display: flex; flex-direction: column; }
.wmpb-gal-cap--below figcaption { padding-top: .7rem; display: flex; flex-direction: column; }
.wmpb-section .wmpb-gal-title { font-size: 1.05rem; margin: 0 !important; color: inherit; }
.wmpb-gal-cap--over .wmpb-gal-title { color: #fff; }
.wmpb-gal-tag { font-size: .82rem; opacity: .8; }
.wmpb-gal-btn { margin-top: 2rem; text-align: center; }

/* Statement & numbers */
.wmpb-st { display: grid; gap: clamp(1.5rem, 4vw, 4rem); }
.wmpb-st--split { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: end; }
.wmpb-section .wmpb-st-title { font-size: clamp(1.9rem, 3.8vw, 3.1rem); line-height: 1.12; letter-spacing: -.02em; margin-bottom: 0 !important; }
.wmpb-st--center { grid-template-columns: minmax(0, 1fr); text-align: center; max-width: 60rem; margin-left: auto !important; margin-right: auto !important; }
.wmpb-st--center .wmpb-btns { justify-content: center; }
.wmpb-st-stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 1.25rem; padding-top: clamp(1.5rem, 3vw, 2.25rem); border-top: 1px solid var(--wmpb-line); }
.wmpb-dark .wmpb-st-stats { border-top-color: rgba(255, 255, 255, .16); }
.wmpb-st-stat { display: flex; flex-direction: column; gap: .2rem; }
.wmpb-st-stat b { font-family: var(--wmpb-heading-font); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; color: var(--wmpb-accent); letter-spacing: -.02em; }
.wmpb-dark .wmpb-st-stat b { color: #fff; }
.wmpb-st-stat span { font-size: .92rem; color: var(--wmpb-ink-soft); }
.wmpb-dark .wmpb-st-stat span { color: rgba(255, 255, 255, .75); }
.wmpb-st--photo { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; }
.wmpb-st-media { border-radius: calc(var(--wmpb-radius) * 1.4); overflow: hidden; aspect-ratio: 4 / 5; }
.wmpb-st-media :is(.wmpb-img, .wmpb-img-ph) { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.wmpb-st--photo .wmpb-st-main > * + * { margin-top: 1.25rem; }
.wmpb-st--photo .wmpb-st-stats { padding-top: 1.5rem; margin-top: 2rem; }

/* Spotlight review */
.wmpb-sq { margin: 0 auto !important; max-width: 52rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; }
.wmpb-sq--card { background: #fff; border-radius: calc(var(--wmpb-radius) * 1.4); padding: clamp(2rem, 5vw, 3.5rem); box-shadow: 0 30px 70px -40px rgba(15, 37, 51, .35); }
.wmpb-dark .wmpb-sq--card { background: rgba(255, 255, 255, .06); box-shadow: none; }
.wmpb-sq-mark { width: 48px; height: 48px; color: var(--wmpb-accent); }
.wmpb-sq blockquote { margin: 0; padding: 0; border: 0; }
.wmpb-sq-text { font-family: var(--wmpb-heading-font); font-size: clamp(1.4rem, 2.8vw, 2.1rem); line-height: 1.35; letter-spacing: -.01em; margin: 0 !important; }
.wmpb-sq figcaption { display: flex; align-items: center; gap: .8rem; text-align: left; }
.wmpb-sq figcaption > span:last-child { display: flex; flex-direction: column; }
.wmpb-sq-facewrap { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; flex: none; }
.wmpb-sq-facewrap :is(.wmpb-img, .wmpb-img-ph) { width: 100%; height: 100%; min-height: 0; object-fit: cover; }

@media (max-width: 781px) {
	.wmpb-hs--full { min-height: clamp(460px, 78vh, 640px); }
	.wmpb-hs--split .wmpb-hs-media { position: relative; inset: auto; width: auto; height: 300px; order: -1; border-radius: 16px; overflow: hidden; }
	.wmpb-hs--split.wmpb-hs--left .wmpb-hs-main { grid-column: auto; }
	.wmpb-hs--split .wmpb-hs-main { padding: 0 !important; }
	.wmpb-hs--split { min-height: 0; }
	.wmpb-hs--center .wmpb-hs-media { aspect-ratio: 4 / 3; }
	.wmpb-hs-collage { height: 340px; order: -1; }
	.wmpb-sg--list { grid-template-columns: minmax(0, 1fr) !important; }
	.wmpb-rv--featured { grid-template-columns: minmax(0, 1fr); }
	.wmpb-rv--featured .wmpb-rv:first-child { grid-row: auto; }
	.wmpb-cb-look--split { grid-template-columns: minmax(0, 1fr); }
	.wmpb-gal, .wmpb-gal--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wmpb-gal--mosaic .wmpb-gal-item:nth-child(5n+1) { grid-row: span 1; }
	.wmpb-gal--mosaic .wmpb-gal-item:nth-child(5n) { grid-column: auto; }
	.wmpb-st--split, .wmpb-st--photo { grid-template-columns: minmax(0, 1fr); }
	.wmpb-st-media { aspect-ratio: 4 / 3; }
}
@media (max-width: 480px) {
	.wmpb-gal, .wmpb-gal--wide { grid-template-columns: minmax(0, 1fr); }
	.wmpb-gal--mosaic { grid-auto-rows: 240px; }
	.wmpb-gal--mosaic .wmpb-gal-item:nth-child(5n+1), .wmpb-gal--mosaic .wmpb-gal-item:nth-child(5n) { grid-column: auto; }
	.wmpb-hs-collage { height: 280px; }
}
@media (max-width: 600px) {
	.wmpb-st-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
	.wmpb-st-stat b { font-size: 1.6rem; }
	.wmpb-st-stat span { font-size: .8rem; }
}
.wmpb-faq-q{font:inherit;margin:0;padding:0;display:inline;letter-spacing:inherit;text-transform:inherit;color:inherit}

/* Icon lists (1.17.4) */
ul.wmpb-ilist{list-style:none!important;padding-left:0!important}
ul.wmpb-ilist>li{position:relative;padding-left:1.75em;list-style:none}
ul.wmpb-ilist>li+li{margin-top:.4em}
ul.wmpb-ilist>li::before{content:"";position:absolute;left:0;top:.22em;width:1.1em;height:1.1em;background:var(--wp--preset--color--accent,currentColor);-webkit-mask:var(--wmpb-ilist-i) center/contain no-repeat;mask:var(--wmpb-ilist-i) center/contain no-repeat}
.wmpb-dark ul.wmpb-ilist>li::before{background:currentColor}
ul.wmpb-ilist-check{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2012.5l5%205L20%206.5%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-checkc{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M12%201.5a10.5%2010.5%200%201%200%200%2021%2010.5%2010.5%200%200%200%200-21zm-1.4%2014.9-4.1-4.1%201.6-1.6%202.5%202.5%205.6-5.6%201.6%201.6z%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-arrow{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2012h15M13%206l6%206-6%206%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-chev{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%205l7%207-7%207%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-star{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M12%202.2l2.9%206.3%206.9.7-5.2%204.6%201.5%206.8L12%2017.1l-6.1%203.5%201.5-6.8-5.2-4.6%206.9-.7z%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-plus{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-heart{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M12%2021s-7.5-4.6-9.5-9.3C1.1%208.4%203.2%204.5%207%204.5c2.1%200%203.6%201.2%205%202.9%201.4-1.7%202.9-2.9%205-2.9%203.8%200%205.9%203.9%204.5%207.2C19.5%2016.4%2012%2021%2012%2021z%22/%3E%3C/svg%3E")}
ul.wmpb-ilist-dot{--wmpb-ilist-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%225%22%20fill%3D%22%23000%22/%3E%3C/svg%3E")}

/* 1.26: anchor links glide to their section, clear of a sticky header */
html { scroll-behavior: smooth; }
.wmpb-section[id] { scroll-margin-top: 90px; }

/* 1.31: elements added to a ready-made section, placed where they were dropped */
.wmpb-section:has(> .wmpb-extras) { position: relative; }
.wmpb-section > .wmpb-extras { position: absolute; inset: 0; pointer-events: none; max-width: none !important; margin: 0 !important; z-index: 4; }
.wmpb-extra { position: absolute; left: var(--ex, 8%); top: var(--ey, 8%); pointer-events: auto; max-width: 92%; }
.wmpb-extra > .wmpb-w { margin: 0 !important; }
@media (max-width: 781px) {
	.wmpb-section > .wmpb-extras { position: static; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px var(--wp--style--root--padding-left, 16px) 0; pointer-events: auto; }
	.wmpb-extra { position: static; max-width: 100%; }
}

/* 1.36: drop-downs in the header menu */
.wmpb-site-header .wp-block-navigation__submenu-container { min-width: 220px !important; padding: 8px 0 !important; border: 1px solid rgba(15, 23, 42, .08) !important; border-radius: 10px; background: #fff !important; box-shadow: 0 14px 34px rgba(15, 23, 42, .14); }
.wmpb-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 18px !important; white-space: nowrap; color: #0f172a; }
.wmpb-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(15, 23, 42, .05); }
.wmpb-site-header.is-dark .wp-block-navigation__submenu-container { background: #0f172a !important; }
.wmpb-site-header.is-dark .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: #fff; }
.wmpb-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; background: transparent !important; padding: 0 0 0 16px !important; min-width: 0 !important; }
.wmpb-lightbox { position: fixed; inset: 0; z-index: 100000; background: rgba(10, 18, 26, .92); display: flex; align-items: center; justify-content: center; padding: 4vh 4vw; }
.wmpb-lightbox img { max-width: 100%; max-height: 92vh; border-radius: 6px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.wmpb-lightbox button { position: absolute; border: 0; background: rgba(255, 255, 255, .12); color: #fff; width: 48px; height: 48px; border-radius: 50%; font-size: 26px; line-height: 1; cursor: pointer; }
.wmpb-lightbox button:hover { background: rgba(255, 255, 255, .25); }
.wmpb-lb-close { top: 16px; right: 16px; }
.wmpb-lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.wmpb-lb-next { right: 16px; top: 50%; transform: translateY(-50%); }
.wmpb-zoomable { cursor: zoom-in; }
.wmpb-zoomable:focus-visible { outline: 3px solid var(--wmpb-accent, #2563eb); outline-offset: 3px; }

/* 1.44.2: a photo that links somewhere keeps its layout. */
.wmpb-img-link { display: contents; }

/* 1.46: form columns and field design (set per form; the AI chat can change them too) */
form.wmpb-fcols { display: grid; grid-template-columns: repeat(var(--wmpb-fc, 1), minmax(0, 1fr)); column-gap: 1rem; align-items: start; }
form.wmpb-fcols-1 { --wmpb-fc: 1; }
form.wmpb-fcols-2 { --wmpb-fc: 2; }
form.wmpb-fcols-3 { --wmpb-fc: 3; }
form.wmpb-fcols .wmpb-form-row { display: contents; }
form.wmpb-fcols > :is(.wmpb-hp, .wmpb-form-check, .wmpb-form-actions, .wmpb-form-status, .wmpb-form-success, .wmpb-consent, .wmpb-hs-formnote, .wmpb-topic-other),
form.wmpb-fcols > p:has(textarea),
form.wmpb-fcols > p:has(input[name="current_site"]) { grid-column: 1 / -1; }
form.wmpb-fcols > input[type="hidden"] { display: none; }
@media (max-width: 640px) { form.wmpb-fcols { grid-template-columns: minmax(0, 1fr); } }
form.wmpb-fstyle :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea) {
	border-style: solid;
	border-width: var(--wmpb-f-bw, 1px);
	border-color: var(--wmpb-f-bc, var(--wmpb-line, #e5e7eb));
	border-radius: var(--wmpb-f-r, 10px);
	background-color: var(--wmpb-f-bg, #fff);
}
form.wmpb-fstyle textarea { border-radius: min(var(--wmpb-f-r, 10px), 18px) !important; }

/* 1.51: more kinds of form questions */
.wmpb-form .wmpb-form-heading { margin: 1.25rem 0 .75rem; padding-top: 1rem; border-top: 1px solid color-mix(in srgb, var(--wmpb-ink, #0f172a) 12%, transparent); font-weight: 700; font-size: 1.05rem; color: var(--wmpb-ink); }
.wmpb-form .wmpb-form-heading:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.wmpb-form fieldset.wmpb-form-choices { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.wmpb-form fieldset.wmpb-form-choices legend { padding: 0; margin: 0 0 .5rem; font-size: .9rem; font-weight: 600; color: var(--wmpb-ink); }
.wmpb-form fieldset.wmpb-form-choices label { display: flex; gap: .6rem; align-items: center; font-weight: 500; margin: 0 0 .45rem; cursor: pointer; }
.wmpb-form fieldset.wmpb-form-choices input { width: 1.15rem; height: 1.15rem; padding: 0; margin: 0; flex: none; accent-color: var(--wmpb-accent, #4f46e5); }
.wmpb-form .wmpb-form-check a { color: inherit; text-decoration: underline; }
.wmpb-form .wmpb-form-file input[type=file] { padding: .6rem; background: color-mix(in srgb, var(--wmpb-ink, #0f172a) 3%, #fff); cursor: pointer; }
.wmpb-form .wmpb-form-file small, .wmpb-form .wmpb-hs-hint { display: block; margin-top: .35rem; font-size: .8rem; opacity: .75; }
.wmpb-form .wmpb-form-bot input[type=text] { max-width: 10rem; }
form.wmpb-fcols > :is(.wmpb-form-heading, .wmpb-form-choices, .wmpb-form-file) { grid-column: 1 / -1; }

/* 1.52: FAQ "at a glance" summary */
.wmpb-faq-intro { max-width: 760px; margin: -.25rem auto 1.75rem; font-size: 1.08rem; line-height: 1.6; text-align: center; color: var(--wmpb-ink); opacity: .85; }
/* 1.52: FAQ layouts */
.wmpb-faq.is-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; align-items: start; }
.wmpb-faq-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.wmpb-faq-split.is-image-right .wmpb-faq-media { order: 2; }
.wmpb-faq-media img, .wmpb-faq-media .wmpb-img-ph { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--wmpb-radius-lg, 18px); display: block; }
.wmpb-faq-split .wmpb-faq { max-width: none; }
@media (max-width: 760px) { .wmpb-faq.is-two, .wmpb-faq-split { grid-template-columns: minmax(0, 1fr); } .wmpb-faq-split.is-image-right .wmpb-faq-media { order: 0; } }
/* 1.62.6: the shading over photo cards must not catch clicks meant for the photo (editor: "Click to add a photo"). */
.wmpb-sg--photo .wmpb-sg-photo::after { pointer-events: none; }
