/* ==========================================================================
   DE-Construct — BEM stylesheet
   --------------------------------------------------------------------------
   Conventions
   - Exactly one class per element. Blocks: .block, elements: .block__element
   - Variants are expressed with data attributes (data-variant="dark") instead
     of a second modifier class, so every element keeps a single class.
   - Interactive state is expressed with attributes toggled by JS:
     data-state, data-reveal, aria-expanded, hidden, open.
   - Rich CMS text (project scope, article body) lives inside a .rich-text
     block and is styled with descendant selectors; those inner tags carry
     no classes by design.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
  --color-dark: #26190b;
  --color-brown: #4d3d2e;
  --color-muted: #665e57;
  --color-taupe: #b2a18f;
  --color-line: #d9d3ce;
  --color-sand: #f2ece6;
  --color-bg: #faf8f5;
  --color-white: #fff;
  --color-primary: #f78f1e;
  --color-primary-dark: #d9770c;
  --color-grey: #edebe8;

  --font-body: "Neue Montreal", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-heading: "Atlas Grotesk", "Archivo", "Inter", system-ui, sans-serif;

  --text-h1: clamp(2.5rem, 4.9vw, 5.875rem);
  --text-h1-alt: clamp(2.625rem, 3.85vw, 4.625rem);
  --text-h2: clamp(2rem, 3.02vw, 3.625rem);
  --text-h2-alt: clamp(2rem, 2.71vw, 3.25rem);
  --text-h3: clamp(1.25rem, 1.67vw, 2rem);
  --text-h4: clamp(1.125rem, 1.05vw, 1.25rem);
  --text-lead: clamp(1rem, 0.94vw, 1.125rem);

  --container-max: calc(1544px + 4rem);
  --gutter: 0.75rem;
  --topbar: 32px;
  --header-h: 62px;
  --section: clamp(50px, 7vw, 136px);

  --ease-out: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-arrow: cubic-bezier(0.3, 1, 0.8, 1);
}

@media (min-width: 1024px) {
  :root {
    --gutter: 2rem;
    --topbar: 32px;
    --header-h: 74px;
  }
}

/* --------------------------------------------------------------------------
   2. Fonts
   Licensed brand fonts are referenced from /assets/fonts. Drop the files in
   and they load automatically; until then the Google fallbacks apply.
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "Neue Montreal";
  src: url("../fonts/NeueMontreal-Regular.woff2") format("woff2"),
       url("../fonts/NeueMontreal-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Neue Montreal";
  src: url("../fonts/NeueMontreal-Medium.woff2") format("woff2"),
       url("../fonts/NeueMontreal-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Atlas Grotesk";
  src: url("../fonts/AtlasGrotesk-Black.woff2") format("woff2"),
       url("../fonts/AtlasGrotesk-Black.woff") format("woff");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* Self-hosted fallbacks (SIL OFL) used until the licensed Atlas Grotesk /
   Neue Montreal files are dropped into assets/fonts */
@font-face { font-family: "Archivo"; src: url("../fonts/Archivo-ExtraBold.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Archivo"; src: url("../fonts/Archivo-Black.woff2") format("woff2"); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/Inter-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/Inter-Medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

/* --------------------------------------------------------------------------
   3. Reset & base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  line-height: 1.333;
  color: var(--color-dark);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

body[data-menu="open"] { overflow: hidden; }

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 400; }
p, ul, ol, dl, figure, blockquote { margin: 0; }
ul, ol { padding: 0; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; transition: color 0.2s, opacity 0.2s; }
button { font: inherit; color: inherit; cursor: pointer; }
a, button { -webkit-appearance: none; appearance: none; background: none; border: 0; padding: 0; border-radius: 0; }
input, select, textarea { font: inherit; color: inherit; }
hr { border: 0; border-top: 1px solid var(--color-line); }
strong { font-weight: 500; }

:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   4. Layout helpers (single-purpose blocks)
   -------------------------------------------------------------------------- */
.page { display: flex; flex-direction: column; min-height: 100vh; }
.page__main { flex: 1 0 auto; }

.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.container[data-width="full"] { max-width: none; }
.container[data-width="narrow"] { max-width: calc(1162px + 4rem); }
.container[data-width="article"] { max-width: calc(918px + 4rem); }

/* --------------------------------------------------------------------------
   5. Typography atoms
   -------------------------------------------------------------------------- */
/* Heading typography lives on the tags so any block element inherits it
   with a single class; blocks only override size/margins where needed. */
h1, h2, h3 {
  font-family: var(--font-heading);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}
h1 { font-size: var(--text-h1); line-height: 1.05; margin: 0 0 1rem; }
h2 { font-size: var(--text-h2); line-height: 1.125; margin: 0 0 0.9rem; }
h3 { font-size: var(--text-h3); line-height: 1.2; margin: 0 0 1rem; }
h4 { font-size: var(--text-h4); line-height: 1.33; margin: 0 0 1rem; }

.eyebrow {
  display: inline-block;
  padding: 0 8px;
  line-height: 24px;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 24px;
}
.eyebrow[data-variant="dark"] { background-color: var(--color-dark); color: var(--color-primary); }
.eyebrow[data-variant="muted"] { background-color: var(--color-taupe); }
@media (min-width: 1024px) { .eyebrow { font-size: 13px; margin: 0 0 32px; } }

.lead { font-size: var(--text-lead); line-height: 1.25; }

.kicker {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.43;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-muted);
}

/* Rich CMS text (.article__body and .project__content share these rules) */
.rich-text > * + *,
.article__body > * + *,
.project__content > * + * { margin-top: 0.8rem; }
.rich-text h2,
.article__body h2,
.project__content h2 { font-size: var(--text-h3); line-height: 1.2; margin-top: 1.6rem; }
.rich-text h3,
.article__body h3,
.project__content h3 { font-size: clamp(1.15rem, 1.35vw, 1.5rem); line-height: 1.25; margin-top: 1.6rem; }
.rich-text h4,
.article__body h4,
.project__content h4 { font-size: var(--text-h4); margin-top: 1.2rem; }
.rich-text ul,
.article__body ul,
.project__content ul { list-style: none; }
.rich-text li,
.article__body li,
.project__content li { position: relative; padding-left: 18px; margin: 0 0 8px; }
.rich-text li::before,
.article__body li::before,
.project__content li::before {
  content: "";
  position: absolute; left: 0; top: 0.5em;
  width: 6px; height: 6px;
  background-color: var(--color-primary);
}
.rich-text blockquote,
.article__body blockquote,
.project__content blockquote {
  border-left: 3px solid var(--color-primary);
  background-color: var(--color-sand);
  padding: 1.5rem 1.5rem;
  font-size: clamp(1.15rem, 1.5vw, 1.5rem);
  line-height: 1.3;
  text-align: center;
  margin-top: 1.6rem;
  margin-bottom: 1.6rem;
}
.rich-text a,
.article__body a,
.project__content a { text-decoration: underline; }
.rich-text[data-tone="muted"],
.article__body[data-tone="muted"],
.project__content[data-tone="muted"] { color: var(--color-muted); }
.rich-text[data-tone="muted"] h2,
.article__body[data-tone="muted"] h2,
.project__content[data-tone="muted"] h2,
.rich-text[data-tone="muted"] h3,
.article__body[data-tone="muted"] h3,
.project__content[data-tone="muted"] h3,
.rich-text[data-tone="muted"] h4,
.article__body[data-tone="muted"] h4,
.project__content[data-tone="muted"] h4 { color: var(--color-dark); }

/* Bulleted list block */
.list { list-style: none; font-size: 16px; line-height: 1.25; }
.list__item { position: relative; padding-left: 18px; margin: 0 0 8px; }
.list__item::before {
  content: "";
  position: absolute; left: 0; top: 0.5em;
  width: 6px; height: 6px;
  background-color: var(--color-primary);
}
.list[data-columns="2"] { display: grid; grid-template-columns: 1fr 1fr; column-gap: 22px; }
@media (min-width: 1400px) {
  .list { font-size: 18px; line-height: 1.22; }
  .list__item { margin: 0 0 10px; }
  .list[data-columns="2"] { column-gap: 40px; }
}

/* --------------------------------------------------------------------------
   6. Buttons & links
   -------------------------------------------------------------------------- */
.btn {
  --btn-color: var(--color-white);
  --btn-bg: var(--color-dark);
  --btn-border: var(--color-dark);
  --btn-bg-hover: var(--color-primary);
  --btn-color-hover: var(--color-dark);
  --btn-border-hover: var(--color-primary);
  --btn-icon: var(--color-primary);
  --btn-icon-hover: var(--color-dark);

  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 52px;
  padding: 0 15px 0 21px;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--btn-color);
  border: 1px solid var(--btn-border);
  background-color: var(--btn-bg-hover);
  overflow: hidden;
  isolation: isolate;
  transition: color 0.15s ease, border-color 0.15s ease;
  white-space: nowrap;
  cursor: pointer;
}
.btn::before {
  content: "";
  position: absolute;
  top: 0; left: -12%;
  width: 124%; height: 100%;
  background: var(--btn-bg);
  transform: skew(30deg);
  transition: transform 0.4s var(--ease-arrow);
  z-index: -1;
}
.btn svg { flex: 0 0 auto; margin-top: 1px; }
.btn svg path { stroke: var(--btn-icon); transition: stroke 0.3s linear; }
.btn:hover { color: var(--btn-color-hover); border-color: var(--btn-border-hover); }
.btn:hover::before { transform: skew(30deg) translate3d(100%, 0, 0); }
.btn:hover svg path { stroke: var(--btn-icon-hover); }

.btn[data-variant="primary"] {
  --btn-color: var(--color-dark);
  --btn-bg: var(--color-primary);
  --btn-border: var(--color-primary);
  --btn-bg-hover: var(--color-dark);
  --btn-color-hover: var(--color-white);
  --btn-border-hover: var(--color-dark);
  --btn-icon: var(--color-dark);
  --btn-icon-hover: var(--color-primary);
}
.btn[data-variant="white"] {
  --btn-color: var(--color-dark);
  --btn-bg: var(--color-white);
  --btn-border: var(--color-white);
  --btn-bg-hover: var(--color-dark);
  --btn-color-hover: var(--color-white);
  --btn-border-hover: var(--color-dark);
  --btn-icon: var(--color-dark);
  --btn-icon-hover: var(--color-primary);
}
.btn[data-variant="outline-white"],
.btn[data-variant="outline-dark"],
.btn[data-variant="outline-primary"] { background-color: transparent; }
.btn[data-variant="outline-white"]::before,
.btn[data-variant="outline-dark"]::before,
.btn[data-variant="outline-primary"]::before {
  background: var(--btn-bg-hover);
  transform: skew(30deg) translate3d(-100%, 0, 0);
}
.btn[data-variant="outline-white"]:hover::before,
.btn[data-variant="outline-dark"]:hover::before,
.btn[data-variant="outline-primary"]:hover::before { transform: skew(30deg) translate3d(0, 0, 0); }
.btn[data-variant="outline-white"] {
  --btn-color: var(--color-white);
  --btn-border: var(--color-white);
  --btn-bg-hover: var(--color-white);
  --btn-color-hover: var(--color-dark);
  --btn-border-hover: var(--color-white);
  --btn-icon: var(--color-white);
  --btn-icon-hover: var(--color-dark);
}
.btn[data-variant="outline-dark"] {
  --btn-color: var(--color-dark);
  --btn-border: var(--color-dark);
  --btn-bg-hover: var(--color-dark);
  --btn-color-hover: var(--color-white);
  --btn-border-hover: var(--color-dark);
  --btn-icon: var(--color-dark);
  --btn-icon-hover: var(--color-primary);
}
.btn[data-variant="outline-primary"] {
  --btn-color: var(--color-white);
  --btn-border: var(--color-primary);
  --btn-bg-hover: var(--color-primary);
  --btn-color-hover: var(--color-dark);
  --btn-border-hover: var(--color-primary);
  --btn-icon: var(--color-primary);
  --btn-icon-hover: var(--color-dark);
}
.btn[data-size="full"] { width: 100%; }
@media (min-width: 1024px) { .btn { padding: 0 18px 0 24px; gap: 10px; } }

/* Arrow text link */
.link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  line-height: 1.37;
  color: inherit;
  cursor: pointer;
}
.link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px; height: 20px;
  background-color: var(--color-primary);
  overflow: hidden;
  padding-left: 1px;
  transition: transform 0.2s;
}
.link__icon svg { width: 11px; height: 10px; }
.link__icon svg path { stroke: var(--color-dark); }
.link[data-direction="back"] .link__icon { transform: scaleX(-1); }
.link[data-direction="down"] .link__icon svg { transform: rotate(90deg); }
.link[aria-expanded="true"] .link__icon { transform: scaleY(-1); }
.link[data-direction="down"][aria-expanded="true"] .link__icon { transform: scaleY(-1); }
@keyframes link-arrow {
  0% { transform: translateX(0); }
  49% { transform: translateX(120%); }
  50% { transform: translateX(-120%); }
  100% { transform: translateX(0); }
}
@media (min-width: 1024px) {
  .link:hover .link__icon svg { animation: link-arrow 0.4s both; }
}

/* Slider arrow controls */
.controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  padding: 5px;
  background-color: var(--color-grey);
}
.controls[data-variant="white"] { background-color: var(--color-white); }
.controls__prev,
.controls__next {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  transition: background-color 0.2s;
  cursor: pointer;
}
.controls__prev svg path,
.controls__next svg path { stroke: var(--color-dark); transition: stroke 0.2s; }
.controls__prev:hover,
.controls__next:hover { background-color: var(--color-dark); }
.controls__prev:hover svg path,
.controls__next:hover svg path { stroke: var(--color-white); }
.controls__prev[disabled],
.controls__next[disabled] { opacity: 0.35; pointer-events: none; }

/* Meta tags (price / client / year) */
.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  font-weight: 500;
  font-size: 12px;
  text-transform: uppercase;
}
.tags__price,
.tags__client,
.tags__year {
  display: inline-flex;
  align-items: center;
  height: 2em;
  padding: 0 0.66em;
  white-space: nowrap;
}
.tags__price { background-color: var(--color-primary); color: var(--color-dark); }
.tags__client { background-color: var(--color-dark); color: var(--color-white); outline: 1px solid var(--color-primary); outline-offset: -1px; }
.tags__year { background-color: var(--color-brown); color: var(--color-white); }
.tags[data-variant="light"] .tags__price { color: var(--color-white); }
.tags[data-variant="light"] .tags__client { background-color: transparent; color: var(--color-dark); }
.tags[data-variant="light"] .tags__year { background-color: var(--color-sand); color: var(--color-dark); }
@media (min-width: 1024px) {
  .tags { gap: 0.46em; font-size: 13px; }
  .tags__price, .tags__client, .tags__year { height: 1.85em; padding: 0 0.6em; }
}

/* Contact list (address / phone / email with icons) */
.contacts { }
.contacts__list { list-style: none; }
.contacts__item { margin: 0 0 4px; }
.contacts__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 1.36;
}
.contacts__link svg { flex: 0 0 auto; width: 18px; height: 18px; }
.contacts__link:hover { color: var(--color-primary); }
.contacts[data-size="large"] .contacts__link { font-size: 20px; gap: 12px; }
.contacts[data-size="large"] .contacts__link svg { width: 22px; height: 22px; }
@media (min-width: 1400px) {
  .contacts[data-size="large"] .contacts__list { display: flex; gap: 25px; }
  .contacts[data-size="large"] .contacts__link { font-size: 24px; gap: 16px; }
}

/* Socials */
.socials__list { display: flex; gap: 6px; list-style: none; }
.socials__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border: 1px solid rgba(38, 25, 11, 0.2);
  transition: background-color 0.2s, border-color 0.2s;
}
.socials__link svg { width: 16px; height: 16px; }
.socials__link:hover { background-color: var(--color-primary); border-color: var(--color-primary); }
.socials[data-variant="light"] .socials__link { border-color: rgba(255, 255, 255, 0.2); }
.socials[data-variant="light"] .socials__link svg path { fill: var(--color-white); }
.socials[data-variant="light"] .socials__link:hover svg path { fill: var(--color-dark); }

/* Breadcrumbs */
.breadcrumbs { margin: 0 0 1.7rem; font-weight: 500; font-size: 11px; line-height: 1.27; text-transform: uppercase; }
.breadcrumbs__list { display: flex; align-items: center; flex-wrap: wrap; list-style: none; }
.breadcrumbs__item { display: inline-flex; align-items: center; opacity: 0.6; }
.breadcrumbs__item + .breadcrumbs__item::before {
  content: "";
  display: inline-block;
  width: 4px; height: 4px;
  margin: 0 8px;
  background-color: currentColor;
}
.breadcrumbs__link:hover { opacity: 1; }
.breadcrumbs[data-align="center"] .breadcrumbs__list { justify-content: center; }
@media (min-width: 1400px) { .breadcrumbs { margin: 0 0 2.3rem; } }

/* Section heading group */
.section-head { margin: 0 0 2rem; }
.section-head__body { }
.section-head__title { }
.section-head__text { margin: 0; }
.section-head__controls { display: none; align-items: center; gap: 1rem; flex: 0 0 auto; }
.section-head[data-align="center"] { text-align: center; }
.section-head[data-align="center"] .section-head__body { max-width: 1162px; margin: 0 auto; }
@media (min-width: 1024px) {
  .section-head { margin: 0 0 3rem; }
  .section-head[data-layout="split"] { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; }
  .section-head[data-layout="split"] .section-head__body { width: 50%; max-width: 700px; }
  .section-head[data-layout="split"] .section-head__text { max-width: 30.7em; }
  .section-head__controls { display: flex; margin: 0 0 -5px; }
}

/* Scroll reveal */
[data-reveal] { opacity: 0; transform: translateY(25px); transition: opacity 0.45s linear, transform 0.85s var(--ease-out); }
[data-reveal="in"] { opacity: 1; transform: translateY(0); }
[data-reveal][data-reveal-delay="1"] { transition-delay: 0.1s; }
[data-reveal][data-reveal-delay="2"] { transition-delay: 0.2s; }
[data-reveal][data-reveal-delay="3"] { transition-delay: 0.3s; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .btn::before, .link__icon svg { transition: none; animation: none !important; }
}

/* Generic horizontal slider track (scroll-snap based) */
.slider { position: relative; }
.slider__track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
  list-style: none;
  gap: var(--slide-gap, 6px);
}
.slider__track::-webkit-scrollbar { display: none; }
.slider__item { flex: 0 0 var(--slide-w, 85%); scroll-snap-align: start; min-width: 0; }

/* --------------------------------------------------------------------------
   7. Header & navigation
   -------------------------------------------------------------------------- */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  color: var(--color-dark);
  transition: transform 0.35s var(--ease-out), background-color 0.35s, color 0.35s;
}
.header[data-hidden="true"] { transform: translateY(-100%); }

.header__bar { background-color: var(--color-primary); height: var(--topbar); }
.header__bar-row {
  width: 100%; max-width: var(--container-max); margin: 0 auto;
  padding: 0 var(--gutter);
  height: 100%;
  display: flex; align-items: center; justify-content: flex-end;
}
.header__bar-list { display: flex; gap: 20px; list-style: none; }
.header__bar-item { display: none; }
.header__bar-item:first-child { display: block; }
.header__bar-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; line-height: 1;
  color: var(--color-dark);
}
.header__bar-link svg { width: 14px; height: 14px; }
.header__bar-link:hover { color: var(--color-white); }

