/* DOC - Dizionario Online di Occitano medievale
   Palette del sito originale: bordeaux #8A0000, #742525, rosa antico #B87878, crema #F7E6CC */

:root {
  --doc-bordeaux: #8a0000;
  --doc-bordeaux-scuro: #742525;
  --doc-rosa: #b87878;
  --doc-crema: #f7e6cc;
  --doc-crema-chiara: #fcf4e8;
  --doc-inchiostro: #2b2523;
  --doc-grigio: #6b605c;
  --doc-filetto: #eaded7;
  --doc-serif: "Alegreya", Georgia, "Times New Roman", serif;
  --doc-sans: "Alegreya Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --bs-body-font-family: var(--doc-sans);
  --bs-body-font-size: 1.0625rem;
  --bs-body-line-height: 1.55;
  --bs-body-color: var(--doc-inchiostro);
  --bs-body-color-rgb: 43, 37, 35;
  --bs-body-bg: #fff;
  --bs-secondary-color: var(--doc-grigio);
  --bs-emphasis-color: var(--doc-inchiostro);
  --bs-primary: var(--doc-bordeaux);
  --bs-primary-rgb: 138, 0, 0;
  --bs-link-color: var(--doc-bordeaux);
  --bs-link-color-rgb: 138, 0, 0;
  --bs-link-hover-color: var(--doc-bordeaux-scuro);
  --bs-link-hover-color-rgb: 116, 37, 37;
  --bs-border-color: var(--doc-filetto);
  --bs-border-radius: 0.3rem;
  --bs-focus-ring-color: rgba(138, 0, 0, 0.25);
  --bs-highlight-bg: var(--doc-crema);
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

main {
  flex: 1 0 auto;
}

h1, h2, h3, h4, .serif {
  font-family: var(--doc-serif);
  font-weight: 600;
  color: var(--doc-inchiostro);
}

h1 { font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem); line-height: 1.15; }
h2 { font-size: 1.55rem; }
h3 { font-size: 1.25rem; }

a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }

:focus-visible {
  outline: 2px solid var(--doc-bordeaux);
  outline-offset: 2px;
}

mark { background: var(--doc-crema); color: inherit; padding: 0 0.1em; }

abbr[title] { text-decoration: underline dotted var(--doc-rosa); cursor: help; }

.text-secondary { color: var(--doc-grigio) !important; }

/* --- Pulsanti e moduli ------------------------------------------------------ */

.btn-primary {
  --bs-btn-bg: var(--doc-bordeaux);
  --bs-btn-border-color: var(--doc-bordeaux);
  --bs-btn-hover-bg: var(--doc-bordeaux-scuro);
  --bs-btn-hover-border-color: var(--doc-bordeaux-scuro);
  --bs-btn-active-bg: #5d1a1a;
  --bs-btn-active-border-color: #5d1a1a;
  --bs-btn-disabled-bg: var(--doc-rosa);
  --bs-btn-disabled-border-color: var(--doc-rosa);
  --bs-btn-focus-shadow-rgb: 138, 0, 0;
}

.btn-outline-primary {
  --bs-btn-color: var(--doc-bordeaux);
  --bs-btn-border-color: var(--doc-rosa);
  --bs-btn-hover-bg: var(--doc-bordeaux);
  --bs-btn-hover-border-color: var(--doc-bordeaux);
  --bs-btn-active-bg: var(--doc-bordeaux-scuro);
  --bs-btn-active-border-color: var(--doc-bordeaux-scuro);
  --bs-btn-focus-shadow-rgb: 138, 0, 0;
  --bs-btn-disabled-color: var(--doc-rosa);
  --bs-btn-disabled-border-color: var(--doc-filetto);
}

.btn-check:checked + .btn-outline-primary {
  background: var(--doc-bordeaux);
  border-color: var(--doc-bordeaux);
  color: #fff;
}

.btn-link { --bs-btn-color: var(--doc-bordeaux); --bs-btn-hover-color: var(--doc-bordeaux-scuro); }

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--doc-rosa);
  box-shadow: 0 0 0 0.2rem rgba(138, 0, 0, 0.12);
}

