/* Foundations: fonts, tokens, reset, and shared utilities */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/inter-latin-variable.woff2") format("woff2");
}

@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-display-latin-variable.woff2") format("woff2");
}

:root {
  --paper: #faf9f6;
  --surface: #f2f0ea;
  --surface-warm: #ebe6dd;
  --border: #ded7cb;
  --white: #fdfcfb;
  --ink: #211e19;
  --ink-soft: #38332c;
  --muted: #716a60;
  --gold: #e3a24a;
  --gold-deep: #cc8a30;
  --gold-text: #b07d12;
  --gold-soft: #f1d8a8;
  --green: #2e9d5b;
  --green-deep: #267c4a;
  --green-text: #2c794b;
  --green-soft: #dcecdf;
  --brown: #946a45;
  --brown-deep: #5f402a;
  --brown-text: #6e4a30;
  --brown-soft: #e5d0b8;
  --error: #a93f32;
  --form-success-accent: var(--gold);
  --form-success-text: var(--gold-text);
  --form-success-button-text: var(--ink);
  --gold-wash: #f7ecda;
  --green-wash: #eef6ef;
  --brown-wash: #f4ece3;
  --gold-border: #ead7be;
  --green-border: #c8dfcf;
  --brown-border: #dcc5ad;
  --espresso-rgb: 30 23 17;
  --espresso-warm-rgb: 58 38 24;
  --ink-rgb: 22 19 15;
  --paper-rgb: 250 249 246;
  --gold-rgb: 227 162 74;
  --green-rgb: 46 157 91;
  --brown-rgb: 148 106 69;
  --color-paper: var(--paper);
  --color-ink: var(--ink);
  --color-graphite: var(--ink-soft);
  --color-badge-accent-soft: var(--green-soft);
  --color-black-22: rgb(var(--ink-rgb) / 0.22);
  --font-display: "Playfair Display", Georgia, serif;
  --font-body: "Inter", Arial, sans-serif;
  --text-caption: 0.76rem;
  --text-small: 0.86rem;
  --text-ui: 0.92rem;
  --text-body: 1rem;
  --text-lead: 1.08rem;
  --text-card: 1.28rem;
  --text-card-lg: 1.45rem;
  --text-quote: 1.85rem;
  --text-subhead: 2.25rem;
  --text-heading: 2.8rem;
  --text-display: 3.15rem;
  --text-page-display: 3.15rem;
  --measure-narrow: 58ch;
  --measure: 68ch;
  --measure-wide: 76ch;
  --radius: 10px;
  --radius-lg: 18px;
  --radius-xl: 28px;
  --shell: 1180px;
  --space-2xs: clamp(6px, 0.45vw, 8px);
  --space-xs: clamp(10px, 0.8vw, 14px);
  --space-sm: clamp(14px, 1.1vw, 20px);
  --space-md: clamp(20px, 1.8vw, 30px);
  --space-lg: clamp(34px, 4vw, 58px);
  --space-xl: clamp(58px, 7vw, 98px);
  --space-section: clamp(72px, 9vw, 132px);
  --space-section-tight: clamp(54px, 6vw, 86px);
  --shadow-soft: 0 18px 52px rgb(var(--ink-rgb) / 0.075);
  --shadow-card: 0 14px 34px rgb(var(--ink-rgb) / 0.055);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-base: 220ms;
  --duration-entrance: 520ms;
}

@supports (color: color-mix(in oklch, white, black)) {
  :root {
    --gold-wash: color-mix(in oklch, var(--gold-soft) 34%, var(--paper));
    --green-wash: color-mix(in oklch, var(--green-soft) 58%, var(--paper));
    --brown-wash: color-mix(in oklch, var(--brown-soft) 48%, var(--paper));
    --gold-border: color-mix(in oklch, var(--gold) 26%, var(--border));
    --green-border: color-mix(in oklch, var(--green) 24%, var(--border));
    --brown-border: color-mix(in oklch, var(--brown) 24%, var(--border));
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  scroll-behavior: smooth;
  background: var(--paper);
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.68;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.has-nav-open {
  overflow: hidden;
}

img,
svg {
  display: block;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.22em;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  border: 0;
}

address {
  font-style: normal;
}

:focus-visible {
  outline: 3px solid var(--gold-deep);
  outline-offset: 4px;
  box-shadow: 0 0 0 6px rgb(var(--gold-rgb) / 0.18);
}

.shell {
  width: min(var(--shell), calc(100% - clamp(40px, 5vw, 68px)));
  margin-inline: auto;
}

.skip-link {
  position: fixed;
  inset-block-start: 12px;
  inset-inline-start: 12px;
  z-index: 1000;
  width: 1px;
  height: 1px;
  padding: 10px 14px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  opacity: 0;
  pointer-events: none;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.skip-link:focus,
.skip-link:focus-visible {
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  clip-path: none;
  opacity: 1;
  pointer-events: auto;
}

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

.visually-hidden input,
.visually-hidden select,
.visually-hidden textarea,
.visually-hidden button {
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

h1,
h2,
h3,
p {
  margin-block-start: 0;
}

h1,
h2,
h3 {
  color: var(--ink);
  font-family: var(--font-display);
  line-height: 1.06;
  font-weight: 630;
}

h1 {
  margin-block-end: var(--space-sm);
  font-size: var(--text-heading);
}

h2 {
  margin-block-end: var(--space-sm);
  font-size: var(--text-subhead);
}

h3 {
  margin-block-end: var(--space-2xs);
  font-size: var(--text-card);
}

p {
  margin-block-end: var(--space-sm);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-block-end: var(--space-sm);
  color: var(--gold-text);
  font-size: var(--text-caption);
  font-weight: 760;
  line-height: 1.35;
  text-transform: uppercase;
  letter-spacing: 0;
}

.eyebrow::before {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
}

.eyebrow--light {
  color: var(--gold);
}

.eyebrow--green {
  color: var(--green-text);
}

.eyebrow--brown {
  color: var(--brown-text);
}

.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  max-width: 100%;
  padding: 0.78rem 1.35rem;
  border-radius: 999px;
  color: var(--ink);
  font-weight: 650;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition: transform var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);
}

.button:hover,
.button:focus-visible {
  transform: translateY(-1px);
}

.button--primary {
  background: var(--gold);
  box-shadow: none;
}

.button--primary:hover,
.button--primary:focus-visible {
  background: var(--gold-deep);
  color: var(--ink);
  box-shadow: none;
}

.button--secondary {
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink);
}

.button--secondary:hover,
.button--secondary:focus-visible {
  border-color: var(--gold-border);
  background: var(--gold-wash);
  color: var(--ink);
  box-shadow: none;
}

.button--outline-light {
  border: 1.5px solid rgb(var(--paper-rgb) / 0.45);
  background: transparent;
  color: var(--paper);
}

.button--outline-light:hover,
.button--outline-light:focus-visible {
  border-color: var(--gold-soft);
  background: rgb(var(--paper-rgb) / 0.12);
  color: var(--paper);
}

.page-hero--washtower .button--outline-light:hover,
.page-hero--washtower .button--outline-light:focus-visible {
  border-color: var(--green);
  background: rgb(var(--green-rgb) / 0.16);
  color: var(--paper);
  box-shadow: none;
}

.page-hero--elica .button--outline-light:hover,
.page-hero--elica .button--outline-light:focus-visible {
  border-color: var(--brown);
  background: rgb(var(--brown-rgb) / 0.18);
  color: var(--paper);
  box-shadow: none;
}

.button--small {
  min-height: 46px;
  padding: 0.62rem 1rem;
  font-size: var(--text-ui);
}

.button--lg {
  min-height: 52px;
}

.text-link {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 7px;
  padding-block: 9px;
  margin-block: -9px;
  color: var(--gold-text);
  font-weight: 650;
  line-height: 1.35;
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-color: color-mix(in oklch, currentColor 32%, transparent);
  transition: color var(--duration-base) var(--ease-out), text-decoration-color var(--duration-base) var(--ease-out);
}

.text-link:hover,
.text-link:focus-visible {
  color: var(--gold-deep);
  text-decoration-color: currentColor;
}

.text-link--green {
  color: var(--green-text);
}

.text-link--green:hover,
.text-link--green:focus-visible {
  color: var(--green-deep);
  text-decoration-color: currentColor;
}

.text-link--brown {
  color: var(--brown-text);
}

.text-link--brown:hover,
.text-link--brown:focus-visible {
  color: var(--brown-deep);
  text-decoration-color: currentColor;
}

.icon {
  flex: 0 0 auto;
}

/* Header and navigation */
.site-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 100;
  border-block-end: 1px solid var(--border);
  background: rgb(var(--paper-rgb) / 0.92);
  color: var(--ink);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  transition: background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);
}

.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) {
  border-color: transparent;
  background: transparent;
  color: var(--paper);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.site-header.is-scrolled,
.site-header.is-open {
  box-shadow: 0 12px 28px rgb(var(--ink-rgb) / 0.055);
}

.site-header__inner {
  display: flex;
  min-height: clamp(68px, 6vw, 76px);
  align-items: center;
  gap: 22px;
}

.brand,
.site-footer__wordmark {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  color: inherit;
  font-family: var(--font-display);
  line-height: 0.9;
  text-decoration: none;
  transition: color 320ms var(--ease-out);
}

.brand {
  min-height: 44px;
  justify-content: center;
}

.brand:hover,
.brand:focus-visible,
.site-footer__wordmark:hover,
.site-footer__wordmark:focus-visible {
  color: var(--gold);
}

.page--washtower .brand:hover,
.page--washtower .brand:focus-visible,
.page--washtower .site-footer__wordmark:hover,
.page--washtower .site-footer__wordmark:focus-visible {
  color: var(--green);
}

.page--elica .brand:hover,
.page--elica .brand:focus-visible,
.page--elica .site-footer__wordmark:hover,
.page--elica .site-footer__wordmark:focus-visible {
  color: var(--brown);
}

.page--washtower.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .brand:hover,
.page--washtower.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .brand:focus-visible {
  color: var(--green);
}

.page--elica.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .brand:hover,
.page--elica.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .brand:focus-visible {
  color: var(--brown);
}

.brand__mark,
.site-footer__wordmark span {
  font-size: 1.45rem;
  font-weight: 650;
}

.brand__home,
.site-footer__wordmark small {
  align-self: center;
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 600;
}

/* ADAGO monogram: single-color SVG, recolors via currentColor so the
   existing .brand / .site-footer__wordmark hover colors apply unchanged. */
.brand__logo {
  display: block;
  width: auto;
  height: 36px;
  transition: color 320ms var(--ease-out);
}
.site-footer__wordmark .brand__logo {
  height: 42px;
}

/* Sticky scroll-to-top: appears once the hero is scrolled past. */
.scroll-top {
  position: fixed;
  right: clamp(16px, 2.6vw, 32px);
  bottom: clamp(16px, 2.6vw, 32px);
  z-index: 60;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: var(--gold);
  color: var(--ink);
  cursor: pointer;
  box-shadow: 0 10px 26px rgb(var(--ink-rgb) / 0.18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 260ms var(--ease-out), background 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
}
.scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.scroll-top:hover {
  background: var(--gold-deep);
  box-shadow: 0 16px 34px rgb(var(--ink-rgb) / 0.22);
}
.scroll-top:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}
.scroll-top svg {
  display: block;
}
body.has-nav-open .scroll-top {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Elica highlights: editorial grid on larger screens, native swipe rail on mobile. */
.elica-gallery {
  overflow: hidden;
}

.elica-gallery .section__head {
  max-width: 660px;
}

.elica-gallery__viewport {
  margin-top: var(--space-lg);
  outline: none;
}

.elica-gallery__viewport:focus-visible {
  outline: 2px solid var(--brown);
  outline-offset: 6px;
  border-radius: var(--radius-lg);
}

.elica-gallery__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: clamp(190px, 17vw, 248px);
  gap: clamp(10px, 1.2vw, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.elica-gallery__item {
  min-width: 0;
}

.elica-gallery__item--1 {
  grid-column: span 8;
  grid-row: span 2;
}

.elica-gallery__item--2,
.elica-gallery__item--3,
.elica-gallery__item--4,
.elica-gallery__item--5,
.elica-gallery__item--6 {
  grid-column: span 4;
}

.elica-gallery__button {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--ink);
  color: var(--paper);
  cursor: zoom-in;
  box-shadow: var(--shadow-card);
}

.elica-gallery__button img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms var(--ease-out-expo), opacity var(--duration-base) var(--ease-out);
}

.elica-gallery__item--1 img {
  object-position: center;
}

.elica-gallery__caption {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: 14px 16px;
  background: rgb(var(--espresso-warm-rgb) / 0.88);
  text-align: left;
}

.elica-gallery__caption > span:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.elica-gallery__caption strong,
.elica-gallery__caption small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.elica-gallery__caption strong {
  font-size: var(--text-ui);
  line-height: 1.25;
}

.elica-gallery__caption small {
  color: rgb(var(--paper-rgb) / 0.76);
  font-size: var(--text-caption);
  line-height: 1.35;
}

.elica-gallery__expand {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgb(var(--paper-rgb) / 0.45);
  border-radius: 999px;
  transition: background var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);
}

