/* Beacon House Publishers — responsive site-wide design refresh.
   Loaded after each page's original stylesheet so existing content stays intact. */
:root{ --bh-highlight:#c99b65; --bh-highlight-soft:#f9f0e4; }
html{scroll-padding-top:110px;-webkit-text-size-adjust:100%}
body{min-width:0;overflow-x:clip}
.wrap{width:100%;min-width:0}
main,section,footer,.hero2,.pub-hero,.page-hero{min-width:0}
:where(.hero2-grid,.hero-grid,.pub-grid,.split,.guide-grid,.cta-grid,.combo,.f-grid,.info-grid,.svc-grid,.val-grid,.inc-grid,.steps3,.rev-grid,.life-panel,.frow,.path-grid) > *{min-width:0}
img,video,iframe{max-width:100%}
input,textarea,select{max-width:100%;min-width:0}
:where(.info-card,.check-card,.f-brand,.form-card,.modal-card,.cta-band) {overflow-wrap:anywhere}
:where(h1,h2,h3) {text-wrap:balance}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
:where(button,a,input,textarea,select):focus-visible{outline:3px solid var(--bh-highlight);outline-offset:3px}

/* A warm editorial accent on the existing publishing brand */
.topbar{background:#123a35;color:#ecf4f0}
.topbar .wrap{min-height:30px;gap:18px 24px}
.topbar a{color:inherit;transition:color .2s}
.topbar a:hover{color:#ffe0b5}
.site-header{
  position:sticky;top:0;z-index:70;
  background:rgba(255,254,251,.97);
  border-bottom:1px solid #deebe5;
  box-shadow:0 8px 28px rgba(18,58,53,.07);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)
}
.site-header::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#1e514b 0%,#66afa5 35%,#d4a771 65%,#245750 100%);
  pointer-events:none
}
.site-header .nav{min-height:84px;padding-top:11px;padding-bottom:11px;gap:16px}
.site-header .brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;min-width:0}
.site-header .brand-emblem{
  position:relative;width:60px;height:60px;flex:none;
  display:grid;place-items:center;padding:7px;overflow:visible;
  background:linear-gradient(145deg,#ffffff,#e9f5ef);border:1px solid #d3e5dc;
  border-radius:17px 8px 17px 8px;box-shadow:0 4px 14px rgba(26,78,70,.1)
}
.site-header .brand-emblem::after{
  content:"";position:absolute;width:8px;height:8px;right:-4px;bottom:9px;
  border:2px solid #fff;background:var(--bh-highlight);border-radius:50%
}
.site-header .brand-emblem img{display:block;width:100%;height:100%;object-fit:contain;border-radius:5px}
.site-header .brand-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.site-header .brand .bname{
  font-family:'Poppins',Georgia,serif;font-size:1.18rem;font-weight:750;
  letter-spacing:.055em;color:#194b44;line-height:1.14;white-space:nowrap
}
.site-header .brand .bsub{
  font-size:.66rem;letter-spacing:.44em;font-weight:750;color:#9c7544;
  margin-top:0;white-space:nowrap
}
.site-header nav.links{gap:clamp(8px,1.35vw,20px);font-weight:600}
.site-header nav.links > a:not(.m-cta),
.site-header .nav-services-row > a{
  display:inline-flex;align-items:center;min-height:42px;padding:10px 12px;
  border:0;border-radius:12px;white-space:nowrap;transition:color .2s,background .2s
}
.site-header nav.links > a:not(.m-cta):hover,
.site-header .nav-services-row > a:hover,
.site-header nav.links > a.active{
  background:#edf6f1;color:#205d54;border-color:transparent
}
.site-header .has-drop{position:relative;display:inline-flex;align-items:center}
.site-header .nav-services-row{display:flex;align-items:center;gap:0;min-width:0}
.site-header .submenu-toggle{
  cursor:pointer;display:grid;place-items:center;width:28px;height:36px;
  background:transparent;color:#205d54;border:0;border-radius:9px;
  transition:background .2s,color .2s
}
.site-header .submenu-toggle:hover{background:#e4f2ec}
.site-header .submenu-toggle svg{height:16px;width:16px;transition:transform .25s ease}
.site-header .has-drop.open .submenu-toggle svg{transform:rotate(180deg)}
.site-header .drop.wide{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  width:min(640px,calc(100vw - 44px));min-width:0;
  top:calc(100% + 9px);left:50%;
  padding:16px;gap:5px 9px;border:1px solid #dbe9e2;
  border-radius:20px;background:#fffefa;
  box-shadow:0 20px 55px rgba(15,54,48,.19);
  max-height:min(70vh,610px);overscroll-behavior:contain
}
.site-header .drop.wide a{
  color:#1e433e;font-weight:700;font-size:.88rem;padding:11px 12px;
  border:0;border-radius:12px;transition:background .2s,transform .2s
}
.site-header .drop.wide a:hover,.site-header .drop.wide a:focus-visible{background:#eaf4ef;transform:translateX(2px)}
.site-header .drop.wide small{font-size:.74rem;color:#647b73;font-weight:400;line-height:1.4;margin-top:3px;white-space:normal}
.site-header .nav > .btn{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:11px 22px;border-radius:14px;
  background:linear-gradient(115deg,#143d37,#287b6e);color:#fff;
  box-shadow:0 7px 18px rgba(24,87,76,.2);font-weight:750;font-size:.88rem;
  transition:transform .2s,box-shadow .2s
}
.site-header .nav > .btn::after{content:' ↗';font-size:1.1rem;margin-left:7px;font-weight:500}
.site-header .nav > .btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(24,87,76,.27);color:#fff}
.site-header .burger{display:none}

@media(max-width:1100px){
  .site-header .nav{min-height:76px;gap:12px}
  .site-header .brand-emblem{width:53px;height:53px}
  .site-header nav.links{
    display:none;flex-direction:column;align-items:stretch;gap:3px;
    position:absolute;left:12px;right:12px;top:calc(100% + 4px);width:auto;
    padding:14px;max-height:calc(100dvh - 125px);overflow-y:auto;
    overscroll-behavior:contain;scrollbar-width:thin;
    background:rgba(255,254,252,.995);border:1px solid #dcebe3;border-radius:19px;
    box-shadow:0 22px 55px rgba(14,48,43,.22);
  }
  .site-header nav.links.open{display:flex;animation:navEnter .2s ease-out}
  @keyframes navEnter{from{opacity:.5;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
  .site-header nav.links > a:not(.m-cta),
  .site-header .nav-services-row > a{
    width:100%;min-height:48px;padding:13px 14px;
    white-space:normal;font-size:.96rem;border-radius:11px;border:0
  }
  .site-header .has-drop{display:block;width:100%}
  .site-header .nav-services-row{width:100%;gap:4px}
  .site-header .nav-services-row > a{flex:1}
  .site-header .submenu-toggle{
    flex:none;display:grid;place-items:center;width:48px;height:46px;
    background:#ecf5f0;border-radius:11px
  }
  .site-header .drop.wide,
  .site-header .has-drop:hover .drop.wide,
  .site-header .has-drop:focus-within .drop.wide{
    display:none;opacity:1;visibility:visible;position:static;
    transform:none;left:auto;top:auto;width:100%;min-width:0;
    max-height:none;overflow:visible;background:#f5f9f6;
    box-shadow:none;border:1px solid #e1ede6;border-radius:14px;
    margin:7px 0 5px;padding:8px;gap:2px
  }
  .site-header .has-drop.open .drop.wide,
  .site-header .has-drop.open:hover .drop.wide,
  .site-header .has-drop.open:focus-within .drop.wide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-header .drop.wide a{padding:11px 9px;font-size:.84rem;white-space:normal}
  .site-header .drop.wide small{font-size:.71rem}
  .site-header .nav > .btn{display:none}
  .site-header nav.links .m-cta{
    display:flex;align-items:center;justify-content:center;
    margin-top:11px;padding:15px 18px;min-height:50px;
    background:linear-gradient(115deg,#163e38,#277b6e)!important;
    border:none!important;border-radius:13px;font-weight:700;
    color:#fff!important;box-shadow:0 9px 19px rgba(23,83,75,.18)
  }
  .site-header nav.links .m-cta::after{content:' ↗';margin-left:8px;font-size:1.1rem}
  .site-header .burger{
    position:relative;display:grid;place-items:center;margin-left:auto;
    flex:0 0 47px;width:47px;height:47px;cursor:pointer;
    border-radius:14px;border:1px solid #d8e9e1;
    background:#edf6f1;color:#174f45;box-shadow:0 3px 9px rgba(13,67,57,.06)
  }
  .site-header .burger span{
    display:block;position:absolute;left:13px;width:20px;height:2px;
    background:currentColor;border-radius:5px;transition:transform .24s,top .24s,opacity .18s
  }
  .site-header .burger span:nth-child(1){top:16px}
  .site-header .burger span:nth-child(2){top:22px}
  .site-header .burger span:nth-child(3){top:28px}
  .site-header .burger[aria-expanded="true"]{background:#215a50;color:#fff;border-color:#215a50}
  .site-header .burger[aria-expanded="true"] span:nth-child(1){top:22px;transform:rotate(45deg)}
  .site-header .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .site-header .burger[aria-expanded="true"] span:nth-child(3){top:22px;transform:rotate(-45deg)}
}
@media(max-width:620px){
  .topbar{padding:5px 0}
  .topbar .wrap{align-items:flex-start;flex-direction:row;gap:1px 15px}
  .topbar .tb-right{display:none}
  .topbar span{font-size:.72rem;line-height:1.6;min-width:0;overflow-wrap:anywhere}
  .site-header .nav{min-height:70px;padding-top:9px;padding-bottom:9px}
  .site-header .brand{gap:10px}
  .site-header .brand-emblem{width:48px;height:48px;border-radius:13px 6px 13px 6px}
  .site-header .brand .bname{font-size:clamp(.89rem,3.7vw,1.13rem);letter-spacing:.03em}
  .site-header .brand .bsub{font-size:.58rem;letter-spacing:.34em}
  .site-header nav.links{left:9px;right:9px;padding:10px;max-height:calc(100dvh - 115px)}
  .site-header .has-drop.open .drop.wide,
  .site-header .has-drop.open:hover .drop.wide,
  .site-header .has-drop.open:focus-within .drop.wide{grid-template-columns:1fr}
  .site-header .drop.wide a{padding:11px 12px}
  .site-header .drop.wide small{font-size:.74rem}
  .wrap{padding-left:18px;padding-right:18px}
  section{padding-top:54px;padding-bottom:54px}
  .sec-head{margin-bottom:32px}
  .sec-head h2{font-size:clamp(1.65rem,6vw,2.1rem);line-height:1.19}
  .page-hero,.pub-hero{padding-top:54px;padding-bottom:58px}
  .page-hero h1,.pub-hero h1{font-size:clamp(1.87rem,7vw,2.5rem);line-height:1.16}
  .hero2 h1{font-size:clamp(1.8rem,6.2vw,2.3rem);line-height:1.14}
  .hero2 p.lead,.pub-hero p.lead{font-size:.98rem;line-height:1.68}
  .hero2-grid,.pub-grid{gap:25px}
  .frow,.hform-row,.hform-fields,.mini-cards,.combo,.info-grid{grid-template-columns:1fr}
  .info-grid{gap:14px}
  .info-card,.form-card,.check-card{min-width:0;max-width:100%}
  .info-card{padding:23px 19px}
  .form-card{padding:24px 18px}
  .cta-band{padding:30px 20px;border-radius:20px}
  .modal-overlay{padding:10px}
  .modal-card{width:100%;max-height:calc(100dvh - 20px);padding:26px 18px}
  .hbtns,.pub-btns,.hero-cta{display:flex;flex-direction:column;align-items:stretch;gap:11px}
  .hbtns .btn,.pub-btns .btn,.hero-cta .btn{text-align:center;width:100%;max-width:100%;min-height:48px;display:inline-flex;align-items:center;justify-content:center}
  .pub-points,.hero-points{gap:11px 16px}
  .filters{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:0 2px 13px;margin-left:0;margin-right:0;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .fbtn{flex:none;white-space:nowrap}
  .gpanels,.gallery{touch-action:pan-x pan-y}
  .life-panel{padding:26px 19px}
  .combo-covers{gap:9px}
  .combo-covers img{height:auto;aspect-ratio:2/3;object-fit:cover}
}
@media(max-width:360px){
  .topbar .wrap{gap:0 12px}
  .site-header .brand .bname{font-size:.87rem}
  .site-header .brand .bsub{font-size:.53rem;letter-spacing:.29em}
  .site-header .brand-emblem{width:44px;height:44px}
  .site-header .burger{flex-basis:43px;width:43px;height:43px}
  .site-header .burger span{left:11px}
  .wrap{padding-left:15px;padding-right:15px}
  .page-hero h1,.pub-hero h1{font-size:1.78rem}
  .hero2 h1{font-size:1.75rem}
  .modal-card{padding:23px 15px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .site-header nav.links.open{animation:none}
  .site-header .burger span,.site-header .submenu-toggle svg{transition:none}
}
