/*
Theme Name:   Chitarra Genova
Theme URI:    https://chitarra-genova.it/
Author:       Andrea Golembiewski
Description:  Tema custom minimale per chitarra-genova.it. Zero JavaScript, zero font esterni, markup semantico e valido W3C. Un solo foglio di stile: questo.
Version:      1.7.1
Requires at least: 6.0
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  chitarra-genova
*/

/* ============================================================
   INDICE
   1. Token (colori, tipografia)
   2. Reset essenziale
   3. Base
   4. Firma: il rigo a sei linee
   5. Segnaposto da completare
   6. Header
   7. Hero
   8. Griglie e card
   9. Sezioni (metodo, recensioni, chi sono, inizio)
   10. Pagine interne (page.php, index.php, 404)
   11. Footer
   ============================================================ */

/* ---------- 1. Token ---------- */
:root{
  /* PALETTE DEL BRAND — versione light (andreagolembiewski.com al contrario).
     Di là: fondo navy #0B1F2A, testo chiaro #F5F5F5, accento oro #ECA400.
     Di qua: il loro testo è il nostro sfondo, il loro sfondo è il nostro
     inchiostro (e il footer). L'oro resta oro — ma sui fondi chiari fa
     1,95:1 di contrasto, quindi NON porta mai testo: solo stelle, dettagli
     e il footer navy, dove rende 7,9:1. Verificato WCAG su ogni coppia. */
  --carta:        #F5F5F5;  /* fondo: il loro colore del testo */
  --inchiostro:   #0B1F2A;  /* testo: il loro navy, pari pari */
  --brand:        #284B63;  /* link e bottoni: il blu del loro gradiente hero */
  --brand-cupo:   #0B1F2A;  /* footer e hover: il navy pieno */
  --accento:      #ECA400;  /* l'oro — decorativo su chiaro, testuale solo su navy */
  --secondario:   #46535F;  /* testo secondario: ardesia fredda, 7,2:1 su carta */
  --linea:        #D9DEE3;  /* hairline, bordi card */
  --tinta:        #E9EEF2;  /* sezioni alternate: un soffio di navy */
  --bianco:       #ffffff;

  /* Tipografia. Display: Palatino, il carattere dell'editoria musicale.
     Testo: Charter/Cambria, disegnati per la leggibilità su schermo —
     e gli allievi adulti con la presbiopia ringraziano.
     Niente Google Fonts via CDN: questione GDPR, e zero richieste esterne. */
  --f-display: "Palatino Linotype", Palatino, "URW Palladio L", "Book Antiqua", Georgia, serif;
  --f-testo:   Charter, "Bitstream Charter", Cambria, Georgia, serif;
  --f-utility: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ---------- 2. Reset essenziale ---------- */
*,*::before,*::after{ box-sizing:border-box; }
body,h1,h2,h3,h4,p,figure,blockquote,ol,ul,dl,dd{ margin:0; }
img{ max-width:100%; height:auto; display:block; }

@media (prefers-reduced-motion: no-preference){
  html{ scroll-behavior:smooth; }
}

/* ---------- 3. Base ---------- */
body{
  background:var(--carta);
  color:var(--inchiostro);
  font-family:var(--f-testo);
  font-size:1.1875rem;            /* 19px: base generosa, voluta */
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:600;
  line-height:1.15;
  text-wrap:balance;
}
h1{ font-size:clamp(2.25rem, 5.5vw, 3.5rem); letter-spacing:-0.01em; }
h2{ font-size:clamp(1.625rem, 3.5vw, 2.25rem); }
h3{ font-size:1.25rem; }

a{ color:var(--brand); text-underline-offset:0.15em; }
a:hover{ color:var(--brand-cupo); }
:focus-visible{ outline:3px solid var(--brand); outline-offset:2px; border-radius:2px; }

.wrap{ max-width:70rem; margin-inline:auto; padding-inline:clamp(1.25rem, 4vw, 2.5rem); }
.prosa{ max-width:62ch; }
section{ padding-block:clamp(3.25rem, 8vw, 5.5rem); scroll-margin-top:1rem; }

/* Ritmo verticale per contenuti liberi (editor delle pagine interne) */
.flow > * + *{ margin-block-start:1.05em; }
.flow h2{ margin-block-start:1.8em; }
.flow h3{ margin-block-start:1.5em; }
.flow ul, .flow ol{ padding-inline-start:1.4em; }

.occhiello{
  font-family:var(--f-utility);
  font-size:0.8125rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--secondario);
}

