

/* --- SITE HEADER: CENTERED LOGO & SPLIT NAV --- */
.site-header {
   position: sticky;
   top: 0;
   z-index: 100;
   background-color: var(--ground);
   border-bottom: 1px solid var(--line);
   transition: background-color var(--dur-base) var(--ease-warm),
                     border-color var(--dur-base) var(--ease-warm),
                     box-shadow var(--dur-base) var(--ease-warm);
}


@supports (backdrop-filter: blur(12px)) {
   .site-header {
      background-color: rgba(16, 13, 10, 0.88);
      backdrop-filter: blur(12px);

      -webkit-backdrop-filter: blur(12px);
   }
}


.site-header.is-scrolled {
   border-bottom-color: var(--line-brass);
   box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}


.header-inner {
   display: flex;
   flex-direction: column;
   align-items: center;
   padding-block: var(--space-s) var(--space-xs);
   position: relative;
}


.brand {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   text-decoration: none;
   min-height: 44px;
   padding: var(--space-3xs) var(--space-xs);
   border-radius: var(--radius-xs);
   transition: opacity var(--dur-fast) var(--ease-warm);
}


.brand:hover { opacity: 0.92; }


.brand:active { opacity: 0.78; }


.brand:focus-visible {
   outline: var(--focus-ring);
   outline-offset: var(--focus-offset);
}


.brand-img {
   height: 2.15rem;
   width: auto;
   max-width: 100%;
   display: block;
   object-fit: contain;
}


.nav-toggle {
   display: none;
   align-items: center;
   justify-content: center;
   gap: var(--space-2xs);
   background: var(--surface);
   border: 1px solid var(--line-strong);
   color: var(--ink);
   padding: var(--space-2xs) var(--space-s);
   min-height: 44px;
   border-radius: var(--radius-xs);
   cursor: pointer;
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   letter-spacing: 0.06em;
   text-transform: uppercase;
   transition: background-color var(--dur-fast) var(--ease-warm),
                     border-color var(--dur-fast) var(--ease-warm),
                     color var(--dur-fast) var(--ease-warm);
}


.nav-toggle:hover {
   background-color: var(--surface-raised);
   border-color: var(--brass-dim);
   color: var(--brass);
}


.nav-toggle:active {

   background-color: var(--surface-hover);
   border-color: var(--brass);
}


.nav-toggle:focus-visible {
   outline: var(--focus-ring);
   outline-offset: var(--focus-offset);
}


.nav-toggle .icon-close { display: none; }


.nav-toggle[aria-expanded="true"] .icon-menu { display: none; }


.nav-toggle[aria-expanded="true"] .icon-close { display: inline-block; }


.site-nav {
   width: 100%;
   max-width: var(--measure-reading);
   margin-top: var(--space-2xs);
}


.nav-split-list {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: var(--space-m);
   list-style: none;
   padding: 0;
   margin: 0;
}


.nav-divider {
   width: 4px;
   height: 4px;
   border-radius: 50%;
   background-color: var(--brass);
   opacity: 0.6;
   flex-shrink: 0;
}


.nav-link {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: var(--space-3xs) var(--space-2xs);
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--ink-muted);
   text-decoration: none;
   position: relative;
   transition: color var(--dur-fast) var(--ease-warm);
}


.nav-link::after {
   content: '';
   position: absolute;
   bottom: 6px;
   left: 0;
   width: 100%;
   height: 1px;
   background-color: var(--brass);
   transform: scaleX(0);
   transform-origin: center;
   transition: transform var(--dur-base) var(--ease-warm);
}


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


.nav-link:hover::after { transform: scaleX(1); }


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


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


.nav-link[aria-current='page'] { color: var(--brass); }


.nav-link[aria-current='page']::after { transform: scaleX(1); }


.header-hairline {
   width: 100%;
   height: 1px;
   background: linear-gradient(90deg, transparent 0%, var(--line) 20%, var(--brass-dim) 50%, var(--line) 80%, transparent 100%);
   margin-top: var(--space-xs);
}


