/* ==========================================================================
   iFix Truck Curtains — theme layer
   Tokens come from theme.json (--wp--preset--*). This file adds component
   styling that theme.json can't express. Loaded on the front end and in the
   editor (add_editor_style), so what the client edits is what ships.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--ifix-red: var(--wp--preset--color--primary);
	--ifix-red-dark: var(--wp--preset--color--primary-dark);
	--ifix-ink: var(--wp--preset--color--ink);
	--ifix-line: var(--wp--preset--color--line);
	--ifix-gold: #f5b301;
	--ifix-radius: 4px;
	--ifix-topbar-h: 2.625rem;
	--ifix-masthead-h: 5rem;
	--ifix-admin-h: var(--wp-admin--admin-bar--height, 0px);
	--ifix-sticky-offset: calc(var(--ifix-admin-h) + var(--ifix-masthead-h) + 3.25rem);
	--ifix-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10.2' stroke-width='1.8'/%3E%3Cpath d='M7.6 12.4l3 3 5.8-6.4' stroke-width='2.4'/%3E%3C/svg%3E");
	--ifix-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224,154.8l-47.09-21.11-.18-.08a19.94,19.94,0,0,0-19,1.75,13.08,13.08,0,0,0-1.12.84l-22.31,19c-13-7.05-26.43-20.37-33.49-33.21l19.06-22.66a11.76,11.76,0,0,0,.85-1.15,20,20,0,0,0,1.66-18.83,1.42,1.42,0,0,1-.08-.18L101.2,32A20.06,20.06,0,0,0,80.42,20.15,60.27,60.27,0,0,0,28,80c0,81.61,66.39,148,148,148a60.27,60.27,0,0,0,59.85-52.42A20.06,20.06,0,0,0,224,154.8ZM176,204A124.15,124.15,0,0,1,52,80,36.29,36.29,0,0,1,80.48,44.46l18.82,42L80.14,109.28a12,12,0,0,0-.86,1.16A20,20,0,0,0,78,130.08c9.42,19.28,28.83,38.56,48.31,48A20,20,0,0,0,146,176.63a11.63,11.63,0,0,0,1.11-.85l22.43-19.07,42,18.81A36.29,36.29,0,0,1,176,204Z'/%3E%3C/svg%3E");
	--ifix-icon-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z'/%3E%3C/svg%3E");

	/* Context-aware colours: light sections by default… */
	--ifix-accent-text: var(--wp--preset--color--primary);
	--ifix-muted: var(--wp--preset--color--steel);
	--ifix-link: var(--wp--preset--color--primary);
	--ifix-link-hover: var(--wp--preset--color--primary-dark);
}

/* …and dark sections switch to colours that pass WCAG AA on black. */
.has-ink-background-color,
.has-charcoal-background-color,
.has-graphite-background-color,
.wp-block-cover:not(.is-light),
.ifix-site-header,
.ifix-site-footer {
	--ifix-accent-text: var(--wp--preset--color--accent);
	--ifix-muted: var(--wp--preset--color--silver);
	--ifix-link: var(--wp--preset--color--white);
	--ifix-link-hover: var(--wp--preset--color--white);
}

.has-primary-background-color,
.has-primary-dark-background-color {
	--ifix-accent-text: var(--wp--preset--color--white);
	--ifix-muted: rgba(255, 255, 255, 0.85);
	--ifix-link: var(--wp--preset--color--white);
	--ifix-link-hover: var(--wp--preset--color--white);
}

/* 2. Base ------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
::selection { background: var(--ifix-red); color: #fff; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--ifix-accent-text);
	outline-offset: 3px;
}

/* Template-level blocks butt together; sections own their spacing. */
.wp-site-blocks > *,
.ifix-main > *,
.ifix-front-content > *,
.ifix-page-content > .alignfull { margin-block: 0; }

.ifix-page-content > :first-child:not(.alignfull) { margin-block-start: var(--wp--preset--spacing--60); }
.ifix-page-content > :last-child:not(.alignfull) { margin-block-end: var(--wp--preset--spacing--70); }
.ifix-page-content > .alignfull + :not(.alignfull) { margin-block-start: var(--wp--preset--spacing--60); }
.ifix-page-content > :not(.alignfull) + .alignfull { margin-block-start: var(--wp--preset--spacing--60); }

.wp-block-heading { text-wrap: balance; }
p { text-wrap: pretty; }

/* Icons: core makes the SVG fill its container, so give every icon a size. */
:where(.wp-block-icon) { width: 1.5rem; flex: none; }