.elica-gallery__button:hover img {
  transform: scale(1.025);
}

.elica-gallery__button:hover .elica-gallery__expand {
  background: var(--paper);
  color: var(--brown-deep);
}

.elica-gallery__button:focus-visible {
  outline: 3px solid var(--brown);
  outline-offset: 3px;
}

.elica-gallery__controls {
  display: none;
}

body.has-gallery-lightbox {
  overflow: hidden;
}

.elica-lightbox {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgb(var(--espresso-rgb) / 0.97);
  color: var(--paper);
}

.elica-lightbox::backdrop {
  background: rgb(var(--espresso-rgb) / 0.94);
}

.elica-lightbox__surface {
  position: relative;
  min-height: 100%;
}

.elica-lightbox__topbar {
  position: absolute;
  z-index: 3;
  inset: clamp(16px, 2.4vw, 28px) clamp(16px, 2.4vw, 30px) auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: rgb(var(--paper-rgb) / 0.75);
  font-size: var(--text-small);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.elica-lightbox__close,
.elica-lightbox__nav {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgb(var(--paper-rgb) / 0.3);
  border-radius: 999px;
  background: rgb(var(--espresso-warm-rgb) / 0.72);
  color: var(--paper);
  cursor: pointer;
  transition: background var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out);
}

.elica-lightbox__close:hover,
.elica-lightbox__nav:hover {
  border-color: var(--paper);
  background: var(--paper);
  color: var(--brown-deep);
}

.elica-lightbox__close:focus-visible,
.elica-lightbox__nav:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.elica-lightbox__figure {
  display: grid;
  min-height: 100dvh;
  margin: 0;
  padding: 78px clamp(82px, 9vw, 150px) 32px;
  place-content: center;
  justify-items: center;
  gap: var(--space-sm);
}

.elica-lightbox__figure img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100dvh - 170px);
  border-radius: var(--radius);
  object-fit: contain;
  box-shadow: 0 28px 80px rgb(0 0 0 / 0.38);
}

.elica-lightbox__figure figcaption {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  text-align: center;
}

.elica-lightbox__figure figcaption strong {
  font-family: var(--font-display);
  font-size: var(--text-card);
  font-weight: 600;
}

.elica-lightbox__figure figcaption span {
  color: rgb(var(--paper-rgb) / 0.66);
  font-size: var(--text-small);
}

.elica-lightbox__nav {
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
}

.elica-lightbox__nav--prev {
  left: clamp(16px, 2.4vw, 30px);
}

.elica-lightbox__nav--next {
  right: clamp(16px, 2.4vw, 30px);
}

@media (max-width: 699px) {
  .elica-gallery__viewport {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
    touch-action: pan-x;
  }

  .elica-gallery__viewport::-webkit-scrollbar {
    display: none;
  }

  .elica-gallery__grid {
    display: flex;
    gap: 12px;
    width: max-content;
  }

  .elica-gallery__item,
  .elica-gallery__item--1,
  .elica-gallery__item--2,
  .elica-gallery__item--3,
  .elica-gallery__item--4,
  .elica-gallery__item--5,
  .elica-gallery__item--6 {
    flex: 0 0 calc(100vw - 72px);
    width: calc(100vw - 72px);
    scroll-snap-align: start;
  }

  .elica-gallery__button {
    aspect-ratio: 4 / 5;
  }

  .elica-gallery__controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 190px;
    margin: var(--space-md) auto 0;
  }

  .elica-gallery__controls button {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--brown-border);
    border-radius: 999px;
    background: var(--white);
    color: var(--brown-text);
  }

  .elica-gallery__controls button:disabled {
    opacity: 0.38;
  }

  .elica-gallery__controls button:focus-visible {
    outline: 2px solid var(--brown);
    outline-offset: 2px;
  }

  .elica-gallery__controls span {
    color: var(--brown-text);
    font-size: var(--text-small);
    font-weight: 750;
    letter-spacing: 0.08em;
  }

  .elica-lightbox__figure {
    padding: 76px 14px 108px;
  }

  .elica-lightbox__figure img {
    max-height: calc(100dvh - 220px);
  }

  .elica-lightbox__figure figcaption {
    flex-direction: column;
    align-items: center;
    gap: 2px;
  }

  .elica-lightbox__nav {
    top: auto;
    bottom: 26px;
    transform: none;
  }

  .elica-lightbox__nav--prev {
    left: calc(50% - 62px);
  }

  .elica-lightbox__nav--next {
    right: calc(50% - 62px);
  }
}

@media (min-width: 700px) and (max-width: 879px) {
  .elica-gallery__caption {
    gap: 8px;
    padding: 11px 12px;
  }

  .elica-gallery__caption strong {
    font-size: var(--text-small);
  }

  .elica-gallery__caption small {
    display: none;
  }

  .elica-gallery__expand {
    width: 32px;
    height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .elica-gallery__button img {
    transition: none;
  }
}

/* Washtower uses the shared gallery behavior with a warmer, home-led composition. */
.washtower-gallery .section__head {
  max-width: 700px;
}

.washtower-gallery .elica-gallery__grid {
  grid-auto-rows: clamp(170px, 15vw, 220px);
}

.washtower-gallery .elica-gallery__item--1 {
  grid-column: span 7;
  grid-row: span 2;
}

.washtower-gallery .elica-gallery__item--2 {
  grid-column: span 5;
  grid-row: span 2;
}

.washtower-gallery .elica-gallery__item--3,
.washtower-gallery .elica-gallery__item--4,
.washtower-gallery .elica-gallery__item--5,
.washtower-gallery .elica-gallery__item--6,
.washtower-gallery .elica-gallery__item--7,
.washtower-gallery .elica-gallery__item--8,
.washtower-gallery .elica-gallery__item--9,
.washtower-gallery .elica-gallery__item--10 {
  grid-column: span 3;
}

.washtower-gallery .elica-gallery__caption {
  background: rgb(30 99 60 / 0.91);
}

.washtower-gallery .elica-gallery__button:focus-visible,
.washtower-gallery .elica-gallery__viewport:focus-visible {
  outline-color: var(--green);
}

.washtower-gallery .elica-gallery__button:hover .elica-gallery__expand {
  color: var(--green-deep);
}

.washtower-lightbox,
.washtower-lightbox::backdrop {
  background: rgb(12 47 29 / 0.97);
}

.washtower-lightbox .elica-lightbox__close,
.washtower-lightbox .elica-lightbox__nav {
  background: rgb(30 99 60 / 0.76);
}

.washtower-lightbox .elica-lightbox__close:hover,
.washtower-lightbox .elica-lightbox__nav:hover {
  color: var(--green-deep);
}

@media (min-width: 700px) {
  .washtower-gallery .elica-gallery__item--3 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--4 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--5 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--6 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--7 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--8 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--9 .elica-gallery__caption small,
  .washtower-gallery .elica-gallery__item--10 .elica-gallery__caption small {
    display: none;
  }
}

@media (max-width: 699px) {
  .washtower-gallery .elica-gallery__item,
  .washtower-gallery .elica-gallery__item--1,
  .washtower-gallery .elica-gallery__item--2,
  .washtower-gallery .elica-gallery__item--3,
  .washtower-gallery .elica-gallery__item--4,
  .washtower-gallery .elica-gallery__item--5,
  .washtower-gallery .elica-gallery__item--6,
  .washtower-gallery .elica-gallery__item--7,
  .washtower-gallery .elica-gallery__item--8,
  .washtower-gallery .elica-gallery__item--9,
  .washtower-gallery .elica-gallery__item--10 {
    flex-basis: calc(100vw - 58px);
    width: calc(100vw - 58px);
  }

  .washtower-gallery .elica-gallery__button {
    aspect-ratio: 4 / 5;
  }

  .washtower-gallery .elica-gallery__controls button {
    border-color: var(--green-border);
    color: var(--green-text);
  }

  .washtower-gallery .elica-gallery__controls button:focus-visible {
    outline-color: var(--green);
  }

  .washtower-gallery .elica-gallery__controls span {
    color: var(--green-text);
  }
}

/* Washtower testimonial slider (real customer voices) */
.testimonial-slider {
  position: relative;
  margin-top: var(--space-lg);
  max-width: 840px;
  margin-left: auto;
  margin-right: auto;
}
.testimonial-slider__viewport {
  overflow: hidden;
  border-radius: var(--radius-lg);
}
.testimonial-slider__track {
  display: flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 0.45s var(--ease-out);
}
.testimonial-card {
  flex: 0 0 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-sm);
  padding: clamp(28px, 4vw, 52px);
  background: var(--white);
  border: 1px solid var(--green-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}
.testimonial-card__mark {
  font-family: var(--font-display);
  font-size: 3.4rem;
  line-height: 0.5;
  height: 1.4rem;
  color: var(--green);
}

.testimonial-card__rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--brown-text);
  font-size: var(--text-caption);
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.testimonial-card__rating span {
  color: var(--brown);
  font-size: var(--text-ui);
  letter-spacing: 0.08em;
}

.testimonial-card__rating strong {
  font-weight: 800;
}
.testimonial-card__quote {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-card);
  font-weight: 500;
  line-height: 1.42;
  color: var(--ink);
}
.testimonial-card__cite {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-top: auto;
  font-style: normal;
  font-weight: 700;
  color: var(--ink);
}
.testimonial-card__cite span {
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-text);
}
.testimonial-slider__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}
.testimonial-slider__nav {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  transition: border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}
.testimonial-slider__nav:hover {
  border-color: var(--green);
  color: var(--green-text);
}
.testimonial-slider__nav:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
.testimonial-slider__nav:disabled {
  opacity: 0.4;
  cursor: default;
}
.testimonial-slider__dots {
  display: flex;
  align-items: center;
  gap: 2px;
}
.testimonial-slider__dot {
  position: relative;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}
