.site-header {
   position:relative;
   z-index:90;
   width:100%;
   padding-top:var(--space-md);
   padding-bottom:var(--space-md);
   background-color:var(--ground);
   border-bottom:1px solid var(--line);
}


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


.site-header__brand {
   display:inline-flex;
   align-items:center;
   text-decoration:none;
   flex-shrink:0;
}


.site-header__brand img {
   height:2.1rem;
   width:auto;
   display:block;
}


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


.site-header__meta {
   display:flex;
   align-items:center;
   gap:var(--space-md);
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   color:var(--ink-soft);
   text-transform:uppercase;
   letter-spacing:var(--tracking-caps);
}


.site-header__phone {
   display:inline-flex;
   align-items:center;
   gap:var(--space-2xs);
   color:var(--ink);
   text-decoration:none;
   font-weight:500;
   padding:0 0.75rem;
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   background-color:var(--surface);
   min-height:46px;
   height:46px;
   box-sizing:border-box;
   transition:background-color var(--trans-fast) var(--ease-standard),
                     border-color var(--trans-fast) var(--ease-standard),
                     color var(--trans-fast) var(--ease-standard);
}


.site-header__phone:hover {
   background-color:var(--surface-2);
   border-color:var(--ink);
   color:var(--ink);
   text-decoration:none;
}


.site-header__phone:active {
   background-color:var(--line);
   transform:translateY(1px);
}


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


.nav-rail {
   display:none;
}


@media (min-width: 1100px) {
   .nav-rail {
      display:flex;

      align-items:center;
      gap:var(--space-sm);
   }


   .nav-rail__link {
      display:inline-flex;
      align-items:center;
      padding:0.4rem 0.65rem;
      font-family:var(--japa-37d);
      font-size:var(--font-size-xs);
      letter-spacing:var(--tracking-loose);
      text-transform:uppercase;
      text-decoration:none;
      color:var(--ink-soft);
      border-radius:var(--radius-xs);
      min-height:var(--tap-min);
      transition:color var(--trans-fast) var(--ease-standard),
                        background-color var(--trans-fast) var(--ease-standard);
   }


   .nav-rail__link:hover {
      color:var(--ink);
      background-color:var(--surface);
      text-decoration:none;
   }


   .nav-rail__link:active {
      background-color:var(--surface-2);
      transform:translateY(1px);
   }


   .nav-rail__link[aria-current='page'] {
      color:var(--accent);
      font-weight:600;
      border-bottom:2px solid var(--accent);
      border-radius:0;
   }
}


.nav-corner-toggle {
   position:fixed;
   top:var(--space-md);
   right:var(--space-md);
   z-index:1000;
   width:48px;
   height:48px;
   min-width:var(--tap-min);
   min-height:var(--tap-min);
   display:inline-flex;
   align-items:center;
   justify-content:center;
   background-color:var(--ink);
   color:var(--ground);
   border:1px solid var(--ink);
   border-radius:var(--radius-xs);
   cursor:pointer;
   box-shadow:var(--shadow-md);
   padding:0;
   transition:background-color var(--trans-fast) var(--ease-standard),
                     transform var(--trans-fast) var(--ease-standard),
                     border-color var(--trans-fast) var(--ease-standard);
}


.nav-corner-toggle:hover {
   background-color:var(--accent);
   border-color:var(--accent);
   color:var(--accent-ink);
}


.nav-corner-toggle:active {
   transform:scale(0.94);
   background-color:#9C4521;
}


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


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


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


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

}


.nav-fullscreen-panel {
   position:fixed;
   inset:0;
   z-index:990;
   background-color:var(--ground);
   color:var(--ink);
   padding:clamp(2rem, 6vw, 4rem) var(--container-pad);
   overflow-y:auto;
   display:flex;
   flex-direction:column;

   justify-content:space-between;
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transition:opacity var(--trans-base) var(--ease-standard),
                     visibility var(--trans-base) var(--ease-standard);
}


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


.nav-fullscreen-panel__inner {
   width:100%;
   max-width:var(--container-max);
   margin-left:auto;
   margin-right:auto;
   display:grid;
   grid-template-columns:minmax(0, 2fr) minmax(0, 1.2fr);
   gap:var(--space-xl);
   padding-top:var(--space-lg);
   padding-bottom:var(--space-lg);
}


