.icon {
   display:inline-block;
   width:1.15em;
   height:1.15em;
   stroke-width:0;
   stroke:currentColor;
   fill:currentColor;
   vertical-align:-0.15em;
   flex-shrink:0;
}

.mobile-top-bar {
   display:flex;
   align-items:center;
   justify-content:space-between;
   height:var(--header-mobile-h);
   padding:0 var(--space-s);
   background-color:var(--ground);
   border-bottom:1px solid var(--border);
   position:sticky;
   top:0;
   z-index:95;
}

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

.mobile-top-bar .brand img {
   height:2.3rem;
   width:auto;
}

.nav-toggle-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2xs);
   min-height:44px;
   min-width:44px;
   padding:var(--space-2xs) var(--space-xs);
   background-color:transparent;
   border:1px solid var(--border);
   color:var(--pine);
   cursor:pointer;
   border-radius:var(--radius-sm);
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out);
}

.mobile-nav-bar {
   display:flex;
   overflow-x:auto;
   -webkit-overflow-scrolling:touch;
   gap:var(--space-3xs);
   padding:var(--space-2xs) var(--space-s);
   background-color:var(--ground-elevated);
   border-bottom:1px solid var(--border);
   white-space:nowrap;
}

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

.mobile-nav-bar a {
   display:inline-flex;
   align-items:center;
   min-height:38px;
   padding:0 var(--space-2xs);
   font-family:var(--gona-88b);
   font-size:var(--step--1);
   font-weight:600;
   text-transform:uppercase;
   color:var(--pine);
   text-decoration:none;
   border-radius:var(--radius-sm);
}

.mobile-nav-bar a:hover,
.mobile-nav-bar a:focus-visible {
   color:var(--amber);
   background-color:var(--ground);
}

.nav-toggle-btn:hover {
   background-color:var(--ground-elevated);
   border-color:var(--pine);
}

.nav-toggle-btn:active {
   background-color:var(--pine);
   color:var(--ground);
   border-color:var(--pine);
}

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

.nav-toggle-text {
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   text-transform:uppercase;
   letter-spacing:0.05em;
}

.site-sidebar-inner {
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   min-height:100vh;
   padding:var(--space-m) var(--space-s);
   background-color:var(--ground);

}

@media (max-width: 1023px) {
   .site-sidebar {
      position:fixed;
      top:0;
      left:0;

      width:min(340px, 86vw);
      height:100vh;
      z-index:120;
      background-color:var(--ground);
      border-right:1px solid var(--border);
      transform:translateX(-100%);
      transition:transform var(--dur-med) var(--ease-out), visibility 0s var(--dur-med);
      visibility:hidden;
      box-shadow:4px 0 24px rgba(26, 35, 27, 0.15);
      overflow-y:auto;
   }

   .site-sidebar.is-open {
      visibility:visible;
      transition:transform var(--dur-med) var(--ease-out), visibility 0s 0s;
   }

   .site-sidebar.is-open { transform:translateX(0); }

   .sidebar-backdrop {
      position:fixed;
      inset:0;
      background-color:rgba(26, 35, 27, 0.45);
      backdrop-filter:blur(2px);
      z-index:110;
      opacity:0;
      pointer-events:none;
      transition:opacity var(--dur-med) var(--ease-out);
   }

   .sidebar-backdrop.is-active {
      opacity:1;
      pointer-events:auto;
   }
}

.sidebar-header {
   padding-bottom:var(--space-m);
   border-bottom:1px solid var(--border);
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}

.sidebar-header-top {
   display:flex;
   align-items:center;
   justify-content:space-between;
}

.sidebar-close-btn {
   display:none;
   align-items:center;
   justify-content:center;
   min-height:44px;
   min-width:44px;
   padding:var(--space-2xs);
   background:transparent;
   border:1px solid var(--border);

   color:var(--pine);
   cursor:pointer;
   border-radius:var(--radius-sm);
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out);
}

.sidebar-close-btn:hover {
   background-color:var(--ground-elevated);
   border-color:var(--pine);
}

