/**
 * Theme Name: Sistema musica (English)
 * Description: Versione inglese del tema Sistema musica: stesso style.css del sito italiano, parti e modelli in inglese.
 * Template: twentytwentyfive
 * Author: the Puglia Sounds team
 * Version: 0.19.2
 */

/* Accento del sito: il valore sta nella palette di theme.json (custom-arancio),
   qui è solo un alias breve usato nel resto del file.
   Regola: arancio acceso per i segni grafici (frecce, linee, pallini, anelli);
   arancio scuro (custom-arancio-scuro) per le scritte arancioni piccole e per i
   fondi arancioni con testo bianco, così il contrasto resta sopra 4.5:1 */
:root {
  --sm-accent: var(--wp--preset--color--custom-arancio);
}

/* clip (non hidden): taglia lo sbordo orizzontale senza creare
   un contenitore di scorrimento, così position:sticky funziona */
html, body {
  overflow-x: clip;
}

.wp-site-blocks {
  overflow-x: clip;
}

/* evita le sottolineature per i post-terms */
.wp-block-post-terms a {
  text-decoration: none;
}

.wp-block-post-terms a:hover {
  text-decoration: underline;
}

/* ===== BASI — "tema morbido" (0.19.0) =====
   La pagina è crema (accent-5, impostato in theme.json) e i contenuti in
   evidenza sono pannelli bianchi (base) appoggiati sopra, con un'ombra al
   posto del bordo. Ombre, raggi e linee sottili sono valori di theme.json:
     --wp--preset--shadow--pannello | scheda | sollevata | anello
     --wp--custom--radius--voce | card | pannello | riquadro | menu
     --wp--custom--linea--sottile (dentro i pannelli) | sezione (nel testo) */

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* evidenza da tastiera: anello arancio; con mouse e dito nessun anello */
.wp-site-blocks :focus:not(:focus-visible) { outline: none; }
.wp-site-blocks :focus-visible { outline: 2px solid var(--wp--preset--color--custom-arancio); outline-offset: 2px; }

/* Pagine con intestazione (.ps-fhead): briciole, titolo, sottotitolo e contenuto
   partono tutti dallo stesso margine sinistro, accanto alla barra laterale.
   Sugli schermi molto larghi WordPress centrerebbe i blocchi nella colonna:
   qui restano a sinistra. (!important perché la regola di WordPress che li
   centra lo usa a sua volta; i blocchi centrati o a tutta larghezza restano tali.) */
main:has(> .ps-fhead) > .alignwide,
.ps-page > :not(.alignfull, .alignleft, .alignright, .aligncenter) { margin-left: 0 !important; }

/* titolo di pagina: misura e peso stanno nello stile di blocco "Titolo pagina" */
.is-style-titolo-pagina { text-wrap: balance; }

/* sottotitolo di pagina. Il blocco è largo quanto il contenuto; il testo è
   largo quanto la colonna di testo che lo segue, cioè arriva fin dove
   comincia la scheda laterale (colonna da 322px + 40px di distanza = 362px).
   Lo spazio si lascia a destra, così il sottotitolo resta allineato a
   sinistra con il titolo. Dove lo spazio è poco il testo non scende mai
   sotto la misura di partenza (30 caratteri; 52 per la seconda riga). */
.ps-fintro, .ps-fintro-2 { margin: 0; text-wrap: pretty; }
.ps-fintro {
  padding-inline-end: max(0px, min(100% - 30ch, max(0px, 100% - var(--wp--style--global--wide-size, 1340px)) + 362px));
  font-size: clamp(1.4rem, 2.4vw, 1.95rem); font-weight: 400; line-height: 1.35; letter-spacing: -.015em;
  color: var(--wp--preset--color--contrast);
}
/* seconda riga facoltativa, più piccola */
.ps-fintro-2 {
  padding-inline-end: max(0px, min(100% - 52ch, max(0px, 100% - var(--wp--style--global--wide-size, 1340px)) + 362px));
  font-size: 1.1rem; line-height: 1.6; color: var(--wp--preset--color--accent-4);
}
/* dentro la colonna di testo occupa tutta la colonna */
.ps-prose > .ps-fintro, .ps-prose > .ps-fintro-2 { padding-inline-end: 0; }

/* ===== PULSANTI =====
   Ogni blocco Pulsante è una pillola con la freccia in un cerchio. La freccia
   la disegna il tema (::after): nel testo del pulsante non si scrive.
   - pieno (stile predefinito): l'azione principale;
   - contorno (stili "Contorno" e "Pillola contorno"): i rimandi.
   Chi apre una nuova scheda (target="_blank") ha la freccia ↗.
   Esclusi i filtri della mappa dei festival (.festival-map-filters), che
   usano le stesse classi ma sono interruttori, non rimandi. */

.wp-block-buttons:not(.festival-map-filters) > .wp-block-button > .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 14px;
  box-sizing: border-box; min-height: 48px; padding: 6px 6px 6px 22px;
  border: 0; border-radius: var(--wp--custom--radius--pill);
  background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--accent-5);
  font-size: .875rem; font-weight: 700; letter-spacing: .005em; line-height: 1.2; text-align: left; text-decoration: none;
  transition: background-color .25s, color .25s, box-shadow .25s;
}
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button > .wp-block-button__link::after {
  content: "→"; flex: none; display: grid; place-items: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--contrast);
  font-size: .9375rem; font-weight: 700; line-height: 1;
  transition: transform .25s ease;
}
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button > .wp-block-button__link[target="_blank"]::after { content: "↗"; }
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button > .wp-block-button__link:hover { background-color: var(--wp--preset--color--custom-arancio-scuro); color: var(--wp--preset--color--base); }
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button > .wp-block-button__link:hover::after { transform: translateX(3px); }

/* contorno */
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button:is(.is-style-outline, .is-style-pillola-contorno) > .wp-block-button__link {
  padding: 6px 7px 6px 22px; border: 0;
  background-color: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
  box-shadow: var(--wp--preset--shadow--anello);
}
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button:is(.is-style-outline, .is-style-pillola-contorno) > .wp-block-button__link::after {
  width: 34px; height: 34px;
  background: var(--wp--preset--color--custom-arancio); color: var(--wp--preset--color--base);
}
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button:is(.is-style-outline, .is-style-pillola-contorno) > .wp-block-button__link:hover {
  background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--accent-5);
  box-shadow: 0 0 0 1px var(--wp--preset--color--contrast), 0 12px 26px -12px color-mix(in srgb, var(--wp--preset--color--contrast) 55%, transparent);
}

/* contorno con un colore del testo scelto a mano (di solito bianco, sopra una foto
   o un fondo scuro): resta trasparente, con un anello nel colore del testo */
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button.is-style-outline > .wp-block-button__link.has-text-color:not(.has-background) {
  background-color: transparent; box-shadow: inset 0 0 0 1.5px currentColor;
}
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button.is-style-outline > .wp-block-button__link.has-text-color:not(.has-background)::after {
  background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
}
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button.is-style-outline > .wp-block-button__link.has-text-color:not(.has-background):hover {
  background-color: color-mix(in srgb, currentColor 18%, transparent); box-shadow: inset 0 0 0 1.5px currentColor;
}

/* pulsante a tutta larghezza (larghezza impostata dal blocco, o dentro una scheda) */
.wp-block-buttons:not(.festival-map-filters) > .wp-block-button[class*="wp-block-button__width-"] > .wp-block-button__link { width: 100%; }

/* pulsante di invio del form newsletter: pieno, a tutta larghezza */
.ps-nlform-actions button {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  box-sizing: border-box; width: 100%; min-height: 50px; padding: 6px 6px 6px 22px;
  border: 0; border-radius: var(--wp--custom--radius--pill);
  background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--accent-5);
  font: inherit; font-size: .875rem; font-weight: 700; letter-spacing: .005em; line-height: 1.2; text-align: left;
  cursor: pointer; transition: background-color .25s, color .25s;
}
.ps-nlform-actions button::after {
  content: "→"; flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
  background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--contrast);
  font-size: .9375rem; font-weight: 700; line-height: 1; transition: transform .25s ease;
}
.ps-nlform-actions button:hover { background-color: var(--wp--preset--color--custom-arancio-scuro); color: var(--wp--preset--color--base); }
.ps-nlform-actions button:hover::after { transform: translateX(3px); }

/* ===== SLIDER ===== */

.horizontal-slider, .brevi-slider, .img-slider {
  box-sizing: border-box;
  max-width: 100%;
  display: flex;
  overflow-x: auto;
  gap: 1.5rem;
  scroll-behavior: smooth;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
}

.horizontal-slider::-webkit-scrollbar,
.brevi-slider::-webkit-scrollbar,
.img-slider::-webkit-scrollbar {
  display: none;
}

/* Spacer finale */
.horizontal-slider::after,
.brevi-slider::after,
.img-slider::after {
  content: '';
  flex: 0 0 2rem;
  display: block;
}

