/* ==========================================================
   Organo & Interpretazione – foglio di stile comune alle pagine dei libri
   Blockwerk Editiones · organ-interpretation.com

   Impostazione: come un frontespizio. In alto copertina e titolo con la
   grande "&" della collana, sotto la fascia rossa con Flipbook e Videoclip,
   poi l'indice su pergamena accanto al collage di immagini sovrapposte,
   infine i giudizi. Sul telefono tutto va in una colonna.
   ========================================================== */

/* ---------- Caratteri ----------
   Palatino, come nel libro. Chi ha il Palatino sul computer (Windows, Mac,
   iPhone, iPad) usa il suo; gli altri (Android) scaricano dal sito il
   TeX Gyre Pagella, copia libera del Palatino. La "&" grande è in Petit Formal Script,
   un corsivo calligrafico simile al French Script delle copertine. */
@font-face { font-family: "Pagella"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/pagella-regular.woff2") format("woff2"); }
@font-face { font-family: "Pagella"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/pagella-italic.woff2") format("woff2"); }
@font-face { font-family: "Pagella"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/pagella-bold.woff2") format("woff2"); }
@font-face { font-family: "Et corsivo"; font-style: normal; font-weight: 400; font-display: block;
  src: url("fonts/et-corsivo.woff2") format("woff2"); }

/* ---------- Colori e misure ---------- */
:root {
  --carta: #F0CF98;          /* fondo giallo sabbia dorata, pieno a sinistra */
  --bianco: #FFFDF8;         /* il bianco verso cui sfuma, a destra */
  --pergamena: #FFF3D4;      /* riquadro dell'indice */
  --velo: rgba(255, 243, 212, 0.78); /* velo chiaro sopra la partitura */
  --inchiostro: #3B1405;     /* testo */
  --seppia: #7A3812;         /* testo secondario */
  --cinabro: #B51D0D;        /* titoli, numeri dei capitoli */
  --arancio: #E07A1F;        /* la "&" della collana */
  --oro: #D29A2E;            /* cornici e filetti */
  --oro-chiaro: #F6D27A;     /* scritte sulla fascia */
  --fascia: #A3180C;         /* fascia rossa */
  --fascia-scura: #74100A;
  --rosso-vivo: #F0442C;     /* scritte rosse sulle tessere video */
  --ombra: rgba(70, 25, 0, 0.32);

  --font-libro: "Palatino Linotype", Palatino, "Pagella", "Book Antiqua", Georgia, serif;
  --font-et: "Et corsivo", "French Script MT", "Palatino Linotype", Palatino, "Pagella", cursive;

  --larghezza: 1180px;
  --margine: clamp(16px, 4vw, 40px);
  color-scheme: only light;   /* la pagina ha solo la versione chiara */
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  /* giallo a sinistra che sfuma nel bianco verso destra, con la partitura sotto */
  background-color: var(--carta);
  background-image:
    linear-gradient(to right,
      rgba(255, 253, 248, 0) 0%,
      rgba(255, 253, 248, .12) 25%,
      rgba(255, 253, 248, .32) 50%,
      rgba(255, 253, 248, .55) 75%,
      rgba(255, 253, 248, .8) 100%),   /* a destra resta circa il 20% del giallo */
    url("img/comuni/sfondo-partitura.png");
  background-size: 100% 100%, 1300px auto;
  background-repeat: no-repeat, repeat;
  background-position: left top, center top;
  color: var(--inchiostro);
  font-family: var(--font-libro);
  font-size: 1rem;
  line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--cinabro); }
a:focus-visible { outline: 2px solid var(--arancio); outline-offset: 3px; border-radius: 2px; }
h1, h2, h3 { text-wrap: balance; margin: 0; font-weight: 400; }
p { margin: 0; }

.contenitore {
  max-width: var(--larghezza);
  margin-inline: auto;
  padding-inline: var(--margine);
}

.salta {
  position: absolute; left: -999px; top: 0;
  background: var(--pergamena); color: var(--cinabro); padding: .5rem 1rem; z-index: 30;
}
.salta:focus { left: 1rem; top: 1rem; }

/* ---------- Testata ---------- */
.testata { border-bottom: 1px solid var(--oro); background: var(--velo); }
.testata .contenitore {
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem 1.5rem; flex-wrap: wrap;
  padding-block: .55rem;
}
.marchio {
  font-size: 1.15rem; line-height: 1.2;
  color: var(--cinabro); text-decoration: none;
}
.marchio .e {
  display: inline-block;
  font-family: var(--font-et); color: var(--arancio); font-size: 1.25em; line-height: 1;
  transform: skewX(18deg);   /* raddrizza la "&" corsiva, come in copertina */
}
.testata nav a {
  font-size: .85rem;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--seppia); text-decoration: none;
  border-bottom: 1px solid transparent;
}
.testata nav a:hover { color: var(--cinabro); border-bottom-color: var(--oro); }

/* ---------- Frontespizio: copertina + titolo ---------- */
.frontespizio {
  padding-top: clamp(1.5rem, 4vw, 3rem);
}
.frontespizio .contenitore {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 1.75rem;
}
.copertina { margin: 0; width: min(240px, 66vw); }
.copertina img {
  width: 100%;
  border: 1px solid var(--fascia-scura);
  box-shadow: 0 2px 3px var(--ombra), 8px 12px 24px var(--ombra);
}
.titolo {
  --F: clamp(2.3rem, 1.3rem + 4.4vw, 4.1rem);   /* misura del marchio: tutto il resto è in proporzione */
  position: relative;
  display: grid; gap: .65rem; justify-items: start;
  width: fit-content; max-width: 100%; min-width: 0;
  padding-bottom: 1.75rem;
}
.titolo > * { position: relative; z-index: 1; }
.autore {
  font-size: clamp(.95rem, .85rem + .4vw, 1.15rem);
  text-transform: uppercase; letter-spacing: .2em;
  color: var(--seppia);
}

/* Il marchio della collana, come in copertina: ORGANO, sotto una grande "&"
   che scende accanto a tutte le righe seguenti, rientrate alla sua destra. */
.collana {
  color: var(--cinabro);
  line-height: 1;
}
.collana > span { display: block; position: relative; z-index: 1; }
.collana .c-organo {
  font-size: var(--F);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-left: calc(var(--F) * .8);      /* ORGANO un po' a destra, appoggiato alla & */
  margin-bottom: calc(var(--F) * -.3);   /* e abbassato, vicino a "interpretazione" */
}
.collana .c-e {
  position: absolute; z-index: 0;
  left: calc(var(--F) * -.27);
  top: calc(var(--F) * .22);
  font-family: var(--font-et);
  font-weight: 400;
  font-size: calc(var(--F) * 3.5);
  line-height: 1;
  color: var(--arancio);
  transform: skewX(18deg);   /* raddrizza la "&" corsiva, come in copertina */
  transform-origin: 50% 85%;
  pointer-events: none;
}
.collana .c-interp,
.collana .c-sottotitolo,
.collana .c-parte,
.titolo .dati,
.titolo .disponibile,
.titolo .altre-recensioni { margin-left: calc(var(--F) * 2); }   /* a ridosso della & */
.collana .c-interp {
  font-size: calc(var(--F) * .82);
  margin-top: calc(var(--F) * .1);
  padding-bottom: calc(var(--F) * .1);
  border-bottom: 1px solid var(--oro);
  line-height: 1.05;
}
.collana .c-sottotitolo {
  font-style: italic;
  font-size: calc(var(--F) * .42);
  margin-top: calc(var(--F) * .16);
  line-height: 1.2;
}
.collana .c-parte {
  font-size: calc(var(--F) * .27);
  text-transform: uppercase; letter-spacing: .24em;
  margin-top: calc(var(--F) * .14);
  color: var(--fascia);
}

.dati {
  font-size: .9rem; color: var(--seppia);
  font-variant-numeric: lining-nums tabular-nums;
}
.dati span { white-space: nowrap; }
.disponibile {
  display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
  font-size: .8rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--seppia);
}
.disponibile img { width: 112px; }   /* il logo ha già la sua targhetta chiara, leggibile su ogni fondo */

