/* Production refinement v2 — 2026-08-18. Loaded last to bypass immutable caches. */

:root {
  --production-ink: #17130f;
  --production-paper: rgba(255, 255, 255, .5);
  --production-gold: #e2b85f;
}

/* API-backed desktop navigation. */
.site-header,
.site-header .header-inner,
.desktop-nav { overflow: visible; }

.desktop-nav { gap: clamp(12px, 1.25vw, 24px); }

.nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
  gap: 3px;
}

.desktop-nav .nav-dropdown-link { padding-right: 2px; }

.nav-dropdown-toggle {
  width: 22px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.nav-dropdown-toggle span {
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s ease;
}

.nav-dropdown.is-open .nav-dropdown-toggle span {
  transform: translateY(2px) rotate(225deg);
}

.nav-dropdown-panel {
  position: absolute;
  z-index: 120;
  top: calc(100% + 16px);
  left: 50%;
  width: min(440px, calc(100vw - 32px));
  max-height: min(70vh, 650px);
  padding: 12px;
  overflow: auto;
  border: 1px solid rgba(226, 184, 95, .44);
  border-radius: 22px;
  background: rgba(10, 9, 7, .98);
  box-shadow: 0 28px 74px rgba(0, 0, 0, .46);
  color: #f8edda;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 9px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.nav-dropdown--masters .nav-dropdown-panel {
  left: auto;
  right: -110px;
  transform: translateY(9px);
}

.nav-dropdown.is-open .nav-dropdown-panel {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.nav-dropdown--masters.is-open .nav-dropdown-panel { transform: translateY(0); }

.desktop-nav .nav-panel-all,
.desktop-nav .nav-panel-item {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 12px 13px;
  border-radius: 13px;
  color: #f8edda;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
}

.desktop-nav .nav-panel-all {
  margin-bottom: 5px;
  color: var(--production-gold);
  font-size: 13px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.desktop-nav .nav-panel-item {
  gap: 12px;
  border-top: 1px solid rgba(255, 255, 255, .08);
  font-size: 14px;
}

.desktop-nav .nav-panel-item:hover,
.desktop-nav .nav-panel-item:focus-visible,
.desktop-nav .nav-panel-item[aria-current="page"] {
  background: rgba(226, 184, 95, .13);
  color: #fff7e8;
  outline: none;
}

.desktop-nav .nav-panel-item::after,
.desktop-nav .nav-panel-all::after { content: none; }

.nav-panel-item img {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  border: 1px solid rgba(226, 184, 95, .68);
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
}

.nav-panel-item span { min-width: 0; }
.nav-panel-item strong,
.nav-panel-item small { display: block; }
.nav-panel-item strong { color: inherit; font-size: 14px; }
.nav-panel-item small {
  margin-top: 4px;
  overflow: hidden;
  color: rgba(248, 237, 218, .64);
  font-size: 11px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Mobile navigation groups. */
.mobile-nav-group {
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.mobile-nav-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 0;
  color: #f8edda;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.mobile-nav-group summary::-webkit-details-marker { display: none; }
.mobile-nav-group summary span {
  width: 9px;
  height: 9px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s ease;
}
.mobile-nav-group[open] summary span { transform: translateY(2px) rotate(225deg); }
.mobile-nav-panel {
  max-height: min(52vh, 480px);
  padding: 0 0 12px;
  overflow: auto;
}
.mobile-menu .mobile-nav-all,
.mobile-menu .nav-panel-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 10px;
  border: 0;
  border-radius: 12px;
  color: rgba(248, 237, 218, .82);
  font-size: 14px;
  text-transform: none;
}
.mobile-menu .mobile-nav-all { color: var(--production-gold); }
.mobile-menu .nav-panel-item + .nav-panel-item { border-top: 1px solid rgba(255,255,255,.07); }
.mobile-menu .nav-panel-item img { width: 42px; height: 42px; flex-basis: 42px; }

/* Real reviews with portraits, followed by the existing text archive. */
.reviews-ledger { display: block; border-top: 0; }
.reviews-section-heading { margin-bottom: clamp(28px, 4vw, 52px); }
.reviews-section-heading h2 { margin: 8px 0 0; color: #f2dda0; }
.reviews-portraits { margin-bottom: clamp(76px, 9vw, 130px); }
.reviews-portrait-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 34px);
}
.reviews-ledger .review-portrait-card {
  display: grid;
  grid-template-columns: minmax(150px, .42fr) minmax(0, 1fr);
  gap: 0;
  min-height: 410px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(226, 184, 95, .26);
  border-radius: 22px;
  background: #15120e;
  box-shadow: 0 22px 48px rgba(0, 0, 0, .2);
}
.review-portrait-card > img {
  width: 100%;
  height: 100%;
  min-height: 410px;
  object-fit: cover;
  object-position: center top;
}
.review-portrait-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(24px, 3vw, 40px);
}
.review-portrait-rating {
  margin-bottom: 20px;
  color: #f3b82f;
  font-size: 19px;
  letter-spacing: .12em;
}
.reviews-ledger .review-portrait-copy blockquote {
  margin: 0 0 26px;
  color: #f5ecdc;
  font-family: inherit;
  font-size: clamp(15px, 1.15vw, 18px);
  line-height: 1.68;
  white-space: pre-line;
}
.reviews-ledger .review-portrait-copy cite {
  margin-top: auto;
  color: #e2b85f;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.reviews-text-archive { border-top: 1px solid rgba(226, 184, 95, .24); padding-top: clamp(52px, 7vw, 92px); }
.reviews-ledger-list { border-top: 1px solid rgba(217,173,84,.24); }
.reviews-ledger .reviews-ledger-list article {
  display: grid;
  grid-template-columns: minmax(150px,.3fr) minmax(0,1fr);
  gap: clamp(24px,5vw,86px);
  padding: clamp(28px,4vw,56px) 0;
  border-bottom: 1px solid rgba(217,173,84,.18);
}
.reviews-ledger .reviews-ledger-list blockquote { white-space: pre-line; }

/* Keep the translucent treatment only on the compact labels in the image tiles. */
.experience-grid a > small,
.experience-grid a > span {
  background: var(--production-paper) !important;
  color: var(--production-ink) !important;
  text-shadow: none !important;
  backdrop-filter: blur(4px);
}
.experience-grid a > small,
.experience-grid a > span {
  width: fit-content;
  max-width: calc(100% - 24px);
  padding: 7px 11px;
  border-radius: 9px;
}
.experience-grid a > small { margin-bottom: 5px; }

/* The “About the festival” headings stay expressive without covering the photography. */
body[data-page="about"] .editorial-hero h1 {
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1;
}
.brand-story-copy h2 {
  font-size: clamp(40px, 4.4vw, 64px);
  line-height: 1.04;
}

/* Expanded contact footer. */
.footer-grid.production-footer-grid {
  grid-template-columns: 1.25fr repeat(4, minmax(135px, .78fr));
  gap: clamp(26px, 3vw, 54px);
}
.production-footer-grid .footer-column a { line-height: 1.45; }
.production-footer-grid .footer-contact-link { color: rgba(255,255,255,.78); font-variant-numeric: tabular-nums; }
.production-footer-grid .footer-social-link { color: #e9cc82; }
.footer-location-note { margin: 7px 0 12px; color: rgba(255,255,255,.58); font-size: 14px; }

@media (max-width: 1180px) {
  .footer-grid.production-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .production-footer-grid .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .reviews-portrait-grid { grid-template-columns: 1fr; }
  .reviews-ledger .review-portrait-card { grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr); }
}

@media (max-width: 700px) {
  .footer-grid.production-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-ledger .review-portrait-card { display: block; }
  .review-portrait-card > img { height: min(112vw, 520px); min-height: 0; }
  .reviews-ledger .reviews-ledger-list article { grid-template-columns: 1fr; gap: 14px; }
  body[data-page="about"] .editorial-hero h1 { font-size: clamp(38px, 11vw, 50px); }
  .brand-story-copy h2 { font-size: clamp(36px, 10vw, 48px); }
}

@media (max-width: 480px) {
  .footer-grid.production-footer-grid { grid-template-columns: 1fr; }
  .production-footer-grid .footer-brand { grid-column: auto; }
  .reviews-ledger .review-portrait-copy blockquote { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .nav-dropdown-panel,
  .nav-dropdown-toggle span,
  .mobile-nav-group summary span { transition: none; }
}