/* Desktop */
@media (min-width: 769px) {
  .horizontal-slider, .brevi-slider, .img-slider {
    padding: 0 2rem;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 2rem;
  }

  .horizontal-slider > * {
    flex: 0 0 auto;
    width: 370px;
    scroll-snap-align: start;
  }

  .brevi-slider > * {
    flex: 0 0 auto;
    width: 250px;
    scroll-snap-align: start;
  }

  .img-slider > * {
    flex: 0 0 auto;
    width: 300px;
    scroll-snap-align: start;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .horizontal-slider, .brevi-slider, .img-slider {
    padding: 0 1rem;
    scroll-padding: 0 1rem;
    gap: 1rem;
  }

  .horizontal-slider::after,
  .brevi-slider::after,
  .img-slider::after {
    flex: 0 0 1rem;
  }

  .horizontal-slider > * {
    flex: 0 0 auto;
    width: 90vw;
    max-width: 400px;
  }

  .brevi-slider > * {
    flex: 0 0 auto;
    width: 80vw;
    max-width: 320px;
  }

  .img-slider > * {
    flex: 0 0 auto;
    width: 85vw;
    max-width: 350px;
  }
}

/* Nessuno spazio vuoto all'inizio degli slider (tranne .img-slider).
   Dopo le media query: vince sul padding di entrambe senza !important */
.horizontal-slider, .brevi-slider {
  padding-left: 0;
  scroll-padding-left: 0;
}

.horizontal-slider > *, .brevi-slider > *, .img-slider > * {
  margin: 0;
  pointer-events: auto;
}

/* Centra le immagini di .img-slider quando non riempiono la riga
   (i margini auto assorbono solo lo spazio libero, lo scroll resta normale).
   !important + doppia classe: il layout constrained di WP impone ai figli
   margin-left/right auto !important e va sovrascritto */
.img-slider.img-slider > * { margin: 0 !important; }
.img-slider.img-slider > :first-child { margin-left: auto !important; }
.img-slider.img-slider > :last-child  { margin-right: auto !important; }

.horizontal-slider:active, .brevi-slider:active, .img-slider:active {
  cursor: grabbing;
}

.horizontal-slider.dragging,
.brevi-slider.dragging,
.img-slider.dragging {
  cursor: grabbing;
  scroll-behavior: auto;
  scroll-snap-type: none;
}

.horizontal-slider.dragging > *,
.brevi-slider.dragging > *,
.img-slider.dragging > * {
  pointer-events: none;
}

/* ===== BREVI — MODALITÀ TICKER SCORREVOLE =====
   Struttura: Gruppo con classe .brevi-ticker che contiene il Query Loop
   (il suo <ul class="wp-block-post-template brevi-slider">).
   Il JS duplica l'<ul> una volta per ottenere il loop continuo. */

.brevi-ticker,
.brevi-ticker.wp-block-group,
.brevi-ticker.wp-block-query {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  overflow: hidden;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  -webkit-mask: linear-gradient(90deg, transparent, #000 3%, #000 94%, transparent);
  mask: linear-gradient(90deg, transparent, #000 3%, #000 94%, transparent);
}

/* neutralizza il layout "constrained"/flex del Gruppo sul track */
.brevi-ticker > .brevi-slider,
.brevi-ticker > * > .brevi-slider {
  margin: 0 !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}

.brevi-ticker .brevi-slider {
  flex: 0 0 auto;
  width: max-content;
  min-width: max-content;
  max-width: none;
  overflow: visible;
  padding: 0 1.5rem 0 0;
  cursor: default;
  user-select: auto;
  scroll-snap-type: none;
  animation: brevi-scroll var(--brevi-speed, 45s) linear infinite;
  will-change: transform;
}

.brevi-ticker:hover .brevi-slider { animation-play-state: paused; }
.brevi-ticker .brevi-slider::after { content: none; }

/* gli item non sono più a larghezza fissa: si adattano al testo */
.brevi-ticker .brevi-slider > * {
  flex: 0 0 auto;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  scroll-snap-align: none;
  white-space: nowrap;
}

/* testo delle brevi su una riga sola */
.brevi-ticker .brevi-slider > * > *,
.brevi-ticker .brevi-slider p,
.brevi-ticker .brevi-slider h1,
.brevi-ticker .brevi-slider h2,
.brevi-ticker .brevi-slider h3,
.brevi-ticker .brevi-slider h4 {
  white-space: nowrap;
  margin: 0;
}

@keyframes brevi-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}

@media (prefers-reduced-motion: reduce) {
  .brevi-ticker { overflow-x: auto; }
  .brevi-ticker .brevi-slider { animation: none; }
  .brevi-ticker .brevi-slider[aria-hidden="true"] { display: none; }
}

/* ===== HOME: MOSAICO AVVISI ===== */

.ps-mosaic { grid-auto-rows: 220px; }

.ps-mosaic > .wp-block-cover {
  min-height: 0;
  height: 100%;
  margin: 0 !important;
  overflow: hidden;
}

/* sfumatura dal basso per leggibilità */
.ps-mcard .wp-block-cover__background {
  background: linear-gradient(180deg, transparent 30%, color-mix(in srgb, var(--wp--preset--color--contrast) 80%, transparent) 100%) !important;
  opacity: 1 !important;
}

/* tutta la card cliccabile tramite il link del titolo */
.ps-mcard .wp-block-cover__inner-container { position: static; }
.ps-mcard h3 { margin: 0; }
.ps-mcard h3 a { text-decoration: none; }
.ps-mcard h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }

.ps-mosaic > .wp-block-cover { transition: transform .3s ease, box-shadow .3s ease; }
.ps-mosaic > .wp-block-cover:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--sollevata); }
.ps-mcard .wp-block-cover__image-background { transition: transform .6s ease; }
.ps-mcard:hover .wp-block-cover__image-background { transform: scale(1.04); }
.ps-mcard:focus-within { outline: 2px solid var(--wp--preset--color--custom-arancio); outline-offset: 3px; }

@media (max-width: 900px) {
  .ps-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: 190px; }
  .ps-mosaic > * { grid-column: auto !important; grid-row: auto !important; }
  .ps-mosaic > :first-child,
  .ps-mosaic > :nth-child(2) { grid-column: 1 / -1 !important; }
}
@media (max-width: 560px) {
  .ps-mosaic { grid-template-columns: minmax(0, 1fr) !important; grid-auto-rows: 170px; }
}

/* ===== HOME: CHI SIAMO / LINK SEZIONE ===== */

.ps-media-round .wp-block-media-text__media,
.ps-media-round .wp-block-media-text__media img { border-radius: var(--wp--custom--radius--card); overflow: hidden; }
.ps-media-round .wp-block-media-text__content { padding-left: 6%; padding-right: 0; }
.ps-media-round.has-media-on-the-right .wp-block-media-text__content { padding-left: 0; padding-right: 6%; }
@media (max-width: 600px) {
  .ps-media-round .wp-block-media-text__content { padding: 24px 0 0; }
}

.ps-link-arrow a { text-decoration: none; }
.ps-link-arrow a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ===== HOME: FASCIA TICKER (stile mockup) ===== */

.ps-ticker { border-bottom: 1px solid var(--wp--custom--linea--sezione); }
.ps-ticker > .brevi-ticker { flex: 1 1 auto; min-width: 0; margin: 0; }
.ps-ticker .ps-ticker-lab {
  flex: none;
  margin: 0;
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--wp--preset--color--custom-arancio-scuro);
}
.ps-ticker .brevi-slider { gap: 2rem; padding-right: 2rem !important; }
.ps-ticker .brevi-slider > li,
.ps-ticker .brevi-slider .wp-block-post-content {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: var(--wp--preset--font-size--small);
  font-weight: 500;
}
.ps-ticker .brevi-slider p { margin: 0; }
/* data a pillola: il primo grassetto della breve (es. "17 LUG") */
.ps-ticker .brevi-slider p > strong:first-child {
  display: inline-block;
  margin-right: 9px;
  padding: 4px 8px;
  border-radius: var(--wp--custom--radius--pill);
  font-size: .625rem;
  font-weight: 700;
  letter-spacing: .5px;
  line-height: 1;
  text-transform: uppercase;
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
@media (max-width: 600px) {
  .ps-ticker { gap: 12px !important; }
}

/* ===== HOME: CARD FESTIVAL ===== */

.ps-card-cat { text-transform: uppercase; letter-spacing: 1px; font-weight: 700; color: var(--wp--preset--color--custom-arancio-scuro); }
.ps-card-cat a, .ps-card-gen a { color: inherit; text-decoration: none; }
.ps-card-gen { color: var(--wp--preset--color--accent-4); font-weight: 600; }

/* ===== FOOTER ===== */

.ps-foot p { margin: 0; }
.ps-foot a { text-decoration: none; opacity: .8; }
.ps-foot a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.ps-foot .ps-foot-cols { border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 12%, transparent); margin-bottom: 0; }
.ps-foot .ps-foot-adr { opacity: .7; line-height: 1.5; }
.ps-foot .ps-foot-adr a { opacity: 1; }
.ps-foot .ps-foot-logos img { max-height: 44px; width: auto; }
/* menu del footer: gli stessi della barra laterale (Aspetto → Editor →
   Navigazione), ma solo le voci principali, senza sottomenu né frecce */
.ps-foot .ps-foot-menu .wp-block-navigation__submenu-container,
.ps-foot .ps-foot-menu .wp-block-navigation__submenu-icon { display: none; }
.ps-foot .ps-foot-menu .wp-block-navigation-item__content { padding: 0; }
@media (max-width: 781px) {
  .ps-foot .ps-foot-cols { display: grid !important; grid-template-columns: 1fr 1fr; gap: 30px 20px; }
}

/* ===== ARTICOLO SINGOLO ===== */

.ps-crumb p { margin: 0; }
.ps-crumb, .ps-crumb a { color: var(--wp--preset--color--accent-4); text-decoration: none; }
.ps-crumb .wp-block-post-terms a { color: var(--wp--preset--color--custom-arancio-scuro); font-weight: 700; }
.ps-crumb a:hover { text-decoration: underline; }

.ps-artmeta, .ps-artmeta .wp-block-post-date {
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-4);
}
.ps-artmeta p { margin: 0; }


.ps-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--wp--preset--spacing--30); }
.ps-tags .wp-block-post-terms__separator { display: none; }
.ps-tags a {
  display: inline-block;
  padding: 6px 14px;
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--base);
  box-shadow: inset 0 0 0 1px var(--wp--custom--linea--sezione);
  font-size: .8rem;
  font-weight: 600;
  text-decoration: none;
}
.ps-tags a::before { content: "#"; }
.ps-tags a:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* ===== LINK =====
   Nel testo (paragrafi, liste, navigazione tra articoli): sottolineatura
   arancio sottile, che al passaggio si ispessisce e si avvicina al testo.
   Lo spessore ha !important perché il tema padre lo fissa a 1px con !important.
   Nei titoli-link resta la linea animata nel colore d'accento.
   .entry-content = il blocco Contenuto del post */

:is(article, .entry-content) p a,
.wp-block-list a,
.wp-block-post-navigation-link a {
  text-decoration: underline;
  text-decoration-color: var(--wp--preset--color--custom-arancio);
  text-decoration-thickness: 1.5px !important;
  text-underline-offset: 5px;
  transition: color .2s, text-underline-offset .2s, text-decoration-thickness .2s;
}
:is(article, .entry-content) p a:hover,
.wp-block-list a:hover,
.wp-block-post-navigation-link a:hover {
  color: var(--wp--preset--color--custom-arancio-scuro);
  text-decoration: underline;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px;
}

/* nei componenti i link non sono "testo": ognuno ha il suo aspetto */
:is(article, .entry-content) :is(.ps-link-arrow, .ps-evid-v, .ps-mgo, .ps-mdesc, .is-style-link-sezione, .ps-k, .ps-v, .ps-festlinks, .ps-metalist-i, .ps-side-evt) a,
:is(article, .entry-content) :is(.ps-link-arrow, .ps-evid-v, .ps-mgo, .ps-mdesc, .is-style-link-sezione, .ps-k, .ps-v, .ps-festlinks, .ps-metalist-i, .ps-side-evt) a:hover { text-decoration: none; }

.wp-block-post-title a,
.wp-block-heading:not(.noline) a {
  position: relative;
  text-decoration: none;
  display: inline;
  transition: color 0.3s ease, background-size 0.3s ease-in-out;
  background-repeat: no-repeat;
  background-position: 0 95%;
  --sm-line: 3px;
  --sm-line-rest: 100%;
  background-image: linear-gradient(var(--sm-accent), var(--sm-accent));
  background-size: var(--sm-line-rest) var(--sm-line);
}

