/* PrimaPosizione.ai — componenti specifici (info). Usa i token di styles.css.
   Pagine: Prenota una call, Contatti, Chi siamo, Guida, Dati societari, Privacy, Cookie, Grazie, 404.
   Tutti i selettori sono limitati alle classi di pagina o a classi nuove del gruppo. */

/* =====================================================================
   Elementi condivisi del gruppo
   ===================================================================== */
:is(.page-prenota, .page-contatti, .page-chi-siamo, .page-guida) .inner-hero-grid .inner-lead { font-weight: 500; color: var(--ink); }

/* Icona circolare "feature" (righe della call e dei contatti) */
:is(.booking-features, .contact-copy) .feature-icon .icon { transition: transform .5s var(--spring); }
:is(.booking-features li, .contact-expectation, .direct-contact):hover .feature-icon { transform: rotate(-12deg) scale(1.08); background: var(--orange); border-color: var(--orange); color: #fff; }
:is(.booking-features li, .contact-expectation, .direct-contact):hover .feature-icon.is-teal { background: var(--teal); border-color: var(--teal); }
:is(.booking-features li, .contact-expectation, .direct-contact):hover .feature-icon.is-blue { background: #3b82f6; border-color: #3b82f6; }
:is(.booking-features li, .contact-expectation, .direct-contact):hover .feature-icon .icon { animation: aura-wiggle .9s var(--ease) 1; }

/* Indice laterale in scheda di vetro (guida e informative) */
.article-sidebar nav, .legal-index {
  border-radius: 1.5rem; border: 1px solid transparent;
  background: linear-gradient(var(--card), var(--card)) padding-box, linear-gradient(to bottom, var(--card-edge), transparent 80%) border-box;
  -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); box-shadow: var(--shadow-lg);
}
.article-sidebar ol, .legal-index ol, .legal-docs { display: grid; gap: 2px; margin: 14px 0 0; padding: 0; list-style: none; }
.article-sidebar ol a, .legal-index ol a, .legal-docs a {
  display: flex; align-items: baseline; gap: 12px; padding: 9px 12px; border-radius: 12px;
  color: var(--ink-3); font-size: 14px; line-height: 1.35; text-decoration: none;
  transition: background-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.article-sidebar ol a b, .legal-index ol a b { flex: none; font-size: 10px; font-weight: 700; letter-spacing: .14em; color: var(--teal-ink); transition: color .3s; }
.article-sidebar ol a:hover, .legal-index ol a:hover, .legal-docs a:hover, .article-sidebar ol a:focus-visible, .legal-index ol a:focus-visible { background: var(--nav-hover); color: var(--ink); transform: translateX(3px); }
.article-sidebar ol a:hover b, .legal-index ol a:hover b { color: var(--orange-text); }
.legal-docs a { align-items: center; }
.legal-docs a[aria-current="page"] { background: var(--nav-active); color: var(--ink); font-weight: 500; box-shadow: inset 0 0 0 1px var(--line-soft); }
.legal-docs a:hover .chip-icon { animation: aura-wiggle .8s var(--ease); }

/* Link esterno a una fonte */
.source-link {
  display: inline-flex; align-items: center; gap: 10px; max-width: 100%;
  padding: 6px 6px 6px 14px; border-radius: 9999px; border: 1px solid var(--line);
  background: var(--card); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: var(--shadow-sm);
  color: var(--ink); font-size: 13px; line-height: 1.3; font-weight: 500; text-decoration: none;
  transition: transform .35s var(--ease), border-color .3s, color .3s, box-shadow .35s var(--ease);
}
.source-link .i-swap { box-sizing: border-box; width: 26px; height: 26px; padding: 6px; border-radius: 50%; background: var(--bg-soft); border: 1px solid var(--line); color: var(--muted-2); transition: background-color .3s, color .3s, border-color .3s; }
.source-link:hover, .source-link:focus-visible { transform: translateY(-2px); border-color: rgba(255, 145, 70, .6); color: var(--accent-ink); box-shadow: var(--glow-orange); }
.source-link:hover .i-swap, .source-link:focus-visible .i-swap { background: var(--orange); border-color: var(--orange); color: #fff; }

/* =====================================================================
   PRENOTA UNA CALL — hero + Discovery Call
   ===================================================================== */
.booking-path { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.booking-path li {
  display: inline-flex; align-items: center; gap: 10px; padding: 4px 16px 4px 4px; border-radius: 9999px;
  background: var(--glass); border: 1px solid var(--line-soft); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: var(--shadow-sm);
  font-size: 13px; line-height: 1.2; font-weight: 500; color: var(--ink-2); transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.booking-path .chip { width: 32px; height: 32px; }
.booking-path .chip .icon { width: 16px; height: 16px; }
.booking-path li:hover { transform: translateY(-2px); box-shadow: var(--glow-teal); }
.booking-path li:hover .chip { transform: rotate(-10deg) scale(1.12); }
.booking-path li:hover .chip .icon { animation: aura-wiggle .9s var(--ease) 1; }
@media (min-width: 768px) {
  .page-prenota .inner-hero-grid > div:last-child { width: 44%; }
  .booking-path { justify-content: flex-end; }
}

.page-prenota .booking-shell { padding-bottom: 64px; }
.page-prenota .booking-call { gap: 40px; }
@media (min-width: 768px) and (max-width: 1023px) { .page-prenota .booking-call { flex-direction: column; } }
@media (min-width: 1024px) {
  .page-prenota .booking-call { gap: 56px; padding: 56px; }
  .page-prenota .booking-call > .booking-aside { flex-grow: 1.15; }
}
.booking-call::before { content: ''; position: absolute; left: -12%; bottom: -40%; width: 60%; height: 90%; background: radial-gradient(closest-side, rgba(255, 145, 70, .12), transparent), radial-gradient(closest-side at 70% 40%, rgba(70, 212, 198, .12), transparent); filter: blur(30px); pointer-events: none; }
.booking-call > * { position: relative; }
.booking-aside { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.booking-aside .section-label { margin-bottom: 24px; font-size: 10px; font-weight: 700; }
.booking-aside h2 { margin-bottom: 24px; font-size: 2.25rem; line-height: 1.05; }
@media (min-width: 768px) { .booking-aside h2 { font-size: 3rem; line-height: 1; } }
.booking-aside > p:not(.booking-clarity) { max-width: 34rem; margin-bottom: 32px; font-size: 18px; line-height: 1.625; color: var(--muted); }
.page-prenota .booking-features { gap: 20px; margin: 0 0 32px; }
.page-prenota .booking-features li { align-items: center; gap: 16px; }
.page-prenota .booking-features li::before { content: none; display: none; }
.booking-features strong { display: block; font-size: 15px; font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.booking-features small { display: block; font-size: 12px; color: var(--muted-2); }
.booking-clarity { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 24px; padding: 16px 18px; border-radius: 1rem; background: var(--bg-soft); border: 1px solid var(--line); font-size: 13px; line-height: 1.6; color: var(--muted); }
.booking-clarity .chip-icon { margin-top: 1px; }
.page-prenota .booking-card { display: flex; flex-direction: column; min-height: 0; }
.page-prenota .booking-fallback { margin-block: auto; }
@media (max-width: 479px) {
  .page-prenota .booking-call { padding: 24px 16px; }
  .page-prenota .booking-card { padding: 22px 16px; }
  .page-prenota .booking-review dl > div { grid-template-columns: 1fr; gap: 2px; }
  .page-prenota .booking-steps { gap: 4px; }
  .page-prenota .booking-steps li { padding-right: 8px; font-size: 10.5px; }
}

/* =====================================================================
   CONTATTI — scheda della call con canali
   ===================================================================== */
.page-contatti .contact-page { padding-top: 32px; padding-bottom: 72px; }
.page-contatti .contact-layout { gap: 40px; }
@media (min-width: 768px) and (max-width: 1023px) { .page-contatti .contact-layout { flex-direction: column; } }
@media (min-width: 1024px) { .page-contatti .contact-layout { gap: 56px; padding: 56px; } }
.contact-layout::before { content: ''; position: absolute; right: -14%; top: -30%; width: 55%; height: 80%; background: radial-gradient(closest-side, rgba(70, 212, 198, .13), transparent), radial-gradient(closest-side at 30% 60%, rgba(255, 145, 70, .12), transparent); filter: blur(30px); pointer-events: none; }
.contact-layout > * { position: relative; }
.contact-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.contact-copy .eyebrow { margin-bottom: 24px; }
.contact-copy h1 { margin-bottom: 24px; font-size: 2.5rem; line-height: 1.02; font-weight: 500; letter-spacing: -.025em; }
@media (min-width: 640px) { .contact-copy h1 { font-size: 3.25rem; } }
@media (min-width: 1024px) { .contact-copy h1 { font-size: 4rem; line-height: 1; } }
.contact-copy > p { max-width: 32rem; margin-bottom: 32px; font-size: 18px; line-height: 1.625; color: var(--muted); }
.contact-expectation, .direct-contact { display: flex; align-items: center; gap: 16px; max-width: 30rem; }
.contact-expectation + .direct-contact { margin-top: 18px; }
.contact-expectation p, .direct-contact p { font-size: 15px; line-height: 1.5; font-weight: 500; color: var(--ink-2); }

.first-contact-card { position: relative; display: flex; flex-direction: column; padding: 28px; border-radius: 1rem; background: var(--solid); border: 1px solid var(--line); box-shadow: var(--shadow-xl); }
:root[data-theme="dark"] .first-contact-card { background: rgba(31, 41, 55, .5); border-color: #374151; }
@media (min-width: 768px) { .first-contact-card { padding: 32px; } }
.first-contact-card .contact-card-symbol { margin-bottom: 20px; }
.first-contact-card h2 { margin-bottom: 12px; font-size: 1.625rem; line-height: 1.12; }
@media (min-width: 768px) { .first-contact-card h2 { font-size: 1.875rem; } }
.first-contact-card > p:not(.contact-card-note) { margin-bottom: 24px; font-size: 15px; line-height: 1.6; color: var(--muted); }
.contact-channels-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.contact-channel {
  display: flex; align-items: center; gap: 14px; padding: 12px 12px 12px 12px; border-radius: 1rem;
  border: 1px solid var(--line); background: var(--bg-soft); color: var(--ink); text-decoration: none;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s, background-color .3s;
}
:root[data-theme="dark"] .contact-channel { background: rgba(17, 24, 39, .55); }
.contact-channel.is-primary { border-color: transparent; background: linear-gradient(var(--solid), var(--solid)) padding-box, var(--grad) border-box; }
:root[data-theme="dark"] .contact-channel.is-primary { background: linear-gradient(#111827, #111827) padding-box, var(--grad) border-box; }
.contact-channel:hover, .contact-channel:focus-visible { transform: translateY(-3px); border-color: rgba(70, 212, 198, .55); background-color: var(--solid); box-shadow: var(--glow-teal); }
.contact-channel.is-primary:hover, .contact-channel.is-primary:focus-visible { box-shadow: var(--glow-orange); }
.channel-icon { position: relative; display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; color: var(--orange-text); background: var(--solid); border: 1px solid var(--line); box-shadow: var(--shadow-sm); transition: transform .5s var(--spring), background-color .3s, color .3s, border-color .3s; }
.channel-icon .icon { width: 20px; height: 20px; }
.channel-icon.is-chat { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--orange), var(--teal)); box-shadow: 0 6px 16px rgba(255, 145, 70, .3); }
.channel-icon.is-chat::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid rgba(255, 145, 70, .45); animation: aura-ring 2.4s var(--ease) infinite; }
.channel-icon.is-phone { color: var(--teal-ink); }
.channel-icon.is-mail { color: #3b82f6; }
.contact-channel:hover .channel-icon, .contact-channel:focus-visible .channel-icon { transform: rotate(-12deg) scale(1.08); color: #fff; background: var(--orange); border-color: var(--orange); }
.contact-channel:hover .channel-icon.is-phone, .contact-channel:focus-visible .channel-icon.is-phone { background: var(--teal); border-color: var(--teal); transform: scale(1.08); }
.contact-channel:hover .channel-icon.is-mail, .contact-channel:focus-visible .channel-icon.is-mail { background: #3b82f6; border-color: #3b82f6; }
.contact-channel:hover .channel-icon.is-phone .icon { animation: aura-ringing .8s ease-in-out infinite; }
.contact-channel:hover .channel-icon:not(.is-phone) .icon { animation: aura-wiggle .9s var(--ease) 1; }
.channel-copy { display: grid; gap: 2px; flex: 1; min-width: 0; }
.channel-copy strong { font-size: 15px; line-height: 1.3; font-weight: 600; letter-spacing: -.01em; }
.channel-copy small { font-size: 12px; line-height: 1.45; color: var(--muted-2); overflow-wrap: anywhere; }
.contact-channel .circle-arrow { background: var(--solid); }
.contact-channel .circle-arrow .icon { transition: transform .4s var(--spring); }
.contact-channel:hover .circle-arrow, .contact-channel:focus-visible .circle-arrow { color: #fff; background: var(--ink); border-color: var(--ink); transform: scale(1.06); }
.contact-channel:hover .circle-arrow .icon, .contact-channel:focus-visible .circle-arrow .icon { transform: rotate(45deg); }
:root[data-theme="dark"] .contact-channel:hover .circle-arrow { color: #0b0f19; }
.contact-card-note { margin-top: 20px; font-size: 12px; line-height: 1.55; text-align: center; color: var(--muted-2); }
.contact-card-note a { color: inherit; text-decoration-color: var(--line-2); }
.contact-card-note a:hover { color: var(--accent-ink); }
@media (max-width: 479px) {
  .page-contatti .contact-layout { padding: 24px 16px; }
  .first-contact-card { padding: 22px 16px; }
  .contact-channel { gap: 12px; padding: 12px 10px; }
  .channel-icon { width: 40px; height: 40px; }
  .contact-channel .circle-arrow { display: none; }
  .contact-copy .eyebrow { font-size: 10px; letter-spacing: .08em; }
}

/* =====================================================================
   CHI SIAMO — palco editoriale, esigenze in bento, invito finale
   ===================================================================== */
.about-manifesto { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 56px; padding-block: 80px 96px; }
.about-story { min-width: 0; }
.about-display { margin-bottom: 36px; font-size: clamp(3rem, 13.5vw, 6rem); line-height: .88; font-weight: 300; letter-spacing: -.055em; color: var(--ink); overflow-wrap: normal; }
.about-display b, .about-display .gradient-text { font-weight: 700; letter-spacing: -.05em; }
.about-story .section-label { margin-bottom: 20px; }
.about-story h2 { margin-bottom: 20px; font-size: 1.875rem; line-height: 1.12; }
.about-story h2 em { color: var(--muted); }
.about-story > p:not(.about-display) { max-width: 36rem; font-size: 18px; line-height: 1.65; color: var(--muted); }
.about-story > p + p { margin-top: 14px; }
.about-story .text-link { margin-top: 28px; }
.about-visual { position: relative; display: flex; align-items: center; justify-content: center; min-height: 460px; perspective: 1500px; }
.about-card { position: absolute; top: 0; left: 0; right: 0; z-index: 3; width: min(300px, 100%); margin-inline: auto; padding: 28px; border-radius: 1.5rem; background: rgba(255, 255, 255, .74); border: 1px solid var(--line-soft); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); box-shadow: var(--shadow-2xl); transition: translate .5s var(--ease); }
:root[data-theme="dark"] .about-card { background: rgba(17, 24, 39, .64); border-color: rgba(255, 255, 255, .1); }
.about-card:hover { translate: 0 -8px; }
.about-card .pill { margin-bottom: 18px; }
.about-card p { font-size: 20px; line-height: 1.35; font-weight: 500; letter-spacing: -.02em; color: var(--ink-2); }
.about-card p strong { display: inline-block; margin-top: 4px; font-weight: 600; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.about-brand-art { position: relative; z-index: 2; width: min(280px, 100%); aspect-ratio: 1; margin-top: 150px; transform-style: preserve-3d; transition: transform .2s ease-out; cursor: crosshair; }
.about-plate { position: absolute; inset: 6%; overflow: hidden; border-radius: 12px; background: radial-gradient(60% 55% at 62% 64%, rgba(255, 145, 70, .95), rgba(255, 145, 70, 0) 70%), radial-gradient(45% 45% at 28% 26%, rgba(70, 212, 198, .65), transparent 70%), linear-gradient(165deg, #f7ecdd, #ecd6b9); box-shadow: 0 24px 48px rgba(0, 0, 0, .35); transform: translateZ(40px); }
:root[data-theme="dark"] .about-plate { background: radial-gradient(60% 55% at 62% 64%, rgba(255, 145, 70, .9), rgba(255, 145, 70, 0) 70%), radial-gradient(45% 45% at 28% 26%, rgba(70, 212, 198, .5), transparent 70%), linear-gradient(165deg, #3a2f25, #20252c); }
.about-letter {
  position: absolute; left: 50%; top: 45%; transform: translate(-50%, -50%);
  font-size: 13rem; line-height: 1; font-weight: 700; letter-spacing: -.06em; color: #f8f3ec;
  text-shadow: 1px 1px 0 #e3d8ca, 2px 2px 0 #d8cbbb, 3px 3px 0 #cdbfad, 4px 4px 0 #c2b29e, 5px 5px 0 #b7a690, 14px 20px 28px rgba(0, 0, 0, .3);
}
.about-letter span { color: #3c7f7b; text-shadow: 1px 1px 0 #336f6b, 2px 2px 0 #2d6361, 3px 3px 0 #285857, 4px 4px 0 #234e4d, 12px 18px 24px rgba(0, 0, 0, .3); }
.about-sphere { position: absolute; left: 12%; bottom: 10%; width: 9%; height: 9%; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, #d8cfc4 60%, #a89886); box-shadow: 4px 8px 12px rgba(0, 0, 0, .3); animation: aura-bob-3 6s ease-in-out infinite; }
@media (max-width: 1023px) {
  .about-visual { flex-direction: column; min-height: 0; }
  .about-card { position: relative; }
  .about-brand-art { margin-top: -36px; }
}
@media (min-width: 640px) { .about-story h2 { font-size: 2.25rem; } }
@media (min-width: 1024px) {
  .about-manifesto { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 32px; min-height: 90vh; padding-block: 120px; }
  .about-display { font-size: min(7.25rem, calc(10vw - 10px)); }
  .about-story h2 { font-size: 2.5rem; }
  .about-visual { height: 600px; }
  .about-card { top: 40px; left: -24px; right: auto; margin: 0; }
  .about-brand-art { width: 380px; margin: 60px 0 0 90px; }
  .about-letter { font-size: 18rem; }
}

.about-principles .aura-head { margin-bottom: 64px; }
@media (min-width: 768px) { .about-principles .aura-head { margin-bottom: 80px; } }
.page-chi-siamo .about-bento article { overflow: hidden; min-height: 280px; }
@media (min-width: 768px) {
  .page-chi-siamo .about-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-chi-siamo .about-bento .is-wide { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
  .page-chi-siamo .about-bento { grid-template-columns: 1.2fr 1fr; grid-template-rows: auto auto; }
  .page-chi-siamo .about-bento .is-wide { grid-column: 1; grid-row: 1 / span 2; padding: 36px; }
  .page-chi-siamo .about-bento .is-wide h3 { font-size: 30px; }
}
.principle-art { position: relative; display: block; margin-top: auto; padding-top: 12px; }
@media (min-width: 1024px) {
  .about-bento .is-wide .art-absence { gap: 14px; padding: 28px; }
  .about-bento .is-wide .pa-row { min-height: 52px; padding-inline: 16px; }
  .about-bento .is-wide .pa-q { margin-bottom: 6px; padding: 12px 18px; font-size: 14px; }
}
.art-absence { display: grid; gap: 10px; padding: 20px; border-radius: 1.25rem; background: var(--bg-soft); border: 1px solid var(--line); }
.art-absence .pa-q { justify-self: end; max-width: 85%; padding: 9px 14px; border-radius: 16px 16px 4px 16px; background: rgba(70, 212, 198, .12); border: 1px solid rgba(70, 212, 198, .25); font-size: 13px; color: var(--ink-2); }
.art-absence .pa-row { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 8px 12px; border-radius: 10px; background: var(--solid); border: 1px solid var(--line); }
:root[data-theme="dark"] .art-absence .pa-row { background: rgba(17, 24, 39, .7); }
.art-absence .pa-row em { display: grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--line); font-size: 11px; font-style: normal; font-weight: 700; color: var(--muted); }
.art-absence .pa-row i { width: var(--w, 60%); height: 8px; border-radius: 9999px; background: var(--line-2); transition: width .7s var(--ease); }
.art-absence .pa-row.is-slot { border: 1px dashed rgba(255, 145, 70, .7); background: rgba(255, 145, 70, .06); animation: aura-blink 2.4s ease-in-out infinite; }
.art-absence .pa-row.is-slot em { background: var(--orange); color: #fff; }
.art-absence .pa-row b { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-ink); }
.about-bento article:hover .art-absence .pa-row i { width: calc(var(--w, 60%) - 12%); }
.art-rivals { display: flex; align-items: center; height: 72px; }
.art-rivals i, .art-rivals b { display: grid; place-items: center; width: 56px; height: 56px; margin-right: -14px; border-radius: 50%; border: 3px solid var(--solid); box-shadow: var(--shadow-md); transition: transform .5s var(--spring), margin .5s var(--ease); }
.art-rivals i:nth-child(1) { background: linear-gradient(135deg, #cbd5e1, #94a3b8); }
.art-rivals i:nth-child(2) { background: linear-gradient(135deg, #e2e8f0, #a8b3c4); }
.art-rivals i:nth-child(3) { background: linear-gradient(135deg, #d6dde6, #8b98aa); }
.art-rivals b { margin-left: 22px; border: 2px dashed rgba(255, 145, 70, .75); background: rgba(255, 145, 70, .08); color: var(--orange-text); box-shadow: none; animation: aura-blink 2.4s ease-in-out infinite; }
.art-rivals b .icon { width: 22px; height: 22px; }
.about-bento article:hover .art-rivals i { margin-right: -4px; }
.about-bento article:hover .art-rivals b { transform: rotate(-10deg) scale(1.1); }
.art-trend { height: 84px; }
.art-trend svg { width: 100%; height: 100%; overflow: visible; }
.art-trend path { fill: none; stroke: var(--teal); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 6 7; vector-effect: non-scaling-stroke; }
.art-trend b { position: absolute; right: -4px; top: -6px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--orange); color: #fff; font-size: 15px; font-weight: 700; box-shadow: 0 8px 20px rgba(255, 145, 70, .35); transition: transform .5s var(--spring); }
.about-bento article:hover .art-trend path { animation: info-dash 1.2s linear infinite; }
.about-bento article:hover .art-trend b { transform: rotate(-12deg) scale(1.12); }
@keyframes info-dash { to { stroke-dashoffset: -26; } }

.page-chi-siamo .about-people { position: relative; display: grid; gap: 32px; align-items: center; max-width: 72rem; width: calc(100% - 2 * var(--gutter)); margin: 32px auto 48px; padding: 36px 28px; border-radius: 1.5rem; background: var(--solid); border: 1px solid var(--line); box-shadow: var(--shadow-2xl); overflow: hidden; }
.page-chi-siamo .about-people::before { content: ''; position: absolute; right: -10%; top: -60%; width: 60%; height: 220%; background: linear-gradient(90deg, rgba(255, 145, 70, .14), rgba(70, 212, 198, .14) 50%, transparent); filter: blur(40px); transform: rotate(-22deg); pointer-events: none; }
.page-chi-siamo .about-people > * { position: relative; min-width: 0; }
.page-chi-siamo .about-people .section-label { margin-bottom: 20px; }
.page-chi-siamo .about-people h2 { font-size: 2.25rem; line-height: 1.05; }
.page-chi-siamo .about-people > div:last-child { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.page-chi-siamo .about-people > div:last-child > p:first-child { font-size: 18px; line-height: 1.6; color: var(--muted); }
.review-note { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 14px; background: var(--bg-soft); border: 1px solid var(--line); font-size: 12px; line-height: 1.45; color: var(--muted-2); }
.review-note .status-dot { background: var(--teal); }
@media (min-width: 768px) {
  .page-chi-siamo .about-people { grid-template-columns: 1fr 1fr; gap: 56px; padding: 56px; }
  .page-chi-siamo .about-people h2 { font-size: 3rem; line-height: 1.02; }
}
@media (max-width: 639px) { .page-chi-siamo .about-people .aura-button { width: 100%; } }

/* =====================================================================
   GUIDA — lettura con indice sticky
   ===================================================================== */
.article-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.article-meta .pill { max-width: 100%; white-space: normal; text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 500; }
@media (min-width: 768px) { .page-guida .inner-hero-grid > div:last-child { width: 36%; } .article-meta { justify-content: flex-end; } }

.guide-layout { display: grid; grid-template-columns: 1fr; gap: 32px; padding-top: 16px; padding-bottom: 48px; }
.article-sidebar { display: grid; gap: 20px; align-content: start; min-width: 0; }
.article-sidebar nav { padding: 22px 16px 16px; }
.article-sidebar nav .section-label { margin-left: 8px; }
.article-sidebar > .text-link { margin-left: 12px; }
.guide-layout:has(#cos-e:target) a[href="#cos-e"],
.guide-layout:has(#da-dove:target) a[href="#da-dove"],
.guide-layout:has(#seo:target) a[href="#seo"],
.guide-layout:has(#domande-fornitore:target) a[href="#domande-fornitore"],
.guide-layout:has(#valutare:target) a[href="#valutare"],
.guide-layout:has(#file-per-motori:target) a[href="#file-per-motori"] { background: var(--nav-active); color: var(--ink); font-weight: 500; }
@media (min-width: 1024px) {
  .guide-layout { grid-template-columns: 290px minmax(0, 46rem); justify-content: center; gap: 80px; align-items: start; }
  .article-sidebar { position: sticky; top: 112px; }
}
.article-body { min-width: 0; max-width: 46rem; }
.article-body > section { padding-block: 48px; border-top: 1px solid var(--line-soft); scroll-margin-top: 112px; }
.article-body > section:first-child { padding-top: 8px; border-top: 0; }
.article-number { display: inline-flex; align-items: center; gap: 12px; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--teal-ink); }
.article-number::before { content: ''; width: 28px; height: 2px; border-radius: 2px; background: var(--grad); }
.article-body h2 { max-width: 24ch; margin: 16px 0 22px; font-size: 1.75rem; line-height: 1.12; }
@media (min-width: 768px) { .article-body h2 { font-size: 2.25rem; line-height: 1.08; } }
.article-body p { max-width: 68ch; font-size: 17px; line-height: 1.75; color: var(--ink-3); }
@media (min-width: 768px) { .article-body p { font-size: 18px; } }
.article-body p + p { margin-top: 1em; }
.article-body p strong { color: var(--ink); }
.article-body p a:not(.source-link) { color: var(--accent-ink); }
.article-body section > .text-link { margin-top: 24px; }
.article-example, .article-callout { position: relative; display: flex; align-items: flex-start; gap: 16px; margin-top: 28px; padding: 24px; border-radius: 1.5rem; }
.article-example > div, .article-callout > div { min-width: 0; }
.article-example { border: 1px solid transparent; background: linear-gradient(var(--card-strong), var(--card-strong)) padding-box, linear-gradient(to bottom, rgba(255, 145, 70, .45), transparent 85%) border-box; -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); box-shadow: var(--shadow-xl); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.article-example::after { content: '“'; position: absolute; top: 4px; right: 20px; font-size: 80px; line-height: 1; font-weight: 600; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; opacity: .5; pointer-events: none; }
.article-example:hover { transform: translateY(-4px); box-shadow: var(--glow-orange); }
.article-example .small-label { margin-bottom: 8px; color: var(--accent-ink); }
.article-example p { padding-right: 24px; font-size: 16px !important; line-height: 1.65; color: var(--ink-2); }
.article-callout { background: linear-gradient(135deg, rgba(70, 212, 198, .09), rgba(255, 145, 70, .06)); border: 1px solid rgba(70, 212, 198, .28); }
.article-callout.is-blue { background: linear-gradient(135deg, rgba(59, 130, 246, .08), rgba(168, 85, 247, .05)); border-color: rgba(59, 130, 246, .25); }
.article-callout + .article-callout { margin-top: 16px; }
.article-callout p { font-size: 16px !important; line-height: 1.7; color: var(--ink-2); }
.article-callout .source-link { margin-top: 16px; }
.article-example:hover .chip, .article-callout:hover .chip { transform: rotate(-10deg) scale(1.12); }
.article-example:hover .chip .icon, .article-callout:hover .chip .icon { animation: aura-wiggle .9s var(--ease) 1; }
@media (max-width: 479px) { .article-example, .article-callout { flex-direction: column; padding: 20px; } .article-example p { padding-right: 0; } }
.question-checklist { display: grid; gap: 10px; margin: 28px 0; padding: 0; list-style: none; counter-reset: question; }
.question-checklist li {
  display: flex; align-items: center; gap: 16px; padding: 14px 20px 14px 14px; border-radius: 1rem; counter-increment: question;
  border: 1px solid transparent; background: linear-gradient(var(--card), var(--card)) padding-box, linear-gradient(to bottom, var(--card-edge), transparent 85%) border-box;
  -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); box-shadow: var(--shadow-md);
  font-size: 16px; line-height: 1.5; font-weight: 500; color: var(--ink-2); transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.question-checklist li::before { content: counter(question, decimal-leading-zero); display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 50%; color: var(--teal-text); background: linear-gradient(135deg, rgba(70, 212, 198, .2), rgba(255, 145, 70, .2)); border: 1px solid rgba(70, 212, 198, .25); font-size: 12px; font-weight: 700; transition: transform .5s var(--spring); }
.question-checklist li:nth-child(even)::before { color: var(--orange-text); background: linear-gradient(135deg, rgba(255, 145, 70, .2), rgba(236, 72, 153, .16)); border-color: rgba(255, 145, 70, .25); }
.question-checklist li:hover { transform: translateX(4px); box-shadow: var(--glow-teal); }
.question-checklist li:hover::before { transform: rotate(-10deg) scale(1.1); }
.article-sources { margin-top: 32px; padding: 22px 22px 24px; border-radius: 1.5rem; border: 1px dashed var(--line-2); background: var(--panel); }
.article-sources ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.article-sources li { max-width: 100%; }

.guide-related { display: grid; grid-template-columns: 1fr; gap: 16px; padding-top: 24px; padding-bottom: 96px; }
@media (min-width: 768px) { .guide-related { grid-template-columns: 1fr 1fr; gap: 24px; } }
.guide-related a { display: flex; flex-direction: column; gap: 10px; min-height: 190px; padding: 28px; }
@media (min-width: 768px) { .guide-related a { min-height: 230px; } }
.guide-related .bento-mini-top { margin-bottom: auto; padding-bottom: 28px; }
.guide-related h2 { font-size: 1.75rem; line-height: 1.1; }
@media (min-width: 1024px) { .guide-related h2 { font-size: 2.25rem; } }

/* =====================================================================
   INFORMATIVE — Dati societari, Privacy, Cookie
   ===================================================================== */
.legal-hero > h1 { max-width: 18ch; }
.legal-layout { display: grid; grid-template-columns: 1fr; gap: 24px; padding-top: 8px; padding-bottom: 64px; }
.legal-index { display: grid; gap: 16px; align-content: start; padding: 20px 14px 14px; }
.legal-index .small-label { margin-left: 12px; }
.legal-index nav + nav { padding-top: 16px; border-top: 1px solid var(--line-soft); }
.legal-docs { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
@media (min-width: 1024px) {
  .legal-layout { grid-template-columns: 270px minmax(0, 1fr); gap: 40px; align-items: start; }
  .legal-index { position: sticky; top: 112px; }
  .legal-docs { grid-template-columns: 1fr; }
}
.aura-panel.legal-doc { max-width: none; width: 100%; margin: 0; padding: 28px 20px 32px; border-radius: 1.5rem; }
@media (min-width: 768px) { .aura-panel.legal-doc { padding: 48px 56px 44px; } }
.legal-doc > section { padding-block: 32px; border-top: 1px solid var(--line-soft); scroll-margin-top: 112px; }
.legal-doc > section:first-child, .legal-doc > .draft-notice + section { border-top: 0; }
.legal-doc > section:first-child { padding-top: 0; }
.legal-doc > section > .chip { margin-bottom: 18px; }
.legal-doc h2 { margin-bottom: 14px; font-size: 1.375rem; line-height: 1.2; }
@media (min-width: 768px) { .legal-doc h2 { font-size: 1.625rem; } }
.legal-doc p { max-width: 70ch; font-size: 16px; line-height: 1.75; color: var(--ink-3); }
.legal-doc p + p { margin-top: .9em; }
.legal-doc a { color: var(--accent-ink); text-decoration-color: rgba(255, 145, 70, .45); }
.legal-doc code { padding: 1px 6px; border-radius: 6px; background: var(--bg-soft); border: 1px solid var(--line); font-size: .88em; color: var(--ink-2); overflow-wrap: anywhere; }
.legal-doc .plain-checklist li { font-size: 15px; }
.legal-fields { display: grid; margin: 16px 0 0; border-top: 1px solid var(--line); }
.legal-fields > div { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 14px 4px; border-bottom: 1px solid var(--line); transition: background-color .3s; }
.legal-fields > div:hover { background: var(--nav-hover); }
.legal-fields dt { align-self: center; font-size: 10px; line-height: 1.4; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-2); }
.legal-fields dd { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink); overflow-wrap: anywhere; }
.legal-fields dd .i-swap { width: .9em; height: .9em; }
@media (min-width: 640px) { .legal-fields > div { grid-template-columns: 230px 1fr; gap: 24px; padding-inline: 8px; } }
.legal-footer { margin-top: 8px; padding-top: 24px; border-top: 1px solid var(--line-soft); font-size: 14px; line-height: 1.6; color: var(--muted-2) !important; }
.draft-notice { display: grid; justify-items: start; gap: 10px; margin-bottom: 8px; padding: 22px 22px 24px; border-radius: 1.25rem; background: linear-gradient(135deg, rgba(255, 145, 70, .11), rgba(70, 212, 198, .06)); border: 1px solid rgba(255, 145, 70, .3); }
.draft-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 9999px; background: #c2410c; color: #fff; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 8px 20px rgba(234, 88, 12, .3); }
.draft-pill .status-dot { background: #fff; }
.draft-notice strong { font-size: 17px; line-height: 1.35; font-weight: 600; color: var(--ink); }
.draft-notice p { font-size: 15px !important; line-height: 1.65; color: var(--muted) !important; }
.inventory-list { display: grid; gap: 8px; margin: 16px 0 22px; }
.inventory-list > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 14px 16px; border-radius: 1rem; background: var(--bg-soft); border: 1px solid var(--line); transition: transform .35s var(--ease), border-color .3s; }
:root[data-theme="dark"] .inventory-list > div { background: rgba(17, 24, 39, .55); }
.inventory-list > div:hover { transform: translateX(3px); border-color: rgba(70, 212, 198, .45); }
.inventory-list span { font-size: 15px; line-height: 1.45; color: var(--ink-3); }
.inventory-list strong { display: inline-flex; align-items: center; gap: 7px; padding: 4px 11px; border-radius: 9999px; background: rgba(20, 184, 166, .1); border: 1px solid rgba(20, 184, 166, .28); color: #0f766e; font-size: 12px; line-height: 16px; font-weight: 600; white-space: nowrap; }
.inventory-list strong::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.inventory-list > div:nth-child(3) strong { background: var(--accent-bg); border-color: var(--accent-line); color: var(--accent-ink); }
:root[data-theme="dark"] .inventory-list strong { color: #5eead4; }
:root[data-theme="dark"] .inventory-list > div:nth-child(3) strong { color: var(--accent-ink); }

/* =====================================================================
   GRAZIE e 404 — pagine di sistema
   ===================================================================== */
.system-page { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 72vh; padding-top: 24px; padding-bottom: 96px; text-align: center; }
.system-page .eyebrow { margin-bottom: 24px; }
.system-page h1 { margin-bottom: 20px; font-size: 2.5rem; line-height: 1.04; }
@media (min-width: 640px) { .system-page h1 { font-size: 3.5rem; } }
@media (min-width: 1024px) { .system-page h1 { font-size: 4.25rem; } }
.system-page > p { max-width: 36rem; font-size: 18px; line-height: 1.65; color: var(--muted); }
.system-page > p.system-note { margin-top: 12px; font-size: 14px; color: var(--muted-2); }
.system-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 24px; margin-top: 36px; }
@media (max-width: 479px) { .system-actions { flex-direction: column; } .system-actions .aura-button { width: 100%; } }

.system-code { display: flex; align-items: center; justify-content: center; margin: 4px 0 28px; font-size: clamp(6.5rem, 30vw, 15rem); line-height: .9; font-weight: 600; letter-spacing: -.06em; }
.system-code > span:not(.system-zero) { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.system-code > span:first-child { background: linear-gradient(90deg, var(--orange), #f2a86f); -webkit-background-clip: text; background-clip: text; }
.system-code > span:last-child { background: linear-gradient(90deg, #8fcbb4, var(--teal)); -webkit-background-clip: text; background-clip: text; }
.system-zero { position: relative; display: grid; place-items: center; width: .7em; height: .7em; margin: 0 .06em; border-radius: 50%; background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .9), transparent 40%), conic-gradient(from 210deg, #ff9146, #ffc38f, #46d4c6, #2aa89d, #ff9146); box-shadow: inset 0 -.06em .12em rgba(0, 0, 0, .18), 0 .1em .25em rgba(255, 145, 70, .3); animation: aura-bob-1 7s ease-in-out infinite; }
.system-zero .icon { width: 44%; height: 44%; color: #fff; stroke-width: 1.4; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .2)); animation: info-seek 6s var(--ease) infinite; }
.system-zero i { position: absolute; inset: -12%; border-radius: 50%; border: 1px dashed var(--line-2); animation: aura-spin 40s linear infinite; }
@keyframes info-seek { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(40deg); } 55% { transform: rotate(-25deg); } 75% { transform: rotate(12deg); } }

.system-art { position: relative; display: grid; place-items: center; width: 200px; height: 200px; margin-bottom: 28px; }
@media (min-width: 768px) { .system-art { width: 240px; height: 240px; } }
.system-art .system-ring { position: absolute; border-radius: 50%; }
.system-art .ring-a { inset: 0; border: 1px dashed var(--line-2); animation: aura-spin 40s linear infinite; }
.system-art .ring-b { inset: 16%; background: var(--glass); border: 1px solid var(--line-soft); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: var(--shadow-lg); }
.system-art .ring-c { inset: 16%; border: 2px solid rgba(255, 145, 70, .45); animation: aura-ring 2.6s var(--ease) infinite; }
.system-symbol { position: relative; display: grid; place-items: center; width: 44%; height: 44%; border-radius: 50%; color: #fff; background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .85), transparent 38%), conic-gradient(from 210deg, #ff9146, #ffc38f, #46d4c6, #2aa89d, #ff9146); box-shadow: inset 0 -6px 14px rgba(0, 0, 0, .18), 0 14px 30px rgba(255, 145, 70, .35); animation: aura-bob-1 7s ease-in-out infinite; }
.system-symbol .icon { width: 42%; height: 42%; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .25)); }
