/* ============================================================
   Le avventure di Kai — stile personalizzato
   Bootstrap 5 arriva da CDN; qui ci sono solo le classi proprie.
   ============================================================ */

:root {
  --sabbia:      #FBF3E4;
  --sabbia-2:    #F4E5C9;
  --sabbia-3:    #E6CFA6;
  --ocra:        #B5622A;
  --kai:         #E4611C;
  --kai-scuro:   #A93D0B;
  --bosco:       #2C4030;
  --bosco-2:     #47624B;
  --inchiostro:  #34210F;
  --inchiostro-2:#6B563F;

  --display: "Baloo 2", system-ui, sans-serif;
  --testo:   "Nunito", system-ui, sans-serif;
  --firma:   "Caveat", cursive;

  --ombra-morbida: 0 18px 40px -24px rgba(52, 33, 15, .5);
  --ombra-alta:    0 26px 54px -26px rgba(52, 33, 15, .6);
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  font-family: var(--testo);
  color: var(--inchiostro);
  background: var(--sabbia);
  font-size: 1.0625rem;
  line-height: 1.7;
  overflow-x: hidden;
}

h1, h2, h3, h4, .display-kai {
  font-family: var(--display);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.01em;
}

a { color: var(--kai-scuro); text-underline-offset: .2em; }
a:hover { color: var(--kai); }

:focus-visible {
  outline: 3px solid var(--kai);
  outline-offset: 3px;
  border-radius: 4px;
}