/* collegamento a una pagina di recensioni (es. scuola francese) */
.altre-recensioni a {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .8rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--cinabro); text-decoration: none;
}
.altre-recensioni img { width: 4.2rem; transition: transform .2s ease; }
.altre-recensioni a:hover span { text-decoration: underline; text-decoration-color: var(--oro); text-underline-offset: 3px; }
.altre-recensioni a:hover img { transform: rotate(-4deg); }

/* ---------- Video di approfondimento (tessere quadrate) ---------- */
.temi { padding-block: clamp(2rem, 5vw, 3.5rem); }
.tessere {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.9rem, 3vw, 1.75rem);
  max-width: 960px; margin-inline: auto;
}
.tessera {
  aspect-ratio: 1; max-width: 100%;
  display: grid; place-items: center; text-align: center;
  padding: .75rem;
  background: var(--inchiostro) center / cover no-repeat;
  border: 3px solid var(--oro);
  box-shadow: 3px 5px 12px var(--ombra);
  color: #FFFFFF; text-decoration: none;
  font-style: italic; font-weight: 700;
  font-size: clamp(1.1rem, .85rem + 1.1vw, 1.55rem); line-height: 1.15;
  text-shadow: 0 2px 4px #000000, 0 0 12px rgba(0, 0, 0, .6);
  transition: transform .2s ease, box-shadow .2s ease;
}
.tessera:hover { transform: translateY(-3px); box-shadow: 5px 9px 18px var(--ombra); }
.tessera .piccolo { font-size: .62em; }
.tessera .rosso { color: var(--rosso-vivo); }