/* 3. Text styles ----------------------------------------------------------- */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--ifix-accent-text);
}
.is-style-eyebrow + .wp-block-heading { margin-block-start: 0.4rem; }

.is-style-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: var(--ifix-muted);
}
.has-text-align-center.is-style-lead { max-width: 46rem; margin-inline: auto; }

/* Lists */
.wp-block-list.is-style-checklist,
.wp-block-list.is-style-plain {
	list-style: none;
	padding-left: 0;
}
.is-style-checklist > li {
	position: relative;
	padding-left: 2rem;
	margin-block: 0.6em;
}
.is-style-checklist > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.12em;
	width: 1.35em;
	height: 1.35em;
	background: var(--ifix-accent-text);
	-webkit-mask: var(--ifix-check) center / contain no-repeat;
	mask: var(--ifix-check) center / contain no-repeat;
}
.is-style-plain > li { margin-block: 0.45em; }
.ifix-two-col { columns: 2 12rem; column-gap: 2rem; }
.ifix-two-col > li { break-inside: avoid; margin-top: 0; }

.wp-block-separator.is-style-red-bar {
	width: 4rem;
	max-width: 4rem;
	border: 0;
	border-top: 4px solid var(--ifix-red);
	margin-inline: 0;
	opacity: 1;
}

/* Framed image with a red corner offset */
.wp-block-image.is-style-frame { position: relative; isolation: isolate; }
.wp-block-image.is-style-frame img { border-radius: var(--ifix-radius); box-shadow: var(--wp--preset--shadow--lift); }
.wp-block-image.is-style-frame::before {
	content: "";
	position: absolute;
	top: -0.75rem;
	right: -0.75rem;
	width: 38%;
	height: 38%;
	background: var(--ifix-red);
	border-radius: var(--ifix-radius);
	z-index: -1;
}

/* 4. Buttons --------------------------------------------------------------- */
.wp-block-button__link { transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease; }
.wp-block-button__link:active { transform: translateY(1px); }

.wp-block-button.is-style-call .wp-block-button__link::before {
	content: "";
	display: inline-block;
	width: 1.05em;
	height: 1.05em;
	margin-right: 0.55em;
	vertical-align: -0.15em;
	background: currentColor;
	-webkit-mask: var(--ifix-icon-phone) center / contain no-repeat;
	mask: var(--ifix-icon-phone) center / contain no-repeat;
}

.wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.8);
	color: #fff;
}
.wp-block-button.is-style-outline-light .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
	color: var(--ifix-ink);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--ifix-red);
	color: var(--ifix-red);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--ifix-red); color: #fff; }

.wp-block-button.is-style-dark .wp-block-button__link {
	background: var(--ifix-ink);
	border-color: var(--ifix-ink);
	color: #fff;
}
.wp-block-button.is-style-dark .wp-block-button__link:hover { background: #000; border-color: #000; }

.wp-block-button.is-style-text-arrow .wp-block-button__link,
.wp-block-read-more,
.ifix-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	color: var(--ifix-accent-text);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}
.wp-block-button.is-style-text-arrow .wp-block-button__link::after,
.wp-block-read-more::after {
	content: "";
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--ifix-icon-arrow-right) center / contain no-repeat;
	mask: var(--ifix-icon-arrow-right) center / contain no-repeat;
	transition: transform 0.15s ease;
}
.wp-block-button.is-style-text-arrow .wp-block-button__link:hover,
.wp-block-read-more:hover { background: none; color: var(--ifix-accent-text); text-decoration: underline; text-underline-offset: 0.25em; }
.wp-block-button.is-style-text-arrow .wp-block-button__link:hover::after,
.wp-block-read-more:hover::after { transform: translateX(3px); }

/* Plain "big number" phone links */
.ifix-masthead__phone-link .wp-block-button__link,
.ifix-cta-band__number .wp-block-button__link,
.ifix-big-phone .wp-block-button__link,
.ifix-location__phone .wp-block-button__link {
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	letter-spacing: 0.02em;
}
.ifix-masthead__phone-link .wp-block-button__link:hover,
.ifix-cta-band__number .wp-block-button__link:hover,
.ifix-big-phone .wp-block-button__link:hover,
.ifix-location__phone .wp-block-button__link:hover { background: none; text-decoration: underline; text-underline-offset: 0.2em; }

/* 5. Header ---------------------------------------------------------------- */
.ifix-site-header {
	position: sticky;
	top: calc(var(--ifix-admin-h) - var(--ifix-topbar-h));
	z-index: 100;
}
@media (max-width: 600px) {
	.admin-bar .ifix-site-header { top: calc(-1 * var(--ifix-topbar-h)); }
}

