
.brand {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   flex-shrink:0;
   text-decoration:none;
}

.brand img {
   height:2.1rem;
   width:auto;
   max-width:38vw;
   display:block;
}

@media (min-width: 992px) {
   .brand img {
      height:2.35rem;
      max-width:none;
   }
}

.brand-footer img {
   height:2.5rem;
   width:auto;
   max-width:50vw;
}

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

.header-inner {
   display:flex;
   align-items:center;
   justify-content:center;

   min-height:var(--header-height);
   padding-block:var(--space-3);
   padding-inline:var(--container-gutter);
}

@media (max-width: 991px) {
   .header-inner {
      justify-content:space-between;
      min-height:58px;
   }
}

.header-split-layout {
   display:none;
}

@media (min-width: 992px) {
   .header-split-layout {
      display:flex;
      align-items:center;
      justify-content:center;
      width:100%;
      gap:var(--space-8);
   }
}

.header-nav-cluster {
   display:flex;
   align-items:center;
   gap:var(--space-6);
}

.header-nav-link {
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   font-weight:500;
   color:var(--ink-soft);
   text-decoration:none;
   padding:var(--space-2) var(--space-1);
   position:relative;
   letter-spacing:0.01em;
   transition:color var(--duration-fast) var(--ease-out);
}

.header-nav-link::after {
   content:"";
   position:absolute;
   left:0;
   right:0;
   bottom:-2px;
   height:1px;
   background-color:transparent;
   transition:background-color var(--duration-fast) var(--ease-out);
}

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

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

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

.header-nav-link[aria-current="page"] {
   color:var(--ink);
}

.header-nav-link[aria-current="page"]::after {
   background-color:var(--hairline);
}

.section-strip {
   display:none;
}

@media (min-width: 992px) {
   .section-strip {
      display:block;
      position:sticky;
      top:0;
      z-index:70;
      width:100%;
      background-color:rgba(20, 18, 18, 0.94);
      border-bottom:1px solid var(--line);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      transition:opacity var(--duration-normal) var(--ease-out),
                        transform var(--duration-normal) var(--ease-out);
   }

   .section-strip-inner {
      display:flex;
      align-items:center;
      justify-content:center;
      gap:var(--space-8);
      height:var(--strip-height);
      padding-inline:var(--container-gutter);
      overflow-x:auto;
      scrollbar-width:none;
   }

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

   .section-strip-link {
      font-family:var(--reze-d9b);
      font-size:var(--text-xs);
      font-weight:500;
      color:var(--ink-soft);
      text-transform:uppercase;
      letter-spacing:0.08em;
      white-space:nowrap;
      padding:var(--space-1) var(--space-2);
      border-bottom:2px solid transparent;
      transition:color var(--duration-fast) var(--ease-out),
                        border-color var(--duration-fast) var(--ease-out);
   }

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

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

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

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

.mobile-dock {
   display:flex;
   position:fixed;
   inset:auto 0 0 0;
   width:100%;
   height:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
   padding-bottom:env(safe-area-inset-bottom, 0px);
   background-color:var(--surface);
   border-top:1px solid var(--line);
   z-index:100;
   align-items:stretch;
   justify-content:space-around;
   box-shadow:0 -4px 16px rgba(0, 0, 0, 0.45);
}

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

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

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

.dock-item:active {
   color:var(--accent-ink);
   background-color:var(--line);
}

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

.dock-item .icon {
   width:22px;
   height:22px;
   flex-shrink:0;
}

.dock-item-label {
   font-family:var(--reze-bc6);
   font-size:11px;
   line-height:1.1;
   font-weight:500;
   white-space:nowrap;
   letter-spacing:0.02em;
}

.dock-item[aria-current="page"] {
   color:var(--ink);
}

.dock-item[aria-current="page"] .icon {
   color:var(--accent);
}

.dock-item[aria-current="page"] .dock-item-label {
   font-weight:600;
   color:var(--ink);
}

.nav-drawer {
   position:fixed;
   inset:0;
   z-index:150;
   display:flex;
   flex-direction:column;
   justify-content:flex-end;
   pointer-events:none;
   visibility:hidden;
   transition:visibility var(--duration-normal) var(--ease-out);
}

.nav-drawer.is-open {
   pointer-events:auto;

   visibility:visible;
}

.nav-drawer-backdrop {
   position:absolute;
   inset:0;
   background-color:rgba(10, 9, 9, 0.78);
   opacity:0;
   backdrop-filter:blur(4px);
   -webkit-backdrop-filter:blur(4px);
   transition:opacity var(--duration-normal) var(--ease-out);
}

.nav-drawer.is-open .nav-drawer-backdrop {
   opacity:1;
}

.nav-drawer-sheet {
   position:relative;
   width:100%;
   max-height:85vh;
   background-color:var(--surface);
   border-top:1px solid var(--hairline);
   padding:var(--space-6) var(--space-6) calc(var(--space-8) + env(safe-area-inset-bottom, 0px));
   display:flex;
   flex-direction:column;
   overflow-y:auto;
   transform:translateY(100%);
   transition:transform var(--duration-normal) var(--ease-out);
   box-shadow:0 -8px 32px rgba(0, 0, 0, 0.75);
}

.nav-drawer.is-open .nav-drawer-sheet {
   transform:translateY(0);
}

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

.nav-drawer-close {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:44px;
   height:44px;
   color:var(--ink);
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out);
}

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

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

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

}

