/* Olsen Steiner v6.9.1 — canonical navigation system
   One header behavior for EN + PT. Prevents concatenated desktop links and
   collapses navigation before it becomes visually cramped. */

.site-header.ux-header,
.site-header.pt9-header{
  --os-head-bg:#fcfcfb;
  --os-head-ink:#103c60;
  --os-head-line:#d9e4ea;
  position:relative;
  z-index:80;
  min-height:88px;
  height:auto;
  background:var(--os-head-bg);
  color:var(--os-head-ink);
  border-bottom:1px solid var(--os-head-line);
}

.site-header.on-hero.ux-header,
.site-header.on-hero{
  --os-head-bg:transparent;
  --os-head-ink:#fff;
  --os-head-line:#ffffff26;
  position:absolute;
  inset:0 0 auto;
  background:transparent;
  color:#fff;
  border-bottom:1px solid var(--os-head-line);
}

.site-header .nav-inner{
  width:min(1376px,calc(100% - 72px))!important;
  min-height:88px;
  height:auto;
  margin:0 auto;
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:24px!important;
  position:relative;
}

.site-header .brand{
  order:1;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-width:0;
  line-height:0;
}

.site-header .brand.brand-lockup .brand-logo,
.site-header.pt9-header .brand-logo,
.site-header.ux-header .brand-logo{
  display:block!important;
  width:clamp(205px,16vw,270px)!important;
  height:auto!important;
  max-width:100%!important;
}

.site-header .nav{
  order:2;
  margin-left:auto;
  display:flex!important;
  align-items:center;
  gap:22px!important;
  min-width:0;
  font-size:11px;
  line-height:1.2;
}

.site-header .nav-links{
  display:flex!important;
  align-items:center;
  gap:24px!important;
  min-width:0;
}

.site-header .nav-links>a,
.site-header .nav>.nav-contact{
  display:inline-flex;
  align-items:center;
  position:relative;
  white-space:nowrap;
  padding:12px 0;
  line-height:1.35;
  letter-spacing:.01em;
}

.site-header .nav-links>a[aria-current]:after{
  content:'';
  position:absolute;
  left:0;
  bottom:5px;
  width:26px;
  height:1px;
  background:currentColor;
}

.site-header .nav .nav-contact{
  flex:0 0 auto;
  margin:0 0 0 2px!important;
  padding:10px 16px!important;
  border:1px solid currentColor;
}

.site-header .os-language-switch{
  order:3;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:6px!important;
  margin:0!important;
  font-size:10px!important;
  letter-spacing:.08em;
}

.site-header .os-language-switch a,
.site-header .os-language-switch span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  min-height:34px;
  padding:6px 4px!important;
}

.site-header .os-language-switch [aria-current="true"]{
  font-weight:700;
}

.site-header .menu-toggle{
  order:4;
  display:none!important;
  flex:0 0 auto;
}

