/* ==== Header ==== */
.fc-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid var(--line);
}

.fc-header__inner {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 48px);
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.fc-header__brand {
  text-decoration: none;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 12px;
}

.fc-header__logo {
  height: clamp(60px, 5vw, 70px);
  width: auto;
  display: block;
}

.fc-nav-desktop {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.6vw, 26px);
}

.fc-nav__link {
  text-decoration: none;
  font: 300 var(--fs-16, 16px)/1 var(--mono);
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 6px 0;
  border-bottom: 2px solid transparent;
}

.fc-nav__link:hover,
.fc-nav__link[data-active="true"] {
  color: var(--ink);
  border-bottom-color: var(--accent);
}

.fc-nav__cta {
  text-decoration: none;
  font: 700 var(--fs-16, 16px)/1 var(--sans);
  letter-spacing: 0.01em;
  color: var(--bg);
  background: var(--accent);
  padding: 11px 18px;
  border-radius: 3px;
}

.fc-nav__cta:hover {
  background: var(--accent-deep);
}

.fc-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: none;
  border: 1px solid var(--line);
  border-radius: 3px;
  cursor: pointer;
  color: var(--ink);
  font: 700 var(--fs-20, 20px)/1 var(--sans);
}

/* Icona burger: tre linee che diventano una X a menu aperto */
.fc-burger__icon,
.fc-burger__icon::before,
.fc-burger__icon::after {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform 0.2s ease, background 0.2s ease, top 0.2s ease;
}
.fc-burger__icon {
  position: relative;
}
.fc-burger__icon::before,
.fc-burger__icon::after {
  content: "";
  position: absolute;
  left: 0;
}
.fc-burger__icon::before { top: -6px; }
.fc-burger__icon::after { top: 6px; }
.fc-burger[aria-expanded="true"] .fc-burger__icon {
  background: transparent;
}
.fc-burger[aria-expanded="true"] .fc-burger__icon::before {
  top: 0;
  transform: rotate(45deg);
}
.fc-burger[aria-expanded="true"] .fc-burger__icon::after {
  top: 0;
  transform: rotate(-45deg);
}
@media (prefers-reduced-motion: reduce) {
  .fc-burger__icon,
  .fc-burger__icon::before,
  .fc-burger__icon::after { transition: none; }
}

/* Overlay fullscreen, non in flusso: prima era un pannello "in linea" dentro
   l'header, quindi aprendolo spingeva giu' il contenuto della pagina e non
   copriva tutto lo schermo (si vedeva il sito sotto). Ora e' position:fixed
   sotto l'header, alto quanto il resto del viewport, con sfondo pieno. */
.fc-mobile-panel {
  position: fixed;
  top: 89px; /* altezza header (88px) + il suo border-bottom (1px) */
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px clamp(20px, 4vw, 48px) 16px;
  background: var(--bg);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.fc-mobile-panel[hidden] {
  display: none;
}

.fc-mobile-panel a {
  text-decoration: none;
  font: 700 var(--fs-16, 16px)/1 var(--mono);
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.fc-mobile-panel a[data-active="true"] {
  color: var(--accent-deep);
}

@media (max-width: 860px) {
  .fc-nav-desktop { display: none !important; }
  .fc-burger { display: inline-flex !important; }
}

@media (min-width: 861px) {
  .fc-mobile-panel { display: none !important; }
}

/* ==== Footer ==== */
.fc-footer {
  background: var(--ink);
  color: var(--bg);
}

.fc-footer__inner {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: clamp(48px, 6vw, 88px) clamp(20px, 4vw, 48px);
}

.fc-footer__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: clamp(36px, 4vw, 56px);
}

.fc-footer__brand,
.fc-footer__newsletter {
  max-width: 340px;
}

.fc-footer__logo {
  height: clamp(48px, 5.2vw, 64px);
  width: auto;
  display: block;
  margin-bottom: 14px;
}

.fc-footer__desc {
  font: 400 var(--fs-16, 16px)/1.6 var(--sans);
  color: color-mix(in srgb, var(--bg) 80%, transparent);
  margin: 0 0 20px;
  text-align: left;
}

.fc-footer__newsletter-cta {
  display: inline-block;
  margin-top: 14px;
  cursor: pointer;
  font: 700 var(--fs-16, 16px)/1 var(--sans);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--bg);
  border-radius: 3px;
  padding: 13px 22px;
}