.salta-al-contenuto {
  position: absolute; left: -999px; top: 0; z-index: 2000;
  background: var(--bosco); color: #fff; padding: .75rem 1.25rem; border-radius: 0 0 12px 0;
}
.salta-al-contenuto:focus { left: 0; color: #fff; }

/* ---------- utilità di colore ---------- */
.sezione        { padding: 4rem 0; }
.sezione-sabbia { background: var(--sabbia-2); }
.sezione-bosco  { background: var(--bosco); color: var(--sabbia); }
.sezione-bosco h2, .sezione-bosco h3 { color: #fff; }

.testo-kai   { color: var(--kai-scuro); }
.testo-ocra  { color: var(--ocra); }
.testo-tenue { color: var(--inchiostro-2); }

.occhiello {
  font-family: var(--testo);
  font-weight: 800;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--kai-scuro);
  margin-bottom: .6rem;
}
.sezione-bosco .occhiello { color: var(--sabbia-3); }

.firma {
  font-family: var(--firma);
  font-size: 2.4rem;
  color: var(--ocra);
  line-height: 1;
}

/* ---------- il branco: un arancione fra tanti color sabbia ---------- */
.branco {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(6px, 1.6vw, 18px);
  padding: 0 1rem;
  pointer-events: none;
  user-select: none;
}
.branco .suricato {
  width: clamp(16px, 3.2vw, 34px);
  color: var(--sabbia-3);
  flex: none;
  opacity: .85;
  transition: transform .5s ease, opacity .5s ease;
}
.branco .suricato.e-kai {
  color: var(--kai);
  opacity: 1;
  width: clamp(24px, 4.6vw, 48px);
  filter: drop-shadow(0 6px 12px rgba(228, 97, 28, .35));
}
.branco.animato .suricato { opacity: 0; transform: translateY(14px); }
.branco.animato.visibile .suricato { opacity: .85; transform: none; }
.branco.animato.visibile .suricato.e-kai { opacity: 1; }
.sezione-bosco .branco .suricato { color: var(--bosco-2); opacity: 1; }

/* ---------- navbar ---------- */
.navbar-kai {
  background: rgba(251, 243, 228, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.navbar-kai.scrollata { box-shadow: var(--ombra-morbida); border-bottom-color: var(--sabbia-3); }
.navbar-kai .navbar-brand {
  font-family: var(--display);
  font-weight: 800;
  font-size: 1.4rem;
  color: var(--inchiostro);
  letter-spacing: -.02em;
}
.navbar-kai .navbar-brand span { color: var(--kai); }
.navbar-kai .nav-link {
  font-weight: 700;
  color: var(--inchiostro);
  padding: .5rem .9rem;
  border-radius: 999px;
}
.navbar-kai .nav-link:hover,
.navbar-kai .nav-link:focus { color: var(--kai-scuro); background: rgba(228, 97, 28, .1); }
.navbar-kai .nav-link.attivo { color: var(--kai-scuro); background: rgba(228, 97, 28, .14); }
.navbar-toggler { border-color: var(--sabbia-3); }
.navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(228, 97, 28, .3); }

/* ---------- bottoni ---------- */
.btn-kai, .btn-bosco, .btn-linea {
  font-family: var(--display);
  font-weight: 700;
  border-radius: 999px;
  padding: .7rem 1.6rem;
  border: 2px solid transparent;
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.btn-kai { background: var(--kai); color: #fff; box-shadow: 0 8px 0 -2px var(--kai-scuro); }
.btn-kai:hover, .btn-kai:focus { background: var(--kai-scuro); color: #fff; transform: translateY(2px); box-shadow: 0 6px 0 -2px var(--kai-scuro); }
.btn-bosco { background: var(--bosco); color: var(--sabbia); }
.btn-bosco:hover, .btn-bosco:focus { background: var(--bosco-2); color: #fff; }
.btn-linea { background: transparent; color: var(--inchiostro); border-color: var(--sabbia-3); }
.btn-linea:hover, .btn-linea:focus { border-color: var(--kai); color: var(--kai-scuro); background: rgba(228, 97, 28, .07); }
.sezione-bosco .btn-linea { color: var(--sabbia); border-color: var(--bosco-2); }
.sezione-bosco .btn-linea:hover { color: #fff; border-color: var(--sabbia-3); background: rgba(255,255,255,.08); }

/* ---------- hero ---------- */
.hero {
  position: relative;
  padding: 3rem 0 0;
  background:
    radial-gradient(120% 80% at 80% 0%, #FFF9EE 0%, rgba(255,249,238,0) 60%),
    linear-gradient(180deg, var(--sabbia) 0%, var(--sabbia-2) 100%);
  overflow: hidden;
}
.hero h1 { font-size: clamp(2.05rem, 4.6vw, 3.1rem); max-width: 17ch; }
@media (max-width: 991.98px) { .hero h1 { max-width: none; } }
.hero .occhiello { letter-spacing: .22em; }
.hero-testo p.guida { font-size: 1.15rem; max-width: 34rem; }
.hero-figura {
  position: relative;
  max-width: 420px;
  margin-inline: auto;
  filter: drop-shadow(0 24px 34px rgba(52, 33, 15, .28));
}
.hero-figura img { width: 100%; height: auto; display: block; }
.hero-sole {
  position: absolute;
  inset: auto 0 8% 0;
  margin: auto;
  width: 78%;
  aspect-ratio: 1;
  background: radial-gradient(circle, rgba(228,97,28,.22) 0%, rgba(228,97,28,0) 68%);
  border-radius: 50%;
  z-index: -1;
}
.hero-branco { padding-bottom: 2.5rem; }

.duna {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: -1px;
}

/* ---------- promesse ---------- */
.promessa {
  background: #fff;
  border: 1px solid var(--sabbia-3);
  border-radius: 20px;
  padding: 1.75rem 1.5rem;
  height: 100%;
  box-shadow: var(--ombra-morbida);
}
.promessa h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.promessa .icona {
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: 14px;
  background: rgba(228, 97, 28, .12);
  color: var(--kai-scuro);
  margin-bottom: 1rem;
}
.promessa .icona svg { width: 26px; height: 26px; }

/* ---------- schede libro ---------- */
.scheda-libro {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--sabbia-3);
  border-radius: 22px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.scheda-libro:hover,
.scheda-libro:focus-visible {
  transform: translateY(-6px);
  box-shadow: var(--ombra-alta);
  border-color: var(--kai);
  color: inherit;
}
.scheda-libro .copertina {
  position: relative;
  aspect-ratio: 2 / 3;               /* 1200 x 1800 */
  background: var(--sabbia-2);
  overflow: hidden;
}
.scheda-libro .copertina img { width: 100%; height: 100%; object-fit: cover; display: block; }
.scheda-libro .numero {
  position: absolute; top: .7rem; left: .7rem;
  font-family: var(--display); font-weight: 800; font-size: .95rem;
  background: var(--kai); color: #fff;
  width: 2.1rem; height: 2.1rem;
  display: grid; place-items: center; border-radius: 50%;
  box-shadow: 0 4px 10px rgba(52,33,15,.3);
}
.scheda-libro .corpo { padding: 1.1rem 1.15rem 1.35rem; display: flex; flex-direction: column; flex: 1; }
.scheda-libro h3 { font-size: 1.12rem; margin-bottom: .35rem; }
.scheda-libro .gancio { font-size: .95rem; color: var(--inchiostro-2); flex: 1; margin-bottom: .9rem; }
.scheda-libro .apri {
  font-family: var(--display); font-weight: 700; font-size: .95rem; color: var(--kai-scuro);
}
.scheda-libro:hover .apri { text-decoration: underline; }

.pillola-tema {
  display: inline-block;
  font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  background: var(--bosco); color: var(--sabbia);
  padding: .3rem .7rem; border-radius: 999px;
  margin-bottom: .7rem;
}
.pillola-eta {
  display: inline-block;
  font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  background: rgba(228,97,28,.14); color: var(--kai-scuro);
  padding: .3rem .7rem; border-radius: 999px;
}

/* ---------- pagina libro ---------- */
.dettaglio { padding-top: 2.5rem; }
.dettaglio-copertina {
  aspect-ratio: 2 / 3;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--ombra-alta);
  background: var(--sabbia-2);
  max-width: 380px;
}
.dettaglio-copertina img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dettaglio h1 { font-size: clamp(1.9rem, 5.4vw, 2.9rem); margin-bottom: .5rem; }
.dettaglio .sottotitolo { font-size: 1.12rem; color: var(--inchiostro-2); margin-bottom: 1.25rem; }
.dettaglio .gancio-grande {
  font-family: var(--display); font-weight: 700;
  font-size: clamp(1.15rem, 3vw, 1.45rem);
  color: var(--ocra);
  border-left: 4px solid var(--kai);
  padding-left: 1rem;
  margin: 1.5rem 0;
}
.breadcrumb-kai { font-size: .9rem; }
.breadcrumb-kai a { text-decoration: none; font-weight: 700; }
.breadcrumb-kai .separatore { color: var(--sabbia-3); padding: 0 .45rem; }

.elenco-dentro { list-style: none; padding: 0; margin: 0; }
.elenco-dentro li {
  display: flex; gap: .8rem; align-items: flex-start;
  padding: .65rem 0;
  border-bottom: 1px dashed var(--sabbia-3);
}
.elenco-dentro li:last-child { border-bottom: 0; }
.elenco-dentro .spunta {
  flex: none; width: 1.4rem; height: 1.4rem; margin-top: .2rem;
  border-radius: 50%; background: var(--kai); color: #fff;
  display: grid; place-items: center; font-size: .8rem; font-weight: 800;
}

.scheda-tecnica { list-style: none; padding: 0; margin: 0; }
.scheda-tecnica li {
  display: flex; justify-content: space-between; gap: 1rem;
  padding: .55rem 0; border-bottom: 1px solid var(--sabbia-3);
}
.scheda-tecnica li:last-child { border-bottom: 0; }
.scheda-tecnica dt, .scheda-tecnica .voce { font-weight: 800; }
.scheda-tecnica .valore { color: var(--inchiostro-2); text-align: right; }

/* ---------- autrice ---------- */
.ritratto-autrice {
  width: 100%; 
  /*max-width: 320px;*/ 
  aspect-ratio: 1:1;
  border-radius: 28px; 
  object-fit: cover; 
  display: block;
  box-shadow: var(--ombra-alta);
  border: 6px solid #fff;
}

/* ---------- footer ---------- */
.footer-kai {
  background: var(--bosco);
  color: var(--sabbia);
  padding: 3rem 0 2rem;
}
.footer-kai a { color: var(--sabbia); text-decoration: none; font-weight: 700; }
.footer-kai a:hover, .footer-kai a:focus { color: #fff; text-decoration: underline; }
.footer-kai .marchio { font-family: var(--display); font-weight: 800; font-size: 1.3rem; color: #fff; }
.footer-kai .marchio span { color: var(--kai); }
.footer-kai .minuto { font-size: .9rem; color: #C4B49C; }
.footer-legami { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.footer-legami button {
  background: none; border: 0; padding: 0;
  color: var(--sabbia); font-weight: 700; font-family: var(--testo);
}
.footer-legami button:hover { color: #fff; text-decoration: underline; }

/* ---------- modali ---------- */
.modal-content {
  background: var(--sabbia);
  border: 0; border-radius: 22px;
  box-shadow: var(--ombra-alta);
}
.modal-header { border-bottom: 2px solid var(--sabbia-3); }
.modal-title { font-family: var(--display); font-weight: 800; }
.modal-body h3 { font-size: 1.05rem; margin: 1.4rem 0 .4rem; }
.modal-body h3:first-child { margin-top: 0; }
.modal-body p { font-size: .97rem; }

/* ---------- responsive ---------- */
@media (min-width: 768px) {
  .sezione { padding: 5.5rem 0; }
  .hero { padding-top: 4rem; }
}
@media (max-width: 575.98px) {
  body { font-size: 1rem; }
  .hero-testo { text-align: center; }
  .hero-testo p.guida { margin-inline: auto; }
  .branco .suricato:nth-child(n+11) { display: none; }
}

@media print {
  .navbar-kai, .footer-kai, .branco, .btn-kai, .btn-bosco { display: none !important; }
  body { background: #fff; }
}