/* Desktop: linea corta a riposo, piena al passaggio del mouse */
@media (min-width: 769px) {
  .wp-block-post-title a,
  .wp-block-heading:not(.noline) a { --sm-line-rest: 10%; }

  .wp-block-post-title a:hover,
  .wp-block-heading:not(.noline) a:hover { --sm-line-rest: 100%; }
}

/* Mobile: titoli senza linea */
@media (max-width: 768px) {
  .wp-block-post-title a,
  .wp-block-heading:not(.noline) a { --sm-line-rest: 0%; }
}

/* ===== MAPPA FESTIVAL (Leaflet) ===== */

#festival-map {
  min-height: 640px;
  height: 70vh;
  border-radius: var(--wp--custom--radius--card);
  box-shadow: var(--wp--preset--shadow--scheda);
  overflow: hidden;
  z-index: 0; /* evita che i pannelli Leaflet coprano header/menu */
}

@media (max-width: 768px) {
  #festival-map {
    height: 76vh;
    min-height: 460px;
  }
}

/* Barra dei filtri per genere */
#festival-map-filters {
  display: flex;            /* necessario: il container creato via JS non ha is-layout-flex */
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;                /* spazio orizzontale (e verticale) tra i bottoni */
  margin-bottom: 16px;
}

.festival-map-filters .wp-block-button {
  margin: 0;                /* azzera eventuali margini di default dei bottoni */
}

/* Inattivo: contorno nel colore accento, sfondo trasparente (non nero pieno) */
.festival-map-filters .wp-block-button__link {
  background-color: transparent;
  border: 1px solid var(--sm-accent);
  color: var(--sm-accent);
  cursor: pointer;
  padding: 7px 18px;       /* compatti ma non troppo */
  font-size: 0.9rem;
  line-height: 1.4;
}

.festival-map-filters .wp-block-button__link:hover {
  background-color: color-mix(in srgb, var(--wp--preset--color--custom-arancio-scuro) 12%, transparent);
  color: var(--wp--preset--color--custom-arancio-scuro);
}

/* Attivo: bottone "pieno" nel colore accento */
.festival-map-filters .wp-block-button.is-active .wp-block-button__link,
.festival-map-filters .wp-block-button.is-active .wp-block-button__link:hover {
  background-color: var(--sm-accent);
  border-color: var(--sm-accent);
  color: var(--wp--preset--color--base);
}

/* Popup dei marker */
.festival-popup {
  text-align: left;
}

.festival-popup__img {
  display: block;
  width: 100%;
  max-width: 220px;
  border-radius: var(--wp--custom--radius--xs);
  margin-bottom: 6px;
}

.festival-popup__meta {
  font-size: 12px;
  color: var(--wp--preset--color--accent-4);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin: 2px 0 6px;
}

.festival-popup strong a {
  text-decoration: none;
}

.leaflet-popup-content {
  margin: 12px 14px;
}

.leaflet-popup-content strong a:hover {
  text-decoration: underline;
}

/* Pin colorati per genere */
.festival-pin {
  display: block;
  width: 26px;
  height: 26px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Cluster a "ciambella": spicchi per genere (conic-gradient inline) + foro centrale */
.festival-cluster {
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid #fff; /* sottile bordo bianco, coerente coi pin */
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 1px 4px rgba(0, 0, 0, 0.3);
}

/* Tooltip del cluster col dettaglio per genere */
.festival-cluster-tip {
  font-size: 12px;
  font-weight: 600;
}

.festival-cluster__count {
  width: 62%;
  height: 62%;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: #333;
}

/* Legenda colore → genere */
.festival-legend {
  background: var(--wp--preset--color--base);
  padding: 8px 10px;
  border-radius: var(--wp--custom--radius--xs);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  font-size: 12px;
  line-height: 1.6;
}

.festival-legend__item {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.festival-legend__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: 0 0 auto;
}

.copy-link__btn {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: .4em .8em;
  border: 1px solid var(--wp--custom--linea--sezione);
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  transition: background .2s, border-color .2s, color .2s;
}
.copy-link__btn:hover { background: var(--wp--preset--color--custom-grigio-caldo); border-color: currentColor; }
.copy-link__icon { flex: 0 0 auto; }
.copy-link__btn.is-copied { border-color: var(--wp--preset--color--custom-arancio-scuro); color: var(--wp--preset--color--custom-arancio-scuro); }

.colonna-items {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.colonna-items > .item {
    flex: 1;
}

/* Stessa altezza per Query Loop (grid) */
.wp-block-post-template.is-layout-grid > .wp-block-post {
  display: flex;
  flex-direction: column;
}

.wp-block-post-template.is-layout-grid > .wp-block-post > * {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* ===== Sillabazione ===== */
/* Segue la lingua dichiarata su <html> (qui en-GB). */

/* Corpo del testo: paragrafi, liste, citazioni → sillabazione automatica */
.entry-content p,
.wp-block-post-content p,
article p,
.wp-block-list li,
.wp-block-quote p,
.wp-block-pullquote p {
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 6 3 2; /* min parola / min prima / min dopo il trattino */
}

/* Evita che URL o parole lunghissime sfondino il layout */
.entry-content,
.wp-block-post-content {
  overflow-wrap: break-word;
}

/* Titoli: NO sillabazione, righe bilanciate (più elegante) */
.wp-block-post-title,
.wp-block-heading,
h1, h2, h3, h4 {
  text-wrap: balance;
}

/* ===== INTESTAZIONE DI PAGINA e SCHEDA LATERALE =====
   Modelli page, single-festival, single-avviso e pagine con lo schema
   "testo a sinistra + scheda a destra" (.ps-prose + .ps-metacard). */

.ps-fhead .ps-crumb-cur { margin: 0; color: var(--wp--preset--color--custom-arancio-scuro); font-weight: 700; }

/* scheda: pannello bianco appoggiato, allineato in alto con la barra laterale */
.ps-metacard {
  position: sticky;
  top: calc(16px + var(--wp-admin--admin-bar--height, 0px));
  padding: 22px 26px 20px;
  border-radius: var(--wp--custom--radius--pannello);
  background: var(--wp--preset--color--base);
  box-shadow: var(--wp--preset--shadow--pannello);
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}
.wp-block-column:has(> .ps-metacard) { min-width: 0; }
.ps-metacard > * { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; margin: 0; }
.ps-metacard p { margin: 0; }

/* logo: riquadro chiaro, immagine contenuta (non ritagliata) */
.ps-metacard .ps-flogo {
  display: block;
  aspect-ratio: 3 / 2;
  padding: 16px;
  border-radius: var(--wp--custom--radius--voce);
  overflow: hidden;
  background: var(--wp--preset--color--base);
  box-shadow: inset 0 0 0 1px var(--wp--custom--linea--sottile);
  margin-bottom: 6px;
}
.ps-metacard .ps-flogo img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  object-fit: contain;
}

/* righe etichetta + valore, separate da linee sottili */
.ps-metarow { gap: 3px !important; padding-bottom: 12px; border-bottom: 1px solid var(--wp--custom--linea--sottile); }
.ps-metarow .ps-k,
.ps-metalist-h .ps-k,
.ps-metacard .is-style-etichetta {
  font-size: .65625rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-4);
}
.ps-metarow .ps-v, .ps-metarow .ps-v a { font-size: .9375rem; font-weight: 700; line-height: 1.4; color: var(--wp--preset--color--contrast); text-decoration: none; }
.ps-metarow .ps-v a:hover { text-decoration: underline; text-decoration-color: var(--wp--preset--color--custom-arancio); text-underline-offset: 3px; }

/* azioni: pulsanti a tutta larghezza, testo a sinistra e cerchio a destra */
.ps-metacard .wp-block-buttons { width: 100%; gap: 10px; }
.ps-metacard .wp-block-buttons > .wp-block-button { width: 100%; }
.ps-metacard .wp-block-buttons > .wp-block-button > .wp-block-button__link { width: 100%; }
/* link esterni del festival (sito / instagram / facebook): tre pulsanti contorno
   collegati ai campi del festival (Block Bindings) */
.ps-metacard .ps-festlinks { padding: 4px 0 2px; }
/* rimando secondario in fondo alla scheda */
.ps-metacard > .ps-link-arrow { text-align: center; font-weight: 700; }
.ps-metacard > .ps-link-arrow a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--custom-arancio); text-underline-offset: 4px; }

/* elenco di link con descrizione dentro la scheda (.ps-metalist):
   intestazione (etichetta a sinistra, "Tutti" a destra) e una riga per voce.
   Ogni riga è un Paragrafo: link col nome, a capo, descrizione. */
.ps-metacard .ps-metalist { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; padding-bottom: 8px; border-bottom: 1px solid var(--wp--custom--linea--sottile); }
.ps-metalist > * { margin: 0; }
.ps-metalist-h { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: baseline; padding-bottom: 8px; }
.ps-metalist-h a { font-size: .78125rem; font-weight: 700; color: var(--wp--preset--color--contrast); text-decoration: underline; text-decoration-color: var(--wp--preset--color--custom-arancio); text-underline-offset: 4px; }
.ps-metalist > .ps-metalist-i { margin: 0 -12px; }
.ps-metalist-i {
  position: relative;
  padding: 9px 36px 9px 12px;
  border-radius: var(--wp--custom--radius--voce);
  font-size: .78125rem; line-height: 1.35; color: var(--wp--preset--color--accent-4);
  transition: box-shadow .2s;
}
.ps-metalist-i br { display: none; }
.ps-metalist-i a { display: block; font-size: .9375rem; font-weight: 700; line-height: 1.3; color: var(--wp--preset--color--contrast); }
.ps-metalist-i a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* tutta la riga cliccabile */
.ps-metalist-i::after {
  content: "→"; position: absolute; right: 12px; top: 50%; translate: 0 -50%;
  font-size: .9375rem; font-weight: 700; color: var(--wp--preset--color--custom-arancio);
  transition: translate .25s ease;
}
.ps-metalist-i:hover { box-shadow: 0 0 0 1px var(--wp--custom--linea--sottile), 0 6px 14px -10px color-mix(in srgb, var(--wp--preset--color--contrast) 45%, transparent); }
.ps-metalist-i:hover::after { translate: 3px -50%; }

/* contenuto: galleria + English version */
.ps-prose .wp-block-gallery { margin-block: var(--wp--preset--spacing--40); gap: 12px; }
.ps-prose .wp-block-gallery .wp-block-image img { border-radius: var(--wp--custom--radius--lg); }
.ps-prose .wp-block-details {
  margin-top: var(--wp--preset--spacing--40);
  padding: 14px 0;
  border-top: 1px solid var(--wp--custom--linea--sezione);
  border-bottom: 1px solid var(--wp--custom--linea--sezione);
}
.ps-prose .wp-block-details summary {
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
}
.ps-prose .wp-block-details[open] summary { margin-bottom: 12px; }