.fc-footer__newsletter-cta:hover {
  background: transparent;
  color: var(--bg);
}

/* Popup newsletter (<dialog> nativo: Esc e focus gestiti dal browser) */
.fc-nl-popup {
  width: min(520px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: var(--bg);
  color: var(--ink);
  overflow: auto;
}

.fc-nl-popup::backdrop {
  background: rgba(24, 22, 18, 0.6);
}

.fc-nl-popup__box {
  position: relative;
  padding: clamp(28px, 5vw, 44px);
}

.fc-nl-popup__close {
  position: absolute;
  top: 10px;
  right: 14px;
  cursor: pointer;
  background: none;
  border: 0;
  font: 400 var(--fs-32, 32px)/1 var(--sans);
  color: var(--ink-soft);
}

.fc-nl-popup__close:hover {
  color: var(--ink);
}

.fc-nl-popup__title {
  margin: 0 0 10px;
  font: 400 clamp(var(--fs-24, 24px), 3vw, var(--fs-34, 34px))/1.15 var(--sans);
  letter-spacing: -0.02em;
  text-align: center;
}

.fc-nl-popup__text {
  margin: 0 0 20px;
  font: 400 var(--fs-16, 16px)/1.6 var(--sans);
  color: var(--ink-soft);
  text-align: center;
}

/* Alternativa WhatsApp sotto il form del popup */
.fc-nl-popup__alt {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
}
.fc-nl-popup__alt-sep {
  display: flex;
  align-items: center;
  gap: 14px;
  font: 700 var(--fs-13, 13px)/1 var(--mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.fc-nl-popup__alt-sep::before,
.fc-nl-popup__alt-sep::after {
  content: "";
  flex: 1;
  border-top: 1px solid var(--line);
}
.fc-nl-popup__wa {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font: 700 var(--fs-16, 16px)/1 var(--sans);
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--ink);
  border-radius: 3px;
  padding: 14px 26px;
  transition: background 0.15s ease, color 0.15s ease;
}
.fc-nl-popup__wa:hover {
  background: var(--ink);
  color: var(--bg);
}

/* Form newsletter Brevo (plugin Brevo/Sendinblue: form.sib_signup_form).
   Stesso stile dei form del sito: popup su sfondo chiaro, footer su scuro. */
.sib_signup_form {
  margin: 0;
  font-family: var(--sans);
}
.sib_signup_form .sib_signup_box_inside_1,
.sib_signup_form [class^="sib_signup_box_inside_"] {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sib_signup_form p {
  margin: 0;
  font: 700 var(--fs-11, 11px)/1.2 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
}
.sib_signup_form input[type="email"],
.sib_signup_form input[type="text"],
.sib_signup_form input[type="tel"],
.sib_signup_form select {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 13px 16px;
  box-sizing: border-box;
  font: 400 var(--fs-15, 15px)/1.5 var(--sans);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 3px;
  transition: border-color 0.15s ease;
}
.sib_signup_form input:focus,
.sib_signup_form select:focus {
  outline: none;
  border-color: var(--accent);
}
.sib_signup_form input::placeholder {
  color: var(--ink-soft);
  opacity: 0.7;
}
.sib_signup_form input[type="checkbox"] {
  accent-color: var(--accent);
  margin-right: 8px;
}
.sib_signup_form input[type="submit"],
.sib_signup_form .sib-default-btn {
  display: inline-block;
  width: auto;
  cursor: pointer;
  font: 700 var(--fs-16, 16px)/1 var(--sans);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bg);
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 3px;
  padding: 14px 26px;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.sib_signup_form input[type="submit"]:hover,
.sib_signup_form .sib-default-btn:hover {
  background: var(--ink);
  border-color: var(--ink);
}
.sib_signup_form .sib_loader {
  text-align: center;
}
.sib_signup_form .sib_loader img {
  width: 24px;
  height: 24px;
}
/* Messaggi di esito (successo / errore): sovrascrivono i colori inline del plugin */
.sib_signup_form p.sib-alert-message {
  padding: 12px 16px !important;
  margin: 0 !important;
  border-radius: 3px !important;
  border: 1px solid var(--line) !important;
  background: var(--bg-2) !important;
  color: var(--ink) !important;
  font: 400 var(--fs-15, 15px)/1.5 var(--sans) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.sib_signup_form p.sib-alert-message-error {
  border-color: var(--fc-error) !important;
  color: var(--fc-error) !important;
}
.sib_signup_form p.sib-alert-message-success {
  border-color: var(--ink) !important;
}

/* Variante sul footer scuro */
.fc-footer__newsletter .sib_signup_form p {
  color: color-mix(in srgb, var(--bg) 85%, transparent);
}
.fc-footer__newsletter .sib_signup_form input[type="email"],
.fc-footer__newsletter .sib_signup_form input[type="text"] {
  color: var(--bg);
  background: transparent;
  border-color: color-mix(in srgb, var(--bg) 40%, transparent);
}
.fc-footer__newsletter .sib_signup_form input::placeholder {
  color: color-mix(in srgb, var(--bg) 60%, transparent);
}
.fc-footer__newsletter .sib_signup_form input:focus {
  border-color: var(--bg);
}
.fc-footer__newsletter .sib_signup_form input[type="submit"],
.fc-footer__newsletter .sib_signup_form .sib-default-btn {
  color: var(--ink);
  background: var(--bg);
  border-color: var(--bg);
}
.fc-footer__newsletter .sib_signup_form input[type="submit"]:hover,
.fc-footer__newsletter .sib_signup_form .sib-default-btn:hover {
  color: var(--bg);
  background: transparent;
}
.fc-footer__newsletter .sib_signup_form p.sib-alert-message {
  background: transparent !important;
  color: var(--bg) !important;
  border-color: color-mix(in srgb, var(--bg) 40%, transparent) !important;
}

.fc-footer__whatsapp {
  display: inline-block;
  margin-top: 14px;
  text-decoration: none;
  font: 700 var(--fs-16, 16px)/1 var(--sans);
  color: var(--bg);
  border: 1px solid color-mix(in srgb, var(--bg) 45%, transparent);
  border-radius: 3px;
  padding: 13px 22px;
}

.fc-footer__whatsapp:hover {
  border-color: var(--bg);
}

.fc-footer__address {
  font: 400 var(--fs-16, 16px)/1.7 var(--sans);
  color: color-mix(in srgb, var(--bg) 72%, transparent);
}

.fc-footer__address-note {
  font: 600 var(--fs-16, 16px)/1.4 var(--mono);
  color: var(--accent-2);
}

.fc-footer__links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 20px;
}

.fc-footer__naviga,
.fc-footer__contatti {
  max-width: 300px;
}

.fc-footer__eyebrow {
  font: 700 var(--fs-16, 16px)/1 var(--mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--bg) 55%, transparent);
  margin-bottom: 8px;
}

.fc-footer__contatti .fc-footer__col-title {
  margin-bottom: 16px;
}

.fc-footer__contatti-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font: 400 var(--fs-16, 16px)/1.6 var(--sans);
  color: color-mix(in srgb, var(--bg) 78%, transparent);
}

.fc-footer__contatti-list a {
  color: inherit;
  text-decoration: none;
}

.fc-footer__contatti-list a:hover {
  color: var(--bg);
}

.fc-footer__col-title {
  font: 400 var(--fs-16, 16px)/1 var(--mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-2);
  margin-bottom: 16px;
}

.fc-footer__col-list {
  display: flex;
  flex-direction: column;
  gap: 11px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fc-footer__col-list li {
  list-style: none;
}

.fc-footer__col-list a {
  text-decoration: none;
  font: 400 var(--fs-16, 16px) var(--sans);
  color: color-mix(in srgb, var(--bg) 82%, transparent);
}

.fc-footer__col-list a:hover {
  color: var(--bg);
}

.fc-footer__col-list-disabled {
  font: 400 var(--fs-16, 16px) var(--sans);
  color: color-mix(in srgb, var(--bg) 52%, transparent);
}

.fc-newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fc-newsletter-form input {
  font: 400 var(--fs-15, 15px) var(--sans);
  color: var(--bg);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--bg) 35%, transparent);
  border-radius: 3px;
  padding: 13px 14px;
}

