/* ============================================================
   SARDEGNA OLISTICA — Restyling "Mediterraneo terra e mare"
   v2 2026-06-05: + CSS completo template Home 2026
   ============================================================ */

:root {
  --so-mare:         #0E5A5E;
  --so-mare-scuro:   #0A4448;
  --so-acqua:        #2FA6A0;
  --so-sabbia:       #F6F0E6;
  --so-crema:        #FBF7F0;
  --so-pietra:       #2C2A26;
  --so-pietra-soft:  #6B655C;
  --so-macchia:      #6E8B5B;
  --so-terracotta:   #D9714B;
  --so-terracotta-d: #BE5C3A;
  --so-bordo:        #E7DECE;
  --so-bianco:       #FFFFFF;

  --so-serif: 'Fraunces', Georgia, serif;
  --so-sans:  'Mulish', system-ui, -apple-system, sans-serif;

  --so-r-s: 10px;
  --so-r-m: 16px;
  --so-r-l: 26px;
  --so-ombra-s: 0 4px 16px rgba(14,90,94,.08);
  --so-ombra-m: 0 14px 40px rgba(14,90,94,.14);
  --so-max: 1180px;
}

/* ===== Body base ===== */
body { background: var(--so-sabbia) !important; color: var(--so-pietra) !important; font-family: var(--so-sans) !important; line-height: 1.65; }
body.home main#primary { padding: 0; max-width: none; }

/* Astra normalize on home */
body.home .entry-content, body.home .entry-header { padding: 0 !important; margin: 0 !important; }
body.home .ast-container { max-width: none; padding: 0; }
body.home .ast-article-single { padding: 0 !important; }
body.home #content { padding: 0 !important; margin: 0 !important; }

/* No uppercase / lowercase forzati Astra */
body.home h1, body.home h2, body.home h3, body.home h4,
.so-home-2026 h1, .so-home-2026 h2, .so-home-2026 h3, .so-home-2026 h4 {
  text-transform: none !important;
  font-family: var(--so-serif) !important;
  color: var(--so-mare);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.01em;
}

/* ===== HOME 2026 TEMPLATE ===== */
.so-home-2026 { font-family: var(--so-sans); color: var(--so-pietra); }
.so-home-2026 .so-wrap { max-width: var(--so-max); margin: 0 auto; padding: 0 24px; }
.so-home-2026 a { color: var(--so-acqua); text-decoration: none; }
.so-home-2026 img { max-width: 100%; display: block; }

.so-home-2026 .so-eyebrow {
  font-size: .8rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--so-terracotta); margin-bottom: 14px;
}

