/**
 * WaveLift – block and section styles.
 *
 * Loaded on the front end AND in the block editor (add_editor_style), so what
 * editors see matches the live site. Design tokens come from theme.json
 * (--wp--preset--* and --wp--custom--*); the aliases below keep selectors short.
 */

:root {
	--wl-navy: var(--wp--preset--color--navy, #12343f);
	--wl-navy-deep: var(--wp--preset--color--navy-deep, #0a1e24);
	--wl-teal: var(--wp--preset--color--teal, #1f7a86);
	--wl-teal-light: var(--wp--preset--color--teal-light, #8fd0d8);
	--wl-ice: var(--wp--preset--color--ice, #bfe3e8);
	--wl-sand: var(--wp--preset--color--sand, #f3eee6);
	--wl-stone: var(--wp--preset--color--stone, #e8e1d5);
	--wl-paper: var(--wp--preset--color--paper, #fbf8f3);
	--wl-white: #fff;
	--wl-line: var(--wp--preset--color--line, #d9d0c3);
	--wl-border: var(--wp--preset--color--border, #cfc6b8);
	--wl-slate: var(--wp--preset--color--slate, #5a6468);
	--wl-ink-soft: var(--wp--preset--color--ink-soft, #4c565a);
	--wl-mist: var(--wp--preset--color--mist, #c3d3d6);
	--wl-line-dark: rgba(255, 255, 255, 0.16);

	--wl-serif: var(--wp--preset--font-family--fraunces, Fraunces, Georgia, serif);
	--wl-sans: var(--wp--preset--font-family--manrope, Manrope, "Helvetica Neue", Arial, sans-serif);

	--wl-radius-xl: var(--wp--custom--radius--xl, 24px);
	--wl-radius-lg: var(--wp--custom--radius--lg, 18px);
	--wl-radius-md: var(--wp--custom--radius--md, 14px);
	--wl-radius-sm: var(--wp--custom--radius--sm, 12px);
	--wl-radius-pill: var(--wp--custom--radius--pill, 999px);

	--wl-gutter: var(--wp--custom--gutter, clamp(20px, 3.9vw, 56px));
	--wl-gutter-panel: var(--wp--custom--gutter-panel, clamp(12px, 1.7vw, 24px));
	--wl-space: var(--wp--custom--section-space, clamp(64px, 7.6vw, 110px));
	--wl-space-sm: clamp(28px, 3vw, 40px);
	--wl-panel-pad: clamp(28px, 5.4vw, 80px) clamp(20px, 3.4vw, 48px);
	--wl-content: var(--wp--style--global--content-size, 1328px);
	--wl-wide: var(--wp--style--global--wide-size, 1392px);
}

/* -------------------------------------------------------------------------
 * Base typography helpers
 * ---------------------------------------------------------------------- */

.wl-content h1 em,
.wl-content h2 em,
.wl-content h3 em,
.editor-styles-wrapper h1 em,
.editor-styles-wrapper h2 em {
	font-weight: 400;
}

.wl-intro {
	color: var(--wl-slate);
	font-size: 16px;
	line-height: 1.6;
}

.wl-item-text {
	color: var(--wl-slate);
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
}

/* Paragraph styles ------------------------------------------------------- */

.is-style-eyebrow,
.is-style-eyebrow-line {
	margin: 0;
	color: var(--wl-teal);
	font-family: var(--wl-sans);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.is-style-eyebrow-line {
	display: flex;
	align-items: center;
	gap: 14px;
}

.is-style-eyebrow-line::before {
	content: "";
	flex: 0 0 40px;
	height: 2px;
	background: currentColor;
}

.is-style-statement {
	max-width: 1180px;
	margin: 0;
	font-family: var(--wl-serif);
	font-size: var(--wp--preset--font-size--statement, clamp(28px, 3.8vw, 54px));
	font-weight: 400;
	line-height: 1.14;
	letter-spacing: -0.022em;
}

.is-style-step-number {
	margin: 0;
	color: var(--wl-teal);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.5;
}

/* Heading styles --------------------------------------------------------- */

.wp-block-heading.is-style-serif-title,
.wp-block-post-title.is-style-serif-title {
	font-family: var(--wl-serif);
	font-size: var(--wp--preset--font-size--title, clamp(24px, 2.1vw, 30px));
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.wp-block-heading.is-style-label {
	font-family: var(--wl-sans);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wl-h1-md {
	font-size: clamp(38px, 4.4vw, 64px) !important;
	line-height: 1.04;
}

/* -------------------------------------------------------------------------
 * Buttons
 * ---------------------------------------------------------------------- */

.wp-block-buttons {
	gap: 14px;
}

.wp-block-button__link,
.wl-btn {
	min-height: 54px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.wl-btn {
	box-sizing: border-box;
	padding: 0 28px;
	border: 0;
	border-radius: var(--wl-radius-pill);
	background: var(--wl-navy);
	color: var(--wl-white);
	font-family: var(--wl-sans);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}

.wl-btn:hover,
.wl-btn:focus-visible {
	background: var(--wl-teal);
	color: var(--wl-white);
}

.wl-btn--outline {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--wl-navy);
	color: var(--wl-navy);
}

.wl-btn--outline:hover,
.wl-btn--outline:focus-visible {
	background: var(--wl-navy);
	color: var(--wl-white);
}

.wl-btn--sm {
	min-height: 46px;
	padding: 0 22px;
	font-size: 13px;
}

.wl-btn--block {
	display: flex;
	width: 100%;
}

.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button .wp-block-button__link.is-style-outline {
	border: 0;
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--wl-navy);
	color: var(--wl-navy);
	padding: 17px 28px;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background: var(--wl-navy);
	color: var(--wl-white);
}

.wp-block-button.is-style-light > .wp-block-button__link {
	background: var(--wl-white);
	color: var(--wl-navy);
}

.wp-block-button.is-style-light > .wp-block-button__link:hover,
.wp-block-button.is-style-light > .wp-block-button__link:focus-visible {
	background: var(--wl-ice);
	color: var(--wl-navy);
}

.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.7);
	color: var(--wl-white);
}

.wp-block-button.is-style-outline-light > .wp-block-button__link:hover,
.wp-block-button.is-style-outline-light > .wp-block-button__link:focus-visible {
	background: var(--wl-white);
	color: var(--wl-navy);
}

.wp-block-button.is-style-text-link > .wp-block-button__link,
.wl-text-link {
	min-height: 0;
	padding: 0 0 4px;
	border-radius: 0;
	background: transparent;
	border-bottom: 1.5px solid currentColor;
	color: var(--wl-navy);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover,
.wp-block-button.is-style-text-link > .wp-block-button__link:focus-visible,
.wl-text-link:hover {
	background: transparent;
	color: var(--wl-teal);
}

/* -------------------------------------------------------------------------
 * Images & pill captions
 * ---------------------------------------------------------------------- */

.wl-content .wp-block-image,
.editor-styles-wrapper .wp-block-image {
	margin-bottom: 0;
}

.wl-content .wp-block-image img,
.editor-styles-wrapper .wp-block-image img {
	display: block;
	width: 100%;
	border-radius: var(--wl-radius-lg);
}

.wp-block-image.is-style-pill-dark,
.wp-block-image.is-style-pill-light {
	position: relative;
}

.wp-block-image.is-style-pill-dark figcaption,
.wp-block-image.is-style-pill-light figcaption {
	position: absolute;
	left: clamp(12px, 1.7vw, 24px);
	bottom: clamp(12px, 1.7vw, 24px);
	max-width: calc(100% - 2 * clamp(12px, 1.7vw, 24px));
	margin: 0;
	padding: 10px 16px;
	border-radius: var(--wl-radius-pill);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--wl-white);
	background: var(--wl-navy);
	box-sizing: border-box;
}

.wp-block-image.is-style-pill-light figcaption {
	background: var(--wl-white);
	color: var(--wl-navy);
}

.wl-icon-img img,
.editor-styles-wrapper .wl-icon-img img {
	width: 32px !important;
	height: 32px;
	border-radius: 0 !important;
}

.wl-fixed-h img {
	height: clamp(280px, 36vw, 520px);
	object-fit: cover;
}

/* -------------------------------------------------------------------------
 * Panels, cards, rules
 * ---------------------------------------------------------------------- */

.wp-block-group.is-style-navy-panel {
	background: var(--wl-navy);
	color: var(--wl-white);
	border-radius: var(--wl-radius-xl);
	padding: var(--wl-panel-pad);
}

.wp-block-group.is-style-stone-panel {
	background: var(--wl-stone);
	border-radius: var(--wl-radius-xl);
	padding: clamp(28px, 4vw, 56px);
}

.is-style-navy-panel a:not(.wp-block-button__link) {
	color: var(--wl-white);
}

.is-style-navy-panel .is-style-eyebrow,
.is-style-navy-panel .is-style-eyebrow-line {
	color: var(--wl-teal-light);
}

.is-style-navy-panel .wl-intro,
.is-style-navy-panel .wl-item-text {
	color: var(--wl-mist);
}

.is-style-navy-panel .is-style-step-number {
	color: var(--wl-teal-light);
}

.wp-block-group.is-style-card {
	background: var(--wl-paper);
	border: 1px solid var(--wl-line);
	border-radius: var(--wl-radius-lg);
	padding: clamp(22px, 2vw, 28px);
}

.wp-block-group.is-style-top-rule {
	border-top: 2px solid var(--wl-navy);
	padding-top: 20px;
}

.wl-item > * {
	margin-top: 0;
	margin-bottom: 0;
}

.wl-item > * + * {
	margin-top: 10px;
}

.wl-item > .wp-block-heading {
	margin-top: 10px;
}

.wl-item > .is-style-step-number + .wp-block-heading {
	margin-top: 8px;
}

/* Spec rows */
.wl-spec-list {
	border-top: 1px solid var(--wl-line-dark);
}

.wl-spec-list > .wp-block-group.is-style-spec-row {
	margin: 0;
}

.wp-block-group.is-style-spec-row {
	gap: 24px;
	padding: 16px 0;
	border-bottom: 1px solid var(--wl-line-dark);
	align-items: baseline;
}

.wl-spec-label {
	flex: 0 0 130px;
	margin: 0;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wl-spec-value {
	flex: 1 1 auto;
	margin: 0;
	font-size: 15px;
	color: var(--wl-mist);
}

.wl-spec-list--light,
.wl-spec-list--light > .is-style-spec-row {
	border-color: var(--wl-line);
}

.wl-spec-list--light .wl-spec-value {
	color: var(--wl-slate);
	text-align: right;
}

/* Numbered rows */
.wl-num-rows {
	border-top: 1px solid var(--wl-line-dark);
}

.wl-num-rows--light,
.wl-num-rows--light > .wl-num-row {
	border-color: var(--wl-line) !important;
}

.wl-num-rows > .wl-num-row {
	margin: 0;
}

.wp-block-group.wl-num-row {
	gap: 20px;
	padding: 22px 0;
	border-bottom: 1px solid var(--wl-line-dark);
	align-items: flex-start;
}

.wl-num-row > .is-style-step-number {
	flex: 0 0 auto;
	padding-top: 3px;
}

.wl-row-body > * {
	margin: 0;
}

.wl-row-body > * + * {
	margin-top: 6px;
}

.wl-num-row--compact {
	padding: 14px 0 !important;
	align-items: center !important;
}

.wl-row-title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
}

.wp-block-group.wl-num-row--3col {
	display: grid !important;
	grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px;
	align-items: baseline;
	padding: 24px 0;
}

.wl-num-row--3col > * {
	margin: 0 !important;
}

.wl-num-row--3col > .wp-block-heading {
	font-size: 20px;
}

/* Chips */
.wp-block-list.is-style-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wp-block-list.is-style-chips li {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid var(--wl-border);
	border-radius: var(--wl-radius-pill);
	background: var(--wl-paper);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	box-sizing: border-box;
}

.is-style-navy-panel .wp-block-list.is-style-chips li {
	border-color: rgba(255, 255, 255, 0.28);
	background: transparent;
	color: #e6eef0;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

.wl-chip-row {
	gap: 16px 28px;
}

.wl-chip-row > * {
	margin: 0 !important;
}

.wl-chip-row--ruled {
	padding-top: 28px;
	border-top: 1px solid var(--wl-line-dark);
}

/* Note box */
.wl-note {
	margin: 0;
	padding: 18px 22px;
	border-radius: var(--wl-radius-md);
	background: var(--wl-stone);
	color: var(--wl-ink-soft);
	font-size: 14px;
	line-height: 1.6;
}

.wl-note-box {
	padding: 22px 24px;
	border-radius: 16px;
	background: var(--wl-stone);
}

.wl-note-box > * {
	margin: 0;
}

.wl-note-box > * + * {
	margin-top: 8px;
}

.wl-note-box h3 {
	font-size: 15px;
}

.wl-note-box p {
	color: var(--wl-ink-soft);
	font-size: 15px;
}

/* -------------------------------------------------------------------------
 * Sections & layout
 * ---------------------------------------------------------------------- */

.wl-section {
	padding-top: var(--wl-space);
}

.wl-section--tight {
	padding-top: clamp(48px, 6vw, 90px);
}

.wl-section > * + *,
.wl-panel > * + * {
	margin-block-start: clamp(28px, 3vw, 44px);
}

.wl-panel {
	margin-top: clamp(40px, 5vw, 72px);
}

/* Section heading row: heading left, intro right */
.wp-block-columns.wl-head,
.wp-block-columns.wl-split {
	justify-content: space-between;
	margin-bottom: 0;
}

.wp-block-columns.wl-head {
	gap: 24px;
}

.wl-head .wp-block-column > * {
	margin-top: 0;
	margin-bottom: 0;
}

.wl-head .wp-block-column > * + * {
	margin-top: 14px;
}

.wl-head .wp-block-heading {
	margin: 0;
}

.wl-head__action {
	display: flex;
	justify-content: flex-end;
}

.wp-block-columns.wl-split {
	gap: clamp(28px, 4vw, 64px);
}

.wl-split .wp-block-column > * {
	margin-top: 0;
	margin-bottom: 0;
}

.wl-split .wp-block-column > * + * {
	margin-top: 22px;
}

.wl-split .wp-block-column > .wl-spec-list,
.wl-split .wp-block-column > .wp-block-wavelift-contact-details {
	margin-top: 28px;
}

/* Statement */
.wl-statement {
	padding-bottom: clamp(36px, 4vw, 56px);
	border-bottom: 1px solid var(--wl-line);
}

.wl-statement > * {
	margin: 0;
}

.wl-statement > * + * {
	margin-top: 28px;
}

/* Steps */
.wl-steps {
	padding-top: 28px;
	border-top: 1px solid var(--wl-line);
}

.wl-steps .wp-block-heading {
	font-size: 18px;
}

/* Hero: split / text */
.wl-hero--split {
	padding-top: clamp(16px, 2vw, 24px);
}

.wl-hero--split .wp-block-heading,
.wl-hero--text .wp-block-heading {
	margin: 0;
}

.wl-hero--text {
	padding-top: clamp(48px, 6vw, 88px);
	padding-bottom: clamp(32px, 4vw, 52px);
	border-bottom: 1px solid var(--wl-line);
}

.wl-hero--text h1 {
	font-size: clamp(42px, 5.8vw, 84px);
	line-height: 1;
	letter-spacing: -0.03em;
}

.wl-hero--contact {
	padding-top: clamp(32px, 4vw, 48px);
}

/* Hero: full image cover */
.wp-block-cover.wl-hero--cover {
	padding: 0;
	overflow: hidden;
	align-items: stretch;
	border-radius: var(--wl-radius-xl);
}

.wl-hero--cover > .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 100%;
	color: var(--wl-white);
}

.wl-hero__content {
	max-width: 1040px;
	padding: clamp(56px, 8.3vw, 120px) clamp(24px, 5vw, 72px) clamp(40px, 5vw, 72px);
}

.wl-hero__content > * {
	margin-top: 0;
	margin-bottom: 0;
}

.wl-hero__content > * + * {
	margin-top: 26px;
}

.wl-hero__content .is-style-eyebrow {
	color: var(--wl-ice);
	letter-spacing: 0.18em;
}

.wl-hero__content h1 {
	color: var(--wl-white);
}

.wl-hero__lead {
	max-width: 640px;
	color: #e6eef0;
	line-height: 1.6;
}

.wl-hero__content .wp-block-buttons {
	margin-top: 32px;
}

.wp-block-group.wl-hero__strip {
	gap: 0;
	background: var(--wl-navy);
}

.wl-strip-item {
	padding: 30px 48px;
	border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.wl-strip-item:first-child {
	padding-left: clamp(24px, 5vw, 72px);
}

.wl-strip-item:last-child {
	border-right: 0;
}

.wl-strip-item > * {
	margin: 0;
}

.wl-strip-item > * + * {
	margin-top: 6px;
}

.wl-strip-title {
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wl-strip-text {
	color: #b9cbcf;
	font-size: 14px;
}

/* Photo band */
.wp-block-cover.wl-band {
	border-radius: var(--wl-radius-xl);
	overflow: hidden;
	padding: clamp(28px, 5vw, 72px);
	margin-top: var(--wl-space);
}

.wl-band__content > * {
	margin: 0;
}

.wl-band__content > * + * {
	margin-top: 20px;
}

.wl-band .is-style-statement {
	max-width: 760px;
	color: var(--wl-white);
	font-size: clamp(28px, 3.1vw, 44px);
	line-height: 1.15;
}

/* Use cards */
.wl-use-cards {
	height: 100%;
}

.wl-uses .wp-block-column > * {
	height: 100%;
}

/* Quote panel */
.wl-quote .wp-block-heading {
	margin: 0;
}

/* -------------------------------------------------------------------------
 * Contact details block
 * ---------------------------------------------------------------------- */

.wl-contact-details {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.wl-contact-details__item {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.wl-contact-details__label {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.wl-contact-details__value,
.wl-contact-details__value address {
	font-size: 16px;
	font-style: normal;
	font-weight: 600;
}

.wl-contact-details__value a {
	color: inherit;
	text-decoration: none;
}

.wl-contact-details__value a:hover {
	color: var(--wl-teal);
}

.wl-contact-details__note {
	color: var(--wl-slate);
	font-size: 14px;
}

.wl-contact-details--large .wl-contact-details__value,
.wl-contact-details--large .wl-contact-details__value address {
	font-size: 18px;
	font-weight: 700;
}

.wl-contact-details--dividers {
	gap: 0;
	border-top: 1px solid var(--wl-line);
}

.wl-contact-details--dividers .wl-contact-details__item {
	padding: 18px 0;
	border-bottom: 1px solid var(--wl-line);
}

/* -------------------------------------------------------------------------
 * Quote form block (Forminator + fallback)
 * ---------------------------------------------------------------------- */

.wl-quote-form--card {
	padding: clamp(24px, 3vw, 40px);
	border-radius: var(--wl-radius-xl);
	background: var(--wl-white);
	box-shadow: 0 1px 0 var(--wl-line);
}

.wl-quote-form__title {
	margin: 0 0 22px;
	font-family: var(--wl-serif);
	font-size: var(--wp--preset--font-size--title, 30px);
	font-weight: 500;
	letter-spacing: -0.01em;
}

.wl-quote-form__admin-note {
	margin: 0 0 16px;
	padding: 12px 14px;
	border: 1px dashed var(--wl-teal);
	border-radius: var(--wl-radius-sm);
	background: rgba(31, 122, 134, 0.06);
	color: var(--wl-ink-soft);
	font-size: 13px;
}

.wl-quote-form__fallback {
	padding: clamp(24px, 3vw, 36px);
	border-radius: var(--wl-radius-lg);
	background: var(--wl-white);
}

.wl-quote-form--card .wl-quote-form__fallback {
	padding: 0;
}

.wl-quote-form__fallback > p {
	margin: 0 0 14px;
	color: var(--wl-slate);
}

.wl-quote-form__fallback .wl-quote-form__fallback-title {
	color: var(--wl-navy);
	font-family: var(--wl-serif);
	font-size: 26px;
	font-weight: 500;
	line-height: 1.2;
}

.wl-quote-form__fallback-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 22px;
}

/* Forminator: set the form's Appearance › Design style to "None" so these rules take over. */
.wl-quote-form .forminator-ui.forminator-custom-form {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--wl-sans);
}

.wl-quote-form .forminator-row {
	display: flex;
	gap: 16px;
	margin: 0 0 16px !important;
}

.wl-quote-form .forminator-row:last-child {
	margin-bottom: 0 !important;
}

.wl-quote-form .forminator-col {
	flex: 1 1 0;
	min-width: 0;
	padding: 0 !important;
}

.wl-quote-form .forminator-field {
	margin: 0 !important;
}

.wl-quote-form .forminator-label,
.wl-quote-form .forminator-field > label {
	display: block;
	margin: 0 0 7px !important;
	color: var(--wl-navy);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

.wl-quote-form .forminator-required {
	color: var(--wl-teal);
}

.wl-quote-form input[type="text"],
.wl-quote-form input[type="email"],
.wl-quote-form input[type="tel"],
.wl-quote-form input[type="number"],
.wl-quote-form input[type="date"],
.wl-quote-form input[type="url"],
.wl-quote-form select,
.wl-quote-form textarea,
.wl-quote-form .select2-container .select2-selection--single {
	box-sizing: border-box;
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--wl-border) !important;
	border-radius: var(--wl-radius-sm) !important;
	background: var(--wl-white);
	color: var(--wl-navy);
	font: 400 15px/1.4 var(--wl-sans);
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.wl-quote-form--card input[type="text"],
.wl-quote-form--card input[type="email"],
.wl-quote-form--card input[type="tel"],
.wl-quote-form--card input[type="number"],
.wl-quote-form--card input[type="date"],
.wl-quote-form--card select,
.wl-quote-form--card textarea {
	background: var(--wl-paper);
}

.wl-quote-form textarea {
	min-height: 120px;
	padding: 14px 16px;
	resize: vertical;
}

.wl-quote-form input:focus,
.wl-quote-form select:focus,
.wl-quote-form textarea:focus {
	border-color: var(--wl-teal) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(31, 122, 134, 0.18);
}

.wl-quote-form .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 48px;
	color: var(--wl-navy);
}

.wl-quote-form .select2-container .select2-selection--single .select2-selection__arrow {
	height: 48px;
}

.wl-quote-form .forminator-file-upload,
.wl-quote-form .forminator-multi-upload {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px;
	border: 1.5px dashed #bfb5a6;
	border-radius: var(--wl-radius-md);
}

.wl-quote-form .forminator-button-upload,
.wl-quote-form .forminator-upload-button {
	padding: 10px 18px;
	border: 0;
	border-radius: var(--wl-radius-pill);
	background: var(--wl-stone);
	color: var(--wl-navy);
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
}

.wl-quote-form .forminator-button-submit,
.wl-quote-form button[type="submit"] {
	width: 100%;
	min-height: 56px;
	padding: 0 28px;
	border: 0 !important;
	border-radius: var(--wl-radius-pill) !important;
	background: var(--wl-navy) !important;
	color: var(--wl-white) !important;
	font: 800 14px/1.2 var(--wl-sans);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.18s ease;
}

.wl-quote-form .forminator-button-submit:hover,
.wl-quote-form .forminator-button-submit:focus-visible,
.wl-quote-form button[type="submit"]:hover {
	background: var(--wl-teal) !important;
}

.wl-quote-form .forminator-error-message,
.wl-quote-form .forminator-description {
	display: block;
	margin-top: 6px;
	color: var(--wl-slate);
	font-size: 13px;
}

.wl-quote-form .forminator-error-message {
	color: #b42318;
}

.wl-quote-form .forminator-has_error input,
.wl-quote-form .forminator-has_error textarea {
	border-color: #b42318 !important;
}

.wl-quote-form .forminator-response-message {
	margin-bottom: 16px;
	padding: 14px 16px;
	border-radius: var(--wl-radius-sm);
	font-size: 14px;
}

.wl-quote-form .forminator-response-message.forminator-success {
	background: #e3f1ee;
	color: #0f4a3c;
}

.wl-quote-form .forminator-response-message.forminator-error {
	background: #fde8e7;
	color: #7a1b14;
}

/* -------------------------------------------------------------------------
 * Projects list (query loop) + filter
 * ---------------------------------------------------------------------- */

.wl-project-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--wl-line);
}

.wl-project-filter__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.wl-chip-button {
	min-height: 46px;
	padding: 0 22px;
	border: 1px solid var(--wl-border);
	border-radius: var(--wl-radius-pill);
	background: var(--wl-paper);
	color: var(--wl-navy);
	font: 800 13px/1 var(--wl-sans);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.wl-chip-button:hover {
	border-color: var(--wl-navy);
}

.wl-chip-button[aria-pressed="true"] {
	border-color: var(--wl-navy);
	background: var(--wl-navy);
	color: var(--wl-white);
}

.wl-project-filter__note {
	margin: 0;
	color: var(--wl-slate);
	font-size: 14px;
}

.wl-project-query .wp-block-post[hidden] {
	display: none !important;
}

.wl-project-card > * {
	margin-top: 0;
	margin-bottom: 0;
}

.wl-project-card > * + * {
	margin-top: 10px;
}

.wl-project-card .wp-block-post-featured-image {
	margin-bottom: 8px;
	overflow: hidden;
	border-radius: var(--wl-radius-lg);
}

.wl-project-card .wp-block-post-featured-image img {
	transition: transform 0.4s ease;
}

.wl-project-card .wp-block-post-featured-image a:hover img {
	transform: scale(1.03);
}

.wl-card-terms {
	color: var(--wl-teal);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.wl-card-terms a {
	color: inherit;
}

.wl-project-card .wp-block-post-title a {
	color: var(--wl-navy);
}

.wl-project-card .wp-block-post-title a:hover {
	color: var(--wl-teal);
}

.wl-project-card .wp-block-post-excerpt {
	color: var(--wl-slate);
	font-size: 15px;
}

.wl-project-card .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.wl-project-card .wp-block-post-excerpt__more-text {
	display: none;
}

/* -------------------------------------------------------------------------
 * Responsive
 * ---------------------------------------------------------------------- */

/*
 * Grid groups keep the column count chosen in the editor on desktop and step
 * down on smaller screens. (Selectors are two classes deep so they beat the
 * generated layout rule without !important.)
 */
@media (max-width: 1024px) {
	.wp-block-group.wl-steps,
	.wp-block-group.wl-audiences,
	.wp-block-group.wl-specs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.wp-block-group.wl-hero__strip,
	.wp-block-group.wl-features,
	.wp-block-group.wl-next-steps {
		grid-template-columns: minmax(0, 1fr);
	}

	.wp-block-post-template.wl-project-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.wp-block-group.wl-steps,
	.wp-block-group.wl-audiences,
	.wp-block-group.wl-specs,
	.wp-block-group.wl-cards,
	.wp-block-group.wl-use-cards,
	.wp-block-post-template.wl-project-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wp-block-group.wl-cards .wp-block-image img,
	.wl-project-grid .wp-block-post-featured-image,
	.wl-project-grid .wp-block-post-featured-image img {
		aspect-ratio: 4 / 5 !important;
	}
}

@media (max-width: 1100px) {
	.wl-strip-item {
		padding: 24px 28px;
	}

	.wl-spec-label {
		flex-basis: 110px;
	}
}

@media (max-width: 1024px) {
	.wp-block-cover.wl-hero--cover {
		min-height: clamp(560px, 80vw, 720px) !important;
	}

	/* Text + image heroes stack earlier than core columns so the image never gets thin. */
	.wp-block-columns.wl-split--hero {
		flex-wrap: wrap !important;
	}

	.wp-block-columns.wl-split--hero > .wp-block-column {
		flex-basis: 100% !important;
	}

	.wl-split--hero .wp-block-column:last-child .wp-block-image img {
		aspect-ratio: 4 / 3 !important;
	}

	.wp-block-columns.wl-uses {
		flex-wrap: wrap !important;
	}

	.wp-block-columns.wl-uses > .wp-block-column {
		flex-basis: 100% !important;
	}
}

@media (max-width: 781px) {
	.wp-block-columns.wl-head {
		gap: 16px;
	}

	.wl-head__action {
		justify-content: flex-start;
	}

	.wl-strip-item,
	.wl-strip-item:first-child {
		padding: 18px 24px;
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	}

	.wl-strip-item:last-child {
		border-bottom: 0;
	}

	.wl-hero__content .wp-block-buttons {
		margin-top: 24px;
	}

	.wp-block-group.wl-num-row--3col {
		grid-template-columns: 40px minmax(0, 1fr);
		gap: 6px 16px;
	}

	.wl-num-row--3col > .wl-item-text {
		grid-column: 2;
	}

	.wl-fixed-h img {
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.wl-spec-list--light .wl-spec-value {
		text-align: left;
	}

	.wl-quote-form .forminator-row {
		flex-direction: column;
	}
}

@media (max-width: 480px) {
	.wp-block-group.is-style-spec-row {
		flex-direction: column;
		gap: 4px;
	}

	.wl-spec-label {
		flex-basis: auto;
	}

	.wp-block-buttons > .wp-block-button {
		width: 100%;
	}

	.wp-block-buttons > .wp-block-button:not(.is-style-text-link) > .wp-block-button__link {
		width: 100%;
	}

	.wp-block-image.is-style-pill-dark figcaption,
	.wp-block-image.is-style-pill-light figcaption {
		padding: 8px 12px;
		font-size: 11px;
	}

	.wl-chip-button {
		min-height: 42px;
		padding: 0 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wl-project-card .wp-block-post-featured-image img,
	.wp-block-button__link,
	.wl-btn {
		transition: none;
	}
}
