


.site-header {
  position:relative;
  background-color:var(--ground);
  border-bottom:1px solid var(--line);
  z-index:100;
  width:100%;
}


.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:var(--header-height);
  gap:var(--space-s);
}


.brand {
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  flex-shrink:0;
  max-width:40vw;
  padding:4px 0;
}


.brand:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:4px;
}


.brand-logo {
  height:2.1rem;
  width:auto;
  max-width:100%;
  display:block;
}


/* Header Navigation Row (Desktop) */
.header-nav { display:none; }


@media (min-width: 821px) {
  .header-nav {
    display:flex;
    align-items:center;
    gap:var(--space-xs);
  }
}


.nav-link {
  display:inline-flex;
  align-items:center;
  padding:0.5rem 0.75rem;
  min-height:44px;
  font-family:var(--buna-249);
  font-size:var(--step--1);
  color:var(--ink);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:0.05em;
  background-color:transparent;
  border:1px solid transparent;
  transition:background-color var(--duration-fast) ease,
              border-color var(--duration-fast) ease,
              color var(--duration-fast) ease,
              transform var(--duration-instant) ease;
}


.nav-link:hover {
  background-color:var(--surface);
  border-color:var(--line);
  color:var(--ink);
}


.nav-link:active {
  background-color:var(--surface-2);
  transform:translateY(1px);
}


.nav-link:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


.nav-link[aria-current='page'] {
  background-color:var(--surface);
  border-color:var(--ink);
  color:var(--ink);
  font-weight:var(--font-weight-medium);
}


.header-action { display:none; }


@media (min-width: 821px) {
  .header-action { display:inline-flex; }
}



.section-strip { display:none; }


@media (min-width: 821px) {
  .section-strip {
    display:block;
    position:sticky;
    top:0;
    z-index:90;
    background-color:var(--ground);
    border-bottom:1px solid var(--line);
    transition:background-color var(--duration-fast) ease;
  }


  .strip-inner {
    display:flex;
    align-items:center;
    height:var(--section-strip-height);
    gap:var(--space-xs);
    overflow-x:auto;

    scrollbar-width:none;
  }


  .strip-inner::-webkit-scrollbar { display:none; }


  .strip-link {
    display:inline-flex;
    align-items:center;
    padding:0.25rem 0.65rem;
    min-height:32px;
    font-family:var(--buna-249);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink-soft);
    text-decoration:none;
    border-bottom:2px solid transparent;
    white-space:nowrap;
    transition:color var(--duration-fast) ease, border-color var(--duration-fast) ease;
  }


  .strip-link:hover {
    color:var(--ink);
    border-color:var(--line);
  }


  .strip-link:active {
    color:var(--accent);
    border-color:var(--accent);
  }


  .strip-link:focus-visible {
    outline:2px solid var(--focus-ring);
    outline-offset:2px;
  }


  .strip-link.is-active,
  .strip-link[aria-current="true"] {
    color:var(--ink);
    font-weight:var(--font-weight-medium);
    border-color:var(--accent);
  }
}



.mobile-dock {
  display:flex;
  position:fixed;
  inset:auto 0 0 0;
  height:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
  padding-bottom:env(safe-area-inset-bottom, 0px);
  background-color:var(--ground);
  border-top:1px solid var(--line);
  z-index:1000;
  width:100%;
}


@media (min-width: 821px) {
  .mobile-dock { display:none !important; }
}


.dock-item {
  flex:1 1 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-height:44px;
  padding:6px 4px;
  color:var(--ink-soft);
  text-decoration:none;
  background:none;
  border:0;
  appearance:none;
  font:inherit;
  cursor:pointer;
  transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}


.dock-item:hover {
  color:var(--ink);
  background-color:var(--surface);
}


.dock-item:active {
  color:var(--accent);
  background-color:var(--surface-2);
}


.dock-item:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:-2px;
}


