/* Footer study (scratchpad/ftr-work/footer.css), shared parts and the four footers. */
:root { --on-navy-2: #b3c6de; --on-cobalt-2: #c3d1f2; --line-dark: rgba(255, 255, 255, 0.16); --on-dark: #ffffff; }
/* Shared footer parts */
footer { --g: clamp(16px, 5.5cqi, 80px); font-family: var(--sans); font-size: 15px; }
footer a { text-decoration: none; }
footer h3 { font-size: 13px; font-weight: 500; letter-spacing: 0.02em; color: var(--ink-3); }
.col { display: grid; align-content: start; gap: 16px; min-width: 0; }
.col ul { display: grid; gap: 11px; }
.col a { font-size: 15px; line-height: 1.3; transition: opacity 120ms ease; }
.ext { display: inline-block; margin-left: 3px; font-size: 0.8em; opacity: 0.6; }
.tag { display: inline-block; margin-left: 4px; font-size: 10px; font-weight: 600; letter-spacing: 0.06em; opacity: 0.6; }
.legal { display: grid; gap: 14px; font-size: 13px; line-height: 1.6; }
.legal .docs, .legal .enti, .fd-legal .docs { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.legal .docs a, .legal .enti a, .fd-legal .docs a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, currentColor 30%, transparent); transition: text-decoration-color 120ms ease; }
.legal .enti a, .fd-legal .enti a { font-weight: 600; }
.note { font-size: 12px; }
.socs { display: flex; gap: 8px; }
.soc { width: 40px; height: 40px; border-radius: 999px; display: grid; place-items: center; box-shadow: inset 0 0 0 1px currentColor; transition: background-color 120ms ease; }
.soc svg { width: 18px; height: 18px; }
.lang { display: inline-flex; align-items: center; gap: 8px; }
.lang-ico svg { width: 16px; height: 16px; display: block; }
.lang ul { display: flex; gap: 12px; }
.lang a[aria-current] { font-weight: 600; }
.lang a[aria-disabled] { opacity: 0.55; }
footer a:focus-visible, .seg button:focus-visible, .summary a:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 6px; }
@media (hover: hover) and (pointer: fine) {
  .col a:hover { opacity: 0.65; }
  .legal a:hover, .fd-legal .docs a:hover { text-decoration-color: currentColor; }
}
@media (prefers-reduced-motion: reduce) { .frame, .btn { transition: none; } }

/* A · Chiusura */
.fa { background: var(--mist); color: var(--navy); padding: clamp(56px, 8cqi, 112px) var(--g) 28px; }
.fa-close { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px 48px; padding-bottom: clamp(48px, 6cqi, 88px); border-bottom: 1px solid var(--line); }
.fa-payoff { font-family: var(--serif); font-weight: 300; font-size: clamp(44px, 8.6cqi, 132px); line-height: 0.98; letter-spacing: -0.035em; max-width: 9em; text-wrap: balance; }
.fa-acts { display: flex; align-items: center; gap: 28px; padding-bottom: 0.4em; }
.fa-login { font-weight: 500; font-size: 16px; text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 5px; text-decoration-color: rgba(2, 55, 108, 0.35) !important; }
.fa-nav { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 24px; padding-block: 48px 52px; }
.fa-logo { grid-column: span 4; align-self: start; }
.fa-logo img, .fc-id img, .fb-logo img { height: 30px; width: auto; }
.fa-nav .col { grid-column: span 2; }
.fa-legal { padding-top: 24px; border-top: 1px solid var(--line); color: var(--ink-2); }
.fa-legal .co { color: var(--navy); }
.fa-legal .note { color: var(--ink-3); }
.fa-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 24px; font-size: 13px; color: var(--ink-3); }
@container ftr (max-width: 760px) {
  .fa-close { grid-template-columns: minmax(0, 1fr); }
  .fa-payoff { font-size: clamp(40px, 12.8cqi, 64px); }
  .fa-acts { flex-direction: column; align-items: stretch; gap: 18px; padding-bottom: 0; }
  .fa-acts .btn { width: 100%; }
  .fa-login { align-self: center; }
  .fa-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; padding-block: 40px; }
  .fa-logo, .fa-nav .col { grid-column: span 1; }
  .fa-logo { grid-column: span 2; }
}

/* B · Istituto */
.fb { background: var(--navy); color: var(--on-dark); padding: clamp(56px, 6.5cqi, 96px) var(--g) 28px; }
.fb h3 { color: var(--on-navy-2); }
.fb-top { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px 64px; }
.fb-id { display: grid; align-content: start; justify-items: start; gap: 20px; }
.fb-fact { font-size: 15px; line-height: 1.55; color: var(--on-navy-2); max-width: 32ch; }
.btn-line { height: 42px; padding: 0 18px; border-radius: 10px; font-size: 15px; background: transparent; color: var(--on-dark); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42); }
.fb-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 24px; }
.fb-band { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 16px 64px; margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--line-dark); }
.fb-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.fb-docs a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-block: 11px; border-bottom: 1px solid var(--line-dark); font-size: 14.5px; transition: opacity 120ms ease; }
.fb-docs li:nth-child(-n+2) a { padding-top: 0; }
.dt { flex: none; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--on-navy-2); }
.fb-enti { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; }
.fb-enti a { display: grid; gap: 6px; transition: opacity 120ms ease; }
.en { font-size: 18px; font-weight: 600; }
.ef { font-size: 13px; line-height: 1.45; color: var(--on-navy-2); }
.fb-base { margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--line-dark); display: grid; gap: 16px; font-size: 12.5px; line-height: 1.6; color: var(--on-navy-2); }
.fb-base p { max-width: 120ch; }
.fb-end { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; }
@media (hover: hover) and (pointer: fine) { .fb-docs a:hover, .fb-enti a:hover { opacity: 0.7; } .btn-line:hover { background: rgba(255, 255, 255, 0.08); } }
@container ftr (max-width: 760px) {
  .fb-top, .fb-band { grid-template-columns: minmax(0, 1fr); }
  .fb-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
  .fb-band { margin-top: 44px; }
  .fb-docs, .fb-enti { grid-template-columns: minmax(0, 1fr); }
  .fb-docs li:nth-child(2) a { padding-top: 11px; }
  .fb-enti { gap: 18px; }
}
@container ftr (min-width: 761px) and (max-width: 1080px) { .fb-top { grid-template-columns: minmax(0, 1fr); } .fb-band { grid-template-columns: minmax(0, 1fr); } }

