: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;
}
:where([data-etch-element="section"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.site-header {
  position: sticky; inset-block-start: 0; z-index: 100; background-color: var(--primary); padding-block: var(--space-xs); padding-inline: var(--gutter);
}
.site-header__inner {
  flex-direction: row; justify-content: space-between; align-items: center; gap: var(--space-m); position: relative;
}
.site-header__logo {
  display: block; flex-shrink: 0;
}
.site-header__logo-img {
  inline-size: 270px; /* acss-ok: logo size as live */ block-size: auto;
@media (width < 992px) { inline-size: 180px; /* acss-ok: logo size as live */ }
}
.site-header__toggle {
  display: none; color: var(--neutral-ultra-light); padding: 0; cursor: pointer;
@media (width < 992px) { display: block; }
& .site-header__close { display: none; }
&[aria-expanded="true"] .site-header__burger { display: none; }
&[aria-expanded="true"] .site-header__close { display: block; }
}
.site-header__menu {
  display: flex; align-items: center; gap: var(--space-m); margin: 0; padding: 0; list-style: none;
@media (width < 992px) { display: none; position: absolute; inset-block-start: calc(100% + var(--space-xs)); inset-inline: calc(var(--gutter) * -1); flex-direction: column; align-items: flex-start; gap: 0; padding-block: var(--space-xs) var(--space-m); padding-inline: var(--gutter); background-color: var(--primary); }
.site-header__toggle[aria-expanded="true"] + & { display: flex; }
}
.site-header__link {
  display: block; font-weight: 700; font-size: var(--text-m); color: var(--neutral-ultra-light); text-decoration: none; transition: color 0.3s ease-in-out;
@media (width < 992px) { padding-block: var(--space-s); }
}
.site-header__cta {
  display: grid; place-items: center; inline-size: 103px; /* acss-ok: live circle size */ aspect-ratio: 1; border-radius: var(--radius-circle); background-color: var(--secondary); color: var(--primary); font-weight: 700; font-size: var(--text-m); text-decoration: none;
@media (width < 992px) { display: block; inline-size: auto; aspect-ratio: auto; border-radius: 0; background-color: transparent; color: var(--neutral-ultra-light); padding-block: var(--space-s); }
}
.site-footer {
  background-color: var(--base);
&.site-footer { padding: 0; } /* ACSS pads footer like a section; the sections inside carry the spacing */
}
.site-footer__main {
  background-color: var(--base);
}
.site-footer__inner {
  gap: var(--space-m);
&::before { content: ""; inline-size: 80%; block-size: 1px; margin-inline: auto; margin-block-end: var(--space-xl); background-color: color-mix(in oklch, var(--white) 30%, transparent); }
}
.site-footer__row {
  display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-m); inline-size: 100%;
@media (width < 768px) { flex-direction: column; align-items: center; }
}
.site-footer__col {
  display: flex; flex-direction: column; gap: var(--space-m);
}
.site-footer__col--social {
  inline-size: 307px; /* acss-ok: live column width */
@media (width < 768px) { inline-size: auto; align-items: center; }
}
.site-footer__heading {
  font-size: var(--h4); font-weight: 400; color: var(--neutral-ultra-light); margin: 0;
}
.site-footer__social {
  display: flex; align-items: center; gap: var(--space-m);
}
.site-footer__social-link {
  display: block; color: var(--neutral-ultra-light); transition: color 0.3s ease-in-out;
&:hover { color: var(--primary-light); }
}
.site-footer__icon {
  display: block; block-size: 38px; /* acss-ok: icon as live */ inline-size: auto;
}
.site-footer__col--contact {
  flex: 1; max-inline-size: 767px; /* acss-ok: live column width */
@media (width < 768px) { align-items: center; max-inline-size: none; inline-size: 100%; }
}
.site-footer__text {
  display: flex; flex-direction: column; gap: var(--space-s); color: var(--neutral-ultra-light);
@media (width < 768px) { align-self: stretch; }
}
.site-footer__link {
  color: inherit; text-decoration: none; transition: color 0.3s ease-in-out;
&:hover { color: var(--primary-light); }
}
.site-footer__logo {
  display: block; flex-shrink: 0; margin-block-start: calc(var(--space-s) * -1);
@media (width < 768px) { margin-block-start: 0; inline-size: 100%; }
}
.site-footer__logo-img {
  inline-size: 307px; /* acss-ok: logo size as live */ block-size: auto;
@media (width < 768px) { inline-size: 100%; }
}
.site-footer__bar {
  background-color: var(--base); padding-block: var(--section-space-xs);
}
.site-footer__bar-inner {
  flex-direction: row; justify-content: space-between; align-items: center; gap: var(--space-m);
@media (width < 768px) { flex-direction: column; gap: var(--space-xs); }
}
.site-footer__legal {
  display: flex; align-items: center; gap: var(--space-m);
@media (width < 768px) { flex-direction: column; gap: var(--space-xs); }
}
.site-footer__small {
  font-size: var(--text-s); font-weight: 700; color: var(--white); margin: 0;
}
.site-footer__consent {
  cursor: pointer; padding: 0; font-family: inherit;
}
.testimonials__inner {
  align-items: center; gap: var(--space-m);
}
.testimonials__title {
  text-align: center; margin: 0;
.testimonials--light & { color: var(--base-ultra-dark); }
}
.testimonials__slider {
  inline-size: 100%; display: flex; flex-direction: column; align-items: center;
}
.testimonials__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%; inline-size: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
&::-webkit-scrollbar { display: none; }
&:focus-visible { outline: 2px solid var(--secondary); outline-offset: 4px; }
}
.testimonials__slide {
  scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-m); margin: 0; padding: var(--space-m);
