/* legal.css - pagine policy (privacy / cookie) */

:root{
  --ff-legal-max: 1180px;
  --ff-legal-text: 860px;
  --ff-legal-outline: rgba(33,34,38,.08);
  --ff-legal-shadow: 0 18px 44px rgba(18,19,23,.07);
}

body.ff-legal-page{
  background:
    radial-gradient(980px 520px at 14% 14%, rgba(96,165,250,.08), transparent 64%),
    radial-gradient(920px 460px at 84% 10%, rgba(30,58,138,.055), transparent 66%),
    linear-gradient(180deg, #ffffff 0%, #f7f9ff 42%, #ffffff 100%);
}

body.ff-legal-page section{ min-height: unset; }

.ff-legal-main{
  padding-top: 0;
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: clip;
}

.ff-legal-main::before{
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: clamp(220px, 28vw, 360px);
  background:
    radial-gradient(1200px 260px at 50% 100%, rgba(96,165,250,.14), rgba(96,165,250,0) 72%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(230,239,255,.55) 38%, rgba(220,233,255,.92) 100%);
  pointer-events: none;
  z-index: -1;
}

.ff-legal-shell{
  width: min(var(--ff-legal-max), calc(100% - 32px));
  margin-inline: auto;
  padding: 140px 0 clamp(120px, 13vw, 190px);
}

.ff-legal-hero{
  text-align:center;
  max-width: 980px;
  margin: 0 auto;
}

.ff-legal-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(33,34,38,.08);
  background: rgba(255,255,255,.86);
  box-shadow: 0 10px 24px rgba(18,19,23,.05);
  font-size: 12px;
  font-weight: 560;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(33,34,38,.72);
}

.ff-legal-title{
  margin: 16px 0 0;
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.05;
  font-size: clamp(34px, 4.8vw, 70px);
  color: var(--theme-surface-on-surface);
}

.ff-legal-sub{
  margin: 18px auto 0;
  max-width: 78ch;
  font-size: clamp(16px, 1.9vw, 22px);
  line-height: 1.45;
  color: var(--theme-surface-on-surface-variant);
}

.ff-legal-meta{
  margin: 18px auto 0;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap: 8px;
}

.ff-legal-badge{
  display:inline-flex;
  align-items:center;
  min-height: 30px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid rgba(33,34,38,.08);
  background: rgba(255,255,255,.92);
  color: rgba(33,34,38,.78);
  font-size: 13px;
  font-weight: 540;
  text-decoration:none;
}

.ff-legal-grid{
  margin-top: clamp(30px, 3.4vw, 52px);
  display:grid;
  grid-template-columns: 320px minmax(0,1fr);
  gap: 18px;
  align-items:start;
}

.ff-legal-side{
  position: sticky;
  top: calc(var(--ff-header-h) + 12px);
  border-radius: 20px;
  border: 1px solid var(--ff-legal-outline);
  background: rgba(255,255,255,.92);
  box-shadow: var(--ff-legal-shadow);
  padding: 14px;
  display:grid;
  gap: 14px;
}

.ff-legal-side h2{
  margin:0;
  font-size: 17px;
  letter-spacing:-.01em;
  font-weight: 620;
}

.ff-legal-side nav{
  display:grid;
  gap: 6px;
}

.ff-legal-side a{
  color: var(--theme-surface-on-surface-variant);
  text-decoration:none;
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1.35;
  transition: background .14s ease, color .14s ease;
}

.ff-legal-side a:hover,
.ff-legal-side a:focus-visible{
  background: rgba(96,165,250,.12);
  color: #1e3a8a;
  outline:none;
}

.ff-legal-side__note{
  border-radius: 14px;
  border: 1px solid rgba(96,165,250,.18);
  background: linear-gradient(180deg, rgba(223,236,255,.72), rgba(255,255,255,.9));
  padding: 12px;
  font-size: 13.5px;
  line-height: 1.5;
  color: rgba(33,34,38,.75);
}

