/*
Theme Name: Overall Solutions
Theme URI: https://overallsolutionsllc.com
Author: 898 Marketing
Author URI: https://898marketing.com
Description: Full Site Editing (block) theme for Overall Solutions, LLC, a power washing company in Canfield, Ohio. Navy and blue, photo-led, with before/after sliders. Built on theme.json tokens and editable block patterns, following the structure of Twenty Twenty-Five.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: overall-solutions
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, wide-blocks, block-styles
*/

/* ============================================================
   Overall Solutions: theme CSS
   Tokens (palette, type, spacing) live in theme.json. This file
   only covers what theme.json can't express: the header and nav
   behaviour, the hero overlay, section rhythm, cards, the slider,
   the floating button and the Gravity Forms look.
   ============================================================ */

/* --- Global ------------------------------------------------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: var(--wp--preset--color--accent-hover); color: #fff; }
.wp-block-heading { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.os-main { margin-block-start: 0; }
.os-main > .wp-block-post-content > * { margin-block-start: 0; }
[id] { scroll-margin-top: calc(var(--os-header-h, 149px) + 70px); }


/* --- Header ------------------------------------------------- */
.os-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 60;
}
.os-header { border-bottom: 1px solid var(--wp--preset--color--navy-line); }
.os-header__bar { gap: 26px; padding-block: 12px; }

.os-logo { flex-shrink: 0; margin: 0; }
.os-logo a,
.os-logo .custom-logo-link {
	display: flex;
	align-items: center;
	background: #fff;
	padding: 6px 12px;
	border-radius: 12px;
	box-shadow: var(--wp--preset--shadow--logo);
}
.os-logo img { height: 124px !important; width: auto !important; max-width: none; display: block; }

.os-nav { margin-left: 6px; font-size: 15px; font-weight: 600; align-self: stretch; }
.os-nav .wp-block-navigation__container { gap: 26px; }
.os-nav .wp-block-navigation-item__content { color: #9fb4c4; white-space: nowrap; padding-block: 8px; }
.os-nav .wp-block-navigation-item__content:hover,
.os-nav .current-menu-item > .wp-block-navigation-item__content,
.os-nav .current-menu-ancestor > .wp-block-navigation-item__content { color: #fff; }
.os-nav .wp-block-navigation__submenu-icon { display: none; }
.os-nav .os-mobile-only { display: none !important; }

/* Desktop dropdown panels */
.os-nav .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--navy) !important;
	border: 1px solid var(--wp--preset--color--navy-line) !important;
	border-radius: 12px;
	padding: 10px !important;
	gap: 2px;
	min-width: 230px !important;
	left: -14px !important;
	top: calc(100% + 6px) !important;
	box-shadow: 0 22px 44px -18px rgba(0, 0, 0, .7);
}
.os-nav .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -14px;
	height: 14px;
}
.os-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	padding: 9px 12px !important;
	border-radius: 8px;
	color: var(--wp--preset--color--on-dark);
	font-size: 14.5px;
}
.os-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.os-nav .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--navy-line);
	color: #fff;
}

/* Header buttons */
.os-header__bar > .os-header__cta { margin-left: auto; gap: 20px; flex-wrap: nowrap; }
.os-header .os-btn-tel .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	padding: 4px 0;
	font-size: 15px;
	color: #fff;
	white-space: nowrap;
}
.os-header .os-btn-tel .wp-block-button__link:hover { background: transparent; color: var(--wp--preset--color--sky); }
.os-header .os-btn-tel .wp-block-button__link::before {
	content: "";
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .16) var(--os-ico-phone-white) center / 15px no-repeat;
}
.os-header .os-btn-quote .wp-block-button__link {
	font-size: 15px;
	padding: 11px 20px;
	border-radius: 9px;
	white-space: nowrap;
	box-shadow: 0 6px 16px -6px rgba(27, 123, 181, .6);
}

@media (min-width: 900.01px) and (max-width: 1180px) {
	.os-header__bar { gap: 18px; padding-block: 10px; }
	.os-logo img { height: 78px !important; }
	.os-nav { margin-left: 0; font-size: 14.5px; }
	.os-nav .wp-block-navigation__container { gap: 18px; }
	.os-header__cta { gap: 14px; }
}

/* Hamburger below 900px. Core switches at 600px, so take it over. */
@media (max-width: 900px) {
	.os-header__bar { gap: 12px; padding-block: 10px; }
	.os-logo img { height: 70px !important; }
	.os-header__cta { gap: 12px; order: 2; }
	.os-nav { order: 3; margin-left: 0; align-self: center; }
	.os-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.os-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.os-nav .wp-block-navigation__responsive-container-open {
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	border: 1.5px solid rgba(255, 255, 255, .28);
	color: #fff;
}
.os-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }

/* Mobile overlay */
.os-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--navy) !important;
	padding: 18px 16px 28px;
}
.os-nav .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; top: 18px; right: 16px; }
.os-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	max-width: 640px;
	margin: 0 auto;
	padding-top: 52px !important;
}
.os-nav .is-menu-open .wp-block-navigation__container {
	gap: 2px !important;
	width: 100%;
	align-items: stretch !important;
}
.os-nav .is-menu-open .wp-block-navigation-item { width: 100%; flex-wrap: wrap; align-items: stretch !important; }
.os-nav .is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	flex: 1;
	min-height: 46px;
	padding: 0 14px !important;
	border-radius: 10px;
	color: #e3eaf0;
	font-size: 17px;
	font-weight: 700;
}
.os-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { background: var(--wp--preset--color--navy-line); color: #fff; }
.os-nav .is-menu-open .os-mobile-only { display: flex !important; }
.os-nav .is-menu-open .wp-block-navigation__submenu-container {
	width: 100%;
	padding: 2px 0 8px !important;
	gap: 2px !important;
	border: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}
.os-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding-left: 28px !important;
	font-size: 15.5px;
	font-weight: 600;
	color: #b7c6d2;
}
.os-nav .is-menu-open .has-child:not(.os-open) > .wp-block-navigation__submenu-container { display: none !important; }
.os-sub-toggle {
	flex: 0 0 46px;
	height: 46px;
	display: none;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	border-radius: 10px;
	color: #e3eaf0;
	cursor: pointer;
}
.os-sub-toggle svg { transition: transform .2s; }
.is-menu-open .os-sub-toggle { display: inline-flex; }
.os-open > .os-sub-toggle svg { transform: rotate(180deg); }
.os-nav .is-menu-open .os-nav-call { margin-top: 12px; }
.os-nav .is-menu-open .os-nav-call > .wp-block-navigation-item__content {
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	background: var(--wp--preset--color--accent);
	color: #fff;
}

