/* public/assets/css/site-enhance.css | 2026-07-19 | V.1.6 */

/* ---------------------------------------------------------------------------
   Sottomenu sticky di sottocategoria (V.1.6, migrato da landing.css):
   barra .si-subnav generata da PageController::subnavHtml() dalla tabella
   sottomenu, stampata sotto l'hero delle pagine madre (landing/orario) e
   degli articoli del gruppo (article). Sta in questo foglio perche' e'
   l'unico caricato da tutti quei template. Parte sotto l'hero e resta
   agganciata sotto l'header fisso (78px, l'altezza reale dell'header bde;
   64px su mobile). Su schermi stretti i link scorrono in orizzontale con
   la scrollbar nascosta. La voce della pagina corrente e' un'etichetta
   evidenziata non cliccabile (.si-subnav__current).
   --------------------------------------------------------------------------- */
.si-subnav {
  position: sticky;
  top: 78px;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: safe center;
  gap: 0.45rem;
  overflow-x: auto;
  white-space: nowrap;
  background: #fff;
  padding: 0.6rem 0.25rem;
  /* Centrata sul viewport, indipendente dalla colonna del contenuto
     (troppo stretta per 5-6 voci): larghezza propria, scroll interno. */
  width: min(980px, calc(100vw - 2.5rem));
  margin: 0 0 1.4rem 50%;
  transform: translateX(-50%);
  border-bottom: 1px solid #e8e8f0;
  scrollbar-width: none;          /* barra nascosta ma scorrevole */
}

.si-subnav::-webkit-scrollbar { display: none; }

.si-subnav a,
.si-subnav .si-subnav__current {
  flex: 0 0 auto;
  display: inline-block;
  padding: 0.32rem 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(152, 22, 97, 0.25);
  background: rgba(152, 22, 97, 0.05);
  color: #981661;
  font-size: 0.86rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

/* Voce della pagina corrente: piena, non cliccabile ("sei qui"). */
.si-subnav .si-subnav__current {
  background: #981661;
  border-color: #981661;
  color: #fff;
}

/* La doppia scrittura con prefisso serve a battere in specificita' la
   regola generica ".si-landing .si-landing-content a" (che su hover
   lascerebbe il testo magenta su fondo magenta: link invisibile). */
.si-subnav a:hover,
.si-landing .si-landing-content .si-subnav a:hover {
  background: #981661;
  color: #fff;
}

@media (max-width: 768px) {
  .si-subnav { top: 64px; }
}

/* =============================================================================
   BLOCCO: Layer di vivacita' del sito (ispirazione: iscuola.net)

   Scopo:       Micro-interazioni additive su tutto il sito: comparsa dolce
                delle sezioni allo scroll, hover piu' ricchi su bottoni e
                card, pulsante WhatsApp flottante. Nessuna modifica ai
                layout: solo transizioni e ombre.
   Vincoli:     NON cambiare colori, font o dimensioni dello snapshot
                Breakdance. Rispettare prefers-reduced-motion.
   Dipendenze:  Classi .si-reveal/.si-in aggiunte da site-enhance.js.
   NON FARE:    Niente animazioni in loop o parallax: distraggono e pesano
                sui dispositivi mobili.
   ============================================================================= */

/* ---------------------------------------------------------------------------
   Comparsa dolce allo scroll (classe gestita da site-enhance.js)
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .si-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .6s ease, transform .6s ease;
  }

  .si-reveal.si-in {
    opacity: 1;
    transform: none;
  }
}

/* ---------------------------------------------------------------------------
   Bottoni: sollevamento e ombra colorata al passaggio
   --------------------------------------------------------------------------- */
.breakdance .button-atom {
  transition: transform .2s ease, box-shadow .2s ease;
}

.breakdance .button-atom:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(152, 22, 97, .35);
}

/* Immagini e card dei post nel blog: leggero zoom al passaggio */
.breakdance .bde-posts .ee-post {
  transition: transform .25s ease, box-shadow .25s ease;
}

.breakdance .bde-posts .ee-post:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(9, 13, 53, .14);
}

