/*
 * =====================================================
 * ITALIA OLISTICA — CSS GLOBALE
 * Copre: Homepage, Pagina Pubblica, Tutti i Servizi
 * Versione: 1.0
 * =====================================================
 */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&family=DM+Sans:wght@400;500;600;700&display=swap');

/* ── VARIABILI GLOBALI ─────────────────────────── */
:root {
  --io-primary: #324864;
  --io-accent:  #328d90;
  --io-mint:    #e0f3f4;
  --io-gold:    #c9943a;
  --io-gold-lt: #fdf3e3;
  --io-ink:     #1c2d3d;
  --io-mist:    #f4f7f9;
  --io-border:  #c8d8e0;
  --io-text:    #324864;
  --io-sub:     #5a7285;
}

/* ── PERFORMANCE ───────────────────────────────── */
.prossimi-eventi,
.corsi-attivita,
.partners {
  content-visibility: auto;
  contain-intrinsic-size: 0 1000px;
}

/* =====================================================
   HOMEPAGE
   ===================================================== */
.prossimi-eventi, .corsi-attivita, .partners { content-visibility: auto; contain-intrinsic-size: 0 1000px; }

/* ── VARIABILI ────────────────────────────────── */
.io-home * { box-sizing: border-box; }


/* ── HERO INTRO ───────────────────────────────── */
.io-home-hero {
  position: relative;
  background: var(--io-primary);
  border-radius: 20px;
  padding: 3rem 2.5rem 2.5rem;
  margin-bottom: 2.5rem;
  overflow: hidden;
  color: #fff;
}
.io-home-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 95% 10%, rgba(50,141,144,.5) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 5% 90%, rgba(201,148,58,.1) 0%, transparent 55%);
  pointer-events: none;
}
.io-home-hero-inner { position: relative; z-index: 1; }
.io-home-eyebrow {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(255,255,255,.6);
  margin-bottom: .85rem;
}
.io-home-eyebrow span { color: #c9943a; }
.io-home-hero h2 {
  font-size: clamp(1.7rem, 3.5vw, 2.4rem);
  font-weight: 800; line-height: 1.2; color: #fff;
  margin: 0 0 1rem; font-family: inherit;
}
.io-home-hero h2 em { font-style: italic; color: #a8d5e8; }
.io-home-hero p {
  font-size: 1rem; line-height: 1.7;
  color: rgba(255,255,255,.82); max-width: 600px; margin: 0 0 .6rem;
}
.io-home-hero strong { color: #fff; font-weight: 700; }
.io-home-hero em { color: rgba(255,255,255,.9); font-style: italic; }
.io-home-hero-deco {
  position: absolute; right: 2rem; top: 50%; transform: translateY(-50%);
  font-size: 7rem; opacity: .06; user-select: none; pointer-events: none; line-height: 1;
}
.io-home-cta-wrap { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.75rem; }
.io-home-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; color: var(--io-primary);
  font-weight: 700; font-size: .9rem; padding: 10px 20px;
  border-radius: 8px; text-decoration: none;
  transition: background .2s, color .2s;
}
.io-home-cta:hover { background: var(--io-mint); }
.io-home-cta-outline {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; color: #fff;
  font-weight: 600; font-size: .9rem; padding: 10px 20px;
  border-radius: 8px; text-decoration: none;
  border: 1.5px solid rgba(255,255,255,.4);
  transition: background .2s, border-color .2s;
}
.io-home-cta-outline:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.7); }

/* ── SECTION HEADER ───────────────────────────── */
.io-section-hd {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: .75rem; padding-bottom: .75rem;
  border-bottom: 2px solid var(--io-border);
}
.io-section-hd h2 {
  font-size: 1.25rem; font-weight: 800;
  color: var(--io-primary); margin: 0; line-height: 1.3; font-family: inherit;
}
.io-section-hd-icon { font-size: 1.4rem; flex-shrink: 0; }
.io-section-intro {
  font-size: .97rem; line-height: 1.7;
  color: var(--io-sub); margin-bottom: 1.25rem; max-width: 680px;
}
.io-section-intro strong { color: var(--io-primary); }
.io-section-intro em { color: var(--io-accent); font-style: normal; font-weight: 600; }
.io-section-wrap {
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
}
.io-section-wrap:not(:last-child) { border-bottom: 1px solid var(--io-border); }


/* ── CTA SEZIONE ──────────────────────────────── */
.io-section-cta-wrap { text-align: center; margin-top: 1.25rem; }
.io-section-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--io-primary); color: #fff;
  font-weight: 700; font-size: .88rem; padding: 10px 22px;
  border-radius: 8px; text-decoration: none;
  transition: background .2s;
}
.io-section-cta:hover { background: var(--io-accent); }
.io-section-cta::after { content: '→'; }

