.site-header { position: relative; z-index: 20; color: var(--cream); }
.site-nav {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: start;
  padding: 1.5rem 0; max-width: 89.5rem; margin: 0 auto;
}
.site-nav__side > ul { list-style: none; margin: 0; padding: 1rem 3rem; display: flex; gap: 1.625rem; align-items: center; }
.site-nav__side--left > ul { justify-content: flex-end; }
.site-nav__side--right > ul { justify-content: flex-start; }

.nav-item { position: relative; }
.nav-link {
  display: inline-flex; align-items: center; gap: 0.625rem; position: relative;
  font-family: var(--f-nav); font-size: 1.5rem; line-height: 1.2; color: #f5f2e9; text-decoration: none; white-space: nowrap;
}
.nav-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -0.375rem; height: 1.5px; background: currentColor;
  transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease);
}
.has-menu .nav-link::after { right: 1.875rem; }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { transform: scaleX(1); }
.nav-chevron { transition: transform .3s var(--ease); }
.has-menu:hover .nav-chevron, .has-menu:focus-within .nav-chevron { transform: rotate(180deg); }

.nav-menu {
  list-style: none; margin: 0; padding: 0.625rem; position: absolute; left: -0.875rem; top: calc(100% + 0.875rem); min-width: 15.625rem;
  background: var(--cream); border-radius: 0.75rem; box-shadow: 0 1.125rem 2.5rem rgba(40, 10, 6, .28);
  opacity: 0; visibility: hidden; transform: translateY(-0.375rem); transition: opacity .25s, transform .3s var(--ease), visibility .25s;
}
.nav-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -1rem; height: 1rem; }
.has-menu:hover .nav-menu, .has-menu:focus-within .nav-menu { opacity: 1; visibility: visible; transform: none; }
.nav-menu a {
  display: block; padding: 0.5625rem 0.875rem; border-radius: 0.5rem; color: var(--ink); text-decoration: none;
  font-family: var(--f-body); font-weight: 400; font-size: 0.9688rem; line-height: 1.4; transition: background-color .2s, color .2s;
}
.nav-menu a:hover { background: #eae3d6; color: var(--red-brand); }

.site-logo { display: flex; height: 8rem; padding: 0.25rem; border-radius: 6.25rem; background: var(--red-deep); position: relative; z-index: 2; transition: transform .35s var(--ease); }
.site-logo:hover { transform: translateY(-2px); }
.site-logo img { height: 100%; width: auto; aspect-ratio: 262 / 374; object-fit: contain; filter: drop-shadow(0 0.25rem 0.625rem rgba(0,0,0,.18)); }

.site-header[data-variant="overlap"] { background: var(--red) url("../assets/images/leather.jpg") center top / 89.5rem auto; height: 7.625rem; }
.site-header[data-variant="overlap"] .site-logo { box-shadow: 0 2px 0 rgba(0,0,0,.04); }

.site-header[data-variant="home"] .site-logo { height: 8rem; }

.nav-toggle { display: none; position: absolute; right: 1.125rem; top: 2.125rem; width: 2.875rem; height: 2.875rem; border: 1px solid rgba(245,242,233,.45); border-radius: 50%; background: rgba(0,0,0,.08); padding: 0; z-index: 30; }
.nav-toggle span { position: absolute; left: 0.8125rem; right: 0.8125rem; height: 1.5px; background: var(--cream); transition: transform .3s var(--ease), opacity .2s; }
.nav-toggle span:nth-child(1) { top: 1rem; } .nav-toggle span:nth-child(2) { top: 1.375rem; } .nav-toggle span:nth-child(3) { top: 1.75rem; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(0.375rem) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-0.375rem) rotate(-45deg); }

.site-drawer {
  position: fixed; inset: 0; z-index: 25; overflow-y: auto; padding: 8.125rem 1.875rem 2.5rem;
  background: var(--red) url("../assets/images/leather.jpg") center top / 89.5rem auto;
  opacity: 0; transform: translateY(-0.75rem); transition: opacity .3s, transform .35s var(--ease);
}
.site-drawer.is-open { opacity: 1; transform: none; }
.drawer-list, .drawer-sub { list-style: none; margin: 0; padding: 0; }
.drawer-link { display: block; padding: 0.75rem 0; font-family: var(--f-nav); font-size: 1.75rem; color: var(--cream); text-decoration: none; border-bottom: 1px solid rgba(245,242,233,.14); }
.drawer-link[aria-current="page"] { color: var(--gold); }
.drawer-sub { padding: 0.375rem 0 0.625rem 1rem; }
.drawer-sub a { display: block; padding: 0.375rem 0; color: rgba(245,242,233,.82); text-decoration: none; font-size: 1rem; font-weight: 400; }
html.drawer-open {  }