/* ===== Bottoni ===== */
.so-btn {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--so-sans); font-weight: 700; font-size: 1rem;
  padding: 14px 28px; border-radius: 100px; border: 0; cursor: pointer;
  transition: transform .15s, background .2s, box-shadow .2s, border-color .2s;
  text-decoration: none !important;
}
.so-btn-primary { background: var(--so-terracotta); color: #fff !important; box-shadow: 0 8px 22px rgba(217,113,75,.32); }
.so-btn-primary:hover { background: var(--so-terracotta-d); color: #fff !important; transform: translateY(-2px); }
.so-btn-ghost { background: transparent; color: var(--so-mare) !important; border: 1.5px solid var(--so-bordo); }
.so-btn-ghost:hover { border-color: var(--so-mare); background: #fff; }
.so-btn-ghost-dark { background: transparent; color: #fff !important; border: 1.5px solid rgba(255,255,255,.5); }
.so-btn-ghost-dark:hover { background: #fff; color: var(--so-mare) !important; border-color: #fff; }

/* ===== HERO ===== */
.so-hero { position: relative; min-height: 660px; display: flex; align-items: center; color: #fff; overflow: hidden; }
.so-hero .so-bg {
  position: absolute; inset: 0;
  background: url('https://images.unsplash.com/photo-1559827260-dc66d52bef19?auto=format&fit=crop&w=2000&q=80') center/cover no-repeat;
  transform: scale(1.02);
}
.so-hero .so-bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(110deg, rgba(10,68,72,.86) 0%, rgba(14,90,94,.66) 48%, rgba(14,90,94,.30) 100%);
}
.so-hero .so-inner { position: relative; z-index: 2; padding: 90px 0; width: 100%; }
.so-hero .so-eyebrow { color: #ffd9c2 !important; }
.so-hero h1 { color: #fff !important; font-size: clamp(2.5rem, 5.4vw, 4.3rem); font-weight: 600; max-width: 16ch; margin: 0; }
.so-hero p.so-sub { font-size: clamp(1.05rem, 1.8vw, 1.32rem); margin-top: 22px; max-width: 46ch; color: #eaf3f1; font-weight: 500; }

/* Hero CTA secondari sotto la search */
.so-hero-cta { margin-top: 24px; display: flex; gap: 16px; flex-wrap: wrap; }

/* ===== Search card ===== */
.so-search-card {
  margin-top: 38px; background: rgba(251,247,240,.96);
  border-radius: var(--so-r-l); padding: 18px; box-shadow: var(--so-ombra-m);
  display: grid; grid-template-columns: 1.4fr 1fr 1fr auto; gap: 12px; max-width: 880px;
}
.so-search-card .so-field { display: flex; flex-direction: column; text-align: left; }
.so-search-card label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--so-pietra-soft); padding: 4px 10px 2px; }
.so-search-card input, .so-search-card select {
  border: 0 !important; background: transparent !important;
  font-family: var(--so-sans); font-size: 1rem; color: var(--so-pietra) !important;
  padding: 4px 10px 8px; outline: none; box-shadow: none !important;
}
.so-search-card select { appearance: none; cursor: pointer; }
.so-search-card .so-go { align-self: stretch; }
.so-search-card .so-go button { height: 100%; width: 100%; justify-content: center; }

/* ===== Strip statistiche ===== */
.so-stat-strip { background: var(--so-mare); color: #fff; }
.so-stat-strip .so-wrap { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 20px; padding: 30px 24px; text-align: center; max-width: var(--so-max); margin: 0 auto; }
.so-stat .so-n { font-family: var(--so-serif); font-size: 2.2rem; font-weight: 700; color: #fff; }
.so-stat .so-l { font-size: .9rem; color: #bfe0dd; letter-spacing: .03em; }

/* ===== Sezioni ===== */
.so-home-2026 section.so-block { padding: 84px 0; }
.so-home-2026 .so-alt { background: linear-gradient(180deg, var(--so-sabbia), #efe6d6); }
.so-home-2026 .so-head-center { text-align: center; max-width: 680px; margin: 0 auto 50px; }
.so-home-2026 .so-head-center .so-eyebrow { margin-bottom: 12px; }
.so-home-2026 .so-head-center h2 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); margin: 0; }
.so-home-2026 .so-head-center p { color: var(--so-pietra-soft); font-size: 1.08rem; margin-top: 14px; }

/* Chips discipline */
.so-chips { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.so-chip {
  background: var(--so-crema); border: 1px solid var(--so-bordo);
  border-radius: 100px; padding: 11px 22px; font-weight: 600;
  color: var(--so-mare) !important; transition: all .18s; cursor: pointer;
  text-decoration: none !important; font-family: var(--so-sans);
}
.so-chip:hover { background: var(--so-mare); color: #fff !important; border-color: var(--so-mare); transform: translateY(-2px); }

/* Grids */
.so-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.so-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.so-grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }

/* Cards */
.so-card {
  display: block; background: var(--so-crema); border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-m); overflow: hidden;
  transition: transform .2s, box-shadow .2s; text-decoration: none !important;
  color: var(--so-pietra) !important;
}
.so-card:hover { transform: translateY(-5px); box-shadow: var(--so-ombra-m); }
.so-card .so-ph { height: 188px; background-size: cover; background-position: center; position: relative; background-color: var(--so-bordo); }
.so-card .so-ph .so-tag {
  position: absolute; left: 14px; bottom: 14px;
  background: var(--so-terracotta); color: #fff;
  font-size: .76rem; font-weight: 700; padding: 6px 13px;
  border-radius: 100px; letter-spacing: .03em;
}
.so-card .so-body { padding: 22px 22px 26px; }
.so-card .so-body h3 { font-size: 1.3rem; margin: 0 0 8px; color: var(--so-mare); }
.so-card .so-body p { color: var(--so-pietra-soft); font-size: .96rem; margin: 0; }
.so-card .so-body .so-more { display: inline-block; margin-top: 14px; color: var(--so-terracotta); font-weight: 700; font-size: .92rem; }

.so-block-cta-row { text-align: center; margin-top: 40px; }

/* Eventi vuoti */
.so-events-empty {
  text-align: center; background: var(--so-crema);
  border: 1.5px dashed var(--so-bordo); border-radius: var(--so-r-l);
  padding: 56px 28px; max-width: 720px; margin: 0 auto;
}
.so-events-empty h3 { font-size: 1.5rem; margin: 0 0 8px; color: var(--so-mare); }
.so-events-empty p { color: var(--so-pietra-soft); margin: 0; }

/* PLUS section wrapper */
.so-plus-section { padding: 56px 0 28px; }
.so-plus-section .so-wrap > * { background: var(--so-crema); border: 1px solid var(--so-bordo); border-radius: var(--so-r-l); padding: 36px; box-shadow: var(--so-ombra-s); }
.so-plus-section h2, .so-plus-section h3 { color: var(--so-mare) !important; text-transform: none !important; }
.so-plus-section a, .so-plus-section button, .so-plus-section input[type="submit"] {
  background: var(--so-terracotta) !important; color: #fff !important;
  border-radius: 100px !important; padding: 12px 26px !important;
  font-weight: 700 !important; border: 0 !important; box-shadow: 0 8px 22px rgba(217,113,75,.32) !important;
  text-decoration: none !important;
}

/* Newsletter section */
.so-news {
  background: var(--so-mare); color: #fff; border-radius: var(--so-r-l);
  padding: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
  align-items: center; position: relative; overflow: hidden;
}
.so-news::before {
  content: ""; position: absolute; right: -60px; top: -60px;
  width: 260px; height: 260px;
  background: radial-gradient(circle, rgba(47,166,160,.5), transparent 70%);
}
.so-news h2 { color: #fff !important; font-size: 2rem; margin: 0; }
.so-news p { color: #cfe7e4; margin-top: 12px; }
.so-news-form { position: relative; z-index: 2; }
.so-news-form .ff-el-form-control,
.so-news-form input[type="text"],
.so-news-form input[type="email"] {
  border: 0 !important; border-radius: 100px !important;
  padding: 15px 22px !important; font-family: var(--so-sans) !important;
  font-size: 1rem !important; background: #fff !important; color: var(--so-pietra) !important;
}
.so-news-form .ff-btn,
.so-news-form button[type="submit"] {
  background: var(--so-terracotta) !important; color: #fff !important;
  border-radius: 100px !important; padding: 15px 28px !important;
  border: 0 !important; font-weight: 700 !important; font-family: var(--so-sans) !important;
  box-shadow: 0 8px 22px rgba(217,113,75,.32) !important; width: auto !important;
}

/* ===== Override Fluent Form globale (newsletter sito) ===== */
.fluentform .ff-btn, .fluentform button[type="submit"],
.fluent_form_1 .ff-btn-submit, .fluent_form_6 .ff-btn-submit,
form.frm-fluent-form button[type="submit"] {
  background: var(--so-terracotta) !important; color: #fff !important;
  border-radius: 100px !important; border: 0 !important;
}

/* ===== Override bottoni PLUS shortcode globale ===== */
.so-plus-promo a, .so-plus-promo button,
[class*="plus"][class*="btn"], a[href*="plus"], a[href*="PLUS"] {
  background: var(--so-terracotta) !important; color: #fff !important;
  border-radius: 100px !important;
}

/* ===== HEADER ASTRA cleanup home ===== */
body.home .main-header-menu > .menu-item > a,
body.home .ast-header-html-1 a { text-transform: none !important; }

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .so-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .so-grid-5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .so-search-card { grid-template-columns: 1fr 1fr; }
  .so-grid-3 { grid-template-columns: 1fr; }
  .so-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .so-grid-5 { grid-template-columns: repeat(2, 1fr); }
  .so-news { grid-template-columns: 1fr; padding: 40px 28px; }
}
@media (max-width: 560px) {
  .so-search-card { grid-template-columns: 1fr; }
  .so-grid-4 { grid-template-columns: 1fr; }
  .so-grid-5 { grid-template-columns: 1fr; }
  .so-home-2026 section.so-block { padding: 60px 0; }
}

/* ===== Vecchio CSS Elementor restyle (per pagine NON home) ===== */
.elementor-widget-heading .elementor-heading-title { font-family: var(--so-serif); color: var(--so-mare); font-weight: 600; }
.elementor-button { font-family: var(--so-sans); font-weight: 700; background: var(--so-terracotta); color: #fff; border-radius: 100px; padding: 14px 28px; border: 0; }
.elementor-button:hover { background: var(--so-terracotta-d); color: #fff; }
.elementor-post__title a { color: var(--so-mare); }
.elementor-post__title a:hover { color: var(--so-terracotta); }
.elementor-post__read-more { background: var(--so-terracotta) !important; color: #fff !important; border-radius: 100px; padding: 8px 20px; }
.site-footer, .ast-builder-footer-grid-columns { background: var(--so-mare-scuro); color: rgba(255,255,255,.85); }
:focus-visible { outline: 2px solid var(--so-acqua); outline-offset: 2px; }

/* ============================================================
   RICERCA VERA - widget plugin itl_home_page_widget (#itlItemFilter)
   Restyle Mediterraneo, NON tocca id/parametri/ordine select
   ============================================================ */
.so-search-wrap { margin-top: 38px; max-width: 920px; }
#itlItemFilter .search-widget {
  background: rgba(251,247,240,.96) !important;
  border-radius: var(--so-r-l) !important;
  padding: 18px !important;
  box-shadow: var(--so-ombra-m) !important;
  display: flex !important;
  flex-wrap: wrap;
  gap: 12px !important;
  align-items: stretch !important;
}
#itlItemFilter .search-widget input[type="text"],
#itlItemFilter .search-widget select {
  flex: 1 1 180px;
  min-width: 160px !important;
  border: 1px solid var(--so-bordo) !important;
  border-radius: var(--so-r-s) !important;
  background: #fff !important;
  font-family: var(--so-sans) !important;
  font-size: 1rem !important;
  color: var(--so-pietra) !important;
  padding: 13px 16px !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s;
}
#itlItemFilter .search-widget input[type="text"]:focus,
#itlItemFilter .search-widget select:focus {
  border-color: var(--so-mare) !important;
  box-shadow: 0 0 0 3px rgba(14,90,94,.12) !important;
}
#itlItemFilter .search-widget select { appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230E5A5E' d='M6 8L0 0h12z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 14px center !important; padding-right: 36px !important;
}
#itlItemFilter .search-widget .near-btn {
  flex: 0 0 auto;
  background: var(--so-terracotta) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px !important;
  padding: 13px 34px !important;
  font-family: var(--so-sans) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(217,113,75,.32) !important;
  transition: background .2s, transform .15s;
}
#itlItemFilter .search-widget .near-btn:hover { background: var(--so-terracotta-d) !important; transform: translateY(-2px); }
@media (max-width: 900px) {
  #itlItemFilter .search-widget { flex-direction: column; }
  #itlItemFilter .search-widget input, #itlItemFilter .search-widget select, #itlItemFilter .search-widget .near-btn { width: 100% !important; flex: 1 1 100%; }
}

/* ============================================================
   HEADER GLOBALE MEDITERRANEO (tutte le pagine, non solo home)
   Header = Astra Header Builder, restyle via CSS
   ============================================================ */
.main-header-menu > .menu-item > a,
.ast-header-html-1 a,
.ast-builder-menu .menu-item > a {
  text-transform: none !important;
  font-family: var(--so-sans) !important;
  font-weight: 600 !important;
  color: var(--so-mare) !important;
  letter-spacing: 0 !important;
}
.main-header-menu > .menu-item > a:hover,
.ast-builder-menu .menu-item > a:hover { color: var(--so-terracotta) !important; }
/* Header su pagine interne (non-home): sfondo crema solido + ombra, NON trasparente */
body:not(.home) .ast-above-header-wrap,
body:not(.home) .ast-main-header-wrap,
body:not(.home) .site-header,
body:not(.home) .ast-primary-header-bar {
  background: var(--so-crema) !important;
  box-shadow: var(--so-ombra-s);
}
/* Voci menu chiare quando l'header e trasparente sopra l'hero scuro (home) */
body.home .ast-theme-transparent-header .main-header-menu > .menu-item > a { color: #fff !important; }
body.home .ast-theme-transparent-header .main-header-menu > .menu-item > a:hover { color: #ffd9c2 !important; }
/* CTA Login/Register iniettate nel menu dal child theme */
.main-header-menu .menu-item a[href*="login"] {
  color: var(--so-mare) !important;
  font-weight: 600;
}
.main-header-menu .menu-item a[href*="login"]:hover {
  color: var(--so-terracotta) !important;
}
/* Registrati: CTA terracotta pillola visibile */
.main-header-menu .menu-item a[href*="register"] {
  background: var(--so-terracotta) !important;
  color: #fff !important;
  padding: 10px 22px !important;
  border-radius: 100px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .015em;
  text-transform: none !important;
  display: inline-block !important;
  line-height: 1.2 !important;
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease !important;
  box-shadow: 0 4px 14px rgba(217,113,75,.25);
  margin-left: 6px;
}
.main-header-menu .menu-item a[href*="register"]:hover {
  background: var(--so-terracotta-d) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(217,113,75,.35);
}
/* Su mobile (toggled menu) il CTA terracotta resta visibile ma full width */
@media (max-width: 921px) {
  .main-header-menu .menu-item a[href*="register"] {
    display: block !important;
    margin: 8px 16px !important;
    text-align: center !important;
  }
}

/* Logo restylato 2026: badge crema cerchio nel box header.
   filter:none toglie il tint teal di Astra (#ast-img-color-filter) */
.custom-logo, .site-logo-img .custom-logo, img.custom-logo {
  filter: none !important;
  -webkit-filter: none !important;
  background: var(--so-crema) !important;
  border-radius: 50% !important;
  padding: 8px !important;
  box-shadow: var(--so-ombra-s), 0 0 0 3px rgba(217,113,75,.18);
  height: 68px !important;
  width: 68px !important;
  max-height: 68px !important;
  max-width: 68px !important;
  object-fit: contain !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.custom-logo:hover {
  transform: scale(1.04);
  box-shadow: var(--so-ombra-m), 0 0 0 4px rgba(217,113,75,.28);
}
.ast-site-identity { padding: 6px 0; }
/* Sticky header su scroll: logo + menu compatti */
body.home .ast-theme-transparent-header .ast-primary-header-bar {
  align-items: center;
}

/* ============================================================
   PAGINE NON-HOME - coerenza Mediterraneo globale
   ============================================================ */
body:not(.home) { background: var(--so-sabbia) !important; }
body:not(.home) h1, body:not(.home) h2, body:not(.home) h3, body:not(.home) h4,
body:not(.home) .entry-title,
body:not(.home) .elementor-heading-title {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  text-transform: none !important;
  font-style: normal !important;
  letter-spacing: -.01em !important;
}
body:not(.home) p, body:not(.home) li, body:not(.home) .entry-content { color: var(--so-pietra); }
body:not(.home) a { color: var(--so-acqua); }
body:not(.home) a:hover { color: var(--so-mare); }
/* Bottoni Astra + Elementor + WP su pagine interne */
body:not(.home) .ast-button,
body:not(.home) .wp-block-button__link,
body:not(.home) .elementor-button,
body:not(.home) button[type="submit"]:not(.near-btn) {
  background: var(--so-terracotta) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px !important;
}
body:not(.home) .ast-button:hover,
body:not(.home) .elementor-button:hover { background: var(--so-terracotta-d) !important; color: #fff !important; }
/* Card articoli / griglie interne */
body:not(.home) .elementor-post,
body:not(.home) article.post {
  background: var(--so-crema);
  border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-m);
  overflow: hidden;
}
body:not(.home) .elementor-post__title a { color: var(--so-mare) !important; }
body:not(.home) .elementor-post__title a:hover { color: var(--so-terracotta) !important; }
/* Form interni (contatti, register) */
body:not(.home) input[type="text"], body:not(.home) input[type="email"],
body:not(.home) input[type="tel"], body:not(.home) textarea, body:not(.home) select,
body:not(.home) .ff-el-form-control {
  border: 1.5px solid var(--so-bordo) !important;
  border-radius: var(--so-r-s) !important;
  background: #fff !important;
  color: var(--so-pietra) !important;
}
body:not(.home) input:focus, body:not(.home) textarea:focus, body:not(.home) select:focus {
  border-color: var(--so-mare) !important;
  box-shadow: 0 0 0 3px rgba(14,90,94,.12) !important;
  outline: none !important;
}

/* ============================================================
   FIX BUG menu trasparente sovrapposto al contenuto (pagine interne)
   Astra transparent header overlappa il contenuto sulle pagine chiare
   ============================================================ */
body.ast-theme-transparent-header:not(.home) #content,
body.ast-theme-transparent-header:not(.home) .site-content {
  padding-top: 40px;
}
/* la pagina contatti (894) aveva l'overlap piu marcato */
body.page-id-894 #content, body.page-id-894 .site-content { padding-top: 40px; }

/* ============================================================
   FOTO OPERATORI E PRODOTTI - layout ammorbidito
   Card piu morbide: angoli arrotondati, foto uniformi, ombra soft
   ============================================================ */
/* Card risultati operatori (app Vue plugin, .operators-list)
   Loghi e foto interi (no crop "fuori quadra"): contain su sfondo bianco morbido */
.operators-list .photo,
.operators-list img.photo {
  object-fit: contain !important;
  object-position: center !important;
  background: #ffffff !important;
  padding: 16px !important;
  border-radius: var(--so-r-m) !important;
  display: block;
}
.operators-list a, .operators-list h3, .operators-list .title { color: var(--so-mare) !important; }

/* Foto card home (tipi, produttori, blog, eventi): ammorbidite */
.so-card .so-ph { border-radius: 0; transition: transform .3s ease; }
.so-card:hover .so-ph { transform: scale(1.03); }
.so-card { overflow: hidden; }
.so-ph-soft { position: relative; }
.so-ph-soft::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,68,72,0) 55%, rgba(10,68,72,.28) 100%);
  pointer-events: none;
}

/* ============================================================
   ULTIMI ISCRITTI - strip prova sociale (CPT operators, 5 piu recenti)
   ============================================================ */
.so-recent {
  background: var(--so-crema);
  padding: 64px 0 72px;
  border-top: 1px solid var(--so-bordo);
  border-bottom: 1px solid var(--so-bordo);
}
.so-recent .so-wrap { max-width: var(--so-max); margin: 0 auto; padding: 0 24px; }
.so-recent h2 {
  font-family: var(--so-serif);
  color: var(--so-mare);
  font-size: clamp(28px, 3.4vw, 40px);
  margin: 0 0 8px;
  text-align: center;
  letter-spacing: -.015em;
}
.so-recent .so-recent-sub {
  text-align: center;
  color: var(--so-pietra-soft);
  font-family: var(--so-sans);
  margin: 0 0 36px;
  font-size: 16px;
}
.so-recent-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
@media (max-width: 920px) { .so-recent-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .so-recent-grid { grid-template-columns: 1fr; } }
.so-recent-card {
  background: var(--so-bianco);
  border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-m);
  padding: 22px 18px 20px;
  text-align: center;
  text-decoration: none !important;
  color: inherit !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  box-shadow: var(--so-ombra-s);
}
.so-recent-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--so-ombra-m);
  border-color: var(--so-terracotta);
}
.so-recent-avatar {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--so-sabbia);
  border: 3px solid var(--so-sabbia);
  box-shadow: 0 0 0 2px rgba(217,113,75,.18);
  margin-bottom: 12px;
}
.so-recent-name {
  font-family: var(--so-serif);
  color: var(--so-mare);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 6px;
  letter-spacing: -.005em;
}
.so-recent-disc {
  font-family: var(--so-sans);
  color: var(--so-pietra-soft);
  font-size: 13px;
  line-height: 1.35;
  margin: 0 0 12px;
  min-height: 36px;
}
.so-recent-badge {
  font-family: var(--so-sans);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--so-terracotta);
  font-weight: 700;
}

/* ============================================================
   FOOTER - restyle Mediterraneo
   Override Astra footer builder: sfondo mare scuro, social uniformi crema,
   copy sabbia, tipografia pulita
   ============================================================ */
.site-footer {
  background: var(--so-mare-scuro) !important;
  color: var(--so-sabbia) !important;
  font-family: var(--so-sans) !important;
}
.site-footer * { color: var(--so-sabbia); }
.site-footer .site-primary-footer-wrap,
.site-footer .ast-builder-grid-row-container-inner {
  background: transparent !important;
  padding: 56px 24px 40px !important;
}
.site-footer .ast-builder-footer-grid-columns {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 22px !important;
  max-width: var(--so-max);
  margin: 0 auto;
}
/* Social icons unificati: forza colore crema, niente sfondi colorati */
.site-footer .footer-social-inner-wrap a.ast-builder-social-element {
  --color: var(--so-sabbia) !important;
  --background-color: transparent !important;
  background: transparent !important;
  color: var(--so-sabbia) !important;
  border: 1.5px solid rgba(246,240,230,.35) !important;
  border-radius: 50% !important;
  width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 6px !important;
  transition: all .25s ease;
  padding: 0 !important;
}
.site-footer .footer-social-inner-wrap a.ast-builder-social-element:hover {
  background: var(--so-terracotta) !important;
  border-color: var(--so-terracotta) !important;
  color: #fff !important;
  transform: translateY(-2px);
}
.site-footer .footer-social-inner-wrap a.ast-builder-social-element svg {
  width: 18px !important;
  height: 18px !important;
  fill: currentColor !important;
}
.site-footer .footer-social-inner-wrap a.ast-builder-social-element .social-item-label {
  display: none !important;
}
.site-footer .ast-footer-copyright p {
  font-family: var(--so-sans) !important;
  color: var(--so-sabbia) !important;
  font-size: 13px !important;
  letter-spacing: .01em;
  text-align: center;
  margin: 0;
  opacity: .85;
}
.site-footer .ast-footer-copyright a {
  color: var(--so-terracotta) !important;
  text-decoration: none !important;
  border-bottom: 1px dotted rgba(217,113,75,.5);
  padding-bottom: 1px;
}
.site-footer .ast-footer-copyright a:hover {
  color: #fff !important;
  border-bottom-color: #fff;
}
/* Sopra-footer marca: piccola firma del brand prima del copy */
.site-footer::before {
  content: '';
  display: block;
  width: 56px;
  height: 3px;
  background: var(--so-terracotta);
  border-radius: 2px;
  margin: 0 auto;
  transform: translateY(40px);
}

/* ============================================================
   PAGINA SERVIZI - layout vantaggi + tabella PMP
   ============================================================ */
body.page-id-3208 .entry-title {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: clamp(36px, 4.6vw, 56px) !important;
  text-align: center;
  letter-spacing: -.02em;
  margin-bottom: 16px !important;
}
body.page-id-3208 .so-lead {
  text-align: center;
  font-size: 18px;
  color: var(--so-pietra-soft);
  max-width: 760px;
  margin: 0 auto 48px;
  line-height: 1.6;
}
body.page-id-3208 h2 {
  text-align: center;
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: clamp(28px, 3.4vw, 38px) !important;
  margin: 56px 0 28px !important;
  letter-spacing: -.015em;
}
body.page-id-3208 .so-vantaggi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1080px;
  margin: 0 auto 24px;
}
@media (max-width: 980px) { body.page-id-3208 .so-vantaggi-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { body.page-id-3208 .so-vantaggi-grid { grid-template-columns: 1fr; } }
body.page-id-3208 .so-vantaggio {
  background: var(--so-crema);
  border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-m);
  padding: 28px 22px 24px;
  text-align: center;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
body.page-id-3208 .so-vantaggio:hover {
  transform: translateY(-3px);
  box-shadow: var(--so-ombra-m);
  border-color: var(--so-terracotta);
}
body.page-id-3208 .so-vantaggio-ico {
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--so-sabbia);
  color: var(--so-terracotta);
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
body.page-id-3208 .so-vantaggio h3 {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: 18px !important;
  margin: 0 0 10px !important;
  text-align: center !important;
}
body.page-id-3208 .so-vantaggio p {
  font-family: var(--so-sans) !important;
  color: var(--so-pietra-soft) !important;
  font-size: 14px !important;
  line-height: 1.55;
  margin: 0 !important;
}
/* Tabella PMP - card piano */
body.page-id-3208 #pmpro_levels_table,
body.page-id-3208 .pmpro_levels_table,
body.page-id-3208 .pmpro_table_compare {
  background: transparent !important;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 18px !important;
  width: 100% !important;
  max-width: 880px !important;
  margin: 0 auto 40px !important;
}
body.page-id-3208 .pmpro_levels_table thead,
body.page-id-3208 #pmpro_levels_table thead {
  display: none !important;
}
body.page-id-3208 .pmpro_levels_table tbody tr,
body.page-id-3208 #pmpro_levels_table tbody tr {
  background: var(--so-crema) !important;
  border: 1px solid var(--so-bordo) !important;
  border-radius: var(--so-r-m) !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr auto !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 20px 28px !important;
  box-shadow: var(--so-ombra-s);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
body.page-id-3208 .pmpro_levels_table tbody tr:hover,
body.page-id-3208 #pmpro_levels_table tbody tr:hover {
  transform: translateY(-2px);
  box-shadow: var(--so-ombra-m);
  border-color: var(--so-terracotta);
}
body.page-id-3208 .pmpro_levels_table tbody td,
body.page-id-3208 #pmpro_levels_table tbody td {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  font-family: var(--so-sans) !important;
  color: var(--so-pietra) !important;
}
body.page-id-3208 .pmpro_levels_table tbody td:first-child,
body.page-id-3208 #pmpro_levels_table tbody td:first-child {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em;
}
body.page-id-3208 .pmpro_levels_table tbody td:nth-child(2),
body.page-id-3208 #pmpro_levels_table tbody td:nth-child(2) {
  font-size: 16px !important;
  color: var(--so-pietra-soft) !important;
  font-weight: 600;
}
body.page-id-3208 .pmpro_levels_table tbody a.pmpro_btn,
body.page-id-3208 #pmpro_levels_table tbody a.pmpro_btn,
body.page-id-3208 .pmpro_btn-select {
  background: var(--so-terracotta) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px !important;
  padding: 12px 28px !important;
  font-family: var(--so-sans) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .015em;
  text-decoration: none !important;
  display: inline-block;
  transition: background .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 4px 14px rgba(217,113,75,.25);
}
body.page-id-3208 .pmpro_levels_table tbody a.pmpro_btn:hover,
body.page-id-3208 .pmpro_btn-select:hover {
  background: var(--so-terracotta-d) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(217,113,75,.35);
}
@media (max-width: 720px) {
  body.page-id-3208 .pmpro_levels_table tbody tr,
  body.page-id-3208 #pmpro_levels_table tbody tr {
    grid-template-columns: 1fr !important;
    text-align: center;
    gap: 8px !important;
  }
}

