/* =====================================================================
   Pagine legali (Privacy, Cookie, Termini) — struttura tipo iubenda
   Usa i token di style.css
   ===================================================================== */
.legal-page { background: var(--grey); }

.lnav { background: var(--navy-deep); padding: 18px 0; position: sticky; top: 0; z-index: 20; }
.lnav__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.lnav .logo { font-size: 18px; }
.lnav__back { color: var(--muted-dark); text-decoration: none; font-size: 14px; font-weight: 700; }
.lnav__back:hover { color: var(--white); }
.lnav__back::before { content: ''; display: inline-block; width: 1em; height: 1em; margin-right: 6px; vertical-align: -0.15em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13.5 8h-11M7 3.5L2.5 8 7 12.5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13.5 8h-11M7 3.5L2.5 8 7 12.5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }

.lhero { background: var(--navy-deep) var(--grid) center; color: var(--white); padding: 64px 0 120px; }
.lhero .eyebrow { color: var(--sky); margin-bottom: 14px; }
.lhero h1 { font-size: clamp(34px, 4.4vw, 56px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; margin-bottom: 16px; }
.lhero p { color: var(--muted-dark); font-size: 17px; max-width: 720px; }
.ltabs { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 28px; }
.ltabs a { text-decoration: none; font-size: 14px; font-weight: 700; padding: 9px 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.2); color: var(--muted-dark); }
.ltabs a:hover { color: var(--white); border-color: rgba(255,255,255,.5); }
.ltabs a[aria-current="page"] { background: var(--white); color: var(--navy); border-color: var(--white); }

.ldoc { max-width: 960px; margin: -72px auto 0; position: relative; padding-bottom: 96px; }
.lcard {
  background: var(--white); border: 1px solid var(--line); border-radius: 20px; padding: 48px 56px;
  box-shadow: 0 1px 2px rgba(11,37,69,.04), 0 30px 60px -40px rgba(11,37,69,.35);
}
.lcard + .lcard { margin-top: 24px; }
.lcard > h2 { font-size: 26px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 8px; }
.lcard > .lsub { color: var(--muted); margin-bottom: 28px; }

/* riassunto: finalità e servizi */
.lsummary { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lpurpose { border: 1px solid var(--line); border-radius: 14px; padding: 22px 22px 20px; display: grid; grid-template-columns: 44px 1fr; gap: 4px 16px; align-content: start; }
.lpurpose__icon { grid-row: span 3; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--ice); color: var(--blue); }
.lpurpose__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.lpurpose h3 { font-size: 16px; font-weight: 700; line-height: 1.3; }
.lpurpose__svc { font-size: 14px; font-weight: 700; color: var(--navy); }
.lpurpose__data { font-size: 13px; color: var(--muted); line-height: 1.5; }

.lcontact { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lcontact > div { background: var(--grey); border-radius: 14px; padding: 22px 24px; }
.lcontact b { display: block; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.lcontact p { font-size: 15px; line-height: 1.6; }
.lcontact a { color: var(--blue); }

/* testo della policy */
.ltext h2 { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; margin: 48px 0 16px; padding-top: 32px; border-top: 1px solid var(--line); }
.ltext h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.ltext h3 { font-size: 18px; font-weight: 700; margin: 28px 0 10px; }
.ltext p, .ltext li { font-size: 16px; line-height: 1.75; color: #34465C; }
.ltext p + p { margin-top: 12px; }
.ltext ul { list-style: disc; padding-left: 22px; margin: 10px 0; }
.ltext ol { list-style: decimal; padding-left: 22px; margin: 10px 0; }
.ltext li + li { margin-top: 6px; }
.ltext a { color: var(--blue); }
.ltext strong { color: var(--navy); }

/* dettagli servizi: fisarmonica */
.lacc { display: grid; gap: 10px; margin-top: 16px; }
.lacc details { border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.lacc details[open] { border-color: var(--blue); }
.lacc summary { list-style: none; cursor: pointer; padding: 18px 56px 18px 22px; position: relative; font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--navy); }
.lacc summary::-webkit-details-marker { display: none; }
.lacc summary::after { content: '+'; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--ice); color: var(--blue); font-weight: 600; }
.lacc details[open] summary::after { content: '–'; background: var(--blue); color: var(--white); }
.lacc summary small { display: block; font-family: var(--font-body); font-weight: 400; font-size: 13px; color: var(--muted); margin-top: 2px; }
.lacc .lacc__body { padding: 0 22px 20px; }
.lacc .lacc__body p, .lacc .lacc__body li { font-size: 15px; }

.lfacts { display: grid; grid-template-columns: 170px 1fr; gap: 8px 16px; margin: 12px 0 4px; font-size: 14px; }
.lfacts dt { font-weight: 700; color: var(--navy); }
.lfacts dd { margin: 0; color: #34465C; }

.ltable { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 14px; }
.ltable th, .ltable td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.ltable th { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); background: var(--grey); }

.lnote { background: #FFF8E1; border: 1px solid #F3E2A6; border-radius: 12px; padding: 16px 20px; font-size: 14px; color: #5B4A12; margin: 16px 0; }
.lbox { background: var(--ice); border-radius: 12px; padding: 18px 22px; margin: 16px 0; }
.lbox p { font-size: 15px; }

.lmeta { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }

.lfooter { background: var(--navy-deep); color: var(--muted-dark); padding: 32px 0; font-size: 13px; }
.lfooter .container { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.lfooter nav { display: flex; gap: 20px; }
.lfooter a { color: var(--muted-dark); text-decoration: none; font-weight: 700; }
.lfooter a:hover { color: var(--white); }

@media (max-width: 720px) {
  .lcard { padding: 32px 22px; border-radius: 16px; }
  .lsummary, .lcontact { grid-template-columns: 1fr; }
  .lfacts { grid-template-columns: 1fr; gap: 2px; }
  .lfacts dd { margin-bottom: 10px; }
  .ltable { display: block; overflow-x: auto; }
  .lhero { padding: 48px 0 104px; }
}