.dock-item[aria-current='page'],
.dock-item.is-active {
  color:var(--accent);
  font-weight:var(--font-weight-semibold);
}


.dock-icon {
  width:22px;
  height:22px;
  display:block;
}


.dock-label {
  font-family:var(--buna-249);
  font-size:11px;
  line-height:1;
  letter-spacing:0.02em;
  text-transform:uppercase;
  white-space:nowrap;
}


/* Mobile Slide-Up Menu Panel */
.mobile-menu-drawer {
  position:fixed;
  inset:0 0 0 0;
  z-index:1100;
  background-color:rgba(39, 41, 43, 0.45);
  backdrop-filter:blur(4px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity var(--duration-medium) ease, visibility var(--duration-medium) ease;
}


.mobile-menu-drawer.is-open {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}


.drawer-surface {
  background-color:var(--ground);
  border-top:2px solid var(--ink);
  padding:var(--space-m) var(--container-pad) calc(var(--space-l) + env(safe-area-inset-bottom, 0px));
  max-height:85vh;
  overflow-y:auto;
  transform:translateY(100%);
  transition:transform var(--duration-medium) var(--ease-editorial);
}


.mobile-menu-drawer.is-open .drawer-surface { transform:translateY(0); }


.drawer-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:var(--space-s);
  border-bottom:1px solid var(--line);
  margin-bottom:var(--space-m);
}


.drawer-title {
  font-family:var(--buna-249);
  font-size:var(--step--1);
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--ink-soft);
}


.drawer-close {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  background:transparent;
  border:1px solid var(--line);
  color:var(--ink);
  cursor:pointer;

  transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease;
}


.drawer-close:hover {
  background-color:var(--surface);
  border-color:var(--ink);
}


.drawer-close:active { background-color:var(--surface-2); }


.drawer-close:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


.drawer-nav-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:1px;
  background-color:var(--line);
  border:1px solid var(--line);
}


.drawer-nav-item { background-color:var(--ground); }


.drawer-nav-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-s);
  min-height:48px;
  font-family:var(--buna-3d6);
  font-size:var(--buna-557);
  font-weight:var(--font-weight-semibold);

  color:var(--ink);
  text-decoration:none;
  transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;
}


.drawer-nav-link:hover {
  background-color:var(--surface);
  color:var(--accent);
}


.drawer-nav-link:active { background-color:var(--surface-2); }


.drawer-nav-link:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:-2px;
}


.drawer-nav-link[aria-current='page'] {
  background-color:var(--surface);
  color:var(--accent);
}


.drawer-meta-section {
  margin-top:var(--space-m);
  padding-top:var(--space-s);
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:var(--space-2xs);
}



.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.75rem 1.40rem;
  min-height:44px;
  font-family:var(--buna-249);
  font-size:var(--step--1);
  font-weight:var(--font-weight-medium);
  letter-spacing:0.04em;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  border-radius:var(--radius-none);
  line-height:1.2;
  white-space:normal;
  text-align:center;
  transition:background-color var(--duration-fast) ease,
              border-color var(--duration-fast) ease,
              color var(--duration-fast) ease,
              transform var(--duration-instant) ease,
              box-shadow var(--duration-fast) ease;
}


/* Primary Button: 10% Strict Cold Accent */
.btn-primary {
  background-color:var(--accent);
  color:var(--accent-ink);
  border:1px solid var(--accent);
}


.btn-primary:hover {
  background-color:#266871;
  border-color:#266871;
  color:var(--accent-ink);
}


.btn-primary:active {
  background-color:#1F535A;
  border-color:#1F535A;
  transform:translateY(1px);
}


.btn-primary:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:3px;
}


.btn-secondary {
  background-color:var(--ground);
  color:var(--ink);
  border:1px solid var(--line);
}


.btn-secondary:hover {
  background-color:var(--surface);
  border-color:var(--ink);
  color:var(--ink);
}


