/* Homepage chapters on the shared 4 / 8 / 12-column master grid.
 * Header, hero and mobile-navigation rules live in their established stylesheets. */
.matrix-home > .matrix-v1 { margin-block: 0; padding-inline: 0; }
.matrix-v1 { color: var(--matrix-text); }
.matrix-v1 .matrix-grid > * { margin-block-start: 0; }
.matrix-v1 :where(p, h2, h3, figure, ul) { margin-block: 0; }
.matrix-v1 .matrix-v1__eyebrow {
 color: var(--matrix-green);
 font-size: var(--matrix-type-eyebrow);
 font-weight: 600;
 letter-spacing: var(--wp--custom--type--label-tracking);
 text-transform: uppercase;
 margin-block-end: var(--matrix-space-16);
}
.matrix-v1 .matrix-v1__heading {
 font-size: var(--matrix-type-section);
 font-weight: 600;
 line-height: var(--matrix-leading-heading);
 letter-spacing: -.04em;
 text-wrap: balance;
}
.matrix-v1 .matrix-v1__body {
 max-inline-size: var(--matrix-measure-body);
 margin-block-start: var(--matrix-space-24);
 color: var(--matrix-text-muted);
 font-size: var(--matrix-type-lead);
 line-height: var(--matrix-leading-body);
 text-wrap: pretty;
}
.matrix-v1 h3 { font-size: var(--matrix-type-component); font-weight: 600; line-height: 1.25; letter-spacing: -.025em; }
.matrix-v1__number { color: var(--matrix-green); font-size: var(--matrix-type-eyebrow); letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.matrix-v1 .matrix-v1__text-link { margin-block-start: var(--matrix-space-24); }
.matrix-v1__text-link a {
 display: inline-flex;
 align-items: center;
 gap: var(--matrix-space-16);
 min-block-size: 44px;
 color: inherit;
 font-size: var(--matrix-type-body);
 font-weight: 500;
 text-decoration: underline;
 text-underline-offset: .4em;
 text-decoration-color: var(--matrix-green);
}
.matrix-v1__text-link a:hover { color: var(--matrix-green); }
.matrix-v1__text-link [aria-hidden] { text-decoration: none; }
.matrix-v1 .matrix-v1__image { margin: 0; overflow: hidden; background: var(--matrix-bg-soft); }
.matrix-v1__image img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.matrix-v1 .matrix-v1__actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--matrix-space-16) var(--matrix-space-32); }
.matrix-v1__actions > *, .matrix-v1 .matrix-v1__actions .matrix-v1__text-link { margin: 0; }
.matrix-v1__eyebrow::before { content: ""; display: inline-block; width: 20px; height: 2px; margin: 0 10px 4px 0; background: var(--matrix-accent); }
/* 04 — Editorial scenarios. */
.matrix-scenarios__list { border-block-start: 1px solid var(--matrix-border); }
.matrix-scenarios .matrix-scenarios__row {
 display: grid;
 grid-template-columns: 28px minmax(0, 1fr);
 gap: var(--matrix-space-16);
 padding-block: var(--matrix-space-24);
 margin: 0;
 border-block-end: 1px solid var(--matrix-border);
}
.matrix-scenarios__number { padding-block-start: var(--matrix-space-4); }
.matrix-scenarios .matrix-scenarios__text { margin: 0; }
.matrix-scenarios__text p { margin-block-start: var(--matrix-space-8); color: var(--matrix-text-muted); font-size: var(--matrix-type-body); line-height: var(--matrix-leading-body); max-inline-size: var(--matrix-measure-body); }
/* 06 — Capabilities: one editorial statement and an offset numbered register. */
.matrix-why { background: var(--matrix-bg-tint); }
.matrix-why > .matrix-grid { align-items: start; }
.matrix-why .matrix-v1__intro { border-inline-start: 3px solid var(--matrix-green); padding-inline-start: var(--matrix-space-24); }
.matrix-why .matrix-why__register { margin: var(--matrix-space-16) 0 0; row-gap: var(--matrix-space-24); }
.matrix-why .matrix-why__item { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: var(--matrix-space-8) var(--matrix-space-16); align-content: start; }
.matrix-why .matrix-why__item > * { margin: 0; }
.matrix-why__item .matrix-v1__number { grid-row: 1 / 3; font-size: 1.375rem; letter-spacing: -.04em; line-height: 1.25; }
.matrix-why__item h3 { align-self: center; font-size: var(--matrix-type-compact-heading); }
.matrix-why__item > p:last-child { grid-column: 2; max-inline-size: 42ch; font-size: var(--matrix-type-body); line-height: var(--matrix-leading-body); color: var(--matrix-text-muted); }
/* 07 — A compact typographic progression, with no cards or decorative UI. */
.matrix-process { --matrix-section-space: var(--matrix-section-compact); }
.matrix-process .matrix-process__steps { margin-block-start: var(--matrix-space-16); row-gap: var(--matrix-space-24); }
.matrix-process__step { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: var(--matrix-space-16); border-block-start: 1px solid var(--matrix-border); padding-block-start: var(--matrix-space-24); }
.matrix-process .matrix-process__number { white-space: nowrap; font-variant-numeric: tabular-nums; font-size: 2.5rem; font-weight: 400; line-height: 1; letter-spacing: -.06em; color: var(--matrix-green); }
.matrix-process .matrix-process__copy { margin: 0; }
.matrix-process__copy h3 { font-size: var(--matrix-type-compact-heading); }
.matrix-process__copy p { margin-block-start: var(--matrix-space-12); max-inline-size: 34ch; font-size: var(--matrix-type-body); line-height: var(--matrix-leading-body); color: var(--matrix-text-muted); }
/* 08 — A hardware study paired with concise choices for the door in front of you. */
.matrix-options { background: var(--matrix-bg-soft); }
.matrix-options .matrix-options__photography, .matrix-options .matrix-options__list { margin-block-start: var(--matrix-space-16); }
.matrix-options .matrix-options__image { aspect-ratio: 1.3; border-radius: var(--matrix-radius-small); }
.matrix-options__image img { object-position: 67% center; }
.matrix-options .matrix-options__caption { margin-block-start: var(--matrix-space-12); max-inline-size: 40ch; color: var(--matrix-text-muted); font-size: var(--matrix-type-meta); line-height: var(--matrix-leading-body); }
.matrix-options__list { border-block-start: 1px solid var(--matrix-border-strong); counter-reset: options; }
.matrix-options .matrix-options__item { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 6px var(--matrix-space-12); padding-block: var(--matrix-space-20); border-block-end: 1px solid var(--matrix-border-strong); margin: 0; }
.matrix-options__item::before { counter-increment: options; content: counter(options, decimal-leading-zero); grid-row: 1 / 3; padding-block-start: 3px; font-size: .6875rem; color: var(--matrix-green); font-variant-numeric: tabular-nums; }
.matrix-options__item h3 { font-size: var(--matrix-type-compact-heading); }
.matrix-options__item p { grid-column: 2; margin: 0; max-inline-size: 40ch; font-size: var(--matrix-type-body); line-height: 1.55; color: var(--matrix-text-muted); }
/* 09 — A compact hardware-led prompt for a current access concern. */
.matrix-urgent { position: relative; isolation: isolate; overflow: hidden; background: var(--matrix-bg-dark); color: var(--matrix-text-on-dark); }
.matrix-urgent .matrix-urgent__photo { position: absolute; inset: 0; z-index: -2; }
.matrix-urgent__photo img { object-position: 68% 55%; }
.matrix-urgent::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(12 27 39 / 97%) 0%, rgb(12 27 39 / 91%) 43%, rgb(12 27 39 / 42%) 100%); }
.matrix-urgent .matrix-v1__eyebrow, .matrix-final .matrix-v1__eyebrow { color: var(--matrix-on-dark-accent); }
.matrix-urgent .matrix-v1__body, .matrix-final .matrix-v1__body { color: var(--matrix-text-on-dark-muted); }
.matrix-urgent .matrix-urgent__actions { margin-block-start: var(--matrix-space-8); }
.matrix-urgent .matrix-v1__text-link a, .matrix-final .matrix-v1__text-link a { text-decoration-color: var(--matrix-on-dark-accent); }
.matrix-urgent .matrix-v1__text-link a:hover, .matrix-final .matrix-v1__text-link a:hover { color: var(--matrix-on-dark-accent); }
/* 10 — Official Toronto geometry, with a normal HTML service-area register. */
.matrix-area { background: var(--matrix-bg); }
.matrix-area > .matrix-grid { align-items: center; }
.matrix-area .matrix-area__visual { margin: 0; }
.matrix-area .matrix-area__graphic { margin: 0; background: var(--matrix-bg-soft); overflow: hidden; border-radius: var(--matrix-radius-small); }
.matrix-area__graphic img { display: block; width: 100%; height: auto; }
.matrix-area .matrix-area__copy { margin: 0; }
.matrix-area .matrix-area__locations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 var(--matrix-space-16); margin-block-start: var(--matrix-space-24); padding: 0; list-style: none; }
.matrix-area__locations li { padding-block: var(--matrix-space-12); font-size: var(--matrix-type-body); line-height: 1.4; }
.matrix-area__locations li::before { content: ''; display: inline-block; width: 4px; height: 4px; margin: 0 var(--matrix-space-8) 3px 0; background: var(--matrix-green); }
.matrix-area .matrix-area__note { margin-block-start: var(--matrix-space-20); font-size: var(--matrix-type-small); color: var(--matrix-text-muted); }
.matrix-area .matrix-area__attribution { margin-block-start: var(--matrix-space-8); font-size: .6875rem; line-height: 1.5; color: var(--matrix-text-muted); }
.matrix-area__attribution a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-underline-offset: .2em; }
/* Customer feedback: an approved aggregate, then complete verified reviews when supplied. */
.matrix-reviews { background: var(--matrix-surface); border-block: 1px solid var(--matrix-border); }
.matrix-reviews > .matrix-container { align-items: center; row-gap: var(--matrix-space-32); }
.matrix-reviews .matrix-v1__intro .matrix-v1__body { max-inline-size: 35ch; }
.matrix-reviews__content { min-inline-size: 0; }
.matrix-reviews__aggregate { padding-block: var(--matrix-space-16); }
.matrix-reviews__brand { display: flex; align-items: center; gap: var(--matrix-space-16); font-size: var(--matrix-type-body); line-height: 1.55; font-weight: 500; }
.matrix-reviews__brand-note { font-size: var(--matrix-type-eyebrow); font-weight: 400; color: var(--matrix-text-muted); }
.matrix-reviews__google { position: relative; display: block; flex: 0 0 36px; height: 36px; }
.matrix-reviews__google img { position: absolute; width: 108px; max-width: none; height: 108px; left: -36px; top: -36px; }
.matrix-reviews__score { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: end; column-gap: clamp(var(--matrix-space-20), 4vw, var(--matrix-space-48)); row-gap: 0; margin-block-start: var(--matrix-space-24); }
.matrix-reviews__rating { display: block; color: var(--matrix-green); font-size: clamp(5.5rem, 10.5vw, 9rem); font-weight: 500; line-height: .86; letter-spacing: -.075em; font-variant-numeric: lining-nums; }
.matrix-reviews__score-detail { padding-block-end: 3px; }
.matrix-reviews__stars { display: block; width: 108px; height: auto; color: var(--matrix-green); }
.matrix-reviews .matrix-reviews__score-detail p { margin: var(--matrix-space-12) 0 0; font-size: var(--matrix-type-meta); line-height: 1.5; white-space: nowrap; }
.matrix-reviews__verification { grid-column: 2; display: inline-flex; align-items: center; justify-self: start; gap: var(--matrix-space-8); min-block-size: 44px; max-inline-size: 100%; box-sizing: border-box; color: var(--matrix-text); font-size: .9375rem; font-weight: 600; line-height: 1.4; text-decoration: none; }
.matrix-reviews__verification > span:first-child { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.matrix-reviews__external-arrow { flex: 0 0 auto; }
.matrix-reviews__verification:is(:hover, :focus-visible) { color: var(--matrix-green); }
@media (prefers-reduced-motion: no-preference) {
 .matrix-reviews__verification { transition: color var(--matrix-duration-standard) var(--matrix-ease); }
 .matrix-reviews__external-arrow { transition: transform var(--matrix-duration-standard) var(--matrix-ease); }
 .matrix-reviews__verification:is(:hover, :focus-visible) .matrix-reviews__external-arrow { transform: translateX(3px); }
}
.matrix-reviews__quotes { display: grid; gap: var(--matrix-space-24); margin-block-start: var(--matrix-space-48); }
.matrix-reviews .matrix-reviews__quote { margin: 0; padding-block-start: var(--matrix-space-24); border-block-start: 1px solid var(--matrix-border); }
.matrix-reviews__quote blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
.matrix-reviews .matrix-reviews__quote blockquote p { font-size: 1.125rem; line-height: var(--matrix-leading-body); letter-spacing: -.015em; }
.matrix-reviews .matrix-reviews__quote--featured blockquote p { font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.45; }
.matrix-reviews__quote figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 var(--matrix-space-16); margin-block-start: var(--matrix-space-16); font-size: var(--matrix-type-meta); }
.matrix-reviews__reviewer { font-weight: 600; }
.matrix-reviews__quote figcaption a { display: inline-flex; align-items: center; min-block-size: 44px; gap: var(--matrix-space-8); color: var(--matrix-green); text-underline-offset: .25em; }
@media (min-width: 768px) {
 .matrix-reviews > .matrix-container > .matrix-v1__intro { --matrix-span-tablet: 4; }
 .matrix-reviews__content { --matrix-span-tablet: 4; }
 .matrix-reviews__aggregate { padding-inline-start: var(--matrix-space-24); border-inline-start: 1px solid var(--matrix-border); }
 .matrix-reviews__score { column-gap: var(--matrix-space-24); }
 .matrix-reviews__rating { font-size: clamp(5rem, 9.7vw, 8rem); }
 .matrix-reviews__stars { width: 94px; }
}
@media (min-width: 1200px) {
 .matrix-reviews > .matrix-container > .matrix-v1__intro { --matrix-span-desktop: 5; }
 .matrix-reviews__content { --matrix-start-desktop: 6; --matrix-span-desktop: 7; }
 .matrix-reviews__aggregate { padding-inline-start: clamp(var(--matrix-space-48), 5vw, var(--matrix-space-80)); }
 .matrix-reviews__score { column-gap: var(--matrix-space-48); }
 .matrix-reviews__rating { font-size: 9rem; }
 .matrix-reviews__stars { width: 120px; }
 .matrix-reviews .matrix-reviews__score-detail p { font-size: var(--matrix-type-body); }
 .matrix-reviews__quotes { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
 .matrix-reviews__quote--featured { grid-column: 1 / -1; }
}

/* Native Details styling and motion are shared in design-system.css. */
/* 13 — Typographic finale; no second hero photograph. */
.matrix-final { --matrix-section-space: var(--matrix-section-compact); background: var(--matrix-bg-dark); color: var(--matrix-text-on-dark); }
.matrix-final > .matrix-container > .matrix-v1__intro { padding-inline-start: var(--matrix-space-24); border-inline-start: 3px solid var(--matrix-accent); }
.matrix-final .matrix-v1__heading { font-size: var(--matrix-type-editorial); }
.matrix-final .matrix-v1__body { font-size: var(--matrix-type-body); margin-block-start: var(--matrix-space-16); }
.matrix-final .matrix-final__actions { margin-block-start: var(--matrix-space-8); }
/* 14 — Full service footer on the same grid. */
body.home .wp-site-blocks > footer.wp-block-template-part { margin-block-start: 0; }
.matrix-footer { margin-block-start: 0; padding-inline: 0; --matrix-section-space: var(--matrix-section-compact); background: var(--matrix-bg); color: var(--matrix-text-muted); border-block-start: 1px solid var(--matrix-border); }
.matrix-footer :where(p, h2, ul) { margin: 0; }
.matrix-footer__logo { display: inline-block; padding: 0; }
.matrix-footer__logo a { display: flex; align-items: center; min-height: 44px; }
.matrix-footer__logo img { display: block; width: 232px; max-width: 100%; height: auto; }
.matrix-footer__brand p { max-inline-size: var(--matrix-measure-small); margin-block-start: var(--matrix-space-12); font-size: var(--matrix-type-small); line-height: var(--matrix-leading-body); }
.matrix-footer__brand p + p { margin-block-start: var(--matrix-space-12); }
.matrix-footer .matrix-footer__column { margin-block-start: var(--matrix-space-16); }
.matrix-footer__column h2 { margin-block-end: var(--matrix-space-12); color: var(--matrix-green); font-size: var(--matrix-type-eyebrow); font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.matrix-footer__links { list-style: none; padding: 0; }
.matrix-footer a { color: var(--matrix-text); }
.matrix-footer__links a, .matrix-footer__phone a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; text-decoration: none; font-size: var(--matrix-type-small); line-height: 1.5; }
.matrix-footer a:hover { color: var(--matrix-green); text-decoration: underline; }
.matrix-footer__phone a { font-size: 1.0625rem; font-variant-numeric: tabular-nums; }
.matrix-footer .matrix-v1__text-link { margin-block-start: var(--matrix-space-8); }
.matrix-footer .matrix-v1__text-link a { font-size: var(--matrix-type-small); text-decoration-color: var(--matrix-green); }
.matrix-footer .matrix-footer__bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--matrix-space-16) var(--matrix-space-24); border-block-start: 1px solid var(--matrix-border); padding-block-start: var(--matrix-space-24); margin-block-start: var(--matrix-space-40); }
.matrix-footer__bottom p { font-size: var(--matrix-type-eyebrow); }
.matrix-footer__bottom .matrix-footer__links { display: flex; flex-wrap: wrap; gap: var(--matrix-space-24); }
.matrix-footer__bottom a { font-size: var(--matrix-type-eyebrow); }
@media (max-width: 429px) {
 .matrix-v1__actions > .wp-block-buttons, .matrix-v1__call, .matrix-v1__call a { width: 100%; }
 .matrix-v1__actions { align-items: flex-start; }
}
@media (min-width: 768px) {
 .matrix-scenarios > .matrix-container > .matrix-v1__intro { --matrix-span-tablet: 3; }
 .matrix-scenarios__list { --matrix-span-tablet: 5; }
 .matrix-why > .matrix-container > .matrix-v1__intro { --matrix-span-tablet: 3; }
 .matrix-why__register { --matrix-span-tablet: 5; }
 .matrix-why .matrix-why__register { margin: 0; }
 .matrix-why__item { --matrix-span-tablet: 8; }
 .matrix-process__step { --matrix-span-tablet: 4; }
 .matrix-options__photography { --matrix-span-tablet: 4; }
 .matrix-options__list { --matrix-span-tablet: 4; }
 .matrix-options .matrix-options__image { aspect-ratio: 3 / 4; }
 .matrix-area__copy { --matrix-span-tablet: 8; }
 .matrix-area__visual { --matrix-span-tablet: 8; }
 .matrix-area .matrix-area__locations { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .matrix-footer__brand { --matrix-span-tablet: 8; }
 .matrix-footer__column { --matrix-span-tablet: 3; }
 .matrix-footer__column:last-child { --matrix-span-tablet: 2; }
}
@media (min-width: 1024px) {
 .matrix-area__visual { --matrix-start-tablet: 4; --matrix-span-tablet: 5; grid-row: 1; }
 .matrix-area__copy { --matrix-start-tablet: 1; --matrix-span-tablet: 3; grid-row: 1; }
 .matrix-area .matrix-area__locations { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 1200px) {
 .matrix-scenarios > .matrix-container > .matrix-v1__intro { --matrix-span-desktop: 5; padding-inline-end: var(--matrix-space-32); align-self: start; }
 .matrix-scenarios__list { --matrix-start-desktop: 7; --matrix-span-desktop: 6; }
 .matrix-why > .matrix-container > .matrix-v1__intro { --matrix-span-desktop: 5; }
 .matrix-why__register { --matrix-start-desktop: 7; --matrix-span-desktop: 6; }
 .matrix-why__item { --matrix-start-desktop: auto; --matrix-span-desktop: 12; }
 .matrix-why .matrix-why__item { grid-template-columns: 36px minmax(0,1fr); column-gap: var(--matrix-space-24); padding-block: var(--matrix-space-16); border-block-start: 1px solid var(--matrix-border); }
 .matrix-why__item .matrix-v1__number { grid-row: 1 / 3; }
 .matrix-why__item > p:last-child { grid-column: 2; }
 .matrix-process__step { position: relative; --matrix-span-desktop: 3; display: block; padding-block-start: var(--matrix-space-24); }
 .matrix-process .matrix-process__number { font-size: 3rem; }
 .matrix-process__step:not(:last-child)::after { content: "→"; position: absolute; inset: 30px 0 auto auto; color: var(--matrix-text-muted); font-size: 24px; font-weight: 400; }
 .matrix-process .matrix-process__copy { margin-block-start: var(--matrix-space-24); }
 .matrix-process__copy h3 { max-inline-size: 20ch; }
 .matrix-options__photography { --matrix-span-desktop: 6; }
 .matrix-options__list { --matrix-start-desktop: 8; --matrix-span-desktop: 5; }
 .matrix-options .matrix-options__image { aspect-ratio: 1.2; }
 .matrix-options__photography { align-self: center; }
 .matrix-options__list { align-self: center; }
 .matrix-urgent__copy { --matrix-span-desktop: 7; }
 .matrix-area__visual { --matrix-start-desktop: 6; --matrix-span-desktop: 7; }
 .matrix-area__copy { --matrix-start-desktop: 1; --matrix-span-desktop: 4; }
 .matrix-faq > .matrix-container > .matrix-v1__intro { --matrix-span-desktop: 4; }
 .matrix-faq__questions { --matrix-start-desktop: 6; --matrix-span-desktop: 7; }
 .matrix-final > .matrix-container > .matrix-v1__intro { --matrix-span-desktop: 8; }
 .matrix-final__actions { --matrix-start-desktop: 10; --matrix-span-desktop: 3; align-self: end; }
 .matrix-final .matrix-final__actions { margin-block: 0 var(--matrix-space-8); }
 .matrix-final .matrix-v1__actions { flex-direction: column; align-items: flex-start; gap: var(--matrix-space-16); }
 .matrix-footer__brand { --matrix-span-desktop: 4; }
 .matrix-footer__column { --matrix-span-desktop: 3; }
 .matrix-footer__column:nth-child(3) { --matrix-span-desktop: 2; }
 .matrix-footer__column:last-child { --matrix-span-desktop: 3; }
 .matrix-footer .matrix-footer__column { margin: 0; }
}
@media (prefers-reduced-motion: no-preference) {
 .matrix-v1__text-link [aria-hidden] { transition: transform var(--matrix-duration-standard) var(--matrix-ease); }
 .matrix-v1__text-link a:is(:hover,:focus-visible) [aria-hidden] { transform: translateX(3px); }
}

.matrix-footer__logo img { aspect-ratio: 3 / 1; max-block-size: 80px; object-fit: contain; object-position: left center; }
