/* =========================================================
   LAU-TAM FOOTER
   File: css/footer.css
   Scope: footer only.
   Load after css/main.css and css/sidebar.css.
   ========================================================= */

footer{
  max-width:100%;
  margin-top:0;
  padding:6.5rem var(--page-pad) 2rem;
  background:var(--navy-dark);
  color:var(--white);
}

.footer-main,
.footer-bottom{
  width:100%;
  max-width:var(--content-max);
  margin-left:auto;
  margin-right:auto;
}

.footer-main{
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(0,1.35fr);
  gap:clamp(4rem,6vw,7rem);
  align-items:start;
}

.footer-brand{
  position:relative;
  z-index:20;
  isolation:isolate;
  max-width:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
}

.footer-logo-link{
  position:relative;
  z-index:60;
  display:flex;
  width:min(320px,100%);
  max-width:100%;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  line-height:0;
  pointer-events:auto;
  cursor:pointer;
}

.footer-logo-img{
  display:block;
  width:100%;
  max-width:320px;
  height:auto;
  object-fit:contain;
  margin:0;
  padding:0;
  pointer-events:none;
}

.footer-statement{
  position:relative;
  z-index:30;
  width:100%;
  max-width:320px;
  margin-top:1rem;
  font-family:var(--fd);
  font-size:clamp(.86rem,1vw,1.05rem);
  line-height:1.28;
  letter-spacing:.005em;
  text-align:center;
  color:rgba(255,255,255,.74);
  cursor:default;
  pointer-events:auto;
  user-select:text;
  text-decoration:none;
}

.footer-statement,
.footer-statement *,
.footer-statement:hover,
.footer-statement:focus,
.footer-statement:focus-visible{
  cursor:default;
  text-decoration:none;
}

.footer-statement-accent{
  position:relative;
  display:inline-block;
  color:inherit;
  transform-origin:center;
  pointer-events:auto;
  animation:none;
  text-shadow:none;
}

.footer-statement-accent::after,
.footer-statement:hover .footer-statement-accent::after,
.footer-statement:focus .footer-statement-accent::after,
.footer-statement:focus-visible .footer-statement-accent::after{
  display:none;
  content:none;
  opacity:0;
  animation:none;
  background:transparent;
}

.footer-statement:not(:hover) .footer-statement-accent{
  animation:none;
  transform:none;
  text-shadow:none;
}

.footer-statement:hover .footer-statement-accent{
  color:inherit;
  animation:capitalHeartbeatWhite 1.65s ease-in-out infinite;
}

@keyframes capitalHeartbeatWhite{
  0%{transform:scale(1);text-shadow:none;}
  12%{transform:scale(1.055);text-shadow:0 0 16px rgba(255,255,255,.14);}
  22%{transform:scale(1);text-shadow:none;}
  32%{transform:scale(1.035);text-shadow:0 0 10px rgba(255,255,255,.10);}
  44%{transform:scale(1);text-shadow:none;}
  100%{transform:scale(1);text-shadow:none;}
}

.footer-columns{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(180px,.55fr);
  gap:clamp(3rem,5vw,6rem);
}

.footer-block-label{
  margin-bottom:1.35rem;
  font-size:.66rem;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:rgba(255,255,255,.44);
  font-weight:700;
}

.footer-block-value{
  font-size:.84rem;
  line-height:1.7;
  color:rgba(255,255,255,.78);
}

.footer-contact-value{
  max-width:620px;
}

.footer-block-value a{
  color:rgba(255,255,255,.86);
  transition:color .25s ease;
}

.footer-block-value a:hover,
.footer-block-value a:focus-visible{
  color:var(--gold);
  outline:none;
}

.footer-contact-link{
  appearance:none;
  -webkit-appearance:none;
  position:relative;
  z-index:2;
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:max-content;
  min-width:0;
  min-height:0;
  padding:0;
  margin:0 0 1.35rem;
  background:transparent;
  border:0;
  color:rgba(255,255,255,.44);
  font:inherit;
  font-size:.66rem;
  letter-spacing:.20em;
  text-transform:uppercase;
  font-weight:700;
  line-height:1.2;
  cursor:pointer;
  transition:color .25s ease;
}

