.site-masthead {
   position:static;
   width:100%;
   background-color:var(--ground);
   border-bottom:2px solid var(--ink);
}

.masthead-dateline {
   background-color:var(--surface-stone);
   border-bottom:1px solid var(--rule-heavy);

   padding-block:var(--space-3xs);
}

.masthead-dateline-inner {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-xs);
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:500;
   letter-spacing:0.05em;
   text-transform:uppercase;
   color:var(--ink);
}

.dateline-item {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
}

.dateline-item a {
   text-decoration:none;
   font-weight:600;
}

.dateline-item a:hover {
   text-decoration:underline;
   color:var(--accent-rose);
}

.dateline-divider {
   opacity:0.4;
}

.masthead-main {
   padding-block:var(--space-sm);
   border-bottom:1px solid var(--rule-heavy);
}

.masthead-main-inner {
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-md);
}

.brand-link {
   display:inline-flex;
   align-items:center;
   text-decoration:none;
   flex-shrink:0;
   transition:opacity var(--dur-fast) var(--ease-luxury);
}

.brand-link:hover {
   opacity:0.88;
}

.brand-link:active {
   opacity:0.72;
}

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

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

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

.counter-telemetry {
   display:none;
   flex-direction:column;
   align-items:flex-end;
   text-align:right;
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   line-height:1.3;
}

@media (min-width: 860px) {
   .counter-telemetry {
      display:flex;
   }
}

.telemetry-label {
   font-weight:700;
   letter-spacing:0.04em;
   color:var(--accent-clay);
}

.telemetry-val {
   color:var(--ink);
}

.masthead-call-btn {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   background-color:var(--ink);
   color:var(--surface);
   font-family:var(--vuja-7de);
   font-size:var(--step--1);

   font-weight:600;
   padding:0.6rem 1rem;
   border-radius:0;
   text-decoration:none;
   border:1px solid var(--ink);
   min-height:44px;
   white-space:nowrap;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury), transform var(--dur-fast) var(--ease-luxury);
}

.masthead-call-btn:hover {
   background-color:var(--accent-rose);
   color:var(--surface);
   border-color:var(--accent-rose);
}

.masthead-call-btn:active {

   background-color:var(--accent-clay);
   transform:translateY(1px);
}

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

.nav-toggle-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-3xs);
   background:var(--surface);
   color:var(--ink);
   border:1px solid var(--ink);
   border-radius:0;
   padding:0.5rem 0.85rem;
   min-height:44px;
   cursor:pointer;
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   font-weight:600;
   text-transform:uppercase;
   letter-spacing:0.05em;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury), transform var(--dur-fast) var(--ease-luxury);
}

.nav-toggle-btn:hover {
   background-color:var(--ink);
   color:var(--surface);
}

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

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

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

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

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

@media (min-width: 1080px) {
   .nav-toggle-btn {
      display:none !important;
   }
}
@media (max-width: 1079px) {
   .nav-toggle-btn {
      display:inline-flex !important;
   }
}

.masthead-nav-bar {
   background-color:var(--surface);
   border-bottom:1px solid var(--ink);
}

.masthead-nav-inner {
   display:flex;
   align-items:stretch;
   justify-content:flex-start;
   overflow-x:auto;
   scrollbar-width:thin;
   -webkit-overflow-scrolling:touch;
}

.nav-item-list {
   display:flex;
   align-items:stretch;
   list-style:none;
   padding:0;
   margin:0;
   width:100%;
}

@media (max-width: 1079px) {
   .masthead-nav-bar {
      display:none;
   }

   .masthead-nav-bar.is-open {
      display:block;
      border-top:1px solid var(--rule-heavy);
   }

   .nav-item-list {
      flex-direction:column;
      width:100%;
   }
}