.ifix-topbar { font-size: var(--wp--preset--font-size--x-small); }
.ifix-topbar__inner { height: var(--ifix-topbar-h); align-items: center; }
.ifix-topbar__message { min-width: 0; align-items: center; }
.ifix-topbar__message p { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifix-topbar__icon { width: 1.05rem; }
.ifix-topbar__headline {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.98rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.ifix-topbar__sub {
	padding-left: 0.75rem;
	border-left: 1px solid rgba(255, 255, 255, 0.4);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	opacity: 0.92;
}
.ifix-topbar__cta { flex: none; }
.ifix-topbar__cta .wp-block-button__link { padding: 0.42em 0.95em; font-size: 0.92rem; }

.ifix-masthead { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 8px 24px -12px rgba(0, 0, 0, 0.6); }
.ifix-masthead__inner { min-height: var(--ifix-masthead-h); align-items: center; }

/* Logo badge: a red shield hanging below the bar, as in the client's layout. */
.ifix-brand {
	align-self: stretch;
	flex: none;
	align-items: center;
	padding: 0.6rem 1.1rem 1rem;
	margin-bottom: -0.9rem;
	background: var(--ifix-red);
	clip-path: polygon(0 0, 100% 0, 100% 84%, 50% 100%, 0 84%);
	position: relative;
	z-index: 2;
}
.ifix-brand .wp-block-site-logo img { display: block; height: auto; max-height: 3.6rem; width: auto; }
.ifix-brand__title {
	margin: 0;
	font-size: 1.35rem;
	line-height: 0.92;
	letter-spacing: 0.02em;
	max-width: 6.2em;
	font-style: italic;
}
.ifix-brand__title a { color: #fff; text-decoration: none; }
.ifix-brand:has(.wp-block-site-logo img) .ifix-brand__title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.ifix-masthead__phone { flex: none; align-items: center; color: #fff; }
.ifix-masthead__phone-icon {
	width: 2.4rem;
	height: 2.4rem;
	padding: 0.5rem;
	border-radius: 50%;
	background: var(--ifix-red);
}
.ifix-masthead__phone-link .wp-block-button__link { font-size: 1.6rem; color: #fff; }

/* Navigation */
.ifix-nav { flex: 1; justify-content: flex-end; }
.ifix-nav .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.5rem;
	color: #fff;
	text-decoration: none;
}
.ifix-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.1rem;
	height: 3px;
	background: var(--ifix-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.2s ease;
}
.ifix-nav .wp-block-navigation-item__content:hover::after,
.ifix-nav .current-menu-item > .wp-block-navigation-item__content::after,
.ifix-nav .current-menu-ancestor > .wp-block-navigation-item__content::after { transform: scaleX(1); }

.ifix-nav .wp-block-navigation__submenu-container {
	min-width: 15.5rem !important;
	padding: 0.4rem 0 !important;
	background: var(--wp--preset--color--charcoal) !important;
	color: #fff !important;
	border: 0 !important;
	border-top: 3px solid var(--ifix-red) !important;
	box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.6);
}
.ifix-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.6rem 1.1rem !important;
	font-size: 0.95rem;
}
.ifix-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--graphite);
	color: var(--wp--preset--color--accent);
}
.ifix-nav .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--silver); }

/* Burger + overlay */
.ifix-nav .wp-block-navigation__responsive-container-open { color: #fff; }
.ifix-nav .wp-block-navigation__responsive-container-open svg { width: 2rem; height: 2rem; }
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--ifix-ink) !important;
	color: #fff !important;
	padding: calc(var(--ifix-admin-h) + 1.5rem) 1.5rem 2rem;
}
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.5rem;
	padding-block: 0.35rem;
}
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border-top: 0 !important;
	background: transparent !important;
	box-shadow: none;
	padding-left: 1rem !important;
}
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1.05rem;
	color: var(--wp--preset--color--silver);
	padding: 0.3rem 0 !important;
}

.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start !important;
	text-align: left;
}
.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: 1.5rem !important; }

/* Use the burger up to 1100px: six menu items + phone don't fit on a tablet. */
@media (min-width: 600px) and (max-width: 1099px) {
	.ifix-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ifix-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.ifix-nav .wp-block-navigation__responsive-container-close:not(.always-shown) { display: flex; }
	.ifix-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.5rem; }
}

