/* Public typography uses rem so this also respects the browser's default font size. */
:root{--kr-text-scale:1;scroll-padding-top:calc(var(--kr-header-height,160px) + 24px)}
:root[data-kr-text-size="125"]{font-size:125%;--kr-text-scale:1.25}
:root[data-kr-text-size="150"]{font-size:150%;--kr-text-scale:1.5}
:root[data-kr-text-size="175"]{font-size:175%;--kr-text-scale:1.75}
:root[data-kr-text-size="200"]{font-size:200%;--kr-text-scale:2}

/* Keep the text-size trigger in the same row as the desktop navigation. */
.site-header{display:grid;grid-template-columns:auto minmax(0,1fr) 44px;gap:0 24px;min-height:88px;padding-block:12px}
.header-panel{display:contents}
.site-header .brand{grid-column:1;grid-row:1;min-width:0}
.site-header .custom-logo-link img{width:220px;max-height:64px}
.site-header #navigation{grid-column:2;grid-row:1;width:auto;justify-content:flex-end;flex-wrap:wrap;gap:0 19px;min-width:0}
.nav-group summary{white-space:normal}
.kr-text-size{position:relative;grid-column:3;grid-row:1;justify-self:end;min-width:0;max-width:100%}
.kr-text-size[hidden]{display:none}
.kr-text-size>summary{display:flex;align-items:center;justify-content:center;gap:8px;list-style:none;cursor:pointer;width:44px;min-height:44px;padding:4px;border:1px solid transparent;border-radius:50%;color:#52654f;background:transparent;font-size:.8125rem;line-height:1.4;font-weight:500}
.kr-text-size>summary::-webkit-details-marker{display:none}
.kr-text-size>summary:hover,.kr-text-size[open]>summary{background:#f1f5ed;color:#173e32}
.kr-text-size__icon{font-size:1.0625rem;letter-spacing:-.06em}
.kr-text-size__label{display:none}
.kr-text-size__panel{position:absolute;right:0;top:calc(100% + 10px);z-index:40;width:min(21rem,90vw);max-height:60dvh;overflow:auto;padding:20px;border:1px solid #cad7c5;border-radius:14px;background:#fff;box-shadow:0 12px 38px #173e3229;color:#173e32;line-height:1.5;overflow-wrap:anywhere}
.kr-text-size__title{font-size:1rem;font-weight:650;margin:0 0 14px}
.kr-text-size__steps{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}
.kr-text-size__steps button{min-width:48px;min-height:48px;padding:8px 12px;font-size:1.125rem;font-weight:650;line-height:1.3;border:1px solid #9bb28e;border-radius:8px;background:#f1f5ed;color:#173e32;cursor:pointer}
.kr-text-size__steps button:hover{background:#e3ecd9}
.kr-text-size__steps button[aria-disabled="true"]{opacity:.45;cursor:default}
.kr-text-size__value{text-align:center;font-size:1.125rem;font-weight:600;font-variant-numeric:tabular-nums}
.kr-text-size__reset{width:100%;min-height:44px;margin-top:14px;padding:8px 12px;border:1px solid #9bb28e;border-radius:8px;background:white;color:#173e32;font-size:.875rem;line-height:1.4;cursor:pointer}
.kr-text-size__reset:hover{background:#f1f5ed}
.kr-text-size__note{font-size:.75rem;line-height:1.65;margin:14px 0 0;color:#52654f}
.kr-text-size :focus-visible{outline:3px solid #826400;outline-offset:3px}

/* Let longer words, labels and cards grow instead of clipping enlarged text. */
.site-main,.site-footer{overflow-wrap:anywhere}
.hero-v2 h1{overflow-wrap:anywhere}
.hero-actions>*{max-width:100%}
.text-link{white-space:normal}
.hero-gallery-bar{flex-wrap:wrap}
.hero-gallery-controls button{width:auto;height:auto;min-width:max(44px,2.25rem);min-height:max(44px,2.25rem);display:grid;place-items:center;line-height:1}
.hero-gallery-controls{max-width:100%;flex-wrap:wrap}
.hero-image-caption{overflow-wrap:anywhere}
.kr-map__catalog-head,.kr-map__toolbar{flex-wrap:wrap}
.kr-map__catalog-head h2,.kr-map__toggle>span,.kr-map__toggle strong{min-width:0;overflow-wrap:anywhere}
.kr-map__category>summary,.kr-map__own-heading,.kr-map__reference{overflow-wrap:anywhere}
.kr-map__canvas{min-width:0}
.kr-map .leaflet-popup-content{max-width:calc(100vw - 95px);overflow-wrap:anywhere}
@media(min-width:701px){
 .kr-map-page-content .kr-map:not(.kr-map--preview) .kr-map__layout{grid-template-columns:min(17.5rem,45%) minmax(0,1fr)}
}

/* Keep phones in both orientations and narrow tablets on the compact navigation. */
@media(max-width:1100px){
 .site-header{--kr-nav-closed-height:76px;grid-template-columns:minmax(0,1fr) 44px;gap:0 16px;min-height:var(--kr-nav-closed-height);padding-block:12px}
 .site-header .brand{grid-column:1;grid-row:1}
 .site-header .custom-logo-link img{width:195px;max-width:100%;max-height:52px}
 .site-header .menu-toggle{grid-column:2;grid-row:1;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border-radius:10px;gap:0;cursor:pointer}
 .menu-toggle__icon{display:block;position:relative;width:20px;height:16px}
 .menu-toggle__icon>span{position:absolute;left:0;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .18s,opacity .18s}
 .menu-toggle__icon>span:nth-child(1){top:0}
 .menu-toggle__icon>span:nth-child(2){top:7px}
 .menu-toggle__icon>span:nth-child(3){top:14px}
 .menu-toggle[aria-expanded="true"] .menu-toggle__icon>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .menu-toggle[aria-expanded="true"] .menu-toggle__icon>span:nth-child(2){opacity:0}
 .menu-toggle[aria-expanded="true"] .menu-toggle__icon>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 .site-header .header-panel{display:none;grid-column:1 / -1;grid-row:2;min-width:0;width:100%;max-height:calc(100dvh - var(--kr-nav-closed-height) - 12px);overflow-y:auto;overscroll-behavior:contain}
 .site-header .header-panel.open,body:not(.kr-js) .site-header .header-panel{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding-block:12px 6px;margin-top:12px;border-top:1px solid var(--line)}
 .site-header #navigation{display:flex;grid-column:auto;grid-row:auto;width:100%;max-height:none;overflow:visible;flex-direction:column;align-items:stretch;flex-wrap:nowrap;flex-shrink:0;gap:0;padding:0}
 .site-header .nav-group{border-bottom:1px solid var(--line)}
 .site-header .nav-group summary{justify-content:space-between;padding:16px 12px;font-size:.9375rem}
 .site-header .submenu{position:static;max-height:none;overflow:visible;box-shadow:none;border:0;background:#f1f5ed;margin-bottom:10px;min-width:0}
 .header-panel .kr-text-size{grid-column:auto;grid-row:auto;width:100%}
 .header-panel .kr-text-size>summary{width:100%;justify-content:flex-start;padding:6px 12px;border-radius:8px}
 .header-panel .kr-text-size__label{display:inline}
 .header-panel .kr-text-size__panel{position:static;width:100%;max-height:none;margin-top:10px;padding:16px;overflow:visible;box-shadow:none}
 .admin-bar .site-header .header-panel{max-height:calc(100dvh - var(--kr-nav-closed-height) - 58px)}
}
@media(max-width:1100px) and (max-height:550px) and (orientation:landscape){
 .site-header{--kr-nav-closed-height:64px;padding-block:10px}
 .site-header .custom-logo-link img{width:180px;max-height:40px}
 .site-header .nav-group summary{padding-block:12px}
}

/* At larger text settings, generous full-width columns keep reading comfortable. */
:root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .town-strip{grid-template-columns:1fr}
:root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .town-strip-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
@media(min-width:721px){
 :root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .hero-v2{--hero-image-mask:var(--hero-stacked-image-mask);--hero-image-height:360px;min-height:0;padding-bottom:var(--hero-image-height)}
 :root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .hero-v2 .hero-copy{width:100%;max-width:1000px;padding:40px 0}
 :root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .hero-v2 p:not(.eyebrow){max-width:850px}
 :root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .hero-v2 .hero-photo{left:0;top:auto;bottom:0;width:100%;height:var(--hero-image-height)}
 :root:is([data-kr-text-size="150"],[data-kr-text-size="175"],[data-kr-text-size="200"]) .hero-gallery-bar{max-width:calc(100% - 40px)}
 :root:is([data-kr-text-size="175"],[data-kr-text-size="200"]) .split-programs{grid-template-columns:1fr}
}
