


.site-header {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:500;
  transition:background-color var(--duration-norm) var(--ease-standard),
              border-color var(--duration-norm) var(--ease-standard),
              padding var(--duration-norm) var(--ease-standard),
              box-shadow var(--duration-norm) var(--ease-standard);
  background-color:transparent;
  border-bottom:1px solid transparent;
  padding:1.25rem 0;
}


.site-header.is-condensed,
.site-header.is-solid {
  background-color:rgba(232, 223, 208, 0.96);
  border-bottom:1px solid var(--border);
  padding:0.65rem 0;
  box-shadow:0 4px 20px rgba(33, 28, 24, 0.08);
}


@supports (backdrop-filter: blur(10px)) {
  .site-header.is-condensed,
  .site-header.is-solid {
    background-color:rgba(232, 223, 208, 0.88);
    backdrop-filter:blur(12px);
  }
}


.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-md);
  width:100%;
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 clamp(1rem, 0.6rem + 1.8vw, 2.5rem);
}


.brand {
  display:inline-flex;
  align-items:center;
  text-decoration:none;

  flex-shrink:0;
}


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


.brand-logo {
  height:2.1rem;
  width:auto;
  display:block;
  transition:transform var(--duration-fast) var(--ease-standard);
}


.site-header.is-condensed .brand-logo { height:1.85rem; }


.brand:hover .brand-logo { transform:translateY(-1px); }


.site-nav {
  display:flex;
  align-items:center;
  gap:clamp(1rem, 0.8rem + 1vw, 2rem);
}


.nav-list {
  display:flex;
  align-items:center;
  list-style:none;
  margin:0;
  padding:0;
  gap:clamp(0.75rem, 0.5rem + 1vw, 1.75rem);

}


.nav-link {
  font-family:var(--rici-220);
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--ink);
  text-decoration:none;
  padding:0.5rem 0.25rem;
  position:relative;
  transition:color var(--duration-fast) var(--ease-standard);
  min-height:44px;
  display:inline-flex;
  align-items:center;
}


.nav-link::after {
  content:"";
  position:absolute;
  bottom:6px;
  left:0;
  width:0%;
  height:2px;
  background-color:var(--accent);
  transition:width var(--duration-fast) var(--ease-standard);
}


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


.nav-link:hover::after,
.nav-link.is-active::after { width:100%; }


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


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


.nav-link.is-active { color:var(--ink); }


/* Fit tool output summary styling to prevent overlap */
.fit-summary-lockup {
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  width:100%;
}


.fit-total-headline {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:0.5rem 0.75rem;
}


.fit-range-prefix {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  color:var(--ink-muted-on-dark);
  text-transform:uppercase;
  width:100%;
  display:block;
}


.fit-range-figure {
  font-family:var(--rici-220);
  font-size:clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
  font-weight:700;
  color:#ffffff;
  line-height:1.1;
  display:inline-block;
}


.fit-currency-code {
  color:var(--accent-ochre);
  font-size:var(--text-xs);
}


.fit-meta-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  flex-wrap:wrap;
  border-top:1px solid var(--border-on-dark);
  padding-top:0.75rem;
  margin-top:0.25rem;
}


.fit-method-badge {
  color:var(--ink-on-dark);
  background-color:rgba(237, 228, 216, 0.12);
  padding:0.25rem 0.5rem;
  font-size:var(--text-xs);
  white-space:nowrap;
}


.fit-rate-metric,
.fit-shift-metric {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  color:var(--ink-muted-on-dark);
}


/* Header Direct Dispatch Phone Target */
.header-phone {
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);

  font-weight:500;
  color:var(--ink);
  text-decoration:none;
  padding:0.5rem 0.85rem;
  background-color:var(--bg-card);
  border:1px solid var(--border);
  min-height:44px;
  transition:background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard);
}


.header-phone:hover {
  background-color:var(--ink);
  color:var(--ink-on-dark);
  border-color:var(--ink);
  transform:translateY(-1px);
}


.header-phone:active {
  background-color:var(--accent-active);
  border-color:var(--accent-active);
  transform:translateY(0);
}


.header-phone:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


