/* =========================================================
   HEADER + FOOTER styles (from your layout.css).
   No CSS variables – colours are written directly.
   Markup: header.php (child theme). Colour helper classes: common.css
   ========================================================= */

/* ---------- utility bar ---------- */
.utility{background:#0F2A4D; color:#D9DCE4; font-size:13px; border-bottom:1px solid rgba(255,255,255,0.08);}
.utility-row{display:flex; justify-content:flex-end; align-items:center; gap:16px; padding:8px 40px;}
.utility-links{display:flex; align-items:center; gap:10px;}
.utility-btn{padding:6px 14px; border-radius:20px; border:1px solid rgba(255,255,255,.3); color:#D9DCE4; font-size:11.5px; font-weight:600; letter-spacing:.01em; white-space:nowrap; transition:all .18s ease;}
.utility-btn:hover{border-color:#fff; background:rgba(255,255,255,.08); color:#fff;}
.utility-btn-accent{background:#C6952F; border-color:#C6952F; color:#0F2A4D;}
.utility-btn-accent:hover{background:#C08A3A; border-color:#C08A3A; color:#0F2A4D;}

/* ---------- header ---------- */
header{background:#FFFFFF; border-bottom:1px solid #DCE3EE; position:sticky; top:0; z-index:70; transition:box-shadow .35s ease;}
header.scrolled{box-shadow:0 1px 0 rgba(15,42,77,.06), 0 16px 40px -20px rgba(15,42,77,.32);}
.header-row{display:flex; align-items:center; justify-content:space-between; height:84px; transition:height .35s ease;}
header.scrolled .header-row{height:64px;}
.logo{display:flex; align-items:baseline; gap:10px;}
.logo-img{height:40px; width:auto; display:block; transition:height .35s ease;}
header.scrolled .logo-img{height:32px;}
nav.primary{display:flex; gap:34px;}
nav.primary a{font-size:14.5px; color:#0F2A4D; position:relative; padding:6px 0; transition:color .2s ease;}
nav.primary a:hover{color:#9C7223;}
nav.primary a.active{color:#9C7223; font-weight:500;}
nav.primary a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:#9C7223; border-radius:2px;
  transform:scaleX(0); transform-origin:right center;
  transition:transform .32s cubic-bezier(.16,.84,.44,1);
}
nav.primary a:hover::after, nav.primary a.active::after{transform:scaleX(1); transform-origin:left center;}
.nav-dropdown{position:relative;}
.nav-dropdown > a{display:inline-flex; align-items:center; gap:4px;}
.nav-dropdown .caret{display:inline-block; transition:transform .18s ease;}
.nav-dropdown:hover .caret{transform:rotate(180deg);}
.dropdown-menu{position:absolute; top:100%; left:-18px; padding-top:16px; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .18s ease, transform .18s ease, visibility .18s;}
.dropdown-menu-inner{min-width:280px; background:#FFFFFF; border:1px solid #DCE3EE; box-shadow:0 16px 40px -20px rgba(15,42,77,.32); border-radius:3px; padding:8px 0;}
.nav-dropdown:hover .dropdown-menu{opacity:1; visibility:visible; transform:translateY(0);}
nav.primary .dropdown-menu a{position:static; display:block; padding:10px 20px; font-size:13.5px; color:#0F2A4D; white-space:nowrap;}
nav.primary .dropdown-menu a::after{content:none;}
nav.primary .dropdown-menu a:hover{color:#0D3D7A; background:#E9EFF9;}
.header-actions{display:flex; align-items:center; gap:18px;}
.lang-toggle{display:flex; gap:2px; background:#F4F6FA; border:1px solid #BFCBE0; border-radius:20px; padding:2px;}
.lang-btn{background:transparent; border:none; color:#526078; font-size:11px; font-weight:600; padding:5px 11px; border-radius:16px; cursor:pointer; font-family:inherit; transition:all .18s ease;}
.lang-btn:hover{color:#0F2A4D;}
.lang-btn.active{background:#0F2A4D; color:#fff;}

/* ---------- mobile hamburger toggle ---------- */
.menu-toggle{display:none; position:relative; width:24px; height:24px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0;}
.menu-toggle-bar{
  position:absolute; left:2px; right:2px; height:2px; background:#0F2A4D; border-radius:2px;
  transition:top .2s ease .12s, transform .2s ease, opacity .12s ease .12s;
}
.menu-toggle-bar:nth-child(1){top:6px;}
.menu-toggle-bar:nth-child(2){top:11px;}
.menu-toggle-bar:nth-child(3){top:16px;}
.menu-toggle.active .menu-toggle-bar{transition:top .2s ease, transform .2s ease .12s, opacity .12s ease;}
.menu-toggle.active .menu-toggle-bar:nth-child(1){top:11px; transform:rotate(45deg);}
.menu-toggle.active .menu-toggle-bar:nth-child(2){opacity:0;}
.menu-toggle.active .menu-toggle-bar:nth-child(3){top:11px; transform:rotate(-45deg);}

/* ---------- footer ---------- */
footer{background:#FFFFFF; border-top:1px solid #DCE3EE; padding-top:60px;}
.footer-grid{display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:40px; padding-bottom:50px;}
.footer-brand .logo-img{margin-bottom:14px;}
.footer-brand p{font-size:13px; color:#526078; margin-top:16px; max-width:230px; line-height:1.6;}
.footer-col h5{font-size:12.5px; font-family:'Helvetica Neue', Helvetica, Arial, sans-serif; color:#9C7223; margin-bottom:16px;}
.footer-col a{display:block; font-size:13.5px; color:#526078; margin-bottom:11px;}
.footer-col a:hover{color:#0F2A4D;}
.footer-bottom{border-top:1px solid #DCE3EE; padding:22px 0; display:flex; justify-content:space-between; font-size:12.5px; color:#526078;}
.footer-bottom a{margin-left:20px; color:#526078;}

@media (max-width:980px){
  .menu-toggle{display:block;}
  .header-row{height:auto; min-height:72px; padding:14px 0;}
  header.scrolled .header-row{height:auto; min-height:72px;}
  header.menu-open .header-row{padding: 16px 20px;}

  nav.primary{
    display:none; flex-direction:column; gap:0; width:100%;
    position:absolute; top:100%; left:0; right:0;
    background:#FFFFFF;
    border-top:1px solid #DCE3EE;
    box-shadow:0 20px 40px -20px rgba(15,42,77,.32);
    max-height:calc(100vh - 80px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:6px 24px 16px;
    z-index:60;
  }
  nav.primary.mobile-open{display:flex;}
  nav.primary a{padding:13px 0; border-bottom:1px solid #DCE3EE; font-size:15px;}
  nav.primary a::after{display:none;}

  .nav-dropdown{width:100%;}
  .nav-dropdown > a{width:100%; justify-content:space-between; padding:13px 0; border-bottom:1px solid #DCE3EE;}
  .nav-dropdown:hover .caret{transform:none;}
  .nav-dropdown.dropdown-open .caret{transform:rotate(180deg);}

  .dropdown-menu{
    position:static; opacity:1; visibility:visible; transform:none; padding-top:0;
    display:none;
  }
  .nav-dropdown.dropdown-open .dropdown-menu{display:block;}
  .dropdown-menu-inner{min-width:0; width:100%; background:transparent; border:none; box-shadow:none; border-radius:0; padding:2px 0 10px 14px;}
  nav.primary .dropdown-menu a{padding:10px 0; font-size:14px; color:#526078; border-bottom:none;}

  .footer-grid{grid-template-columns:1fr 1fr; gap:30px;}
  .footer-brand{grid-column:1 / -1;}
}
@media (max-width:640px){
  .footer-grid{grid-template-columns:1fr 1fr; gap:26px 20px;}
  .footer-brand{grid-column:1 / -1;}
}
@media (max-width:380px){
  .footer-grid{gap:22px 16px;}
  .footer-col h5{font-size:12px; margin-bottom:12px;}
  .footer-col a{font-size:13px; margin-bottom:9px;}
}
