/*
Theme Name: Belfield Valve Child
Theme URI: https://belfieldvalve.uk
Description: Custom Ollie child theme for the Belfield Valve website.
Author: Process Measurement and Analysis Ltd
Author URI: https://belfieldvalve.uk
Template:     ollie
Version: 1.0.28
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Text Domain: belfield-valve-child
*/

/*
 * Responsive content rhythm
 *
 * Gutenberg's flex layout can emit different row gaps for otherwise matching
 * Columns blocks. These rules establish one predictable hierarchy across page
 * content while leaving the header, footer and specialist component layouts
 * untouched:
 * - 24px from image to heading
 * - 16px from heading to supporting copy
 * - 32px between compact stacked columns
 * - 48px between stacked media cards
 */
.entry-content .wp-block-column > .wp-block-image + .wp-block-heading,
.entry-content .wp-block-column > .wp-block-image + h2,
.entry-content .wp-block-column > .wp-block-image + h3,
.entry-content .wp-block-column > .wp-block-image + h4 {
	margin-block-start: 24px !important;
}

.entry-content .wp-block-column > .wp-block-heading + .wp-block-paragraph,
.entry-content .wp-block-column > :is(h2, h3, h4) + p {
	margin-block-start: 16px !important;
}

.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-image) +
.wp-block-columns:has(> .wp-block-column > .wp-block-image) {
	margin-block-start: 32px !important;
}

@media (max-width: 781px) {
	.entry-content .wp-block-columns {
		row-gap: 32px !important;
	}

	.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-image) {
		row-gap: 48px !important;
	}

	.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-image) +
	.wp-block-columns:has(> .wp-block-column > .wp-block-image) {
		margin-block-start: 48px !important;
	}
}

/*
 * Belfield Valve contact form
 *
 * Keep the Forminator replacement visually aligned with the previous contact
 * experience. This is intentionally scoped to the single contact-form module
 * so other Forminator forms can use their own presentation later.
 */
#forminator-module-988355 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
	width: 100%;
	font-family: var(--wp--preset--font-family--main, inherit);
}

#forminator-module-988355 > .forminator-response-message,
#forminator-module-988355 > .forminator-row:nth-of-type(5),
#forminator-module-988355 > .forminator-row:nth-of-type(9),
#forminator-module-988355 > .forminator-row:nth-of-type(10),
#forminator-module-988355 > .forminator-row:nth-of-type(11),
#forminator-module-988355 > .forminator-row-last {
	grid-column: 1 / -1;
}

#forminator-module-988355 > .forminator-row {
	margin: 0 !important;
}

/* Match the established enquiry order in a two-column layout. */
#forminator-module-988355 > .forminator-row:nth-of-type(2) { order: 1; }
#forminator-module-988355 > .forminator-row:nth-of-type(3) { order: 2; }
#forminator-module-988355 > .forminator-row:nth-of-type(6) { order: 3; }
#forminator-module-988355 > .forminator-row:nth-of-type(7) { order: 4; }
#forminator-module-988355 > .forminator-row:nth-of-type(8) { order: 5; }
#forminator-module-988355 > .forminator-row:nth-of-type(4) { order: 6; }
#forminator-module-988355 > .forminator-row:nth-of-type(9) { order: 7; }
#forminator-module-988355 > .forminator-row:nth-of-type(5) { order: 8; }
#forminator-module-988355 > .forminator-row:nth-of-type(10) { order: 9; }
#forminator-module-988355 > .forminator-row:nth-of-type(11) { order: 10; }
#forminator-module-988355 > .forminator-row-last { order: 11; }

#forminator-module-988355 .forminator-label {
	margin-bottom: 8px !important;
	color: var(--wp--preset--color--main, #171a1f) !important;
	font-family: var(--wp--preset--font-family--main, inherit) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

#forminator-module-988355 .forminator-input,
#forminator-module-988355 .forminator-textarea {
	box-sizing: border-box;
	width: 100% !important;
	border: 1px solid transparent !important;
	border-radius: 14px !important;
	background: #f1f1ee !important;
	color: var(--wp--preset--color--main, #171a1f) !important;
	font-family: var(--wp--preset--font-family--main, inherit) !important;
	font-size: 15px !important;
	line-height: 1.45 !important;
	box-shadow: none !important;
}

#forminator-module-988355 .forminator-input {
	min-height: 54px;
	padding: 14px 16px !important;
}