.sidebar-close-btn:active {
   background-color:var(--pine);
   color:var(--ground);
}

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

@media (max-width: 1023px) {
   .sidebar-close-btn { display:inline-flex; }
}

.sidebar-header .brand {
   display:inline-block;
   text-decoration:none;
}

.sidebar-header .brand img {
   height:3.2rem;
   width:auto;
}

.sidebar-tagline {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--moss);
   line-height:1.35;
   letter-spacing:0.02em;
   text-transform:uppercase;
}

.sidebar-nav {
   margin-top:var(--space-s);
   margin-bottom:var(--space-m);
   flex:1 1 auto;
}

.nav-group-title {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--moss);
   padding:var(--space-2xs) var(--space-2xs);
   margin-top:var(--space-s);
   margin-bottom:var(--space-3xs);
   border-bottom:1px dashed var(--border);
}

.sidebar-nav-list {
   display:flex;
   flex-direction:column;
   gap:2px;
}

.sidebar-nav-link {
   display:flex;
   align-items:center;
   justify-content:space-between;
   min-height:44px;
   padding:var(--space-2xs) var(--space-2xs);
   color:var(--bark);
   text-decoration:none;
   font-family:var(--gona-88b);
   font-size:var(--gona-e30);
   font-weight:500;
   letter-spacing:0.02em;
   text-transform:uppercase;
   border-left:2px solid transparent;
   border-radius:var(--radius-sm);
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out);
}

.sidebar-nav-link:hover {
   background-color:var(--ground-elevated);
   color:var(--pine);
   border-left-color:var(--amber);
}

.sidebar-nav-link:active {
   background-color:var(--pine);
   color:var(--ground);
   border-left-color:var(--amber);
}

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

.sidebar-nav-link.is-current {
   color:var(--pine);
   font-weight:700;
   border-left-color:var(--pine);
   background-color:var(--ground-elevated);
}

.sidebar-nav-subcount {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--moss);
}

.sidebar-footer {
   padding-top:var(--space-s);
   border-top:1px solid var(--border);
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
}

.sidebar-contact-line {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   line-height:1.4;
   color:var(--moss);
}

.sidebar-contact-line a {
   color:var(--pine);
   text-decoration:none;
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   padding:2px 0;
   transition:color var(--dur-fast) var(--ease-out);
}

.sidebar-contact-line a:hover {
   color:var(--amber);
   text-decoration:underline;
}

.sidebar-contact-line a:active { color:var(--amber-active); }

.sidebar-contact-line a:focus-visible {
   outline:2px solid var(--amber);
   outline-offset:2px;
}

.sidebar-status-pill {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--pine);
   background-color:var(--ground-elevated);
   padding:var(--space-3xs) var(--space-2xs);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
}

.status-dot {
   width:7px;
   height:7px;
   background-color:#3B7A57;
   border-radius:50%;
   display:inline-block;
}

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2xs);
   min-height:44px;
   padding:var(--space-xs) var(--space-m);
   font-family:var(--gona-88b);
   font-size:var(--gona-e30);
   font-weight:600;
   letter-spacing:0.04em;
   text-transform:uppercase;
   text-decoration:none;
   cursor:pointer;
   border-radius:var(--radius-sm);
   line-height:1;
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

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

.btn-primary {
   background-color:var(--pine);
   color:var(--ground);
   border:1px solid var(--pine);
}

.btn-primary:hover {
   background-color:var(--bark);
   border-color:var(--bark);
   color:var(--white);
}

.btn-primary:active {
   background-color:var(--moss);
   border-color:var(--moss);
   transform:translateY(1px);
}

.btn-accent {
   background-color:#8C4D0A;
   color:var(--white);
   border:1px solid #8C4D0A;
}

.btn-accent:hover {
   background-color:#723E07;
   border-color:#723E07;
}

.btn-accent:active {
   background-color:#583005;
   border-color:#583005;
   transform:translateY(1px);
}

.btn-secondary {
   background-color:transparent;
   color:var(--pine);
   border:1px solid var(--pine);
}

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

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