/* Navigation Toggle (Mobile) */
.nav-toggle {
  display:none;
  background:var(--bg-card);
  border:1px solid var(--border);
  color:var(--ink);
  padding:0.5rem 0.75rem;
  cursor:pointer;
  min-height:44px;
  min-width:44px;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  text-transform:uppercase;
  letter-spacing:0.05em;
  transition:background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard);
}


.nav-toggle:hover {
  background-color:var(--ink);
  color:var(--ink-on-dark);
  border-color:var(--ink);
}


.nav-toggle:active {
  background-color:var(--accent-active);
  border-color:var(--accent-active);
}


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


@media (max-width: 900px) {
  .nav-toggle { display:inline-flex; }


  .site-nav {
    position:fixed;
    top:var(--header-height);
    left:0;
    width:100%;
    background-color:var(--bg-ground);
    border-bottom:2px solid var(--border-strong);
    padding:var(--space-lg) clamp(1rem, 0.6rem + 1.8vw, 2.5rem);
    flex-direction:column;
    align-items:flex-start;
    box-shadow:var(--shadow-overlay);
    display:none;
    max-height:calc(100vh - var(--header-height));
    overflow-y:auto;
  }


  .site-nav.is-open { display:flex; }


  .nav-list {
    flex-direction:column;
    align-items:flex-start;
    width:100%;
    gap:var(--space-xs);
  }


  .nav-link {
    width:100%;
    padding:0.75rem 0;
    font-size:var(--text-lg);
    border-bottom:1px solid var(--border-subtle);
  }


  .header-phone {
    width:100%;
    justify-content:center;
    margin-top:var(--space-sm);
  }
}



.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.75rem 1.4rem;
  min-height:44px;
  font-family:var(--rici-220);
  font-size:var(--text-sm);
  font-weight:600;
  letter-spacing:-0.01em;
  text-decoration:none;
  cursor:pointer;
  border:1px solid transparent;
  border-radius:0;
  transition:background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard);
  white-space:normal;
  text-align:center;
  line-height:1.25;
}


/* Primary Button (Terracotta / Rust) */
.btn-primary {
  background-color:var(--accent);
  color:#ffffff;
  border-color:var(--accent);
}


.btn-primary:hover {
  background-color:var(--accent-hover);
  border-color:var(--accent-hover);
  color:#ffffff;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(196, 85, 34, 0.28);
}


.btn-primary:active {
  background-color:var(--accent-active);
  border-color:var(--accent-active);
  color:#ffffff;
  transform:translateY(0);
  box-shadow:none;
}


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


.btn-secondary {
  background-color:var(--ink);
  color:var(--ink-on-dark);
  border-color:var(--ink);
}


.btn-secondary:hover {
  background-color:#38312b;
  border-color:#38312b;
  color:#ffffff;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(33, 28, 24, 0.2);
}


.btn-secondary:active {
  background-color:#171310;
  border-color:#171310;
  transform:translateY(0);
}


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


.btn-outline {
  background-color:transparent;
  color:var(--ink);
  border-color:var(--ink);
}


.btn-outline:hover {
  background-color:var(--ink);
  color:var(--ink-on-dark);
  transform:translateY(-1px);
}


.btn-outline:active {
  background-color:#171310;
  border-color:#171310;
  color:#ffffff;
  transform:translateY(0);
}


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


.btn-outline-dark {
  background-color:transparent;
  color:var(--ink-on-dark);
  border-color:var(--border-on-dark);
}


.btn-outline-dark:hover {
  background-color:var(--ink-on-dark);
  color:var(--ink);
  border-color:var(--ink-on-dark);
  transform:translateY(-1px);
}


.btn-outline-dark:active {
  background-color:#d6cab8;
  color:var(--ink);
  transform:translateY(0);
}


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



.telemetry-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:1px;
  background-color:var(--border);
  border:1px solid var(--border);
}


@media (min-width: 900px) and (max-width: 1200px) {
  .telemetry-grid.telemetry-grid-4cols { grid-template-columns:repeat(2, 1fr); }
}


.telemetry-cell {
  background-color:var(--bg-card);
  padding:clamp(1.25rem, 1rem + 1vw, 2rem);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}


.telemetry-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:var(--space-md);
}