.visually-hidden,
.screen-reader-text{
  position:absolute; width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  clip-path:inset(50%); overflow:hidden; white-space:nowrap;
}

/* ---------- 4. Firma: il rigo a sei linee (le sei corde) ---------- */
.rigo{
  height:51px;                     /* 6 linee a passo 10px */
  background:repeating-linear-gradient(
    to bottom,
    var(--linea) 0 1px,
    transparent 1px 10px
  );
}

/* ---------- 5. Segnaposto da completare ---------- */
mark.todo{
  background:#ffe9a8;
  outline:1px dashed #b98900;
  padding:0 0.3em;
  border-radius:3px;
  font-family:var(--f-utility);
  font-size:0.9em;
}

/* ---------- 6. Header ---------- */
.testata{ border-bottom:1px solid var(--linea); background:var(--carta); }
.testata .wrap{
  display:flex; flex-wrap:wrap; align-items:baseline;
  gap:0.5rem 2rem; padding-block:1.1rem;
}
.marchio{
  font-family:var(--f-display);
  font-size:1.3rem; font-weight:700;
  color:var(--inchiostro); text-decoration:none;
}
.marchio span{ color:var(--accento); }
.nav-principale{ margin-left:auto; }
.nav-principale ul{
  list-style:none; padding:0;
  display:flex; flex-wrap:wrap; gap:0.25rem 1.4rem;
  font-family:var(--f-utility); font-size:0.9375rem;
}
.nav-principale a{ color:var(--inchiostro); text-decoration:none; }
.nav-principale a:hover{ color:var(--brand); text-decoration:underline; }

.salta{
  position:absolute; left:-999px; top:0;
  background:var(--brand); color:var(--bianco);
  padding:0.6rem 1rem; z-index:10; font-family:var(--f-utility);
}
.salta:focus{ left:0.5rem; top:0.5rem; }

/* ---------- 7. Hero ---------- */
.hero h1{ max-width:18ch; margin-top:0.75rem; }
.hero .lede{
  max-width:56ch; margin-top:1.25rem;
  font-size:clamp(1.1875rem, 2.2vw, 1.375rem);
}
.hero .rigo{ margin-block:2rem 1.75rem; }

.badge-recensioni{
  display:inline-block;
  font-family:var(--f-utility); font-size:0.9375rem;
  color:var(--inchiostro); text-decoration:none;
  border:1px solid var(--linea); border-radius:999px;
  background:var(--bianco);
  padding:0.45rem 1rem;
}
.badge-recensioni:hover{ border-color:var(--accento); color:var(--inchiostro); }
.stelle{ color:var(--accento); letter-spacing:0.1em; }

.azioni{ display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:1.5rem; }
.btn{
  display:inline-block;
  font-family:var(--f-utility); font-weight:600; font-size:1rem;
  text-decoration:none; text-align:center;
  padding:0.85rem 1.6rem; border-radius:8px;
  background:var(--brand); color:var(--bianco);
  border:2px solid var(--brand);
}
.btn:hover{ background:var(--brand-cupo); border-color:var(--brand-cupo); color:var(--bianco); }
.btn-secondario{ background:transparent; color:var(--brand); }
.btn-secondario:hover{ background:var(--tinta); color:var(--brand-cupo); }

/* ---------- 8. Griglie e card ---------- */
.griglia-3{
  display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr));
  margin-top:2rem;
}
.griglia-2{
  display:grid; gap:1.25rem 2.5rem;
  grid-template-columns:repeat(auto-fit, minmax(18rem, 1fr));
  margin-top:2rem;
}

.porta{
  background:var(--bianco);
  border:1px solid var(--linea); border-radius:10px;
  padding:1.5rem 1.4rem;
  display:flex; flex-direction:column; gap:0.6rem;
}
.porta h3{ margin-top:0.1rem; }
.porta p{ color:var(--secondario); font-size:1.0625rem; flex-grow:1; }
.porta a{ font-family:var(--f-utility); font-size:0.9375rem; font-weight:600; text-decoration:none; }
.porta a:hover{ text-decoration:underline; }