&.testimonials__slide { background: none; border: 0; border-radius: 0; } /* beats ACSS figure:has(blockquote) card */
}
.testimonials__quote {
  margin: 0; padding: 0; border: 0; background: none;
}
.testimonials__text {
  font-size: var(--text-xl); line-height: 1.24; /* acss-ok: live 39.6/32 */ text-align: center; color: var(--neutral-ultra-light); margin: 0;
.testimonials--light & { color: var(--neutral-ultra-dark); }
}
.testimonials__person {
  font-size: var(--text-m); color: var(--neutral-ultra-light);
.testimonials--light & { color: var(--neutral-ultra-dark); }
}
.testimonials__dots {
  display: flex; gap: 10px; /* acss-ok: live dot gap */ margin-block-start: calc(var(--space-s) * -1); /* live: dots sit just under the name */
}
.testimonials__dot {
  inline-size: 10px; /* acss-ok: live dot */ aspect-ratio: 1; padding: 0; border-radius: var(--radius-circle); background-color: color-mix(in oklch, var(--neutral-light) 50%, transparent); cursor: pointer;
&[aria-current="true"] { background-color: var(--neutral-light); }
.testimonials--light & { background-color: color-mix(in oklch, var(--neutral-light) 60%, transparent); }
.testimonials--light &[aria-current="true"] { background-color: var(--neutral-semi-light); }
}
.accreditations__inner {
  align-items: center; gap: var(--space-m);
}
.accreditations__title {
  text-align: center; margin: 0;
.accreditations--light & { color: var(--base-ultra-dark); }
}
.accreditations__logos {
  display: flex; align-items: center; justify-content: center; gap: var(--space-m);
@media (width < 768px) { flex-direction: column; }
}
.accreditations__rics {
  inline-size: 217px; /* acss-ok: logo as live */ block-size: auto;
.accreditations--light & { inline-size: 270px; /* acss-ok: logo as live */ }
}
.accreditations__pca {
  inline-size: 116px; /* acss-ok: logo as live */ block-size: auto;
.accreditations--light & { inline-size: 145px; /* acss-ok: logo as live */ }
}
.contact-block {
  padding-block-start: 0;
&.contact-block--page { padding-block: var(--section-space-m) 0; }
&.contact-block--on-white { background-color: var(--white); }
}
.contact-block__panel {
  background-color: var(--primary); padding: var(--space-l); align-items: center; gap: var(--section-space-m);
}
.contact-block__title {
  text-align: center; margin: 0;
}
.contact-block__row {
  display: flex; align-items: flex-start; column-gap: var(--section-space-l); row-gap: var(--space-m); inline-size: 100%;
.contact-block--page & { column-gap: var(--space-s); }
@media (width < 768px) { flex-direction: column; align-items: stretch; }
}
.contact-block__person {
  display: flex; flex-direction: column; align-items: center; gap: var(--space-m); inline-size: 474px; /* acss-ok: live column */ flex-shrink: 0;
.contact-block--page & { inline-size: 532px; /* acss-ok: live column */ }
@media (width < 992px) { inline-size: 40%; /* acss-ok: tablet share */ .contact-block--page & { inline-size: 40%; /* acss-ok */ } }
@media (width < 768px) { inline-size: 100%; .contact-block--page & { inline-size: 100%; } }
}
.contact-block__photo {
  inline-size: 100%; aspect-ratio: 1; border-radius: var(--radius-50); object-fit: cover;
}
.contact-block__text {
  display: flex; flex-direction: column; gap: var(--space-s); color: var(--base-ultra-light); text-align: center; & p { margin: 0; }
}
.contact-block__logos {
  display: flex; align-items: center; justify-content: center; gap: var(--space-m);
}
.contact-block__rics {
  inline-size: 217px; /* acss-ok: logo as live */ block-size: auto;
@media (width < 768px) { inline-size: 150px; /* acss-ok: logo */ }
}
.contact-block__pca {
  inline-size: 116px; /* acss-ok: logo as live */ block-size: auto;
@media (width < 768px) { inline-size: 82px; /* acss-ok: logo */ }
}
.contact-block__enquiry {
  flex: 1; display: flex; flex-direction: column; gap: var(--space-m); min-inline-size: 0;
}
.contact-block__heading {
  font-size: var(--h4); font-weight: 400; color: var(--neutral-ultra-light); margin: 0;
&.contact-block__heading--details { padding-block-start: var(--space-s); }
}
.contact-form {
  display: flex; flex-direction: column; gap: var(--space-s);
}
.contact-form__grid {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-s);
@media (width < 768px) { grid-template-columns: var(--grid-1); }
}
.contact-form__field {
  display: flex; flex-direction: column;
&.contact-form__field--full { grid-column: 1 / -1; }
}
.contact-form__input {
  inline-size: 100%; block-size: 50px; /* acss-ok: live field height */ padding: 0.5em 1em; border: 1px solid var(--neutral-light); border-radius: 30px; /* acss-ok: live field radius */ background-color: transparent; color: var(--neutral-ultra-light); font: inherit; font-size: var(--text-m);
&::placeholder { color: var(--neutral-light); opacity: 1; }
&:focus-visible { outline: 2px solid var(--secondary); outline-offset: 2px; }
}
.contact-form__textarea {
  block-size: 222px; /* acss-ok: live textarea */ padding-block: 0.75em; resize: vertical; line-height: 1.4;
}
.contact-form__consent {
  display: flex; align-items: flex-start; gap: 10px; /* acss-ok: live */ padding-block-start: var(--space-xs);
}
.contact-form__checkbox {
  inline-size: 20px; /* acss-ok */ block-size: 20px; /* acss-ok */ margin-block-start: 2px; /* acss-ok */ flex-shrink: 0; accent-color: var(--secondary);
}
.contact-form__consent-label {
  font-size: var(--text-s); line-height: 1.4; color: var(--neutral-ultra-light);
}
.contact-form__link {
  color: var(--primary-light); font-weight: 700; text-decoration: underline; transition: color 0.3s ease-in-out;
&:hover { color: var(--secondary); }
}
.contact-form__trap {
  position: absolute; inset-inline-start: -9999px; /* acss-ok: honeypot */ inline-size: 1px; block-size: 1px; overflow: hidden;
}
.contact-form__submit {
  align-self: flex-start; margin-block-start: var(--space-xs); cursor: pointer;
}
.contact-form__status {
  margin: 0; color: var(--neutral-ultra-light);
&:empty { display: none; }
}
.contact-block__email {
  margin: 0; color: var(--base-ultra-light);
}
.contact-block__email-link {
  color: inherit; text-decoration: none; transition: color 0.3s ease-in-out;
&:hover { color: var(--primary-light); }
}
.home-backdrop {
  position: fixed; inset: 0; z-index: -1; inline-size: 100%; block-size: 100vh; object-fit: cover; object-position: center top; pointer-events: none;
}
.home-hero {
  min-block-size: 100vh; justify-content: flex-end;
}
.home-hero__inner {
  padding-block-end: var(--space-xxl);
}
.home-hero__content {
  display: flex; flex-direction: column; gap: var(--space-m); inline-size: 60%; /* acss-ok: grid-3-2 share as live */
@media (width < 992px) { inline-size: 100%; }
}
.home-hero__title {
  font-size: var(--text-xxl); line-height: 1.066; /* acss-ok: live 45.4/42.6 */ color: var(--neutral-ultra-light); margin: 0;
}
.home-hero__specialising {
  display: flex; align-items: center; gap: var(--space-m);
}
.home-hero__kicker {
  font-family: var(--heading-font-family); font-weight: 700; font-size: calc(var(--h1) * 0.8); line-height: 1.2; color: var(--neutral-ultra-light); margin: 0;
}
.home-hero__arrow {
  display: block; color: var(--neutral-ultra-light); transition: color 0.3s ease-in-out;
&:hover { color: var(--primary-light); }
}
.home-hero__arrow-icon {
  display: block; inline-size: calc(var(--h1) * 1.0625); block-size: auto;
}
.home-intro__inner {
  flex-direction: row; gap: var(--space-m);
@media (width < 479px) { flex-direction: column; }
}
.home-intro__main {
  flex: 1; display: flex; flex-direction: column; gap: var(--space-m); min-inline-size: 0;
}
.home-intro__big {
  font-family: "Rubik", var(--heading-font-family); font-weight: 900; line-height: 1; text-transform: uppercase; font-size: calc(var(--h1) * 2); inline-size: 9ch; color: var(--neutral-ultra-light); margin: 0;
@media (width < 768px) { inline-size: 100%; font-size: calc(var(--h1) * 1.5); }
}
.home-intro__person {
  display: flex; align-items: flex-start; gap: var(--space-m);
@media (width < 768px) { flex-direction: column; }
}
.home-intro__portrait {
  inline-size: 222px; /* acss-ok: live portrait */ aspect-ratio: 1; border-radius: var(--radius-50); object-fit: cover; flex-shrink: 0;
@media (width < 768px) { inline-size: min(288px, 100%); /* acss-ok: live portrait */ }
}
.home-intro__details {
  display: flex; flex-direction: column; gap: var(--space-m); padding-block-start: var(--space-xs);
@media (width < 768px) { padding-block-start: 0; }
}
.home-intro__text {
  display: flex; flex-direction: column; gap: var(--space-s); color: var(--base-ultra-light); & p { margin: 0; }
}
.home-intro__buttons {
  display: flex; flex-wrap: wrap; gap: var(--space-m);
@media (width < 768px) { flex-direction: column; align-items: center; }
}
.home-intro__badges {
  display: flex; align-items: flex-end; gap: var(--space-m); align-self: flex-start; position: sticky; inset-block-start: 80vh; margin-block-start: -420px; /* acss-ok: live -42rem at 10px root */
@media (width < 992px) { margin-block-start: -350px; /* acss-ok: live -35rem */ }
@media (width < 768px) { margin-block-start: -300px; /* acss-ok: live -30rem */ }
@media (width < 479px) { position: static; margin-block-start: 0; align-self: center; align-items: center; }
}
.home-intro__rics {
  inline-size: 178px; /* acss-ok: logo as live */ block-size: auto;
@media (width < 479px) { inline-size: 108px; /* acss-ok */ }
}
.home-intro__pca {
  inline-size: 107px; /* acss-ok: logo as live */ block-size: auto;
@media (width < 479px) { inline-size: 68px; /* acss-ok */ }
}
.home-statement {
  padding-block-end: 0;
}
.home-statement__panel {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-m); inline-size: 100%; padding: var(--space-l); background-color: var(--tertiary);
@media (width < 768px) { grid-template-columns: var(--grid-1); }
}
.home-statement__title {
  color: var(--base-ultra-dark); margin: 0;
}
.home-statement__body {
  display: flex; flex-direction: column; gap: var(--space-s); color: var(--neutral-ultra-dark); & p { margin: 0; }
}
.home-statement__lead {
  font-weight: 900; line-height: 1.41; margin-block-end: var(--space-xs) !important;
}
.home-statement__button {
  align-self: flex-start; margin-block-start: var(--space-xs);
}
.home-services {
  padding-block: 0;
}
.home-services__panel {
  display: flex; flex-direction: column; align-items: center; gap: var(--space-xl); inline-size: 100%; padding: var(--space-l); background-color: var(--primary);
}
.home-services__title {
  margin: 0; text-align: center;
}
.home-services__grid {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-xs); inline-size: 100%;
@media (width < 768px) { grid-template-columns: var(--grid-1); }
}
.service-card {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; block-size: 400px; /* acss-ok: live 40rem at 10px root */ padding: var(--space-s);
@media (width < 768px) { block-size: 300px; /* acss-ok: live 30rem */ }
}
.service-card__image {
  position: absolute; inset: 0; z-index: -1; inline-size: 100%; block-size: 100%; object-fit: cover;
}
.service-card__title {
  font-size: var(--h3); color: var(--neutral-ultra-dark); margin: 0;
}
.page-hero {
  position: relative; isolation: isolate; overflow: hidden; justify-content: flex-end; min-block-size: 600px; /* acss-ok: live 600px */ padding-block-end: var(--space-xxl);
@media (width < 768px) { min-block-size: 290px; /* acss-ok: live 288-300px */ }
}
.page-hero__image {
  position: absolute; inset: 0; z-index: -1; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: center;
}
.page-hero__inner {
  gap: 0;
}
.page-hero__title {
  font-size: var(--h1); line-height: 1.02; /* acss-ok: live 86.3/84.7 */ color: var(--neutral-ultra-light); margin: 0;
}
.light-section {
  background-color: var(--white); color: var(--neutral-ultra-dark);
}
.testimonials--light {
  background-color: var(--white);
}
.accreditations--light {
  background-color: var(--white);
}
.about-intro__inner {
  gap: var(--space-xl);
}
.about-intro__title {
  color: var(--base-ultra-dark); margin: 0;
}
.about-intro__columns {
  display: grid; grid-template-columns: var(--grid-2); gap: var(--space-m); & p { margin: 0; }
@media (width < 768px) { grid-template-columns: var(--grid-1); }
}
.about-intro__lead {
  font-weight: 700; line-height: 1.41;
}
.about-story {
  padding-block: 0;
}
.about-story__panel {
  display: flex; align-items: flex-start; gap: var(--space-xl); inline-size: 100%; padding: var(--space-l); background-color: var(--primary); color: var(--base-ultra-light);
@media (width < 768px) { flex-direction: column; align-items: stretch; }
}
.about-story__person {
  display: flex; flex-direction: column; align-items: center; gap: var(--space-m); inline-size: 500px; /* acss-ok: live column */ flex-shrink: 0;
@media (width < 992px) { inline-size: 40%; /* acss-ok */ }
@media (width < 768px) { inline-size: 100%; }
}
.about-story__photo {
  inline-size: 100%; aspect-ratio: 1; border-radius: var(--radius-50); object-fit: cover;
}
.about-story__caption {
  text-align: center; margin: 0;
}
.about-story__text {
  flex: 1; display: flex; flex-direction: column; gap: var(--space-s); & p { margin: 0; }
}
.about-story__lead {
  font-weight: 700;
}
.services-core__inner {
  gap: var(--space-xl);
}
.services-core__title {
  color: var(--base-ultra-dark); margin: 0;
}
.services-core__grid {
  display: grid; grid-template-columns: var(--grid-2); column-gap: var(--space-xs); row-gap: var(--space-xl);
@media (width < 768px) { grid-template-columns: var(--grid-1); }
}
.services-core__item {
  display: flex; flex-direction: column; gap: var(--space-l);
}
.services-core__card {
  position: relative; isolation: isolate; overflow: hidden; block-size: 400px; /* acss-ok: live 40rem */ padding: var(--space-s);
@media (width < 768px) { block-size: 300px; /* acss-ok: live 30rem */ }
}
.services-core__image {
  position: absolute; inset: 0; z-index: -1; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: center;
}
.services-core__card-title {
  font-size: var(--h3); color: var(--neutral-ultra-dark); margin: 0;
}
.services-core__text {
  max-inline-size: 86%; /* acss-ok: live 612 of 713, kept on phones */ color: var(--neutral-ultra-dark); margin: 0;
}
.services-extra {
  padding-block: 0;
}
.services-extra__panel {
  display: flex; flex-direction: column; gap: var(--space-xl); inline-size: 100%; padding: var(--space-l); background-color: var(--primary);
}
.services-extra__item {
  display: flex; flex-direction: column; gap: var(--space-m); padding-block-end: var(--space-l); border-block-end: 1px solid color-mix(in oklch, var(--neutral-light) 90%, transparent);
}
.services-extra__title {
  margin: 0;
}
.services-extra__heading {
  font-size: var(--h3); margin: 0;
}
.services-extra__text {
  color: var(--base-ultra-light); margin: 0;
}
.legal__inner {
  gap: var(--space-l);
}
.legal__title {
  margin: 0;
}
.legal__policy {
  color: var(--neutral-ultra-light); line-height: 1.38;
& p { margin-block: 0 var(--space-s); }
& h2, & h3, & h4 { font-family: var(--text-font-family); font-size: 1.17em; font-weight: 700; line-height: 1.18; color: var(--neutral-ultra-light); margin-block: var(--space-s) var(--space-s); }
& ul, & ol { padding-inline-start: 1.25em; margin-block: 0 var(--space-s); }
& li { margin-block-end: 0.1em; }
& a { color: var(--primary-light); }
& table { inline-size: 100%; border-collapse: collapse; margin-block-end: var(--space-s); }
& th, & td { border: 1px solid color-mix(in oklch, var(--white) 30%, transparent); padding: 0.5em; text-align: start; vertical-align: top; }
}
.contact-form__turnstile {
  &:empty { display: none; }
}
.not-found {
  min-block-size: 60vh; justify-content: center;
}
.not-found__inner {
  align-items: flex-start; gap: var(--space-m);
}
.not-found__title {
  margin: 0;
}
.not-found__text {
  margin: 0; color: var(--base-ultra-light); max-inline-size: 60ch;
}
.not-found__buttons {
  display: flex; flex-wrap: wrap; gap: var(--space-m);
}