/* ==========================================================================
   libraionet.css  —  Tema grafico di Libraionet.it (restyling 2026)
   Si carica DOPO bootstrap.min.css (Bootstrap 5.3).

   COME FUNZIONANO LE COMBINAZIONI DI COLORI
   Ogni combinazione è un blocco  [data-tema="nome"]  qui sotto.
   Il tema attivo si sceglie dall'Area di gestione (/admin/) oppure,
   a mano, nel file /mdb-database/impostazioni/tema.txt.
   Per creare un tema nuovo: copiare un blocco, cambiare nome e colori,
   poi aggiungerlo all'elenco TEMI in /includes/config.asp.

   Variabili di ogni tema:
     --lnet-primario      colore principale (testate, titoli, pulsanti principali)
     --lnet-primario-rgb  lo stesso in R,G,B (per trasparenze)
     --lnet-primario-scuro  versione scura (piè di pagina, hover)
     --lnet-accento       colore delle azioni (Cerca, Prenota, Prova)
     --lnet-accento-scuro hover del pulsante d'accento
     --lnet-accento-chiaro  sfondo tenue d'accento (etichette "Disponibile")
     --lnet-fondo         fondo alternato delle sezioni
     --lnet-testo         testo principale
     --lnet-testo-tenue   testo secondario (contrasto ≥ 4.5:1 su bianco)
     --lnet-bordo         linee e bordi delle schede
   Facoltative (se mancano valgono i valori predefiniti qui sotto):
     --lnet-accento-testo testo/icone nel colore d'accento (deve leggersi su bianco)
     --lnet-accento-hover fondo del pulsante d'accento al passaggio del mouse
     --lnet-su-accento    colore del testo sopra il pulsante d'accento
   ========================================================================== */

/* Caratteri ospitati sul sito (nessuna chiamata a Google: più veloce e conforme al GDPR) */
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/figtree-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 500; font-display: swap; src: url("/fonts/figtree-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/figtree-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/fraunces-latin-600-normal.woff2") format("woff2"); }

/* Valori predefiniti delle variabili facoltative (i temi possono cambiarli) */
:root, [data-tema] {
  --lnet-su-accento: #FFFFFF;
  --lnet-accento-testo: var(--lnet-accento);
  --lnet-accento-hover: var(--lnet-accento-scuro);
}

:root,
[data-tema="inchiostro"] {
  --lnet-primario: #1E3A5F;  --lnet-primario-rgb: 30, 58, 95;  --lnet-primario-scuro: #14283F;
  --lnet-accento: #2F7D6D;   --lnet-accento-scuro: #24635A;    --lnet-accento-chiaro: #E3F0EC;
  --lnet-fondo: #F6F5F2;     --lnet-testo: #1B1F24;            --lnet-testo-tenue: #5A6470;
  --lnet-bordo: #E4E2DC;     --lnet-su-scuro: #D5DEE8;         --lnet-etichetta-su-scuro: #A9D3C8;
}
[data-tema="bordeaux"] {
  --lnet-primario: #5B1F2B;  --lnet-primario-rgb: 91, 31, 43;  --lnet-primario-scuro: #3E141D;
  --lnet-accento: #9A5B12;   --lnet-accento-scuro: #7C490E;    --lnet-accento-chiaro: #F6EAD9;
  --lnet-fondo: #F7F3EE;     --lnet-testo: #231A1C;            --lnet-testo-tenue: #66595C;
  --lnet-bordo: #E8DFD6;     --lnet-su-scuro: #EBD9DD;         --lnet-etichetta-su-scuro: #F0C98F;
}
[data-tema="ardesia"] {
  --lnet-primario: #2B3440;  --lnet-primario-rgb: 43, 52, 64;  --lnet-primario-scuro: #1C232C;
  --lnet-accento: #2F6FB0;   --lnet-accento-scuro: #255A90;    --lnet-accento-chiaro: #E2ECF7;
  --lnet-fondo: #F3F5F7;     --lnet-testo: #1A1E23;            --lnet-testo-tenue: #59626D;
  --lnet-bordo: #DFE3E8;     --lnet-su-scuro: #D3DAE2;         --lnet-etichetta-su-scuro: #A8C8EC;
}
[data-tema="foresta"] {
  --lnet-primario: #1F3D33;  --lnet-primario-rgb: 31, 61, 51;  --lnet-primario-scuro: #142921;
  --lnet-accento: #B0532F;   --lnet-accento-scuro: #8F4326;    --lnet-accento-chiaro: #F6E4DC;
  --lnet-fondo: #F5F3EE;     --lnet-testo: #1B201D;            --lnet-testo-tenue: #59625D;
  --lnet-bordo: #E3E0D8;     --lnet-su-scuro: #D3E0DA;         --lnet-etichetta-su-scuro: #F2B79E;
}
[data-tema="azzurro"] {
  --lnet-primario: #0B4F8A;  --lnet-primario-rgb: 11, 79, 138; --lnet-primario-scuro: #08355D;
  --lnet-accento: #C2410C;   --lnet-accento-scuro: #9A340A;    --lnet-accento-chiaro: #FDEBDD;
  --lnet-fondo: #F2F6FA;     --lnet-testo: #172230;            --lnet-testo-tenue: #536173;
  --lnet-bordo: #DCE5EE;     --lnet-su-scuro: #D2E2F1;         --lnet-etichetta-su-scuro: #FFC79E;
}

/* --- Temi aggiunti a ottobre 2026 (dalle palette "6 palette per un sito moderno").
       Colori della palette; dove serviva sono stati scuriti appena per la
       leggibilita' (contrasto WCAG AA, 4.5:1). --- */
[data-tema="professionale"] {
  --lnet-primario: #0F172A;  --lnet-primario-rgb: 15, 23, 42;  --lnet-primario-scuro: #0B1120;
  --lnet-accento: #2563EB;   --lnet-accento-scuro: #1D4ED8;    --lnet-accento-chiaro: #DBEAFE;
  --lnet-fondo: #F8FAFC;     --lnet-testo: #0F172A;            --lnet-testo-tenue: #475569;
  --lnet-bordo: #E2E8F0;     --lnet-su-scuro: #CBD5E1;         --lnet-etichetta-su-scuro: #93C5FD;
}
[data-tema="nerooro"] {
  --lnet-primario: #111827;  --lnet-primario-rgb: 17, 24, 39;  --lnet-primario-scuro: #0B0F19;
  --lnet-accento: #C8A96B;   --lnet-accento-scuro: #7A5C26;    --lnet-accento-chiaro: #F5EEDF;
  --lnet-fondo: #F7F5F0;     --lnet-testo: #111827;            --lnet-testo-tenue: #4B5563;
  --lnet-bordo: #E7E2D8;     --lnet-su-scuro: #D1D5DB;         --lnet-etichetta-su-scuro: #E3C98F;
  --lnet-su-accento: #111827; --lnet-accento-hover: #B0884D;   --lnet-accento-testo: #84652B;
}
[data-tema="salvia"] {
  --lnet-primario: #2F3E34;  --lnet-primario-rgb: 47, 62, 52;  --lnet-primario-scuro: #1F2A23;
  --lnet-accento: #58765D;   --lnet-accento-scuro: #46624C;    --lnet-accento-chiaro: #E6EEE7;
  --lnet-fondo: #F4F5F1;     --lnet-testo: #2F3E34;            --lnet-testo-tenue: #5F6B63;
  --lnet-bordo: #E3E6E0;     --lnet-su-scuro: #D5DED7;         --lnet-etichetta-su-scuro: #B9D3BE;
}
[data-tema="grigioarancio"] {
  --lnet-primario: #1F2937;  --lnet-primario-rgb: 31, 41, 55;  --lnet-primario-scuro: #111827;
  --lnet-accento: #C2410C;   --lnet-accento-scuro: #9A3412;    --lnet-accento-chiaro: #FFEDD5;
  --lnet-fondo: #F9FAFB;     --lnet-testo: #1F2937;            --lnet-testo-tenue: #6B7280;
  --lnet-bordo: #E5E7EB;     --lnet-su-scuro: #D1D5DB;         --lnet-etichetta-su-scuro: #FDBA74;
}
[data-tema="minimal"] {
  --lnet-primario: #1D1D1F;  --lnet-primario-rgb: 29, 29, 31;  --lnet-primario-scuro: #111113;
  --lnet-accento: #0071E3;   --lnet-accento-scuro: #0058B0;    --lnet-accento-chiaro: #E8F1FC;
  --lnet-fondo: #F5F5F7;     --lnet-testo: #1D1D1F;            --lnet-testo-tenue: #6E6E73;
  --lnet-bordo: #E5E5EA;     --lnet-su-scuro: #D2D2D7;         --lnet-etichetta-su-scuro: #7DB8F7;
  --lnet-accento-testo: #0066CC;
}
[data-tema="arredo"] {
  --lnet-primario: #242424;  --lnet-primario-rgb: 36, 36, 36;  --lnet-primario-scuro: #171717;
  --lnet-accento: #637C70;   --lnet-accento-scuro: #4F645A;    --lnet-accento-chiaro: #E7EEEA;
  --lnet-fondo: #F7F7F5;     --lnet-testo: #242424;            --lnet-testo-tenue: #646464;
  --lnet-bordo: #E6E4DF;     --lnet-su-scuro: #D6D6D3;         --lnet-etichetta-su-scuro: #B7CFC3;
  --lnet-accento-testo: #4F645A;
}