.telemetry-label {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink-muted);
}


.telemetry-indicator {
  width:8px;
  height:8px;
  background-color:var(--accent-ochre);
  display:inline-block;
}


.telemetry-value-lg {
  font-family:var(--rici-220);
  font-size:clamp(1.35rem, 1.1rem + 0.8vw, 2.25rem);
  font-weight:700;
  line-height:1.15;
  color:var(--ink);
  margin-bottom:var(--space-xs);
  word-break:normal;
  overflow-wrap:break-word;
}


.telemetry-desc {
  font-size:var(--text-sm);
  color:var(--ink-muted);
  line-height:1.5;
  margin:0;
}



.process-strip {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:1px;
  background-color:var(--border);
  border:1px solid var(--border);
  margin-top:var(--space-xl);
}


.process-module {
  background-color:var(--bg-card);
  padding:clamp(1.25rem, 1rem + 1.2vw, 2.25rem);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  position:relative;
}


.process-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--border-subtle);
  padding-bottom:var(--space-xs);
  margin-bottom:var(--space-md);
}


.process-tag {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  color:var(--accent);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
}


.process-title {
  font-family:var(--rici-220);
  font-size:var(--text-lg);
  font-weight:600;
  line-height:1.25;
  margin-bottom:var(--space-sm);
}


.process-body {
  font-size:var(--text-base);
  color:var(--ink-muted);
  line-height:1.6;
  margin:0;
}



.pricing-matrix {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:var(--space-lg);
  margin-top:var(--space-xl);
}


.price-card {
  background-color:var(--bg-card);
  border:1px solid var(--border);
  padding:clamp(1.5rem, 1.2rem + 1.2vw, 2.5rem);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}


.price-card.is-featured {
  border-color:var(--accent);
  background-color:#faf5ed;
}


.price-header {
  border-bottom:1px solid var(--border);
  padding-bottom:var(--space-md);
  margin-bottom:var(--space-md);
}


.price-badge {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:#7a2e0a;
  font-weight:600;
  display:block;
  margin-bottom:var(--space-2xs);
}


.price-title {
  font-family:var(--rici-220);
  font-size:var(--text-xl);
  font-weight:700;
  margin-bottom:var(--space-xs);
}


.price-rate-lockup {
  display:flex;
  align-items:baseline;
  gap:0.5rem;
  margin:var(--space-md) 0 var(--space-xs);
}


.price-rate {
  font-family:var(--rici-220);
  font-size:var(--text-3xl);
  font-weight:700;
  color:var(--ink);
  line-height:1;
}


.price-unit {
  font-family:var(--rici-ed5);
  font-size:var(--text-sm);
  color:var(--ink-muted);
}


.price-specs {
  list-style:none;
  padding:0;
  margin:var(--space-md) 0 var(--space-lg);
}


.price-spec-item {
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  font-size:var(--text-sm);
  line-height:1.5;
  padding:0.4rem 0;
  border-bottom:1px solid var(--border-subtle);
  color:var(--ink);
}


.price-spec-item .icon {
  color:var(--accent);
  margin-top:0.15rem;
}



.form-group {
  margin-bottom:var(--space-md);
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}


.form-label {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:600;
  display:flex;
  justify-content:space-between;
}


.form-label .optional {
  font-weight:400;
  color:var(--ink-muted);
  text-transform:none;
  letter-spacing:normal;
}


.form-input,
.form-select,
.form-textarea {
  width:100%;
  background-color:#ffffff;
  border:1px solid var(--border);
  border-radius:0;
  padding:0.75rem 0.9rem;
  font-family:var(--rici-06e);
  font-size:var(--text-base);
  color:var(--ink);
  min-height:44px;
  line-height:1.4;
  transition:border-color var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard);
}


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


.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-tint);
}


.form-input:disabled,
.form-select:disabled,
.form-textarea:disabled {
  background-color:var(--bg-surface);
  color:var(--ink-muted);
  cursor:not-allowed;
}


.form-input.has-error,
.form-select.has-error,
.form-textarea.has-error {
  border-color:var(--status-alert);
  background-color:rgba(184, 58, 46, 0.03);
}


