/* NC State Fair rental tent map. Loaded only on /north-carolina-state-fair and /fair-map. */

.fair-map { margin: 1.75rem 0 0; }
.fair-map img { width: 100%; height: auto; border-radius: var(--radius); box-shadow: 0 18px 50px rgba(7,19,15,.14); }
.fair-map figcaption { margin-top: .9rem; color: #465047; font-size: 1rem; }
.fair-map figcaption a { font-weight: 800; color: var(--forest); }
.prose h3.map-title { font-size: clamp(1.6rem, 2.6vw, 2.3rem); margin-top: 2.6rem; }

/* Standalone printable page */
.map-hero { padding-bottom: clamp(3rem, 6vw, 5rem); }
.map-hero h1 { font-size: clamp(2.7rem, 5.5vw, 5rem); }
.map-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.map-layout .fair-map { margin: 0; }
.map-side > * + * { margin-top: 1.2rem; }
.map-side h2 { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.map-side p { color: #465047; max-width: 60ch; }
.map-gates { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .75rem; }
.map-gates li { display: grid; grid-template-columns: 3.4rem 1fr; gap: 1rem; align-items: center; padding: 1rem 1.1rem; background: white; border: 1px solid var(--line); border-radius: 1rem; color: #465047; }
.map-gates strong { display: block; color: var(--ink); font: 800 1.12rem/1.25 "Manrope", sans-serif; letter-spacing: -.01em; }
.map-gates .num { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--forest); color: white; font: 800 1.3rem/1 "Manrope", sans-serif; }
.map-gates .is-main { background: var(--lime); border-color: var(--forest); color: var(--lime-ink); }
.map-gates .is-main strong { color: var(--lime-ink); }
.map-gates .is-main .num { background: var(--night); color: var(--lime); }
.map-gates .is-remote .num { background: white; color: var(--ink); border: 3px dashed var(--forest); }
.map-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.map-actions .button { min-height: 50px; }
.map-actions button.button { cursor: pointer; }
.map-actions [hidden] { display: none; }

@media (max-width: 860px) {
  .map-layout { grid-template-columns: 1fr; }
}

@media print {
  .print-page { background: white; color: black; font-size: 11pt; }
  .print-page .site-header, .print-page .skip, .print-page .map-actions, .print-page .footer-grid, .print-page .page-hero::after { display: none !important; }
  .print-page .page-hero { background: none; color: black; padding: 0 0 .8rem; }
  .print-page .page-hero .event-date { color: black; margin-top: .4rem; }
  .print-page .page-hero .eyebrow { color: black; }
  .print-page .page-hero h1 { font-size: 26pt; }
  .print-page .section { padding-block: 0; }
  .print-page .shell { width: 100%; }
  .print-page .map-layout { grid-template-columns: 1fr; gap: 1rem; }
  .print-page .fair-map { break-inside: avoid; }
  .print-page .fair-map img { box-shadow: none; max-height: 8.2in; width: auto; max-width: 100%; margin-inline: auto; }
  .print-page .map-gates li { break-inside: avoid; border-color: #999; }
  .print-page .site-footer { background: none; color: black; padding: 1rem 0 0; }
  .print-page .footer-bottom { border-top: 1px solid #999; color: black; }
}
