:where([data-etch-element="section"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
:where([data-etch-element="container"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
  max-inline-size: var(--content-width, 1366px);
  align-self: center; margin-inline: auto;
}
:where([data-etch-element="flex-div"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
}
:where([data-etch-element="iframe"]) {
  inline-size: 100%;
  height: auto;
 aspect-ratio: 16/9;
}
.site-header {
  position: relative; z-index: 10; background: var(--base); padding-block: 0; /* ACSS pads <header>; live has none */ padding-inline: var(--gutter);
}
.site-header__inner {
  flex-direction: row; align-items: center; justify-content: space-between; gap: var(--space-m); padding-block: var(--space-m);
}
.site-header__brand {
  display: flex; align-items: center; flex-shrink: 0; gap: calc(var(--space-xs) / 2);
}
.site-header__logo-img {
  inline-size: 12em; /* acss-ok: live .fr-logo 12em */ block-size: auto; @media (width < 479px) { inline-size: 9em; /* acss-ok: live .fr-logo below 478px */ } @media (width < 361px) { inline-size: 7em; /* acss-ok: live .fr-logo below 360px */ }
}
.site-header__burger {
  display: none; padding: calc(var(--space-xs) / 2); color: var(--primary); @media (width < 992px) { display: block; }
}
.site-header__burger-icon {
  display: block; inline-size: var(--space-m); fill: currentColor; --empty-element-size: 0;
}
.site-header__actions {
  display: flex; align-items: center; gap: var(--space-l);
}
.site-header__nav {
  @media (width < 992px) { display: none; position: absolute; inset-inline: 0; inset-block-start: 100%; padding: var(--space-m) var(--gutter); background: var(--base); border-block-start: var(--divider-size, 1px) solid color-mix(in oklch, var(--white) 20%, transparent); .site-header[data-open] & { display: block; } }
}
.site-header__menu {
  display: flex; gap: var(--space-m); @media (width < 992px) { flex-direction: column; gap: var(--space-s); }
}
.site-header__link {
  color: var(--white); font-size: var(--text-m); font-weight: 700; text-decoration: none; &:hover, &[aria-current="page"] { color: var(--primary); }
}
.site-header__cta {
  flex-shrink: 0;
}
.cta-bar {
  background: var(--primary); padding-inline: var(--gutter);
}
.cta-bar__inner {
  flex-direction: row; align-items: center; justify-content: space-between; gap: var(--space-m); padding-block: var(--space-xs); @media (width < 768px) { flex-direction: column; text-align: center; padding-block: var(--space-xs) var(--space-s); }
}
.cta-bar__text {
  color: var(--base); font-size: var(--text-m); font-weight: 600;
}
.cta-bar__btn {
  flex-shrink: 0; &.btn--primary { --btn-background: var(--base); --btn-background-hover: var(--neutral-ultra-dark); --btn-text-color: var(--white); --btn-text-color-hover: var(--white); --btn-border-color: var(--base); --btn-border-color-hover: var(--neutral-ultra-dark); }
}
.reviews {
  padding-block-start: 0;
}
.reviews__inner {
  align-items: center; gap: var(--space-l); padding-block-start: var(--section-space-m); border-block-start: 1px solid color-mix(in oklch, var(--neutral-light) 40%, transparent); /* acss-ok: live divider neutral-light-trans-40 */
}
.reviews__title {
  font-size: var(--h2); color: var(--white); text-align: center;
}
.reviews__widget {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); /* acss-ok: live 1 summary : 3 cards */ gap: var(--space-l); inline-size: 100%; align-items: start; @media (width < 992px) { grid-template-columns: var(--grid-1); justify-items: center; }
}
.reviews__summary {
  display: flex; flex-direction: column; gap: calc(var(--space-xs) / 4); padding-inline-start: var(--space-s);
}
.reviews__verdict {
  color: var(--primary); font-size: var(--text-m); font-weight: 700;
}
.reviews__business {
  color: var(--primary); font-size: var(--text-s); font-weight: 700;
}
.reviews__score {
  display: flex; align-items: center; gap: calc(var(--space-xs) / 2);
}
.reviews__rating {
  color: #fb7900; /* acss-ok: Google review score orange */ font-size: var(--text-l); font-weight: 700;
}
.reviews__stars {
  color: var(--primary); font-size: var(--text-l); letter-spacing: 0.05em; /* acss-ok: star spacing */
}
.reviews__count {
  color: var(--white); font-size: var(--text-s);
}
.reviews__actions {
  display: flex; flex-wrap: wrap; gap: calc(var(--space-xs) / 2); padding-block-start: calc(var(--space-xs) / 2);
}
.reviews__btn {
  --btn-min-width: 0; --btn-font-weight: 700;
}
.review-list {
  display: flex; gap: var(--space-m); inline-size: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; &::-webkit-scrollbar { display: none; }
}
.review-card {
  flex: 0 0 calc((100% - 2 * var(--space-m)) / 3); scroll-snap-align: start; display: flex; flex-direction: column; gap: var(--space-xs); padding: var(--space-s); background: var(--neutral-ultra-light); border-radius: calc(var(--radius) / 2); color: var(--neutral-ultra-dark); @media (width < 992px) { flex-basis: 100%; }
}
.review-card__head {
  display: flex; align-items: center; gap: var(--space-xs);
}
.review-card__avatar {
  inline-size: 3.25rem; /* acss-ok: Google avatar size */ aspect-ratio: 1; border-radius: 50%; flex-shrink: 0;
}
.review-card__meta {
  display: flex; flex-direction: column;
}
.review-card__name {
  color: #154fc1; /* acss-ok: Google reviewer-name blue */ font-size: var(--text-s); font-weight: 700;
}
.review-card__stars {
  color: #fb7900; /* acss-ok: Google star orange */ font-size: var(--text-s); letter-spacing: 0.05em; /* acss-ok: star spacing */
}
.review-card__text {
  font-size: var(--text-s); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.review-card__date {
  margin-block-start: auto; font-size: var(--text-xs); color: var(--neutral-semi-dark);
}
.reviews__dots {
  display: flex; gap: calc(var(--space-xs) / 4); align-items: center;
}
.reviews__dot {
  inline-size: calc(var(--space-xs) / 2); aspect-ratio: 1; border-radius: 50%; background: var(--neutral-semi-light); --empty-element-size: 0; &[aria-current] { background: var(--primary); }
}
.contact-block {
  padding-block-start: 0; &[data-variant="page"] { padding-block-start: var(--section-space-m); }
}
.contact-block__inner {
  padding-block-start: var(--section-space-m); border-block-start: 1px solid color-mix(in oklch, var(--neutral-light) 40%, transparent); /* acss-ok: live divider neutral-light-trans-40 */ .contact-block[data-variant="page"] & { padding-block-start: 0; border: 0; }
}
.contact-block__grid {
  display: grid; grid-template-columns: var(--grid-3-2); gap: var(--space-xl); @media (width < 992px) { grid-template-columns: var(--grid-1); gap: var(--space-l); }
}
.contact-block__form {
  display: flex; flex-direction: column; gap: var(--space-m);
}
.contact-block__details {
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-m); @media (width < 992px) { order: -1; align-items: center; .contact-block[data-variant="page"] & { align-items: flex-start; } }
}
.contact-block__title {
  color: var(--primary); font-size: var(--h3);
}
.contact-block__portrait {
  inline-size: 18em; /* acss-ok: live .avatar-wrapper 18em */ max-inline-size: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-circle);
}
.contact-block__lines {
  display: flex; flex-direction: column; gap: var(--space-s); align-self: stretch;
}
.contact-block__line {
  color: var(--white); font-size: var(--text-m);
}
.contact-block__link {
  color: inherit; text-decoration: none; &:hover { color: var(--primary); }
}
.social-links {
  display: flex; gap: var(--space-s);
}
.social-links__link {
  display: block; color: var(--white); transition: transform 0.3s ease-in-out; &:hover { color: var(--primary); transform: translateY(-0.15em); /* acss-ok: live icon hover lift */ }
}
.social-links__icon {
  display: block; inline-size: 4.5rem; /* acss-ok: live icon size */ aspect-ratio: 1; @media (width < 768px) { inline-size: 4.0625rem; /* acss-ok: live phone icon size */ }
}
.callback-form {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-s); @media (width < 768px) { grid-template-columns: var(--grid-1); }
}
.callback-form__row {
  display: flex; flex-direction: column; &[data-variant="wide"] { grid-column: 1 / -1; }
}
.callback-form__field {
  inline-size: 100%; padding: var(--space-xs) var(--space-s); background: var(--neutral-ultra-light); color: var(--neutral-ultra-dark); border: 1px solid var(--neutral-ultra-dark); /* acss-ok: live 1px field border */ border-radius: var(--radius); font-size: var(--text-m); &::placeholder { color: var(--neutral-ultra-dark); } &:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
}
.callback-form__consent {
  grid-column: 1 / -1; display: flex; gap: var(--space-xs); align-items: flex-start;
}
.callback-form__check {
  inline-size: var(--space-s); block-size: var(--space-s); margin-block-start: calc(var(--space-xs) / 4); flex-shrink: 0; accent-color: var(--primary);
}
.callback-form__consent-text {
  color: var(--neutral-ultra-light); font-size: var(--text-s); line-height: 1.4;
}
.callback-form__consent-link {
  color: var(--primary); font-weight: 700;
}
.callback-form__required {
  color: #dc3545; /* acss-ok: live required-field red (ACSS danger colour is off) */ font-weight: 700;
}
.callback-form__trap {
  position: absolute; inline-size: 1px; /* acss-ok: honeypot hidden */ block-size: 1px; /* acss-ok: honeypot hidden */ overflow: hidden; clip-path: inset(50%);
}
.callback-form__trap-label {
  display: block;
}
.callback-form__trap-input {
  display: block;
}
.callback-form__hidden {
  display: none;
}
.callback-form__turnstile {
  grid-column: 1 / -1; --empty-element-size: 0;
}
.callback-form__submit {
  justify-self: start; grid-column: 1 / -1;
}
.callback-form__status {
  grid-column: 1 / -1; color: var(--white); font-size: var(--text-s); --empty-element-size: 0; .callback-form[data-state="error"] & { color: #f08a95; /* acss-ok: light error red on black (ACSS danger colour is off) */ }
}
.van-strip {
  padding-inline: var(--gutter); overflow: hidden;
}
.van-strip__inner {
  align-items: flex-end;
}
.van-strip__icon {
  inline-size: 9rem; /* acss-ok: live van icon */ block-size: auto; @media (width < 768px) { inline-size: 5.0625rem; /* acss-ok: live phone van icon */ }
}
.site-footer__bar {
  background: var(--primary); padding-inline: var(--gutter);
}
.site-footer__bar-inner {
  flex-direction: row; align-items: center; gap: var(--space-l); padding-block: var(--space-l); @media (width < 768px) { flex-direction: column; gap: var(--space-xs); padding-block: var(--space-m); }
}
.site-footer__copy {
  color: var(--base); font-size: var(--text-m); font-weight: 700; @media (width < 992px) { font-size: var(--text-s); }
}
.site-footer__links {
  display: flex; flex-wrap: wrap; gap: var(--space-l); @media (width < 768px) { flex-direction: column; align-items: center; gap: var(--space-xs); }
}
.site-footer__link {
  color: var(--base); font-size: var(--text-m); font-weight: 700; text-decoration: none; &:hover { text-decoration: underline; } @media (width < 992px) { font-size: var(--text-s); }
}
.site-main {
  display: flex; flex-direction: column;
}
.screen-reader-text {
  position: absolute; inline-size: 1px; /* acss-ok: visually hidden */ block-size: 1px; /* acss-ok: visually hidden */ padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.site-footer {
  padding: 0; /* ACSS gives <footer> section padding; the bands inside carry their own */
}
.page-hero {
  position: relative; isolation: isolate; justify-content: flex-end; block-size: 90vh; /* acss-ok: live hero is 90vh */ padding-block: var(--section-space-s); background: var(--neutral-ultra-dark); &::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(color-mix(in oklch, var(--black) 10%, transparent), color-mix(in oklch, var(--black) 50%, transparent)); } @media (width < 768px) { block-size: 60vh; /* acss-ok: live phone hero is 60vh */ }
}
.page-hero__image {
  position: absolute; inset: 0; z-index: -2; inline-size: 100%; block-size: 100%; object-fit: cover;
}
.page-hero__inner {
  align-items: center; gap: var(--space-m);
}
.page-hero__title {
  max-inline-size: var(--width-80); color: var(--white); font-size: var(--h1); text-align: center;
}
.intro-split {
  @media (width < 768px) { padding-block: var(--section-space-s); }
}
.intro-split__inner {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-xs); @media (width < 768px) { grid-template-columns: var(--grid-1); gap: var(--space-s); }
}
.intro-split__heading {
  color: var(--primary); font-size: var(--h3);
}
.intro-split__body {
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-s);
}
.intro-split__text {
  color: var(--white); font-size: var(--text-m);
}
.intro-split__btn {
  margin-block-start: var(--space-xs); &.btn--outline { --btn-text-color: var(--white); --btn-text-color-hover: var(--base); }
}
.services {
  padding-block-start: 0;
}
.services__inner {
  align-items: center; gap: var(--space-xl); padding-block-start: var(--section-space-s); border-block-start: 1px solid color-mix(in oklch, var(--neutral-light) 40%, transparent); /* acss-ok: live divider neutral-light-trans-40 */
}
.services__title {
  color: var(--white); font-size: var(--h2); text-align: center;
}
.service-list {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-xs); inline-size: 100%; @media (width < 768px) { grid-template-columns: var(--grid-1); gap: var(--space-xs); }
}
.service-card {
  position: relative; isolation: isolate; display: flex; block-size: 35em; /* acss-ok: live card is 35em */ border-radius: var(--radius); overflow: hidden; background: var(--neutral-ultra-dark); &::after { content: ''; position: absolute; inset: 0; z-index: -1; background: color-mix(in oklch, var(--neutral) 30%, transparent); /* live --neutral-trans-30 overlay */ pointer-events: none; }
}
.service-card__image {
  position: absolute; inset: 0; z-index: -2; inline-size: 100%; block-size: 100%; object-fit: cover;
}
.service-card__body {
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; inline-size: 100%; padding: var(--space-s);
}
.service-card__title {
  max-inline-size: 12ch; /* acss-ok: live heading width */ color: color-mix(in oklch, var(--white) 80%, transparent); font-size: var(--h3);
}
.service-card__btn {
  &.btn--primary { --btn-background: var(--base); --btn-background-hover: var(--neutral-ultra-dark); --btn-text-color: var(--neutral-ultra-light); --btn-text-color-hover: var(--white); --btn-border-color: var(--base); --btn-border-color-hover: var(--neutral-ultra-dark); }
}
.strapline {
  position: relative; isolation: isolate; justify-content: flex-end; block-size: 80vh; /* acss-ok: live strapline is 80vh */ &::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(color-mix(in oklch, var(--black) 10%, transparent), color-mix(in oklch, var(--black) 50%, transparent)); }
}
.strapline__image {
  position: absolute; inset: 0; z-index: -2; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: 50% 20%;
}
.strapline__inner {
  align-items: center;
}
.strapline__title {
  max-inline-size: var(--width-70); color: var(--white); font-size: var(--h2); text-align: center;
}
.intro-columns {
  @media (width < 768px) { padding-block: var(--section-space-s); }
}
.intro-columns__inner {
  gap: var(--space-xl); @media (width < 768px) { gap: var(--space-l); }
}
.intro-columns__heading {
  color: var(--primary); font-size: var(--h3);
}
.intro-columns__grid {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--grid-gap); @media (width < 768px) { grid-template-columns: var(--grid-1); gap: var(--space-m); }
}
.intro-columns__lead {
  color: var(--white); font-size: var(--text-m); font-weight: 600;
}
.intro-columns__col {
  display: flex; flex-direction: column; gap: var(--space-s);
}
.intro-columns__text {
  color: var(--white); font-size: var(--text-m);
}
.intro-columns__photos {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--grid-gap); margin-block-start: var(--space-l); @media (width < 768px) { grid-template-columns: var(--grid-1); gap: var(--space-s); margin-block-start: var(--space-m); }
}
.intro-columns__photo {
  inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius);
}
.feature-list {
  display: flex; flex-direction: column; gap: var(--space-m); inline-size: 100%;
}
.feature-row {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-m); align-items: center; @media (width < 768px) { grid-template-columns: var(--grid-1); gap: var(--space-m); }
}
.feature-row__image {
  inline-size: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); order: 1; @media (width >= 768px) { .feature-row:nth-child(odd) & { order: -1; } }
}
.feature-row__body {
  display: flex; flex-direction: column; gap: var(--space-m);
}
.feature-row__title {
  color: var(--primary); font-size: var(--h3);
}
.feature-row__text {
  color: var(--white); font-size: var(--text-m);
}
.other-services__inner {
  gap: var(--space-xl); @media (width < 768px) { gap: var(--space-l); }
}
.other-services__intro {
  color: var(--primary); font-size: var(--h4); font-weight: 700; line-height: 1.15;
}
.legal__inner {
  align-items: stretch;
}
.legal-card {
  display: flex; flex-direction: column; gap: var(--space-m); padding: var(--space-m); background: var(--neutral-dark); border-radius: var(--radius); color: var(--white); @media (width < 768px) { padding: var(--space-s); }
}
.legal-card__title {
  color: var(--white); font-size: var(--h1);
}
.legal-card__embed {
  display: flex; flex-direction: column; gap: var(--space-s); color: var(--white); font-size: var(--text-m); & article > h2:first-child { display: none; /* duplicates the page title */ } & h1, & h2, & h3, & summary { color: var(--primary); font-size: var(--text-l); font-weight: 700; } & h4 { color: var(--white); font-size: var(--text-m); font-weight: 700; } & p, & li, & div { color: var(--white); } & a { color: var(--primary); } & ul { padding-inline-start: var(--space-m); } & details { border: 1px solid color-mix(in oklch, var(--neutral-light) 40%, transparent); /* acss-ok: live divider colour */ padding: var(--space-xs) var(--space-s); } & table { inline-size: 100%; border-collapse: collapse; } & td, & th { padding: var(--space-xs); border: 1px solid color-mix(in oklch, var(--neutral-light) 40%, transparent); /* acss-ok: live divider colour */ }
}
.legal-card__fallback {
  color: var(--primary);
}