.site-header {
   position:sticky;
   top:0;
   width:100%;
   z-index:var(--z-header);
   background-color:rgba(14, 20, 36, 0.94);
   backdrop-filter:blur(14px);
   -webkit-backdrop-filter:blur(14px);
   border-bottom:var(--border-width) solid var(--surface-edge);
   transition:padding var(--dur-normal) var(--ease-out), background-color var(--dur-normal) var(--ease-out), border-color var(--dur-normal) var(--ease-out);
}

.site-header--scrolled {
   background-color:rgba(14, 20, 36, 0.98);
   border-bottom-color:rgba(13, 245, 227, 0.28);
}

.header-bar {
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-sm);
   min-height:4.5rem;
   padding-block:0.75rem;
   transition:min-height var(--dur-normal) var(--ease-out);
}

.site-header--scrolled .header-bar {
   min-height:3.75rem;
   padding-block:0.5rem;
}

.brand {
   display:inline-flex;
   align-items:center;
   text-decoration:none;
   line-height:0;
   padding:0.35rem 0.5rem;
   margin-left:max(-0.5rem, calc(50% - 50vw));
   border:1px solid transparent;
   transition:border-color var(--dur-quick) var(--ease-out);
}

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

.brand:hover { border-color:var(--surface-edge); }

.brand:active { transform:translateY(1px); }

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

.header-actions {
   display:flex;
   align-items:center;
   gap:var(--space-sm);
}

.header-status {
   display:none;
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--ink-muted);
   border-right:1px solid var(--surface-edge);
   padding-right:var(--space-sm);
}

@media (min-width: 840px) {
   .header-status {

      display:inline-flex;
      align-items:center;
      gap:0.5rem;
   }
}

.header-status__dot {
   width:7px;
   height:7px;
   background-color:var(--electric);
   box-shadow:0 0 8px var(--electric);
   display:inline-block;
}

.menu-toggle {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:0.65rem;
   min-height:44px;
   min-width:44px;
   padding:0.6rem 1.15rem;
   background-color:var(--surface);
   color:var(--ink);
   border:var(--border-width) solid var(--surface-edge);
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:500;
   letter-spacing:0.08em;
   text-transform:uppercase;
   cursor:pointer;
   user-select:none;
   transition:background-color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out);
}

.menu-toggle__label { display:inline-block; }

.menu-toggle .icon {
   width:1.15rem;
   height:1.15rem;
   fill:currentColor;
   flex-shrink:0;
   transition:transform var(--dur-quick) var(--ease-out);
}

.menu-toggle:hover {
   background-color:var(--surface-elevated);
   border-color:var(--electric);
   color:var(--electric);
}

.menu-toggle:active {
   background-color:var(--concrete-wash);
   transform:translateY(1px);
}

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

.nav-overlay {
   position:fixed;
   inset:0;
   width:100vw;
   height:100vh;
   z-index:var(--z-overlay);
   background-color:rgba(14, 20, 36, 0.985);
   backdrop-filter:blur(22px);
   -webkit-backdrop-filter:blur(22px);
   display:flex;
   flex-direction:column;
   overflow-y:auto;
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transition:opacity var(--dur-deliberate) var(--ease-out), visibility var(--dur-deliberate) var(--ease-out);
}

.nav-overlay.is-open {
   opacity:1;
   visibility:visible;
   pointer-events:auto;
}

.nav-overlay__header {
   display:flex;
   align-items:center;
   justify-content:space-between;
   min-height:4.5rem;
   padding-block:0.75rem;
   border-bottom:var(--border-width) solid var(--surface-edge);
}

.nav-overlay__close {
   display:inline-flex;
   align-items:center;
   gap:0.65rem;
   min-height:44px;
   min-width:44px;
   padding:0.6rem 1.15rem;
   background-color:var(--surface);
   color:var(--ink);
   border:var(--border-width) solid var(--surface-edge);
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:500;
   letter-spacing:0.08em;
   text-transform:uppercase;
   cursor:pointer;
   transition:background-color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out);
}

.nav-overlay__close .icon {
   width:1.15rem;
   height:1.15rem;
   fill:currentColor;
}

.nav-overlay__close:hover {
   background-color:var(--surface-elevated);
   border-color:var(--safety-line);
   color:var(--safety-line);
}

.nav-overlay__close:active { transform:translateY(1px); }

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

