/* Lith.ai site styles */

/* Plus Jakarta Sans (variable weight), self-hosted so no visitor data goes to third parties */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("../fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("../fonts/plus-jakarta-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ink: #0d0d0d;
  --ink-2: #3d3d3d;
  --muted: #6e6e73;
  --line: #e6e4df;
  --paper: #ffffff;
  --sand: #f6f5f1;
  --sand-2: #eeece6;
  --accent: #39594d;       /* deep green, used sparingly */
  --accent-soft: #e3ebe6;
  --radius: 20px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* Stop sideways wobble on phones. Bootstrap's .g-5 rows pull out 1.5rem per side while the
   container only pads .75rem, so the page ends up wider than the screen. Shrink the
   horizontal gutter on small screens, and clip any stray overflow as a safety net
   ("clip" rather than "hidden" so the sticky nav keeps working). */
html, body { overflow-x: clip; }
@media (max-width: 767.98px) {
  .g-5, .gx-5 { --bs-gutter-x: 1.5rem; }
}

body {
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ink); }
a:hover { color: var(--accent); }

h1, h2, h3, h4 { font-weight: 600; letter-spacing: -0.025em; line-height: 1.1; }
h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); }
h2 { font-size: clamp(1.9rem, 4vw, 3rem); }
h3 { font-size: 1.35rem; letter-spacing: -0.015em; }

.lead { font-size: clamp(1.1rem, 2vw, 1.3rem); color: var(--ink-2); font-weight: 400; }
.eyebrow {
  display: inline-block;
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--muted);
  margin-bottom: 1rem;
}
.text-muted-2 { color: var(--muted) !important; }

/* ---------- buttons ---------- */
.btn { font-weight: 600; border-radius: 999px; padding: .7rem 1.4rem; font-size: .95rem; }
.btn-ink { background: var(--ink); color: #fff; border: 1px solid var(--ink); }
.btn-ink:hover, .btn-ink:focus { background: #2b2b2b; color: #fff; border-color: #2b2b2b; }
.btn-line { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.btn-line:hover { background: var(--ink); color: #fff; }
.btn-light-ink { background: #fff; color: var(--ink); border: 1px solid #fff; }
.btn-light-ink:hover { background: var(--sand-2); color: var(--ink); }
.btn-sm-pill { padding: .5rem 1.1rem; font-size: .88rem; }
.arrow-link { font-weight: 600; text-decoration: none; }
.arrow-link::after { content: " \2192"; transition: margin .2s; }
.arrow-link:hover::after { margin-left: 4px; }

/* ---------- navigation ---------- */
.site-nav {
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--line);
  padding: .8rem 0;
}
.site-nav .navbar-brand { font-weight: 800; font-size: 1.35rem; letter-spacing: -0.03em; color: var(--ink); }
.site-nav .nav-link { color: var(--ink-2); font-weight: 500; font-size: .95rem; padding: .5rem .9rem !important; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--ink); }
.site-nav .navbar-toggler { border: 0; padding: .25rem; box-shadow: none !important; }
.site-nav .dropdown-toggle::after { border: 0; content: "\203A"; transform: rotate(90deg); vertical-align: 0; margin-left: .4rem; font-size: 1.1em; line-height: 1; }

/* Replace Bootstrap's blue states with the site palette */
.site-nav {
  --bs-nav-link-color: var(--ink-2);
  --bs-nav-link-hover-color: var(--ink);
  --bs-navbar-active-color: var(--ink);
}
.site-nav .nav-link:focus,
.site-nav .nav-link.show { color: var(--ink); }
.site-nav .nav-link:focus-visible,
.flyout .dropdown-item:focus-visible,
.btn:focus-visible,
.navbar-toggler:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; box-shadow: none; }
.btn:focus { box-shadow: none; }

.flyout {
  --bs-dropdown-link-color: var(--ink);
  --bs-dropdown-link-hover-color: var(--ink);
  --bs-dropdown-link-hover-bg: var(--sand);
  --bs-dropdown-link-active-color: var(--ink);
  --bs-dropdown-link-active-bg: var(--sand);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,.08);
  padding: 1rem;
  min-width: 340px;
  margin-top: .6rem !important;
}
.flyout .flyout-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); padding: .25rem .75rem .5rem; }
.flyout .dropdown-item { border-radius: 10px; padding: .7rem .75rem; white-space: normal; }
.flyout .dropdown-item:hover,
.flyout .dropdown-item:focus,
.flyout .dropdown-item:active,
.flyout .dropdown-item.active { background: var(--sand); color: inherit; }
.flyout .paper-card:hover, .flyout .paper-card:focus, .flyout .paper-card:active { background: var(--sand-2); }
.flyout .dropdown-item strong { display: block; font-weight: 600; color: var(--ink); font-size: .95rem; }
.flyout .dropdown-item span { display: block; color: var(--muted); font-size: .83rem; line-height: 1.4; }
.flyout .paper-card { background: var(--sand); border-radius: 12px; padding: 1rem; margin-top: .25rem; }
.flyout .paper-card .tag { font-size: .72rem; font-weight: 600; color: var(--accent); text-transform: uppercase; letter-spacing: .08em; }

