.site-header {
   position: relative;
   width: 100%;
   background-color: var(--ground);
   border-bottom: var(--ledger-rule);
   z-index: 100;
   transition: padding var(--duration-fast) var(--ease-ledger),
                     background-color var(--duration-fast) var(--ease-ledger);
}


.site-header__container {
   display: flex;
   align-items: center;
   justify-content: space-between;
   min-height: var(--header-height-full);
   gap: var(--space-md);
}


.brand {
   display: inline-flex;
   align-items: center;
   text-decoration: none;
   flex-shrink: 0;
   max-width: 40vw;
}


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


@media (min-width: 960px) {
   .site-header {
      position: sticky;
      top: 0;
   }


   .site-header.pinned-docked {
      background-color: rgba(232, 223, 208, 0.94);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
   }


   .site-header.pinned-docked .site-header__container { min-height: var(--header-height-compact); }


   .site-header.pinned-docked .brand img { height: 1.85rem; }
}


.nav-rail { display: none; }


@media (min-width: 960px) {
   .nav-rail {
      display: flex;
      align-items: center;
      gap: var(--space-lg);
   }


   .nav-rail__list {
      display: flex;
      align-items: center;
      list-style: none;
      gap: var(--space-xs);
   }


   .nav-rail__link {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
      padding: 0.5rem 0.85rem;
      font-family: var(--wafe-a27);
      font-size: var(--text-sm);
      font-weight: 600;
      letter-spacing: -0.01em;
      color: var(--ink);
      text-decoration: none;
      border-radius: var(--radius-none);
      border-bottom: 2px solid transparent;
      transition: color var(--duration-fast) var(--ease-mechanical),
                        border-color var(--duration-fast) var(--ease-mechanical),
                        background-color var(--duration-fast) var(--ease-mechanical);
   }


   .nav-rail__link:hover {
      color: var(--accent);
      background-color: var(--surface);
   }


   .nav-rail__link:active {
      color: var(--accent);
      background-color: var(--surface-2);
   }


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


   .nav-rail__link[aria-current='page'] {
      color: var(--ink);
      border-bottom-color: var(--accent);
   }


   .nav-rail__action { display: inline-flex; }
}


.mobile-dock {
   position: fixed;
   inset: auto 0 0 0;
   z-index: 900;
   background-color: var(--surface);
   border-top: var(--ledger-rule-thick);
   height: calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
   padding-bottom: env(safe-area-inset-bottom, 0px);
   display: flex;
   align-items: stretch;
   box-shadow: 0 -4px 12px rgba(44, 40, 33, 0.06);
}


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


.mobile-dock__list {
   display: flex;
   width: 100%;
   list-style: none;
   margin: 0;
   padding: 0;
}


.mobile-dock__item {
   flex: 1 1 0;
   min-width: 0;
   display: flex;
}


.mobile-dock__link,
.mobile-dock__btn {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   width: 100%;
   min-height: 44px;

   padding: 0.35rem 0.25rem;
   color: var(--ink-soft);
   text-decoration: none;
   border-radius: var(--radius-none);
   appearance: none;
   background: none;
   border: 0;
   font: inherit;
   transition: color var(--duration-fast) var(--ease-mechanical),
                     background-color var(--duration-fast) var(--ease-mechanical);
}


.mobile-dock__link .icon,
.mobile-dock__btn .icon {
   width: 1.4rem;
   height: 1.4rem;
   margin-bottom: 0.15rem;
}


.mobile-dock__label {
   font-family: var(--wafe-a27);
   font-size: 0.75rem;
   font-weight: 600;
   white-space: nowrap;
   letter-spacing: -0.01em;
   overflow: hidden;
   text-overflow: ellipsis;
   max-width: 100%;
   color: var(--ink);
}


.mobile-dock__link:hover,
.mobile-dock__btn:hover {
   color: var(--ink);
   background-color: var(--surface-2);
}


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


.mobile-dock__link:focus-visible,
.mobile-dock__btn:focus-visible {
   outline: 2px solid var(--accent);
   outline-offset: -2px;
}


.mobile-dock__link[aria-current='page'] {
   color: var(--ink);
   background-color: var(--ground);
}


.mobile-dock__link[aria-current='page'] .mobile-dock__label {
   color: #7f3617;
   font-weight: 700;
}


.mobile-nav-panel {
   position: fixed;
   inset: 0 0 calc(var(--dock-height) + env(safe-area-inset-bottom, 0px)) 0;
   background-color: rgba(44, 40, 33, 0.45);
   backdrop-filter: blur(4px);
   -webkit-backdrop-filter: blur(4px);
   z-index: 890;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   opacity: 0;
   pointer-events: none;
   transition: opacity var(--duration-normal) var(--ease-ledger);
}


.mobile-nav-panel.is-open {
   opacity: 1;
   pointer-events: auto;
}


