/* ---------- COOKIE BANNER ---------- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:9998;
  display:flex; justify-content:center;
  padding:16px;
  transform:translateY(120%);
  opacity:0;
  transition:transform .35s cubic-bezier(.16,.8,.3,1), opacity .35s ease;
  pointer-events:none;
}
.cookie-banner.is-visible{ transform:translateY(0); opacity:1; pointer-events:auto; }
.cookie-banner-inner{
  max-width:760px; width:100%;
  background:var(--forest-900,#16281f); color:rgba(255,255,255,.88);
  border-radius:16px; padding:20px 24px;
  box-shadow:0 20px 45px -18px rgba(0,0,0,.55);
  display:flex; flex-wrap:wrap; align-items:center; gap:16px;
}
.cookie-banner-inner p{ margin:0; flex:1 1 320px; font-size:13.5px; line-height:1.55; }
.cookie-banner-inner a{ color:#e7b75f; text-decoration:underline; }
.cookie-banner-actions{ display:flex; gap:10px; flex-wrap:wrap; flex:0 0 auto; }
.cookie-banner .btn{ padding:10px 18px; font-size:13.5px; white-space:nowrap; }
.cookie-banner .btn-outline{ border-color:rgba(255,255,255,.4); color:#fff; }
.cookie-banner .btn-outline:hover{ background:rgba(255,255,255,.12); }
@media (max-width:640px){
  .cookie-banner{ padding:12px; }
  .cookie-banner-inner{ flex-direction:column; align-items:stretch; text-align:left; padding:18px; }
  .cookie-banner-actions{ justify-content:stretch; }
  .cookie-banner-actions .btn{ flex:1 1 auto; justify-content:center; }
}
@media (prefers-reduced-motion: reduce){
  .cookie-banner{ transition:none; }
}

/* ---------- MAP CONSENT PLACEHOLDER ---------- */
.map-consent{
  width:100%; height:100%;
  background:var(--sand-100,#f6f3ea);
  display:flex; align-items:center; justify-content:center; text-align:center;
  border-radius:inherit;
}
.contact-map .map-consent{ height:230px; }
.zh-map .map-consent{ min-height:320px; }
.map-consent-inner{ padding:22px 20px; max-width:320px; }
.map-consent-inner p{ font-size:12.5px; color:var(--ink-600,#4b544a); margin:0 0 12px; line-height:1.5; }
.map-consent-btn{ padding:9px 18px; font-size:12.5px; }

/* ---------- FOOTER LEGAL LINKS ---------- */
.footer-legal{
  margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex; gap:6px 18px; flex-wrap:wrap; justify-content:center;
  font-size:12.5px;
}
.footer-legal a, .footer-legal button{
  color:rgba(255,255,255,.6); text-decoration:underline; text-underline-offset:2px;
  background:none; border:none; padding:0; cursor:pointer; font:inherit;
}
.footer-legal a:hover, .footer-legal button:hover{ color:rgba(255,255,255,.9); }
