/* =========================================================
   GymCorex – Privacy page styles
   CSS dedicato alla singola pagina legale.
   Nota: il file NON modifica il layout shared dell'header.
========================================================= */
body.legal-page--privacy{
  --legal-accent:#0f766e;
  --legal-accent-2:#0ea5e9;
  --legal-accent-strong:#115e59;
  --legal-soft-1:rgba(15,118,110,.10);
  --legal-soft-2:rgba(14,165,233,.10);
  --legal-card-border:rgba(226,232,240,.98);
  --legal-card-shadow:0 34px 90px -58px rgba(15,23,42,.42);
  --legal-surface:rgba(255,255,255,.94);
  --legal-muted:#64748b;
  --legal-body:#334155;
  --legal-head:#0f172a;
}

/* Manteniamo il body neutro così l'header shared resta identico alla landing */
body.legal-page{
  background:#ffffff;
  color:var(--legal-head);
}

/* Tutto il layout specifico è confinato al contenuto legale */
body.legal-page .legal-main{
  display:block;
  background:
    radial-gradient(900px 420px at 0% 0%, var(--legal-soft-1), transparent 58%),
    radial-gradient(880px 440px at 100% 0%, var(--legal-soft-2), transparent 58%),
    linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

body.legal-page .legal-main .container{
  max-width:1120px;
  margin:0 auto;
  padding:0 24px;
}

body.legal-page .legal-main .section{
  padding:56px 0 76px;
}

body.legal-page .legal-main .section--tint{
  position:relative;
  isolation:isolate;
}

body.legal-page .legal-main .section--tint::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:360px;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(600px 280px at 12% 0%, var(--legal-soft-1), transparent 72%),
    radial-gradient(620px 300px at 88% 0%, var(--legal-soft-2), transparent 72%);
}

body.legal-page .legal-main .faint::before{opacity:.9}
body.legal-page .legal-main .stack-24 > * + *{margin-top:24px}
body.legal-page .legal-main .legal-shell{display:block}

body.legal-page .legal-main .card{
  border:1px solid var(--legal-card-border);
  border-radius:28px;
  background:var(--legal-surface);
  box-shadow:var(--legal-card-shadow);
  padding:clamp(28px, 3vw, 42px);
  backdrop-filter:blur(8px);
}

body.legal-page .legal-main .legal-card{
  position:relative;
  overflow:hidden;
  padding-top:clamp(34px, 4vw, 46px);
}

body.legal-page .legal-main .legal-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:8px;
  background:linear-gradient(90deg, var(--legal-accent), var(--legal-accent-2));
  box-shadow:0 10px 30px -16px rgba(15,118,110,.16);
}

body.legal-page .legal-main .prose{
  max-width:none;
  overflow-wrap:anywhere;
}

body.legal-page .legal-main .prose > :first-child{margin-top:0}
body.legal-page .legal-main .prose > :last-child{margin-bottom:0}

body.legal-page .legal-main .prose h1{
  margin:0 0 10px;
  color:#0b1220;
  font-size:clamp(2rem, 4vw, 3.1rem);
  line-height:1.05;
  letter-spacing:-.03em;
}

body.legal-page .legal-main .prose .micro{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 26px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.28);
  background:linear-gradient(180deg, #ffffff, rgba(248,250,252,.94));
  color:var(--legal-muted);
  font-size:.82rem;
  font-weight:700;
  line-height:1.2;
}

body.legal-page .legal-main .prose .micro::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--legal-accent), var(--legal-accent-2));
  box-shadow:0 0 0 4px rgba(15,118,110,.10);
  flex:0 0 auto;
}

body.legal-page .legal-main .prose p,
body.legal-page .legal-main .prose ul,
body.legal-page .legal-main .prose ol{
  margin:0 0 1.05rem;
  color:var(--legal-body);
  font-size:1rem;
  line-height:1.82;
}

body.legal-page .legal-main .prose strong{
  color:var(--legal-head);
  font-weight:700;
}

body.legal-page .legal-main .prose a{
  color:var(--legal-accent);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  text-decoration-color:rgba(15,23,42,.24);
  word-break:break-word;
  transition:color .16s ease, text-decoration-color .16s ease;
}

body.legal-page .legal-main .prose a:hover{
  color:var(--legal-accent-2);
  text-decoration-color:currentColor;
}

body.legal-page .legal-main .prose h2{
  margin:2.45rem 0 1rem;
  padding-top:1.35rem;
  border-top:1px solid rgba(226,232,240,.96);
  color:var(--legal-head);
  font-size:clamp(1.38rem, 2.2vw, 1.78rem);
  line-height:1.25;
  letter-spacing:-.02em;
}

body.legal-page .legal-main .prose h3{
  margin:1.75rem 0 .75rem;
  color:var(--legal-accent-strong);
  font-size:1.1rem;
  line-height:1.45;
  letter-spacing:-.01em;
}

body.legal-page .legal-main .prose ul,
body.legal-page .legal-main .prose ol{
  padding-left:1.35rem;
}

body.legal-page .legal-main .prose li{
  margin:.42rem 0;
}

body.legal-page .legal-main .prose li::marker{
  color:var(--legal-accent);
}

body.legal-page .legal-main .prose blockquote{
  margin:1.5rem 0;
  padding:1rem 1.2rem;
  border-left:4px solid var(--legal-accent);
  border-radius:0 16px 16px 0;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.96));
  color:var(--legal-body);
}

body.legal-page .legal-main .prose hr{
  border:0;
  border-top:1px solid rgba(226,232,240,.96);
  margin:2rem 0;
}

body.legal-page .legal-main .prose code{
  padding:.12rem .42rem;
  border-radius:.45rem;
  background:#f8fafc;
  color:#0f172a;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:.92em;
}

body.legal-page .legal-main .prose :target{
  scroll-margin-top:112px;
}

body.legal-page .footer{
  margin-top:0;
  border-top:1px solid rgba(226,232,240,.96);
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
}

body.legal-page .footer__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding:18px 0 26px;
}

body.legal-page .row{
  display:flex;
  align-items:center;
}

body.legal-page .gap-16{gap:16px}

body.legal-page .link{
  color:#475569;
  text-decoration:none;
  font-weight:600;
  transition:color .16s ease;
}

body.legal-page .link:hover{
  color:var(--legal-accent);
}

body.legal-page .reveal{
  opacity:1 !important;
  transform:none !important;
}

body.legal-page ::selection{
  background:rgba(15,118,110,.10);
  color:#0f172a;
}

@media (max-width:991px){
  body.legal-page .legal-main .section{padding:44px 0 60px}
  body.legal-page .legal-main .card{border-radius:24px}
}

@media (max-width:767px){
  body.legal-page .legal-main .container{padding:0 18px}

  body.legal-page .legal-main .section{padding:34px 0 46px}

  body.legal-page .legal-main .card{
    padding:24px 18px 22px;
    border-radius:22px;
  }

  body.legal-page .legal-main .legal-card{
    padding-top:30px;
  }

  body.legal-page .legal-main .prose h1{
    font-size:clamp(1.7rem, 9vw, 2.3rem);
  }

  body.legal-page .legal-main .prose h2{
    margin:2rem 0 .85rem;
    padding-top:1.05rem;
    font-size:1.35rem;
  }

  body.legal-page .legal-main .prose h3{
    margin:1.45rem 0 .65rem;
  }

  body.legal-page .footer__inner{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (prefers-reduced-motion: reduce){
  body.legal-page *{
    scroll-behavior:auto;
  }
}
