html { scroll-padding-top: 118px; }
button { font: inherit; }
:focus-visible { outline: 3px solid #1A1036; outline-offset: 5px; }
.btn-ink:focus-visible { outline-color: #FFFBF2; box-shadow: 0 0 0 7px #1A1036; }
.grid > * { min-width: 0; }
.skip-link { position: fixed; left: 20px; top: 12px; z-index: 100; padding: 12px 20px; border-radius: 999px; background: #1A1036; color: #FFFBF2; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.menu-toggle { display: none; }
.sample-card { display: flex; flex-direction: column; gap: 16px; transition: transform .15s ease; }
.sample-card:hover { transform: translateY(-4px); }
.sample-link { margin-top: auto; padding-top: 8px; font-weight: 700; }

@media (max-width: 1040px) {
  .site-header { position: sticky; top: 0; z-index: 50; }
  .header-inner { flex-wrap: nowrap !important; }
  .site-navigation { gap: 12px !important; }
  .js .menu-toggle { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 12px; border: 2px solid #1A1036; border-radius: 50%; background: transparent; color: #1A1036; cursor: pointer; }
  .menu-icon { position: relative; display: block; width: 22px; height: 18px; }
  .menu-icon span { position: absolute; left: 0; width: 22px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .18s ease, opacity .18s ease; }
  .menu-icon span:nth-child(1) { top: 0; }
  .menu-icon span:nth-child(2) { top: 8px; }
  .menu-icon span:nth-child(3) { top: 16px; }
  .menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .js .site-navigation { position: absolute; top: calc(100% - 4px); left: 20px; right: 20px; display: flex; flex-direction: column; align-items: stretch !important; gap: 4px !important; padding: 16px; border: 2px solid #1A1036; border-radius: 24px; background: #FF8AD0; box-shadow: 0 16px 32px rgba(26,16,54,.18); max-height: calc(100dvh - 120px); overflow-y: auto; }
  .js .site-navigation[hidden] { display: none !important; }
  .js .site-navigation a { display: flex; align-items: center; min-height: 46px; padding: 10px 14px; border-radius: 14px; }
  .js .site-navigation a:hover { background: rgba(26,16,54,.08); }
  .js .site-navigation a.pill { justify-content: center; border-radius: 999px; margin-top: 6px; }
  html:not(.js) .header-inner { flex-wrap: wrap !important; }
}

@media (max-width: 760px) {
  .grid { column-gap: 24px !important; }
  .btn { max-width: 100%; }
  #visit, #food { padding: 28px !important; }
  #visit .h3, #food .h3 { font-size: 32px !important; }
}

@media (max-width: 400px) {
  .card { padding: 26px; }
  .btn { padding-left: 24px !important; padding-right: 24px !important; font-size: 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-icon span { transition: none; }
  .sample-card { transition: none; }
}
