/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/[lang]/layout.tsx","import":"Archivo","arguments":[{"subsets":["latin"],"weight":["500","600","700","800"],"display":"swap","variable":"--font-archivo"}],"variableName":"archivo"} ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b06b356f834173cc-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/23d669af23d19c95-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/1a4aa50920b5315c-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b06b356f834173cc-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/23d669af23d19c95-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/1a4aa50920b5315c-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b06b356f834173cc-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/23d669af23d19c95-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/1a4aa50920b5315c-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b06b356f834173cc-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/23d669af23d19c95-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/1a4aa50920b5315c-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'Archivo Fallback';src: local("Arial");ascent-override: 88.96%;descent-override: 21.28%;line-gap-override: 0.00%;size-adjust: 98.70%
}.__className_ef95b1 {font-family: 'Archivo', 'Archivo Fallback';font-style: normal
}.__variable_ef95b1 {--font-archivo: 'Archivo', 'Archivo Fallback'
}

/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================
   Trantor — design tokens (light / dark)
   Derived from the original design comps: light values are the
   literal colors used on light sections; dark values follow the
   comp's dark-theme remap.
   ============================================================ */
:root {
  color-scheme: light;
  --bg: #F6FAF9;            /* page / light-section background */
  --surface: #FFFFFF;       /* white cards and white sections */
  --ink: #0C2926;           /* headings & primary text on light */
  --muted: #46615C;         /* secondary text on light */
  --body: #33504B;          /* body text on light */
  --faint: #5A736E;         /* small labels on light */
  --accent: #107667;        /* accent text / links on light — 4.6:1 anche sul pill-bg (WCAG 1.4.3) */
  --teal: #33CDB7;
  --teal-bright: #5FDCC9;
  --brand-deep: #0C2926;    /* full-bleed dark sections (hero, nav, footer, CTA) — constant */
  --dark-card: #0C2926;     /* dark rounded cards inside light sections */
  --pill-bg: #DCEFEA;
  --card-border: #CBE2DC;   /* 2px card borders */
  --hairline: #D8E6E2;      /* 1px separators */
  --ink-border: #0C2926;    /* 2px dark borders on light */
  --ref-box: #FFFFFF;       /* client-logo boxes: stay light in dark mode */
}

html.dark {
  color-scheme: dark;
  --bg: #0B2422;
  --surface: #0E2B28;
  --ink: #EAF4F1;
  --muted: #A9C6C0;
  --body: #B7CFCA;
  --faint: #8FB5AE;
  --accent: #33CDB7;
  --dark-card: #123833;
  --pill-bg: rgba(51, 205, 183, .15);
  --card-border: rgba(255, 255, 255, .16);
  --hairline: rgba(255, 255, 255, .1);
  --ink-border: rgba(255, 255, 255, .14);
  --ref-box: #F6FAF9;
}

/* ============================================================
   Base
   ============================================================ */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  /* Chi chiede meno movimento non deve vedere nulla che si muove da solo:
     vale anche per le animazioni infinite (per esempio il quorum di TVStor). */
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-archivo), Archivo, Helvetica, Arial, sans-serif;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

a {
  color: var(--accent);
}

a:hover {
  color: var(--teal);
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}

/* Barra «Condividi» sotto gli articoli (components/Share) */
.share-btn { transition: color .15s ease, border-color .15s ease; }
.share-btn:hover { color: var(--accent) !important; border-color: var(--accent) !important; }

/* ============================================================
   Corpo degli articoli, convertito da Markdown (components/Md)
   ============================================================ */
.md > :first-child { margin-top: 0; }
.md h2 { font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); margin: 30px 0 12px; }
.md h3 { font-size: 18px; font-weight: 800; margin: 24px 0 10px; }
.md p { margin: 0 0 16px; font-size: clamp(16px,1.9vw,18px); line-height: 1.75; color: var(--body); text-wrap: pretty; }
.md ul, .md ol { margin: 0 0 16px; padding-left: 22px; display: flex; flex-direction: column; gap: 9px; }
.md li { font-size: clamp(16px,1.9vw,18px); line-height: 1.7; color: var(--body); }
.md a { color: var(--accent); font-weight: 700; text-decoration: none; }
.md a:hover { text-decoration: underline; }
.md strong { color: var(--ink); }
.md code { font-size: 14px; background: var(--pill-bg); border-radius: 4px; padding: 1px 5px; overflow-wrap: anywhere; }