/* ── RESPONSIVE ───────────────────────────────── */
@media (max-width: 620px) {
  .io-home-hero { padding: 2rem 1.5rem 1.75rem; }
  .io-home-hero-deco { display: none; }
  .io-home-cta-wrap { flex-direction: column; }
}

/* =====================================================
   PAGINA PUBBLICA
   ===================================================== */
/* =============================================
   ITALIA OLISTICA — PAGINA PUBBLICA
   Design: naturale, editoriale, fresco
   Font: Playfair Display + DM Sans
   ============================================= */
:root {
  --io-forest:   #324864;   /* blu notte — primario */
  --io-jade:     #328d90;   /* teal — accento */
  --io-mint:     #e0f3f4;   /* teal chiarissimo — sfondi attivi */
  --io-gold:     #c9943a;
  --io-gold-lt:  #fdf3e3;
  --io-ink:      #1c2d3d;
  --io-mist:     #f4f7f9;
  --io-border:   #c8d8e0;
  --io-text:     #324864;
  --io-sub:      #5a7285;
}

.io-pub * { box-sizing: border-box; }
/* Reset margin/padding solo sugli elementi nostri, non sul form del plugin */
.io-hero, .io-hero *,
.io-steps, .io-steps *,
.io-question,
.io-tabs, .io-tabs *,
.io-placeholder, .io-placeholder *,
.io-panel, .io-panel *,
.io-form-header, .io-form-header *,
.io-form-body,
.io-support, .io-support * { margin: 0; padding: 0; }
.io-pub {
  font-family: 'DM Sans', sans-serif;
  color: var(--io-text);
  max-width: 860px;
  margin: 0 auto 4rem;
}
/* Il form sfora il wrapper fino a 1170px (larghezza tema) */
.io-pub .io-form-section {
  margin-left: -155px;
  margin-right: -155px;
}
@media (max-width: 1200px) {
  .io-pub .io-form-section {
    margin-left: calc((100vw - 860px) / -2);
    margin-right: calc((100vw - 860px) / -2);
  }
}
@media (max-width: 900px) {
  .io-pub .io-form-section {
    margin-left: -1rem;
    margin-right: -1rem;
  }
}

/* ── HERO ──────────────────────────────────── */
.io-hero {
  position: relative;
  background: var(--io-forest);
  border-radius: 20px;
  padding: 3rem 2.5rem 2.5rem;
  margin-bottom: 2.5rem;
  overflow: hidden;
}
.io-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 95% 10%, rgba(50,141,144,.55) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 5% 90%, rgba(201,148,58,.12) 0%, transparent 55%);
  pointer-events: none;
}
.io-hero-inner { position: relative; z-index: 1; }
.io-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: 1rem;
}
.io-hero-eyebrow span { color: var(--io-gold); }
.io-hero h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 .85rem;
}
.io-hero h2 em {
  font-style: italic;
  color: #a8d5e8;
}
.io-hero-sub {
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255,255,255,.78);
  max-width: 520px;
  margin-bottom: 1.6rem;
}
.io-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.io-trust-badge {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  font-weight: 600;
  color: rgba(255,255,255,.85);
}
.io-trust-badge::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3.5 3.5 6.5-7' stroke='%23a8d5e8' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-color: rgba(168,213,232,.3);
  border-color: #a8d5e8;
  background-size: 10px;
  background-repeat: no-repeat;
  background-position: center;
}
/* hero deco leaf */
.io-hero-deco {
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 7rem;
  opacity: .07;
  user-select: none;
  pointer-events: none;
  line-height: 1;
}

/* ── STEP INDICATOR ─────────────────────────── */
.io-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 1.4rem;
}
.io-step-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--io-sub);
  letter-spacing: .03em;
}
.io-step-item.active { color: var(--io-forest); }
.io-step-item.done { color: var(--io-jade); }
.io-step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2px solid var(--io-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  background: #fff;
  transition: all .2s;
}
.io-step-item.active .io-step-num {
  border-color: var(--io-forest);
  background: var(--io-forest);
  color: #fff;
}
.io-step-item.done .io-step-num {
  border-color: var(--io-jade);
  background: var(--io-jade);
  color: #fff;
  font-size: 14px;
}
.io-step-item.done .io-step-num::after { content: '✓'; }
.io-step-item.done .io-step-text::after { content: ' ✓'; display:none; }
.io-step-line {
  flex: 1;
  height: 2px;
  background: var(--io-border);
  margin: 0 10px;
  transition: background .3s;
}
.io-step-line.done { background: var(--io-jade); }