@media (max-width: 1240px) {
	.ifix-masthead__phone-icon { display: none; }
	.ifix-masthead__phone-link .wp-block-button__link { font-size: 1.3rem; }
}
@media (max-width: 781px) {
	.ifix-topbar__sub,
	.wp-block-buttons.ifix-topbar__cta,
	.wp-block-group.ifix-masthead__phone { display: none; }
	.ifix-topbar__message { justify-content: center; width: 100%; }
	:root { --ifix-masthead-h: 4.25rem; }
	.ifix-brand { padding: 0.45rem 0.85rem 0.8rem; margin-bottom: -0.6rem; }
	.ifix-brand .wp-block-site-logo img { max-height: 2.8rem; }
	.ifix-brand__title { font-size: 1.1rem; }
}

@media (max-width: 600px) {
	:root { --ifix-topbar-h: 0px; }
	.wp-block-group.ifix-topbar { display: none; }
}

/* 6. Hero ------------------------------------------------------------------ */
.ifix-hero .wp-block-cover__inner-container { width: 100%; }
.ifix-hero__title { margin: 0; line-height: 0.9; letter-spacing: -0.005em; }
.ifix-hero__title mark {
	display: block;
	margin-bottom: 0.45em;
	font-size: max(0.28em, 1.05rem);
	letter-spacing: 0.16em;
	line-height: 1;
}
.ifix-hero__lead { margin-top: var(--wp--preset--spacing--30); font-weight: 600; letter-spacing: 0.01em; }
.ifix-hero__actions { margin-top: var(--wp--preset--spacing--40); gap: 0.75rem; }

@media (max-width: 781px) {
	.ifix-hero .wp-block-cover__background {
		background: linear-gradient(180deg, rgba(11, 11, 12, 0.55) 0%, rgba(11, 11, 12, 0.88) 55%, rgba(11, 11, 12, 0.95) 100%) !important;
	}
	.ifix-hero { min-height: 0 !important; }
	.ifix-hero__actions .wp-block-button { flex: 1 1 100%; }
	.ifix-hero__actions .wp-block-button__link { width: 100%; }
}

/* Trust strip */
.ifix-trust { padding-top: var(--wp--preset--spacing--40); border-top: 1px solid rgba(255, 255, 255, 0.16); }
.ifix-hero .ifix-trust { margin-top: var(--wp--preset--spacing--60); }
.ifix-facts .ifix-trust { border-top: 0; padding-top: 0; }
.ifix-trust__item { align-items: center; }
.ifix-trust__item p {
	margin: 0;
	color: var(--wp--preset--color--silver);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.25;
	text-transform: uppercase;
}
.ifix-trust__item strong {
	display: block;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	letter-spacing: 0.04em;
}
.ifix-trust__icon {
	width: 2.75rem;
	height: 2.75rem;
	padding: 0.55rem;
	border: 2px solid var(--wp--preset--color--accent);
	border-radius: 50%;
	color: var(--wp--preset--color--accent);
}

@media (max-width: 600px) {
	.wp-block-group.ifix-trust { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: 1.25rem; }
	.ifix-trust__item { flex-direction: column; align-items: flex-start !important; gap: 0.5rem !important; }
	.ifix-trust__icon { width: 2.25rem; height: 2.25rem; padding: 0.4rem; }
	.ifix-trust__item strong { font-size: 1rem; }
}

/* 7. Services grid + cards ------------------------------------------------- */
.ifix-services .wp-block-post-template { gap: var(--wp--preset--spacing--30); }
.ifix-services .wp-block-post { display: flex; }
.ifix-card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ifix-line);
	border-radius: var(--ifix-radius);
	color: var(--ifix-ink);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.ifix-card:hover,
.ifix-card:focus-within {
	transform: translateY(-4px);
	border-color: transparent;
	box-shadow: var(--wp--preset--shadow--lift);
}
.ifix-card__media { margin: 0; overflow: hidden; background: var(--wp--preset--color--graphite); }
.ifix-card__media img { display: block; width: 100%; transition: transform 0.4s ease; }
.ifix-card:hover .ifix-card__media img { transform: scale(1.05); }
.ifix-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.1rem 1.25rem 1.3rem;
	border-top: 3px solid var(--ifix-red);
}
.ifix-card__title { margin: 0; }
.ifix-card__title a { color: inherit; text-decoration: none; }
.ifix-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ifix-card__excerpt { color: var(--wp--preset--color--steel); }
.ifix-card__excerpt p { margin: 0; }
.ifix-card__body .ifix-card__more { margin-top: auto; padding-top: 0.9rem; color: var(--ifix-red); font-size: 0.95rem; }