.nav-drawer-nav {
   display:flex;
   flex-direction:column;
   gap:var(--space-2);
}

.nav-drawer-link {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:var(--space-3) var(--space-4);
   color:var(--ink);
   font-family:var(--reze-bc6);
   font-size:var(--text-lg);
   font-weight:500;
   text-decoration:none;
   border-radius:var(--radius-xs);
   min-height:48px;
   transition:background-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out);
}

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

.nav-drawer-link:active {
   background-color:var(--line);
   color:var(--accent-ink);
}

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

.nav-drawer-link[aria-current="page"] {
   background-color:var(--surface-2);
   border-left:3px solid var(--accent);
   color:var(--ink);
}

.nav-drawer-meta {
   margin-top:var(--space-6);
   padding-top:var(--space-4);
   border-top:1px solid var(--line);
   font-family:var(--reze-d9b);
   font-size:var(--text-xs);
   color:var(--ink-soft);
   display:flex;
   flex-direction:column;
   gap:var(--space-2);
}

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2);
   padding:0.75rem 1.45rem;
   min-height:44px;
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   font-weight:600;
   letter-spacing:0.02em;
   text-decoration:none;
   border-radius:var(--radius-sm);
   border:1px solid transparent;
   cursor:pointer;
   white-space:nowrap;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out),
                     transform var(--duration-fast) var(--ease-out);
}

.btn-primary {
   background-color:var(--accent);
   color:var(--accent-ink);
   border-color:var(--accent);
   box-shadow:0 2px 8px rgba(0, 0, 0, 0.4);
}

.btn-primary:hover {
   background-color:#2da161;
   border-color:#2da161;
   color:var(--accent-ink);
   box-shadow:0 4px 14px rgba(0, 0, 0, 0.5);
   transform:translateY(-1px);
}

.btn-primary:active {
   background-color:#1e6b41;
   border-color:#1e6b41;
   transform:translateY(1px);
   box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);
}

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

.btn-secondary {
   background-color:var(--surface-2);
   color:var(--ink);
   border-color:var(--line);
   box-shadow:0 2px 8px rgba(0, 0, 0, 0.4);
}

.btn-secondary:hover {
   background-color:var(--line);
   border-color:var(--ink-soft);
   color:var(--ink);
   box-shadow:0 4px 14px rgba(0, 0, 0, 0.5);
   transform:translateY(-1px);
}

.btn-secondary:active {
   background-color:var(--ground);
   border-color:var(--line);
   transform:translateY(1px);
   box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);
}

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

.btn-outline {
   background-color:transparent;
   color:var(--ink);
   border-color:var(--hairline);
   box-shadow:0 2px 8px rgba(0, 0, 0, 0.4);
}

.btn-outline:hover {
   background-color:var(--surface);
   border-color:var(--hairline);
   color:var(--hairline);
   box-shadow:0 4px 14px rgba(0, 0, 0, 0.5);
   transform:translateY(-1px);
}

.btn-outline:active {
   background-color:var(--surface-2);
   transform:translateY(1px);
   box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);
}

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

.btn-block {
   display:flex;
   width:100%;
}