.btn-secondary:active {
  background-color:var(--surface-2);
  transform:translateY(1px);
}


.btn-secondary:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


/* Subtle Outline / Ghost Action */
.btn-ghost {
  background-color:transparent;
  color:var(--ink);
  border:1px solid transparent;
}


.btn-ghost:hover {
  background-color:var(--surface);
  border-color:var(--line);
}


.btn-ghost:active {
  background-color:var(--surface-2);
  transform:translateY(1px);
}


.btn-ghost:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


.btn .icon {
  width:1.15em;
  height:1.15em;
  transition:transform var(--duration-fast) ease;
}


.btn:hover .icon-arrow-right { transform:translateX(3px); }



.table-responsive {
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-top:var(--space-m);
  margin-bottom:var(--space-m);
  border:1px solid var(--line);
  background-color:var(--ground);
}


.spec-table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:var(--step--1);
  min-width:600px;
}


.spec-table th,
.spec-table td {
  padding:var(--space-s) var(--space-m);
  border-bottom:1px solid var(--line);
  vertical-align:top;
}


.spec-table th {
  background-color:var(--surface);
  font-family:var(--buna-249);
  font-size:var(--step--2);
  font-weight:var(--font-weight-medium);
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--ink-soft);
  border-bottom:2px solid var(--line);
}


.spec-table tr:last-child td { border-bottom:none; }


.spec-table tr:hover td { background-color:rgba(218, 222, 227, 0.4); }


.table-num {
  font-family:var(--buna-249);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}



.inquiry-form {
  display:flex;
  flex-direction:column;
  gap:var(--space-m);
  width:100%;
  max-width:760px;
  background-color:var(--ground);
}


.form-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-m);
}


@media (min-width: 640px) {
  .form-grid-2 { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}


.form-group {
  display:flex;
  flex-direction:column;
  gap:var(--space-3xs);
  position:relative;
  min-width:0;
}


.form-label {
  font-family:var(--buna-249);
  font-size:var(--step--1);
  font-weight:var(--font-weight-medium);
  color:var(--ink);
  letter-spacing:0.02em;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
}


.label-hint {
  font-size:var(--step--2);
  color:var(--ink-soft);
  font-weight:var(--font-weight-regular);
}


.form-input,
.form-select,
.form-textarea {
  width:100%;
  padding:0.65rem 0.85rem;
  height:44px;
  min-height:44px;
  max-height:44px;
  box-sizing:border-box;
  background-color:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  font-family:var(--buna-7cf);
  font-size:var(--buna-d2f);
  line-height:1.5;
  border-radius:var(--radius-none);
  transition:border-color var(--duration-fast) ease,
              background-color var(--duration-fast) ease,
              box-shadow var(--duration-fast) ease;
}


.form-textarea {
  height:auto;
  min-height:140px;
  max-height:none;
}


.form-input:hover,
.form-select:hover,
.form-textarea:hover {
  border-color:var(--ink-soft);
  background-color:var(--surface-hover);
}


.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  background-color:var(--ground);
  border-color:var(--accent);
  outline:2px solid var(--focus-ring);
  outline-offset:1px;
}


.form-textarea {
  min-height:140px;
  resize:vertical;
}


/* Checkbox & Consent Toggle */
.form-checkbox-label {
  display:flex;
  align-items:flex-start;
  gap:var(--space-xs);
  cursor:pointer;
  font-size:var(--step--1);
  color:var(--ink-soft);
  line-height:1.5;
}


.form-checkbox {
  width:22px;
  height:22px;
  margin-top:2px;
  flex-shrink:0;
  accent-color:var(--accent);
  cursor:pointer;
  border:1px solid var(--line);
  border-radius:0;
}


.form-checkbox:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


/* Error & Feedback Presentation */
.form-error-feedback {
  display:none;
  font-family:var(--buna-249);
  font-size:var(--step--2);
  color:var(--error-ink);
  margin-top:4px;
}