.btn-subtle {
   background-color:transparent;
   color:var(--moss);
   border:1px solid var(--border);
}

.btn-subtle:hover {
   background-color:var(--ground-elevated);
   border-color:var(--pine);
   color:var(--pine);
}

.btn-subtle:active {
   background-color:var(--ground-elevated);
   border-color:var(--amber);
   color:var(--amber);
   transform:translateY(1px);
}

.btn-sm {
   min-height:38px;
   padding:var(--space-2xs) var(--space-s);
   font-size:var(--step--1);
}

.btn-full { width:100%; }

.spec-ledger {
   width:100%;
   margin-top:var(--space-s);
   margin-bottom:var(--space-m);
   border-top:1px solid var(--pine);
   border-bottom:1px solid var(--pine);
}

.spec-ledger-row {
   display:grid;
   grid-template-columns:1fr;
   padding:var(--space-xs) 0;
   border-bottom:1px solid var(--border);
   gap:var(--space-3xs);
}

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

@media (min-width: 640px) {
   .spec-ledger-row {
      grid-template-columns:240px 1fr;
      align-items:baseline;
      gap:var(--space-m);
   }
}

@media (min-width: 960px) {
   .spec-ledger-row { grid-template-columns:300px 1fr; }
}

.spec-label {
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   color:var(--moss);
   text-transform:uppercase;
   letter-spacing:0.04em;
}

.spec-value {
   font-family:var(--gona-8f1);
   font-size:var(--gona-e30);
   color:var(--bark);
}

.spec-value-mono {
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   color:var(--pine);
}

.catalog-ledger-table {
   width:100%;
   border-collapse:collapse;
   margin-top:var(--space-m);
   border-top:2px solid var(--pine);
}

.catalog-ledger-table th {
   padding:var(--space-xs) var(--space-s);
   text-align:left;
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   letter-spacing:0.06em;
   text-transform:uppercase;
   color:var(--moss);
   border-bottom:1px solid var(--pine);
   background-color:var(--ground-elevated);
}

.catalog-ledger-table td {
   padding:var(--space-s) var(--space-s);
   border-bottom:1px solid var(--border);
   font-size:var(--gona-e30);
   vertical-align:top;
}

.catalog-ledger-table tr:hover td { background-color:var(--ground-elevated); }

.catalog-item-card {
   background-color:var(--ground);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   display:flex;
   flex-direction:column;
   overflow:hidden;
   transition:border-color var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out);
}

.catalog-item-card:hover {
   border-color:var(--pine);
   background-color:var(--ground-elevated);
}

.catalog-item-media {
   position:relative;
   aspect-ratio:16 / 10;
   background-color:var(--ground-elevated);
   overflow:hidden;
   border-bottom:1px solid var(--border);
}

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

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

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

.catalog-item-title {
   font-family:var(--gona-88b);
   font-size:var(--gona-889);
   color:var(--pine);
   margin-bottom:var(--space-2xs);
   min-width:0;
   overflow-wrap:break-word;
   line-height:1.15;
}

@media (min-width: 1200px) {
   .catalog-item-title { font-size:var(--gona-889); }
}

.catalog-item-title a {
   text-decoration:none;
   color:inherit;
}

.catalog-item-title a:hover { color:var(--amber); }

.catalog-item-title a:focus-visible {
   outline:2px solid var(--amber);
   outline-offset:2px;
}

.catalog-item-desc {
   font-size:var(--step--1);
   color:var(--bark);
   margin-bottom:var(--space-s);
   flex:1 1 auto;
}

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

.filter-bar {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   gap:var(--space-2xs);
   margin-bottom:var(--space-l);
   padding:var(--space-xs) 0;
   border-bottom:1px solid var(--border);
}