.item-card {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-left:3px solid var(--hairline);
   border-radius:var(--radius-sm);
   display:flex;
   flex-direction:column;
   overflow:hidden;
   box-shadow:0 8px 24px rgba(0, 0, 0, 0.55);
   transition:border-color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out);
}

.item-card:hover {
   border-color:var(--hairline);
   border-left-color:var(--accent);
   box-shadow:0 12px 32px rgba(0, 0, 0, 0.7);
}

.item-card:focus-within {
   border-color:var(--accent);
}

.item-card-media {
   position:relative;
   width:100%;
   aspect-ratio:16 / 10;
   background-color:var(--surface-2);
   overflow:hidden;
}

.item-card-media img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:transform var(--duration-slow) var(--ease-out);
}

.item-card:hover .item-card-media img {
   transform:scale(1.03);
}

.item-card-content {
   padding:var(--space-5);
   display:flex;
   flex-direction:column;
   flex:1 0 auto;
   gap:var(--space-3);
}

.item-card-header {
   display:flex;
   flex-direction:column;
   gap:var(--space-1);
}

.item-card-title {
   font-family:var(--reze-53c);
   font-size:var(--text-lg);
   font-weight:700;
   color:var(--ink);
   line-height:var(--leading-snug);
}

.item-card-basis {
   font-family:var(--reze-d9b);
   font-size:var(--text-sm);
   color:var(--hairline);
   font-weight:500;
}

.item-card-detail {
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   color:var(--ink-soft);
   line-height:var(--leading-normal);
   flex-grow:1;
}

.item-card-footer {
   margin-top:var(--space-4);
   padding-top:var(--space-4);
   border-top:1px solid var(--line);
   display:flex;
   align-items:center;
   justify-content:space-between;
   flex-wrap:wrap;
   gap:var(--space-2);
}

.item-card-footer .tabular {
   white-space:nowrap;
   flex-shrink:0;
}

.spec-badge {
   display:inline-flex;
   align-items:center;
   gap:var(--space-1);
   padding:0.25rem 0.55rem;
   min-height:26px;
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   font-family:var(--reze-d9b);
   font-size:var(--text-2xs);
   color:var(--ink-soft);
   text-transform:uppercase;
   letter-spacing:0.05em;
}

.spec-table-wrap {
   width:100%;
   overflow-x:auto;
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   background-color:var(--surface);
   margin-block:var(--space-6);
   -webkit-overflow-scrolling:touch;
}

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

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

.spec-table th {
   background-color:var(--surface-2);
   color:var(--ink);
   font-family:var(--reze-53c);
   font-size:var(--text-xs);
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:0.06em;
   white-space:nowrap;
}

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

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

.spec-table td.numeric {
   text-align:right;
   font-variant-numeric:tabular-nums;
}

.estimator-card {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:clamp(1.5rem, 3.5vw, 2.75rem);
   box-shadow:0 8px 30px rgba(0, 0, 0, 0.4);
}

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

.estimator-title {
   font-family:var(--reze-53c);
   font-size:var(--text-xl);
   font-weight:700;
   color:var(--ink);
}

.estimator-subtitle {
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   color:var(--ink-soft);
   margin-top:var(--space-1);
}

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

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

.estimator-controls {
   display:flex;
   flex-direction:column;
   gap:var(--space-5);
}

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

.form-label {
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   font-weight:600;
   color:var(--ink);
   display:flex;
   justify-content:space-between;
   align-items:baseline;
}

.form-label-hint {
   font-family:var(--reze-d9b);
   font-size:var(--text-xs);
   color:var(--ink-soft);
   font-weight:400;
}

.form-select,
.form-input,
.form-textarea {
   width:100%;
   min-height:44px;
   padding:0.65rem 0.9rem;
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   color:var(--ink);
   font-family:var(--reze-d9b);
   font-size:var(--text-sm);
   transition:border-color var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out);
}

@media (max-width: 48rem) {
   .form-select,
   .form-input,
   .form-textarea {
      font-size:max(16px, 1rem);
   }
}

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

.form-select:focus,
.form-input:focus,
.form-textarea:focus {
   outline:none;
   border-color:var(--accent);
   background-color:#2d2d2d;
}

.form-checkbox-label {
   display:flex;
   align-items:flex-start;
   gap:var(--space-3);
   cursor:pointer;
   padding:var(--space-2) 0;
   user-select:none;
}

