:root {
  --color-bg: #f7f8fa;
  --color-surface: #ffffff;
  --color-surface-alt: #e3e7ea;
  --color-text: #17202a;
  --color-text-soft: #56616b;
  --color-line: #d4dde5;

  /* Corporate colors from user reference */
  --color-primary: #3f8ec2;
  --color-primary-deep: #2b6f9b;
  --color-primary-soft: #ddecf6;
  --color-accent: #d93225;
  --color-accent-deep: #b0271c;
  --color-accent-soft: #f9e3e0;

  --color-dark: #12324d;
  --color-dark-soft: #c5d4df;
  --color-focus: #d93225;

  --shell: 1180px;
  --content: 760px;

  --radius-small: 0.6rem;
  --radius-medium: 1rem;
  --radius-large: 1.5rem;

  --shadow-soft: 0 1px 2px rgb(0 0 0 / 0.04), 0 12px 35px rgb(17 27 33 / 0.06);

  --step--1: clamp(0.84rem, 0.81rem + 0.12vw, 0.92rem);
  --step-0: clamp(1rem, 0.96rem + 0.16vw, 1.1rem);
  --step-1: clamp(1.15rem, 1.08rem + 0.3vw, 1.35rem);
  --step-2: clamp(1.45rem, 1.3rem + 0.65vw, 1.85rem);
  --step-3: clamp(1.9rem, 1.62rem + 1.2vw, 2.65rem);
  --step-4: clamp(2.45rem, 1.95rem + 2.15vw, 4rem);
  --step-5: clamp(3rem, 2.3rem + 3vw, 5.2rem);

  --space-xs: 0.5rem;
  --space-sm: 0.8rem;
  --space-md: 1.25rem;
  --space-lg: 2rem;
  --space-xl: 3.25rem;
  --space-2xl: clamp(4.5rem, 8vw, 7.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--step-0);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
a { color: inherit; text-decoration-thickness: 0.08em; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 0.12em; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
h1, h2, h3, p, ul, ol { margin-top: 0; }
h1, h2, h3 { line-height: 1.12; letter-spacing: -0.025em; }
h1 { margin-bottom: var(--space-lg); max-width: 13ch; font-size: var(--step-5); font-weight: 680; }
h1 span { color: var(--color-primary-deep); }
h2 { margin-bottom: 0; max-width: 18ch; font-size: var(--step-3); font-weight: 680; }
h3 { margin-bottom: var(--space-sm); font-size: var(--step-1); font-weight: 650; }
p { color: var(--color-text-soft); }
.shell { width: min(calc(100% - 2rem), var(--shell)); margin-inline: auto; }
.section { padding-block: var(--space-2xl); background: var(--color-bg); }
.section-tint { background: var(--color-surface-alt); }
.section-dark { background: var(--color-surface-alt); color: var(--color-text); }
.section-dark p { color: var(--color-text-soft); }
.skip-link {
  position: fixed; z-index: 999; top: 0.75rem; left: 0.75rem; padding: 0.7rem 1rem;
  transform: translateY(-200%); border-radius: var(--radius-small); background: var(--color-text); color: #fff;
}
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; overflow: hidden; width: 1px; height: 1px; padding: 0; margin: -1px; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.no-break { white-space: nowrap; }
.eyebrow { margin-bottom: var(--space-md); color: var(--color-accent); font-size: var(--step-1); font-weight: 780; letter-spacing: 0.1em; text-transform: uppercase; }

.site-header {
  position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgb(23 32 42 / 0.08);
  background: rgb(247 248 250 / 0.95); backdrop-filter: blur(16px);
}
.header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; min-height: 5rem; gap: var(--space-lg); }
.brand { display: inline-flex; align-items: center; gap: 0.9rem; text-decoration: none; }
.brand-logo { width: auto; height: 3rem; }
.brand-name { display: flex; flex-direction: column; line-height: 1.05; }
.brand-name strong { font-size: 1rem; font-weight: 760; }
.brand-name span { margin-top: 0.18rem; color: var(--color-text-soft); font-size: 0.77rem; letter-spacing: 0.08em; text-transform: uppercase; }
.primary-nav { display: flex; grid-column: 2; grid-row: 1; align-items: center; justify-content: flex-end; gap: 1.45rem; }
.primary-nav > a:not(.button) { font-size: 0.93rem; font-weight: 560; text-decoration: none; }
.primary-nav > a:not(.button):hover { color: var(--color-primary-deep); }
.header-actions { display: flex; grid-column: 3; grid-row: 1; align-items: center; gap: var(--space-md); }
.language-nav { display: flex; align-items: center; gap: 0.45rem; }
.language-pill {
  display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.55rem; border: 1px solid var(--color-line);
  border-radius: 999px; color: var(--color-text-soft); font-size: 0.78rem; font-weight: 650; text-decoration: none; background: #fff;
}
.language-pill.is-current { border-color: rgb(63 142 194 / 0.25); background: var(--color-primary-soft); color: var(--color-primary-deep); }
.menu-toggle { display: none; width: 2.75rem; height: 2.75rem; padding: 0; place-items: center; border: 0; background: transparent; cursor: pointer; }
.menu-icon { display: grid; width: 1.35rem; gap: 0.26rem; }
.menu-icon span { height: 2px; border-radius: 2px; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.button {
  display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; padding: 0.85rem 1.2rem;
  border: 1px solid transparent; border-radius: 0.55rem; font-weight: 650; line-height: 1.2; text-align: center;
  text-decoration: none; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--color-accent); color: #fff; }
.button-primary:hover { background: var(--color-accent-deep); }
.button-secondary { border-color: rgb(63 142 194 / 0.35); background: transparent; color: var(--color-primary-deep); }
.button-secondary:hover { background: var(--color-primary-soft); }
.button-light { background: #fff; color: var(--color-primary-deep); }
.button-small { min-height: 2.75rem; padding: 0.65rem 0.9rem; font-size: 0.88rem; }

.hero { position: relative; overflow: hidden; background: var(--color-bg); padding-block: clamp(4rem, 8vw, 7rem) clamp(4.5rem, 8vw, 7.5rem); }
.hero::before {
  position: absolute; z-index: -1; inset: 0; background:
    linear-gradient(135deg, rgb(63 142 194 / 0.08), transparent 46%),
    radial-gradient(circle at 82% 12%, rgb(217 50 37 / 0.14), transparent 22%);
  content: "";
}
.hero::after {
  position: absolute; z-index: -1; top: -9rem; right: -8rem; width: 32rem; height: 32rem; border-radius: 50%;
  background: radial-gradient(circle, rgb(63 142 194 / 0.16), rgb(63 142 194 / 0)); content: "";
}
.hero-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(18rem,0.7fr); align-items: end; gap: clamp(3rem,7vw,7rem); }
.hero-intro { max-width: 46rem; margin-bottom: var(--space-lg); font-size: var(--step-1); }
.button-row { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.hero-panel { padding: clamp(1.5rem,4vw,2.4rem); border-top: 5px solid var(--color-accent); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.hero-panel-label { margin-bottom: var(--space-lg); color: var(--color-primary-deep); font-size: var(--step--1); font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.hero-panel-statement { margin-bottom: var(--space-xl); color: var(--color-text); font-size: var(--step-2); line-height: 1.25; }
.hero-panel-statement strong { display: block; margin-top: 0.4rem; color: var(--color-primary-deep); }
.hero-facts { display: grid; padding: 0; margin: 0; gap: 0; list-style: none; }
.hero-facts li { display: grid; padding-block: 0.85rem; border-top: 1px solid var(--color-line); grid-template-columns: 1fr 1.4fr; gap: var(--space-md); }
.hero-facts span { color: var(--color-text-soft); font-size: var(--step--1); }
.hero-facts strong { font-size: var(--step--1); font-weight: 650; }

.section-heading { display: grid; align-items: end; margin-bottom: var(--space-xl); grid-template-columns: minmax(0,1.3fr) minmax(16rem,0.7fr); gap: var(--space-xl); }
.section-heading.narrow { display: block; max-width: var(--content); }
.section-lead { margin-bottom: 0; font-size: var(--step-1); }
.orientation-grid { display: grid; margin-top: var(--space-xl); border-top: 1px solid var(--color-line); grid-template-columns: repeat(3,1fr); }
.orientation-item { padding: var(--space-lg); border-right: 1px solid var(--color-line); }
.orientation-item:first-child { padding-left: 0; }
.orientation-item:last-child { border-right: 0; }
.item-number, .service-index { display: block; margin-bottom: var(--space-lg); color: var(--color-accent); font-size: var(--step-1); font-weight: 750; }
.service-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--color-line); border: 1px solid var(--color-line); }
.service-card { display: flex; min-height: 21rem; flex-direction: column; padding: clamp(1.4rem,3vw,2rem); background: var(--color-surface); }
.service-card p { flex: 1; }
.service-card a { align-self: flex-start; color: var(--color-primary-deep); font-weight: 650; text-decoration: none; }
.service-card a:hover { color: var(--color-accent); }
.value-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(3rem,8vw,7rem); }
.value-list article { display: grid; padding-block: var(--space-lg); border-top: 1px solid var(--color-line); grid-template-columns: 4rem 1fr; gap: var(--space-md); }
.value-list article:last-child { border-bottom: 1px solid var(--color-line); }
.value-list > article > span { color: var(--color-accent); font-size: var(--step-2); font-weight: 750; }
.value-list p { max-width: 44rem; margin-bottom: 0; }
.section-heading-light h2 { color: var(--color-text); }
.section-heading-light .eyebrow { color: var(--color-accent); }
.case-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: var(--space-lg); }
.case-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.case-card { min-width: 0; padding: clamp(1.5rem,4vw,2.5rem); border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.case-card h3 { color: var(--color-primary-deep); font-size: var(--step-2); }
.case-label { color: var(--color-accent) !important; font-size: var(--step--1); font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.case-card dl { margin: var(--space-xl) 0 0; }
.case-card dl div { display: grid; padding-block: 1rem; border-top: 1px solid var(--color-line); grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; }
.case-card dt { color: var(--color-text); font-size: var(--step--1); font-weight: 650; }
.case-card dd { margin: 0; color: var(--color-text-soft); }
.process-list { display: grid; padding: 0; margin: var(--space-xl) 0 0; border-top: 1px solid var(--color-line); list-style: none; }
.process-list li { display: grid; padding-block: var(--space-lg); border-bottom: 1px solid var(--color-line); grid-template-columns: 5rem minmax(0,1fr); gap: var(--space-md); }
.process-list > li > span { color: var(--color-accent); font-size: var(--step-2); font-weight: 750; }
.process-list p { max-width: 44rem; margin-bottom: 0; }

.people-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-lg);
}

.person-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border-top: 4px solid var(--color-primary);
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
}