@media (max-width: 768px) {
   .header-inner {
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      padding-block: var(--space-xs);
   }


   .nav-toggle { display: inline-flex; }


   .site-nav {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      background: var(--surface);
      border-bottom: 1px solid var(--line-brass);
      box-shadow: 0 16px 32px rgba(0, 0, 0, 0.6);
      padding: var(--space-m) var(--space-s);
      margin-top: 0;
   }


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


   .nav-split-list {
      flex-direction: column;
      align-items: stretch;
      gap: var(--space-2xs);
   }


   .nav-divider { display: none; }


   .nav-link {
      width: 100%;
      padding: var(--space-xs) var(--space-s);
      border-radius: var(--radius-xs);
      background-color: var(--surface-raised);
      border: 1px solid var(--line);
      justify-content: flex-start;
   }


   .nav-link::after { display: none; }


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


   .header-hairline { display: none; }
}


.btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: var(--space-2xs);
   min-height: 48px;
   padding: var(--space-xs) var(--space-m);
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   letter-spacing: 0.08em;
   text-transform: uppercase;
   text-decoration: none;
   border-radius: var(--radius-xs);
   border: 1px solid transparent;
   cursor: pointer;
   white-space: normal;
   text-align: center;
   line-height: 1.25;
   transition: background-color var(--dur-fast) var(--ease-warm),
                     border-color var(--dur-fast) var(--ease-warm),
                     color var(--dur-fast) var(--ease-warm),
                     box-shadow var(--dur-fast) var(--ease-warm),
                     transform var(--dur-fast) var(--ease-warm);
}


.btn:focus-visible {
   outline: var(--focus-ring);
   outline-offset: var(--focus-offset);
}


.btn-primary {
   background-color: var(--garnet);
   border-color: var(--garnet-glow);
   color: var(--ink);
   box-shadow: 0 2px 8px rgba(140, 39, 30, 0.35);
}


.btn-primary:hover {
   background-color: var(--garnet-glow);
   border-color: var(--brass);
   color: #fff;
   box-shadow: 0 4px 14px rgba(140, 39, 30, 0.55);
}


.btn-primary:active {
   background-color: var(--garnet-deep);
   box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5);
   transform: translateY(1px);
}


/* Brass Accent Button */
.btn-brass {
   background-color: var(--brass);
   border-color: var(--brass-soft);
   color: #100d0a;
   font-weight: 600;
   box-shadow: 0 2px 8px rgba(200, 157, 92, 0.25);
}


.btn-brass:hover {
   background-color: var(--brass-soft);
   border-color: #fff;
   color: #0b0907;
   box-shadow: 0 4px 16px rgba(200, 157, 92, 0.45);
}


.btn-brass:active {
   background-color: var(--brass-dim);
   color: #fff;
   transform: translateY(1px);
}


/* Secondary / Outline Button */
.btn-secondary {
   background-color: transparent;
   border-color: var(--line-strong);

   color: var(--ink);
}


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


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


/* Small Button Variant */
.btn-sm {
   min-height: 40px;
   padding: var(--space-2xs) var(--space-s);
   font-size: var(--step--2);
}


/* Block Button Variant */
.btn-block { width: 100%; }


/* --- EDITORIAL INSET FACT BLOCKS --- */
.editorial-inset {
   background: var(--surface);
   border: 1px solid var(--line);
   border-left: 3px solid var(--brass);
   border-radius: var(--radius-xs);
   padding: var(--space-m);
   margin-block: var(--space-l);
}


.editorial-inset-header {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   flex-wrap: wrap;
   gap: var(--space-2xs);
   margin-bottom: var(--space-xs);
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-2xs);
}


.inset-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-299);
   color: var(--ink);
}


.inset-meta {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: var(--brass);
   letter-spacing: 0.1em;
   text-transform: uppercase;
}


.inset-body {
   font-size: var(--step--1);
   color: var(--ink-muted);
}


.inset-price-band {
   display: flex;
   align-items: baseline;
   gap: var(--space-xs);
   margin-top: var(--space-s);
   padding-top: var(--space-xs);
   border-top: 1px dashed var(--line-strong);
   flex-wrap: wrap;
}


.inset-price-value {
   font-family: var(--zepu-cf4);
   font-size: var(--zepu-343);
   font-weight: 500;
   color: var(--ink);
   white-space: nowrap;
}


.inset-price-label {
   font-size: var(--step--1);
   color: var(--ink-faint);
}


