/* ETDF Site Suite 15.11.81 — targeted cross-page responsive improvements.
   Shared CSS is loaded after the original styles so desktop styles stay intact. */
:where(.site-header, main, footer) img, :where(.site-header, main, footer) video, :where(.site-header, main, footer) iframe { max-width:100%; }
:where(main,footer) :is(h1,h2,h3,h4,p,li,dd,td,a){overflow-wrap:break-word}
:where(main,footer) :is(.container,[class*="-grid"],[class*="-layout"],[class*="-inner"]){min-width:0}
.v8-breadcrumb{flex-wrap:wrap;row-gap:5px}
/* Tablet: switch the primary navigation into the mobile drawer when needed. */
@media (max-width:1200px){
  .site-header .desktop-nav{display:none!important}
  .site-header .menu-btn{display:flex!important;flex-direction:column;justify-content:center;align-items:center;flex:0 0 44px;min-width:44px;width:44px;height:44px;margin:0!important}
  .site-header .menu-btn span{display:block!important;width:20px!important;height:2px!important;min-height:2px!important;flex:0 0 2px!important;margin:2px 0!important;border-radius:3px;background:#17315f}
  body.v11-home .site-header .menu-btn span{background:#fff!important}
  .site-header .brand{min-width:0!important;flex:0 1 auto;margin-left:auto!important;max-width:min(50%,380px)}
  .site-header .nav-actions{flex:0 0 auto!important;gap:9px!important;margin-right:auto!important;min-width:0}
  .site-header .nav{min-width:0;justify-content:space-between;gap:12px!important}
  .site-header .header-request-action{flex:0 0 auto;max-width:100%;overflow-wrap:anywhere}
}
@media(min-width:1021px) and (max-width:1200px){
  .mobile-panel{display:block!important;position:fixed!important;z-index:1003!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(88vw,390px)!important;height:100dvh!important;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)!important;border:0!important;border-left:1px solid #e5edf7!important;box-shadow:-28px 0 70px rgba(7,31,68,.22)!important;transform:translate3d(105%,0,0)!important;transition:transform .34s cubic-bezier(.22,.8,.2,1)!important;overflow:hidden!important;visibility:visible!important}
  .mobile-panel.open{transform:translate3d(0,0,0)!important}
  .mobile-panel>.container{width:100%!important;height:100%!important;margin:0!important;padding:0 22px 28px!important;display:block!important;overflow-y:auto!important;overscroll-behavior:contain!important}
  .etdf-mobile-backdrop{display:block;position:fixed;z-index:1002;inset:0;border:0;background:rgba(3,18,42,.48);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease;padding:0}
  .etdf-mobile-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
  .etdf-mobile-menu-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 0 14px;margin-bottom:8px;background:linear-gradient(180deg,#fff 78%,rgba(255,255,255,.86));border-bottom:1px solid #edf2f8}
  .etdf-mobile-brand{min-width:0!important;margin:0!important;padding:0!important;gap:9px!important;flex:1}
  .etdf-mobile-brand:after{display:none!important}
  .etdf-mobile-brand .brand-copy{min-width:0}.etdf-mobile-brand .brand-copy strong{font-size:12px!important;white-space:normal!important;line-height:1.7!important}
  .etdf-mobile-brand .etdf-logo-slot,.etdf-mobile-brand .brand-mark{width:44px!important;height:44px!important;min-width:44px!important;flex-basis:44px!important}
  .etdf-mobile-menu-close{width:42px;height:42px;min-width:42px;border:1px solid #dde7f4;border-radius:13px;background:#f5f8fd;color:#173866;display:grid;place-items:center;cursor:pointer;transition:.18s}
  .etdf-mobile-menu-close:hover{background:#eaf1fb;color:#0c2855}.etdf-mobile-menu-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
  .mobile-panel>.container>a,.mobile-panel details{border-bottom:1px solid #edf2f8}
  .mobile-panel>.container>a,.mobile-panel summary{display:flex!important;align-items:center;min-height:52px;padding:13px 5px!important;color:#17345f!important;font-size:14px!important;font-weight:760!important;text-decoration:none}
  .mobile-panel>.container>a{position:relative}
  .mobile-panel details>summary{padding-left:34px!important}.mobile-panel details>summary:after{left:8px!important;width:8px!important;height:8px!important;border-color:#7690b1!important}
  .mobile-panel details a{margin:0 8px 4px;padding:11px 14px!important;border-radius:11px;color:#5e718f!important;font-size:12.5px!important;line-height:1.7;background:transparent;transition:.16s}
  .mobile-panel details a:hover{background:#edf4ff;color:#174b9b!important;transform:translateX(-2px)}
  .mobile-panel details[open]{padding-bottom:8px}.mobile-panel details[open]>summary{color:var(--etdf-custom-primary,#2d5be3)!important}
  .menu-btn{position:relative;z-index:81}.menu-btn span{transition:transform .2s ease,opacity .2s ease}
}
@media (min-width:1021px) and (max-width:1200px){
  .site-header .mobile-panel>.container>a:after{display:none!important;content:none!important}
  .site-header .mobile-panel details>summary:after{display:block!important}
  .site-header .mobile-panel.open{visibility:visible!important}
  .site-header .brand-copy strong{white-space:normal!important}
}
/* Mobile: give actual navigation controls enough space; the request CTA remains in the drawer. */
@media (max-width:680px){
  .site-header .header-request-action{display:none!important}
  .site-header .nav{height:70px!important;min-height:70px!important;gap:8px!important}
  .site-header .brand{margin:0!important;min-width:0!important;max-width:calc(100% - 114px);flex:0 1 auto!important;gap:8px!important}
  .site-header .brand-copy{min-width:0;overflow:hidden}
  .site-header .brand-copy strong{font-size:clamp(11px,2.7vw,14px)!important;line-height:1.6!important;white-space:normal!important;overflow-wrap:anywhere}
  .site-header .nav-actions{margin:0!important;gap:8px!important;flex:0 0 auto!important}
  .site-header .menu-btn{width:44px!important;height:44px!important;min-width:44px!important;flex-basis:44px!important}
  .v8-page-hero .v8-hero-inner,.v8-page-hero .v8-hero-copy{min-width:0!important;max-width:100%!important}
  .v8-page-hero .v8-hero-inner{grid-template-columns:minmax(0,1fr)!important}
  .v8-page-hero .v8-hero-copy{width:100%!important}
  .v8-page-hero .v8-hero-copy h1{font-size:clamp(24px,6.4vw,33px)!important;overflow-wrap:anywhere}
  .v8-page-hero .v8-hero-actions{flex-wrap:wrap}
  body.page-about .etdf-board-members{grid-template-columns:minmax(0,1fr)!important}
  body.page-about .etdf-board-member--vice h4{white-space:normal!important;font-size:clamp(14px,4vw,17px)!important;overflow-wrap:anywhere}
  body.page-gallery .v14-gallery-heading{grid-template-columns:minmax(0,1fr)!important}
  .etdf-mg-front-bar,.etdf-mg-front-stats{flex-wrap:wrap}
  .etdf-mg-front-tools{min-width:0}
  .etdf-mg-front-grid{grid-template-columns:minmax(0,1fr)!important}
  .etdf-mg-copy,.etdf-mg-meta{min-width:0;overflow-wrap:anywhere}
  .etdf-mg-meta{flex-wrap:wrap}
  .v9-gallery-head,.v9-gallery-controls{flex-wrap:wrap}
  .v8-section table, .v9-section table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .footer-grid{min-width:0}
  .contact-row{min-width:0;overflow-wrap:anywhere}
}
@media(max-width:520px){
  .site-header .brand-copy{display:none!important}
  .site-header .brand{flex:0 0 48px!important;max-width:48px!important}
  .site-header .brand .etdf-logo-slot{width:46px!important;height:46px!important;min-width:46px!important;flex-basis:46px!important}
  .v8-btn,.hero-actions a{white-space:normal;min-height:44px;text-align:center}
  .etdf-mg-front-tools h2{font-size:clamp(19px,6vw,24px)!important}
}
@media(max-width:360px){
 .site-header .nav{padding-inline:0!important}
 .site-header .nav-actions{gap:6px!important}
 .site-header .brand{flex-basis:44px!important}
 .site-header .menu-btn{width:42px!important;height:42px!important;min-width:42px!important;flex-basis:42px!important}
 .etdf-mg-modal .etdf-mg-modal-head{gap:5px}
 .etdf-mg-modal .etdf-mg-close{width:40px;min-width:40px}
}
@media (prefers-reduced-motion:reduce){.site-header .mobile-panel,.site-header .menu-btn{transition:none!important}}