.nav-overlay__body {
   flex:1 0 auto;
   padding-block:var(--space-xl) var(--space-2xl);

   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
   align-items:start;
}

@media (min-width: 980px) {
   .nav-overlay__body {
      grid-template-columns:1.5fr 1fr;
      gap:var(--space-2xl);
      align-items:stretch;
   }
}

.nav-links {
   list-style:none;
   padding:0;
   margin:0;
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}

.nav-link-item { border-bottom:var(--border-width) solid rgba(34, 46, 74, 0.6); }

.nav-link {
   display:flex;
   align-items:baseline;
   justify-content:space-between;
   padding:0.6rem 0.4rem;
   min-height:48px;
   font-family:var(--fina-a41);
   font-size:clamp(1.8rem, 1.4rem + 2vw, 3.2rem);
   font-weight:800;
   text-transform:uppercase;
   letter-spacing:0.02em;
   color:var(--ink);
   text-decoration:none;
   transition:color var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out), padding-left var(--dur-quick) var(--ease-out);
}

.nav-link__meta {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   letter-spacing:0.08em;
   color:var(--ink-faint);
   text-transform:uppercase;
   font-weight:500;
}

.nav-link:hover {
   color:var(--electric);
   padding-left:0.8rem;
}

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

.nav-link:active { transform:translateY(1px); }

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

.nav-link[aria-current="page"] {
   color:var(--electric);
   border-left:3px solid var(--electric);
   padding-left:0.8rem;
}

.nav-overlay__visual {
   display:none;
   flex-direction:column;
   justify-content:space-between;
   background-color:var(--surface);
   border:var(--border-width) solid var(--surface-edge);
   padding:var(--space-lg);
   min-height:100%;
}

@media (min-width: 980px) {
   .nav-overlay__visual { display:flex; }
}

.nav-visual__frame {
   position:relative;
   border:var(--border-width) solid var(--surface-edge);
   background-color:var(--ground);
   margin-bottom:var(--space-md);
   overflow:hidden;
}

.nav-visual__frame img {

   width:100%;
   height:280px;
   object-fit:cover;
   filter:contrast(1.05) brightness(0.92);
}

.nav-visual__caption {
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   color:var(--ink-muted);
   line-height:1.5;
   border-left:2px solid var(--electric);
   padding-left:0.75rem;
}

.nav-visual__meta {
   margin-top:var(--space-md);
   padding-top:var(--space-md);
   border-top:var(--border-width) solid var(--surface-edge);
   display:flex;
   flex-direction:column;
   gap:0.5rem;
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   color:var(--ink-muted);
   text-transform:uppercase;
   letter-spacing:0.05em;
}

.nav-visual__meta strong { color:var(--ink); }

.seal-mark {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   position:relative;
   width:94px;
   height:94px;
   border:1px dashed var(--electric);
   border-radius:50%;
   color:var(--electric);
   user-select:none;
   background-color:#0e1424;
   box-shadow:inset 0 0 16px rgba(13, 245, 227, 0.08);
   flex-shrink:0;
   vertical-align:middle;
}

.seal-mark::before {
   content:'';
   position:absolute;
   inset:5px;
   border:1px solid rgba(13, 245, 227, 0.35);
   border-radius:50%;
}

.seal-mark__inner {
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   text-align:center;
   font-family:var(--fina-54b);
   font-size:0.55rem;
   line-height:1.15;
   letter-spacing:0.12em;
   text-transform:uppercase;
   color:var(--electric);
   padding:0.4rem;
}

.seal-mark__year {
   font-family:var(--fina-a41);
   font-size:1.15rem;
   font-weight:900;
   line-height:1;
   color:var(--ink);
   margin-block:0.1rem;
}

.seal-mark--lg {
   width:128px;
   height:128px;
}

.seal-mark--lg .seal-mark__inner { font-size:0.65rem; }

.seal-mark--lg .seal-mark__year { font-size:1.6rem; }

.seal-mark--sm {
   width:68px;
   height:68px;
}

.seal-mark--sm .seal-mark__inner { font-size:0.45rem; }

.seal-mark--sm .seal-mark__year { font-size:0.95rem; }

.marquee-strip {
   width:100%;
   overflow:hidden;
   white-space:nowrap;
   background-color:var(--surface);
   border-block:var(--border-width) solid var(--surface-edge);
   padding-block:0.65rem;
   position:relative;
   user-select:none;
}