/* ---------- 9. Sezioni ---------- */
.metodo{ background:var(--tinta); }
.voce-metodo h3{ font-size:1.1875rem; }
.voce-metodo p{ color:var(--secondario); font-size:1.0625rem; margin-top:0.35rem; }

.punteggio{
  display:flex; flex-wrap:wrap; align-items:baseline;
  gap:0.5rem 1rem; margin-top:1.25rem;
}
.punteggio .numero{
  font-family:var(--f-display); font-size:3rem; font-weight:700; line-height:1;
}
.punteggio .dettaglio{ font-family:var(--f-utility); color:var(--secondario); }

.recensione{
  background:var(--bianco);
  border:1px solid var(--linea); border-radius:10px;
  padding:1.4rem;
}
.recensione blockquote p{ font-style:italic; font-size:1.0625rem; }
.recensione figcaption{
  margin-top:0.9rem;
  font-family:var(--f-utility); font-size:0.875rem; color:var(--secondario);
}

.profilo{
  display:grid; gap:2rem;
  grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr));
  align-items:center;
}
.foto-segnaposto{
  aspect-ratio:4/5; max-width:20rem;
  border:2px dashed var(--accento); border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  text-align:center; padding:1rem;
  font-family:var(--f-utility); font-size:0.9rem; color:var(--secondario);
  background:var(--bianco);
}
.foto-bio{
  aspect-ratio:4/5; max-width:20rem;
  border-radius:10px; overflow:hidden;
}
.foto-bio img{ width:100%; height:100%; object-fit:cover; }
/* Sulle pagine interne (Chi sono): foto a destra, testo che ci scorre intorno */
.flow .foto-bio{
  float:right; max-width:14rem; margin:0 0 1.25rem 1.75rem;
}
@media (max-width: 40rem){
  .flow .foto-bio{ float:none; max-width:18rem; margin:0 auto 1.5rem; }
}

.inizio{ background:var(--tinta); }
.passi{
  counter-reset:passo;
  list-style:none; padding:0; margin-top:2rem;
  display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr));
}
.passi li{
  counter-increment:passo;
  background:var(--bianco);
  border:1px solid var(--linea); border-radius:10px;
  padding:1.4rem;
}
.passi li::before{
  content:counter(passo);
  display:inline-flex; align-items:center; justify-content:center;
  width:2.1rem; height:2.1rem; border-radius:50%;
  background:var(--brand); color:var(--bianco);
  font-family:var(--f-utility); font-weight:700;
  margin-bottom:0.7rem;
}
.passi h3{ font-size:1.125rem; }
.passi p{ color:var(--secondario); font-size:1.0625rem; margin-top:0.3rem; }
.promessa{ margin-top:1.75rem; font-style:italic; }

/* ---------- 10. Pagine interne ---------- */
.pagina-testata{ padding-block:clamp(2.5rem, 6vw, 4rem) 0; }
.pagina-contenuto{ padding-block:clamp(1.5rem, 4vw, 2.5rem) clamp(3rem, 8vw, 5rem); }

.elenco-articoli{ list-style:none; padding:0; margin-top:2rem; }
.elenco-articoli li + li{ margin-top:2rem; padding-top:2rem; border-top:1px solid var(--linea); }
.elenco-articoli h2{ font-size:1.5rem; }
.elenco-articoli time{ font-family:var(--f-utility); font-size:0.875rem; color:var(--secondario); }

/* ---------- 11. Footer ---------- */
.fondo{ background:var(--brand-cupo); color:#E2E8F0; }
.fondo .wrap{ padding-block:3rem 2rem; }
.fondo a{ color:var(--bianco); }
.fondo a:hover{ color:var(--accento); }
.fondo .colonne{
  display:grid; gap:2rem;
  grid-template-columns:repeat(auto-fit, minmax(14rem, 1fr));
}
.fondo h2{
  font-size:1.0625rem; font-family:var(--f-utility);
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--accento);
}
.fondo address{ font-style:normal; margin-top:0.75rem; line-height:1.8; }
.fondo ul{ list-style:none; padding:0; margin-top:0.75rem; line-height:2; }
.fondo .legale{
  margin-top:2.5rem; padding-top:1.25rem;
  border-top:1px solid rgba(255,255,255,0.25);
  font-family:var(--f-utility); font-size:0.875rem;
  display:flex; flex-wrap:wrap; gap:0.5rem 1.5rem;
}
.fondo mark.todo{ color:var(--inchiostro); }