.form-check-input:checked { background-color: var(--doc-bordeaux); border-color: var(--doc-bordeaux); }

.form-label { font-weight: 500; }

.asteriskField { color: var(--doc-bordeaux); }

/* --- Testata ------------------------------------------------------------------ */

.doc-rubrica { height: 4px; background: var(--doc-bordeaux); }

.doc-navbar {
  background: #fff;
  border-bottom: 1px solid var(--doc-filetto);
}

.doc-marchio {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  text-decoration: none;
}

.doc-marchio-sigla {
  font-family: var(--doc-serif);
  font-weight: 700;
  font-size: 1.75rem;
  color: var(--doc-bordeaux);
  letter-spacing: 0.02em;
  line-height: 1;
}

.doc-marchio-nome {
  font-family: var(--doc-serif);
  font-style: italic;
  color: var(--doc-grigio);
  font-size: 1rem;
}

.doc-navbar .nav-link {
  color: var(--doc-inchiostro);
  font-weight: 500;
  padding-inline: 0.7rem !important;
}

.doc-navbar .nav-link:hover,
.doc-navbar .nav-link.active,
.doc-navbar .show > .nav-link {
  color: var(--doc-bordeaux);
}

.doc-navbar .nav-link.active { text-decoration: underline; text-underline-offset: 0.45em; text-decoration-thickness: 2px; }

.doc-navbar .dropdown-item:active { background: var(--doc-bordeaux); }

.doc-cerca-compatta { max-width: 16rem; }

.badge-coda {
  background: var(--doc-bordeaux);
  font-weight: 500;
}

/* --- Home -------------------------------------------------------------------- */

.doc-home {
  max-width: 46rem;
  margin-inline: auto;
  text-align: center;
  padding-block: clamp(1.5rem, 4vw, 3.5rem) 2rem;
}

.doc-home-miniature {
  width: 100%;
  max-width: 610px;
  height: auto;
  border-radius: 2px;
}

.doc-home h1 {
  margin-top: 1.75rem;
  font-weight: 600;
}

.doc-home-sottotitolo {
  font-family: var(--doc-serif);
  font-style: italic;
  color: var(--doc-grigio);
  font-size: 1.15rem;
  margin-bottom: 2rem;
}

.doc-statistiche {
  color: var(--doc-grigio);
  font-size: 0.98rem;
  margin-top: 1.75rem;
}

/* --- Ricerca e suggerimenti ----------------------------------------------------- */

.doc-ricerca { position: relative; text-align: left; }

.doc-ricerca .form-control-lg {
  font-family: var(--doc-serif);
  font-size: 1.3rem;
  border: 1.5px solid var(--doc-rosa);
  border-right: 0;
  padding-block: 0.7rem;
}

.doc-ricerca .form-control-lg:focus { border-color: var(--doc-bordeaux); }

/* Pulsante "cancella" dei campi di ricerca nei colori del sito */
.doc-ricerca input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
  height: 0.9em;
  width: 0.9em;
  cursor: pointer;
  background: var(--doc-grigio);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.1 2.1a.75.75 0 0 1 1.06 0L8 6.94l4.84-4.84a.75.75 0 1 1 1.06 1.06L9.06 8l4.84 4.84a.75.75 0 1 1-1.06 1.06L8 9.06l-4.84 4.84a.75.75 0 0 1-1.06-1.06L6.94 8 2.1 3.16a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.1 2.1a.75.75 0 0 1 1.06 0L8 6.94l4.84-4.84a.75.75 0 1 1 1.06 1.06L9.06 8l4.84 4.84a.75.75 0 1 1-1.06 1.06L8 9.06l-4.84 4.84a.75.75 0 0 1-1.06-1.06L6.94 8 2.1 3.16a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.doc-ricerca .btn-lg { padding-inline: 1.4rem; }

.doc-ambito { gap: 0.4rem; }
.doc-ambito .btn { --bs-btn-padding-y: 0.2rem; --bs-btn-padding-x: 0.8rem; --bs-btn-font-size: 0.95rem; border-radius: 2rem; }

