/* ==========================================================================
   FlowSpace — bundle.css  (single-file, utility-first, atomic naming, em units)
   ========================================================================== */

/* ---- basic-colors variables ---------------------------------------------- */
:root {
  --c-primary:      #2f2a6e;
  --c-primary-dark: #211d52;
  --c-accent:       #d98324;
  --c-accent-dark:  #bd6f1a;
  --c-ink:          #1d1b2c;
  --c-muted:        #63617a;
  --c-bg:           #f7f5ef;
  --c-surface:      #ffffff;
  --c-line:         #e4e0d4;
  --c-veil:         rgba(33, 29, 82, 0.80);
  --c-veil-soft:    rgba(33, 29, 82, 0.62);
  --c-light:        #ffffff;
  --c-light-dim:    #cdcadf;
  --c-glow:         rgba(47, 42, 110, 0.28);
  --c-glow-accent:  rgba(217, 131, 36, 0.34);
}

/* ---- minimal reset ------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body, h1, h2, h3, p, ul, figure, address { margin: 0; }
ul { padding: 0; list-style: none; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font: inherit; cursor: pointer; }
address { font-style: normal; }

/* ---- base ---------------------------------------------------------------- */
body {
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.0625em;
  line-height: 1.62;
  color: var(--c-ink);
  background: var(--c-bg);
}
h1, h2, h3 { line-height: 1.22; font-weight: 700; }
p { margin-bottom: 0; }
.page-flow > * + * { margin-top: 0; }

.skip-link {
  position: absolute; left: 0.5em; top: -3em;
  background: var(--c-primary); color: var(--c-light);
  padding: 0.5em 1em; border-radius: 0.4em; z-index: 2000;
  transition: top 0.2s ease;
}
.skip-link:focus { top: 0.5em; }

/* ---- atomic utilities ---------------------------------------------------- */
.d-flex      { display: flex; }
.ai-center   { align-items: center; }
.jc-between  { justify-content: space-between; }
.ta-center   { text-align: center; }

.cnt {
  width: 100%;
  max-width: 75em;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.4em;
  padding-right: 1.4em;
}
.cnt--narrow { max-width: 48em; }

/* ==========================================================================
   HEADER + NAV  (visual layer — functional layer owned by mobile-menu module)
   ========================================================================== */
.site-bar {
  background: var(--c-surface);
  border-bottom: 0.0625em solid var(--c-line);
  position: sticky; top: 0; z-index: 900;
}
.site-bar__inner { min-height: 4.4em; }

.brand { gap: 0.55em; text-decoration: none; }
.brand__mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.2em; height: 2.2em; border-radius: 0.55em;
  background: var(--c-primary); color: var(--c-light);
  font-weight: 700; font-size: 0.85em; letter-spacing: 0.04em;
}
.brand__name {
  font-weight: 700; font-size: 1.2em; letter-spacing: 0.01em;
  color: var(--c-ink);
}

.burger { background: none; border: 0; padding: 0.5em; }

.nav__x { color: var(--c-primary); }

.nav__list { gap: 0.2em; }
.nav__link {
  display: block; text-decoration: none;
  color: var(--c-ink); font-weight: 600; font-size: 0.95em;
  border-radius: 0.4em;
  transition: color 0.2s ease, background 0.2s ease;
}
.nav__link:hover { color: var(--c-primary); }
.nav__link.is-current { color: var(--c-primary); }
.nav__link.is-current::after {
  content: ""; display: block; height: 0.15em;
  background: var(--c-accent); border-radius: 0.15em;
  margin-top: 0.25em;
}