.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
  border-color:var(--error-border);
  background-color:var(--error-bg);
}


.form-group.has-error .form-error-feedback { display:block; }


.form-alert {
  padding:var(--space-s) var(--space-m);
  border:1px solid var(--line);
  font-family:var(--buna-249);
  font-size:var(--step--1);
  line-height:1.5;
  display:none;
}


.form-alert.is-success {
  display:block;
  background-color:var(--success-bg);
  color:var(--success-ink);
  border-color:#72B18E;
}


.form-alert.is-error {
  display:block;
  background-color:var(--error-bg);
  color:var(--error-ink);
  border-color:var(--error-border);
}


.form-hp {
  position:absolute;
  left:-9999px;
  opacity:0;
  pointer-events:none;
  height:0;
  width:0;
  margin:0;
  padding:0;
  border:0;
}



.cookie-dock-banner {
  position:fixed;
  inset:auto 0 0 0;
  z-index:1200;
  background-color:#1A1C1D;
  color:#FFFFFF;
  border-top:2px solid #2F7F8A;
  box-shadow:0 -4px 16px rgba(0, 0, 0, 0.35);
  padding:var(--space-xs) var(--container-pad) calc(var(--space-xs) + env(safe-area-inset-bottom, 0px));
  transform:translateY(100%);
  opacity:0;
  pointer-events:none;
  transition:transform var(--duration-medium) var(--ease-editorial),
              opacity var(--duration-medium) ease;
}


.cookie-dock-banner.is-active {
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}


.cookie-banner-inner {
  max-width:var(--container-max);
  margin-left:auto;
  margin-right:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-s);
  flex-wrap:wrap;
}


.cookie-banner-copy {
  font-family:var(--buna-7cf);
  font-size:var(--step--1);
  color:#F0F4F8;
  line-height:1.4;
  margin:0;
  max-width:52ch;
}


.cookie-banner-copy a {
  font-family:var(--buna-249);
  font-size:var(--step--2);
  color:#5ED0DE;
  text-decoration:underline;
  text-decoration-thickness:1.5px;
}


html body .cookie-banner-inner {
  background-color:#1A1C1D !important;
  color:#FFFFFF !important;
}


html body aside.cookie-dock-banner { background-color:#1A1C1D !important; }


html body .cookie-banner-copy { color:#F0F4F8 !important; }


html body .cookie-banner-copy a { color:#5ED0DE !important; }


.cookie-banner-actions {
  display:flex;
  align-items:center;
  gap:var(--space-xs);
  flex-shrink:0;
}


.cookie-btn {
  padding:0.5rem 1.0rem;
  min-height:40px;
  font-family:var(--buna-249);
  font-size:var(--step--2);
  font-weight:var(--font-weight-medium);
  letter-spacing:0.04em;
  text-transform:uppercase;
  cursor:pointer;
  border-radius:0;
  border:1px solid #555A60;
  background-color:#2A2D30;
  color:#FFFFFF;
  transition:background-color var(--duration-fast) ease,
              border-color var(--duration-fast) ease,
              color var(--duration-fast) ease,
              transform var(--duration-instant) ease;
}


.cookie-btn:hover {
  background-color:#383C40;
  border-color:#FFFFFF;
  color:#FFFFFF;
}


.cookie-btn:active {
  background-color:#222426;
  transform:translateY(1px);
}


.cookie-btn:focus-visible {
  outline:2px solid #5ED0DE;
  outline-offset:2px;
}


.cookie-btn-accept {
  background-color:var(--accent);
  color:var(--accent-ink);
  border-color:var(--accent);
}


.cookie-btn-accept:hover {
  background-color:#3AA1AF;
  border-color:#3AA1AF;
  color:#FFFFFF;
}


.cookie-btn-accept:active {
  background-color:#266871;
  border-color:#266871;
}



.chat-widget-root {
  position:fixed;
  right:var(--container-pad);
  bottom:calc(var(--space-m) + env(safe-area-inset-bottom, 0px));
  z-index:1050;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  pointer-events:none;
}


.chat-widget-root > * { pointer-events:auto; }


@media (max-width: 820px) {
  .chat-widget-root { display:none !important; }
}


@media (min-width: 821px) and (max-width: 1439px) {
  .chat-widget-root {
    bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 20px);
    right:120px;
  }
}


.chat-launcher-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.75rem 1.15rem;
  min-height:46px;
  background-color:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  box-shadow:0 4px 12px rgba(39, 41, 43, 0.12);
  cursor:pointer;
  font-family:var(--buna-249);
  font-size:var(--step--1);
  font-weight:var(--font-weight-medium);
  letter-spacing:0.04em;
  text-transform:uppercase;
  border-radius:0;
  position:relative;
  transition:background-color var(--duration-fast) ease,
              border-color var(--duration-fast) ease,
              color var(--duration-fast) ease,
              transform var(--duration-instant) ease,
              box-shadow var(--duration-fast) ease;
}


.chat-launcher-btn:hover {
  background-color:var(--ground);
  border-color:var(--ink);
  color:var(--ink);
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(39, 41, 43, 0.18);
}


.chat-launcher-btn:active {
  background-color:var(--surface-2);
  border-color:var(--ink);
  transform:translateY(1px);
  box-shadow:0 2px 6px rgba(39, 41, 43, 0.10);
}


.chat-launcher-btn:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:3px;
}


