/* Sven Ifland, 18 October 2026: the approved House Gothic 23 family. */
@font-face {
  font-family: 'House Gothic Campus';
  src: url('assets/fonts/house-gothic-industrial.woff') format('woff');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'House Gothic Campus Label';
  src: url('assets/fonts/house-gothic-condensed.woff') format('woff');
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}
@font-face {
  font-family: 'House Gothic Campus Text';
  src: url('assets/fonts/house-gothic-text-light.woff') format('woff');
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
}
@font-face {
  font-family: 'House Gothic Campus Text';
  src: url('assets/fonts/house-gothic-text-bold.woff') format('woff');
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
}
@font-face {
  font-family: 'House Gothic Campus Text';
  src: url('assets/fonts/house-gothic-text-italic.woff') format('woff');
  font-style: italic;
  font-weight: 300 400;
  font-display: swap;
}
:root {
  --font-display: 'House Gothic Campus', 'Arial Narrow', sans-serif;
  --font-body: 'House Gothic Campus Text', Arial, sans-serif;
  --font-label: 'House Gothic Campus Label', 'Arial Narrow', sans-serif;
  --campus-icon-min: 56px;
  --campus-icon-detail: 64px;
  --campus-control-icon: 24px;
  --campus-touch-target: 48px;
  font-synthesis: none;
}
body { font-family: var(--font-body); font-weight: 400; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); }
button, input, select, textarea { font-family: var(--font-body); }
strong, b { font-weight: 700; }
/* Keep every paragraph of the Christmas-market note in the actual text face. */
.werk-energie .front-page .campus-event-note .event-copy > p:not(.journal-label) {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1.125rem;
  line-height: 1.6;
  letter-spacing: 0;
}
.werk-energie :is(.development-copy, .place-card-copy, .amenity-benefit,
  .health-partners-intro, .campus-enquiry-note) {
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.55;
}
/* Long controls use the open text face; short chapter labels stay condensed. */
.werk-energie :is(.factory-button, .world-links a, .rental-form button,
  .campus-search button, .search-topics button, .tour-choices button,
  .campus-tour-card button, .campus-tour-card > a, .finder-reset,
  .map-project-links a, .orientation-card > a, .chapter-context-action,
  .rental-draft > a) {
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0;
}