.form-checkbox {
   appearance:none;
   -webkit-appearance:none;
   width:20px;
   height:20px;
   min-width:20px;
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   cursor:pointer;
   display:inline-grid;
   place-content:center;
   margin-top:2px;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out);
}

.form-checkbox::before {
   content:"";
   width:10px;
   height:10px;
   background-color:var(--accent);
   transform:scale(0);
   transition:transform var(--duration-fast) var(--ease-out);
}

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

.form-checkbox:checked::before {
   transform:scale(1);
}

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

.estimator-readout {
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-6);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   gap:var(--space-4);
}

.readout-label {
   font-family:var(--reze-53c);
   font-size:var(--text-xs);
   font-weight:700;
   color:var(--hairline);
   text-transform:uppercase;
   letter-spacing:0.08em;
}

.readout-display {
   font-family:var(--reze-d9b);
   font-size:clamp(2.2rem, 3.4vw, 3.2rem);
   font-weight:700;
   color:var(--ink);
   line-height:var(--leading-none);
   letter-spacing:-0.02em;
}

.readout-note {
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   color:var(--ink-soft);
   line-height:var(--leading-normal);
}

.readout-disclaimer {
   font-family:var(--reze-d9b);
   font-size:var(--text-xs);
   color:var(--ink-soft);
   border-top:1px solid var(--line);
   padding-top:var(--space-3);
   line-height:var(--leading-snug);
}

.inquiry-form {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:clamp(1.5rem, 3vw, 2.5rem);
   display:flex;
   flex-direction:column;
   gap:var(--space-5);
}

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

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

.field-error-msg {
   font-family:var(--reze-d9b);
   font-size:var(--text-xs);
   color:#e56565;
   display:none;
}

.has-error .form-input,
.has-error .form-select,
.has-error .form-textarea {
   border-color:#e56565;
}

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

.form-alert {
   padding:var(--space-4);
   border-radius:var(--radius-sm);
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   line-height:var(--leading-snug);
   display:none;
}

.form-alert-success {
   background-color:rgba(38, 133, 81, 0.18);
   border:1px solid var(--accent);
   color:var(--ink);
}

.form-alert-error {
   background-color:rgba(229, 101, 101, 0.15);
   border:1px solid #e56565;
   color:#fcc;
}

.accordion {
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   background-color:var(--surface);
   overflow:hidden;
}

.accordion-item {
   border-bottom:1px solid var(--line);
}

.accordion-item:last-child {
   border-bottom:0;
}

.accordion-trigger {
   width:100%;
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-4);
   padding:var(--space-4) var(--space-5);
   min-height:48px;
   background-color:transparent;
   border:0;
   text-align:left;
   font-family:var(--reze-53c);
   font-size:var(--text-base);
   font-weight:600;
   color:var(--ink);
   transition:background-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out);
}

.accordion-trigger:hover {
   background-color:var(--surface-2);
   color:var(--ink);
}

.accordion-trigger:active {
   background-color:var(--line);
}

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

.accordion-icon {
   width:18px;
   height:18px;
   transition:transform var(--duration-normal) var(--ease-out);
   color:var(--hairline);
   flex-shrink:0;
}

.accordion-trigger[aria-expanded="true"] .accordion-icon {
   transform:rotate(180deg);
}

.accordion-panel {
   padding:0 var(--space-5) var(--space-5);
   color:var(--ink-soft);
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   line-height:var(--leading-relaxed);
}

.accordion-panel[hidden] {
   display:none;
}

.site-footer {
   background-color:var(--ground);
   border-top:1px solid var(--line);
   padding-block:var(--band-open);
   color:var(--ink-soft);
}

.footer-column {
   display:flex;
   flex-direction:column;
   align-items:center;
   text-align:center;
   max-width:760px;
   margin-inline:auto;
   gap:var(--space-6);
}

.footer-nav {
   display:flex;
   flex-wrap:wrap;
   justify-content:center;
   gap:var(--space-4) var(--space-6);
}

.footer-nav-link {
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
   color:var(--ink-soft);
   text-decoration:none;
   min-height:44px;
   display:inline-flex;
   align-items:center;
   padding:0 var(--space-2);
   transition:color var(--duration-fast) var(--ease-out);
}

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

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

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

.footer-nav-link[aria-current="page"] {
   color:var(--ink);
   font-weight:600;
}

