/* ==========================================================================
   NOWY — Check fatture elettroniche (page-specific styles only)
   Requires ../assets/css/nowy-core.css (tokens, components, chrome) first.
   Palette: cobalt #1F48FF for accents, primary buttons and the second line
   of headlines; black, white and the neutral greys of the design system.
   Outcomes are told apart by shape + text: OK (cobalt, circle-check),
   Da verificare (cobalt outline, triangle), Errore (solid black, square-x).
   Contents: tokens · hero · sections · upload + privacy · KPIs · status
   badges · results table (→ cards on mobile) · checks detail · prose ·
   closing card · compact footer.
   ========================================================================== */

/* --- Page tokens ---------------------------------------------------------- */
:root{
  --cobalt: #1F48FF;
  --cobalt-hover: #1636CC;
  --black: #0B0D17;
  --color-primary: var(--cobalt);
  --color-on-primary: #FFFFFF;
  --color-primary-hover: var(--cobalt-hover);
}
.theme-light{
  --color-accent: var(--cobalt);
  --color-accent-soft: rgba(31,72,255,.07);
  --color-primary: var(--cobalt);
  --color-primary-hover: var(--cobalt-hover);
  --color-focus: var(--cobalt);
  --ring: 0 0 0 3px rgba(31,72,255,.35);
}
.t-tone{ color: var(--cobalt); }

/* --- Shared bits ---------------------------------------------------------- */
.btn__icon--static,
.btn:hover .btn__icon--static{ transform: none; }
.btn:hover .btn__icon--down{ transform: translateY(2px); }
.btn:disabled{ opacity: .45; cursor: not-allowed; }
.btn:disabled:active{ transform: none; }

.link-btn{
  min-height: 40px;
  padding-inline: 2px;
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  color: var(--color-fg-2);
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 100% 1px;
  background-repeat: no-repeat;
  background-position: 0 calc(100% - 10px);
  transition: color var(--dur-base) var(--ease-standard);
}
.link-btn:hover{ color: var(--color-fg); }
.link-btn:disabled{ opacity: .45; cursor: not-allowed; }
.link-btn--inline{
  min-height: 0;
  font-size: inherit;
  color: var(--cobalt);
  background-position: 0 100%;
}

.cf-section{ padding-block: clamp(var(--space-16), 7vw, 8rem); }
.cf-section .section-head{ margin-bottom: clamp(var(--space-10), 5vw, var(--space-16)); }
.cf-section .section-head .t-display{ max-width: 18ch; }