/* Scrolled masthead keeps nav accessible on wide screens */
header.site-masthead.is-scrolled .masthead-nav-bar {
   display:block !important;
}
@media (min-width: 1080px) {
   header.site-masthead .masthead-nav-bar,
   header.site-masthead.is-scrolled .masthead-nav-bar {
      display:block !important;
   }
}
@media (max-width: 1079px) {
   header.site-masthead .masthead-nav-bar {
      display:none;
   }
   header.site-masthead .masthead-nav-bar.is-open,
   header.site-masthead.is-scrolled .masthead-nav-bar.is-open {
      display:block !important;
   }
   header.site-masthead.is-scrolled .masthead-nav-bar:not(.is-open) {
      display:none !important;
   }
}

.nav-tab-link {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   padding:0.8rem 1rem;
   font-family:var(--vuja-037);
   font-size:var(--step--1);
   font-weight:600;
   letter-spacing:0.02em;
   text-transform:uppercase;
   text-decoration:none;
   color:var(--ink);
   white-space:nowrap;
   border-right:1px solid var(--rule);
   min-height:44px;
   position:relative;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury);
}

.nav-tab-link:hover {
   background-color:var(--surface-stone);
   color:var(--accent-rose);
}

.nav-tab-link:active {
   background-color:var(--surface-clay);
   color:var(--ink);
}

.nav-tab-link:focus-visible {
   outline:2px solid var(--ink);
   outline-offset:-2px;
   z-index:2;
}

.nav-tab-link[aria-current="page"],
.nav-tab-link.is-active {
   background-color:var(--ground);
   color:var(--accent-rose);
   font-weight:700;
   box-shadow:inset 0 -3px 0 var(--accent-rose);
}

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2xs);
   padding:0.75rem 1.35rem;
   min-height:44px;
   max-width:100%;
   font-family:var(--vuja-037);
   font-size:var(--step--1);
   font-weight:600;
   letter-spacing:0.03em;
   text-transform:uppercase;
   text-decoration:none;
   border-radius:0;
   border:1.5px solid transparent;
   cursor:pointer;
   white-space:normal;
   text-align:center;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury), border-color var(--dur-fast) var(--ease-luxury), box-shadow var(--dur-fast) var(--ease-luxury), transform var(--dur-fast) var(--ease-luxury);
}

.btn:active {
   transform:translateY(1px);
   box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25);
}

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

.btn-primary:hover {
   background-color:var(--accent-rose);
   border-color:var(--accent-rose);
   color:var(--surface);
}

.btn-primary:active {
   background-color:var(--accent-clay);
   border-color:var(--accent-clay);
}

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

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

.btn-secondary:hover {
   background-color:var(--surface-stone);
   color:var(--ink);
}

.btn-secondary:active {
   background-color:var(--surface-clay);
}

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

.btn-accent {
   background-color:var(--accent-clay);
   color:var(--surface);
   border-color:var(--accent-clay);
}

.btn-accent:hover {
   background-color:var(--accent-rose);
   border-color:var(--accent-rose);
}

.btn-accent:active {
   background-color:var(--ink);
   border-color:var(--ink);
}

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

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

.surface-dark .btn-outline,
.site-footer .btn-outline,
[data-clip-stage] .btn-outline,
.duotone-break .btn-outline {
   color:#ffffff !important;
   border-color:rgba(255, 255, 255, 0.6) !important;
   background-color:rgba(0, 0, 0, 0.3) !important;
}

.btn-outline:hover {
   background-color:var(--ink);
   color:#ffffff !important;
}

.btn-outline:active {
   background-color:var(--accent-clay);
   border-color:var(--accent-clay);
   color:#ffffff !important;
}

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

.btn-sm {
   padding:0.45rem 0.85rem;
   font-size:var(--step--2);
   min-height:38px;
}

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

.badge {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   padding:0.2rem 0.55rem;
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:600;
   text-transform:uppercase;
   letter-spacing:0.04em;
   border-radius:0;
   border:1px solid var(--rule-heavy);
   background:var(--surface);
   color:var(--ink);
   line-height:1.2;
}

.badge-oem {
   background-color:var(--ink);
   color:var(--surface);
   border-color:var(--ink);
}