/* --- FULL-MEASURE CAPTIONED PHOTOGRAPHS --- */
.editorial-figure {
   width: 100%;
   margin-block: var(--space-xl);
}


.editorial-image-frame {
   position: relative;
   overflow: hidden;
   border-radius: var(--radius-xs);
   border: 1px solid var(--line);
   background-color: var(--surface);
}


.editorial-image-frame img {
   width: 100%;
   height: auto;
   aspect-ratio: 16 / 10;
   object-fit: cover;
   transition: transform var(--dur-slow) var(--ease-warm);
}


.editorial-caption {
   margin-top: var(--space-xs);
   display: flex;
   align-items: baseline;
   justify-content: space-between;
   gap: var(--space-s);
   flex-wrap: wrap;
   font-size: var(--step--1);
   color: var(--ink-muted);
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-2xs);
}


.caption-label {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: var(--brass);
   letter-spacing: 0.1em;
   text-transform: uppercase;
}


.caption-text {
   max-width: var(--measure-reading);
   font-style: normal;
}


.pull-quote {
   margin-block: var(--space-2xl);
   padding-block: var(--space-m);
   border-top: 1px solid var(--line-brass);
   border-bottom: 1px solid var(--line-brass);
   text-align: center;
}


.pull-quote p {
   font-family: var(--zepu-014);
   font-size: var(--zepu-67f);
   font-weight: 500;
   font-style: italic;
   line-height: 1.35;
   color: var(--ink);
   max-width: var(--measure-narrow);
   margin-inline: auto;
}


.pull-quote cite {
   margin-top: var(--space-s);
   display: block;
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   color: var(--brass);
   letter-spacing: 0.12em;
   text-transform: uppercase;
}


/* --- SPEC & FACT TABLES --- */
.spec-table-wrapper {
   width: 100%;
   overflow-x: auto;
   margin-block: var(--space-l);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   background: var(--surface);
}


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


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


.spec-table th {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--brass);
   background: var(--surface-raised);
}


.spec-table td { color: var(--ink-muted); }


.spec-table tr:hover td {
   background: var(--surface-hover);
   color: var(--ink);
}


.spec-table td.spec-num {
   font-family: var(--zepu-cf4);
   color: var(--ink);
   font-weight: 500;
   white-space: nowrap;
}


/* --- FORMS & INPUT CONTROLS --- */
.form-shell {
   background: var(--surface);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   padding: var(--space-l) var(--space-m);
   margin-block: var(--space-xl);
}


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


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


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


.form-field.full-width { grid-column: 1 / -1; }


.form-label {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--ink);
   display: flex;
   justify-content: space-between;
   align-items: baseline;
}


.label-optional {
   color: var(--ink-faint);
   font-size: var(--step--2);
   text-transform: none;
   font-family: var(--zepu-bd4);
}


.form-input,
.form-select,
.form-textarea {
   width: 100%;
   min-height: 48px;
   padding: var(--space-2xs) var(--space-xs);
   background: var(--surface-raised);
   border: 1px solid var(--line-strong);
   border-radius: var(--radius-xs);
   color: var(--ink);
   font-family: var(--zepu-bd4);
   font-size: var(--zepu-ef3);
   transition: border-color var(--dur-fast) var(--ease-warm),
                     background-color var(--dur-fast) var(--ease-warm),
                     box-shadow var(--dur-fast) var(--ease-warm);
}


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


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


.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
   border-color: var(--brass);
   background: #1e1712;
   outline: var(--focus-ring);
   outline-offset: 2px;
}


.form-input.is-invalid,
.form-select.is-invalid,
.form-textarea.is-invalid {
   border-color: var(--garnet-glow);
   background-color: rgba(140, 39, 30, 0.15);
}


.form-error {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: #e57373;
   margin-top: var(--space-3xs);
   display: none;
}


.form-field.has-error .form-error { display: block; }


.form-checkbox-row {
   display: flex;
   align-items: flex-start;
   gap: var(--space-xs);
   min-height: 44px;
   padding-block: var(--space-3xs);
   cursor: pointer;
}


.form-checkbox {
   width: 20px;
   height: 20px;
   margin-top: 3px;
   accent-color: var(--brass);
   cursor: pointer;
   flex-shrink: 0;
}


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