/* Piani Gratuito vs Plus - card grandi narrative */
body.page-id-3208 .so-piani-sub {
  text-align: center !important;
  font-size: 17px !important;
  color: var(--so-pietra-soft) !important;
  margin: 0 auto 36px !important;
  max-width: 640px;
}
body.page-id-3208 .so-piani {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  max-width: 980px;
  margin: 0 auto 40px;
}
body.page-id-3208 .so-piani-3 {
  grid-template-columns: repeat(3, 1fr);
  max-width: 1240px;
  gap: 24px;
}
@media (max-width: 1080px) { body.page-id-3208 .so-piani-3 { grid-template-columns: 1fr; max-width: 600px; } }
@media (max-width: 820px) { body.page-id-3208 .so-piani { grid-template-columns: 1fr; } }
body.page-id-3208 .so-piano {
  position: relative;
  background: var(--so-crema);
  border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-l);
  padding: 38px 32px 32px;
  display: flex;
  flex-direction: column;
  transition: transform .25s, box-shadow .25s, border-color .25s;
  box-shadow: var(--so-ombra-s);
}
body.page-id-3208 .so-piano:hover {
  transform: translateY(-4px);
  box-shadow: var(--so-ombra-m);
}
body.page-id-3208 .so-piano-plus {
  background: linear-gradient(160deg, var(--so-crema) 0%, var(--so-sabbia) 100%);
  border: 2px solid var(--so-terracotta);
  box-shadow: 0 18px 48px rgba(217,113,75,.18);
}
body.page-id-3208 .so-piano-badge {
  position: absolute;
  top: -14px;
  right: 28px;
  background: var(--so-terracotta);
  color: #fff;
  font-family: var(--so-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 100px;
  box-shadow: 0 6px 18px rgba(217,113,75,.35);
}
body.page-id-3208 .so-piano-head {
  text-align: center;
  border-bottom: 1px solid var(--so-bordo);
  padding-bottom: 24px;
  margin-bottom: 24px;
}
body.page-id-3208 .so-piano-eyebrow {
  font-family: var(--so-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--so-terracotta);
  margin-bottom: 8px;
}
body.page-id-3208 .so-piano-titolo {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: 36px !important;
  font-weight: 600 !important;
  margin: 0 0 14px !important;
  text-align: center !important;
  letter-spacing: -.02em;
}
body.page-id-3208 .so-piano-prezzo {
  font-family: var(--so-serif);
  color: var(--so-mare);
  font-size: 56px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.03em;
}
body.page-id-3208 .so-piano-valuta {
  font-size: 32px;
  vertical-align: super;
  color: var(--so-pietra-soft);
  margin-left: 4px;
}
body.page-id-3208 .so-piano-cadenza {
  font-family: var(--so-sans);
  font-size: 14px;
  color: var(--so-pietra-soft);
  margin-top: 6px;
}
body.page-id-3208 .so-piano-features {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 28px !important;
  flex-grow: 1;
}
body.page-id-3208 .so-piano-features li {
  font-family: var(--so-sans) !important;
  font-size: 15px !important;
  color: var(--so-pietra) !important;
  padding: 10px 0 !important;
  border-bottom: 1px dashed rgba(231,222,206,.6);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.45;
}
body.page-id-3208 .so-piano-features li:last-child {
  border-bottom: 0;
}
body.page-id-3208 .so-check {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--so-sabbia);
  color: var(--so-mare);
  font-size: 14px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
body.page-id-3208 .so-bonus {
  background: var(--so-terracotta) !important;
  color: #fff !important;
}
body.page-id-3208 .so-limit {
  background: rgba(107,101,92,.12) !important;
  color: var(--so-pietra-soft) !important;
}
body.page-id-3208 .so-piano-features li em {
  font-style: italic;
  color: var(--so-pietra-soft);
  font-weight: 400;
}
body.page-id-3208 .so-piano-prod {
  background: linear-gradient(160deg, var(--so-crema) 0%, #F1EDE2 100%);
  border: 2px solid var(--so-macchia);
  box-shadow: 0 14px 38px rgba(110,139,91,.16);
}
body.page-id-3208 .so-piano-prod .so-piano-eyebrow { color: var(--so-macchia); }
body.page-id-3208 .so-piano-prezzo-tbd {
  font-size: 32px !important;
  color: var(--so-mare) !important;
}
body.page-id-3208 .so-piano-cta-prod {
  background: var(--so-macchia) !important;
  box-shadow: 0 6px 18px rgba(110,139,91,.3);
}
body.page-id-3208 .so-piano-cta-prod:hover {
  background: #58724A !important;
  box-shadow: 0 8px 22px rgba(110,139,91,.4);
}
body.page-id-3208 .so-piano-features em {
  color: var(--so-terracotta);
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
  margin-left: 4px;
}
body.page-id-3208 .so-piano-cta {
  background: var(--so-mare) !important;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 100px !important;
  padding: 14px 28px !important;
  font-family: var(--so-sans) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  text-align: center;
  display: block;
  transition: background .2s, transform .15s, box-shadow .2s;
}
body.page-id-3208 .so-piano-cta:hover {
  background: var(--so-mare-scuro) !important;
  transform: translateY(-1px);
}
body.page-id-3208 .so-piano-cta-primary {
  background: var(--so-terracotta) !important;
  box-shadow: 0 6px 18px rgba(217,113,75,.3);
}
body.page-id-3208 .so-piano-cta-primary:hover {
  background: var(--so-terracotta-d) !important;
  box-shadow: 0 8px 22px rgba(217,113,75,.4);
}
body.page-id-3208 .so-piano-nota {
  font-family: var(--so-sans);
  font-size: 12px;
  color: var(--so-pietra-soft);
  text-align: center;
  margin-top: 12px;
  letter-spacing: .02em;
}
body.page-id-3208 .so-piani-faq {
  text-align: center;
  margin: 24px auto 0;
  font-family: var(--so-sans);
  color: var(--so-pietra-soft);
  font-size: 15px;
}
body.page-id-3208 .so-piani-faq a {
  color: var(--so-terracotta);
  text-decoration: underline;
}
body.page-id-3208 .so-piani-faq a:hover {
  color: var(--so-mare);
}

/* ============================================================
   REGISTER PAGE - layout pulito mediterraneo
   Form FluentForm singola colonna su sfondo crema con vantaggi a fianco
   ============================================================ */
body.page-id-2136 #content,
body.page-id-2136 .site-content {
  background: var(--so-sabbia);
  padding-top: 56px !important;
  padding-bottom: 72px;
}
body.page-id-2136 .entry-header,
body.page-id-2136 .entry-title {
  max-width: var(--so-max);
  margin: 0 auto 24px;
  padding: 0 24px;
}
body.page-id-2136 .entry-title {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: clamp(34px, 4.4vw, 52px) !important;
  letter-spacing: -.02em;
  text-align: center;
  margin-bottom: 12px !important;
}
body.page-id-2136 .entry-content {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 24px;
}
body.page-id-2136 .entry-content > p:first-of-type {
  text-align: center;
  font-size: 18px;
  color: var(--so-pietra-soft);
  margin-bottom: 32px;
}
body.page-id-2136 .fluentform,
body.page-id-2136 .ff-default {
  background: var(--so-crema) !important;
  border: 1px solid var(--so-bordo) !important;
  border-radius: var(--so-r-l) !important;
  padding: 36px 32px !important;
  box-shadow: var(--so-ombra-m);
  max-width: 640px;
  margin: 0 auto;
}
body.page-id-2136 .fluentform .ff-el-input--label label,
body.page-id-2136 .fluentform label {
  font-family: var(--so-sans) !important;
  color: var(--so-mare) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  margin-bottom: 6px !important;
}
body.page-id-2136 .fluentform .ff-el-input--content input,
body.page-id-2136 .fluentform .ff-el-input--content textarea,
body.page-id-2136 .fluentform .ff-el-input--content select {
  border: 1.5px solid var(--so-bordo) !important;
  border-radius: var(--so-r-s) !important;
  padding: 12px 14px !important;
  font-family: var(--so-sans) !important;
  font-size: 15px !important;
  background: #fff !important;
  color: var(--so-pietra) !important;
  transition: border-color .2s, box-shadow .2s;
}
body.page-id-2136 .fluentform .ff-el-input--content input:focus,
body.page-id-2136 .fluentform .ff-el-input--content textarea:focus,
body.page-id-2136 .fluentform .ff-el-input--content select:focus {
  border-color: var(--so-mare) !important;
  box-shadow: 0 0 0 3px rgba(14,90,94,.14) !important;
  outline: none !important;
}
body.page-id-2136 .fluentform button[type="submit"],
body.page-id-2136 .fluentform .ff-btn-submit {
  background: var(--so-terracotta) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px !important;
  padding: 14px 36px !important;
  font-family: var(--so-sans) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  letter-spacing: .01em;
  cursor: pointer;
  transition: background .2s, transform .15s;
  width: 100%;
  margin-top: 8px;
}
body.page-id-2136 .fluentform button[type="submit"]:hover,
body.page-id-2136 .fluentform .ff-btn-submit:hover {
  background: var(--so-terracotta-d) !important;
  transform: translateY(-1px);
}
body.page-id-2136 .fluentform .ff-el-group {
  margin-bottom: 20px !important;
}
body.page-id-2136 .fluentform .ff_form_instance_wrap {
  background: transparent !important;
}
/* Eventuali Astra page wrapper su register */
body.page-id-2136 .ast-page-builder-template .entry-content { padding: 0 !important; }
body.page-id-2136 article.page { background: transparent; }

/* Form custom operator-form (itl-operators-filter plugin): override aggressivo */
body.page-id-2136 .operator-form,
body.page-id-2136 form.operator-form {
  background: var(--so-crema) !important;
  border: 1px solid var(--so-bordo) !important;
  border-radius: var(--so-r-l) !important;
  padding: 36px 32px !important;
  box-shadow: var(--so-ombra-m) !important;
  max-width: 820px;
  margin: 0 auto !important;
  font-family: var(--so-sans) !important;
  color: var(--so-pietra) !important;
}
body.page-id-2136 .operator-form .row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 18px !important;
  margin: 0 !important;
}
body.page-id-2136 .operator-form .row > [class*="col-"] {
  flex: 1 1 calc(50% - 9px) !important;
  min-width: 240px !important;
  padding: 0 !important;
}
body.page-id-2136 .operator-form .row > .col-12 {
  flex: 1 1 100% !important;
}
body.page-id-2136 .operator-form .form-group {
  margin-bottom: 16px !important;
}
body.page-id-2136 .operator-form label {
  font-family: var(--so-sans) !important;
  color: var(--so-mare) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  margin-bottom: 6px !important;
  display: block !important;
}
body.page-id-2136 .operator-form input[type="text"],
body.page-id-2136 .operator-form input[type="email"],
body.page-id-2136 .operator-form input[type="tel"],
body.page-id-2136 .operator-form input[type="number"],
body.page-id-2136 .operator-form input[type="password"],
body.page-id-2136 .operator-form input[type="file"],
body.page-id-2136 .operator-form textarea,
body.page-id-2136 .operator-form select {
  border: 1.5px solid var(--so-bordo) !important;
  border-radius: var(--so-r-s) !important;
  padding: 12px 14px !important;
  font-family: var(--so-sans) !important;
  font-size: 15px !important;
  background: #fff !important;
  color: var(--so-pietra) !important;
  width: 100% !important;
  box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s;
}
body.page-id-2136 .operator-form input:focus,
body.page-id-2136 .operator-form textarea:focus,
body.page-id-2136 .operator-form select:focus {
  border-color: var(--so-mare) !important;
  box-shadow: 0 0 0 3px rgba(14,90,94,.14) !important;
  outline: none !important;
}
body.page-id-2136 .operator-form .form-check {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 8px 0 !important;
  padding: 0 !important;
}
body.page-id-2136 .operator-form .form-check-input {
  width: 18px !important;
  height: 18px !important;
  margin-top: 3px !important;
  accent-color: var(--so-mare);
}
body.page-id-2136 .operator-form .form-check-label {
  font-size: 14px !important;
  color: var(--so-pietra) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
}
body.page-id-2136 .operator-form button[type="submit"],
body.page-id-2136 .operator-form input[type="submit"],
body.page-id-2136 .operator-form .btn-submit,
body.page-id-2136 .operator-form .btn-primary {
  background: var(--so-terracotta) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px !important;
  padding: 14px 36px !important;
  font-family: var(--so-sans) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  letter-spacing: .01em;
  cursor: pointer;
  width: 100% !important;
  margin-top: 18px !important;
  box-shadow: 0 6px 18px rgba(217,113,75,.25) !important;
  transition: background .2s, transform .15s, box-shadow .2s;
}
body.page-id-2136 .operator-form button[type="submit"]:hover,
body.page-id-2136 .operator-form input[type="submit"]:hover,
body.page-id-2136 .operator-form .btn-submit:hover {
  background: var(--so-terracotta-d) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 22px rgba(217,113,75,.35) !important;
}
body.page-id-2136 .operator-form small,
body.page-id-2136 .operator-form .form-text,
body.page-id-2136 .operator-form .text-muted {
  color: var(--so-pietra-soft) !important;
  font-size: 12px !important;
  margin-top: 4px !important;
  display: block !important;
}
body.page-id-2136 .operator-form h3,
body.page-id-2136 .operator-form h4 {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  margin: 28px 0 14px !important;
  font-size: 22px !important;
}

/* Hero compatto (audio feedback Dario 2026-06-06): tutto centrato, h1 piu piccolo, search compatto, hint dentro box accanto a CERCA, CTA primary */
body.home .so-hero-compact .so-wrap {
  max-width: 880px !important;
  margin: 0 auto !important;
  text-align: center !important;
  display: flex;
  flex-direction: column;
  align-items: center;
}
body.home .so-hero-compact .so-eyebrow {
  font-family: var(--so-sans);
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--so-terracotta) !important;
  background: rgba(14,68,72,.32);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 8px 18px;
  border-radius: 100px;
  display: inline-block;
  margin: 0 auto 22px !important;
}
body.home .so-hero-compact h1 {
  font-family: var(--so-serif) !important;
  font-size: clamp(40px, 5.2vw, 64px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.025em !important;
  margin: 0 auto 16px !important;
  color: #fff !important;
  text-shadow: 0 4px 24px rgba(0,0,0,.22);
  text-align: center !important;
}
body.home .so-hero-compact .so-sub {
  font-family: var(--so-sans);
  font-size: 17px !important;
  line-height: 1.45;
  color: rgba(255,255,255,.92) !important;
  max-width: 620px;
  margin: 0 auto 26px !important;
  text-shadow: 0 2px 14px rgba(0,0,0,.22);
  text-align: center !important;
}
body.home .so-search-wrap-sm {
  max-width: 820px !important;
  width: 100%;
  margin: 0 auto !important;
  padding: 18px 22px 14px !important;
  border-radius: 22px !important;
  position: relative;
}
body.home .so-search-hint-inline,
body.home #itlItemFilter .search-widget .so-search-hint-inline {
  font-family: var(--so-sans);
  font-size: 13px;
  color: var(--so-pietra-soft) !important;
  text-align: right !important;
  padding: 14px 4px 4px !important;
  margin: 12px 0 0 !important;
  border-top: 1px dashed var(--so-bordo);
  font-style: italic;
  letter-spacing: .01em;
  background: transparent !important;
  width: 100%;
  display: block;
}
body.home .so-search-hint-inline strong,
body.home #itlItemFilter .search-widget .so-search-hint-inline strong {
  color: var(--so-terracotta) !important;
  font-weight: 700;
  font-style: normal;
}
@media (max-width: 720px) {
  body.home .so-search-hint-inline { text-align: center !important; }
}
body.home .so-hero-cta {
  text-align: center !important;
  margin: 24px auto 0 !important;
  width: 100%;
  display: flex;
  justify-content: center;
}