@media (max-width: 860px) {
   .nav-fullscreen-panel__inner {
      grid-template-columns:minmax(0, 1fr);
      gap:var(--space-lg);
   }
}


.nav-fullscreen__list {
   list-style:none;
   padding:0;
   margin:0;
}


.nav-fullscreen__item {
   border-bottom:1px solid var(--line);
}


.nav-fullscreen__link {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:var(--space-sm) 0;
   font-family:var(--japa-3da);
   font-size:clamp(1.4rem, 2.5vw, 2.25rem);
   font-weight:700;
   color:var(--ink);
   text-decoration:none;
   min-height:var(--tap-min);
   transition:color var(--trans-fast) var(--ease-standard),
                     transform var(--trans-fast) var(--ease-standard);
}


.nav-fullscreen__link:hover {
   color:var(--accent);
   transform:translateX(6px);
   text-decoration:none;
}


.nav-fullscreen__link:active {
   transform:translateX(3px);
   color:#9C4521;
}


.nav-fullscreen__link[aria-current='page'] {
   color:var(--accent);
}


.nav-fullscreen__link[aria-current='page']::after {
   content:'— current';
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   font-weight:500;
   color:var(--ink-soft);
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
}


.nav-fullscreen__aside {
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   gap:var(--space-md);
   border-left:1px solid var(--line);
   padding-left:var(--space-lg);
}


@media (max-width: 860px) {
   .nav-fullscreen__aside {
      border-left:0;
      border-top:1px solid var(--line);
      padding-left:0;
      padding-top:var(--space-md);
   }
}


.nav-fullscreen__meta-label {
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-caps);
   text-transform:uppercase;
   color:var(--ink-soft);
   margin-bottom:var(--space-2xs);
}


.nav-fullscreen__meta-val {
   font-family:var(--japa-7e1);
   font-size:var(--font-size-base);
   color:var(--ink);
   line-height:var(--line-height-snug);
}


.nav-fullscreen__meta-val a {
   color:var(--ink);
   text-decoration:underline;
}


.nav-fullscreen__meta-val a:hover {
   color:var(--accent);
}


.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--space-2xs);
   min-height:46px;
   height:auto;
   padding:0.6rem 1.25rem;
   font-family:var(--japa-37d);
   font-size:var(--font-size-sm);
   font-weight:600;
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
   text-decoration:none;
   cursor:pointer;
   border-radius:var(--radius-xs);
   border:1px solid transparent;
   max-width:100%;
   box-sizing:border-box;
   transition:background-color var(--trans-fast) var(--ease-standard),
                     border-color var(--trans-fast) var(--ease-standard),
                     color var(--trans-fast) var(--ease-standard),
                     transform var(--trans-fast) var(--ease-standard),
                     box-shadow var(--trans-fast) var(--ease-standard);
   white-space:normal;
   text-align:center;
}


.btn-primary {
   background-color:var(--accent);
   color:var(--accent-ink);
   border-color:var(--accent);
   box-shadow:var(--shadow-sm);
}


.btn-primary:hover {
   background-color:#9C4521;
   border-color:#9C4521;
   color:var(--accent-ink);
   text-decoration:none;
   box-shadow:var(--shadow-md);
}


.btn-primary:active {
   transform:translateY(1px);
   background-color:#873B1A;
   box-shadow:none;
}


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


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


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


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


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


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


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


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


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


.btn .icon {
   width:1em;
   height:1em;
}


.tag-badge {
   display:inline-flex;
   align-items:center;
   gap:0.35rem;
   padding:0.2rem 0.55rem;
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
   background-color:var(--surface);
   color:var(--ink-soft);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
}


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


.card-service {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   gap:var(--space-md);
   min-width:0;
   width:100%;
   box-sizing:border-box;
   transition:border-color var(--trans-fast) var(--ease-standard),
                     box-shadow var(--trans-fast) var(--ease-standard),
                     transform var(--trans-fast) var(--ease-standard);
}


.card-service:hover {
   border-color:var(--ink);
   box-shadow:var(--shadow-md);
   transform:translateY(-2px);
}


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


.card-service__title {
   font-size:var(--font-size-md);
   color:var(--ink);
}


.card-service__price {
   font-family:var(--japa-37d);
   font-size:var(--font-size-base);
   font-weight:600;
   color:var(--accent);
   margin-top:var(--space-2xs);
}