.form-checkbox-label {
   font-size: var(--step--1);
   color: var(--ink-muted);
   line-height: 1.45;
}


.form-status {
   padding: var(--space-s);
   border-radius: var(--radius-xs);
   margin-block: var(--space-s);
   display: none;
}


.form-status.is-success {
   display: block;
   background: rgba(46, 125, 50, 0.2);
   border: 1px solid #4caf50;
   color: #a5d6a7;
}


.form-status.is-error {
   display: block;
   background: rgba(140, 39, 30, 0.25);
   border: 1px solid var(--garnet-glow);
   color: #ef9a9a;
}


/* --- PER-UNIT PRICE ESTIMATOR TOOL --- */
.estimator-panel {
   background: var(--surface);
   border: 1px solid var(--brass-dim);
   border-radius: var(--radius-s);
   padding: var(--space-l) var(--space-m);
   margin-block: var(--space-2xl);
   box-shadow: 0 12px 36px rgba(0, 0, 0, 0.4);
}


.estimator-header {
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-s);
   margin-bottom: var(--space-m);
}


.estimator-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   color: var(--ink);
}


.estimator-subtitle {
   font-size: var(--step--1);
   color: var(--ink-muted);
   margin-top: var(--space-3xs);
}


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


@media (min-width: 680px) {
   .estimator-controls { grid-template-columns: 1fr 1fr; }
}


.estimator-slider-group {
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
}


.estimator-slider-label {
   display: flex;
   justify-content: space-between;
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   color: var(--ink);
}


.estimator-range {
   -webkit-appearance: none;
   appearance: none;
   width: 100%;
   height: 8px;
   background: var(--surface-raised);
   border-radius: var(--radius-xs);
   outline: none;
   cursor: pointer;
   border: 1px solid var(--line-strong);
}


.estimator-range::-webkit-slider-thumb {
   -webkit-appearance: none;
   appearance: none;
   width: 24px;
   height: 24px;
   border-radius: 50%;
   background: var(--brass);
   border: 2px solid var(--ground);
   cursor: pointer;
   box-shadow: 0 0 8px rgba(200, 157, 92, 0.5);
   transition: transform var(--dur-fast) var(--ease-warm), background-color var(--dur-fast) var(--ease-warm);
}


.estimator-range::-moz-range-thumb {
   width: 24px;
   height: 24px;
   border-radius: 50%;
   background: var(--brass);
   border: 2px solid var(--ground);
   cursor: pointer;
   box-shadow: 0 0 8px rgba(200, 157, 92, 0.5);
   transition: transform var(--dur-fast) var(--ease-warm), background-color var(--dur-fast) var(--ease-warm);
}


.estimator-range:hover::-webkit-slider-thumb {
   transform: scale(1.15);
   background-color: var(--brass-soft);
}


.estimator-range:focus-visible::-webkit-slider-thumb {
   outline: var(--focus-ring);
   outline-offset: 3px;
}


.estimator-output-box {
   background: var(--ground);
   border: 1px solid var(--line-brass);
   border-radius: var(--radius-xs);
   padding: var(--space-m);
   margin-top: var(--space-l);
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
   text-align: center;
}


.estimator-output-val {
   font-family: var(--zepu-cf4);
   font-size: var(--zepu-334);
   font-weight: 500;
   color: var(--brass-soft);
   letter-spacing: -0.02em;
}


.estimator-output-note {
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   color: var(--ink-muted);
}


.estimator-disclaimer {
   font-size: var(--step--2);
   color: var(--ink-faint);
   margin-top: var(--space-s);
   text-align: center;
}


.lifecycle-section {
   position: relative;
   margin-block: var(--space-3xl);
   padding-block: var(--space-xl);
}


.lifecycle-spine-wrap {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: center;
}


.lifecycle-svg-line {
   position: absolute;
   top: 0;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
   width: 4px;
   height: 100%;
   pointer-events: none;
   z-index: 1;
}


.lifecycle-path {
   stroke: var(--brass);
   stroke-width: 2.5;
   stroke-linecap: round;
   fill: none;
   stroke-dasharray: 1200;
   stroke-dashoffset: 0;
   opacity: 0.85;
}