/* ---------- Fascia rossa: Flipbook e Videoclip ---------- */
.fascia {
  position: relative;
  background: linear-gradient(to bottom, var(--fascia) 0%, var(--fascia-scura) 100%);
  border-block: 3px solid var(--oro);
  box-shadow: 0 1px 0 var(--fascia-scura), 0 -1px 0 var(--fascia-scura);
}
.fascia .contenitore {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: .25rem clamp(.5rem, 6vw, 4.5rem);
  padding-block: .5rem;
}
.fascia a {
  display: flex; align-items: center; gap: .65rem;
  padding: .25rem .5rem;
  font-size: clamp(1rem, .9rem + .6vw, 1.3rem);
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--oro-chiaro);
  text-decoration: none;
  text-shadow: 0 1px 1px var(--fascia-scura);
}
.fascia a img {
  height: clamp(3.2rem, 2.6rem + 2.5vw, 4.6rem); width: auto;
  transition: transform .2s ease;
}
.fascia a:hover { color: #FFFFFF; }
.fascia a:hover img { transform: translateY(-3px) rotate(-2deg); }
.fascia a:focus-visible { outline-color: var(--oro-chiaro); }

/* ---------- Indice e immagini ---------- */
.libro {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2rem, 4vw, 3.5rem);
  padding-block: clamp(2rem, 5vw, 3.5rem);
}
.indice {
  min-width: 0;
  background: var(--pergamena);
  border: 3px double var(--oro);
  box-shadow: 4px 6px 18px var(--ombra);
  padding: clamp(1.1rem, 3.5vw, 1.9rem) clamp(1rem, 3.5vw, 2rem);
}
.indice h2 {
  font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem);
  text-transform: uppercase; letter-spacing: .16em;
  color: var(--cinabro);
  text-align: center;
  padding-bottom: .7rem; margin-bottom: 1rem;
  border-bottom: 1px solid var(--oro);
}
.capitoli, .capitoli ul { list-style: none; margin: 0; padding: 0; }
.capitoli { display: grid; gap: .65rem; }
.capitoli > li {
  display: grid;
  grid-template-columns: 1.9rem 1fr;
  column-gap: .35rem;
}
.capitoli .num, .capitoli .cap {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
}
.capitoli .num {
  color: var(--cinabro);
  text-align: right; padding-right: .3rem;
  font-variant-numeric: lining-nums tabular-nums;
}
.capitoli .cap { color: var(--inchiostro); }
.capitoli ul {
  grid-column: 2;
  margin-top: .15rem;
  font-size: .93rem;
  line-height: 1.32;
  color: var(--seppia);
}
.capitoli ul li { padding-left: .9rem; position: relative; margin-top: .06rem; }
.capitoli ul li::before {
  content: ""; position: absolute; left: .1rem; top: .58em;
  width: .28rem; height: .28rem; background: var(--oro); transform: rotate(45deg);
}