/* Desktop: open flyouts on hover; the ::before bridge keeps them open while the pointer crosses the gap */
@media (min-width: 992px) {
  .site-nav .dropdown:hover > .dropdown-menu { display: block; }
  .site-nav .dropdown-menu { top: 100%; left: 0; }
  .flyout::before { content: ""; position: absolute; left: 0; right: 0; top: -1rem; height: 1rem; }
}

@media (max-width: 991.98px) {
  .site-nav .navbar-collapse { padding: 1rem 0 .5rem; }
  .flyout { box-shadow: none; border: 0; padding: 0 0 .5rem .5rem; min-width: 0; margin-top: 0 !important; }
  .nav-cta { margin-top: .75rem; }
}

/* ---------- sections ---------- */
.section { padding: 6rem 0; }
.section-sm { padding: 4rem 0; }
.bg-sand { background: var(--sand); }
.bg-ink { background: var(--ink); color: #fff; }
.bg-ink .lead, .bg-ink .text-muted-2 { color: #b5b5b5 !important; }
.bg-ink .eyebrow { color: #9a9a9a; }

.hero { padding: 6.5rem 0 5rem; position: relative; overflow: hidden; }
.hero h1 { max-width: 15ch; }
.hero .lead { max-width: 40rem; margin-top: 1.5rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; }


/* ---------- cards ---------- */
.card-lith {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 2rem;
  height: 100%;
  transition: transform .2s, box-shadow .2s;
}
.card-lith.sand { background: var(--sand); border-color: transparent; }
a.card-lith { display: block; text-decoration: none; color: inherit; }
a.card-lith:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(0,0,0,.06); color: inherit; }
.card-lith h3 { margin-bottom: .75rem; }
.card-lith p { color: var(--ink-2); margin-bottom: 0; font-size: .98rem; }
.card-icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--sand-2);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.4rem;
}
.card-lith.sand .card-icon { background: #fff; }
.card-icon svg { width: 22px; height: 22px; stroke: var(--ink); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.pill {
  display: inline-block; font-size: .78rem; font-weight: 600;
  padding: .3rem .75rem; border-radius: 999px;
  background: var(--accent-soft); color: var(--accent);
}
.pill.dark { background: var(--ink); color: #fff; }
.pill.soft { background: var(--sand-2); color: var(--ink-2); }

/* product feature block */
.feature-panel {
  background: var(--ink); color: #fff; border-radius: 28px;
  padding: clamp(2rem, 5vw, 4rem); overflow: hidden; position: relative;
}
.feature-panel .lead { color: #c4c4c4; }
.feature-panel .stat-num { font-size: clamp(2.2rem, 4.5vw, 3.2rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; }
.feature-panel .stat-label { color: #a8a8a8; font-size: .9rem; margin-top: .4rem; }

/* stats strip */
.stat-num { font-size: clamp(2.2rem, 4.5vw, 3.4rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1; }
.stat-label { color: var(--muted); font-size: .92rem; margin-top: .5rem; }
.stat-cell { border-top: 1px solid var(--ink); padding-top: 1.25rem; }
.bg-ink .stat-cell { border-color: #444; }

/* numbered steps */
.step { border-top: 1px solid var(--line); padding: 1.75rem 0; }
.step-num { font-size: .85rem; font-weight: 600; color: var(--muted); }
.step h3 { margin: .35rem 0 .5rem; }
.step p { color: var(--ink-2); margin: 0; }

/* check list */
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { position: relative; padding-left: 1.9rem; margin-bottom: .85rem; color: var(--ink-2); }
.check-list li::before {
  content: ""; position: absolute; left: 0; top: .4rem; width: 1.05rem; height: 1.05rem; border-radius: 50%;
  background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat;
}
.bg-ink .check-list li { color: #d0d0d0; }
.bg-ink .check-list li::before { background-color: #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' stroke='black' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }


/* short pain list (home) */
.pain-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem; }
.pain-list li { position: relative; padding: .85rem 0 .85rem 1.8rem; border-bottom: 1px solid var(--line); font-size: 1.05rem; font-weight: 500; }
.pain-list li::before { content: "\2715"; position: absolute; left: 0; top: .9rem; color: #a4561d; font-weight: 700; font-size: .9rem; }
@media (max-width: 767.98px) { .pain-list { grid-template-columns: 1fr; } }

/* slow / risky / Lith comparison */
.compare-wrap { margin-top: 3.5rem; }
.compare-wrap h3 { font-size: 1.4rem; margin-bottom: 1rem; }
.compare { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.compare-row { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; align-items: stretch; border-bottom: 1px solid var(--line); }
.compare-row:last-child { border-bottom: 0; }
.compare-row > div { padding: .95rem 1.25rem; font-size: .95rem; display: flex; align-items: center; justify-content: center; gap: .45rem; text-align: center; }
.compare-row > div:first-child { justify-content: flex-start; text-align: left; color: var(--ink-2); }
.compare-row.head > div { font-weight: 700; font-size: .9rem; background: var(--sand); }
.compare-row .us { background: var(--ink); color: #fff; font-weight: 600; }
.compare .yes::before, .compare .no::before { font-weight: 700; font-size: 1rem; flex: none; }
.compare .yes::before { content: "\2713"; color: var(--accent); }
.compare .us.yes::before { color: #fff; }
.compare .no { color: var(--muted); }
.compare .no::before { content: "\2715"; color: #a4561d; }
.compare .w { font-size: .85rem; }
@media (max-width: 575.98px) {
  .compare-row { grid-template-columns: 1.6fr 1fr 1fr 1fr; }
  .compare-row > div { padding: .7rem .45rem; font-size: .8rem; }
  .compare-row > div:first-child { padding-left: .8rem; }
  .compare .w { display: none; }
}

/* light image heroes (home, custom models): dark text over a soft fade on the left */
.hero-image { position: relative; padding: 7.5rem 0 6.5rem; background-position: center; background-size: cover; background-repeat: no-repeat; }
.hero-image::before { content: ""; position: absolute; inset: 0; }
.hero-image .container { position: relative; }
.hero-home { background-color: #ece6d8; background-image: url("../../images/home-hero.jpg?v=1"); }
.hero-home::before { background: linear-gradient(90deg, rgba(244,239,229,.85) 0%, rgba(244,239,229,.55) 50%, rgba(244,239,229,0) 75%); }
.hero-custom { background-color: #b9c8da; background-image: url("../../images/custom-hero.jpg?v=1"); }
.hero-custom::before { background: linear-gradient(90deg, rgba(226,233,242,.88) 0%, rgba(226,233,242,.6) 50%, rgba(226,233,242,0) 80%); }
.hero-image .btn-line { background: rgba(255,255,255,.35); }
/* host hero banner */
.hero-banner {
  position: relative; color: #fff; padding: 7rem 0 6rem;
  background: #0b1220 url("../../images/host-hero.jpg?v=5") center / cover no-repeat;
}
.hero-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,9,18,.55) 0%, rgba(5,9,18,.35) 55%, rgba(5,9,18,.25) 100%); }
.hero-banner .container { position: relative; }
.hero-banner h1 { max-width: 17ch; font-size: clamp(2.4rem, 5.5vw, 4.2rem); }
.hero-banner .lead { color: #d3dceb; max-width: 42rem; margin-top: 1.5rem; }
.hero-banner .eyebrow { color: #9fb3d1; }
.hero-banner .hero-actions { align-items: center; }
.hero-banner .sep { color: rgba(255,255,255,.35); }
.hero-banner .link-light { color: #fff; font-weight: 600; text-decoration: none; }
.hero-banner .link-light:hover { color: #c3d3ec; }

/* Phones and tablets: a tall hero would blow the 3:1 photo banners up 2-3x and look blurry,
   so swap them for a CSS grid over a gradient in each banner's colours. Sharp at any size. */
@media (max-width: 991.98px) {
  .hero-image, .hero-banner { padding: 5rem 0 4.5rem; background-size: 28px 28px, 28px 28px, 100% 100%; background-position: center top; }
  .hero-image::before, .hero-banner::before { background: none; }
  .hero-home {
    background-image:
      linear-gradient(rgba(70,58,38,.09) 1px, transparent 1px),
      linear-gradient(90deg, rgba(70,58,38,.09) 1px, transparent 1px),
      linear-gradient(115deg, #f3eee3 0%, #e9e1d1 55%, #c9c1b3 100%);
  }
  .hero-custom {
    background-image:
      linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px),
      linear-gradient(115deg, #e3eaf3 0%, #c3d1e2 55%, #9fb3cc 100%);
  }
  .hero-banner {
    background-image:
      linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px),
      linear-gradient(115deg, #05080f 0%, #142038 55%, #4b6386 100%);
  }
}

/* HostNano hero: same layout as the Host banner, warm earth tones */
.hero-banner.hero-nano { background: #2a1a0e url("../../images/hostnano-hero.jpg?v=1") center / cover no-repeat; }
.hero-nano::before { background: linear-gradient(90deg, rgba(28,16,6,.6) 0%, rgba(28,16,6,.38) 55%, rgba(28,16,6,.15) 100%); }
.hero-nano .lead { color: #eadfce; }
.hero-nano .eyebrow { color: #e0b27a; }
.hero-nano .link-light:hover { color: #f0cfa3; }
@media (max-width: 991.98px) {
  .hero-banner.hero-nano {
    background-image:
      linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px),
      linear-gradient(115deg, #1c1007 0%, #4a2d14 55%, #8a6036 100%);
    background-size: 28px 28px, 28px 28px, 100% 100%;
  }
  .hero-nano::before { background: none; }
}

/* "Host" product name highlight: brass, taken from the hero banner */
.host-name { color: #8f6f22; }
.bg-ink .host-name, .hero-banner .host-name, .cta-band .host-name, .bench-table tr.us .host-name { color: #dcc58e; }

/* interactive demo (host.html) */
.demo-widget { background: #fff; border: 1px solid var(--line); border-radius: 24px; overflow: hidden; }
.demo-tabs { display: flex; flex-wrap: wrap; gap: .5rem; padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--line); background: var(--sand); }
.demo-tab { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: .5rem 1rem; font-size: .88rem; font-weight: 600; color: var(--ink-2); cursor: pointer; }
.demo-tab:hover { border-color: var(--ink); color: var(--ink); }
.demo-tab.active { background: var(--ink); border-color: var(--ink); color: #fff; }
.demo-body { display: grid; grid-template-columns: 1.15fr 1fr; min-height: 26rem; }
.demo-thread { padding: 1.5rem; border-right: 1px solid var(--line); }
.demo-result { padding: 1.5rem; background: #0f1726; color: #fff; }
.demo-result .demo-label { color: #8fa1bd; }
.demo-result .host-name { color: #dcc58e; }
.demo-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .9rem; display: flex; justify-content: space-between; }
.msg { border: 1px solid var(--line); border-radius: 14px; padding: .8rem 1rem; margin-bottom: .7rem; background: #fff; }
.msg-meta { font-size: .75rem; color: var(--muted); margin-bottom: .3rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.msg-meta .ch { font-weight: 700; color: var(--ink-2); }
.msg-text { font-size: .9rem; line-height: 1.5; }
.out-row { display: grid; grid-template-columns: 8.5rem 1fr; gap: .75rem; align-items: center; padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.1); opacity: 0; transform: translateX(8px); transition: opacity .3s, transform .3s; }
.out-row.show { opacity: 1; transform: none; }
.out-k { font-size: .82rem; color: #8fa1bd; }
.out-v { font-weight: 600; font-size: .95rem; color: #fff; }
.out-v.urgent { color: #f2a66b; }
.out-v.ok { color: #8fd3b4; }
@media (max-width: 767.98px) {
  .demo-body { grid-template-columns: 1fr; }
  .demo-thread { border-right: 0; border-bottom: 1px solid var(--line); }
  .out-row { grid-template-columns: 7rem 1fr; }
}

/* benchmark table (host.html) */
.bench-table { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow-x: auto; }
.bench-table table { width: 100%; border-collapse: collapse; min-width: 720px; }
.bench-table th, .bench-table td { padding: 1rem 1.25rem; text-align: left; border-bottom: 1px solid var(--line); font-size: .93rem; }
.bench-table th { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); background: var(--sand); }
.bench-table tr:last-child td { border-bottom: 0; }
.bench-table tr.us td { background: var(--ink); color: #fff; font-weight: 600; }
.bench-table td.num { font-variant-numeric: tabular-nums; }
.bench-table .risk { color: #a4561d; }

/* feature section bullets (host.html) */
.feat-list { list-style: none; padding: 0; margin: 0; }
.feat-list li { padding: 1rem 0; border-top: 1px solid var(--line); }
.feat-list li:last-child { border-bottom: 1px solid var(--line); }
.feat-list strong { display: block; margin-bottom: .2rem; }
.feat-list span { color: var(--ink-2); font-size: .97rem; }
.bg-ink .feat-list li { border-color: #333; }
.bg-ink .feat-list span { color: #bdbdbd; }
.section-num { font-size: .85rem; font-weight: 700; color: var(--muted); margin-bottom: .75rem; display: block; }

/* small print under widgets */
.chart-note { font-size: .82rem; color: var(--muted); margin-top: 1.25rem; margin-bottom: 0; }

/* ---------- CTA band ---------- */
.cta-band { background: var(--ink); color: #fff; border-radius: 28px; padding: clamp(2.5rem, 6vw, 5rem); text-align: center; position: relative; overflow: hidden; }
.cta-band h2 { max-width: 20ch; margin: 0 auto 1rem; }
.cta-band p { color: #bdbdbd; max-width: 38rem; margin: 0 auto 2rem; }

/* ---------- forms ---------- */
.form-lith .form-label { font-weight: 600; font-size: .88rem; margin-bottom: .35rem; }
.form-lith .form-control, .form-lith .form-select {
  border-radius: 12px; border: 1px solid var(--line); padding: .75rem 1rem; font-size: .98rem; background: #fff;
}
.form-lith .form-control:focus, .form-lith .form-select:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(0,0,0,.06); }
.hp-field { position: absolute; left: -9999px; }

/* ---------- legal pages ---------- */
.legal { max-width: 760px; }
.legal h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); margin-bottom: .5rem; }
.legal h2 { font-size: 1.5rem; margin: 2.75rem 0 1rem; }
.legal h3 { font-size: 1.1rem; margin: 1.75rem 0 .6rem; }
.legal p, .legal li { color: var(--ink-2); font-size: 1rem; }
.legal ul { padding-left: 1.25rem; }
.legal li { margin-bottom: .5rem; }
.legal .updated { color: var(--muted); font-size: .92rem; margin-bottom: 2.5rem; }

/* ---------- footer ---------- */
.site-footer { background: var(--ink); color: #a3a3a3; padding: 4.5rem 0 2.5rem; font-size: .93rem; }
.site-footer .brand { color: #fff; font-weight: 800; font-size: 1.5rem; letter-spacing: -0.03em; text-decoration: none; }
.site-footer h4 { color: #fff; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 1.1rem; }
.site-footer .footer-address { font-size: .85rem; line-height: 1.55; color: #7d7d7d; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: .6rem; }
.site-footer a { color: #a3a3a3; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer .footer-bottom { border-top: 1px solid #2a2a2a; margin-top: 3.5rem; padding-top: 1.75rem; display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; }
.site-footer .footer-bottom nav { display: flex; gap: 1.5rem; flex-wrap: wrap; }

/* reveal on scroll */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}