.lifecycle-stage {
   position: relative;
   z-index: 2;
   width: 100%;
   max-width: var(--measure-reading);
   margin-block: var(--space-xl);
   background: var(--surface);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   padding: var(--space-m) var(--space-l);
   transition: border-color var(--dur-base) var(--ease-warm),
                     box-shadow var(--dur-base) var(--ease-warm);
}


.lifecycle-stage.is-active,
.lifecycle-stage:hover {
   border-color: var(--brass);
   box-shadow: 0 8px 24px rgba(200, 157, 92, 0.15);
}


.stage-marker {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 32px;
   height: 32px;
   border-radius: 50%;
   background: var(--surface-raised);
   border: 1px solid var(--brass);
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: var(--brass);
   margin-bottom: var(--space-2xs);
}


.stage-heading {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   color: var(--ink);
   margin-bottom: var(--space-3xs);
}


.stage-detail {
   font-size: var(--step--1);
   color: var(--ink-muted);
}


.site-footer {
   background-color: var(--ground);
   border-top: 1px solid var(--line);
   padding-block: var(--space-l) var(--space-m);
   margin-top: auto;
}


.footer-inner {
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   max-width: var(--measure-reading);
   margin-inline: auto;
}


.footer-brand { margin-bottom: var(--space-xs); }


.footer-brand-img {
   height: 2rem;
   width: auto;
   max-width: 100%;
   display: block;
   object-fit: contain;
}


.footer-statement {
   font-size: var(--step--1);
   color: var(--ink-muted);
   max-width: var(--measure-narrow);
   margin-bottom: var(--space-xs);
}


.footer-contact-block {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: var(--ink-muted);
   line-height: 1.5;
   margin-bottom: var(--space-xs);
   padding-block: var(--space-2xs);
   border-block: 1px solid var(--line);
   width: 100%;
}


.footer-contact-line { display: inline; }


.footer-contact-line + .footer-contact-line::before {
   content: " \2022  ";
   color: var(--brass-dim);
}


.footer-contact-link {
   color: var(--brass-soft);
   text-decoration: none;
   min-height: 36px;
   display: inline-flex;
   align-items: center;
   padding: 0 var(--space-3xs);
   transition: color var(--dur-fast) var(--ease-warm);
}


.footer-contact-link:hover {
   color: #fff;
   text-decoration: underline;
}


.footer-contact-link:active { color: var(--brass); }


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


.footer-nav {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: var(--space-3xs) var(--space-s);
   list-style: none;
   padding: 0;
   margin-bottom: var(--space-xs);
}


.footer-nav-link {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--ink-muted);
   text-decoration: none;
   min-height: 36px;
   display: inline-flex;
   align-items: center;
   padding: var(--space-3xs) var(--space-2xs);
   transition: color var(--dur-fast) var(--ease-warm);
}


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


.footer-nav-link:active { color: #fff; }


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


.footer-legal-row {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   gap: var(--space-3xs) var(--space-xs);
   padding-top: var(--space-xs);
   border-top: 1px solid var(--line);
   width: 100%;
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: var(--ink-faint);
}


.legal-btn-link {
   background: none;
   border: none;
   font-family: inherit;
   font-size: inherit;
   color: var(--ink-faint);
   cursor: pointer;
   text-decoration: underline;
   min-height: 44px;
   display: inline-flex;
   align-items: center;
   padding: var(--space-3xs) var(--space-2xs);
   transition: color var(--dur-fast) var(--ease-warm);
}


.legal-btn-link:hover { color: var(--brass); }


.legal-btn-link:active { color: #fff; }


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


/* --- COMPACT COOKIE BANNER --- */
.consent-banner {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   z-index: 900;
   background-color: #181410;
   border-top: 1px solid var(--line-brass);
   box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.6);
   padding: var(--space-xs) var(--space-s);
   display: none;
}


@supports (backdrop-filter: blur(10px)) {
   .consent-banner {
      background-color: rgba(24, 20, 16, 0.94);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
   }
}


.consent-banner.is-visible { display: block; }


.consent-inner {
   max-width: var(--measure-reading);
   margin-inline: auto;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-s);
   flex-wrap: wrap;
}


.consent-text {
   font-size: var(--step--1);
   color: var(--ink-muted);
   max-width: 48ch;
   line-height: 1.4;
}