.testimonial-slider__dot::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: inherit;
  background: var(--green-border);
  transition: width var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}
.testimonial-slider__dot.is-active::before {
  width: 24px;
  background: var(--green);
}

.testimonial-slider__status {
  display: none;
  min-width: 54px;
  color: var(--muted);
  font-size: var(--text-ui);
  font-variant-numeric: tabular-nums;
  font-weight: 720;
  text-align: center;
}

.testimonials--elica .testimonial-card {
  border-color: var(--brown-border);
}

.testimonials--elica .testimonial-card__cite span {
  color: var(--brown-text);
}

.testimonials--elica .testimonial-slider__nav:hover {
  border-color: var(--brown);
  color: var(--brown-text);
}

.testimonials--elica .testimonial-slider__nav:focus-visible {
  outline-color: var(--brown);
}

.testimonials--elica .testimonial-slider__dot::before {
  background: var(--brown-border);
}

.testimonials--elica .testimonial-slider__dot.is-active::before {
  background: var(--brown);
}

.testimonial-source {
  display: flex;
  justify-content: center;
  margin: var(--space-md) 0 0;
  text-align: center;
}
@media (prefers-reduced-motion: reduce) {
  .testimonial-slider__track {
    transition: none;
  }
}

/* About: "Die Idee" centered pull-quote */
.about-statement .shell {
  max-width: 780px;
  text-align: center;
}
.about-statement blockquote {
  margin: var(--space-sm) auto 0;
  padding: 0;
  border: 0;
  font-family: var(--font-display);
  font-size: var(--text-quote);
  font-weight: 500;
  line-height: 1.34;
  color: var(--ink);
}

.site-nav {
  display: none;
  align-items: center;
  gap: 22px;
  margin-inline-start: auto;
}

.site-nav__link {
  position: relative;
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  color: inherit;
  font-size: var(--text-ui);
  font-weight: 650;
  text-decoration: none;
  transition: color var(--duration-base) var(--ease-out);
}

.site-nav__link::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 4px;
  height: 2px;
  transform: scaleX(0);
  transform-origin: center;
  background: var(--gold);
  background: color-mix(in oklch, var(--gold) 82%, var(--paper));
  transition: transform var(--duration-base) var(--ease-out);
}

.site-nav__link--washtower::after {
  background: var(--green);
}

.site-nav__link--elica::after {
  background: var(--brown);
}

.site-nav__link:hover::after,
.site-nav__link:focus-visible::after,
.site-nav__link[aria-current="page"]::after {
  transform: scaleX(1);
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.site-nav__link[aria-current="page"] {
  color: var(--gold-text);
}

.site-nav__link--washtower:hover,
.site-nav__link--washtower:focus-visible,
.site-nav__link--washtower[aria-current="page"] {
  color: var(--green);
}

.site-nav__link--elica:hover,
.site-nav__link--elica:focus-visible,
.site-nav__link--elica[aria-current="page"] {
  color: var(--brown);
}

.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link:hover,
.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link:focus-visible,
.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link[aria-current="page"] {
  color: var(--gold);
}

.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link--washtower:hover,
.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link--washtower:focus-visible,
.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link--washtower[aria-current="page"] {
  color: var(--green);
}

.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link--elica:hover,
.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link--elica:focus-visible,
.has-header-overlay .site-header:not(.is-scrolled):not(.is-open) .site-nav__link--elica[aria-current="page"] {
  color: var(--brown);
}

.site-header__cta {
  display: none;
  margin-inline-start: 4px;
}

.page--washtower .site-header__cta,
.page--washtower .mobile-nav .button--primary {
  background: var(--green);
  color: var(--paper);
}

.page--washtower .site-header__cta:hover,
.page--washtower .site-header__cta:focus-visible,
.page--washtower .mobile-nav .button--primary:hover,
.page--washtower .mobile-nav .button--primary:focus-visible {
  background: var(--green-deep);
  color: var(--paper);
}

.page--elica .site-header__cta,
.page--elica .mobile-nav .button--primary {
  background: var(--brown);
  color: var(--paper);
}

.page--elica .site-header__cta:hover,
.page--elica .site-header__cta:focus-visible,
.page--elica .mobile-nav .button--primary:hover,
.page--elica .mobile-nav .button--primary:focus-visible {
  background: var(--brown-deep);
  color: var(--paper);
}

.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-inline-start: auto;
  border-radius: 999px;
  background: rgb(var(--paper-rgb) / 0.12);
  color: currentColor;
  cursor: pointer;
  transition: background var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);
}

.site-header.is-scrolled .nav-toggle,
.site-header.is-open .nav-toggle,
body:not(.has-header-overlay) .nav-toggle {
  background: var(--surface);
}

.mobile-nav {
  transform: translate3d(0, -10px, 0);
  transform-origin: top center;
  opacity: 0;
  background: rgb(var(--paper-rgb) / 0.98);
  color: var(--ink);
  box-shadow: 0 20px 42px rgb(var(--ink-rgb) / 0.10);
  transition: transform var(--duration-base) var(--ease-out), opacity var(--duration-base) var(--ease-out);
}

.mobile-nav.is-open {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

.mobile-nav__panel {
  display: grid;
  gap: 6px;
  padding-block: 16px 22px;
}

.mobile-nav__panel a:not(.button) {
  padding-block: 10px;
  font-weight: 650;
  text-decoration: none;
  transition: color var(--duration-base) var(--ease-out);
}

.mobile-nav__panel a:not(.button):hover,
.mobile-nav__panel a:not(.button):focus-visible {
  color: var(--gold-text);
}

/* Heroes */
.hero,
.page-hero {
  position: relative;
  display: grid;
  overflow: hidden;
  background: var(--ink);
  color: var(--paper);
}

.hero {
  min-height: 760px;
  min-height: 100svh;
}

.page-hero {
  min-height: 760px;
  min-height: 100svh;
}

.hero__media,
.page-hero__media,
.hero__overlay,
.page-hero__overlay {
  position: absolute;
  inset: 0;
}

.hero__media img,
.page-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__overlay,
.page-hero__overlay {
  z-index: 1;
}

.hero__overlay {
  background:
    linear-gradient(180deg, rgb(var(--espresso-rgb) / 0.64) 0%, rgb(var(--ink-rgb) / 0.38) 50%, rgb(var(--ink-rgb) / 0.88) 100%),
    linear-gradient(90deg, rgb(var(--ink-rgb) / 0.80) 0%, rgb(var(--espresso-warm-rgb) / 0.20) 50%, rgb(var(--espresso-warm-rgb) / 0) 100%),
    linear-gradient(0deg, rgb(var(--espresso-rgb) / 0.46) 0%, rgb(var(--espresso-rgb) / 0) 48%);
}

.page-hero__overlay {
  background: linear-gradient(90deg, rgb(var(--ink-rgb) / 0.74) 0%, rgb(var(--ink-rgb) / 0.52) 43%, rgb(var(--ink-rgb) / 0.20) 100%), linear-gradient(0deg, rgb(var(--ink-rgb) / 0.58) 0%, transparent 45%);
}

.hero__inner,
.page-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: inherit;
  flex-direction: column;
  justify-content: center;
  padding-block: clamp(116px, 16vh, 164px) clamp(64px, 10vh, 110px);
}

.hero__inner {
  padding-block: clamp(96px, 13vh, 136px);
}

.hero__copy,
.page-hero__inner {
  max-width: 690px;
}

.hero h1,
.page-hero h1 {
  color: var(--paper);
  font-size: var(--text-display);
  line-height: 1.02;
}

.hero h1 span {
  color: var(--gold);
}

.page-hero h1 {
  font-size: var(--text-page-display);
  line-height: 1.04;
}

.page--washtower .page-hero h1,
.page--washtower .product-detail h2,
.page--washtower .section--warm h2,
.page--washtower .video-feature__copy h2,
.product-split--washtower h2 {
  font-family: var(--font-body);
  font-weight: 720;
  letter-spacing: 0;
  line-height: 1.07;
}

.page--washtower .page-hero h1 {
  line-height: 1.05;
}

.hero__lead,
.page-hero p:not(.eyebrow) {
  max-width: var(--measure-narrow);
  color: rgb(var(--paper-rgb) / 0.86);
  font-size: var(--text-lead);
  line-height: 1.68;
}

.page-hero .eyebrow--green {
  color: var(--green-soft);
}

.page-hero .eyebrow--brown {
  color: var(--brown-soft);
}

.page-hero--washtower .page-hero__media img {
  object-position: center 56%;
}

@media (min-width: 1600px) {
  .page-hero--washtower .page-hero__media img {
    object-position: center calc(56% - 80px);
  }
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-block-start: var(--space-md);
}

.hero__actions--center {
  justify-content: center;
}

.hero__features {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: var(--space-lg) 0 0;
  padding: 0;
  color: rgb(var(--paper-rgb) / 0.78);
  list-style: none;
  font-weight: 600;
}

.hero__features li {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.hero__features li::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold);
  background: color-mix(in oklch, var(--gold) 84%, var(--paper));
}

.hero__scroll {
  position: absolute;
  inset-block-end: clamp(20px, 3vh, 30px);
  inset-inline-start: 50%;
  z-index: 3;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  color: rgb(var(--paper-rgb) / 0.68);
  font-size: 0.66rem;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transform: translateX(-50%);
  transition: color var(--duration-base) var(--ease-out);
}

.hero__scroll span {
  letter-spacing: 0.22em;
}

.hero__scroll::after {
  content: "";
  width: 1px;
  height: clamp(28px, 4.2vh, 42px);
  margin-block-start: 10px;
  background: linear-gradient(180deg, var(--gold) 0%, rgb(var(--gold-rgb) / 0.22) 100%);
  transform-origin: top center;
  transition: transform var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}

.hero__scroll:hover,
.hero__scroll:focus-visible {
  color: var(--paper);
}

.hero__scroll:hover::after,
.hero__scroll:focus-visible::after {
  background: linear-gradient(180deg, var(--gold) 0%, rgb(var(--gold-rgb) / 0.38) 100%);
  transform: scaleY(1.2);
}

.page-hero--washtower .hero__scroll::after {
  background: linear-gradient(180deg, var(--green) 0%, rgb(var(--green-rgb) / 0.22) 100%);
}

.page-hero--washtower .hero__scroll:hover::after,
.page-hero--washtower .hero__scroll:focus-visible::after {
  background: linear-gradient(180deg, var(--green) 0%, rgb(var(--green-rgb) / 0.38) 100%);
}

.page-hero--elica .hero__scroll::after {
  background: linear-gradient(180deg, var(--brown) 0%, rgb(var(--brown-rgb) / 0.22) 100%);
}

.page-hero--elica .hero__scroll:hover::after,
.page-hero--elica .hero__scroll:focus-visible::after {
  background: linear-gradient(180deg, var(--brown) 0%, rgb(var(--brown-rgb) / 0.38) 100%);
}

/* Shared sections, cards, and product content */
.section {
  padding-block: var(--space-section);
}

.section--paper {
  background: var(--surface);
}

.section--warm {
  background: var(--surface-warm);
}

.section__head {
  max-width: var(--measure-wide);
  margin-block-end: var(--space-lg);
}