.badge-aftermarket {
   background-color:var(--surface-stone);
   color:var(--ink);
   border-color:var(--accent-clay);
}

.badge-stock {
   background-color:var(--accent-clay);
   color:var(--surface);
   border-color:var(--accent-clay);
}

.badge-warning {
   background-color:#f8e7d1;
   color:#723b06;
   border-color:#c8903a;
}

.chip {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   padding:0.4rem 0.85rem;
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   font-weight:600;
   color:var(--ink);
   background-color:var(--surface);
   border:1px solid var(--rule-heavy);
   border-radius:0;
   text-decoration:none;
   min-height:36px;
   transition:background-color var(--dur-fast) var(--ease-luxury), border-color var(--dur-fast) var(--ease-luxury);
}

.chip:hover {
   background-color:var(--surface-stone);
   border-color:var(--ink);
}

.chip:active {
   background-color:var(--surface-clay);
}

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

.card-lead {
   background-color:var(--surface);
   border:2px solid var(--ink);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
}

.card-lead-badge-row {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   gap:var(--space-2xs);
   margin-bottom:var(--space-sm);
}

.card-lead-title {
   font-size:var(--vuja-28b);
   font-weight:900;
   line-height:1.1;
   margin-bottom:var(--space-xs);
}

.card-lead-body {
   font-size:var(--vuja-58c);
   line-height:1.55;
   color:var(--ink-subtle);
   margin-bottom:var(--space-md);
}

.card-modular {
   background-color:var(--surface);
   border:1px solid var(--rule-heavy);
   padding:var(--space-sm);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   transition:border-color var(--dur-fast) var(--ease-luxury), box-shadow var(--dur-fast) var(--ease-luxury);
}

.card-modular:hover {
   border-color:var(--ink);
   box-shadow:var(--shadow-lift);
}

.card-rail {
   background-color:var(--surface-stone);
   border:1px solid var(--rule-heavy);
   padding:var(--space-sm);
}

.rail-dispatch-item {
   padding-block:var(--space-xs);
   border-bottom:1px dashed var(--rule-heavy);
}

.rail-dispatch-item:last-child {
   border-bottom:0;
   padding-bottom:0;
}

.rail-dispatch-meta {
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   color:var(--ink-muted);
   text-transform:uppercase;
   margin-bottom:var(--space-3xs);
}

.rail-dispatch-title {
   font-family:var(--vuja-c41);
   font-size:var(--step--1);
   font-weight:700;
   line-height:1.25;
   color:var(--ink);
   margin-bottom:var(--space-3xs);
}

.rail-dispatch-desc {
   font-size:var(--step--1);
   line-height:1.45;
   color:var(--ink-subtle);
}

.part-card {
   background-color:var(--surface);
   border:1px solid var(--ink);
   display:flex;
   flex-direction:column;
   overflow:hidden;
   height:100%;
}

.part-card-media {
   position:relative;
   background-color:var(--surface-stone);
   border-bottom:1px solid var(--rule-heavy);
   aspect-ratio:16 / 10;
   overflow:hidden;
}

.part-card-media img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:transform var(--dur-deliberate) var(--ease-luxury);
}

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

.part-card-body {
   padding:var(--space-sm);
   display:flex;
   flex-direction:column;
   flex-grow:1;
   justify-content:space-between;
}

.part-card-title {
   font-family:var(--vuja-c41);
   font-size:var(--vuja-b04);
   font-weight:800;
   line-height:1.2;
   margin-bottom:var(--space-2xs);
}

.part-card-desc {
   font-size:var(--step--1);
   line-height:1.5;
   color:var(--ink-subtle);
   margin-bottom:var(--space-sm);
}

.part-card-facts {
   border-top:1px solid var(--rule);
   padding-top:var(--space-xs);
   margin-bottom:var(--space-sm);
}

.fact-row {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   padding-block:var(--space-3xs);
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   border-bottom:1px dotted var(--rule);
}

.fact-row:last-child {
   border-bottom:0;
}