.filter-btn {
   min-height:44px;
   padding:var(--space-2xs) var(--space-s);
   background-color:transparent;
   border:1px solid var(--border);
   color:var(--bark);
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   text-transform:uppercase;
   letter-spacing:0.04em;
   cursor:pointer;
   border-radius:var(--radius-sm);
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

.filter-btn:hover {
   background-color:var(--ground-elevated);
   border-color:var(--pine);
   color:var(--pine);
}

.filter-btn:active {
   background-color:var(--pine);
   color:var(--ground);
   border-color:var(--pine);
   transform:translateY(1px);
}

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

.filter-btn.is-active {
   background-color:var(--pine);
   color:var(--ground);
   border-color:var(--pine);
}

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

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

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

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

.form-label {
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   color:var(--pine);
   text-transform:uppercase;
   letter-spacing:0.04em;
   display:block;
}

.panel-dark .form-label { color:var(--ground-elevated); }

.panel-dark a { color:var(--amber-on-dark); }

.form-optional {
   font-size:var(--step--2);
   color:var(--moss);
   text-transform:lowercase;
   font-weight:400;
}

.panel-dark .form-optional { color:var(--ground-elevated); }

.form-input,
.form-select,
.form-textarea {
   width:100%;
   min-height:44px;
   padding:var(--space-2xs) var(--space-xs);
   background-color:var(--ground);
   border:1px solid var(--border);
   color:var(--bark);
   font-family:var(--gona-fc1);
   font-size:var(--gona-e30);
   border-radius:var(--radius-sm);
   transition:border-color var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out),
                     outline var(--dur-fast) var(--ease-out);
}

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

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

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

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

.field-error-msg {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--error);
   display:none;
}

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

.form-checkbox-label {
   display:grid;
   grid-template-columns:24px 1fr;
   gap:var(--space-xs);
   align-items:start;
   font-size:var(--step--1);
   color:var(--bark);
   cursor:pointer;
   user-select:none;
   min-height:44px;
   padding-top:var(--space-3xs);
}

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

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

.form-feedback {
   padding:var(--space-s);
   border-radius:var(--radius-sm);
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   display:none;
}

.form-feedback.is-error {
   display:block;
   background-color:var(--error-bg);
   border:1px solid var(--error);
   color:var(--error);
}

.form-feedback.is-success {
   display:block;
   background-color:var(--success-bg);
   border:1px solid var(--success);
   color:var(--success);
}

.cookie-banner {
   position:fixed;
   bottom:0;
   left:0;
   right:0;
   z-index:990;
   background-color:var(--pine);
   color:var(--ground);
   border-top:1px solid var(--amber);
   padding:var(--space-xs) var(--space-s);
   transform:translateY(110%);
   transition:transform var(--dur-med) var(--ease-out);
   box-shadow:0 -4px 20px rgba(0, 0, 0, 0.2);
}

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

.cookie-banner-inner {
   max-width:var(--content-max-w);
   margin:0 auto;
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
   align-items:stretch;
}

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

.cookie-banner-text {
   font-family:var(--gona-8f1);
   font-size:var(--step--1);
   line-height:1.4;
   margin-bottom:0;
   max-width:70ch;
   color:var(--ground);
}

.cookie-banner-text a {
   color:var(--ground);
   text-decoration:underline;
   text-underline-offset:2px;
   transition:color var(--dur-fast) var(--ease-out);
}

.cookie-banner-text a:hover { color:var(--amber); }

.cookie-banner-text a:active { color:var(--white); }

.cookie-banner-text a:focus-visible {
   outline:2px solid var(--amber);
   outline-offset:2px;
}

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