.section__head--center {
  margin-inline: auto;
  text-align: center;
}

.section__head--center .eyebrow {
  justify-content: center;
}

.section__head--center .action-row {
  justify-content: center;
}

/* For heads that carry their own actions and end the section. */
.section__head--flush {
  margin-block-end: 0;
}

.section__head--center p:not(.eyebrow),
.simple-hero--center p:not(.eyebrow) {
  margin-inline: auto;
}

.section__head p:not(.eyebrow),
.simple-hero p:not(.eyebrow),
.product-split__copy p:not(.eyebrow),
.product-detail__copy p:not(.eyebrow),
.about-strip__copy p:not(.eyebrow),
.about-page__copy p:not(.eyebrow) {
  max-width: var(--measure);
  color: var(--muted);
}

.heading-wrap {
  max-width: var(--heading-wrap, none);
}

.section__head--center .heading-wrap,
.closing-cta .heading-wrap {
  margin-inline: auto;
}

.worlds-intro {
  position: relative;
}

.world-cards {
  display: grid;
  gap: var(--space-md);
}

.world-card {
  position: relative;
  display: grid;
  min-height: clamp(250px, 26vw, 370px);
  align-content: space-between;
  /* keeps eyebrow, headline and logo apart once the copy fills the card */
  row-gap: var(--space-sm);
  padding: clamp(24px, 3vw, 38px);
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  color: var(--ink);
  text-decoration: none;
  box-shadow: var(--shadow-card);
  transition: border-color var(--duration-base) var(--ease-out), box-shadow 260ms var(--ease-out-expo), background var(--duration-base) var(--ease-out);
}

.world-card--washtower {
  border-color: var(--green-border);
  background-color: var(--white);
  background-image: linear-gradient(145deg, var(--white) 0%, var(--white) 58%, var(--green-wash) 100%);
}

.world-card--elica {
  border-color: var(--brown-border);
  background-color: var(--white);
  background-image: linear-gradient(145deg, var(--white) 0%, var(--white) 58%, var(--brown-wash) 100%);
}

.world-card:hover,
.world-card:focus-visible {
  box-shadow: 0 24px 58px rgb(var(--ink-rgb) / 0.105);
}

.world-card span {
  color: var(--green-text);
  font-weight: 740;
}

.world-card--elica span {
  color: var(--brown-text);
}

.world-card strong {
  display: block;
  max-width: var(--measure-narrow);
  font-family: var(--font-display);
  font-size: var(--text-card-lg);
  line-height: 1.15;
  transition: color var(--duration-base) var(--ease-out);
}

.world-card--washtower:hover strong,
.world-card--washtower:focus-visible strong {
  color: var(--green-text);
}

.world-card--elica:hover strong,
.world-card--elica:focus-visible strong {
  color: var(--brown-text);
}

.world-card img {
  max-width: 180px;
  opacity: 0.92;
  transition: opacity var(--duration-base) var(--ease-out);
}

/* Brand wordmark logos differ in aspect: constrain each for balanced presence. */
.world-card img.world-card__logo {
  height: auto;
}
.world-card img.world-card__logo--washtower {
  max-width: 244px;
}
.world-card img.world-card__logo--elica {
  max-width: 168px;
}

.world-card:hover img,
.world-card:focus-visible img {
  opacity: 1;
}

.product-split {
  background: var(--paper);
}

.product-split--washtower {
  border-block-start: 1px solid var(--border);
  background: var(--paper);
}

.product-split--elica {
  border-block-start: 1px solid var(--brown-border);
  background: var(--paper);
}

.product-split__grid,
.product-detail__grid,
.about-strip__grid,
.about-page__grid,
.contact-panel,
.contact-page-grid {
  display: grid;
  gap: var(--space-lg);
  align-items: center;
}

.product-split__media,
.product-detail__media,
.about-strip__portrait,
.about-page__portrait {
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

.product-split__media img,
.product-detail__media img,
.about-strip__portrait img,
.about-page__portrait img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}

.product-split__copy,
.product-detail__copy {
  max-width: var(--measure-narrow);
}

.partner-support {
  border-block: 1px solid var(--brown-border);
}

.partner-support__layout {
  display: grid;
  gap: var(--space-lg);
  align-items: start;
}

.partner-support__intro {
  max-width: var(--measure-wide);
  margin-inline: auto;
  text-align: center;
}

.partner-support__intro .eyebrow {
  justify-content: center;
}

.partner-support__intro > p:not(.eyebrow) {
  max-width: var(--measure);
  margin-inline: auto;
  color: var(--muted);
}

.partner-support__intro .text-link {
  margin-block-start: var(--space-md);
}

.partner-support__services {
  display: grid;
  margin: 0;
  padding: 0;
  border-block-start: 1px solid var(--brown-border);
  list-style: none;
}

.partner-support__services li {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding-block: clamp(22px, 2.6vw, 30px);
  border-block-end: 1px solid var(--brown-border);
}

.partner-support__icon {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--brown-border);
  border-radius: 50%;
  background: var(--brown-wash);
  color: var(--brown-text);
}

.partner-support__services h3 {
  margin: 0 0 8px;
}

.partner-support__services p {
  margin: 0;
  color: var(--muted);
  font-size: var(--text-small);
  line-height: 1.65;
}

.feature-row,
.check-list {
  display: grid;
  gap: var(--space-xs);
  margin: var(--space-md) 0 0;
  padding: 0;
  list-style: none;
}

.feature-row li,
.check-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--ink-soft);
  font-weight: 600;
}

.feature-row li::before {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-block-start: 10px;
  border-radius: 50%;
  background: var(--green);
}

.feature-row--brown li::before {
  background: var(--brown);
}

.check-list .icon {
  margin-block-start: 4px;
  color: var(--green);
}

.check-list--brown .icon {
  color: var(--brown);
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  align-items: center;
  margin-block-start: var(--space-md);
}

.product-split--washtower .button--primary,
.page--washtower main .button--primary {
  background: var(--green);
  color: var(--paper);
  box-shadow: none;
}

.product-split--washtower .button--primary:hover,
.product-split--washtower .button--primary:focus-visible,
.page--washtower main .button--primary:hover,
.page--washtower main .button--primary:focus-visible {
  background: var(--green-deep);
  color: var(--paper);
  box-shadow: none;
}

.product-split--elica .button--primary,
.page--elica main .button--primary {
  background: var(--brown);
  color: var(--paper);
  box-shadow: none;
}

.product-split--elica .button--primary:hover,
.product-split--elica .button--primary:focus-visible,
.page--elica main .button--primary:hover,
.page--elica main .button--primary:focus-visible {
  background: var(--brown-deep);
  color: var(--paper);
  box-shadow: none;
}

.link-stack {
  display: grid;
  justify-items: start;
  gap: 6px;
  margin-block-start: var(--space-md);
}

.video-feature {
  display: grid;
  gap: var(--space-lg);
  align-items: center;
}

.video-feature__copy {
  max-width: var(--measure-narrow);
}

.video-embed {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--ink);
  box-shadow: var(--shadow-soft);
  isolation: isolate;
}

.video-embed__button,
.video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.video-embed__button {
  padding: 0;
  overflow: hidden;
  border: 0;
  background: var(--ink);
  color: var(--paper);
  cursor: pointer;
}

.video-embed__button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease-out-expo), filter 700ms var(--ease-out);
}

.video-embed__button::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgb(var(--ink-rgb) / 0.42), rgb(var(--ink-rgb) / 0.08) 54%),
    linear-gradient(0deg, rgb(var(--ink-rgb) / 0.32), transparent 52%);
}

.video-embed__button:hover img,
.video-embed__button:focus-visible img {
  filter: saturate(1.04) contrast(1.03);
  transform: scale(1.035);
}

.video-embed__content {
  position: absolute;
  inset-inline-start: clamp(22px, 3vw, 34px);
  inset-block-end: clamp(22px, 3vw, 34px);
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  max-width: min(86%, 420px);
}

.video-embed__play {
  display: inline-flex;
  width: 58px;
  height: 58px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(var(--paper-rgb) / 0.32);
  border-radius: 50%;
  background: var(--gold);
  color: var(--ink);
  transition: background var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);
}

.video-embed__button:hover .video-embed__play,
.video-embed__button:focus-visible .video-embed__play {
  transform: translateY(-1px);
}

.video-embed--washtower .video-embed__play {
  background: var(--green);
  color: var(--paper);
}

.video-embed--elica .video-embed__play {
  background: var(--brown);
  color: var(--paper);
}

.video-embed__label {
  color: var(--paper);
  font-size: var(--text-card);
  font-weight: 750;
  line-height: 1.15;
  text-shadow: 0 2px 14px rgb(var(--ink-rgb) / 0.38);
}

.video-embed__privacy {
  position: absolute;
  inset-block-start: clamp(16px, 2.2vw, 24px);
  inset-inline-end: clamp(18px, 2.8vw, 28px);
  z-index: 1;
  max-width: min(46%, 230px);
  color: rgb(var(--paper-rgb) / 0.84);
  font-size: var(--text-caption);
  font-weight: 600;
  line-height: 1.45;
  text-align: end;
  text-shadow: 0 2px 14px rgb(var(--ink-rgb) / 0.5);
}

.video-embed iframe {
  z-index: 2;
  border: 0;
}

.video-embed__button[hidden] {
  display: none;
}

.trust-band {
  padding-block: clamp(24px, 3vw, 36px);
  background: var(--ink);
  color: var(--paper);
}

.trust-band--green {
  background-color: #203125;
  background-image: none;
}

.trust-band--brown {
  background-color: #30251e;
  background-image: none;
}

.trust-grid {
  display: grid;
  gap: clamp(18px, 3vw, 30px);
}

.trust-grid article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.trust-grid__icon {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(var(--paper-rgb) / 0.16);
  border-radius: 50%;
  background: rgb(var(--paper-rgb) / 0.06);
  color: var(--gold-soft);
}

.trust-band--green .trust-grid__icon {
  color: var(--green-soft);
}

.trust-band--brown .trust-grid__icon {
  color: var(--brown-soft);
}

.trust-grid strong {
  display: block;
  margin-block-end: 3px;
  color: var(--gold-soft);
  font-size: 0.94rem;
  line-height: 1.2;
}

.trust-band--green .trust-grid strong {
  color: var(--green-soft);
}

.trust-band--brown .trust-grid strong {
  color: var(--brown-soft);
}

.trust-grid p {
  margin: 0;
  color: rgb(var(--paper-rgb) / 0.66);
  font-size: 0.82rem;
  line-height: 1.45;
}

.card-grid {
  display: grid;
  gap: var(--space-md);
}

.info-card {
  position: relative;
  display: block;
  min-height: 0;
  padding: clamp(22px, 2.4vw, 30px);
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
  color: var(--ink);
  text-decoration: none;
  transition: transform 260ms var(--ease-out-expo), border-color var(--duration-base) var(--ease-out), box-shadow 260ms var(--ease-out-expo), background var(--duration-base) var(--ease-out);
}

.info-card:hover,
.info-card:focus-visible {
  border-color: color-mix(in oklch, var(--gold) 36%, var(--border));
  background: color-mix(in oklch, var(--white) 88%, var(--gold-wash));
  box-shadow: 0 18px 44px rgb(var(--ink-rgb) / 0.08);
  transform: translateY(-3px);
}

.info-card--green {
  border-color: var(--green-border);
}