.consent-text a {
   color: var(--ink);
   text-decoration: underline;
}


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


/* --- SUPPORT CHAT LAUNCHER & PANEL --- */
.chat-launcher {
   position: fixed;
   bottom: var(--space-s);
   right: var(--space-s);
   z-index: 850;
   display: inline-flex;
   align-items: center;
   gap: var(--space-2xs);
   min-height: 48px;
   padding: var(--space-2xs) var(--space-s);
   background-color: var(--surface-raised);
   border: 1px solid var(--line-brass);
   border-radius: 999px;
   color: var(--ink);
   cursor: pointer;
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
   transition: transform var(--dur-fast) var(--ease-warm),
                     background-color var(--dur-fast) var(--ease-warm),
                     border-color var(--dur-fast) var(--ease-warm),
                     box-shadow var(--dur-fast) var(--ease-warm),
                     bottom var(--dur-fast) var(--ease-warm);
}


.chat-launcher:hover {
   background-color: var(--surface-hover);
   border-color: var(--brass);
   color: var(--brass-soft);
   box-shadow: 0 6px 20px rgba(200, 157, 92, 0.3);
}


.chat-launcher:active {
   background-color: var(--surface);
   transform: translateY(1px);
}


.chat-launcher:focus-visible {
   outline: var(--focus-ring);
   outline-offset: var(--focus-offset);
}


.chat-launcher.stepped-up { bottom: 84px; }


.chat-launcher .badge {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   background-color: var(--garnet);
   color: #fff;
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   width: 20px;
   height: 20px;
   border-radius: 50%;
   font-weight: 500;
}


/* Chat Drawer Panel */
.chat-panel {
   position: fixed;
   bottom: var(--space-s);
   right: var(--space-s);
   z-index: 950;
   width: min(380px, calc(100vw - 2 * var(--space-s)));
   height: min(540px, calc(100vh - 4 * var(--space-s)));
   background-color: var(--surface);
   border: 1px solid var(--line-brass);
   border-radius: var(--radius-s);
   box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
   display: flex;
   flex-direction: column;
   overflow: hidden;
   opacity: 0;
   pointer-events: none;
   transform: translateY(12px) scale(0.98);
   transition: opacity var(--dur-base) var(--ease-warm),
                     transform var(--dur-base) var(--ease-warm);
}


.chat-panel.is-open {
   opacity: 1;
   pointer-events: auto;
   transform: translateY(0) scale(1);
}


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


.chat-title-group {
   display: flex;
   align-items: center;
   gap: var(--space-2xs);
}


.chat-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-ef3);
   font-weight: 600;
   color: var(--ink);
}


.chat-close-btn {
   background: transparent;
   border: none;
   color: var(--ink-muted);
   cursor: pointer;
   min-height: 44px;
   min-width: 44px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   border-radius: var(--radius-xs);
   transition: color var(--dur-fast) var(--ease-warm), background-color var(--dur-fast) var(--ease-warm);
}


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


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


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


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


.chat-bubble {
   max-width: 85%;
   padding: var(--space-2xs) var(--space-xs);
   border-radius: var(--radius-xs);
   font-size: var(--step--1);
   line-height: 1.45;
   word-break: break-word;
}


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


.chat-bubble-user {
   align-self: flex-end;
   background-color: var(--garnet-deep);
   border: 1px solid var(--garnet);
   color: var(--ink);
}


.chat-bubble-time {
   display: block;
   font-family: var(--zepu-cf4);
   font-size: 0.68rem;
   color: var(--ink-faint);
   margin-top: 2px;
   text-align: right;
}


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


.chat-input-bar {
   display: flex;
   align-items: center;
   gap: var(--space-2xs);
   padding: var(--space-xs) var(--space-s);
   background-color: var(--surface-raised);
   border-top: 1px solid var(--line);
}


.chat-input {
   flex: 1;
   min-height: 44px;
   padding: var(--space-2xs) var(--space-xs);
   background-color: var(--surface);
   border: 1px solid var(--line-strong);
   border-radius: var(--radius-xs);
   color: var(--ink);
   font-size: var(--step--1);
}


.chat-input:focus-visible {
   border-color: var(--brass);
   outline: var(--focus-ring);
   outline-offset: 2px;
}
