/* ==========================================================================
   dectec, an AiFi company
   Palette, spacing, buttons and responsive framework carried over from v1.
   Revision 1.1: customer-focused IA, Solutions dropdown, benefit rotator, news.
   ========================================================================== */

:root {
  --blue:        #1d3fe8;
  --blue-deep:   #0a1a6e;
  --blue-wash:   #eef1fe;
  --yellow:      #ffd200;
  --ink:         #0b0b0e;
  --paper:       #ffffff;
  --vault:       #07080d;
  --vault-2:     #12141f;
  --slate:       #565c6e;
  --line:        #e5e7ef;

  --wrap: 1180px;
  --reading: 760px;
  --gut: 24px;

  --f-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;

  --step--1: clamp(0.79rem, 0.77rem + 0.1vw, 0.85rem);
  --step-0:  clamp(1rem, 0.97rem + 0.16vw, 1.09rem);
  --step-1:  clamp(1.2rem, 1.12rem + 0.4vw, 1.45rem);
  --step-2:  clamp(1.5rem, 1.32rem + 0.9vw, 2.1rem);
  --step-3:  clamp(1.95rem, 1.6rem + 1.7vw, 3rem);
  --step-4:  clamp(2.3rem, 1.7rem + 3vw, 4.1rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; font-family: var(--f-body); font-size: var(--step-0); line-height: 1.65;
  color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 {
  font-family: var(--f-display); font-weight: 700; letter-spacing: -0.025em;
  line-height: 1.08; margin: 0; text-wrap: balance;
}
p { margin: 0 0 1em; text-wrap: pretty; }
ul { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 2px; }

.wrap { width: min(100% - (var(--gut) * 2), var(--wrap)); margin-inline: auto; }
.wrap--reading { width: min(100% - (var(--gut) * 2), var(--reading)); margin-inline: auto; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip {
  position: absolute; left: -9999px; top: 0; z-index: 99;
  background: var(--ink); color: #fff; padding: 12px 18px; font: 600 0.9rem var(--f-body);
}
.skip:focus { left: 8px; top: 8px; }

/* ---------- text ---------- */
.eyebrow {
  font-size: var(--step--1); font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--blue); margin: 0 0 14px;
  display: flex; align-items: center; gap: 10px;
}
.eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--yellow); flex: none; }
.lede { font-size: var(--step-1); color: var(--slate); max-width: 62ch; }
.muted { color: var(--slate); }
.h-sec { font-size: var(--step-3); max-width: 22ch; }
.h-sub { font-size: var(--step-2); }
.rule { height: 1px; background: var(--line); border: 0; margin: 0; }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--f-body); font-weight: 600; font-size: 0.96rem;
  padding: 14px 24px; border: 1.5px solid var(--ink); border-radius: 2px;
  text-decoration: none; background: var(--paper); color: var(--ink); cursor: pointer;
  transition: transform .12s ease, background .12s ease, color .12s ease, border-color .12s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn--primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.btn--primary:hover { background: var(--blue-deep); border-color: var(--blue-deep); }