/* ── QUESTION LABEL ─────────────────────────── */
.io-question {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--io-ink);
  margin-bottom: 1rem;
}

/* ── MACRO TABS ─────────────────────────────── */
.io-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 1.75rem;
}
.io-tab {
  position: relative;
  background: #fff;
  border: 2px solid var(--io-border);
  border-radius: 16px;
  padding: 1.4rem 1rem 1.15rem;
  cursor: pointer;
  font-family: inherit;
  text-align: center;
  transition: border-color .2s, box-shadow .2s, transform .15s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.io-tab:hover,
.io-tab.active {
  border-color: var(--io-forest);
  background: var(--io-mint);
  box-shadow: 0 6px 24px rgba(50,72,100,.14);
  transform: translateY(-2px);
}
.io-tab:hover .io-tab-name,
.io-tab.active .io-tab-name { color: var(--io-forest); }
.io-tab:hover .io-tab-count,
.io-tab.active .io-tab-count { color: var(--io-sub); }
.io-tab:hover .io-tab-icon,
.io-tab.active .io-tab-icon { transform: scale(1.12); }
.io-tab-icon {
  font-size: 2rem;
  line-height: 1;
  transition: transform .2s;
}
.io-tab-name {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--io-text);
  line-height: 1.25;
}
.io-tab-count {
  font-size: 11px;
  color: var(--io-sub);
  font-weight: 500;
}
/* active indicator dot */
.io-tab.active::after {
  content: '';
  position: absolute;
  bottom: -7px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 14px;
  background: var(--io-forest);
  border: 2px solid #fff;
  border-radius: 50%;
}

/* ── PLACEHOLDER ────────────────────────────── */
.io-placeholder {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--io-sub);
  font-size: .95rem;
  font-weight: 500;
  border: 2px dashed var(--io-border);
  border-radius: 16px;
  background: var(--io-mist);
  animation: io-breath 3s ease-in-out infinite;
}
.io-placeholder.hidden { display: none; }
.io-ph-arrow { font-size: 1.5rem; display: block; margin-bottom: .5rem; animation: io-bob .9s ease-in-out infinite; }
@keyframes io-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
@keyframes io-breath { 0%,100%{opacity:.55} 50%{opacity:1} }

/* ── PANELS ─────────────────────────────────── */
.io-panel { display: none; }
.io-panel.active {
  display: block;
  animation: io-fadein .25s ease;
}
@keyframes io-fadein {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.io-panel-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--io-sub);
  margin-bottom: .6rem;
  display: flex;
  align-items: center;
  gap: 8px;
}
.io-panel-label::before,
.io-panel-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--io-border);
}

/* ── CARDS ──────────────────────────────────── */
.io-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 14px;
  margin-bottom: 2rem;
}
.io-card {
  background: #fff;
  border: 2px solid var(--io-border);
  border-radius: 16px;
  padding: 1.6rem 1.1rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  text-decoration: none;
  transition: border-color .2s, background .2s, box-shadow .2s, transform .18s;
  cursor: pointer;
}
.io-card:hover {
  border-color: var(--io-forest);
  background: var(--io-mint);
  box-shadow: 0 6px 24px rgba(50,72,100,.14);
  transform: translateY(-2px);
}
.io-card-ico {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--io-mint);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  transition: background .2s, transform .2s;
  flex-shrink: 0;
}
.io-card:hover .io-card-ico {
  background: var(--io-mint);
}
.io-card-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--io-ink);
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.25;
}
.io-card:hover .io-card-title { color: var(--io-forest); }
.io-card-desc {
  font-size: 12.5px;
  color: var(--io-sub);
  line-height: 1.4;
}
.io-card-cta {
  margin-top: auto;
  margin-top: .6rem;
  font-size: 12px;
  font-weight: 700;
  color: var(--io-forest);
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 20px;
  background: transparent;
  border: 2px solid transparent;
  transition: background .2s, color .2s, border-color .2s;
}
.io-card:hover .io-card-cta {
  background: var(--io-forest);
  color: #fff;
  border-color: var(--io-forest);
}
.io-card-cta::after { content: '→'; }

/* disabled card */
.io-card.disabled {
  opacity: .35;
  pointer-events: none;
  border-style: dashed;
}

/* ── SUPPORT STRIP ──────────────────────────── */
.io-support {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: .5rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--io-border);
}
.io-sup-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--io-mist);
  border: 1.5px solid var(--io-border);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  text-decoration: none;
  transition: border-color .2s, background .2s;
}
.io-sup-card:hover {
  border-color: var(--io-jade);
  background: #fff;
}
.io-sup-icon {
  font-size: 1.4rem;
  flex-shrink: 0;
  margin-top: 1px;
  line-height: 1;
}
.io-sup-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--io-ink);
  margin-bottom: 3px;
}
.io-sup-desc {
  font-size: 12px;
  color: var(--io-sub);
  line-height: 1.45;
}
.io-support-label {
  grid-column: 1/-1;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--io-sub);
  margin-bottom: -.25rem;
}