.fact-label {
   color:var(--ink-muted);
   text-transform:uppercase;
}

.fact-val {
   font-weight:600;
   color:var(--ink);
}

.part-price-box {
   background-color:var(--ground);
   border:1px solid var(--ink);
   padding:var(--space-xs);
   display:flex;
   align-items:baseline;
   justify-content:space-between;
   margin-bottom:var(--space-sm);
}

.part-price-label {
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   text-transform:uppercase;
   font-weight:600;
}

.part-price-amount {
   font-family:var(--vuja-7de);
   font-size:var(--vuja-58c);
   font-weight:700;
   color:var(--ink);
}

.table-wrapper {
   width:100%;
   overflow-x:auto;
   border:1px solid var(--ink);
   background-color:var(--surface);
   margin-block:var(--space-md);
   -webkit-overflow-scrolling:touch;
}

.spec-table {
   width:100%;
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   line-height:1.4;
   border-collapse:collapse;
}

.table-wrapper > .spec-table {
   min-width:580px;
}

.spec-table th,
.spec-table td {
   padding:0.75rem 0.95rem;
   text-align:left;
   border-bottom:1px solid var(--rule);
   border-right:1px solid var(--rule);
}

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

.spec-table th {
   background-color:var(--surface-stone);
   color:var(--ink);
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:0.05em;
   font-size:var(--step--2);
}

.spec-table tr:nth-child(even) td {
   background-color:var(--ground);
}

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

[data-model-stage] {
   position:relative;
   width:100%;
   min-height:380px;
   background-color:var(--surface);
   border:2px solid var(--ink);
   overflow:hidden;
   display:flex;
   align-items:center;
   justify-content:center;
}

[data-model-stage] img[data-model-still] {
   width:100%;
   height:100%;
   object-fit:cover;
   display:block;
}

[data-model-stage] canvas[data-model-canvas] {
   position:absolute;
   inset:0;
   width:100%;
   height:100%;
   touch-action:none;
}

[data-model-stage][data-model-live] img[data-model-still] {
   display:none !important;
}

.model-stage-banner {
   position:absolute;
   bottom:0.75rem;
   left:0.75rem;
   background-color:rgba(25, 23, 23, 0.88);
   color:var(--surface);
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   padding:0.35rem 0.75rem;
   border-radius:0;
   pointer-events:none;
   display:flex;
   align-items:center;
   gap:var(--space-3xs);
   backdrop-filter:blur(4px);
}

.form-group {
   margin-bottom:var(--space-sm);
   display:flex;
   flex-direction:column;
   gap:var(--space-3xs);
}

.form-label {
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   font-weight:600;
   color:var(--ink);
   text-transform:uppercase;
   letter-spacing:0.03em;
}

.form-label .form-required {
   color:var(--accent-rose);
   font-weight:700;
}

.form-input,
.form-select,
.form-textarea {
   width:100%;
   padding:0.7rem 0.9rem;
   font-family:var(--vuja-037);
   font-size:var(--vuja-58c);
   background-color:var(--surface);
   border:1.5px solid var(--rule-heavy);
   border-radius:0;
   color:var(--ink);
   min-height:44px;
   transition:border-color var(--dur-fast) var(--ease-luxury), background-color var(--dur-fast) var(--ease-luxury), box-shadow var(--dur-fast) var(--ease-luxury);
}

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

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

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

.form-input:active,
.form-select:active,
.form-textarea:active {
   background-color:#ffffff;
}

.form-input.has-error,
.form-select.has-error,
.form-textarea.has-error {
   border-color:var(--accent-rose);
   background-color:#fdf4f4;
}

.field-error-msg {
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:600;
   color:var(--accent-rose);
   margin-top:0.2rem;
}

.form-checkbox-row {
   display:flex;
   align-items:flex-start;
   gap:var(--space-2xs);
   margin-block:var(--space-sm);
   font-size:var(--step--1);
   line-height:1.4;
   cursor:pointer;
}