.person-card:nth-child(2) {
  border-top-color: var(--color-accent);
}

.person-photo {
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--color-primary-soft);
}

.person-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.person-copy {
  display: block;
  padding: clamp(1.5rem, 3vw, 2.2rem);
  border-top: 1px solid var(--color-line);
}

.person-role {
  margin-bottom: 0.45rem;
  color: var(--color-accent);
  font-size: var(--step--1);
  font-weight: 750;
  text-transform: uppercase;
}

.person-copy h3 {
  margin-bottom: var(--space-md);
  color: var(--color-primary-deep);
  font-size: var(--step-2);
}

.person-copy > p:not(.person-role) {
  margin-bottom: 1rem;
}

.person-points {
  padding-left: 1.15rem;
  margin: 0;
}

.person-points li {
  margin-bottom: 0.65rem;
  color: var(--color-text-soft);
}

.person-points li:last-child {
  margin-bottom: 0;
}

.contact-section { padding-block: var(--space-2xl); background: var(--color-surface-alt); color: var(--color-text); border-top: 1px solid var(--color-line); }
.contact-section .eyebrow { color: var(--color-accent); }
.contact-section h2 { max-width: 20ch; color: var(--color-text); }
.contact-section p { max-width: 48rem; color: var(--color-text-soft); }
.contact-section .button-light { background: var(--color-accent); color: #fff; }
.contact-section .button-light:hover { background: var(--color-accent-deep); }
.contact-grid { display: grid; align-items: end; grid-template-columns: 1.3fr 0.7fr; gap: var(--space-xl); }
.contact-action { display: flex; flex-direction: column; align-items: flex-start; }
.contact-action p { margin: var(--space-md) 0 0; font-size: var(--step--1); }
.contact-email { display: grid; margin-top: var(--space-md); gap: 0.45rem; }
.contact-email .contact-email-label { margin: 0; color: var(--color-text-soft); font-size: var(--step--1); }
.contact-email-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.65rem; }
.contact-email-link { color: var(--color-text); font-weight: 650; overflow-wrap: anywhere; }
.contact-copy-button {
  display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0.5rem 0.8rem;
  border: 1px solid var(--color-line); border-radius: 999px; background: var(--color-surface); color: var(--color-text-soft);
  font-size: var(--step--1); font-weight: 650; line-height: 1; cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.contact-copy-button:hover { border-color: rgb(63 142 194 / 0.45); background: var(--color-primary-soft); color: var(--color-primary-deep); }
.site-footer { padding-top: var(--space-xl); background: #0a1f32; color: #fff; }
.site-footer p { color: #a6b8c4; }
.footer-grid { display: grid; padding-bottom: var(--space-xl); grid-template-columns: 1.6fr repeat(3,1fr); gap: var(--space-xl); }
.brand-footer .brand-name strong { color: #fff; }
.brand-footer .brand-name span { color: #9fb2c0; }
.footer-brand p { margin-top: var(--space-lg); }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 0.65rem; }
.footer-nav h2, .footer-meta h2 { margin-bottom: var(--space-sm); color: #fff; font-size: var(--step--1); letter-spacing: 0.06em; text-transform: uppercase; }
.footer-nav a, .footer-meta a { color: #d2dde4; font-size: var(--step--1); text-decoration: none; }
.footer-language-disabled { color: #d2dde4; font-size: var(--step--1); }
.footer-bottom { display: flex; justify-content: space-between; padding-block: 1.2rem; border-top: 1px solid rgb(255 255 255 / 0.1); gap: var(--space-md); }
.footer-bottom p { margin: 0; font-size: 0.8rem; }

.legal-page { min-height: 70vh; padding-block: var(--space-2xl); }
.legal-content { max-width: var(--content); }
.legal-content h1 { max-width: none; font-size: var(--step-4); }
.legal-notice { padding: var(--space-lg); border-left: 4px solid var(--color-accent); background: var(--color-surface-alt); }


.site-header .brand-name span {
  color: var(--color-accent);
}

.hero-wordmark {
  width: min(100%, clamp(18rem, 34vw, 31rem));
  height: auto;
  margin: 0 0 1.25rem;
}

.hero-wordmark-legal {
  width: min(100%, 26rem);
}

@media (max-width: 700px) {
  .hero-wordmark {
    width: min(100%, 20rem);
    margin-bottom: 1rem;
  }
}
@media (max-width: 1120px) {
  .case-grid-3 { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .header-inner { grid-template-columns: auto 1fr auto; }
  .header-actions { justify-self: end; }
  .menu-toggle { display: grid; }
  .primary-nav {
    position: fixed; inset: 5rem 0 auto; display: none; max-height: calc(100vh - 5rem); overflow-y: auto;
    padding: var(--space-xl) max(1rem, calc((100vw - var(--shell)) / 2)); border-bottom: 1px solid var(--color-line); background: var(--color-bg);
    grid-column: auto; grid-row: auto;
  }
  .primary-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .primary-nav > a:not(.button) { padding-block: 1rem; border-bottom: 1px solid var(--color-line); font-size: var(--step-1); }
  .nav-cta { margin-top: var(--space-lg); }
  .hero-grid, .value-grid, .contact-grid { grid-template-columns: 1fr; }
  .hero-panel { max-width: 38rem; }
  .service-grid { grid-template-columns: repeat(2,1fr); }
  .section-heading { grid-template-columns: 1fr; }
  .people-grid { grid-template-columns: 1fr; }
  .person-card { grid-template-columns: minmax(12rem,0.65fr) 1.35fr; }
  .person-photo img { min-height: 22rem; }
  .footer-grid { grid-template-columns: 1.6fr 1fr 1fr; }
  .footer-meta { grid-column: 2; }
}

@media (max-width: 700px) {
  .shell { width: min(calc(100% - 1.4rem), var(--shell)); }
  .header-inner { min-height: 4.5rem; }
  .brand-name { display: flex; }
  .brand-logo { height: 2.6rem; }
  .primary-nav { inset: 4.5rem 0 auto; max-height: calc(100vh - 4.5rem); }
  .hero { padding-top: 3.5rem; }
  h1 { max-width: 11ch; }
  .button-row { flex-direction: column; }
  .button-row .button { width: 100%; }
  .orientation-grid, .service-grid, .case-grid, .footer-grid { grid-template-columns: 1fr; }
  .orientation-item, .orientation-item:first-child { padding: var(--space-lg) 0; border-right: 0; border-bottom: 1px solid var(--color-line); }
  .service-card { min-height: auto; }
  .person-card { grid-template-columns: 1fr; }
  .person-photo img { height: auto; min-height: 0; aspect-ratio: 4 / 3; object-position: center 28%; }
  .case-card dl div { grid-template-columns: 1fr; gap: 0.3rem; }
  .process-list li { grid-template-columns: 3rem 1fr; }
  .footer-meta { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .language-nav { display: none; }
}

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

/* 0.5: keep profile imagery landscape with the full 0.3 profile text directly below */
@media (max-width: 980px) {
  .people-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .person-card {
    display: grid;
    grid-template-rows: auto 1fr;
  }

  .person-photo img {
    min-height: 0;
  }
}

@media (max-width: 760px) {
  .people-grid {
    grid-template-columns: 1fr;
  }

  .person-photo {
    aspect-ratio: 4 / 3;
  }

  .person-photo img {
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    object-position: center 28%;
  }
}

/* 0.8: complete mobile header brand */
.site-header .brand-name span {
  color: #d93225;
}

@media (max-width: 700px) {
  .header-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
  }

  .brand {
    min-width: 0;
    gap: 0.65rem;
  }

  .brand-logo {
    flex: 0 0 auto;
    height: 2.35rem;
  }

  .brand-name {
    display: flex;
    min-width: 0;
  }

  .brand-name strong {
    font-size: 0.82rem;
    white-space: nowrap;
  }

  .site-header .brand-name span {
    margin-top: 0.12rem;
    color: #d93225;
    font-size: 0.66rem;
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

  .header-actions {
    grid-column: 2;
    grid-row: 1;
  }

}

/* 0.9: revised hero copy */
.hero-copy .hero-intro {
  margin-bottom: var(--space-md);
}

.hero-signature {
  max-width: 46rem;
  margin-bottom: var(--space-lg);
}

/* 0.11: legal pages and contact cleanup */
.legal-page {
  min-height: 100vh;
}

.legal-content {
  padding-bottom: var(--space-2xl);
}

.legal-content h1 {
  margin-bottom: var(--space-md);
}

.legal-lead {
  max-width: 52rem;
  margin-bottom: var(--space-xl);
  font-size: var(--step-1);
}

.legal-section {
  padding-block: var(--space-lg);
  border-top: 1px solid var(--color-line);
}

.legal-section h2 {
  max-width: none;
  margin-bottom: var(--space-md);
  font-size: var(--step-2);
}

.legal-section p:last-child,
.legal-section ul:last-child,
.legal-section address:last-child {
  margin-bottom: 0;
}

.legal-section address {
  color: var(--color-text-soft);
  font-style: normal;
}

.legal-section ul {
  padding-left: 1.25rem;
  color: var(--color-text-soft);
}

.legal-section li + li {
  margin-top: 0.45rem;
}

.legal-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  padding-top: var(--space-lg);
  margin-top: var(--space-lg);
  border-top: 1px solid var(--color-line);
}

.legal-nav a,
.legal-back a {
  color: var(--color-primary-deep);
  font-weight: 650;
}

.legal-back {
  margin-top: var(--space-lg);
}

/* 0.13: legal subheadings for hosting / analytics details */
.legal-section h3 {
  margin-top: var(--space-lg);
  margin-bottom: var(--space-sm);
  color: var(--color-text);
}

/* Header wordmark. The former identity stage between header and hero was removed in 0.20. */
.header-wordmark {
  display: block;
  width: clamp(13rem, 18vw, 16rem);
  height: auto;
}

@media (max-width: 700px) {
  .header-wordmark {
    width: min(12.5rem, 60vw);
  }
}

/* 0.16: move the cookie / analytics notice out of the language tile and center it across the full footer shell. */
.footer-grid {
  padding-bottom: 0;
}

.footer-cookie {
  margin-top: 3em;
  margin-bottom: 1.5em;
  text-align: center;
}

.footer-cookie p {
  max-width: none;
  margin: 0;
  color: #d2dde4;
  font-size: var(--step--1);
  line-height: 1.5;
  font-weight: 400;
}

@media (max-width: 700px) {
  .footer-cookie {
    margin-top: 3em;
    margin-bottom: 1.5em;
  }
}

/* 0.17: footer wordmark, About lead alignment, and linked privacy reference in the footer notice. */
.footer-wordmark-link {
  display: block;
  width: 100%;
}

.footer-wordmark {
  display: block;
  width: 100%;
  height: auto;
}

#ueber-uns .section-lead {
  text-align: right;
}

.footer-cookie a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.footer-cookie a:hover {
  text-decoration-thickness: 2px;
}

.footer-cookie a:focus-visible {
  outline-color: #ffffff;
}
/* 0.22: equal-width Praxis cards and right-aligned Praxis lead on wide layouts. */
#praxis .section-lead {
  text-align: right;
}

@media (max-width: 980px) {
  #praxis .section-lead {
    text-align: left;
  }
}
/* 0.23: responsive UX cleanup for narrow hero, mobile language access, and About lead alignment. */
.mobile-language-nav {
  display: none;
}

@media (max-width: 700px) {
  .mobile-language-nav {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding-top: var(--space-lg);
  }

  #ueber-uns .section-lead {
    text-align: left;
  }
}

@media (max-width: 360px) {
  .hero-copy {
    min-width: 0;
  }

  .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(2.2rem, 11vw, 2.45rem);
  }
}

/* 0.25: active sticky navigation plus accessible, safe-area-aware back-to-top control. */
.primary-nav > a:not(.button).is-active {
  color: var(--color-primary-deep);
  font-weight: 720;
  text-decoration-line: underline;
  text-decoration-color: var(--color-primary);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.45rem;
}

.back-to-top {
  position: fixed;
  z-index: 90;
  right: calc(clamp(1rem, 3vw, 2rem) + env(safe-area-inset-right, 0px));
  bottom: calc(clamp(1rem, 3vw, 2rem) + env(safe-area-inset-bottom, 0px));
  display: grid;
  width: 3.25rem;
  height: 3.25rem;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid rgb(63 142 194 / 0.28);
  border-radius: 50%;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  color: var(--color-primary-deep);
  font: inherit;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  touch-action: manipulation;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.6rem);
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease, background-color 160ms ease;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.back-to-top.is-visible:hover {
  background: var(--color-primary-soft);
  transform: translateY(-2px);
}

@media (max-width: 700px) {
  .back-to-top {
    width: 3rem;
    height: 3rem;
    font-size: 1.35rem;
  }
}

/* 0.27: more headline breathing room in the three Praxis cards. */
#praxis .case-card {
  padding-inline: clamp(1.5rem, 3vw, 2rem);
}

#praxis .case-card h3 {
  hyphens: none;
  text-wrap: balance;
}

/* 0.29: keyboard navigation, sticky-anchor offset and contrast cleanup. */
.site-header + main,
.site-header + main section[id] {
  scroll-margin-top: 6.5rem;
}

.eyebrow,
.item-number,
.service-index {
  font-size: max(var(--step-1), 1.17rem);
}

@media (max-width: 700px) {
  .site-header + main,
  .site-header + main section[id] {
    scroll-margin-top: 5.75rem;
  }
}