.doc-suggerimenti {
  position: absolute;
  z-index: 1050;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 2px;
  background: #fff;
  border: 1px solid var(--doc-filetto);
  border-radius: var(--bs-border-radius);
  box-shadow: 0 0.6rem 1.5rem rgba(43, 37, 35, 0.12);
  max-height: 26rem;
  overflow-y: auto;
  text-align: left;
}

.doc-suggerimenti a {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  padding: 0.45rem 0.9rem;
  color: var(--doc-inchiostro);
  text-decoration: none;
  border-bottom: 1px solid var(--doc-filetto);
}

.doc-suggerimenti a:last-child { border-bottom: 0; }
.doc-suggerimenti a:hover,
.doc-suggerimenti a.attivo { background: var(--doc-crema-chiara); }
.doc-suggerimenti .lemma { font-family: var(--doc-serif); font-size: 1.15rem; font-weight: 600; }
.doc-suggerimenti .info { color: var(--doc-grigio); font-size: 0.9rem; }

/* --- Alfabeto: iniziali rubricate --------------------------------------------------- */

.doc-alfabeto {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.15rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.doc-alfabeto a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.3rem;
  font-family: var(--doc-serif);
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--doc-bordeaux);
  text-decoration: none;
  border-radius: 2px;
}

.doc-alfabeto a:hover { background: var(--doc-crema); }

.doc-alfabeto a[aria-current="page"] {
  background: var(--doc-bordeaux);
  color: #fff;
}

/* --- Elenchi di lemmi ----------------------------------------------------------- */

.doc-iniziale-grande {
  font-family: var(--doc-serif);
  font-weight: 700;
  font-size: 4.5rem;
  line-height: 1;
  color: var(--doc-bordeaux);
}

.doc-elenco-lemmi {
  list-style: none;
  padding: 0;
  columns: 1;
  column-gap: 2.5rem;
}

@media (min-width: 768px) { .doc-elenco-lemmi { columns: 2; } }
@media (min-width: 1200px) { .doc-elenco-lemmi { columns: 3; } }

.doc-elenco-lemmi li {
  break-inside: avoid;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--doc-filetto);
}

.doc-voce-lemma {
  font-family: var(--doc-serif);
  font-weight: 600;
  font-size: 1.12rem;
  text-decoration: none;
}

.doc-voce-lemma:hover { text-decoration: underline; }

.doc-voce-info { color: var(--doc-grigio); font-size: 0.92rem; }

.doc-risultati { list-style: none; padding: 0; }

.doc-risultati > li {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--doc-filetto);
}

.doc-risultati .doc-voce-lemma { font-size: 1.3rem; }

sup.omografo { font-size: 0.6em; top: -0.6em; margin-left: 0.05em; font-family: var(--doc-sans); }

/* --- Pagina del lemma ------------------------------------------------------------ */

.doc-lemma-titolo {
  font-size: clamp(2.4rem, 1.8rem + 2.5vw, 3.6rem);
  font-weight: 600;
  margin-bottom: 0.35rem;
  overflow-wrap: anywhere;
}

.doc-titolo-medio { font-size: clamp(1.9rem, 1.5rem + 1.5vw, 2.7rem); }

/* L'iniziale del lemma come una lettera rubricata */
.doc-lemma-titolo::first-letter {
  color: var(--doc-bordeaux);
  font-weight: 700;
  font-size: 1.3em;
}

.doc-lemma-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1.6rem;
  margin: 0 0 1.5rem;
  color: var(--doc-grigio);
}

.doc-lemma-meta dt { font-weight: 500; display: inline; margin-right: 0.35rem; }
.doc-lemma-meta dd { display: inline; margin: 0; color: var(--doc-inchiostro); }
.doc-lemma-meta .etimo { font-style: italic; font-family: var(--doc-serif); font-size: 1.08rem; }

.doc-rimando {
  background: var(--doc-crema-chiara);
  border-left: 3px solid var(--doc-bordeaux);
  padding: 0.8rem 1.1rem;
  margin-bottom: 1.5rem;
  font-size: 1.08rem;
}

.doc-rimando a { font-family: var(--doc-serif); font-weight: 700; font-size: 1.2rem; }

.doc-sezione-titolo {
  font-size: 1.3rem;
  margin: 2rem 0 0.9rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--doc-filetto);
}