.form-error-msg {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  color:var(--status-alert);
  min-height:1.2em;
  margin-top:0.2rem;
}


.form-checkbox-label {
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  font-size:var(--text-sm);
  color:var(--ink);
  line-height:1.45;
  cursor:pointer;
  user-select:none;
}


.form-checkbox {
  appearance:none;
  -webkit-appearance:none;
  width:20px;
  height:20px;
  border:1px solid var(--border-strong);
  background-color:#ffffff;
  border-radius:0;
  cursor:pointer;
  flex-shrink:0;
  margin-top:0.15rem;
  position:relative;
  transition:background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard);
}


.form-checkbox:hover { border-color:var(--ink); }


.form-checkbox:checked {
  background-color:var(--accent);
  border-color:var(--accent);
}


.form-checkbox:checked::after {
  content:"";
  position:absolute;
  top:2px;
  left:6px;
  width:5px;
  height:10px;
  border:solid #ffffff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}


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



.table-wrapper {
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--border);
  background-color:var(--bg-card);
  margin-top:var(--space-md);
  margin-bottom:var(--space-lg);
}


.spec-table {
  width:100%;
  border-collapse:collapse;
  font-size:var(--text-sm);
  text-align:left;
}


.spec-table th,
.spec-table td {
  padding:0.85rem 1.15rem;
  border-bottom:1px solid var(--border-subtle);
  line-height:1.5;
}


.spec-table th {
  background-color:var(--bg-surface);
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:600;
  border-bottom:1px solid var(--border);
}


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


.spec-table tr:hover td { background-color:rgba(196, 85, 34, 0.03); }



.faq-list {
  display:flex;
  flex-direction:column;
  gap:1px;
  background-color:var(--border);
  border:1px solid var(--border);
  margin-top:var(--space-lg);
}


.faq-item { background-color:var(--bg-card); }


.faq-trigger {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.25rem 1.5rem;
  text-align:left;
  font-family:var(--rici-220);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--ink);
  background:transparent;
  border:none;
  cursor:pointer;
  min-height:48px;
  gap:var(--space-md);
  transition:background-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard);
}


.faq-trigger:hover {
  background-color:var(--bg-surface);
  color:var(--accent);
}


.faq-trigger:active { background-color:var(--bg-ground); }


.faq-trigger:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;
}


.faq-icon {
  transition:transform var(--duration-norm) var(--ease-standard);
  flex-shrink:0;
  color:var(--ink-muted);
}


.faq-item.is-expanded .faq-icon {
  transform:rotate(180deg);
  color:var(--accent);
}


.faq-panel {
  padding:0 1.5rem 1.25rem;
  color:var(--ink-muted);
  font-size:var(--text-base);
  line-height:1.65;
  display:none;
}


.faq-item.is-expanded .faq-panel { display:block; }



.site-footer {
  background-color:var(--bg-dark);
  color:var(--ink-on-dark);
  border-top:2px solid var(--ink);
  padding-top:clamp(3.5rem, 2.5rem + 3.5vw, 6rem);
  padding-bottom:clamp(2rem, 1.5rem + 2vw, 3.5rem);
  position:relative;
  width:100%;
}


.footer-top-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:clamp(2rem, 1.5rem + 2.5vw, 4.5rem);
  padding-bottom:clamp(2.5rem, 2rem + 2vw, 4rem);
  border-bottom:1px solid var(--border-on-dark);
}


@media (max-width: 900px) {
  .footer-top-grid {
    grid-template-columns:1fr;
    gap:var(--space-xl);
  }
}


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


.footer-brand-logo {
  height:2.35rem;
  width:auto;
  display:block;
}


.footer-mission {
  font-size:var(--text-base);
  color:var(--ink-muted-on-dark);
  line-height:1.6;
  max-width:44ch;
  margin:0;
}


.footer-col-title {
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#e5a044;
  margin-bottom:var(--space-md);
  font-weight:600;
}


.footer-nav-list {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:0.65rem;
}


.footer-nav-link {
  color:var(--ink-on-dark);
  text-decoration:none;
  font-size:var(--text-sm);
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  min-height:32px;
  transition:color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard);
}


.footer-nav-link:hover {
  color:var(--accent);
  transform:translateX(2px);
}


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


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