@media (max-width: 600px) {
	.ifix-services .wp-block-post-template { gap: 0.75rem; }
	.ifix-services .ifix-card { flex-direction: row; }
	.ifix-services .ifix-card__media { position: relative; flex: 0 0 36%; min-height: 6.5rem; }
	.ifix-services .ifix-card__media img { position: absolute; inset: 0; height: 100% !important; aspect-ratio: auto !important; }
	.ifix-services .ifix-card__body { padding: 0.8rem 0.9rem; border-top: 0; border-left: 3px solid var(--ifix-red); }
	.ifix-services .ifix-card__title { font-size: 1.1rem !important; }
	.ifix-services .ifix-card__excerpt { font-size: 0.875rem; line-height: 1.4; }
	.ifix-services .ifix-card__more { display: none; }
	.ifix-card:hover, .ifix-card:focus-within { transform: none; }
}

/* 8. Why choose (dark, stats) --------------------------------------------- */
.ifix-why .wp-block-cover__inner-container { width: 100%; }
.wp-block-group.ifix-stats { align-items: stretch; gap: var(--wp--preset--spacing--20); }
.ifix-stat {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 1rem;
	align-content: center;
	padding: 1.25rem 1.35rem;
	background: rgba(21, 22, 24, 0.82);
	border-left: 3px solid var(--ifix-red);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.ifix-stat > * { margin: 0 !important; }
.ifix-stat__icon { grid-row: span 2; width: 2.5rem; color: var(--wp--preset--color--accent); }
.ifix-stat__number {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.75rem);
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--accent);
	text-transform: uppercase;
}
.ifix-stat__label {
	margin-top: 0.25rem !important;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
@media (max-width: 600px) {
	.wp-block-group.ifix-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ifix-stat { grid-template-columns: 1fr; padding: 1rem; }
	.ifix-stat__icon { grid-row: auto; width: 1.75rem; margin-bottom: 0.4rem !important; }
	.ifix-stat__number { font-size: 1.75rem; }
	.ifix-stat__label { font-size: 0.72rem; }
}
@media (max-width: 781px) {
	.ifix-why .wp-block-cover__background { background: rgba(11, 11, 12, 0.9) !important; }
}

/* 9. Locations ------------------------------------------------------------- */
.ifix-locations__pin { width: 3rem; color: var(--ifix-red); margin-bottom: 0.75rem; }
.ifix-locations__intro .wp-block-heading { margin-top: 0; }
.ifix-location {
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ifix-line);
	border-radius: var(--ifix-radius);
}
.ifix-location__media { margin: 0; }
.ifix-location__media img { display: block; width: 100%; }
.ifix-location__body { padding: 1.25rem 1.4rem 1.4rem; border-top: 3px solid var(--ifix-red); }
.ifix-location__body .wp-block-heading { margin: 0; }
.ifix-location__address { color: var(--wp--preset--color--steel); line-height: 1.45; }
.ifix-location__actions { gap: 1.25rem; align-items: center; margin-top: 0.75rem !important; }
.ifix-location__phone .wp-block-button__link {
	font-size: 1.35rem;
	color: var(--ifix-ink);
}
.ifix-location__phone .wp-block-button__link::before {
	content: "";
	display: inline-block;
	width: 0.85em;
	height: 0.85em;
	margin-right: 0.4em;
	vertical-align: -0.08em;
	background: var(--ifix-red);
	-webkit-mask: var(--ifix-icon-phone) center / contain no-repeat;
	mask: var(--ifix-icon-phone) center / contain no-repeat;
}