/* C · Fasce: six steps from sky to cobalt, thickening toward the field */
.fc { background: var(--white); }
.fc-bands { display: grid; }
.fc-bands i { display: block; }
.fc-bands i:nth-child(1) { height: 5px; background: var(--sky); }
.fc-bands i:nth-child(2) { height: 7px; background: #31a6fc; }
.fc-bands i:nth-child(3) { height: 10px; background: var(--blue); }
.fc-bands i:nth-child(4) { height: 14px; background: var(--brand); }
.fc-bands i:nth-child(5) { height: 19px; background: #1557cc; }
.fc-bands i:nth-child(6) { height: 26px; background: var(--cobalt); }
.fc-field { background: var(--cobalt-deep); color: var(--on-dark); padding: clamp(48px, 5.5cqi, 80px) var(--g) 28px; }
.fc h3 { color: var(--on-cobalt-2); }
.fc-shelf { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px; }
.fc-item { display: flex; align-items: center; gap: 28px; min-width: 0; padding: 24px 28px; border-radius: 16px; background: rgba(255, 255, 255, 0.07); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14); transition: background-color 120ms ease; }
.fc-book img { flex: none; width: 92px; height: auto; border-radius: 3px; box-shadow: 0 10px 24px -8px rgba(1, 26, 83, 0.6); }
.fc-txt { display: grid; gap: 8px; min-width: 0; }
.fc-k { font-size: 13px; font-weight: 500; color: var(--on-cobalt-2); }
.fc-t { font-family: var(--serif); font-weight: 400; font-size: clamp(24px, 2.4cqi, 34px); line-height: 1.08; letter-spacing: -0.015em; text-wrap: balance; }
.fc-go { font-size: 15px; font-weight: 500; color: #cfedfc; }
.fc-btn { justify-self: start; margin-top: 6px; display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 10px; background: var(--white); color: var(--cobalt-deep); }
.fc-nav { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 24px; padding-block: 56px 52px; }
.fc-id { grid-column: span 4; display: grid; align-content: start; justify-items: start; gap: 24px; }
.btn-white { background: var(--white); color: var(--cobalt-deep); height: 48px; font-size: 15px; }
.fc-nav .col { grid-column: span 2; }
.fc-legal { padding-top: 24px; border-top: 1px solid var(--line-dark); color: var(--on-cobalt-2); }
.fc-legal .co { color: var(--on-dark); }
.fc-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 24px; font-size: 13px; color: var(--on-cobalt-2); }
@media (hover: hover) and (pointer: fine) {
  .fc-item:hover { background: rgba(255, 255, 255, 0.12); }
  .fc .btn-white:hover { background: #e3ecff; }
  .fc .soc:hover { background: rgba(255, 255, 255, 0.1); }
}
@container ftr (max-width: 760px) {
  .fc-shelf { grid-template-columns: minmax(0, 1fr); }
  .fc-item { gap: 20px; padding: 20px; }
  .fc-book img { width: 76px; }
  .fc-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; padding-block: 44px; }
  .fc-id { grid-column: span 2; }
  .fc-id .btn { width: 100%; }
  .fc-nav .col { grid-column: span 1; }
}

/* D · Firma */
.fd { background: var(--white); color: var(--navy); padding: clamp(56px, 6cqi, 88px) var(--g) 28px; }
.fd-nav { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 36px 24px; }
.fd-nav .col { grid-column: span 2; }
.fd-side { grid-column: 9 / span 4; display: flex; flex-direction: column; align-items: flex-end; gap: 20px; }
.fd-login { display: inline-flex; align-items: center; height: 42px; padding: 0 18px; border-radius: 10px; font-weight: 500; box-shadow: inset 0 0 0 1px var(--line); transition: background-color 120ms ease; }
.fd .soc { color: var(--navy); box-shadow: inset 0 0 0 1px var(--line); }
.fd-mark { display: block; margin-block: clamp(48px, 7cqi, 104px) clamp(28px, 3.4cqi, 48px); }
.fd-mark img { width: 100%; height: auto; }
.fd-legal { display: grid; gap: 12px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 12.5px; line-height: 1.6; color: var(--ink-2); }
.fd-legal p { max-width: 130ch; }
.fd-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 8px; color: var(--ink-3); }
@media (hover: hover) and (pointer: fine) { .fd-login:hover, .fd .soc:hover { background: var(--mist); } }
@container ftr (max-width: 760px) {
  .fd-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
  .fd-nav .col { grid-column: span 1; }
  .fd-side { grid-column: span 2; flex-direction: row; align-items: center; justify-content: space-between; }
}
/* phones: a two-line link keeps its ↗ after the last word (home.css makes these links flex, which parks the arrow beside the block) */
@media (max-width: 860px) { .cq .fa-nav .col a { display: inline-block; padding-block: 8px; } }