@media (max-width: 1100px) {
  .site-nav__side > ul { padding: 1rem 1.5rem; gap: 1.125rem; }
  .nav-link { font-size: 1.25rem; }
}
@media (max-width: 900px) {
  .site-nav { grid-template-columns: 1fr; justify-items: center; padding: 1.125rem 0; }
  .site-nav__side { display: none; }
  .site-logo { height: 6rem; }
  .nav-toggle {
    display: block; top: 1.0625rem; right: 1rem; width: 2.875rem; height: 2.875rem;
    border: 1px solid rgba(220,161,93,.7); background: rgba(40,10,6,.35); box-shadow: 0 0.375rem 1rem rgba(20,4,2,.25), inset 0 0 0 3px rgba(255,255,255,.04);
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background-color .25s, border-color .25s;
  }
  .nav-toggle span { left: 0.875rem; right: 0.875rem; border-radius: 2px; }
  .nav-toggle span:nth-child(2) { right: 1.25rem; }
  .nav-toggle:hover, .nav-toggle[aria-expanded="true"] { background: rgba(40,10,6,.6); border-color: var(--gold); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { right: 0.875rem; }
  .site-header[data-variant="overlap"] { height: 6.125rem; }
  .site-header[data-variant="home"] .site-logo { height: 6rem; }
}

.site-footer { color: var(--cream-2); padding: 4.5rem var(--pad-x) 2rem; }
.footer-main {
  display: grid; grid-template-columns: minmax(16rem, 1.25fr) .9fr 1.2fr minmax(21rem, 1.35fr); gap: 3rem 3.5rem; align-items: start;
  padding-bottom: 3.25rem; border-bottom: 1px solid rgba(245,239,230,.25);
}
.footer-contact .social-row { gap: .5rem; flex-wrap: nowrap; justify-content: space-between; max-width: 18rem; }
.footer-brand { display: flex; gap: 1.5rem; align-items: flex-start; }
.footer-logo { flex: none; display: block; width: 5.5rem; padding: .25rem; border-radius: 100px; background: var(--red-deep); box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.2); transition: transform .3s var(--ease); }
.footer-logo:hover { transform: translateY(-2px); }
.footer-logo img { width: 100%; height: auto; }
.footer-name { font-family: var(--f-serif); font-weight: 500; font-size: 1.75rem; line-height: 1.2; letter-spacing: .02em; color: var(--cream-2); }
.footer-tagline { margin-top: .75rem; font-family: var(--f-serif); font-style: italic; font-size: 1.25rem; line-height: 1.5; color: rgba(245,239,230,.85); }
.footer-col h2 { font-family: var(--f-nav); font-weight: 400; font-size: 1.25rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.125rem; }
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li + li { margin-top: .625rem; }
.footer-col a:not(.social-link):not(.footer-email) {
  color: var(--cream-2); text-decoration: none; font-size: 1.125rem; font-weight: 400; line-height: 1.5;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--ease), color .2s;
}
.footer-col a:not(.social-link):not(.footer-email):hover, .footer-col a:not(.social-link):not(.footer-email):focus-visible { background-size: 100% 1px; color: #fff; }
.footer-text { font-size: 1.125rem; line-height: 1.6; font-weight: 400; color: rgba(245,239,230,.9); }

.footer-contact {
  padding: 1.75rem 1.75rem 1.5rem; border: 1px solid rgba(245,239,230,.22); border-radius: .75rem;
  background: rgba(40, 10, 6, .22);
}
.footer-col .footer-email {
  display: flex; align-items: center; gap: .75rem; margin-top: 1.25rem; padding: .875rem 1.125rem; min-height: 48px;
  border-radius: .5rem; background: var(--cream-2); color: var(--red); background-image: none;
  font-size: 1rem; font-weight: 700; line-height: 1.3; text-decoration: none; overflow-wrap: normal;
  transition: background-color .2s, transform .25s var(--ease), box-shadow .25s;
}
.footer-col .footer-email svg { flex: none; width: 1.375rem; height: 1.375rem; }
.footer-col .footer-email:hover, .footer-col .footer-email:focus-visible { background: #fff; color: var(--red); transform: translateY(-2px); box-shadow: 0 .5rem 1.25rem rgba(20,4,2,.3); }
.footer-col .footer-form-link { display: inline-block; margin-top: 1rem; font-size: 1.0625rem; }
.footer-col .footer-form-link span { display: inline-block; transition: transform .25s var(--ease); }
.footer-col .footer-form-link:hover span { transform: translateX(3px); }
.footer-follow { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(245,239,230,.18); }
.footer-follow__label { font-family: var(--f-nav); font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(245,239,230,.8); }
.social-row { list-style: none; margin: .875rem 0 0; padding: 0; display: flex; gap: .875rem; flex-wrap: wrap; }
.footer-col .social-row li + li { margin-top: 0; }
.social-link {
  width: 3rem; height: 3rem; min-width: 44px; min-height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--cream-2);
  border: 1px solid var(--footer-ring); background: rgba(255,255,255,.08); transition: background-color .25s, transform .25s var(--ease), color .2s;
}
.social-link:hover, .social-link:focus-visible { background: var(--cream-2); color: var(--red); transform: translateY(-2px); }
.social-link svg { width: 1.375rem; height: 1.375rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; padding-top: 1.75rem; }
.site-footer__copy { font-family: var(--f-nav); font-size: 1.125rem; line-height: 1.4; color: rgba(245,239,230,.9); }
.footer-bottom { align-items: center; }
.footer-partner { display: block; line-height: 0; transition: opacity .25s; }
.footer-partner img { display: block; height: 2.75rem; width: auto; }
.footer-partner:hover { opacity: .85; }

.site-footer :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 2px; }