.info-card--green:hover,
.info-card--green:focus-visible {
  border-color: color-mix(in oklch, var(--green) 34%, var(--green-border));
  background: color-mix(in oklch, var(--white) 90%, var(--green-wash));
}

.info-card--brown {
  border-color: var(--brown-border);
}

.info-card--brown:hover,
.info-card--brown:focus-visible {
  border-color: color-mix(in oklch, var(--brown) 34%, var(--brown-border));
  background: color-mix(in oklch, var(--white) 90%, var(--brown-wash));
}

.info-card::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-start: 0;
  height: 3px;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  background: var(--gold);
  background: color-mix(in oklch, var(--gold) 78%, var(--paper));
}

.info-card--green::before {
  background: var(--green);
  background: color-mix(in oklch, var(--green) 76%, var(--paper));
}

.info-card--brown::before {
  background: var(--brown);
  background: color-mix(in oklch, var(--brown) 76%, var(--paper));
}

.info-card p {
  margin: 0;
  color: var(--muted);
}

.info-card h3,
.process h3,
.brochure-card h2,
.brochure-card h3,
.insight-card h2,
.insight-card h3,
.contact-card h2 {
  line-height: 1.12;
}

.section__cta {
  margin-block-start: var(--space-md);
}

.process {
  --process-marker-size: 60px;
  --process-column-gap: 18px;
  position: relative;
  display: grid;
  max-width: min(860px, 100%);
  margin: 0;
  margin-inline: auto;
  padding: 0;
  list-style: none;
  counter-reset: process;
}

.process::before {
  content: "";
  position: absolute;
  display: none;
  inset-block-start: calc(var(--process-marker-size) / 2);
  inset-block-end: 0;
  inset-inline-start: calc(var(--process-marker-size) / 2);
  width: 1px;
  background: var(--border);
}

.process li {
  position: relative;
  display: grid;
  grid-template-columns: var(--process-marker-size) minmax(0, 1fr);
  grid-template-rows: var(--process-marker-size) auto;
  grid-template-areas:
    "marker title"
    ". body";
  column-gap: var(--process-column-gap);
  padding-block-end: clamp(28px, 6vw, 44px);
}

.process li:last-child {
  padding-block-end: 0;
}

.process li::before {
  content: "";
  position: absolute;
  inset-block-start: calc(var(--process-marker-size) / 2);
  inset-block-end: 0;
  inset-inline-start: calc(var(--process-marker-size) / 2);
  z-index: 0;
  width: 1px;
  background: var(--border);
}

.process span {
  grid-area: marker;
  display: grid;
  z-index: 1;
  width: var(--process-marker-size);
  height: var(--process-marker-size);
  align-items: center;
  justify-content: center;
  place-items: center;
  padding-block-end: 0.04em;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--white);
  color: var(--ink-soft);
  font-family: var(--font-body);
  font-size: 1.06rem;
  font-weight: 740;
  line-height: 1;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-variant-numeric: tabular-nums lining-nums;
}

.process h3 {
  grid-area: title;
  align-self: center;
  margin: 0;
  line-height: 1;
}

.process p {
  grid-area: body;
  max-width: 31ch;
  margin: 0;
  color: var(--muted);
}

.brochure-grid {
  display: grid;
  gap: var(--space-md);
}

.brochure-card {
  --brochure-cover-height: 154px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-sm);
  align-items: center;
  min-height: 200px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

/* Covers are sized by height so brochures of different formats (square vs A4)
   read as one matched pair; width follows each cover's own aspect ratio. */
.brochure-card img {
  height: var(--brochure-cover-height);
  width: auto;
  max-width: 100%;
  object-fit: contain;
  border-radius: calc(var(--radius) - 3px);
  background: var(--surface);
}

/* Below 880px the card stacks like the brochure panels on the product pages:
   cover on top, centred copy below, so the button keeps its full width. */
@media (max-width: 879px) {
  .brochure-card {
    --brochure-cover-height: 200px;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 16px;
    padding: 20px;
    text-align: center;
  }
}

@media (min-width: 880px) and (max-width: 1119px) {
  /* Two full-width cards share a row here, so the covers stay compact until
     the cards are wide enough for the full-size pair. */
  .brochure-card {
    --brochure-cover-height: 122px;
  }
}

.brochure-card p {
  color: var(--muted);
}

.brochure-card .button {
  min-width: min(196px, 100%);
}

.brochure-card h2,
.brochure-card h3,
.insight-card h2,
.insight-card h3 {
  font-size: var(--text-card);
}

.about-strip {
  background: var(--paper);
}

.about-strip__portrait {
  max-width: 360px;
}

.about-strip__copy {
  max-width: var(--measure);
}

.insight-grid {
  display: grid;
  align-items: stretch;
  gap: var(--space-md);
}

.insight-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
  color: var(--ink);
  text-decoration: none;
  transition: border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);
}

.insight-card--washtower {
  border-color: var(--green-border);
}

.insight-card--elica {
  border-color: var(--brown-border);
}

.insight-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  flex: 0 0 auto;
  object-fit: cover;
  transition: transform 520ms var(--ease-out);
}

.insight-card:hover,
.insight-card:focus-visible {
  box-shadow: 0 20px 48px rgb(var(--ink-rgb) / 0.085);
}

.insight-card:hover img,
.insight-card:focus-visible img {
  transform: scale(1.03);
}

.insight-card div {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 22px;
}

.insight-card span {
  display: inline-block;
  margin-block-end: 12px;
  color: var(--green-text);
  font-size: var(--text-caption);
  font-weight: 740;
  text-transform: uppercase;
}

.insight-card__meta {
  text-transform: none !important;
}

.insight-card__cta {
  display: inline-flex !important;
  width: fit-content;
  align-items: center;
  gap: 8px;
  margin-block: auto 0 !important;
  padding-block-start: 18px;
  color: var(--green-text);
  font-size: var(--text-ui) !important;
  font-weight: 760;
  line-height: 1.2;
  text-transform: none !important;
}

.insight-card--elica span {
  color: var(--brown-text);
}

.insight-card--washtower span {
  color: var(--green-text);
}

.insight-card__cta .icon {
  transition: transform var(--duration-base) var(--ease-out);
}

.insight-card:hover .insight-card__cta .icon,
.insight-card:focus-visible .insight-card__cta .icon {
  transform: translateX(2px);
}

.insight-card h3,
.insight-card h2 {
  margin: 0;
}

.insight-card p {
  margin-block-start: 12px;
  margin-block-end: 0;
  color: var(--muted);
}

.insight-card--page p,
.insight-grid--preview p {
  max-width: 60ch;
}

/* Insights and article pages */
.post-page {
  background: var(--paper);
}

.post-hero {
  padding-block: clamp(96px, 12vw, 138px) var(--space-lg);
  background: linear-gradient(180deg, var(--surface) 0%, var(--paper) 100%);
}

.post-hero__media {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

.post-hero__media img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.post-hero__copy {
  position: relative;
  max-width: var(--measure-wide);
  margin-block-start: var(--space-lg);
  margin-inline: auto;
  text-align: center;
}

.post-hero h1 {
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: anywhere;
}

.post-meta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-block-end: var(--space-sm);
  color: var(--green-text);
  font-size: var(--text-caption);
  font-weight: 760;
  line-height: 1.35;
}

.post-meta::before {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
}

.post-meta--elica {
  color: var(--brown-text);
}

.post-page--washtower {
  --post-accent: var(--green-text);
}

.post-page--elica {
  --post-accent: var(--brown-text);
}

.post-standfirst {
  max-width: var(--measure);
  margin-inline: auto;
  color: var(--muted);
  font-size: var(--text-lead);
  line-height: 1.68;
}

.post-hero__rule {
  position: absolute;
  inset-block-end: calc((var(--space-sm) + var(--space-lg) + var(--space-section-tight)) / -2);
  inset-inline-start: 50%;
  width: min(200px, 48vw);
  height: 1px;
  margin: 0;
  border: 0;
  background: var(--post-accent, var(--gold-text));
  opacity: 0.46;
  transform: translateX(-50%);
}

.post-body {
  max-width: 760px;
  padding-block: var(--space-section-tight);
}

.post-body > * {
  max-width: var(--measure);
}

.post-body p,
.post-body li {
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.78;
}

.post-body p {
  margin-block-end: var(--space-sm);
}

.post-body h2 {
  margin-block: var(--space-lg) var(--space-sm);
  font-size: clamp(1.75rem, 3vw, 2.45rem);
}

.post-body h3 {
  margin-block: var(--space-md) var(--space-xs);
}

.post-body ul,
.post-body ol {
  display: grid;
  gap: 10px;
  padding-inline-start: 1.2rem;
  margin-block: 0 var(--space-md);
}

.post-body blockquote {
  margin: var(--space-lg) 0;
  padding: var(--space-md);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--text-card-lg);
  line-height: 1.35;
}

.post-nav {
  display: grid;
  gap: var(--space-sm) var(--space-md);
  padding-block-end: var(--space-section-tight);
}

.post-nav__link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 9px;
  color: var(--muted);
  font-size: var(--text-ui);
  font-weight: 720;
  line-height: 1.25;
  text-decoration: none;
  transition: color var(--duration-base) var(--ease-out);
}

.post-nav__link:hover,
.post-nav__link:focus-visible {
  color: var(--post-accent, var(--gold-text));
}

.post-nav__link span {
  color: currentColor;
}

.post-nav__link .icon {
  display: block;
  flex: 0 0 auto;
  transition: transform var(--duration-base) var(--ease-out);
}

.post-nav__link--prev:hover .icon,
.post-nav__link--prev:focus-visible .icon {
  transform: translateX(-2px);
}

.post-nav__link--next:hover .icon,
.post-nav__link--next:focus-visible .icon {
  transform: translateX(2px);
}

.post-nav__link--next {
  justify-self: end;
  text-align: end;
}

/* FAQ and closing call to action */
.faq-section {
  background: var(--surface);
}

.faq-layout {
  display: grid;
  gap: var(--space-lg);
}

.faq-list {
  border-block-start: 1px solid var(--border);
}

.faq-item {
  overflow: hidden;
  border-block-end: 1px solid var(--border);
}

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-block: var(--space-sm);
  color: var(--ink);
  font-weight: 650;
  cursor: pointer;
  list-style: none;
  transition: color var(--duration-base) var(--ease-out);
}

.faq-item summary:hover,
.faq-item summary:focus-visible {
  color: var(--gold-text);
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item__icon {
  position: relative;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  border: 1px solid var(--border);
  border-radius: 50%;
  transition: background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), transform 260ms var(--ease-out-quart);
}

.faq-item summary:hover .faq-item__icon,
.faq-item summary:focus-visible .faq-item__icon {
  border-color: var(--gold-border);
  background: var(--gold-wash);
}

.faq-item__icon::before,
.faq-item__icon::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 10px;
  height: 1.5px;
  transform: translate(-50%, -50%);
  background: var(--gold-deep);
  transition: opacity var(--duration-base) var(--ease-out), transform 260ms var(--ease-out-quart);
}

.faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item[data-faq-open="true"] .faq-item__icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0.2);
}

.faq-item[data-faq-open="true"] .faq-item__icon {
  transform: none;
}