/* ---- fixed right rail (navigation_type: sidebar-right) ------------------- */
.rail {
  position: fixed; right: 0.9em; top: 50%;
  transform: translateY(-50%);
  display: flex; flex-direction: column; gap: 0.6em;
  z-index: 850;
}
.rail__link {
  width: 2.7em; height: 2.7em; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--c-surface); color: var(--c-primary);
  border: 0.0625em solid var(--c-line); text-decoration: none;
  font-size: 1.05em;
  box-shadow: 0 0.2em 0.8em var(--c-glow);
  transition: box-shadow 0.25s ease, transform 0.25s ease, background 0.25s ease;
}
.rail__link:hover {
  background: var(--c-primary); color: var(--c-light);
  box-shadow: 0 0 0.6em var(--c-glow), 0 0 1.4em var(--c-glow-accent);
  transform: translateY(-0.12em);
}
.rail__top { border-width: 0.0625em; }

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.sec { padding: 4.4em 0; position: relative; }
.sec--plain { background: var(--c-bg); }
.sec--intro { background: var(--c-surface); padding-bottom: 2.6em; }
.sec--features { background: var(--c-bg); }
.sec--articles { background: var(--c-surface); }
.sec--values { background: var(--c-surface); }
.sec--team { background: var(--c-bg); }
.sec--contact { background: var(--c-primary-dark); color: var(--c-light); }
.sec--cta-band { background: var(--c-primary); color: var(--c-light); }

.sec__overlay {
  position: absolute; inset: 0;
  background: var(--c-veil);
  z-index: 0;
}
.sec__head { max-width: 38em; margin: 0 auto 2.6em; text-align: center; }
.sec__h { font-size: 1.95em; color: var(--c-ink); }
.sec__h--light { color: var(--c-light); }
.sec--contact .sec__h,
.sec--cta-band .sec__h { color: var(--c-light); }
.sec__sub { margin-top: 0.7em; color: var(--c-muted); }
.sec--contact .sec__sub { color: var(--c-light-dim); }
.sec__foot { margin-top: 2.6em; text-align: center; }

.kicker {
  display: inline-block; text-transform: uppercase;
  letter-spacing: 0.16em; font-size: 0.72em; font-weight: 700;
  color: var(--c-accent); margin-bottom: 0.7em;
}
.kicker--light { color: var(--c-accent); }

.eyebrow {
  text-transform: uppercase; letter-spacing: 0.14em;
  font-size: 0.72em; font-weight: 700; color: var(--c-light-dim);
  margin-bottom: 0.9em;
}

.disc-line {
  font-size: 0.82em; color: var(--c-muted);
  text-align: center; padding-top: 1.8em; padding-bottom: 1.8em;
}
.disc-line a { color: var(--c-primary); }

/* ==========================================================================
   HERO  (image_strategy: carousel-slider — fullscreen hero slider)
   ========================================================================== */
.hero { position: relative; min-height: 36em; overflow: hidden; }
.hero__stage { position: absolute; inset: 0; }
.hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  display: flex; align-items: center;
  opacity: 0; visibility: hidden;
  transition: opacity 0.8s ease;
}
.hero__slide.is-active { opacity: 1; visibility: visible; }
.hero__veil {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, var(--c-veil) 0%, var(--c-veil-soft) 70%);
}
.hero__inner { position: relative; z-index: 2; }
.hero__copy { max-width: 36em; color: var(--c-light); }
.hero__h { font-size: 2.7em; margin-bottom: 0.45em; }
.hero__p { font-size: 1.12em; color: var(--c-light-dim); margin-bottom: 1.6em; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 0.8em; }
.hero__dots {
  position: absolute; bottom: 1.6em; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 0.6em; z-index: 3;
}
.hero__dot {
  width: 0.85em; height: 0.85em; border-radius: 50%;
  background: rgba(255, 255, 255, 0.45); border: 0;
  transition: background 0.25s ease, transform 0.25s ease;
}
.hero__dot.is-active {
  background: var(--c-accent); transform: scale(1.2);
}

/* ==========================================================================
   BUTTONS  (animation_type: glow-shadow)
   ========================================================================== */
