/* ==========================================================================
   Indoor Ventilation Solutions – theme styles
   Layout/typography tokens live in theme.json; this file holds what
   theme.json cannot express (header overlay, forms, hover effects).
   ========================================================================== */

:root {
	--iv-radius: 10px;
	--iv-header-h: 82px;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks { padding-left: 0; padding-right: 0; }

/* ---------- Header: transparent, overlays the hero ---------- */
.site-header {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 50;
	margin: 0;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header__inner { max-width: 1440px; margin-inline: auto; }
.site-header .wp-block-site-logo img { display: block; }
.site-header .wp-block-navigation { font-family: var(--wp--preset--font-family--libre-franklin); }
.site-header .wp-block-navigation-item__content { padding: 10px 0; }
.site-header .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--dark-blue) !important;
	border: 0;
	padding: 6px 0;
	min-width: 220px;
}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 20px; }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--light); }

.site-header .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--light); }

/* ---------- Hero ---------- */
.page-hero { align-items: center; }
.page-hero .wp-block-cover__inner-container { width: 100%; max-width: 1250px; margin-inline: auto; }
.page-hero h1 { max-width: 855px; margin-bottom: 11px; }
.page-hero p { max-width: 700px; }
.page-hero .wp-block-buttons { gap: 10px; margin-top: 1.5rem; }
.page-hero.hero--home { min-height: 100vh; }
.page-hero .wp-block-cover__video-background { object-fit: cover; }

.wp-block-button.is-style-white .wp-block-button__link { background: #fff; color: var(--wp--preset--color--primary); }
.wp-block-button.is-style-white .wp-block-button__link:hover { background: var(--wp--preset--color--light); color: var(--wp--preset--color--accent); }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid currentColor; }
.wp-block-button__link { transition: background-color .2s, color .2s; }
.wp-block-button__link:hover { text-decoration: none; }

/* Vertical social rail on the hero (decorative lines + icons) */
.hero-social {
	position: absolute; left: 12px; bottom: 24px; z-index: 2;
	display: flex; flex-direction: column; align-items: center; gap: 12px;
}
@media (max-width: 781px) { .hero-social { display: none; } }

/* ---------- Section helpers ---------- */
.section-title { text-align: center; }
.section-divider { width: 36%; min-width: 120px; margin-inline: auto; border-top: 2px solid var(--wp--preset--color--light); }
.has-bg-contain { background-repeat: no-repeat; }

/* Cards on the light tint (home "Services Offered" etc.) */
.tile-card { background: var(--wp--preset--color--light); padding: 10% 5% 5%; height: 100%; text-align: center; }
.tile-card h3 { color: var(--wp--preset--color--dark-blue); text-align: center; margin-bottom: 1rem; }
.tile-card p { text-align: center; }

/* Magic-hover image tiles */
.magic-hover { position: relative; overflow: hidden; margin: 0; }
.magic-hover img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .5s ease; }
.magic-hover::after { content: ""; position: absolute; inset: 0; background: rgba(150, 35, 35, .88); opacity: 0; transition: opacity .35s ease; pointer-events: none; }
.magic-hover:hover img { transform: scale(1.06); }
.magic-hover:hover::after { opacity: 1; }
.magic-hover figcaption {
	position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center;
	padding: 1rem; margin: 0; text-align: center; color: #fff; font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700; font-size: 1.3rem; opacity: 0; transition: opacity .35s ease;
}
.magic-hover:hover figcaption { opacity: 1; }
.wp-block-columns.no-gap { gap: 0; }
.wp-block-columns.no-gap .wp-block-column { display: flex; flex-direction: column; }

/* ---------- Footer ---------- */
.site-footer a { color: var(--wp--preset--color--white); text-decoration: underline; }
.site-footer .footer-heading { color: #fff !important; font-size: 1.125rem; margin: 1.5rem 0 .5rem; }
.site-footer .footer-heading:first-child { margin-top: 0; }
.site-footer .footer-nav a { text-decoration: none; font-weight: 700; color: var(--wp--preset--color--white); }
.site-footer .footer-nav .wp-block-navigation__container { gap: .5rem 0; }
.site-footer .footer-nav .wp-block-navigation-item:not(:last-child)::after { content: "|"; margin: 0 .6rem; opacity: .6; }
.site-footer .wp-block-social-links a { text-decoration: none; }
.site-footer-bar a { color: #cc99ff; text-decoration: underline; }

/* ---------- Forms (Forminator) – one global form, same look everywhere ---------- */
.forminator-ui.forminator-custom-form,
.forminator-ui { font-family: var(--wp--preset--font-family--libre-franklin); }
.forminator-ui .forminator-label { color: var(--wp--preset--color--secondary); font-weight: 400; }
.forminator-ui input[type="text"],
.forminator-ui input[type="email"],
.forminator-ui input[type="tel"],
.forminator-ui textarea {
	width: 100%; background: #fff; color: var(--wp--preset--color--secondary);
	border: 1px solid #c5c5c5; border-radius: 3px; padding: 12px 14px; font: inherit; font-weight: 300; box-shadow: none;
}
.forminator-ui input:focus, .forminator-ui textarea:focus { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 0; }
.forminator-ui .forminator-button-submit {
	background: var(--wp--preset--color--dark-blue); color: #fff; border: 0; border-radius: 3px;
	padding: 14px 40px; font: 500 1rem/1 var(--wp--preset--font-family--libre-franklin); cursor: pointer; transition: background-color .2s;
}
.forminator-ui .forminator-button-submit:hover { background: var(--wp--preset--color--primary); }
.forminator-ui .forminator-error-message { color: var(--wp--preset--color--accent); }

/* Contact card */
.contact-card { background: var(--wp--preset--color--off-white); padding: 9%; }
.contact-card h2 { font-size: 3rem; margin-bottom: 1.5rem; }

/* Footer newsletter: inline email + red button */
.site-footer .forminator-ui .forminator-row { margin-bottom: 0; }
.site-footer .forminator-ui .forminator-button-submit { background: var(--wp--preset--color--accent); padding: 14px 28px; }
.site-footer .forminator-ui .forminator-button-submit:hover { background: var(--wp--preset--color--primary); }
.site-footer .forminator-custom-form { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.site-footer .forminator-custom-form .forminator-row { flex: 1 1 220px; }
.site-footer .forminator-custom-form .forminator-label { display: none; }
.site-footer .forminator-response-message { flex-basis: 100%; }

/* ---------- Blog / archives ---------- */
.blog-card-grid { gap: 2.5rem 2rem; }
.blog-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--primary); }
.blog-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.blog-card img { width: 100%; object-fit: cover; }
.wp-block-query-pagination { margin-top: 3rem; gap: 1rem; }
.single-post .post-intro { position: relative; z-index: 2; }
.single-post .post-intro__cols { align-items: stretch; }
.post-body .wp-block-post-content > * + * { margin-block-start: 1.25rem; }
.post-body h2 { margin-top: 2.5rem; font-size: 2rem; }
.post-body h3 { margin-top: 2rem; }
.post-nav a { color: var(--wp--preset--color--primary); font-weight: 600; text-decoration: none; }

.product-card__title a { text-decoration: none; color: var(--wp--preset--color--secondary); }
.product-grid { gap: 3rem 4rem; }

.case-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--primary); }
.case-stat p { margin: 0; }
.case-stat h3 { font-family: var(--wp--preset--font-family--montserrat); }