/* Collage: le immagini sono posizionate in percentuale (come nell'originale),
   quindi si rimpiccioliscono insieme senza perdere le sovrapposizioni.
   Le posizioni di ogni immagine sono scritte nella pagina del libro. */
.immagini {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 136%;          /* altezza / larghezza del collage */
  align-self: start;
  max-width: 600px;
  justify-self: center;
}
.immagini img {
  position: absolute;
  box-shadow: 3px 5px 10px var(--ombra);
  transition: transform .25s ease, box-shadow .25s ease;
}
.immagini img.tondo { border-radius: 50%; }   /* immagini rotonde */
.immagini img:hover {
  z-index: 20 !important;
  transform: scale(1.05);
  box-shadow: 6px 10px 22px var(--ombra);
}

/* ---------- Giudizi ---------- */
.giudizi { padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.giudizi .contenitore { max-width: 860px; }
.ornamento {
  display: flex; align-items: center; gap: .8rem;
  max-width: 16rem; margin: 0 auto 1.5rem;
}
.ornamento::before, .ornamento::after { content: ""; flex: 1; height: 1px; background: var(--oro); }
.ornamento span { width: .55rem; height: .55rem; background: var(--cinabro); transform: rotate(45deg); }

.elenco-giudizi { display: grid; gap: clamp(1rem, 2.5vw, 1.4rem); }
.giudizio {
  display: grid;
  grid-template-columns: clamp(5rem, 15vw, 8.5rem) 1fr;
  grid-template-areas: "foto nome" "foto testo";
  grid-template-rows: auto 1fr;
  column-gap: clamp(1rem, 3vw, 1.75rem);
  row-gap: .35rem;
  background: var(--velo);
  border-top: 1px solid var(--oro);
  padding: clamp(.9rem, 2.5vw, 1.3rem) clamp(.9rem, 3vw, 1.4rem);
}
.giudizio img {
  grid-area: foto;
  width: 100%;
  border: 3px solid var(--oro);
  box-shadow: 2px 4px 10px var(--ombra);
}
.giudizio h3 {
  grid-area: nome;
  font-size: clamp(1rem, .95rem + .3vw, 1.15rem);
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--cinabro);
  align-self: end;
}
.giudizio blockquote {
  grid-area: testo;
  margin: 0;
  min-width: 0;
  font-size: .94rem;
  line-height: 1.5;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.giudizio blockquote p + p { margin-top: .5em; }
/* virgolette solo all'inizio del primo paragrafo e alla fine dell'ultimo */
.giudizio blockquote p:first-of-type::before {
  content: "\201C";
  color: var(--arancio);
  font-size: 1.6em; line-height: 0;
  margin-right: .1em; vertical-align: -.25em;
}
.giudizio blockquote p:last-of-type::after { content: "\201D"; color: var(--arancio); }

/* testo originale (es. italiano) di un giudizio tradotto: si apre con un clic */
.originale { margin-top: .7rem; font-size: .88rem; color: var(--seppia); }
.originale summary {
  cursor: pointer; width: fit-content;
  font-size: .76rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--cinabro);
}
.originale summary::marker { color: var(--oro); }
.originale[open] summary { margin-bottom: .45rem; }
.originale p + p { margin-top: .45em; }

