/* =========================================================================
   Sifin – Privacy, Cookie e Accessibilità
   ========================================================================= */

:root{
  --sifin-navy:#2c3465;
  --sifin-gold:#FFB000;
  --sifin-gold-text:#96660D;   /* oro leggibile su bianco: 5.0:1 */
  --sifin-grey-text:#6B7185;   /* grigio leggibile su bianco: 4.85:1 */
}

/* ---------- Skip link ---------- */
.sifin-skip-link{
  position:absolute;left:-9999px;top:0;z-index:100001;
  background:var(--sifin-navy);color:#fff;padding:12px 20px;
  font:600 15px/1.2 inherit;text-decoration:none;border-radius:0 0 4px 0;
}
.sifin-skip-link:focus{left:0;outline:3px solid var(--sifin-gold);outline-offset:2px;}

/* ---------- Focus visibile ovunque ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible{
  outline:3px solid var(--sifin-navy);outline-offset:2px;border-radius:2px;
}

/* ---------- Contrasto ---------- */
/* Testo scuro sui pulsanti gialli: bianco su #FFB000 era 1.83:1. */
.btn-primary,
.elementor-button-wrapper .elementor-button,
a.btn.btn-primary,
button.btn-primary,
.houzez-search-button{
  color:var(--sifin-navy) !important;
}
.btn-primary:hover,
.elementor-button-wrapper .elementor-button:hover,
a.btn.btn-primary:hover,
button.btn-primary:hover{ color:var(--sifin-navy) !important; }

/* Micro-titoli e occhielli in oro su fondo chiaro. */
.elementor-widget-heading .elementor-heading-title[style*="rgb(255, 176, 0)"],
.sifin-gold-text{ color:var(--sifin-gold-text) !important; }

/* Grigi troppo chiari: voce di menu attiva e placeholder dei form. */
.current-menu-item > a,
.current_page_item > a{ color:var(--sifin-grey-text) !important; }
::placeholder{ color:var(--sifin-grey-text) !important; opacity:1; }
.form-control::placeholder,.select2-selection__placeholder{ color:var(--sifin-grey-text) !important; }

/* ---------- Rete di sicurezza per le animazioni Elementor ----------
   Le classi di ingresso arrivano corrotte (`faden` invece di `fadeIn`):
   se il JS non gira, il contenuto resterebbe visibility:hidden per sempre. */
.no-js .elementor-invisible{ visibility:visible !important; }

/* ---------- Barra legale nel footer ---------- */
.sifin-legal-bar{
  background:#20264a;color:#fff;padding:14px 20px;font-size:14px;
}
.sifin-legal-bar__wrap{
  max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;gap:12px 32px;
  align-items:center;justify-content:space-between;text-align:left;
}
.sifin-legal-bar__links{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;
}
.sifin-legal-bar__credits,.sifin-legal-bar__id{ margin:0; }
.sifin-legal-bar__id{ flex:1 0 100%; }
.sifin-legal-bar a,.sifin-legal-bar__prefs{
  color:#fff;text-decoration:underline;background:none;border:0;padding:0;
  font:inherit;cursor:pointer;
}
.sifin-legal-bar a:hover,.sifin-legal-bar__prefs:hover{ color:var(--sifin-gold); }

/* ---------- Segnaposto dei contenuti bloccati (mappa) ---------- */
.sifin-blocked{ position:relative;min-height:260px;background:#eef0f5;
  display:flex;align-items:center;justify-content:center; }
.sifin-blocked__inner{ max-width:520px;padding:32px 24px;text-align:center; }
.sifin-blocked__title{ margin:0 0 8px;font-size:18px;font-weight:700;color:var(--sifin-navy); }
.sifin-blocked__text{ margin:0 0 16px;font-size:15px;line-height:1.6;color:#4a4f63; }
.sifin-blocked__btn{
  background:var(--sifin-gold);color:var(--sifin-navy);border:0;
  padding:12px 22px;font:600 15px/1 inherit;cursor:pointer;border-radius:4px;
}
.sifin-blocked__links{ margin:12px 0 0;font-size:13px; }
.sifin-blocked__links a{ color:var(--sifin-gold-text); }
.sifin-blocked__frame{ display:none; }
.sifin-blocked.is-allowed{ display:block;min-height:0;background:none; }
.sifin-blocked.is-allowed .sifin-blocked__inner{ display:none; }
.sifin-blocked.is-allowed .sifin-blocked__frame{ display:block;width:100%;min-height:400px;border:0; }

/* ---------- Banner cookie ---------- */
.sifin-cc{
  position:fixed;inset:auto 0 0 0;z-index:100000;
  background:#fff;box-shadow:0 -6px 30px rgba(16,20,40,.22);
  border-top:3px solid var(--sifin-gold);
}
.sifin-cc[hidden]{ display:none; }
.sifin-cc__box{ max-width:1100px;margin:0 auto;padding:24px 20px; }
.sifin-cc__title{ margin:0 0 8px;font-size:20px;font-weight:700;color:var(--sifin-navy);line-height:1.3; }
.sifin-cc__text{ margin:0;font-size:15px;line-height:1.65;color:#3f4458;max-width:78ch; }
.sifin-cc__text a{ color:var(--sifin-navy);text-decoration:underline; }
.sifin-cc__prefs{ margin:18px 0 0;border-top:1px solid #e6e8f0;padding-top:16px; }
.sifin-cc__prefs[hidden]{ display:none; }
.sifin-cc__row{ display:flex;gap:12px;align-items:flex-start;margin:0 0 12px;font-size:14.5px;line-height:1.6;color:#3f4458;cursor:pointer; }
.sifin-cc__row input{ margin-top:4px;width:18px;height:18px;flex:0 0 auto; }
.sifin-cc__actions{ margin-top:20px;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end; }
.sifin-cc__btn{
  font:600 15px/1 inherit;padding:13px 26px;border-radius:4px;cursor:pointer;border:2px solid var(--sifin-navy);
}
.sifin-cc__btn--ghost{ background:#fff;color:var(--sifin-navy); }
.sifin-cc__btn--ghost:hover{ background:#f1f2f7; }
.sifin-cc__btn--accept,.sifin-cc__btn--save{ background:var(--sifin-navy);color:#fff; }
.sifin-cc__btn--accept:hover,.sifin-cc__btn--save:hover{ background:#1d2348; }
.sifin-cc__btn[hidden]{ display:none; }

@media (max-width:640px){
  .sifin-cc__box{ padding:20px 16px; }
  .sifin-cc__actions{ justify-content:stretch; }
  .sifin-cc__btn{ flex:1 1 100%; }
}
