/* Hand-and-eye signature, limited to the navigation and footer lockups. */
.site-header .small-logo.brand-lockup,
.site-footer .small-logo.brand-lockup,
.case-header .small-logo.brand-lockup,
.case-footer .small-logo.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 11.55px;
  width: auto;
  flex: 0 0 auto;
  line-height: 1;
}
.brand-lockup .brand-symbol {
  display: block;
  width: 42.02px;
  height: 50.82px;
  flex: 0 0 42.02px;
}
.brand-symbol svg { display: block; width: 100%; height: 100%; overflow: visible; }
.small-logo.brand-lockup .brand-wordmark { width: 231px; height: auto; object-fit: contain; }
.case-header .brand-lockup .brand-wordmark,
.case-footer .brand-lockup .brand-wordmark { width: 207.9px; }
.brand-eye {
  transform-box: view-box;
  transform-origin: 51.8% 25.5%;
  animation: brand-eye-blink 3s infinite;
}
@keyframes brand-eye-blink {
  0%, 91%, 100% { transform: scale(1.05); }
  94%, 95% { transform: scale(1.05, .04725); }
  98% { transform: scale(1.05); }
}
html[data-motion-paused="true"] .brand-eye { animation: none; transform: scale(1.05); }
.brand-cta-compact { display: none; }
.header-cta .brand-cta-full,
.header-cta .brand-cta-compact { font-size: inherit; }
@media (prefers-reduced-motion: reduce) { .brand-eye { animation: none; transform: scale(1.05); } }
@media (max-width: 1000px) {
  .site-header .small-logo.brand-lockup,
  .site-footer .small-logo.brand-lockup { gap: 9.24px; }
  .site-header .brand-lockup .brand-wordmark,
  .site-footer .brand-lockup .brand-wordmark { width: 196.35px; }
  .brand-lockup .brand-symbol { width: 38.17px; height: 46.2px; flex-basis: 38.17px; }
}
@media (max-width: 760px) {
  .case-header .small-logo.brand-lockup,
  .case-footer .small-logo.brand-lockup { gap: 8.085px; }
  .case-header .brand-lockup .brand-wordmark,
  .case-footer .brand-lockup .brand-wordmark { width: 167.48px; }
  .case-footer .small-logo.brand-lockup { flex-basis: auto; margin-right: calc(100% - 200px); }
}
@media (max-width: 700px) {
  .site-header .small-logo.brand-lockup,
  .site-footer .small-logo.brand-lockup { gap: 8.085px; }
  .site-header .brand-lockup .brand-wordmark,
  .site-footer .brand-lockup .brand-wordmark { width: 173.25px; }
  .brand-lockup .brand-symbol { width: 35.31px; height: 42.74px; flex-basis: 35.31px; }
}
@media (max-width: 420px) {
  .brand-cta-full { display: none; }
  .brand-cta-compact { display: inline; }
}
@media (max-width: 380px) {
  .site-header .brand-lockup .brand-wordmark,
  .case-header .brand-lockup .brand-wordmark { width: 161.7px; }
}

/* The same header stays in normal flow, avoiding a jump when it returns. */
html { scroll-padding-top: calc(var(--site-header-height, 86px) + 12px); }
.scroll-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
  transform: translateY(0);
  transition: transform 300ms cubic-bezier(.22, .68, 0, 1), background-color 240ms ease, box-shadow 240ms ease;
}
.scroll-header.is-scrolled {
  background: rgba(239, 239, 235, .92);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  backdrop-filter: blur(18px) saturate(1.15);
  box-shadow: 0 1px 0 rgba(37, 38, 34, .09), 0 8px 28px rgba(37, 38, 34, .065);
}
.scroll-header.is-scroll-hidden { transform: translateY(calc(-100% - 2px)); pointer-events: none; }
.scroll-header.is-keyboard-focused { transition: none; }
.skip-link { position: fixed; z-index: 60; }
/* Keep full-size branding comfortably clear of the middle navigation. */
@media (max-width: 900px) {
  .site-header .header-nav-shell { display: none; }
}
@media (prefers-reduced-motion: reduce) { .scroll-header { transition: none; } }
html[data-motion-paused="true"] .scroll-header { transition: none; }

/* Editorial navigation: one moving selection, a quiet section label, and a
   strong contact action. The mobile menu keeps the same numbered structure. */