.faq-item__body {
  display: grid;
  grid-template-rows: 0fr;
  max-width: var(--measure);
  overflow: hidden;
  padding-block-end: 0;
  opacity: 0;
  color: var(--muted);
  transition:
    grid-template-rows 360ms var(--ease-out-quart),
    opacity 240ms var(--ease-out),
    padding-block-end 360ms var(--ease-out-quart);
  will-change: grid-template-rows, opacity;
}

.faq-item[data-faq-open="true"] .faq-item__body {
  grid-template-rows: 1fr;
  padding-block-end: var(--space-sm);
  opacity: 1;
}

.faq-item__body p {
  min-height: 0;
  margin: 0;
  overflow: hidden;
}

.faq-item__body a {
  color: var(--gold-text);
  font-weight: 700;
  text-decoration-color: rgb(var(--gold-rgb) / 0.36);
  transition: color var(--duration-base) var(--ease-out), text-decoration-color var(--duration-base) var(--ease-out);
}

.faq-item__body a:hover,
.faq-item__body a:focus-visible {
  color: var(--gold-deep);
  text-decoration-color: currentColor;
}

.closing-cta {
  background: var(--ink);
  color: var(--paper);
}

@supports (background: color-mix(in oklch, white, black)) {
  .closing-cta {
    background: linear-gradient(135deg, var(--ink) 0%, color-mix(in oklch, var(--gold) 8%, var(--ink)) 100%);
  }
}

.closing-cta__inner {
  max-width: 740px;
  text-align: center;
}

.closing-cta h2 {
  color: var(--paper);
}

.closing-cta p:not(.eyebrow) {
  color: rgb(var(--paper-rgb) / 0.78);
}

/* Interior pages, forms, and legal content */
.simple-hero {
  padding-block: clamp(134px, 15vw, 178px) var(--space-xl);
  background: linear-gradient(180deg, var(--surface) 0%, var(--paper) 100%);
}

.simple-hero__inner {
  max-width: var(--measure-wide);
}

.simple-hero--center .simple-hero__inner {
  margin-inline: auto;
  text-align: center;
}

.simple-hero--center .eyebrow {
  justify-content: center;
}

.page-hero {
  min-height: 760px;
  min-height: 100svh;
}

.page-hero__inner {
  padding-block: clamp(96px, 13vh, 136px);
}

.page-hero--washtower .page-hero__overlay {
  background: linear-gradient(90deg, rgb(var(--ink-rgb) / 0.79) 0%, rgb(var(--ink-rgb) / 0.53) 48%, rgb(var(--ink-rgb) / 0.18) 100%), linear-gradient(0deg, rgb(var(--ink-rgb) / 0.57) 0%, transparent 48%);
}

.page-hero--elica .page-hero__overlay {
  background: linear-gradient(90deg, rgb(var(--ink-rgb) / 0.78) 0%, rgb(var(--ink-rgb) / 0.52) 48%, rgb(var(--ink-rgb) / 0.18) 100%), linear-gradient(0deg, rgb(var(--ink-rgb) / 0.58) 0%, transparent 48%);
}

.product-detail {
  background: var(--paper);
}

.brochure-feature {
  display: grid;
  gap: var(--space-md);
  align-items: center;
  width: min(100%, 920px);
  max-width: 920px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--brown-border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

.brochure-feature--washtower {
  border-color: var(--green-border);
}

.brochure-feature img {
  width: 180px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
}

.contact-panel {
  align-items: start;
}

.contact-panel__copy,
.contact-card {
  align-self: start;
}

.contact-card {
  padding: clamp(24px, 2.5vw, 34px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

.contact-card h2 {
  font-size: var(--text-card-lg);
}

.contact-card ul {
  display: grid;
  gap: 10px;
  margin: 22px 0;
  padding: 0;
  list-style: none;
}

.contact-card a {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 8px;
  margin-block: -8px;
  padding-block: 8px;
  color: var(--ink-soft);
  text-decoration: none;
  transition: color var(--duration-base) var(--ease-out);
}

.contact-card a .icon {
  color: var(--gold-text);
  transition: color var(--duration-base) var(--ease-out);
}

.contact-card a:hover,
.contact-card a:focus-visible {
  color: var(--gold-text);
}

.contact-card a:hover .icon,
.contact-card a:focus-visible .icon {
  color: var(--gold-deep);
}

.contact-card__route {
  margin-block: -2px 18px;
  color: var(--muted);
  font-size: var(--text-small);
}

.map-section {
  padding-block: var(--space-section-tight) var(--space-section);
  background: var(--paper);
}

.map-frame {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

.map-frame iframe {
  display: block;
  width: 100%;
  min-height: 420px;
  border: 0;
}

.media-consent {
  display: grid;
  min-height: 420px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(18px, 3vw, 34px);
  align-items: center;
  padding: clamp(28px, 5vw, 58px);
  background:
    linear-gradient(120deg, rgb(var(--gold-rgb) / 0.06), transparent 58%),
    var(--surface);
}

.media-consent[hidden] {
  display: none;
}

.media-consent__icon {
  display: inline-flex;
  width: 52px;
  height: 52px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold-border);
  border-radius: 50%;
  background: var(--paper);
  color: var(--gold-text);
}

.media-consent__copy {
  max-width: 600px;
}

.media-consent__copy h3,
.media-consent__copy p {
  margin-block-end: 0;
}

.media-consent__copy h3 {
  margin-block-end: 8px;
}

.media-consent__copy p:not(.media-consent__label) {
  color: var(--muted);
}

.media-consent__label {
  margin-block-end: 5px !important;
  color: var(--gold-text);
  font-size: var(--text-caption);
  font-weight: 760;
  text-transform: uppercase;
}

.form {
  padding: clamp(22px, 2.8vw, 34px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

.form__grid {
  display: grid;
  gap: var(--space-sm);
}

.form__field {
  display: grid;
  gap: 7px;
}

.form__field--full {
  margin-block-start: var(--space-sm);
}

.form label {
  color: var(--ink);
  font-size: var(--text-ui);
  font-weight: 650;
}

.form input,
.form select,
.form textarea {
  width: 100%;
  min-height: 54px;
  padding: 13px 15px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--ink);
  box-shadow: none;
  transition: border-color var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);
}

.form input,
.form select {
  height: 54px;
}

.form select {
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: 44px;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-repeat: no-repeat;
  background-size: 6px 6px, 6px 6px;
}

.form textarea {
  min-height: 148px;
  resize: vertical;
}

.form input:focus,
.form select:focus,
.form textarea:focus {
  border-color: var(--ink);
  outline: 0;
  box-shadow: 0 0 0 3px rgb(var(--gold-rgb) / 0.13);
  transform: translateY(-1px);
}

.form input.is-invalid,
.form select.is-invalid,
.form textarea.is-invalid {
  border-color: var(--error);
  background: #fdf8f7;
  background: color-mix(in oklch, var(--error) 4%, var(--white));
}

.form__error {
  min-height: 18px;
  margin: 0;
  color: var(--error);
  font-size: 0.82rem;
  line-height: 1.35;
}

.form__submit {
  display: grid;
  gap: var(--space-xs);
  margin-block-start: var(--space-sm);
}

.form__note {
  max-width: var(--measure-narrow);
  margin: 0;
  color: var(--muted);
  font-size: var(--text-small);
  line-height: 1.5;
}

.form__note a,
.legal-page a {
  color: var(--gold-text);
  font-weight: 650;
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-color: color-mix(in oklch, currentColor 34%, transparent);
  transition: color var(--duration-base) var(--ease-out), text-decoration-color var(--duration-base) var(--ease-out);
}

.form__note a:hover,
.form__note a:focus-visible,
.legal-page a:hover,
.legal-page a:focus-visible {
  color: var(--ink);
  text-decoration-color: currentColor;
}

.page--washtower main .text-link,
.page--washtower main .form__note a {
  color: var(--green-text);
}

.page--washtower main .text-link:hover,
.page--washtower main .text-link:focus-visible,
.page--washtower main .form__note a:hover,
.page--washtower main .form__note a:focus-visible {
  color: var(--green-deep);
  text-decoration-color: currentColor;
}

.page--washtower {
  --form-success-accent: var(--green);
  --form-success-text: var(--green-text);
  --form-success-button-text: var(--paper);
}

.page--elica main .text-link,
.page--elica main .form__note a {
  color: var(--brown-text);
}

.page--elica main .text-link:hover,
.page--elica main .text-link:focus-visible,
.page--elica main .form__note a:hover,
.page--elica main .form__note a:focus-visible {
  color: var(--brown-deep);
  text-decoration-color: currentColor;
}

.page--elica {
  --form-success-accent: var(--brown);
  --form-success-text: var(--brown-text);
  --form-success-button-text: var(--paper);
}

.form__status,
.form__success {
  margin: 16px 0 0;
  color: var(--muted);
  font-weight: 650;
}

.form__status.is-error {
  color: var(--error);
}

.form__status.is-success,
.form__success {
  color: var(--form-success-text);
}

.button.is-loading {
  cursor: wait;
  opacity: 0.78;
  transform: translateY(0);
}

.button.button--primary.is-success,
.button.button--primary.is-success:hover,
.button.button--primary.is-success:focus-visible {
  background: var(--form-success-accent);
  color: var(--form-success-button-text);
  transform: translateY(0);
}

.button.is-error {
  background: var(--error);
  color: var(--paper);
}

.about-page__portrait {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  background: var(--white);
}

.about-page__grid.about-page__grid--intro {
  align-items: stretch;
}

.about-page__portrait p {
  margin: 0;
  padding: 18px 20px 22px;
  color: var(--muted);
}

.about-page__copy {
  display: flex;
  min-height: 100%;
  align-items: center;
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

.about-page__copy blockquote {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--text-quote);
  line-height: 1.38;
}

.about-service__inner {
  display: grid;
  gap: var(--space-lg);
}

.about-service__copy {
  max-width: var(--measure-wide);
}

.about-service__copy p:not(.eyebrow) {
  max-width: var(--measure);
  color: var(--muted);
}

.about-service__copy .button {
  margin-block-start: var(--space-sm);
}

.about-proof-bar {
  display: grid;
  gap: var(--space-xs);
  margin: 0;
  padding: clamp(18px, 2.5vw, 26px) 0 0;
  border-block-start: 1px solid var(--border);
  list-style: none;
}

.about-proof-bar li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  color: var(--ink);
  font-size: var(--text-small);
  font-weight: 700;
  line-height: 1.35;
}

.about-proof-bar .icon {
  width: 18px;
  height: 18px;
  margin-block-start: 0.05em;
  color: var(--gold-text);
}

.legal-page {
  padding-block: clamp(134px, 15vw, 178px) var(--space-section);
}

.legal-page__inner {
  max-width: var(--measure-wide);
}

.legal-page h1 {
  margin-block-end: var(--space-md);
  font-size: var(--text-subhead);
}

.legal-page h2 {
  margin-block-start: var(--space-lg);
  font-size: var(--text-card-lg);
}

.legal-page p {
  color: var(--muted);
}

/* Consent controls, footer, and agency badge */
.consent-panel {
  position: fixed;
  inset: auto 0 0;
  z-index: 1200;
  padding: 12px;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 12px, 0);
  transition: opacity 480ms ease, transform 520ms var(--ease-out);
}

.consent-panel[hidden],
.consent-panel [hidden] {
  display: none;
}

.consent-panel.is-visible {
  opacity: 1;
  transform: none;
}

.consent-panel__surface {
  position: relative;
  display: grid;
  width: min(var(--shell), 100%);
  max-height: calc(100svh - 24px);
  grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.9fr);
  gap: clamp(24px, 4vw, 52px);
  align-items: center;
  margin-inline: auto;
  padding: clamp(24px, 3.2vw, 38px);
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: 0 24px 70px rgb(var(--ink-rgb) / 0.2);
  pointer-events: auto;
  overscroll-behavior: contain;
}