.btn--yellow { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
.btn--ghost { background: transparent; }
.btn--onvault { background: transparent; border-color: rgba(255,255,255,.34); color: #fff; }
.btn--onvault:hover { border-color: var(--yellow); color: var(--yellow); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- header and navigation ---------- */
.site-head {
  position: sticky; top: 0; z-index: 60;
  background: rgba(255,255,255,.95); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav { display: flex; align-items: center; gap: 18px; padding: 16px 0; flex-wrap: nowrap; }
.brand { display: flex; align-items: baseline; gap: 9px; text-decoration: none; margin-right: auto; min-width: 0; }
.brand__mark { font-family: var(--f-display); font-weight: 800; font-size: 1.44rem; letter-spacing: -0.05em; }
.brand__mark i { font-style: normal; color: var(--blue); }
.brand__tag {
  font-size: 0.7rem; font-weight: 600; letter-spacing: .09em;
  text-transform: uppercase; color: var(--slate); white-space: nowrap;
}
.nav__links { display: flex; align-items: center; gap: 6px; }
.nav__links > a, .nav__group > a {
  text-decoration: none; font-size: 0.97rem; font-weight: 500;
  padding: 9px 12px; border-radius: 2px; color: var(--ink); white-space: nowrap;
}
.nav__links > a:hover, .nav__group > a:hover { background: var(--blue-wash); color: var(--blue); }
.nav__links a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--yellow); font-weight: 600; }

.nav__group { position: relative; display: flex; align-items: center; }
.nav__caret {
  background: none; border: 0; padding: 10px 6px; cursor: pointer; color: var(--slate);
  display: grid; place-items: center;
}
.nav__caret svg { width: 10px; height: 6px; transition: transform .15s ease; }
.nav__caret[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav__menu {
  position: absolute; top: 100%; margin-top: 10px; left: 0; min-width: 232px;
  background: var(--paper); border: 1px solid var(--line); border-radius: 3px;
  box-shadow: 0 22px 40px -26px rgba(11,11,14,.5); padding: 6px;
  display: none;
}
/* Invisible bridge across the 10px gap. Without it the pointer leaves the
   group on its way to the menu, mouseleave fires, and the menu closes before
   the click lands. Sits above the menu box, so it never covers the links. */
.nav__menu::before {
  content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px;
}
.nav__group.is-open .nav__menu { display: block; }
.nav__menu a {
  display: block; padding: 13px 14px; text-decoration: none; font-size: .95rem;
  font-weight: 500; border-radius: 2px;
}
.nav__menu a:hover { background: var(--blue-wash); color: var(--blue); }
.nav__investors {
  border: 1.5px solid var(--ink); font-weight: 600 !important; margin-left: 8px;
}
.nav__investors:hover { background: var(--ink) !important; color: #fff !important; }
.nav__toggle {
  display: none; background: var(--paper); border: 1.5px solid var(--ink);
  border-radius: 2px; padding: 10px 14px; font: 600 .9rem var(--f-body); cursor: pointer;
}
@media (max-width: 1200px) { .brand__tag { display: none; } }

@media (max-width: 1024px) {
  .site-head { position: relative; }
  .nav__toggle { display: block; }
  .nav__links {
    display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 60;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--paper); border-bottom: 1px solid var(--line);
    padding: 8px var(--gut) 20px; box-shadow: 0 18px 30px -22px rgba(11,11,14,.4);
  }
  .nav__links.is-open { display: flex; }
  .nav__links > a { padding: 14px 4px; border-bottom: 1px solid var(--line); }
  .nav__group { flex-wrap: wrap; border-bottom: 1px solid var(--line); }
  .nav__group > a { flex: 1; padding: 14px 4px; }
  .nav__menu {
    position: static; display: block; border: 0; box-shadow: none; padding: 0 0 10px 14px;
    min-width: 0; width: 100%;
  }
  .nav__menu a { padding: 10px 4px; color: var(--slate); }
  .nav__caret { display: none; }
  .nav__investors { margin: 14px 0 0; text-align: center; }
}

/* ---------- sections ---------- */
.sec { padding: 92px 0; }
.sec--tight { padding: 62px 0; }
.sec--wash { background: var(--blue-wash); }
.sec--grey { background: #f7f8fb; }
.sec--vault { background: var(--vault); color: #fff; }
.sec--vault .lede, .sec--vault .muted { color: #a7adc2; }
.sec--vault .eyebrow { color: var(--yellow); }
.sec--vault .eyebrow::before { background: var(--blue); }
.sec-head { max-width: 68ch; margin-bottom: 46px; }
@media (max-width: 700px) { .sec { padding: 64px 0; } .sec--tight { padding: 46px 0; } }

/* ---------- hero ---------- */
.hero { padding: 74px 0 86px; }
.hero__grid {
  display: grid; gap: 52px; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
}
.hero h1 { font-size: var(--step-4); max-width: 16ch; }
.hero__copy { margin: 26px 0 32px; font-size: var(--step-1); color: var(--slate); max-width: 56ch; }
@media (max-width: 900px) {
  .hero { padding: 48px 0 60px; }
  .hero__grid { grid-template-columns: 1fr; gap: 38px; }
  .hero__media { order: 2; }
  /* Stacked, the image runs full width. At 4:3 that is a lot of vertical space
     given the left of the frame is intentionally empty, so the picture element
     swaps in a 3:2 crop framed on the people and the frame follows suit. */
  .hero__media .media { aspect-ratio: 3 / 2; }
  .hero__media .media picture { display: contents; }
}

/* hero image slot — a real asset drops straight in, no layout change */
.hero__media { position: relative; }
.media {
  position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden;
  border-radius: 4px; background: var(--blue-wash); border: 1px solid var(--line);
}
.media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.media--contain { aspect-ratio: auto; background: var(--paper); }
.media--contain img { height: auto; object-fit: contain; }
.media--empty {
  display: grid; place-items: center; text-align: center; padding: 30px;
  background:
    linear-gradient(135deg, rgba(29,63,232,.07), rgba(255,210,0,.1)),
    var(--blue-wash);
}
.media--empty p {
  margin: 0; color: var(--slate); font-size: .9rem; max-width: 30ch;
}

/* ---------- benefit rotator ---------- */
.rotator { margin: 0; }
.rotator__lead {
  display: block; font-family: var(--f-display); font-weight: 700;
  font-size: var(--step-2); letter-spacing: -.025em; line-height: 1.1;
}
.rotator__slot {
  display: grid; margin-top: 6px;
}
.rotator__word {
  grid-area: 1 / 1; font-family: var(--f-display); font-weight: 700;
  font-size: var(--step-2); letter-spacing: -.025em; line-height: 1.1; color: var(--blue);
  opacity: 0; transform: translateY(10px); transition: opacity .45s ease, transform .45s ease;
}
.rotator__word.is-on { opacity: 1; transform: none; }

/* ---------- illustration figures and tile grids ---------- */
.fig { width: 100%; }
.fig img { width: 100%; height: auto; border-radius: 4px; display: block; }
.fig figcaption { margin-top: 12px; font-size: .86rem; color: var(--slate); }

/* The illustration SVGs are already drawn as self-contained cards, with their
   own border and radius, so they need no wrapper chrome here. */
.tiles { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tiles img { width: 100%; height: auto; display: block; }
@media (max-width: 940px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .tiles, .tiles--2 { grid-template-columns: 1fr; } }

/* ---------- audience cards (image, icon, title, copy) ---------- */
.acard {
  display: flex; flex-direction: column; overflow: hidden;
  border: 1px solid var(--line); border-radius: 3px; background: var(--paper);
  transition: border-color .15s ease, transform .15s ease;
}
.acard:hover { border-color: var(--ink); transform: translateY(-3px); }
/* Image height is capped as well as ratio-bound. Without the cap, the cards
   grow tall at the 3-column and 1-column breakpoints, where each card is far
   wider than it is in the 5-across desktop layout. Tune --acard-img-h to taste. */
.acard__img {
  width: 100%; aspect-ratio: 4 / 3; max-height: var(--acard-img-h, 200px);
  object-fit: cover; background: var(--blue-wash);
}
@media (max-width: 620px) { .acard__img { --acard-img-h: 150px; } }
.acard__body { padding: 22px 20px 26px; }
.acard__icon {
  width: 44px; height: 44px; border-radius: 50%; background: #fff4cc;
  display: grid; place-items: center; margin-bottom: 14px;
}
.acard__icon svg { width: 21px; height: 21px; stroke: #a87f00; fill: none; stroke-width: 1.7; }
.acard h3 { font-size: 1.05rem; margin-bottom: 8px; }
.acard p { font-size: .93rem; color: var(--slate); margin: 0; }

/* ---------- solution cards ---------- */
.scard { border: 1px solid var(--line); border-radius: 4px; padding: 32px 30px 30px; }
.scard--vault { background: #fffbf0; border-color: #f0e2b6; }
.scard--commerce { background: #f2f5ff; border-color: #d9e1fb; }
.scard__head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.scard__icon { width: 56px; height: 56px; border-radius: 13px; display: grid; place-items: center; flex: none; }
.scard--vault .scard__icon { background: var(--yellow); }
.scard--commerce .scard__icon { background: var(--blue); }
.scard__icon svg { width: 27px; height: 27px; fill: none; stroke-width: 1.9; }
.scard--vault .scard__icon svg { stroke: var(--ink); }
.scard--commerce .scard__icon svg { stroke: #fff; }
.scard h3 { font-size: var(--step-2); }
.scard__tag {
  display: block; font-size: .74rem; font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; margin-top: 5px;
}
.scard--vault .scard__tag { color: #a87f00; }
.scard--commerce .scard__tag { color: var(--blue); }
.scard__media {
  margin-top: 22px; border-radius: 4px; overflow: hidden;
  background: var(--paper); border: 1px solid rgba(11,11,14,.07);
}
.scard__media img { width: 100%; height: auto; }
.scard__foot {
  display: flex; align-items: center; gap: 10px; margin-top: 20px;
  font-weight: 600; font-size: .92rem;
}
.scard__foot svg { width: 19px; height: 19px; fill: none; stroke-width: 2; flex: none; }
.scard--vault .scard__foot svg { stroke: #a87f00; }
.scard--commerce .scard__foot svg { stroke: var(--blue); }

/* ---------- grids and cards ---------- */
.grid { display: grid; gap: 22px; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1080px) { .grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 940px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
  .grid--2, .grid--3, .grid--4, .grid--5 { grid-template-columns: 1fr; }
}

.card {
  border: 1px solid var(--line); border-radius: 3px; padding: 28px 26px 30px;
  background: var(--paper); transition: border-color .15s ease, transform .15s ease;
}
.card:hover { border-color: var(--ink); transform: translateY(-3px); }
.card h3 { font-size: var(--step-1); margin-bottom: 10px; }
.card p:last-child { margin-bottom: 0; }
.card--flat:hover { transform: none; }
.card--solution { border-width: 1.5px; padding: 34px 32px 36px; }
.card--solution h3 { font-size: var(--step-2); }
a.card { display: block; text-decoration: none; }
a.card:hover h3 { color: var(--blue); }
.card__tag {
  font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--blue); display: block; margin-bottom: 12px;
}
.card--vault { background: var(--vault-2); border-color: #23273a; color: #fff; }
.card--vault p { color: #a7adc2; }

.linkout {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 18px;
  font-weight: 600; font-size: .95rem; text-decoration: none; color: var(--blue);
  border-bottom: 2px solid var(--yellow); padding-bottom: 2px;
}
.linkout:hover { color: var(--blue-deep); }

/* ---------- lists ---------- */
.ticks { display: grid; gap: 11px; }
.ticks li { display: grid; grid-template-columns: 18px 1fr; gap: 12px; align-items: start; }
.ticks li::before { content: "\2713"; color: var(--blue); font-size: .82rem; line-height: 1.9; font-weight: 700; }
.sec--vault .ticks li::before { color: var(--yellow); }

.benefits { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
@media (max-width: 720px) { .benefits { grid-template-columns: 1fr; } }
.benefits li {
  padding: 16px 0 16px 38px; line-height: 1.5; border-bottom: 1px solid var(--line); position: relative;
}
.benefits li svg {
  position: absolute; left: 0; top: 17px; width: 22px; height: 22px;
  stroke: var(--blue); fill: none;
}

.pills { display: flex; flex-wrap: wrap; gap: 9px; }
.pills li {
  border: 1px solid var(--line); border-radius: 100px; padding: 8px 16px;
  font-size: .92rem; background: #fafbfe;
}

/* ---------- audience blocks ---------- */
.aud { padding: 56px 0; border-top: 1px solid var(--line); }
.aud__grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 44px; align-items: start; }
.aud__img { width: 100%; aspect-ratio: 3 / 2; margin-top: 6px; object-fit: cover; border-radius: 3px; background: var(--blue-wash); }
.aud h3 { margin-bottom: 4px; }
@media (max-width: 900px) { .aud__grid { grid-template-columns: 1fr; gap: 24px; } .aud__img { max-width: 420px; margin-top: 0; } }
.aud h3 { font-size: var(--step-2); }

/* ---------- news ---------- */
.news { height: 100%; }
.news__link {
  display: flex; flex-direction: column; height: 100%; text-decoration: none;
  border: 1px solid var(--line); border-radius: 3px; overflow: hidden; background: var(--paper);
  transition: border-color .15s ease, transform .15s ease;
}
.news__link:hover { border-color: var(--ink); transform: translateY(-3px); }
.news__img {
  width: 100%; aspect-ratio: 16 / 9; max-height: 165px;
  object-fit: cover; background: var(--blue-wash);
}
.news__img--empty {
  background: linear-gradient(135deg, rgba(29,63,232,.09), rgba(255,210,0,.12)), var(--blue-wash);
}
.news__cat {
  font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--blue); padding: 24px 24px 0;
}
.news__title { font-size: var(--step-1); line-height: 1.22; padding: 10px 24px 0; }
.news__ex { color: var(--slate); font-size: .95rem; line-height: 1.55; padding: 12px 24px 0; margin: 0; flex: 1; }
.news__meta {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 22px 24px 24px; font-size: .85rem; color: var(--slate);
}
.news__more { color: var(--blue); font-weight: 600; }
.news-item.is-hidden { display: none; }

.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.filter {
  border: 1px solid var(--line); background: var(--paper); border-radius: 100px;
  padding: 8px 16px; font: 500 .9rem var(--f-body); cursor: pointer; color: var(--slate);
}
.filter:hover { border-color: var(--ink); color: var(--ink); }
.filter.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- article ---------- */
.article__meta {
  display: flex; gap: 18px; align-items: center; flex-wrap: wrap;
  color: var(--slate); font-size: .92rem; margin: 16px 0 28px;
}
.article__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; margin-bottom: 34px; }
.prose { font-size: 1.06rem; line-height: 1.75; }
.prose h2 { font-size: var(--step-2); margin: 40px 0 14px; }
.prose h3 { font-size: var(--step-1); margin: 32px 0 12px; }
.prose ul, .prose ol { margin: 0 0 1.2em; padding-left: 1.3em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin-bottom: .5em; }
.prose a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.prose blockquote {
  margin: 28px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--yellow);
  color: var(--slate); font-size: var(--step-1);
}
.prose img { border-radius: 4px; margin: 28px 0; }

/* ---------- forms ---------- */
.form { display: grid; gap: 18px; }
.field { display: grid; gap: 7px; }
.field label {
  font-size: .78rem; font-weight: 600; letter-spacing: .09em;
  text-transform: uppercase; color: var(--slate);
}
.field input, .field select, .field textarea {
  font: inherit; font-size: 1rem; padding: 13px 15px; border: 1.5px solid var(--line);
  border-radius: 2px; background: var(--paper); color: var(--ink); width: 100%;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue); }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"],
.field select[aria-invalid="true"] { border-color: #c0261f; }
.field__err { color: #c0261f; font-size: .86rem; display: none; }
.field__err.is-on { display: block; }
.consent { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; font-size: .9rem; color: var(--slate); }
.consent input { width: 18px; height: 18px; margin-top: 4px; }
.form__note { font-size: .85rem; color: var(--slate); }
.form__status {
  font-size: .92rem; padding: 14px 16px; border-left: 3px solid var(--yellow);
  background: #fffbe6; display: none;
}
.form__status.is-on { display: block; }
.form__status.is-error { color: #b42318; border-color: #b42318; }

/* ---------- notice ---------- */
.notice {
  border: 1px solid var(--line); border-left: 4px solid var(--yellow);
  background: #fffdf3; padding: 22px 24px; font-size: .95rem;
}
.notice p:last-child { margin-bottom: 0; }

/* ---------- footer ---------- */
.site-foot { background: var(--vault); color: #fff; padding: 74px 0 34px; }
.foot__top { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 38px; }
@media (max-width: 900px) { .foot__top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .foot__top { grid-template-columns: 1fr; } }
.foot__brand .brand__mark { font-size: 1.6rem; color: #fff; }
.foot__brand .brand__mark i { color: var(--yellow); }
.foot__line { color: #a7adc2; font-size: .95rem; margin: 12px 0 0; max-width: 40ch; }
.foot h4 {
  font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--yellow); font-weight: 600; margin: 0 0 14px; font-family: var(--f-body);
}
.foot ul { display: grid; gap: 10px; }
.foot a { color: #cfd4e4; text-decoration: none; font-size: .94rem; }
.foot a:hover { color: #fff; border-bottom: 1px solid var(--yellow); }
.foot__base {
  margin-top: 48px; padding-top: 22px; border-top: 1px solid #23273a;
  display: flex; flex-wrap: wrap; gap: 10px 26px; justify-content: space-between;
  font-size: .8rem; color: #6f7893;
}

/* ---------- reveal ---------- */
.rv { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.rv.is-in { opacity: 1; transform: none; }

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

@media print {
  .site-head, .site-foot { display: none; }
  body { color: #000; }
}