.card-service__body {
   color:var(--ink-soft);
   font-size:var(--font-size-sm);
   line-height:var(--line-height-body);
}


.card-service__footer {
   margin-top:auto;
   padding-top:var(--space-sm);
   border-top:1px solid var(--line);
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-sm);
   flex-wrap:wrap;
}


.card-service__footer .btn {
   height:46px;
   min-height:46px;
}


.spec-aside {
   display:flex;
   flex-direction:column;
   gap:var(--space-md);
   width:100%;
}


.spec-callout-card {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-left:3px solid var(--accent);
   padding:var(--space-sm) var(--space-md);
   border-radius:var(--radius-xs);
}


.spec-callout-card__title {
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-caps);
   text-transform:uppercase;
   color:var(--ink);
   font-weight:600;
   margin-bottom:var(--space-2xs);
}


.spec-callout-card__text {
   font-size:var(--font-size-sm);
   color:var(--ink-soft);
   line-height:var(--line-height-snug);
   margin:0;
}


.spec-table {
   width:100%;
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   overflow:hidden;
   background-color:var(--surface);
   font-size:var(--font-size-sm);
}


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


.spec-table th {
   background-color:var(--surface-2);
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-caps);
   text-transform:uppercase;
   color:var(--ink);
   font-weight:600;
}


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


.spec-table td:first-child {
   font-family:var(--japa-37d);
   font-weight:500;
   color:var(--ink);
   width:32%;
}


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


.form-label {
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-caps);
   text-transform:uppercase;
   color:var(--ink);
   font-weight:600;
}


.form-label .optional {
   color:var(--ink-soft);
   font-weight:400;
   text-transform:lowercase;
}


.form-input,
.form-select,
.form-textarea {
   width:100%;
   padding:0.65rem 0.85rem;
   background-color:var(--ground);
   color:var(--ink);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   font-family:var(--japa-7e1);
   font-size:var(--font-size-base);
   min-height:var(--tap-min);
   transition:border-color var(--trans-fast) var(--ease-standard),
                     background-color var(--trans-fast) var(--ease-standard),
                     box-shadow var(--trans-fast) var(--ease-standard);
}


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


.form-input:focus,
.form-select:focus,
.form-textarea:focus {
   outline:none;
   border-color:var(--accent);
   box-shadow:0 0 0 1px var(--accent);
   background-color:#FFF;
}


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


.form-checkbox-label {
   display:flex;
   align-items:flex-start;
   gap:var(--space-xs);
   cursor:pointer;
   font-size:var(--font-size-sm);
   color:var(--ink);
   line-height:var(--line-height-snug);
}


.form-checkbox-label input[type='checkbox'] {
   margin-top:0.15rem;
   width:1.15rem;
   height:1.15rem;
   accent-color:var(--accent);
   cursor:pointer;
   flex-shrink:0;
}


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


.form-error-text {
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   color:#A32214;
   margin-top:0.2rem;
   display:none;
}


.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
   border-color:#A32214;
   background-color:#FDF5F4;
}


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


.form-status {
   padding:var(--space-sm) var(--space-md);
   border-radius:var(--radius-xs);
   margin-top:var(--space-md);
   font-family:var(--japa-37d);
   font-size:var(--font-size-sm);
   display:none;
}


.form-status--success {
   background-color:var(--surface);
   border:1px solid #4A6B47;
   color:#1F3B1D;
   display:block;
}


.form-status--error {
   background-color:#FDF5F4;
   border:1px solid #A32214;
   color:#A32214;
   display:block;
}


.cookie-banner {
   position:fixed;
   bottom:0;
   left:0;
   right:0;
   z-index:950;
   background-color:var(--ink);
   color:var(--ground);
   border-top:2px solid var(--accent);
   padding:0.35rem var(--space-sm);
   box-shadow:var(--shadow-lg);
   transform:translateY(100%);
   transition:transform var(--trans-base) var(--ease-standard);
   max-height:22vh;
}


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


.cookie-banner__inner {
   width:100%;
   max-width:var(--container-max);
   margin-left:auto;
   margin-right:auto;
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-md);
   flex-wrap:wrap;
}


.cookie-banner__text {
   font-size:var(--font-size-xs);
   font-family:var(--japa-7e1);
   color:var(--ground);
   line-height:var(--line-height-snug);
   max-width:58ch;
   margin:0;
}