/* Widget Vue itl: uniformare altezza campi (su mobile il campo Nome si gonfia) */
body.home #itlItemFilter input,
body.home #itlItemFilter input[type="text"],
body.home #itlItemFilter input[type="search"],
body.home #itlItemFilter select,
body.home #itlItemFilter .form-control,
body.home #itlItemFilter .vs__search,
body.home #itlItemFilter .multiselect__input,
body.home #itlItemFilter textarea {
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  padding: 12px 18px !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  box-sizing: border-box !important;
  border-radius: 100px !important;
  resize: none !important;
}
body.home #itlItemFilter .search-widget > * {
  margin-bottom: 10px;
}
body.home #itlItemFilter .search-widget .vs__dropdown-toggle,
body.home #itlItemFilter .search-widget .multiselect {
  height: 52px !important;
  min-height: 52px !important;
  border-radius: 100px !important;
}
@media (max-width: 720px) {
  body.home .so-btn-primary { width: auto !important; min-width: 260px; }
}
body.home .so-btn-primary {
  background: var(--so-terracotta) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px !important;
  padding: 16px 32px !important;
  font-family: var(--so-sans) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: .015em;
  text-decoration: none !important;
  display: inline-block;
  box-shadow: 0 8px 22px rgba(217,113,75,.35);
  transition: background .2s, transform .15s, box-shadow .2s;
}
body.home .so-btn-primary:hover {
  background: var(--so-terracotta-d) !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(217,113,75,.45);
}