/* --------------------------------------------------------------------------
   Collegamento ai colori di Bootstrap
   -------------------------------------------------------------------------- */
:root, [data-tema] {
  --bs-body-font-family: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-font-size: 1.0625rem;
  --bs-body-line-height: 1.6;
  --bs-body-color: var(--lnet-testo);
  --bs-body-bg: #FFFFFF;
  --bs-primary: var(--lnet-primario);
  --bs-primary-rgb: var(--lnet-primario-rgb);
  --bs-link-color: var(--lnet-primario);
  --bs-link-color-rgb: var(--lnet-primario-rgb);
  --bs-link-hover-color: var(--lnet-accento-testo);
  --bs-secondary-color: var(--lnet-testo-tenue);
  --bs-border-color: var(--lnet-bordo);
  --bs-border-radius: .5rem;
  --bs-border-radius-lg: .75rem;
  --lnet-font-titoli: "Fraunces", Georgia, "Times New Roman", serif;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { text-underline-offset: .18em; }
::selection { background: var(--lnet-accento-chiaro); }
:focus-visible { outline: 3px solid var(--lnet-accento); outline-offset: 2px; }

h1, h2, h3, .lnet-titolo { font-family: var(--lnet-font-titoli); font-weight: 600; color: var(--lnet-primario); letter-spacing: -.015em; }
h1, .lnet-h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.08; }
h2, .lnet-h2 { font-size: clamp(1.65rem, 3.4vw, 2.45rem); line-height: 1.15; }
h3 { font-family: inherit; font-size: 1.2rem; font-weight: 600; color: var(--lnet-testo); letter-spacing: 0; }
.lnet-sopratitolo { font-size: .85rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--lnet-accento-testo); margin-bottom: .75rem; }
.lnet-lead { font-size: 1.15rem; color: var(--lnet-testo-tenue); max-width: 36em; }
.text-tenue { color: var(--lnet-testo-tenue) !important; }

/* Pulsanti */
.btn { --bs-btn-padding-y: .7rem; --bs-btn-padding-x: 1.25rem; --bs-btn-font-weight: 600; --bs-btn-border-radius: .5rem; min-height: 44px; }
.btn-sm { --bs-btn-padding-y: .4rem; --bs-btn-padding-x: .8rem; min-height: 36px; }
.btn-primary {
  --bs-btn-bg: var(--lnet-primario); --bs-btn-border-color: var(--lnet-primario);
  --bs-btn-hover-bg: var(--lnet-primario-scuro); --bs-btn-hover-border-color: var(--lnet-primario-scuro);
  --bs-btn-active-bg: var(--lnet-primario-scuro); --bs-btn-active-border-color: var(--lnet-primario-scuro);
  --bs-btn-disabled-bg: var(--lnet-primario); --bs-btn-disabled-border-color: var(--lnet-primario);
}
.btn-accento {
  --bs-btn-color: var(--lnet-su-accento); --bs-btn-bg: var(--lnet-accento); --bs-btn-border-color: var(--lnet-accento);
  --bs-btn-hover-color: var(--lnet-su-accento); --bs-btn-hover-bg: var(--lnet-accento-hover); --bs-btn-hover-border-color: var(--lnet-accento-hover);
  --bs-btn-active-color: var(--lnet-su-accento); --bs-btn-active-bg: var(--lnet-accento-hover); --bs-btn-active-border-color: var(--lnet-accento-hover);
}
.btn-outline-primary {
  --bs-btn-color: var(--lnet-primario); --bs-btn-border-color: #C9CDD3; --bs-btn-bg: #FFFFFF;
  --bs-btn-hover-color: #FFFFFF; --bs-btn-hover-bg: var(--lnet-primario); --bs-btn-hover-border-color: var(--lnet-primario);
  --bs-btn-active-bg: var(--lnet-primario-scuro); --bs-btn-active-border-color: var(--lnet-primario-scuro);
}

/* Campi */
.form-control, .form-select { min-height: 48px; border-color: #C9CDD3; }
.form-control:focus, .form-select:focus { border-color: var(--lnet-accento); box-shadow: 0 0 0 .2rem rgba(var(--lnet-primario-rgb), .15); }
.form-label { font-weight: 600; font-size: .95rem; }
.form-check-input:checked { background-color: var(--lnet-primario); border-color: var(--lnet-primario); }

/* --------------------------------------------------------------------------
   Testata e menu
   -------------------------------------------------------------------------- */
.lnet-testata { background: #FFFFFF; border-bottom: 1px solid var(--lnet-bordo); }
.lnet-testata .navbar { --bs-navbar-padding-y: .85rem; }
.lnet-marchio { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--lnet-primario); }
.lnet-marchio:hover { color: var(--lnet-primario); }
.lnet-marchio svg { width: 40px; height: 40px; flex: 0 0 auto; }
.lnet-marchio .lnet-nome { font-family: var(--lnet-font-titoli); font-weight: 600; font-size: 1.4rem; letter-spacing: -.01em; line-height: 1; }
.lnet-marchio .lnet-nome small { display: block; font-family: var(--bs-body-font-family); font-size: .7rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--lnet-testo-tenue); margin-top: .2rem; }
.lnet-testata .nav-link { color: var(--lnet-testo); font-weight: 500; font-size: .98rem; padding: .7rem .1rem !important; }
.lnet-testata .nav-link:hover, .lnet-testata .nav-link.active { color: var(--lnet-primario); }
.lnet-testata .nav-link.active { box-shadow: inset 0 -2px 0 var(--lnet-accento); }
.lnet-testata .dropdown-menu { --bs-dropdown-border-color: var(--lnet-bordo); --bs-dropdown-link-active-bg: var(--lnet-primario); border-radius: .6rem; padding: .4rem; }
.lnet-testata .dropdown-item { border-radius: .4rem; padding: .55rem .8rem; }
@media (min-width: 992px) { .lnet-testata .navbar-nav { gap: 1.6rem; } }
@media (max-width: 991.98px) {
  .lnet-testata .navbar-collapse { padding: .5rem 0 1rem; }
  .lnet-testata .nav-link { padding: .8rem 0 !important; border-bottom: 1px solid var(--lnet-bordo); }
  .lnet-testata .nav-link.active { box-shadow: none; color: var(--lnet-accento-testo); }
  .lnet-testata .dropdown-menu { border: 0; padding: 0 0 .5rem 1rem; }
}

.lnet-avviso { background: var(--lnet-accento-chiaro); color: var(--lnet-testo); font-size: .95rem; text-align: center; padding: .6rem 1rem; }

/* --------------------------------------------------------------------------
   Sezioni
   -------------------------------------------------------------------------- */
