
.skip-link {
   position:absolute;
   top:-100px;
   left:var(--space-s);
   background-color:var(--accent-gold);
   color:var(--text-inverse);
   font-family:var(--mizi-9d5);
   font-size:var(--step--1);
   font-weight:700;
   text-decoration:none;
   padding:0.75rem 1.25rem;
   min-height:44px;
   display:inline-flex;
   align-items:center;
   z-index:10000;
   border:1px solid var(--text-cream-bright);
   box-shadow:var(--shadow-md);
   transition:top var(--transition-fast);
}

.skip-link:focus,
.skip-link:focus-visible {
   top:var(--space-s);
   outline:3px solid var(--text-cream-bright);
   outline-offset:2px;
}

.icon {
   display:inline-block;
   width:1.15em;
   height:1.15em;
   stroke-width:2;
   stroke:currentColor;
   fill:none;
   vertical-align:-0.18em;
}

.icon-sm { width: 0.95em; height: 0.95em; }
.icon-md { width: 1.35em; height: 1.35em; }
.icon-lg { width: 1.75em; height: 1.75em; }

.site-header {
   position:fixed;
   top:0;
   left:0;
   bottom:0;
   width:var(--sidebar-width);
   background-color:var(--bg-ground);
   border-right:1px solid var(--line-grid);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   z-index:500;
   overflow-y:auto;
   overflow-x:hidden;
   -webkit-overflow-scrolling:touch;
}

@media (min-width: 1025px) {
   .site-header,
   .site-header.is-scrolled {
      position:fixed !important;
      top:0 !important;
      left:0 !important;
      bottom:0 !important;
      right:auto !important;
      width:var(--sidebar-width) !important;
      height:100vh !important;
      flex-direction:column !important;
      border-right:1px solid var(--line-grid) !important;
      border-bottom:none !important;
      overflow-y:auto !important;
   }

   .site-header .nav-panel,
   .site-header.is-scrolled .nav-panel {
      display:flex !important;
      position:static !important;
      transform:none !important;
      opacity:1 !important;
      visibility:visible !important;
   }
}

.header-top {
   padding:var(--space-l) var(--space-m);
   border-bottom:1px solid var(--line-grid);
}

.brand {
   display:inline-block;
   text-decoration:none;
   line-height:0;
   transition:opacity var(--transition-fast);
}

.brand:hover {
   opacity:0.88;
}

.brand:active {
   opacity:0.72;
}

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

.brand img {
   height:2.1rem;
   width:auto;
   display:block;
}

/* Mobile Header Bar & Drawer Toggle */
.mobile-header-bar {
   display:none;
}

.nav-toggle {
   display:none;
}

/* Vertical Navigation Menu */
.nav-panel {
   flex:1 1 auto;
   display:flex;
   flex-direction:column;
   justify-content:flex-start;
   padding:var(--space-m) 0;
}

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

.nav-item {
   display:block;
   margin:0;
}

.nav-link {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:0.65rem var(--space-m);
   min-height:44px;
   font-family:var(--mizi-9d5);
   font-size:var(--step--1);

   font-weight:500;
   letter-spacing:var(--tracking-wide);
   color:var(--text-cream);
   text-decoration:none;

   border-left:3px solid transparent;
   background-color:transparent;
   transition:background-color var(--transition-fast),
                     color var(--transition-fast),
                     border-color var(--transition-fast);
}

.nav-link:hover {
   background-color:var(--bg-surface);
   color:var(--text-cream-bright);
   border-left-color:var(--accent-gold);
}

.nav-link:active {
   background-color:var(--bg-surface-active);
   color:var(--accent-gold);
}

.nav-link:focus-visible {
   outline:2px solid var(--accent-gold);
   outline-offset:-2px;
   background-color:var(--bg-surface);
}

.nav-link[aria-current="page"],
.nav-link.active {
   background-color:var(--bg-surface);
   color:var(--accent-gold);
   border-left-color:var(--accent-gold);
   font-weight:700;
}

/* Sidebar Pinned Contact Footer */
.sidebar-footer {
   padding:var(--space-m);
   border-top:1px solid var(--line-grid);
   background-color:var(--bg-ground-deep);
}

.sidebar-contact-block {
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}

.sidebar-address {
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   line-height:var(--lh-tight);
   color:var(--text-muted);
   font-style:normal;
}

