/* ============================================================
   SITE NAVIGATION — Premium Evara client website nav
   Uses theme CSS vars from ThemeProvider (--site-*)
   ============================================================ */

.site-nav--no-scroll{
  overflow:hidden!important;
}

/* --- Base Header --- */
.site-nav{
  position:sticky;
  top:0;
  left:0;
  right:0;
  z-index:100;
  background:var(--site-primary,#1a365d);
  transition:background .3s ease,box-shadow .3s ease,backdrop-filter .3s ease;
  font-family:var(--site-font-body,'Inter',system-ui,sans-serif);
}
.site-nav--transparent-to-solid{
  background:transparent;
  box-shadow:none;
  border-bottom:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.site-nav--scrolled{
  background:var(--site-nav-scrolled-bg, rgba(247,249,252,0.76));
  backdrop-filter:blur(18px) saturate(1.18);
  -webkit-backdrop-filter:blur(18px) saturate(1.18);
  box-shadow:0 1px 2px rgba(15,23,42,0.04),0 10px 28px rgba(15,23,42,0.08);
}
.site-nav--transparent-to-solid.site-nav--scrolled{
  border-bottom:none;
}

/* --- Container — 3-zone layout: logo | centered nav | CTA --- */
.site-nav__container{
  max-width:var(--site-max-width,1280px);
  margin:0 auto;
  padding:0 32px;
  height:72px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
}
.site-nav--scrolled .site-nav__container{
  height:64px;
}

/* --- Brand / Logo --- */
.site-nav__brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  flex-shrink:0;
  min-width:0;
  max-width:min(32vw, var(--site-nav-brand-max-width, 340px));
  transition:opacity .15s;
}
.site-nav__brand:hover{
  opacity:0.85;
}
.site-nav__logo{
  height:36px;
  width:auto;
  object-fit:contain;
}
/* Dual logo support: default logo visible initially, scrolled logo hidden */
.site-nav__logo--scrolled{display:none;}
.site-nav--scrolled .site-nav__logo--default{display:none;}
.site-nav--scrolled .site-nav__logo--scrolled{display:block;}
.site-nav--scrolled .site-nav__logo{
  height:32px;
}
.site-nav__site-name{
  display:block;
  font-family:var(--site-font-heading,'Inter',system-ui,sans-serif);
  font-size:18px;
  font-weight:700;
  color:var(--nav-brand-color, var(--site-primary-fg,#ffffff));
  letter-spacing:-0.02em;
  min-width:0;
  max-width:min(16vw, var(--site-nav-brand-name-max-width, 180px));
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.site-nav--scrolled .site-nav__site-name{
  color:var(--nav-brand-color, var(--site-primary,#1a365d));
}

/* --- Desktop Nav Links --- */
.site-nav__links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-width:0;
  justify-self:center;
}
.site-nav__link{
  font-size:14px;
  font-weight:600;
  line-height:1.1;
  letter-spacing:0.01em;
  color:var(--nav-link-color, var(--site-primary-fg,#ffffff));
  text-decoration:none;
  padding:9px 16px;
  border-radius:10px;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease;
  white-space:nowrap;
}
.site-nav__link:hover{
  color:var(--nav-link-hover-color, var(--site-primary-fg,#ffffff));
  background:rgba(255,255,255,0.08);
}
.site-nav__link--active{
  color:var(--nav-link-hover-color, var(--site-primary-fg,#ffffff));
  background:rgba(255,255,255,0.12);
  font-weight:600;
}
/* When scrolled, switch to theme-aware text */
.site-nav--scrolled .site-nav__link{
  color:var(--nav-link-color, var(--site-text,#1a202c));
}
.site-nav--scrolled .site-nav__link:hover{
  color:var(--nav-link-hover-color, var(--site-primary,#1a365d));
  background:rgba(15,23,42,0.05);
}
.site-nav--scrolled .site-nav__link--active{
  color:var(--nav-link-hover-color, var(--site-primary,#1a365d));
  background:rgba(15,23,42,0.06);
}

/* --- Dropdown (desktop) --- */
.site-nav__dropdown{
  position:relative;
}
.site-nav__dropdown-trigger{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:none;
  border:none;
  cursor:pointer;
  font:inherit;
  color:inherit;
}
.site-nav__dropdown-arrow{
  transition:transform .2s ease;
  opacity:0.62;
  color:currentColor;
  flex-shrink:0;
}
.site-nav__dropdown--open .site-nav__dropdown-arrow{
  transform:rotate(180deg);
}
.site-nav__dropdown-arrow path,
.site-nav__mobile-arrow path{
  stroke:currentColor;
}
.site-nav__submenu{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  min-width:220px;
  background:rgba(12,24,39,0.84);
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:0 0 var(--site-radius,8px) var(--site-radius,8px);
  box-shadow:0 8px 32px rgba(0,0,0,0.15);
  padding:0.5rem 0;
  opacity:0;
  visibility:hidden;
  transform:translateX(-50%) translateY(4px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
  z-index:200;
}
.site-nav__dropdown--open .site-nav__submenu{
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.site-nav__submenu-link{
  display:block;
  padding:0.625rem 1.25rem;
  font-size:0.875rem;
  color:rgba(255,255,255,0.85);
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s,color .15s;
}
.site-nav__submenu-link:hover{
  background:rgba(255,255,255,0.08);
  color:#ffffff;
}
/* Scrolled — dropdown gets white bg */
.site-nav--scrolled .site-nav__submenu{
  background:rgba(248,250,252,0.88);
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  border:1px solid rgba(15,23,42,0.06);
  box-shadow:0 16px 38px rgba(15,23,42,0.12);
}
.site-nav--scrolled .site-nav__submenu-link{
  color:var(--site-text-secondary,#4a5568);
}
.site-nav--scrolled .site-nav__submenu-link:hover{
  background:rgba(15,23,42,0.05);
  color:var(--site-primary,#1a365d);
}
.site-nav--scrolled .site-nav__dropdown-trigger,
.site-nav--scrolled .site-nav__dropdown-arrow{
  color:var(--nav-link-color, var(--site-text,#1a202c));
}

/* --- Mobile dropdown (accordion) --- */
.site-nav__mobile-group{
  border-bottom:1px solid var(--nav-mobile-border, rgba(0,0,0,0.08));
}
.site-nav__mobile-group-trigger{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  background:none;
  border:none;
  cursor:pointer;
  font:inherit;
  color:inherit;
  text-align:left;
}
.site-nav__mobile-arrow{
  transition:transform .2s ease;
  opacity:0.62;
  color:currentColor;
  flex-shrink:0;
}
.site-nav__mobile-arrow--open{
  transform:rotate(180deg);
}
.site-nav__mobile-submenu{
  padding:0 0 0.5rem 1rem;
}
.site-nav__mobile-submenu-link{
  display:block;
  padding:0.5rem 1rem;
  font-size:0.9375rem;
  color:var(--nav-mobile-sub-text, rgba(0,0,0,0.6));
  text-decoration:none;
  transition:color .15s;
}
.site-nav__mobile-submenu-link:hover{
  color:var(--nav-mobile-text, #000000);
}

/* --- CTA Button --- */
.site-nav__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  padding:10px 20px;
  border-radius:12px;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease;
  white-space:nowrap;
  letter-spacing:0.01em;
}
.site-nav__cta--primary{
  background:var(--site-accent,#2563eb);
  color:var(--site-accent-fg,#04111d);
  box-shadow:var(--site-shadow-sm, 0 2px 8px rgba(0,0,0,0.08));
}
.site-nav__cta--primary:hover{
  opacity:0.9;
  transform:translateY(-1px);
  box-shadow:var(--site-shadow-md, 0 4px 14px rgba(0,0,0,0.12));
}
.site-nav__cta--secondary{
  background:var(--site-surface,#f7fafc);
  color:var(--site-primary,#1a365d);
  border:1px solid var(--site-border,#e2e8f0);
}
.site-nav__cta--secondary:hover{
  background:#fff;
  border-color:var(--site-primary,#1a365d);
}
.site-nav__cta--outline{
  background:transparent;
  color:var(--site-primary,#1a365d);
  border:2px solid var(--site-primary,#1a365d);
}
.site-nav__cta--outline:hover{
  background:var(--site-primary,#1a365d);
  color:#fff;
}
.site-nav--transparent-to-solid .site-nav__container{
  will-change:background, box-shadow, backdrop-filter, transform;
}
.site-nav--transparent-to-solid .site-nav__brand{
  min-width:0;
}
.site-nav--transparent-to-solid .site-nav__brand img{
  display:block;
}
.site-nav--transparent-to-solid .site-nav__link,
.site-nav--transparent-to-solid .site-nav__dropdown-trigger{
  letter-spacing:0.045em;
}
.site-nav--transparent-to-solid .site-nav__cta--primary{
  color:var(--site-primary,#1a365d);
}
.site-nav--transparent-to-solid .site-nav__cta--primary:hover{
  color:var(--site-primary,#1a365d);
}

/* --- Actions container --- */
.site-nav__actions{
  display:flex;
  align-items:center;
  gap:16px;
  flex-shrink:0;
  justify-self:end;
}

/* --- Hamburger (mobile only) --- */
.site-nav__hamburger{
  display:none;
  width:40px;
  height:40px;
  padding:0;
  border:none;
  position:relative;
  z-index:9991;
  background:transparent;
  cursor:pointer;
  border-radius:8px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  transition:background .15s;
}
.site-nav__hamburger:hover{
  background:rgba(255,255,255,0.1);
}
.site-nav--scrolled .site-nav__hamburger:hover{
  background:rgba(0,0,0,0.04);
}
.site-nav__hamburger-line{
  display:block;
  width:20px;
  height:2px;
  background:var(--nav-burger-color, var(--site-primary-fg,#ffffff));
  border-radius:1px;
  transition:background-color .25s ease,transform .25s ease,opacity .25s ease;
}
.site-nav--scrolled .site-nav__hamburger-line{
  background:var(--nav-burger-color, var(--site-text,#1a202c));
}
/* When menu is open, lines match mobile menu theme */
.site-nav__hamburger--open .site-nav__hamburger-line{
  background:var(--nav-mobile-text, var(--site-text,#1a202c));
}
/* Hamburger X state */
.site-nav__hamburger--open .site-nav__hamburger-line:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.site-nav__hamburger--open .site-nav__hamburger-line:nth-child(2){
  opacity:0;
  transform:scaleX(0);
}
.site-nav__hamburger--open .site-nav__hamburger-line:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* --- Mobile Menu --- */
.site-nav__mobile{
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  width:100vw;
  height:100vh;
  height:100dvh;
  background:var(--nav-mobile-bg, rgba(255,255,255,0.97));
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  z-index:9990;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
  overflow-y:auto;
}
.site-nav__mobile--open{
  opacity:1;
  visibility:visible;
}
/* When mobile menu is open, nav bg matches mobile menu */
.site-nav:has(.site-nav__mobile--open) {
  background: var(--nav-mobile-header-bg, #ffffff);
}
.site-nav:has(.site-nav__mobile--open) .site-nav__site-name {
  color: var(--nav-mobile-text, var(--site-text, #1a202c));
}
.site-nav:has(.site-nav__mobile--open) .site-nav__logo--default { display: none; }
.site-nav:has(.site-nav__mobile--open) .site-nav__logo--scrolled { display: block; }
/* Dark mobile variants: keep default logo, hide scrolled */
.site-nav--transparent:has(.site-nav__mobile--open) .site-nav__logo--default,
.site-nav--dark:has(.site-nav__mobile--open) .site-nav__logo--default,
.site-nav--glass:has(.site-nav__mobile--open) .site-nav__logo--default,
.site-nav--bold:has(.site-nav__mobile--open) .site-nav__logo--default { display: block; }
.site-nav--transparent:has(.site-nav__mobile--open) .site-nav__logo--scrolled,
.site-nav--dark:has(.site-nav__mobile--open) .site-nav__logo--scrolled,
.site-nav--glass:has(.site-nav__mobile--open) .site-nav__logo--scrolled,
.site-nav--bold:has(.site-nav__mobile--open) .site-nav__logo--scrolled { display: none; }

.site-nav__mobile-links{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  padding:24px;
  width:min(100%, 420px);
}
.site-nav__mobile-link{
  font-size:20px;
  font-weight:600;
  color:var(--nav-mobile-text, var(--site-text,#1a202c));
  text-decoration:none;
  padding:12px 24px;
  border-radius:12px;
  transition:background-color .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;
  text-align:left;
  letter-spacing:-0.02em;
  font-family:var(--site-font-heading,'Inter',system-ui,sans-serif);
}
.site-nav__mobile-link:hover{
  color:var(--nav-mobile-text-hover, var(--site-primary,#1a365d));
  background:var(--nav-mobile-hover-bg, rgba(0,0,0,0.04));
}

.site-nav__mobile-cta{
  margin-top:16px;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
  padding:14px 36px;
  border-radius:var(--site-radius,8px);
  background:var(--nav-mobile-cta-bg, var(--site-primary,#1a365d));
  color:var(--nav-mobile-cta-text, var(--site-accent-fg, var(--site-text-on-accent,#04111d)));
  box-shadow:0 4px 14px rgba(0,0,0,0.12);
  transition:background-color .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s,opacity .18s;
  text-align:center;
}
.site-nav__mobile-cta:hover{
  background:var(--nav-mobile-cta-hover, var(--site-accent,#3182ce));
  transform:translateY(-1px);
}

/* --- Responsive --- */

/*
 * Hamburger visibility gate — collapses the desktop nav to the hamburger
 * on:
 *   1. ≤ 768px viewports (the standard phone portrait rule), OR
 *   2. Any touch-primary device (`hover: none` + `pointer: coarse`)
 *      regardless of viewport width.
 *
 * Why the second branch exists: Android phones in landscape, Galaxy
 * Fold-class foldables (884px CSS px unfolded), and Samsung S-series
 * Ultra phones in landscape (~880px) all report viewport > 768px in
 * CSS pixels. Without the touch query the hamburger stays hidden and
 * the user has no way to open the menu — the bug we're patching.
 *
 * `(hover: none) and (pointer: coarse)` is the canonical "touch-only
 * device" query and is supported in every browser shipped after 2018.
 */

/* Container-query bridge: navbar mobile collapse fires on --site-bp.
   The original @media stays below as fallback for:
   (a) browsers without @container style() (one-release safety net)
   (b) touch-only devices wider than 768px (Galaxy Fold, S-series Ultra
       in landscape) — the touch fallback is a device characteristic,
       not viewport width, so it can't be expressed as @container style().
       Those devices keep relying on the @media branch. */
@container site style(--site-bp: mobile) {
  .site-nav{
    position:sticky!important;
  }
  .site-nav__links{
    display:none !important;
  }
  .site-nav__cta{
    display:none !important;
  }
  .site-nav__hamburger{
    display:flex !important;
  }
  .site-nav__container{
    grid-template-columns:auto 1fr auto;
    gap:16px;
    padding:0 20px;
  }
  .site-nav__brand{
    max-width:min(58vw, var(--site-nav-brand-max-width, 280px));
  }
  .site-nav__site-name{
    max-width:min(38vw, var(--site-nav-brand-name-max-width, 180px));
  }
  .site-nav--scrolled .site-nav__container{
    height:56px;
  }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-width: 1024px) {
  .site-nav{
    position:sticky!important;
  }
  .site-nav__links{
    display:none !important;
  }
  .site-nav__cta{
    display:none !important;
  }
  .site-nav__hamburger{
    display:flex !important;
  }
  .site-nav__container{
    grid-template-columns:auto 1fr auto;
    gap:16px;
    padding:0 20px;
  }
  .site-nav__brand{
    max-width:min(58vw, var(--site-nav-brand-max-width, 280px));
  }
  .site-nav__site-name{
    max-width:min(38vw, var(--site-nav-brand-name-max-width, 180px));
  }
  .site-nav--scrolled .site-nav__container{
    height:56px;
  }
}
/* was @media(max-width:480px); bucketed to mobile (480 ≤ 768) */
@container site style(--site-bp: mobile){
  .site-nav__container{
    padding:0 16px;
    height:64px;
    gap:12px;
  }
  .site-nav__site-name{
    font-size:16px;
    max-width:min(42vw, var(--site-nav-brand-name-max-width, 160px));
  }
}
@media(max-width:480px){
  .site-nav__container{
    padding:0 16px;
    height:64px;
    gap:12px;
  }
  .site-nav__site-name{
    font-size:16px;
    max-width:min(42vw, var(--site-nav-brand-name-max-width, 160px));
  }
}

/* ============================================================
   SITE LAYOUT + FOOTER
   ============================================================ */
.site-layout{
  font-family:var(--site-font-body,'Inter',system-ui,sans-serif);
  color:var(--site-text,#1a202c);
  background:var(--site-bg,#f5f7fa);
  line-height:1.6;
  overflow-x:clip;
}
.site-layout__main{
  min-height:60vh;
}

/* Footer — matches header container/padding */
.site-footer{
  background:var(--site-footer-bg, var(--site-surface-alt, var(--site-surface, var(--site-bg, #0a1018))));
  color:var(--site-footer-fg, var(--site-fg, #ffffff));
  border-top:1px solid rgba(255,255,255,0.08);
  padding:3rem 32px 2rem;
}
.site-footer__grid{
  max-width:var(--site-max-width,1280px);
  margin:0 auto;
  display:grid;
  /* Min-track sized to hold the widest realistic uppercase heading
     ("MORE INTEGRATIONS") at the default 0.6875rem / 0.1em letter-spacing
     plus padding. `auto-fit` then steps 4 → 3 → 2 → 1 as width drops,
     and the explicit @media rules below clamp the intermediate transitions
     so we never get 4 cramped columns or an orphan-trailing layout. */
  grid-template-columns:repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap:2.5rem;
}
/* Subtle column dividers */
.site-footer__grid > *:not(:first-child) {
  padding-left:1.5rem;
  border-left:1px solid rgba(255,255,255,0.06);
}
/* Brand column takes more space */
.site-footer__grid > *:first-child { grid-column: span 1; min-width: 240px; }
/* Stepped collapse — between desktop (4-col auto-fit) and the 768px mobile
   single-column rule below, force 2 columns so we never see 3 awkward
   columns with one orphan. */
@container site style(--site-bp: mobile) or style(--site-bp: tablet){
  .site-footer__grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:2rem;}
  .site-footer__grid > *:nth-child(odd):not(:first-child){
    /* Drop the left-divider on the start-of-row item when wrapped so it
       doesn't bisect the row visually. */
    padding-left:0;
    border-left:none;
  }
}
@media (max-width:1024px){
  .site-footer__grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:2rem;}
  .site-footer__grid > *:nth-child(odd):not(:first-child){
    /* Drop the left-divider on the start-of-row item when wrapped so it
       doesn't bisect the row visually. */
    padding-left:0;
    border-left:none;
  }
}
@container site style(--site-bp: mobile){
  .site-footer__grid{grid-template-columns:1fr;gap:1.5rem;}
  .site-footer__grid > *:not(:first-child){
    /* On single-column, dividers become noisy — collapse to none. */
    padding-left:0;
    border-left:none;
  }
  .site-footer{padding:2.5rem 20px 1.5rem;}
}
@media (max-width:768px){
  .site-footer__grid{grid-template-columns:1fr;gap:1.5rem;}
  .site-footer__grid > *:not(:first-child){
    /* On single-column, dividers become noisy — collapse to none. */
    padding-left:0;
    border-left:none;
  }
  .site-footer{padding:2.5rem 20px 1.5rem;}
}
.site-footer__logo{
  max-height:56px;
  width:auto;
  object-fit:contain;
  margin-bottom:0.75rem;
}
@container site style(--site-bp: mobile){
  .site-footer__logo{max-height:44px;}
}
@media (max-width:768px){
  .site-footer__logo{max-height:44px;}
}
.site-footer__name{
  font-size:1.125rem;
  font-weight:700;
  font-family:var(--site-font-heading,'Inter',system-ui,sans-serif);
  color:var(--site-footer-fg, currentColor);
  margin-bottom:0.75rem;
}
.site-footer__text{
  font-size:0.8125rem;
  line-height:1.6;
  margin:0 0 0.375rem;
  opacity:0.92;
}
.site-footer__link{
  color:var(--site-footer-fg, currentColor);
  opacity:0.96;
  text-decoration:none;
  transition:opacity .15s;
}
.site-footer__link:hover{
  opacity:1;
}
.site-footer__heading{
  font-size:0.6875rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--site-footer-fg, currentColor);
  opacity:0.9;
  margin-bottom:0.75rem;
  /* AGENTS.md responsive contract: column headings must NEVER shatter
     mid-character. `keep-all` keeps whole words intact, `hyphens: auto`
     allows graceful hyphenation only at dictionary break points,
     `overflow-wrap: normal` disables last-resort character breaks. */
  word-break:keep-all;
  overflow-wrap:normal;
  hyphens:auto;
  -webkit-hyphens:auto;
}
.site-footer__nav{
  list-style:none;
  padding:0;
  margin:0;
}
.site-footer__nav li{
  margin-bottom:5px;
}
.site-footer__nav-link{
  font-size:0.8125rem;
  font-weight:500;
  color:var(--site-footer-fg, currentColor);
  opacity:0.92;
  text-decoration:none;
  transition:opacity .15s;
}
.site-footer__nav-link:hover{
  opacity:1;
}
.site-footer__social{
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
}
.site-footer__social-link{
  font-size:0.8125rem;
  color:var(--site-footer-fg, currentColor);
  opacity:0.96;
  text-decoration:none;
  padding:0.375rem 0.875rem;
  border:1px solid rgba(255,255,255,0.15);
  border-radius:var(--site-radius,8px);
  transition:background-color .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;
}
.site-footer__social-link:hover{
  opacity:1;
  border-color:rgba(255,255,255,0.35);
  background:rgba(255,255,255,0.06);
}
.site-footer__copyright{
  max-width:var(--site-max-width,1280px);
  margin:2rem auto 0;
  padding-top:1.25rem;
  text-align:center;
  font-size:0.75rem;
  opacity:0.78;
  position:relative;
}
/* Full-width divider above the copyright row. Pulls past both the content
   max-width and the footer's 32px horizontal padding so it matches the
   footer's outer edges (avoids 100vw which would overflow when a vertical
   scrollbar is present). */
.site-footer__copyright::before{
  content:'';
  position:absolute;
  top:0;
  left:calc(50% - 50vw + var(--scrollbar-w, 0px));
  width:100vw;
  height:1px;
  background:rgba(255,255,255,0.08);
  pointer-events:none;
}
@supports (width: 100dvw){
  .site-footer__copyright::before{
    left:calc(50% - 50dvw);
    width:100dvw;
  }
}
.site-footer__equal-housing{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  margin-bottom:0.75rem;
  opacity:0.8;
  font-size:0.6875rem;
  letter-spacing:0.02em;
}

@container site style(--site-bp: mobile){
  .site-footer{
    padding:var(--site-space-lg,3rem) var(--site-space-sm,1.25rem) var(--site-space-sm,1.25rem);
  }
  .site-footer__grid{
    gap:var(--site-space-md,2rem);
  }
}
@media(max-width:768px){
  .site-footer{
    padding:var(--site-space-lg,3rem) var(--site-space-sm,1.25rem) var(--site-space-sm,1.25rem);
  }
  .site-footer__grid{
    gap:var(--site-space-md,2rem);
  }
}

/* --- Footer CTA --- */
.site-footer__cta{
  max-width:var(--site-max-width,1280px);
  margin:2rem auto 0;
  text-align:center;
}
.site-footer__cta-button{
  display:inline-block;
  font-size:0.875rem;
  font-weight:600;
  text-decoration:none;
  padding:12px 32px;
  border-radius:var(--site-radius,8px);
  background:var(--site-accent,#2563eb);
  color:var(--site-accent-fg, var(--site-text-on-accent,#04111d));
  box-shadow:var(--site-shadow-sm,0 2px 8px rgba(0,0,0,0.08));
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease;
  letter-spacing:-0.01em;
  cursor:pointer;
}
.site-footer__cta-button:hover{
  opacity:0.9;
  box-shadow:var(--site-shadow-md,0 4px 14px rgba(0,0,0,0.12));
}

/* --- Footer Brand --- */
.site-footer__brand{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

/* --- Footer Grid Variants --- */
.site-footer__grid--2col{
  grid-template-columns:1.5fr 1fr;
}
.site-footer__grid--3col{
  grid-template-columns:1.5fr 1fr 1fr;
}
.site-footer__grid--4col{
  grid-template-columns:1.5fr 1fr 1fr 1fr;
}
/* Stepped collapse: 4col → 2col at tablet, all variants → 1col at phone.
   Without the intermediate step the 4-col fixed grid jumps from 4 cramped
   columns straight to 1, producing the awkward squeeze user reported. */
@container site style(--site-bp: mobile) or style(--site-bp: tablet){
  .site-footer__grid--3col,
  .site-footer__grid--4col{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media(max-width:1024px){
  .site-footer__grid--3col,
  .site-footer__grid--4col{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@container site style(--site-bp: mobile){
  .site-footer__grid--2col,
  .site-footer__grid--3col,
  .site-footer__grid--4col{
    grid-template-columns:1fr;
  }
}
@media(max-width:768px){
  .site-footer__grid--2col,
  .site-footer__grid--3col,
  .site-footer__grid--4col{
    grid-template-columns:1fr;
  }
}

/* --- Minimal Footer (single row) --- */
.site-footer__minimal{
  max-width:var(--site-max-width,1280px);
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  text-align:center;
}
.site-footer__minimal .site-footer__name{
  margin-bottom:0;
}
.site-footer__copyright-inline{
  font-size:0.75rem;
  opacity:0.35;
}

/* --- Footer Divider/Accent --- */
/* Spans the full footer width including the footer's own horizontal
   padding, so it visually matches the footer's outer border. The negative
   inline margin pulls the rule out past the 32px gutter. */
.site-footer__divider{
  width:auto;
  margin:0 -32px 2rem;
  border:none;
  border-top:1px solid rgba(255,255,255,0.1);
}
@container site style(--site-bp: mobile){
  .site-footer__divider{ margin-inline:-20px; }
}
@media(max-width:768px){
  .site-footer__divider{ margin-inline:-20px; }
}
.site-footer__divider--accent{
  border-top-color:var(--site-accent,#c9a96e);
  opacity:0.3;
}

/* --- Footer Newsletter --- */
.site-footer__newsletter{
  margin-top:1rem;
}
.site-footer__newsletter-input{
  font-size:0.8125rem;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,0.15);
  border-radius:var(--site-radius,8px);
  background:rgba(255,255,255,0.06);
  color:var(--site-primary-fg,#ffffff);
  outline:none;
  transition:border-color .15s;
  width:100%;
  max-width:240px;
}
.site-footer__newsletter-input::placeholder{
  color:rgba(255,255,255,0.35);
}
.site-footer__newsletter-input:focus{
  border-color:var(--site-accent,#2563eb);
}

/* --- Footer Emergency Banner --- */
.site-footer__emergency{
  max-width:var(--site-max-width,1280px);
  margin:1.5rem auto 0;
  padding:0.75rem 1rem;
  background:rgba(239,68,68,0.15);
  border:1px solid rgba(239,68,68,0.3);
  border-radius:var(--site-radius,8px);
  text-align:center;
  font-size:0.8125rem;
  font-weight:600;
}

/* --- Footer Compliance/Badges --- */
.site-footer__badges{
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
  align-items:center;
  margin-top:0.75rem;
  font-size:0.6875rem;
  opacity:0.5;
}

/* --- Footer Partner Logos --- */
.site-footer__partners{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  margin-top:1rem;
  opacity:0.6;
}
.site-footer__partners img{
  height:24px;
  width:auto;
  object-fit:contain;
}

/* was @media(max-width:480px); bucketed to mobile (480 ≤ 768) */
@container site style(--site-bp: mobile){
  .site-nav__container{
    padding:0 16px;
    height:56px;
  }
  .site-nav__logo{
    height:28px;
  }
  .site-nav__site-name{
    font-size:16px;
  }
  .site-nav__mobile-link{
    font-size:18px;
    padding:10px 20px;
  }
  .site-footer__minimal{
    flex-direction:column;
    gap:0.75rem;
  }
}
@media(max-width:480px){
  .site-nav__container{
    padding:0 16px;
    height:56px;
  }
  .site-nav__logo{
    height:28px;
  }
  .site-nav__site-name{
    font-size:16px;
  }
  .site-nav__mobile-link{
    font-size:18px;
    padding:10px 20px;
  }
  .site-footer__minimal{
    flex-direction:column;
    gap:0.75rem;
  }
}