.cookie-banner__text a {
   color:var(--ground);
   text-decoration:underline;
}


.cookie-banner__text a:hover {
   color:var(--surface-2);
}


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


.cookie-banner__btn {
   padding:0.4rem 0.9rem;
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   font-weight:600;
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
   border-radius:var(--radius-xs);
   cursor:pointer;
   min-height:var(--tap-min);
   border:1px solid transparent;
   transition:background-color var(--trans-fast) var(--ease-standard),
                     color var(--trans-fast) var(--ease-standard),
                     transform var(--trans-fast) var(--ease-standard);
}


.cookie-banner__btn--allow {
   background-color:var(--accent);
   color:var(--accent-ink);
   border-color:var(--accent);
}


.cookie-banner__btn--allow:hover {
   background-color:#9C4521;
}


.cookie-banner__btn--allow:active {
   transform:translateY(1px);
}


.cookie-banner__btn--allow:focus-visible {
   outline:2px solid var(--ground);
   outline-offset:2px;
}


.cookie-banner__btn--deny {
   background-color:transparent;
   color:var(--ground);
   border-color:var(--line);
}


.cookie-banner__btn--deny:hover {
   background-color:rgba(255, 255, 255, 0.1);
   border-color:var(--ground);
}


.cookie-banner__btn--deny:active {
   transform:translateY(1px);
}


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


.chat-launcher {
   position:fixed;
   bottom:var(--space-md);
   right:var(--space-md);
   z-index:920;
   min-width:var(--tap-min);
   min-height:46px;
   height:46px;
   padding:0 1rem;
   display:inline-flex;
   align-items:center;
   gap:var(--space-xs);
   background-color:var(--ink);
   color:var(--ground);
   border:1px solid var(--ink);
   border-radius:var(--radius-xs);
   box-shadow:var(--shadow-md);
   cursor:pointer;
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   font-weight:600;
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
   transition:transform var(--trans-fast) var(--ease-standard),
                     background-color var(--trans-fast) var(--ease-standard),
                     border-color var(--trans-fast) var(--ease-standard),
                     box-shadow var(--trans-fast) var(--ease-standard);
}


@media (max-width: 768px) {
   .chat-launcher {
      bottom:var(--space-md);
      right:var(--space-md);
   }
}


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


.chat-launcher:active {
   transform:scale(0.96);
   background-color:#9C4521;
}


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


.chat-launcher.has-banner {
   bottom:calc(var(--space-md) + 68px);
}


.chat-launcher__badge {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:18px;
   height:18px;
   background-color:var(--accent);
   color:var(--accent-ink);
   font-family:var(--japa-37d);
   font-size:10px;
   border-radius:50%;
   margin-left:2px;
}


.chat-panel {
   position:fixed;
   bottom:var(--space-md);
   right:var(--space-md);
   z-index:930;
   width:min(380px, calc(100vw - 2rem));
   max-height:min(540px, calc(100vh - 4rem));
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   box-shadow:var(--shadow-lg);
   display:flex;
   flex-direction:column;
   overflow:hidden;
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transform:translateY(12px);
   transition:opacity var(--trans-base) var(--ease-standard),
                     transform var(--trans-base) var(--ease-standard),
                     visibility var(--trans-base) var(--ease-standard);
}


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


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


.chat-panel__title {
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
   color:var(--ink);
   font-weight:600;
}


.chat-panel__close {
   background:transparent;
   border:none;
   color:var(--ink-soft);
   cursor:pointer;
   padding:4px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-width:32px;
   min-height:32px;
   border-radius:var(--radius-xs);
   transition:color var(--trans-fast) var(--ease-standard),
                     background-color var(--trans-fast) var(--ease-standard);
}


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


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


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


.chat-panel__body {
   padding:var(--space-sm);
   overflow-y:auto;
   flex-grow:1;
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
   max-height:340px;
}


.chat-msg {
   padding:0.5rem 0.75rem;
   border-radius:var(--radius-xs);
   font-size:var(--font-size-sm);
   line-height:var(--line-height-snug);
   max-width:85%;
   word-break:break-word;
}


.chat-msg--in {
   background-color:var(--surface);
   color:var(--ink);
   align-self:flex-start;
   border:1px solid var(--line);
}


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


.chat-panel__first-step {
   padding:var(--space-sm);
   background-color:var(--surface);
   border-top:1px solid var(--line);
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}


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