.doc-significati {
  counter-reset: significato;
  list-style: none;
  padding-left: 0;
}

.doc-significati > li {
  counter-increment: significato;
  position: relative;
  padding-left: 2.2rem;
  margin-bottom: 1.4rem;
}

.doc-significati > li::before {
  content: counter(significato) ".";
  position: absolute;
  left: 0;
  top: 0.02rem;
  font-family: var(--doc-serif);
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--doc-bordeaux);
}

.doc-significati.uno > li { padding-left: 0; }
.doc-significati.uno > li::before { content: none; }

.doc-significato-testo {
  font-family: var(--doc-serif);
  font-size: 1.2rem;
  line-height: 1.45;
  margin-bottom: 0.5rem;
}

.doc-contesti {
  list-style: none;
  padding: 0;
  margin: 0.4rem 0 0;
}

.doc-contesti > li {
  border-left: 2px solid var(--doc-rosa);
  padding: 0.2rem 0 0.2rem 0.9rem;
  margin-bottom: 0.55rem;
}

.doc-contesto-testo {
  font-family: var(--doc-serif);
  font-style: italic;
  font-size: 1.08rem;
}

.doc-citazione { color: var(--doc-grigio); font-size: 0.92rem; margin-left: 0.25rem; white-space: nowrap; }
.doc-citazione a { color: var(--doc-grigio); text-decoration-color: var(--doc-rosa); }
.doc-citazione a:hover { color: var(--doc-bordeaux); }

.doc-locuzioni dt {
  font-family: var(--doc-serif);
  font-style: italic;
  font-weight: 600;
  font-size: 1.12rem;
}

.doc-locuzioni dd { margin: 0 0 1rem 0; }

.doc-laterale {
  border-top: 1px solid var(--doc-filetto);
  padding-top: 1rem;
}

@media (min-width: 992px) {
  .doc-laterale { border-top: 0; border-left: 1px solid var(--doc-filetto); padding: 0 0 0 1.75rem; }
}

.doc-laterale h2 { font-size: 1.1rem; margin-bottom: 0.6rem; }

.doc-varianti { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem 0.9rem; }
.doc-varianti a { font-family: var(--doc-serif); font-size: 1.05rem; }

.doc-cita {
  font-size: 0.9rem;
  color: var(--doc-grigio);
  background: var(--doc-crema-chiara);
  padding: 0.7rem 0.85rem;
  border-radius: var(--bs-border-radius);
}

/* Comandi su lemmi, significati, esempi, ecc.: pulsanti piccoli, distinti dal testo */
.doc-azioni {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0.2rem 0 0.2rem 0.25rem;
  vertical-align: middle;
  font-family: var(--doc-sans);
  font-style: normal;
}

.doc-azioni form { display: inline; margin: 0; }

.doc-azioni > .btn,
.doc-azioni > form > .btn,
.doc-azioni > .dropdown > .btn {
  --bs-btn-padding-y: 0.12rem;
  --bs-btn-padding-x: 0.55rem;
  --bs-btn-font-size: 0.85rem;
  --bs-btn-font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  line-height: 1.5;
  white-space: nowrap;
}

/* Pulsante «secondario» (Elimina, Rifiuta): grigio, diventa bordeaux al passaggio */
.doc-btn-elimina {
  --bs-btn-color: var(--doc-grigio);
  --bs-btn-bg: #fff;
  --bs-btn-border-color: var(--doc-filetto);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--doc-bordeaux-scuro);
  --bs-btn-hover-border-color: var(--doc-bordeaux-scuro);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #5d1a1a;
  --bs-btn-active-border-color: #5d1a1a;
  --bs-btn-focus-shadow-rgb: 138, 0, 0;
}

/* Pulsanti con sola icona (sugli esempi): il nome resta nel tooltip e per i lettori di schermo */
.doc-azioni > .btn.doc-btn-icona { --bs-btn-padding-x: 0.42rem; gap: 0; }