.lnet-sezione { padding: 4.5rem 0; }
.lnet-sezione-fondo { background: var(--lnet-fondo); }
.lnet-sezione-scura { background: var(--lnet-primario); color: #FFFFFF; }
.lnet-sezione-scura h2 { color: #FFFFFF; }
.lnet-sezione-scura .lnet-sopratitolo { color: var(--lnet-etichetta-su-scuro); }
.lnet-sezione-scura .lnet-lead, .lnet-sezione-scura p { color: var(--lnet-su-scuro); }
@media (max-width: 575.98px) { .lnet-sezione { padding: 3rem 0; } }

.lnet-hero { background: var(--lnet-fondo); padding: 4.5rem 0 5rem; }
@media (max-width: 575.98px) { .lnet-hero { padding: 2.5rem 0 3rem; } }

/* Finta schermata del gestionale (si sostituisce con una schermata vera) */
.lnet-finestra { background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; overflow: hidden; }
.lnet-finestra-barra { display: flex; align-items: center; gap: .45rem; padding: .7rem 1rem; border-bottom: 1px solid var(--lnet-bordo); background: #FBFAF8; font-size: .82rem; color: var(--lnet-testo-tenue); }
.lnet-finestra-barra i { width: 10px; height: 10px; border-radius: 50%; background: #D9D6CF; display: inline-block; }
.lnet-finestra img { display: block; width: 100%; height: auto; }

/* Numeri */
.lnet-numeri { border-bottom: 1px solid var(--lnet-bordo); padding: 2rem 0; }
.lnet-numero strong { display: block; font-family: var(--lnet-font-titoli); font-weight: 600; font-size: 1.9rem; color: var(--lnet-primario); line-height: 1.2; }
.lnet-numero span { font-size: .95rem; color: var(--lnet-testo-tenue); }

/* Schede */
.lnet-scheda { border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1.75rem; height: 100%; display: flex; flex-direction: column; gap: .75rem; background: #FFFFFF; transition: border-color .15s ease, transform .15s ease; }
.lnet-scheda:hover { border-color: rgba(var(--lnet-primario-rgb), .35); }
.lnet-scheda p { margin: 0; color: var(--lnet-testo-tenue); font-size: 1rem; }
.lnet-scheda .lnet-icona { width: 44px; height: 44px; border-radius: .6rem; background: var(--lnet-accento-chiaro); color: var(--lnet-accento-testo); display: flex; align-items: center; justify-content: center; }
.lnet-scheda .lnet-icona svg { width: 24px; height: 24px; }
.lnet-scheda .lnet-link { margin-top: auto; font-weight: 600; font-size: .97rem; text-decoration: none; }
.lnet-scheda .lnet-link::after { content: " \2192"; }
a.lnet-scheda { text-decoration: none; color: inherit; }
a.lnet-scheda:hover { transform: translateY(-2px); }

/* Riquadro bianco su sezione scura (ricerca Mercatino) */
.lnet-pannello { background: #FFFFFF; color: var(--lnet-testo); border-radius: .8rem; padding: 1.5rem; }
.lnet-pannello p { color: var(--lnet-testo-tenue); }
.lnet-pillole { display: flex; flex-wrap: wrap; gap: .5rem; }
.lnet-pillole .btn-check + .btn { --bs-btn-padding-y: .35rem; --bs-btn-padding-x: .9rem; min-height: 36px; border-radius: 99px; border-color: #C9CDD3; color: var(--lnet-testo); font-weight: 500; }
.lnet-pillole .btn-check:checked + .btn { background: var(--lnet-primario); border-color: var(--lnet-primario); color: #FFFFFF; }

.lnet-codice { max-width: 7.5rem; letter-spacing: .25em; font-size: 1.15rem; text-align: center; }

/* Etichette di stato */
.lnet-etichetta { display: inline-block; font-size: .78rem; font-weight: 600; border-radius: 99px; padding: .15rem .65rem; }
.lnet-etichetta-ok { background: var(--lnet-accento-chiaro); color: var(--lnet-accento-scuro); }
.lnet-etichetta-attesa { background: #F7EBD7; color: #7A4F0F; }
.lnet-etichetta-info { background: rgba(var(--lnet-primario-rgb), .1); color: var(--lnet-primario); }

/* Tabelle che su telefono diventano schede (aggiungere class="lnet-tabella-mobile"
   e data-label="Nome colonna" su ogni <td>) */
@media (max-width: 575.98px) {
  .lnet-tabella-mobile thead { display: none; }
  .lnet-tabella-mobile tr { display: block; border: 1px solid var(--lnet-bordo); border-radius: .6rem; margin-bottom: .75rem; padding: .5rem .75rem; }
  .lnet-tabella-mobile td { display: grid; grid-template-columns: 6.5rem 1fr; gap: .75rem; border: 0; padding: .3rem 0; text-align: left; }
  .lnet-tabella-mobile td::before { content: attr(data-label); font-weight: 600; color: var(--lnet-testo-tenue); text-align: left; }
}

/* --------------------------------------------------------------------------
   Piè di pagina
   -------------------------------------------------------------------------- */
.lnet-piede { background: var(--lnet-primario-scuro); color: var(--lnet-su-scuro); font-size: .95rem; padding: 3.5rem 0 2rem; }
.lnet-piede a { color: var(--lnet-su-scuro); }
.lnet-piede a:hover { color: #FFFFFF; }
.lnet-piede h2 { font-family: var(--bs-body-font-family); font-size: .95rem; font-weight: 600; color: #FFFFFF; letter-spacing: 0; margin-bottom: .75rem; }
.lnet-piede ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.lnet-piede .lnet-marchio { color: #FFFFFF; }
.lnet-piede .lnet-marchio .lnet-nome small { color: var(--lnet-su-scuro); }
.lnet-piede-fine { border-top: 1px solid rgba(255,255,255,.14); margin-top: 2.5rem; padding-top: 1.25rem; font-size: .85rem; opacity: .85; }

/* Accessibilità: salto al contenuto */
.lnet-salta { position: absolute; left: -9999px; top: 0; z-index: 2000; background: #FFFFFF; padding: .6rem 1rem; }
.lnet-salta:focus { left: 1rem; top: 1rem; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Logo su fondo scuro: il cerchio prende il colore d'accento */
.lnet-piede .lnet-marchio svg, .adm-barra .lnet-marchio svg { color: var(--lnet-accento-testo); }

/* ==========================================================================
   Pagine interne (fase 3)
   ========================================================================== */

/* Testata di pagina con briciole di pane */
.lnet-testa-pagina { background: var(--lnet-fondo); border-bottom: 1px solid var(--lnet-bordo); padding: 2rem 0 2.5rem; }
.lnet-testa-pagina h1 { font-size: clamp(1.9rem, 4.2vw, 2.9rem); margin: 0; }
.lnet-testa-pagina .lnet-lead { margin-top: .85rem; margin-bottom: 0; }
.lnet-briciole { font-size: .88rem; margin-bottom: 1rem; }
.lnet-briciole ol { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem; padding: 0; margin: 0; }
.lnet-briciole li + li::before { content: "/"; color: var(--lnet-testo-tenue); margin-right: .25rem; }
.lnet-briciole a { color: var(--lnet-testo-tenue); text-decoration: none; }
.lnet-briciole a:hover { color: var(--lnet-primario); text-decoration: underline; }
.lnet-briciole [aria-current] { color: var(--lnet-testo); }

/* Testo lungo leggibile */
.lnet-testo { max-width: 44rem; }
.lnet-testo h2 { font-size: clamp(1.4rem, 2.6vw, 1.85rem); margin: 2.5rem 0 .9rem; }
.lnet-testo h3 { margin: 1.75rem 0 .5rem; }
.lnet-testo p, .lnet-testo li { color: #2F3742; }
.lnet-testo ul { padding-left: 1.2rem; }
.lnet-testo li { margin-bottom: .35rem; }

/* Elenco con segni di spunta */
.lnet-spunte { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.lnet-spunte li { position: relative; padding-left: 1.9rem; }
.lnet-spunte li::before { content: ""; position: absolute; left: 0; top: .2rem; width: 1.2rem; height: 1.2rem; border-radius: 50%;
  background: var(--lnet-accento-chiaro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat; }
@media (min-width: 768px) { .lnet-spunte.lnet-2col { grid-template-columns: 1fr 1fr; column-gap: 2rem; } }

/* Passi numerati */
.lnet-passi { list-style: none; padding: 0; margin: 0; counter-reset: passo; display: grid; gap: 1rem; }
.lnet-passi li { counter-increment: passo; position: relative; padding: 1rem 1rem 1rem 3.6rem; border: 1px solid var(--lnet-bordo); border-radius: .7rem; background: #FFFFFF; }
.lnet-passi li::before { content: counter(passo); position: absolute; left: 1rem; top: 1rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--lnet-primario); color: #FFFFFF; font-weight: 600; display: flex; align-items: center; justify-content: center; font-size: .95rem; }
.lnet-passi strong { display: block; color: var(--lnet-testo); }
.lnet-passi span { color: var(--lnet-testo-tenue); font-size: .97rem; }

/* Schermate del programma */
.lnet-schermata { margin: 0; }
.lnet-schermata .lnet-finestra { display: block; }
.lnet-schermata a { display: block; }
.lnet-schermata img { display: block; width: 100%; height: auto; }
.lnet-schermata figcaption { font-size: .9rem; color: var(--lnet-testo-tenue); margin-top: .6rem; }

/* Galleria con filtri */
.lnet-filtri { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.lnet-filtri .btn { --bs-btn-padding-y: .4rem; --bs-btn-padding-x: 1rem; min-height: 40px; border-radius: 99px; border: 1px solid #C9CDD3; background: #FFFFFF; color: var(--lnet-testo); font-weight: 500; }
.lnet-filtri .btn[aria-pressed="true"] { background: var(--lnet-primario); border-color: var(--lnet-primario); color: #FFFFFF; }
.lnet-galleria { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.lnet-galleria button { all: unset; cursor: zoom-in; display: block; border: 1px solid var(--lnet-bordo); border-radius: .6rem; overflow: hidden; background: #FFFFFF; }
.lnet-galleria button:focus-visible { outline: 3px solid var(--lnet-accento); outline-offset: 2px; }
.lnet-galleria img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: top left; }
.lnet-galleria span { display: block; font-size: .85rem; padding: .5rem .65rem; color: var(--lnet-testo); }
.lnet-galleria [hidden] { display: none !important; }
.modal-content { border-radius: .8rem; }

/* Elenchi di guide (video / pdf) */
.lnet-guide { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.lnet-guide section { border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1.25rem; background: #FFFFFF; }
.lnet-guide h2 { font-family: var(--bs-body-font-family); font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--lnet-accento-testo); margin: 0 0 .6rem; }
.lnet-guide ul { list-style: none; padding: 0; margin: 0; }
.lnet-guide li a { display: flex; align-items: center; gap: .55rem; padding: .5rem 0; text-decoration: none; color: var(--lnet-testo); border-top: 1px solid var(--lnet-bordo); min-height: 44px; }
.lnet-guide li:first-child a { border-top: 0; }
.lnet-guide li a:hover { color: var(--lnet-primario); }
.lnet-guide li svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--lnet-accento-testo); }

/* Pulsanti degli store */
.lnet-store { display: inline-flex; align-items: center; gap: .7rem; padding: .65rem 1.1rem; border-radius: .6rem; background: #111; color: #FFFFFF; text-decoration: none; min-height: 52px; }
.lnet-store:hover { background: #000; color: #FFFFFF; }
.lnet-store svg { width: 24px; height: 24px; }
.lnet-store small { display: block; font-size: .7rem; opacity: .8; line-height: 1; }
.lnet-store strong { display: block; font-size: 1.05rem; line-height: 1.2; font-weight: 600; }

/* Persone del team */
.lnet-persona { display: flex; gap: 1rem; align-items: flex-start; }
.lnet-persona .lnet-iniziali { width: 52px; height: 52px; border-radius: 50%; background: rgba(var(--lnet-primario-rgb), .1); color: var(--lnet-primario); font-weight: 600; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.lnet-persona strong { display: block; }
.lnet-persona span { color: var(--lnet-testo-tenue); font-size: .95rem; }

/* Domande frequenti */
.lnet-faq .accordion-button { font-weight: 600; color: var(--lnet-testo); }
.lnet-faq .accordion-button:not(.collapsed) { background: var(--lnet-fondo); color: var(--lnet-primario); box-shadow: none; }
.lnet-faq .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(var(--lnet-primario-rgb), .15); }

/* Invito finale */
.lnet-invito { background: var(--lnet-fondo); border-radius: 1rem; padding: 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; }
.lnet-invito h2 { margin: 0; font-size: clamp(1.35rem, 2.6vw, 1.8rem); }
.lnet-invito p { margin: .35rem 0 0; color: var(--lnet-testo-tenue); }

/* Navigazione precedente / successivo */
.lnet-pagine { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--lnet-bordo); padding-top: 1.25rem; margin-top: 2.5rem; }
.lnet-pagine a { text-decoration: none; font-weight: 600; }
.lnet-pagine small { display: block; font-weight: 400; color: var(--lnet-testo-tenue); }

/* Campo trappola antispam (invisibile a chi usa il sito) */
.lnet-trappola { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* ==========================================================================
   Immagine della home (disegnata in HTML/SVG: segue i colori del tema)
   Computer: "Dalla scuola al cliente" (flusso in 4 tappe)
   Telefono: "App e scaffale"
   ========================================================================== */
.lnet-flusso { position: relative; display: grid; gap: 1.6rem; padding: .5rem 0; }
.lnet-flusso-linea { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; color: var(--lnet-accento-testo); }
.lnet-tappa { position: relative; width: 52%; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: 14px; padding: 1rem 1.1rem; display: flex; gap: .85rem; align-items: flex-start; box-shadow: 0 16px 32px -22px rgba(var(--lnet-primario-rgb), .4); }
.lnet-flusso > div:nth-of-type(odd) { justify-self: start; }
.lnet-flusso > div:nth-of-type(even) { justify-self: end; }
.lnet-tappa .lnet-tappa-icona { width: 42px; height: 42px; border-radius: 10px; background: var(--lnet-accento-chiaro); color: var(--lnet-accento-testo); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.lnet-tappa .lnet-tappa-icona svg { width: 22px; height: 22px; }
.lnet-tappa small { display: block; font-size: .75rem; font-weight: 600; letter-spacing: .06em; color: var(--lnet-testo-tenue); }
.lnet-tappa strong { display: block; font-size: 1.02rem; color: var(--lnet-testo); line-height: 1.3; }
.lnet-tappa span.d { display: block; font-size: .86rem; color: var(--lnet-testo-tenue); margin-top: .15rem; line-height: 1.4; }
.lnet-tappa.lnet-tappa-fine { background: var(--lnet-primario); border-color: var(--lnet-primario); }
.lnet-tappa.lnet-tappa-fine small, .lnet-tappa.lnet-tappa-fine span.d { color: var(--lnet-su-scuro); }
.lnet-tappa.lnet-tappa-fine strong { color: #FFFFFF; }
.lnet-tappa.lnet-tappa-fine .lnet-tappa-icona { background: rgba(255,255,255,.14); color: #FFFFFF; }

.lnet-app-scaffale { position: relative; max-width: 360px; margin: 0 auto; padding-bottom: 1.5rem; }
.lnet-scaffale { display: block; width: 100%; height: auto; position: absolute; left: 0; right: 0; bottom: 0; }
.lnet-telefono { position: relative; z-index: 1; width: 210px; margin: 0 auto 2.2rem; background: #1B1F24; border-radius: 34px; padding: 9px; box-shadow: 0 30px 60px -28px rgba(20,40,63,.6); }
.lnet-telefono-schermo { background: #FFFFFF; border-radius: 26px; overflow: hidden; }
.lnet-telefono-testa { background: var(--lnet-primario); color: #FFFFFF; padding: 1.4rem 1rem .8rem; }
.lnet-telefono-testa small { display: block; font-size: .7rem; opacity: .8; }
.lnet-telefono-testa strong { display: block; font-family: var(--lnet-font-titoli); font-size: 1.05rem; font-weight: 600; }
.lnet-telefono-corpo { padding: .75rem .85rem 1rem; display: grid; gap: .55rem; font-size: .78rem; }
.lnet-telefono-avviso { background: var(--lnet-accento-chiaro); color: var(--lnet-accento-scuro); border-radius: 8px; padding: .5rem .65rem; font-weight: 600; }
.lnet-telefono-riga { display: flex; justify-content: space-between; align-items: center; gap: .5rem; border-bottom: 1px solid #F0EEE9; padding-bottom: .45rem; }
.lnet-telefono-riga:last-child { border-bottom: 0; padding-bottom: 0; }
.lnet-telefono-riga .lnet-etichetta { font-size: .68rem; padding: .1rem .5rem; }

/* ==========================================================================
   Area librerie (fase 4): scheda libreria, moduli, esiti, elenchi dei libri
   ========================================================================== */
.lnet-libreria { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.25rem; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1rem 1.25rem; margin-bottom: 2rem; }
.lnet-libreria-logo { display: block; width: auto; height: auto; max-width: 132px; max-height: 86px; object-fit: contain; border-radius: .4rem; }
.lnet-libreria-sigla { width: 56px; height: 56px; flex: 0 0 auto; border-radius: .7rem; background: var(--lnet-primario); color: #FFFFFF; font-family: var(--lnet-font-titoli); font-weight: 600; font-size: 1.6rem; display: flex; align-items: center; justify-content: center; }
.lnet-libreria-dati { flex: 1 1 15rem; min-width: 0; line-height: 1.4; }
.lnet-libreria-dati small { display: block; font-size: .74rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--lnet-accento-testo); }
.lnet-libreria-dati strong { display: block; font-size: 1.15rem; color: var(--lnet-primario); margin: .1rem 0 .15rem; }
.lnet-libreria-dati span { display: block; font-size: .93rem; color: var(--lnet-testo-tenue); overflow-wrap: anywhere; }

.lnet-modulo { background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1.5rem; }
@media (min-width: 768px) { .lnet-modulo { padding: 2rem; } }
.lnet-modulo .form-text { color: var(--lnet-testo-tenue); }
.lnet-nota { background: var(--lnet-fondo); border-left: 3px solid var(--lnet-accento); border-radius: .5rem; padding: 1.1rem 1.25rem; font-size: .97rem; }
.lnet-nota h2 { font-family: var(--bs-body-font-family); font-size: 1rem; font-weight: 600; color: var(--lnet-testo); letter-spacing: 0; margin-bottom: .5rem; }
.lnet-nota p:last-child, .lnet-nota ul:last-child { margin-bottom: 0; }
.lnet-nota code { color: var(--lnet-primario); font-size: .95em; font-weight: 600; background: #FFFFFF; border-radius: .3rem; padding: .05rem .35rem; }

/* Esito (errore, informazione) con azione */
.lnet-esito { display: flex; gap: 1rem; align-items: flex-start; border: 1px solid var(--lnet-bordo); background: var(--lnet-fondo); border-radius: .8rem; padding: 1.25rem; }
.lnet-esito svg { width: 26px; height: 26px; flex: 0 0 auto; color: var(--lnet-primario); margin-top: .1rem; }
.lnet-esito strong { display: block; font-size: 1.05rem; }
.lnet-esito p { margin: .25rem 0 .9rem; color: var(--lnet-testo-tenue); }
.lnet-esito-errore { background: #FBF0EF; border-color: #EDCFCB; }
.lnet-esito-errore svg { color: #A3352B; }

/* Riepilogo (conferma cliente o scuola) */
.lnet-riepilogo { display: grid; gap: .9rem; margin: 0 0 1.5rem; }
.lnet-riepilogo dt { font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--lnet-testo-tenue); }
.lnet-riepilogo dd { margin: .1rem 0 0; font-size: 1.08rem; font-weight: 600; color: var(--lnet-testo); }
.lnet-riepilogo dd span { display: block; font-weight: 400; font-size: .95rem; color: var(--lnet-testo-tenue); }

/* Barra sopra gli elenchi */
.lnet-elenco-testa { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1rem; }
.lnet-elenco-testa h2 { font-size: clamp(1.3rem, 2.6vw, 1.7rem); margin: 0; }
.lnet-elenco-testa p { margin: 0; color: var(--lnet-testo-tenue); font-size: .95rem; }

/* Elenco dei libri: tabella su computer, schede con copertina su telefono */
.lnet-libri { width: 100%; border-collapse: collapse; font-size: .95rem; }
.lnet-libri th { font-size: .76rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--lnet-testo-tenue); border-bottom: 1px solid var(--lnet-bordo); padding: .6rem .55rem; text-align: left; white-space: nowrap; }
.lnet-libri td { border-bottom: 1px solid var(--lnet-bordo); padding: .7rem .55rem; vertical-align: middle; }
.lnet-libri tbody tr:hover { background: var(--lnet-fondo); }
.lnet-libri .lnet-cop { width: 64px; }
.lnet-libri .lnet-cop img { display: block; width: 48px; height: 64px; object-fit: cover; border-radius: 3px; background: var(--lnet-fondo); box-shadow: 0 1px 3px rgba(0, 0, 0, .14); }
.lnet-libri .lnet-libro-titolo { font-weight: 600; color: var(--lnet-testo); }
.lnet-libri .lnet-sopra { color: var(--lnet-testo-tenue); }
.lnet-libri .lnet-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lnet-libri .lnet-centro { text-align: center; }
.lnet-libri del { display: block; color: var(--lnet-testo-tenue); font-size: .85em; }
@media (max-width: 767.98px) {
  .lnet-libri, .lnet-libri tbody { display: block; }
  .lnet-libri thead { display: none; }
  .lnet-libri tr { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .8rem; min-height: calc(64px + 1.7rem); background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .75rem; padding: .85rem .85rem .85rem calc(48px + 1.75rem); margin-bottom: .75rem; }
  .lnet-libri tr::after { content: ""; flex-basis: 100%; height: 0; order: 1; }
  .lnet-libri tbody tr:hover { background: #FFFFFF; }
  .lnet-libri td { display: block; border: 0; padding: 0; font-size: .88rem; color: var(--lnet-testo-tenue); text-align: left !important; width: auto; }
  .lnet-libri td:empty { display: none; }
  .lnet-libri td.lnet-cop { position: absolute; left: .85rem; top: .85rem; width: auto; }
  .lnet-libri td.lnet-sopra { order: -3; flex-basis: 100%; font-size: .74rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--lnet-accento-testo); }
  .lnet-libri td.lnet-libro-titolo { order: -2; flex-basis: 100%; font-size: 1rem; line-height: 1.35; color: var(--lnet-testo); padding-bottom: .15rem; }
  .lnet-libri td[data-label]::before { content: attr(data-label) " "; font-weight: 600; }
  .lnet-libri td.lnet-prezzo { order: 2; font-size: 1.02rem; font-weight: 600; color: var(--lnet-primario); margin-top: .35rem; }
  .lnet-libri td.lnet-prezzo del { display: inline; margin-right: .35rem; font-weight: 400; }
  .lnet-libri td.lnet-stato { order: 3; margin-top: .35rem; }
}

/* Paginazione */
.lnet-paginazione { margin-top: 1.5rem; }
.lnet-paginazione .pagination { --bs-pagination-color: var(--lnet-primario); --bs-pagination-hover-color: var(--lnet-primario); --bs-pagination-active-bg: var(--lnet-primario); --bs-pagination-active-border-color: var(--lnet-primario); --bs-pagination-border-color: var(--lnet-bordo); --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--lnet-primario-rgb), .15); flex-wrap: wrap; gap: .3rem; }
.lnet-paginazione .page-link { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; border-radius: .5rem !important; }

/* Azioni in fondo agli elenchi */
.lnet-azioni { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--lnet-bordo); }
@media (max-width: 575.98px) { .lnet-azioni .btn { flex: 1 1 100%; } }

/* Stampa: solo il contenuto utile (elenchi, ordini) */
@media print {
  .lnet-testata, .lnet-piede, .lnet-avviso, .lnet-briciole, .lnet-no-stampa, .lnet-salta { display: none !important; }
  .lnet-testa-pagina { background: none; border: 0; padding: 0 0 1rem; }
  .lnet-testa-pagina .lnet-lead { display: none; }
  .lnet-sezione { padding: 0; }
  .lnet-libreria { border: 0; padding: 0 0 1rem; margin-bottom: 1rem; }
  .lnet-libri { font-size: 10pt; }
  .lnet-libri tr { break-inside: avoid; }
  .lnet-libri tbody tr:hover { background: none; }
  a { color: inherit; text-decoration: none; }
}
.lnet-scheda h2 { font-family: var(--bs-body-font-family); font-size: 1.2rem; font-weight: 600; color: var(--lnet-testo); letter-spacing: 0; }
@media (min-width: 768px) { .lnet-riepilogo { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1.5rem; } }
/* Una scheda seguita da altro contenuto nella stessa colonna non deve occupare tutta l'altezza */
.lnet-scheda[class*="mb-"] { height: auto; }

/* ==========================================================================
   Pagine libro (/libri/), elenchi (/libriado/) e indice (LibriAdoList)
   ========================================================================== */
.lnet-libro .lnet-briciole { margin-bottom: 1.75rem; }
.lnet-libro h1 { font-size: clamp(1.6rem, 3.4vw, 2.4rem); line-height: 1.15; overflow-wrap: anywhere; }
.lnet-libro-copertina { max-width: 240px; margin: 0 auto; }
@media (max-width: 575.98px) { .lnet-libro-copertina { max-width: 150px; } }
.lnet-libro-copertina img { display: block; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 18px 36px -20px rgba(var(--lnet-primario-rgb), .55), 0 1px 3px rgba(0, 0, 0, .12); }
.lnet-libro-senza { aspect-ratio: 3 / 4; border-radius: 6px; background: var(--lnet-fondo); border: 1px solid var(--lnet-bordo); color: var(--lnet-testo-tenue); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; font-size: .85rem; }
.lnet-libro-senza svg { width: 44px; height: 44px; color: var(--lnet-accento-testo); }
.lnet-libro-autori { font-size: 1.05rem; margin: .75rem 0 0; }
.lnet-libro-dati { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 1rem 1.5rem; margin: 1.5rem 0; padding: 1.25rem 0; border-top: 1px solid var(--lnet-bordo); border-bottom: 1px solid var(--lnet-bordo); }
.lnet-libro-dati dt { font-size: .76rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--lnet-testo-tenue); }
.lnet-libro-dati dd { margin: .15rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
.lnet-libro-nota { font-size: .9rem; color: var(--lnet-testo-tenue); margin: 1rem 0 0; }
@media (min-width: 768px) { .lnet-passi-3 { grid-template-columns: repeat(3, 1fr); } }

.lnet-nav-elenchi { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 0 0 1.5rem; }
.lnet-voci-libri + .lnet-nav-elenchi, .lnet-voci-libri ~ .lnet-nav-elenchi { margin: 1.5rem 0 0; }
.lnet-nav-indice { font-weight: 600; text-decoration: none; font-size: .95rem; }
.lnet-voci-libri { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
@media (min-width: 768px) { .lnet-voci-libri { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .lnet-voci-libri { grid-template-columns: 1fr 1fr 1fr; } }
.lnet-voce-libro { background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .7rem; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .2rem; }
.lnet-voce-libro a { font-weight: 600; color: var(--lnet-testo); text-decoration: none; line-height: 1.3; overflow-wrap: anywhere; }
.lnet-voce-libro a:hover { color: var(--lnet-primario); text-decoration: underline; }
.lnet-voce-libro span { font-size: .88rem; color: var(--lnet-testo-tenue); overflow-wrap: anywhere; }
.lnet-voce-libro .lnet-voce-materia { font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--lnet-accento-testo); }

.lnet-indice-elenchi { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.lnet-indice-elenchi a { display: block; height: 100%; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .7rem; padding: .8rem 1rem; text-decoration: none; color: var(--lnet-testo); }
.lnet-indice-elenchi a:hover { border-color: rgba(var(--lnet-primario-rgb), .4); }
.lnet-indice-elenchi strong { display: block; color: var(--lnet-primario); font-size: .95rem; }
.lnet-indice-elenchi span { display: block; font-size: .86rem; color: var(--lnet-testo-tenue); overflow-wrap: anywhere; }

/* ==========================================================================
   Mercatino (fase 5): barra, avvisi, offerte, carrello, vetrina
   ========================================================================== */
.lnet-merc-barra { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-bottom: 1.5rem; }
.lnet-merc-cerca { display: flex; gap: .5rem; flex: 1 1 18rem; min-width: 0; }
.lnet-merc-cerca .form-control { min-width: 0; }
.lnet-merc-cerca .btn { padding-left: .9rem; padding-right: .9rem; }
.lnet-merc-carrello { display: inline-flex; align-items: center; gap: .4rem; }
.lnet-conta { display: inline-block; min-width: 1.5rem; padding: .05rem .4rem; border-radius: 99px; background: #FFFFFF; color: var(--lnet-primario); font-size: .8rem; text-align: center; }
@media (max-width: 575.98px) { .lnet-merc-barra > .btn { flex: 1 1 auto; } }

.lnet-avviso-flash { background: var(--lnet-accento-chiaro); border: 1px solid rgba(var(--lnet-primario-rgb), .12); border-radius: .7rem; padding: .85rem 1rem; margin-bottom: 1.5rem; }
.lnet-avviso-flash a { font-weight: 600; margin-left: .35rem; }
.lnet-avviso-errore { background: #FBF0EF; border-color: #EDCFCB; }

.lnet-offerte { display: grid; gap: .75rem; }
.lnet-offerta { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: .5rem 1rem; align-items: start; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1rem; }
.lnet-offerta-cop img { display: block; width: 72px; height: 96px; object-fit: cover; border-radius: 3px; background: var(--lnet-fondo); box-shadow: 0 1px 3px rgba(0, 0, 0, .14); }
.lnet-offerta-dati { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.lnet-offerta-dati > span { font-size: .9rem; color: var(--lnet-testo-tenue); overflow-wrap: anywhere; }
.lnet-offerta-titolo { font-weight: 600; font-size: 1.02rem; color: var(--lnet-testo); text-decoration: none; line-height: 1.3; overflow-wrap: anywhere; }
a.lnet-offerta-titolo:hover { color: var(--lnet-primario); text-decoration: underline; }
.lnet-offerta-lib a { font-weight: 600; }
.lnet-offerta-etichette { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin-top: .35rem; }
.lnet-offerta-prezzo { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; text-align: right; }
.lnet-offerta-prezzo strong { font-size: 1.2rem; color: var(--lnet-primario); white-space: nowrap; }
.lnet-offerta-prezzo del { color: var(--lnet-testo-tenue); font-size: .9rem; white-space: nowrap; }
@media (max-width: 575.98px) {
  .lnet-offerta { grid-template-columns: 64px minmax(0, 1fr); }
  .lnet-offerta-cop img { width: 64px; height: 85px; }
  .lnet-offerta-prezzo { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; border-top: 1px solid var(--lnet-bordo); padding-top: .75rem; text-align: left; }
}

.lnet-libro-acquisto { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.lnet-libro-acquisto .lnet-offerta-prezzo { flex-direction: row; align-items: baseline; gap: .6rem; margin-right: .5rem; }
.lnet-libro-acquisto .lnet-offerta-prezzo strong { font-size: 1.6rem; }

.lnet-carrello-gruppo { display: grid; gap: .75rem; }
.lnet-carrello-gruppo + .lnet-carrello-gruppo { margin-top: 1.25rem; }
.lnet-carrello-gruppo h3 { font-size: 1rem; margin: 0; color: var(--lnet-testo-tenue); font-weight: 500; }
.lnet-carrello-gruppo h3 a { font-weight: 600; }
.lnet-qta { display: flex; gap: .35rem; align-items: center; }
.lnet-qta .form-control { width: 4.2rem; min-height: 36px; text-align: center; }
.lnet-togli { font-size: .85rem; color: var(--lnet-testo-tenue); }
.lnet-riepilogo-carrello { background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1.5rem; position: sticky; top: 1rem; }
.lnet-riepilogo-carrello dl { margin: 1rem 0 1.25rem; display: grid; gap: .5rem; }
.lnet-riepilogo-carrello dl > div { display: flex; justify-content: space-between; }
.lnet-riepilogo-carrello dt { font-weight: 500; color: var(--lnet-testo-tenue); }
.lnet-riepilogo-carrello dd { margin: 0; font-weight: 600; }
.lnet-riepilogo-carrello .lnet-totale { border-top: 1px solid var(--lnet-bordo); padding-top: .6rem; font-size: 1.15rem; }
.lnet-riepilogo-carrello .lnet-totale dd { color: var(--lnet-primario); }

.lnet-vetrina { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); }
.lnet-vetrina a { display: flex; flex-direction: column; gap: .4rem; height: 100%; text-decoration: none; color: var(--lnet-testo); background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .7rem; padding: .75rem; }
.lnet-vetrina a:hover { border-color: rgba(var(--lnet-primario-rgb), .4); }
.lnet-vetrina img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 3px; background: var(--lnet-fondo); }
.lnet-vetrina span { font-size: .85rem; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.lnet-vetrina em { font-style: normal; font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--lnet-accento-testo); margin-top: auto; }
@media (max-width: 575.98px) {
  .lnet-vetrina { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
  .lnet-vetrina a { padding: .5rem; }
  .lnet-vetrina span { font-size: .76rem; }
}

/* ---- Percorso per scuola e classe (fase 5, parte 3) ---- */
.lnet-scelte { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.lnet-scelte-fitte { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .45rem; }
.lnet-scelte-larghe { grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); }
.lnet-scelte a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; height: 100%; padding: .75rem 1rem; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .6rem; color: var(--lnet-testo); text-decoration: none; font-weight: 500; line-height: 1.3; }
.lnet-scelte a::after { content: "\203A"; color: var(--lnet-primario); font-size: 1.2rem; line-height: 1; }
.lnet-scelte a:hover, .lnet-scelte a:focus-visible { border-color: rgba(var(--lnet-primario-rgb), .45); background: rgba(var(--lnet-primario-rgb), .04); }
.lnet-scelte-fitte a { padding: .55rem .8rem; font-size: .92rem; }
.lnet-scelte a.lnet-scelta-scuola { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .2rem; }
.lnet-scelte a.lnet-scelta-scuola::after { display: none; }
.lnet-scelta-scuola strong { font-weight: 600; overflow-wrap: anywhere; }
.lnet-scelta-scuola span { font-size: .85rem; color: var(--lnet-testo-tenue); font-weight: 400; }
.lnet-corsi { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 24rem), 1fr)); align-items: start; }
.lnet-corso { background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; overflow: hidden; scroll-margin-top: 1rem; }
.lnet-corso-testa { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1.1rem; background: var(--lnet-primario); color: #FFFFFF; }
.lnet-corso-testa small { display: block; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--lnet-su-scuro); }
.lnet-corso-testa h2 { font-family: var(--bs-body-font-family); font-size: 1.05rem; font-weight: 600; line-height: 1.3; margin: 0; color: #FFFFFF; overflow-wrap: anywhere; }
.lnet-corso-conta { flex: 0 0 auto; font-size: .8rem; font-weight: 600; padding: .2rem .6rem; border-radius: 999px; background: rgba(255, 255, 255, .16); white-space: nowrap; }
.lnet-corso-anni { padding: .4rem 1.1rem .6rem; }
.lnet-anno { display: flex; align-items: flex-start; gap: .75rem; padding: .55rem 0; }
.lnet-anno + .lnet-anno { border-top: 1px solid var(--lnet-bordo); }
.lnet-anno-num { flex: 0 0 2.6rem; padding-top: .5rem; font-weight: 600; color: var(--lnet-testo-tenue); font-size: .9rem; }
.lnet-corsi-indice { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 0 0 1.25rem; }
.lnet-corsi-indice > span { font-weight: 600; font-size: .9rem; color: var(--lnet-testo-tenue); }
.lnet-corsi-indice ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.lnet-corsi-indice a { display: inline-block; padding: .3rem .75rem; border-radius: 999px; background: rgba(var(--lnet-primario-rgb), .08); color: var(--lnet-primario); font-size: .88rem; font-weight: 600; text-decoration: none; }
.lnet-corsi-indice a:hover, .lnet-corsi-indice a:focus-visible { background: var(--lnet-primario); color: #FFFFFF; }
@media print { .lnet-corso-testa { background: none; color: var(--lnet-testo); border-bottom: 1px solid var(--lnet-bordo); } .lnet-corso-testa h2, .lnet-corso-testa small { color: var(--lnet-testo); } }
.lnet-classi { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.lnet-classi:last-child { margin-bottom: 0; }
.lnet-classi a { display: inline-flex; align-items: center; justify-content: center; min-width: 3rem; min-height: 2.5rem; padding: .3rem .7rem; border: 1px solid rgba(var(--lnet-primario-rgb), .35); border-radius: 999px; color: var(--lnet-primario); font-weight: 600; text-decoration: none; }
.lnet-classi a:hover, .lnet-classi a:focus-visible { background: var(--lnet-primario); color: #FFFFFF; }
.lnet-adottato .lnet-voce-materia { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--lnet-accento-testo); }
.lnet-adottato .form-check { margin: 0; }
.lnet-non-disp { opacity: .6; }
.lnet-non-disp:hover { opacity: .85; }
@media print { .lnet-non-disp { opacity: 1; } }

/* ---- Prenotazione (prenota.asp, prenotazione-inviata.asp) ---- */
.lnet-pren { max-width: 56rem; margin: 0 auto; }
.lnet-pren-passo { display: flex; align-items: center; gap: .65rem; font-size: 1.3rem; margin: 2.25rem 0 1rem; }
.lnet-pren-passo span { width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 50%; background: var(--lnet-primario); color: #FFFFFF; font-family: var(--bs-body-font-family); font-size: 1rem; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.lnet-obbl { color: #A3352B; }
.lnet-pren-librerie { display: grid; gap: 1.25rem; }
.lnet-pren-libreria { background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-radius: .8rem; padding: 1.25rem; }
.lnet-pren-testa { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1rem; margin-bottom: 1rem; }
.lnet-pren-testa h3 { font-size: 1.15rem; margin: .1rem 0 .15rem; }
.lnet-pren-testa h3 a { text-decoration: none; }
.lnet-pren-libri { border: 1px solid var(--lnet-bordo); border-radius: .6rem; background: var(--lnet-fondo); margin-bottom: 1rem; }
.lnet-pren-libri summary { cursor: pointer; padding: .65rem .9rem; font-weight: 500; }
.lnet-pren-libri ul { list-style: none; margin: 0; padding: 0 .9rem .5rem; }
.lnet-pren-libri li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--lnet-bordo); }
.lnet-pren-libro { min-width: 0; }
.lnet-pren-libro strong { display: block; font-weight: 600; font-size: .95rem; overflow-wrap: anywhere; }
.lnet-pren-libro small { color: var(--lnet-testo-tenue); }
.lnet-pren-prezzo { white-space: nowrap; font-weight: 600; }
.lnet-pren-scelta { margin: 0 0 1rem; }
.lnet-pren-scelta legend { font-size: 1rem; font-weight: 600; margin-bottom: .5rem; }
.lnet-opzione { position: relative; display: flex; align-items: flex-start; gap: .75rem; padding: .75rem .9rem; border: 1px solid var(--lnet-bordo); border-radius: .6rem; margin-bottom: .5rem; }
.lnet-opzione .form-check-input { margin: .2rem 0 0; flex: 0 0 auto; }
.lnet-opzione label { flex: 1 1 auto; min-width: 0; cursor: pointer; }
.lnet-opzione label::after { content: ""; position: absolute; inset: 0; }
.lnet-opzione label strong { display: block; font-weight: 600; }
.lnet-opzione label small { display: block; color: var(--lnet-testo-tenue); overflow-wrap: anywhere; }
.lnet-opzione-costo { white-space: nowrap; font-weight: 600; }
.lnet-opzione:has(input:checked) { border-color: var(--lnet-primario); background: rgba(var(--lnet-primario-rgb), .04); }
.lnet-opzione:has(input:focus-visible) { outline: 2px solid var(--lnet-primario); outline-offset: 2px; }
.lnet-pren-notaagg { font-size: .9rem; font-style: italic; color: var(--lnet-testo-tenue); }
.lnet-pren-notaagg p { margin: .25rem 0 0; }
.was-validated .lnet-pren-scelta:has(:invalid) > .invalid-feedback { display: block; }
.was-validated .lnet-pren-scelta:has(:invalid) .lnet-opzione { border-color: #D9A39C; }
.lnet-pren-totale { margin: 0 0 .75rem; display: grid; gap: .3rem; border-top: 1px solid var(--lnet-bordo); padding-top: .75rem; }
.lnet-pren-totale > div { display: flex; justify-content: space-between; gap: 1rem; }
.lnet-pren-totale dt { font-weight: 500; color: var(--lnet-testo-tenue); }
.lnet-pren-totale dd { margin: 0; font-weight: 600; white-space: nowrap; }
.lnet-pren-totale .lnet-totale dt { color: var(--lnet-testo); font-weight: 600; }
.lnet-pren-totale .lnet-totale dd { color: var(--lnet-primario); font-size: 1.1rem; }
.lnet-pren-riepilogo { position: static; }
.lnet-pren-riepilogo dl > div { gap: 1rem; }
.lnet-consensi { display: grid; gap: .75rem; margin: 1.25rem 0; padding: 1rem; background: var(--lnet-fondo); border-radius: .6rem; }
.lnet-consensi .form-check-input { width: 1.25em; height: 1.25em; margin-top: .1em; }
.lnet-consensi .form-check-label { padding-left: .25rem; }
.lnet-pren .lnet-azioni { margin-top: 0; margin-bottom: 1rem; }
.lnet-esito-librerie { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: .75rem; }
.lnet-esito-lib { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-left: 4px solid var(--lnet-accento); border-radius: .6rem; padding: .9rem 1.1rem; }
.lnet-esito-lib-ko { border-left-color: #A3352B; }
.lnet-esito-lib > div:first-child { min-width: 0; flex: 1 1 18rem; }
.lnet-esito-lib span { display: block; font-size: .92rem; color: var(--lnet-testo-tenue); overflow-wrap: anywhere; }
.lnet-esito-lib-stato { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; }
@media (max-width: 575.98px) {
  .lnet-pren-libreria { padding: 1rem; }
  .lnet-esito-lib-stato { flex-direction: row; align-items: center; }
}
@media print { .lnet-pren-libri ul { display: block; } }
.lnet-pren-mail { display: inline-flex; align-items: center; gap: .35rem; max-width: 100%; padding: .1rem .55rem; border-radius: .4rem; background: rgba(var(--lnet-primario-rgb), .08); color: var(--lnet-primario-scuro); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; vertical-align: baseline; }
.lnet-pren-mail svg { flex: 0 0 auto; }
.lnet-pren-mail:hover, .lnet-pren-mail:focus-visible { background: var(--lnet-primario); color: #FFFFFF; }

/* ---- Area download (scarica.asp) ---- */
.lnet-codice-lungo { max-width: 20rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .04em; }
.lnet-scarico { display: flex; gap: 1rem; align-items: flex-start; background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-left: 4px solid var(--lnet-accento); border-radius: .8rem; padding: 1.5rem; }
.lnet-scarico-icona { width: 3rem; height: 3rem; flex: 0 0 auto; border-radius: 50%; background: var(--lnet-accento-chiaro); color: var(--lnet-accento-scuro); display: flex; align-items: center; justify-content: center; }
.lnet-scarico small { display: block; font-size: .74rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--lnet-accento-testo); }
.lnet-scarico h2 { margin: .15rem 0 .25rem; }
.lnet-scarico p { color: var(--lnet-testo-tenue); }
@media (max-width: 575.98px) { .lnet-scarico { flex-direction: column; padding: 1.25rem; } }

/* ---- Home: marchio del Mercatino, riga in evidenza, banda dell'app ---- */
.lnet-merc-marchio, .lnet-sezione-scura .lnet-merc-marchio { display: flex; align-items: center; gap: .9rem; margin: 0 0 1.1rem; font-family: var(--lnet-font-titoli); font-size: 1.75rem; font-weight: 600; letter-spacing: .01em; color: #FFFFFF; line-height: 1.15; }
.lnet-merc-marchio > span:last-child { border-bottom: 3px solid var(--lnet-etichetta-su-scuro); padding-bottom: .15rem; }
.lnet-merc-logo { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 1rem; background: #FFFFFF; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(0, 0, 0, .25); }
@media (max-width: 575.98px) { .lnet-merc-marchio { font-size: 1.35rem; } .lnet-merc-logo { width: 52px; height: 52px; } .lnet-merc-logo svg { width: 36px; height: 38px; } }
.lnet-evidenza { display: flex; align-items: center; gap: .6rem; font-weight: 600; font-size: 1.05rem; color: var(--lnet-primario); background: #FFFFFF; border: 1px solid var(--lnet-bordo); border-left: 4px solid var(--lnet-accento); border-radius: .6rem; padding: .7rem 1rem; }
.lnet-evidenza svg { flex: 0 0 auto; color: var(--lnet-accento-testo); }
.lnet-banda-app { background: var(--lnet-accento-chiaro); border-top: 1px solid var(--lnet-bordo); border-bottom: 1px solid var(--lnet-bordo); padding: 2rem 0; }
.lnet-banda-app-riga { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem 2rem; }
.lnet-banda-app-icona { width: 64px; height: 64px; flex: 0 0 auto; border-radius: 1rem; background: var(--lnet-primario); color: #FFFFFF; display: flex; align-items: center; justify-content: center; }
.lnet-banda-app-testo { flex: 1 1 18rem; min-width: 0; }
.lnet-banda-app-testo h2 { font-size: 1.5rem; margin: 0 0 .25rem; }
.lnet-banda-app-testo p { margin: 0; color: var(--lnet-testo-tenue); }
.lnet-banda-app-store { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 575.98px) { .lnet-banda-app-store { width: 100%; } .lnet-banda-app-store .lnet-store { flex: 1 1 10rem; justify-content: center; } }

/* ---- Contatti: logo aziendale ridisegnato (colori del tema attivo) ---- */
.lnet-recapiti { height: auto; padding: 1.5rem; }
.lnet-recapiti-logo { margin: -1.5rem -1.5rem .5rem; padding: 1.25rem 1.5rem; background: var(--lnet-fondo); border-bottom: 1px solid var(--lnet-bordo); border-radius: inherit; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.lnet-azienda-logo { display: block; width: 100%; max-width: 260px; height: auto; }
.lnet-pren-info { display: flex; align-items: center; gap: .65rem; margin: .25rem 0 0; padding: .8rem 1rem; border-radius: .6rem; background: var(--lnet-accento-chiaro); color: var(--lnet-testo); font-size: 1.08rem; font-weight: 500; line-height: 1.4; }
.lnet-pren-info svg { flex: 0 0 auto; color: var(--lnet-accento-testo); }
.lnet-pren-info strong { color: var(--lnet-primario); font-weight: 600; }