.footer-contact-link:hover,
.footer-contact-link:focus-visible{
  color:var(--gold);
  outline:none;
}

.footer-linkedin-link{
  display:inline-flex;
  align-items:center;
  width:max-content;
  color:rgba(255,255,255,.82);
  transition:opacity .25s ease, transform .25s ease;
}

.footer-linkedin-logo{
  display:block;
  width:86px;
  height:auto;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.86;
  transition:opacity .25s ease, transform .25s ease;
}

.footer-linkedin-link:hover,
.footer-linkedin-link:focus-visible{
  opacity:1;
  outline:none;
}

.footer-linkedin-link:hover .footer-linkedin-logo,
.footer-linkedin-link:focus-visible .footer-linkedin-logo{
  opacity:1;
  transform:translateY(-1px);
}

.footer-bottom{
  margin-top:5.5rem;
  padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;
  justify-content:space-between;
  gap:2rem;
  align-items:center;
  font-size:.82rem;
  color:rgba(255,255,255,.86);
}

.footer-bottom a:hover,
.footer-bottom a:focus-visible{
  color:#fff;
  outline:none;
}

.footer-top-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:400;
  color:rgba(255,255,255,.86);
  transition:none;
}

.footer-top-link,
.footer-top-link *{
  transition:none;
  animation:none;
}

.footer-top-link:hover,
.footer-top-link:focus-visible{
  color:#fff;
  transform:none;
  outline:none;
}

.footer-top-link::before,
.footer-top-link::after,
.footer-top-link *::before,
.footer-top-link *::after{
  display:none;
  content:none;
}

main + footer,
#news + footer{
  margin-top:0;
}

@media (max-width:1100px){
  .footer-main{
    grid-template-columns:1fr;
    gap:4rem;
  }

  .footer-columns{
    grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr);
  }
}

@media (max-width:640px){
  footer{
    padding:5rem 1.25rem 2rem;
  }

  .footer-brand{
    align-items:flex-start;
    max-width:100%;
  }

  .footer-logo-link{
    width:min(270px,100%);
    justify-content:flex-start;
  }

  .footer-logo-img{
    max-width:270px;
  }

  .footer-statement{
    max-width:280px;
    margin-top:.6rem;
    text-align:left;
    font-size:.95rem;
  }

  .footer-columns{
    grid-template-columns:1fr;
    gap:3rem;
  }

  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* =========================================================
   FOOTER LANGUAGE SELECTOR - sober footer placement
   ========================================================= */
.footer-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  justify-content:normal;
  align-items:center;
  gap:2rem;
}

.footer-legal{
  min-width:0;
}

.footer-bottom-links{
  display:flex;
  justify-content:center;
  align-items:center;
  min-width:0;
}

.footer-lang{
  position:relative;
  justify-self:end;
  display:inline-flex;
  align-items:center;
  width:max-content;
  color:rgba(255,255,255,.86);
}

.footer-lang-toggle{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  padding:.28rem 0;
  color:rgba(255,255,255,.76);
  font-size:.72rem;
  line-height:1;
  font-weight:400;
  white-space:nowrap;
  transition:color .18s ease;
}

.footer-lang-toggle:hover,
.footer-lang-toggle:focus-visible,
.footer-lang.open .footer-lang-toggle{
  color:#fff;
  outline:none;
}

.footer-lang-prefix{
  color:rgba(255,255,255,.42);
}

.footer-lang-current{
  color:rgba(255,255,255,.88);
  font-weight:500;
}

.footer-lang-options{
  position:absolute;
  right:0;
  bottom:calc(100% + .86rem);
  z-index:80;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.16rem;
  min-width:172px;
  padding:.64rem;
  background:#05070D;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.34);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(6px);
  transition:opacity .22s ease, visibility .22s ease, transform .28s var(--ease);
}