.btn {
  display: inline-block; text-decoration: none; text-align: center;
  font-weight: 700; font-size: 0.95em;
  padding: 0.85em 1.7em; border-radius: 0.5em; border: 0.125em solid transparent;
  transition: box-shadow 0.25s ease, transform 0.2s ease,
              background 0.2s ease, color 0.2s ease;
}
.btn--primary { background: var(--c-accent); color: var(--c-light); }
.btn--primary:hover {
  background: var(--c-accent-dark);
  box-shadow: 0 0 0.7em var(--c-glow-accent), 0 0.5em 1.4em var(--c-glow-accent);
  transform: translateY(-0.12em);
}
.btn--ghost {
  background: transparent; color: var(--c-primary);
  border-color: var(--c-primary);
}
.btn--ghost:hover {
  background: var(--c-primary); color: var(--c-light);
  box-shadow: 0 0 0.7em var(--c-glow);
}
.btn--ghost-light {
  background: transparent; color: var(--c-light);
  border-color: rgba(255, 255, 255, 0.6);
}
.btn--ghost-light:hover {
  background: var(--c-light); color: var(--c-primary);
  box-shadow: 0 0 0.9em rgba(255, 255, 255, 0.4);
}
.btn--save { background: var(--c-primary); color: var(--c-light); }
.btn--save:hover { background: var(--c-primary-dark); }
.btn--block { display: block; width: 100%; }

.link-btn {
  background: none; border: 0; padding: 0;
  color: inherit; text-decoration: underline; font: inherit;
}

/* ==========================================================================
   INTRO
   ========================================================================== */
.lead-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 2.4em; align-items: end;
}
.lead-grid__head { max-width: 22em; }
.lead-grid__text { color: var(--c-muted); font-size: 1.05em; }

/* ==========================================================================
   FEATURE / TOPIC CARDS  (dom_hierarchy: grid-nested)
   ========================================================================== */
.card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6em;
}
.topic-card {
  background: var(--c-surface);
  border: 0.0625em solid var(--c-line);
  border-radius: 0.8em;
  padding: 2em 1.7em;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.topic-card:hover {
  box-shadow: 0 0 0.6em var(--c-glow), 0 0.9em 2.2em var(--c-glow);
  transform: translateY(-0.3em);
}
.topic-card__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.8em; height: 2.8em; border-radius: 0.6em;
  background: var(--c-bg); color: var(--c-primary);
  font-size: 1.3em; margin-bottom: 0.8em;
}
.topic-card__h { font-size: 1.18em; margin-bottom: 0.5em; }
.topic-card__p { color: var(--c-muted); font-size: 0.96em; }

/* ==========================================================================
   POST CARDS
   ========================================================================== */