/* 10. Reviews -------------------------------------------------------------- */
.ifix-reviews__title::after {
	content: "★★★★★";
	display: inline-block;
	margin-left: 0.4em;
	color: var(--ifix-gold);
	font-size: 0.62em;
	letter-spacing: 0.12em;
	vertical-align: 0.18em;
}
.ifix-review {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.6rem 1.6rem 1.4rem;
	background: var(--wp--preset--color--graphite);
	border-top: 3px solid var(--ifix-red);
	border-radius: var(--ifix-radius);
}
.ifix-review__stars { margin: 0; font-size: 0; line-height: 1; }
.ifix-review__stars::before { content: "★★★★★"; font-size: 1.15rem; letter-spacing: 0.14em; color: var(--ifix-gold); }
.ifix-review__text { flex: 1; font-size: 1.0625rem; line-height: 1.55; }
.ifix-review__name {
	margin-top: 0.75rem !important;
	color: var(--wp--preset--color--silver);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.ifix-review__name::before { content: "— "; }
.ifix-reviews__more { margin-top: var(--wp--preset--spacing--40) !important; }

/* 11. CTA band ------------------------------------------------------------- */
.ifix-cta-band__inner { row-gap: var(--wp--preset--spacing--30); }
.ifix-cta-band__pitch { align-items: center; }
.ifix-cta-band__icon {
	width: 3.75rem;
	height: 3.75rem;
	padding: 0.8rem;
	border: 2px solid rgba(255, 255, 255, 0.75);
	border-radius: 50%;
}
.ifix-cta-band__title { margin: 0; line-height: 1.02; }
.ifix-cta-band__call {
	padding-inline: var(--wp--preset--spacing--40);
	border-inline: 1px solid rgba(255, 255, 255, 0.35);
	text-align: center;
}
.ifix-cta-band__label {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ifix-cta-band__number .wp-block-button__link {
	font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem);
	line-height: 1.05;
}
@media (max-width: 781px) {
	.ifix-cta-band__inner { flex-direction: column; text-align: center; }
	.ifix-cta-band__pitch { flex-direction: column; }
	.ifix-cta-band__call { border: 0; padding: 0; }
	.ifix-cta-band__actions { justify-content: center; }
}

/* 12. Footer --------------------------------------------------------------- */
.ifix-footer { font-size: var(--wp--preset--font-size--small); }
.ifix-footer a { color: var(--wp--preset--color--silver); text-decoration: none; }
.ifix-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 0.2em; }
.ifix-footer__heading {
	margin-bottom: 1rem;
	color: #fff;
	letter-spacing: 0.1em;
}
.ifix-footer__heading::after {
	content: "";
	display: block;
	width: 2rem;
	height: 3px;
	margin-top: 0.6rem;
	background: var(--ifix-red);
}
.ifix-footer .wp-block-page-list,
.ifix-footer__services .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ifix-footer .wp-block-page-list li,
.ifix-footer__services .wp-block-post { margin: 0 0 0.5rem; }
.ifix-footer .wp-block-page-list .wp-block-navigation__submenu-container,
.ifix-footer .wp-block-page-list ul { list-style: none; padding-left: 0.85rem; margin-top: 0.5rem; }
.ifix-footer__services .wp-block-post-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: inherit;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.4;
	text-transform: none;
}
.ifix-footer__contact li:first-child a { color: #fff; font-family: var(--wp--preset--font-family--heading); font-size: 1.4rem; font-weight: 700; }
.ifix-footer__areas { color: var(--wp--preset--color--silver); }
.ifix-brand--footer { width: fit-content; margin-bottom: 0.25rem; clip-path: none; border-radius: var(--ifix-radius); }
.ifix-footer .ifix-brand__title a { color: #fff; text-decoration: none; }
.ifix-footer__social { gap: 0.5rem; }
.ifix-footer__social .wp-social-link { background: var(--wp--preset--color--graphite) !important; border-radius: 50%; }
.ifix-footer__social .wp-social-link a { padding: 0.55rem; }
.ifix-footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); color: #7e848c; }
.ifix-footer__bottom p { margin: 0; }

/* Sticky call bar on phones: the most important action is one thumb away. */
.wp-block-group.ifix-mobile-bar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 90;
	display: none;
	padding: 0.55rem 0.75rem calc(0.55rem + env(safe-area-inset-bottom));
	background: rgba(11, 11, 12, 0.97);
	box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.3);
}
.ifix-mobile-bar__buttons {
	display: grid !important;
	flex: 1;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}
.ifix-mobile-bar .wp-block-button__link { width: 100%; padding: 0.85em 0.5em; font-size: 1.05rem; }
.ifix-mobile-bar .is-style-dark .wp-block-button__link { background: var(--wp--preset--color--graphite); border-color: var(--wp--preset--color--graphite); }
@media (max-width: 781px) {
	.wp-block-group.ifix-mobile-bar { display: flex; }
	body { padding-bottom: calc(4.4rem + env(safe-area-inset-bottom)); }
}

/* 13. Inner page banner ---------------------------------------------------- */
.ifix-banner { background-color: var(--ifix-ink); }
.ifix-banner .wp-block-cover__inner-container { width: 100%; }
.ifix-banner__inner > * { margin-block: 0; }
.ifix-banner__title { margin: 0.4rem 0 0 !important; }
.ifix-banner__title::after {
	content: "";
	display: block;
	width: 4rem;
	height: 4px;
	margin-top: 1rem;
	background: var(--ifix-red);
}
.ifix-banner__lead { color: rgba(255, 255, 255, 0.86); margin-top: 1rem !important; }
.ifix-banner__lead p { margin: 0; }
.ifix-banner__meta { color: var(--wp--preset--color--silver); margin-top: 0.75rem !important; }
.ifix-banner__actions { margin-top: var(--wp--preset--spacing--40) !important; gap: 0.75rem; }