.footer-contact-block {
  display:flex;
  flex-direction:column;
  gap:0.6rem;
  font-family:var(--rici-06e);
  font-size:var(--text-base);
  color:var(--ink-muted-on-dark);
}


.footer-contact-item {
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
}


.footer-contact-item .icon {
  color:var(--accent);
  margin-top:0.25rem;
  flex-shrink:0;
}


.footer-contact-item a {
  color:var(--ink-on-dark);
  text-decoration:none;
  transition:color var(--duration-fast) var(--ease-standard);
}


.footer-contact-item a:hover { color:var(--accent); }


.footer-contact-item a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


/* Mandatory Footer Legal Row */
.footer-legal-row {
  margin-top:var(--space-xl);
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--space-md);
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  color:var(--ink-muted-on-dark);
}


.footer-legal-links {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1.25rem;
  list-style:none;
  padding:0;
  margin:0;
}


.footer-legal-link {
  color:var(--ink-muted-on-dark);
  text-decoration:underline;
  text-underline-offset:0.2em;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  transition:color var(--duration-fast) var(--ease-standard);
}


.footer-legal-link:hover { color:var(--ink-on-dark); }


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


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


.footer-consent-btn {
  background:transparent;
  border:1px solid var(--border-on-dark);
  color:var(--ink-muted-on-dark);
  padding:0.35rem 0.75rem;
  font-family:var(--rici-ed5);
  font-size:var(--text-xs);
  letter-spacing:0.04em;
  cursor:pointer;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  transition:background-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard);
}


.footer-consent-btn:hover {
  background-color:var(--ink-on-dark);
  color:var(--ink);
  border-color:var(--ink-on-dark);
}


.footer-consent-btn:active { background-color:#d6cab8; }


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



.consent-banner {
  position:fixed;
  bottom:0;
  left:0;
  width:100%;
  z-index:900;
  background-color:var(--bg-card);
  border-top:2px solid var(--ink);
  box-shadow:0 -4px 24px rgba(33, 28, 24, 0.15);
  padding:0.5rem 0;
  display:block;
  max-height:25vh;
}


.consent-banner[hidden] { display:none !important; }


.consent-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-md);
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 clamp(1rem, 0.6rem + 1.8vw, 2.5rem);
}


.consent-text {
  font-size:var(--text-xs);
  color:var(--ink);
  margin:0;
  line-height:1.45;
  max-width:65ch;
  font-family:var(--rici-ed5);
}


.consent-actions {
  display:flex;
  align-items:center;
  gap:0.6rem;
  flex-shrink:0;
}


.btn-consent-allow {
  background-color:var(--accent);
  color:#ffffff;
  border:1px solid var(--accent);
  padding:0.45rem 1rem;
  font-family:var(--rici-220);
  font-size:var(--text-xs);
  font-weight:600;
  min-height:44px;
  cursor:pointer;
  border-radius:0;
  transition:background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard);
}


.btn-consent-allow:hover {
  background-color:var(--accent-hover);
  border-color:var(--accent-hover);
  transform:translateY(-1px);
}


.btn-consent-allow:active {
  background-color:var(--accent-active);
  transform:translateY(0);
}


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


.btn-consent-deny {
  background-color:transparent;
  color:var(--ink);
  border:1px solid var(--border-strong);
  padding:0.45rem 0.85rem;
  font-family:var(--rici-220);
  font-size:var(--text-xs);
  font-weight:600;
  min-height:44px;
  cursor:pointer;
  border-radius:0;
  transition:background-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard);
}


.btn-consent-deny:hover {
  background-color:var(--bg-surface);
  color:var(--ink);
  transform:translateY(-1px);
}


.btn-consent-deny:active {
  background-color:var(--border);
  transform:translateY(0);
}


.btn-consent-deny:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


@media (max-width: 768px) {
  .consent-banner {
    padding:0.35rem 0 !important;
    max-height:18vh !important;
  }


  .consent-inner {
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:0.5rem;
  }


  .consent-text {
    font-size:0.6875rem;
    line-height:1.25;
    max-width:60ch;
  }


  .consent-actions {
    justify-content:flex-end;
    gap:0.4rem;
  }


  .btn-consent-allow,
  .btn-consent-deny {
    padding:0.35rem 0.6rem;
    min-height:36px;
    font-size:0.75rem;
  }
}