.header__main {
  height: var(--header-h);
  background-color: var(--color-bg);
  border-bottom: 1px solid var(--color-line);
  transition: background-color 0.35s, border-color 0.35s;
}
.header__row {
  width: 100%; max-width: var(--container-max); margin: 0 auto;
  padding: 0 var(--gutter);
  height: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.header__logo { position: relative; z-index: 2; display: block; width: 190px; flex: 0 0 auto; }
.header__logo svg { width: 100%; height: auto; }
.header__logo svg * { fill: #33291f; transition: fill 0.35s; }

.header__actions { display: none; align-items: center; gap: 1.5rem; margin-left: auto; }
.header__phone {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 500; font-size: 16px;
  padding: 8px 0;
  transition: color 0.2s;
}
.header__phone svg { width: 18px; height: 18px; }
.header__phone svg path { stroke: currentColor; }
.header__phone:hover { color: var(--color-primary); }
.header__contact {
  font-weight: 500; font-size: 16px;
  border-bottom: 1px solid currentColor;
  padding: 0 0 2px;
  transition: color 0.2s, border-color 0.2s;
}
.header__contact:hover { color: var(--color-primary); }

.header__toggle {
  position: relative; z-index: 2;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  background-color: var(--color-dark);
  border: 1px solid var(--color-primary);
  flex: 0 0 auto;
}
.header__toggle-icon,
.header__toggle-icon::before,
.header__toggle-icon::after {
  display: block;
  width: 20px; height: 2px;
  background-color: var(--color-white);
  transition: transform 0.3s, opacity 0.3s;
}
.header__toggle-icon { position: relative; }
.header__toggle-icon::before,
.header__toggle-icon::after { content: ""; position: absolute; left: 0; }
.header__toggle-icon::before { top: -6px; }
.header__toggle-icon::after { top: 6px; }
.header__toggle[aria-expanded="true"] .header__toggle-icon { background-color: transparent; }
.header__toggle[aria-expanded="true"] .header__toggle-icon::before { transform: translateY(6px) rotate(45deg); }
.header__toggle[aria-expanded="true"] .header__toggle-icon::after { transform: translateY(-6px) rotate(-45deg); }

/* Light (overlay) variant: transparent over the hero */
.header[data-variant="overlay"] { color: var(--color-white); }
.header[data-variant="overlay"] .header__main { background-color: transparent; border-color: transparent; }
.header[data-variant="overlay"] .header__logo svg * { fill: var(--color-white); }
/* Scrolled: solid dark bar on every variant */
.header[data-scrolled="true"] { color: var(--color-white); }
.header[data-scrolled="true"] .header__main { background-color: var(--color-dark); border-color: var(--color-dark); }
.header[data-scrolled="true"] .header__logo svg * { fill: var(--color-white); }
/* Menu open: dark */
.header[data-menu="open"] { color: var(--color-white); }
.header[data-menu="open"] .header__logo svg * { fill: var(--color-white); }

/* Navigation ---------------------------------------------------------- */
.nav { }
.nav__list { list-style: none; }
.nav__item { position: relative; }
.nav__link { display: inline-flex; align-items: center; font-weight: 500; }
.nav__toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px;
  flex: 0 0 auto;
}
.nav__toggle svg { width: 12px; height: 8px; transition: transform 0.2s; }
.nav__toggle svg path { stroke: currentColor; }
.nav__toggle[aria-expanded="true"] svg { transform: scaleY(-1); }
.nav__sublist { list-style: none; }
.nav__sublink { display: inline-block; }
.nav__extra { }
.nav__secondary { list-style: none; }
.nav__secondary-link { display: inline-flex; align-items: center; gap: 8px; }
.nav__secondary-link svg { width: 16px; height: 16px; }
.nav__actions { display: flex; flex-direction: column; gap: 14px; }

@media (max-width: 1023.98px) {
  .nav {
    position: fixed; inset: 0;
    height: 100vh; height: 100dvh;
    padding: calc(var(--topbar) + var(--header-h) + 12px) 0 0;
    background-color: var(--color-dark);
    color: var(--color-white);
    transform: translateY(-120%);
    opacity: 0;
    transition: transform 0.6s cubic-bezier(0.405, 0, 0.025, 1), opacity 0.4s;
    overflow: auto;
  }
  .nav[data-state="open"] { transform: translateY(0); opacity: 1; transition: transform 0.35s cubic-bezier(0.405, 0, 0.025, 1), opacity 0.25s linear; }
  .nav__list { padding: 14px 12px 0; font-size: 24px; line-height: 1.06; }
  .nav__item { margin: 0 0 22px; opacity: 0; transform: translateY(8px); transition: opacity 0.3s, transform 0.3s; }
  .nav[data-state="open"] .nav__item { opacity: 1; transform: none; }
  .nav[data-state="open"] .nav__item:nth-child(1) { transition-delay: 0.15s; }
  .nav[data-state="open"] .nav__item:nth-child(2) { transition-delay: 0.2s; }
  .nav[data-state="open"] .nav__item:nth-child(3) { transition-delay: 0.25s; }
  .nav[data-state="open"] .nav__item:nth-child(4) { transition-delay: 0.3s; }
  .nav[data-state="open"] .nav__item:nth-child(5) { transition-delay: 0.35s; }
  .nav[data-state="open"] .nav__item:nth-child(6) { transition-delay: 0.4s; }
  .nav__link { gap: 11px; }
  .nav__toggle { margin-left: 8px; }
  .nav__submenu { display: none; }
  .nav__submenu[data-state="open"] { display: block; }
  .nav__sublist { columns: 2; padding: 20px 0 0; font-size: 14px; line-height: 1.36; }
  .nav__subitem { margin: 0 0 14px; break-inside: avoid; }
  .nav__sublink { color: rgba(255, 255, 255, 0.85); }
  .nav__mega-list { display: none; }
  .nav__mega-panels { padding: 16px 0 0; }
  .nav__mega-panel { margin: 0 0 18px; }
  .nav__mega-title { margin: 0 0 8px; font-size: 13px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-primary); }
  .nav__mega-panel .nav__sublist { columns: 1; padding: 0; }
  .nav__mega-panel .nav__subitem { margin: 0 0 10px; }
  .nav__extra { padding: 12px 12px 100px; }
  .nav__secondary { margin: 0 0 32px; font-size: 14px; line-height: 1.36; }
  .nav__secondary-item { margin: 0 0 14px; }
  .nav__secondary-link { color: rgba(255, 255, 255, 0.85); }
  .nav__contacts { margin: 0 0 27px; }
  .nav__contacts svg path { stroke: var(--color-primary); }
}

@media (min-width: 1024px) {
  .header__bar-item { display: block; }
  .header__actions { display: flex; }
  .header__toggle { display: none; }
  .header__logo { width: 228px; }

  .nav { margin-left: auto; }
  .nav__list { display: flex; gap: 1.5rem; }
  .nav__item { display: flex; align-items: center; gap: 6px; padding: 18px 0; }
  .nav__item[data-mobile-only] { display: none; }
  .nav__link {
    position: relative;
    height: 1.2em;
    overflow: hidden;
    font-size: 18px; line-height: 1.2;
  }
  .nav__link::after {
    content: attr(data-text);
    position: absolute; left: 0; top: 100%;
    opacity: 0;
  }
  .nav__link span { display: block; transition: transform 0.3s var(--ease-out); }
  .nav__link:hover span { transform: translateY(-100%); }
  .nav__link::after { transition: transform 0.3s var(--ease-out), opacity 0.2s; }
  .nav__link:hover::after { transform: translateY(-100%); opacity: 1; }
  .nav__toggle { width: 16px; height: 16px; pointer-events: none; }
  .nav__toggle svg { width: 11px; height: 7px; }
  .nav__item:hover .nav__toggle svg { transform: scaleY(-1); }

  .nav__submenu {
    position: absolute; left: 50%; top: 100%;
    transform: translate(-50%, 10px);
    min-width: 260px;
    padding: 26px 28px;
    background-color: var(--color-dark);
    color: var(--color-white);
    opacity: 0; visibility: hidden;
    transition: opacity 0.2s, transform 0.2s, visibility 0s 0.2s;
    box-shadow: 0 20px 40px rgba(38, 25, 11, 0.15);
  }
  .nav__item:hover .nav__submenu,
  .nav__item:focus-within .nav__submenu { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
  .nav__sublist { font-size: 15px; line-height: 1.3; }
  .nav__subitem { margin: 0 0 0.85rem; }
  .nav__subitem:last-child { margin: 0; }
  .nav__sublink { color: rgba(255, 255, 255, 0.85); white-space: nowrap; }
  .nav__sublink:hover { color: var(--color-primary); }

  /* Services mega menu: services on the left, hovered service's links on the right */
  .nav__submenu[data-layout="mega"] { left: 0; transform: translate(0, 10px); min-width: 680px; padding: 0; }
  .nav__item:hover .nav__submenu[data-layout="mega"],
  .nav__item:focus-within .nav__submenu[data-layout="mega"] { transform: translate(0, 0); }
  .nav__submenu[data-layout="mega"] { display: flex; }
  .nav__mega-list { list-style: none; flex: 0 0 auto; min-width: 280px; padding: 26px 28px; border-right: 1px solid rgba(250, 248, 245, 0.15); }
  .nav__mega-item { margin: 0 0 0.35rem; }
  .nav__mega-item:last-child { margin: 0; }
  .nav__mega-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 10px 9px 12px; margin: 0 -12px; font-family: var(--font-heading); font-weight: 700; font-size: 18px; line-height: 1.2; color: var(--color-white); white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease; }
  .nav__mega-link svg { flex: 0 0 auto; width: 22px; height: 22px; padding: 5px; background-color: var(--color-primary); }
  .nav__mega-link svg path { stroke: #fff; }
  .nav__mega-item[data-active="true"] .nav__mega-link { background-color: rgba(255, 255, 255, 0.06); color: #fff; }
  .nav__mega-panels { position: relative; flex: 1 1 auto; min-width: 300px; padding: 26px 32px; }
  .nav__mega-panel { display: none; }
  .nav__mega-panel[data-active="true"] { display: block; animation: mega-in 0.25s var(--ease-out) both; }
  @keyframes mega-in { from { opacity: 0; transform: translateX(8px); } to { opacity: 1; transform: none; } }
  .nav__mega-title { display: none; }
  .nav__mega-panel .nav__subitem { margin: 0 0 0.9rem; }
  .nav__mega-panel .nav__subitem:last-child { margin: 0; }

  .nav__extra { display: none; }
}

/* Offset page content under the fixed header (except overlay layouts) */
.page__main { padding-top: calc(var(--topbar) + var(--header-h)); }
.page[data-header="overlay"] .page__main { padding-top: 0; }

/* --------------------------------------------------------------------------
   8. Call-to-action panel + footer
   -------------------------------------------------------------------------- */
.cta {
  position: relative; z-index: 2;
  width: 100%; max-width: 1230px;
  margin: var(--section) auto 0;
  padding: 0 var(--gutter);
}
.cta__panel { display: flex; flex-direction: column; background-color: var(--color-primary); }
.cta__body { padding: 26px 20px 20px; }
.cta__body .eyebrow { align-self: flex-start; }
.cta__title { margin: 0 0 0.9rem; }
.cta__text { max-width: 35em; }
.cta__actions { display: flex; flex-direction: column; gap: 12px; margin: 1.6rem 0 0; }
.cta__media { display: none; }
.cta__image { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 576px) { .cta__actions { flex-direction: row; } }
@media (min-width: 768px) {
  .cta__panel { flex-direction: row; height: 340px; background-color: transparent; }
  .cta__body { display: flex; flex-direction: column; justify-content: center; width: 100%; padding: 1.5rem; background-color: var(--color-primary); }
  .cta__media { display: block; flex: 0 0 auto; width: 340px; }
  .cta__image { clip-path: polygon(0 0, 100% 0, 100% 100%, 26% 100%, 26% 62%, 0 62%); }
}
@media (min-width: 1024px) {
  .cta__panel { height: 420px; }
  .cta__body { padding: 2rem; }
  .cta__media { width: 488px; }
  .cta__actions { margin-top: 1rem; gap: 1rem; }
}

.footer {
  background-color: var(--color-dark);
  color: var(--color-white);
  margin-top: -90px;
  padding: 150px 0 0;
}
.cta + .footer { }
.footer__inner { }
.footer__grid { display: flex; flex-direction: column; gap: 2.3rem; }
.footer__brand { }
.footer__logo { display: block; width: 190px; margin: 0 0 20px; }
.footer__meta { display: flex; gap: 1rem; font-size: 12px; line-height: 1.33; color: rgba(255, 255, 255, 0.7); margin: 0 0 14px; }
.footer__desc { font-size: 13px; line-height: 1.31; color: rgba(255, 255, 255, 0.7); margin: 0 0 14px; max-width: 269px; }
.footer__contacts { margin: 1.1rem 0 0; }
.footer__contacts svg path { stroke: var(--color-primary); }
.footer__nav { display: flex; flex-wrap: wrap; gap: 27px 0; }
.footer__col { width: 50%; }
.footer__col:nth-child(2n) { padding-left: 10px; }
.footer__col-title { font-weight: 500; font-size: 12px; line-height: 1.17; text-transform: uppercase; margin: 0 0 19px; }
.footer__links { list-style: none; font-size: 14px; line-height: 1.36; }
.footer__link-item { margin: 0 0 14px; }
.footer__link { color: rgba(255, 255, 255, 0.85); display: inline-block; }
.footer__link:hover { color: var(--color-primary); }
.footer__certs { display: flex; gap: 10px; }
.footer__cert { display: block; width: 42px; height: 58px; }
.footer__cert-image { width: 100%; height: 100%; object-fit: cover; }
.footer__bottom {
  border-top: 1px solid rgba(250, 248, 245, 0.2);
  margin: 2.3rem 0 0;
  padding: 24px 0 26px;
  display: flex; flex-direction: column; gap: 20px; align-items: center;
}
.footer__legal { display: flex; justify-content: center; gap: 12px; list-style: none; font-size: 12px; line-height: 1.33; }
.footer__legal-link { color: rgba(255, 255, 255, 0.7); }
.footer__legal-link:hover { color: var(--color-primary); }
.footer__copy { font-size: 12px; line-height: 1.33; color: rgba(255, 255, 255, 0.7); text-align: center; }

@media (min-width: 768px) { .footer { margin-top: -90px; padding: 150px 0 0; } }
@media (min-width: 1024px) {
  .footer { margin-top: -130px; padding: 190px 0 0; }
  .footer__grid { display: grid; grid-template-columns: minmax(200px, 269px) 1fr auto; gap: 2rem 3rem; align-items: start; }
  .footer__logo { width: 247px; margin: 0 0 26px; }
  .footer__desc { font-size: 14px; line-height: 1.36; margin: 0 0 16px; }
  .footer__nav { flex-wrap: nowrap; justify-content: space-between; max-width: 753px; gap: 2rem; }
  .footer__col { width: auto; }
  .footer__col:nth-child(2n) { padding-left: 0; }
  .footer__col-title { font-size: 13px; line-height: 1.23; }
  .footer__cert { width: 54px; height: 74px; }
  .footer__bottom { flex-direction: row; justify-content: space-between; margin-top: 70px; padding: 24px 0 32px; }
  .footer__legal { justify-content: flex-start; }
  .footer__copy { text-align: right; }
  .footer__bottom .socials__link { width: 32px; height: 32px; }
  .footer__bottom .socials__link svg { width: 14px; height: 14px; }
}

/* --------------------------------------------------------------------------
   9. Heroes
   -------------------------------------------------------------------------- */
/* Home video hero */
.hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 600px;
  padding: calc(var(--topbar) + var(--header-h) + 40px) 0 24px;
  color: var(--color-white);
  text-align: center;
  overflow: hidden;
}
.hero__media { position: absolute; inset: 0; background-color: var(--color-brown); }
.hero__media::after {
  content: "";
  position: absolute; inset: 0;
  background: rgba(0, 0, 0, 0.5) linear-gradient(180deg, rgba(0, 0, 0, 0.5) 10%, rgba(0, 0, 0, 0) 30%);
}
.hero__video { width: 100%; height: 100%; object-fit: cover; }
.hero__inner { position: relative; z-index: 2; width: 100%; padding: 0 var(--gutter); display: flex; flex-direction: column; flex: 1 1 auto; }
.hero__title { margin: 0 auto 50px; }
.hero__row { }
.hero__box { }
.hero__text { font-size: 16px; line-height: 1.25; }
.hero__actions { display: flex; flex-direction: column; gap: 14px; margin: 58px 0 0; }
@media (min-width: 768px) {
  .hero__title { max-width: 13em; }
  .hero__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-top: auto; }
  .hero__box {
    position: relative;
    width: 50%; max-width: 680px;
    padding: 1rem 2.5rem 1rem 1rem;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
    border: 1px solid var(--color-primary);
    clip-path: polygon(0 0, calc(100% - 36px) 0, calc(100% - 36px) 36px, 100% 36px, 100% 100%, 0% 100%);
    text-align: left;
  }
  .hero__box::after { content: ""; position: absolute; top: 0; right: 0; width: 36px; height: 36px; background-color: var(--color-primary); }
  .hero__actions { margin: 0; }
}
@media (min-width: 1024px) {
  .hero { min-height: calc(100vh - var(--topbar) - 2rem); align-items: stretch; }
  .hero__title { margin: auto; }
  .hero__actions { flex-direction: row; }
}

/* Two-column hero (image right, text left) */
.hero-split { border-bottom: 1px solid var(--color-line); }
.hero-split__media { position: relative; display: block; padding-top: 56.27%; overflow: hidden; }
.hero-split__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-split__body { padding: 23px 12px 25px; }
.hero-split__title { }
.hero-split__text { font-size: 16px; line-height: 1.25; margin: 0 0 1.95rem; max-width: 36em; }
.hero-split__actions { }
.hero-split__contacts { display: flex; flex-direction: column; gap: 23px; margin: -0.4rem 0 0; }
.hero-split__contacts .contacts__link { color: var(--color-dark); }
.hero-split__contacts .contacts__link svg path { stroke: var(--color-primary); }
@media (min-width: 1024px) {
  .hero-split { display: flex; flex-direction: row-reverse; padding: 0 0 24px; }
  .hero-split__media { width: 50%; flex: 0 0 auto; padding: 0; min-height: 59.26vh; }
  .hero-split__body { width: 50%; display: flex; flex-direction: column; padding: 0 24px 0 var(--gutter); }
  .hero-split__text { font-size: 18px; line-height: 1.22; }
  .hero-split__actions { margin-top: auto; }
  .hero-split__contacts { flex-direction: row; justify-content: space-between; align-items: flex-end; margin-top: auto; }
}
@media (min-width: 1400px) {
  .hero-split { padding: 0 0 32px; }
  .hero-split__body { padding: 0 32px; }
}

/* Full-width image banner hero (projects) */
.hero-banner {
  position: relative;
  display: flex; align-items: flex-end;
  padding: calc(var(--topbar) + var(--header-h) + 40px) 0 51px;
  min-height: 520px;
  color: var(--color-white);
  text-align: center;
}
.hero-banner__media { position: absolute; inset: 0; }
.hero-banner__media::after {
  content: "";
  position: absolute; inset: 0;
  background: rgba(0, 0, 0, 0.5) linear-gradient(180deg, rgba(0, 0, 0, 0.5) 10%, rgba(0, 0, 0, 0) 30%);
}
.hero-banner__image { width: 100%; height: 100%; object-fit: cover; }
.hero-banner__inner { position: relative; z-index: 2; width: 100%; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--gutter); display: flex; flex-direction: column; }
.hero-banner__title { margin: 0 0 1.6rem; }
.hero-banner__box {
  --cut: 16px;
  position: relative;
  padding: 0.8rem 1rem 1rem 0.9rem;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(5px);
  border: 1px solid var(--color-primary);
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, calc(100% - var(--cut)) var(--cut), 100% var(--cut), 100% 100%, 0% 100%);
  text-align: left;
}
.hero-banner__box::after { content: ""; position: absolute; top: 0; right: 0; width: var(--cut); height: var(--cut); background-color: var(--color-primary); }
.hero-banner__text { font-size: 16px; line-height: 1.25; }
@media (min-width: 768px) {
  .hero-banner__title { max-width: 13em; margin: 0 auto 36px; }
  .hero-banner__box { --cut: 36px; width: 70%; max-width: 780px; margin: auto; padding: 1rem 2.5rem 1rem 1rem; }
}
@media (min-width: 1024px) { .hero-banner { padding-top: calc(var(--topbar) + var(--header-h) + 76px); } }
@media (min-width: 1400px) {
  .hero-banner { padding: calc(var(--topbar) + var(--header-h) + 8vh) 0 11vh; }
  .hero-banner__box { padding: 1rem 3.5rem 1.3rem 1.4rem; }
  .hero-banner__text { font-size: 18px; line-height: 1.22; }
}