@media (max-width: 560px) {
	.os-header .os-btn-tel .wp-block-button__link { font-size: 0; gap: 0; }
	.os-header .os-btn-tel .wp-block-button__link::before { width: 42px; height: 42px; background-size: 18px; }
	.os-header .os-btn-quote .wp-block-button__link { padding: 10px 14px; font-size: 14px; }
}
@media (max-width: 420px) {
	.os-logo img { height: 58px !important; }
}
@media (max-width: 360px) {
	.os-btn-quote { display: none; }
}

/* --- Sections ------------------------------------------------ */
.os-section { padding-top: 88px; padding-bottom: 88px; }
.os-section.has-mist-background-color.os-bordered { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
.os-bordered-top { border-top: 1px solid var(--wp--preset--color--line); }
.os-bordered-bottom { border-bottom: 1px solid var(--wp--preset--color--line); }
.has-navy-background-color :is(h1, h2, h3, h4) { color: #fff; }
.has-navy-background-color a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--sky); }

@media (max-width: 760px) {
	.os-section { padding-top: 56px; padding-bottom: 56px; }
}

/* Section heads */
.os-section-head { margin-bottom: 40px; }
.os-section-head > * { max-width: 640px; }
.os-section-head > * { margin-block: 0; }
.os-section-head > .os-eyebrow + * { margin-top: 0; }
.os-section-head > * + p { margin-top: 16px; }
.os-section-head--center { text-align: center; margin-bottom: 38px; }
.os-section-head--center > * { max-width: none; }
.os-head-row { align-items: flex-end; gap: 24px; margin-bottom: 44px; }
.os-head-row .os-section-head { margin-bottom: 0; }