.post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8em;
}
.post-grid--wide { grid-template-columns: repeat(3, 1fr); }
.post-card {
  background: var(--c-surface);
  border: 0.0625em solid var(--c-line);
  border-radius: 0.8em; overflow: hidden;
  display: flex; flex-direction: column;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.post-card:hover {
  box-shadow: 0 0 0.6em var(--c-glow), 0 0.9em 2.2em var(--c-glow);
  transform: translateY(-0.3em);
}
.post-card__media { display: block; }
.post-card__media img { width: 100%; height: 12em; object-fit: cover; }
.post-card__body { padding: 1.5em; display: flex; flex-direction: column; gap: 0.55em; flex: 1; }
.post-card__meta {
  text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 0.72em; font-weight: 700; color: var(--c-accent);
}
.post-card__h { font-size: 1.16em; }
.post-card__h a { text-decoration: none; color: var(--c-ink); }
.post-card__h a:hover { color: var(--c-primary); }
.post-card__p { color: var(--c-muted); font-size: 0.94em; }
.post-card__more {
  margin-top: auto; font-weight: 700; font-size: 0.9em;
  color: var(--c-primary); text-decoration: none;
}
.post-card__more:hover { color: var(--c-accent); }

/* ==========================================================================
   LEAD CAPTURE  (color_sections: colored-overlays, form_placement: sidebar-form)
   ========================================================================== */
.sec--capture {
  background-size: cover; background-position: center;
  color: var(--c-light);
}
.sec--capture .cnt { position: relative; z-index: 2; }
.capture-grid {
  display: grid; grid-template-columns: 1.1fr 0.9fr;
  gap: 2.8em; align-items: start;
}
.capture-grid__p { color: var(--c-light-dim); margin: 0.9em 0 1.3em; }
.capture-list { display: flex; flex-direction: column; gap: 0.55em; }
.capture-list li {
  position: relative; padding-left: 1.6em;
  color: var(--c-light-dim); font-size: 0.96em;
}
.capture-list li::before {
  content: "\2713"; position: absolute; left: 0;
  color: var(--c-accent); font-weight: 700;
}

/* ==========================================================================
   FORMS
   ========================================================================== */
.lead-form {
  background: var(--c-surface); color: var(--c-ink);
  border-radius: 0.9em; padding: 2em;
  box-shadow: 0 1em 2.6em var(--c-glow);
}
.lead-form--boxed { box-shadow: 0 0.6em 1.8em var(--c-glow); }
.lead-form__h { font-size: 1.3em; margin-bottom: 0.4em; }
.lead-form__sub { color: var(--c-muted); font-size: 0.92em; margin-bottom: 1.2em; }

.field { margin-bottom: 1.1em; }
.field__label {
  display: block; margin-bottom: 0.35em;
  font-weight: 600; font-size: 0.9em;
}
.field__input {
  width: 100%; padding: 0.75em 0.9em;
  border: 0.0625em solid var(--c-line); border-radius: 0.45em;
  font: inherit; background: var(--c-bg); color: var(--c-ink);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.field__input:focus {
  outline: 0; border-color: var(--c-primary);
  box-shadow: 0 0 0 0.18em var(--c-glow);
}
.field__check {
  display: flex; gap: 0.6em; align-items: flex-start;
  font-size: 0.86em; color: var(--c-muted); margin-bottom: 1.2em;
}
.field__check input { margin-top: 0.2em; }
.field__check a { color: var(--c-primary); }

.form-errors {
  background: #fbece4; border: 0.0625em solid #e7b69b;
  border-radius: 0.5em; padding: 0.9em 1.2em 0.9em 2.4em;
  color: #8a3d12; margin: 1.2em 0;
}
.form-errors li { margin: 0.2em 0; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact-strip {
  display: grid; grid-template-columns: 1.1fr 0.9fr;
  gap: 2.4em; align-items: center;
}
.contact-strip__list { display: flex; flex-direction: column; gap: 1em; }
.contact-strip__list li {
  display: flex; flex-direction: column;
  border-left: 0.18em solid var(--c-accent); padding-left: 1em;
}
.contact-strip__list a { color: var(--c-light); text-decoration: none; font-weight: 600; }
.contact-strip__list a:hover { color: var(--c-accent); }
.contact-strip__k {
  text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 0.7em; font-weight: 700; color: var(--c-light-dim);
}

.contact-layout {
  display: grid; grid-template-columns: 1.3fr 0.7fr;
  gap: 2.6em; align-items: start;
}
.contact-intro { color: var(--c-muted); margin: 0.8em 0 1.6em; }
.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2em; }
.contact-card {
  background: var(--c-surface); border: 0.0625em solid var(--c-line);
  border-radius: 0.7em; padding: 1.3em;
  display: flex; flex-direction: column; gap: 0.3em;
}
.contact-card__k {
  text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 0.68em; font-weight: 700; color: var(--c-accent);
}
.contact-card__v { font-weight: 700; color: var(--c-ink); text-decoration: none; }
.contact-card__v:hover { color: var(--c-primary); }
.contact-card__note { font-size: 0.85em; color: var(--c-muted); }
.contact-hint {
  margin-top: 1.6em; font-size: 0.9em; color: var(--c-muted);
  background: var(--c-bg); border-radius: 0.6em; padding: 1em 1.3em;
}

/* ==========================================================================
   PAGE HEAD  (colored-overlays)
   ========================================================================== */
.page-head {
  position: relative;
  background: var(--c-primary)
    url("/dist/img/cta-bg.jpg") center / cover no-repeat;
  color: var(--c-light);
  padding: 4.6em 0 3.6em;
}
.page-head--legal { padding: 3.8em 0 3em; }
.page-head .cnt { position: relative; z-index: 2; }
.page-head__h { font-size: 2.3em; margin-bottom: 0.35em; }
.page-head__p { color: var(--c-light-dim); max-width: 36em; }

/* ==========================================================================
   ABOUT — story / values / team
   ========================================================================== */
.story-grid {
  display: grid; grid-template-columns: 0.9fr 1.1fr;
  gap: 2.6em; align-items: center;
}
.story-grid__media img {
  width: 100%; border-radius: 0.9em;
  box-shadow: 0 1em 2.4em var(--c-glow);
}
.story-grid__text p { margin-bottom: 0.9em; color: var(--c-muted); }
.story-grid__text p:first-of-type { color: var(--c-ink); }

.value-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6em;
}
.value-card {
  background: var(--c-bg); border-radius: 0.8em;
  padding: 1.8em; border-top: 0.22em solid var(--c-accent);
}
.value-card__h { font-size: 1.12em; margin-bottom: 0.5em; }
.value-card p { color: var(--c-muted); font-size: 0.95em; }

.team-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.6em;
}
.member {
  background: var(--c-surface); border: 0.0625em solid var(--c-line);
  border-radius: 0.8em; padding: 1.5em; text-align: center;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.member:hover {
  box-shadow: 0 0 0.6em var(--c-glow), 0 0.8em 2em var(--c-glow);
  transform: translateY(-0.25em);
}
.member__photo {
  width: 6.5em; height: 6.5em; margin: 0 auto 1em;
  border-radius: 50%; overflow: hidden;
  border: 0.2em solid var(--c-bg);
}
.member__photo img { width: 100%; height: 100%; object-fit: cover; }
.member__name { font-size: 1.08em; }
.member__role {
  color: var(--c-accent); font-weight: 700;
  font-size: 0.82em; text-transform: uppercase;
  letter-spacing: 0.06em; margin: 0.3em 0 0.6em;
}
.member__bio { color: var(--c-muted); font-size: 0.9em; }

/* ==========================================================================
   FAQ  (js_behavior: functional-reactive accordion)
   ========================================================================== */
.faq-list { display: flex; flex-direction: column; gap: 0.8em; }
.faq-item {
  background: var(--c-surface); border: 0.0625em solid var(--c-line);
  border-radius: 0.7em; overflow: hidden;
}
.faq-item__q {
  width: 100%; background: none; border: 0;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1em; padding: 1.2em 1.4em; text-align: left;
  font-weight: 700; font-size: 1.02em; color: var(--c-ink);
}
.faq-item__q:hover { color: var(--c-primary); }
.faq-item__sign {
  position: relative; flex: 0 0 1.1em; height: 1.1em;
}
.faq-item__sign::before,
.faq-item__sign::after {
  content: ""; position: absolute; background: var(--c-accent);
  border-radius: 0.1em;
}
.faq-item__sign::before {
  left: 0; top: 0.475em; width: 1.1em; height: 0.15em;
}
.faq-item__sign::after {
  left: 0.475em; top: 0; width: 0.15em; height: 1.1em;
  transition: transform 0.25s ease;
}
.faq-item__q[aria-expanded="true"] .faq-item__sign::after {
  transform: rotate(90deg);
}
.faq-item__a { padding: 0 1.4em 1.3em; color: var(--c-muted); }
.faq-item__a a { color: var(--c-primary); }
.faq-after { margin-top: 2.4em; }
.faq-after p { margin-bottom: 0.9em; color: var(--c-muted); }

/* ==========================================================================
   BLOG POST
   ========================================================================== */
.post-hero {
  position: relative;
  background-size: cover; background-position: center;
  color: var(--c-light);
  padding: 4.6em 0 3.4em;
}
.post-hero .cnt { position: relative; z-index: 2; }
.post-hero__h { font-size: 2.25em; margin-bottom: 0.4em; }
.post-hero__meta { color: var(--c-light-dim); font-size: 0.9em; }
.post-body { padding-top: 2.6em; padding-bottom: 2.6em; }
.post-body p { margin-bottom: 1.1em; }
.post-body h2 {
  font-size: 1.45em; margin: 1.7em 0 0.6em; color: var(--c-primary);
}
.post-list { margin: 0 0 1.2em; display: flex; flex-direction: column; gap: 0.5em; }
.post-list li {
  position: relative; padding-left: 1.5em; color: var(--c-muted);
}
.post-list li::before {
  content: ""; position: absolute; left: 0; top: 0.62em;
  width: 0.5em; height: 0.5em; border-radius: 50%;
  background: var(--c-accent);
}
.post-back { margin-top: 2em; font-weight: 700; }
.post-back a { color: var(--c-primary); text-decoration: none; }
.post-back a:hover { color: var(--c-accent); }

/* ==========================================================================
   LEGAL PAGES
   ========================================================================== */
.legal { font-size: 0.98em; }
.legal h2 {
  font-size: 1.25em; margin: 1.7em 0 0.6em; color: var(--c-primary);
}
.legal p { margin-bottom: 0.9em; color: var(--c-ink); }
.legal ul { margin: 0 0 1em; display: flex; flex-direction: column; gap: 0.4em; }
.legal li { position: relative; padding-left: 1.4em; color: var(--c-ink); }
.legal li::before {
  content: ""; position: absolute; left: 0; top: 0.6em;
  width: 0.45em; height: 0.45em; border-radius: 50%;
  background: var(--c-accent);
}
.legal a { color: var(--c-primary); }

/* ==========================================================================
   RESULT CARD  (process-form)
   ========================================================================== */
.sec--plain .result-card { margin: 0 auto; }
.result-card {
  background: var(--c-surface); border: 0.0625em solid var(--c-line);
  border-radius: 0.9em; padding: 2.6em; text-align: center;
  box-shadow: 0 0.8em 2.2em var(--c-glow);
}
.result-card--err { text-align: left; }
.result-card__mark {
  width: 3em; height: 3em; margin: 0 auto 1em;
  border-radius: 50%; background: var(--c-primary); color: var(--c-light);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3em; font-weight: 700;
}
.result-card__h { font-size: 1.55em; margin-bottom: 0.5em; }
.result-card__p { color: var(--c-muted); margin-bottom: 1.4em; }
.result-card__small { font-size: 0.88em; color: var(--c-muted); margin-bottom: 1.2em; }
.result-card__small a { color: var(--c-primary); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-foot {
  background: var(--c-primary-dark); color: var(--c-light-dim);
  padding: 3.6em 0 1.8em;
}
.foot-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
  gap: 2.2em;
}
.foot-col .brand__name { color: var(--c-light); }
.foot-tag { margin-top: 0.7em; color: var(--c-light); font-weight: 600; }
.foot-note { margin-top: 0.5em; font-size: 0.85em; }
.foot-h {
  font-size: 0.78em; text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--c-light); margin-bottom: 0.9em;
}
.foot-list { display: flex; flex-direction: column; gap: 0.45em; }
.foot-list a, .foot-list .link-btn {
  color: var(--c-light-dim); text-decoration: none; font-size: 0.92em;
}
.foot-list a:hover, .foot-list .link-btn:hover { color: var(--c-accent); }
.foot-addr { display: flex; flex-direction: column; gap: 0.3em; font-size: 0.9em; }
.foot-addr a { color: var(--c-light-dim); text-decoration: none; }
.foot-addr a:hover { color: var(--c-accent); }
.foot-base {
  margin-top: 2.6em; padding-top: 1.4em;
  border-top: 0.0625em solid rgba(255, 255, 255, 0.12);
  display: flex; flex-wrap: wrap; gap: 0.5em 2em;
  justify-content: space-between; font-size: 0.82em;
}
.foot-base a { color: var(--c-accent); }