/* ---------- Gallery ---------- */
.wp-block-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 4/3; object-fit: cover; }

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
	.site-header__inner { padding-left: 20px !important; padding-right: 20px !important; }
	.site-header .wp-block-site-logo img { width: 180px; height: auto; }
	.page-hero { padding-top: 140px !important; text-align: center; }
	.page-hero .wp-block-buttons { justify-content: center; }
	.tile-card { margin-bottom: 1rem; }
	.contact-card h2 { font-size: 2rem; }
	.site-footer .footer-nav .wp-block-navigation-item:not(:last-child)::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.page-hero .wp-block-cover__video-background { display: none; }
}

/* Hero copyright line sits bottom-right like the original */
.page-hero .hero-copy { position: absolute; right: 40px; bottom: 16px; margin: 0; color: var(--wp--preset--color--light); }
.page-hero { position: relative; }

/* Hero content hugs the left edge of the 1250px box, like the original */
.page-hero .wp-block-cover__inner-container > *:not(.hero-copy):not(.hero-social) { margin-left: 0 !important; margin-right: auto !important; max-width: 855px; }
.page-hero .wp-block-cover__inner-container > .wp-block-buttons { max-width: none; }
.wp-block-html iframe { display: block; width: 100%; }

@media (max-width: 781px) {
	.hero-social { display: none !important; }
	.page-hero .hero-copy { position: static; text-align: center; margin-top: 2rem; }
	.page-hero .wp-block-cover__inner-container > *:not(.hero-copy) { text-align: center; margin-inline: auto !important; }
}