/* sotto i 1024px la scheda scorre con la pagina, dopo il testo */
@media (max-width: 1023px) {
  .ps-metacard { position: static; }
}

/* ===== TESTO LUNGO (.ps-prose) =====
   Colonna di lettura: corpo più piccolo del testo di base ma con più aria.
   Occupa tutta la larghezza disponibile accanto alla scheda laterale. Il primo paragrafo è l'"attacco", più
   grande (lo stesso aspetto si può dare a mano con lo stile di blocco Attacco).
   Tra i paragrafi solo spazio; una linea sottile apre ogni nuova sezione:
   sta sopra l'Occhiello, oppure sopra il titolo h2 se l'occhiello manca. */

.ps-prose { font-size: 1.15rem; line-height: 1.75; color: var(--wp--preset--color--contrast); }
.ps-prose p, .ps-prose li { hyphens: auto; text-wrap: pretty; }
.ps-prose.ps-prose > * + * { margin-block-start: 1.25em; }
.ps-prose > p:first-child:not(.ps-fintro, .ps-fintro-2) { font-size: 1.4rem; line-height: 1.55; letter-spacing: -.012em; }

.ps-prose h2 { font-size: clamp(1.8rem, 2.8vw, 2.4rem); font-weight: 700; line-height: 1.1; letter-spacing: -.025em; text-wrap: balance; }
.ps-prose h3 { font-size: 1.2rem; font-weight: 700; line-height: 1.3; }

.ps-prose.ps-prose > .is-style-occhiello,
.ps-prose.ps-prose > h2 { margin-block-start: 1.6em; padding-top: 1.8em; border-top: 1px solid var(--wp--custom--linea--sezione); }
.ps-prose.ps-prose > .is-style-occhiello + h2 { margin-block-start: 8px; padding-top: 0; border-top: 0; }
.ps-prose.ps-prose > :first-child { margin-block-start: 0; padding-top: 0; border-top: 0; }
.ps-prose.ps-prose > h2 + * { margin-block-start: .8em; }
.ps-prose.ps-prose > .wp-block-buttons { margin-block-start: 1.5em; }

/* titolo di sezione "in tondo" fuori dal testo lungo (elenchi, notizie correlate) */
.ps-tit2 { margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.4rem); font-weight: 700; line-height: 1.1; letter-spacing: -.025em; text-wrap: balance; }

/* ===== ARCHIVIO FESTIVAL ===== */

/* filtro comune: affiancato ai bottoni genere di festival-map.js */
.festival-map-filters .ps-fselect {
  appearance: none;
  padding: 7px 36px 7px 18px;
  border: 1px solid var(--sm-accent);
  border-radius: var(--wp--custom--radius--pill);
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 16px center;
  font: inherit;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--sm-accent);
  cursor: pointer;
}
.festival-map-filters .ps-fselect.is-active { background-color: color-mix(in srgb, var(--wp--preset--color--custom-arancio-scuro) 12%, transparent); }

.ps-fcount { margin: 0 0 8px; font-size: var(--wp--preset--font-size--x-small); font-weight: 600; color: var(--wp--preset--color--accent-4); }

.ps-flist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--custom--linea--sezione); }
.ps-fitem[hidden] { display: none; }
.ps-fitem a {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--wp--custom--linea--sezione);
  color: var(--wp--preset--color--contrast);
  text-decoration: none;
}
.ps-fitem-logo {
  aspect-ratio: 1;
  padding: 6px;
  box-sizing: border-box;
  border-radius: var(--wp--custom--radius--xs);
  background: var(--wp--preset--color--base);
  box-shadow: inset 0 0 0 1px var(--wp--custom--linea--sezione);
  overflow: hidden;
}
.ps-fitem-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ps-fitem-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ps-fitem-t { font-size: 1rem; font-weight: 800; line-height: 1.15; }
.ps-fitem a:hover .ps-fitem-t { text-decoration: underline; }
.ps-fitem-pl { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }
.ps-fitem-g { font-size: var(--wp--preset--font-size--xx-small); font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--wp--preset--color--accent-4); text-align: right; }
.ps-fempty { padding: 24px 0; color: var(--wp--preset--color--accent-4); }

@media (max-width: 781px) {
  .ps-fitem a { grid-template-columns: 48px minmax(0, 1fr); }
  .ps-fitem-g { display: none; }
}

/* ===== ULTIME NOTIZIE ===== */

.ps-narch { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60); }
.ps-narch .wp-block-post-template { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--wp--custom--linea--sezione); }
.ps-narch .wp-block-post-template > li { margin: 0; }

/* riga: miniatura | data | titolo + estratto | freccia — tutta cliccabile */
.ps-nrow {
  position: relative;
  display: grid;
  grid-template-columns: 132px 110px minmax(0, 1fr) 24px;
  grid-template-areas: "th dt tx go";
  gap: 22px;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid var(--wp--custom--linea--sezione);
}
.ps-nrow > * { margin: 0 !important; }
.ps-nrow::after {
  content: "→";
  grid-area: go;
  font-weight: 700;
  color: var(--wp--preset--color--contrast);
  transition: transform .15s;
}
.ps-nrow:hover::after { transform: translateX(4px); }

.ps-nrow-th { grid-area: th; border-radius: var(--wp--custom--radius--md); overflow: hidden; background: var(--wp--preset--color--custom-grigio-caldo); }
.ps-nrow-th img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ps-nrow-dt { grid-area: dt; font-size: var(--wp--preset--font-size--xx-small); font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--custom-arancio-scuro); }
.ps-nrow-tx { grid-area: tx; min-width: 0; }
.ps-nrow-tx .wp-block-post-title { margin: 0; font-size: 1.15rem; font-weight: 800; line-height: 1.15; }
.ps-nrow-tx .wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ps-nrow-tx .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; } /* riga intera cliccabile */
.ps-nrow:hover .wp-block-post-title a { text-decoration: underline; text-underline-offset: 3px; }
.ps-nrow-tx .wp-block-post-excerpt,
.ps-nrow-tx .wp-block-post-excerpt__excerpt { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); }
.ps-nrow-tx .wp-block-post-excerpt__more-text { display: none; }

/* paginazione */
.ps-pager { margin-top: var(--wp--preset--spacing--50); gap: 8px; font-size: .8125rem; font-weight: 700; }
.ps-pager a, .ps-pager .page-numbers { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ps-pager .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 10px; box-sizing: border-box;
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--base); box-shadow: inset 0 0 0 1px var(--wp--custom--linea--sezione);
}
.ps-pager .page-numbers.current { background: var(--wp--preset--color--contrast); box-shadow: none; color: var(--wp--preset--color--base); }
.ps-pager .page-numbers.dots { background: none; box-shadow: none; min-width: 0; }
.ps-pager a:hover { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 781px) {
  .ps-nrow {
    grid-template-columns: 96px minmax(0, 1fr);
    grid-template-areas: "th dt" "th tx";
    gap: 6px 16px;
    align-items: start;
  }
  .ps-nrow::after { display: none; }
  .ps-nrow-tx .wp-block-post-excerpt { display: none; }
}

/* ===== PAGINE: AVVISI PUBBLICI ===== */

/* mosaico uniforme 3×2 (variante di .ps-mosaic della home)
   lo spazio tra le tessere si regola dal blocco: Stili > Dimensioni > Spaziatura blocchi */
.ps-mosaic.ps-uni { grid-auto-rows: 280px; }
.ps-mosaic.ps-uni > .wp-block-cover { border-radius: var(--wp--custom--radius--card); }

/* sfumatura più decisa in basso: testo sempre leggibile, foto più omogenee */
.ps-mosaic.ps-uni .ps-mcard .wp-block-cover__background {
  background: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent) 0%, transparent 35%, color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent) 100%) !important;
}

/* gerarchia: stato piccolo in alto, titolo, una riga di descrizione */
.ps-mcard .ps-mstate {
  position: absolute; top: var(--wp--preset--spacing--30); left: var(--wp--preset--spacing--30); z-index: 1;
  margin: 0; padding: 5px 11px; border: 1px solid currentColor; border-radius: var(--wp--custom--radius--pill);
  font-size: var(--wp--preset--font-size--xx-small) !important; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; line-height: 1;
  background: color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent);
}
.ps-mosaic.ps-uni .ps-mcard h3 { font-size: clamp(1.25rem, 1.6vw, 1.6rem) !important; line-height: 1.05; }
.ps-mcard .ps-mdesc { margin: 6px 0 0; max-width: 34ch; line-height: 1.4; opacity: .9; }
.ps-mosaic.ps-uni .ps-mcard:hover h3 a { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 900px) {
  .ps-mosaic.ps-uni { grid-auto-rows: 240px; }
  .ps-mosaic.ps-uni > :first-child,
  .ps-mosaic.ps-uni > :nth-child(2) { grid-column: auto !important; }
}
@media (max-width: 560px) {
  .ps-mosaic.ps-uni { grid-auto-rows: 200px; }
}

/* fascia partnership */
.ps-band { overflow: hidden; }
.ps-band .ps-kick { margin: 0; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.ps-band h2 { margin: 6px 0 8px; }
.ps-band p { max-width: 52ch; }

/* ===== PAGINE: SINGOLO AVVISO =====
   Riusa .ps-metacard / .ps-metarow / .ps-prose della scheda festival. */

/* galleria: 3 foto affiancate, stessa altezza */
.ps-agal { gap: 12px !important; margin-block: var(--wp--preset--spacing--30) 0; }
.ps-agal .wp-block-image { margin: 0 !important; }
.ps-agal .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }

/* stato in cima alla scheda: testo modificabile (Aperto / Chiuso / In arrivo) */
.ps-metacard .ps-astate {
  width: auto !important; align-self: flex-start;
  padding: 6px 12px; border-radius: var(--wp--custom--radius--pill);
  font-size: var(--wp--preset--font-size--xx-small); font-weight: 700; letter-spacing: 1px; text-transform: uppercase; line-height: 1;
  color: var(--wp--preset--color--contrast);
  border: 1px solid var(--wp--preset--color--contrast);
}
.ps-metarow .ps-v { overflow-wrap: anywhere; }
/* stile di blocco "Pillola" dentro la scheda: larga quanto il testo
   (la scheda allarga tutti i figli al 100%) */
.ps-metacard > .is-style-pillola { width: fit-content; align-self: flex-start; }