.site-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  height: 92px;
  padding: 0 clamp(20px, 2.4vw, 46px);
  gap: 20px;
  isolation: isolate;
}
.site-header::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: var(--header-progress, 0%);
  height: 2px;
  background: var(--wine);
  pointer-events: none;
}
.site-header > .brand-lockup { justify-self: start; }
.header-nav-shell { display: grid; gap: 5px; justify-items: center; }
.header-nav-caption {
  color: #77776f;
  font-size: 8px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.site-header .site-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px;
  border: 1px solid rgba(37, 38, 34, .12);
  border-radius: 999px;
  background: rgba(222, 222, 215, .63);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), 0 4px 14px rgba(37, 38, 34, .035);
  font-size: 12px;
  white-space: nowrap;
}
.site-nav-indicator {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: var(--nav-left, 4px);
  width: var(--nav-width, 0px);
  border-radius: 999px;
  background: var(--ink);
  box-shadow: 0 4px 12px rgba(37, 38, 34, .18);
  opacity: 0;
  transition: left .46s cubic-bezier(.2, .75, .2, 1), width .46s cubic-bezier(.2, .75, .2, 1), opacity .2s;
  pointer-events: none;
}
.site-nav.has-indicator .site-nav-indicator { opacity: 1; }
.site-header .site-nav a {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 11px 15px;
  border-radius: 999px;
  color: var(--ink);
  line-height: 1;
  transition: color .24s, transform .32s cubic-bezier(.2, .75, .2, 1);
}
.site-header .site-nav a::after,
.site-header .header-cta::after { display: none; }
.site-header .site-nav a:hover { transform: translateY(-1px); }
.site-header .site-nav a.is-lit { color: var(--paper); }
.site-nav .nav-index {
  color: var(--wine);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .02em;
  transition: color .24s, transform .32s;
}
.site-nav a:hover .nav-index { transform: translateY(-2px); }
.site-nav a.is-lit .nav-index { color: #d7b9bb; }
.site-header .site-nav a:focus-visible,
.site-header .header-cta:focus-visible,
.site-header .menu-toggle:focus-visible,
.mobile-menu a:focus-visible { outline: 2px solid var(--wine); outline-offset: 4px; }
.header-actions { justify-self: end; display: flex; align-items: center; }
.site-header .header-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 17px;
  overflow: hidden;
  isolation: isolate;
  padding: 5px 5px 5px 17px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  transition: transform .32s cubic-bezier(.2, .75, .2, 1), box-shadow .32s;
}
.site-header .header-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--wine);
  transform: translateX(-101%);
  transition: transform .44s cubic-bezier(.2, .75, .2, 1);
}
.site-header .header-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(37, 38, 34, .2); }
.site-header .header-cta:hover::before { transform: translateX(0); }
.site-header .header-cta .brand-cta-full,
.site-header .header-cta .brand-cta-compact { position: relative; z-index: 1; font-size: inherit; }
.site-header .header-cta .header-cta-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  font-size: 19px;
  line-height: 1;
  transition: transform .36s cubic-bezier(.2, .75, .2, 1);
}
.site-header .header-cta:hover .header-cta-icon { transform: rotate(45deg); }
.menu-toggle,
.mobile-menu { display: none; }
@media (max-width: 1130px) {
  .header-nav-caption { display: none; }
  .site-header .site-nav a { padding: 11px 11px; }
  .site-header .header-cta { gap: 9px; padding-left: 13px; }
}
@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; height: 78px; padding: 0 18px; }
  .site-header .header-nav-shell,
  .site-header .header-cta { display: none; }
  .menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    padding: 10px 0 10px 12px;
    border: 0;
    background: transparent;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
  }
  .menu-toggle-lines { display: grid; gap: 5px; width: 27px; }
  .menu-toggle-lines i { display: block; width: 27px; height: 1.5px; background: currentColor; transition: transform .32s, width .32s; }
  .menu-toggle-lines i:last-child { width: 18px; justify-self: end; }
  .site-header.menu-open .menu-toggle-lines i:first-child { transform: translateY(3.25px) rotate(45deg); }
  .site-header.menu-open .menu-toggle-lines i:last-child { width: 27px; transform: translateY(-3.25px) rotate(-45deg); }
  .mobile-menu:not([hidden]) {
    display: block;
    position: absolute;
    z-index: 60;
    top: calc(100% + 8px);
    left: 16px;
    right: 16px;
    padding: clamp(24px, 5vw, 44px);
    border-radius: 5px 5px 24px 24px;
    background: var(--ink);
    color: var(--paper);
    box-shadow: 0 24px 55px rgba(22, 22, 18, .22);
    animation: mobile-menu-enter .42s cubic-bezier(.2, .75, .2, 1) both;
  }
  .mobile-menu-top { display: flex; justify-content: space-between; color: #aaa9a0; font-size: 9px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
  .mobile-menu nav { display: grid; gap: 0; margin: 22px 0 30px; border-top: 1px solid rgba(255, 255, 255, .2); }
  .mobile-menu nav a {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: clamp(16px, 3vw, 24px) 0;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    transition: color .25s;
  }
  .mobile-menu nav a::after { display: none; }
  .mobile-menu nav a > span:first-child { align-self: start; padding-top: 7px; color: #d3a9ae; font-size: 10px; }
  .mobile-menu nav strong { font-size: clamp(34px, 7vw, 68px); font-weight: 400; line-height: .94; letter-spacing: -.055em; transition: transform .35s cubic-bezier(.2, .75, .2, 1); }
  .mobile-menu nav a > span:last-child { font-size: 22px; transition: transform .35s; }
  .mobile-menu nav a:hover { color: #e4c8c9; }
  .mobile-menu nav a:hover strong { transform: translateX(8px); }
  .mobile-menu nav a:hover > span:last-child { transform: translate(3px, -3px); }
  .mobile-menu-bottom { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
  .mobile-menu-bottom p { color: #aaa9a0; font: 21px/1.1 var(--serif); }
  .mobile-menu-bottom a { display: inline-flex; gap: 18px; align-items: center; padding-bottom: 5px; border-bottom: 1px solid #d3a9ae; font-size: 12px; }
  .mobile-menu-bottom a span { font-size: 19px; }
  @keyframes mobile-menu-enter { from { opacity: 0; transform: translateY(-12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
}
@media (max-width: 420px) {
  .site-header { padding: 0 16px; }
  .menu-toggle { gap: 8px; }
  .mobile-menu { left: 10px; right: 10px; }
  .mobile-menu-bottom { align-items: start; flex-direction: column; }
}
@media (max-width: 360px) {
  .menu-toggle-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .site-nav-indicator,
  .site-header .site-nav a,
  .site-header .header-cta,
  .site-header .header-cta::before,
  .site-header .header-cta .header-cta-icon,
  .menu-toggle-lines i,
  .mobile-menu nav strong,
  .mobile-menu nav a > span:last-child { transition: none; }
  .mobile-menu:not([hidden]) { animation: none; }
}