.chat-badge {
  display:none;
  background-color:var(--accent);
  color:var(--accent-ink);
  font-family:var(--buna-249);
  font-size:11px;
  padding:2px 6px;
  font-weight:var(--font-weight-semibold);
  margin-left:4px;
}


.chat-badge.has-unread { display:inline-block; }


.chat-window {
  display:none !important;
  width:clamp(300px, 92vw, 380px);
  height:480px;
  max-height:75vh;
  background-color:var(--ground);
  border:1px solid var(--ink);
  box-shadow:0 8px 30px rgba(39, 41, 43, 0.22);
  margin-bottom:var(--space-xs);
  flex-direction:column;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity var(--duration-medium) ease,
              transform var(--duration-medium) var(--ease-editorial),
              visibility var(--duration-medium) ease;
}


.chat-window.is-open {
  display:flex !important;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}


.chat-header {
  padding:var(--space-xs) var(--space-s);
  background-color:var(--surface);
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
}


.chat-header-title {
  font-family:var(--buna-249);
  font-size:var(--step--1);
  font-weight:var(--font-weight-medium);
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--ink);
}


.chat-close-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  background:transparent;
  border:1px solid transparent;
  color:var(--ink-soft);
  cursor:pointer;
  transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}


.chat-close-btn:hover {
  color:var(--ink);
  background-color:var(--surface-2);
}


.chat-close-btn:active { transform:translateY(1px); }


.chat-close-btn:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:1px;
}


.chat-messages {
  flex:1 1 auto;
  padding:var(--space-s);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
  background-color:var(--ground);
}


.chat-msg {
  max-width:85%;
  padding:0.60rem 0.85rem;
  font-size:var(--step--1);
  line-height:1.45;
  word-break:break-word;
}


.chat-msg-studio {
  align-self:flex-start;
  background-color:var(--surface);
  border:1px solid var(--line);
  color:var(--ink);
}


.chat-msg-user {
  align-self:flex-end;
  background-color:var(--ink);
  color:var(--ground);
}


.chat-msg-time {
  display:block;
  font-family:var(--buna-249);
  font-size:10px;
  margin-top:4px;
  opacity:0.7;
}


.chat-intake {
  padding:var(--space-s);
  border-top:1px solid var(--line);
  background-color:var(--surface);
  display:flex;
  flex-direction:column;
  gap:var(--space-2xs);
}


