/* Shared interaction states: approved palette, no changes to static artwork. */
:root {
  --interaction-ink: #005c3c;
  --interaction-paper: #f7f4ec;
  --interaction-wash: #e9eee5;
  --interaction-speed: 160ms;
}
::selection { background: #005c3c; color: #f7f4ec; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
:where(a, button, summary, input, select, textarea) {
  transition: color var(--interaction-speed) ease, background-color var(--interaction-speed) ease,
    border-color var(--interaction-speed) ease, box-shadow var(--interaction-speed) ease;
}
/* Two contrasting rings stay visible on paper, green, night and photographs. */
body :is(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid var(--interaction-ink) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px var(--interaction-paper) !important;
}
body .accordion button:focus-visible {
  outline-offset: -6px !important;
  box-shadow: inset 0 0 0 3px var(--interaction-paper) !important;
}
body .language { overflow: visible; }
body .language button:first-child { border-radius: 99px 0 0 99px; }
body .language button:last-child { border-radius: 0 99px 99px 0; }
body .header-r7 .nav a,
body .header-r7 .language button,
body .brand-controls button,
body .jobs-pagination button,
body .jobs-arrow,
body .legal-nav a,
body .legal-home-link { min-width: 44px; min-height: 44px; }
body .brand-controls button { width: 44px; height: 44px; opacity: 1; color: #52615a; }
body .brand-controls button[aria-current="true"] { color: #005c3c; background: var(--interaction-wash); }
body .brand-controls .brand-play { color: #005c3c; font-size: 16px; }
body .jobs-pagination button { width: 44px; }
body .jobs-pagination button::after { background: #52615a; }
body .jobs-pagination button[aria-current="true"]::after { background: #005c3c; }
body .footer-links-r7 nav { gap: 0; }
body .footer-links-r7 nav :is(a, button),
body .legal-row a,
body .legal-footer nav a,
body .legal-footer-bottom a,
body .legal-contents a,
body .legal-mobile-contents nav a {
  display: flex; align-items: center; min-height: 44px;
}
body .legal-footer nav { gap: 0; }
body .instagram-link { display: inline-flex; align-items: center; min-height: 44px; }
body .legal-brand, body .legal-footer-brand > a, body .bar > a { display: inline-flex; align-items: center; min-height: 44px; }
body .accordion button[aria-expanded="true"] { background: #f1f5ed; }
body :is(.jobs-pause, .persona-toggle, .brand-play, .bento-toggle, .desfile-ctrl button)[aria-pressed="true"] {
  background: #005c3c; color: #f7f4ec; border-color: #005c3c;
}
body .bento-toggle { min-height: 44px; }
body .persona-pager button { border-radius: 4px; }
body .persona-pager button[aria-current="true"] { color: #005c3c; }
body form :is(input, select, textarea) { min-height: 44px; color: #202622; caret-color: #005c3c; }
body form :is(input, select, textarea)[aria-invalid="true"] { border: 2px solid #a8382a; background: #fff8f6; }
body form input::file-selector-button {
  min-height: 32px; margin-right: 12px; padding: 6px 12px; border: 1px solid #005c3c;
  border-radius: 4px; background: #e9eee5; color: #005c3c; cursor: pointer; font: inherit;
}
body #form-notice:not(:empty) { padding: 12px; border: 1px solid #005c3c; border-radius: 8px; background: #e9eee5; }
@media (hover: hover) and (pointer: fine) {
  body .header-r7 .language button:not([aria-pressed="true"]):hover,
  body .header-r7 .menu:hover { background: #30483e; color: #fff; }
  body .button.dark:hover { background: #005c3c; color: #f7f4ec; }
  body .button.venue-cta:hover { border-color: currentColor; }
  body :is(.brand-controls button, .jobs-pagination button, .persona-pager button, .bento-toggle, .x):not(:disabled):hover { background: var(--interaction-wash); color: #005c3c; }
  body :is(.jobs-pause, .persona-toggle, .brand-play, .bento-toggle, .desfile-ctrl button)[aria-pressed="true"]:hover { background: #02352a; color: #f7f4ec; }
  body :is(.persona-toggle, .desfile-ctrl button):not(:disabled):hover { background: #005c3c; color: #f7f4ec; }
  body .accordion button:hover { background: #e9eee5; }
  body .visit-card:hover .visit-card-action { text-decoration: underline; text-underline-offset: 5px; }
  body :is(.footer-links-r7, .legal-row, .legal-footer) :is(a, button):hover,
  body .instagram-link:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
  body .footer-links-r7 :is(a, button):hover { color: #fff; }
  body dialog nav a:hover { color: #005c3c; background: #e9eee5; }
  body .legal-mobile-contents summary:hover { background: #e9eee5; }
  body form :is(input, select, textarea):not([aria-invalid="true"]):hover { border-color: #005c3c; }
  body form input::file-selector-button:hover { background: #005c3c; color: #f7f4ec; }
}
body :is(.button, .x, .menu, .jobs-arrow, .jobs-pause, .persona-toggle, .brand-controls button, .bento-toggle, .desfile-ctrl button):not(:disabled):active {
  transform: translateY(1px); box-shadow: none;
}
body :is(.header-r7 .nav a, .header-r7 .language button):active { background: #30483e; color: #fff; }
body .header-r7 .language button[aria-pressed="true"]:active { background: #00d66b; color: #02352a; }
body :is(.accordion button, .persona-pager button, .jobs-pagination button, dialog nav a, .legal-mobile-contents summary):active { background: #dce5d6; }
body .visit-card:active { transform: translateY(1px); }
body :is(.footer-links-r7, .legal-footer) :is(a, button):active { color: #00d66b; }
body :is(.instagram-link, .legal-row a, .legal-copy a, .legal-contents a, .legal-mobile-contents nav a):active { color: #02352a; text-decoration-thickness: 2px; }
body .legal-nav a:active, body .legal-home-link:active { background: #30483e; }
body :is(button, input, select, textarea):disabled {
  opacity: .6; cursor: not-allowed; transform: none; box-shadow: none;
}
@media (max-width: 767px) {
  body .jobs-controls { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 8px; max-width: 360px; }
  body .jobs-pagination { grid-column: 1 / -1; grid-row: 1; justify-content: center; }
  body .jobs-controls [data-jobs-prev] { grid-column: 1; grid-row: 2; }
  body .jobs-controls [data-jobs-next] { grid-column: 3; grid-row: 2; }
  body .jobs-pause { grid-column: 2; grid-row: 2; justify-self: center; }
  body .jobs-count { display: none; }
}
@media (hover: none), (pointer: coarse) {
  body .button:hover, body .visit-card:hover { transform: none; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body :is(a, button, summary, input, select, textarea), body .persona-pager i { transition: none !important; }
  body :is(.button, .visit-card, .jobs-arrow):hover,
  body :is(.button, .visit-card, .jobs-arrow):active { transform: none; }
}
@media (forced-colors: active) {
  body :is(a, button, summary, input, select, textarea):focus-visible { outline-color: Highlight; box-shadow: none; }
  body button[aria-current="true"], body button[aria-pressed="true"] { outline: 2px solid Highlight; outline-offset: -2px; }
}

/* Text-only and linked artwork targets retain their existing composition. */
body .skip, body .map-card a:not(.button) { display: inline-flex; align-items: center; min-height: 44px; }
body .footer-links-r7 nav :is(a, button), body .legal-row a { min-width: 44px; }
body .map-card a:not(.button) { color: #005c3c; text-underline-offset: 5px; }
body .ig-card:active { filter: brightness(.92); }
body :is(.bar > a, .legal-brand, .legal-footer-brand > a):active { opacity: .65; }
@media (hover: hover) and (pointer: fine) {
  body :is(.bar > a, .legal-brand, .legal-footer-brand > a):hover { opacity: .82; }
  body .map-card a:not(.button):hover { color: #02352a; text-decoration-thickness: 2px; }
  body .ig-card:hover { transform: rotate(0) translateY(-4px); }
}
@media (forced-colors: active) {
  body :is(a, button, summary, input, select, textarea):focus-visible { outline-color: Highlight !important; box-shadow: none !important; }
}

/* Essential controls degrade to readable navigation and held-state notices. */
html:not(.dialogs-ready) [data-open] { display: none !important; }
.site-fallback { position: fixed; z-index: 30; inset: auto 12px 12px; max-height: 50svh; overflow: auto; padding: 12px 16px; border: 1px solid #202622; border-radius: 8px; background: #f7f5ed; color: #202622; }
.site-fallback summary { min-height: 24px; cursor: pointer; font-weight: 600; }
.site-fallback summary:focus-visible { outline: 3px solid #005c3c; outline-offset: 3px; }
.dialogs-ready .site-fallback { display: none; }
.ticker { position: relative; }
.ticker.is-paused .ticker-track { animation-play-state: paused; }
.ticker-toggle { position: absolute; right: .5rem; top: .25rem; z-index: 2; min-height: 44px; padding: .5rem .8rem; color: #202622; background: #fff; border: 1px solid #202622; border-radius: 4px; cursor: pointer; }
.ticker-toggle[hidden] { display: none; }
.ticker-toggle:focus-visible, .map-status button:focus-visible { outline: 3px solid #00d66b; outline-offset: 2px; }
.map-status { position: absolute; left: 1rem; bottom: 1rem; max-width: 20rem; padding: .75rem; background: #fff; color: #202622; z-index: 2; }
.map-status[hidden], .tile-scene[hidden] { display: none; }
#history-status:empty { display: none; }

.bento-retry { position: absolute; z-index: 5; top: .75rem; right: .75rem; padding: .65rem; background: #fff; color: #202622; border: 1px solid #202622; border-radius: 4px; min-height: 44px; cursor: pointer; }
.bento-retry[hidden] { display: none; }
.bento-retry:focus-visible { outline: 3px solid #005c3c; outline-offset: 2px; }