/* Voci di menu: sottolineatura animata coerente col brand */
.breakdance .breakdance-menu-link {
  transition: color .2s ease;
}

/* ---------------------------------------------------------------------------
   Pulsante WhatsApp flottante (numero del sito, come in topbar)
   --------------------------------------------------------------------------- */
.si-wa {
  position: fixed;
  right: 1.1rem;
  bottom: 1.1rem;
  z-index: 9990;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
  transition: transform .2s ease, box-shadow .2s ease;
}

.si-wa:hover {
  transform: scale(1.08);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .3);
}

.si-wa svg {
  width: 1.9rem;
  height: 1.9rem;
  fill: #fff;
}

/* Su mobile non deve coprire i pulsanti dei form multi-step */
@media (max-width: 40rem) {
  .si-wa { width: 3rem; height: 3rem; right: .9rem; bottom: .9rem; }
  .si-wa svg { width: 1.65rem; height: 1.65rem; }
}

/* ---------------------------------------------------------------------------
   Compattamenti della homepage: spostati in /assets/css/home.css
   (2026-07-15), il file dedicato agli override della sola home.
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   Uniformita' tra le pagine: la scrollbar sempre riservata evita lo
   spostamento orizzontale del contenuto passando da pagine corte a lunghe.
   Lo scroll-padding-top tiene le ancore (es. #chi-siamo) sotto l'header
   fisso che compare allo scroll (78px + margine).
   --------------------------------------------------------------------------- */
html {
  scrollbar-gutter: stable;
  scroll-padding-top: 90px;
}

/* ---------------------------------------------------------------------------
   Messaggio di ringraziamento dei form (V.1.4)
   Scopo:    il nodo .breakdance-form-message viene inserito dal JS Breakdance
             dentro il wrapper del form, che su alcuni layout e' una griglia
             multi-colonna: senza override il testo si impagina a colonne.
   Vincoli:  display:block con !important per vincere sulla griglia del form.
   --------------------------------------------------------------------------- */
.breakdance-form-message {
  display: block !important;
  text-align: center;
  line-height: 1.6;
  padding: 1.6rem 1.4rem;
}

.breakdance-form-message strong {
  display: block;
  font-size: 1.15rem;
  margin-bottom: .6rem;
}

.breakdance-form-message a {
  color: #981661;
  font-weight: 600;
  text-decoration: none;
}

.breakdance-form-message a:hover {
  text-decoration: underline;
}

/* La X di chiusura (ripristina il form) resta discreta in alto a destra */
.breakdance-form-message-dismissable {
  display: block !important;
  position: relative;
}

.breakdance-form-message-dismiss {
  position: absolute;
  top: .4rem;
  right: .6rem;
  padding: 0;
  margin: 0;
}

/* ---------------------------------------------------------------------------
   Sezioni documenti PDF (V.1.5)
   Scopo:    schede di download rese dal partial _documenti.php in fondo
             alle pagine che hanno sezioni agganciate dal pannello admin.
   Vincoli:  markup autonomo (.si-docs), palette del sito, mobile-first.
   --------------------------------------------------------------------------- */
.si-docs { padding: 1rem 1.25rem 2.2rem; }

.si-docs__inner { max-width: 72rem; margin: 0 auto; }

.si-docs__titolo {
  font-size: 1.45rem;
  color: #36363B;
  margin: 1.4em 0 .7em;
}

.si-docs__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }

@media (min-width: 40rem) {
  .si-docs__lista { grid-template-columns: repeat(2, 1fr); }
}

.si-docs__link {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1.1rem;
  border: 1px solid #e5e7eb;
  border-radius: .7rem;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.si-docs__link:hover {
  border-color: #981661;
  box-shadow: 0 8px 20px rgba(9, 13, 53, .10);
}

.si-docs__icona {
  flex: none;
  width: 2.6rem;
  height: 2.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: .5rem;
  background: #981661;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
}

.si-docs__testo { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }

.si-docs__nome { font-weight: 600; color: #090D35; }

.si-docs__nota { font-size: .85rem; color: #4b5563; }

.si-docs__dim { margin-left: auto; flex: none; font-size: .8rem; color: #9a9a99; }