@media (max-width: 1100px) {
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-brand, .footer-contact { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .site-footer { padding: 3.5rem 1.25rem 6rem; }
  .footer-main { grid-template-columns: 1fr; gap: 2.75rem; padding-bottom: 2.5rem; border-bottom-color: rgba(245,239,230,.16); }

  .footer-brand { flex-direction: column; align-items: center; text-align: center; gap: 1.125rem; }
  .footer-logo { width: 4.75rem; }
  .footer-name { font-size: 1.75rem; }
  .footer-tagline { margin-top: 0.5rem; font-size: 1.125rem; text-wrap: balance; }
  .footer-text { text-wrap: balance; }
  .footer-brand::after { content: ""; width: 0.5rem; height: 0.5rem; margin-top: 0.5rem; transform: rotate(45deg); border: 1px solid var(--gold); }

  .footer-col h2 { display: flex; align-items: center; justify-content: center; gap: 0.875rem; margin-bottom: 1.25rem; font-size: 1.0625rem; letter-spacing: .2em; }
  .footer-col h2::before, .footer-col h2::after { content: ""; flex: 0 0 2.5rem; height: 1px; background: linear-gradient(90deg, transparent, rgba(220,161,93,.7)); }
  .footer-col h2::after { background: linear-gradient(90deg, rgba(220,161,93,.7), transparent); }

  .footer-explore ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.625rem; }
  .footer-explore li + li { margin-top: 0; }
  .footer-col.footer-explore a:not(.social-link):not(.footer-email) {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.125rem; border-radius: 2rem;
    border: 1px solid rgba(245,239,230,.28); background: rgba(255,255,255,.06); font-size: 1rem;
  }
  .footer-col.footer-explore a:not(.social-link):not(.footer-email):active { background: var(--cream-2); color: var(--red); }

  .footer-read ul { border-radius: 0.75rem; overflow: hidden; border: 1px solid rgba(245,239,230,.16); background: rgba(40,10,6,.18); }
  .footer-read li + li { margin-top: 0; border-top: 1px solid rgba(245,239,230,.12); }
  .footer-col.footer-read a:not(.social-link):not(.footer-email) {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 52px; padding: 0.75rem 1.125rem;
    background: none; font-size: 1.0625rem; line-height: 1.35;
  }
  .footer-col.footer-read a:not(.social-link):not(.footer-email)::after { content: "\2192"; flex: none; color: var(--gold); transition: transform .25s var(--ease); }
  .footer-col.footer-read a:not(.social-link):not(.footer-email):active { background: rgba(255,255,255,.08); }

  .footer-contact { padding: 1.75rem 1.25rem 1.5rem; text-align: center; background: linear-gradient(180deg, rgba(40,10,6,.32), rgba(40,10,6,.12)); }
  .footer-text { font-size: 1.0625rem; }
  .footer-col .footer-email { justify-content: center; font-size: 0.9375rem; padding: 0.875rem 0.875rem; }
  .footer-col .footer-form-link { margin-top: 1.125rem; }
  .footer-follow__label { font-size: 0.875rem; letter-spacing: .18em; }
  .footer-contact .social-row { justify-content: center; gap: 0.75rem; max-width: none; }

  .footer-bottom { flex-direction: column; align-items: center; text-align: center; gap: 0.5rem; padding-top: 1.75rem; }
  .site-footer__copy { font-size: 0.9375rem; color: rgba(245,239,230,.72); }
  .footer-bottom { gap: 1.25rem; padding-top: 2rem; }
  .footer-partner { order: -1; }
  .footer-partner img { height: 2.5rem; }
}

.to-top {
  position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 40;
  width: 3.5rem; height: 3.5rem; min-width: 48px; min-height: 48px; padding: 0; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  background: var(--subnav); color: #fff8ec;
  border: 2px solid #fff8ec;                                     box-shadow: 0 0 0 2px rgba(68,26,18,.55), 0 .75rem 1.75rem rgba(30,6,4,.35);
  opacity: 0; visibility: hidden; transform: translateY(1rem);
  transition: opacity .3s, transform .35s var(--ease), visibility .3s, background-color .2s;
}
.to-top svg { width: 1.5rem; height: 1.5rem; }
.to-top.is-shown { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--red-brand); }
.to-top:hover svg { animation: to-top-nudge .6s var(--ease); }
.to-top:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
@keyframes to-top-nudge { 40% { transform: translateY(-4px); } }
@media (max-width: 760px) { .to-top { right: 1rem; bottom: 1rem; } }
@media (prefers-reduced-motion: reduce) { .to-top { transition: none; } .to-top:hover svg { animation: none; } }

.nav-chevron { width: 1.25rem; height: 1.25rem; flex: none; }
.back-link svg { width: 2.125rem; height: 1rem; }