#forminator-module-988355 .forminator-textarea {
	min-height: 150px !important;
	padding: 14px 16px !important;
	resize: vertical;
}

#forminator-module-988355 .forminator-input::placeholder,
#forminator-module-988355 .forminator-textarea::placeholder {
	color: #62666d;
	opacity: 1;
}

#forminator-module-988355 .forminator-input:focus,
#forminator-module-988355 .forminator-textarea:focus {
	border-color: var(--wp--preset--color--primary-alt, #00e7d4) !important;
	outline: 2px solid color-mix(in srgb, var(--wp--preset--color--primary-alt, #00e7d4) 34%, transparent) !important;
	outline-offset: 2px;
}

#forminator-module-988355 .forminator-field-html .forminator-label {
	display: none;
}

#forminator-module-988355 .belfield-form-privacy {
	margin: 0 !important;
	color: #62666d;
	font-size: 13px;
	line-height: 1.5;
}

#forminator-module-988355 .belfield-form-privacy a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

#forminator-module-988355 .forminator-button-submit {
	min-height: 0;
	padding: 15px 32px !important;
	border: 0 !important;
	border-radius: 1600px !important;
	background: var(--wp--preset--color--border-light, #dadee3) !important;
	color: var(--wp--preset--color--main, #171a1f) !important;
	font-family: var(--wp--preset--font-family--google-sans, "Google Sans", sans-serif) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	letter-spacing: normal;
	line-height: 1.3 !important;
	text-transform: none;
	box-shadow: none !important;
}

#forminator-module-988355 .forminator-button-submit:hover,
#forminator-module-988355 .forminator-button-submit:focus-visible,
#forminator-module-988355 .forminator-button-submit:active {
	background: var(--wp--preset--color--border-light, #dadee3) !important;
	color: var(--wp--preset--color--main, #171a1f) !important;
	box-shadow: none !important;
}

#forminator-module-988355 .forminator-error-message {
	margin-top: 6px !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
}

@media (max-width: 700px) {
	#forminator-module-988355 {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	#forminator-module-988355 > .forminator-row,
	#forminator-module-988355 > .forminator-row:nth-of-type(5),
	#forminator-module-988355 > .forminator-row:nth-of-type(9),
	#forminator-module-988355 > .forminator-row:nth-of-type(10),
	#forminator-module-988355 > .forminator-row:nth-of-type(11),
	#forminator-module-988355 > .forminator-row-last {
		grid-column: 1;
	}

	#forminator-module-988355 .forminator-button-submit {
		width: auto;
	}
}

/*
 * Belfield monochrome footer
 *
 * The newsletter module is intentionally scoped to the footer so future
 * Forminator forms remain independent.
 */
.belfield-footer {
	color-scheme: dark;
}

.belfield-footer a:not(.wp-block-button__link) {
	color: inherit;
}

.belfield-footer__intro {
	max-width: 42rem;
	opacity: 0.74;
}

.belfield-footer__heading {
	font-family: "Mona Sans", sans-serif !important;
	font-weight: 500 !important;
	letter-spacing: -0.055em !important;
	text-transform: none !important;
}

.belfield-footer__contact {
	max-width: 30rem;
	padding-top: 12px;
}

.belfield-footer__contact > p:first-child,
.belfield-footer__direct,
.belfield-footer__legal {
	opacity: 0.72;
}

@media (min-width: 782px) {
	.belfield-footer__links > .wp-block-column:not(:empty) {
		flex: 0 0 180px;
	}
}

.belfield-footer__cta .wp-block-button__link {
	box-shadow: none;
	transition: background-color 160ms ease, color 160ms ease;
}

.belfield-footer__cta .wp-block-button__link:hover,
.belfield-footer__cta .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--border-light, #dadee3) !important;
}