/* Centred text hero (news) */
.hero-text { text-align: center; padding: 24px 0 0; }
.hero-text__inner { }
.hero-text__title { margin: 0; }
.hero-text__menu { margin: 1.5rem 0 0; }
@media (min-width: 1024px) { .hero-text { padding: 40px 0 0; } }

/* In-page tab menu (About us / Our Leaders) */
.page-menu { border-bottom: 1px solid var(--color-line); }
.page-menu__list { display: flex; gap: 1.5rem; list-style: none; }
.page-menu__link {
  position: relative;
  display: flex; align-items: center;
  height: 60px;
  font-size: 16px;
  color: rgba(38, 25, 11, 0.6);
}
.page-menu__link::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 4px; background-color: transparent; transition: background-color 0.2s; }
.page-menu__link:hover { color: var(--color-dark); }
.page-menu__link[aria-current="page"] { color: var(--color-dark); }
.page-menu__link[aria-current="page"]::after { background-color: var(--color-primary); }
.page-menu[data-variant="center"] .page-menu__list { justify-content: center; }
@media (min-width: 1024px) {
  .page-menu__list { gap: 2rem; }
  .page-menu__link { height: 74px; font-size: 18px; }
}

/* --------------------------------------------------------------------------
   10. Services slider
   -------------------------------------------------------------------------- */
.services { padding: 50px 0 0; }
.services__inner { }
.services .slider { --slide-gap: 6px; --slide-w: 85%; }
@media (min-width: 640px) { .services .slider { --slide-w: calc(50% - 3px); } }
@media (min-width: 1024px) {
  .services { padding: 110px 0 0; }
  .services .slider { --slide-w: calc((100% - 12px) / 3); }
}

.service-card {
  position: relative;
  display: block;
  height: 390px;
  color: var(--color-white);
  overflow: hidden;
}
.service-card__media { height: 100%; position: relative; }
.service-card__media::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); }
.service-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.service-card__overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 1.25rem;
  text-align: center;
}
.service-card__title { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: clamp(1.25rem, 1.67vw, 2rem); line-height: 1.2; margin: auto 0 0.5rem; }
.service-card__text { max-width: 30em; margin: 0 0 0.75rem; overflow: hidden; }
.service-card__cta { }
@media (max-width: 1023.98px) {
  .service-card__cta { width: 100%; margin-top: auto; }
}
@media (min-width: 1024px) {
  .service-card { height: auto; aspect-ratio: 1 / 1; }
  .service-card__overlay { padding: 2rem; }
  .service-card__title { margin: 0 0 0.7rem; }
  .service-card__text { margin: 0; max-height: 0; transform: scaleY(0); transform-origin: center; transition: max-height 0.5s, transform 0.4s; }
  .service-card__cta { margin: 0.6rem 0 0; }
  .service-card:hover .service-card__image { transform: scale(1.1); transition-duration: 6s; }
  .service-card:hover .service-card__text { max-height: 120px; transform: scaleY(1); }
  .service-card:hover .service-card__cta { color: var(--color-dark); }
  .service-card:hover .service-card__cta::before { transform: skew(30deg) translate3d(0, 0, 0); }
  .service-card:hover .service-card__cta svg path { stroke: var(--color-dark); }
}

/* --------------------------------------------------------------------------
   11. Partners logo marquee
   -------------------------------------------------------------------------- */
.partners { padding: 50px 0 0; overflow: hidden; }
.partners__inner { }
.partners__marquee {
  position: relative;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  padding: 20px 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.partners__list {
  display: flex;
  align-items: center;
  gap: 78px;
  list-style: none;
  width: max-content;
  animation: partners-scroll 60s linear infinite;
}
.partners__marquee:hover .partners__list { animation-play-state: paused; }
.partners__item { flex: 0 0 auto; }
.partners__logo { display: block; width: auto; height: 34px; max-width: 160px; object-fit: contain; }
.partners__text { max-width: 44em; margin: 2rem auto 0; text-align: center; }
@keyframes partners-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (min-width: 1024px) {
  .partners { padding: 136px 0 0; }
  .partners__marquee { padding: 30px 0; }
  .partners__logo { height: 40px; max-width: 200px; }
}
@media (prefers-reduced-motion: reduce) { .partners__list { animation: none; } }

/* --------------------------------------------------------------------------
   12. Featured projects (dark stage) & project card
   -------------------------------------------------------------------------- */
.projects { padding: 36px 0 0; }
.projects__inner { }
.projects__stage {
  position: relative;
  background-color: var(--color-dark);
  color: var(--color-white);
  padding: 32px 0 36px;
}
.projects .slider { --slide-gap: 24px; --slide-w: 82%; padding: 0 var(--gutter); }
.projects .slider .slider__track { scroll-padding: 0 var(--gutter); }
.projects .slider .slider__item { scroll-snap-align: center; }
.projects__prev,
.projects__next {
  position: absolute; top: 40%; z-index: 3;
  display: none;
  align-items: center; justify-content: center;
  width: 52px; height: 52px;
  background-color: var(--color-white);
  transition: background-color 0.2s;
}
.projects__prev { left: var(--gutter); }
.projects__next { right: var(--gutter); }
.projects__prev svg path,
.projects__next svg path { stroke: var(--color-dark); transition: stroke 0.2s; }
.projects__prev:hover,
.projects__next:hover { background-color: var(--color-primary); }
.projects__decor-left,
.projects__decor-right { display: none; }
@media (min-width: 1024px) {
  .projects { padding: 94px 0 0; }
  .projects__stage { padding: 60px 0 0; }
  .projects .slider { --slide-w: 44vw; padding: 0 0 60px; }
  .projects .slider .slider__track { padding: 0 28vw; scroll-padding: 0 28vw; }
  .projects__prev,
  .projects__next { display: flex; top: 34%; }
  .projects__prev { left: 3rem; }
  .projects__next { right: 3rem; }
  /* decorative geometric marks */
  .projects__decor-left,
  .projects__decor-right { display: block; position: absolute; bottom: 0; }
  .projects__decor-left { left: 0; width: 5vw; max-width: 266px; aspect-ratio: 1 / 1; transform: translate(66%, 36%); }
  .projects__decor-left::before { content: ""; position: absolute; left: 0; top: 0; width: 18%; aspect-ratio: 1 / 1; background-color: var(--color-brown); }
  .projects__decor-left::after { content: ""; position: absolute; right: 0; bottom: 0; width: 51%; aspect-ratio: 1 / 1; background-color: var(--color-primary); transform: rotate(45deg) translate(-28%, 0); }
  .projects__decor-right {
    right: 0; width: 8vw; height: 6.56vw; max-width: 293px; max-height: 240px;
    background: linear-gradient(to right, #fff, #fff) right 18px top 0 / 33% 100% no-repeat;
  }
  .projects__decor-right::before,
  .projects__decor-right::after { content: ""; position: absolute; width: 16.38%; aspect-ratio: 1 / 1; background-color: var(--color-dark); }
  .projects__decor-right::before { left: 0; bottom: 0; }
  .projects__decor-right::after { right: 0; bottom: 15%; transform: rotate(45deg) translate(-43%, -12%); }
}
@media (min-width: 1400px) { .projects__stage { padding-top: 84px; } }

.project-card { display: flex; flex-direction: column; height: 100%; }
.project-card__media { }
.project-card__link { display: block; aspect-ratio: 1 / 1; overflow: hidden; }
.project-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.project-card__link:hover .project-card__image { transform: scale(1.04); }
.project-card__body { padding: 1.06em 2.13em 0 0; }
.project-card__tags { margin: 0 0 2em; }
.project-card__title { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: var(--text-h3); line-height: 1.2; margin: 0 0 0.5rem; }
.project-card__title-link:hover { color: var(--color-primary); }
.project-card__text { margin: 0 0 1.25rem; }
.project-card__more { gap: 0.75em; }
.project-card__more .link__icon { width: 1.25em; height: 1.25em; }
.project-card[data-variant="dark"] .project-card__title-link:hover { color: var(--color-primary); }
@media (min-width: 1024px) {
  .project-card__link { aspect-ratio: 459 / 306; }
  .project-card__body { padding-top: 1.9em; }
  .project-card[data-variant="dark"] .project-card__link { max-height: 50vh; aspect-ratio: auto; }
  .project-card[data-variant="dark"] .project-card__image { max-height: 50vh; }
}
@media (min-width: 1400px) {
  .project-card[data-variant="dark"] .project-card__link,
  .project-card[data-variant="dark"] .project-card__image { max-height: 55vh; }
}

/* Row variant used in project listing (text left, image right) */
.project-card[data-variant="row"] { flex-direction: column; height: auto; }
.project-card[data-variant="row"] .project-card__body { padding: 0; order: 1; }
.project-card[data-variant="row"] .project-card__media { order: 2; margin-top: 1.5rem; }
.project-card[data-variant="row"] .project-card__link { aspect-ratio: auto; height: 234px; }
.project-card[data-variant="row"] .project-card__tags { margin: 0 0 1.7em; }
.project-card[data-variant="row"] .project-card__text { margin: 0 0 1.6rem; }
@media (min-width: 768px) {
  .project-card[data-variant="row"] { flex-direction: row; gap: 1.5rem; align-items: flex-start; }
  .project-card[data-variant="row"] .project-card__body { flex: 1 1 auto; }
  .project-card[data-variant="row"] .project-card__media { flex: 0 0 46%; margin: 0; }
  .project-card[data-variant="row"] .project-card__link { height: auto; aspect-ratio: 306 / 230; }
}

/* --------------------------------------------------------------------------
   13. Testimonials
   -------------------------------------------------------------------------- */
.testimonials { padding: 58px 0 0; }
.testimonials__head { text-align: center; margin: 0 0 1.5rem; }
.testimonials__title { margin: 0; }
.testimonials .slider {
  --slide-gap: 24px; --slide-w: 295px;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  padding: 1.4rem 0;
}
.testimonials .slider .slider__track { padding: 0 var(--gutter); scroll-padding: 0 var(--gutter); }
.testimonials__prev,
.testimonials__next {
  position: absolute; top: 0; bottom: 0;
  display: none; align-items: center; justify-content: center;
  width: 84px;
  opacity: 0;
  transition: opacity 0.2s;
}
.testimonials__prev { left: 0; background: linear-gradient(to right, rgba(250, 248, 245, 0.85), transparent); }
.testimonials__next { right: 0; background: linear-gradient(to left, rgba(250, 248, 245, 0.85), transparent); }
.testimonials__prev svg,
.testimonials__next svg { width: 15px; height: 12px; }
.testimonials__prev svg path,
.testimonials__next svg path { stroke: var(--color-white); }
.testimonials__arrow { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; background-color: var(--color-dark); transition: background-color 0.2s; }
.testimonials__prev:hover .testimonials__arrow,
.testimonials__next:hover .testimonials__arrow { background-color: var(--color-primary); }
@media (min-width: 576px) { .testimonials .slider { --slide-w: 400px; } }
@media (min-width: 768px) { .testimonials .slider { --slide-w: 600px; } }
@media (min-width: 1024px) {
  .testimonials { padding: 120px 0 0; }
  .testimonials__head { margin: 0 0 2.7rem; }
  .testimonials .slider { --slide-w: calc(100vw - 120px); --slide-gap: 60px; padding: 1.9rem 0; }
  .testimonials .slider .slider__track { padding: 0 60px; scroll-padding: 0 60px; }
  .testimonials__prev,
  .testimonials__next { display: flex; }
  .testimonials .slider:hover .testimonials__prev,
  .testimonials .slider:hover .testimonials__next,
  .testimonials__prev:focus-visible,
  .testimonials__next:focus-visible { opacity: 1; }
}
@media (min-width: 1400px) { .testimonials { padding: 178px 0 0; } }
@media (min-width: 1800px) {
  .testimonials .slider { --slide-w: 1544px; --slide-gap: 84px; }
  .testimonials .slider .slider__track { padding: 0 calc((100vw - 1544px) / 2); scroll-padding: 0 calc((100vw - 1544px) / 2); }
  .testimonials__prev,
  .testimonials__next { width: calc((100vw - 1544px) / 2); }
  .testimonials__prev { justify-content: flex-start; padding-left: 2rem; }
  .testimonials__next { justify-content: flex-end; padding-right: 2rem; }
}

.testimonial { display: flex; flex-direction: column; }
.testimonial__media { position: relative; display: block; padding-top: 56%; overflow: hidden; }
.testimonial__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.testimonial__play {
  position: absolute; left: 50%; top: 50%;
  display: flex; align-items: center; justify-content: center;
  width: 52px; height: 52px;
  background-color: var(--color-white);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.2s, background-color 0.2s;
}
.testimonial__play svg { width: 16px; height: 16px; margin-left: 2px; }
.testimonial__media:hover .testimonial__play { transform: translate(-50%, -50%) scale(1.08); background-color: var(--color-primary); }
.testimonial__body { display: flex; flex-direction: column; padding: 1.2rem 0 0; }
.testimonial__quote {
  position: relative;
  padding: 2.2rem 0 0;
  font-size: 17px; line-height: 1.3;
  margin: 0 0 1.5rem;
}
.testimonial__quote::before {
  content: "";
  position: absolute; left: 0; top: 0;
  width: 24px; height: 19px;
  background: url("data:image/svg+xml,%3csvg width='31' height='24' viewBox='0 0 31 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.8891 0V6.30168C9.45203 6.90503 8.39446 8.24581 8.39446 11.5307H13.2857V24H0V13.3408C0 4.02235 5.25 0.804469 12.8891 0ZM30.6027 0V6.30168C27.1656 6.90503 26.108 8.24581 26.108 11.5307H30.9993V24H17.7136V13.3408C17.7136 4.02235 22.9636 0.804469 30.6027 0Z' fill='%2326190B'/%3e%3c/svg%3e") 0 0 / contain no-repeat;
}
.testimonial__author { margin-top: auto; color: var(--color-brown); font-size: 14px; }
.testimonial__name { margin: 0 0 0.5rem; }
.testimonial__logo { max-width: 100px; max-height: 14px; width: auto; height: auto; }
@media (min-width: 1024px) {
  .testimonial { flex-direction: row; gap: 32px; }
  .testimonial__media { width: 61.65%; height: 400px; flex: 0 0 auto; padding: 0; }
  .testimonial__play { width: 84px; height: 84px; }
  .testimonial__body { padding: 0; }
  .testimonial__quote { font-size: 20px; line-height: 1.3; padding-top: 3rem; }
  .testimonial__quote::before { width: 31px; height: 24px; }
}
@media (min-width: 1400px) {
  .testimonial__media { height: 450px; }
  .testimonial__logo { max-width: 110px; max-height: 16px; }
}
@media (min-width: 1800px) { .testimonial__media { height: 535px; } }

/* --------------------------------------------------------------------------
   14. Advantages (sticky aside + scrolling list)
   -------------------------------------------------------------------------- */
.advantages { padding: 58px 0 0; }
.advantages__inner { }
.advantages__aside { }
.advantages__title { margin: 0 0 0.75rem; }
.advantages__text { }
.advantages__links {
  display: flex;
  height: 52px;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  margin: 1.35rem 0 2.6rem;
}
.advantages__links .link { width: 100%; justify-content: space-between; }
.advantages__links .link:first-child { padding-right: 1rem; }
.advantages__links .link:last-child { border-left: 1px solid var(--color-line); padding-left: 1rem; }
.advantages__list { display: flex; flex-direction: column; gap: 2.5rem; list-style: none; }
.advantages__item { opacity: 0.3; transition: opacity 0.5s linear; }
.advantages__item[data-state="active"] { opacity: 1; }
.advantages__heading { font-size: clamp(2.125rem, 3.85vw, 4.625rem); line-height: 1.1; color: var(--color-dark); }
  display: inline-block;
  width: 12px; height: 12px;
  margin: 0 0 0 0.5rem;
  background-color: var(--color-primary);
  transform: rotate(0) scale(0);
  transition: transform 0.5s linear;
}
.advantages__desc { margin: 1rem 0 0; font-size: 16px; line-height: 1.25; }
.advantages[data-variant="type2"] { padding-bottom: 58px; }
@media (min-width: 768px) {
  .advantages__links { gap: 2rem; }
  .advantages__links .link { width: auto; }
  .advantages__links .link:first-child { padding-right: 0; }
  .advantages__links .link:last-child { border: 0; padding-left: 0; }
}
@media (min-width: 1024px) {
  .advantages { padding: 100px 0 0; }
  .advantages__inner { display: flex; align-items: flex-start; }
  .advantages__aside { position: sticky; top: 150px; width: 36.27%; flex: 0 0 auto; }
  .advantages__title { margin: 0 0 1rem; }
  .advantages__links { margin-bottom: 0; }
  .advantages__list { padding: 0 0 0 60px; gap: 3rem; }
  .advantages[data-variant="type2"] { padding-bottom: 100px; }
}
@media (min-width: 1400px) {
  .advantages { padding: 142px 0 0; }
  .advantages__aside { padding-top: 10px; }
  .advantages__list { padding-left: 135px; gap: 110px; }
  .advantages__desc { margin: 1.1rem 0 0; font-size: 20px; line-height: 1.3; }
}

/* --------------------------------------------------------------------------
   15. News slider & card
   -------------------------------------------------------------------------- */
.news { background-color: var(--color-sand); padding: 50px 0; margin: var(--section) 0 0; }
.news__inner { }
.news .slider { --slide-gap: 20px; --slide-w: 85%; }
.news__mobile-cta { text-align: center; margin: 1.5rem 0 0; }
@media (min-width: 640px) { .news .slider { --slide-w: calc(50% - 10px); } }
@media (min-width: 1024px) {
  .news { padding: 100px 0; }
  .news .slider { --slide-w: calc((100% - 60px) / 4); }
  .news__mobile-cta { display: none; }
}

.news-card { display: flex; flex-direction: column; height: 100%; background-color: var(--color-white); padding: 1rem; }
.news-card__media { position: relative; display: block; padding-top: 56%; margin: 0 0 12px; flex: 0 0 auto; overflow: hidden; }
.news-card__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.news-card__media:hover .news-card__image { transform: scale(1.04); }
.news-card__body { display: flex; flex-direction: column; flex: 1 1 auto; }
.news-card__category {
  align-self: flex-start;
  padding: 0 7px;
  height: 20px; line-height: 20px;
  background-color: var(--color-sand);
  font-weight: 500; font-size: 10px; text-transform: uppercase;
  color: rgba(38, 25, 11, 0.6);
}
.news-card__title { font-size: var(--text-h4); line-height: 1.33; margin: 0.5rem 0; }
.news-card__title-link:hover { color: var(--color-primary); }
.news-card__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 0 24px;
}
.news-card__more { align-self: flex-start; margin-top: auto; }
@media (min-width: 1400px) {
  .news-card { padding: 1.25rem; }
  .news-card__media { margin: 0 0 1rem; }
  .news-card__category { padding: 1px 6px 0; font-size: 11px; }
  .news-card__title { margin: 0.9rem 0 0.4rem; }
  .news-card__excerpt { margin: 0 0 3rem; }
}

/* --------------------------------------------------------------------------
   16. Feature rows (image + text, alternating)
   -------------------------------------------------------------------------- */