/* Keep desktop nav airy. Collapse before the link row becomes cramped. */
@media(max-width:1180px){
  .site-header,
  .site-header.ux-header,
  .site-header.pt9-header{
    min-height:80px;
  }

  .site-header .nav-inner{
    width:min(100% - 44px,1376px)!important;
    min-height:80px;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-rows:80px auto;
    column-gap:12px!important;
    row-gap:0!important;
    align-items:center;
  }

  .site-header .brand{
    grid-column:1;
    grid-row:1;
    justify-self:start;
    order:initial;
  }

  .site-header .brand.brand-lockup .brand-logo,
  .site-header.pt9-header .brand-logo,
  .site-header.ux-header .brand-logo{
    width:min(220px,28vw)!important;
  }

  .site-header .os-language-switch{
    grid-column:2;
    grid-row:1;
    order:initial;
    justify-self:end;
    margin:0!important;
  }

  .site-header .menu-toggle{
    grid-column:3;
    grid-row:1;
    order:initial;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-width:88px;
    min-height:46px;
    margin:0!important;
    padding:10px 14px!important;
    color:inherit;
    background:transparent;
    border:1px solid currentColor;
    font-size:11px;
    letter-spacing:.02em;
  }

  .site-header .menu-toggle i{
    position:relative;
    width:20px;
    height:12px;
    border:0!important;
  }

  .site-header .menu-toggle i:before,
  .site-header .menu-toggle i:after{
    content:'';
    position:absolute;
    left:0;
    width:20px;
    height:1px;
    background:currentColor;
    transition:transform .18s ease,top .18s ease;
  }

  .site-header .menu-toggle i:before{top:2px}
  .site-header .menu-toggle i:after{top:10px}

  .site-header .menu-toggle[aria-expanded="true"] i:before{
    top:6px;
    transform:rotate(45deg);
  }

  .site-header .menu-toggle[aria-expanded="true"] i:after{
    top:6px;
    transform:rotate(-45deg);
  }

  .site-header .nav{
    grid-column:1/-1;
    grid-row:2;
    order:initial;
    display:none!important;
    position:absolute;
    top:calc(100% + 10px);
    right:0;
    left:auto;
    width:min(430px,calc(100vw - 44px));
    margin:0!important;
    padding:22px 24px 24px;
    background:#062d48;
    color:#fff;
    border:1px solid #ffffff24;
    box-shadow:0 22px 48px #001a2c33;
    flex-direction:column;
    align-items:stretch;
    gap:18px!important;
  }

  .site-header .nav.open{
    display:flex!important;
  }

  .site-header .nav-links{
    display:flex!important;
    flex-direction:column;
    align-items:stretch;
    gap:0!important;
  }

  .site-header .nav-links>a{
    width:100%;
    padding:14px 0;
    border-bottom:1px solid #ffffff1e;
    font-size:13px;
    letter-spacing:.01em;
  }

  .site-header .nav-links>a[aria-current]:after{
    bottom:8px;
    width:30px;
  }

  .site-header .nav .nav-contact{
    width:100%;
    justify-content:space-between;
    margin:0!important;
    padding:13px 15px!important;
    border-color:#ffffff75;
    font-size:12px;
  }

  .site-header.on-hero .nav{
    background:#062d48f7;
    backdrop-filter:blur(10px);
  }
}

/* Mobile: never render the full link row in the header. */
@media(max-width:580px){
  .site-header,
  .site-header.ux-header,
  .site-header.pt9-header{
    min-height:76px;
  }

  .site-header .nav-inner{
    width:calc(100% - 28px)!important;
    min-height:76px;
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-rows:76px auto;
    column-gap:8px!important;
  }

  .site-header .brand.brand-lockup .brand-logo,
  .site-header.pt9-header .brand-logo,
  .site-header.ux-header .brand-logo{
    width:min(41vw,158px)!important;
  }

  .site-header .os-language-switch{
    gap:3px!important;
    font-size:9px!important;
  }

  .site-header .os-language-switch a,
  .site-header .os-language-switch span{
    min-width:22px;
    min-height:30px;
    padding:4px 2px!important;
  }

  .site-header .menu-toggle{
    min-width:76px;
    min-height:44px;
    padding:9px 11px!important;
    font-size:10px;
    gap:8px;
  }

  .site-header .menu-toggle i,
  .site-header .menu-toggle i:before,
  .site-header .menu-toggle i:after{
    width:18px;
  }

  .site-header .nav{
    top:76px;
    left:-14px;
    right:-14px;
    width:auto;
    max-width:none;
    padding:18px 22px 22px;
    border-left:0;
    border-right:0;
    box-shadow:0 16px 30px #001a2c38;
  }
}

@media(max-width:360px){
  .site-header .nav-inner{
    width:calc(100% - 20px)!important;
    column-gap:5px!important;
  }

  .site-header .brand.brand-lockup .brand-logo,
  .site-header.pt9-header .brand-logo,
  .site-header.ux-header .brand-logo{
    width:min(39vw,138px)!important;
  }

  .site-header .menu-toggle{
    min-width:68px;
    padding-inline:8px!important;
  }

  .site-header .menu-toggle span{
    font-size:9px;
  }

  .site-header .os-language-switch{
    font-size:8px!important;
  }
}

/* Keyboard visibility */
.site-header a:focus-visible,
.site-header button:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
}

@media(prefers-reduced-motion:reduce){
  .site-header .menu-toggle i:before,
  .site-header .menu-toggle i:after{
    transition:none!important;
  }
}