.belfield-footer__cta .wp-block-button__link:not(.has-text-color):hover,
.belfield-footer__cta .wp-block-button__link:not(.has-text-color):focus-visible {
	color: var(--wp--preset--color--main, #171a1f) !important;
}

.belfield-footer__rule {
	border-color: rgba(255, 255, 255, 0.2) !important;
}

.belfield-footer__links {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1260px) !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.belfield-footer__legal {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1260px) !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.belfield-footer__nav .wp-block-navigation-item__content {
	color: rgba(255, 255, 255, 0.72) !important;
	text-decoration: none;
}

/*
 * Inset full-width panel used by the homepage hero and available as the
 * "Rounded edge row" block style. The parent layout supplies the responsive
 * page gutter; cancelling alignfull's negative margins keeps that gutter
 * visible while preserving the large, edge-led composition.
 */
.home .wp-block-cover.is-style-rounded-cover,
.wp-block-cover.is-style-pma-rounded-edge-row,
.wp-block-group.is-style-pma-rounded-edge-row {
	width: auto !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	overflow: hidden;
	border-radius: 40px !important;
}

@media (max-width: 781px) {
	.home .wp-block-cover.is-style-rounded-cover,
	.wp-block-cover.is-style-pma-rounded-edge-row,
	.wp-block-group.is-style-pma-rounded-edge-row {
		border-radius: 28px !important;
	}
}

.belfield-footer__nav .wp-block-navigation-item__content:hover,
.belfield-footer__nav .wp-block-navigation-item__content:focus-visible {
	color: #ffffff !important;
	text-decoration: underline;
	text-underline-offset: 4px;
}

#forminator-module-988362 {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: start;
	max-width: 620px;
	margin: 0;
}

#forminator-module-988362 > .forminator-row,
#forminator-module-988362 > .forminator-row-last {
	margin: 0 !important;
}

/* Forminator adds a 15px column gutter inside each grid cell. The footer
 * already owns its 12px gap, so remove the duplicate inset to align the form
 * with the heading and keep the button next to the field. */
#forminator-module-988362 .forminator-col {
	padding: 0 !important;
}

#forminator-module-988362 > .forminator-row:has(.forminator-input) {
	grid-column: 1;
	grid-row: 1;
}

#forminator-module-988362 > .forminator-row-last {
	grid-column: 2;
	grid-row: 1;
}

#forminator-module-988362 > .forminator-row:has(.forminator-field-captcha),
#forminator-module-988362 > .forminator-response-message {
	grid-column: 1 / -1;
}

#forminator-module-988362 > p:empty {
	display: none;
}

/* Hidden Forminator metadata and honeypot controls must not create visual
 * grid rows, particularly when the newsletter stacks on phones. */
#forminator-module-988362 > p:has(input[type="hidden"]),
#forminator-module-988362 > p:has(.forminator-hidden) {
	display: none !important;
}

/* Invisible Turnstile still outputs an empty Forminator layout row. */
#forminator-module-988355 > .forminator-row:has(.forminator-field-captcha),
#forminator-module-988362 > .forminator-row:has(.forminator-field-captcha) {
	display: none !important;
}

#forminator-module-988362 .forminator-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

#forminator-module-988362 .forminator-input {
	box-sizing: border-box;
	width: 100% !important;
	min-height: 58px;
	padding: 15px 22px !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	border-radius: 999px !important;
	background: #1b1b1b !important;
	color: #ffffff !important;
	font-family: var(--wp--preset--font-family--main, inherit) !important;
	font-size: 15px !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
}

#forminator-module-988362 .forminator-input::placeholder {
	color: rgba(255, 255, 255, 0.62);
	opacity: 1;
}

#forminator-module-988362 .forminator-input:focus {
	border-color: #ffffff !important;
	outline: 2px solid rgba(255, 255, 255, 0.34) !important;
	outline-offset: 3px;
}

#forminator-module-988362 .forminator-button-submit {
	min-height: 0;
	padding: 15px 32px !important;
	border: 0 !important;
	border-radius: 1600px !important;
	background: var(--wp--preset--color--border-light, #dadee3) !important;
	color: var(--wp--preset--color--main, #171a1f) !important;
	font-family: var(--wp--preset--font-family--google-sans, "Google Sans", sans-serif) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	letter-spacing: normal;
	line-height: 1.3 !important;
	text-transform: none;
	box-shadow: none !important;
}

#forminator-module-988362 .forminator-button-submit:hover,
#forminator-module-988362 .forminator-button-submit:focus-visible,
#forminator-module-988362 .forminator-button-submit:active {
	background: var(--wp--preset--color--border-light, #dadee3) !important;
	color: var(--wp--preset--color--main, #171a1f) !important;
	box-shadow: none !important;
}

#forminator-module-988362 .forminator-error-message {
	color: #ffb4b4 !important;
}

@media (max-width: 781px) {
	.belfield-footer__heading {
		font-size: clamp(44px, 13vw, 72px) !important;
	}

	.belfield-footer__contact {
		max-width: none;
		padding-top: 0;
	}
}

@media (max-width: 600px) {
	#forminator-module-988362 {
		grid-template-columns: minmax(0, 1fr);
	}

	#forminator-module-988362 > .forminator-row:has(.forminator-input),
	#forminator-module-988362 > .forminator-row:has(.forminator-field-captcha),
	#forminator-module-988362 > .forminator-row-last {
		grid-column: 1;
		grid-row: auto;
	}

	#forminator-module-988362 .forminator-button-submit,
	.belfield-footer__cta .wp-block-button,
	.belfield-footer__cta .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* Belfield local migration: align newsletter controls and reduce ISO badges. */