.sidebar-contact-link {
   display:inline-flex;
   align-items:center;
   gap:0.4rem;
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--accent-gold);
   text-decoration:none;
   padding:0.25rem 0;
   min-height:32px;
   transition:color var(--transition-fast);
}

.sidebar-contact-link:hover {
   color:var(--accent-gold-hover);
   text-decoration:underline;
}

.sidebar-contact-link:active {
   color:var(--accent-gold-active);
}

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

.sidebar-note {
   margin-top:var(--space-2xs);
   font-family:var(--mizi-f36);
   font-size:0.68rem;
   color:var(--text-dim);
   text-transform:uppercase;
   letter-spacing:0.05em;
}

@media (max-width: 1024px) {
   .site-header {
      top:0;
      right:0;
      bottom:auto;
      width:100%;
      height:var(--header-mobile-height);
      flex-direction:row;
      align-items:center;
      border-right:none;
      border-bottom:1px solid var(--line-grid);

      overflow:visible;
      transition:height var(--transition-fast), background-color var(--transition-fast);
   }

   .site-header.is-scrolled {
      height:52px;
      background-color:rgba(54, 20, 23, 0.98);
      backdrop-filter:blur(8px);
   }

   .site-header.is-scrolled .brand img {
      height:1.5rem;
   }

   .header-top {
      padding:0 var(--space-m);
      border-bottom:none;
      width:100%;
      height:100%;
      display:flex;
      align-items:center;
      justify-content:space-between;
   }

   .brand img {
      height:1.85rem;
   }

   .nav-toggle {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:var(--space-2xs);
      background-color:var(--bg-surface);
      color:var(--text-cream);
      border:1px solid var(--line-grid);
      padding:0.5rem 0.85rem;
      min-height:44px;
      min-width:44px;
      font-family:var(--mizi-9d5);
      font-size:var(--step--1);
      font-weight:600;
      cursor:pointer;
      transition:background-color var(--transition-fast),
                        border-color var(--transition-fast),
                        color var(--transition-fast),
                        transform var(--transition-fast);
   }

   .nav-toggle:hover {
      background-color:var(--bg-surface-hover);
      border-color:var(--accent-gold);
      color:var(--text-cream-bright);
      transform:translateY(-1px);
   }

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

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

   .nav-toggle .nav-toggle-icon {
      width:20px;
      height:20px;
   }

   .nav-panel {
      position:fixed;
      top:var(--header-mobile-height);
      left:0;
      right:0;
      bottom:0;
      background-color:var(--bg-ground);
      border-top:1px solid var(--line-grid);
      padding:var(--space-m);
      transform:translateX(-100%);
      opacity:0;
      visibility:hidden;
      overflow-y:auto;
      transition:transform var(--transition-base),
                        opacity var(--transition-base),
                        visibility var(--transition-base);
      z-index:499;
   }

   .nav-panel.is-open,
   [data-68ead1].is-open .nav-panel {
      transform:translateX(0);
      opacity:1;
      visibility:visible;
   }

   .sidebar-footer {
      display:block;
      margin-top:var(--space-m);
      border:1px solid var(--line-grid);
   }
}

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:0.5rem;
   font-family:var(--mizi-9d5);
   font-weight:700;
   font-size:var(--step--1);
   letter-spacing:var(--tracking-wide);
   text-decoration:none;
   text-align:center;
   line-height:1.2;
   padding:0.75rem 1.5rem;
   min-height:44px;
   cursor:pointer;
   border:1px solid transparent;
   transition:background-color var(--transition-fast),
                     border-color var(--transition-fast),
                     color var(--transition-fast),
                     transform var(--transition-fast),
                     box-shadow var(--transition-fast);
   white-space:normal;
   overflow-wrap:break-word;
   width:auto;
}

@media (max-width: 480px) {
   .btn-lg,
   .btn-block,
   .inquiry-form .btn {
      width:100% !important;
      padding-left:0.75rem !important;
      padding-right:0.75rem !important;
   }
}

/* Primary Button: Aged Gold ink on dark or Gold solid */
.btn-primary {
   background-color:var(--accent-gold);
   color:var(--text-inverse);
   border-color:var(--accent-gold);
}