/* Type helpers */
.os-eyebrow {
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-dark);
	line-height: 1.4;
	margin-bottom: 16px !important;
}
.os-eyebrow--muted { color: #7a8791; font-weight: 700; }
.os-eyebrow--sky { color: var(--wp--preset--color--sky); }
.os-eyebrow--line { display: inline-flex; align-items: center; gap: 9px; font-size: 13.5px; letter-spacing: .04em; margin-bottom: 22px !important; }
.os-eyebrow--line::before { content: ""; width: 26px; height: 2px; background: currentColor; display: inline-block; }
.os-hero .os-eyebrow--line { color: #8fd0f0; }
.os-hero .os-eyebrow--line::before { background: var(--wp--preset--color--accent-hover); }
.os-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.65; color: var(--wp--preset--color--muted); }
.os-lead--dark,
.has-navy-background-color .os-lead { color: #b9c6d1; }
.os-lead strong { color: var(--wp--preset--color--navy); }
.os-note { font-size: 14px; color: #7a8791; margin-top: 20px; }
.os-note--center { text-align: center; font-size: 13.5px; margin-top: 14px; }
.os-display { font-size: var(--wp--preset--font-size--display); line-height: 1.03; letter-spacing: -.015em; margin-bottom: 22px; }
.os-arrow-link a { font-weight: 700; font-size: 15.5px; display: inline-block; padding: 12px 0; margin: -12px 0; white-space: nowrap; }
.os-arrow-link a::after { content: " →"; }
.os-split h2 { margin-bottom: 20px; }
.os-split p { margin-block: 0 18px; }

/* Columns stack at 820px like the reference, not core's 782px */
.os-split.wp-block-columns { gap: 60px; }
@media (max-width: 820px) {
	.os-split.wp-block-columns { flex-wrap: wrap !important; gap: 34px; }
	.os-split.wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
}

/* Photos */
.os-photo { margin: 0; }
.os-photo img { border-radius: 16px; box-shadow: var(--wp--preset--shadow--photo); width: 100%; }
.os-photo figcaption { margin-top: 12px; margin-bottom: 0; text-align: left; }
.os-photo--tall img { border-radius: 18px; }
@media (max-width: 760px) {
	.os-photo--tall img { aspect-ratio: 4 / 3 !important; }
}
.os-pos-IMG_2467 img { object-position: center 18%; }
.os-pos-canfield-gazebo-washing img { object-position: center 22%; }
.os-pos-canfield-gazebo-clean img { object-position: center 30%; }
.os-pos-IMG_7964 img,
.os-pos-IMG_7967 img { object-position: center 40%; }
.os-photo--tagged { position: relative; }
.os-photo--tagged::before,
.os-photo--tagged::after {
	position: absolute;
	left: 12px;
	z-index: 2;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: .08em;
	color: #fff;
	padding: 5px 11px;
	border-radius: 20px;
	pointer-events: none;
}
.os-photo--tagged::before { content: "BEFORE"; top: 12px; background: rgba(11, 34, 49, .75); }
.os-photo--tagged::after { content: "AFTER"; bottom: 12px; background: rgba(27, 123, 181, .9); }

/* Grids collapse to one column on phones */
.os-card-grid,
.os-review-grid,
.os-faq-grid,
.os-ba-grid,
.os-stat-grid,
.os-figure-grid { gap: 22px; }
.os-stat-grid { gap: 16px; }
@media (max-width: 820px) {
	.os-card-grid.is-layout-grid,
	.os-review-grid.is-layout-grid,
	.os-faq-grid.is-layout-grid,
	.os-ba-grid.is-layout-grid,
	.os-figure-grid.is-layout-grid { grid-template-columns: 1fr !important; }
}
.os-span-all { grid-column: 1 / -1; }

/* --- Cards ---------------------------------------------------- */
.is-style-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	padding: 28px 26px;
	gap: 0 !important;
}
.is-style-card > * { margin-block: 0; }
.os-card__title { font-family: var(--wp--preset--font-family--body); font-size: 19px; font-weight: 700; line-height: 1.35; letter-spacing: 0; margin-bottom: 10px !important; }
.os-card__title a { color: inherit; }
.os-card__text { font-size: 15.5px; line-height: 1.6; color: var(--wp--preset--color--slate); }
.os-card__more { margin-top: 16px !important; font-weight: 700; font-size: 14.5px; color: var(--wp--preset--color--accent-dark); }

/* Service, value and link cards are fully clickable */
.os-service-card,
.os-link-card { position: relative; padding: 30px 26px; transition: transform .25s, box-shadow .25s, border-color .25s; }
.os-service-card .os-card__title { font-size: 20px; }
.os-service-card .os-card__text { font-size: 15px; line-height: 1.55; }
.os-service-card .os-card__title a::after,
.os-link-card .os-link-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.os-service-card:hover,
.os-link-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -22px rgba(11, 34, 49, .35); border-color: var(--wp--preset--color--accent); }
.os-link-card { padding: 24px 22px; }
.os-link-card:hover { transform: translateY(-3px); }
.os-link-card__title { font-size: 18px; font-weight: 700; margin-bottom: 8px !important; }
.os-link-card__title a { color: var(--wp--preset--color--navy); }
.os-link-card .os-card__text { font-size: 15px; line-height: 1.5; }

/* Icon tiles (44px ice square, glyph via mask) */
.os-ico::before {
	content: "";
	display: block;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 11px;
	margin-bottom: 18px;
	background-color: var(--wp--preset--color--ice);
	background-image: var(--os-ico);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 22px;
}
.os-value-card::before { width: 46px; height: 46px; background-size: 23px; }

/* Stats */
.os-stat { padding: 26px 22px; border-radius: 14px; }
.os-stat__num { font-family: var(--wp--preset--font-family--heading); font-size: 40px; font-weight: 500; line-height: 1; color: var(--wp--preset--color--accent-dark); }
.os-stat__label { font-size: 14.5px; line-height: 1.4; color: var(--wp--preset--color--slate); margin-top: 8px !important; }

/* --- Buttons -------------------------------------------------- */
.wp-block-button__link { transition: background-color .2s, border-color .2s, color .2s; }
.wp-block-buttons { gap: 14px; }
.wp-block-buttons .wp-block-button__link { font-size: 16.5px; padding: 15px 26px; }
.wp-block-button:not(.is-style-outline):not(.is-style-ghost):not(.is-style-white):not(.is-style-pill):not(.os-btn-tel) .wp-block-button__link { box-shadow: 0 10px 24px -8px rgba(27, 123, 181, .6); }
.wp-block-button.is-style-outline .wp-block-button__link { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--navy); border-color: #d9dee4; padding: 15px 22px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent-dark); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: #fff; border: 1.5px solid #2c5066; padding: 15px 24px; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { border-color: var(--wp--preset--color--sky); background: rgba(255, 255, 255, .06); }
.os-hero .wp-block-button.is-style-ghost .wp-block-button__link { border-color: rgba(255, 255, 255, .45); }
.os-hero .wp-block-button.is-style-ghost .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, .1); }
.wp-block-button.is-style-white .wp-block-button__link { background: #fff; color: var(--wp--preset--color--navy); padding: 16px 24px; border-radius: 11px; font-size: 17px; }
.wp-block-button.is-style-white .wp-block-button__link:hover { background: var(--wp--preset--color--ice); }
.os-icon-phone .wp-block-button__link { display: inline-flex; align-items: center; gap: 9px; }
.os-icon-phone .wp-block-button__link::before {
	content: "";
	width: 19px;
	height: 19px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: var(--os-ico-phone) center / contain no-repeat;
	mask: var(--os-ico-phone) center / contain no-repeat;
}
.os-btn-arrow .wp-block-button__link { font-size: 16px; padding: 14px 24px; }
.os-btn-review .wp-block-button__link { background: #fff; border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent-dark); font-size: 16px; padding: 13px 22px; white-space: nowrap; }
.os-btn-review .wp-block-button__link:hover { background: var(--wp--preset--color--accent); color: #fff; }

/* Pill links */
.wp-block-button.is-style-pill .wp-block-button__link {
	background: #fff;
	color: #28353f;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 22px;
	padding: 12px 20px;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.45;
	box-shadow: none;
}
.wp-block-button.is-style-pill .wp-block-button__link:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent-dark); }
.os-pills { gap: 20px 12px; }
.os-pills--small { gap: 10px; }
.os-pills--small .wp-block-button.is-style-pill .wp-block-button__link { padding: 7px 14px; font-size: 14px; border-radius: 20px; }
.os-areas .os-pills { gap: 10px; margin-bottom: 26px; }
.os-areas .wp-block-button.is-style-pill .wp-block-button__link { padding: 8px 15px; border-radius: 20px; }
.os-pills--static .wp-block-button.is-style-pill .wp-block-button__link { pointer-events: none; padding: 7px 14px; }
@media (max-width: 760px) {
	.os-pills .wp-block-button.is-style-pill .wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; }
}