/* --- Hero ----------------------------------------------------------------- */
.cf-hero{
  position: relative;
  min-height: min(100svh, 860px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: calc(var(--nav-h) + var(--space-20));
  padding-bottom: clamp(var(--space-10), 5vw, var(--space-16));
  background: var(--grad-ink);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.cf-hero .mesh{ z-index: -2; opacity: .55; }
.cf-hero__art{
  position: absolute;
  z-index: -1;
  right: -8vw;
  top: 40%;
  width: min(52vw, 76vh);
  transform: translateY(-50%);
  opacity: .3;
  pointer-events: none;
}
.cf-hero__art svg{ width: 100%; height: auto; overflow: visible; animation: cf-art-in 1.4s var(--ease-out) .2s both; }
@keyframes cf-art-in{ from{ opacity: 0; transform: translateX(-4%) scale(.96); } }

.cf-hero__inner{ display: grid; gap: clamp(var(--space-6), 3vw, var(--space-10)); }
.cf-hero__eyebrow{ color: rgba(255,255,255,.82); }
.cf-hero__title{
  font-size: clamp(2.5rem, 1rem + 5.2vw, 6.25rem);
  line-height: .98;
  letter-spacing: var(--tracking-hero);
  font-weight: var(--weight-medium);
  text-wrap: balance;
}
.cf-hero__title .line{ display: block; }
.cf-hero__title .t-tone{ color: var(--cobalt); }
.cf-hero__title .line,
.cf-hero__foot > *{
  animation: cf-rise 1s var(--ease-out) both;
  animation-delay: calc(var(--i, 0) * 110ms + 80ms);
}
@keyframes cf-rise{ from{ opacity: .01; transform: translateY(28px); } }

.cf-hero__foot{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--space-8) var(--space-16);
  padding-top: var(--space-8);
  border-top: 1px solid rgba(255,255,255,.16);
}
.cf-hero__copy{ display: grid; gap: var(--space-6); }
.cf-hero__lead{ max-width: 60ch; color: rgba(255,255,255,.8); }
.cf-hero__lead strong{ color: #fff; font-weight: var(--weight-medium); }
.cf-hero__facts .chip{
  gap: 8px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.92);
  height: auto;
  min-height: 32px;
  padding-block: 4px;
  white-space: normal;
}
.cf-hero__facts .chip svg{ width: 14px; height: 14px; flex: none; color: #fff; }
.cf-hero__ctas{ display: flex; flex-wrap: wrap; gap: var(--space-3); }
.cf-hero .btn--outline{ border-color: rgba(255,255,255,.4); color: #fff; }
.cf-hero .btn--outline:hover{ border-color: #fff; background: rgba(255,255,255,.08); }

@media (max-width: 899px){
  .cf-hero{ min-height: 0; padding-top: calc(var(--nav-h) + var(--space-16)); }
  .cf-hero__art{ width: 110vw; right: -48vw; top: 30%; opacity: .22; }
  .cf-hero__foot{ grid-template-columns: 1fr; }
}
@media (max-width: 479px){
  .cf-hero__ctas{ display: grid; }
  .cf-hero__ctas .btn{ width: 100%; }
}

/* --- 01 · Upload + privacy ----------------------------------------------- */
.cf-load{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: var(--space-4);
}
.cf-drop{ position: relative; display: grid; }
.cf-drop__input{
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
  opacity: 0;
}
.cf-drop__zone{
  display: grid;
  justify-items: center;
  align-content: center;
  gap: var(--space-3);
  min-height: 320px;
  padding: var(--space-10) var(--space-6);
  text-align: center;
  background: var(--color-surface);
  border: 2px dashed rgba(31,72,255,.6);
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: border-color var(--dur-base) var(--ease-standard), background-color var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard);
}
.cf-drop__zone:hover{ border-color: var(--cobalt); border-style: solid; }
.cf-drop.is-over .cf-drop__zone{
  border-style: solid;
  border-color: var(--cobalt);
  background: var(--paper-50);
  box-shadow: inset 0 0 0 4px rgba(31,72,255,.18);
}
.cf-drop__input:focus-visible + .cf-drop__zone{
  outline: 3px solid var(--cobalt);
  outline-offset: 4px;
  border-style: solid;
  border-color: var(--cobalt);
}
.cf-drop__icon{
  display: grid;
  place-items: center;
  width: 60px; height: 60px;
  margin-bottom: var(--space-2);
  border-radius: 50%;
  background: var(--cobalt);
  color: #fff;
}
.cf-drop__icon svg{ width: 26px; height: 26px; }
.cf-drop__title{
  font-size: var(--text-h2);
  line-height: 1.12;
  letter-spacing: var(--tracking-heading);
  font-weight: var(--weight-medium);
}
.cf-drop__or{ max-width: 42ch; font-size: var(--text-small); color: var(--color-fg-3); }
.cf-drop__btn{ margin-top: var(--space-3); pointer-events: none; }

.cf-privacy{
  display: grid;
  align-content: start;
  gap: var(--space-4);
  padding: clamp(var(--space-6), 3vw, var(--space-10));
  background: var(--black);
  color: #fff;
  border-radius: var(--radius-lg);
}
.cf-privacy__icon{
  display: grid;
  place-items: center;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--cobalt);
  color: #fff;
}
.cf-privacy__icon svg{ width: 22px; height: 22px; }
.cf-privacy .t-h3{ color: #fff; text-wrap: balance; }
.cf-privacy .t-small{ color: rgba(255,255,255,.78); }
.cf-privacy__actions{
  display: grid;
  gap: var(--space-3);
  justify-items: start;
  margin-top: var(--space-2);
  padding-top: var(--space-5);
  border-top: 1px solid rgba(255,255,255,.16);
}
.cf-privacy .btn--outline{ border-color: rgba(255,255,255,.45); color: #fff; }
.cf-privacy .btn--outline:hover{ border-color: #fff; background: rgba(255,255,255,.08); }
.cf-privacy .btn:focus-visible{ box-shadow: 0 0 0 3px rgba(255,255,255,.6); }
.cf-privacy .t-caption{ color: rgba(255,255,255,.7); }

.cf-status{ min-height: 1.6em; margin-top: var(--space-5); color: var(--color-fg-2); }
.cf-status:empty{ margin-top: 0; }

@media (max-width: 899px){
  .cf-load{ grid-template-columns: 1fr; }
  .cf-drop__zone{ min-height: 260px; }
}

/* --- Status badges -------------------------------------------------------- */
.st{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 11px 0 7px;
  border-radius: var(--radius-full);
  border: 1.5px solid transparent;
  font-family: var(--font-sans);
  font-size: var(--text-caption);
  font-weight: var(--weight-semibold);
  letter-spacing: 0;
  text-transform: none;
  line-height: 1;
  white-space: nowrap;
}
.st svg{ width: 16px; height: 16px; flex: none; }
.st--ok{ background: var(--cobalt); border-color: var(--cobalt); color: #fff; }
.st--warn{ background: #fff; border-color: var(--cobalt); color: var(--black); }
.st--warn svg{ color: var(--cobalt); }
.st--err{ background: var(--black); border-color: var(--black); color: #fff; }
.st--info{ background: #fff; border-color: rgba(11,13,23,.28); color: #3A3F52; }
.st--sm{ height: 26px; }

/* --- 02 · Results --------------------------------------------------------- */
.cf-results{ background: var(--paper-100); }

.cf-kpis{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.7fr);
  gap: var(--space-3);
}
.kpi{
  position: relative;
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-height: 176px;
  padding: clamp(var(--space-5), 2vw, var(--space-8));
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.kpi__v{
  margin-top: auto;
  font-size: clamp(2.25rem, 1.6rem + 2vw, 3.75rem);
  font-size: clamp(2rem, 26cqi, 3.75rem);
  line-height: .95;
  letter-spacing: var(--tracking-display);
  font-weight: var(--weight-medium);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.kpi--warn{ border: 1.5px solid var(--cobalt); }
.kpi--err .kpi__v{ color: var(--black); }
.kpi--ok .kpi__v{ color: var(--cobalt); }
.kpi--total{ background: var(--black); border-color: var(--black); color: #fff; }
.kpi--total .t-label{ color: rgba(255,255,255,.75); }
.kpi--total .kpi__v{ font-size: clamp(1.75rem, 15cqi, 3.75rem); color: #fff; }
.kpi--total .kpi__n{ color: rgba(255,255,255,.72); max-width: 40ch; }
@media (max-width: 1079px){
  .cf-kpis{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kpi--total{ grid-column: 1 / -1; min-height: 0; }
  .kpi--total .kpi__v{ font-size: clamp(2rem, 8cqi, 3.75rem); }
}
@media (max-width: 639px){
  .cf-kpis{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi{ min-height: 128px; }
  .kpi--total .kpi__v{ font-size: clamp(1.75rem, 12cqi, 3rem); }
}

.cf-sheet{
  margin-top: var(--space-4);
  padding: 0 clamp(var(--space-5), 2vw, var(--space-8)) var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.cf-sheet__bar{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3) var(--space-6);
  padding-block: var(--space-5);
}
.cf-sheet__actions{ display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.cf-empty{ padding: var(--space-10) 0 var(--space-8); border-top: 1px solid var(--color-border-strong); }
.cf-empty .t-body{ color: var(--color-fg-3); }

.cf-table{ width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.cf-table th{
  padding: var(--space-3) var(--space-3);
  border-top: 1px solid var(--color-border-strong);
  border-bottom: 1px solid var(--color-border-strong);
  text-align: left;
  font-family: var(--font-mono);
  font-size: var(--text-label);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-fg-3);
  white-space: nowrap;
}
.cf-table th.r{ text-align: right; }
.cf-table td{
  padding: var(--space-4) var(--space-3);
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
  font-size: var(--text-small);
  color: var(--color-fg-2);
}
.cf-table th:first-child, .cf-table td:first-child{ padding-left: 0; }
.cf-table th:last-child, .cf-table td:last-child{ padding-right: 0; }
.cf-table tbody tr.inv:hover td{ background: var(--paper-50); }
.cf-table tr.inv.is-open td{ border-bottom-color: transparent; }
.cf-table .c-sup{ min-width: 220px; }
.cf-table .c-num{ color: var(--color-fg); font-weight: var(--weight-medium); white-space: nowrap; }
.cf-table .c-date{ white-space: nowrap; }
.cf-table .c-tot{ text-align: right; white-space: nowrap; color: var(--color-fg); font-weight: var(--weight-medium); font-size: var(--text-body); }
.cf-table .c-due{ white-space: nowrap; }
.cf-table .c-st{ white-space: nowrap; }

.inv__tgl{
  display: inline-flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-height: 40px;
  padding: 8px 8px 8px 4px;
  margin-left: -4px;
  border-radius: var(--radius-sm);
  text-align: left;
  font-size: var(--text-body);
  font-weight: var(--weight-medium);
  line-height: 1.35;
  color: var(--color-fg);
}
.inv__tgl:hover .inv__sup{ text-decoration: underline; text-underline-offset: 3px; }
.inv__tgl:focus-visible{ outline: 2px solid var(--cobalt); outline-offset: 2px; }
.inv__chev{ width: 18px; height: 18px; flex: none; margin-top: 1px; color: var(--cobalt); transition: transform var(--dur-base) var(--ease-out); }
.inv__tgl[aria-expanded="true"] .inv__chev{ transform: rotate(90deg); }
.inv__file{ display: block; padding-left: 26px; font-size: var(--text-caption); color: var(--color-fg-3); overflow-wrap: anywhere; }
.inv__dup{ display: block; margin-top: 6px; font-size: var(--text-caption); font-weight: var(--weight-medium); color: var(--black); }

.due__d{ display: block; color: var(--color-fg); }
.due{ display: inline-flex; align-items: center; gap: 4px; margin-top: 2px; font-size: var(--text-caption); color: var(--color-fg-3); }
.due--late{
  padding: 2px 8px 2px 5px;
  border: 1.5px solid var(--black);
  border-radius: var(--radius-full);
  font-weight: var(--weight-semibold);
  color: var(--black);
}
.due--late svg{ width: 13px; height: 13px; }
.due--today{ font-weight: var(--weight-semibold); color: var(--black); }

/* Detail of the ten checks */
.cf-table tr.det td{ padding: 0 0 var(--space-5); background: transparent; }
.det__box{
  padding: clamp(var(--space-4), 2vw, var(--space-6));
  background: var(--paper-50);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.det__meta{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--space-3) var(--space-6);
  margin: 0 0 var(--space-5);
}
.det__meta dt{
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: var(--weight-medium);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-fg-3);
}
.det__meta dd{ margin: 2px 0 0; font-size: var(--text-small); color: var(--color-fg); overflow-wrap: anywhere; }
.det__checks{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}
.chk{
  padding: var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.chk--warn{ border: 1.5px solid var(--cobalt); }
.chk--err{ border: 1.5px solid var(--black); }
.chk__head{ display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.chk__n{ font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); color: var(--color-fg-3); }
.chk__t{ flex: 1; min-width: 12ch; font-weight: var(--weight-medium); color: var(--color-fg); line-height: 1.3; }
.chk__msgs{ list-style: none; margin: var(--space-3) 0 0; padding: 0; display: grid; gap: var(--space-2); }
.msg{ display: flex; gap: var(--space-2); font-size: var(--text-small); line-height: 1.45; color: var(--color-fg-2); }
.msg svg{ width: 16px; height: 16px; flex: none; margin-top: 2px; }
.msg--ok svg{ color: var(--cobalt); }
.msg--info svg{ color: var(--color-fg-3); }
.msg--warn{ color: var(--black); }
.msg--warn svg{ color: var(--cobalt); }
.msg--err{ color: var(--black); font-weight: var(--weight-medium); }
.msg--err svg{ color: var(--black); }
.msg--late{ color: var(--black); font-weight: var(--weight-semibold); }
.msg--late svg{ color: var(--black); }

.cf-legend{
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-8);
  margin-top: var(--space-6);
  font-size: var(--text-small);
  color: var(--color-fg-2);
}
.cf-legend li{ display: inline-flex; align-items: center; gap: var(--space-2); }

/* Tablet & mobile: every invoice becomes a card */
@media (max-width: 899px){
  .cf-sheet{ padding: 0 var(--space-4) var(--space-4); }
  .cf-table, .cf-table tbody, .cf-table tr, .cf-table td{ display: block; }
  .cf-table thead{
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  .cf-table tbody{ border-top: 1px solid var(--color-border-strong); padding-top: var(--space-1); }
  .cf-table tr.inv{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md);
  }
  .cf-table tr.inv.is-open{ border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
  .cf-table tbody tr.inv:hover td{ background: transparent; }
  .cf-table td, .cf-table td:first-child, .cf-table td:last-child{ padding: 0; border: 0; }
  .cf-table .c-sup{ grid-column: 1 / -1; min-width: 0; }
  .cf-table .c-st{ grid-column: 1 / -1; }
  .cf-table .c-tot{ text-align: left; }
  .cf-table td[data-label]:not(.c-sup)::before{
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: var(--weight-medium);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-fg-3);
  }
  .cf-table tr.det td{ padding: 0; }
  .det__box{ border-top: 0; border-radius: 0 0 var(--radius-md) var(--radius-md); border-color: var(--color-border-strong); }
  .det__checks{ grid-template-columns: 1fr; }
}
@media (max-width: 479px){
  .cf-sheet__actions{ width: 100%; justify-content: space-between; }
  .cf-legend{ display: grid; }
}

/* --- 03 · Prose ----------------------------------------------------------- */
.prose{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(var(--space-8), 5vw, var(--space-20));
  border-bottom: 1px solid var(--color-border-strong);
}
.prose__item{
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding-block: var(--space-8);
  border-top: 1px solid var(--color-border-strong);
}
.prose__num{
  font-family: var(--font-mono);
  font-size: var(--text-label);
  letter-spacing: var(--tracking-label);
  color: var(--cobalt);
}
.prose__item .t-body{ max-width: 62ch; }
.cf-limits{ max-width: 80ch; margin-top: var(--space-8); }
@media (max-width: 819px){ .prose{ grid-template-columns: 1fr; } }

/* --- Closing CTA ---------------------------------------------------------- */
.cf-close{ background: var(--ink-900); }
.close-card{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: var(--space-10) clamp(var(--space-10), 6vw, var(--space-24));
  align-items: end;
  padding: clamp(var(--space-8), 6vw, var(--space-20));
  background: var(--grad-ink);
  color: #fff;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-xl);
}
.close-card .mesh{ z-index: -1; opacity: .6; }
.close-card__main{ display: grid; gap: var(--space-6); }
.close-card .eyebrow{ color: rgba(255,255,255,.82); }
.close-card h2{ max-width: 18ch; }
.close-card h2 .t-tone{ color: var(--cobalt); }
.close-card .t-lead{ max-width: 54ch; color: rgba(255,255,255,.84); }
.close-card__ctas{ display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-2); }
.close-card .btn--outline{ border-color: rgba(255,255,255,.4); color: #fff; }
.close-card .btn--outline:hover{ border-color: #fff; background: rgba(255,255,255,.08); }
.close-card__who{
  display: grid;
  gap: var(--space-3);
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  background: rgba(7,8,18,.6);
  border: 1px solid rgba(255,255,255,.12);
}
.close-card__avatar{
  display: grid;
  place-items: center;
  width: 48px; height: 48px;
  margin-bottom: var(--space-2);
  border-radius: 50%;
  background: #fff;
  color: var(--cobalt);
}
.close-card__avatar svg{ width: 26px; height: 26px; }
.close-card__name{ font-size: var(--text-h3); font-weight: var(--weight-medium); letter-spacing: var(--tracking-title); }
.close-card__role{ color: rgba(255,255,255,.78); max-width: 40ch; }
@media (max-width: 899px){ .close-card{ grid-template-columns: 1fr; } }
@media (max-width: 479px){
  .close-card__ctas{ display: grid; }
  .close-card__ctas .btn{ width: 100%; }
  .close-card__ctas .btn--outline{ white-space: normal; height: auto; min-height: 56px; }
}

/* --- Compact footer ------------------------------------------------------- */
.footer--compact .footer__top{ grid-template-columns: minmax(0, 1.8fr) repeat(3, minmax(0, 1fr)); }
.footer--compact .footer__bottom{ margin-top: 0; }
@media (max-width: 899px){ .footer--compact .footer__top{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 559px){
  .footer--compact .footer__top{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer--compact .footer__col:last-child{ grid-column: 1 / -1; }
}
.footer--compact{ padding-top: clamp(var(--space-12), 6vw, var(--space-20)); }
.footer--compact .footer__legal{ margin-top: clamp(var(--space-10), 5vw, var(--space-16)); }

@media print{
  .nav, .menu, .skip-link, .mesh, .cf-hero__art, .cf-load, .cf-close, .footer, .cf-checks{ display: none !important; }
  .js .reveal{ opacity: 1 !important; transform: none !important; }
}

/* Pulsante in testata in cobalto, come sul resto del sito */
.btn.nav__cta{ background: #1F48FF; color: #fff; }
.nav__cta > *, .nav[data-theme="light"] .nav__cta > *{ color: #fff; }
.btn.nav__cta:hover{ background: #1A3BD6; }
