/* Scale type, not the root rem unit, artwork or the layout itself. */
:root { --gh-text-scale: 1.15; }
html[data-text-size="0"] { --gh-text-scale: 1; }
html[data-text-size="1"] { --gh-text-scale: 1.15; }
html[data-text-size="2"] { --gh-text-scale: 1.3; }
html[data-text-size="3"] { --gh-text-scale: 1.5; }

/* These exclusions also protect text nested inside headings/credits. */
:where(h1, h2, h3, h4, h5, h6, .site-credits, .text-size-control, .cat-room, .cat-promenade, .visit-stamp, svg, [data-text-size-fixed]) { --gh-text-scale: 1; }
/* Preserve the existing 15px-body UA sizes for otherwise unstyled lower headings. */
:where(h4) { font-size: 15px; }
:where(h5) { font-size: 12.45px; }
:where(h6) { font-size: 10.05px; }

.topline-inner { align-items: center; flex-wrap: wrap; gap: 4px 18px; }
.topline-address { flex: 1 1 190px; overflow-wrap: anywhere; }
.topline-tagline { margin-left: auto; }
.text-size-control { display: inline-flex; flex: none; align-items: center; gap: 2px; margin-left: auto; padding: 0 3px; border: 1px solid #c7cebc; border-radius: 999px; background: #faf8f1; color: #2b4234; font: 13px/1.2 Arial, sans-serif; letter-spacing: 0; }
.text-size-control[hidden] { display: none; }
.text-size-control button { display: inline-flex; align-items: center; justify-content: center; gap: 2px; min-width: 44px; min-height: 44px; padding: 8px; border: 0; border-radius: 50%; background: transparent; color: inherit; font: 600 17px/1 Georgia, serif; cursor: pointer; }
.text-size-control button:hover:not(:disabled) { background: #e3e9da; }
.text-size-control button:focus-visible { outline: 3px solid #597545; outline-offset: 1px; }
.text-size-control button:disabled { opacity: .4; cursor: default; }
.text-size-meter { display: grid; gap: 5px; min-width: 41px; text-align: center; font: 11px/1.2 Arial, sans-serif; }
.text-size-levels { display: flex; justify-content: center; gap: 3px; }
.text-size-levels i { width: 7px; height: 3px; border-radius: 2px; background: #cbd2c1; }
.text-size-levels i:first-child,
html:is([data-text-size="1"], [data-text-size="2"], [data-text-size="3"]) .text-size-levels i:nth-child(2),
html:is([data-text-size="2"], [data-text-size="3"]) .text-size-levels i:nth-child(3),
html[data-text-size="3"] .text-size-levels i:nth-child(4) { background: #456039; }
.text-size-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Larger text must wrap/reflow instead of widening the bounded page. */
.header .brand { flex-shrink: 0; }
.header nav { min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
.header nav > a, .header nav > details { max-width: 100%; }
.header nav .button { text-align: center; }
.footer-grid > div, .form-grid > *, .gh-sharing-message { min-width: 0; }
.footer-grid a, .footer-bottom a, .notice, .errors, .body-copy, .lede { overflow-wrap: anywhere; }
.footer-bottom, .gh-sharing-inner { flex-wrap: wrap; }
input.gh-share-url { height: auto; min-height: 40px; }
html:not([data-text-size="0"]) .slots { grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(98px * var(--gh-text-scale))), 1fr)); }
html:not([data-text-size="0"]) .facts > div { grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); }
.slot span { overflow-wrap: normal; }
@media (max-width: 960px) { .topline-tagline { display: none; } }
@media (max-width: 760px) { .topline-inner { justify-content: space-between; } .header nav { justify-content: flex-start; } }
@media (max-width: 520px) { .topline-inner { justify-content: center; gap: 5px; } .topline-address { flex-basis: 100%; text-align: center; } .text-size-control { margin-inline: auto; } }
@media (forced-colors: active) { .text-size-control { border-color: ButtonText; } .text-size-control button:focus-visible { outline-color: Highlight; } .text-size-levels i { border: 1px solid ButtonText; } }
@media print { :root, html[data-text-size] { --gh-text-scale: 1; } .text-size-control { display: none; } }
