.site-footer { background:#211127; color:#fff; padding-top:70px; }
    .footer-grid { display:grid; grid-template-columns:1.25fr .7fr .85fr 1fr; gap:45px; padding-bottom:45px; }
    .footer-brand { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
    .footer-brand img { width:72px; height:72px; border-radius:50%; background:#fff; padding:4px; }
    .footer-brand strong { font-size:15px; line-height:1.6; }
    .footer-about { color:rgba(255,255,255,.65); font-size:13px; }
    .footer-title { font-size:15px; margin-bottom:18px; }
    .footer-links { display:grid; gap:10px; color:rgba(255,255,255,.68); font-size:13px; }
    .footer-links a:hover { color:#fff; }
    .contact-line { display:flex; gap:10px; align-items:flex-start; color:rgba(255,255,255,.7); font-size:12px; margin-bottom:12px; }
    .contact-line svg { flex:none; margin-top:5px; }
    .footer-bottom { border-top:1px solid rgba(255,255,255,.10); min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:rgba(255,255,255,.5); font-size:12px; }
    .footer-bottom a { color:inherit; }
    .footer-bottom a:hover { color:#fff; }
    .footer-policies { display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; }
    .footer-policy-link { border:0; padding:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
    .footer-policy-link:hover,
    .footer-policy-link:focus-visible { color:#fff; }
    .socials { display:flex; gap:9px; }
    .socials a { width:36px; height:36px; border-radius:10px; background:rgba(255,255,255,.08); display:grid; place-items:center; }
    .socials img { display:block; width:18px; height:18px; filter:brightness(0) invert(1); }
    .socials a:hover { background:var(--purple); }

    .back-to-top { position:fixed; left:20px; bottom:20px; width:46px; height:46px; border:0; border-radius:14px; background:var(--purple); color:#fff; cursor:pointer; box-shadow:0 14px 30px rgba(146,27,205,.28); opacity:0; visibility:hidden; transform:translateY(10px); transition:.25s; z-index:40; }
    .back-to-top.show { opacity:1; visibility:visible; transform:none; }
    .site-policy-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; background:rgba(30,13,36,.62); backdrop-filter:blur(8px); }
    .site-policy-modal[hidden] { display:none; }
    .site-policy-modal__panel { position:relative; width:min(760px,100%); max-height:min(86vh,760px); overflow:auto; border-radius:24px; background:#fff; color:#24122a; box-shadow:0 30px 100px rgba(25,10,31,.30); outline:0; }
    .site-policy-modal__close { position:sticky; top:16px; float:left; z-index:2; width:42px; height:42px; margin:16px 16px 0; border:0; border-radius:13px; background:#f6edf9; color:#4b185b; font-size:24px; line-height:1; cursor:pointer; }
    .site-policy-modal__close:hover,
    .site-policy-modal__close:focus-visible { background:#ead7f7; }
    .site-policy-content { display:none; padding:38px 38px 8px; clear:both; }
    .site-policy-content.is-active { display:block; }
    .site-policy-content__eyebrow { margin:0 0 8px; color:var(--purple); font-size:12px; font-weight:700; }
    .site-policy-content h2 { margin:0 0 16px; font-size:clamp(24px,3vw,34px); color:#211127; }
    .site-policy-content h3 { margin:22px 0 8px; font-size:15px; color:#371842; }
    .site-policy-content p { margin:0 0 12px; color:#64556b; font-size:14px; line-height:1.9; }
    .site-policy-modal__note { margin:10px 38px 34px; padding-top:16px; border-top:1px solid #eee3f2; color:#87778d; font-size:12px; }
    body.site-policy-modal-open { overflow:hidden; }
@media (max-width: 1050px) {
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > div:last-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; justify-content: center; text-align: center; padding: 20px 0; }
  .site-policy-modal { padding:10px; }
  .site-policy-modal__panel { border-radius:20px; }
  .site-policy-content { padding:30px 22px 6px; }
  .site-policy-modal__note { margin:8px 22px 28px; }
}

.footer-menu { padding: 0; margin: 0; list-style: none; }
.footer-menu li { margin: 0; }