.feature { padding: 42px 0 0; }
.feature__inner { }
.feature__item { display: flex; flex-direction: column; background-color: var(--color-white); }
.feature__item:nth-child(2n) { background-color: var(--color-sand); }
.feature[data-variant="sand"] .feature__item { background-color: var(--color-sand); }
.feature__media { }
.feature__figure { height: 234px; }
.feature__image { width: 100%; height: 100%; object-fit: cover; }
.feature__body { padding: 26px 20px; }
.feature__title { margin: 0 0 1.05rem; }
.feature__text { margin: 0 0 0.75rem; }
.feature__text:last-child { margin: 0; }
.feature__list { margin: 0 0 0.85rem; }
.feature__list[data-columns="2"] {
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  padding: 1rem 0 0.55rem;
  margin: 1rem 0 0.85rem;
}
.feature__hidden { }
.feature__hidden[hidden] { display: none; }
.feature__more { margin: 0.3rem 0 0; }
.feature__actions { margin: 1.5rem 0 0; }
@media (min-width: 1024px) {
  .feature { padding: 80px 0 0; }
  .feature__item { flex-direction: row; }
  .feature__item:nth-child(2n) { flex-direction: row-reverse; }
  .feature__media { width: 50%; flex: 0 0 auto; }
  .feature__figure { height: 100%; }
  .feature__body { width: 50%; padding: 40px; }
}
@media (min-width: 1400px) {
  .feature { padding: 136px 0 0; }
  .feature__body { padding: 84px 68px; }
  .feature[data-variant="sand"] .feature__body { padding: 58px 52px; }
  .feature__title { margin: 0 0 20px; }
  .feature__more { margin-top: 1.15rem; }
  .feature__list { margin: 0 0 1rem; }
  .feature__list[data-columns="2"] { padding: 1.2rem 0 0.55rem; margin: 1.05rem 0 1rem; }
}

/* --------------------------------------------------------------------------
   17. Process steps with sticky visual + form card
   -------------------------------------------------------------------------- */
.steps { --line-spacing: 40px; background-color: var(--color-sand); margin: 42px 0 0; padding: 42px 0; }
.steps__inner { }
.steps__main { }
.steps__list { margin: 0 0 52px; }
.steps__item { position: relative; padding: 0 0 42px var(--line-spacing); }
.steps__item::before {
  content: "";
  position: absolute; left: 0; top: 12px; bottom: 0;
  width: 2px;
  background-image: linear-gradient(to bottom, var(--color-taupe) 40%, transparent 40%);
  background-size: 2px 8px;
  opacity: 0.5;
}
.steps__item::after {
  content: "";
  position: absolute; left: 0; top: 12px;
  width: 20px; height: 2px;
  background-image: linear-gradient(to right, var(--color-dark) 40%, transparent 40%);
  background-size: 8px 2px;
  opacity: 0.15;
  transition: opacity 0.3s;
}
.steps__item:last-child { padding-bottom: 0; }
.steps__item:last-child::before { display: none; }
.steps__item[data-state="active"]::after { opacity: 1; }
.steps__label { margin: 0 0 24px; }
.steps__item[data-state="active"] .steps__label { background-color: var(--color-primary); }
.steps__title { margin: 0 0 12px; }
.steps__text { }
.steps__aside { display: none; }
.steps__visual { }
.steps__image { width: 100%; height: 100%; object-fit: cover; }
.steps__form { }
@media (min-width: 768px) {
  .steps { padding-bottom: 100px; }
  .steps__inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
  .steps__main { flex: 1 1 auto; min-width: 0; }
  .steps__aside { display: block; position: sticky; top: calc(50vh - 162px); width: 260px; flex: 0 0 auto; }
  .steps__visual { aspect-ratio: 4 / 5; }
}
@media (min-width: 1024px) {
  .steps { --line-spacing: 60px; margin: 80px 0 0; padding: 80px 0; }
  .steps__inner { gap: 40px; }
  .steps__aside { width: 350px; top: calc(50vh - 218px); }
  .steps__item { padding-bottom: 60px; }
  .steps__item::after { width: 28px; }
  .steps__text { max-width: 39em; }
}
@media (min-width: 1400px) {
  .steps { margin: 138px 0 0; padding: 136px 0; }
  .steps__inner { gap: 64px; }
  .steps__list { margin: 0 0 136px; }
  .steps__item { padding-bottom: 100px; }
  .steps__item::after { width: 32px; }
  .steps__label { margin: 0 0 28px; }
  .steps__title { margin: 0 0 19px; }
  .steps__aside { width: 450px; top: calc(50vh - 281px); }
}

/* --------------------------------------------------------------------------
   18. Form card & form controls
   -------------------------------------------------------------------------- */
.form-card {
  --cut: 20px;
  position: relative;
  background-color: var(--color-white);
  padding: 26px 20px 20px;
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, calc(100% - var(--cut)) var(--cut), 100% var(--cut), 100% 100%, 0% 100%);
}
.form-card[data-cut="none"] { clip-path: none; }
.form-card__title { margin: 0 0 0.5rem; }
.form-card__text { margin: 0 0 2rem; }
@media (min-width: 768px) { .form-card { --cut: 32px; } }
@media (min-width: 1024px) {
  .form-card { padding: 40px; }
  .form-card__title { max-width: 15em; margin: 0 0 1rem; }
  .form-card__text { max-width: 35em; margin: 0 0 2.6rem; }
}
@media (min-width: 1400px) { .form-card { padding: 36px 32px 32px; } }

.form { }
.form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.form__field { grid-column: span 2; position: relative; }
.form__field[data-width="half"] { grid-column: span 1; }
.form__label {
  position: absolute; left: 10px; top: 0;
  transform: translateY(-50%);
  padding: 0 4px;
  background-color: var(--color-white);
  font-weight: 500; font-size: 10px; line-height: 1.2;
  letter-spacing: 0.02em; text-transform: uppercase;
  z-index: 1;
}
.form__input,
.form__select,
.form__textarea {
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border: 1px solid var(--color-line);
  background-color: var(--color-white);
  font-size: 14px;
  color: var(--color-dark);
  transition: border-color 0.2s;
  border-radius: 0;
}
.form__input::placeholder,
.form__textarea::placeholder { color: var(--color-taupe); }
.form__input:focus,
.form__select:focus,
.form__textarea:focus { outline: none; border-color: var(--color-dark); }
.form__select {
  -webkit-appearance: none; appearance: none;
  padding-right: 40px;
  background: var(--color-white) url("data:image/svg+xml,%3csvg width='14' height='9' viewBox='0 0 14 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M13 1L7 7L1 0.999999' stroke='%2326190b' stroke-width='2'/%3e%3c/svg%3e") right 14px center / 12px no-repeat;
  cursor: pointer;
}
.form__textarea { min-height: 136px; resize: vertical; }
.form__counter { position: absolute; right: 10px; top: 0; transform: translateY(-50%); padding: 0 4px; background-color: var(--color-white); font-size: 10px; color: var(--color-taupe); }
.form__file { padding: 8px 14px; font-size: 13px; }
.form__file::file-selector-button {
  font: inherit; font-weight: 500; font-size: 12px;
  border: 1px solid var(--color-line);
  background-color: var(--color-sand);
  color: var(--color-dark);
  padding: 4px 10px;
  margin-right: 12px;
  cursor: pointer;
}
.form__hint { display: block; margin: 6px 0 0; font-size: 11px; color: var(--color-muted); }
.form__check { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.3; cursor: pointer; }
.form__checkbox {
  -webkit-appearance: none; appearance: none;
  flex: 0 0 auto;
  width: 16px; height: 16px;
  margin: 1px 0 0;
  border: 1px solid var(--color-line);
  background-color: var(--color-sand);
  cursor: pointer;
  display: grid; place-content: center;
}
.form__checkbox::before {
  content: "";
  width: 8px; height: 8px;
  background-color: var(--color-primary);
  transform: scale(0);
  transition: transform 0.15s;
}
.form__checkbox:checked::before { transform: scale(1); }
.form__footer { margin: 1.5rem 0 0; }
.form__note { margin: 1rem 0 0; font-size: 11px; color: var(--color-muted); }
@media (max-width: 575.98px) { .form__field[data-width="half"] { grid-column: span 2; } }

/* Enquiry section: form card + side image */
.enquiry { background-color: var(--color-sand); padding: 42px 0; }
.enquiry__inner { }
.enquiry__layout { }
.enquiry__form { }
.enquiry__media { display: none; position: relative; }
.enquiry__image { width: 100%; height: 100%; object-fit: cover; }
.enquiry[data-variant="ltr"] { background-color: transparent; padding-bottom: 52px; }
.enquiry[data-variant="ltr"] .enquiry__media { display: block; height: 234px; }
@media (min-width: 1024px) {
  .enquiry { padding: 80px 0; }
  .enquiry__layout { display: flex; }
  .enquiry__media { display: block; width: 38.2%; flex: 0 0 auto; }
  .enquiry__media::after { content: ""; position: absolute; top: 0; right: 0; width: 32px; height: 32px; background-color: var(--color-sand); }
  .enquiry__image { position: absolute; inset: 0; }
  .enquiry__form { width: 100%; }
  .enquiry[data-variant="ltr"] .enquiry__layout { flex-direction: row-reverse; }
  .enquiry[data-variant="ltr"] .enquiry__media { height: auto; }
  .enquiry[data-variant="ltr"] .enquiry__media::after { right: auto; left: 0; background-color: var(--color-bg); }
}
@media (min-width: 1400px) {
  .enquiry { padding: 136px 0; }
  .enquiry[data-variant="ltr"] { padding-top: 152px; }
  .enquiry__form .form-card { padding: 52px; }
}

/* --------------------------------------------------------------------------
   19. Useful links block
   -------------------------------------------------------------------------- */
.links { padding: 37px 0 52px; }
.links__inner { }
.links__head { border-bottom: 1px solid var(--color-line); padding: 0 0 1.5rem; margin: 0 0 1.5rem; }
.links__head .eyebrow { margin: 0; }
.links__grid { display: flex; flex-direction: column; gap: 33px; }
.links__item { display: flex; flex-direction: column; }
.links__media { position: relative; display: block; padding-top: 56.13%; flex: 0 0 auto; overflow: hidden; }
.links__media::after { content: ""; position: absolute; right: 0; bottom: 0; width: 20px; height: 20px; background-color: var(--color-bg); }
.links__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.links__media:hover .links__image { transform: scale(1.04); }
.links__title { margin: 26px 0 8px; }
.links__title-link:hover { color: var(--color-primary); }
.links__text { font-size: 16px; line-height: 1.25; margin: 0 0 25px; }
.links__actions { margin-top: auto; }
.links__rule { display: none; }
@media (min-width: 768px) {
  .links__grid { flex-direction: row; gap: 24px; }
  .links__item { width: 33.333%; }
  .links__rule { display: block; margin: 1.5rem 0 0; }
}
@media (min-width: 1024px) { .links__item { padding-right: 40px; } }
@media (min-width: 1400px) {
  .links { padding: 136px 0 152px; }
  .links__head { padding: 0 0 1.6rem; margin: 0 0 2rem; }
  .links__grid { gap: 52px; }
  .links__item { padding-right: 106px; }
  .links__media { padding-top: 66.75%; }
  .links__media::after { width: 32px; height: 32px; }
  .links__title { margin: 31px 0 12px; }
  .links__text { font-size: 18px; line-height: 1.22; margin: 0 0 36px; }
  .links__rule { margin: 1.9rem 0 0; }
}

/* --------------------------------------------------------------------------
   20. About: video block & journey
   -------------------------------------------------------------------------- */
.video-block { background-color: var(--color-sand); padding: 60px 0; text-align: center; }
.video-block__inner { }
.video-block__title { max-width: 14em; margin: 0 auto 2rem; }
.video-block__media { position: relative; display: block; max-width: 918px; margin: 0 auto 1.5rem; aspect-ratio: 918 / 517; overflow: hidden; }
.video-block__image { width: 100%; height: 100%; object-fit: cover; }
.video-block__play {
  position: absolute; left: 50%; top: 50%;
  display: flex; align-items: center; justify-content: center;
  width: 64px; height: 64px;
  background-color: var(--color-white);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.2s, background-color 0.2s;
}
.video-block__play svg { width: 18px; height: 18px; margin-left: 3px; }
.video-block__media:hover .video-block__play { transform: translate(-50%, -50%) scale(1.08); background-color: var(--color-primary); }
.video-block__body { max-width: 700px; margin: 0 auto; }
.video-block__text { margin: 0 0 0.75rem; }
.video-block__actions { margin: 1.5rem 0 0; }
@media (min-width: 1024px) {
  .video-block { padding: 130px 0 90px; }
  .video-block__title { margin-bottom: 3.5rem; }
  .video-block__play { width: 84px; height: 84px; }
}

.journey { background-color: var(--color-sand); padding: 0 0 60px; }
.journey__inner { }
.journey__layout { display: flex; flex-direction: column; gap: 2rem; }
.journey__media { display: flex; gap: 6px; }
.journey__figure { flex: 1 1 0; aspect-ratio: 385 / 481; overflow: hidden; }
.journey__image { width: 100%; height: 100%; object-fit: cover; }
.journey__body { }
.journey__title { font-size: clamp(1.25rem, 1.6vw, 1.75rem); line-height: 1.25; margin: 0 0 1rem; }
.journey__text { max-width: 30em; }
@media (min-width: 1024px) {
  .journey { padding: 0 0 100px; }
  .journey__layout { flex-direction: row-reverse; align-items: center; gap: 4rem; }
  .journey__media { width: 50%; flex: 0 0 auto; }
  .journey__body { width: 50%; }
}

/* --------------------------------------------------------------------------
   21. Team grid & member modal
   -------------------------------------------------------------------------- */
.team { background-color: var(--color-sand); padding: 52px 0; }
.team__inner { }
.team__head { display: flex; flex-direction: column; margin: 0 0 2rem; }
.team__headline { }
.team__kicker { max-width: 21em; margin: 0 0 1rem; }
.team__title { max-width: 19em; }
.team__intro { }
.team__text { max-width: 40em; }
.team__grid { display: grid; grid-template-columns: 1fr; gap: 32px 4px; list-style: none; }
.team__item { }
@media (min-width: 576px) { .team__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) { .team__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) {
  .team__head { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 84px; }
  .team__headline { width: 50%; flex: 0 0 auto; }
  .team__kicker { margin: 0 0 1.5rem; }
  .team__title { margin: 0; }
  .team__grid { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1400px) {
  .team { padding: 136px 0; margin: 0 0 42px; }
  .team__head { margin: 0 0 52px; }
  .team__kicker { margin: 0 0 2.2rem; }
  .team__grid { gap: 42px 4px; }
}

.member { text-align: center; }
.member__button { display: block; width: 100%; text-align: center; }
.member__media { position: relative; display: block; padding-top: 100%; margin: 0 0 1.2rem; overflow: hidden; background-color: var(--color-white); }
.member__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.member__button:hover .member__image { transform: scale(1.04); }
.member__name { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: var(--text-h3); line-height: 1.2; margin: 0 0 14px; }
.member__role {
  display: inline-flex; align-items: center;
  min-height: 20px; padding: 2px 6px;
  background-color: var(--color-taupe);
  color: var(--color-white);
  font-weight: 500; font-size: 12px; line-height: 1.2; text-transform: uppercase;
}
@media (min-width: 1400px) { .member__role { min-height: 24px; padding: 4px 8px; font-size: 13px; } }

.modal {
  width: min(700px, calc(100% - 2rem));
  max-height: calc(100dvh - 88px);
  padding: 0;
  border: 0;
  background-color: var(--color-white);
  color: var(--color-dark);
  text-align: left;
  overflow: auto;
}
.modal::backdrop { background-color: rgba(38, 25, 11, 0.7); }
.modal__close {
  position: absolute; right: 1rem; top: 1rem;
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  background-color: var(--color-sand);
  transition: background-color 0.2s;
}
.modal__close:hover { background-color: var(--color-primary); }
.modal__close svg { width: 14px; height: 14px; }
.modal__header { display: flex; gap: 1rem; padding: 1.5rem 3.5rem 1.5rem 1rem; border-bottom: 1px solid var(--color-line); }
.modal__media { width: 120px; flex: 0 0 auto; aspect-ratio: 1 / 1; overflow: hidden; }
.modal__image { width: 100%; height: 100%; object-fit: cover; }
.modal__info { display: flex; flex-direction: column; }
.modal__name { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: var(--text-h3); line-height: 1.2; margin: 0 0 0.5rem; }
.modal__role {
  align-self: flex-start;
  display: inline-flex; align-items: center;
  min-height: 20px; padding: 2px 6px;
  margin: 0 0 0.75rem;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-weight: 500; font-size: 12px; text-transform: uppercase;
}
.modal__contacts { display: flex; flex-direction: column; gap: 0.25rem; margin: 0 0 0.5rem; }
.modal__contact { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 500; }
.modal__contact svg { width: 16px; height: 16px; }
.modal__contact svg path { stroke: var(--color-primary); }
.modal__contact:hover { color: var(--color-primary); }
.modal__social { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--color-line); margin-top: auto; }
.modal__social svg { width: 14px; height: 14px; }
.modal__social:hover { border-color: var(--color-primary); background-color: var(--color-primary); }
.modal__body { background-color: var(--color-sand); padding: 1.5rem 1rem; color: var(--color-muted); }
.modal__lead { color: var(--color-dark); margin: 0 0 0.5rem; }
.modal__text { margin: 0 0 0.5rem; }
.modal__text:last-child { margin: 0; }
@media (min-width: 768px) {
  .modal__header { padding: 26px 64px 26px 24px; gap: 1.5rem; }
  .modal__media { width: 212px; }
  .modal__name { margin: 0 0 0.65rem; }
  .modal__role { min-height: 24px; padding: 4px 8px; font-size: 13px; margin: 0 0 1rem; }
  .modal__contacts { font-size: 18px; line-height: 1.22; gap: 0.65rem; margin: 0 0 1rem; }
  .modal__social { width: 42px; height: 42px; }
  .modal__body { padding: 26px 24px; }
  .modal__lead { font-size: 14px; margin: 0 0 0.65rem; }
  .modal__text { margin: 0 0 0.75rem; }
}

/* --------------------------------------------------------------------------
   22. Careers: culture collage & job list
   -------------------------------------------------------------------------- */
.culture { padding: 42px 0 0; }
.culture__inner { }
.culture__layout { display: flex; flex-direction: column; gap: 2rem; }
.culture__media { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 4px; }
.culture__figure { overflow: hidden; }
.culture__figure:nth-child(1) { grid-column: 1; grid-row: 1; }
.culture__figure:nth-child(2) { grid-column: 1; grid-row: 2; }
.culture__figure:nth-child(3) { grid-column: 2; grid-row: 1 / span 2; }
.culture__image { width: 100%; height: 100%; object-fit: cover; }
.culture__body { }
.culture__title { margin: 0 0 1rem; }
.culture__text { margin: 0 0 0.75rem; }
@media (min-width: 1024px) {
  .culture { padding: 80px 0 0; }
  .culture__layout { flex-direction: row; align-items: center; gap: 3rem; }
  .culture__media { width: 50%; flex: 0 0 auto; aspect-ratio: 700 / 590; }
  .culture__body { width: 50%; padding-left: 2rem; }
}
@media (min-width: 1400px) { .culture { padding: 136px 0 0; } }

.jobs { padding: 60px 0; text-align: center; }
.jobs__inner { }
.jobs__title { margin: 0 0 1.5rem; }
.jobs__empty { max-width: 40em; margin: 0 auto; font-size: var(--text-h4); line-height: 1.33; }
.jobs__link { text-decoration: underline; }
.jobs__link:hover { color: var(--color-primary); }
@media (min-width: 1024px) { .jobs { padding: 100px 0 60px; } }

/* --------------------------------------------------------------------------
   23. Contact: map + office card
   -------------------------------------------------------------------------- */