.chat-composer {
  padding:var(--space-xs);
  border-top:1px solid var(--line);
  background-color:var(--ground);
  display:flex;
  gap:6px;
}


.chat-input {
  flex:1 1 auto;
  padding:0.5rem 0.75rem;
  min-height:40px;
  border:1px solid var(--line);
  background-color:var(--surface);
  font-size:var(--step--1);
}


.chat-send-btn {
  padding:0.5rem 0.85rem;
  min-height:40px;
  background-color:var(--accent);
  color:var(--accent-ink);
  border:1px solid var(--accent);
  font-family:var(--buna-249);
  font-size:var(--step--2);
  cursor:pointer;
  text-transform:uppercase;
}


.chat-send-btn:hover { background-color:#266871; }


.chat-send-btn:active { transform:translateY(1px); }



.site-footer {
  background-color:var(--surface);
  border-top:2px solid var(--ink);
  padding-top:clamp(2rem, 3.5vw, 3rem);
  padding-bottom:clamp(1.5rem, 2.5vw, 2.25rem);
  color:var(--ink);
  width:100%;
}


.footer-master-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-m);
  padding-bottom:var(--space-m);
  border-bottom:1px solid var(--line);
}


@media (min-width: 768px) {
  .footer-master-grid {
    grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
    gap:var(--space-l);
  }
}


.footer-brand-col {
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
}


.footer-brand-logo {
  height:2.1rem;
  width:auto;
  max-width:100%;
  display:block;
}


.footer-standfirst {
  font-size:var(--step--1);
  line-height:1.45;
  color:var(--ink-soft);
  max-width:44ch;
}


.footer-col-title {
  font-family:var(--buna-249);
  font-size:var(--step--2);
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--ink-soft);
  margin-bottom:var(--space-2xs);
}


.footer-nav-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:2px;
}


.footer-nav-link {
  font-family:var(--buna-249);
  font-size:var(--step--1);
  color:var(--ink);
  text-decoration:none;
  padding:2px 0;
  display:inline-flex;
  align-items:center;
  transition:color var(--duration-fast) ease;
}


.footer-nav-link:hover { color:var(--accent); }


.footer-nav-link:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


.footer-facts-ledger {
  margin-top:var(--space-m);
  padding-top:var(--space-s);
  padding-bottom:var(--space-s);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-s);
}


@media (min-width: 680px) {
  .footer-facts-ledger { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}


@media (min-width: 1024px) {
  .footer-facts-ledger { grid-template-columns:repeat(4, minmax(0, 1fr)); }
}


.footer-fact-item {
  display:flex;
  flex-direction:column;
  gap:2px;
}


.footer-fact-label {
  font-family:var(--buna-249);
  font-size:var(--step--2);
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--ink-soft);
}


.footer-fact-value {
  font-family:var(--buna-7cf);
  font-size:var(--step--1);
  color:var(--ink);
  line-height:1.4;
}


.footer-fact-value a {
  text-decoration-color:var(--line);
  display:inline-flex;
  align-items:center;
  min-height:36px;
}


/* Mandatory Bottom Legal Row */
.footer-legal-bar {
  margin-top:var(--space-m);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-s);
  flex-wrap:wrap;
  font-family:var(--buna-249);
  font-size:var(--step--2);
  color:var(--ink-soft);
}


.footer-legal-links {
  display:flex;
  align-items:center;
  gap:var(--space-s);
  flex-wrap:wrap;
  list-style:none;
}


.footer-legal-link {
  color:#27292B;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:4px 6px;
  transition:color var(--duration-fast) ease;
}


.footer-legal-link:hover { color:var(--accent); }


.footer-legal-link:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}


.footer-reopen-consent {
  background:none;
  border:0;
  appearance:none;
  font:inherit;
  color:#27292B;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:4px 6px;
  transition:color var(--duration-fast) ease;
}


.footer-reopen-consent:hover { color:var(--accent); }


.footer-reopen-consent:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}