.btn-cookie-accept {
   min-height:44px;
   padding:var(--space-2xs) var(--space-s);
   background-color:#8C4D0A;
   color:var(--white);
   border:1px solid #8C4D0A;
   font-family:var(--gona-88b);
   font-size:var(--step--1);
   font-weight:600;
   text-transform:uppercase;
   letter-spacing:0.04em;
   cursor:pointer;
   border-radius:var(--radius-sm);
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

.btn-cookie-accept:hover {
   background-color:#723E07;
   border-color:#723E07;
}

.btn-cookie-accept:active {
   background-color:#583005;
   border-color:#583005;
   transform:translateY(1px);
}

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

.btn-cookie-decline {
   min-height:44px;
   padding:var(--space-2xs) var(--space-s);
   background-color:transparent;
   color:var(--ground);
   border:1px solid var(--ground-elevated);
   font-family:var(--gona-88b);
   font-size:var(--step--1);
   font-weight:600;
   text-transform:uppercase;
   letter-spacing:0.04em;
   cursor:pointer;
   border-radius:var(--radius-sm);
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

.btn-cookie-decline:hover {
   background-color:rgba(255, 255, 255, 0.18);
   border-color:var(--white);
   color:var(--white);
}

.btn-cookie-decline:active {
   background-color:rgba(255, 255, 255, 0.35);
   color:var(--white);
   transform:translateY(1px);
}

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

.chat-widget-root {
   position:fixed;
   bottom:var(--space-s);
   right:var(--space-s);
   z-index:900;
   transition:bottom var(--dur-med) var(--ease-out);
   display:block !important;
}

.chat-widget-root.is-shifted { bottom:84px; }

.chat-launcher-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2xs);
   min-height:48px;
   padding:var(--space-2xs) var(--space-m);
   background-color:var(--pine);
   color:var(--ground);
   border:1px solid var(--moss);
   border-radius:999px;
   cursor:pointer;
   box-shadow:0 4px 16px rgba(26, 35, 27, 0.25);
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   letter-spacing:0.04em;
   text-transform:uppercase;
   position:relative;
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     box-shadow var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

.chat-launcher-btn:hover {
   background-color:var(--bark);
   border-color:var(--amber);
   color:var(--white);
   box-shadow:0 6px 20px rgba(26, 35, 27, 0.35);
}

.chat-launcher-btn:active {
   background-color:var(--pine);
   border-color:var(--amber-active);
   transform:translateY(1px);
}

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

.chat-badge {
   position:absolute;
   top:-4px;
   right:-4px;
   background-color:var(--amber);
   color:var(--white);
   font-size:var(--step--2);
   min-width:20px;
   height:20px;
   border-radius:10px;
   display:none;
   align-items:center;
   justify-content:center;
   padding:0 4px;
   font-weight:700;
}

.chat-panel {
   position:fixed;
   bottom:var(--space-s);
   right:var(--space-s);
   width:min(380px, calc(100vw - 2 * var(--space-s)));
   height:min(560px, calc(100vh - 4 * var(--space-s)));
   background-color:var(--ground);
   border:1px solid var(--pine);
   border-radius:var(--radius-sm);
   display:flex;
   flex-direction:column;
   box-shadow:0 12px 36px rgba(26, 35, 27, 0.3);
   z-index:920;
   overflow:hidden;
   opacity:0;
   pointer-events:none;
   transform:translateY(12px);
   transition:opacity var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

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

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

.chat-header-title {
   font-family:var(--gona-88b);
   font-size:var(--gona-e30);
   text-transform:uppercase;
   letter-spacing:0.04em;
   color:var(--white);
}

.chat-close-btn {
   background:transparent;
   border:0;
   color:var(--ground);
   cursor:pointer;
   min-height:44px;
   min-width:44px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   border-radius:var(--radius-sm);
   transition:color var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out);
}

.chat-close-btn:hover {
   color:var(--amber);
   background-color:rgba(255, 255, 255, 0.08);
}

.chat-close-btn:active {
   color:var(--white);
   background-color:rgba(255, 255, 255, 0.16);
}

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

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

.chat-bubble {
   max-width:82%;
   padding:var(--space-2xs) var(--space-xs);
   border-radius:var(--radius-sm);
   font-size:var(--step--1);
   line-height:1.4;
}

.chat-bubble-system {
   align-self:flex-start;
   background-color:var(--ground);
   border:1px solid var(--border);
   color:var(--bark);
}

.chat-bubble-user {
   align-self:flex-end;
   background-color:var(--pine);
   color:var(--ground);
}

.chat-intake {
   padding:var(--space-s);
   background-color:var(--ground);
   border-top:1px solid var(--border);
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
}

.chat-input-bar {
   padding:var(--space-xs) var(--space-s);
   background-color:var(--ground);
   border-top:1px solid var(--border);
   display:flex;
   gap:var(--space-2xs);
}

.chat-input-bar input {
   flex:1 1 auto;
   min-height:44px;
   padding:var(--space-2xs) var(--space-xs);
   border:1px solid var(--border);
   background-color:var(--white);
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   border-radius:var(--radius-sm);
   transition:border-color var(--dur-fast) var(--ease-out);
}

.chat-input-bar input:hover { border-color:var(--moss); }

.chat-input-bar input:active { border-color:var(--pine); }

.chat-input-bar input:focus {
   outline:2px solid var(--pine);
   outline-offset:1px;
}

.chat-send-btn {
   min-height:44px;
   min-width:44px;
   padding:0 var(--space-xs);
   background-color:var(--pine);
   color:var(--ground);
   border:1px solid var(--pine);
   border-radius:var(--radius-sm);
   cursor:pointer;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out);
}

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