.form-checkbox {
   width:20px;
   height:20px;
   min-width:20px;
   margin-top:0.15rem;
   cursor:pointer;
   accent-color:var(--accent-rose);
}

.honeypot-field {
   display:none !important;
   visibility:hidden !important;
   position:absolute !important;
   left:-9999px !important;
}

.form-status-alert {
   padding:var(--space-sm);
   border-radius:0;
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   margin-bottom:var(--space-md);
   border:1px solid transparent;
}

.form-status-alert.is-success {
   background-color:#e6f4ea;
   color:#137333;
   border-color:#137333;
}

.form-status-alert.is-error {
   background-color:#fce8e6;
   color:#c5221f;
   border-color:#c5221f;
}

.site-footer {
   position:static;
   background-color:var(--ink);
   color:var(--surface);
   border-top:3px solid var(--accent-rose);
   padding-top:var(--space-2xl);
   padding-bottom:var(--space-xl);
}

.footer-nav-grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
   margin-bottom:var(--space-2xl);
}

@media (min-width: 640px) {
   .footer-nav-grid {
      grid-template-columns:repeat(2, 1fr);
   }
}

@media (min-width: 1024px) {
   .footer-nav-grid {
      grid-template-columns:repeat(4, 1fr);
   }
}

.footer-nav-col h3 {
   font-family:var(--vuja-c41);
   font-size:var(--vuja-58c);
   font-weight:800;
   letter-spacing:0.04em;
   text-transform:uppercase;
   color:var(--surface-stone);
   border-bottom:1px solid var(--rule-bright);
   padding-bottom:var(--space-2xs);
   margin-bottom:var(--space-sm);
}

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

.footer-link {
   font-family:var(--vuja-037);
   font-size:var(--step--1);
   font-weight:400;
   color:var(--surface);
   text-decoration:none;
   padding-block:0.2rem;
   display:inline-block;
   transition:color var(--dur-fast) var(--ease-luxury), transform var(--dur-fast) var(--ease-luxury);
}

.footer-link:hover {
   color:#e58e83;
   transform:translateX(2px);
}

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

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

.footer-facts-block {
   background-color:rgba(255, 255, 255, 0.04);
   border:1px solid var(--rule-bright);
   padding:var(--space-md);
   margin-bottom:var(--space-xl);
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-md);
}

@media (min-width: 768px) {
   .footer-facts-block {
      grid-template-columns:1.4fr 1fr;
      align-items:center;
   }
}

.footer-brand-logo {
   height:2.4rem;
   width:auto;
   margin-bottom:var(--space-xs);
}

.footer-fact-prose {
   font-size:var(--step--1);
   line-height:1.5;
   color:var(--surface-clay);
   margin-bottom:0;
}

.footer-contact-details {
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   line-height:1.6;
   color:var(--surface-stone);
}

.footer-contact-details a {
   color:#e58e83;
   text-decoration:underline;
}

.footer-contact-details a:hover {
   color:var(--surface);
}

.footer-legal-bar {
   border-top:1px solid var(--rule-bright);
   padding-top:var(--space-md);
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-sm);
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   color:var(--surface-clay);
}

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

.btn-cookie-manage {
   background:var(--ink);
   color:var(--surface);
   border:1px solid var(--ink);
   border-radius:0;
   padding:0.35rem 0.75rem;
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:600;
   text-transform:uppercase;
   cursor:pointer;
   min-height:38px;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury);
}

.footer-legal-actions .btn-cookie-manage {
   background:transparent;
   color:var(--surface-stone);
   border:1px solid var(--accent-clay);
}

.btn-cookie-manage:hover {
   background-color:var(--accent-clay);
   color:var(--surface);
}

.btn-cookie-manage:active {
   background-color:var(--accent-rose);
}

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

.back-to-top {
   color:var(--surface);
   text-decoration:none;
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   text-transform:uppercase;
   letter-spacing:0.05em;
   padding:0.35rem 0.65rem;
   border:1px solid var(--rule-bright);
   border-radius:0;
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   min-height:38px;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury);
}