/* ARTICOLO-AVVISO (modello single-avviso): documenti, pulsante */
.ps-metarow .ps-docs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; }
.ps-metarow .ps-docs .ps-doc {
  display: inline-flex; align-items: center;
  padding: 7px 13px; box-sizing: border-box;
  border: 1px solid var(--wp--custom--linea--sezione); border-radius: var(--wp--custom--radius--pill);
  font-size: var(--wp--preset--font-size--x-small); font-weight: 700; line-height: 1;
  color: var(--wp--preset--color--contrast); text-decoration: none;
  transition: background .15s, color .15s, border-color .15s;
}
.ps-metarow .ps-docs .ps-doc::after { content: "↓"; margin-left: 6px; }
.ps-metarow .ps-docs .ps-doc:hover { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); text-decoration: none; }
.ps-metacard .ps-avv-cta { margin-top: 4px; }

/* riquadro "In evidenza" (es. Export › Fiere & Convention) */
.ps-evid { padding: var(--wp--preset--spacing--30); border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--base); box-shadow: var(--wp--preset--shadow--scheda); }
.ps-evid > * { margin: 0 !important; }
.ps-evid-k { font-size: var(--wp--preset--font-size--xx-small); font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--custom-arancio-scuro); }
.ps-evid-v { font-weight: 800; }
.ps-evid-v a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ps-evid-v a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* storico avvisi: righe anno + download */
.ps-archive { border-top: 1px solid var(--wp--custom--linea--sezione); margin-top: 12px; }
.ps-arow { padding: 12px 0; border-bottom: 1px solid var(--wp--custom--linea--sezione); gap: 16px; }
.ps-arow > * { margin: 0 !important; }
.ps-ayear { font-weight: 800; font-size: 1rem; }
.ps-afile .wp-block-file__button {
  padding: 7px 14px !important; margin: 0 !important;
  border: 1px solid var(--wp--custom--linea--sezione); border-radius: var(--wp--custom--radius--pill);
  background: transparent !important; color: var(--wp--preset--color--contrast) !important;
  font-size: var(--wp--preset--font-size--x-small); font-weight: 700; text-decoration: none;
}
.ps-afile .wp-block-file__button:hover { background: var(--wp--preset--color--contrast) !important; color: var(--wp--preset--color--base) !important; border-color: var(--wp--preset--color--contrast); }
.ps-prose .ps-amore { margin-top: 0; border-top: 0; padding: 0; }
.ps-prose .ps-amore summary { padding: 14px 0; }
.ps-prose .ps-amore[open] summary { margin-bottom: 0; border-bottom: 1px solid var(--wp--custom--linea--sezione); }

@media (max-width: 781px) {
  .ps-agal { flex-wrap: nowrap !important; overflow-x: auto; }
  .ps-agal .wp-block-image { flex: 0 0 72% !important; }
}

/* ===== PAGINE: PROGETTI SPECIALI =====
   Stesso schema di festival e avvisi: .ps-prose + .ps-metacard. */

/* video verticale (9:16): non occupa tutta la colonna */
.ps-prose .ps-vvideo { max-width: 360px; margin-inline: auto; }
.ps-prose .ps-vvideo video { width: 100%; border-radius: var(--wp--custom--radius--lg); display: block; }
.ps-prose .wp-block-video video,
.ps-prose .wp-block-embed iframe { border-radius: var(--wp--custom--radius--lg); }

/* edizioni (Medimex, Tremiti): elenco con anno grande e numero edizione */
.ps-editions { border-top: 1px solid var(--wp--custom--linea--sezione); }
.ps-edition { padding: var(--wp--preset--spacing--40) 0; border-bottom: 1px solid var(--wp--custom--linea--sezione); }
.ps-edition > * { margin-block: 0; }
.ps-edition > * + * { margin-block-start: var(--wp--preset--spacing--20) !important; }
.ps-ed-head { gap: 12px; }
.ps-ed-head > * { margin: 0 !important; }
.ps-ed-year { font-size: 2rem !important; font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.ps-ed-num { font-size: var(--wp--preset--font-size--xx-small); font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--accent-4); }
.ps-edition.is-current .ps-ed-year,
.ps-edition.is-current .ps-ed-num { color: var(--wp--preset--color--custom-arancio-scuro); }
.ps-prose .ps-edition .wp-block-details { margin-top: var(--wp--preset--spacing--20); padding: 10px 0; border-bottom: 0; }

/* edizioni: disposizione (Medimex, Tremiti Music Festival)
   Ogni edizione è un gruppo .ps-edition con dentro la riga dell'anno
   (.ps-ed-head) e un blocco Media e Testo (locandina + testo). Sul sito:
   locandina piccola a sinistra; a destra anno, numero dell'edizione, testo
   e pulsante. Dove la colonna è stretta (telefono, o schermi medi con barra
   e scheda) la locandina affianca l'anno e il testo scende sotto, a tutta
   larghezza: conta la larghezza della colonna, non dello schermo (@container).
   Nell'editor il blocco resta un normale Media e Testo, comodo da modificare:
   per questo la disposizione vale solo dentro .wp-site-blocks, che
   nell'editor non c'è. Nei browser senza @container resta la disposizione
   di WordPress (locandina e testo a metà). */

/* locandina: angoli morbidi e ombra, come le schede */
.ps-edition .wp-block-media-text__media img { display: block; width: 100%; height: auto; border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--scheda); }
.ps-edition .wp-block-media-text__media a { display: block; border-radius: var(--wp--custom--radius--lg); transition: transform .25s ease; }
.ps-edition .wp-block-media-text__media a:hover { transform: translateY(-3px); }

/* testo dell'edizione: un po' più piccolo del testo lungo */
.ps-edition .wp-block-media-text__content > * { margin-block: 0; }
.ps-edition .wp-block-media-text__content > * + * { margin-block-start: .9em; }
.ps-edition .wp-block-media-text__content p { font-size: 1.05rem; line-height: 1.65; }
.ps-edition .wp-block-media-text__content > .wp-block-buttons { margin-block-start: 1.2em; }
/* video dentro l'edizione: quelli verticali (9:16) non occupano tutta la colonna */
.ps-edition .wp-block-embed.wp-embed-aspect-9-16 { max-width: 280px; }
.ps-edition .wp-block-embed { margin-inline: 0; }

@supports (container-type: inline-size) {
  .wp-site-blocks .ps-editions { container-type: inline-size; }
  .wp-site-blocks .ps-editions > .ps-edition:has(> .wp-block-media-text) {
    display: grid;
    grid-template-columns: clamp(150px, 24%, 230px) minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: clamp(24px, 4.5%, 44px);
    row-gap: 14px;
    align-items: start;
  }
  .wp-site-blocks .ps-editions > .ps-edition:has(> .wp-block-media-text) > * { margin-block: 0 !important; }
  /* il Media e Testo "sparisce" come contenitore: locandina e testo si
     dispongono direttamente nella griglia dell'edizione */
  .wp-site-blocks .ps-editions > .ps-edition > .wp-block-media-text { display: contents; }
  .wp-site-blocks .ps-editions > .ps-edition > .ps-ed-head { grid-column: 2; grid-row: 1; align-items: baseline; }
  .wp-site-blocks .ps-editions > .ps-edition > .wp-block-media-text > .wp-block-media-text__media { grid-column: 1; grid-row: 1 / span 2; align-self: start; margin: 0; }
  .wp-site-blocks .ps-editions > .ps-edition > .wp-block-media-text > .wp-block-media-text__content { grid-column: 2; grid-row: 2; align-self: start; padding: 0; }

  /* colonna stretta: locandina piccola accanto all'anno, testo sotto */
  @container (max-width: 560px) {
    .wp-site-blocks .ps-editions > .ps-edition:has(> .wp-block-media-text) { grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 18px; row-gap: 18px; }
    .wp-site-blocks .ps-editions > .ps-edition > .ps-ed-head { align-self: end; flex-direction: column; align-items: flex-start; gap: 8px; }
    .wp-site-blocks .ps-editions > .ps-edition > .wp-block-media-text > .wp-block-media-text__media { grid-row: 1; }
    .wp-site-blocks .ps-editions > .ps-edition > .wp-block-media-text > .wp-block-media-text__content { grid-column: 1 / -1; grid-row: 2; }
  }
}

/* griglia video (Note Positive) */
.ps-vgrid { gap: var(--wp--preset--spacing--30) !important; margin-top: var(--wp--preset--spacing--30); }
.ps-vcard > * { margin: 0 !important; }
.ps-vcard video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--wp--preset--color--contrast); border-radius: var(--wp--custom--radius--lg); display: block; }
.ps-vcard h4 { margin-top: 10px !important; font-size: 1rem; font-weight: 800; }
.ps-vcard-pl { font-size: .8125rem; color: var(--wp--preset--color--accent-4); }

.ps-metacard .wp-block-buttons { width: 100%; }

@media (max-width: 600px) {
  .ps-vgrid { grid-template-columns: minmax(0, 1fr) !important; }
}

/* ===== PAGINE: CONTATTI =====
   Stesso schema: testo a sinistra + .ps-metacard con i recapiti. */

.ps-contact .ps-contact-lead { margin: 0 !important; max-width: 18ch; font-size: clamp(1.75rem, 3vw, 2.6rem); font-weight: 700; line-height: 1.05; letter-spacing: -.03em; }
.ps-contact > p { max-width: 52ch; font-size: 1.05rem; }
.ps-contact .ps-contact-cta { gap: 10px; margin-block-start: var(--wp--preset--spacing--40) !important; }
.ps-metacard .ps-clogo { width: auto !important; margin-bottom: 10px; }
.ps-metacard .ps-clogo img { display: block; height: auto; }
.ps-metarow--last { border-bottom: 0; padding-bottom: 0; }
.ps-metarow .ps-festlinks { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; }

/* ===== PAGINE: NEWSLETTER =====
   Intestazione centrata (.ps-nl) e riquadro (.ps-nl-card);
   il form è quello del tema, più sotto (.ps-nlform). */

.ps-nl { text-align: center; }
.ps-nl > * { margin-inline: auto !important; }
.ps-nl .ps-nl-kick { margin: 0; font-size: var(--wp--preset--font-size--x-small); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--wp--preset--color--custom-arancio-scuro); }
.ps-nl .ps-nl-title { margin: 8px auto 0 !important; font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 700; line-height: 1; letter-spacing: -.035em; }
.ps-nl .ps-nl-intro { max-width: 44ch; margin-top: 14px !important; color: var(--wp--preset--color--accent-4); }

.ps-nl-card {
  margin-top: var(--wp--preset--spacing--50) !important;
  padding: clamp(20px, 4vw, 36px);
  border-radius: var(--wp--custom--radius--pannello);
  background: var(--wp--preset--color--base);
  box-shadow: var(--wp--preset--shadow--pannello);
  text-align: left;
}

/* ===== FORM NEWSLETTER DEL TEMA ([ps_newsletter]) =====
   Usato nella pagina Newsletter e nel pop-up. Nessuna dipendenza da plugin. */