.ff-legal-article{
  border-radius: 24px;
  border: 1px solid var(--ff-legal-outline);
  background: rgba(255,255,255,.94);
  box-shadow: var(--ff-legal-shadow);
  padding: clamp(18px, 2.4vw, 28px);
}

.ff-legal-article > *:first-child{ margin-top: 0; }

.ff-legal-article h2{
  margin: 24px 0 10px;
  font-size: clamp(21px, 2.2vw, 30px);
  line-height: 1.15;
  letter-spacing: -.02em;
  font-weight: 600;
  color: var(--theme-surface-on-surface);
  scroll-margin-top: calc(var(--ff-header-h) + 18px);
}

.ff-legal-article h3{
  margin: 16px 0 8px;
  font-size: 17px;
  line-height: 1.25;
  letter-spacing: -.01em;
  font-weight: 620;
  color: var(--theme-surface-on-surface);
}

.ff-legal-article p,
.ff-legal-article li{
  margin: 0;
  font-size: 15.5px;
  line-height: 1.68;
  color: rgba(33,34,38,.84);
}

.ff-legal-article p + p{ margin-top: 10px; }
.ff-legal-article ul,
.ff-legal-article ol{
  margin: 10px 0 0;
  padding-left: 18px;
  display:grid;
  gap: 8px;
}

.ff-legal-article a{
  color: #1e3a8a;
  text-decoration: none;
  border-bottom: 1px solid rgba(30,58,138,.22);
}
.ff-legal-article a:hover,
.ff-legal-article a:focus-visible{
  color:#2563eb;
  border-bottom-color: rgba(37,99,235,.34);
  outline:none;
}

.ff-legal-divider{
  height: 1px;
  margin: 22px 0;
  background: linear-gradient(90deg, rgba(33,34,38,.12), rgba(33,34,38,0));
}

.ff-legal-box{
  margin-top: 12px;
  border-radius: 18px;
  border: 1px solid rgba(96,165,250,.2);
  background:
    linear-gradient(180deg, rgba(223,236,255,.70), rgba(255,255,255,.92)),
    radial-gradient(110% 90% at 14% 12%, rgba(96,165,250,.15), rgba(96,165,250,0) 72%);
  padding: 14px;
}

.ff-legal-box h3{ margin-top: 0; }

.ff-legal-table{
  margin-top: 10px;
  display:grid;
  gap: 10px;
}

.ff-legal-row{
  border-radius: 14px;
  border: 1px solid rgba(33,34,38,.08);
  background: rgba(255,255,255,.92);
  padding: 12px;
  display:grid;
  gap: 6px;
}

.ff-legal-row__head{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap: 8px;
  align-items:center;
}

.ff-legal-row__title{
  font-size: 14.5px;
  line-height: 1.2;
  font-weight: 620;
  color: rgba(18,19,23,.92);
}

.ff-legal-row__tag{
  display:inline-flex;
  align-items:center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(33,34,38,.08);
  background: rgba(255,255,255,.95);
  font-size: 12px;
  font-weight: 600;
  color: rgba(33,34,38,.72);
}

.ff-legal-footerSpace{
  height: clamp(44px, 6vw, 84px);
}

@media (max-width: 980px){
  .ff-legal-grid{
    grid-template-columns: 1fr;
  }
  .ff-legal-side{
    position: static;
  }
}

@media (max-width: 760px){
  .ff-legal-shell{
    width: min(var(--ff-legal-max), calc(100% - 22px));
    padding-top: 120px;
    padding-bottom: 120px;
  }
  .ff-legal-main::before{
    height: clamp(180px, 34vw, 260px);
  }
  .ff-legal-title{
    font-size: clamp(28px, 8vw, 46px);
  }
  .ff-legal-article{
    border-radius: 18px;
    padding: 16px;
  }
  .ff-legal-side{
    border-radius: 16px;
    padding: 12px;
  }
}
