/*
Theme Name: Historic Sites
Theme URI: https://www.johnsonhouse.org/
Author: WCAD Enterprise LLC
Description: A WCAD Enterprise LLC block theme for historic sites, with the Johnson House Historic Site edition. Editable navigation, accessible reading experience, donor pathways, and Gutenberg page templates.
Version: 1.3.2
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: historic-sites
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: block-patterns, full-site-editing, custom-colors, custom-logo, accessibility-ready, wide-blocks
*/
:root {--hs-navy:#062f3f;--hs-deep:#031f2b;--hs-teal:#008488;--hs-mint:#68d4d0;--hs-gold:#f2bb52;--hs-cream:#f6f3ea;--hs-text:#183746;--hs-muted:#4f6873;--hs-bound:1320px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;overflow-x:clip;background:#fff;color:var(--hs-text);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:19px;line-height:1.7}
:where(a){text-underline-offset:4px} :where(a:focus-visible,button:focus-visible,[tabindex]:focus-visible){outline:3px solid var(--hs-gold);outline-offset:4px}
:where(h1,h2,h3,h4){line-height:1.18;overflow-wrap:break-word}h1,h2,h3{font-family:Georgia,"Times New Roman",serif}
.hs-site-header{background:var(--hs-deep);color:#fff;border-bottom:3px solid var(--hs-gold);position:relative;z-index:100;isolation:isolate}
.hs-site-header .hs-header-inner{width:min(calc(100% - 48px),var(--hs-bound));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:clamp(15px,2.2vw,32px);min-height:110px;padding-block:16px}
.hs-brand{flex:0 0 clamp(190px,18vw,250px);min-width:0;margin:0!important}
.hs-brand .wp-block-site-title{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;letter-spacing:.075em;font-weight:850;font-size:clamp(18px,1.45vw,22px);line-height:1.09;margin:0;text-transform:uppercase;max-width:255px}
.hs-brand .wp-block-site-title a{color:#fff!important;text-decoration:none!important}
.hs-brand .wp-block-site-tagline{font-size:13px;font-weight:700;color:#d2e0e3;margin:7px 0 0!important;line-height:1.4}
.hs-navigation{flex:1 1 auto;min-width:0;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;font-size:14px;font-weight:700;line-height:1.35}
.hs-navigation .wp-block-navigation__container{gap:clamp(8px,1vw,17px)!important;align-items:center}
.hs-navigation .wp-block-navigation-item__content,.hs-navigation .wp-block-navigation-submenu__toggle{color:#fff!important;text-decoration:none!important;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;white-space:normal}
.hs-navigation .wp-block-navigation-item__content:hover,.hs-navigation .wp-block-navigation-submenu__toggle:hover{color:var(--hs-gold)!important}
.hs-navigation .wp-block-navigation__submenu-container{background:#073647!important;border:1px solid rgba(242,187,82,.33)!important;min-width:250px!important;padding:9px 0!important;box-shadow:0 18px 34px #00121d55;z-index:105}
.hs-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content{min-height:44px;padding:10px 15px!important;font-size:15px;line-height:1.35;color:#fff!important}
.hs-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:#175065;color:var(--hs-gold)!important}
.hs-navigation .wp-block-navigation__submenu-icon{color:var(--hs-gold)!important}
.hs-navigation .wp-block-navigation__responsive-container.is-menu-open{background:var(--hs-deep)!important;color:#fff!important;padding:28px!important;overflow-y:auto}
.hs-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:19px;min-height:48px}
.hs-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{box-shadow:none;padding-left:14px!important;border-left:2px solid var(--hs-gold)!important}
.hs-header-give{flex:0 0 auto;white-space:nowrap}.hs-header-give a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;background:var(--hs-gold);color:var(--hs-deep)!important;border-radius:4px;padding:13px 18px;font-weight:850;min-height:46px;font-size:15px}.hs-header-give a:hover{background:#ffcf77}
.hs-main{min-height:40vh;max-width:none!important;margin:0!important;padding:0!important}
.hs-page-shell{padding:clamp(38px,6vw,78px) 24px 85px}
.hs-page-shell>.wp-block-group{max-width:var(--hs-bound);margin-inline:auto}
.hs-page-heading{font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,5vw,66px);color:var(--hs-navy);letter-spacing:-.02em;margin:0 0 28px!important}
.hs-main .wp-block-post-content{margin-top:0!important}
.hs-main .wp-block-post-content>.alignfull{max-width:none!important}
.hs-main .wp-block-post-content :where(img,video,iframe){max-width:100%}
.hs-main .wp-block-post-content :where(.jhhs-events,.jhhs-experience,.jhhs-visit){max-width:100%}
.hs-full-content{width:100%;max-width:none!important;padding:0!important}
.hs-full-content .wp-block-post-content{max-width:none!important}
.hs-site-footer{background:linear-gradient(125deg,#073748,#062f3f 52%,#042735);color:#e8f0f2;font-size:17px;line-height:1.6;overflow:hidden}
.hs-site-footer .hs-footer-inner{max-width:var(--hs-bound);margin-inline:auto;width:calc(100% - 48px)}
.hs-site-footer a{color:#e8f0f2;text-decoration:none}.hs-site-footer a:hover{color:var(--hs-mint);text-decoration:underline}
.hs-footer-callout{border-bottom:1px solid #ffffff2b;padding:38px 0 34px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.hs-footer-kicker,.hs-footer-heading{color:var(--hs-gold);font-size:14px;text-transform:uppercase;letter-spacing:.12em;font-weight:850;margin:0 0 10px}
.hs-footer-title{font:700 clamp(27px,3vw,39px)/1.15 Georgia,serif;color:#fff;margin:0 0 9px}
.hs-footer-intro{color:#c9d8db;max-width:710px;margin:0;font-size:18px}
.hs-footer-buttons{display:flex;flex-wrap:wrap;gap:10px}
.hs-footer-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;min-height:48px;border-radius:4px;border:1px solid #aac2c9;color:#fff!important;font-weight:800;white-space:nowrap}
.hs-footer-btn--gold{background:var(--hs-gold);color:var(--hs-deep)!important;border-color:var(--hs-gold)}
.hs-footer-btn:hover{text-decoration:none!important;filter:brightness(1.12)}
.hs-footer-columns{display:grid;grid-template-columns:1.4fr .9fr .9fr 1fr;gap:clamp(20px,3vw,48px);padding:43px 0 48px}
.hs-footer-name{font-size:22px;letter-spacing:.05em;line-height:1.15;color:#fff;margin:0 0 7px;font-weight:850;max-width:280px}
.hs-footer-sub{font-size:15px;color:var(--hs-mint);font-weight:750;margin:0 0 17px}.hs-footer-columns p{margin:0 0 10px}
.hs-footer-heading{letter-spacing:.075em;margin:2px 0 15px}.hs-footer-links{list-style:none;margin:0;padding:0}.hs-footer-links li{margin-bottom:8px}
.hs-footer-social{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.hs-footer-social a{border:1px solid #ffffff4a;border-radius:4px;padding:7px 10px;font-size:14px;font-weight:700}
.hs-footer-bottom{background:var(--hs-deep);padding:17px 24px;font-size:14px;color:#c9d8db}.hs-footer-bottom-inner{max-width:var(--hs-bound);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:auto}
.hs-fallback-hero{background:linear-gradient(90deg,#031f2beb,#031f2b99),url('assets/house-marker.jpg') center/cover;min-height:520px;display:flex;align-items:center;padding:80px 24px;color:#fff}
.hs-fallback-hero-inner{width:min(100%,1120px);margin:auto}
.hs-fallback-hero h1{font:700 clamp(44px,6.3vw,82px)/1.06 Georgia,serif;color:#fff;max-width:900px;margin:0 0 23px}.hs-fallback-hero p{font-size:clamp(19px,2vw,23px);max-width:880px;line-height:1.6}
.hs-fallback-hero a,.hs-fallback-links a{display:inline-flex;margin:8px 8px 4px 0;background:var(--hs-gold);color:var(--hs-deep);border-radius:4px;padding:11px 20px;text-decoration:none;font-weight:850}
.hs-fallback-links{padding:48px 24px;background:var(--hs-cream);text-align:center}.hs-fallback-links h2{font-size:clamp(31px,4vw,48px);margin:0 auto 18px;color:var(--hs-navy)}
.hs-search-form{display:flex;gap:10px;flex-wrap:wrap}.hs-search-form input{min-height:48px;padding:10px;border:1px solid #9fb6bb}.hs-search-form button{min-height:48px;background:var(--hs-gold);border:0;padding:10px 22px;font-weight:800}
@media(max-width:1200px){.hs-site-header .hs-header-inner{gap:12px;min-height:96px}.hs-brand{flex-basis:190px}.hs-navigation{font-size:13px}.hs-header-give a{padding:11px 12px}.hs-navigation .wp-block-navigation__container{gap:9px!important}}
@media(max-width:950px){.hs-navigation{font-size:12.5px}.hs-brand{flex-basis:172px}.hs-header-give{display:none}.hs-navigation .wp-block-navigation__container{gap:7px!important}}
@media(max-width:780px){.hs-site-header .hs-header-inner{min-height:88px}.hs-brand{flex-basis:auto;max-width:260px}.hs-navigation{flex:0 0 auto;margin-left:auto}.hs-navigation .wp-block-navigation__responsive-container-open{color:#fff!important}.hs-footer-callout{flex-direction:column;align-items:flex-start}.hs-footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:570px){body{font-size:18px}.hs-site-header .hs-header-inner{width:calc(100% - 28px)}.hs-brand .wp-block-site-title{font-size:18px}.hs-brand .wp-block-site-tagline{font-size:12px}.hs-footer-columns{grid-template-columns:1fr;gap:24px}.hs-footer-bottom-inner{display:block}.hs-footer-bottom-inner>*{margin:0 0 7px}.hs-footer-intro{font-size:17px}.hs-page-shell{padding:32px 16px 70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Historic Sites v1.1.0 — Full-width pages, including previously customized WP templates.
   Intentionally limited to PAGE templates; article/archive reading columns remain narrower. */
body.page .hs-main,
body.page .hs-main > .wp-block-group,
body.page .hs-main .hs-page-shell,
body.page .hs-main .hs-page-layout,
body.page .hs-main .hs-full-content {
  box-sizing:border-box;
  width:100% !important;
  max-width:none !important;
  min-width:0;
  margin-inline:0 !important;
}
body.page .hs-main .hs-page-shell,
body.page .hs-main .hs-page-layout,
body.page .hs-main .hs-full-content {padding:0 !important}
body.page .hs-main .wp-block-post-content,
body.page .hs-main .wp-block-post-content.is-layout-constrained,
body.page .hs-main .wp-block-post-content.is-layout-flow {
  width:100% !important;
  max-width:none !important;
  min-width:0;
  margin:0 !important;
  padding:0 !important;
}
/* WordPress's constrained layout may cap each *direct child* at global contentSize. */
body.page .hs-main .wp-block-post-content > :is(.wp-block-shortcode,.wp-block-html,.wp-block-group,.wp-block-cover,.wp-block-columns,.wp-block-media-text),
body.page .hs-main .is-layout-constrained > .wp-block-post-content,
body.page .hs-main .hs-page-shell > .wp-block-post-content,
body.page .hs-main .hs-page-layout > .wp-block-post-content {
  width:100% !important;
  max-width:none !important;
  min-width:0;
  margin-left:0 !important;
  margin-right:0 !important;
}
body.page .hs-main .wp-block-post-content > .wp-block-shortcode,
body.page .hs-main .wp-block-post-content > .wp-block-shortcode > :first-child {
  max-width:none !important;
}
/* Full-bleed visual blocks; the individual JHHS plugins still manage their own
   inner reading width (usually about 1200–1320px). */
body.page .hs-main .wp-block-post-content > :is(.alignfull,.wp-block-cover.alignfull) {
  width:100% !important;
  max-width:none !important;
}
body.page .hs-main .wp-block-post-content > :is(.wp-block-paragraph,p,ul,ol,blockquote),
body.page .hs-main .wp-block-post-content > :is(h1,h2,h3,h4) {
  max-width:min(100% - 40px, 1120px);
  margin-inline:auto;
}
/* Plugin-built landing pages include their own accessible primary headings. */
body.page.hs-has-shortcode-page .hs-main .hs-page-heading {display:none!important}
/* Custom-template title and normal page text are padded, without boxing in a shortcode. */
body.page:not(.hs-has-shortcode-page) .hs-main .hs-page-heading {max-width:var(--hs-bound);margin:28px auto 20px!important;padding:0 24px}
body.page .hs-main img,body.page .hs-main video {max-width:100%}
@media(max-width:767px){
  body.page .hs-main .wp-block-post-content > :is(.wp-block-paragraph,p,ul,ol,blockquote),
  body.page .hs-main .wp-block-post-content > :is(h1,h2,h3,h4) {max-width:calc(100% - 30px)}
  body.page:not(.hs-has-shortcode-page) .hs-main .hs-page-heading{padding:0 16px}
}


/* -----------------------------------------------------------------------
 Historic Sites 1.2.0 · Responsive + Accessible Layout Compatibility
 Theme-level corrections for all JHHS shortcode pages. Scoped to Historic
 Sites template markup; preserves image sizing supplied by each page plugin.
 ----------------------------------------------------------------------- */
:root{--hs-readable-body:20px;--hs-readable-nav:16px}
body{font-size:var(--hs-readable-body);line-height:1.7}
.hs-navigation{font-size:var(--hs-readable-nav);line-height:1.45}
.hs-navigation .wp-block-navigation-item__content,
.hs-navigation .wp-block-navigation-submenu__toggle {min-height:48px}
.hs-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:17px;min-height:48px}
.hs-header-give a{font-size:17px;min-height:48px}
.hs-brand .wp-block-site-tagline{font-size:14px}
.hs-footer-columns{font-size:18px}
.hs-footer-links a,.hs-site-footer .hs-footer-social a{font-size:17px}
.hs-footer-bottom{font-size:16px}
.hs-footer-kicker,.hs-footer-heading{font-size:16px}
.hs-footer-sub{font-size:17px}
.hs-page-shell :where(p,li){line-height:1.7}
/* Older theme force-height:auto rule previously took precedence over image
   frames: no global height overrides for branded plugin images. */
body.page .hs-main .jhha-suite .jhha-person-photo{
  height:300px;min-height:0;max-width:100%;overflow:hidden;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;background:#ecf2ee;
}
body.page .hs-main .jhha-suite .jhha-person-photo img{
  display:block;width:100%!important;height:100%!important;max-width:100%!important;
  max-height:100%!important;object-fit:contain!important;object-position:center center;
}
body.page .hs-main .jhha-suite .jhha-person{min-width:0;overflow:hidden;display:flex;flex-direction:column;height:100%;}
body.page .hs-main .jhha-suite .jhha-person-details{
  min-width:0;position:relative;z-index:1;display:block;flex:1 1 auto;
  padding:clamp(20px,2vw,28px);background:#fff;
}
body.page .hs-main .jhha-suite .jhha-person-details h3{
  margin:7px 0 14px!important;font-size:clamp(26px,2.4vw,32px);
  line-height:1.22;overflow-wrap:anywhere;color:#123e4b;
}
body.page .hs-main .jhha-suite .jhha-person-details blockquote{
  display:block;position:static;clear:both;font-size:19px;line-height:1.65;
  margin:0!important;padding-left:16px;
}
body.page .hs-main .jhha-suite .jhha-people-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;
}
/* Homepage: explicitly four horizontal feature cards on ordinary desktops.
   Earlier homepage plugin switches to two columns below 1150px. */
body.home .jhhs-home .jhhs-home-experience-grid,
body.front-page .jhhs-home .jhhs-home-experience-grid{
  min-width:0;align-items:stretch;
}
@media(min-width:1000px){
  .jhhs-home .jhhs-home-experience-grid{
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:clamp(12px,1.3vw,20px)!important;
  }
  .jhhs-home .jhhs-home-experience-grid>.jhhs-home-experience-card{min-width:0;min-height:370px;padding:clamp(16px,1.75vw,25px)}
  .jhhs-home .jhhs-home-card-bottom strong{font-size:clamp(25px,2.25vw,36px)}
}
@media(min-width:640px) and (max-width:999px){
 .jhhs-home .jhhs-home-experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px}
}
@media(max-width:639px){
 .jhhs-home .jhhs-home-experience-grid{grid-template-columns:minmax(0,1fr)!important;gap:16px}
 .jhhs-home .jhhs-home-experience-card{min-height:290px}
}
/* Minimum legibility for frequently used plugin content. These rules do not
   change headings or semantic hierarchy; large/small presets remain usable. */
.hs-main :where(.jhha-suite,.jhhs-home,.jhv,.jhcc,.jhes,.jhcs){line-height:1.7}
.hs-main :where(.jhha-suite,.jhhs-home,.jhv,.jhcc,.jhes,.jhcs) p {font-size:max(19px,1em);line-height:1.7}
.hs-main .jhha-suite :where(.jhha-overline,.jhha-kicker){font-size:16px;line-height:1.5}
.hs-main .jhha-suite .jhha-subnav a{font-size:18px;min-height:44px;display:inline-flex;align-items:center}
.hs-main .jhha-suite .jhha-person blockquote{font-size:19px}
.hs-main .jhhs-home :where(.jhhs-home-label,.jhhs-home-kicker,.jhhs-home-card-no){font-size:16px}
.hs-main .jhhs-home :where(.jhhs-home-jump a,.jhhs-home-btn,.jhhs-home-card-bottom span){font-size:18px}
.hs-main .jhhs-home .jhhs-home-card-bottom span{line-height:1.6}
.hs-main .jhhs-home .jhhs-home-card-bottom strong{line-height:1.18}
.hs-main :where(.jhv,.jhcc,.jhes,.jhcs) :where(button,.jhv-btn,.jhcc-btn,.jhes-btn){min-height:48px}
.hs-main :where(.jhha-suite,.jhhs-home,.jhv,.jhcc,.jhes,.jhcs) :focus-visible{outline:3px solid #d49c28;outline-offset:3px}
/* Keep auto-layout predictable in all the plugin's media/photo components. */
.hs-main .wp-block-post-content :where(.jhha-suite,.jhhs-home,.jhes,.jhv,.jhcc,.jhcs) :where(figure,img,video){max-width:100%}
.hs-main .wp-block-post-content :where(.jhha-suite,.jhhs-home,.jhes,.jhv,.jhcc,.jhcs) :where(.jhha-people-grid,.jhhs-home-experience-grid,.jhes-grid){min-width:0}
/* At mid-sized windows switch from squeezed horizontal menu labels to core
   WordPress's genuine keyboard-accessible Navigation overlay toggle. */
@media(max-width:1100px){
  .hs-navigation .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
  .hs-navigation .wp-block-navigation__responsive-container-open{display:flex!important;align-items:center;justify-content:center;min-height:48px;min-width:48px}
  .hs-site-header .hs-header-inner{gap:16px}
  .hs-brand{flex-basis:auto;max-width:260px}
}
@media(min-width:1101px){.hs-navigation .wp-block-navigation__responsive-container-open{display:none!important}}
@media(min-width:680px) and (max-width:1050px){
  body.page .hs-main .jhha-suite .jhha-people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:679px){
  body.page .hs-main .jhha-suite .jhha-people-grid{grid-template-columns:minmax(0,1fr);gap:18px}
  body.page .hs-main .jhha-suite .jhha-person-photo{height:320px}
  .hs-site-footer .hs-footer-bottom{font-size:16px}
}
/* Accessibility controls: comfortable default, optional extra-large scale. */
body.hs-type-large{--hs-readable-body:22px;--hs-readable-nav:18px}
body.hs-type-large .hs-main :where(.jhha-suite,.jhhs-home,.jhv,.jhcc,.jhes,.jhcs) p{font-size:max(21px,1em)}
body.hs-type-large .hs-main .jhha-suite .jhha-person blockquote{font-size:21px}
body.hs-type-large .hs-main .jhhs-home :where(.jhhs-home-jump a,.jhhs-home-btn,.jhhs-home-card-bottom span){font-size:20px}
body.hs-type-large .hs-main :where(.jhha-suite,.jhhs-home) :where(.jhha-overline,.jhha-kicker,.jhhs-home-label,.jhhs-home-kicker,.jhhs-home-card-no){font-size:18px}
@media(prefers-reduced-motion:reduce){.jhha-suite *, .jhhs-home *{animation-duration:.001ms!important;transition:none!important}}


/* Historic Sites 1.2.1: the JHHS page plugins declare their own text sizes.
   Apply a 20px readable floor to ordinary text across these specific roots.
   Promotional hero descriptions and oversized lead paragraphs remain free
   to use their larger plugin-specific styles. */
.hs-main .wp-block-post-content :is(
  #jhhs-events-app,#jhhs-csa,#jhhs-visitor-experience,#jhhs-contact,
  #jhhs-press,.jgs,.jhes,.jhha-suite,.jhhs-home
){font-size:20px;line-height:1.7}
.hs-main .wp-block-post-content :is(
  #jhhs-events-app,#jhhs-csa,#jhhs-visitor-experience,#jhhs-contact,
  #jhhs-press,.jgs,.jhes,.jhha-suite,.jhhs-home
) :where(p,li):not(.jhha-hero-desc):not(.jhhs-home-hero-mission){font-size:max(20px,1em);line-height:1.7}
.hs-main .wp-block-post-content :is(
  #jhhs-events-app,#jhhs-csa,#jhhs-visitor-experience,#jhhs-contact,
  #jhhs-press,.jgs,.jhes,.jhha-suite,.jhhs-home
) :where(figcaption,small){font-size:max(17px,1em);line-height:1.6}
body.hs-type-large .hs-main .wp-block-post-content :is(
  #jhhs-events-app,#jhhs-csa,#jhhs-visitor-experience,#jhhs-contact,
  #jhhs-press,.jgs,.jhes,.jhha-suite,.jhhs-home
){font-size:22px}
body.hs-type-large .hs-main .wp-block-post-content :is(
  #jhhs-events-app,#jhhs-csa,#jhhs-visitor-experience,#jhhs-contact,
  #jhhs-press,.jgs,.jhes,.jhha-suite,.jhhs-home
) :where(p,li):not(.jhha-hero-desc):not(.jhhs-home-hero-mission){font-size:max(22px,1em)}


/* Historic Sites v1.3.1 · Sitewide header enhancement (does not change page heroes).
   The entire header background is full-bleed, the brand uses a linked emblem,
   and the menu uses accessible type with a native WordPress mobile overlay. */
.hs-site-header,
.hs-site-header.alignfull,
.hs-site-header.wp-block-group{
  width:100%!important;max-width:none!important;
  margin:0!important;padding:0!important;
  background:var(--hs-deep)!important;
}
.hs-site-header .hs-header-inner{
  width:calc(100% - clamp(32px,5vw,96px))!important;
  max-width:none!important;
  margin:0 auto!important;
  padding:14px 0!important;
  min-height:118px;
  display:flex!important;flex-wrap:nowrap;align-items:center;
  justify-content:space-between;gap:clamp(9px,1.2vw,22px);
}
.hs-site-header .hs-brand{
  flex:0 0 auto!important;display:flex!important;align-items:center!important;
  justify-content:flex-start;gap:13px!important;width:auto;max-width:310px;
  margin:0!important;min-width:0;
}
.hs-site-header .hs-brand .wp-block-site-title{
  flex:0 0 88px!important;width:88px!important;max-width:88px!important;
  height:88px!important;min-width:88px;display:block!important;
  padding:0!important;margin:0!important;
}
.hs-site-header .hs-brand .wp-block-site-title a{
  display:block!important;width:88px!important;height:88px!important;
  border:0;background-image:url('assets/johnson-house-emblem.webp');
  background-position:center;background-repeat:no-repeat;background-size:contain;
  font-size:0!important;line-height:0!important;letter-spacing:0!important;
  color:transparent!important;text-decoration:none!important;overflow:hidden;
}
.hs-site-header .hs-brand .wp-block-site-title a:focus-visible{outline:3px solid var(--hs-gold);outline-offset:3px}
.hs-site-header .hs-brand .wp-block-site-tagline{
  flex:0 1 174px;max-width:174px;min-width:100px;
  margin:0!important;color:#edf4f6!important;font-size:clamp(14px,1.06vw,16px)!important;
  font-weight:750!important;line-height:1.45!important;
}
.hs-site-header .hs-navigation{flex:1 1 auto;min-width:0;margin:0!important;font-size:clamp(16px,1.1vw,18px)!important}
.hs-site-header .hs-navigation .wp-block-navigation__container{gap:clamp(6px,.75vw,16px)!important}
.hs-site-header .hs-navigation .wp-block-navigation-item__content,
.hs-site-header .hs-navigation .wp-block-navigation-submenu__toggle{
  font-size:inherit!important;line-height:1.45!important;white-space:nowrap!important;
  font-weight:750!important;min-height:48px;
}
.hs-site-header .hs-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  font-size:17px!important;white-space:normal!important;
}
.hs-site-header .hs-header-give{flex:0 0 auto!important;display:block!important;margin:0!important}
.hs-site-header .hs-header-give a{min-height:48px;font-size:17px;padding:11px 15px}
.hs-header-socials{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;
  flex-wrap:nowrap;gap:5px;min-width:0;margin:0}
.hs-header-socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:44px;min-width:42px;border:1px solid #ffffff55;
  border-radius:5px;text-decoration:none!important;background:#ffffff0a;
  transition:background .15s,border-color .15s;
}
.hs-header-socials a:hover,.hs-header-socials a:focus-visible{background:#ffffff25;border-color:var(--hs-gold)}
.hs-header-socials img{display:block;width:19px!important;height:19px!important;object-fit:contain!important;max-width:none!important}
@media(max-width:1450px){
 .hs-site-header .hs-header-inner{gap:10px}
 .hs-site-header .hs-brand{gap:9px}
 .hs-site-header .hs-brand .wp-block-site-title,
 .hs-site-header .hs-brand .wp-block-site-title a{width:78px!important;height:78px!important;min-width:78px!important;flex-basis:78px!important}
 .hs-site-header .hs-brand .wp-block-site-tagline{max-width:153px;font-size:14px!important}
}
/* Use the native navigation overlay before the six accessible labels become crowded. */
@media(max-width:1370px){
 .hs-site-header .hs-navigation{flex:0 0 auto!important;margin-left:auto!important}
 .hs-site-header .hs-navigation .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
 .hs-site-header .hs-navigation .wp-block-navigation__responsive-container-open{display:flex!important;min-width:48px;min-height:48px;align-items:center;justify-content:center;color:#fff!important}
 .hs-site-header .hs-header-inner{justify-content:space-between}
}
@media(min-width:1371px){
 .hs-site-header .hs-navigation .wp-block-navigation__responsive-container-open{display:none!important}
}
@media(max-width:780px){
 .hs-site-header .hs-header-inner{min-height:90px;padding:10px 0!important;width:calc(100% - 30px)!important;gap:10px}
 .hs-site-header .hs-brand .wp-block-site-title,
 .hs-site-header .hs-brand .wp-block-site-title a{width:72px!important;height:72px!important;min-width:72px!important;flex-basis:72px!important}
 .hs-site-header .hs-brand .wp-block-site-tagline{font-size:14px!important;max-width:200px}
 .hs-site-header .hs-header-give{display:block!important}
 .hs-header-socials a{width:40px;height:44px;min-width:40px}
}
@media(max-width:650px){
 .hs-site-header .hs-header-inner{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:'brand nav' 'give socials';gap:7px 8px;
    align-items:center;justify-items:stretch;padding:9px 0 11px!important;
 }
 .hs-site-header .hs-brand{grid-area:brand;max-width:100%;gap:8px!important}
 .hs-site-header .hs-navigation{grid-area:nav;justify-self:end}
 .hs-site-header .hs-header-give{grid-area:give;justify-self:start}
 .hs-site-header .hs-header-give a{padding:9px 13px;min-height:44px;font-size:16px}
 .hs-site-header .hs-header-socials{grid-area:socials;justify-self:end;gap:4px}
 .hs-site-header .hs-brand .wp-block-site-title,
 .hs-site-header .hs-brand .wp-block-site-title a{width:64px!important;height:64px!important;min-width:64px!important;flex-basis:64px!important}
 .hs-site-header .hs-brand .wp-block-site-tagline{font-size:13px!important;max-width:183px;min-width:0}
 .hs-header-socials a{width:35px;height:39px;min-width:35px}
 .hs-header-socials img{width:17px!important;height:17px!important}
}
@media(max-width:350px){
 .hs-site-header .hs-header-inner{width:calc(100% - 20px)!important;gap:6px}
 .hs-header-socials a{width:32px;min-width:32px;height:38px}
}
@media(prefers-reduced-motion:reduce){.hs-header-socials a{transition:none}}


/* Historic Sites v1.3.2 — Header type and horizontal tagline refinement.
   Larger, readable navigation without squeezing six menus, Donate and social
   links into one row. Header uses two calm horizontal bands on desktop.
   Footer, page plugins, shortcode widths, homepage hero and mobile behavior
   remain unchanged. */
@media (min-width:1101px) {
  .hs-site-header .hs-header-inner {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-rows:auto auto;
    grid-template-areas:"brand give socials" "nav nav nav";
    align-items:center;
    justify-content:stretch;
    column-gap:clamp(12px,1.3vw,22px)!important;
    row-gap:6px!important;
    min-height:0!important;
    padding:12px 0 7px!important;
  }
  .hs-site-header .hs-brand {
    grid-area:brand;
    width:auto;
    max-width:none;
    gap:17px!important;
    flex-wrap:nowrap!important;
  }
  .hs-site-header .hs-brand .wp-block-site-tagline {
    flex:0 1 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    white-space:nowrap!important;
    font-size:clamp(17px,1.22vw,19px)!important;
    font-weight:750!important;
    letter-spacing:.01em;
    line-height:1.45!important;
  }
  .hs-site-header .hs-navigation {
    grid-area:nav;
    width:100%!important;
    min-width:0;
    justify-self:stretch;
    flex:none!important;
    font-size:20px!important;
    margin:0!important;
    border-top:1px solid rgba(255,255,255,.15);
    padding-top:3px;
  }
  .hs-site-header .hs-navigation .wp-block-navigation__container {
    width:100%;
    justify-content:center!important;
    gap:clamp(22px,3.4vw,62px)!important;
  }
  /* Override the previous 1370px switch-to-hamburger rule now that the
     full desktop navigation has an entire second row. */
  .hs-site-header .hs-navigation .wp-block-navigation__responsive-container:not(.is-menu-open){display:block!important}
  .hs-site-header .hs-navigation .wp-block-navigation__responsive-container-open{display:none!important}
  .hs-site-header .hs-navigation .wp-block-navigation-item__content,
  .hs-site-header .hs-navigation .wp-block-navigation-submenu__toggle {
    font-size:20px!important;
    line-height:1.35!important;
    min-height:52px!important;
    white-space:nowrap!important;
  }
  .hs-site-header .hs-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    font-size:19px!important;
    min-height:48px!important;
    white-space:normal!important;
  }
  .hs-site-header .hs-header-give {grid-area:give;justify-self:end}
  .hs-site-header .hs-header-give a {font-size:18px!important;min-height:48px}
  .hs-site-header .hs-header-socials {grid-area:socials;justify-self:end}
}
/* Keep a generous horizontal tagline on tablets, with WordPress's accessible
   native hamburger rather than tiny or overlapping desktop menu links. */
@media (max-width:1100px) {
  .hs-site-header .hs-header-inner {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"brand nav" "give socials";
    align-items:center;
    gap:8px 10px!important;
    min-height:0!important;
    padding:10px 0 12px!important;
  }
  .hs-site-header .hs-brand {grid-area:brand;max-width:100%;min-width:0;gap:12px!important}
  .hs-site-header .hs-navigation {grid-area:nav;justify-self:end;flex:none!important;width:auto!important}
  .hs-site-header .hs-header-give {grid-area:give;justify-self:start;display:block!important}
  .hs-site-header .hs-header-socials {grid-area:socials;justify-self:end}
  .hs-site-header .hs-brand .wp-block-site-tagline {
    max-width:none!important;
    width:auto!important;
    flex:0 1 auto!important;
    min-width:0!important;
    white-space:nowrap!important;
    font-size:clamp(15px,1.65vw,18px)!important;
    line-height:1.45!important;
  }
  .hs-site-header .hs-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  .hs-site-header .hs-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
    font-size:20px!important;
    min-height:50px!important;
    white-space:normal!important;
  }
}
@media (max-width:650px) {
  /* Position the hamburger independently so the tagline gets the real width
     available beside the emblem, not the width of the social-icons column. */
  .hs-site-header .hs-header-inner {
    position:relative;
    grid-template-areas:"brand brand" "give socials";
  }
  .hs-site-header .hs-brand {grid-area:brand;padding-right:55px;max-width:100%}
  .hs-site-header .hs-navigation {
    grid-area:brand;
    position:absolute;
    top:12px;right:0;
    width:48px!important;
  }
  .hs-site-header .hs-brand .wp-block-site-tagline {
    white-space:normal!important;
    overflow-wrap:normal;
    max-width:220px!important;
    font-size:14px!important;
    line-height:1.42!important;
  }
}
@media (max-width:390px) {
  .hs-site-header .hs-brand {gap:7px!important}
  .hs-site-header .hs-brand .wp-block-site-tagline {font-size:14px!important}
}