.btn-primary:hover {
   background-color:var(--accent-gold-hover);
   border-color:var(--accent-gold-hover);
   color:var(--text-inverse);
   transform:translateY(-1px);
   box-shadow:0 4px 12px rgba(212, 163, 89, 0.28);
}

.btn-primary:active {
   background-color:var(--accent-gold-active);
   border-color:var(--accent-gold-active);
   transform:translateY(1px);
   box-shadow:none;
}

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

/* Secondary Button: Outlined Swiss Border */
.btn-secondary {
   background-color:var(--bg-surface);
   color:var(--text-cream-bright);
   border-color:var(--line-grid-strong);
}

.btn-secondary:hover {
   background-color:var(--bg-surface-hover);
   border-color:var(--accent-gold);
   color:var(--accent-gold);
   transform:translateY(-1px);
}

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

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

.btn-ghost {
   background-color:transparent;
   color:var(--text-cream);
   border-color:var(--line-grid);
}

.btn-ghost:hover {
   background-color:var(--bg-surface);
   border-color:var(--line-grid-strong);
   color:var(--accent-gold);
   transform:translateY(-1px);
}

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

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

/* Button Sizing Variations */
.btn-sm {
   padding:0.5rem 1.0rem;
   min-height:40px;
   font-size:var(--step--2);
}

.btn-lg {
   padding:0.95rem 2.0rem;
   min-height:52px;
   font-size:var(--mizi-090);
}

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

/* Button Group */
.btn-group {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-xs);
   align-items:center;
   margin-top:var(--space-s);
}

.product-card {
   position:relative;
   background-color:var(--bg-surface);
   border:1px solid var(--line-grid);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   height:100%;
   transition:border-color var(--transition-fast),
                     background-color var(--transition-fast),
                     transform var(--transition-fast);
}

.product-card:hover {
   border-color:var(--accent-gold);
   background-color:var(--bg-surface-hover);
   transform:translateY(-2px);
}

.product-card-media {
   position:relative;
   overflow:hidden;
   border-bottom:1px solid var(--line-grid);
   aspect-ratio:16 / 10;
   background-color:var(--bg-ground-deep);
}

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

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

.product-card-body {
   padding:var(--space-m);
   display:flex;
   flex-direction:column;
   flex:1 1 auto;
}

.product-card-header {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   gap:var(--space-xs);
   margin-bottom:var(--space-xs);
   border-bottom:1px solid var(--line-grid-subtle);
   padding-bottom:var(--space-xs);
}

.product-card-title {
   font-family:var(--mizi-9d5);
   font-size:var(--mizi-cb0);
   font-weight:700;
   color:var(--text-cream-bright);
   margin:0;
}

.product-card-price {
   font-family:var(--mizi-f36);
   font-size:var(--mizi-090);
   font-weight:500;
   color:var(--accent-gold);
   white-space:nowrap;
}

.product-card-desc {
   font-family:var(--mizi-239);
   font-size:var(--mizi-090);
   color:var(--text-muted);
   line-height:var(--lh-body);
   margin-bottom:var(--space-m);
   flex:1 1 auto;
}

.product-card-meta {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-xs);
   margin-top:auto;
   padding-top:var(--space-xs);
   border-top:1px solid var(--line-grid-subtle);
}

.spec-chip {
   display:inline-flex;
   align-items:center;
   gap:0.35rem;
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--text-muted);
   background-color:var(--bg-ground-deep);
   border:1px solid var(--line-grid);
   padding:0.25rem 0.6rem;
   min-height:28px;
}

.signature-bean-badge {
   display:inline-flex;
   align-items:center;
   gap:0.6rem;
   background-color:var(--bg-ground-deep);
   border:1px solid var(--line-gold);
   padding:0.5rem 1rem;
   min-height:38px;
   font-family:var(--mizi-f36);
   font-size:var(--step--1);
   color:var(--accent-gold);
   margin-bottom:var(--space-s);
}

.signature-bean-badge .bean-dot {
   width:10px;
   height:10px;
   background-color:var(--accent-gold);
   border:1px solid var(--text-cream-bright);
}

.signature-ritual-panel {
   border:1px solid var(--line-gold);
   background-color:var(--bg-surface);
   padding:var(--space-l);
   position:relative;
   margin:var(--space-xl) 0;
}