.footer-facts-block {
   font-family:var(--reze-d9b);
   font-size:var(--text-xs);
   line-height:var(--leading-relaxed);
   color:var(--ink-soft);
   max-width:58ch;
   border-block:1px solid var(--line);
   padding-block:var(--space-4);
   width:100%;
}

.footer-fact-item {
   display:inline;
}

.footer-fact-item + .footer-fact-item::before {
   content:" · ";
   color:var(--line);
}

.footer-legal-row {
   display:flex;
   flex-wrap:wrap;
   justify-content:center;
   align-items:center;
   gap:var(--space-3) var(--space-5);
   font-family:var(--reze-d9b);
   font-size:var(--text-2xs);
   color:var(--ink-soft);
}

.footer-legal-link {
   color:var(--ink-soft);
   text-decoration:underline;
   text-underline-offset:3px;
   text-decoration-color:var(--line);
   min-height:44px;
   display:inline-flex;
   align-items:center;
   padding:0 var(--space-2);
   transition:color var(--duration-fast) var(--ease-out),
                     text-decoration-color var(--duration-fast) var(--ease-out);
}

.footer-legal-link:hover {
   color:var(--ink);
   text-decoration-color:var(--ink);
}

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

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

.footer-btn-reopen {
   background:none;
   border:0;
   cursor:pointer;
   font-family:var(--reze-d9b);
   font-size:var(--text-2xs);
   color:var(--hairline);
   text-decoration:underline;
   text-underline-offset:3px;
   min-height:44px;
   display:inline-flex;
   align-items:center;
   padding:0 var(--space-2);
   transition:color var(--duration-fast) var(--ease-out);
}

.footer-btn-reopen:hover {
   color:var(--ink);
}

.footer-btn-reopen:active {
   color:var(--accent-ink);
}

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

.cookie-banner {
   position:fixed;
   inset:auto 0 0 0;
   z-index:120;
   background-color:var(--surface);
   border-top:1px solid var(--hairline);
   padding:var(--space-3) var(--container-gutter);
   box-shadow:0 -6px 24px rgba(0, 0, 0, 0.65);
   transition:transform var(--duration-normal) var(--ease-out),
                     opacity var(--duration-normal) var(--ease-out);
}

@media (max-width: 991px) {
   .cookie-banner {
      bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
   }
}

.cookie-banner[hidden] {
   display:none;
}

.cookie-banner-inner {
   max-width:var(--container-max);
   margin-inline:auto;
   display:flex;
   flex-direction:column;
   gap:var(--space-3);
   align-items:stretch;
}

@media (min-width: 768px) {
   .cookie-banner-inner {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
      gap:var(--space-6);
   }
}

.cookie-banner-copy {
   font-family:var(--reze-bc6);
   font-size:var(--text-xs);
   color:var(--ink);
   line-height:var(--leading-snug);
   max-width:68ch;
}

.cookie-banner-copy a {
   color:var(--hairline);
   text-decoration:underline;
   text-underline-offset:2px;
}

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

.btn-cookie {
   min-height:44px;
   padding:0.5rem 1rem;
   font-family:var(--reze-d9b);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.02em;
   border-radius:var(--radius-sm);
   cursor:pointer;
   white-space:nowrap;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out);
}

.btn-cookie-accept {
   background-color:var(--accent);
   color:var(--accent-ink);
   border:1px solid var(--accent);
   box-shadow:0 1px 4px rgba(38, 133, 81, 0.4);
}

.btn-cookie-accept:hover {
   background-color:#2da161;
   border-color:#2da161;
   box-shadow:0 3px 8px rgba(38, 133, 81, 0.55);
   transform:translateY(-1px);
}

.btn-cookie-accept:active {
   background-color:#1e6b41;
   transform:translateY(1px);
   box-shadow:0 1px 2px rgba(38, 133, 81, 0.3);
}

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

.btn-cookie-decline {
   background-color:var(--surface-2);
   color:var(--ink-soft);
   border:1px solid var(--line);
   box-shadow:0 1px 3px rgba(0, 0, 0, 0.3);
}

.btn-cookie-decline:hover {
   background-color:var(--line);
   color:var(--ink);
   border-color:var(--ink-soft);
   box-shadow:0 2px 6px rgba(0, 0, 0, 0.45);
   transform:translateY(-1px);
}