/* ==========================================================================
   COOKIE CONSENT BANNER
   ========================================================================== */
.ck {
  position: fixed; left: 1em; right: 1em; bottom: 1em;
  z-index: 1800;
}
.ck[hidden] { display: none; }
.ck__panel {
  max-width: 60em; margin: 0 auto;
  background: var(--c-surface); color: var(--c-ink);
  border: 0.0625em solid var(--c-line); border-radius: 0.8em;
  padding: 1.5em 1.7em;
  box-shadow: 0 1em 3em rgba(33, 29, 82, 0.35);
}
.ck__h { font-size: 1.15em; margin-bottom: 0.4em; }
.ck__p { font-size: 0.9em; color: var(--c-muted); }
.ck__p a { color: var(--c-primary); }
.ck__prefs {
  margin-top: 1em; display: flex; flex-direction: column; gap: 0.6em;
  border-top: 0.0625em solid var(--c-line); padding-top: 1em;
}
.ck__prefs[hidden] { display: none; }
.ck__row {
  display: flex; gap: 0.6em; align-items: flex-start;
  font-size: 0.86em; color: var(--c-muted);
}
.ck__row input { margin-top: 0.2em; }
.ck__actions {
  margin-top: 1.2em; display: flex; flex-wrap: wrap; gap: 0.6em;
  justify-content: flex-end;
}
.ck__actions .btn { padding: 0.6em 1.2em; font-size: 0.85em; }
.ck__actions .btn[hidden] { display: none; }