.signature-ritual-panel::before {
   content:"";
   position:absolute;
   top:0;
   left:0;
   bottom:0;
   width:4px;
   background-color:var(--accent-gold);
}

.duotone-caesura {
   position:relative;
   width:100%;
   min-height:440px;
   display:flex;
   align-items:center;
   justify-content:flex-start;
   overflow:hidden;
   border-top:1px solid var(--line-grid);
   border-bottom:1px solid var(--line-grid);
   background-color:var(--bg-ground-deep);
}

.duotone-caesura-image {
   position:absolute;
   top:0;
   left:0;
   width:100%;
   height:100%;
   object-fit:cover;
   filter:grayscale(100%) contrast(125%) brightness(0.65);
   mix-blend-mode:multiply;
   opacity:0.72;
}

.duotone-caesura::before {
   content:"";
   position:absolute;
   inset:0;
   background:linear-gradient(
      90deg,
      rgba(54, 20, 23, 0.95) 0%,
      rgba(74, 31, 34, 0.75) 55%,
      rgba(54, 20, 23, 0.90) 100%
   );
   z-index:1;
}

.duotone-caesura-content {
   position:relative;
   z-index:2;
   padding:var(--space-xl) var(--space-l);
   max-width:720px;
}

.duotone-caesura-title {
   font-family:var(--mizi-9d5);
   font-size:var(--mizi-554);
   font-weight:700;
   line-height:var(--lh-tight);
   color:var(--text-cream-bright);
   margin-bottom:var(--space-s);
}

.duotone-caesura-text {
   font-family:var(--mizi-239);
   font-size:var(--mizi-cb0);
   line-height:var(--lh-relaxed);
   color:var(--text-cream);
   margin-bottom:var(--space-m);
}

.spec-table-wrap {
   width:100%;
   overflow-x:auto;
   -webkit-overflow-scrolling:touch;
   margin:var(--space-m) 0 var(--space-l);
   border:1px solid var(--line-grid);
}

.spec-table {
   width:100%;
   border-collapse:collapse;
   text-align:left;
   background-color:var(--bg-surface);
   font-size:var(--mizi-090);
}

.spec-table th,
.spec-table td {
   padding:0.9rem 1.2rem;
   border-bottom:1px solid var(--line-grid);
   border-right:1px solid var(--line-grid);
   vertical-align:top;
}

.spec-table th:last-child,
.spec-table td:last-child {
   border-right:none;
}

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

.spec-table th {
   font-family:var(--mizi-9d5);
   font-weight:700;
   font-size:var(--step--1);
   letter-spacing:var(--tracking-wide);
   color:var(--text-cream-bright);
   background-color:var(--bg-ground-deep);
   white-space:nowrap;
}

.spec-table td {
   font-family:var(--mizi-239);
   color:var(--text-cream);
}

.spec-table td.mono-cell,
.spec-table .price-val {
   font-family:var(--mizi-f36);
   font-size:var(--step--1);
   color:var(--accent-gold);
   white-space:nowrap;
}

.inquiry-form {
   display:flex;
   flex-direction:column;
   gap:var(--space-m);
   background-color:var(--bg-surface);
   border:1px solid var(--line-grid);
   padding:var(--space-l);
}

@media (max-width: 480px) {
   .inquiry-form {
      padding:var(--space-s);
   }
}

.form-group {
   display:flex;
   flex-direction:column;
   gap:0.4rem;
}

.form-label {
   font-family:var(--mizi-9d5);
   font-size:var(--step--1);
   font-weight:600;
   color:var(--text-cream-bright);
   display:flex;
   justify-content:space-between;
}

.form-label-hint {
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--text-muted);
   font-weight:400;
}

.form-input,
.form-select,
.form-textarea {
   width:100%;
   background-color:var(--bg-ground-deep);
   border:1px solid var(--line-grid-strong);
   color:var(--text-cream-bright);
   font-family:var(--mizi-239);
   font-size:var(--mizi-090);
   padding:0.75rem 1rem;
   min-height:44px;
   line-height:1.4;
   transition:border-color var(--transition-fast),
                     background-color var(--transition-fast),
                     box-shadow var(--transition-fast);
}

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

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

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

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

.form-error-msg {
   display:none;
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--error-red);
}

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