.chat-panel__input {
   flex-grow:1;
   padding:0.45rem 0.65rem;
   background-color:var(--ground);
   color:var(--ink);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   font-family:var(--japa-7e1);
   font-size:var(--font-size-sm);
}


.chat-panel__send {
   padding:0.45rem 0.75rem;
   background-color:var(--accent);
   color:var(--accent-ink);
   border:1px solid var(--accent);
   border-radius:var(--radius-xs);
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-loose);
   text-transform:uppercase;
   cursor:pointer;
   min-height:var(--tap-min);
   transition:background-color var(--trans-fast) var(--ease-standard);
}


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


.chat-panel__send:active {
   background-color:#873B1A;
}


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


.site-footer {
   background-color:var(--surface);
   color:var(--ink);
   border-top:1px solid var(--line);
   padding-top:var(--space-xl);
   padding-bottom:var(--space-lg);
   margin-top:var(--space-2xl);
}


.site-footer__grid {
   display:grid;
   grid-template-columns:minmax(0, 1.8fr) minmax(0, 1fr) minmax(0, 1fr);
   gap:var(--space-xl);
   padding-bottom:var(--space-lg);
   border-bottom:1px solid var(--line);
}


@media (max-width: 900px) {
   .site-footer__grid {
      grid-template-columns:minmax(0, 1fr);
      gap:var(--space-lg);
   }
}


.site-footer__brand img {
   height:2.4rem;
   width:auto;
   margin-bottom:var(--space-xs);
}


.site-footer__lede {
   color:var(--ink-soft);
   font-size:var(--font-size-sm);
   line-height:var(--line-height-body);
   max-width:44ch;
   margin-bottom:var(--space-sm);
}


.site-footer__col-title {
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   letter-spacing:var(--tracking-caps);
   text-transform:uppercase;
   color:var(--ink);
   margin-bottom:var(--space-sm);
   font-weight:600;
}


.site-footer__list {
   list-style:none;
   padding:0;
   margin:0;
}


.site-footer__list li + li {
   margin-top:var(--space-2xs);
}


.site-footer__list a {
   font-size:var(--font-size-sm);
   color:var(--ink-soft);
   text-decoration:none;
   display:inline-flex;
   align-items:center;
   min-height:32px;
   padding-block:4px;
   transition:color var(--trans-fast) var(--ease-standard);
}


@media (pointer: coarse), (max-width: 768px) {
   .site-footer__list a {
      min-height:var(--tap-min);
   }
}


.site-footer__list a:hover {
   color:var(--accent);
   text-decoration:underline;
}


.site-footer__address {
   font-style:normal;
   font-size:var(--font-size-sm);
   color:var(--ink-soft);
   line-height:var(--line-height-snug);
}


.site-footer__address strong {
   display:inline-block;
   margin-right:12px;
}


.site-footer__address a {
   display:inline-flex;
   align-items:center;
   min-height:32px;
   padding-block:4px;
}


@media (pointer: coarse), (max-width: 768px) {
   .site-footer__address a {
      min-height:var(--tap-min);
   }
}


.site-footer__address p + p {
   margin-top:var(--space-2xs);
}


.site-footer__legal-bar {
   padding-top:var(--space-md);
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-md);
   flex-wrap:wrap;
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   color:var(--ink-soft);
}


.site-footer__legal-links {
   display:flex;
   align-items:center;
   gap:var(--space-md);
   flex-wrap:wrap;
}


.site-footer__legal-links a {
   color:var(--ink-soft);
   text-decoration:underline;
   text-decoration-color:var(--line);
   display:inline-flex;
   align-items:center;
   min-height:32px;
   padding-block:4px;
}


@media (pointer: coarse), (max-width: 768px) {
   .site-footer__legal-links a {
      min-height:var(--tap-min);
   }
}


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


.cookie-reopen-btn {
   background:transparent;
   border:none;
   font-family:var(--japa-37d);
   font-size:var(--font-size-xs);
   color:var(--ink-soft);
   text-decoration:underline;
   text-decoration-color:var(--line);
   cursor:pointer;
   padding:4px 0;
   display:inline-flex;
   align-items:center;
   min-height:32px;
}


@media (pointer: coarse), (max-width: 768px) {
   .cookie-reopen-btn {
      min-height:var(--tap-min);
   }
}


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


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