/* ==========================================================================
   MOBILE MENU MODULE — palette overrides (functional CSS embedded below)
   ========================================================================== */
[data-mm-header] {
  --mm-bg: #ffffff;
  --mm-text: #1d1b2c;
  --mm-primary: #2f2a6e;
  --mm-overlay-bg: rgba(33, 29, 82, 0.55);
}

/* ==========================================================================
   RESPONSIVE  (mobile_behavior: stack-vertical)
   ========================================================================== */
@media (max-width: 64em) {
  .foot-grid { grid-template-columns: 1fr 1fr; }
  .card-grid { grid-template-columns: 1fr 1fr; }
  .post-grid, .post-grid--wide { grid-template-columns: 1fr 1fr; }
  .team-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 48em) {
  body { font-size: 1em; }
  .rail { display: none; }
  .sec { padding: 3em 0; }
  .hero { min-height: 32em; }
  .hero__h { font-size: 2em; }
  .sec__h { font-size: 1.6em; }
  .lead-grid,
  .capture-grid,
  .contact-strip,
  .contact-layout,
  .story-grid { grid-template-columns: 1fr; gap: 1.8em; }
  .card-grid,
  .post-grid, .post-grid--wide,
  .value-grid,
  .team-grid,
  .contact-cards { grid-template-columns: 1fr; }
  .foot-grid { grid-template-columns: 1fr; }
  .foot-base { flex-direction: column; }
  .ck__actions { justify-content: stretch; }
  .ck__actions .btn { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

/* ==========================================================================
   MOBILE MENU MODULE — functional CSS (slide-left variant, do not edit)
   ========================================================================== */
[data-mm-header]{position:relative}
[data-mm-toggle]{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:1001}
[data-mm-toggle] span{display:block;width:24px;height:2px;background:var(--mm-text);transition:0.3s ease}
[data-mm-menu]{position:fixed;top:0;left:0;width:280px;max-width:85vw;height:100vh;height:100dvh;background:var(--mm-bg);transform:translateX(-100%);transition:transform 0.3s ease;z-index:1100;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding:60px 24px 24px}
[data-mm-menu].mm-open{transform:translateX(0)}
[data-mm-menu] ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
[data-mm-menu] ul li a{display:block;padding:14px 0;color:var(--mm-text);text-decoration:none;font-size:16px;border-bottom:1px solid rgba(0,0,0,0.08);transition:color 0.3s ease}
[data-mm-menu] ul li a:hover{color:var(--mm-primary)}
[data-mm-close]{position:absolute;top:16px;right:16px;background:none;border:none;font-size:28px;line-height:1;cursor:pointer;color:var(--mm-text);padding:4px 8px}
[data-mm-overlay]{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--mm-overlay-bg);opacity:0;visibility:hidden;transition:opacity 0.3s ease,visibility 0.3s ease;z-index:1050}
[data-mm-overlay].mm-visible{opacity:1;visibility:visible}
@media(min-width:768px){
  [data-mm-toggle]{display:none!important}
  [data-mm-menu]{position:static!important;width:auto!important;max-width:none!important;height:auto!important;background:transparent!important;transform:none!important;padding:0!important;overflow:visible!important;flex-direction:row!important}
  [data-mm-menu] ul{flex-direction:row;gap:0;align-items:center}
  [data-mm-menu] ul li a{padding:8px 16px;border-bottom:none;font-size:inherit}
  [data-mm-close]{display:none!important}
  [data-mm-overlay]{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  [data-mm-menu],[data-mm-overlay],[data-mm-toggle] span{transition:none!important}
}