.footer-lang.open .footer-lang-options{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

.footer-lang-options button{
  position:relative;
  width:100%;
  min-height:2.1rem;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:.44rem .7rem;
  text-align:left;
  font-size:.74rem;
  line-height:1.2;
  letter-spacing:.02em;
  color:rgba(255,255,255,.50);
  white-space:nowrap;
  transition:color .18s ease, background .18s ease;
}

.footer-lang-options button:hover,
.footer-lang-options button:focus-visible{
  color:#fff;
  background:rgba(255,255,255,.035);
  outline:none;
}

.footer-lang-options button.active{
  color:rgba(255,255,255,.96);
  background:rgba(255,255,255,.025);
  cursor:default;
}

.footer-lang-options button.active:hover,
.footer-lang-options button.active:focus-visible{
  background:rgba(255,255,255,.025);
}

@media (max-width:860px){
  .footer-bottom{
    grid-template-columns:1fr;
    gap:1.15rem;
    align-items:flex-start;
  }

  .footer-bottom-links{
    justify-content:flex-start;
  }

  .footer-lang{
    justify-self:start;
  }

  .footer-lang-options{
    right:auto;
    left:0;
  }
}

@media (max-width:640px){
  .footer-bottom{
    flex-direction:initial;
    align-items:flex-start;
  }
}

/* =========================================================
   FOOTER LEGAL ROW - clean final
   Terms sits on its own row above the bottom metadata.
   No horizontal rules, no decorative lines.
   ========================================================= */
.footer-legal-row{
  width:100%;
  max-width:var(--content-max);
  margin:5.5rem auto 1.55rem;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:clamp(1.65rem,2.4vw,2.75rem);
  flex-wrap:wrap;
}

.footer-bottom{
  margin-top:0!important;
  padding-top:0!important;
  border-top:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  justify-content:normal!important;
  align-items:center!important;
  gap:2rem!important;
}

.footer-bottom-links{
  display:none!important;
}

.footer-top-link{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:rgba(255,255,255,.78)!important;
  font-size:.66rem!important;
  line-height:1!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  font-weight:500!important;
  text-decoration:none!important;
  box-shadow:none!important;
  transition:color .18s ease!important;
}

.footer-top-link:hover,
.footer-top-link:focus-visible{
  color:#fff!important;
  outline:none!important;
}

.footer-top-link::before,
.footer-top-link::after,
.footer-top-link *::before,
.footer-top-link *::after{
  display:none!important;
  content:none!important;
}

.footer-lang-toggle{
  padding:0!important;
}

@media (max-width:860px){
  .footer-legal-row{
    margin:4.5rem auto 1.25rem;
    justify-content:flex-start;
  }

  .footer-bottom{
    grid-template-columns:1fr!important;
    gap:1.1rem!important;
    align-items:flex-start!important;
  }

  .footer-lang{
    justify-self:start!important;
  }
}

/* =========================================================
   FOOTER TERMS SEPARATOR - FINAL
   Adds one subtle divider between Terms of use and the bottom metadata.
   ========================================================= */
.footer-legal-row{
  margin-bottom:1.35rem!important;
  padding-bottom:1.35rem!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
}

@media (max-width:860px){
  .footer-legal-row{
    margin-bottom:1.25rem!important;
    padding-bottom:1.25rem!important;
  }
}

/* =========================================================
   FOOTER TERMS SEPARATOR VISIBILITY FIX - FINAL V9
   The divider is now rendered as a real pseudo-element, not only
   as a border, so it remains visible and controlled.
   ========================================================= */
.footer-legal-row{
  position:relative!important;
  border-bottom:0!important;
  margin-bottom:1.45rem!important;
  padding-bottom:1.45rem!important;
}

.footer-legal-row::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:1px!important;
  display:block!important;
  background:rgba(255,255,255,.16)!important;
  pointer-events:none!important;
}

@media (max-width:860px){
  .footer-legal-row{
    margin-bottom:1.3rem!important;
    padding-bottom:1.3rem!important;
  }
}


/* =========================================================
   FOOTER BRAND STATEMENT REMOVAL - FINAL
   Removes the capital phrase spacing after the footer logo.
   ========================================================= */
.footer-brand{
  gap:0!important;
}

.footer-statement{
  display:none!important;
}


/* =========================================================
   FOOTER LEGAL LINKS - PRIVACY + TERMS
   Adds Privacy Policy to the left of Terms of Use.
   ========================================================= */
.footer-legal-row{
  gap:clamp(1.65rem,2.4vw,2.75rem)!important;
  flex-wrap:wrap!important;
}

@media (max-width:860px){
  .footer-legal-row{
    gap:1.35rem!important;
  }
}