/* ── RESPONSIVE ─────────────────────────────── */
@media (max-width: 620px) {
  .io-tabs { grid-template-columns: 1fr; gap: 8px; }
  .io-tab.active::after { display: none; }
  .io-hero { padding: 2rem 1.5rem 1.75rem; }
  .io-hero-deco { display: none; }
  .io-support { grid-template-columns: 1fr; }
  .io-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 380px) {
  .io-grid { grid-template-columns: 1fr; }
}






/* ── FORM SECTION INLINE ────────────────────── */
.io-form-section {
  display: none;
  margin-top: .25rem;
  /* Nessun trucco viewport — si espande oltre il wrapper 860px
     fino alla larghezza reale del contenuto del tema (1170px) */
}
.io-form-section.open { display: block; animation: io-fadein .3s ease; }

.io-form-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 1rem 1.4rem;
  background: var(--io-forest);
  border-radius: 16px 16px 0 0;
}
.io-form-back {
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.3);
  border-radius: 8px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  padding: 5px 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: background .18s;
  white-space: nowrap;
  flex-shrink: 0;
}
.io-form-back:hover { background: rgba(255,255,255,.28); }
.io-form-step {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: 2px;
}
.io-form-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
}
.io-form-body {
  border: 2px solid var(--io-border);
  border-top: none;
  border-radius: 0 0 16px 16px;
  background: #fff;
  padding: 0;
  min-height: 200px;
  overflow: visible;
}
/* Non sovrascrivere nulla — lascia che il form usi i propri stili nativi */
/* hide the form by default — shown by JS */
#io-shortcode-wrap { display: none; }

/* =====================================================
   TUTTI I SERVIZI
   ===================================================== */
/* ── RESET & BASE ─────────────────────────────────────────── */
.iosrv-wrap *{box-sizing:border-box}
.iosrv-wrap{font-family:inherit;margin:0 0 2.5rem}

/* ── VARIABILI COLORE (allineate alla pagina Pubblica) ────── */