.consent-panel__surface:focus {
  outline: none;
}

.consent-panel__intro {
  grid-column: 1;
  grid-row: 1 / span 2;
  max-width: 640px;
}

.consent-panel__intro .eyebrow {
  margin-block-end: 12px;
}

.consent-panel__intro h2 {
  margin-block-end: 10px;
  font-size: var(--text-card-lg);
}

.consent-panel__intro p:not(.eyebrow) {
  margin-block-end: 10px;
  color: var(--muted);
  font-size: var(--text-ui);
  line-height: 1.55;
}

.consent-panel__intro .text-link {
  min-height: 36px;
  padding-block: 4px;
  margin-block: -4px 0;
  font-size: var(--text-ui);
}

.consent-panel__options {
  display: grid;
  grid-column: 2;
  grid-row: 1;
  align-self: stretch;
  border-block: 1px solid var(--border);
}

.consent-option {
  display: grid;
  min-height: 72px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding-block: 12px;
  border-block-end: 1px solid var(--border);
  cursor: pointer;
}

.consent-option:last-child {
  border-block-end: 0;
}

.consent-option--required {
  grid-template-columns: auto minmax(0, 1fr) auto;
  cursor: default;
}

.consent-option__icon {
  display: inline-flex;
  color: var(--green-text);
}

.consent-option__copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.consent-option__copy strong {
  color: var(--ink);
  font-size: var(--text-ui);
}

.consent-option__copy > span {
  color: var(--muted);
  font-size: var(--text-caption);
  line-height: 1.45;
}

.consent-option__status {
  color: var(--green-text);
  font-size: var(--text-caption);
  font-weight: 740;
  white-space: nowrap;
}

.consent-switch {
  position: relative;
  display: inline-flex;
}

.consent-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.consent-switch__track {
  display: inline-flex;
  width: 48px;
  height: 28px;
  align-items: center;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-warm);
  transition: border-color var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}

.consent-switch__track span {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 2px 7px rgb(var(--ink-rgb) / 0.16);
  transition: transform var(--duration-base) var(--ease-out);
}

.consent-switch input:checked + .consent-switch__track {
  border-color: var(--gold-deep);
  background: var(--gold);
}

.consent-switch input:checked + .consent-switch__track span {
  transform: translateX(20px);
}

.consent-switch input:focus-visible + .consent-switch__track {
  outline: 3px solid var(--gold-deep);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgb(var(--gold-rgb) / 0.18);
}

.consent-panel__actions {
  display: grid;
  grid-column: 2;
  grid-row: 2;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
}

.consent-panel:not(.is-detailed) .consent-panel__actions {
  grid-row: 1 / span 2;
}

.consent-panel__customize {
  grid-column: 1 / -1;
  min-height: 40px;
  padding: 4px 10px;
  background: transparent;
  color: var(--gold-text);
  cursor: pointer;
  font-weight: 650;
  text-decoration: underline;
  text-decoration-color: rgb(var(--gold-rgb) / 0.42);
  text-underline-offset: 0.25em;
  transition: color var(--duration-base) var(--ease-out), text-decoration-color var(--duration-base) var(--ease-out);
}

.consent-panel__customize:hover,
.consent-panel__customize:focus-visible {
  color: var(--gold-deep);
  text-decoration-color: currentColor;
}

.consent-panel__actions [data-consent-save] {
  grid-column: 1 / -1;
}

.consent-panel__close {
  position: absolute;
  inset-block-start: 12px;
  inset-inline-end: 12px;
  z-index: 1;
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: color var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}

.consent-panel__close:hover,
.consent-panel__close:focus-visible {
  background: var(--surface);
  color: var(--ink);
}

.site-footer {
  padding-block: var(--space-xl) 24px;
  background: var(--ink);
  color: var(--paper);
}

.site-footer__grid {
  display: grid;
  gap: var(--space-lg);
}

.site-footer__brand p,
.site-footer__col li,
.site-footer__bottom p {
  color: rgb(var(--paper-rgb) / 0.72);
}

.site-footer__wordmark {
  width: max-content;
  margin-block-end: 18px;
  color: var(--paper);
}

.site-footer__language {
  margin: 0;
  color: var(--gold-soft) !important;
  font-weight: 740;
}

.site-footer__languages {
  display: grid;
  gap: 4px;
  margin-block-start: 20px;
}

.site-footer__languages span {
  color: rgb(var(--paper-rgb) / 0.58);
  font-size: var(--text-caption);
  font-weight: 740;
  text-transform: uppercase;
}

.site-footer__col h2 {
  margin-block-end: 16px;
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--text-ui);
  font-weight: 740;
  text-transform: uppercase;
}

.site-footer__col ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer a:not(.site-footer__badge):not(.site-footer__wordmark) {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: transparent;
  transition: color var(--duration-base) var(--ease-out), text-decoration-color var(--duration-base) var(--ease-out);
}

.site-footer a:not(.site-footer__badge):not(.site-footer__wordmark):hover,
.site-footer a:not(.site-footer__badge):not(.site-footer__wordmark):focus-visible,
.site-footer a[aria-current="page"]:not(.site-footer__badge):not(.site-footer__wordmark) {
  color: var(--gold-soft);
  text-decoration-color: currentColor;
}

.site-footer__bottom {
  display: grid;
  gap: var(--space-sm);
  align-items: center;
  margin-block-start: var(--space-lg);
  padding-block-start: var(--space-sm);
  border-block-start: 1px solid rgb(var(--paper-rgb) / 0.12);
}

.site-footer__bottom p {
  margin: 0;
}

.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  align-items: center;
}

.site-footer__settings {
  min-height: 36px;
  padding: 4px 0;
  background: transparent;
  color: rgb(var(--paper-rgb) / 0.72);
  cursor: pointer;
  font-size: var(--text-ui);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.22em;
  transition: color var(--duration-base) var(--ease-out), text-decoration-color var(--duration-base) var(--ease-out);
}

.site-footer__settings:hover,
.site-footer__settings:focus-visible {
  color: var(--gold-soft);
  text-decoration-color: currentColor;
}

.site-footer__badge {
  --badge-orbit-duration: 6.8s;
  --badge-orbit-thickness: 2px;
  --badge-trace-length: 8;
  --badge-trace-opacity: 0.67;
  --badge-rail: #e5e0d8;
  position: relative;
  display: inline-flex;
  justify-self: start;
  align-items: center;
  width: max-content;
  max-width: 100%;
  padding: 0.24rem;
  border: 0;
  border-radius: calc(0.52rem - 3px);
  background: transparent;
  box-shadow: 0 0.45rem 1.3rem -0.65rem var(--color-black-22);
  isolation: isolate;
  overflow: visible;
  transition: transform var(--duration-base) var(--ease-out);
}
.site-footer__badge::before {
  content: "";
  position: absolute;
  inset: -8px -10px;
  border-radius: 12px;
}
.site-footer__badge-orbit {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.site-footer__badge-orbit-fill {
  fill: var(--color-paper);
}
.site-footer__badge-orbit-rail,
.site-footer__badge-orbit-trace {
  fill: none;
  vector-effect: non-scaling-stroke;
}
.site-footer__badge-orbit-rail {
  stroke: var(--badge-rail);
  stroke-width: 1;
}
.site-footer__badge-orbit-trace {
  stroke: var(--green);
  stroke-width: var(--badge-orbit-thickness);
  stroke-linecap: round;
  opacity: 0;
  filter: drop-shadow(0 0 1px var(--color-badge-accent-soft));
}
.site-footer__badge-orbit.is-ready .site-footer__badge-orbit-trace {
  opacity: var(--badge-trace-opacity);
}
.site-footer__badge-core {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.24em;
  min-height: 1.32rem;
  padding: 0.24rem 0.88rem;
  border-radius: max(1px, calc(0.28rem - 3px));
  background: transparent;
  color: var(--color-graphite);
  font-size: 0.66rem;
  line-height: 1;
  letter-spacing: 0.035em;
  font-weight: 500;
  text-transform: none;
  white-space: nowrap;
}
.site-footer__badge-core strong {
  font-weight: 600;
}
.site-footer__badge:hover,
.site-footer__badge:focus-visible { transform: translateY(-2px); }

/* Entrance motion and responsive behavior */
[data-reveal] {
  opacity: 1;
  transform: none;
  transform-origin: center center;
}

.motion-enabled [data-reveal] {
  --reveal-y: 18px;
  --reveal-duration: var(--duration-entrance);
  opacity: 0;
  transform: translate3d(0, var(--reveal-y), 0);
  transition: none;
  will-change: opacity, transform;
}

.motion-enabled.motion-ready [data-reveal] {
  transition:
    opacity var(--reveal-duration) var(--ease-out-quart),
    transform var(--reveal-duration) var(--ease-out-expo);
  transition-delay: var(--reveal-delay, 0ms);
}

.motion-enabled [data-reveal][data-reveal-kind="text"] {
  --reveal-y: 16px;
  --reveal-duration: 460ms;
}

.motion-enabled [data-reveal][data-reveal-kind="action"] {
  --reveal-y: 12px;
  --reveal-duration: 380ms;
}

.motion-enabled [data-reveal][data-reveal-kind="card"] {
  --reveal-y: 22px;
  --reveal-duration: 500ms;
}

.motion-enabled [data-reveal][data-reveal-kind="media"] {
  --reveal-y: 24px;
  --reveal-duration: 560ms;
}

.motion-enabled [data-reveal][data-reveal-kind="hero-media"] {
  --reveal-y: 0;
  --reveal-duration: 820ms;
  opacity: 1;
  transform: none;
  transition: none;
}

.motion-enabled .hero [data-reveal],
.motion-enabled .page-hero [data-reveal] {
  --reveal-y: 12px;
  --reveal-duration: 760ms;
}

.motion-enabled .hero h1[data-reveal],
.motion-enabled .hero .hero__lead[data-reveal],
.motion-enabled .page-hero h1[data-reveal],
.motion-enabled .page-hero p:not(.eyebrow)[data-reveal] {
  opacity: 1;
  transform: none;
  transition: none;
  will-change: auto;
}

.motion-enabled .hero [data-reveal-kind="hero-media"],
.motion-enabled .page-hero [data-reveal-kind="hero-media"] {
  --reveal-y: 0;
  --reveal-duration: 880ms;
  opacity: 1;
  transform: none;
  transition: none;
}

.motion-enabled .hero [data-reveal-kind="action"],
.motion-enabled .page-hero [data-reveal-kind="action"] {
  --reveal-y: 9px;
  --reveal-duration: 680ms;
}

.motion-enabled [data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-enabled [data-reveal].has-revealed {
  transition-delay: 0ms;
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .motion-enabled [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }

  .faq-item__body {
    grid-template-rows: 1fr !important;
    opacity: 1 !important;
    padding-block-end: var(--space-sm) !important;
    transition: none !important;
  }

  .consent-panel {
    transition: none;
  }
}

@media (pointer: coarse) {
  .site-footer__wordmark {
    min-height: 44px;
    justify-content: center;
  }

  .site-footer__col a:not(.site-footer__badge):not(.site-footer__wordmark),
  .site-footer__bottom a:not(.site-footer__badge):not(.site-footer__wordmark) {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: flex-start;
    margin-block: -8px;
    padding-inline-end: 8px;
    padding-block: 8px;
  }

  .form__note a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    margin-block: -12px;
    padding-block: 12px;
  }


  .site-footer__settings {
    min-height: 44px;
    padding-block: 8px;
  }
}

@media (max-width: 699px) {
  .testimonial-slider__dots {
    display: none;
  }

  .testimonial-slider__status {
    display: inline-block;
  }
}

@media (min-width: 700px) {
  :root {
    --text-card-lg: 1.7rem;
    --text-quote: 2.05rem;
    --text-subhead: 2.8rem;
    --text-heading: 3.6rem;
    --text-display: 4.25rem;
    --text-page-display: 3.85rem;
  }

  h1 {
    font-size: var(--text-heading);
  }

  h2 {
    font-size: var(--text-subhead);
  }

  .hero h1 {
    font-size: var(--text-display);
  }

  .page-hero h1 {
    font-size: var(--text-page-display);
  }

  .heading-wrap--project-detail {
    --heading-wrap: 12.4em;
  }

  .heading-wrap--process {
    --heading-wrap: 11.6em;
  }

  .heading-wrap--room-entry {
    --heading-wrap: 12.2em;
  }

  .heading-wrap--closing {
    --heading-wrap: 11.1em;
  }

  .world-cards,
  .brochure-grid,
  .insight-grid,
  .trust-grid,
  .about-proof-bar,
  .form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .about-proof-bar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(18px, 3vw, 34px);
  }

  .site-footer__bottom {
    grid-template-columns: 1fr auto;
  }

  .site-footer__badge { justify-self: end; }
}