.mobile-nav-sheet {
   background-color: var(--ground);
   border-top: var(--ledger-rule-thick);
   padding: var(--space-md);
   max-height: 80vh;
   overflow-y: auto;
   transform: translateY(100%);
   transition: transform var(--duration-normal) var(--ease-ledger);
}


.mobile-nav-panel.is-open .mobile-nav-sheet { transform: translateY(0); }


.mobile-nav-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding-bottom: var(--space-sm);
   border-bottom: var(--ledger-rule);
   margin-bottom: var(--space-md);
}


.mobile-nav-title {
   font-family: var(--wafe-a27);
   font-size: var(--text-md);
   font-weight: 700;
}


.mobile-nav-close {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-height: 44px;
   min-width: 44px;
   padding: 0.5rem;
   color: var(--ink);
   border: var(--ledger-rule);
   background-color: var(--surface);
   transition: background-color var(--duration-fast) var(--ease-mechanical),
                     border-color var(--duration-fast) var(--ease-mechanical);
}


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


.mobile-nav-close:active {
   background-color: var(--accent);
   color: var(--accent-ink);
}


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


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


.mobile-nav-link {
   display: flex;
   align-items: center;
   justify-content: space-between;
   min-height: 44px;

   padding: 0.75rem var(--space-xs);
   font-family: var(--wafe-a27);
   font-size: var(--text-base);
   font-weight: 600;
   text-decoration: none;
   color: var(--ink);
   border-bottom: var(--ledger-rule);
   transition: background-color var(--duration-fast) var(--ease-mechanical),
                     padding-left var(--duration-fast) var(--ease-mechanical);
}


.mobile-nav-link:hover {

   background-color: var(--surface);
   padding-left: var(--space-sm);
}


.mobile-nav-link:active { background-color: var(--surface-2); }


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


.mobile-nav-link[aria-current='page'] {
   border-left: 3px solid var(--accent);
   background-color: var(--surface);
}


.btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 0.5rem;
   min-height: 44px;
   padding: 0.65rem 1.35rem;
   font-family: var(--wafe-a27);
   font-size: var(--text-sm);
   font-weight: 600;
   letter-spacing: -0.01em;
   text-decoration: none;
   border-radius: var(--radius-none);
   line-height: 1.2;
   cursor: pointer;
   white-space: nowrap;
   transition: background-color var(--duration-fast) var(--ease-mechanical),
                     color var(--duration-fast) var(--ease-mechanical),
                     border-color var(--duration-fast) var(--ease-mechanical),
                     transform var(--duration-fast) var(--ease-mechanical);
}


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


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


.btn--primary {
   background-color: #8b3c1b;
   color: #fff;
   border: 1px solid #8b3c1b;
}


.btn--primary:hover {
   background-color: #9c4420;
   border-color: #9c4420;
   color: var(--accent-ink);
}


.btn--primary:active {
   background-color: #7f3617;
   border-color: #7f3617;
}


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


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


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


.btn--outline {
   background-color: var(--ground);
   color: var(--ink);
   border: var(--ledger-rule);
}


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


.btn--outline:active { background-color: var(--surface-2); }


.tag {
   display: inline-flex;
   align-items: center;
   min-height: 24px;
   padding: 0.15rem 0.5rem;
   font-family: var(--wafe-16f);
   font-size: var(--text-xs);
   background-color: var(--surface);
   border: var(--ledger-rule);
   color: var(--ink);
   border-radius: var(--radius-none);
   line-height: 1.2;
}


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


.spec-table {
   width: 100%;
   border-top: var(--ledger-rule-thick);
   border-bottom: var(--ledger-rule-thick);
   margin-block: var(--space-md);
}


.spec-table th,
.spec-table td {
   padding: 0.85rem var(--space-sm);
   text-align: left;
   border-bottom: var(--ledger-rule);
   vertical-align: top;
}


.spec-table th {
   font-family: var(--wafe-a27);
   font-size: var(--text-xs);
   font-weight: 700;
   letter-spacing: 0.05em;
   text-transform: uppercase;
   color: var(--ink);
   background-color: var(--surface);
}


.spec-table td {
   font-size: var(--text-sm);
   color: var(--ink);
}


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


.spec-table tbody tr:hover { background-color: rgba(218, 208, 191, 0.45); }


.spec-table .price-col {
   font-family: var(--wafe-16f);
   font-weight: 600;
   color: var(--ink);
   white-space: nowrap;
}


.ledger-item {
   border-bottom: var(--ledger-rule);
   padding-block: var(--space-md);
}


.ledger-item__header {
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
}


@media (min-width: 768px) {
   .ledger-item__header {
      flex-direction: row;
      align-items: baseline;
      justify-content: space-between;
   }
}