.marquee-strip--electric {
   background-color:var(--electric);
   color:var(--ground);
   border-color:var(--electric);
}

.marquee-strip--electric .marquee-track span {
   color:var(--ground);
   font-weight:700;
}

.marquee-track {
   display:inline-flex;
   gap:var(--space-lg);
   align-items:center;
   will-change:transform;
   animation:marquee-scroll 32s linear infinite;
}

.marquee-strip:hover .marquee-track { animation-play-state:paused; }

.marquee-item {
   display:inline-flex;
   align-items:center;
   gap:var(--space-xs);
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:500;
   letter-spacing:0.12em;
   text-transform:uppercase;
   color:var(--ink-muted);
   white-space:nowrap;
}

.marquee-item .sep {
   color:var(--electric);
   font-weight:700;
}

@keyframes marquee-scroll {
   from { transform:translateX(0); }
   to { transform:translateX(-50%); }
}

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:0.65rem;
   min-height:48px;
   padding:0.75rem 1.6rem;
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.08em;
   text-transform:uppercase;
   text-decoration:none;
   cursor:pointer;
   user-select:none;
   border:var(--border-width) solid transparent;
   line-height:1.2;
   white-space:nowrap;
   text-align:center;
   flex-shrink:0;
   transition:background-color var(--dur-normal) var(--ease-out), border-color var(--dur-normal) var(--ease-out), color var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out), transform var(--dur-quick) var(--ease-out);
}

.btn .icon {
   width:1.15rem;
   height:1.15rem;
   fill:currentColor;
   flex-shrink:0;
   transition:transform var(--dur-quick) var(--ease-out);
}

.btn--primary {
   background-color:var(--electric);
   color:var(--ground);
   border-color:var(--electric);
}

.btn--primary:hover {
   background-color:#38f8ea;
   border-color:#38f8ea;
   box-shadow:0 0 16px var(--electric-glow);
   color:var(--ground);
}

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

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

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

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

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

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

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

.btn--safety:hover {
   background-color:var(--safety-line);
   color:var(--ground);
}

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

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

.btn--sm {
   min-height:40px;
   padding:0.5rem 1.1rem;
   font-size:var(--text-2xs);
}

.btn--full { width:100%; }

.inset-panel {
   background-color:var(--surface);
   border:var(--border-width) solid var(--surface-edge);
   padding:clamp(1.2rem, 1rem + 1.2vw, 2.2rem);
   margin-block:var(--space-lg);
   position:relative;
}

.inset-panel--electric { border-left:3px solid var(--electric); }

.inset-panel--safety { border-left:3px solid var(--safety-line); }

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

.inset-panel__title {
   font-family:var(--fina-a41);
   font-size:var(--text-lg);
   font-weight:800;
   text-transform:uppercase;
   margin:0;
}

.inset-panel__meta {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   letter-spacing:0.08em;
   color:var(--electric);
   text-transform:uppercase;
}

.data-spec-table {
   width:100%;
   border-collapse:collapse;
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   text-align:left;
}

.data-spec-table th,
.data-spec-table td {
   padding:0.85rem 1rem;
   border-bottom:1px solid var(--surface-edge);
   vertical-align:top;
}

.data-spec-table th:first-child,
.data-spec-table td:first-child { min-width:140px; }

.data-spec-table th {
   background-color:var(--surface-elevated);
   color:var(--ink);
   font-weight:600;
   letter-spacing:0.08em;
   text-transform:uppercase;
   font-size:var(--text-2xs);
   white-space:nowrap;
}

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

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

.data-spec-table tr:hover td { background-color:rgba(35, 49, 82, 0.4); }

.item-strip-block {
   display:flex;
   flex-direction:column;
   gap:var(--space-sm);
   padding:var(--space-md);
   background-color:var(--surface);
   border:var(--border-width) solid var(--surface-edge);
   margin-block:var(--space-md);
   transition:border-color var(--dur-normal) var(--ease-out), background-color var(--dur-normal) var(--ease-out);
}

.item-strip-block .btn {
   white-space:normal;
   text-align:center;
   word-break:normal;
}

.item-strip-block:hover {
   border-color:var(--electric);
   background-color:var(--surface-elevated);
}

@media (min-width: 768px) {
   .item-strip-block {
      display:grid;
      grid-template-columns:140px 1fr auto;
      align-items:center;
      gap:var(--space-md);
   }
}