.fc-newsletter-form button {
  font: 700 var(--fs-16, 16px) var(--sans);
  letter-spacing: 0.01em;
  color: var(--ink);
  background: var(--bg);
  border: none;
  border-radius: 3px;
  padding: 13px;
  cursor: pointer;
}

.fc-footer__form-note {
  font: 400 var(--fs-16, 16px)/1.5 var(--sans);
  color: color-mix(in srgb, var(--bg) 55%, transparent);
}

.fc-footer__bottom {
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: 26px;
  border-top: 1px solid color-mix(in srgb, var(--bg) 18%, transparent);
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  align-items: center;
  justify-content: space-between;
}

.fc-footer__copy {
  font: 400 var(--fs-16, 16px) var(--sans);
  color: color-mix(in srgb, var(--bg) 62%, transparent);
}

.fc-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  font: 400 var(--fs-16, 16px) var(--sans);
  color: color-mix(in srgb, var(--bg) 55%, transparent);
}

.fc-footer__proto {
  font: 400 var(--fs-16, 16px) var(--mono);
  color: color-mix(in srgb, var(--bg) 45%, transparent);
}

.fc-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

/* ==== Filtri pillola (Programma) ==== */
.fc-filter-pill {
  font: 600 var(--fs-16, 16px) var(--sans);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 9px 18px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.fc-filter-pill:hover {
  border-color: var(--ink);
}

.fc-filter-pill.is-active {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

/* ==== Barra filtri (Filtra / chip attivo / Pulisci) - Programma e Archivio Eventi ==== */
.fc-filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.fc-archivio-eventi .fc-filter-bar {
  margin: 20px 0 8px;
}
.fc-filter-bar + .fc-filter-group {
  margin-top: 16px;
}
.fc-filter-group.is-collapsed {
  display: none;
}
.fc-filter-toggle,
.fc-filter-clear,
.fc-filter-chip {
  font: 600 var(--fs-16, 16px) var(--sans);
  border-radius: 999px;
  padding: 9px 18px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.fc-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--ink);
}
.fc-filter-toggle::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.15s ease;
}
.fc-filter-toggle[aria-expanded="true"]::after {
  transform: translateY(2px) rotate(225deg);
}
.fc-filter-toggle:hover {
  background: var(--ink);
  color: var(--bg);
}
.fc-filter-chips {
  display: contents;
}
.fc-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--bg);
  background: var(--ink);
  border: 1px solid var(--ink);
}
.fc-filter-chip span:last-child {
  font-size: var(--fs-20, 20px);
  line-height: 1;
}
.fc-filter-chip:hover {
  background: var(--accent);
  border-color: var(--accent);
}
.fc-filter-clear {
  color: var(--ink-soft);
  background: none;
  border: 0;
  padding-left: 6px;
  padding-right: 6px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.fc-filter-clear:hover {
  color: var(--ink);
}
.fc-filter-clear[hidden] {
  display: none;
}

/* ==== Skip link (accessibilita': visibile solo al focus da tastiera) ==== */
.fc-skip-link {
  position: absolute;
  top: -48px;
  left: 8px;
  z-index: 100;
  background: var(--ink);
  color: var(--bg);
  font: 600 var(--fs-16, 16px) var(--sans);
  padding: 10px 16px;
  border-radius: 6px;
  text-decoration: none;
  transition: top 0.15s ease;
}

.fc-skip-link:focus {
  top: 8px;
}

/* ==== Dropdown "Programma 2026" ==== */
.fc-nav__dropdown {
  position: relative;
  display: flex;
  align-items: center;
  /* bridge invisibile: estende l'area hover del trigger fino al pannello,
     cosi' il mouse non "esce" dall'hover attraversando il gap verticale */
  padding-bottom: 14px;
  margin-bottom: -14px;
}

.fc-nav__link--dropdown {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fc-nav__caret {
  font-size: var(--fs-16, 16px);
  transform: translateY(1px);
}

.fc-nav__dropdown-panel {
  display: none;
  position: absolute;
  /* NB: il "ponte" hover invisibile su .fc-nav__dropdown (padding-bottom
     14px + margin-bottom -14px) copre gia' 14px sotto il trigger. "top:100%"
     qui e' relativo al padding-box del genitore (position:relative), quindi
     include gia' quei 14px: niente margin-top aggiuntivo, altrimenti il gap
     reale (28px) supera l'area coperta dal ponte (14px) e il mouse "esce"
     dall'hover prima di arrivare al pannello, facendolo sparire subito. */
  top: 100%;
  left: 0;
  width: max-content;
  min-width: 100%;
  max-width: calc(100vw - 40px);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  padding: 6px;
  z-index: 60;
}

.fc-nav__dropdown:hover .fc-nav__dropdown-panel,
.fc-nav__dropdown:focus-within .fc-nav__dropdown-panel {
  display: block;
}

.fc-nav__dropdown-panel a {
  display: block;
  text-decoration: none;
  font: 300 var(--fs-16, 16px)/1 var(--mono);
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 8px 10px;
  border-radius: 4px;
  white-space: nowrap;
}

.fc-nav__dropdown-panel a:hover {
  background: var(--bg-2);
  color: var(--ink);
}

.fc-mobile-panel__sub {
  padding-left: 18px !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  font-size: var(--fs-16, 16px) !important;
  text-transform: uppercase !important;
  color: color-mix(in srgb, var(--ink-soft) 80%, transparent) !important;
}

/* ==== Contatti nel footer ==== */
.fc-footer__phone {
  color: color-mix(in srgb, var(--bg) 72%, transparent);
  text-decoration: none;
  font: 400 var(--fs-16, 16px)/1.7 var(--sans);
}

.fc-footer__phone:hover {
  color: var(--bg);
}

.fc-footer__social {
  display: flex;
  gap: 16px;
  margin-top: 14px;
}

.fc-footer__social a {
  font: 600 var(--fs-16, 16px) var(--sans);
  color: var(--accent-2);
  text-decoration: none;
}

.fc-footer__social a:hover {
  color: var(--bg);
}

/* ==== Contenuto in attesa di materiale definitivo ==== */
.fc-todo-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/10;
  background: repeating-linear-gradient(
    45deg,
    var(--bg-2),
    var(--bg-2) 10px,
    var(--bg) 10px,
    var(--bg) 20px
  );
  border: 1px dashed var(--line);
  border-radius: 4px;
  color: var(--ink-soft);
  font: 600 var(--fs-16, 16px) var(--mono);
  text-align: center;
  padding: 12px;
}

.fc-todo-text {
  border: 1px dashed var(--line);
  border-radius: 4px;
  padding: 16px;
  color: var(--ink-soft);
  font: 400 var(--fs-16, 16px)/1.6 var(--sans);
  background: color-mix(in srgb, var(--bg-2) 60%, transparent);
}

/* CTA header */
.fc-header__cta {
  display: inline-block;
  text-decoration: none;
  white-space: nowrap;
  font: 700 var(--fs-14, 14px)/1 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bg);
  background: var(--accent);
  padding: 12px 20px;
  border-radius: 3px;
}
.fc-header__cta:hover {
  background: var(--ink);
}
.fc-mobile-panel .fc-header__cta--mobile {
  display: block;
  text-align: center;
  margin: 16px 0 0;
  color: var(--bg);
  padding: 14px 20px;
  border-bottom: 0;
  font: 700 var(--fs-14, 14px)/1 var(--mono);
}