.back-to-top:hover {
   background-color:var(--surface);
   color:var(--ink);
}

.back-to-top:active {
   background-color:var(--accent-clay);
   color:var(--surface);
}

.back-to-top:focus-visible {
   outline:2px solid var(--accent-clay);
   outline-offset:2px;
}

[data-35e6bb] {
   position:fixed;
   bottom:0;
   left:0;
   right:0;
   z-index:999;
   background-color:var(--ink);
   color:var(--surface);
   border-top:2px solid var(--accent-rose);
   padding:var(--space-xs) var(--space-gutter);
   box-shadow:0 -4px 18px rgba(0, 0, 0, 0.3);
   max-height:18vh;
   display:flex;
   align-items:center;
}

[data-35e6bb][hidden] {
   display:none !important;
}

.consent-inner {
   width:100%;
   max-width:1380px;
   margin-inline:auto;
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-xs);
}

.consent-copy {
   font-family:var(--vuja-037);
   font-size:var(--step--1);
   line-height:1.35;
   color:var(--surface-stone);
   margin:0;
   flex:1 1 320px;
}

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

.consent-copy a:hover {
   color:var(--accent-clay);
}

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

.btn-consent-accept {
   background-color:var(--accent-rose);
   color:var(--surface);
   border:1px solid var(--accent-rose);
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:700;
   padding:0.45rem 0.95rem;
   border-radius:0;
   cursor:pointer;
   min-height:40px;
   text-transform:uppercase;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury);
}

.btn-consent-accept:hover {
   background-color:var(--surface);
   color:var(--ink);
   border-color:var(--surface);
}

.btn-consent-accept:active {
   background-color:var(--accent-clay);
   color:var(--surface);
}

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

.btn-consent-decline {
   background-color:transparent;
   color:var(--surface-stone);
   border:1px solid var(--surface-clay);
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:600;
   padding:0.45rem 0.85rem;
   border-radius:0;
   cursor:pointer;
   min-height:40px;
   text-transform:uppercase;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury), border-color var(--dur-fast) var(--ease-luxury);
}

.btn-consent-decline:hover {
   color:var(--surface);
   border-color:var(--surface);
}

.btn-consent-decline:active {
   background-color:rgba(255, 255, 255, 0.1);
}

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

.chat-launcher {
   position:fixed;
   bottom:1.5rem;
   right:1.5rem;
   z-index:990;
   background-color:var(--ink);
   color:var(--surface);
   border:2px solid var(--accent-clay);
   border-radius:0;
   padding:0.65rem 1.15rem;
   min-height:48px;
   display:inline-flex;
   align-items:center;
   gap:var(--space-2xs);
   cursor:pointer;
   box-shadow:var(--shadow-float);
   font-family:var(--vuja-037);
   font-size:var(--step--1);
   font-weight:700;
   letter-spacing:0.03em;
   text-transform:uppercase;
   transition:background-color var(--dur-fast) var(--ease-luxury), border-color var(--dur-fast) var(--ease-luxury), transform var(--dur-fast) var(--ease-luxury), box-shadow var(--dur-fast) var(--ease-luxury);
}

body.has-consent-banner .chat-launcher {
   bottom:calc(18vh + 1rem);
}

.chat-launcher:hover {
   background-color:var(--accent-rose);
   border-color:var(--surface);
   box-shadow:0 14px 32px rgba(25, 23, 23, 0.32);
}

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

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

.chat-unread-badge {
   background-color:var(--accent-rose);
   color:var(--surface);
   font-family:var(--vuja-7de);
   font-size:0.75rem;
   font-weight:700;
   padding:0.15rem 0.45rem;
   border-radius:0;
   line-height:1;
}

.chat-panel {
   position:fixed;
   bottom:5.5rem;
   right:1.5rem;
   z-index:995;
   width:min(420px, calc(100vw - 2rem));
   max-height:min(600px, calc(100vh - 7rem));
   background-color:var(--surface);
   border:2px solid var(--ink);
   border-radius:0;
   box-shadow:var(--shadow-float);
   display:flex;
   flex-direction:column;
   overflow:hidden;
}

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

