/* EWF common shell | 2026-10-23. Header/footer styles are maintained ONLY here. */
:root {
  --brand-header: #1c1c1c;
  --brand-accent: #9caab4;
  --content-width: 1020px;
  --control-height: 44px;
}
.shell { width:min(calc(100% - 48px),var(--content-width)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:100; background:#fff; box-shadow:0 2px 10px rgba(11,27,40,.09); }
.header-top { background:var(--brand-header); color:#fff; }
.site-header .header-core { display:flex; align-items:center; justify-content:space-between; gap:14px; height:62px; }
.site-header .brand { display:flex; align-items:center; flex-shrink:0; gap:11px; color:#fff; text-decoration:none; }
.site-header .brand:hover { color:#fff; }
.site-header .brand-logo { display:block; width:112px; height:56px; object-fit:contain; mix-blend-mode:normal; filter:none; }
.site-header .brand-sub { border-left:1px solid #606060; padding-left:11px; color:#d6d6d6; font-size:10px; letter-spacing:.02em; line-height:1.38; }
.site-header .brand-sub strong { display:block; color:#fff; font-size:12px; font-weight:600; letter-spacing:0; margin-top:2px; }
.site-header .header-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.site-header .header-contact { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; padding:0 16px; min-height:40px; border:1px solid var(--brand-accent); border-radius:5px; background:transparent; color:#fff; font-size:13px; font-weight:600; white-space:nowrap; }
.site-header .header-contact:hover { background:#ecf1f3; color:#1c2f3b; }
.site-header .nav-strip { background:#fff; border-top:1px solid #ededed; }
.site-header .nav-strip-inner { width:min(calc(100% - 48px),var(--content-width)); margin:auto; }
.site-header .primary-nav { display:flex; flex-wrap:nowrap; align-items:stretch; justify-content:flex-start; gap:2px; min-height:46px; height:46px; margin:0; padding:0; background:#fff; }
.site-header .nav-direct { display:inline-flex; align-items:center; justify-content:center; min-width:0; padding:0 13px; text-decoration:none; color:#344451; font-weight:600; font-size:13px; white-space:nowrap; border-bottom:2px solid transparent; }
.site-header .nav-direct:hover,.site-header .nav-direct[aria-current="page"] { background:#f6f6f3; color:#1b3343; border-bottom-color:#7e929e; }
.site-header .mobile-menu { display:none; align-items:center; justify-content:center; flex-direction:row; gap:8px; min-width:92px; height:44px; padding:7px 11px; border:1px solid #818181; border-radius:5px; background:transparent; color:#fff; }
.site-header .mobile-menu .hamburger { display:flex; flex:0 0 19px; width:19px; height:17px; flex-direction:column; justify-content:space-around; }
.site-header .mobile-menu .hamburger i { display:block; width:19px; height:2px; background:currentColor; border-radius:2px; }
.site-header .mobile-menu .menu-label { white-space:nowrap; font-size:12px; font-weight:600; line-height:1; color:inherit; }
.site-header .nav-mobile-contact { display:none; }
.site-footer { background:#101b26; color:#d0d9dd; padding:32px 0 18px; }
.site-footer .footer-top { display:grid; grid-template-columns:minmax(155px,.8fr) minmax(0,2fr); gap:30px; margin-bottom:24px; }
.site-footer .footer-identity img { display:block; width:106px; max-height:60px; object-fit:contain; margin:0 0 8px; mix-blend-mode:normal; }
.site-footer .footer-identity p { font-size:12px; line-height:1.65; color:#b6c4ca; margin:0; }
.site-footer .footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.site-footer .footer-links h3 { font-size:13px; margin:0 0 11px; color:#e9f0f2; font-weight:700; }
.site-footer .footer-links a { display:block; font-size:12px; line-height:1.55; color:#b8c7ce; text-decoration:none; margin:0 0 8px; overflow-wrap:anywhere; }
.site-footer .footer-links a:hover { color:#fff; text-decoration:none; }
.site-footer .footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; padding-top:17px; border-top:1px solid #35434f; color:#93a0aa; font-size:11px; line-height:1.55; }
.site-footer .footer-bottom a { color:inherit; text-decoration:none; }
.site-footer .footer-bottom a:hover { color:#fff; }
.site-header :is(a,button):active { transform:scale(.98); }
.site-header :is(a,button) { transition:background-color .15s ease, color .15s ease, transform .15s ease; }
.site-header :is(a,button):focus-visible, .site-footer a:focus-visible { outline:2px solid #aebdc7; outline-offset:3px; }
@media(max-width:900px) {
  /* Compact mobile header: the contact CTA is already inside the mobile menu. */
  .site-header .header-contact { display:none; }
  .site-header .header-core { min-width:0; }
  .site-header .brand { min-width:0; }
  .site-header .header-actions { flex-shrink:0; }
  .site-header .nav-strip { border:0; height:0; }
  .site-header .nav-strip-inner { width:100%; }
  .site-header .mobile-menu { display:flex; }
  .site-header .primary-nav { display:none; position:absolute; top:100%; left:0; right:0; z-index:3; width:100%; height:auto; max-height:calc(100dvh - 62px); overflow-y:auto; padding:6px 16px 14px; background:#fff; box-shadow:0 15px 24px rgba(13,26,35,.15); }
  .site-header .primary-nav.is-active { display:block; }
  .site-header .nav-direct { display:flex; justify-content:flex-start; padding:0 10px; min-height:44px; font-size:14px; white-space:normal; text-align:left; border-bottom:1px solid #e8edee; }
  .site-header .nav-mobile-contact { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:12px; padding:10px; border-radius:5px; color:white; background:#243b4b; text-decoration:none; font-size:14px; font-weight:600; }
}
@media(max-width:640px) {
  body { font-size:14px; line-height:1.65; }
  .shell { width:calc(100% - 30px); }
  .site-header .header-core { height:56px; }
  .site-header .brand-logo { width:95px; height:50px; }
  .site-header .brand-sub { padding-left:8px; font-size:9px; }
  .site-header .brand-sub strong { font-size:11px; }
  .site-header .primary-nav { max-height:calc(100dvh - 56px); }
  .site-footer { padding-top:25px; }
  .site-footer .footer-top { grid-template-columns:1fr; gap:14px; }
  .site-footer .footer-identity { display:flex; align-items:center; gap:12px; }
  .site-footer .footer-identity img { width:82px; flex-shrink:0; }
  .site-footer .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .site-footer .footer-links>div:last-child { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:16px; row-gap:5px; }
  .site-footer .footer-links>div:last-child h3 { grid-column:1/-1; margin-bottom:3px; }
  .site-footer .footer-links>div:last-child a { margin-bottom:3px; }
  .site-footer .footer-links a { font-size:11px; }
  .site-footer .footer-bottom { font-size:10px; }
}
@media(max-width:355px) {
  .site-header .brand-logo { width:82px; }
  .site-header .mobile-menu { min-width:44px; width:44px; padding:7px; }
  .site-header .mobile-menu .menu-label { display:none; }
  .site-footer .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media print { .site-header { position:relative; box-shadow:none; } .site-header .nav-strip { display:none; } }