/* Pagina /corsi-ed-eventi/ - lista eventi tutti */
body.page-id-102 .so-events-page {
  max-width: var(--so-max);
  margin: 0 auto;
  padding: 0 24px 48px;
}
body.page-id-102 .so-events-intro {
  text-align: center;
  font-size: 17px;
  color: var(--so-pietra-soft);
  max-width: 720px;
  margin: 12px auto 40px;
  line-height: 1.55;
}
body.page-id-102 .so-events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
@media (max-width: 920px) { body.page-id-102 .so-events-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { body.page-id-102 .so-events-grid { grid-template-columns: 1fr; } }
body.page-id-102 .so-events-grid .so-card {
  background: var(--so-crema);
  border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-m);
  overflow: hidden;
  text-decoration: none !important;
  color: inherit !important;
  display: flex;
  flex-direction: column;
  transition: transform .25s, box-shadow .25s, border-color .25s;
  box-shadow: var(--so-ombra-s);
}
body.page-id-102 .so-events-grid .so-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--so-ombra-m);
  border-color: var(--so-terracotta);
}
body.page-id-102 .so-events-grid .so-ph {
  height: 200px;
  background-size: cover;
  background-position: center;
  position: relative;
}
body.page-id-102 .so-events-grid .so-ph .so-tag {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  right: auto !important;
  bottom: auto !important;
  width: auto !important;
  height: auto !important;
  background: var(--so-terracotta) !important;
  color: #fff !important;
  font-family: var(--so-sans) !important;
  font-size: 11px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  padding: 6px 12px !important;
  border-radius: 100px !important;
  box-shadow: 0 4px 12px rgba(217,113,75,.3) !important;
  display: inline-block !important;
  line-height: 1.4 !important;
}
body.page-id-102 .so-events-grid .so-body {
  padding: 18px 18px 20px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
body.page-id-102 .so-events-grid .so-body h3 {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: 19px !important;
  margin: 0 0 10px !important;
  letter-spacing: -.01em;
  line-height: 1.25;
}
body.page-id-102 .so-events-grid .so-body p {
  font-family: var(--so-sans);
  color: var(--so-pietra-soft);
  font-size: 14px;
  line-height: 1.45;
  margin: 0 0 14px;
  flex-grow: 1;
}
body.page-id-102 .so-events-grid .so-more {
  font-family: var(--so-sans);
  font-size: 13px;
  font-weight: 700;
  color: var(--so-terracotta);
  letter-spacing: .03em;
  text-transform: uppercase;
}
body.page-id-102 .so-events-empty {
  text-align: center;
  background: var(--so-crema);
  border: 1px solid var(--so-bordo);
  border-radius: var(--so-r-l);
  padding: 56px 32px;
  max-width: 640px;
  margin: 0 auto;
}
body.page-id-102 .so-events-empty h3 {
  font-family: var(--so-serif) !important;
  color: var(--so-mare) !important;
  font-size: 26px !important;
  margin: 0 0 12px !important;
}

/* Hint inline dentro il box search bar (riga sotto i campi, stesso wrapper crema) */
body.home .so-search-wrap .so-search-hint-inline {
  font-family: var(--so-sans);
  font-size: 13px;
  color: var(--so-pietra-soft);
  text-align: center;
  padding: 12px 16px 4px;
  margin: 4px -8px 0;
  border-top: 1px dashed var(--so-bordo);
  font-style: italic;
  letter-spacing: .01em;
}
body.home .so-search-wrap .so-search-hint-inline strong {
  color: var(--so-terracotta);
  font-weight: 700;
  font-style: normal;
}