/* --- Hero (core/cover) ---------------------------------------- */
.os-hero.wp-block-cover { padding: 86px var(--wp--style--root--padding-right) 80px var(--wp--style--root--padding-left); align-items: center; }
.os-hero .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(103deg, rgba(8, 25, 37, .95) 0%, rgba(8, 25, 37, .86) 40%, rgba(8, 25, 37, .42) 100%) !important;
}
.os-hero--home.wp-block-cover { padding-top: 96px; padding-bottom: 96px; }
.os-hero--home .wp-block-cover__background {
	background: linear-gradient(105deg, rgba(8, 25, 37, .92) 0%, rgba(8, 25, 37, .62) 42%, rgba(8, 25, 37, .12) 100%) !important;
}
.os-hero--service.wp-block-cover { padding-top: 92px; padding-bottom: 86px; }
.os-hero.wp-block-cover .wp-block-cover__inner-container { color: #fff; width: 100% !important; max-width: none; margin-left: auto !important; margin-right: auto !important; }
.os-hero__content > * { margin-block: 0; }
.os-hero__title { max-width: 840px; margin-bottom: 28px !important; }
.os-hero--home .os-hero__content > * { max-width: 600px; }
.os-hero--home .os-hero__title { font-size: clamp(30px, 5.2vw, 64px); line-height: 1.02; margin-bottom: 22px !important; }
.os-hero--city .os-hero__title,
.os-hero--inner .os-hero__title { margin-bottom: 20px !important; }
.os-hero__text { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: #b9c6d1; max-width: 640px; }
.os-hero--home .os-hero__text { font-size: 20px; line-height: 1.55; color: #cbd8e2; max-width: 510px; margin-bottom: 34px !important; }
.os-hero__text + .os-hero__text { margin-top: 14px; }
.os-hero__text--small { font-size: 17px; color: var(--wp--preset--color--on-dark-muted); }
.os-hero .wp-block-buttons { margin-top: 0; }
.os-hero--home .wp-block-buttons .wp-block-button:not(.is-style-ghost) .wp-block-button__link { padding: 15px 28px; box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .55); }
.os-hero--home .wp-block-button__link:hover { background-color: var(--wp--preset--color--accent-hover); }
.os-crumbs { font-size: 13.5px; font-weight: 600; color: var(--wp--preset--color--sky); margin-bottom: 18px !important; }
.os-crumbs a { color: var(--wp--preset--color--sky) !important; }
.os-crumbs a:hover { color: #fff !important; }
.os-hero__chips { margin-top: 26px !important; font-size: 14.5px; font-weight: 600; color: #8fd0f0; word-spacing: 2px; }
.os-hero--city .os-hero__text { margin-bottom: 0 !important; }

@media (max-width: 760px) {
	.os-hero.wp-block-cover {
		min-height: 0 !important;
		align-items: flex-end;
		padding-top: clamp(140px, 28vh, 250px);
		padding-top: clamp(140px, 28svh, 250px);
		padding-bottom: 30px;
	}
	.os-hero .wp-block-cover__background {
		background: linear-gradient(180deg, rgba(8, 25, 37, .10) 0, rgba(8, 25, 37, 0) 90px, rgba(8, 25, 37, .06) calc(clamp(140px, 28svh, 250px) - 110px), rgba(8, 25, 37, .80) calc(clamp(140px, 28svh, 250px) + 10px), rgba(8, 25, 37, .94) 100%) !important;
	}
	.os-hero .wp-block-cover__image-background { object-position: center 30%; }
	.os-hero__title,
	.os-hero--home .os-hero__title { font-size: clamp(26px, 7.4vw, 36px); margin-bottom: 14px !important; }
	.os-hero__text,
	.os-hero--home .os-hero__text {
		font-size: 16.5px;
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
		margin-bottom: 22px !important;
	}
	.os-hero__text:last-child { margin-bottom: 0 !important; }
	.os-hero__text--small,
	.os-hero__chips { display: none; }
	.os-crumbs a { display: inline-block; padding: 13px 2px; margin: -13px 0; }
}

/* --- Before / after slider ------------------------------------ */
.os-ba {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 18px;
	background: var(--wp--preset--color--navy);
	box-shadow: 0 30px 60px -26px rgba(11, 34, 49, .6);
	touch-action: none;
	user-select: none;
	-webkit-user-select: none;
	cursor: ew-resize;
}
.os-ba__after,
.os-ba__before { position: absolute; inset: 0; }
.os-ba__before { clip-path: inset(0 50% 0 0); z-index: 2; }
.os-ba__img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; pointer-events: none; }
.os-ba__tag {
	position: absolute;
	bottom: 14px;
	z-index: 3;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff;
	padding: 6px 12px;
	border-radius: 20px;
	pointer-events: none;
}
.os-ba__tag--after { right: 14px; background: rgba(27, 123, 181, .9); }
.os-ba__tag--before { left: 14px; background: rgba(11, 34, 49, .72); }
.os-ba__handle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 3px;
	background: #fff;
	transform: translateX(-50%);
	z-index: 4;
	box-shadow: 0 0 12px rgba(0, 0, 0, .35);
}
.os-ba__knob {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 5px 16px rgba(0, 0, 0, .3);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--accent);
}
.os-gallery .os-ba { border-radius: 16px; background: #081a26; box-shadow: 0 24px 48px -22px rgba(0, 0, 0, .6); }
.os-ba-grid .os-ba__knob { width: 42px; height: 42px; }
.os-ba-grid .os-ba__tag { font-size: 11px; padding: 5px 11px; bottom: 12px; }
.os-ba-item { margin-bottom: 26px; }
.os-ba-grid .os-ba-item { margin-bottom: 0; }
.os-ba-grid { gap: 26px; }
.os-ba-caption { font-weight: 600; font-size: 15px; color: #dbe6ef; margin-top: 14px !important; margin-bottom: 0; }
.os-service-row .os-ba { border-radius: 16px; box-shadow: 0 24px 50px -24px rgba(11, 34, 49, .5); }

/* --- Home sections -------------------------------------------- */
.os-feature { padding-top: 64px; padding-bottom: 40px; }
.os-feature .os-lead { font-size: 19px; max-width: 480px; margin-bottom: 32px !important; }
.os-feature .os-split > .wp-block-column:first-child { flex-basis: 46%; }
@media (max-width: 820px) { .os-feature .os-display { font-size: 40px; } }
@media (max-width: 480px) { .os-feature .os-display { font-size: 32px; } }

.os-trust-strip { padding-top: 22px; padding-bottom: 22px; }
.os-trust { gap: 30px; }
.os-trust > * { margin: 0; }
.os-check { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; color: #28353f; }
.os-check::before { content: "✓"; color: var(--wp--preset--color--accent); font-size: 12px; line-height: 1; }
@media (max-width: 820px) { .os-trust { justify-content: center; } }

.os-gallery .os-section-head { margin-bottom: 44px; }
.os-gallery h2 { font-size: clamp(22px, 5.1vw, 36px); white-space: nowrap; }
@media (max-width: 760px) { .os-gallery h2 { white-space: normal; } }

.os-crew .os-lead:last-of-type { margin-bottom: 28px !important; }
.os-logos { padding-top: 72px; padding-bottom: 72px; }
.os-logos .os-section-head h2 { font-size: 34px; margin-top: 10px; }
.os-logo-grid { gap: 20px; align-items: center; }
.os-logo-box { margin: 0; height: 92px; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 10px; display: flex; align-items: center; justify-content: center; }
.os-logo-box img { width: 100%; height: 100% !important; object-fit: contain; }
@media (max-width: 820px) {
	.os-logo-grid.is-layout-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
	.os-logo-grid > .os-logo-box { flex: 0 0 calc(33.33% - 10px); min-width: 0; }
}
@media (max-width: 480px) { .os-logo-grid > .os-logo-box { flex: 0 0 calc(50% - 8px); } }

.os-testimonials { padding-top: 24px; padding-bottom: 92px; }
.os-testimonials .os-section-head h2 { font-size: clamp(22px, 4.8vw, 39px); white-space: nowrap; }
@media (max-width: 760px) { .os-testimonials .os-section-head h2 { white-space: normal; } }
.os-review-card { padding: 30px 28px; }
.os-stars { color: var(--wp--preset--color--star); font-size: 16px; letter-spacing: 2px; margin-bottom: 16px !important; }
.os-review { border: 0; padding: 0; margin: 0; }
.os-review p { font-family: var(--wp--preset--font-family--heading); font-size: 19px; font-style: italic; line-height: 1.5; color: #28353f; margin: 0 0 20px; }
.os-review cite { font-style: normal; font-weight: 700; font-size: 15px; color: var(--wp--preset--color--navy); line-height: 1.5; display: block; }
.os-review cite br + * , .os-review cite { white-space: normal; }
.os-review-cta {
	margin-top: 28px;
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	padding: 26px 28px;
	gap: 18px 28px;
	align-items: center;
}
.os-review-cta > * { margin: 0; }
.os-review-cta__text { font-size: 17px; line-height: 1.55; color: #28353f; max-width: 620px; }
.os-btn-review .wp-block-button__link::first-letter { color: var(--wp--preset--color--star); }

.os-areas { padding-top: 76px; padding-bottom: 76px; }
.os-areas h2 { margin-bottom: 18px; }
.os-areas .os-lead { margin-bottom: 16px; }
.os-areas .os-photo img { border-radius: 16px; }

.os-faq-grid .is-style-card { padding: 28px 26px; }

/* Quote (home #quote) */
.os-quote h2 { font-size: 46px; line-height: 1.06; }
.os-quote .os-lead { max-width: 420px; margin-bottom: 30px !important; }
.os-quote__meta { font-size: 14.5px; color: var(--wp--preset--color--on-dark-muted); margin-top: 26px !important; line-height: 1.6; }
.os-form-card { background: #fff; color: var(--wp--preset--color--ink); border-radius: 18px; padding: 34px; box-shadow: 0 30px 60px -28px rgba(0, 0, 0, .5); }
.os-form-card--bordered { border: 1px solid var(--wp--preset--color--line); box-shadow: 0 30px 60px -32px rgba(11, 34, 49, .35); }
.os-form-card__title { font-size: 28px; margin-bottom: 22px !important; }
@media (max-width: 760px) {
	.os-form-card { padding: 22px; }
	.os-quote h2 { font-size: 30px; }
}

/* --- Inner pages ---------------------------------------------- */
.os-prose { padding-top: 72px; padding-bottom: 40px; }
.os-prose .os-lead { line-height: 1.7; margin-block: 0 20px; }
.os-prose h2 { font-size: 40px; line-height: 1.14; margin-bottom: 30px; }
.os-prose h2:not(:first-child) { margin-top: 24px; }
.os-prose--story { padding-top: 56px; padding-bottom: 72px; }
.os-intro-big { font-family: var(--wp--preset--font-family--heading); font-size: 28px; line-height: 1.35; color: var(--wp--preset--color--navy); margin-bottom: 26px !important; }

.os-figures { padding-top: 24px; padding-bottom: 56px; }
.os-figure-grid + .os-figure-grid { margin-top: 22px; }
.os-figure-grid .os-photo img { border-radius: 14px; box-shadow: 0 20px 40px -22px rgba(11, 34, 49, .35); }

.os-section--checklist { padding-top: 60px; padding-bottom: 60px; }
.os-section--checklist h2 { font-size: 40px; line-height: 1.14; margin-bottom: 34px; }

.is-style-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.is-style-checks li { display: flex; gap: 12px; font-size: 16.5px; color: var(--wp--preset--color--muted); line-height: 1.55; }
.is-style-checks li::before { content: "✓"; color: var(--wp--preset--color--accent); flex-shrink: 0; margin-top: 2px; }
.has-navy-background-color .is-style-checks li { color: #c4d0da; }

.os-faq { padding-top: 40px; padding-bottom: 80px; }
.os-faq .os-section-head { margin-bottom: 38px; }
.os-faq .os-section-head > * { max-width: none; }
.os-faq .os-section-head h2 { font-size: 40px; line-height: 1.14; }
.os-faq .os-card__title { margin-bottom: 14px !important; }
.os-services .os-section-head h2,
.os-faq .os-section-head .os-eyebrow + h2 { font-size: 42px; line-height: 1.08; }
.os-services .os-section-head h2 { font-size: 44px; }

.os-section--links { padding-top: 52px; padding-bottom: 52px; }
.os-section--links .os-eyebrow { margin-bottom: 22px !important; }
.os-section--links .os-pills + .os-eyebrow { margin-top: 36px; }
.os-areas__text { font-size: 16.5px; color: var(--wp--preset--color--slate); max-width: 620px; margin: -12px 0 22px !important; }

.os-cta-band { padding-top: 72px; padding-bottom: 72px; }
.os-cta-band h2 { font-size: 38px; line-height: 1.14; margin-bottom: 24px; }
.os-cta-band__text { font-size: 18px; color: #b9c6d1; line-height: 1.5; margin-bottom: 30px !important; }
.os-cta-band .wp-block-buttons { gap: 18px; }
.os-cta-band .wp-block-button:not(.is-style-ghost) .wp-block-button__link { padding: 17px 32px; box-shadow: none; }
.os-cta-band .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover { background: var(--wp--preset--color--accent-hover); }
.os-cta-band .is-style-ghost .wp-block-button__link { padding: 17px 28px; }
.os-cta-band .os-icon-phone .wp-block-button__link::before { display: none; }

/* Services overview */
.os-jumpnav { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--os-header-h, 149px)); z-index: 50; padding-top: 14px; padding-bottom: 14px; }
@media (max-width: 760px) { .os-jumpnav { position: static; } }
.os-service-row { padding-top: 80px; padding-bottom: 80px; }
.os-row.wp-block-columns { gap: 56px; }
.os-row__title { font-size: 40px; margin-bottom: 16px !important; }
.os-row__text { font-size: 17px; line-height: 1.6; color: var(--wp--preset--color--muted); margin-bottom: 22px !important; }
.os-row__sub { font-size: 26px; letter-spacing: -.005em; margin-bottom: 16px; }
.os-service-row .is-style-checks { gap: 10px; }
.os-service-row .is-style-checks li { font-size: 16px; }
.os-row__note { font-size: 15.5px; line-height: 1.65; color: var(--wp--preset--color--slate); margin-top: 22px !important; border-top: 1px solid var(--wp--preset--color--line); padding-top: 18px; }
.has-navy-background-color .os-row__text,
.has-navy-background-color .os-row__note { color: #b9c6d1; border-color: #1d3a4e; }
.os-service-row .wp-block-buttons { margin-top: 22px; }
.os-btn-arrow .wp-block-button__link:hover { background: var(--wp--preset--color--accent-dark); }
.os-service-row .os-pills--static { margin-block: 4px 18px; gap: 8px; }
.os-service-row .os-pills--static .wp-block-button__link { background: rgba(255, 255, 255, .06); color: #dbe6ef; border-color: #1d3a4e; }
@media (max-width: 820px) {
	.os-row--media-first > .wp-block-column:first-child { order: 2; }
}

.os-callout-wrap { padding-top: 80px; padding-bottom: 80px; }
.os-callout { background: var(--wp--preset--color--mist); border: 1px solid var(--wp--preset--color--line); border-radius: 20px; padding: 52px 48px; gap: 32px; align-items: center; }
.os-callout h2 { font-size: 34px; line-height: 1.1; margin: 0 0 10px; }
.os-callout__text { font-size: 17px; color: var(--wp--preset--color--slate); max-width: 460px; line-height: 1.5; margin: 0; }
.os-callout .wp-block-buttons { margin: 0; }
@media (max-width: 760px) { .os-callout { padding: 32px 22px; } }

/* About */
.os-values { padding-top: 80px; padding-bottom: 80px; }
.os-values .os-section-head { margin-bottom: 40px; }
.os-values h2 { font-size: 40px; }
.os-value-card .os-card__title { font-size: 20px; }
.os-onjob { padding-top: 80px; padding-bottom: 0; }
.os-onjob .os-section-head h2 { font-size: 40px; }

/* Contact */
.os-contact { padding-top: 64px; padding-bottom: 88px; }
.os-contact h2 { font-size: 44px; line-height: 1.04; letter-spacing: -.015em; }
.os-contact .os-lead { max-width: 420px; margin-bottom: 36px !important; }
.os-contact-cards { gap: 18px !important; }
.os-contact-card {
	position: relative;
	display: grid !important;
	grid-template-columns: 44px 1fr;
	column-gap: 16px;
	align-items: center;
	padding: 18px 20px;
	border-radius: 14px;
}
.os-contact-card::before { grid-row: 1 / span 2; margin-bottom: 0; }
.os-contact-card > p { margin: 0 !important; }
.os-contact-card:has(a):hover { border-color: var(--wp--preset--color--accent); }
.os-contact__label { font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #7a8791; line-height: 1.4; }
.os-contact__value { font-weight: 700; font-size: 17px; color: var(--wp--preset--color--navy); line-height: 1.4; }
.os-contact__value a { color: inherit; }
.os-contact__value a::after { content: ""; position: absolute; inset: 0; }
.os-area-box { margin-top: 26px; border-radius: 14px; padding: 22px 24px; }
.os-area-box .os-eyebrow { font-size: 12.5px; font-weight: 700; margin-bottom: 10px !important; }
.os-area-box__text { font-size: 15px; line-height: 1.6; margin: 0; color: #b9c6d1; }

/* Site index */
.os-index { padding-top: 52px; padding-bottom: 10px; }
.os-index:first-of-type,
.os-hero + .os-index { padding-top: 66px; }
.os-index__title { font-size: 32px; line-height: 1.1; margin-bottom: 24px; }
.os-link-grid { gap: 18px; }
.os-index + .os-cta-band { margin-top: 66px !important; }
.os-404 { padding-top: 120px; padding-bottom: 120px; }

/* --- Footer --------------------------------------------------- */
.os-footer { color: var(--wp--preset--color--on-dark); }
.os-footer a { color: var(--wp--preset--color--on-dark); }
.os-footer a:hover { color: #fff; }
.os-footer__cols { padding-top: 60px; padding-bottom: 36px; gap: 40px; }
.os-footer__cols > * { margin: 0; }
.os-footer__brand { font-family: var(--wp--preset--font-family--heading); font-size: 26px; font-weight: 500; color: #fff; letter-spacing: .01em; margin: 0; line-height: 1.2; }
.os-footer__blurb { font-size: 15px; line-height: 1.6; color: var(--wp--preset--color--on-dark-muted); margin: 14px 0 0; max-width: 320px; }
.os-footer__h { font-family: var(--wp--preset--font-family--body); font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #5f7688; margin: 0 0 16px; line-height: 1.4; }
.os-footer__list { list-style: none; padding: 0; margin: 0; font-size: 15px; line-height: 1.9; }
.os-footer__list--small { font-size: 14.5px; line-height: 1.85; }
.os-footer__list li { margin: 0; }
.os-footer__list--checks li { display: flex; align-items: center; gap: 9px; }
.os-footer__list--checks li::before { content: "✓"; color: var(--wp--preset--color--accent); font-size: 12px; line-height: 1; flex-shrink: 0; }
.os-footer__addr { color: var(--wp--preset--color--on-dark-muted); margin-top: 8px !important; font-size: 15px; line-height: 1.6; }
.os-footer__row { border-top: 1px solid #16303f; }
.os-footer__members { padding-top: 26px; padding-bottom: 26px; gap: 18px 26px; align-items: center; }
.os-footer__members > * { margin: 0; }
.os-footer__badges { gap: 14px; }
.os-badge { margin: 0; background: #fff; border-radius: 10px; padding: 8px 12px; height: 62px; display: flex; align-items: center; }
.os-badge img { height: 46px !important; width: auto !important; }
.os-badge--builders { padding: 8px 14px; }
.os-badge--builders img { height: 40px !important; }
.os-footer__legal { padding-top: 20px; padding-bottom: 20px; gap: 16px; font-size: 13.5px; color: #5f7688; }
.os-footer__legal > * { margin: 0; }
@media (max-width: 820px) {
	.os-footer__cols.is-layout-grid { grid-template-columns: 1fr !important; gap: 30px; text-align: center; }
	.os-footer__cols > * { display: flex; flex-direction: column; align-items: center; }
	.os-footer__blurb { margin-inline: auto; }
	.os-footer__list--checks li { justify-content: center; }
	.os-footer__members,
	.os-footer__legal { justify-content: center; text-align: center; }
}

/* --- Floating quote button ------------------------------------ */
.os-float-wrap { position: fixed; right: 26px; bottom: 26px; z-index: 80; margin: 0 !important; }
.os-float { margin: 0; }
.os-float__btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 17px;
	line-height: 1.25;
	white-space: nowrap;
	padding: 19px 30px !important;
	border-radius: 999px;
	box-shadow: var(--wp--preset--shadow--float) !important;
}
.os-float__btn .wp-block-button__link::before {
	content: "";
	width: 19px;
	height: 19px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: var(--os-ico-phone) center / contain no-repeat;
	mask: var(--os-ico-phone) center / contain no-repeat;
}
.os-float-wrap { transition: opacity .22s ease-out, transform .22s ease-out; }
.os-float-wrap.is-hidden { opacity: 0; transform: translateY(12px); pointer-events: none; }
@media (max-width: 760px) {
	.os-float-wrap { right: 12px; bottom: 12px; }
	.os-float__btn .wp-block-button__link { padding: 12px 16px !important; font-size: 14px; }
}
@media (max-width: 420px) {
	.os-float-wrap { left: 12px; }
	.os-float,
	.os-float__btn,
	.os-float__btn .wp-block-button__link { width: 100%; justify-content: center; }
}

/* --- Gravity Forms -------------------------------------------- */
.os-form-card .gform_wrapper { margin: 0; }
.os-form-card .gform_wrapper.gravity-theme .gform_fields { row-gap: 16px; column-gap: 16px; }
.os-form-card .gfield_label,
.os-form-card .gform-field-label { font-weight: 600 !important; font-size: 13.5px !important; color: #28353f !important; margin-bottom: 7px !important; }
.os-form-card .gfield_required { color: var(--wp--preset--color--accent-dark); }
.os-form-card .gfield_required .gfield_required_text { font-weight: 400; font-size: 12px; color: #9aa5ad; }
.os-form-card input[type="text"],
.os-form-card input[type="tel"],
.os-form-card input[type="email"],
.os-form-card select,
.os-form-card textarea {
	width: 100%;
	padding: 14px !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 10px !important;
	font-size: 16px !important;
	font-family: inherit;
	color: var(--wp--preset--color--ink);
	background: #fff;
	box-shadow: none !important;
	line-height: 1.4;
	min-height: 0;
}
.os-form-card input:focus,
.os-form-card select:focus,
.os-form-card textarea:focus {
	border-color: var(--wp--preset--color--accent) !important;
	outline: 2px solid rgba(27, 123, 181, .25) !important;
	outline-offset: 0;
}
.os-form-card textarea { min-height: 96px; resize: vertical; }
.os-form-card .gform_footer { margin: 18px 0 0 !important; padding: 0 !important; display: block; }
.os-form-card .gform_footer input[type="submit"],
.os-form-card .gform_button {
	width: 100% !important;
	background: var(--wp--preset--color--accent) !important;
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 16.5px !important;
	font-family: inherit !important;
	padding: 15px !important;
	border: none !important;
	border-radius: 10px !important;
	cursor: pointer;
	box-shadow: 0 10px 24px -10px rgba(27, 123, 181, .7) !important;
	min-height: 0 !important;
	line-height: 1.3 !important;
}
.os-form-card .gform_button:hover { background: var(--wp--preset--color--accent-dark) !important; }
.os-form-card .gform_confirmation_message { text-align: center; padding: 30px 10px; font-size: 16px; color: var(--wp--preset--color--slate); }
.os-form-card .gform_confirmation_message h3 { font-size: 28px; margin: 0 0 10px; }
.os-form-card .os-form-note { font-size: 12.5px; color: #9aa5ad; text-align: center; margin: 12px 0 0; }
.os-form-card .gform_validation_errors { border-radius: 10px; }

/* --- Motion ---------------------------------------------------- */
.os-reveal-on .os-reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease-out, transform .5s ease-out; }
.os-reveal-on .os-reveal.os-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.os-reveal-on .os-reveal { opacity: 1; transform: none; transition: none; }
	.os-float-wrap,
	.os-service-card,
	.os-link-card { transition: none; }
}

/* --- Editor --------------------------------------------------- */
.editor-styles-wrapper .os-float-wrap { position: static; }
.editor-styles-wrapper .os-ba { cursor: default; }

/* --- Icons (generated: SVG data URIs) ------------------------- */
:root {
	--os-ico-phone: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z%22/%3E%3C/svg%3E");
	--os-ico-phone-white: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z%22/%3E%3C/svg%3E");
}
.os-ico--house { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 21V9l9-6 9 6v12%22/%3E%3Cpath d=%22M9 21v-6h6v6%22/%3E%3C/svg%3E"); }
.os-ico--roof { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12l9-8 9 8%22/%3E%3Cpath d=%22M5 10v10h14V10%22/%3E%3C/svg%3E"); }
.os-ico--concrete { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%2214%22 width=%2218%22 height=%227%22 rx=%221%22/%3E%3Cpath d=%22M6 14V7a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v7%22/%3E%3C/svg%3E"); }
.os-ico--gutter { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 6h16%22/%3E%3Cpath d=%22M6 6l1 14a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-14%22/%3E%3Cpath d=%22M10 11v6M14 11v6%22/%3E%3C/svg%3E"); }
.os-ico--fence { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 9h18M3 15h18%22/%3E%3Cpath d=%22M6 5v14M12 5v14M18 5v14%22/%3E%3C/svg%3E"); }
.os-ico--window { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%223%22 width=%2218%22 height=%2218%22 rx=%221%22/%3E%3Cpath d=%22M12 3v18M3 12h18%22/%3E%3C/svg%3E"); }
.os-ico--commercial { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 21h18%22/%3E%3Cpath d=%22M5 21V8l7-4 7 4v13%22/%3E%3Cpath d=%22M9 21v-5h6v5%22/%3E%3C/svg%3E"); }
.os-ico--method { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z%22/%3E%3C/svg%3E"); }
.os-ico--crew { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2%22/%3E%3Ccircle cx=%229%22 cy=%227%22 r=%224%22/%3E%3Cpath d=%22M23 21v-2a4 4 0 0 0-3-3.87%22/%3E%3Cpath d=%22M16 3.13a4 4 0 0 1 0 7.75%22/%3E%3C/svg%3E"); }
.os-ico--answer { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 11.08V12a10 10 0 1 1-5.93-9.14%22/%3E%3Cpolyline points=%2222 4 12 14.01 9 11.01%22/%3E%3C/svg%3E"); }
.os-ico--phone { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z%22/%3E%3C/svg%3E"); }
.os-ico--mail { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%224%22 width=%2220%22 height=%2216%22 rx=%222%22/%3E%3Cpath d=%22m22 7-10 5L2 7%22/%3E%3C/svg%3E"); }
.os-ico--pin { --os-ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23155F8C%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E"); }

/* --- Fixes after first QA pass ------------------------------- */
/* Auto-sized grids fill the row like the reference (auto-fit, not auto-fill). */
.os-figure-grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); }
.os-faq-grid.is-layout-grid:not(.os-faq-grid--two) { grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); }
.os-link-grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); }
.os-contact-cards > * { align-self: stretch; width: 100%; }
.os-form-card .gform_wrapper .gform_fields { row-gap: 16px !important; }
.os-form-card .gform_wrapper .gfield { margin: 0 !important; }
.os-form-card .gform_wrapper .ginput_container { margin-top: 0 !important; }
.os-form-card .gform_wrapper select { height: auto !important; min-height: 50px; padding-block: 12px !important; line-height: 1.4 !important; }
.os-nav .is-menu-open .wp-block-navigation-item.has-child { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; }
.os-nav .is-menu-open .has-child > .wp-block-navigation-item__content { flex: 1 1 auto; width: auto; }
.os-nav .is-menu-open .has-child > .wp-block-navigation__submenu-container { flex: 0 0 100%; }