.office { background-color: var(--color-sand); padding: 42px 0; }
.office__inner { }
.office__layout { display: flex; flex-direction: column; gap: 2rem; }
.office__map { position: relative; }
.office__frame { display: block; width: 100%; height: 320px; border: 0; filter: grayscale(1) contrast(1.05); }
.office__info { position: absolute; left: 0; bottom: 0; background-color: var(--color-white); padding: 1rem 1.25rem; }
.office__info-title { font-size: 14px; margin: 0 0 0.25rem; }
.office__info-text { font-size: 13px; color: var(--color-muted); }
.office__card { background-color: var(--color-dark); color: var(--color-white); padding: 1.5rem; }
.office__eyebrow { margin: 0 0 1rem; }
.office__title { margin: 0 0 0.75rem; }
.office__text { margin: 0 0 1.25rem; }
.office__contacts { margin: 0 0 1.5rem; }
.office__contacts .contacts__link svg path { stroke: var(--color-primary); }
.office__figure { aspect-ratio: 396 / 230; overflow: hidden; }
.office__image { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) {
  .office { padding: 80px 0; }
  .office__layout { flex-direction: row; align-items: stretch; gap: 0; }
  .office__map { flex: 1 1 auto; }
  .office__frame { height: 100%; min-height: 560px; }
  .office__card { width: 410px; flex: 0 0 auto; padding: 32px; display: flex; flex-direction: column; }
  .office__figure { margin-top: auto; }
}
@media (min-width: 1400px) { .office { padding: 136px 0; } }

/* --------------------------------------------------------------------------
   24. Projects listing with filter, and project detail
   -------------------------------------------------------------------------- */
.project-list { overflow: hidden; }
.project-list__inner { }
.project-list__head { }
.project-list__grid { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--color-line); list-style: none; }
.project-list__item { border-bottom: 1px solid var(--color-line); padding: 23px 12px 32px; }
.project-list__item[hidden] { display: none; }
.project-list .slider { --slide-gap: 0; --slide-w: 88%; border-top: 1px solid var(--color-line); }
.project-list .slider .slider__item { border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); padding: 23px 12px 32px; }
@media (min-width: 768px) {
  .project-list__grid { grid-template-columns: 1fr 1fr; }
  .project-list__item:nth-child(2n + 1) { border-right: 1px solid var(--color-line); }
  .project-list__item { padding: 24px 20px 32px; }
  .project-list .slider { --slide-w: 50%; }
  .project-list .slider .slider__item { padding: 24px 20px 32px; }
}
@media (min-width: 1024px) {
  .project-list__item { padding: 30px 24px 40px; }
  .project-list .slider .slider__item { padding: 30px 24px 40px; }
}

.filter { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 42px 0 24px; }
.filter__label { font-size: 16px; line-height: 1.25; color: var(--color-muted); }
.filter__dropdown { position: relative; }
.filter__toggle {
  display: flex; align-items: center; gap: 8px;
  font-size: 16px; line-height: 1.25;
  list-style: none;
  cursor: pointer;
}
.filter__toggle::-webkit-details-marker { display: none; }
.filter__toggle::after {
  content: "";
  width: 10px; height: 7px;
  background: url("data:image/svg+xml,%3csvg width='14' height='9' viewBox='0 0 14 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M13 1L7 7L1 0.999999' stroke='%2326190b' stroke-width='2'/%3e%3c/svg%3e") center / contain no-repeat;
  transition: transform 0.2s;
}
.filter__dropdown[open] .filter__toggle::after { transform: scaleY(-1); }
.filter__menu {
  position: absolute; left: 0; top: calc(100% + 8px);
  min-width: 200px;
  padding: 8px 0;
  background-color: var(--color-white);
  border: 1px solid var(--color-line);
  box-shadow: 0 12px 30px rgba(38, 25, 11, 0.12);
  list-style: none;
  z-index: 5;
}
.filter__link { display: block; padding: 8px 16px; font-size: 15px; }
.filter__link:hover { background-color: var(--color-sand); }
.filter__link[aria-pressed="true"] { color: var(--color-primary); }

.project { padding: 24px 0 0; }
.project__inner { }
.project__layout { display: flex; flex-direction: column; gap: 2rem; }
.project__body { }
.project__back { margin: 0 0 1.5rem; }
.project__title { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: var(--text-h1-alt); line-height: 1.14; margin: 0 0 1.5rem; }
.project__tags { margin: 0 0 1rem; }
.project__subtitle {
  font-weight: 500; font-size: 12px; line-height: 1.5; letter-spacing: 0.02em; text-transform: uppercase;
  color: var(--color-muted);
  border-bottom: 1px solid var(--color-line);
  padding: 0 0 1.25rem;
  margin: 0 0 1.5rem;
}
.project__content { }
.project__content h3 { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: clamp(1.25rem, 1.4vw, 1.6rem); line-height: 1.25; margin: 0 0 1rem; }
.project__content h4 { font-size: var(--text-h4); font-weight: 400; margin: 1.5rem 0 0.75rem; }
.project__content .kicker { display: block; margin: 0 0 0.5rem; }
.project__gallery { display: flex; flex-direction: column; gap: 6px; }
.project__row { display: grid; gap: 6px; }
.project__row[data-cols="2"] { grid-template-columns: 1fr 1fr; }
.project__row[data-cols="3"] { grid-template-columns: 1fr 1fr 1fr; }
.project__figure { overflow: hidden; }
.project__row[data-cols="2"] .project__figure { aspect-ratio: 508 / 338; }
.project__row[data-cols="3"] .project__figure { aspect-ratio: 338 / 506; }
.project__row[data-cols="1"] .project__figure { aspect-ratio: 1020 / 573; }
.project__image { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) {
  .project { padding: 40px 0 0; }
  .project__layout { flex-direction: row; gap: 4rem; align-items: flex-start; }
  .project__body { width: 42%; flex: 0 0 auto; position: sticky; top: calc(var(--topbar) + var(--header-h) + 24px); }
  .project__gallery { flex: 1 1 auto; min-width: 0; }
}
@media (min-width: 1400px) { .project__layout { gap: 6rem; } .project__body { width: 38%; } }

/* --------------------------------------------------------------------------
   25. News listing rows and article
   -------------------------------------------------------------------------- */
.news-section { padding: 42px 0 0; }
.news-section__inner { }
.news-section__head { display: flex; flex-direction: column; gap: 1rem; padding: 0 0 1.5rem; margin: 0 0 1.5rem; border-bottom: 1px solid var(--color-line); }
.news-section__title { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: var(--text-h3); line-height: 1.2; }
.news-section__controls { display: flex; align-items: center; gap: 1rem; }
.news-section .slider { --slide-gap: 20px; --slide-w: 85%; }
@media (min-width: 640px) { .news-section .slider { --slide-w: calc(50% - 10px); } }
@media (min-width: 1024px) {
  .news-section { padding: 80px 0 0; }
  .news-section__head { flex-direction: row; justify-content: space-between; align-items: center; }
  .news-section .slider { --slide-w: calc((100% - 60px) / 4); }
}

.article { padding: 24px 0 0; }
.article__inner { }
.article__head { text-align: center; }
.article__title { font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: var(--text-h1-alt); line-height: 1.14; max-width: 22em; margin: 0 auto 1.5rem; }
.article__meta { font-size: 13px; color: var(--color-muted); margin: 0 0 2rem; }
.article__meta-link { text-decoration: underline; }
.article__meta-link:hover { color: var(--color-primary); }
.article__cover { aspect-ratio: 16 / 9; overflow: hidden; margin: 0 0 2.5rem; }
.article__image { width: 100%; height: 100%; object-fit: cover; }
.article__body { }
.article__footer { display: flex; flex-direction: column; gap: 2rem; margin: 2.5rem 0 0; }
@media (min-width: 1024px) {
  .article { padding: 40px 0 0; }
  .article__cover { margin: 0 0 3.5rem; aspect-ratio: 1440 / 1030; max-height: 1030px; }
  .article__body { max-width: 918px; margin: 0 auto; }
  .article__footer { max-width: 918px; margin: 3rem auto 0; flex-direction: row; justify-content: space-between; align-items: center; }
}

.promo { position: relative; display: flex; align-items: center; min-height: 293px; color: var(--color-white); margin: 2.5rem 0 0; overflow: hidden; }
.promo__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.promo__body { position: relative; z-index: 2; padding: 2rem; max-width: 34em; }
.promo__title { margin: 0 0 0.75rem; }
.promo__text { margin: 0 0 1.5rem; }
.promo__actions { }

.author { display: flex; align-items: center; gap: 1rem; border: 1px solid var(--color-line); background-color: var(--color-white); padding: 0.75rem 1rem 0.75rem 0.75rem; }
.author__media { width: 60px; height: 60px; flex: 0 0 auto; overflow: hidden; }
.author__image { width: 100%; height: 100%; object-fit: cover; }
.author__body { }
.author__name { font-size: var(--text-h4); margin: 0 0 0.35rem; }
.author__row { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.author__role { display: inline-flex; align-items: center; height: 20px; padding: 0 6px; border: 1px solid var(--color-primary); font-weight: 500; font-size: 10px; text-transform: uppercase; color: var(--color-muted); }
.author__bio { font-size: 14px; }

.share { display: flex; align-items: center; gap: 1rem; }
.share__label { font-size: 16px; }
.share__list { display: flex; gap: 6px; }
.share__link,
.share__copy {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border: 1px solid var(--color-line);
  transition: background-color 0.2s, border-color 0.2s;
}
.share__link svg,
.share__copy svg { width: 14px; height: 14px; }
.share__link:hover,
.share__copy:hover { background-color: var(--color-primary); border-color: var(--color-primary); }
.share__copy[data-state="copied"]::after {
  content: "Copied";
  position: absolute; bottom: calc(100% + 6px); left: 50%;
  transform: translateX(-50%);
  padding: 2px 8px;
  background-color: var(--color-dark);
  color: var(--color-white);
  font-size: 11px;
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   26. Block-specific list / label elements (single-class equivalents of the
       generic .list / .eyebrow atoms)
   -------------------------------------------------------------------------- */
.feature__list { list-style: none; font-size: 16px; line-height: 1.25; }
.feature__list-item { position: relative; padding-left: 18px; margin: 0 0 8px; }
.feature__list-item::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 6px; height: 6px; background-color: var(--color-primary); }
.feature__list[data-columns="2"] { display: grid; grid-template-columns: 1fr 1fr; column-gap: 22px; }
@media (min-width: 1400px) {
  .feature__list { font-size: 18px; line-height: 1.22; }
  .feature__list-item { margin: 0 0 10px; }
  .feature__list[data-columns="2"] { column-gap: 40px; }
}

.steps__label {
  display: inline-flex; align-items: center;
  height: 24px; padding: 0 8px;
  margin: 0 0 24px;
  background-color: var(--color-taupe);
  color: var(--color-white);
  font-weight: 500; font-size: 13px; text-transform: uppercase;
  transition: background-color 0.3s;
}

.journey__text { font-weight: 500; font-size: 12px; line-height: 1.5; letter-spacing: 0.02em; text-transform: uppercase; color: var(--color-muted); }
.modal__lead { font-weight: 500; font-size: 12px; line-height: 1.43; letter-spacing: 0.02em; text-transform: uppercase; color: var(--color-dark); }
@media (min-width: 768px) { .modal__lead { font-size: 14px; } }

.services__grid { display: grid; grid-template-columns: 1fr; gap: 6px; list-style: none; }
.services__grid-item { }
@media (min-width: 640px) { .services__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .services__grid { grid-template-columns: repeat(3, 1fr); } }

/* Soft (sentence-case) headings used by editorial blocks */
.feature__title,
.journey__title {
  font-family: var(--font-body);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--text-h2-alt);
  line-height: 1.14;
}
.journey__title { font-size: clamp(1.25rem, 1.6vw, 1.75rem); line-height: 1.25; }
.steps__list { list-style: none; }
.member__name { display: block; }
.member__role { margin: 0 auto; }
.team__kicker { font-weight: 500; font-size: 14px; line-height: 1.43; letter-spacing: 0.02em; text-transform: uppercase; opacity: 0.7; }

/* --------------------------------------------------------------------------
   27. Refinements
   -------------------------------------------------------------------------- */
.culture__title,
.jobs__empty,
.article__body h2,
.article__body h3,
.project__content h3 {
  font-family: var(--font-body);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
.culture__title { font-size: var(--text-h2-alt); line-height: 1.14; }
.eyebrow { align-self: flex-start; }
.contacts__link { white-space: nowrap; }
.project-list[data-variant="slider"] { background-color: var(--color-sand); margin: 60px 0 0; padding: 60px 0 0; }
.project-list[data-variant="slider"] .slider__track { background-color: var(--color-bg); }
@media (min-width: 1024px) { .project-list[data-variant="slider"] { margin-top: 100px; padding-top: 100px; } }
.promo { max-width: 918px; margin-left: auto; margin-right: auto; }
.promo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(38, 25, 11, 0.85) 0%, rgba(38, 25, 11, 0.55) 55%, rgba(38, 25, 11, 0.2) 100%); z-index: 1; }
.author__bio { display: inline-flex; }

/* ==========================================================================
   SES Group theme + homepage blocks
   ========================================================================== */