/* No-JS image slider (Elementor carousel replacement) */
.image-slider { display: flex !important; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.iv-slider > .image-slider { overflow-x: auto; scrollbar-width: none; margin: 0 !important; }
.image-slider > figure { flex: 0 0 100%; scroll-snap-align: start; margin: 0; }
.image-slider img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.iv-slider .image-slider img { aspect-ratio: auto; position: absolute; inset: 0; }
.logo-strip { gap: 2rem 3rem; }
.logo-strip img { max-height: 90px; width: auto; object-fit: contain; }
.header-band { min-height: 150px; }

/* Forminator overrides (its own stylesheet is highly specific) */
.forminator-ui.forminator-custom-form[data-design] .forminator-input,
.forminator-ui.forminator-custom-form[data-design] .forminator-textarea {
	background: #fff !important; border: 1px solid #c5c5c5 !important; border-radius: 3px !important;
	color: var(--wp--preset--color--secondary) !important; font-family: var(--wp--preset--font-family--libre-franklin) !important; font-weight: 300 !important;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-label { font-size: 1rem !important; color: var(--wp--preset--color--secondary) !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit {
	background: var(--wp--preset--color--dark-blue) !important; color: #fff !important; border-radius: 3px !important; padding: 14px 40px !important; font-size: 1rem !important;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover { background: var(--wp--preset--color--primary) !important; }
.site-footer .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit { background: var(--wp--preset--color--accent) !important; padding: 14px 28px !important; }
.site-footer .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover { background: var(--wp--preset--color--primary) !important; }
.site-footer .forminator-ui .forminator-row { margin-bottom: 0 !important; }
.site-footer .forminator-ui .forminator-field { margin: 0 !important; }

/* ---------- Header navigation: white links, red hover/active, 18px gaps (15px + 20%) ---------- */
.site-header .wp-block-navigation { --iv-nav-gap: 18px; gap: var(--iv-nav-gap); }
.site-header .wp-block-navigation__container { gap: var(--iv-nav-gap); }
.site-header .wp-block-navigation .wp-block-navigation-item__content,
.site-header .wp-block-navigation .wp-block-navigation-item__content span { color: #fff; }
.site-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.site-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.site-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent); }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--primary); color: #fff; }
.site-header .wp-block-navigation__responsive-container-open svg { fill: #fff; }
.site-header .wp-block-navigation .wp-block-navigation-item__content.is-current,
.site-header .wp-block-navigation .wp-block-navigation-item__content.is-current span { color: var(--wp--preset--color--accent); }

/* ==========================================================================
   Forms & form panels
   ========================================================================== */

/* Coloured panels (columns/groups) always get breathing room */
.wp-block-column.has-background:not(.tile-card) { padding: clamp(1.75rem, 5vw, 3.5rem); }
.wp-block-column.has-background:not(.tile-card) > :first-child { margin-top: 0; }
.wp-block-column.has-background:not(.tile-card) > :last-child { margin-bottom: 0; }
.wp-block-column.has-off-white-background-color h2 { font-size: clamp(1.75rem, 3vw, 2.4rem); margin: 0 0 1.5rem; line-height: 1.15; }
.wp-block-column.has-dark-blue-background-color h2,
.wp-block-column.has-primary-background-color h2 { font-size: clamp(1.4rem, 2.2vw, 1.75rem); line-height: 1.25; margin-bottom: .75rem; color: #fff; }

/* Field rhythm */
.forminator-ui.forminator-custom-form[data-design] .forminator-row { margin-bottom: 1.1rem !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-row:last-child { margin-bottom: 0 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-label { margin-bottom: .4rem !important; font-weight: 600 !important; line-height: 1.5 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-required { color: var(--wp--preset--color--accent); }
.forminator-ui.forminator-custom-form[data-design] .forminator-input,
.forminator-ui.forminator-custom-form[data-design] .forminator-textarea { padding: 12px 14px !important; min-height: 46px; }
.forminator-ui.forminator-custom-form[data-design] .forminator-textarea { min-height: 140px; }
.forminator-ui.forminator-custom-form[data-design] .forminator-checkbox { align-items: flex-start; }
.forminator-ui.forminator-custom-form[data-design] .forminator-checkbox .forminator-checkbox-label { font-size: 1rem; color: var(--wp--preset--color--secondary); }
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit { margin-top: .5rem; min-height: 48px; cursor: pointer; }

/* Forms on dark panels: light labels / text */
.has-dark-blue-background-color .forminator-label,
.has-primary-background-color .forminator-label,
.has-dark-blue-background-color .forminator-checkbox-label,
.has-primary-background-color .forminator-checkbox-label { color: #fff !important; }
.has-dark-blue-background-color .forminator-button-submit,
.has-primary-background-color .forminator-button-submit { background: var(--wp--preset--color--accent) !important; }
.has-dark-blue-background-color .forminator-button-submit:hover,
.has-primary-background-color .forminator-button-submit:hover { background: #fff !important; color: var(--wp--preset--color--dark-blue) !important; }
.has-dark-blue-background-color .forminator-error-message,
.has-primary-background-color .forminator-error-message { color: #ffb3b9 !important; background: transparent !important; }

/* Newsletter (form 3236): email + button on one line everywhere, label visually hidden */
.forminator-ui.forminator-custom-form-3236 { display: flex !important; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.forminator-custom-form-3236 .forminator-row { flex: 1 1 240px; margin: 0 !important; }
.forminator-custom-form-3236 .forminator-row:has(.forminator-button-submit),
.forminator-custom-form-3236 .forminator-row-last { flex: 0 0 auto; }
.forminator-custom-form-3236 .forminator-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.forminator-custom-form-3236 .forminator-button-submit { margin: 0 !important; height: 100%; min-height: 46px; padding: 0 28px !important; }
.forminator-custom-form-3236 .forminator-response-message { flex: 1 1 100%; margin: 0; }

/* Specificity bump so dark-panel buttons beat the default submit style */
.has-dark-blue-background-color .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit,
.has-primary-background-color .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit { background: var(--wp--preset--color--accent) !important; color: #fff !important; }
.has-dark-blue-background-color .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover,
.has-primary-background-color .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover { background: #fff !important; color: var(--wp--preset--color--dark-blue) !important; }
.site-footer .forminator-ui.forminator-custom-form-3236 { width: 100%; margin: 0 !important; padding: 0 !important; max-width: none; }
.site-footer .forminator-custom-form-3236 .forminator-row { padding: 0 !important; }
.site-footer .forminator-custom-form-3236 .forminator-col { padding: 0 !important; }

/* Hero: no decorative line; keep copy flush-left with the heading; social icons pinned to the page edge */
.page-hero .wp-block-cover__inner-container .wp-block-group > * { margin-left: 0 !important; margin-right: auto !important; }
.page-hero .wp-block-cover__inner-container .wp-block-group > p { max-width: 700px; }
.page-hero .hero-social { display: none !important; position: absolute !important; left: 20px !important; right: auto !important; top: 50% !important; bottom: auto !important; transform: translateY(-50%); margin: 0 !important; }

/* ==========================================================================
   Typography scale – ONE body size, ONE hero-paragraph size
   Body copy:       16px / 24px
   Hero paragraphs: 18px / 26px
   ========================================================================== */
body, p, li, td, th, dd, dt, figcaption, blockquote, address,
.wp-block-post-content, .wp-block-post-excerpt, .wp-block-post-date, .wp-block-paragraph,
.forminator-ui input, .forminator-ui textarea, .forminator-ui .forminator-label, .forminator-ui .forminator-checkbox-label,
.site-footer, .site-footer p, .site-footer li, .site-footer .footer-nav a, .site-footer-bar p {
	font-size: 1rem; line-height: 1.5;
}
p.has-small-font-size, p.has-medium-font-size, .has-small-font-size:not(h1):not(h2):not(h3):not(h4), .has-medium-font-size:not(h1):not(h2):not(h3):not(h4) { font-size: 1rem !important; line-height: 1.5 !important; }
.page-hero p, .page-hero li, .page-hero .wp-block-cover__inner-container > .wp-block-group > p { font-size: 1.125rem !important; line-height: 26px !important; }
.page-hero .hero-copy { font-size: 1rem !important; line-height: 1.5 !important; }

/* ==========================================================================
   Product cards
   ========================================================================== */
.product-grid { gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.product-card {
	display: flex; flex-direction: column; height: 100%; background: #fff; overflow: hidden;
	border: 1px solid #e4e7ec; border-radius: var(--iv-radius); box-shadow: 0 1px 2px rgba(4,50,110,.05);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.product-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(4,50,110,.14); border-color: var(--wp--preset--color--primary); }
.product-card__media { margin: 0; background: var(--wp--preset--color--light); border-bottom: 1px solid #eef0f3; padding: clamp(1rem, 2vw, 1.75rem); }
.product-card__media img { display: block; width: 100%; height: 100%; mix-blend-mode: multiply; transition: transform .35s ease; }
.product-card:hover .product-card__media img { transform: scale(1.04); }
.product-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem; gap: .75rem; }
.product-card__body > * { margin: 0 !important; }
.product-card__terms { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .75rem !important; line-height: 1 !important; }
.product-card__terms a {
	display: inline-block; padding: .35rem .7rem; border-radius: 999px; background: rgba(0,91,153,.1); color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--montserrat); font-size: .75rem; font-weight: 600; line-height: 1; text-decoration: none; letter-spacing: .02em;
}
.product-card__terms a:hover { background: var(--wp--preset--color--primary); color: #fff; }
.product-card__terms .wp-block-post-terms__separator { display: none; }
.product-card__title { font-size: 1.25rem !important; line-height: 1.25 !important; text-transform: none !important; }
.product-card__title a { color: var(--wp--preset--color--dark-blue) !important; text-decoration: none; }
.product-card__title a:hover { color: var(--wp--preset--color--accent) !important; }
.product-card .product-card__desc { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.product-card .product-card__more { margin-top: auto !important; padding-top: .5rem; }
.product-card .product-card__more {
	display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--wp--preset--color--accent); text-decoration: none;
}
.product-card .product-card__more::after { content: "→"; transition: transform .2s ease; }
.product-card .product-card__more:hover { color: var(--wp--preset--color--primary); }
.product-card .product-card__more:hover::after { transform: translateX(4px); }
@media (max-width: 900px) { .product-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .product-grid.is-layout-grid { grid-template-columns: 1fr !important; } }

/* Partners strip */
.partners-strip .logo-strip { gap: 1.5rem clamp(1.5rem, 3vw, 3rem); margin-top: 2rem; }
.partners-strip .logo-strip figure { margin: 0; flex: 0 0 auto; }
.partners-strip .logo-strip img { height: 64px; width: auto; max-width: 160px; object-fit: contain; }
@media (max-width: 600px) { .partners-strip .logo-strip img { height: 48px; max-width: 120px; } }

/* ==========================================================================
   Heading colours: navy on light backgrounds, white on dark ones
   (explicit white/light heading colours set in the editor are kept)
   ========================================================================== */
:root { --iv-heading-on-light: var(--wp--preset--color--dark-blue); --iv-heading-on-dark: #fff; }
h1, h2, h3, h4, h5, h6, .wp-block-heading, .wp-block-post-title, .wp-block-query-title { color: var(--iv-heading-on-light); }
.case-stat h3, .tile-card h3, .contact-card h2 { color: var(--iv-heading-on-light); }
:is(.has-dark-blue-background-color, .has-primary-background-color, .has-accent-background-color, .page-hero, .post-hero, .site-footer, .site-footer-bar, .wp-block-cover.is-dark)
	:is(h1, h2, h3, h4, h5, h6, .wp-block-heading, .wp-block-post-title) { color: var(--iv-heading-on-dark); }
:is(.has-dark-blue-background-color, .has-primary-background-color) :is(h1,h2,h3,h4,h5,h6) a { color: inherit; }
.wp-block-heading.has-light-color, .wp-block-post-title.has-light-color { color: #fff !important; }

/* Smush lazy-load injects a 100px square placeholder on any element with an inline background image.
   Neutralise it for block containers so layouts never collapse while images are pending. */
:is(div, section, figure, header, footer, main, article).lazyload,
:is(div, section, figure, header, footer, main, article).lazyloading { width: auto !important; max-width: none !important; aspect-ratio: auto !important; }

/* Hero with a nested two-column layout (text + form): use the full 1250px box, not the 855px copy width */
.page-hero .wp-block-cover__inner-container > .wp-block-columns { max-width: none; }
.page-hero .wp-block-columns { gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.page-hero .wp-block-column.has-background {
	background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.25); border-radius: var(--iv-radius); color: #fff;
}
.page-hero .wp-block-column.has-background p { color: #fff; }
.page-hero .wp-block-column.has-background .forminator-label,
.page-hero .wp-block-column.has-background .forminator-checkbox-label { color: #fff !important; }
.page-hero .wp-block-column.has-background .forminator-button-submit { background: var(--wp--preset--color--accent) !important; }
.page-hero .wp-block-column.has-background a { color: #fff; }
.page-hero .wp-block-cover__inner-container > .wp-block-columns { width: 100%; max-width: 1250px; margin-inline: auto !important; }
.page-hero .wp-block-column.has-background { background: rgba(255,255,255,.1) !important; }
.page-hero .wp-block-column.has-background > p:first-child { font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; font-size: 2rem !important; line-height: 1.15 !important; margin-bottom: 1.25rem; }
.page-hero .wp-block-cover__inner-container { padding-inline: var(--wp--preset--spacing--40); box-sizing: border-box; }

/* ==========================================================================
   Landing pages (Natural / Smoke ventilation services)
   ========================================================================== */
.hero--landing { min-height: 80vh; }
.hero--landing .hero-split { align-items: center; gap: clamp(2rem, 5vw, 5rem); margin: 0; }
.hero--landing .wp-block-cover__inner-container > .wp-block-columns { max-width: 1250px; }
.hero--landing h1 { max-width: 14ch; margin-bottom: 1.25rem; font-size: clamp(2.25rem, 4.2vw, 3.4rem); line-height: 1.08; }
.hero--landing .wp-block-column > p { max-width: 36rem; margin-bottom: 1rem; }
.hero-rating { gap: 1rem; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.25); }
.hero-rating p { margin: 0; max-width: 20rem; }
.hero-rating .rating-badge { margin: 0; flex: 0 0 auto; }
.hero-form-card { background: #fff; border-radius: var(--iv-radius); padding: clamp(1.5rem, 3vw, 2.5rem) !important; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.hero-form-card h2 { color: var(--wp--preset--color--dark-blue) !important; font-size: clamp(1.5rem, 2.4vw, 2rem); margin: 0 0 1.25rem; }
.hero-form-card .forminator-label, .hero-form-card .forminator-checkbox-label { color: var(--wp--preset--color--secondary) !important; }
.hero-form-card .forminator-button-submit { background: var(--wp--preset--color--accent) !important; width: 100%; }

.section-lead { max-width: 52rem; margin-inline: auto; text-align: center; }
.client-section .client-logos { margin-top: 2.5rem; gap: 1.5rem clamp(1.5rem, 3.5vw, 3.5rem); }
.client-logos figure { margin: 0; }
.client-logos img { height: 72px; width: auto; max-width: 140px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .25s, opacity .25s; }
.client-logos img:hover { filter: none; opacity: 1; }

.why-split { align-items: stretch !important; margin: 0; }
.why-split .why-media { padding: 0 !important; }
.why-photo { height: 100%; min-height: 520px; }
.why-copy { padding: clamp(2rem, 6vw, 5rem) !important; }
.why-copy h2 { margin: 0 0 1.25rem; }
.is-style-check-list { list-style: none; padding: 0; margin: 0 0 1.75rem; display: grid; gap: .75rem; }
.is-style-check-list li { position: relative; padding-left: 2rem; }
.is-style-check-list li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 1.4rem; height: 1.4rem; line-height: 1.4rem; text-align: center; border-radius: 50%; background: var(--wp--preset--color--accent); color: #fff; font-size: .8rem; font-weight: 700; }

.testimonials { gap: clamp(1.25rem, 2.5vw, 2rem); margin-top: 2.5rem; }
.testimonial-card { height: 100%; padding: clamp(1.5rem, 2.5vw, 2rem); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.22); border-radius: var(--iv-radius); }
.testimonial-card p { color: #fff; margin: 0; }
.testimonial-stars { color: #ffc94d !important; letter-spacing: .15em; margin-bottom: .75rem !important; }
.testimonial-quote { margin-bottom: 1.25rem !important; }
.testimonial-author { font-size: 1rem; opacity: .9; }

.faq-grid { gap: 0 clamp(1.5rem, 4vw, 3rem); margin-top: 2.5rem; align-items: flex-start; }
.faq-item { background: #fff; border: 1px solid #e4e7ec; border-radius: var(--iv-radius); padding: 1rem 1.25rem; margin-bottom: 1rem; }
.faq-item summary { cursor: pointer; font-weight: 600; color: var(--wp--preset--color--dark-blue); }
.faq-item[open] { border-color: var(--wp--preset--color--primary); box-shadow: 0 6px 18px rgba(4,50,110,.08); }
.faq-item p { margin: .75rem 0 0; }
.faq-section { background: var(--wp--preset--color--off-white); }

.ceo-split { gap: clamp(2rem, 5vw, 5rem); margin: 0; }
.ceo-photo img { width: 100%; border-radius: var(--iv-radius); box-shadow: 0 18px 40px rgba(4,50,110,.18); }
.ceo-split h2 { margin-bottom: 1.25rem; }
.ceo-split .wp-block-column > p { margin-bottom: 1rem; }

.cta-cards { gap: clamp(1.25rem, 2.5vw, 2rem); }
.cta-card { height: 100%; background: #fff; border: 1px solid #e4e7ec; border-top: 4px solid var(--wp--preset--color--accent); border-radius: var(--iv-radius); padding: clamp(1.5rem, 3vw, 2.25rem); }
.cta-card h3 { margin: 0 0 .5rem; font-size: 1.5rem; }
.cta-card p { margin: 0 0 1.25rem; }
@media (max-width: 781px) { .why-photo { min-height: 320px; } .hero--landing h1 { max-width: none; } }
.page-hero p, .page-hero li { color: #fff; }
.hero--landing .hero-form-card .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit { background: var(--wp--preset--color--accent) !important; width: 100%; }
.hero--landing .hero-form-card .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover { background: var(--wp--preset--color--dark-blue) !important; }
.hero--landing .hero-form-card .forminator-ui .forminator-label { color: var(--wp--preset--color--secondary) !important; }

/* Site width = 1250px everywhere (hero, sections, header, footer) */
.page-hero .wp-block-cover__inner-container > .wp-block-columns.wp-block-columns,
.page-hero.hero--landing .wp-block-cover__inner-container > .wp-block-columns { max-width: 1250px !important; width: 100%; }
.page-hero .wp-block-cover__inner-container { max-width: 1250px; width: 100%; margin-inline: auto; }
.site-header__inner { max-width: calc(1250px + 2 * 55px); }
.why-split { overflow: hidden; border-radius: var(--iv-radius); }
.why-section { }
.page-hero .wp-block-cover__inner-container { width: min(1250px, calc(100% - 2rem)); max-width: none; padding-inline: 0; box-sizing: border-box; margin-inline: auto; }
.page-hero .wp-block-cover__inner-container > .wp-block-columns.wp-block-columns { max-width: 100% !important; }

/* Product page content */
.product-content > * + * { margin-top: 1.25rem; }
.product-content > p:first-child { font-weight: 500; color: var(--wp--preset--color--dark-blue); }
.product-content h2, .product-content h3 { margin-top: 2rem; font-size: 1.35rem; line-height: 1.2; }
.product-content .is-style-check-list { margin-bottom: 0; }
.product-note { background: var(--wp--preset--color--light); border-left: 4px solid var(--wp--preset--color--accent); border-radius: 0 var(--iv-radius) var(--iv-radius) 0; padding: 1rem 1.25rem; }
.product-note p { margin: 0; }
.product-single .product-downloads { margin-top: 2rem; }

/* ==========================================================================
   About page
   ========================================================================== */
.about-split { gap: clamp(2rem, 5vw, 5rem); margin: 0; }
.about-split h2 { margin-bottom: 1.25rem; }
.about-split .wp-block-column > p { margin-bottom: 1rem; }
.about-photo img { width: 100%; border-radius: var(--iv-radius); box-shadow: 0 18px 40px rgba(4,50,110,.16); }
.climate-section .about-photo img { box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.climate-section .section-divider { margin-inline: 0; width: 80px; border-top-color: var(--wp--preset--color--accent); border-top-width: 3px; margin-bottom: 1.5rem; }
.climate-section p { color: #fff; }
.fact-grid { gap: clamp(1rem, 2.5vw, 2rem); }
.fact-card { height: 100%; background: #fff; border-radius: var(--iv-radius); border-top: 4px solid var(--wp--preset--color--accent); padding: clamp(1.5rem, 3vw, 2rem); box-shadow: 0 6px 20px rgba(4,50,110,.07); }
.fact-card .fact-figure { font-family: var(--wp--preset--font-family--montserrat); font-weight: 800; font-size: clamp(2rem, 3.4vw, 2.75rem) !important; line-height: 1.1 !important; color: var(--wp--preset--color--accent); margin: 0 0 .5rem; }
.fact-card h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.fact-card p:last-child { margin: 0; }
.service-cards { gap: clamp(1.25rem, 2.5vw, 2rem); margin-top: 2.5rem; }
.service-card { height: 100%; display: flex; flex-direction: column; gap: 1rem; background: var(--wp--preset--color--light); border: 1px solid #eee3e5; border-radius: var(--iv-radius); padding: clamp(1.75rem, 3vw, 2.75rem); }
.service-card h3 { margin: 0; font-size: 1.75rem; }
.service-card p { margin: 0; }
.service-card .wp-block-buttons { margin-top: auto; padding-top: .5rem; }
.newsletter-panel { background: var(--wp--preset--color--dark-blue); border-radius: var(--iv-radius); padding: clamp(2rem, 5vw, 3.5rem); max-width: 820px; margin-inline: auto; }
.newsletter-panel h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); color: #fff; margin: 0 0 .75rem; }
.newsletter-panel p { color: #fff; margin: 0 0 1.5rem; }
.newsletter-panel { max-width: none; display: grid; gap: 1rem 3rem; align-items: center; }
@media (min-width: 900px) { .newsletter-panel { grid-template-columns: 1.1fr 1fr; } .newsletter-panel > h2, .newsletter-panel > p { grid-column: 1; } .newsletter-panel > .wp-block-shortcode { grid-column: 2; grid-row: 1 / span 2; } }
.newsletter-panel > * { margin: 0; }
.newsletter-panel .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit { background: var(--wp--preset--color--accent) !important; color: #fff !important; }
.newsletter-panel .forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover { background: #fff !important; color: var(--wp--preset--color--dark-blue) !important; }

/* Services page */
.service-kicker { font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--accent); font-size: .875rem !important; margin-block: 0 .5rem !important; }
.service-row .is-style-check-list { margin: 1.25rem 0 1.75rem; }
.cta-panel { grid-template-columns: 1fr !important; text-align: center; justify-items: center; }
.cta-panel > * { grid-column: auto !important; grid-row: auto !important; }
.cta-panel .wp-block-buttons { justify-content: center; }

/* Case study cards */
.case-grid { gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.case-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid #e4e7ec; border-radius: var(--iv-radius); overflow: hidden; box-shadow: 0 1px 2px rgba(4,50,110,.05); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.case-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(4,50,110,.14); border-color: var(--wp--preset--color--primary); }
.case-card__media { margin: 0; overflow: hidden; }
.case-card__media img { display: block; width: 100%; transition: transform .4s ease; }
.case-card:hover .case-card__media img { transform: scale(1.04); }
.case-card__body { display: flex; flex-direction: column; flex: 1; gap: .75rem; padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.case-card__body > * { margin: 0 !important; }
.case-card__badges { gap: .4rem; }
.case-badge { display: inline-block; padding: .35rem .7rem; border-radius: 999px; background: rgba(0,91,153,.1); color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--montserrat); font-size: .75rem !important; font-weight: 600; line-height: 1 !important; letter-spacing: .02em; }
.case-badge--status { background: var(--wp--preset--color--dark-blue); color: #fff; }
.case-badge:empty { display: none; }
.case-card__title { font-size: 1.4rem !important; line-height: 1.25 !important; }
.case-card__title a { color: var(--wp--preset--color--dark-blue) !important; text-decoration: none; }
.case-card__title a:hover { color: var(--wp--preset--color--accent) !important; }
.case-card__facts { display: grid; gap: .25rem; }
.case-fact { margin: 0; font-size: 1rem; }
.case-fact:empty { display: none; }
.case-fact--client::before { content: "Client: "; font-weight: 600; color: var(--wp--preset--color--dark-blue); }
.case-fact--place::before { content: "Location: "; font-weight: 600; color: var(--wp--preset--color--dark-blue); }
.case-card .case-card__desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.case-card .case-card__more { margin-top: auto !important; padding-top: .5rem; display: inline-flex; gap: .5rem; font-weight: 600; color: var(--wp--preset--color--accent); text-decoration: none; }
.case-card .case-card__more::after { content: "→"; transition: transform .2s; }
.case-card .case-card__more:hover { color: var(--wp--preset--color--primary); }
.case-card .case-card__more:hover::after { transform: translateX(4px); }
@media (max-width: 781px) { .case-grid.is-layout-grid { grid-template-columns: 1fr !important; } }

/* Single case study */
.case-crumb { margin: 0 0 1rem !important; }
.case-crumb a { color: #fff; text-decoration: none; font-weight: 600; opacity: .85; }
.case-crumb a:hover { opacity: 1; text-decoration: underline; }
.case-hero .case-badge--hero { margin-bottom: 1rem !important; }
.case-hero h1 { margin-bottom: .75rem; }
.case-hero__place { color: #fff; margin: 0; font-size: 1.125rem; }
.case-hero__place:empty { display: none; }
.case-photo img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: var(--iv-radius); box-shadow: 0 18px 40px rgba(4,50,110,.16); }
.detail-card { background: #fff; border-top: 4px solid var(--wp--preset--color--accent); border-radius: var(--iv-radius); padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: 0 6px 20px rgba(4,50,110,.07); }
.detail-card h3 { margin: 0 0 1rem; font-size: 1.5rem; }
.detail-row { gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #e9ecf1; align-items: baseline; }
.detail-row p { margin: 0; }
.detail-label { color: var(--wp--preset--color--dark-blue); flex: 0 0 auto; }
.detail-value { text-align: right; }
.detail-card .wp-block-buttons { margin-top: 1.5rem; }
.case-about .wp-block-column > p { margin-bottom: 1rem; }
.project-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.project-stats .fact-card { padding: 1.25rem; }
.project-stats .fact-card p:last-child { margin: 0; }
.case-about h3 { margin: 0 0 .75rem; font-size: 1.25rem; }
.case-video-section .wp-block-embed { margin: 2rem 0 0; }
.case-gallery-section .wp-block-gallery { margin-top: 2rem; }
.case-gallery-section .wp-block-gallery img { border-radius: var(--iv-radius); }
.case-nav-section .post-nav { border-top: 1px solid #e9ecf1; padding-top: 1.5rem; }
.case-gallery-section .wp-block-gallery img { aspect-ratio: 4/3; object-fit: cover; width: 100%; height: 100%; }

/* Case study slider */
.iv-slider { position: relative; border-radius: var(--iv-radius); box-shadow: 0 18px 40px rgba(4,50,110,.16); overflow: hidden; background: var(--wp--preset--color--dark-blue); }
.iv-slider__track { display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.iv-slider__track::-webkit-scrollbar { display: none; }
.iv-slider__slide { flex: 0 0 100%; margin: 0; scroll-snap-align: start; }
.iv-slider__slide { aspect-ratio: 16/10; position: relative; }
.iv-slider__slide img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; user-select: none; }
.iv-slider__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--wp--preset--color--dark-blue); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.25); transition: background .2s, color .2s; }
.iv-slider__nav:hover, .iv-slider__nav:focus-visible { background: var(--wp--preset--color--accent); color: #fff; }
.iv-slider__nav--prev { left: 14px; }
.iv-slider__nav--next { right: 14px; }
.iv-slider__dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 8px; }
.iv-slider__dot { width: 10px; height: 10px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: transparent; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.4); }
.iv-slider__dot.is-active { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); }
@media (prefers-reduced-motion: reduce) { .iv-slider__track { scroll-behavior: auto; } }

/* Smoke ventilation page */
.hero-kicker { font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .875rem !important; color: var(--wp--preset--color--teal) !important; margin-block: 0 .75rem !important; }
.provide-section .tile-grid { gap: clamp(1rem, 2.5vw, 2rem); margin-top: 2.5rem; }
.provide-section .tile-grid > .wp-block-column { flex-basis: calc(33.333% - 1.5rem) !important; }
.provide-section .tile-card { text-align: left; padding: clamp(1.5rem, 3vw, 2rem); background: #fff; border: 1px solid #e6e9ef; border-radius: var(--iv-radius); transition: box-shadow .2s, transform .2s, border-color .2s; }
.provide-section .tile-card:hover { box-shadow: 0 12px 30px rgba(4,50,110,.12); transform: translateY(-3px); border-color: var(--wp--preset--color--accent); }
.provide-section .tile-card h3, .provide-section .tile-card p { text-align: left; }
.provide-section .tile-card h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.provide-section .tile-card p:last-child { margin-bottom: 0; }
.provide-section .tile-card .service-kicker { margin-block: 0 .75rem !important; }
.smoke-contact .about-split { align-items: center; gap: clamp(2rem, 5vw, 4rem); }
.smoke-contact .contact-card { padding: clamp(1.75rem, 4vw, 3rem); border-radius: var(--iv-radius); }
.smoke-contact .contact-card h2 { font-size: 2rem; margin: 0 0 1rem; }
.smoke-contact .wp-block-column > h2 { margin-top: 0; }
@media (max-width: 781px) { .provide-section .tile-grid > .wp-block-column { flex-basis: 100% !important; } }
.provide-section .tile-grid { flex-wrap: wrap !important; }
.smoke-contact .contact-address { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.25rem; line-height: 1.5; color: var(--wp--preset--color--dark-blue); }
.smoke-contact .contact-address strong { font-weight: 700; }

/* European safety standards page */
.standards-hero .iv-slider { box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.standards-hero .iv-slider__slide { aspect-ratio: 1/1; }
.stack-media { display: grid; gap: 1.5rem; align-content: center; }
.stack-media .wp-block-image { margin: 0; }
.annex-section .section-lead, .annex-section h2 { color: #fff; }
.annex-section .section-lead { margin-bottom: 2.5rem; }
.annex-grid { gap: clamp(1rem, 2vw, 1.5rem); margin-bottom: clamp(1rem, 2vw, 1.5rem); flex-wrap: wrap !important; }
.annex-grid > .wp-block-column { flex-basis: calc(33.333% - 1rem) !important; flex-grow: 1; }
.annex-card, .standard-pill { height: 100%; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: var(--iv-radius); padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.annex-card h3 { color: #fff; font-size: 1.15rem; margin: 0 0 .75rem; }
.annex-card--notes { background: var(--wp--preset--color--accent); border-color: transparent; }
.annex-letter { font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .8125rem !important; line-height: 1.2 !important; color: var(--wp--preset--color--teal); margin: 0 0 .5rem !important; }
.annex-card--notes .annex-letter { color: #fff; }
.annex-list { margin: 0; padding-left: 1.1rem; color: #fff; display: grid; gap: .5rem; }
.standard-pill { background: transparent; border-style: dashed; }
.standard-pill p:last-child { color: #fff; margin: 0; }
.annex-foot { margin-top: 1rem; margin-bottom: 2rem; }
.ref-grid { gap: clamp(1rem, 2.5vw, 2rem); margin-top: 2.5rem; }
.ref-card { height: 100%; background: #fff; border: 1px solid #e6e9ef; border-radius: var(--iv-radius); overflow: hidden; box-shadow: 0 6px 20px rgba(4,50,110,.07); }
.ref-card .wp-block-image { margin: 0; }
.ref-card img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.ref-body { padding: 1.5rem; }
.ref-body h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.ref-body p { margin: 0; }
.ref-meta { color: var(--wp--preset--color--accent); }
@media (max-width: 781px) { .annex-grid > .wp-block-column { flex-basis: 100% !important; } }

/* Blog index redesign */
.blog-card-grid { gap: clamp(1.5rem, 2.5vw, 2rem) !important; padding: 0; }
.blog-card { height: 100%; display: flex; flex-direction: column; background: #fff; border: 1px solid #e6e9ef; border-radius: var(--iv-radius); overflow: hidden; box-shadow: 0 6px 20px rgba(4,50,110,.07); transition: box-shadow .2s, transform .2s; }
.blog-card:hover { box-shadow: 0 14px 34px rgba(4,50,110,.14); transform: translateY(-3px); }
.blog-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.blog-card .wp-block-post-featured-image img { transition: transform .4s; }
.blog-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.blog-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.blog-card__date { order: -1; margin: 0; font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--accent); }
.blog-card .wp-block-post-title { margin: 0; font-size: 1.25rem; line-height: 1.25; }
.blog-card .wp-block-post-title a { color: var(--wp--preset--color--dark-blue); }
.blog-card .wp-block-post-excerpt { margin: 0; display: flex; flex-direction: column; flex: 1; }
.blog-card .wp-block-post-excerpt__excerpt { margin: 0 0 1rem; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.blog-card .wp-block-post-excerpt__more-link { margin-top: auto; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--primary); }
.blog-card .wp-block-post-excerpt__more-link:hover { color: var(--wp--preset--color--accent); }
@media (min-width: 900px) {
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child { grid-column: 1 / -1; }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .blog-card { flex-direction: row; }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .blog-card > .wp-block-post-featured-image { flex: 0 0 55%; }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .blog-card > .wp-block-post-featured-image img { height: 100% !important; aspect-ratio: auto !important; }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .blog-card__body { justify-content: center; padding: clamp(2rem, 4vw, 3.5rem); }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .blog-card__date::before { content: "Latest · "; }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .wp-block-post-title { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .wp-block-post-excerpt { flex: 0 0 auto; }
	body:not(.paged) .blog-grid-wrap .blog-card-grid > li:first-child .wp-block-post-excerpt__excerpt { -webkit-line-clamp: 6; font-size: 1.125rem; line-height: 1.6; }
}
.wp-block-query-pagination { margin-top: 3rem; justify-content: center; align-items: center; }
.wp-block-query-pagination-numbers { display: flex; gap: .5rem; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination-next, .wp-block-query-pagination-previous { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 1rem; border-radius: 10px; border: 1px solid #d9dee8; text-decoration: none; font-weight: 600; color: var(--wp--preset--color--dark-blue); }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); color: #fff; }
.wp-block-query-pagination a:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }

/* Blog post template */
.post-hero__date { margin: .75rem 0 0; color: #fff; font-family: var(--wp--preset--font-family--montserrat); font-weight: 600; font-size: .875rem; letter-spacing: .08em; text-transform: uppercase; }
.post-hero__date::before { content: "Published "; opacity: .75; }
.post-layout__cols { gap: clamp(2rem, 4vw, 4rem); }
.post-feature { margin: 0 0 2rem; }
.post-feature img { width: 100%; border-radius: var(--iv-radius); box-shadow: 0 18px 40px rgba(4,50,110,.16); }
.post-aside { position: sticky; top: 100px; align-self: flex-start; }
.aside-card { padding: clamp(1.5rem, 3vw, 2rem) !important; border-radius: var(--iv-radius); border-top: 4px solid var(--wp--preset--color--accent); box-shadow: 0 6px 20px rgba(4,50,110,.07); }
.aside-card h3 { margin: 0 0 .5rem; font-size: 1.35rem; }
.aside-card > p { margin: 0 0 1rem; }
.post-body > .wp-block-post-content > * + * { margin-block-start: 1.25rem; }
.post-body h2 { margin-top: 2.75rem; font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1.2; }
.post-body h3 { margin-top: 2rem; }
.post-body img { max-width: 100%; height: auto; border-radius: var(--iv-radius); }
.post-body a { text-decoration: underline; text-underline-offset: 3px; }
.post-body ul, .post-body ol { padding-left: 1.25rem; display: grid; gap: .5rem; }
.post-body blockquote { margin-inline: 0; padding: 1rem 1.5rem; border-left: 4px solid var(--wp--preset--color--accent); background: var(--wp--preset--color--light); border-radius: 0 var(--iv-radius) var(--iv-radius) 0; }
.post-body .wp-block-table { overflow-x: auto; margin-block: 1.75rem; }
.post-body .wp-block-table table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #e1e5ee; border-radius: var(--iv-radius); overflow: hidden; font-size: .9375rem; line-height: 1.5; }
.post-body .wp-block-table th, .post-body .wp-block-table td { border: 0; border-bottom: 1px solid #e1e5ee; padding: .85rem 1rem; text-align: left; vertical-align: top; }
.post-body .wp-block-table tr:last-child td { border-bottom: 0; }
.post-body .wp-block-table thead th, .post-body .wp-block-table tr:first-child td:only-child { background: var(--wp--preset--color--dark-blue); color: #fff; font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; }
.post-body .wp-block-table tbody tr:nth-child(even) td { background: var(--wp--preset--color--light); }
.post-body .wp-block-table td:first-child { font-weight: 600; color: var(--wp--preset--color--dark-blue); }
.post-body .schema-faq-section { margin: 0 0 .75rem; padding: 1.1rem 1.4rem; background: var(--wp--preset--color--light); border-radius: var(--iv-radius); }
.post-body .schema-faq-question { display: block; color: var(--wp--preset--color--dark-blue); font-family: var(--wp--preset--font-family--montserrat); margin-bottom: .4rem; }
.post-body .schema-faq-answer { margin: 0; }
.post-nav { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #e1e5ee; gap: 1rem; }
.post-nav a { text-decoration: none; font-weight: 600; }
.related-section .blog-card-grid { margin-top: 2.5rem; }
@media (max-width: 781px) { .post-aside { position: static; } }

/* Contact page */
.contact-methods { flex-wrap: wrap !important; }
.contact-methods > .wp-block-column { flex-basis: calc(25% - 1.5rem) !important; flex-grow: 1; }
.contact-method h3 { font-size: 1.15rem; }
.contact-method a { text-decoration: none; font-weight: 600; }
.contact-method a:hover { color: var(--wp--preset--color--accent); }
.contact-method .contact-label { color: var(--wp--preset--color--accent); }
.contact-split .about-split { align-items: stretch !important; }
.map-frame { height: 100%; min-height: 420px; border-radius: var(--iv-radius); overflow: hidden; box-shadow: 0 18px 40px rgba(4,50,110,.16); }
.map-frame, .map-frame .wp-block-html { height: 100%; }
.map-frame iframe { display: block; width: 100%; height: 100%; min-height: 420px; }
.contact-split .contact-card > p { margin: 0 0 1.25rem; }
@media (max-width: 1000px) { .contact-methods > .wp-block-column { flex-basis: calc(50% - 1rem) !important; } }
@media (max-width: 600px) { .contact-methods > .wp-block-column { flex-basis: 100% !important; } }

/* Home page */
.home-hero .wp-block-buttons { margin-top: 1.5rem; }
.chip-row { gap: .6rem; margin: 1.5rem 0 0; }
.chip { margin: 0; padding: .4rem 1rem; border-radius: 999px; background: var(--wp--preset--color--light); border: 1px solid #eadde0; color: var(--wp--preset--color--dark-blue); font-family: var(--wp--preset--font-family--montserrat); font-weight: 600; font-size: .875rem !important; line-height: 1.4 !important; }
.service-card--media { padding: 0 !important; overflow: hidden; gap: 0; background: #fff; box-shadow: 0 6px 20px rgba(4,50,110,.07); }
.service-card--media .wp-block-image { margin: 0; }
.service-card--media .service-card__img img, .service-card--media img { display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.service-card__body { padding: clamp(1.5rem, 3vw, 2.25rem); display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.service-card__body > * { margin: 0; }
.service-card__body .wp-block-buttons { margin-top: auto; padding-top: .5rem; }
.home-projects-head { padding-bottom: 0 !important; }
.home-projects-head .wp-block-buttons { justify-content: center; margin-top: 1.25rem; }
.home-news .wp-block-buttons { justify-content: center; margin-top: 2.5rem; }
.provide-section .tile-grid--two > .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
.provide-section .tile-grid--two .tile-card p + p { margin-top: 1rem; }
@media (max-width: 781px) { .provide-section .tile-grid--two > .wp-block-column { flex-basis: 100% !important; } }
.has-text-align-center { text-align: center; }

/* Mobile call / WhatsApp bar (replaces the Chaty floating button on phones) */
.wp-block-group.mobile-cta-bar, .mobile-cta-bar { display: none !important; }
@media (max-width: 781px) {
	html body .chaty, html body div[id^="chaty-widget-"], html body .chaty-outer-forms { display: none !important; visibility: hidden !important; }
	.wp-block-group.mobile-cta-bar, .mobile-cta-bar { display: flex !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999; margin: 0 !important; padding: 0; gap: 0; box-shadow: 0 -4px 16px rgba(0,0,0,.2); }
	.mobile-cta-bar > .mobile-cta-bar__btn { flex: 0 0 50%; width: 50%; max-width: 50%; margin: 0 !important; padding: 0; }
	.mobile-cta-bar__btn a { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 56px; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)); color: #fff !important; text-decoration: none; font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; font-size: 1rem; line-height: 1; }
	.mobile-cta-bar__btn--whatsapp a { background: #1faa52; }
	.mobile-cta-bar__btn--call a { background: var(--wp--preset--color--accent); }
	.mobile-cta-bar__btn a::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--iv-icon) center / contain no-repeat; mask: var(--iv-icon) center / contain no-repeat; }
	.mobile-cta-bar__btn--whatsapp a { --iv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.2 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.2-4.6-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.8s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.1.1.3 0 .5l-.3.4-.4.5c-.1.1-.3.3-.1.6.2.3.8 1.3 1.7 2.1 1.1 1 2.1 1.300 2.400 1.500.3.1.5.1.6-.1l.9-1.100c.2-.3.4-.2.6-.1l1.900.9c.3.1.5.2.5.3.1.2.1.7-.1 1.300z'/%3E%3C/svg%3E"); }
	.mobile-cta-bar__btn--call a { --iv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.400 11.400 0 0 0 3.600.6 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.500a1 1 0 0 1 1 1c0 1.300.2 2.500.6 3.600a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
	body { padding-bottom: 56px; }
}

/* Mobile navigation overlay */
.site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 0; background: var(--wp--preset--color--dark-blue); }
.site-header .is-menu-open .wp-block-navigation__responsive-close { height: 100%; }
.site-header .is-menu-open .wp-block-navigation__responsive-dialog { padding: 0; height: 100%; display: flex; flex-direction: column; }
.site-header .is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: 18px; right: 20px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; }
.site-header .is-menu-open .wp-block-navigation__responsive-container-close svg { fill: #fff; width: 22px; height: 22px; }
.site-header .is-menu-open .wp-block-navigation__responsive-container-content { padding: 96px 28px 120px; overflow-y: auto; align-items: stretch !important; justify-content: flex-start !important; gap: 0; }
.site-header .is-menu-open .wp-block-navigation__container { width: 100%; align-items: stretch !important; gap: 0 !important; }
.site-header .is-menu-open .wp-block-navigation-item { width: 100%; align-items: stretch; border-bottom: 1px solid rgba(255,255,255,.14); text-align: left; }
.site-header .is-menu-open .wp-block-navigation-item__content { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 18px 0 !important; font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; font-size: 1.25rem; line-height: 1.2; text-align: left; }
.site-header .is-menu-open .wp-block-navigation-item__content.is-current, .site-header .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent) !important; }
.site-header .is-menu-open .wp-block-navigation-item.has-child { border-bottom: 1px solid rgba(255,255,255,.14); }
.site-header .is-menu-open .wp-block-navigation__submenu-container { position: static !important; width: 100% !important; min-width: 0 !important; margin: 0 0 14px !important; padding: 0 0 0 16px !important; background: transparent !important; border: 0 !important; border-left: 3px solid var(--wp--preset--color--accent) !important; gap: 0 !important; }
.site-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
.site-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 11px 0 !important; font-weight: 600; font-size: 1.0625rem; }
.site-header .is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.site-header .is-menu-open .wp-block-navigation__responsive-container-content::after { content: "01 727 0777 · info@indoorvent.ie"; display: block; margin-top: 2rem; color: rgba(255,255,255,.7); font-size: .9375rem; }

/* Blog tables: scroll sideways on narrow screens instead of crushing the columns */
@media (max-width: 781px) {
	.post-body .wp-block-table { -webkit-overflow-scrolling: touch; }
	.post-body .wp-block-table table { min-width: 600px; }
	.post-body .wp-block-table th, .post-body .wp-block-table td { word-break: normal; overflow-wrap: normal; hyphens: none; }
}

/* Tablet (600–1000px): hamburger menu, two-column card grids */
@media (min-width: 600px) and (max-width: 1000px) {
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.site-header__inner { padding-left: 28px !important; padding-right: 28px !important; flex-wrap: nowrap !important; }
}
@media (min-width: 600px) and (max-width: 1000px) {
	.blog-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 782px) and (max-width: 1000px) {
	.provide-section .tile-grid > .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
	.ref-grid > .wp-block-column { flex-basis: calc(33.333% - 1rem) !important; }
}

/* Headings / accessibility helpers */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.aside-title, .fact-card .fact-title, .contact-method .fact-title { font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; color: var(--wp--preset--color--dark-blue); line-height: 1.2; }
.aside-title { font-size: 1.35rem !important; margin: 0 0 .5rem !important; }
.fact-card .fact-title, .contact-method .fact-title { font-size: 1.25rem !important; line-height: 1.2 !important; margin: 0 0 .5rem !important; }
.contact-method .fact-title { font-size: 1.15rem !important; }
.site-header .is-menu-open .sr-only { position: absolute !important; }

/* Legal pages (privacy policy) */
.legal-page h2 { font-size: clamp(1.4rem, 2.2vw, 1.75rem); margin-top: 2.5rem; margin-bottom: .75rem; }
.legal-page h3 { font-size: 1.15rem; margin-top: 1.75rem; margin-bottom: .5rem; }
.legal-page > * + * { margin-top: 1rem; }
.legal-page ul { padding-left: 1.25rem; display: grid; gap: .5rem; }
.legal-page .wp-block-table { overflow-x: auto; margin-block: 1.25rem; }
.legal-page table { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.legal-page th, .legal-page td { border: 1px solid #e1e5ee; padding: .7rem .9rem; text-align: left; vertical-align: top; }
.legal-page thead th { background: var(--wp--preset--color--dark-blue); color: #fff; font-family: var(--wp--preset--font-family--montserrat); }
.legal-page tbody tr:nth-child(even) td { background: var(--wp--preset--color--light); }
@media (max-width: 781px) { .legal-page table { min-width: 560px; } }
.site-footer-bar a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
