
.brand {
   display:inline-flex;
   align-items:center;
   text-decoration:none;
   line-height:1;
}

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

.brand--footer img {
   height:2.4rem;
   width:auto;
}

.sidebar { display:none; }

@media (min-width: 1024px) {
   .sidebar {
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      position:fixed;

      top:0;
      left:0;
      bottom:0;
      width:var(--sidebar-w);
      background-color:var(--surface);
      border-right:1px solid var(--line);
      padding:var(--space-xl) var(--space-l) var(--space-m);
      z-index:100;
      overflow-y:auto;
   }

   .sidebar__head {
      display:flex;
      flex-direction:column;
      gap:var(--space-m);
   }

   .sidebar__geo-tag {
      font-family:var(--tesi-fa0);
      font-size:var(--step--2);
      letter-spacing:0.1em;
      text-transform:uppercase;
      color:var(--ink-soft);
      padding-bottom:var(--space-xs);
      border-bottom:1px solid var(--line);
      display:flex;
      justify-content:space-between;
   }

   .sidebar__nav { margin-top:var(--space-xl); }

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

   .sidebar__link {
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:var(--space-xs) var(--space-s);
      color:var(--ink);
      text-decoration:none;
      font-family:var(--tesi-fa0);
      font-size:var(--step--1);
      letter-spacing:0.04em;
      border-left:2px solid transparent;
      transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
   }

   .sidebar__link:hover {
      background-color:var(--surface-2);
      border-left-color:var(--ink-soft);
      color:var(--ink);
   }

   .sidebar__link:active {
      background-color:var(--surface-2);
      border-left-color:var(--accent);
      color:#62381b;
   }

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

   .sidebar__link[aria-current="page"] {
      background-color:var(--surface-2);
      border-left-color:var(--accent);
      font-weight:700;
      color:#62381b;
   }
   .sidebar__link span { color:inherit; }
   .sidebar__link[aria-current="page"] span { color:#62381b; }

   .sidebar__link svg.icon {
      width:14px;
      height:14px;
      opacity:0.6;
      transition:transform var(--transition-fast), opacity var(--transition-fast);
   }

   .sidebar__link:hover svg.icon {
      transform:translateX(3px);
      opacity:1;
   }

   .sidebar__foot {
      margin-top:var(--space-xl);
      padding-top:var(--space-m);
      border-top:1px solid var(--line);
      font-family:var(--tesi-fa0);
      font-size:var(--step--2);
      line-height:1.45;
      color:var(--ink-soft);
   }

   .sidebar__foot-row {
      margin-bottom:var(--space-2xs);
      display:flex;
      align-items:center;
      gap:var(--space-2xs);
   }

   .sidebar__foot-link {
      color:var(--ink);
      text-decoration:none;
      border-bottom:1px dotted var(--line);
   }

   .sidebar__foot-link:hover {
      color:var(--accent);
      border-bottom-color:var(--accent);
   }
}

.desk-condensed-bar { display:none; }

@media (min-width: 1024px) {
   .desk-condensed-bar {

      display:flex;
      position:fixed;
      top:0;
      left:var(--sidebar-w);
      right:0;
      height:var(--header-condensed-h);
      background-color:var(--surface);
      border-bottom:1px solid var(--line);
      padding:0 var(--space-xl);
      align-items:center;
      justify-content:space-between;
      z-index:90;
      transform:translateY(-100%);
      transition:transform var(--transition-mid);
   }

   .desk-condensed-bar.bar-revealed { transform:translateY(0); }

   .desk-condensed-bar__brand {
      display:inline-flex;
      align-items:center;
   }

   .desk-condensed-bar__brand img {
      height:1.6rem;
      width:auto;
   }

   .desk-condensed-bar__meta {
      font-family:var(--tesi-fa0);
      font-size:var(--step--2);
      color:var(--ink-soft);
      letter-spacing:0.05em;

   }

   .desk-condensed-bar__cta {
      display:inline-flex;
      align-items:center;
      gap:var(--space-2xs);
      font-family:var(--tesi-fa0);
      font-size:var(--step--1);
      color:var(--accent-ink);
      background-color:var(--accent);
      padding:var(--space-2xs) var(--space-m);
      text-decoration:none;
      font-weight:700;
      transition:background-color var(--transition-fast), transform var(--transition-fast);
   }

   .desk-condensed-bar__cta:hover { background-color:#8b4e25; }

   .desk-condensed-bar__cta:active { background-color:#723e1b; }

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

.mobile-header {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:var(--space-s) var(--space-s);
   background-color:var(--ground);
   border-bottom:1px solid var(--line);
   width:100%;
   box-sizing:border-box;
}

.mobile-header .brand { max-width:40vw; }

.mobile-header .brand img {
   height:1.7rem;
   width:auto;
}

.mobile-header__geo {
   font-family:var(--tesi-fa0);
   font-size:var(--step--2);
   color:var(--ink-soft);
   letter-spacing:0.05em;
   text-transform:uppercase;
}

@media (min-width: 1024px) {
   .mobile-header { display:none; }
}

/* Bottom Navigation Dock (Phone up to 1023px) */
.dock-nav {
   position:fixed;
   inset:auto 0 0 0;
   height:var(--dock-h);
   background-color:var(--surface);
   border-top:1px solid var(--line);
   padding-bottom:env(safe-area-inset-bottom);
   z-index:1000;
   display:flex;
   box-shadow:0 -4px 12px rgba(43, 38, 28, 0.08);
}

@media (min-width: 1024px) {
   .dock-nav { display:none; }
}

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

.dock-nav__item svg.icon {
   width:22px;
   height:22px;
}

.dock-nav__label {
   font-family:var(--tesi-843);
   font-size:11px;
   line-height:1.1;
   white-space:nowrap;
   letter-spacing:0.02em;
}

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

.dock-nav__item:active {
   color:var(--accent);
   background-color:var(--surface-2);
}

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

.dock-nav__item[aria-current="page"] {
   color:var(--accent);
   font-weight:700;
}

/* Mobile Drawer (Triggered by dock Menu button) */
.mobile-drawer-backdrop {
   position:fixed;
   inset:0;
   background-color:rgba(43, 38, 28, 0.6);
   backdrop-filter:blur(4px);
   -webkit-backdrop-filter:blur(4px);
   z-index:1050;
   opacity:0;
   pointer-events:none;
   transition:opacity var(--transition-mid);
}

.mobile-drawer-backdrop.is-open {
   opacity:1;
   pointer-events:auto;
}

.mobile-drawer {
   position:fixed;
   top:0;
   right:0;
   bottom:0;
   width:min(340px, 86vw);
   background-color:var(--ground);
   border-left:1px solid var(--line);
   z-index:1100;
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   padding:var(--space-l) var(--space-m);
   transform:translateX(100%);
   transition:transform var(--transition-mid);
   box-shadow:-8px 0 24px rgba(43, 38, 28, 0.15);
}

.mobile-drawer.is-open { transform:translateX(0); }

.mobile-drawer__head {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding-bottom:var(--space-m);
   border-bottom:1px solid var(--line);
}

.mobile-drawer__close {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:44px;
   height:44px;
   border:1px solid var(--line);
   color:var(--ink);
   background:var(--surface);
   transition:background-color var(--transition-fast), border-color var(--transition-fast);
}

.mobile-drawer__close:hover {
   background-color:var(--surface-2);
   border-color:var(--ink);
}

.mobile-drawer__close:active {
   background-color:var(--ink);
   color:var(--ground);
}

.mobile-drawer__close:focus-visible { outline:2px solid var(--accent); }

.mobile-drawer__nav {
   margin-top:var(--space-m);
   flex:1 1 auto;
}

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

.mobile-drawer__link {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:var(--space-xs) var(--space-s);
   min-height:44px;
   font-family:var(--tesi-fa0);
   font-size:var(--tesi-546);
   color:var(--ink);
   text-decoration:none;
   border:1px solid transparent;
   transition:background-color var(--transition-fast), border-color var(--transition-fast);
}

.mobile-drawer__link:hover {
   background-color:var(--surface);
   border-color:var(--line);
}

.mobile-drawer__link:active {
   background-color:var(--surface-2);
   color:var(--accent);
}

.mobile-drawer__link[aria-current="page"] {
   background-color:var(--surface);
   border-color:var(--accent);
   color:var(--accent);
   font-weight:700;
}

.mobile-drawer__foot {
   padding-top:var(--space-m);
   border-top:1px solid var(--line);
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   color:var(--ink-soft);
}

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2xs);
   min-height:var(--control-h, 48px);
   padding:var(--space-2xs) var(--space-m);
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   letter-spacing:0.05em;
   text-transform:uppercase;
   text-decoration:none;
   cursor:pointer;
   border:1px solid transparent;
   border-radius:0;
   transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
   text-align:center;
   box-sizing:border-box;
   max-width:100%;
}

.btn--primary {
   background-color:var(--accent);
   color:var(--accent-ink);
   border-color:var(--accent);
   font-weight:700;
   white-space:normal;
   word-break:break-word;
}

.btn--primary:hover {
   background-color:#8b4e25;
   border-color:#8b4e25;
}

.btn--primary:active {
   background-color:#723e1b;
   border-color:#723e1b;
   transform:translateY(1px);
}

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

.btn--secondary {
   background-color:var(--surface);
   color:var(--ink);
   border-color:var(--line);
   white-space:normal;
   word-break:break-word;
}

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

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

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

.btn--text {
   background:transparent;
   color:var(--ink);
   border-color:transparent;
   padding:var(--space-2xs) var(--space-xs);
   text-decoration:underline;
   text-underline-offset:4px;
}

.btn--text:hover { color:var(--accent); }

.btn--text:active { color:#723e1b; }

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

.form-stack {
   display:flex;
   flex-direction:column;
   gap:var(--space-m);
   max-width:var(--measure);
}

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

.form-label {
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   text-transform:uppercase;
   letter-spacing:0.05em;
   color:var(--ink);
   display:flex;
   justify-content:space-between;
}

.form-label .optional {
   color:var(--ink-soft);
   text-transform:none;
   font-size:var(--step--2);
}

.form-input,
.form-select,
.form-textarea {
   width:100%;
   min-height:44px;
   background-color:var(--surface-2);
   border:1px solid var(--line);
   color:var(--ink);
   padding:var(--space-2xs) var(--space-s);
   border-radius:0;
   font-family:var(--tesi-fa0);
   font-size:16px;
   transition:border-color var(--transition-fast), background-color var(--transition-fast);
}

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

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

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

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

.form-checkbox-row {
   display:flex;
   align-items:flex-start;
   gap:var(--space-s);
   min-height:44px;
}

.form-checkbox-row input[type="checkbox"] {
   width:20px;
   height:20px;
   margin-top:3px;
   accent-color:var(--accent);
   cursor:pointer;
   flex-shrink:0;
}

.form-checkbox-row label {
   font-size:var(--step--1);
   color:var(--ink-soft);
   line-height:1.4;
   cursor:pointer;
}

.form-error {
   font-family:var(--tesi-fa0);
   font-size:var(--step--2);
   color:#8b2b2b;
   display:none;
   margin-top:2px;
}

.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
   border-color:#8b2b2b;
   background-color:#edd5d5;
}

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

.form-status {
   padding:var(--space-s);
   border:1px solid var(--line);
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   display:none;
}

.form-status--success {
   background-color:#dbe5d8;
   border-color:#6d8b67;
   color:#24421e;
}

.form-status--error {
   background-color:#edd5d5;
   border-color:#aa5050;
   color:#631717;
}

.spec-table {
   width:100%;
   border:1px solid var(--line);
   background:var(--surface);
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
}

.spec-table th {
   background-color:var(--surface-2);
   border-bottom:2px solid var(--line);
   padding:var(--space-xs) var(--space-s);
   color:var(--ink);
}

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

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

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

.pullquote-spread {
   padding-block:var(--space-3xl);
   border-top:2px solid var(--line);
   border-bottom:2px solid var(--line);
   background-color:var(--surface-2);
   margin-block:var(--space-3xl);
   position:relative;
}

.pullquote-spread__inner {
   max-width:1100px;
   margin:0 auto;
   padding-inline:var(--space-m);
}

@media (min-width: 768px) {
   .pullquote-spread__inner { padding-inline:var(--space-l); }
}

.pullquote-spread__tag {
   font-family:var(--tesi-fa0);
   font-size:var(--step--2);
   text-transform:uppercase;
   letter-spacing:0.14em;
   color:#4a240c;
   margin-bottom:var(--space-m);
   display:block;
   font-weight:700;
}

.pullquote-spread__quote {
   font-family:var(--tesi-ef8);
   font-size:clamp(1.6rem, 1.2rem + 2.2vw, 3rem);
   line-height:1.2;
   color:var(--ink);
   margin-bottom:var(--space-l);
   border-left:4px solid var(--accent);
   padding-left:var(--space-m);
   max-width:28ch;
   font-style:normal;
   letter-spacing:0.01em;
}

.pullquote-spread__citation {
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   color:#2b261c;
   display:flex;
   align-items:center;
   gap:var(--space-xs);
   padding-left:var(--space-m);
}

.pullquote-spread__citation span { color:#2b261c; }

div.pullquote-spread span.pullquote-spread__tag { color:#4a240c !important; }

.model-stage {
   position:relative;
   width:100%;
   aspect-ratio:4 / 3;
   background-color:var(--surface);
   border:1px solid var(--line);
   overflow:hidden;
   display:flex;
   align-items:center;
   justify-content:center;
}

.model-stage__still {
   position:absolute;
   inset:0;
   width:100%;
   height:100%;
   object-fit:cover;
   transition:opacity var(--transition-slow);
}

.model-stage__canvas {
   position:absolute;
   inset:0;
   width:100%;
   height:100%;
   touch-action:pan-y;
   cursor:grab;
}

.model-stage__canvas:active { cursor:grabbing; }

.model-stage[data-model-live] .model-stage__still {
   opacity:0;
   pointer-events:none;
}

.model-stage__overlay-badge {
   position:absolute;
   top:var(--space-xs);
   right:var(--space-xs);
   background-color:var(--ground);
   border:1px solid var(--line);
   padding:4px 8px;
   font-family:var(--tesi-fa0);
   font-size:var(--step--2);
   color:var(--ink);
   pointer-events:none;
   letter-spacing:0.06em;
   text-transform:uppercase;
}

.consent-bar {
   position:fixed;
   left:0;
   right:0;
   bottom:0;
   background-color:var(--surface);
   border-top:2px solid var(--line);
   padding:var(--space-s) var(--space-m);
   z-index:1200;
   box-shadow:0 -4px 16px rgba(43, 38, 28, 0.12);
   transition:transform var(--transition-mid);
}

@media (max-width: 1023px) {
   .consent-bar { bottom:var(--dock-h); }
}

.consent-bar.is-hidden { display:none; }

.consent-bar__wrap {
   max-width:1200px;
   margin:0 auto;
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
   align-items:flex-start;
}

@media (min-width: 768px) {
   .consent-bar__wrap {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
   }
}

.consent-bar__text {
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   color:var(--ink);
   line-height:1.4;
   margin:0;
   max-width:75ch;
}

.consent-bar__actions {
   display:flex;
   gap:var(--space-xs);
   flex-shrink:0;
}

.consent-bar__btn {
   min-height:44px;
   padding:var(--space-2xs) var(--space-s);
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   border:1px solid var(--line);
   cursor:pointer;
   text-transform:uppercase;
   transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.consent-bar__btn--accept {
   background-color:var(--accent);
   color:var(--accent-ink);
   border-color:var(--accent);
   font-weight:700;
}

.consent-bar__btn--accept:hover {
   background-color:#8b4e25;
   border-color:#8b4e25;
   transform:translateY(-1px);
   box-shadow:0 2px 6px rgba(43, 38, 28, 0.2);
}

.consent-bar__btn--accept:active {
   background-color:#723e1b;
   transform:translateY(1px);
   box-shadow:none;
}

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

.consent-bar__btn--decline {
   background-color:var(--surface-2);
   color:var(--ink);
}

.consent-bar__btn--decline:hover {
   background-color:var(--ground);
   border-color:var(--ink);
   transform:translateY(-1px);
   box-shadow:0 2px 6px rgba(43, 38, 28, 0.15);
}

.consent-bar__btn--decline:active {
   background-color:var(--ink);
   color:var(--ground);
   transform:translateY(1px);
   box-shadow:none;
}

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

.chat-launcher {
   position:fixed;
   right:var(--space-m);
   bottom:calc(var(--dock-h) + var(--space-s));
   width:48px;
   height:48px;
   background-color:var(--ink);
   color:var(--ground);
   border:1px solid var(--line);
   display:flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   z-index:1100;
   box-shadow:0 4px 14px rgba(43, 38, 28, 0.2);
   transition:background-color var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast);
}

@media (min-width: 1024px) {
   .chat-launcher {
      bottom:var(--space-l);
      right:var(--space-l);
      width:52px;
      height:52px;
   }
}

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

.chat-launcher:active {
   background-color:#723e1b;
   transform:translateY(0);
}

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

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

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

.chat-launcher__badge:empty { display:none; }

/* Chat Panel */
.chat-panel {
   position:fixed;
   right:var(--space-m);
   bottom:calc(var(--dock-h) + var(--space-s) + 56px);
   width:min(360px, calc(100vw - 2 * var(--space-m)));
   height:min(480px, calc(100vh - 160px));
   background-color:var(--ground);
   border:1px solid var(--line);
   box-shadow:0 8px 30px rgba(43, 38, 28, 0.2);
   display:none;
   flex-direction:column;
   z-index:1150;
}

@media (min-width: 1024px) {
   .chat-panel {
      bottom:calc(var(--space-l) + 60px);
      right:var(--space-l);
      width:380px;
      height:520px;
   }
}

.chat-panel.is-open { display:flex; }

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

.chat-panel__title {
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   text-transform:uppercase;
   letter-spacing:0.05em;
   color:var(--ink);
   font-weight:700;
}

.chat-panel__close {
   width:32px;
   height:32px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   border:1px solid var(--line);
   background:var(--surface-2);
   color:var(--ink);
   cursor:pointer;
   transition:background-color var(--transition-fast), color var(--transition-fast);
}

.chat-panel__close:hover {
   background-color:var(--ink);
   color:var(--ground);
}

.chat-panel__close:active {
   background-color:var(--accent);
   color:var(--accent-ink);
}

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

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

.chat-msg {
   max-width:82%;
   padding:var(--space-2xs) var(--space-s);
   font-size:var(--step--1);
   line-height:1.4;
   border:1px solid var(--line);
}

.chat-msg--operator {
   align-self:flex-start;
   background-color:var(--surface);
   color:var(--ink);
}

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

.chat-panel__foot {
   padding:var(--space-xs);
   background-color:var(--surface);
   border-top:1px solid var(--line);
   display:flex;
   gap:var(--space-3xs);
}

.chat-panel__input {
   flex:1 1 auto;
   min-height:38px;
   padding:4px var(--space-xs);
   font-family:var(--tesi-843);
   font-size:var(--step--1);
   border:1px solid var(--line);
   background-color:var(--ground);
   color:var(--ink);
}

.chat-panel__send {
   min-height:38px;
   padding:0 var(--space-s);
   background-color:var(--accent);
   color:var(--accent-ink);
   font-family:var(--tesi-fa0);
   font-size:var(--step--2);
   text-transform:uppercase;
   border:1px solid var(--accent);
   cursor:pointer;
   font-weight:700;
   transition:background-color var(--transition-fast);
}

.chat-panel__send:hover { background-color:#8b4e25; }

.chat-panel__send:active { background-color:#723e1b; }

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

.site-footer {
   width:100%;
   background-color:var(--surface);
   border-top:1px solid var(--line);
   padding:var(--space-2xl) var(--space-m) var(--space-xl);
   font-size:var(--step--1);
}

.site-footer__wrap {
   max-width:1200px;
   margin:0 auto;
   display:flex;
   flex-direction:column;
   gap:var(--space-xl);
}

.site-footer__grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
}

@media (min-width: 768px) and (max-width: 1023px) {
   .site-footer__grid {
      grid-template-columns:1fr 1fr;
      gap:var(--space-l);
   }
   .site-footer__col-brand { grid-column:1 / -1; }
}

@media (min-width: 1024px) {
   .site-footer__grid {
      grid-template-columns:1.4fr 1.3fr 1.3fr;
      gap:var(--space-xl);
   }
}

.site-footer__col-brand {
   display:flex;
   flex-direction:column;
   gap:var(--space-s);
}

.site-footer__col-title {
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   text-transform:uppercase;
   letter-spacing:0.08em;
   color:var(--ink);
   margin-bottom:var(--space-xs);
   font-weight:700;
}

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

.site-footer__links a {
   text-decoration:none;
   color:var(--ink-soft);
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   display:inline-flex;
   align-items:center;
   min-height:32px;
   line-height:1.35;
   transition:color var(--transition-fast);
}

@media (pointer: coarse) {
   .site-footer__links a,
   .site-footer__legal-links a,
   .site-footer__reopen-btn {
      min-height:44px;
      display:inline-flex;
      align-items:center;
   }
}

.site-footer__links a:hover { color:var(--accent); }

.site-footer__links a:active { color:#723e1b; }

.site-footer__links a:focus-visible { outline:2px solid var(--accent); }

.site-footer__operator-info {
   font-family:var(--tesi-fa0);
   font-size:var(--step--1);
   color:var(--ink-soft);
   line-height:1.5;
   margin-bottom:var(--space-xs);
}

.site-footer__operator-info a { display:inline-block; }

@media (pointer: coarse) {
   .site-footer__operator-info a {
      min-height:44px;
      display:inline-flex;
      align-items:center;
   }
   .data-pair-val a,
   .sidebar__foot-link {
      min-height:44px;
      display:inline-flex;
      align-items:center;
   }
}

.site-footer__legal-bar {
   padding-top:var(--space-m);
   border-top:1px solid var(--line);
   display:flex;
   flex-direction:column;
   gap:var(--space-s);
   font-family:var(--tesi-fa0);
   font-size:var(--step--2);
   color:var(--ink-soft);
}

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

.site-footer__legal-links {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-s);
}

.site-footer__legal-links a,
.site-footer__reopen-btn {
   color:var(--ink-soft);
   text-decoration:none;
   border-bottom:1px dotted var(--line);
   cursor:pointer;
   background:none;
   border-top:0;
   border-left:0;
   border-right:0;
   padding:0;
   font:inherit;
   transition:color var(--transition-fast), border-color var(--transition-fast);
}

.site-footer__legal-links a:hover,
.site-footer__reopen-btn:hover {
   color:var(--ink);
   border-bottom-color:var(--ink);
}

.site-footer__legal-links a:active,
.site-footer__reopen-btn:active {
   color:var(--accent);
   border-bottom-color:var(--accent);
}

.site-footer__legal-links a:focus-visible,
.site-footer__reopen-btn:focus-visible { outline:2px solid var(--accent); }