@media (min-width: 700px) and (max-width: 1119px) {
  .page-hero__inner {
    max-width: var(--shell);
    align-items: flex-start;
  }

  .page-hero .eyebrow,
  .page-hero h1,
  .page-hero p:not(.eyebrow),
  .page-hero .hero__actions {
    max-width: 690px;
  }

  .page-hero h1 {
    font-size: var(--text-display);
  }
}

@media (max-width: 840px) {
  .consent-panel__surface {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 24px;
  }

  .consent-panel__intro {
    padding-inline-end: 34px;
  }

  .consent-panel__intro,
  .consent-panel__options,
  .consent-panel__actions,
  .consent-panel:not(.is-detailed) .consent-panel__actions {
    grid-column: 1;
    grid-row: auto;
  }

  .media-consent {
    min-height: 360px;
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
  }
}

@media (min-width: 880px) {
  .site-nav,
  .site-header__cta {
    display: flex;
  }

  .nav-toggle,
  .mobile-nav {
    display: none;
  }

  .product-split__grid,
  .product-detail__grid,
  .about-strip__grid,
  .video-feature,
  .about-page__grid,
  .contact-panel,
  .contact-page-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 58px;
  }

  .partner-support__services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .partner-support__services li:nth-child(even) {
    padding-inline-start: clamp(22px, 2.6vw, 30px);
    border-inline-start: 1px solid var(--brown-border);
  }

  .partner-support__services li:nth-child(odd) {
    padding-inline-end: clamp(22px, 2.6vw, 30px);
  }

  .product-split__grid--reverse .product-split__media,
  .product-detail__grid--reverse .product-detail__media {
    order: 2;
  }

  .product-split__grid--reverse .product-split__copy,
  .product-detail__grid--reverse .product-detail__copy {
    order: 1;
  }

  .trust-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .card-grid--three,
  .insight-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .about-proof-bar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .faq-layout {
    grid-template-columns: 0.72fr 1.28fr;
  }

  .brochure-feature {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .brochure-feature img {
    width: 220px;
  }
}

@media (min-width: 1120px) {
  :root {
    --text-card-lg: 2rem;
    --text-quote: 2.25rem;
    --text-subhead: 3.2rem;
    --text-heading: 4.4rem;
    --text-display: 5.25rem;
    --text-page-display: 4.15rem;
  }

  h1 {
    font-size: var(--text-heading);
  }

  h2 {
    font-size: var(--text-subhead);
  }

  .hero h1 {
    font-size: var(--text-display);
  }

  .page-hero h1 {
    font-size: var(--text-page-display);
  }

  .heading-wrap--project-detail {
    --heading-wrap: 12.1em;
  }

  .heading-wrap--process {
    --heading-wrap: 11.25em;
  }

  .heading-wrap--room-entry {
    --heading-wrap: 12.75em;
  }

  .heading-wrap--closing {
    --heading-wrap: 10.85em;
  }
}

@media (max-width: 699px) {
  :root {
    --text-card-lg: 1.35rem;
    --text-quote: 1.55rem;
    --text-subhead: 2rem;
    --text-heading: 2.55rem;
    --text-display: 3.05rem;
    --text-page-display: 2.66rem;
    --text-lead: 1rem;
  }

  .shell {
    width: min(100% - 28px, var(--shell));
  }

  .site-header__inner {
    min-height: 60px;
  }

  .brand__mark {
    font-size: 1.25rem;
  }

  .hero {
    min-height: 100svh;
  }

  .page-hero {
    min-height: 100svh;
  }

  .hero__inner {
    padding-block: 82px 112px;
  }

  .page-hero__inner {
    padding-block: 82px 112px;
    padding-inline-end: 10px;
  }

  .hero__copy {
    padding-inline-end: 10px;
  }

  .hero__actions,
  .action-row {
    flex-direction: column;
    align-items: stretch;
  }

  .action-row .text-link {
    justify-content: center;
  }

  .section__cta .button,
  .closing-cta__inner .button {
    width: 100%;
  }

  .hero__features {
    margin-block-start: 36px;
  }

  .hero__scroll {
    inset-block-end: 12px;
    font-size: 0.58rem;
    color: rgb(var(--paper-rgb) / 0.62);
  }

  .hero__scroll::after {
    height: 24px;
    margin-block-start: 7px;
  }

  .section {
    padding-block: 64px;
  }

  .simple-hero {
    padding-block: 116px 54px;
  }

  .world-card,
  .info-card,
  .form,
  .contact-card {
    padding: 20px;
  }

  .brochure-feature {
    justify-items: center;
    text-align: center;
  }

  .brochure-feature .eyebrow {
    justify-content: center;
  }

  .brochure-feature img {
    width: min(100%, 260px);
  }

  .about-page__copy blockquote {
    font-size: var(--text-quote);
  }

  .map-frame iframe {
    min-height: 340px;
  }

  .media-consent {
    min-height: 340px;
    gap: 18px;
    padding: 26px 22px;
  }

  .media-consent .button {
    width: 100%;
  }

  .video-embed__privacy {
    inset-block-start: 14px;
    inset-inline-end: 16px;
    max-width: 62%;
    font-size: 0.68rem;
  }

  .post-hero__rule {
    width: min(150px, 36vw);
  }
}

@media (max-width: 360px) {
  :root {
    --text-heading: 2.35rem;
    --text-display: 2.82rem;
    --text-page-display: 2.42rem;
  }

  .hero__inner,
  .page-hero__inner {
    padding-block-start: 88px;
  }

  .hero__actions {
    margin-block-start: 22px;
  }
}

@media (max-height: 480px) and (orientation: landscape) {
  :root {
    --text-heading: 2.65rem;
    --text-display: 3.05rem;
    --text-page-display: 2.65rem;
    --text-lead: 0.98rem;
    --space-section: clamp(52px, 8vw, 76px);
    --space-section-tight: clamp(42px, 6vw, 62px);
  }

  .hero,
  .page-hero {
    min-height: 100svh;
  }

  .hero__inner,
  .page-hero__inner {
    padding-block: 72px 30px;
  }

  .hero__actions {
    gap: 10px;
    margin-block-start: 16px;
  }

  .hero__features {
    gap: 8px 18px;
    margin-block-start: 18px;
    font-size: var(--text-small);
  }

  .hero__scroll {
    display: none;
  }

  .simple-hero,
  .legal-page {
    padding-block-start: 104px;
  }
}

@media (min-width: 700px) and (max-width: 879px) {
  .process {
    width: min(100%, calc(var(--process-marker-size) + var(--process-column-gap) + 31ch));
    max-width: none;
  }

  .process li {
    grid-template-columns: var(--process-marker-size) minmax(0, 1fr);
  }

  .trust-grid article {
    max-width: none;
  }
}

@media (min-width: 880px) {
  .world-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .world-card--washtower,
  .world-card--elica {
    min-height: clamp(330px, 30vw, 430px);
  }

  .product-split__grid,
  .product-detail__grid,
  .about-strip__grid,
  .video-feature,
  .about-page__grid,
  .contact-panel,
  .contact-page-grid {
    gap: clamp(58px, 7vw, 86px);
  }

  .product-split__grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }

  .product-split__grid--reverse {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  }

  .product-detail__grid {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  }

  .product-detail__grid--reverse {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }

  .product-split__media {
    min-height: clamp(430px, 44vw, 560px);
  }

  .product-detail__media {
    min-height: clamp(420px, 40vw, 540px);
  }

  .trust-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .trust-grid article,
  .trust-grid article:first-child,
  .trust-grid article:last-child {
    max-width: none;
  }

  .card-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }

  .process {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(34px, 4.8vw, 72px);
    max-width: none;
  }

  .process::before {
    display: block;
    inset-block-start: calc(var(--process-marker-size) / 2);
    inset-block-end: auto;
    inset-inline-start: calc(var(--process-marker-size) / 2);
    inset-inline-end: 0;
    width: auto;
    height: 1px;
  }

  .process li::before {
    content: none;
  }

  .process li {
    display: block;
    padding-block-end: 0;
  }

  .process span {
    width: 60px;
    height: 60px;
    margin-block-end: 18px;
    background: var(--paper);
  }

  .process h3 {
    margin-block: 0 8px;
  }

  .process p {
    max-width: 27ch;
  }

  .brochure-grid--large {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: var(--space-lg);
    align-items: start;
  }

  .brochure-grid--large .brochure-card {
    grid-template-columns: minmax(126px, 160px) minmax(0, 1fr);
    min-height: 320px;
    padding: clamp(24px, 3vw, 36px);
  }

  .brochure-grid--large .brochure-card img {
    width: min(160px, 100%);
    max-height: 220px;
  }

  .brochure-grid--large .brochure-card h2 {
    font-size: var(--text-card-lg);
  }

  .brochure-grid--large .brochure-card:nth-child(2) {
    margin-block-start: var(--space-md);
  }

  .insight-grid:not(.insight-grid--page):not(.insight-grid--preview) {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr) minmax(0, 1fr);
  }

  .insight-grid--preview,
  .insight-grid--page {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .post-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .post-nav__link--next {
    grid-column: 2;
  }

  .about-strip__grid {
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  }

  .about-page__grid {
    grid-template-columns: minmax(280px, 0.76fr) minmax(0, 1.24fr);
    align-items: start;
  }

  .contact-panel {
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  }

  .contact-page-grid {
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, 380px);
    align-items: start;
  }

  .faq-layout {
    grid-template-columns: minmax(220px, 0.62fr) minmax(0, 1.38fr);
  }
}

@media (min-width: 1120px) {
  .site-footer__grid {
    grid-template-columns: 1.3fr 0.8fr 0.9fr 1fr;
  }
}