.chat-send-btn:active {
   background-color:var(--moss);
   border-color:var(--moss);
}

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

.site-footer {
   background-color:var(--pine);
   color:var(--ground);
   border-top:2px solid var(--moss);
   padding:var(--space-xl) 0 var(--space-l);
}

.footer-top {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-l);
   padding-bottom:var(--space-l);
   border-bottom:1px solid var(--border-dark);
}

@media (min-width: 768px) {
   .footer-top { grid-template-columns:2fr 1fr 1fr; }
}

.footer-brand-col .brand {
   display:inline-block;
   margin-bottom:var(--space-xs);
}

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

.footer-desc {
   font-size:var(--step--1);
   color:var(--ground-elevated);
   line-height:1.5;
   max-width:48ch;
   margin-bottom:var(--space-s);
}

.site-footer .sidebar-contact-line { color:var(--ground-elevated); }

.site-footer .sidebar-contact-line a { color:var(--amber-on-dark) !important; }

.site-footer a { color:var(--amber-on-dark); }

.footer-col-title {
   font-family:var(--gona-88b);
   font-size:var(--gona-e30);
   color:var(--white);
   letter-spacing:0.05em;
   text-transform:uppercase;
   margin-bottom:var(--space-s);
   border-bottom:1px solid var(--moss);
   padding-bottom:var(--space-3xs);
}

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

.footer-link-list a {
   display:inline-flex;
   align-items:center;
   min-height:44px;
   padding:2px 0;
   color:var(--ground-elevated);
   text-decoration:none;
   font-family:var(--gona-fc1);
   font-size:var(--step--1);
   transition:color var(--dur-fast) var(--ease-out);
}

.footer-link-list a:hover {
   color:var(--amber);
   text-decoration:underline;
}

.footer-link-list a:active { color:var(--white); }

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

.footer-legal-row {
   margin-top:var(--space-l);
   padding-top:var(--space-s);
   display:flex;
   flex-direction:column;
   gap:var(--space-s);
}

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

.footer-facts {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--ground-elevated);
   line-height:1.6;
}

.footer-legal-links {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-xs) var(--space-m);
   align-items:center;
}

.footer-legal-links a,
.footer-legal-links button {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--ground-elevated) !important;
   text-decoration:none;
   background:transparent;
   border:0;
   cursor:pointer;
   min-height:44px;
   display:inline-flex;
   align-items:center;
   padding:0;
   transition:color var(--dur-fast) var(--ease-out);
}

.footer-legal-links a:hover,
.footer-legal-links button:hover {
   color:var(--amber-on-dark) !important;
   text-decoration:underline;
}

.footer-legal-links a:active,
.footer-legal-links button:active { color:var(--white) !important; }

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

.reopen-consent-btn {
   font-family:var(--gona-fc1);
   font-size:var(--step--2);
   color:var(--ground-elevated) !important;
   background:transparent;
   border:0;
   cursor:pointer;
}