/* Checkbox control */
.form-checkbox-label {
   display:flex;
   align-items:flex-start;
   gap:0.75rem;
   font-family:var(--mizi-239);
   font-size:var(--step--1);
   color:var(--text-cream);
   cursor:pointer;
}

.form-checkbox {
   appearance:none;
   -webkit-appearance:none;
   width:20px;
   height:20px;
   background-color:var(--bg-ground-deep);
   border:1px solid var(--line-grid-strong);
   flex-shrink:0;
   margin-top:3px;
   cursor:pointer;
   display:grid;
   place-content:center;
   transition:border-color var(--transition-fast),
                     background-color var(--transition-fast);
}

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

.form-checkbox:checked::before {
   content:"";
   width:10px;
   height:10px;
   background-color:var(--text-inverse);
}

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

/* Honeypot hidden controls */
.form-hp-field {
   position:absolute !important;
   left:-9999px !important;
   top:auto !important;
   width:1px !important;
   height:1px !important;
   overflow:hidden !important;
}

.accordion {
   border:1px solid var(--line-grid);
   background-color:var(--bg-surface);
   margin:var(--space-m) 0;
}

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

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

.accordion-trigger {
   width:100%;
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-s);
   padding:1.15rem var(--space-m);
   background-color:transparent;
   color:var(--text-cream-bright);
   font-family:var(--mizi-9d5);
   font-size:var(--mizi-cb0);
   font-weight:700;
   text-align:left;
   border:none;
   cursor:pointer;
   min-height:44px;
   transition:background-color var(--transition-fast),
                     color var(--transition-fast);
}

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

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

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

.accordion-icon {
   transition:transform var(--transition-base);
   color:var(--accent-gold);
}

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

.accordion-panel {
   padding:0 var(--space-m) var(--space-m);
   font-family:var(--mizi-239);
   font-size:var(--mizi-090);
   line-height:var(--lh-body);
   color:var(--text-cream);
}

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

.tabs-nav {
   display:flex;
   flex-wrap:wrap;
   border-bottom:1px solid var(--line-grid);
   margin-bottom:var(--space-m);
   gap:2px;
}

.tab-btn {
   font-family:var(--mizi-9d5);
   font-size:var(--step--1);
   font-weight:700;
   color:var(--text-muted);
   background-color:var(--bg-surface);
   border:1px solid var(--line-grid);
   border-bottom:none;
   padding:0.75rem 1.25rem;
   min-height:44px;
   cursor:pointer;
   transition:background-color var(--transition-fast),
                     color var(--transition-fast),
                     border-color var(--transition-fast);
}

.tab-btn:hover {
   background-color:var(--bg-surface-hover);
   color:var(--text-cream-bright);
}

.tab-btn:active {
   background-color:var(--bg-surface-active);
}

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

.tab-btn[aria-selected="true"] {
   background-color:var(--bg-ground-deep);
   color:var(--accent-gold);
   border-top-color:var(--accent-gold);
}

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

.cookie-banner {
   position:fixed;
   bottom:0;
   left:var(--sidebar-width);
   right:0;
   z-index:1000;
   background-color:var(--bg-ground-deep);
   border-top:1px solid var(--accent-gold);
   padding:0.85rem var(--space-m);
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-m);
   box-shadow:0 -4px 18px rgba(0, 0, 0, 0.45);
   max-height:20vh;
}

.cookie-text {
   font-family:var(--mizi-239);
   font-size:var(--step--1);
   line-height:1.4;
   color:var(--text-cream);
   margin:0;
   max-width:800px;
}

.cookie-text a {
   color:var(--accent-gold);
   text-decoration:underline;
}

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

.cookie-btn-accept {
   background-color:var(--accent-gold);
   color:var(--text-inverse);
   font-family:var(--mizi-9d5);
   font-size:var(--step--2);
   font-weight:700;
   border:1px solid var(--accent-gold);
   padding:0.45rem 1.0rem;
   min-height:38px;
   cursor:pointer;
   transition:background-color var(--transition-fast),
                     color var(--transition-fast),
                     transform var(--transition-fast);
}

.cookie-btn-accept:hover {
   background-color:var(--accent-gold-hover);
   border-color:var(--accent-gold-hover);
   transform:translateY(-1px);
}

.cookie-btn-accept:active {
   background-color:var(--accent-gold-active);
   transform:translateY(1px);
}