/* cartellino "NEW!" sull'angolo della copertina */
.copertina { position: relative; }
.nuovo {
  position: absolute; top: -.7rem; left: -.9rem; z-index: 3;
  padding: .2rem .8rem;
  background: var(--fascia); color: var(--oro-chiaro);
  border: 2px solid var(--oro);
  font-size: 1.05rem; letter-spacing: .16em; text-transform: uppercase;
  transform: rotate(-8deg);
  box-shadow: 2px 4px 8px var(--ombra);
}

/* ---------- Logo Blockwerk Editiones ----------
   sotto il titolo (al posto della scritta) e nel piede di pagina */
.collana .c-parte.logo { margin-top: calc(var(--F) * .22); }
.collana .c-parte.logo img { height: calc(var(--F) * .85); width: auto; }
.editore { display: flex; align-items: center; gap: .9rem; }
.editore img { height: 42px; width: auto; }

/* ---------- Piede ---------- */
.piede { border-top: 1px solid var(--oro); background: var(--velo); }
.piede .contenitore {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .75rem 1.5rem;
  padding-block: 1rem;
  font-size: .88rem; color: var(--seppia);
}
.piede a {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .9rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--cinabro); text-decoration: none;
}
.piede a img { width: 40px; height: 40px; border-radius: 3px; box-shadow: 1px 2px 4px var(--ombra); }
.piede a:hover span { text-decoration: underline; text-decoration-color: var(--oro); text-underline-offset: 3px; }

/* ---------- Telefono stretto ---------- */
@media (max-width: 559px) {
  body { background-size: 100% 100%, 900px auto; }
  .fascia a { gap: .4rem; padding-inline: .15rem; letter-spacing: .06em; font-size: .92rem; }
  .fascia a img { height: 2.9rem; }
  .giudizio {
    grid-template-columns: 4.5rem 1fr;
    grid-template-areas: "foto nome" "testo testo";
    grid-template-rows: auto auto;
    row-gap: .8rem;
  }
  .giudizio h3 { align-self: center; }
}

/* ---------- Tablet: copertina accanto al titolo ---------- */
@media (min-width: 640px) {
  .tessere { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .frontespizio .contenitore {
    grid-template-columns: minmax(190px, 240px) 1fr;
    justify-items: stretch;
    align-items: center;
    gap: clamp(1.75rem, 4vw, 3.5rem);
  }
  .copertina { width: 100%; margin-bottom: 1.75rem; }
  .titolo { justify-self: start; }
}

/* ---------- PC: la copertina scende sulla fascia, indice e collage affiancati ---------- */
@media (min-width: 960px) {
  .frontespizio .contenitore {
    grid-template-columns: 330px 1fr;
    align-items: end;
  }
  .copertina { position: relative; z-index: 2; margin-bottom: -5.5rem; align-self: start; }
  .titolo { padding-bottom: 2rem; }
  .fascia .contenitore {
    justify-content: flex-start;
    padding-left: calc(var(--margine) + 330px + clamp(1.75rem, 4vw, 3.5rem));
    min-height: 6rem;
  }
  .libro {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    padding-top: 4.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fascia a img, .immagini img, .tessera, .altre-recensioni img { transition: none; }
  .fascia a:hover img, .immagini img:hover, .tessera:hover, .altre-recensioni a:hover img { transform: none; }
}

@media print {
  body { background: #FFFFFF; }
  .testata nav, .fascia { display: none; }
}
