.cookie-banner{
  position:fixed;
  z-index:40;
  left:50%;
  bottom:max(14px, env(safe-area-inset-bottom));
  width:min(920px, calc(100% - 28px));
  border:1px solid rgba(223,229,238,.95);
  border-radius:var(--radius);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 22px 55px rgba(29,54,90,.14);
  color:var(--ink);
  opacity:0;
  transform:translate(-50%, 30px);
  pointer-events:none;
  transition:opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
}
.cookie-banner.is-visible{
  opacity:1;
  transform:translate(-50%, 0);
  pointer-events:auto;
}
.cookie-banner.is-leaving{
  opacity:0;
  transform:translate(-50%, 30px);
  pointer-events:none;
}
.cookie-banner-inner{
  display:flex;
  align-items:center;
  gap:28px;
  padding:20px 22px;
}
.cookie-banner-copy{min-width:0; flex:1}
.cookie-banner .eyebrow{margin:0 0 8px; font-size:11px}
.cookie-banner-copy p{margin:0; color:var(--muted); font-size:15px; line-height:1.6}
.cookie-banner-links{margin-top:8px !important}
.cookie-banner-links a,
.cookie-modal-links a,
.form-privacy a{
  color:var(--blue-dark);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}
.cookie-banner-links a:hover,
.cookie-modal-links a:hover,
.form-privacy a:hover{color:var(--blue)}
.cookie-banner-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
}
.cookie-banner .btn,
.cookie-modal .btn{
  width:auto;
  min-height:46px;
  padding:0 18px;
  font-size:14px;
  gap:8px;
  box-shadow:none;
}
.cookie-banner .btn-primary,
.cookie-modal .btn-primary{background:var(--blue); color:#fff; border-color:var(--blue)}
.cookie-banner .btn-primary:hover,
.cookie-modal .btn-primary:hover{background:var(--blue-dark); border-color:var(--blue-dark); transform:translateY(-2px); box-shadow:0 14px 30px rgba(8,104,255,.23)}
.cookie-banner .btn-secondary,
.cookie-modal .btn-secondary{background:rgba(255,255,255,.86); color:var(--ink); border-color:var(--line)}
.cookie-banner .btn-secondary:hover,
.cookie-modal .btn-secondary:hover{background:#fff; border-color:#b8c4d3; transform:translateY(-2px)}

body.has-cookie-banner{padding-bottom:var(--cookie-banner-space, 0px)}
body.has-cookie-banner .hero-scroll{opacity:0; visibility:hidden; pointer-events:none}

.cookie-modal{
  position:fixed;
  inset:0;
  z-index:1200;
  display:grid;
  place-items:center;
  padding:max(16px, env(safe-area-inset-bottom));
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .45s ease, visibility 0s linear .45s;
}
.cookie-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .45s ease, visibility 0s linear 0s;
}
.cookie-modal-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(5,12,24,.58);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.cookie-modal-card{
  position:relative;
  display:flex;
  flex-direction:column;
  width:min(560px, 100%);
  max-height:min(720px, calc(100dvh - 32px));
  overflow:hidden;
  padding:28px 26px 0;
  border:1px solid rgba(255,255,255,.55);
  border-radius:28px;
  background:linear-gradient(145deg, rgba(255,255,255,.96), rgba(239,245,255,.92));
  box-shadow:0 30px 90px rgba(3,17,41,.34);
  color:#121b2b;
  outline:none;
  opacity:0;
  transform:translateY(30px);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s ease;
}
.cookie-modal.is-open .cookie-modal-card{opacity:1; transform:none}
.cookie-modal .eyebrow{margin:0 0 8px}
.cookie-modal-card h2{
  margin:0 48px 10px 0;
  font-family:"Space Grotesk", sans-serif;
  font-size:clamp(28px, 4vw, 36px);
  line-height:1.05;
  letter-spacing:-.04em;
  font-weight:500;
}
.cookie-modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding-bottom:16px;
}
#cookie-modal-lead,
.cookie-option p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.65;
}
.cookie-modal-close{
  position:absolute;
  top:16px;
  right:16px;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
}
.cookie-modal-close svg{width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round}
.cookie-modal-close:hover{border-color:#b8c4d3; color:var(--blue)}
.cookie-option{
  margin-top:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.72);
}
.cookie-option-top{display:flex; align-items:center; justify-content:space-between; gap:16px}
.cookie-option h3{
  margin:0;
  font-family:"Space Grotesk", sans-serif;
  font-size:18px;
  letter-spacing:-.03em;
  font-weight:500;
}
.cookie-option p{margin-top:8px}
.cookie-locked-note{
  margin-top:8px !important;
  color:var(--blue-dark) !important;
  font-size:12px !important;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cookie-switch{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  min-height:44px;
  padding:4px;
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  cursor:pointer;
}
.cookie-switch.is-locked{cursor:default; opacity:.72}
.cookie-switch-track{
  position:relative;
  width:48px;
  height:28px;
  border-radius:999px;
  background:#d5dde8;
  transition:background .25s ease;
}
.cookie-switch.is-on .cookie-switch-track{background:var(--blue)}
.cookie-switch-knob{
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 8px rgba(17,24,39,.18);
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.cookie-switch.is-on .cookie-switch-knob{transform:translateX(20px)}
.cookie-modal-links{display:flex; flex-wrap:wrap; gap:8px 16px; margin:14px 0 4px !important}
.cookie-modal-body.can-scroll{
  -webkit-mask-image:linear-gradient(to bottom, #000 0, #000 calc(100% - 28px), transparent);
  mask-image:linear-gradient(to bottom, #000 0, #000 calc(100% - 28px), transparent);
}
.cookie-modal-actions{
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
  margin:0 -26px 0;
  padding:14px 26px 18px;
  border-top:1px solid var(--line);
  background:#f4f8ff;
}
.cookie-modal-buttons{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.form-privacy{margin:0; color:#b7c2d0; font-size:13px; line-height:1.6}
.form-privacy a{color:#d7e6ff}

.footer-main{
  grid-template-columns:minmax(220px, 1.25fr) minmax(120px, .5fr) minmax(160px, .65fr) minmax(180px, .72fr);
  gap:clamp(28px, 4vw, 72px);
}
.footer-text-btn{
  appearance:none;
  margin:0;
  padding:0;
  border:0;
  background:none;
  color:#1d2735;
  font-weight:600;
  font-size:inherit;
  line-height:inherit;
  text-align:left;
  cursor:pointer;
  transition:color .2s ease, transform .2s ease;
}
.footer-text-btn:hover{color:var(--blue); transform:translateX(3px)}
.footer-column a[aria-current="page"]{color:var(--blue)}
.cookie-noscript{margin:12px 0 0; color:#738095; font-size:12px; line-height:1.5}

.cookie-sr{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.cookie-banner :focus-visible,
.cookie-modal :focus-visible,
.footer-text-btn:focus-visible,
.form-privacy a:focus-visible{
  outline:2px solid var(--blue-dark);
  outline-offset:3px;
}

@media (max-width:980px){
  .footer-main{grid-template-columns:1fr 1fr; gap:42px 28px}
  .footer-contact,
  .footer-legal{grid-column:auto}
}
@media (max-width:720px){
  .cookie-modal{place-items:end center; padding:8px}
  .cookie-modal-card{max-height:calc(100dvh - 16px); border-radius:22px; padding:20px 16px 0}
  .cookie-modal-card h2{font-size:28px; margin-bottom:8px}
  .cookie-modal-body{padding-bottom:4px}
  #cookie-modal-lead,
  .cookie-option p{font-size:14px; line-height:1.5}
  .cookie-modal-actions{margin-left:-16px; margin-right:-16px; padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .cookie-option{margin-top:10px; padding:12px 14px}
  .cookie-option-top{align-items:flex-start}
  .cookie-modal-buttons{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .cookie-modal-buttons .btn-primary{grid-column:1 / -1}
}
@media (max-width:640px){
  .cookie-banner{max-height:min(52dvh, 380px); overflow:auto; border-radius:22px}
  .cookie-banner-inner{flex-direction:column; align-items:stretch; gap:16px; padding:16px}
  .cookie-banner-actions{display:grid; grid-template-columns:1fr 1fr}
  .cookie-banner .btn{width:100%; min-height:48px}
  .cookie-modal .btn{min-height:48px}
  .cookie-banner .btn-primary{grid-column:1 / -1}
  .footer-main{grid-template-columns:1fr}
}
@media (max-width:380px){
  .cookie-banner .btn,
  .cookie-modal .btn{font-size:13px; padding-inline:10px}
}
.footer-legal{min-width:0}
.footer-legal a{overflow-wrap:anywhere}
@media (prefers-reduced-motion:reduce){
  .cookie-banner,
  .cookie-banner.is-visible,
  .cookie-banner.is-leaving,
  .cookie-modal,
  .cookie-modal-card,
  .cookie-switch-track,
  .cookie-switch-knob,
  .footer-text-btn{transition:none !important; animation:none !important}
  .cookie-banner,
  .cookie-banner.is-visible,
  .cookie-banner.is-leaving{transform:translate(-50%, 0)}
  .cookie-modal-card{transform:none}
}