.ifix-breadcrumbs {
	color: var(--wp--preset--color--silver);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.ifix-breadcrumbs a { color: inherit; text-decoration: none; }
.ifix-breadcrumbs a:hover { color: #fff; text-decoration: underline; }
.ifix-breadcrumbs [aria-current] { color: var(--wp--preset--color--accent); }

/* 14. Service template ----------------------------------------------------- */
.wp-block-ifix-section-nav {
	position: sticky;
	top: calc(var(--ifix-admin-h) + var(--ifix-masthead-h));
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid var(--ifix-line);
	box-shadow: 0 10px 18px -16px rgba(0, 0, 0, 0.5);
}
.ifix-section-nav__inner {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--40);
}
.ifix-section-nav__list {
	display: flex;
	gap: 1.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
	white-space: nowrap;
}
.ifix-section-nav__list::-webkit-scrollbar { display: none; }
.ifix-section-nav__list a {
	display: block;
	padding: 0.95rem 0 0.8rem;
	border-bottom: 3px solid transparent;
	color: var(--ifix-ink);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.98rem;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-decoration: none;
	text-transform: uppercase;
}
.ifix-section-nav__list a:hover,
.ifix-section-nav__list a.is-active { border-bottom-color: var(--ifix-red); color: var(--ifix-red); }
.ifix-section-nav__list .is-quote { margin-left: auto; }
.ifix-section-nav__list .is-quote a {
	margin-block: 0.45rem;
	padding: 0.4rem 0.9rem;
	border: 0;
	border-radius: 2px;
	background: var(--ifix-red);
	color: #fff;
}
.ifix-section-nav__list .is-quote a:hover { background: var(--ifix-red-dark); color: #fff; }
.wp-block-ifix-section-nav.is-editor-preview .ifix-section-nav__hint { margin: 0; padding: 1rem 0; color: var(--wp--preset--color--steel); font-size: 0.9rem; }

.ifix-service-content > h2,
.ifix-service-content [id],
#quote { scroll-margin-top: calc(var(--ifix-sticky-offset) + 0.75rem); }

.ifix-service-content > * { margin-block: 0; }
.ifix-service-content > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.ifix-service-content > h2 {
	font-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.4rem);
	margin-block-start: var(--wp--preset--spacing--60);
}
.ifix-service-content > h2:not(:first-child) {
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--ifix-line);
}
.ifix-service-content > h2:first-child { margin-top: 0; }
.ifix-service-content > h3 { margin-block-start: var(--wp--preset--spacing--40); }
.ifix-service-content > .wp-block-image { margin-block: var(--wp--preset--spacing--40); }

.ifix-service-aside > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.ifix-aside-contact { border-top: 4px solid var(--ifix-red); border-radius: var(--ifix-radius); }
.ifix-aside-contact > * { margin-block: 0; }
.ifix-aside-contact > * + * { margin-block-start: var(--wp--preset--spacing--20); }
.ifix-big-phone .wp-block-button__link {
	font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.4rem);
	color: #fff;
	line-height: 1;
}
.ifix-aside-contact .is-style-checklist { margin-top: var(--wp--preset--spacing--30); }
.ifix-aside-contact .is-style-checklist > li { margin-block: 0.4em; }

.ifix-quote-card > * { margin-block: 0; }
.ifix-quote-card > * + * { margin-block-start: var(--wp--preset--spacing--20); }
.ifix-quote-card > .wp-block-heading { margin: 0; }
.ifix-quote-card .wp-block-ifix-quote-form { margin-top: var(--wp--preset--spacing--30); }

@media (min-width: 782px) {
	.ifix-service-aside .ifix-quote-card {
		position: sticky;
		top: calc(var(--ifix-sticky-offset) + 0.75rem);
		max-height: calc(100vh - var(--ifix-sticky-offset) - 1.5rem);
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
	}
}

/* Icon feature cards */
.ifix-features { margin-block-start: var(--wp--preset--spacing--30) !important; }
.ifix-feature {
	padding: 1.25rem 1.3rem 1.3rem;
	background: var(--wp--preset--color--mist);
	border-top: 3px solid var(--ifix-red);
	border-radius: var(--ifix-radius);
}
.ifix-feature > * { margin-block: 0; }
.ifix-feature__icon { width: 2.25rem; color: var(--ifix-red); }
.ifix-feature .wp-block-heading { margin-top: 0.75rem; }
.ifix-feature p { margin-top: 0.35rem; color: var(--wp--preset--color--steel); }