/* ==== Correzioni mobile (check UX) ==== */
@media (max-width: 719px) {
  /* 2. Campi form a 16px: evita lo zoom automatico di Safari iOS al focus */
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
  textarea,
  select {
    font-size: 16px !important;
  }

  /* 3. Link del footer con area di tocco adeguata */
  .fc-footer__col-list a,
  .fc-footer__contatti-list a,
  .fc-footer__social a {
    display: inline-block;
    padding: 10px 0;
  }
}

/* ==== CTA pulsante ====
   Maiuscolo su desktop e mobile. 100% di larghezza e testo centrato SOLO
   da mobile (sotto i 720px). Restano a larghezza naturale i pulsanti in
   header/nav e quelli in fasce o righe a tutta larghezza (fascia CTA,
   WhatsApp); la hero ha il 100% con un tetto. I link testuali (sottolineati,
   senza sfondo) non sono pulsanti e non cambiano. */
body .fc-testo-immagine__cta,
body .fc-blocchi-testo__cta,
body .fc-contatti-mappa__cta,
body .fc-premio__cta,
body .fc-footer__newsletter-cta,
body .fc-footer__whatsapp,
body .fc-area__cta,
body .fc-progetto__cta,
body .fc-edizione-evidenza__cta,
body .fc-collabora__cta,
body .fc-collabora-opz__item-cta,
body .fc-evento__prenota-btn,
body .fc-evento__cta,
body .fc-progetti__evidenza-cta,
body .fc-programma__evidenza-cta,
body .fc-hero__cta,
body .fc-cta__btn,
body .fc-whatsapp-cta__btn,
body .fc-nav__cta,
body .fc-header__cta {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

@media (max-width: 719px) {
  body .fc-testo-immagine__cta,
  body .fc-blocchi-testo__cta,
  body .fc-contatti-mappa__cta,
  body .fc-premio__cta,
  body .fc-footer__newsletter-cta,
  body .fc-footer__whatsapp,
  body .fc-area__cta,
  body .fc-progetto__cta,
  body .fc-edizione-evidenza__cta,
  body .fc-collabora__cta,
  body .fc-collabora-opz__item-cta,
  body .fc-evento__prenota-btn,
  body .fc-evento__cta,
  body .fc-progetti__evidenza-cta,
  body .fc-programma__evidenza-cta,
  body .fc-hero__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
  body .fc-hero__cta {
    max-width: 360px;
  }
  .sib_signup_form input[type="submit"],
  .sib_signup_form .sib-default-btn {
    display: block;
    width: 100%;
    text-align: center;
  }
  body .fc-cta__btn,
  body .fc-whatsapp-cta__btn,
  body .fc-nav__cta,
  body .fc-header__cta {
    text-align: center;
  }
  /* CTA a tutta larghezza dentro righe flex: una sotto l'altra */
  body .fc-contatti-mappa__cta-row > *,
  body .fc-premio__cta-row > *,
  body .fc-progetti__evidenza-cta-row > *,
  body .fc-edizione-evidenza__cta-row > *,
  body .fc-programma__evidenza-cta-row > * {
    flex: 1 1 100%;
  }
}