.ledger-item__title {
   font-family: var(--wafe-a27);
   font-size: var(--text-lg);
   font-weight: 700;
}


.ledger-item__price {
   font-family: var(--wafe-16f);
   font-size: var(--text-base);
   font-weight: 600;
   color: var(--ink);
}


.ledger-item__detail {
   margin-top: var(--space-xs);
   color: var(--ink-soft);
   max-width: var(--measure-body);
}


.form-group {
   margin-bottom: var(--space-md);
   position: relative;
}


.form-label {
   display: block;
   font-family: var(--wafe-a27);
   font-size: var(--text-sm);
   font-weight: 600;
   color: var(--ink);
   margin-bottom: var(--space-3xs);
}


.form-label .form-required { color: var(--accent); }


.form-label .form-optional {
   font-family: var(--wafe-16f);
   font-size: var(--text-xs);
   color: var(--ink-soft);
   font-weight: 400;
}


.form-input,
.form-select,
.form-textarea {
   width: 100%;
   min-height: 44px;
   padding: 0.65rem 0.85rem;
   background-color: var(--surface);
   border: var(--ledger-rule);
   border-radius: var(--radius-none);
   color: var(--ink);
   font-family: var(--wafe-c06);
   font-size: var(--text-base);
   transition: border-color var(--duration-fast) var(--ease-mechanical),
                     background-color var(--duration-fast) var(--ease-mechanical);
}


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


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


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


.form-input[aria-invalid="true"],
.form-select[aria-invalid="true"],
.form-textarea[aria-invalid="true"] {
   border-color: var(--accent);
   background-color: rgba(181, 84, 43, 0.05);
}


.form-error {
   display: none;
   font-family: var(--wafe-16f);
   font-size: var(--text-xs);
   color: var(--accent);
   margin-top: 0.35rem;
   line-height: 1.3;
}


.form-input[aria-invalid="true"] ~ .form-error,
.form-group.has-error .form-error { display: block; }


.form-checkbox-label {
   display: flex;
   align-items: flex-start;
   gap: 0.65rem;
   font-size: var(--text-sm);
   color: var(--ink);
   cursor: pointer;
   user-select: none;
}


.form-checkbox-label input[type="checkbox"] {
   width: 20px;
   height: 20px;
   min-width: 20px;
   margin-top: 0.15rem;
   border-radius: var(--radius-none);
   border: var(--ledger-rule);
   accent-color: var(--accent);
}


.site-footer {
   background-color: var(--surface);
   border-top: var(--ledger-rule-thick);
   margin-top: auto;
   padding-block: var(--space-xl) var(--space-lg);
   color: var(--ink);
}


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


@media (min-width: 768px) {
   .site-footer__grid {
      grid-template-columns: 2fr 1fr 1fr;
      gap: var(--space-lg);
   }
}


.site-footer__brand-block { max-width: var(--measure-narrow); }


.site-footer__brand-block .brand img {
   height: 2.35rem;
   margin-bottom: var(--space-sm);
}


.site-footer__section-title {
   font-family: var(--wafe-a27);
   font-size: var(--text-sm);
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.05em;
   margin-bottom: var(--space-sm);
   color: var(--ink);
}


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


.site-footer__link {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   color: var(--ink);
   text-decoration: none;
   font-size: var(--text-sm);
   border-bottom: 1px solid transparent;
   transition: color var(--duration-fast) var(--ease-mechanical),
                     border-color var(--duration-fast) var(--ease-mechanical);
}


.site-footer__link:hover {
   color: var(--accent);
   border-bottom-color: var(--accent);
}


.site-footer__link:active { color: #7f3617; }


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


.site-footer__legal-row {
   border-top: var(--ledger-rule);
   padding-top: var(--space-md);
   display: flex;
   flex-direction: column;
   gap: var(--space-sm);
   font-size: var(--text-xs);
   color: var(--ink-soft);
}


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


.site-footer__legal-links {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-sm) var(--space-md);
   list-style: none;
}


.site-footer__legal-links a,
.site-footer__legal-links button {
   min-height: 44px;
   display: inline-flex;
   align-items: center;
   color: var(--ink-soft);
   text-decoration: underline;
   text-underline-offset: 2px;
   font-family: var(--wafe-16f);
   font-size: var(--text-xs);
   transition: color var(--duration-fast) var(--ease-mechanical);
}


.site-footer__legal-links a:hover,
.site-footer__legal-links button:hover { color: var(--accent); }


.site-footer__legal-links a:active,
.site-footer__legal-links button:active { color: var(--ink); }


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


.consent-banner {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   z-index: 1000;
   padding-right: 4.5rem;
   background-color: var(--surface);
   border-top: var(--ledger-rule-thick);
   padding: 0.85rem 4.5rem 0.85rem var(--space-md);
   box-shadow: 0 -4px 16px rgba(44, 40, 33, 0.12);
   transform: translateY(100%);
   transition: transform var(--duration-normal) var(--ease-ledger);
}


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