/* Numbered steps (block style "Numbered steps" on a Group) */
.is-style-process { counter-reset: ifix-step; }
.is-style-process > * {
	position: relative;
	counter-increment: ifix-step;
	padding-left: 4rem;
	min-height: 2.75rem;
}
.is-style-process > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.is-style-process > *::before {
	content: counter(ifix-step);
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--ifix-red);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 700;
}
.is-style-process > :not(:last-child)::after {
	content: "";
	position: absolute;
	top: 3.1rem;
	bottom: calc(-1 * var(--wp--preset--spacing--30) + 0.35rem);
	left: calc(1.375rem - 1px);
	width: 2px;
	background: var(--ifix-line);
}
.is-style-process .wp-block-heading { margin: 0.4rem 0 0.25rem; }
.is-style-process p { margin: 0; color: var(--wp--preset--color--steel); }

/* FAQ (core Accordion) */
.wp-block-accordion { border-top: 1px solid var(--ifix-line); }
.wp-block-accordion-item { border-bottom: 1px solid var(--ifix-line); }
.wp-block-accordion-heading {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.35;
	text-transform: none;
}
.wp-block-accordion-heading__toggle { padding-block: 1.05rem; gap: 1rem; }
.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: none; color: var(--ifix-red); }
.wp-block-accordion-heading__toggle-icon {
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--mist);
	color: var(--ifix-red);
	font-size: 1.2rem;
	font-weight: 700;
	transition: transform 0.2s ease, background-color 0.2s ease;
}
.wp-block-accordion-panel > :first-child { margin-top: 0; }
.wp-block-accordion-panel > :last-child { margin-bottom: 1.25rem; }
.wp-block-accordion-panel p { color: var(--wp--preset--color--steel); }

/* 15. Related services ----------------------------------------------------- */
.ifix-related > .is-style-eyebrow,
.ifix-related > .wp-block-heading { text-align: center; }
.ifix-related > .wp-block-heading { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.2rem); }
.ifix-services--compact { margin-top: var(--wp--preset--spacing--50) !important; }
.ifix-services--compact .ifix-card__body { padding: 1rem 1.1rem 1.15rem; }

/* 16. Contact -------------------------------------------------------------- */
.ifix-contact__line { align-items: center; }
.ifix-contact__line p { margin: 0; }
.ifix-contact__icon {
	width: 2.6rem;
	height: 2.6rem;
	padding: 0.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--mist);
	color: var(--ifix-red);
}
.ifix-contact__phone {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem);
	font-weight: 700;
	line-height: 1;
}
.ifix-contact__phone a { color: var(--ifix-ink); text-decoration: none; }
.ifix-contact__phone a:hover { color: var(--ifix-red); }
.ifix-contact__lines .wp-block-buttons { margin: 0; }
.ifix-contact__workshop-name {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ifix-contact__workshops p { margin: 0; }
.ifix-contact__workshops p + p { color: var(--wp--preset--color--steel); }

/* 17. Gallery -------------------------------------------------------------- */
.ifix-gallery { gap: var(--wp--preset--spacing--20) !important; }
.ifix-gallery .wp-block-image img { border-radius: 3px; transition: transform 0.3s ease, filter 0.3s ease; }
.ifix-gallery .wp-block-image:hover img { filter: brightness(1.06); }

/* 18. Sections ------------------------------------------------------------- */
.ifix-section .wp-block-columns { margin-bottom: 0; }
.ifix-why .wp-block-heading,
.ifix-reviews .wp-block-heading { color: #fff; }
.ifix-post-row { border-bottom: 1px solid var(--ifix-line); }
.ifix-post-row + .ifix-post-row { margin-top: var(--wp--preset--spacing--40); }

/* 19. Editor --------------------------------------------------------------- */
.editor-styles-wrapper .ifix-site-header { position: relative; top: auto; }
.editor-styles-wrapper .wp-block-group.ifix-mobile-bar { position: static; display: flex; margin-top: 1rem; }
.editor-styles-wrapper .wp-block-ifix-section-nav { position: relative; top: auto; }
.editor-styles-wrapper .ifix-service-aside .ifix-quote-card { position: static; max-height: none; overflow: visible; }
.editor-styles-wrapper .ifix-card__title a::after { display: none; }

/* 20. Motion --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
	.ifix-card:hover,
	.ifix-card:focus-within,
	.ifix-card:hover .ifix-card__media img { transform: none; }
}