.doc-btn-elimina.show { color: #fff; background: var(--doc-bordeaux-scuro); border-color: var(--doc-bordeaux-scuro); }

/* Sugli esempi pubblicati i comandi (solo icone) compaiono al passaggio del mouse,
   per non disturbare la lettura; sugli schermi touch restano sempre visibili */
@media (hover: hover) {
  .doc-contesti > li .doc-azioni { opacity: 0; transition: opacity 0.15s; }
  .doc-contesti > li:hover .doc-azioni,
  .doc-contesti > li:focus-within .doc-azioni,
  .doc-contesti > li.doc-in-attesa .doc-azioni,
  .doc-contesti > li .doc-azioni:has(.show) { opacity: 1; }
}

.doc-in-attesa { background: linear-gradient(90deg, rgba(247, 230, 204, 0.55), rgba(247, 230, 204, 0)); }

.badge-stato { font-weight: 500; font-size: 0.75rem; vertical-align: middle; }
.badge-stato.in_attesa { background: #fff1d6; color: #7a4a00; border: 1px solid #f0d49b; }
.badge-stato.rifiutato { background: #fbe6e6; color: var(--doc-bordeaux); border: 1px solid #efc4c4; }
.badge-stato.pubblicato { background: #e7f4ea; color: #1d6b33; border: 1px solid #bfe0c7; }

.doc-naviga-lemmi a { font-family: var(--doc-serif); font-size: 1.05rem; }

/* --- Pagine di testo ---------------------------------------------------------- */

.doc-testo { max-width: 46rem; }
.doc-testo p, .doc-testo li { font-size: 1.08rem; }
.doc-testo h3 { margin-top: 1.8rem; }

/* Tabelle scritte in Markdown nelle pagine (es. informativa privacy) */
/* Nomi tecnici nei testi (es. i cookie nell'informativa): colori del tema invece del rosa di Bootstrap */
.doc-testo code { color: var(--doc-bordeaux-scuro); font-size: 0.92em; }
.doc-testo table { width: 100%; margin: 1rem 0 1.5rem; border-collapse: collapse; font-size: 0.98rem; }
.doc-testo th { font-weight: 500; color: var(--doc-grigio); text-align: left; border-bottom: 1px solid var(--doc-rosa); padding: 0.5rem 0.6rem; }
.doc-testo td { vertical-align: top; border-bottom: 1px solid var(--doc-filetto); padding: 0.6rem; }
.doc-testo td:first-child, .doc-testo th:first-child { padding-left: 0; }

@media (max-width: 575.98px) {
  /* Su schermi stretti ogni riga della tabella diventa un blocco */
  .doc-testo table, .doc-testo tbody, .doc-testo tr, .doc-testo td { display: block; width: 100%; }
  .doc-testo thead { display: none; }
  .doc-testo tr { border-bottom: 1px solid var(--doc-rosa); padding: 0.4rem 0; }
  .doc-testo td { border: 0; padding: 0.25rem 0; }
}

.doc-bibliografia { list-style: none; padding: 0; }
.doc-bibliografia li { padding: 0.75rem 0; border-bottom: 1px solid var(--doc-filetto); max-width: 50rem; }
.doc-bibliografia p { margin: 0; }

.doc-tabella { --bs-table-hover-bg: var(--doc-crema-chiara); }
.doc-tabella th { font-weight: 500; color: var(--doc-grigio); border-bottom-color: var(--doc-rosa); }
.doc-tabella .sigla { font-family: var(--doc-serif); font-weight: 600; white-space: nowrap; }

/* --- Guida all'uso ------------------------------------------------------------ */

.doc-guida-parte {
  font-size: 1.6rem;
  margin: 2.5rem 0 1.25rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid var(--doc-bordeaux);
}

.doc-guida > section:first-of-type .doc-guida-parte { margin-top: 0.5rem; }

.doc-guida-sezione { margin-bottom: 2.25rem; scroll-margin-top: 1rem; }
.doc-guida-sezione h3 { margin: 0 0 0.75rem; color: var(--doc-bordeaux-scuro); }
.doc-guida-sezione h4 { font-size: 1.1rem; margin: 1.4rem 0 0.4rem; }
.doc-guida-parte { scroll-margin-top: 1rem; }

.doc-figura { margin: 1.25rem 0 1.6rem; }

.doc-figura img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid var(--doc-filetto);
  border-radius: var(--bs-border-radius);
  box-shadow: 0 0.4rem 1.2rem rgba(43, 37, 35, 0.08);
}

.doc-figura-ingrandisci { display: inline-block; cursor: zoom-in; }
.doc-figura-ingrandisci:hover img, .doc-figura-ingrandisci:focus-visible img { border-color: var(--doc-rosa); }

.doc-figura figcaption { font-size: 0.92rem; color: var(--doc-grigio); margin-top: 0.5rem; }

/* Figura ingrandita (finestra di Bootstrap) */
.doc-ingrandimento .modal-content { background: var(--doc-crema-chiara); border: 0; border-top: 3px solid var(--doc-bordeaux); }
.doc-ingrandimento .modal-header { border-bottom-color: var(--doc-filetto); padding: 0.6rem 1rem; }
.doc-ingrandimento .modal-title { margin: 0; font-size: 0.95rem; color: var(--doc-grigio); }
.doc-ingrandimento .modal-body { padding: 0.75rem; }
.doc-ingrandimento .modal-body img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: calc(100vh - 8rem);
  margin: 0 auto;
  cursor: zoom-out;
  border: 1px solid var(--doc-filetto);
  border-radius: var(--bs-border-radius);
}
.doc-figura-numero { font-weight: 600; color: var(--doc-bordeaux); }

.doc-figura-segnaposto {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  min-height: 11rem;
  padding: 1.25rem;
  text-align: center;
  font-size: 0.95rem;
  color: var(--doc-grigio);
  background: var(--doc-crema-chiara);
  border: 2px dashed var(--doc-rosa);
  border-radius: var(--bs-border-radius);
}

.doc-figura-segnaposto .bi { font-size: 2rem; color: var(--doc-rosa); line-height: 1; }
.doc-figura-segnaposto strong { color: var(--doc-inchiostro); }

.doc-guida-indice ol { padding-left: 1.3rem; margin-bottom: 0.5rem; font-size: 0.98rem; }
.doc-guida-indice li { margin-bottom: 0.2rem; }
.doc-guida-indice a { text-decoration: none; }
.doc-guida-indice a:hover { text-decoration: underline; }
.doc-guida-indice-parte { font-family: var(--doc-serif); font-weight: 600; margin: 1rem 0 0.3rem; }
.doc-guida-indice-parte a { color: var(--doc-inchiostro); }

@media (min-width: 992px) {
  .doc-guida-indice { position: sticky; top: 1.25rem; max-height: calc(100vh - 2.5rem); overflow-y: auto; }
}

/* --- Area riservata ------------------------------------------------------------ */

.doc-area-titolo { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.75rem; }

.nav-tabs { --bs-nav-tabs-link-active-color: var(--doc-bordeaux); --bs-nav-tabs-border-color: var(--doc-filetto); }
.nav-tabs .nav-link { color: var(--doc-inchiostro); }
.nav-tabs .nav-link:hover { color: var(--doc-bordeaux); }

.doc-riquadro {
  border: 1px solid var(--doc-filetto);
  border-radius: var(--bs-border-radius);
  padding: 1.1rem 1.25rem;
  height: 100%;
}

.doc-riquadro h2 { font-size: 1.2rem; }

.doc-coda td { vertical-align: top; }
.doc-coda .contesto { color: var(--doc-grigio); font-size: 0.9rem; }

.doc-diff del { background: #fbe6e6; text-decoration: line-through; color: var(--doc-bordeaux); }
.doc-diff ins { background: #e7f4ea; text-decoration: none; }

.doc-barra-azioni {
  position: sticky;
  bottom: 0;
  z-index: 10;
  background: #fff;
  border-top: 1px solid var(--doc-filetto);
  padding: 0.75rem 0;
}

/* Esito del pulsante «Controlla» nel modulo del lemma */
.doc-controllo {
  border-left: 3px solid var(--doc-rosa);
  background: var(--doc-crema-chiara);
  padding: 0.7rem 1rem;
  border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
}

.doc-controllo.ok { border-left-color: #1d6b33; background: #f1f8f3; }
.doc-controllo.ok .bi { color: #1d6b33; }
.doc-controllo.attenzione { border-left-color: #b35900; background: #fff8ea; }
.doc-controllo.attenzione > p > .bi { color: #b35900; }

.doc-controllo-elenco { list-style: none; padding: 0; margin: 0; }
.doc-controllo-elenco li { padding: 0.3rem 0; border-bottom: 1px solid var(--doc-filetto); }
.doc-controllo-elenco li:last-child { border-bottom: 0; }

.doc-form { max-width: 44rem; }
.doc-form .form-text { font-size: 0.88rem; }
.errorlist { list-style: none; padding: 0; margin: 0.25rem 0 0; color: var(--doc-bordeaux); font-size: 0.92rem; }

.doc-trappola { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* --- Footer ------------------------------------------------------------------ */

.doc-footer {
  margin-top: 4rem;
  background: var(--doc-crema);
  color: var(--doc-inchiostro);
  font-size: 0.95rem;
}

.doc-footer a { color: var(--doc-bordeaux-scuro); }

/* «Preferenze cookie» è un pulsante ma nel footer appare come gli altri link */
.doc-link-footer {
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  --bs-btn-font-size: inherit;
  --bs-btn-border-width: 0;
  --bs-btn-color: var(--doc-bordeaux-scuro);
  --bs-btn-hover-color: var(--doc-bordeaux);
  vertical-align: baseline;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

/* Banner del consenso ai cookie di statistica */
.doc-cookie {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1070;
  background: var(--doc-crema);
  border-top: 3px solid var(--doc-bordeaux);
  box-shadow: 0 -0.4rem 1.4rem rgba(43, 37, 35, 0.15);
}

.doc-cookie-riga {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.5rem;
  padding-block: 1rem;
  padding-right: 3rem;
}

.doc-cookie p { flex: 1 1 28rem; margin: 0; font-size: 0.98rem; }
.doc-cookie a { color: var(--doc-bordeaux-scuro); }
.doc-cookie-pulsanti { display: flex; gap: 0.6rem; }
.doc-cookie-pulsanti .btn { min-width: 7.5rem; }
.doc-cookie .btn-close { position: absolute; top: 0.9rem; right: 0.75rem; }

@media print { .doc-cookie { display: none !important; } }

.doc-footer-loghi {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem 2.5rem;
}

.doc-footer-loghi img {
  max-height: 64px;
  max-width: 260px;
  width: auto;
  height: auto;
}

.doc-footer .doc-marchio-sigla { font-size: 1.5rem; }

/* Fascia istituzionale del Centro ICT per i Beni Culturali (loghi bianchi su nero) */
.doc-crediti {
  background: #495057;
  border-top: 1px solid #f7e6cc;
  color: #999;
  font-size: 1rem;
}

.doc-crediti-riga {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem 2.25rem;
  padding-block: 1.1rem;
}

.doc-crediti-loghi {
  display: flex;
  align-items: center;
  gap: 1.75rem;
}

.doc-crediti-loghi img {
  height: 56px;
  width: auto;
  opacity: 0.6;
  transition: opacity 0.15s;
}

.doc-crediti-loghi a:hover img,
.doc-crediti-loghi a:focus-visible img { opacity: 0.95; }

.doc-crediti p { margin: 0; }

.doc-crediti a { color: #e6e6e6; font-weight: 700; text-decoration: none; }
.doc-crediti a:hover { color: #fff; text-decoration: underline; }
.doc-crediti :focus-visible { outline-color: #fff; }

@media (max-width: 575.98px) {
  .doc-crediti-riga { justify-content: center; text-align: center; }
}

/* --- Stampa ------------------------------------------------------------------ */

@media print {
  .doc-rubrica, .doc-navbar, .doc-footer, .doc-azioni, .doc-non-stampare, .messages, .btn { display: none !important; }
  body { font-size: 11pt; }
  a { color: inherit; text-decoration: none; }
  .doc-lemma-stampa { break-inside: avoid; margin-bottom: 0.8rem; }
  .doc-in-attesa { background: none; }
  .col-lg-4 { display: none; }
  .col-lg-8 { width: 100%; }
}

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