.cookie-btn-accept:focus-visible {
   outline:2px solid var(--text-cream-bright);
   outline-offset:2px;
}

.cookie-btn-decline {
   background-color:transparent;
   color:var(--text-cream);
   font-family:var(--mizi-9d5);
   font-size:var(--step--2);
   font-weight:600;
   border:1px solid var(--line-grid-strong);
   padding:0.45rem 0.85rem;
   min-height:38px;
   cursor:pointer;
   transition:background-color var(--transition-fast),
                     color var(--transition-fast),
                     border-color var(--transition-fast),
                     transform var(--transition-fast);
}

.cookie-btn-decline:hover {
   background-color:var(--bg-surface);
   border-color:var(--text-cream);
   color:var(--text-cream-bright);
   transform:translateY(-1px);
}

.cookie-btn-decline:active {
   background-color:var(--bg-surface-active);
   transform:translateY(1px);
}

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

@media (max-width: 1024px) {
   .cookie-banner {
      left:0;
   }
}

@media (max-width: 680px) {
   .cookie-banner {
      flex-direction:column;
      align-items:flex-start;
      gap:0.5rem;
      padding:0.65rem var(--space-s);
   }

   .cookie-actions {
      width:100%;
      justify-content:flex-end;
   }
}

.chat-launcher {
   position:fixed;
   bottom:var(--space-m);
   right:var(--space-m);
   z-index:1001;
   background-color:var(--accent-gold);
   color:var(--text-inverse);
   border:1px solid var(--text-cream-bright);
   padding:0.65rem 1.15rem;
   min-height:48px;
   display:inline-flex;
   align-items:center;
   gap:0.5rem;
   font-family:var(--mizi-9d5);
   font-weight:700;
   font-size:var(--step--1);
   cursor:pointer;
   box-shadow:var(--shadow-md);
   transition:background-color var(--transition-fast),
                     border-color var(--transition-fast),
                     transform var(--transition-fast),
                     bottom var(--transition-fast),
                     box-shadow var(--transition-fast);
}

.chat-launcher:hover {
   background-color:var(--accent-gold-hover);
   transform:translateY(-2px);
   box-shadow:0 8px 24px rgba(212, 163, 89, 0.35);
}

.chat-launcher:active {
   background-color:var(--accent-gold-active);
   transform:translateY(1px);
   box-shadow:var(--shadow-sm);
}

.chat-launcher:focus-visible {
   outline:3px solid var(--text-cream-bright);
   outline-offset:3px;
}

.chat-launcher-badge {
   background-color:var(--bg-ground-darkest);
   color:var(--accent-gold);
   font-family:var(--mizi-f36);
   font-size:0.72rem;
   font-weight:700;
   padding:0.1rem 0.45rem;
   min-width:18px;
   text-align:center;
}

/* Shift launcher up when cookie banner is visible */
body.cookie-banner-active .chat-launcher {
   bottom:calc(var(--space-m) + 64px);
}

@media (max-width: 680px) {
   body.cookie-banner-active .chat-launcher {
      bottom:calc(var(--space-m) + 95px);
   }
}

.chat-panel {
   position:fixed;
   bottom:calc(var(--space-m) + 54px);
   right:var(--space-m);
   width:360px;
   max-width:calc(100vw - 2 * var(--space-s));
   height:520px;
   max-height:calc(100vh - 120px);
   background-color:var(--bg-ground);
   border:1px solid var(--accent-gold);
   box-shadow:var(--shadow-lg);
   display:flex;
   flex-direction:column;
   z-index:1002;
   transform:translateY(20px);
   opacity:0;
   visibility:hidden;
   transition:transform var(--transition-base),
                     opacity var(--transition-base),
                     visibility var(--transition-base);
}

.chat-panel.is-open {
   transform:translateY(0);
   opacity:1;
   visibility:visible;
}

.chat-header {
   padding:0.85rem var(--space-m);
   background-color:var(--bg-ground-deep);
   border-bottom:1px solid var(--line-grid);
   display:flex;
   align-items:center;
   justify-content:space-between;
}

.chat-title {
   font-family:var(--mizi-9d5);
   font-size:var(--mizi-090);
   font-weight:700;
   color:var(--text-cream-bright);
   margin:0;
   display:flex;
   align-items:center;
   gap:0.45rem;
}