.belfield-footer #forminator-module-988362 .forminator-input,
.belfield-footer #forminator-module-988362 .forminator-button-submit {
    box-sizing: border-box;
    height: 58px !important;
    min-height: 58px !important;
}
.belfield-footer .belfield-footer__iso {
    border-top: 0 !important;
}
.belfield-footer .belfield-footer__iso .wp-block-image {
    flex: 0 1 130px;
    width: min(130px, calc(50% - 0.375rem));
}

/* Compact Belfield page hero content and suppress the old breadcrumb row. */
.belfield-page-hero .wp-block-group:has(> h1) > .wp-block-group:first-child:has(+ h1) {
    display: none !important;
}
.belfield-page-hero :is(.wp-block-group, .wp-block-cover__inner-container):has(> h1) {
    row-gap: var(--wp--preset--spacing--small, 1rem) !important;
}
.belfield-page-hero h1 + p,
.belfield-page-hero h1 + p + .wp-block-buttons {
    margin-block-start: var(--wp--preset--spacing--small, 1rem) !important;
}
/* The dropdown starts below the header. Its transparent bridge connects the
   trigger to the panel so moving the pointer down does not close it. */
@media (min-width: 901px) {
    .belfield-valve-mega-menu.wp-block-ollie-mega-menu { position: relative; }
    .belfield-valve-mega-menu:has(> button[aria-expanded="true"])::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        height: 60px;
    }
    .belfield-valve-mega-menu .wp-block-ollie-mega-menu__menu-container {
        top: calc(100% + 52px) !important;
    }
}

@media (min-width: 901px) and (max-width: 1100px) {
    body .belfield-valve-mega-menu .wp-block-ollie-mega-menu__menu-container,
    html[dir="rtl"] body .belfield-valve-mega-menu .wp-block-ollie-mega-menu__menu-container {
        left: calc(50% - 50vw + 26px) !important;
        right: auto !important;
    }
}

.belfield-page-hero .is-layout-flex:has(> h1) > h1 + p,
.belfield-page-hero .is-layout-flex:has(> h1) > h1 + p + .wp-block-buttons {
    margin-block-start: 0 !important;
}
@media (min-width: 901px) {
    body .belfield-valve-mega-menu .wp-block-ollie-mega-menu__menu-container,
    html[dir="rtl"] body .belfield-valve-mega-menu .wp-block-ollie-mega-menu__menu-container {
        left: var(--belfield-menu-left, 0px) !important;
        right: auto !important;
    }
}

/* Keep hero descriptions readable and give CTAs their own breathing room. */
.belfield-page-hero h1 + p {
    max-width: min(100%, 45rem) !important;
}
.belfield-page-hero h1 + p + .wp-block-buttons {
    margin-block-start: var(--wp--preset--spacing--medium, 2rem) !important;
}
.belfield-page-hero .is-layout-flex:has(> h1) > h1 + p + .wp-block-buttons {
    margin-block-start: max(0px, calc(var(--wp--preset--spacing--medium, 2rem) - var(--wp--preset--spacing--small, 1rem))) !important;
}
/* Support has its own Ollie dropdown; bridge the space below its trigger. */
@media (min-width: 901px) {
    .wp-block-ollie-mega-menu:not(.belfield-valve-mega-menu):has(> button[aria-expanded="true"])::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        height: 60px;
    }
    .wp-block-ollie-mega-menu:not(.belfield-valve-mega-menu) > .wp-block-ollie-mega-menu__menu-container {
        top: calc(100% + 52px) !important;
        max-width: calc(100vw - 48px) !important;
    }
}