.ps-nlform { display: grid; gap: 18px; text-align: left; }
.ps-nlform-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.ps-nlform-field label {
  display: block; margin-bottom: 6px;
  font-size: var(--wp--preset--font-size--x-small); font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
  color: var(--wp--preset--color--contrast);
}
.ps-nlform-field input {
  display: block; width: 100%; height: 46px; box-sizing: border-box; padding: 0 14px;
  border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--wp--custom--radius--sm);
  background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
  font: inherit; font-size: var(--wp--preset--font-size--medium);
}
.ps-nlform-field input:hover { border-color: var(--wp--preset--color--contrast); }
.ps-nlform-field input:focus-visible { border-color: var(--wp--preset--color--contrast); outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 1px; }
.ps-nlform-check { display: flex; align-items: flex-start; gap: 10px; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); }
.ps-nlform-check input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--wp--preset--color--contrast); }
.ps-nlform-check a { color: var(--wp--preset--color--contrast); }
.ps-nlform-msg {
  padding: 12px 14px; border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--wp--custom--radius--sm);
  background: var(--wp--preset--color--base); font-size: var(--wp--preset--font-size--small); font-weight: 600;
}
.ps-nlform-msg.is-error { border-color: var(--wp--preset--color--custom-arancio-scuro); color: var(--wp--preset--color--custom-arancio-scuro); }
.ps-nlform-msg a { color: inherit; font-weight: 800; }
/* riquadro di Cloudflare Turnstile: di norma invisibile, occupa spazio solo se chiede un'interazione */
.ps-nlform-ts:empty { display: none; }
/* campo trappola anti-spam: fuori schermo, invisibile anche agli screen reader */
.ps-nlform .ps-nlform-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* durante l'invio e a iscrizione avvenuta */
.ps-nlform.is-sending { opacity: .6; pointer-events: none; }
.ps-nlform.is-done > :not(.ps-nlform-msg) { display: none; }
@media (max-width: 600px) {
  .ps-nlform-row { grid-template-columns: minmax(0, 1fr); }
}

/* pop-up newsletter (<dialog>, functions.php sezione 7f) */
.ps-nlpop {
  width: min(92vw, 460px); max-height: 90vh; overflow: auto; box-sizing: border-box;
  padding: clamp(22px, 5vw, 36px);
  border: 0; border-radius: var(--wp--custom--radius--pannello);
  background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
  box-shadow: var(--wp--preset--shadow--pannello);
}
.ps-nlpop::backdrop { background: color-mix(in srgb, var(--wp--preset--color--contrast) 55%, transparent); }
.ps-nlpop-x {
  position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; padding: 0;
  border: 0; border-radius: 50%; background: transparent; color: inherit;
  font: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.ps-nlpop-x:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.ps-nlpop-t { margin: 0 36px 8px 0; font-size: var(--wp--preset--font-size--x-large); font-weight: 700; line-height: 1.05; letter-spacing: -.03em; }
.ps-nlpop-s { margin: 0 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--medium); color: var(--wp--preset--color--accent-4); }

/* ===== BARRA LATERALE (parte "sidebar", inclusa nella parte "header") =====
   Da 1024px in su il sito è una griglia a due colonne: a sinistra la parte
   header (che contiene la barra), a destra tutto il resto (main, footer).
   Sotto i 1024px la barra è nascosta e resta la barra in alto (.ps-topbar).
   La griglia vale solo con la classe .ps-has-sidebar sul body (functions.php,
   sezione 1). Nell'editor .wp-site-blocks non esiste: la barra resta visibile.
   La barra è un pannello bianco appoggiato sul fondo della pagina: resta
   ferma mentre la pagina scorre, è alta quanto la finestra e al suo interno
   scorre solo il menu (logo in alto e piede in basso restano sempre visibili).
   Titoli di gruppo come paragrafi (non h2) per non sporcare la struttura
   dei titoli di ogni pagina. */

.wp-site-blocks .ps-side-col { display: none; }

@media (min-width: 1024px) {
  .ps-has-sidebar .wp-site-blocks {
    display: grid;
    grid-template-columns: 304px minmax(0, 1fr);
    align-items: start;
  }
  .ps-has-sidebar .wp-site-blocks > * { grid-column: 2; }
  /* la parte header occupa tutta l'altezza della colonna sinistra */
  .ps-has-sidebar .wp-site-blocks > header.wp-block-template-part {
    grid-column: 1;
    grid-row: 1 / span 50;
    align-self: stretch;
    margin: 0;
  }
  /* il pannello è staccato di 16px anche dal contenuto: foto e fasce a tutta
     larghezza non lo toccano; il testo resta a 50px dal pannello (16 + 34) */
  .ps-has-sidebar .wp-site-blocks > :not(header) { --wp--style--root--padding-left: calc(var(--wp--preset--spacing--50) - 16px); }
  .ps-has-sidebar .wp-site-blocks .ps-topbar { display: none; }
  .ps-has-sidebar .wp-site-blocks .ps-side-col { display: block; }
}

/* colonna ferma, alta quanto la finestra (sotto la barra di amministrazione
   per gli utenti collegati); il pannello sta dentro con 16px di margine su ogni lato */
.ps-side-col {
  position: sticky; top: var(--wp-admin--admin-bar--height, 0px);
  box-sizing: border-box;
  height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
  padding: 16px;
}
/* la parte "sidebar" è dentro un contenitore proprio (div.wp-block-template-part) */
.ps-side-col > .wp-block-template-part { height: 100%; }
.ps-side {
  box-sizing: border-box; height: 100%; overflow: hidden; flex-wrap: nowrap;
  border-radius: var(--wp--custom--radius--pannello);
  background: var(--wp--preset--color--base);
  box-shadow: var(--wp--preset--shadow--pannello);
}
/* nessun figlio può allargare il pannello (un'immagine non ancora caricata, per esempio) */
.ps-side > *, .ps-side-foot > *, .ps-side-last > * { min-width: 0; }
.ps-side .ps-side-logo { flex: none; margin: 0; padding: 24px 26px 16px; }
.ps-side-logo img { max-width: 100%; height: auto; }

/* menu: l'unica parte che scorre */
.ps-side .ps-side-nav {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-width: thin;
  flex-wrap: nowrap; gap: 0; padding: 4px 26px 24px;
  /* le ultime voci sfumano: si capisce che il menu continua */
  -webkit-mask-image: linear-gradient(#000 calc(100% - 28px), transparent);
  mask-image: linear-gradient(#000 calc(100% - 28px), transparent);
}
.ps-side-nav > * { flex: none; }

/* titolo di gruppo (anche nel menu a comparsa e nel piede) */
.ps-side-nav > .ps-side-h,
.ps-menu-col > .ps-side-h,
.ps-side-socrow > .ps-side-h {
  margin: 20px 0 5px; padding: 0;
  font-size: .65625rem; font-weight: 800; letter-spacing: 1.2px; line-height: 1.4; text-transform: uppercase;
  color: var(--wp--preset--color--accent-4);
}
.ps-side-nav > .ps-side-h:first-child,
.ps-menu-col > .ps-side-h:first-child { margin-top: 0; }

/* voci: righe a tutta larghezza; il fondo sborda di 12px, il testo resta allineato */
.wp-block-navigation.ps-side-menu.is-vertical { --navigation-layout-align: stretch; align-items: stretch; }
.ps-side-menu { gap: 1px !important; }
.ps-side-menu .wp-block-navigation-item__content {
  flex: 1 1 auto; display: flex; align-items: center; justify-content: space-between; gap: 8px;
  box-sizing: border-box; min-height: 34px; margin: 0 -12px; padding: 4px 12px;
  border-radius: var(--wp--custom--radius--voce);
  font-size: .9375rem; font-weight: 500; line-height: 1.25; color: var(--wp--preset--color--contrast); text-decoration: none;
  transition: background-color .2s, color .2s;
}
.ps-side-menu .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--custom-grigio-caldo); text-decoration: none; }

/* sottovoci: sempre aperte e rientrate, SOTTO l'etichetta (non in colonna accanto) */
.ps-side-menu .wp-block-navigation__submenu-container { position: static !important; opacity: 1 !important; visibility: visible !important; width: auto !important; height: auto !important; min-width: 0 !important; padding-left: 12px !important; border: 0 !important; background: transparent !important; }
.ps-side-menu .wp-block-navigation__submenu-icon { display: none; }
.ps-side-menu .wp-block-navigation-item.has-child {
  display: flex !important; flex-direction: column !important;
  align-items: stretch !important; flex-wrap: nowrap !important;
}
.ps-side-menu .has-child > .wp-block-navigation__submenu-container {
  display: flex !important; flex-direction: column !important; gap: 0 !important;
  left: auto !important; top: auto !important; transform: none !important;
  margin: 2px 0 6px !important; padding: 0 0 0 12px !important;
  border-left: 1px solid var(--wp--custom--linea--sezione) !important;
}
.ps-side-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  min-height: 30px; margin: 0 -12px 0 0; padding: 3px 12px 3px 10px;
  font-size: .8125rem; color: var(--wp--preset--color--accent-4);
}

/* voce della pagina in cui ci si trova: fondo pesca e pallino */
.ps-side-menu .current-menu-item > .wp-block-navigation-item__content,
.ps-side-menu .wp-block-navigation-item__content[aria-current="page"] {
  background: var(--wp--preset--color--custom-pesca);
  color: var(--wp--preset--color--custom-arancio-scuro); font-weight: 700;
}
.ps-side-menu .current-menu-item > .wp-block-navigation-item__content::after,
.ps-side-menu .wp-block-navigation-item__content[aria-current="page"]::after {
  content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%;
  background: var(--wp--preset--color--custom-arancio);
}

/* piede: Medimex, social, logo Puglia Culture e versione inglese */
.ps-side .ps-side-foot {
  flex: none; margin: 0; padding: 18px 20px 20px; gap: 16px;
  border-top: 1px solid var(--wp--custom--linea--sottile);
  background: var(--wp--preset--color--custom-carta);
}

/* pulsante Medimex: pillola viola a tutta larghezza, freccia nel cerchio giallo
   (la freccia qui è scritta nella parte, dentro uno <span>) */
.ps-side-evt { margin: 0; }
.ps-side-evt a {
  display: flex; align-items: center; justify-content: space-between;
  box-sizing: border-box; min-height: 46px; padding: 6px 6px 6px 18px;
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--accent-3); color: var(--wp--preset--color--base);
  font-size: .875rem; font-weight: 700; line-height: 1.2; text-decoration: none;
  transition: background-color .25s;
}
.ps-side-evt a span {
  flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--contrast);
  font-size: .9375rem; font-weight: 700; line-height: 1;
  transition: transform .25s ease;
}
.ps-side-evt a:hover { background: color-mix(in srgb, var(--wp--preset--color--accent-3) 80%, var(--wp--preset--color--contrast)); color: var(--wp--preset--color--base); }
.ps-side-evt a:hover span { transform: translateX(3px); }