.chat-header {
   background-color:var(--ink);
   color:var(--surface);
   padding:var(--space-xs) var(--space-sm);
   display:flex;
   align-items:center;
   justify-content:space-between;
   border-bottom:2px solid var(--accent-clay);
}

.chat-header-info {
   display:flex;
   flex-direction:column;
}

.chat-header-title {
   font-family:var(--vuja-c41);
   font-size:var(--vuja-58c);
   font-weight:800;
   line-height:1.2;
}

.chat-header-status {
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   color:var(--surface-stone);
   display:inline-flex;
   align-items:center;
   gap:0.35rem;
}

.status-dot {
   width:7px;
   height:7px;
   border-radius:50%;
   background-color:#10b981;
}

.chat-close-btn {
   background:transparent;
   color:var(--surface);
   border:1px solid var(--rule-bright);
   border-radius:0;
   width:36px;
   height:36px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   transition:background-color var(--dur-fast) var(--ease-luxury), color var(--dur-fast) var(--ease-luxury);
}

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

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

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

.chat-messages {
   flex:1 1 auto;
   overflow-y:auto;
   padding:var(--space-sm);
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
   background-color:var(--ground);
   min-height:200px;
}

.chat-bubble {
   max-width:84%;
   padding:0.6rem 0.85rem;
   border-radius:0;
   font-size:var(--step--1);
   line-height:1.45;
   overflow-wrap:break-word;
}

.chat-bubble.from-counter {
   align-self:flex-start;
   background-color:var(--surface);
   color:var(--ink);
   border:1px solid var(--rule-heavy);
}

.chat-bubble.from-user {
   align-self:flex-end;
   background-color:var(--ink);
   color:var(--surface);
}

.chat-bubble-meta {
   font-family:var(--vuja-7de);
   font-size:0.72rem;
   margin-top:0.25rem;
   opacity:0.7;
}

.chat-intake-form,
.chat-input-row {
   padding:var(--space-xs) var(--space-sm);
   background-color:var(--surface);
   border-top:1px solid var(--rule-heavy);
}

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

.chat-input {
   flex:1 1 auto;
   padding:0.55rem 0.75rem;
   font-family:var(--vuja-037);
   font-size:var(--step--1);
   border:1px solid var(--rule-heavy);
   border-radius:0;
   min-height:40px;
}

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

.chat-send-btn {
   background-color:var(--ink);
   color:var(--surface);
   border:1px solid var(--ink);
   border-radius:0;
   padding:0.55rem 0.85rem;
   min-height:40px;
   cursor:pointer;
   font-family:var(--vuja-7de);
   font-size:var(--step--2);
   font-weight:700;
   text-transform:uppercase;
   transition:background-color var(--dur-fast) var(--ease-luxury);
}

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

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

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

.estimator-tool {
   background-color:var(--surface);
   border:2px solid var(--ink);
   padding:var(--space-md);
   margin-block:var(--space-lg);
}

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

@media (min-width: 768px) {
   .estimator-grid {
      grid-template-columns:repeat(3, 1fr);
   }
}

.estimator-output-panel {
   background-color:var(--ground);
   border:1.5px solid var(--ink);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
   align-items:flex-start;
}

.estimator-output-label {
   font-family:var(--vuja-7de);
   font-size:var(--step--1);
   text-transform:uppercase;
   color:var(--ink-muted);
   letter-spacing:0.04em;
}

.estimator-price-value {
   font-family:var(--vuja-7de);
   font-size:var(--vuja-28b);
   font-weight:800;
   color:var(--accent-rose);
   line-height:1.1;
}

.estimator-disclaimer {
   font-size:var(--step--1);
   line-height:1.45;
   color:var(--ink-subtle);
   border-top:1px solid var(--rule);
   padding-top:var(--space-xs);
   margin-top:var(--space-xs);
   width:100%;
}
