:root {
  --bordeaux: #9f235c;
  --bordeaux-scuro: #70133f;
  --rosa-chiaro: #fbf1f6;
  --rosa-medio: #efd4e2;
  --testo: #2a2226;
  --bianco: #ffffff;
  --larghezza: 980px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--testo);
  background: var(--bianco);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.08rem;
  line-height: 1.7;
}

.contenitore {
  width: min(var(--larghezza), calc(100% - 2rem));
  margin-inline: auto;
}

.testata {
  padding: 4rem 0 3.5rem;
  color: var(--bianco);
  text-align: center;
  background-color: var(--bordeaux-scuro);
  background-image:
    linear-gradient(135deg, rgba(255,255,255,.07) 25%, transparent 25%),
    linear-gradient(225deg, rgba(255,255,255,.07) 25%, transparent 25%),
    linear-gradient(45deg, rgba(255,255,255,.07) 25%, transparent 25%),
    linear-gradient(315deg, rgba(255,255,255,.07) 25%, transparent 25%);
  background-position: 18px 0, 18px 0, 0 0, 0 0;
  background-size: 36px 36px;
}

.sovratitolo {
  margin: 0 0 .35rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .78rem;
  font-weight: 700;
}

h1, h2 {
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.2;
}

h1 {
  margin: 0;
  font-size: clamp(2.5rem, 7vw, 4.5rem);
}

.sottotitolo {
  margin: .7rem 0 0;
  font-size: clamp(1rem, 2.5vw, 1.3rem);
}

.contenuto { padding: 3.5rem 0; }

section {
  padding: 2.4rem 0;
  border-bottom: 1px solid var(--rosa-medio);
}

section:first-child { padding-top: 0; }
section:last-child { border-bottom: 0; }

h2 {
  margin: 0 0 1rem;
  color: var(--bordeaux-scuro);
  font-size: clamp(1.65rem, 4vw, 2.15rem);
}

p { margin: 0 0 1.15rem; }
p:last-child { margin-bottom: 0; }

.riquadro {
  padding: 2rem;
  border: 1px solid var(--rosa-medio);
  border-left: .4rem solid var(--bordeaux);
  background: var(--rosa-chiaro);
  border-radius: .35rem;
}

.azione { margin-top: 1.5rem; }

.pulsante {
  display: inline-block;
  max-width: 100%;
  padding: .75rem 1.15rem;
  color: var(--bianco);
  background: var(--bordeaux);
  border: 2px solid var(--bordeaux);
  border-radius: .25rem;
  font-weight: 700;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.pulsante:hover,
.pulsante:focus-visible {
  background: var(--bordeaux-scuro);
  border-color: var(--bordeaux-scuro);
}

.pulsante-secondario {
  color: var(--bordeaux-scuro);
  background: var(--bianco);
}

.pulsante-secondario:hover,
.pulsante-secondario:focus-visible { color: var(--bianco); }

.libro {
  display: grid;
  grid-template-columns: minmax(220px, 330px) 1fr;
  gap: 2.5rem;
  align-items: start;
}

.copertina img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--rosa-medio);
  box-shadow: 0 .6rem 1.6rem rgba(74, 22, 49, .15);
}

.copertina a:focus-visible img {
  outline: 3px solid var(--bordeaux);
  outline-offset: 4px;
}

cite { font-style: italic; }

.saluto {
  margin-top: 1rem;
  padding: 2rem;
  color: var(--bordeaux-scuro);
  background: var(--rosa-chiaro);
  text-align: center;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
}

footer {
  padding: 1.5rem 0;
  color: var(--bianco);
  background: var(--bordeaux-scuro);
  text-align: center;
  font-size: .92rem;
}

footer p { margin: 0; }

@media (max-width: 720px) {
  body { font-size: 1rem; }
  .testata { padding: 3rem 0 2.7rem; }
  .contenuto { padding: 2rem 0; }
  section { padding: 2rem 0; }
  .riquadro, .saluto { padding: 1.35rem; }
  .libro { grid-template-columns: 1fr; gap: 1.6rem; }
  .copertina { max-width: 420px; margin-inline: auto; }
  .pulsante { width: 100%; text-align: center; }
}

@media print {
  .testata, footer { background: none; color: #000; }
  .pulsante { color: #000; background: none; border: 1px solid #000; }
  .libro { grid-template-columns: 240px 1fr; }
}