.chat-launcher {
  position:fixed;
  bottom:1.5rem;
  right:1.5rem;
  z-index:850;
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  background-color:var(--ink);
  color:var(--ink-on-dark);
  border:1px solid var(--border-on-dark);
  padding:0.65rem 1.15rem;
  border-radius:0;
  cursor:pointer;
  font-family:var(--rici-220);
  font-size:var(--text-sm);
  font-weight:600;
  min-height:48px;
  box-shadow:var(--shadow-hud);
  transition:background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard),
              transform var(--duration-fast) var(--ease-standard),
              bottom var(--duration-norm) var(--ease-standard);
}


/* When cookie banner is visible, lift launcher above it */
body.has-banner-active .chat-launcher { bottom:5rem; }


@media (max-width: 768px) {
  body.has-banner-active .chat-launcher { bottom:7.5rem; }
}


.chat-launcher:hover {
  background-color:var(--accent);
  border-color:var(--accent);
  color:#ffffff;
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(196, 85, 34, 0.35);
}


.chat-launcher:active {
  background-color:var(--accent-active);
  border-color:var(--accent-active);
  transform:translateY(0);
}


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


.chat-badge {
  background-color:var(--accent-ochre);
  color:var(--ink);
  font-family:var(--rici-ed5);
  font-size:0.75rem;
  font-weight:700;
  padding:0.15rem 0.45rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  line-height:1;
}


/* Chat Dialog Window */
.chat-window {
  position:fixed;
  bottom:5.5rem;
  right:1.5rem;
  width:min(380px, calc(100vw - 3rem));
  height:480px;
  max-height:calc(100vh - 7rem);
  background-color:var(--bg-card);
  border:2px solid var(--ink);
  box-shadow:var(--shadow-overlay);
  z-index:860;
  display:none;
  flex-direction:column;
}


.chat-window.is-open { display:flex; }


.chat-window-header {
  background-color:var(--ink);
  color:var(--ink-on-dark);
  padding:0.75rem 1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
}


.chat-window-title {
  font-family:var(--rici-220);
  font-size:var(--text-sm);
  font-weight:600;
  margin:0;
  display:flex;
  align-items:center;
  gap:0.45rem;
}


.chat-close-btn {
  background:transparent;
  border:none;
  color:var(--ink-on-dark);
  cursor:pointer;
  padding:0.35rem;
  min-height:44px;
  min-width:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:color var(--duration-fast) var(--ease-standard);
}


.chat-close-btn:hover { color:var(--accent); }


.chat-close-btn:active { color:var(--accent-active); }


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


.chat-messages {
  flex:1 1 auto;
  overflow-y:auto;
  padding:1rem;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  background-color:var(--bg-card);
}


.chat-msg {
  max-width:82%;
  padding:0.65rem 0.85rem;
  font-size:var(--text-sm);
  line-height:1.45;
}


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


.chat-msg-client {
  align-self:flex-end;
  background-color:var(--ink);
  color:var(--ink-on-dark);
}


.chat-form {
  padding:0.75rem;
  background-color:var(--bg-surface);
  border-top:1px solid var(--border);
  display:flex;
  gap:0.5rem;
}


.chat-input {
  flex:1 1 auto;
  background-color:#ffffff;
  border:1px solid var(--border);
  padding:0.5rem 0.75rem;
  font-size:var(--text-sm);
  border-radius:0;
}


.chat-input:focus {
  outline:none;
  border-color:var(--accent);
}


.chat-send-btn {
  background-color:var(--accent);
  color:#ffffff;
  border:none;
  padding:0.5rem 0.85rem;
  font-family:var(--rici-220);
  font-size:var(--text-xs);
  font-weight:600;
  cursor:pointer;
  border-radius:0;
  min-height:44px;
  transition:background-color var(--duration-fast) var(--ease-standard);
}


.chat-send-btn:hover { background-color:var(--accent-hover); }


.chat-send-btn:active { background-color:var(--accent-active); }


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