.item-strip__thumb {
   width:100%;
   height:110px;
   object-fit:cover;
   border:1px solid var(--surface-edge);
}

.item-strip__body h3 {
   font-size:var(--text-md);
   margin-bottom:0.35rem;
}

.item-strip__body p {
   font-size:var(--text-sm);
   color:var(--ink-muted);
   margin:0;
}

.item-strip__action {
   display:flex;
   flex-direction:column;
   gap:0.4rem;
   align-items:flex-start;
}

@media (min-width: 768px) {
   .item-strip__action { align-items:flex-end; }
}

.price-tag {
   font-family:var(--fina-54b);
   font-size:var(--text-md);
   font-weight:600;
   color:var(--electric);
   letter-spacing:0.04em;
   white-space:nowrap;
}

.price-basis {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   color:var(--ink-faint);
   letter-spacing:0.05em;
   text-transform:uppercase;
   white-space:normal;
}

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

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

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

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

.form-label {
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:500;
   letter-spacing:0.06em;
   text-transform:uppercase;
   color:var(--ink);
   display:flex;
   align-items:center;
   justify-content:space-between;
}

.form-label__note {
   font-size:var(--text-2xs);
   color:var(--ink-faint);
   font-weight:400;
   text-transform:none;
}

.form-control {
   min-height:48px;
   width:100%;
   padding:0.75rem 1rem;
   background-color:var(--ground);
   color:var(--ink);
   border:var(--border-width) solid var(--surface-edge);
   font-family:var(--fina-a93);
   font-size:var(--text-base);
   line-height:1.4;
   transition:border-color var(--dur-quick) var(--ease-out), background-color var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}

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

.form-control:focus {
   outline:none;
   border-color:var(--electric);
   background-color:var(--surface);
   box-shadow:0 0 0 3px var(--electric-dim);
}

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

select.form-control {
   appearance:none;
   background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23909EB6' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
   background-repeat:no-repeat;
   background-position:right 1rem center;
   padding-right:2.5rem;
}

.form-feedback {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   line-height:1.4;
   display:none;
   margin-top:0.2rem;
}

.form-group.has-error .form-control {
   border-color:var(--safety-line);
   background-color:rgba(255, 94, 91, 0.04);
}

.form-group.has-error .form-feedback {
   display:block;
   color:var(--safety-line);
}

.form-checkbox {
   display:flex;
   align-items:flex-start;
   gap:0.75rem;
   cursor:pointer;
   user-select:none;
   margin-block:0.5rem;
}

.form-checkbox input[type="checkbox"] {
   appearance:none;
   width:20px;
   height:20px;
   min-width:20px;
   margin-top:0.25rem;
   border:1px solid var(--surface-edge);
   background-color:var(--ground);
   display:grid;
   place-content:center;
   cursor:pointer;
   transition:border-color var(--dur-quick) var(--ease-out), background-color var(--dur-quick) var(--ease-out);
}

.form-checkbox input[type="checkbox"]:hover { border-color:var(--electric); }

.form-checkbox input[type="checkbox"]:checked {
   background-color:var(--electric);
   border-color:var(--electric);
}

.form-checkbox input[type="checkbox"]:checked::after {
   content:'';
   width:8px;
   height:8px;
   background-color:var(--ground);
}

.form-checkbox input[type="checkbox"]:focus-visible {
   outline:2px solid var(--electric);
   outline-offset:2px;
}

.form-checkbox__text {
   font-size:var(--text-sm);
   color:var(--ink-muted);
   line-height:1.5;
}

.form-status {
   padding:1rem 1.25rem;
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   line-height:1.5;
   display:none;
   border:1px solid transparent;
}

.form-status--success {
   display:block;
   background-color:rgba(13, 245, 227, 0.08);
   border-color:var(--electric);
   color:var(--electric);
}

.form-status--error {
   display:block;
   background-color:rgba(255, 94, 91, 0.08);
   border-color:var(--safety-line);
   color:var(--safety-line);
}

.site-footer {
   background-color:#0a0f1b;
   border-top:var(--border-width) solid var(--surface-edge);
   padding-block:var(--space-2xl) var(--space-xl);
   position:relative;
   z-index:var(--z-base);
   margin-top:auto;
}

.footer-main {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
   padding-bottom:var(--space-xl);
   border-bottom:1px solid var(--surface-edge);
}