.chat-close-btn {
   background:transparent;
   border:1px solid var(--line-grid);
   color:var(--text-cream);
   width:36px;
   height:36px;
   min-height:36px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   transition:background-color var(--transition-fast),
                     color var(--transition-fast);
}

.chat-close-btn:hover {
   background-color:var(--bg-surface);
   color:var(--accent-gold);
}

.chat-close-btn:active {
   background-color:var(--bg-surface-active);
}

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

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

.chat-message {
   padding:0.75rem var(--space-s);
   max-width:85%;
   font-family:var(--mizi-239);
   font-size:var(--step--1);
   line-height:1.4;
}

.chat-message-agent {
   align-self:flex-start;
   background-color:var(--bg-surface);
   color:var(--text-cream);
   border-left:2px solid var(--accent-gold);
}

.chat-message-user {
   align-self:flex-end;
   background-color:var(--accent-gold);
   color:var(--text-inverse);
   font-weight:600;
}

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

.chat-footer {
   padding:var(--space-s);
   background-color:var(--bg-ground-deep);
   border-top:1px solid var(--line-grid);
}

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

.chat-input {
   flex:1 1 auto;
   background-color:var(--bg-ground);
   border:1px solid var(--line-grid-strong);
   color:var(--text-cream-bright);
   padding:0.5rem 0.75rem;
   font-size:var(--step--1);
   min-height:40px;
}

.chat-input:focus {
   outline:2px solid var(--accent-gold);
}

.chat-send-btn {
   background-color:var(--accent-gold);
   color:var(--text-inverse);
   border:1px solid var(--accent-gold);
   padding:0.5rem 0.85rem;
   min-height:40px;
   font-family:var(--mizi-9d5);
   font-weight:700;
   cursor:pointer;
   transition:background-color var(--transition-fast);
}

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

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

.chat-send-btn:focus-visible {
   outline:2px solid var(--text-cream-bright);
}

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

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

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

.footer-brand-col p {
   color:var(--text-muted);
   font-size:var(--step--1);
   margin-top:var(--space-2xs);
   line-height:1.4;
}

.footer-nav-title {
   font-family:var(--mizi-9d5);
   font-size:var(--step--1);
   font-weight:700;
   color:var(--accent-gold);
   margin-bottom:var(--space-xs);
}

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

@media (min-width: 1024px) {
   .footer-nav-list {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:2px var(--space-xs);
   }
}

.footer-nav-link {
   font-family:var(--mizi-9d5);
   font-size:var(--step--2);
   color:var(--text-cream);
   text-decoration:none;
   padding:0.15rem 0;
   min-height:24px;
   display:inline-flex;
   align-items:center;
   transition:color var(--transition-fast);
}

.footer-nav-link:hover {
   color:var(--accent-gold);
   text-decoration:underline;
}

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

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

.footer-operator-facts {
   padding:var(--space-xs) 0;
   border-bottom:1px solid var(--line-grid-subtle);
   margin-bottom:var(--space-xs);
}

.footer-facts-list {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-s);
   list-style:none;
   padding:0;
   margin:0;
}

.footer-fact-item {
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--text-muted);
   display:flex;
   align-items:center;
   gap:0.4rem;
}

.footer-fact-item a {
   color:var(--accent-gold);
   text-decoration:none;
}

.footer-fact-item a:hover {
   text-decoration:underline;
}

.footer-legal-row {
   display:flex;
   flex-wrap:wrap;
   justify-content:space-between;
   align-items:center;
   gap:var(--space-s);
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--text-dim);
}

.footer-legal-links {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-s);
   list-style:none;
   padding:0;
   margin:0;
}

.footer-legal-links a,
.footer-legal-links button {
   font-family:var(--mizi-f36);
   font-size:var(--step--2);
   color:var(--text-muted);
   text-decoration:none;
   background:transparent;
   border:none;
   cursor:pointer;
   padding:0.25rem 0;
   min-height:32px;
   display:inline-flex;
   align-items:center;
   transition:color var(--transition-fast);
}

.footer-legal-links a:hover,
.footer-legal-links button:hover {
   color:var(--accent-gold);
   text-decoration:underline;
}

.footer-legal-links a:focus-visible,
.footer-legal-links button:focus-visible {
   outline:2px solid var(--accent-gold);
   outline-offset:2px;
}
