/* Homepage refinement: preserve the heritage palette and the two existing faces.
   Keep these scoped roles separate from the explorer and staff interfaces. */
.home {
  --gold: #725921;
  --type-control: .8125rem;
  --type-caption: .875rem;
  --type-facts: 1.125rem;
  --section-space: clamp(2.5rem, 5vw, 4.5rem);
  --group-space: 1.5rem;
  --focus: #725921;
}
.home ::selection { background: #ded0ac; color: var(--ink); }
.home :is(a, button, summary, input, select):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}
.home .dark { --focus: #e7cf98; }
.home a { text-underline-offset: .2em; }
.home :is(h2, h3, h4) { text-wrap: balance; }
.home .section { padding-block: var(--section-space); }
.home .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: end;
  gap: var(--group-space);
  margin-bottom: 2rem;
  padding-top: 1.5rem;
}
.home .section-heading > :only-child { grid-column: 1 / -1; }
.home .section-heading p { max-width: 48ch; line-height: 1.6; }
.home :is(.plan-notes, .monument-panel-copy, .recon-copy, .concept-grid article) p { max-width: 65ch; }
.home .eyebrow { font-size: .75rem; letter-spacing: .09em; }
.home :is(.btn, .lang, .menu) { min-height: 44px; font-size: var(--type-control); }
.home .btn { letter-spacing: .06em; }
.home .lang { padding-inline: 1rem 0; }
.home .menu { min-width: 60px; }
.home .header nav { font-size: .75rem; gap: 1.25rem; }
.home .header nav a { display: flex; align-items: center; min-height: 44px; }
.home .header nav a + a::before { content: none; }
.home .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.home .hero-actions .secondary { background: var(--paper); }
.home .hero-past { display: inline-flex; align-items: center; min-height: 44px; margin-top: .5rem; }
.home .hero .eyebrow { font-size: .75rem; max-width: 34ch; }
.home .hero-copy { max-width: 580px; }
.home .hero-video-toggle {
  position: absolute;
  z-index: 2;
  bottom: 1rem;
  right: 5%;
  min-height: 44px;
  padding: .5rem 1rem;
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--gold);
  font-size: 1rem;
}
.home .intro-bar { font-size: var(--type-caption); align-items: center; padding-block: .75rem; }
.home .intro-bar a { display: inline-flex; align-items: center; min-height: 44px; }
.home :is(.concept-grid, .recon-grid) { gap: 2.5rem 2rem; }
.home .concept-grid figure { margin-bottom: 1rem; }
.home .concept-grid figcaption {
  position: static;
  display: block;
  background: none;
  color: var(--muted);
  font-size: var(--type-caption);
  letter-spacing: .035em;
  padding: .625rem 0 0;
}
.home :is(.recon-card figcaption, .monument-panel figcaption) { font-size: var(--type-caption); }
.home .recon-copy { display: flex; flex-direction: column; align-items: start; }
.home .recon-copy .btn { margin-top: auto; }
.home .recon-card { display: flex; flex-direction: column; }
.home .recon-copy { flex: 1; }
.home .recon-copy .evidence { margin-bottom: 1rem; }
.home .evidence { flex-wrap: wrap; font-size: .8125rem; letter-spacing: .02em; }
.home .evidence-level { flex-shrink: 0; }
.home .evidence-source { overflow-wrap: anywhere; }
.home .evidence-legend { font-size: 1rem; }
.home .evidence-legend summary { padding-block: .625rem; min-height: 44px; }
.home .plan-notes { font-size: 1.125rem; line-height: 1.6; }
.home .plan-notes li + li { margin-top: .75rem; }
.home .monument-photo-controls button { min-height: 44px; font-size: 1rem; }
.home .monument-entry summary { padding-inline: .5rem; }
.home .monument-entry summary:focus-visible { outline-offset: -4px; }
.home .visit-grid {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: start;
  column-gap: 3rem;
  row-gap: var(--group-space);
}
.home .visit-grid > article { min-width: 0; padding: 1.5rem 0 0; }
.home .visit-facts { grid-row: span 2; }
.home .visit-table { font-size: var(--type-facts); line-height: 1.5; }
.home .visit-table caption { font-size: 1rem; margin-bottom: .5rem; }
.home .visit-table :is(th, td) { padding-block: .75rem; overflow-wrap: anywhere; }
.home .visit-table th { width: 48%; padding-right: 1rem; }
.home .visit-table td { font-variant-numeric: tabular-nums; }
.home .visit-grid .text-link { display: inline-block; margin-block: .25rem .75rem; }
.home .close { min-width: 44px; min-height: 44px; background: var(--paper); }
.home dialog h2 { padding-right: 2rem; }
.home dialog p { max-width: 65ch; }
.home .text-link:hover { text-decoration: underline; }
.home .btn:hover { filter: brightness(.94); }

/* The navigation changes structure when its full labels stop fitting. */
@media (max-width: 1050px) {
  .home .header-inner { min-height: 72px; gap: 1rem; }
  .home .menu { display: block; }
  .home .lang { margin-left: auto; }
  .home .header nav {
    display: none;
    position: absolute;
    inset: 100% 0 auto;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    padding: .75rem 5% 1rem;
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    font-size: .875rem;
  }
  .home .header nav.open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .home .header nav a { padding: .75rem .25rem; border-bottom: 1px solid var(--line); }
  .home .header nav a:last-child { border-bottom: 0; }
}
@media (max-width: 760px) {
  .home .section-heading { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .home .section-heading p { margin: 0; }
  .home .visit-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .home .visit-facts { grid-row: auto; }
}
@media (max-width: 700px) {
  .home .hero { display: grid; min-height: 0; overflow: visible; }
  .home .hero > .wrap { grid-row: 1; min-width: 0; }
  .home .hero-copy { padding: 2rem 0 1rem; }
  .home .hero p { max-width: 34ch; }
  .home .hero::after { display: none; }
  .home .hero video {
    position: relative;
    grid-row: 2;
    width: 100%;
    height: clamp(230px, 62vw, 340px);
    object-position: center 54%;
  }
  .home .hero .btn { min-height: 44px; padding: .75rem 1rem; }
  .home .hero-video-toggle { bottom: .75rem; font-size: .9375rem; }
  .home .intro-bar { display: grid; gap: .25rem; font-size: var(--type-caption); }
  .home .intro-bar a { line-height: 1.5; }
  .home :is(.recon-grid, .concept-grid) { gap: 2rem; }
  .home .recon-card figcaption { font-size: var(--type-caption); }
  .home .visit-table { font-size: 1.0625rem; }
  .home .visit-table th { width: 46%; padding-right: .75rem; }
  .home .brand { font-size: 1.4375rem; }
  .home .header-inner { gap: .5rem; }
  .home .lang { padding-left: .75rem; }
}
