/* ---------- Footer triggers (reset buttons to match footer link style) ---------- */
.footer-link-btn{
  background:none;
  border:none;
  padding:0;
  margin:0;
  font:inherit;
  font-size:0.92rem;
  color:inherit;
  cursor:pointer;
  transition:color .18s ease;
}
.footer-link-btn:hover{ color:var(--white); }
.footer-link-btn:focus-visible{ outline:2px solid var(--blue-soft); outline-offset:3px; }

/* ---------- Overlay ---------- */
.legal-modal-overlay{
  position:fixed;
  inset:0;
  z-index:1000;
  background:rgba(6,11,19,0.72);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5vh 1.25rem;
}
.legal-modal-overlay[hidden]{ display:none; }

body.legal-modal-open{ overflow:hidden; }

/* ---------- Modal ---------- */
.legal-modal{
  background:var(--white);
  color:var(--navy-900);
  width:100%;
  max-width:680px;
  max-height:88vh;
  border-radius:12px;
  box-shadow:0 24px 64px rgba(4,9,18,0.45);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.legal-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.35rem 1.75rem;
  border-bottom:1px solid var(--gray-100);
  flex-shrink:0;
}
.legal-modal-header-title{
  display:flex;
  align-items:center;
  gap:0.9rem;
  flex-wrap:wrap;
}
.legal-modal-header h2{
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.25rem;
  margin:0;
  color:var(--navy-900);
}

/* ---------- Language toggle ---------- */
.legal-lang-toggle{
  display:inline-flex;
  border:1px solid var(--gray-300);
  border-radius:999px;
  overflow:hidden;
  flex-shrink:0;
}
.legal-lang-btn{
  background:none;
  border:none;
  font:inherit;
  font-size:0.76rem;
  font-weight:600;
  letter-spacing:0.02em;
  color:var(--gray-700);
  padding:0.3rem 0.7rem;
  cursor:pointer;
  transition:background-color .15s ease, color .15s ease;
}
.legal-lang-btn:hover{ background:var(--gray-100); }
.legal-lang-btn[aria-pressed="true"]{
  background:var(--navy-900);
  color:var(--white);
}
.legal-lang-btn:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; }

.legal-modal-close{
  background:none;
  border:none;
  cursor:pointer;
  color:var(--gray-700);
  width:36px; height:36px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:background-color .15s ease, color .15s ease;
}
.legal-modal-close:hover{ background:var(--gray-100); color:var(--navy-900); }
.legal-modal-close:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; }

.legal-modal-body{
  padding:1.5rem 1.75rem 2rem;
  overflow-y:auto;
  line-height:1.6;
  font-size:0.96rem;
}
.legal-modal-body:focus{ outline:none; }

.legal-modal-body h3{
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.02rem;
  margin:1.75rem 0 0.5rem;
  color:var(--navy-900);
}
.legal-modal-body h3:first-child{ margin-top:0; }
.legal-modal-body p{ margin:0 0 0.5rem; color:var(--navy-900); }
.legal-modal-body a{ color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.legal-modal-body address{ font-style:normal; }
.legal-modal-body .legal-field-label{
  color:var(--gray-700);
  font-size:0.85rem;
}
.legal-modal-body dl{ margin:0; }
.legal-modal-body dt{
  font-size:0.85rem;
  color:var(--gray-700);
  margin-top:0.65rem;
}
.legal-modal-body dd{
  margin:0.1rem 0 0;
  color:var(--navy-900);
}
.legal-modal-body .legal-placeholder{
  color:#a45a1f;
  background:#fdf3e7;
  padding:0.05rem 0.35rem;
  border-radius:4px;
  font-size:0.9em;
}
.legal-modal-body .legal-note{
  margin-top:2rem;
  padding-top:1.25rem;
  border-top:1px solid var(--gray-100);
  color:var(--gray-700);
  font-size:0.85rem;
}

@media (max-width:640px){
  .legal-modal{ max-height:92vh; border-radius:10px; }
  .legal-modal-header{ padding:1.1rem 1.25rem; flex-wrap:wrap; }
  .legal-modal-body{ padding:1.25rem 1.25rem 1.75rem; }
}