@media (max-width: 959px) {
   .consent-banner { bottom: calc(var(--dock-height) + env(safe-area-inset-bottom, 0px)); }
}


.consent-banner__inner {
   display: flex;
   flex-direction: column;
   gap: var(--space-sm);
   max-width: 1440px;
   margin-inline: auto;
}


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


.consent-banner__copy {
   font-size: var(--text-xs);
   line-height: 1.45;
   color: var(--ink);
   max-width: var(--measure-wide);
   margin-bottom: 0;
}


.consent-banner__copy a {
   color: var(--ink);
   font-weight: 600;
   text-decoration: underline;
}


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


.consent-banner__copy a:active { color: #7f3617; }


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


.chat-launcher {
   position: fixed;
   bottom: calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 0.85rem);
   right: 1rem;
   z-index: 850;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 52px;
   height: 52px;
   min-height: 44px;
   min-width: 44px;
   background-color: var(--ink);
   color: var(--accent-ink);
   border: 1px solid var(--ink);
   border-radius: var(--radius-none);
   box-shadow: 0 4px 12px rgba(44, 40, 33, 0.2);
   transition: background-color var(--duration-fast) var(--ease-mechanical),
                     border-color var(--duration-fast) var(--ease-mechanical),
                     transform var(--duration-fast) var(--ease-mechanical);
}


@media (max-width: 959px) {
   body:has(.consent-banner.is-visible) .chat-launcher,
   body.has-consent-banner .chat-launcher,
   .consent-banner.is-visible ~ .chat-launcher { bottom: calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 12rem); }
}


@media (min-width: 960px) {
   .chat-launcher {
      bottom: 2rem;
      right: 2rem;
   }
}


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


.chat-launcher:active {
   transform: translateY(1px);
   background-color: #9c4420;
}


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


.chat-launcher .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(--wafe-16f);
   font-size: 0.7rem;
   font-weight: 700;
   min-width: 18px;
   height: 18px;
   padding: 0 3px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: var(--radius-none);
   border: 1px solid var(--ground);
}


.chat-panel {
   position: fixed;
   bottom: calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 0.5rem);
   right: 1rem;
   width: calc(100vw - 2rem);
   max-width: 380px;
   height: 500px;
   max-height: calc(100vh - 120px);
   max-height: calc(100svh - 120px);
   background-color: var(--ground);
   border: var(--ledger-rule-thick);
   z-index: 950;
   display: flex;
   flex-direction: column;
   box-shadow: 0 8px 24px rgba(44, 40, 33, 0.16);
   opacity: 0;
   pointer-events: none;
   transform: translateY(16px);
   transition: opacity var(--duration-normal) var(--ease-ledger),
                     transform var(--duration-normal) var(--ease-ledger);
}


@media (min-width: 960px) {
   .chat-panel {
      bottom: 2rem;
      right: 2rem;
   }
}


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


.chat-panel__header {
   background-color: var(--surface);
   border-bottom: var(--ledger-rule);
   padding: 0.75rem 1rem;
   display: flex;
   align-items: center;
   justify-content: space-between;
}


.chat-panel__title {
   font-family: var(--wafe-a27);
   font-size: var(--text-sm);
   font-weight: 700;
}


.chat-panel__close {
   min-height: 44px;
   min-width: 44px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   color: var(--ink);
   border: var(--ledger-rule);
   background-color: var(--ground);
   transition: background-color var(--duration-fast) var(--ease-mechanical);
}


.chat-panel__close:hover { background-color: var(--surface-2); }


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


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


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


.chat-msg {
   padding: 0.65rem 0.85rem;
   font-size: var(--text-sm);
   max-width: 82%;
   line-height: 1.4;
}


.chat-msg--bot {
   align-self: flex-start;
   background-color: var(--surface);
   border: var(--ledger-rule);
   color: var(--ink);
}


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


.chat-panel__footer {
   border-top: var(--ledger-rule);
   padding: 0.75rem 1rem;
   background-color: var(--surface);
}


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


.chat-panel__input-group input {
   flex: 1;
   min-height: 44px;
   padding: 0.5rem 0.75rem;
   border: var(--ledger-rule);
   background-color: var(--ground);
}


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


.chat-panel__send {
   min-height: 44px;
   padding: 0.5rem 1rem;
   background-color: var(--accent);
   color: var(--accent-ink);
   border: 1px solid var(--accent);
   font-family: var(--wafe-a27);
   font-size: var(--text-xs);
   font-weight: 700;
   transition: background-color var(--duration-fast) var(--ease-mechanical);
}


.chat-panel__send:hover { background-color: #9c4420; }


.chat-panel__send:active { background-color: #7f3617; }


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