.page[data-theme="ses"] {
  --color-dark: #1f2326;
  --color-brown: #2c3236;
  --color-muted: #5b6166;
  --color-taupe: #9aa1a6;
  --color-line: #d9dcde;
  --color-sand: #ecebe7;
  --color-bg: #f6f5f2;
  --color-primary: #c8102e;
  --color-grey: #e6e5e1;
  --font-heading: "Atlas Grotesk", "Archivo", "Inter", system-ui, sans-serif;
  --topbar: 0px;
}
.page[data-theme="ses"] h1, .page[data-theme="ses"] h2 { text-transform: uppercase; letter-spacing: -0.01em; font-weight: 800; line-height: 1.05; }
.page[data-theme="ses"] h3 { text-transform: none; letter-spacing: 0; font-weight: 800; }
.page[data-theme="ses"] .header__bar { display: none; }
.page[data-theme="ses"] .eyebrow { padding: 5px 13px; line-height: 24px; }
.page[data-theme="ses"] .section-head__title { margin: 0 0 1.4rem; }
.page[data-theme="ses"] .section-head__text { font-size: 14px; line-height: 1.4; }
.page[data-theme="ses"] .hero__eyebrow { align-self: flex-start; }
.page[data-theme="ses"] .btn[data-variant="whatsapp"] { --btn-color: #fff; --btn-bg: #25d366; --btn-border: #25d366; --btn-bg-hover: #1da851; --btn-color-hover: #fff; --btn-border-hover: #1da851; --btn-icon: #fff; --btn-icon-hover: #fff; width: 52px; padding: 0; }
.page[data-theme="ses"] .btn[data-variant="whatsapp"] svg { width: 22px; height: 22px; margin: 0; }
.page[data-theme="ses"] .btn[data-variant="whatsapp"] svg path { fill: #fff; stroke: none; }
.page[data-theme="ses"] .btn { --btn-icon: var(--color-white); }
.page[data-theme="ses"] .btn[data-variant="primary"] { --btn-color: #fff; --btn-icon: #fff; --btn-bg: var(--color-primary); --btn-border: var(--color-primary); --btn-bg-hover: var(--color-dark); --btn-color-hover: #fff; --btn-border-hover: var(--color-dark); --btn-icon-hover: #fff; }
.page[data-theme="ses"] .btn[data-variant="white"] { --btn-icon: var(--color-dark); --btn-icon-hover: #fff; }
.page[data-theme="ses"] .btn[data-variant="outline-dark"] { --btn-icon: var(--color-dark); --btn-icon-hover: #fff; }
.page[data-theme="ses"] .header__bar-link:hover { color: var(--color-dark); opacity: 0.7; }
.page[data-theme="ses"] .header__logo { width: 160px; }
.page[data-theme="ses"] .header__logo-image { display: block; height: 52px; width: auto; }
.page[data-theme="ses"] .header__logo-image { background: none; padding: 0; }
.page[data-theme="ses"] .nav__link, .page[data-theme="ses"] .header__phone { white-space: nowrap; }
@media (min-width: 1024px) { .page[data-theme="ses"] .nav__list { gap: 1.1rem; } .page[data-theme="ses"] .nav__link { font-size: 16px; } }
.page[data-theme="ses"] .eyebrow { background-color: var(--color-primary); }
.page[data-theme="ses"] .footer__logo-image { height: 64px; width: auto; }
.page[data-theme="ses"] .hero__title { max-width: 14em; }
.page[data-theme="ses"] .hero__media::after { background: linear-gradient(90deg, rgba(31, 35, 38, 0.85) 0%, rgba(31, 35, 38, 0.45) 60%, rgba(31, 35, 38, 0.2) 100%); }
.page[data-theme="ses"] .hero { text-align: left; }
.page[data-theme="ses"] .hero__title { margin-left: 0; }
.page[data-theme="ses"] .hero__inner { max-width: var(--container-max); margin: 0 auto; }
.page[data-theme="ses"] .footer__link:hover, .page[data-theme="ses"] .contacts__link:hover { color: #ff5a6e; }

.hero__eyebrow { display: inline-block; margin: 0 0 1.5rem; padding: 6px 10px; border: 1px solid rgba(255,255,255,0.4); font-weight: 500; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }
.hero__lead { max-width: 38em; font-size: var(--text-lead); line-height: 1.35; margin: 0 0 2rem; }
.hero__proof { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 1.5rem 0 0; }
.hero__chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: rgba(255,255,255,0.12); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,0.25); font-size: 13px; font-weight: 500; }
.hero__chip::before { content: ""; width: 7px; height: 7px; background: var(--color-primary); }
@media (min-width: 1024px) { .page[data-theme="ses"] .hero { min-height: calc(100vh - var(--topbar)); align-items: center; padding-bottom: 60px; } .page[data-theme="ses"] .hero__title { margin: 0 0 1.5rem; } }

/* Trust bar */
.trust { padding: 40px 0; border-bottom: 1px solid var(--color-line); }
.trust__label { text-align: center; margin: 0 0 1.5rem; }
.trust__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 40px; }
.trust__client { font-family: var(--font-heading); font-weight: 700; font-size: clamp(1.25rem, 1.8vw, 1.75rem); color: var(--color-taupe); letter-spacing: 0.01em; }
.trust__badges { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 28px; margin: 1.75rem 0 0; }
.trust__badge { height: 56px; width: auto; }
.trust__badge-text { display: inline-flex; align-items: center; height: 36px; padding: 0 12px; border: 1px solid var(--color-line); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; }
@media (min-width: 1024px) { .trust { padding: 52px 0; } }

/* Division gateway */
.divisions { padding: var(--section) 0 0; }
.divisions__grid { display: grid; grid-template-columns: 1fr; gap: 16px; list-style: none; margin: 2rem 0 0; }
@media (min-width: 640px) { .divisions__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .divisions__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.division-card { --accent: var(--color-primary); position: relative; display: block; height: 100%; aspect-ratio: 1 / 1; color: var(--color-white); overflow: hidden; background: var(--color-dark); }
.division-card[data-accent="amber"] { --accent: #e0891c; }
.division-card[data-accent="blue"] { --accent: #1f6fb2; }
.division-card[data-accent="purple"] { --accent: #6a3fa0; }
.division-card[data-accent="teal"] { --accent: #148f8a; }
.division-card[data-accent="green"] { --accent: #2f8f3a; }
.division-card__media { position: absolute; inset: 0; }
.division-card__media::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); transition: background 0.4s; }
.division-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.division-card__body { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; text-align: center; }
.division-card__body::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease-out); }
.division-card__kicker { transition: transform 0.45s var(--ease-out); font-weight: 500; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; margin: 0 0 0.6rem; }
.division-card__title { transition: transform 0.45s var(--ease-out); font-family: var(--font-body); font-weight: 400; text-transform: none; font-size: clamp(1.25rem, 1.67vw, 2rem); line-height: 1.2; margin: 0 0 0.7rem; max-width: 14em; }
.division-card__text { max-width: 30em; margin: 0; font-size: 15px; line-height: 1.35; max-height: 0; overflow: hidden; transform: translateY(24px); opacity: 0; transition: max-height 0.45s var(--ease-out), transform 0.45s var(--ease-out), opacity 0.35s ease; }
.division-card__more { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 18px 0 24px; margin: 0.9rem 0 0; border: 1px solid #fff; font-weight: 500; font-size: 1rem; position: relative; overflow: hidden; isolation: isolate; transition: color 0.15s, border-color 0.15s; }
.division-card__more::before { content: ""; position: absolute; top: 0; left: -12%; width: 124%; height: 100%; background: var(--accent); transform: skew(30deg) translate3d(-100%, 0, 0); transition: transform 0.4s var(--ease-arrow); z-index: -1; }
.division-card__more svg { width: 16px; height: 16px; }
.division-card__more svg path { stroke: currentColor; transition: stroke 0.3s; }
.division-card:hover .division-card__image { transform: scale(1.1); transition-duration: 6s; }
.division-card:hover .division-card__media::after { background: linear-gradient(180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.6) 70%, color-mix(in srgb, var(--accent) 55%, rgba(0, 0, 0, 0.7)) 100%); }
.division-card:hover .division-card__body::before { transform: scaleX(1); }
.division-card:hover .division-card__text { max-height: 140px; transform: translateY(0); opacity: 1; }
.division-card:hover .division-card__kicker,
.division-card:hover .division-card__title { transform: translateY(-6px); }
.division-card__more { transition: color 0.15s, border-color 0.15s, transform 0.45s var(--ease-out); }
.division-card:hover .division-card__more { transform: translateY(-4px); }
.division-card:hover .division-card__more { border-color: var(--accent); color: #fff; }
.division-card:hover .division-card__more::before { transform: skew(30deg) translate3d(0, 0, 0); }
@media (max-width: 1023.98px) {
  .division-card { aspect-ratio: 4 / 3; }
  .division-card__text { max-height: none; transform: none; opacity: 1; }
}
.divisions__grid { gap: 6px; }
@media (min-width: 1024px) { .divisions__grid { gap: 6px; } }

/* Pillars on dark band */
.pillars { background: var(--color-dark); color: var(--color-white); margin: var(--section) 0 0; padding: var(--section) 0; }
.pillars__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; list-style: none; margin: 0 0 3rem; padding: 0 0 2.5rem; border-bottom: 1px solid rgba(255,255,255,0.15); }
@media (min-width: 768px) { .pillars__stats { grid-template-columns: repeat(4, 1fr); } }
.pillars__stat { }
.pillars__value { display: block; font-family: var(--font-heading); font-weight: 700; font-size: clamp(2.25rem, 3.5vw, 3.75rem); line-height: 1; color: #ff5a6e; }
.pillars__label { display: block; margin: 0.4rem 0 0; font-size: 14px; color: rgba(255,255,255,0.75); }
.pillars__grid { display: grid; grid-template-columns: 1fr; gap: 28px; list-style: none; }
@media (min-width: 640px) { .pillars__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .pillars__grid { grid-template-columns: repeat(3, 1fr); gap: 40px; } }
.pillars__item { }
.pillars__icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 1rem; border: 1px solid rgba(255,255,255,0.3); }
.pillars__icon svg { width: 22px; height: 22px; }
.pillars__icon svg path, .pillars__icon svg circle, .pillars__icon svg rect { stroke: #ff5a6e; }
.pillars__title { font-size: 1.25rem; margin: 0 0 0.5rem; }
.pillars__text { color: rgba(255,255,255,0.75); }
.pillars__text a { text-decoration: underline; color: #fff; }
.pillars .eyebrow { background: var(--color-primary); }
.pillars .section-head__text { color: rgba(255,255,255,0.75); }

/* Client proof */
.cases { padding: var(--section) 0 0; }
.cases__grid { display: grid; grid-template-columns: 1fr; gap: 20px; list-style: none; }
@media (min-width: 768px) { .cases__grid { grid-template-columns: repeat(3, 1fr); } }
.case-card { display: flex; flex-direction: column; height: 100%; background: var(--color-white); }
.case-card__media { aspect-ratio: 4 / 3; overflow: hidden; }
.case-card__image { width: 100%; height: 100%; object-fit: cover; }
.case-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.25rem; }
.case-card__client { font-weight: 500; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-primary); margin: 0 0 0.5rem; }
.case-card__title { font-size: 1.25rem; margin: 0 0 0.6rem; }
.case-card__text { color: var(--color-muted); margin: 0 0 1.25rem; }
.case-card__more { margin-top: auto; }
.cases__quote { position: relative; margin: 3rem 0 0; padding: 2.5rem 1.5rem; background: var(--color-primary); color: #fff; }
.cases__quote-text { font-family: var(--font-heading); font-weight: 500; font-size: clamp(1.4rem, 2.2vw, 2.25rem); line-height: 1.25; max-width: 30em; margin: 0 0 1.25rem; }
.cases__quote-cite { font-style: normal; font-size: 14px; opacity: 0.85; }
@media (min-width: 1024px) { .cases__quote { padding: 3.5rem 4rem; } }

/* Regions */
.regions { padding: var(--section) 0 0; }
.regions__layout { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .regions__layout { flex-direction: row; align-items: center; gap: 4rem; } .regions__map, .regions__body { width: 50%; } }
.regions__map { position: relative; background: var(--color-sand); padding: 1.5rem; }
.regions__svg { display: block; width: 100%; height: auto; max-width: 480px; margin: 0 auto; }
.regions__body { }
.regions__text { margin: 0 0 1.5rem; }
.regions__chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 1.5rem; }
.regions__chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--color-white); border: 1px solid var(--color-line); font-weight: 500; font-size: 14px; transition: border-color 0.2s, color 0.2s; }
.regions__chip::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--color-primary); }
.regions__chip:hover { border-color: var(--color-primary); color: var(--color-primary); }
.regions__contacts .contacts__link svg path { stroke: var(--color-primary); }

/* Recruitment band */
.recruit { margin: var(--section) 0 0; background: #2f8f3a; color: #fff; }
.recruit__layout { display: flex; flex-direction: column; }
@media (min-width: 768px) { .recruit__layout { flex-direction: row; align-items: stretch; } .recruit__media { width: 36%; flex: 0 0 auto; } .recruit__body { padding: 3rem 3rem; } }
.recruit__media { aspect-ratio: 4 / 3; overflow: hidden; }
.recruit__image { width: 100%; height: 100%; object-fit: cover; }
.recruit__body { display: flex; flex-direction: column; justify-content: center; padding: 2rem 1.25rem; }
.recruit__title { margin: 0 0 0.75rem; }
.recruit__text { max-width: 40em; margin: 0 0 1.5rem; color: rgba(255,255,255,0.9); }
.recruit__actions { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
.recruit__actions .link { color: #fff; }
.recruit__actions .link__icon { background: #fff; }
.recruit__actions .link__icon svg path { stroke: #2f8f3a; }

/* FAQ */
.faq { padding: var(--section) 0 0; }
.faq__list { max-width: 900px; margin: 0 auto; border-top: 1px solid var(--color-line); }
.faq__item { border-bottom: 1px solid var(--color-line); }
.faq__question { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; font-family: var(--font-heading); font-weight: 600; font-size: 1.2rem; cursor: pointer; list-style: none; }
.faq__question::-webkit-details-marker { display: none; }
.faq__question::after { content: ""; flex: 0 0 auto; width: 12px; height: 12px; border-right: 2px solid var(--color-primary); border-bottom: 2px solid var(--color-primary); transform: rotate(45deg); transition: transform 0.2s; margin: -4px 4px 0 0; }
.faq__item[open] .faq__question::after { transform: rotate(-135deg); margin-top: 4px; }
.faq__answer { padding: 0 0 1.5rem; max-width: 60em; color: var(--color-muted); }
.faq__answer a { text-decoration: underline; color: var(--color-dark); }

/* Quote section */
.quote { margin: var(--section) 0 0; padding: var(--section) 0; background: var(--color-sand); }
.quote__layout { display: flex; flex-direction: column-reverse; gap: 2rem; }
@media (min-width: 1024px) { .quote__layout { flex-direction: row; gap: 4rem; align-items: flex-start; } .quote__body { width: 40%; flex: 0 0 auto; position: sticky; top: calc(var(--topbar) + var(--header-h) + 24px); } .quote__form { flex: 1 1 auto; } }
.quote__body { }
.quote__text { margin: 0 0 1.5rem; }
.quote__alt { margin: 0 0 1.5rem; }
.quote__alt a { text-decoration: underline; }
.quote__small { font-size: 13px; color: var(--color-muted); margin: 1.5rem 0 0; }
.quote__figure { aspect-ratio: 1 / 1; max-width: 320px; overflow: hidden; margin: 2rem 0 0; }
.quote__image { width: 100%; height: 100%; object-fit: cover; }
.quote__form .form-card { clip-path: none; }
.page[data-theme="ses"] .form__checkbox::before { background: var(--color-primary); }

/* Mobile fixed call bar */
.callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; gap: 8px; padding: 8px; background: var(--color-dark); }
.callbar__call, .callbar__quote { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; font-weight: 500; font-size: 15px; color: #fff; }
.callbar__call { border: 1px solid rgba(255,255,255,0.4); }
.callbar__quote { background: var(--color-primary); }
.callbar__call svg { width: 16px; height: 16px; }
.callbar__call svg path { stroke: #fff; }
@media (min-width: 1024px) { .callbar { display: none; } }
.page[data-theme="ses"] .footer { padding-bottom: 70px; }
@media (min-width: 1024px) { .page[data-theme="ses"] .footer { padding-bottom: 0; } }
.footer__badges { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin: 2.5rem 0 0; }
.footer__badge { height: 44px; width: auto; background: #fff; padding: 4px; }

.page[data-theme="ses"] .footer__logo-image { background: none; padding: 0; filter: brightness(0) invert(1); }
.page[data-theme="ses"] .footer__bottom { justify-content: space-between; }
.page[data-theme="ses"] .footer__copy { text-align: left; width: auto; }
.footer__credit { font-size: 12px; line-height: 1.33; color: rgba(255,255,255,0.7); text-align: right; }
.footer__copy-link, .footer__credit-link { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.footer__copy-link:hover, .footer__credit-link:hover { color: #ff5a6e; }
@media (max-width: 1023.98px) { .page[data-theme="ses"] .footer__copy, .footer__credit { text-align: center; } }
@media (min-width: 1024px) { .page[data-theme="ses"] .footer__grid { grid-template-columns: minmax(200px, 260px) 1fr; } .page[data-theme="ses"] .footer__nav { max-width: none; } }
.page[data-theme="ses"] .footer__contacts .contacts__link { white-space: normal; align-items: flex-start; }
.page[data-theme="ses"] .footer__contacts .contacts__link svg { margin-top: 2px; }
.page[data-theme="ses"] .footer__logo-image { height: 80px; }

/* ==========================================================================
   SES core pages + asbestos cluster components
   ========================================================================== */
/* Stat chips (About hero) */
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.chips__item { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--color-white); border: 1px solid var(--color-line); font-weight: 500; font-size: 14px; }
.chips__item::before { content: ""; width: 7px; height: 7px; background: var(--color-primary); }
.chips[data-variant="light"] .chips__item { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.25); color: #fff; }
.hero-split__chips { margin: 0 0 2rem; }
.page[data-theme="ses"] .hero-split__title { max-width: 12em; }

/* Timeline */
.timeline { padding: var(--section) 0 0; }
.timeline__intro { max-width: 46em; margin: 0 0 2.5rem; }
.timeline__intro p + p { margin-top: 0.8rem; }
.timeline__list { position: relative; display: grid; gap: 1.5rem; list-style: none; padding: 0 0 0 28px; }
.timeline__list::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: var(--color-line); }
.timeline__item { position: relative; }
.timeline__item::before { content: ""; position: absolute; left: -26px; top: 8px; width: 12px; height: 12px; background: var(--color-primary); }
.timeline__year { display: block; font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; color: var(--color-primary); }
.timeline__title { font-size: 1.15rem; margin: 0.25rem 0 0.35rem; }
.timeline__text { color: var(--color-muted); }
@media (min-width: 1024px) {
  .timeline__list { grid-template-columns: repeat(6, 1fr); gap: 2rem; padding: 36px 0 0; }
  .timeline__list::before { left: 8px; right: 8px; top: 7px; bottom: auto; width: auto; height: 2px; }
  .timeline__item::before { left: 0; top: -36px; }
}

/* Values / light pillar grid */
.values { margin: var(--section) 0 0; padding: var(--section) 0; background: var(--color-sand); }
.values__grid { display: grid; grid-template-columns: 1fr; gap: 20px; list-style: none; }
@media (min-width: 640px) { .values__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .values__grid { grid-template-columns: repeat(4, 1fr); } }
.values__item { background: var(--color-white); padding: 1.5rem; border-top: 4px solid var(--color-primary); }
.values__title { font-size: 1.25rem; margin: 0 0 0.6rem; }
.values__text { color: var(--color-muted); }

/* Leadership profiles */
.leaders { padding: var(--section) 0 0; }
.leaders__intro { max-width: 46em; margin: 0 0 2rem; }
.leaders__grid { display: grid; grid-template-columns: 1fr; gap: 20px; list-style: none; }
@media (min-width: 640px) { .leaders__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .leaders__grid { grid-template-columns: repeat(4, 1fr); } }
.profile { background: var(--color-white); border: 1px solid var(--color-line); }
.profile__media { aspect-ratio: 1 / 1; background: var(--color-sand); overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--color-taupe); }
.profile__image { width: 100%; height: 100%; object-fit: cover; }
.profile__initials { font-family: var(--font-heading); font-weight: 700; font-size: 3rem; }
.profile__body { padding: 1.25rem; }
.profile__name { font-size: 1.25rem; margin: 0 0 0.35rem; }
.profile__role { display: inline-block; margin: 0 0 0.75rem; font-weight: 500; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-primary); }
.profile__bio { color: var(--color-muted); margin: 0 0 0.75rem; }
.profile__licence { font-size: 13px; color: var(--color-muted); }

/* Credentials */
.credentials { margin: var(--section) 0 0; padding: var(--section) 0; background: var(--color-dark); color: #fff; }
.credentials .section-head__text { color: rgba(255,255,255,0.75); }
.credentials__layout { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .credentials__layout { flex-direction: row; gap: 4rem; } .credentials__list { flex: 1 1 auto; } .credentials__aside { width: 38%; flex: 0 0 auto; } }
.credentials__list { list-style: none; border-top: 1px solid rgba(255,255,255,0.15); }
.credentials__item { display: flex; flex-direction: column; gap: 4px; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,0.15); }
@media (min-width: 640px) { .credentials__item { flex-direction: row; gap: 2rem; } .credentials__name { width: 45%; flex: 0 0 auto; } }
.credentials__name { font-weight: 500; }
.credentials__detail { color: rgba(255,255,255,0.7); }
.credentials__aside { }
.credentials__cert { display: block; margin: 0 0 1.25rem; border: 4px solid #fff; }
.credentials__badges { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 0 0 1.5rem; }
.credentials__badge { height: 52px; width: auto; background: #fff; padding: 4px; }
.credentials__actions { }

/* Sectors */
.sectors { padding: var(--section) 0 0; }
.sectors__text { max-width: 50em; margin: 0 0 1.5rem; }

/* Coverage strip (About) */
.coverage { margin: var(--section) 0 0; padding: 3rem 0; background: var(--color-sand); }
.coverage__layout { display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 1024px) { .coverage__layout { flex-direction: row; justify-content: space-between; align-items: center; gap: 3rem; } .coverage__body { max-width: 52em; } }
.coverage__title { margin: 0 0 0.6rem; }
.coverage__text { }
.coverage__actions { flex: 0 0 auto; }

/* CTA band */
.band { margin: var(--section) 0 0; padding: var(--section) 0; background: var(--color-primary); color: #fff; }
.band[data-variant="dark"] { background: var(--color-dark); }
.band__layout { display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 1024px) { .band__layout { flex-direction: row; justify-content: space-between; align-items: center; gap: 3rem; } }
.band__title { margin: 0 0 0.5rem; }
.band__text { color: rgba(255,255,255,0.85); max-width: 40em; }
.band__actions { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; flex: 0 0 auto; }
.band__actions .link { color: #fff; }
.band__actions .link__icon { background: #fff; }
.band__actions .link__icon svg path { stroke: var(--color-primary); }
.page[data-theme="ses"] .band .btn[data-variant="white"] { --btn-bg-hover: var(--color-dark); --btn-border-hover: var(--color-dark); }

/* Contact tiles */
.contact-tiles { padding: 2rem 0 0; }
.contact-tiles__grid { display: grid; grid-template-columns: 1fr; gap: 12px; list-style: none; }
@media (min-width: 640px) { .contact-tiles__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .contact-tiles__grid { grid-template-columns: repeat(5, 1fr); } }
.tile { display: flex; flex-direction: column; height: 100%; padding: 1.25rem; background: var(--color-white); border: 1px solid var(--color-line); color: inherit; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease; }
.tile:hover { transform: translateY(-4px); border-color: var(--color-primary); box-shadow: 0 12px 28px rgba(31, 35, 38, 0.12); }
.tile:hover .tile__icon { background: var(--color-primary); }
.tile:hover .tile__icon svg path { stroke: #fff; }
.tile[data-variant="emergency"] { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.tile[data-variant="emergency"]:hover { background: var(--color-dark); border-color: var(--color-dark); }
.tile[data-variant="emergency"]:hover .tile__icon { background: var(--color-primary); }
.tile__icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0 0 1rem; background: var(--color-sand); transition: background-color 0.2s ease; }
.tile[data-variant="emergency"] .tile__icon { background: rgba(255,255,255,0.15); }
.tile__icon svg { width: 20px; height: 20px; }
.tile__icon svg path { stroke: var(--color-primary); transition: stroke 0.2s ease; }
.tile[data-variant="emergency"] .tile__icon svg path { stroke: #fff; }
.tile__label { font-weight: 500; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-muted); margin: 0 0 0.35rem; }
.tile[data-variant="emergency"] .tile__label { color: rgba(255,255,255,0.8); }
.tile__value { font-family: var(--font-heading); font-weight: 700; font-size: 1.35rem; line-height: 1.2; margin: 0 0 0.5rem; word-break: break-word; }
.tile__value { transition: color 0.2s ease; }
.tile:hover .tile__value { color: var(--color-primary); }
.tile[data-variant="emergency"]:hover .tile__value { color: #fff; }
.tile__text { font-size: 13px; color: var(--color-muted); margin-top: auto; }
.tile[data-variant="emergency"] .tile__text { color: rgba(255,255,255,0.85); }

/* Head office */
.office-block { padding: var(--section) 0 0; }
.office-block__layout { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .office-block__layout { flex-direction: row; gap: 3rem; } .office-block__body { width: 40%; flex: 0 0 auto; } .office-block__map { flex: 1 1 auto; } }
.office-block__address { font-family: var(--font-heading); font-weight: 600; font-size: 1.35rem; line-height: 1.3; margin: 0 0 1rem; font-style: normal; }
.office-block__text { color: var(--color-muted); margin: 0 0 1.25rem; }
.office-block__meta { font-size: 13px; color: var(--color-muted); margin: 0 0 1.5rem; }
.office-block__map { position: relative; min-height: 320px; background: var(--color-sand); }
.office-block__frame { display: block; width: 100%; height: 100%; min-height: 380px; border: 0; filter: grayscale(1) contrast(1.05); }

/* Region cards */
.region-cards { padding: var(--section) 0 0; }
.region-cards__layout { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .region-cards__layout { flex-direction: row; align-items: flex-start; gap: 3rem; } .region-cards__map { width: 36%; flex: 0 0 auto; position: sticky; top: calc(var(--topbar) + var(--header-h) + 24px); } .region-cards__list { flex: 1 1 auto; } }
.region-cards__map { background: var(--color-sand); padding: 1.5rem; }
.region-cards__list { display: grid; grid-template-columns: 1fr; gap: 16px; list-style: none; }
@media (min-width: 768px) { .region-cards__list { grid-template-columns: 1fr 1fr; } }
.region-card { display: flex; flex-direction: column; height: 100%; padding: 1.5rem; background: var(--color-white); border: 1px solid var(--color-line); border-left: 4px solid var(--color-primary); }
.region-card__title { font-size: 1.3rem; margin: 0 0 0.5rem; }
.region-card__text { color: var(--color-muted); margin: 0 0 1rem; }
.region-card__links { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin-top: auto; }
.region-card__link { display: inline-block; padding: 4px 10px; background: var(--color-sand); font-size: 13px; font-weight: 500; }
.region-card__link:hover { background: var(--color-primary); color: #fff; }
.region-cards__note { margin: 1.5rem 0 0; color: var(--color-muted); }

/* Message form section */
.message { margin: var(--section) 0 0; padding: var(--section) 0; background: var(--color-sand); }
.message__layout { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .message__layout { flex-direction: row; gap: 4rem; } .message__body { width: 38%; flex: 0 0 auto; } .message__form { flex: 1 1 auto; } }
.message__text { color: var(--color-muted); margin: 0 0 1.5rem; }

/* Compliance strip */
.strip { padding: 2.5rem 0; background: var(--color-grey); }
.strip__layout { display: flex; flex-direction: column; gap: 1rem; }
@media (min-width: 1024px) { .strip__layout { flex-direction: row; align-items: center; justify-content: space-between; gap: 3rem; } }
.strip__title { font-size: 1.25rem; margin: 0 0 0.35rem; }
.strip__text { color: var(--color-muted); max-width: 60em; }
.strip__actions { flex: 0 0 auto; }

/* Quote page */
.quote-page { padding: 2rem 0 0; }
.quote-page__head { max-width: 46em; margin: 0 0 1.5rem; }
.quote-page__title { margin: 0 0 0.75rem; }
.quote-page__text { color: var(--color-muted); margin: 0 0 1.25rem; }
.quote-page__layout { display: flex; flex-direction: column-reverse; gap: 2rem; margin: 2rem 0 0; }
@media (min-width: 1024px) { .quote-page__layout { flex-direction: row; align-items: flex-start; gap: 3rem; } .quote-page__main { flex: 1 1 auto; min-width: 0; } .quote-page__rail { width: 320px; flex: 0 0 auto; position: sticky; top: calc(var(--topbar) + var(--header-h) + 24px); } }
.alert { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 1rem 1.25rem; background: var(--color-primary); color: #fff; margin: 0 0 1.5rem; }
.alert__text { font-weight: 500; }
.alert__link { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: #fff; color: var(--color-primary); font-weight: 500; white-space: nowrap; }
.alert__link svg { width: 16px; height: 16px; }
.alert__link svg path { stroke: var(--color-primary); }
.rail { display: flex; flex-direction: column; gap: 16px; }
.rail__card { padding: 1.25rem; background: var(--color-white); border: 1px solid var(--color-line); }
.rail__label { font-weight: 500; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-muted); margin: 0 0 0.5rem; }
.rail__phone { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; }
.rail__phone svg path { stroke: var(--color-primary); }
.rail__text { font-size: 13px; color: var(--color-muted); margin: 0.5rem 0 0; }
.rail__quote { font-size: 15px; line-height: 1.4; margin: 0 0 0.75rem; }
.rail__cite { font-style: normal; font-size: 13px; color: var(--color-muted); }

/* Two-step form */
.stepper { margin: 0 0 1.5rem; }
.stepper__label { display: block; font-weight: 500; font-size: 13px; margin: 0 0 0.5rem; }
.stepper__bar { height: 4px; background: var(--color-line); }
.stepper__fill { display: block; height: 100%; width: 50%; background: var(--color-primary); transition: width 0.3s; }
.stepper[data-stepper-step="2"] .stepper__fill { width: 100%; }
.step { }
.step[hidden] { display: none; }
.step__title { font-size: 1.25rem; margin: 0 0 1rem; }
.step__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin: 1.5rem 0 0; }
.form__legend { display: block; width: 100%; padding: 0; margin: 0 0 0.6rem; font-weight: 500; font-size: 13px; }
.form__fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (min-width: 768px) { .tiles { grid-template-columns: repeat(3, 1fr); } }
.tiles__option { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 1rem; border: 1px solid var(--color-line); background: var(--color-white); cursor: pointer; transition: border-color 0.15s, box-shadow 0.15s; }
.tiles__option:hover { border-color: var(--color-dark); }
.tiles__option:has(.tiles__input:checked) { border-color: var(--color-primary); box-shadow: inset 0 0 0 1px var(--color-primary); }
.tiles__input { position: absolute; opacity: 0; width: 0; height: 0; }
.tiles__icon { width: 24px; height: 24px; }
.tiles__icon svg { width: 24px; height: 24px; }
.tiles__icon svg path { stroke: var(--color-primary); }
.tiles__name { font-weight: 500; font-size: 14px; line-height: 1.25; }
.checks { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
@media (min-width: 768px) { .checks { grid-template-columns: repeat(3, 1fr); } }
.checks[hidden] { display: none; }
.checks__option { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.checks__input { width: 16px; height: 16px; accent-color: var(--color-primary); }
.radios { display: flex; flex-wrap: wrap; gap: 8px; }
.radios__option { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--color-line); background: var(--color-white); font-size: 14px; cursor: pointer; }
.radios__option:has(.radios__input:checked) { border-color: var(--color-primary); }
.radios__input { accent-color: var(--color-primary); }

/* Thank-you */
.thanks { padding: 3rem 0; }
.thanks__title { margin: 0 0 0.75rem; }
.thanks__text { color: var(--color-muted); margin: 0 0 2rem; max-width: 40em; }
.thanks__steps { counter-reset: thanks; display: grid; grid-template-columns: 1fr; gap: 16px; list-style: none; margin: 0 0 2rem; }
@media (min-width: 768px) { .thanks__steps { grid-template-columns: repeat(3, 1fr); } }
.thanks__step { padding: 1.25rem; background: var(--color-white); border: 1px solid var(--color-line); counter-increment: thanks; }
.thanks__step::before { content: counter(thanks); display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: 0 0 0.75rem; background: var(--color-primary); color: #fff; font-weight: 500; font-size: 13px; }
.thanks__links { display: flex; flex-wrap: wrap; gap: 12px 24px; }

/* Asbestos / service pages */
.page[data-theme="ses"] .hero-split__title[data-size="small"] { font-size: clamp(2rem, 3.4vw, 3.5rem); }
.services-grid { padding: var(--section) 0 0; }
.services-grid__list { display: grid; grid-template-columns: 1fr; gap: 6px; list-style: none; margin: 2rem 0 0; }
@media (min-width: 640px) { .services-grid__list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .services-grid__list[data-count="3"] { grid-template-columns: repeat(3, 1fr); } }
.services-grid .division-card { aspect-ratio: 1 / 1; }
@media (min-width: 640px) { .services-grid .division-card { aspect-ratio: 16 / 9; } }
@media (min-width: 1024px) { .services-grid__list[data-count="3"] .division-card { aspect-ratio: 4 / 3; } }

.split { padding: var(--section) 0 0; }
.split__layout { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 1024px) { .split__layout { flex-direction: row; align-items: center; gap: 4rem; } .split__media, .split__body { width: 50%; } .split[data-order="reverse"] .split__layout { flex-direction: row-reverse; } }
.split__media { aspect-ratio: 4 / 3; overflow: hidden; }
.split__image { width: 100%; height: 100%; object-fit: cover; }
.split__title { margin: 0 0 1rem; }
.split__text { margin: 0 0 0.8rem; }
.split__list { list-style: none; margin: 0.5rem 0 1.25rem; }
.split__list-item { position: relative; padding-left: 20px; margin: 0 0 8px; }
.split__list-item::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 6px; height: 6px; background: var(--color-primary); }
.split__actions { display: flex; flex-wrap: wrap; gap: 12px 12px; align-items: center; margin: 1.5rem 0 0; }

.gallery { padding: var(--section) 0 0; }
.gallery__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; list-style: none; }
@media (min-width: 768px) { .gallery__grid { grid-template-columns: repeat(4, 1fr); } }
.gallery__item { aspect-ratio: 3 / 4; overflow: hidden; }
.gallery__item[data-span="2"] { grid-column: span 2; aspect-ratio: 3 / 2; }
.gallery__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.gallery__item:hover .gallery__image { transform: scale(1.04); }
.gallery__caption { margin: 1rem 0 0; color: var(--color-muted); font-size: 14px; }

.page[data-theme="ses"] .steps { background: var(--color-sand); }
.page[data-theme="ses"] .steps__item[data-state="active"] .steps__label { background: var(--color-primary); }
.page[data-theme="ses"] .steps__title { font-size: clamp(1.4rem, 2vw, 2rem); }
.page[data-theme="ses"] .steps__label { background: var(--color-taupe); }
.page[data-theme="ses"] .faq { padding-bottom: 0; }
.page[data-theme="ses"] .breadcrumbs { margin: 0 0 1.2rem; }
.form__fieldset { grid-column: span 2; }
.page[data-theme="ses"] .faq { padding-bottom: var(--section); }
.faq + .band { margin-top: 0; }
.page[data-theme="ses"] .steps__visual { aspect-ratio: 3 / 4; }
.page[data-theme="ses"] .hero__title { font-size: clamp(2.25rem, 4.1vw, 4.6rem); max-width: 13em; }
.page[data-theme="ses"] .hero-split__title { font-size: clamp(2rem, 3.4vw, 3.6rem); }

/* SES CTA panel */
.page[data-theme="ses"] .cta__body { background-color: var(--color-primary); color: #fff; }
.page[data-theme="ses"] .cta__body .eyebrow { background: var(--color-dark); color: #fff; }
.page[data-theme="ses"] .cta__text { color: rgba(255,255,255,0.9); }
.page[data-theme="ses"] .cta__actions .btn[data-variant="whatsapp"] { width: auto; padding: 0 18px 0 24px; }
.page[data-theme="ses"] .cta__actions .btn:not([data-variant]) { --btn-bg-hover: #fff; --btn-color-hover: var(--color-dark); --btn-border-hover: #fff; --btn-icon-hover: var(--color-dark); }
.page[data-theme="ses"] .hero__actions .btn[data-variant="whatsapp"] { width: auto; padding: 0 18px 0 24px; }
.page[data-theme="ses"] .btn[data-variant="whatsapp"] svg { margin-top: 0; }
@media (min-width: 768px) { .page[data-theme="ses"] .cta__image { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 46%, 18% 46%, 18% 30%, 36% 30%, 36% 16%, 0 16%); } }
.page[data-theme="ses"] .footer { padding-bottom: 70px; }
@media (min-width: 1024px) { .page[data-theme="ses"] .footer { padding-bottom: 0; } }
@media (max-width: 767.98px) { .page[data-theme="ses"] .cta__panel { background-color: var(--color-primary); } }

/* Footer column titles are paragraphs; CTA title is a paragraph styled as the heading */
.footer__col-title { text-transform: uppercase; }
.page[data-theme="ses"] .cta__title { font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; font-size: var(--text-h2); line-height: 1.05; margin: 0 0 0.9rem; }
.footer__link { cursor: pointer; }
.regions__svg { max-width: 420px; }
.regions__map, .region-cards__map { background: var(--color-sand); }

/* FAQ built on the advantages (sticky aside + scroller) pattern */
.advantages[data-variant="faq"] { padding-bottom: var(--section); }
.advantages[data-variant="faq"] .advantages__title { font-size: var(--text-h3); margin: 0 0 1rem; }
.advantages[data-variant="faq"] .advantages__heading { font-family: var(--font-body); font-weight: 400; text-transform: none; letter-spacing: 0; font-size: clamp(1.75rem, 2.9vw, 3.5rem); line-height: 1.1; margin: 0; }
.advantages[data-variant="faq"] .advantages__desc { max-width: 40em; }
.page[data-theme="ses"] .advantages__heading { font-family: var(--font-body); font-weight: 400; text-transform: none; letter-spacing: 0; }
.page[data-theme="ses"] .advantages__title { text-transform: uppercase; }
.page[data-theme="ses"] .advantages__item { transition: opacity 0.5s linear; }
.page[data-theme="ses"] .advantages__desc { transition: color 0.5s linear; }
.page[data-theme="ses"] .faq + .band, .page[data-theme="ses"] .advantages[data-variant="faq"] + .band { margin-top: 0; }

.advantages__actions { margin: 1.6rem 0 2.6rem; }
@media (min-width: 1024px) { .advantages__actions { margin-bottom: 0; } }
.page[data-theme="ses"] .advantages__actions .btn { --btn-color: #fff; --btn-bg: var(--color-dark); --btn-border: var(--color-dark); --btn-bg-hover: var(--color-primary); --btn-color-hover: #fff; --btn-border-hover: var(--color-primary); --btn-icon: #fff; --btn-icon-hover: #fff; }
/* Real-map figure with positioned pins */
.regions__map, .region-cards__map { padding: 0; background: none; }
.regions__figure { position: relative; overflow: hidden; }
.regions__image { display: block; width: 100%; height: auto; }
.regions__pins { position: absolute; inset: 0; list-style: none; margin: 0; padding: 0; }
.regions__pin { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); width: 14px; height: 14px; border-radius: 50%; background: var(--color-primary); border: 2px solid #fff; box-shadow: 0 0 0 5px rgba(200, 16, 46, 0.22); }
.regions__pin-label { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); white-space: nowrap; font-size: 13px; font-weight: 500; color: var(--color-dark); background: rgba(255,255,255,0.85); padding: 2px 8px; }
@media (max-width: 575.98px) { .regions__pin-label { font-size: 11px; padding: 1px 6px; left: 16px; } }

/* Infinite projects carousel */
.carousel { position: relative; }
.carousel__viewport { overflow: hidden; }
.carousel__track { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; will-change: transform; transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.carousel__track[data-animate="false"] { transition: none; }
.carousel__item { flex: 0 0 calc((100% - 12px) / 3); display: flex; min-width: 0; }
@media (max-width: 1023.98px) { .carousel__item { flex-basis: calc(50% - 3px); } }
@media (max-width: 639.98px) { .carousel__item { flex-basis: 100%; } }
.carousel .division-card { width: 100%; }
.carousel__prev, .carousel__next { position: absolute; top: 50%; z-index: 3; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; background: var(--color-white); box-shadow: 0 6px 20px rgba(31, 35, 38, 0.18); transform: translateY(-50%); transition: background-color 0.25s, transform 0.25s; }
.carousel__prev { left: 0; transform: translate(-50%, -50%); }
.carousel__next { right: 0; transform: translate(50%, -50%); }
.carousel__prev svg path, .carousel__next svg path { stroke: var(--color-dark); transition: stroke 0.25s; }
.carousel__prev:hover, .carousel__next:hover { background: var(--color-primary); }
.carousel__prev:hover svg path, .carousel__next:hover svg path { stroke: #fff; }
.carousel__prev:hover { transform: translate(-50%, -50%) scale(1.06); }
.carousel__next:hover { transform: translate(50%, -50%) scale(1.06); }
@media (max-width: 1023.98px) { .carousel__prev { left: 8px; transform: translateY(-50%); } .carousel__next { right: 8px; transform: translateY(-50%); } .carousel__prev:hover { transform: translateY(-50%); } .carousel__next:hover { transform: translateY(-50%); } }

/* Smoother division-card hover */
.division-card__image { transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.division-card:hover .division-card__image { transform: scale(1.06); transition-duration: 1.6s; }
.division-card__media::after { transition: background 0.7s ease; }
.division-card__body::before { transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.division-card__kicker, .division-card__title { transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.division-card__text { transition: max-height 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.5s ease 0.1s; }
.division-card__more { transition: color 0.3s, border-color 0.3s, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.division-card__more::before { transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }

/* Faster reveal on division / project tiles (matches de-construct.com.au timings) */
.division-card__image { transition: transform 0.2s ease; }
.division-card:hover .division-card__image { transform: scale(1.1); transition-duration: 6s; }
.division-card__media::after { transition: background 0.3s ease; }
.division-card__body::before { transition: transform 0.3s ease; }
.division-card__kicker, .division-card__title { transition: transform 0.3s ease; }
.division-card__text { transition: max-height 0.4s ease, transform 0.3s ease, opacity 0.2s ease; }
.division-card__more { transition: color 0.1s ease, border-color 0.1s ease, transform 0.3s ease; }
.division-card__more::before { transition: transform 0.4s var(--ease-arrow); }

.page[data-theme="ses"] .partners { padding-top: var(--section); }
.page[data-theme="ses"] .partners__marquee { border-color: var(--color-line); }
.page[data-theme="ses"] .partners__logo { filter: grayscale(1); opacity: 0.85; transition: filter 0.3s, opacity 0.3s; }
.page[data-theme="ses"] .partners__item:hover .partners__logo { filter: none; opacity: 1; }

/* Hero certification badges */
.hero__badges { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; list-style: none; margin: 1.75rem 0 0; }
.hero__badge { display: flex; align-items: center; justify-content: center; height: 56px; padding: 6px 12px; background: rgba(255,255,255,0.92); }
.hero__badge-image { display: block; height: 100%; width: auto; max-width: 150px; object-fit: contain; }
.page[data-theme="ses"] .partners__logo { height: 56px; max-width: 220px; filter: grayscale(1); opacity: 0.8; }
@media (min-width: 1024px) { .page[data-theme="ses"] .partners__logo { height: 72px; max-width: 260px; } }
.page[data-theme="ses"] .partners__list { gap: 96px; }

.page[data-theme="ses"] .header__logo-image { height: 56px; }
.page[data-theme="ses"] .header[data-variant="overlay"]:not([data-scrolled="true"]) .header__logo-image,
.page[data-theme="ses"] .header[data-scrolled="true"] .header__logo-image,
.page[data-theme="ses"] .header[data-menu="open"] .header__logo-image { filter: brightness(0) invert(1); }
.hero__badge { height: 60px; padding: 6px 10px; }
.hero__badge-image { max-width: 130px; }
.footer__badge { height: 48px; padding: 4px 6px; }
.credentials__badge { height: 56px; }
/* Hero CTAs: inline row everywhere; stacked full-width only on phones up to iPhone Pro Max (430px) */
.hero__actions { flex-direction: row; flex-wrap: wrap; gap: 12px; margin: 2rem 0 0; }
.hero__actions .btn { width: auto; }
@media (max-width: 430px) {
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; }
}
.page[data-theme="ses"] .hero__title { font-size: clamp(2.25rem, 4.1vw, 3.625rem); max-width: 70rem; }
.page[data-theme="ses"] .header__actions { gap: 10px; }
.page[data-theme="ses"] .header__actions .btn { height: 46px; padding: 0 16px 0 20px; font-size: 15px; }
.page[data-theme="ses"] .recruit__actions .btn[data-variant="outline-white"] { --btn-color-hover: #2f8f3a; --btn-icon-hover: #2f8f3a; }

/* Header: transparent at top, red once scrolled; hides after 240px of upward scroll (main.js) */
.page[data-theme="ses"] .header[data-scrolled="true"] .header__main { background-color: var(--color-primary); border-color: var(--color-primary); }
.page[data-theme="ses"] .header[data-scrolled="true"] .header__actions .btn[data-variant="primary"] { --btn-bg: var(--color-dark); --btn-border: var(--color-dark); --btn-bg-hover: #000; --btn-border-hover: #000; }
.page[data-theme="ses"] .header[data-scrolled="true"] .nav__link:hover { color: var(--color-dark); }

/* Compliance pack modal (contact page) */
.modal__panel { padding: 2rem 1.25rem 1.5rem; }
.modal__title { font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.1; margin: 0.25rem 0 0.5rem; }
.modal__panel .modal__text { color: var(--color-muted); margin: 0 0 1.5rem; }
.modal__panel .form__grid { row-gap: 1rem; }
.modal__panel .checks { grid-template-columns: 1fr; }
.modal__panel .form__footer { margin-top: 1.25rem; }
.strip__actions .modal { width: min(760px, calc(100% - 2rem)); }
@media (min-width: 640px) { .modal__panel { padding: 2.5rem 2rem 2rem; } .modal__panel .checks { grid-template-columns: 1fr 1fr; } }

/* Social links: labelled buttons (contact page) + footer row */
.socials[data-variant="labelled"] { margin: 0 0 1.25rem; }
.socials[data-variant="labelled"] .socials__list { gap: 8px; flex-wrap: wrap; }
.socials[data-variant="labelled"] .socials__link { width: 46px; height: 46px; border-color: var(--color-dark); color: var(--color-dark); transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.socials[data-variant="labelled"] .socials__link svg path { fill: var(--color-dark); transition: fill 0.2s ease; }
.socials[data-variant="labelled"] .socials__link:hover { background-color: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.socials[data-variant="labelled"] .socials__link:hover svg path { fill: #fff; }
.footer .socials { margin-top: 1.25rem; }
.page[data-theme="ses"] .socials[data-variant="light"] .socials__link:hover svg path { fill: #fff; }

/* Floating quick-contact widget (right edge, all pages) - same skewed wipe hover as .btn */
.float { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 45; display: flex; flex-direction: column; width: 56px; box-shadow: -4px 8px 24px rgba(31, 35, 38, 0.18); }
.float__link { position: relative; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; color: #fff; background-color: var(--float-bg-hover); overflow: hidden; isolation: isolate; }
.float__link::before { content: ""; position: absolute; top: 0; left: -40%; width: 180%; height: 100%; background: var(--float-bg); transform: skew(30deg); transition: transform 0.4s var(--ease-arrow); z-index: -1; }
.float__link:hover::before { transform: skew(30deg) translate3d(100%, 0, 0); }
/* tall vertical tab: wipe downwards so the skewed panel clears fully */
.float__link[data-variant="quote"]::before { top: -40%; left: 0; width: 100%; height: 180%; transform: skewY(-30deg); }
.float__link[data-variant="quote"]:hover::before { transform: skewY(-30deg) translate3d(0, 100%, 0); }
.float__link svg { width: 22px; height: 22px; }
.float__link svg path { stroke: #fff; }
.float__link[data-variant="phone"] { --float-bg: var(--color-dark); --float-bg-hover: var(--color-primary); }
.float__link[data-variant="whatsapp"] { --float-bg: #25d366; --float-bg-hover: #1da851; }
.float__link[data-variant="whatsapp"] svg { fill: #fff; }
.float__link[data-variant="quote"] { --float-bg: var(--color-primary); --float-bg-hover: var(--color-dark); flex-direction: column; height: auto; padding: 22px 0; gap: 10px; }
.float__link[data-variant="quote"] svg { width: 16px; height: 16px; transform: rotate(90deg); }
.float__label { writing-mode: vertical-rl; font-family: var(--font-body); font-weight: 500; font-size: 1rem; letter-spacing: 0; line-height: 1; white-space: nowrap; }
@media (max-width: 767px) { .float, .float__link { width: 48px; } .float__link { height: 48px; } .float__link svg { width: 20px; height: 20px; } .float__label { font-size: 14px; } }

/* Header row uses the standard container width (aligned with the footer and homepage sections) */
@media (min-width: 1024px) { .page[data-theme="ses"] .nav__submenu:not([data-layout="mega"]) { left: 0; transform: translate(0, 10px); }
  .page[data-theme="ses"] .nav__item:hover .nav__submenu:not([data-layout="mega"]), .page[data-theme="ses"] .nav__item:focus-within .nav__submenu:not([data-layout="mega"]) { transform: translate(0, 0); }
  .page[data-theme="ses"] .nav__submenu:not([data-layout="mega"]) .nav__sublist { columns: 1; padding: 0; } }

/* Inner-page split hero: breathing room above the breadcrumbs, and the image aligned to match */
.page[data-theme="ses"] .hero-split__body { padding-top: 28px; }
@media (min-width: 1024px) {
  .page[data-theme="ses"] .hero-split { padding-top: 48px; }
  .page[data-theme="ses"] .hero-split__body { padding-top: 0; }
  .page[data-theme="ses"] .hero-split__media { min-height: 62vh; }
  .page[data-theme="ses"] .breadcrumbs { margin-bottom: 2.6rem; }
}
@media (min-width: 1400px) { .page[data-theme="ses"] .hero-split { padding-top: 64px; } }
@media (min-width: 1024px) { .page[data-theme="ses"] .nav__list { gap: 2.5rem; } }

/* Facts grid (demolition pages): static photo tiles in the homepage-services style */
.facts { padding: var(--section) 0 0; }
.facts__list { display: grid; grid-template-columns: 1fr; gap: 6px; list-style: none; margin: 2rem 0 0; }
.facts__item { }
.facts .division-card { aspect-ratio: 1 / 1; }
@media (min-width: 640px) { .facts__list { grid-template-columns: 1fr 1fr; } .facts .division-card { aspect-ratio: 4 / 3; } }
@media (min-width: 1024px) { .facts__list { grid-template-columns: repeat(3, 1fr); } .facts__list[data-cols="2"] { grid-template-columns: 1fr 1fr; } .facts__list[data-cols="2"] .division-card { aspect-ratio: 16 / 9; }
  .facts__list[data-cols="5"] { grid-template-columns: repeat(6, 1fr); } .facts__list[data-cols="5"] .facts__item { grid-column: span 2; } .facts__list[data-cols="5"] .facts__item:nth-child(n+4) { grid-column: span 3; } .facts__list[data-cols="5"] .facts__item:nth-child(n+4) .division-card { aspect-ratio: 2 / 1; } }
/* Static division cards: everything visible, no link; hover keeps the accent tint, zoom and bar */
.division-card[data-static] { cursor: default; }
.division-card[data-static] .division-card__text { max-height: none; transform: none; opacity: 1; }
.division-card[data-static] .division-card__title { margin-bottom: 0.7rem; }
.division-card[data-static]:hover .division-card__kicker, .division-card[data-static]:hover .division-card__title { transform: none; }
.coverage__link { font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.coverage__link:hover { color: var(--color-primary); }
.steps__text a, .split__list-item a { text-decoration: underline; text-underline-offset: 3px; }
.steps__text a:hover, .split__list-item a:hover { color: var(--color-primary); }

/* Inner-page hero CTAs: same trio and layout as the homepage hero */
.hero-split__actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; }
.hero-split__actions .btn { width: auto; }
.page[data-theme="ses"] .hero-split__actions .btn[data-variant="white"] { --btn-border: var(--color-line); }
.page[data-theme="ses"] .hero-split__actions .btn[data-variant="whatsapp"] { width: auto; padding: 0 18px 0 24px; }
@media (max-width: 430px) { .hero-split__actions { flex-direction: column; } .hero-split__actions .btn { width: 100%; } }

/* Division colour: demolition pages use the amber accent for every primary element inside the page content
   (header, floating widget, CTA panel and footer stay in the group red) */
.page[data-division="demolition"] .page__main { --color-primary: #e0891c; }
.page[data-division="demolition"] .page__main .btn[data-variant="primary"] { --btn-bg-hover: var(--color-dark); }

/* Services mega menu: each department carries its division accent */
.nav__mega-item, .nav__mega-panel { --accent: var(--color-primary); }
.nav__mega-item[data-accent="amber"], .nav__mega-panel[data-accent="amber"] { --accent: #e0891c; }
.nav__mega-item[data-accent="blue"], .nav__mega-panel[data-accent="blue"] { --accent: #1f6fb2; }
.nav__mega-item[data-accent="purple"], .nav__mega-panel[data-accent="purple"] { --accent: #6a3fa0; }
.nav__mega-item[data-accent="teal"], .nav__mega-panel[data-accent="teal"] { --accent: #148f8a; }
.nav__mega-item[data-accent="green"], .nav__mega-panel[data-accent="green"] { --accent: #2f8f3a; }
@media (min-width: 1024px) {
  .nav__mega-link svg { background-color: var(--accent); }
  .nav__mega-link { border-left: 3px solid transparent; }
  .nav__mega-item[data-active="true"] .nav__mega-link { border-left-color: var(--accent); background-color: color-mix(in srgb, var(--accent) 14%, transparent); }
  .nav__mega-panel .nav__sublink:hover { color: var(--accent); }
  .nav__mega-panel .nav__mega-title { display: block; margin: 0 0 0.9rem; font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
}
@media (max-width: 1023px) { .nav__mega-title { color: var(--accent); } }

.page[data-division="maintenance"] .page__main { --color-primary: #1f6fb2; }
.page[data-division="cleaning"] .page__main { --color-primary: #6a3fa0; }
.page[data-division="waterproofing"] .page__main { --color-primary: #148f8a; }
.page[data-division] .page__main .btn[data-variant="primary"] { --btn-bg-hover: var(--color-dark); }

/* 24/7 emergency line above the fold (specialist cleaning) */
.hero-split__emergency { display: inline-flex; align-self: flex-start; align-items: center; gap: 12px; margin: 0 0 1.25rem; padding: 8px 14px 8px 10px; background: var(--color-dark); color: #fff; font-size: 14px; }
.hero-split__emergency-label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; font-size: 11px; }
.hero-split__emergency-label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--color-primary); box-shadow: 0 0 0 0 var(--color-primary); animation: pulse 1.6s ease-out infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-primary) 60%, transparent); } 100% { box-shadow: 0 0 0 8px transparent; } }
.hero-split__emergency-link { font-family: var(--font-heading); font-weight: 700; font-size: 18px; color: #fff; }
.hero-split__emergency-link:hover { color: var(--color-primary); }

/* Quiet text-only band (cost sections without an image) */
.coverage[data-variant="quiet"] { background: var(--color-white); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.coverage[data-variant="quiet"] .coverage__body { max-width: 46rem; }

/* Legal pages: single reading column with sticky contents */
.legal { padding: calc(var(--section) * 0.7) 0 var(--section); }
.legal__layout { display: flex; flex-direction: column; gap: 2rem; }
.legal__article { max-width: 720px; }
.legal__title { margin: 0 0 0.5rem; }
.legal__updated { font-size: 13px; color: var(--color-muted); margin: 0 0 1.5rem; }
.legal__lead { font-size: 1.05rem; margin: 0 0 1rem; }
.legal__section { padding: 1.5rem 0 0.5rem; border-top: 1px solid var(--color-line); margin: 1.5rem 0 0; scroll-margin-top: calc(var(--header-h) + 24px); }
.legal__heading { font-size: 1.35rem; margin: 0 0 0.75rem; text-transform: none; letter-spacing: 0; }
.legal__text { margin: 0 0 0.9rem; }
.legal__text a, .legal__lead a { text-decoration: underline; text-underline-offset: 3px; }
.legal__list { margin: 0 0 1rem 1.2rem; }
.legal__item { margin: 0 0 0.5rem; }
.legal__table { width: 100%; border-collapse: collapse; margin: 0.5rem 0 1rem; font-size: 14px; }
.legal__th, .legal__td { text-align: left; vertical-align: top; padding: 10px 12px; border: 1px solid var(--color-line); }
.legal__th { background: var(--color-sand); font-weight: 500; }
.legal__toc { padding: 1.25rem; background: var(--color-sand); }
.legal__toc-title { font-weight: 500; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 0.75rem; color: var(--color-muted); }
.legal__toc-list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.legal__toc-item { margin: 0 0 0.5rem; }
.legal__toc-link:hover { color: var(--color-primary); }
@media (min-width: 1024px) { .legal__layout { flex-direction: row; align-items: flex-start; gap: 4rem; } .legal__aside { width: 280px; flex: 0 0 auto; position: sticky; top: calc(var(--header-h) + 24px); } .legal__article { flex: 1 1 auto; } }

.page[data-division="recruitment"] .page__main { --color-primary: #2f8f3a; }

/* Careers: culture actions, vacancy cards, chip filter */
.culture__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.5rem 0 0; }
.culture[data-variant="who"] { padding-bottom: 0; }
.vacancies { padding: var(--section) 0 0; }
.vacancies__list { display: grid; grid-template-columns: 1fr; gap: 20px; list-style: none; margin: 1.5rem 0 0; }
@media (min-width: 1024px) { .vacancies__list { grid-template-columns: 1fr 1fr; } }
.vacancies__empty { margin: 2rem 0 0; font-size: 1.1rem; }
.vacancies__empty a { text-decoration: underline; }
.vacancy { --accent: var(--color-primary); display: flex; flex-direction: column; height: 100%; background: var(--color-white); border: 1px solid var(--color-line); border-left: 5px solid var(--accent); }
.vacancy[data-accent="amber"] { --accent: #e0891c; } .vacancy[data-accent="blue"] { --accent: #1f6fb2; } .vacancy[data-accent="purple"] { --accent: #6a3fa0; } .vacancy[data-accent="teal"] { --accent: #148f8a; } .vacancy[data-accent="red"] { --accent: #c8102e; }
.vacancy__media { aspect-ratio: 16 / 7; overflow: hidden; }
.vacancy__image { width: 100%; height: 100%; object-fit: cover; }
.vacancy__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.5rem; }
.vacancy__division { font-weight: 500; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); margin: 0 0 0.4rem; }
.vacancy__title { font-size: 1.35rem; line-height: 1.2; margin: 0 0 0.75rem; }
.vacancy__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; margin: 0 0 1rem; font-size: 14px; color: var(--color-muted); }
.vacancy__meta-item { display: inline-flex; align-items: center; gap: 6px; }
.vacancy__meta-item svg { width: 15px; height: 15px; } .vacancy__meta-item svg path, .vacancy__meta-item svg circle { stroke: var(--accent); }
.vacancy__summary { margin: 0 0 1rem; }
.vacancy__reqs { margin: 0 0 0.75rem; }
.vacancy__reqs-title { font-weight: 500; font-size: 13px; margin: 0 0 0.3rem; }
.vacancy__req-list { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; }
.vacancy__req { padding: 4px 10px; background: var(--color-sand); font-size: 13px; }
.vacancy__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 1.25rem; }
.vacancy__closes { font-size: 13px; color: var(--color-muted); }
.chips-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 1.5rem 0 0; }
.chips-filter__btn { padding: 9px 16px; border: 1px solid var(--color-line); background: var(--color-white); font-size: 14px; font-weight: 500; transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
.chips-filter__btn:hover { border-color: var(--color-dark); }
.chips-filter__btn[aria-pressed="true"] { background: var(--color-dark); border-color: var(--color-dark); color: #fff; }
.form__file { display: block; width: 100%; padding: 12px; border: 1px dashed var(--color-dark); background: var(--color-white); font-size: 14px; }
.form__file::file-selector-button { margin-right: 12px; padding: 8px 14px; border: 0; background: var(--color-primary); color: #fff; font: inherit; font-weight: 500; cursor: pointer; }

/* Filled vacancies: diagonal strip over the photo, greyed card, disabled apply */
.vacancy__media { position: relative; }
.vacancy__strip { position: absolute; top: 22px; right: -44px; transform: rotate(35deg); width: 220px; padding: 8px 0; background: var(--color-dark); color: #fff; font-weight: 500; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; box-shadow: 0 4px 12px rgba(0,0,0,0.25); }
.vacancy[data-status="filled"] .vacancy__closes { color: var(--color-primary); font-weight: 500; }
.page[data-theme="ses"] .page__main .btn[aria-disabled="true"], .btn[aria-disabled="true"] { --btn-bg: var(--color-line); --btn-border: var(--color-line); --btn-color: var(--color-muted); --btn-icon: var(--color-muted); --btn-bg-hover: var(--color-line); --btn-color-hover: var(--color-muted); --btn-border-hover: var(--color-line); --btn-icon-hover: var(--color-muted); cursor: not-allowed; pointer-events: none; }
.btn[aria-disabled="true"]::before { transform: none !important; }

/* Projects listing/detail (SES) */
.project-card { --accent: var(--color-primary); }
.project-card[data-accent="amber"] { --accent: #e0891c; } .project-card[data-accent="purple"] { --accent: #6a3fa0; } .project-card[data-accent="red"] { --accent: #c8102e; }
.page[data-theme="ses"] .tags__price { background-color: var(--accent, var(--color-primary)); color: #fff; }
.page[data-theme="ses"] .tags__client { outline-color: var(--accent, var(--color-primary)); }
.page[data-theme="ses"] .tags__year { background-color: var(--color-sand); color: var(--color-dark); }
.page[data-theme="ses"] .project__tags .tags { --accent: var(--color-primary); }
.page[data-theme="ses"] .project-card__title, .page[data-theme="ses"] .project__title { font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; }
.page[data-theme="ses"] .project-card__title { font-size: clamp(1.35rem, 1.8vw, 1.9rem); line-height: 1.05; }
.page[data-theme="ses"] .project__title { font-size: clamp(2rem, 3.2vw, 3.2rem); line-height: 1.02; }
.page[data-theme="ses"] .project .breadcrumbs { margin: 0 0 1.25rem; }
.project__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 2rem 0 0; }
.page[data-theme="ses"] .project-card[data-variant="row"] .project-card__link { height: 300px; }
.page[data-theme="ses"] .hero-banner__box::after { background-color: var(--color-primary); }
.page[data-theme="ses"] .project-list .slider { --slide-w: 86%; --slide-gap: 0; }
@media (min-width: 768px) { .page[data-theme="ses"] .project-list .slider { --slide-w: 50%; } }
@media (min-width: 1200px) { .page[data-theme="ses"] .project-list .slider { --slide-w: 33.333%; } }
.project-card[data-variant="stack"] .project-card__media { order: 0; margin: 0 0 1.25rem; }
.project-card[data-variant="stack"] .project-card__link { aspect-ratio: 4 / 3; }
.project-card[data-variant="stack"] .project-card__body { padding: 0; }
.project-card[data-variant="stack"] .project-card__tags { margin: 0 0 1rem; }
.project-card[data-variant="stack"] .project-card__text { margin: 0 0 1.25rem; }

/* Certificates page */
.certs { padding: var(--section) 0 0; }
.certs__list { display: grid; grid-template-columns: 1fr; gap: 20px; list-style: none; margin: 2rem 0 0; }
@media (min-width: 768px) { .certs__list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .certs__list { grid-template-columns: repeat(3, 1fr); } }
.cert-card { display: flex; flex-direction: column; height: 100%; background: var(--color-white); border: 1px solid var(--color-line); border-top: 4px solid var(--color-primary); }
.cert-card__media { display: flex; align-items: center; justify-content: center; height: 260px; padding: 20px; background: var(--color-sand); overflow: hidden; }
.cert-card[data-full="true"] .cert-card__media { padding: 0; background: var(--color-dark); }
.cert-card__image { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform 0.4s var(--ease-out); }
.cert-card[data-full="true"] .cert-card__image { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.cert-card__media:hover .cert-card__image { transform: scale(1.03); }
.cert-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.5rem; }
.cert-card__kind { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-weight: 500; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-primary); margin: 0 0 0.5rem; }
.cert-card__badge { height: 32px; width: auto; }
.cert-card__title { font-size: 1.25rem; line-height: 1.15; margin: 0 0 0.35rem; }
.cert-card__issuer { font-size: 14px; color: var(--color-muted); margin: 0 0 0.75rem; }
.cert-card__scope { font-size: 15px; margin: 0 0 1rem; }
.cert-card__meta { list-style: none; margin: auto 0 0; padding: 0.75rem 0 0; border-top: 1px solid var(--color-line); font-size: 13px; color: var(--color-muted); }
.cert-card__meta-item { margin: 0 0 0.25rem; }
.cert-card__view { display: inline-block; margin: 0.75rem 0 0; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.cert-card__view:hover { color: var(--color-primary); }
.coverage__figure { margin: 0 0 2rem; }
.coverage__image { display: block; width: 100%; max-height: 520px; object-fit: cover; }
.coverage__caption { margin: 0.6rem 0 0; font-size: 13px; color: var(--color-muted); }