@media (min-width: 900px) {
   .footer-main { grid-template-columns:1.6fr 1fr 1fr; }
}

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

.footer-brand img {
   height:2.6rem;
   width:auto;
   display:block;
}

.footer-statement {
   font-size:var(--text-sm);
   color:var(--ink-muted);
   max-width:480px;
   line-height:1.6;
}

.footer-nav-col h3 {
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   letter-spacing:0.12em;
   text-transform:uppercase;
   color:var(--electric);
   margin-bottom:var(--space-sm);
}

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

.footer-nav-list a {
   font-family:var(--fina-a93);
   font-size:var(--text-base);
   color:var(--ink-muted);
   text-decoration:none;
   min-height:36px;
   display:inline-flex;
   align-items:center;
   transition:color var(--dur-quick) var(--ease-out), padding-left var(--dur-quick) var(--ease-out);
}

.footer-nav-list a:hover {
   color:var(--ink);
   padding-left:0.4rem;
}

.footer-nav-list a:focus-visible {
   outline:2px solid var(--electric);
   outline-offset:2px;
}

.footer-facts-block {
   display:flex;
   flex-direction:column;
   gap:0.65rem;
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   color:var(--ink-muted);
   line-height:1.5;
}

.footer-fact-item {
   display:flex;
   align-items:flex-start;
   gap:0.55rem;
}

.footer-fact-item .icon {
   width:1rem;
   height:1rem;
   fill:var(--electric);
   margin-top:0.2rem;
   flex-shrink:0;
}

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

.footer-fact-item a:hover { color:var(--electric); }

.footer-legal-bar {
   padding-top:var(--space-lg);
   display:flex;
   flex-direction:column;
   gap:var(--space-md);
}

@media (min-width: 900px) {
   .footer-legal-bar {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
   }
}

.footer-legal-links {
   display:flex;
   flex-wrap:wrap;
   gap:0.75rem 1.4rem;
   list-style:none;
   padding:0;
   margin:0;
}

.footer-legal-links a,
.footer-legal-links button {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   letter-spacing:0.06em;
   text-transform:uppercase;
   color:var(--ink-muted);
   text-decoration:none;
   cursor:pointer;
   min-height:36px;
   display:inline-flex;
   align-items:center;
   transition:color var(--dur-quick) var(--ease-out);
}

.footer-legal-links a:hover,
.footer-legal-links button:hover { color:var(--electric); }

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

.footer-copy {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   color:var(--ink-faint);
   letter-spacing:0.04em;
}

.consent-banner {
   position:fixed;
   bottom:0;
   left:0;
   right:0;
   z-index:var(--z-consent);
   background-color:rgba(14, 20, 36, 0.98);
   border-top:var(--border-heavy) solid var(--electric);
   box-shadow:0 -8px 24px rgba(0, 0, 0, 0.5);
   padding:0.35rem var(--pad-inline) !important;
   max-height:20vh !important;
   transform:translateY(110%);
   transition:transform var(--dur-deliberate) var(--ease-out);
}

@media (max-width: 480px) {
   .consent-banner {
      max-height:18vh !important;
      padding:0.25rem 0.75rem !important;
   }
   .consent-banner__text {
      font-size:var(--text-2xs) !important;
      line-height:1.25 !important;
   }
   .consent-banner__actions .btn {
      min-height:32px !important;
      padding:0.25rem 0.5rem !important;
      font-size:0.65rem !important;
   }
}

.consent-banner.is-visible { transform:translateY(0); }

.consent-banner__content {
   max-width:var(--container-max);
   margin-inline:auto;
   display:flex;
   flex-direction:column;
   gap:0.4rem;
}

@media (min-width: 820px) {
   .consent-banner__content {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
      gap:var(--space-md);
   }
}

.consent-banner__text {
   font-family:var(--fina-a93);
   font-size:var(--text-sm);
   line-height:1.45;
   color:var(--ink);
   margin:0;
}

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

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

.chat-launcher {
   position:fixed;
   bottom:1.25rem;
   right:1.25rem;
   z-index:var(--z-chat);
   display:inline-flex;
   align-items:center;
   gap:0.55rem;
   min-height:48px;
   padding:0.65rem 1.15rem;
   background-color:var(--surface);
   color:var(--ink);
   border:var(--border-width) solid var(--surface-edge);
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.08em;
   text-transform:uppercase;
   cursor:pointer;
   user-select:none;
   box-shadow:0 4px 18px rgba(0, 0, 0, 0.4);
   transition:bottom var(--dur-normal) var(--ease-out), background-color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);
}