/* Mobile reading takes priority over the former compressed journal labels. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (max-width: 900px) {
  body { font-size: 1.25rem; line-height: 1.6; }

  .mobile-pages-ready .werk-energie #main :is(p:where(:not(.world-standfirst, .lead, .weather-tip, .legend-signature, .poster-caption)), li, dd, dt, label, input, select, textarea) {
    font-family: var(--font-body);
    font-size: 1.25rem;
    line-height: 1.6;
    letter-spacing: 0;
  }
  .mobile-pages-ready .werk-energie #main :is(figcaption) {
    font-family: var(--font-body);
    font-size: 1.125rem;
    line-height: 1.5;
    letter-spacing: 0;
  }
  .mobile-pages-ready .werk-energie #main :is(small, .micro, .journal-label, .cover-kicker,
    .cover-dateline, .archive-caption, .orientation-credit, .weather-meta,
    .weather-scene-badge, .weather-stamp, .weather-vision > strong,
    .finder-selection, .search-status, .event-date > span) {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.5;
    letter-spacing: .01em;
  }
  .mobile-pages-ready .werk-energie #main :is(button, summary, .finder-paths > a,
    .campus-search-results a, .orientation-key a, .map-project-links a,
    .campus-tour-card > a, .rental-draft > a) {
    font-family: var(--font-body);
    font-size: 1.25rem;
    line-height: 1.45;
    letter-spacing: 0;
    white-space: normal;
    overflow-wrap: break-word;
  }
  .mobile-pages-ready .werk-energie #main :is(.campus-finder > summary,
    .journal-motion-settings > summary, .campus-weather > summary) {
    padding-block: 16px;
    gap: 16px;
  }
  .mobile-pages-ready .werk-energie #main .campus-finder > summary strong {
    font-family: var(--font-display);
    font-size: 2rem;
    line-height: 1.2;
  }
  .mobile-pages-ready .werk-energie #main :is(.campus-weather [data-weather-summary],
    .campus-weather .weather-daily a > span,
    .campus-weather .weather-daily a > strong) {
    font-family: var(--font-body);
    font-size: 1.25rem;
    line-height: 1.5;
    letter-spacing: 0;
  }
  .mobile-pages-ready .werk-energie #main .campus-weather .weather-scene [data-weather-scene-note] {
    font-size: 1.125rem;
    line-height: 1.55;
  }
  .mobile-pages-ready .werk-energie #main .campus-weather .weather-hours {
    grid-auto-columns: minmax(136px, 1fr);
  }
  .mobile-pages-ready .werk-energie #main .campus-weather .weather-hours time {
    font-family: var(--font-body);
    font-size: 1.125rem;
  }
  .mobile-pages-ready .werk-energie #main .campus-tour-card > p {
    font-size: 1.25rem !important;
    line-height: 1.6 !important;
  }
  .mobile-pages-ready .werk-energie #main .journal-motion-settings > summary {
    font-weight: 700;
  }
  .mobile-pages-ready .werk-energie #main .werk-materials figcaption {
    padding-top: 14px;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
  }
  .mobile-pages-ready .werk-energie #main .werk-materials figcaption small {
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.5;
  }
  .mobile-pages-ready .werk-energie .site-header .menu-toggle { font-size: 26px; }
  .mobile-pages-ready .werk-energie .site-header nav { font-size: 22px; }
  .werk-energie .site-directory-footer :is(p, a, li) {
    font-size: 1.125rem;
    line-height: 1.5;
  }
  .werk-energie .site-directory-footer small {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.5;
  }
}
@media (max-width: 600px) {
  .mobile-pages-ready .werk-energie #main .werk-materials {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .mobile-pages-ready .werk-energie #main .werk-materials > p { grid-column: 1; }
  .mobile-pages-ready .werk-energie #main .finder-paths,
  .mobile-pages-ready .werk-energie #main .tour-choices { grid-template-columns: minmax(0, 1fr); }
}

/* IMG_3164/3165: the plan adapts to readable type instead of breaking words. */
.werk-energie #main .campus-orientation .orientation-key {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 6px;
}
.werk-energie #main .campus-orientation .orientation-key a {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 56px;
  padding: 10px 8px;
  font: 400 1.125rem/1.4 var(--font-body);
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.werk-energie #main .campus-orientation .orientation-key-number {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.werk-energie #main .campus-orientation .orientation-key-label {
  min-width: 0;
}
.werk-energie #main .campus-orientation .map-states {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 6px;
}
.werk-energie #main .campus-orientation .map-states button {
  min-width: 0;
  min-height: 56px;
  padding: 10px 6px;
  font: 700 1.25rem/1.3 var(--font-body);
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
@media (max-width: 900px) {
  .werk-energie #main .campus-orientation .orientation-key {
    grid-template-columns: minmax(0, 1fr);
  }
  .werk-energie #main .campus-orientation .orientation-key a {
    font-size: 1.25rem;
  }
}
@media (max-width: 359px) {
  .werk-energie #main .campus-orientation .map-states {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* IMG_3153/3154: short information must also be readable on a phone. */
@media (max-width: 900px) {
  .mobile-pages-ready .werk-energie #main :is(.journal-dateline, .werk-plate) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding-block: 14px;
    font: 700 1.125rem/1.5 var(--font-body);
    letter-spacing: .01em;
  }
  .mobile-pages-ready .werk-energie #main :is(.journal-dateline, .werk-plate) > span {
    min-width: 0;
    max-width: 100%;
    text-align: left;
    white-space: normal;
    overflow-wrap: break-word;
  }
  .mobile-pages-ready .werk-energie #main .front-page .werk-opening .cover-kicker {
    font: 700 1.25rem/1.5 var(--font-body);
    letter-spacing: .01em;
    margin-bottom: 20px;
    white-space: normal;
  }
  .mobile-pages-ready .werk-energie #main :is(.campus-finder > summary small,
    .campus-weather > summary small, .world-number, .orientation-status,
    .place-card-status, .section-index, .coordinate, .archive-caption,
    .orientation-credit, .weather-meta, .weather-scene-badge, .weather-stamp) {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .01em;
  }
  .mobile-pages-ready .werk-energie #main :is(.campus-finder > summary small,
    .campus-weather > summary small) {
    font-weight: 700;
    margin-bottom: 6px;
  }
  .mobile-pages-ready .werk-energie #main .campus-weather > summary {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 24px;
    gap: 16px;
    align-items: center;
    padding-block: 20px;
  }
  .mobile-pages-ready .werk-energie #main .campus-weather .weather-mark {
    width: 48px;
    height: 48px;
    font-size: 28px;
  }
  .mobile-pages-ready .werk-energie #main .campus-weather [data-weather-summary] {
    font: 400 1.25rem/1.5 var(--font-body);
    letter-spacing: 0;
    white-space: normal;
  }
  .mobile-pages-ready .werk-energie #main .journal-motion-settings > summary {
    min-height: 64px;
    padding-block: 18px;
    font: 700 1.25rem/1.5 var(--font-body);
    letter-spacing: 0;
    white-space: normal;
  }
  .mobile-pages-ready .werk-energie #main .journal-motion-settings > summary::after {
    flex: 0 0 28px;
    width: 28px;
    font-size: 32px;
    text-align: center;
  }
}