/* social: etichetta "Seguici" a sinistra, icone in cerchi a destra (senza nomi) */
.ps-side-foot .ps-side-socrow, .ps-menu-extra .ps-side-socrow { flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px; padding: 0 4px; }
.ps-side-socrow > .ps-side-h { margin: 0; }
.ps-side-soc.wp-block-social-links.is-style-logos-only { gap: 8px; margin: 0; }
.ps-side-soc.wp-block-social-links.is-style-logos-only .wp-social-link {
  margin: 0; border-radius: 50%; background: transparent; color: var(--wp--preset--color--contrast);
  box-shadow: inset 0 0 0 1px var(--wp--custom--linea--sezione);
  transition: background-color .2s, color .2s, box-shadow .2s;
}
.ps-side-soc.wp-block-social-links.is-style-logos-only .wp-social-link .wp-block-social-link-anchor {
  display: grid; place-items: center; box-sizing: border-box; width: 38px; height: 38px; padding: 0;
}
.ps-side-soc.wp-block-social-links.is-style-logos-only .wp-social-link svg { width: 17px; height: 17px; }
.ps-side-soc.wp-block-social-links.is-style-logos-only .wp-social-link:hover {
  transform: none; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base);
  box-shadow: inset 0 0 0 1px var(--wp--preset--color--contrast);
}

/* ultima riga: logo Puglia Culture a sinistra, versione inglese a destra */
.ps-side-foot .ps-side-last, .ps-menu-extra .ps-side-last { flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px; padding: 0 4px; }
.ps-side-pc { margin: 0; }
.ps-side-pc img { display: block; height: auto; object-fit: contain; }
.ps-side-lang { margin: 0; font-size: .8125rem; font-weight: 700; }
.ps-side-lang a { color: var(--wp--preset--color--contrast); text-decoration: underline; text-decoration-color: var(--wp--preset--color--custom-arancio); text-underline-offset: 4px; }
.ps-side-lang a:hover { color: var(--wp--preset--color--custom-arancio-scuro); }

/* ===== BARRA IN ALTO (sotto i 1024px) =====
   Una pillola bianca staccata dai bordi, che resta in vista mentre la pagina
   scorre: logo a sinistra, pulsante "Menu" a destra. Sotto, la pagina
   riprende sul fondo crema. */

@media (max-width: 1023px) {
  .wp-site-blocks > header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 20; }
}
/* su telefono la barra di amministrazione non è fissa: la pillola sta in cima */
@media (max-width: 600px) {
  .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; }
}
.ps-topbar { padding: 12px 12px 0; }
.ps-topbar .ps-topbar-in {
  flex-wrap: nowrap; align-items: center; justify-content: space-between;
  box-sizing: border-box; height: 60px; padding: 0 8px 0 22px;
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--base);
  box-shadow: var(--wp--preset--shadow--pannello);
}
.ps-topbar-in .wp-block-site-logo img, .ps-menu-top .wp-block-site-logo img { display: block; }

/* pulsante "Menu": pillola scura, due lineette nel cerchio chiaro */
.ps-topbar .wp-block-navigation__responsive-container-open {
  display: flex; align-items: center; gap: 12px; height: 44px; padding: 0 6px 0 18px;
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--accent-5);
  font: inherit; font-size: .875rem; font-weight: 700; line-height: 1;
  transition: background-color .25s;
}
.ps-topbar .wp-block-navigation__responsive-container-open::after {
  content: ""; flex: none; width: 32px; height: 32px; border-radius: 50%;
  background:
    linear-gradient(var(--wp--preset--color--contrast), var(--wp--preset--color--contrast)) center calc(50% - 2.75px) / 13px 1.5px no-repeat,
    linear-gradient(var(--wp--preset--color--contrast), var(--wp--preset--color--contrast)) center calc(50% + 2.75px) / 13px 1.5px no-repeat,
    var(--wp--preset--color--accent-5);
}
.ps-topbar .wp-block-navigation__responsive-container-open:hover { background: var(--wp--preset--color--custom-arancio-scuro); color: var(--wp--preset--color--base); }

/* ===== MENU A COMPARSA (parte "menu-overlay") =====
   Sotto i 1024px il pulsante "Menu" apre questo pannello: lo stesso della
   barra laterale, aperto sopra la pagina. È una parte del tema (area "Overlay
   di navigazione", da WordPress 7) collegata al blocco Navigazione di
   parts/header.html (attributo "overlay"). Titoli e menu sono quelli della
   barra laterale (.ps-side-h, .ps-side-menu): qui le voci sono più alte
   (44px) perché si toccano con le dita.
   Struttura: riga in alto (logo + Chiudi) · gruppi di voci · piede.
   - telefono: una colonna; scorrono solo le voci, il piede resta in vista;
   - da 600px: i gruppi si affiancano (2–3 colonne);
   - da 890px: tre colonne di gruppi + una quarta colonna con il piede. */

/* con un menu a comparsa personalizzato WordPress non mette lo sfondo */
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open {
  padding: 12px; box-sizing: border-box;
  background: var(--wp--preset--color--accent-5);
  color: var(--wp--preset--color--contrast);
}
/* utenti collegati: il menu parte sotto la barra di amministrazione */
.admin-bar .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open { padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 12px); }
.wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content, .wp-block-navigation__overlay-container):has(.ps-menu) {
  display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; width: 100%; max-width: none; margin: 0; padding: 0;
}

.ps-menu {
  flex: 1 1 auto; min-height: 0; height: 100%; display: flex; flex-direction: column;
  box-sizing: border-box; overflow: hidden;
  border-radius: var(--wp--custom--radius--menu);
  background: var(--wp--preset--color--base);
  box-shadow: var(--wp--preset--shadow--pannello);
}
.ps-menu > * { margin: 0; }

/* riga in alto: logo e chiusura negli stessi punti della barra in alto */
.ps-menu > .ps-menu-top { flex: none; flex-wrap: nowrap; align-items: center; justify-content: space-between; box-sizing: border-box; height: 60px; padding: 0 8px 0 22px; }
.ps-menu-top .wp-block-navigation-overlay-close {
  flex-direction: row-reverse; gap: 12px; height: 44px; padding: 0 6px 0 18px;
  border-radius: var(--wp--custom--radius--pill);
  background: var(--wp--preset--color--custom-grigio-caldo); color: var(--wp--preset--color--contrast);
  font: inherit; font-size: .875rem; font-weight: 700; line-height: 1;
  transition: background-color .2s;
}
.ps-menu-top .wp-block-navigation-overlay-close svg {
  box-sizing: border-box; width: 32px; height: 32px; padding: 6px; border-radius: 50%;
  background: var(--wp--preset--color--contrast); fill: var(--wp--preset--color--base);
}
.ps-menu-top .wp-block-navigation-overlay-close:hover { background: var(--wp--preset--color--custom-pesca); }

/* corpo: gruppi di voci (scorrono) e piede */
.ps-menu > .ps-menu-body { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.ps-menu-body > * { margin: 0; }
.ps-menu-body > .ps-menu-cols {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; align-content: start;
  gap: 22px 26px; padding: 14px 26px 22px;
}
.ps-menu-cols > .ps-menu-col { gap: 0; }
.ps-menu-col > * { margin: 0; }
.ps-menu-col > .ps-side-h { margin-top: 22px; padding-bottom: 4px; }
.ps-menu-col > .ps-side-h:first-child { margin-top: 0; }
.ps-menu .ps-side-menu .wp-block-navigation-item__content { min-height: 44px; margin: 0 -14px; padding: 4px 14px; font-size: 1.125rem; letter-spacing: -.005em; }
.ps-menu .ps-side-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height: 40px; margin: 0 -14px 0 0; padding: 4px 14px 4px 10px; font-size: 1rem; }
.ps-menu .ps-side-menu .current-menu-item > .wp-block-navigation-item__content::after,
.ps-menu .ps-side-menu .wp-block-navigation-item__content[aria-current="page"]::after { width: 7px; height: 7px; }

/* piede: Medimex a tutta larghezza, poi social e versione inglese sulla stessa riga */
.ps-menu-body > .ps-menu-extra {
  flex: none; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px 10px;
  padding: 16px 18px 18px;
  border-top: 1px solid var(--wp--custom--linea--sottile);
  background: var(--wp--preset--color--custom-carta);
}
.ps-menu-extra > * { margin: 0; }
.ps-menu-extra > .ps-side-evt { grid-column: 1 / -1; }
.ps-menu-extra .ps-side-evt a { min-height: 50px; padding: 7px 7px 7px 20px; font-size: .9375rem; }
.ps-menu-extra .ps-side-evt a span { width: 36px; height: 36px; }
.ps-menu-extra .ps-side-socrow > .ps-side-h, .ps-menu-extra .ps-side-pc { display: none; }
.ps-menu-extra .ps-side-soc.wp-block-social-links.is-style-logos-only .wp-social-link .wp-block-social-link-anchor { width: 44px; height: 44px; }
.ps-menu-extra .ps-side-lang { font-size: .875rem; }

@media (min-width: 600px) {
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open { padding: 14px; }
  .admin-bar .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open { padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 14px); }
  .ps-menu { border-radius: var(--wp--custom--radius--pannello); }
  .ps-menu > .ps-menu-top { height: 68px; padding: 0 12px 0 30px; border-bottom: 1px solid var(--wp--custom--linea--sottile); }
  .ps-menu-body > .ps-menu-cols { padding: 28px 30px; }
  .ps-menu .ps-side-menu .wp-block-navigation-item__content { font-size: 1.0625rem; }
}

/* quattro colonne: tre di gruppi (separate da linee) e il piede a destra */
@media (min-width: 890px) {
  .ps-menu > .ps-menu-body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 230px; overflow-y: auto; }
  .ps-menu-body > .ps-menu-cols { display: contents; }
  .ps-menu-cols > .ps-menu-col { padding: 28px 26px; border-right: 1px solid var(--wp--custom--linea--sottile); }
  .ps-menu-body > .ps-menu-extra {
    display: flex; flex-direction: column; align-items: stretch; gap: 18px;
    padding: 28px 20px 24px; border-top: 0;
  }
  .ps-menu-extra .ps-side-socrow > .ps-side-h { display: block; }
  .ps-menu-extra .ps-side-socrow { flex-direction: column; align-items: flex-start; gap: 10px; }
  .ps-menu-extra .ps-side-soc.wp-block-social-links.is-style-logos-only .wp-social-link .wp-block-social-link-anchor { width: 38px; height: 38px; }
  .ps-menu-extra .ps-side-last { flex-direction: column-reverse; align-items: flex-start; gap: 18px; flex: 1 1 auto; justify-content: space-between; }
  .ps-menu-extra .ps-side-pc { display: block; }
}