.chat-launcher .icon {
   width:1.2rem;
   height:1.2rem;
   fill:var(--electric);
   transition:transform var(--dur-quick) var(--ease-out);
}

.chat-launcher:hover {
   background-color:var(--surface-elevated);
   border-color:var(--electric);
   color:var(--electric);
   transform:translateY(-2px);
}

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

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

.chat-launcher.is-raised { bottom:5rem; }

.chat-badge {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-width:18px;
   height:18px;
   padding:0 4px;
   background-color:var(--safety-line);
   color:var(--ink);
   font-family:var(--fina-54b);
   font-size:0.65rem;
   font-weight:700;
   border-radius:9px;
   line-height:1;
}

.chat-panel {
   position:fixed;
   bottom:1.25rem;
   right:1.25rem;
   z-index:calc(var(--z-chat) + 1);
   width:min(390px, calc(100vw - 2.5rem));
   height:min(560px, calc(100vh - 4rem));
   background-color:var(--surface);
   border:var(--border-width) solid var(--surface-edge);
   box-shadow:0 12px 36px rgba(0, 0, 0, 0.6);
   display:flex;
   flex-direction:column;
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transform:translateY(16px);
   transition:opacity var(--dur-normal) var(--ease-out), transform var(--dur-normal) var(--ease-out), visibility var(--dur-normal) var(--ease-out);
}

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

.chat-panel__header {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:0.85rem 1rem;
   background-color:var(--ground);
   border-bottom:1px solid var(--surface-edge);
}

.chat-panel__title {
   display:flex;
   flex-direction:column;
}

.chat-panel__heading {
   font-family:var(--fina-54b);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--ink);
   margin:0;
}

.chat-panel__sub {
   font-family:var(--fina-54b);
   font-size:var(--text-2xs);
   color:var(--electric);
}

.chat-panel__close {
   min-height:36px;
   min-width:36px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   color:var(--ink-muted);
   cursor:pointer;
   border:1px solid transparent;
   transition:color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out);
}

.chat-panel__close .icon {
   width:1.15rem;
   height:1.15rem;
   fill:currentColor;
}

.chat-panel__close:hover {
   color:var(--safety-line);
   border-color:var(--surface-edge);
}

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

.chat-panel__close:focus-visible {
   outline:2px solid var(--electric);
   outline-offset:2px;
}

.chat-messages {
   flex:1 1 auto;
   overflow-y:auto;
   padding:1rem;
   display:flex;
   flex-direction:column;
   gap:0.85rem;
}

.chat-msg {
   max-width:85%;
   padding:0.65rem 0.85rem;
   font-size:var(--text-sm);
   line-height:1.45;
   border:1px solid transparent;
}

.chat-msg--in {
   align-self:flex-start;
   background-color:var(--ground);
   border-color:var(--surface-edge);
   color:var(--ink);
}

.chat-msg--out {
   align-self:flex-end;
   background-color:var(--electric-dim);
   border-color:var(--electric);
   color:var(--ink);
}

.chat-msg__meta {
   font-family:var(--fina-54b);
   font-size:0.65rem;
   color:var(--ink-faint);
   margin-top:0.3rem;
   text-align:right;
}

.chat-panel__footer {
   padding:0.75rem 1rem;
   background-color:var(--ground);
   border-top:1px solid var(--surface-edge);
}

.chat-form {
   display:flex;
   gap:0.5rem;
}

.chat-input {
   flex:1;
   min-height:42px;
   padding:0.5rem 0.8rem;
   background-color:var(--surface);
   color:var(--ink);
   border:1px solid var(--surface-edge);
   font-family:var(--fina-a93);
   font-size:var(--text-sm);
}

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

.chat-send {
   min-height:42px;
   min-width:44px;
   padding:0.5rem 0.85rem;
   background-color:var(--electric);
   color:var(--ground);
   display:inline-flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   transition:background-color var(--dur-quick) var(--ease-out);
}

.chat-send .icon {
   width:1.1rem;
   height:1.1rem;
   fill:currentColor;
}

.chat-send:hover { background-color:#38f8ea; }

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

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