/* ── HERO ─────────────────────────────────────────────────── */
.iosrv-hero{display:flex;align-items:flex-start;gap:1.25rem;background:linear-gradient(135deg,#324864 0%,#328d90 100%);border-radius:12px;padding:1.5rem 1.75rem;margin-bottom:2rem;color:#fff}
.iosrv-hero-icon{font-size:2.2rem;flex-shrink:0;line-height:1;padding-top:2px}
.iosrv-hero-title{font-weight:800;margin:0 0 .45rem;line-height:1.35;color:#fff;font-family:inherit;font-size:1.2rem}
.iosrv-hero-desc{opacity:.9;line-height:1.6;margin:0 0 .85rem;color:#fff}
.iosrv-hero-pills{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0}
.iosrv-hero-pill{font-size:13px;font-weight:700;color:#fff;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:3px 10px;white-space:nowrap;letter-spacing:.02em}
.iosrv-hero-pill::before{content:'✓ ';font-weight:900}

/* ── SEZIONE ──────────────────────────────────────────────── */
.iosrv-section{border:2.5px solid var(--io-primary);border-radius:12px;padding:1.5rem 1.75rem;margin-bottom:1.75rem}
.iosrv-section.premium{border-color:var(--io-accent);background:linear-gradient(160deg,#f0fbfb 0%,var(--io-mint) 100%)}
.iosrv-section.support{border-color:var(--io-border);background:var(--io-mist)}
.iosrv-section-hd{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}
.iosrv-section-title{font-weight:800;color:var(--io-primary);font-size:1.1rem;margin:0;font-family:inherit}
.iosrv-section.premium .iosrv-section-title{color:var(--io-ink)}
.iosrv-section-desc{color:#555;line-height:1.6;margin:0 0 1.25rem}

/* ── STEP LABEL ───────────────────────────────────────────── */
.iosrv-lbl{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--io-sub);margin-bottom:.6rem;margin-top:0}

/* ── CARD GRID — intere card cliccabili ───────────────────── */
.iosrv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:1.25rem}
.iosrv-card{background:var(--io-mist);border:2px solid var(--io-border);border-radius:12px;padding:1.2rem 1rem 1rem;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;text-decoration:none;cursor:pointer;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s}
.iosrv-card:hover{border-color:var(--io-primary);background:#fff;transform:translateY(-2px);box-shadow:0 6px 20px rgba(50,72,100,.13)}
.iosrv-section.premium .iosrv-card{background:#fff;border-color:var(--io-border)}
.iosrv-section.premium .iosrv-card:hover{border-color:var(--io-accent);box-shadow:0 6px 20px rgba(50,141,144,.13)}
.iosrv-cicon{width:48px;height:48px;border-radius:50%;background:var(--io-mint);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;transition:background .18s}
.iosrv-card:hover .iosrv-cicon{background:var(--io-primary)}
.iosrv-section.premium .iosrv-card:hover .iosrv-cicon{background:var(--io-accent)}
.iosrv-clbl{font-size:12.5px;font-weight:800;color:var(--io-primary);text-transform:uppercase;letter-spacing:.02em;line-height:1.3}
.iosrv-chint{font-size:.85em;color:var(--io-sub);line-height:1.35}
.iosrv-card:hover .iosrv-chint{color:var(--io-accent)}
/* CTA visibile solo all'hover della card */
.iosrv-btn{display:inline-block;margin-top:4px;padding:5px 12px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border:2px solid transparent;border-radius:20px;color:var(--io-primary);background:transparent;transition:background .18s,color .18s,border-color .18s}
.iosrv-card:hover .iosrv-btn{background:var(--io-primary);color:#fff;border-color:var(--io-primary)}
.iosrv-section.premium .iosrv-card:hover .iosrv-btn{background:var(--io-accent);border-color:var(--io-accent)}

/* ── LISTA ALTRI STRUMENTI ────────────────────────────────── */
.iosrv-tools{background:#fff;border:1.5px solid var(--io-border);border-radius:10px;padding:1rem 1.25rem}
.iosrv-tools ul{margin:0;padding-left:1.1rem}
.iosrv-tools li{margin-bottom:.45rem;font-size:.95rem;color:var(--io-primary);line-height:1.5}
.iosrv-tools li:last-child{margin-bottom:0}
.iosrv-tools li a{color:var(--io-accent);text-decoration:none}
.iosrv-tools li a:hover{text-decoration:underline}

/* ── BOX IN EVIDENZA ──────────────────────────────────────── */
.iosrv-highlight{background:var(--io-mint);border:1.5px solid var(--io-border);border-radius:10px;padding:1rem 1.25rem;margin-top:1.25rem}
.iosrv-highlight-title{font-weight:800;color:var(--io-primary);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;margin:0 0 .5rem}
.iosrv-highlight ul{margin:0 0 .75rem;padding-left:1.1rem}
.iosrv-highlight li{margin-bottom:.4rem;font-size:.95rem;color:var(--io-primary);line-height:1.5}
.iosrv-highlight li a{color:var(--io-accent);text-decoration:none}
.iosrv-highlight li a:hover{text-decoration:underline}
.iosrv-highlight-sub{font-weight:800;color:var(--io-ink);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin:.75rem 0 .4rem}

/* ── SUPPORTO LINK CARDS ──────────────────────────────────── */
.iosrv-sup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:1.25rem}
.iosrv-sup-card{background:var(--io-mist);border:1.5px solid var(--io-border);border-radius:10px;padding:1rem 1.1rem;display:flex;align-items:flex-start;gap:10px;text-decoration:none;transition:border-color .18s,background .18s}
.iosrv-sup-card:hover{border-color:var(--io-accent);background:#fff}
.iosrv-sup-ico{font-size:1.25rem;flex-shrink:0;margin-top:2px;line-height:1}
.iosrv-sup-title{font-weight:700;color:var(--io-primary);margin-bottom:3px;font-size:.95rem}
.iosrv-sup-desc{font-size:.87em;color:#555;line-height:1.4}

/* ── ICONE SUPPORTO CARD (cliccabili intere) ──────────────── */
.iosrv-ico-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:1.25rem}
.iosrv-ico-card{background:var(--io-mist);border:1.5px solid var(--io-border);border-radius:10px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;text-decoration:none;transition:border-color .18s,background .18s,transform .18s}
.iosrv-ico-card:hover{border-color:var(--io-accent);background:#fff;transform:translateY(-2px)}
.iosrv-ico-card img{width:56px;height:56px;object-fit:contain;border-radius:8px}
.iosrv-ico-card-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--io-primary)}
.iosrv-ico-card-desc{font-size:.83em;color:var(--io-sub);line-height:1.35}

/* ── DIVIDER ──────────────────────────────────────────────── */
.iosrv-divider{height:2px;background:linear-gradient(90deg,var(--io-border),transparent);border:none;margin:1.5rem 0}

/* ── NEWSLETTER ───────────────────────────────────────────── */
.iosrv-nl-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:1.5rem;align-items:start}
.iosrv-nl-left{display:flex;flex-direction:column;gap:.75rem}
.iosrv-nl-img{width:100%;border-radius:10px;display:block}
.iosrv-nl-caption{font-size:.9rem;color:#555;line-height:1.5;text-align:center}

/* ── MINISITO PRO BOX ─────────────────────────────────────── */
.iosrv-minisito{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:start;background:#fff;border:1.5px solid var(--io-border);border-radius:12px;padding:1.25rem 1.4rem;margin-top:1.25rem;position:relative;overflow:hidden}
.iosrv-minisito::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--io-primary),var(--io-accent))}
.iosrv-minisito-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--io-accent);border-radius:20px;padding:3px 10px;margin-bottom:.6rem}
.iosrv-minisito-title{font-weight:800;color:var(--io-ink);font-size:1rem;margin:0 0 .25rem;font-family:inherit;line-height:1.3}
.iosrv-minisito-url{font-size:.82rem;color:var(--io-accent);font-weight:700;margin:0 0 .75rem;font-family:monospace}
.iosrv-minisito-features{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}
.iosrv-minisito-feat{font-size:.88rem;color:var(--io-primary);line-height:1.4;display:flex;gap:.4rem;align-items:baseline}
.iosrv-minisito-feat::before{content:'✓';color:var(--io-accent);font-weight:900;flex-shrink:0;font-size:.8rem}
.iosrv-minisito-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.iosrv-minisito-cta{display:inline-block;padding:8px 16px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border-radius:7px;background:var(--io-primary);color:#fff;border:2px solid var(--io-primary);transition:background .18s,color .18s;line-height:1}
.iosrv-minisito-cta:hover{background:var(--io-accent);border-color:var(--io-accent)}
.iosrv-minisito-demo{display:inline-block;padding:8px 16px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border-radius:7px;border:2px solid var(--io-primary);color:var(--io-primary);background:transparent;transition:background .18s,color .18s;line-height:1}
.iosrv-minisito-demo:hover{background:var(--io-primary);color:#fff}
.iosrv-minisito-price{text-align:center;background:linear-gradient(135deg,var(--io-primary),var(--io-accent));border-radius:10px;padding:1rem .9rem;color:#fff;min-width:90px;flex-shrink:0}
.iosrv-minisito-price-amt{font-size:1.5rem;font-weight:900;display:block;line-height:1}
.iosrv-minisito-price-per{font-size:.72rem;opacity:.85;font-weight:600;letter-spacing:.04em}
.iosrv-minisito-price-tag{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-top:.35rem;opacity:.9;background:rgba(255,255,255,.2);border-radius:20px;padding:2px 7px;display:inline-block}

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media(max-width:700px){
  .iosrv-hero{flex-direction:column;text-align:center}
  .iosrv-sup-grid{grid-template-columns:1fr}
  .iosrv-ico-grid{grid-template-columns:repeat(2,1fr)}
  .iosrv-nl-wrap{grid-template-columns:1fr}
  .iosrv-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:500px){
  .iosrv-minisito{grid-template-columns:1fr}
  .iosrv-minisito-price{display:flex;align-items:center;gap:.75rem;justify-content:center;padding:.75rem}
}
@media(max-width:400px){
  .iosrv-grid{grid-template-columns:1fr}
  .iosrv-ico-grid{grid-template-columns:repeat(2,1fr)}
}


          @font-face{font-display:block;font-family:Roboto;src:url(https://assets.brevo.com/font/Roboto/Latin/normal/normal/7529907e9eaf8ebb5220c5f9850e3811.woff2) format("woff2"),url(https://assets.brevo.com/font/Roboto/Latin/normal/normal/25c678feafdc175a70922a116c9be3e7.woff) format("woff")}
          @font-face{font-display:fallback;font-family:Roboto;font-weight:600;src:url(https://assets.brevo.com/font/Roboto/Latin/medium/normal/6e9caeeafb1f3491be3e32744bc30440.woff2) format("woff2"),url(https://assets.brevo.com/font/Roboto/Latin/medium/normal/71501f0d8d5aa95960f6475d5487d4c2.woff) format("woff")}
          @font-face{font-display:fallback;font-family:Roboto;font-weight:700;src:url(https://assets.brevo.com/font/Roboto/Latin/bold/normal/3ef7cf158f310cf752d5ad08cd0e7e60.woff2) format("woff2"),url(https://assets.brevo.com/font/Roboto/Latin/bold/normal/ece3a1d82f18b60bcce0211725c476aa.woff) format("woff")}
          #sib-container input:-ms-input-placeholder{text-align:left;font-family:Helvetica,sans-serif;color:#c0ccda}
          #sib-container input::placeholder{text-align:left;font-family:Helvetica,sans-serif;color:#c0ccda}
          #sib-container textarea::placeholder{text-align:left;font-family:Helvetica,sans-serif;color:#c0ccda}
          #sib-container a{text-decoration:underline;color:#2BB2FC}

/* =====================================================
   PAGINA TUTTI GLI EVENTI
   ===================================================== */
.io-eventi-wrap { font-family: 'DM Sans', sans-serif; color: var(--io-text); }

/* ── HERO ─────────────────────────────────── */
.io-ev-hero {
  position: relative;
  background: var(--io-primary);
  border-radius: 20px;
  padding: 3rem 2.5rem 2.5rem;
  margin-bottom: 2rem;
  overflow: hidden;
  color: #fff;
}
.io-ev-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 95% 10%, rgba(50,141,144,.5) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 5% 90%, rgba(201,148,58,.1) 0%, transparent 55%);
  pointer-events: none;
}
.io-ev-hero-inner { position: relative; z-index: 1; }
.io-ev-eyebrow {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: .85rem;
}
.io-ev-eyebrow span { color: var(--io-gold); }
.io-ev-hero h2 {
  font-size: clamp(1.7rem, 3.5vw, 2.4rem);
  font-weight: 800; line-height: 1.2; color: #fff;
  margin: 0 0 1rem;
}
.io-ev-hero-sub {
  font-size: 1rem; line-height: 1.65;
  color: rgba(255,255,255,.82); max-width: 580px; margin-bottom: 1.5rem;
}
.io-ev-cta-wrap { display: flex; flex-wrap: wrap; gap: 10px; }
.io-ev-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; color: var(--io-primary);
  font-weight: 700; font-size: .9rem; padding: 10px 22px;
  border-radius: 8px; text-decoration: none; transition: background .2s;
}
.io-ev-cta:hover { background: var(--io-mint); color: var(--io-primary); }
/* Bottone solido blu su sfondo chiaro */
.io-ev-cta--solid {
  background: var(--io-primary) !important;
  color: #fff !important;
}
.io-ev-cta--solid:hover { background: var(--io-accent) !important; color: #fff !important; }
.io-ev-cta-outline {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; color: #fff;
  font-weight: 600; font-size: .9rem; padding: 10px 22px;
  border-radius: 8px; text-decoration: none;
  border: 1.5px solid rgba(255,255,255,.4);
  transition: background .2s;
}
.io-ev-cta-outline:hover { background: rgba(255,255,255,.1); }
.io-ev-hero-deco {
  position: absolute; right: 2rem; top: 50%; transform: translateY(-50%);
  font-size: 7rem; opacity: .06; user-select: none; pointer-events: none;
}

/* ── SECTION ──────────────────────────────── */
.io-ev-section { margin-bottom: 2rem; }
.io-ev-section-hd {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: .75rem; padding-bottom: .75rem;
  border-bottom: 2px solid var(--io-border);
}
.io-ev-section-hd h2 {
  font-size: 1.2rem; font-weight: 800;
  color: var(--io-primary); margin: 0; line-height: 1.3;
}
.io-ev-section-icon { font-size: 1.3rem; flex-shrink: 0; }
.io-ev-intro {
  font-size: .97rem; line-height: 1.7;
  color: var(--io-sub); margin-bottom: 1.25rem;
}
.io-ev-intro strong { color: var(--io-primary); }
.io-ev-cta-center { text-align: center; margin-top: 1rem; }
.io-ev-btn-outline {
  display: inline-flex; align-items: center; gap: 6px;
  border: 2px solid var(--io-primary); color: var(--io-primary);
  font-weight: 700; font-size: .88rem; padding: 9px 20px;
  border-radius: 8px; text-decoration: none; transition: background .2s, color .2s;
}
.io-ev-btn-outline:hover { background: var(--io-primary); color: #fff; }

/* ── TIPI GRID ────────────────────────────── */
.io-ev-tipi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px; margin-bottom: 1.5rem;
}
.io-ev-tipo {
  background: var(--io-mist); border: 1.5px solid var(--io-border);
  border-radius: 12px; padding: 1rem 1.1rem;
}
.io-ev-tipo span { font-size: 1.4rem; display: block; margin-bottom: .4rem; }
.io-ev-tipo strong { font-size: .9rem; color: var(--io-primary); display: block; margin-bottom: .3rem; }
.io-ev-tipo p { font-size: .82rem; color: var(--io-sub); line-height: 1.45; margin: 0; }

/* ── ACTIONS ──────────────────────────────── */
.io-ev-actions {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px; margin-bottom: 2.5rem;
}
.io-ev-action-card {
  border-radius: 16px; padding: 1.75rem 1.5rem;
  display: flex; flex-direction: column; gap: 10px;
}
.io-ev-action-pubblica {
  background: var(--io-primary); color: #fff;
}
.io-ev-action-archivio {
  background: var(--io-mist); border: 2px solid var(--io-border); color: var(--io-text);
}
.io-ev-action-icon { font-size: 1.6rem; }
.io-ev-action-card h3 { font-size: 1.05rem; font-weight: 800; margin: 0; color: inherit; }
.io-ev-action-pubblica h3 { color: #fff; }
.io-ev-action-card p { font-size: .9rem; line-height: 1.55; margin: 0; }
.io-ev-action-pubblica p { color: rgba(255,255,255,.82); }
.io-ev-action-archivio p { color: var(--io-sub); }
.io-ev-action-archivio .io-ev-cta-outline {
  background: var(--io-primary) !important;
  color: #fff !important;
  border-color: var(--io-primary) !important;
}
.io-ev-action-archivio .io-ev-cta-outline:hover {
  background: var(--io-accent) !important;
  border-color: var(--io-accent) !important;
}

/* ── EDITORIALE ───────────────────────────── */
.io-ev-editoriale { margin-bottom: 2rem; }
.io-ev-seo-section {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--io-border);
}
.io-ev-seo-section:last-child { border-bottom: none; }
.io-ev-seo-section h2 {
  font-size: 1.15rem; font-weight: 800;
  color: var(--io-primary); margin: 0 0 .75rem;
}
.io-ev-seo-section p {
  font-size: .97rem; line-height: 1.7;
  color: var(--io-sub); margin: 0 0 .6rem;
}
.io-ev-seo-section p:last-child { margin-bottom: 0; }
.io-ev-list {
  padding-left: 1.2rem; margin: .5rem 0 0;
}
.io-ev-list li {
  font-size: .95rem; line-height: 1.6;
  color: var(--io-sub); margin-bottom: .5rem;
}
.io-ev-list li strong { color: var(--io-primary); }
.io-ev-seo-cta { text-align: center; }
.io-ev-seo-cta h2 { margin-bottom: .75rem; }
.io-ev-seo-cta p { max-width: 560px; margin: 0 auto .75rem; }
.io-ev-seo-cta .io-ev-cta {
  background: var(--io-primary); color: #fff; margin-top: .5rem;
}
.io-ev-seo-cta .io-ev-cta:hover { background: var(--io-accent); }

/* ── FAQ ──────────────────────────────────── */
.io-ev-faq {
  background: var(--io-mist); border-radius: 16px;
  padding: 2rem 1.75rem; margin-bottom: 2rem;
}
.io-ev-faq h2 {
  font-size: 1.2rem; font-weight: 800;
  color: var(--io-primary); margin: 0 0 1.25rem;
}
.io-ev-faq-item {
  padding: 1rem 0;
  border-bottom: 1px solid var(--io-border);
}
.io-ev-faq-item:last-child { border-bottom: none; padding-bottom: 0; }
.io-ev-faq-item h3 {
  font-size: .97rem; font-weight: 700;
  color: var(--io-primary); margin: 0 0 .4rem;
}
.io-ev-faq-item p {
  font-size: .92rem; line-height: 1.6;
  color: var(--io-sub); margin: 0;
}


/* ── NOTA INFORMATIVA (corsi page) ───────────── */
.io-ev-nota {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: var(--io-mint);
  border: 1.5px solid var(--io-border);
  border-left: 4px solid var(--io-accent);
  border-radius: 10px;
  padding: .9rem 1.2rem;
  margin-bottom: 1.75rem;
  font-size: .92rem;
  line-height: 1.6;
  color: var(--io-text);
}
.io-ev-nota span { flex-shrink: 0; font-size: 1.1rem; margin-top: 1px; }
.io-ev-nota p { margin: 0; }
.io-ev-nota a { color: var(--io-accent); font-weight: 600; text-decoration: none; }
.io-ev-nota a:hover { text-decoration: underline; }

/* ── RESPONSIVE ───────────────────────────── */
@media (max-width: 640px) {
  .io-ev-hero { padding: 2rem 1.5rem 1.75rem; }
  .io-ev-hero-deco { display: none; }
  .io-ev-actions { grid-template-columns: 1fr; }
  .io-ev-tipi-grid { grid-template-columns: 1fr 1fr; }
  .io-ev-cta-wrap { flex-direction: column; }
}
@media (max-width: 380px) {
  .io-ev-tipi-grid { grid-template-columns: 1fr; }
}