/* «Vai al contenuto»: primo elemento raggiungibile col Tab, invisibile finché
   non riceve il focus. Senza, da tastiera si attraversa tutta la navbar a ogni
   pagina (WCAG 2.4.1). */
.skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 300;
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: top .15s ease;
}

.skip-link:focus {
  top: 12px;
}

.skip-link { background: #33CDB7; color: #0C2926; }

/* ============================================================
   Language toggle (IT default, EN via `en` class on <html>)
   ============================================================ */
/* La lingua non si nasconde più con la CSS: ogni edizione ha il suo albero
   di URL (/it e /en) e serve una lingua sola (vedi lib/lang.ts). */

/* Theme toggle button icons */
[data-ti] { display: inline-flex; }
html:not(.dark) [data-ti="sun"] { display: none; }
html.dark [data-ti="moon"] { display: none; }

/* Emblemi adattivi al tema (componente Emblem): variante ink sul chiaro,
   originale bianca sullo scuro */
html:not(.dark) .emblem-white { display: none; }
html.dark .emblem-ink { display: none; }

/* ============================================================
   Hover utilities — the 8 hover patterns of the design comps.
   `!important` is required to win over inline styles.
   ============================================================ */
.hov-white,
.hov-fill,
.hov-outline,
.hov-border,
.hov-wash,
.hov-card,
.hov-teal,
.hov-accent {
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

.hov-white:hover { color: #FFFFFF !important; }
.hov-fill:hover { background: #5FDCC9 !important; color: #0C2926 !important; }
.hov-outline:hover { border-color: #33CDB7 !important; color: #33CDB7 !important; }
.hov-border:hover { border-color: #33CDB7 !important; }
.hov-wash:hover { background: rgba(255, 255, 255, .07) !important; }
.hov-card:hover { border-color: #33CDB7 !important; background: var(--surface) !important; }
.hov-teal:hover { color: #33CDB7 !important; }
.hov-accent:hover { color: var(--accent) !important; }

/* ============================================================
   Hero visuals: emblemi di prodotto e illustrazioni di servizio.
   Su mobile passano sopra al titolo e dimezzano la dimensione.
   ============================================================ */
.hero-emblem,
.hero-illustr {
  flex: none;
  max-width: 100%;
  height: auto;
}

.hero-emblem { width: clamp(200px, 24vw, 320px); }
.hero-illustr { width: clamp(280px, 34vw, 430px); }

@media (max-width: 860px) {
  .hero-emblem,
  .hero-illustr {
    order: -1;
    align-self: flex-start;
  }

  .hero-emblem { width: clamp(100px, 12vw, 160px); }
  .hero-illustr { width: clamp(140px, 17vw, 215px); }
}

/* Imago adapter map: row on desktop, stacked column on small screens
   (the nowrap channel chips make the row unable to shrink) */
@media (max-width: 640px) {
  .adapter-map {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .adapter-map .adapter-arrow {
    transform: rotate(90deg);
  }
}

/* ============================================================
   Nav responsive (breakpoint 860px, as in the design comps)
   ============================================================ */
@media (max-width: 860px) {
  .nav-desktop { display: none !important; }
  .hide-mobile { display: none !important; }
}

@media (min-width: 861px) {
  .nav-burger { display: none !important; }
}

/* Narrow phones: the nav row's fixed items (logo, language pill, theme,
   burger) need tighter gaps and padding to fit without overflowing */
@media (max-width: 430px) {
  .nav-row {
    gap: 12px !important;
    padding: 0 14px !important;
  }
}

@media (max-width: 340px) {
  .nav-row {
    gap: 8px !important;
    padding: 0 10px !important;
  }

  .nav-logo { gap: 8px !important; }
  .nav-logo img { width: 26px !important; height: 26px !important; }
  .nav-logo span { font-size: 17px !important; }

  .lang-auto {
    padding: 6px 10px !important;
    font-size: 11.5px !important;
  }
}

/* Visually hidden but exposed to assistive tech: accessible names that must
   follow the active language go through <T> inside this, not aria-label */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Language pill pushes right on mobile (desktop menu hidden) */
.lang-auto { margin-left: auto; }
@media (min-width: 861px) {
  .lang-auto { margin-left: 0; }
}