/* ===== HOME: MEDIMEX come card copertina (trattamento .ps-mcard) ===== */

.ps-medimex { border-radius: var(--wp--custom--radius--riquadro); overflow: hidden; }
.ps-medimex .wp-block-cover__background {
  background: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent) 0%, transparent 35%, color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent) 100%) !important;
  opacity: 1 !important;
}
.ps-medimex .wp-block-cover__inner-container > * { margin: 0; }
.ps-medimex h2 a { text-decoration: none; background: none; }
.ps-medimex h2 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.ps-medimex .ps-mdesc { margin-top: 10px; font-weight: 600; }
.ps-medimex .ps-mgo { margin-top: 14px; font-size: .8125rem; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.ps-medimex:hover h2 a { text-decoration: underline; text-underline-offset: 6px; }

/* ===== HOME: FESTIVAL — più aria, "In evidenza" in secondo piano ===== */

.ps-festhome .ps-fev { padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--custom--linea--sezione); }
.ps-fev-h { margin: 0; font-size: var(--wp--preset--font-size--x-small) !important; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
/* niente sbordi: ogni livello può restringersi sotto la larghezza del contenuto */
.ps-festhome { box-sizing: border-box; max-width: 100%; min-width: 0; }
.ps-festhome > * { max-width: 100%; min-width: 0; box-sizing: border-box; }
.ps-festhome .wp-block-media-text { grid-template-columns: minmax(0, 1fr) 48% !important; }
.ps-fev > .is-layout-flex { flex-wrap: wrap; gap: 8px 24px; }
.ps-fmini-list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: var(--wp--preset--spacing--30) !important; }
.ps-fmini-list > li { min-width: 0; }
.ps-fmini {
  position: relative;
  display: grid !important; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center;
}
.ps-fmini > * { margin: 0 !important; }
/* miniatura = logo del festival: riquadro bianco, logo intero (come l'archivio) */
.ps-fmini-th {
  width: 72px; aspect-ratio: 1; padding: 6px; box-sizing: border-box;
  border-radius: var(--wp--custom--radius--md);
  background: var(--wp--preset--color--base); box-shadow: inset 0 0 0 1px var(--wp--custom--linea--sezione); overflow: hidden;
}
.ps-fmini-th img { display: block; width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: contain !important; }
.ps-fmini-tx { gap: 3px !important; min-width: 0; }
.ps-fmini-tx > * { margin: 0 !important; }
.ps-fmini-t { font-size: 1rem !important; font-weight: 800; line-height: 1.15; }
.ps-fmini-t a { color: var(--wp--preset--color--contrast); text-decoration: none; background: none; }
.ps-fmini-t a::after { content: ""; position: absolute; inset: 0; }
.ps-fmini:hover .ps-fmini-t a { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1100px) {
  .ps-fmini-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 700px) {
  .ps-fmini-list { grid-template-columns: minmax(0, 1fr) !important; }
  .ps-festhome .wp-block-media-text { grid-template-columns: 100% !important; }
}

/* ===== PAGINE: CHI SIAMO — NUMERI =====
   Gruppo .ps-nums con 4 Copertine .ps-mcard (foto + sfumatura dal basso):
   numero grande, lineetta arancio, etichetta. Numeri fermi (nessun conteggio).
   4 in fila su desktop, 2×2 su tablet, scorrimento orizzontale su telefono. */
.ps-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ps-nums > .wp-block-cover {
  margin: 0; padding: 24px; overflow: hidden;
  border-radius: var(--wp--custom--radius--card);
  transition: transform .4s ease, box-shadow .4s ease;
}
.ps-nums > .wp-block-cover:hover { transform: translateY(-6px); box-shadow: var(--wp--preset--shadow--sollevata); }
.ps-nums .ps-mcard .wp-block-cover__background {
  background: linear-gradient(180deg, transparent 30%, color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent) 100%) !important;
}
/* .ps-mcard rende il contenitore "static" (per la card cliccabile del mosaico):
   qui il testo deve stare sopra foto e sfumatura */
.ps-nums .wp-block-cover__inner-container { position: relative; z-index: 1; }
.ps-nums .wp-block-cover__inner-container > * { margin: 0; }
.ps-nums .wp-block-cover__inner-container > p:first-child {
  font-size: clamp(2.8rem, 4.6vw, 3.9rem); font-weight: 700; line-height: 1; letter-spacing: -.035em;
  font-variant-numeric: tabular-nums; text-transform: none;
}
.ps-nums .wp-block-cover__inner-container > p + p {
  margin-block-start: 10px;
  font-size: .75rem; font-weight: 700; letter-spacing: 1px; line-height: 1.35; text-transform: uppercase;
}
.ps-nums .wp-block-cover__inner-container > p + p::before {
  content: ""; display: block; width: 28px; height: 2px; margin-bottom: 10px;
  background: var(--wp--preset--color--custom-arancio);
}

@media (max-width: 1023px) {
  .ps-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .ps-nums { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 10px; }
  .ps-nums::-webkit-scrollbar { display: none; }
  .ps-nums > .wp-block-cover { flex: 0 0 72%; scroll-snap-align: start; }
}

/* ===== RIQUADRO IN EVIDENZA (.ps-feature) =====
   Gruppo con due figli: un Gruppo di testo (.ps-feature-tx) e un'Immagine
   (.ps-feature-img). Fondo viola, testo bianco, dentro i margini del contenuto.
   Nel testo: Occhiello, titolo, paragrafi, pulsanti.
   Affiancati quando c'è spazio (almeno 340px per parte), altrimenti impilati. */
.ps-feature {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  overflow: hidden;
  border-radius: var(--wp--custom--radius--riquadro);
  background: var(--wp--preset--color--accent-3); color: var(--wp--preset--color--base);
}
.ps-feature > * { margin: 0; max-width: none; }
.ps-feature > .ps-feature-tx { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: clamp(36px, 5vw, 64px); }
.ps-feature-tx > * { margin: 0; }
.ps-feature-tx > .is-style-occhiello { color: var(--wp--preset--color--accent-1); }
.ps-feature-tx > :is(h2, h3) { font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.ps-feature-tx > p { max-width: 56ch; font-size: 1.075rem; line-height: 1.75; color: color-mix(in srgb, var(--wp--preset--color--base) 90%, var(--wp--preset--color--accent-3)); text-wrap: pretty; hyphens: auto; }
/* frase d'attacco: un Paragrafo con lo stile di blocco "Attacco" */
.ps-feature-tx > p.is-style-attacco { font-size: 1.25rem; line-height: 1.5; color: var(--wp--preset--color--base); }
.ps-feature-tx > .wp-block-buttons { margin-top: 8px; }
.ps-feature > .ps-feature-img { min-height: 360px; position: relative; }
.ps-feature > .ps-feature-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
/* pulsanti dentro il riquadro: bianco con cerchio viola; al passaggio giallo */
.ps-feature .wp-block-buttons > .wp-block-button > .wp-block-button__link {
  padding: 6px 7px 6px 22px; background-color: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); box-shadow: none;
}
.ps-feature .wp-block-buttons > .wp-block-button > .wp-block-button__link::after { width: 34px; height: 34px; background: var(--wp--preset--color--accent-3); color: var(--wp--preset--color--base); }
.ps-feature .wp-block-buttons > .wp-block-button > .wp-block-button__link:hover { background-color: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--contrast); box-shadow: none; }
/* secondo pulsante (stile Contorno): trasparente, anello bianco */
.ps-feature .wp-block-buttons > .wp-block-button.is-style-outline > .wp-block-button__link { background-color: transparent; color: var(--wp--preset--color--base); box-shadow: inset 0 0 0 1.5px currentColor; }
.ps-feature .wp-block-buttons > .wp-block-button.is-style-outline > .wp-block-button__link::after { background: var(--wp--preset--color--base); color: var(--wp--preset--color--accent-3); }
.ps-feature .wp-block-buttons > .wp-block-button.is-style-outline > .wp-block-button__link:hover { background-color: color-mix(in srgb, var(--wp--preset--color--base) 16%, transparent); color: var(--wp--preset--color--base); box-shadow: inset 0 0 0 1.5px currentColor; }
.ps-feature a:not(.wp-block-button__link) { color: inherit; }

/* ===== ORGANIGRAMMA (.ps-org) =====
   Griglia di riquadri bianchi (.ps-org-box), uno per gruppo di persone.
   Ogni riga (.ps-org-row) ha il ruolo a sinistra (stile Etichetta) e i nomi
   a destra, uno per riga. Riusabile per qualsiasi elenco di persone. */
/* occhiello + titolo sopra l'organigramma */
.ps-org-h > * { margin: 0; }
.ps-org-h > * + * { margin-block-start: 8px; }
.ps-org { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 20px; align-items: start; }
.ps-org > * { margin: 0; }
.ps-org-box {
  padding: 8px 28px;
  border-radius: var(--wp--custom--radius--card);
  background: var(--wp--preset--color--base);
  box-shadow: var(--wp--preset--shadow--scheda);
}
.ps-org-box > * { margin: 0; }
.ps-org-box > :is(h2, h3, h4) { padding: 20px 0 14px; font-size: 1.2rem; font-weight: 700; line-height: 1.3; }
.ps-org-row {
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 16px; align-items: start;
  padding: 14px 0; border-top: 1px solid var(--wp--custom--linea--sottile);
}
.ps-org-row > * { margin: 0; }
.ps-org-row > .is-style-etichetta { padding-top: 3px; line-height: 1.5; }
.ps-org-row > p:not(.is-style-etichetta) { font-size: 1rem; line-height: 1.55; }
@media (max-width: 480px) {
  .ps-org-box { padding: 6px 20px; }
  .ps-org-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* ===== COMPARSA GRADUALE (.ps-reveal) =====
   La classe la mette theme.js, solo sui blocchi che al caricamento sono
   ancora sotto lo schermo (mai su quelli molto alti, né su quelli che ne
   contengono altri con lo stesso effetto); quando entrano prende .is-in. Senza JavaScript
   la classe non c'è e tutto resta visibile. Per dare la comparsa a un altro
   blocco basta aggiungergli a mano la classe ps-reveal dall'editor. */
.ps-reveal.is-wait { opacity: 0; transform: translateY(18px); }
.ps-reveal.is-wait, .ps-reveal.is-in { transition: opacity .7s ease, transform .7s ease; }
.ps-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .ps-reveal.is-wait { opacity: 1; transform: none; transition: none; }
}
@media print {
  .ps-reveal.is-wait { opacity: 1; transform: none; }
}