.btn-cookie-decline:active {
   background-color:var(--ground);
   border-color:var(--line);
   transform:translateY(1px);
   box-shadow:0 0 2px rgba(0, 0, 0, 0.3);
}

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

.chat-widget {
   position:fixed;
   right:1.25rem;
   bottom:1.25rem;
   z-index:90;
}

@media (max-width: 991px) {
   .chat-widget {
      right:1rem;
      bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 0.75rem);
   }
}

/* Ensure chat launcher stays clear of bottom cookie banner on mobile */
@media (max-width: 480px) {
   .chat-widget {
      bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 160px);
   }
}

.chat-launcher {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:52px;
   height:52px;
   border-radius:50%;
   background-color:var(--surface-2);
   border:1px solid var(--hairline);
   color:var(--ink);
   cursor:pointer;
   box-shadow:0 4px 18px rgba(0, 0, 0, 0.55);
   position:relative;
   transition:transform var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out);
}

.chat-launcher:hover {
   background-color:var(--line);
   border-color:var(--hairline);
   transform:scale(1.05);
   box-shadow:0 6px 22px rgba(0, 0, 0, 0.7);
}

.chat-launcher:active {
   background-color:var(--ground);
   transform:scale(0.96);
}

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

.chat-launcher .icon {
   width:24px;
   height:24px;
}

.chat-badge {
   position:absolute;
   top:-2px;
   right:-2px;
   background-color:var(--accent);
   color:var(--accent-ink);
   font-family:var(--reze-d9b);
   font-size:10px;
   font-weight:700;
   width:18px;
   height:18px;
   border-radius:50%;
   display:flex;
   align-items:center;
   justify-content:center;
   border:2px solid var(--ground);
}

.chat-badge:empty,
.chat-badge[hidden] {
   display:none;
}

.chat-panel {
   position:fixed;
   right:1.25rem;
   bottom:5.25rem;
   width:360px;
   max-width:calc(100vw - 2.5rem);
   height:480px;
   max-height:calc(100vh - 7rem);
   max-height:calc(100svh - 7rem);
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   box-shadow:0 12px 40px rgba(0, 0, 0, 0.8);
   display:flex;
   flex-direction:column;
   z-index:140;
   overflow:hidden;
   transition:opacity var(--duration-normal) var(--ease-out),
                     transform var(--duration-normal) var(--ease-out);
}

@media (max-width: 991px) {
   .chat-panel {
      right:0.75rem;
      left:0.75rem;
      width:auto;
      max-width:none;
      bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 0.75rem);
      height:440px;
   }
}

.chat-panel[hidden] {
   display:none;
}

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

.chat-panel-title {
   font-family:var(--reze-53c);
   font-size:var(--text-sm);
   font-weight:700;
   color:var(--ink);
}

.chat-panel-close {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:36px;
   height:36px;
   color:var(--ink-soft);
   background:none;
   border:0;
   border-radius:var(--radius-xs);
   transition:color var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out);
}

.chat-panel-close:hover {
   color:var(--ink);
   background-color:var(--line);
}

.chat-panel-close:active {
   background-color:var(--ground);
}

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

.chat-panel-body {
   flex:1 1 auto;
   overflow-y:auto;
   padding:var(--space-4);
   display:flex;
   flex-direction:column;
   gap:var(--space-3);
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
}

.chat-msg {
   max-width:82%;
   padding:0.65rem 0.85rem;
   border-radius:var(--radius-sm);
   line-height:var(--leading-normal);
}

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

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

.chat-panel-footer {
   padding:var(--space-3);
   border-top:1px solid var(--line);
   background-color:var(--surface-2);
}

.chat-form {
   display:flex;
   gap:var(--space-2);
}

.chat-input {
   flex:1 1 auto;
   min-height:40px;
   padding:0.5rem 0.75rem;
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   color:var(--ink);
   font-family:var(--reze-bc6);
   font-size:var(--text-sm);
}

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

.chat-send-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-height:40px;
   padding:0 0.85rem;
   background-color:var(--accent);
   color:var(--accent-ink);
   border:0;
   border-radius:var(--radius-xs);
   font-family:var(--reze-bc6);
   font-size:var(--text-xs);
   font-weight:600;
   transition:background-color var(--duration-fast) var(--ease-out);
}

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

.chat-send-btn:active {
   background-color:#1e6b41;
}

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