.elementor-316 .elementor-element.elementor-element-b3e1634{--display:flex;}.elementor-316 .elementor-element.elementor-element-3dd0fe7{width:100%;max-width:100%;}@media(min-width:768px){.elementor-316 .elementor-element.elementor-element-b3e1634{--width:100%;}}/* Start custom CSS for html, class: .elementor-element-3dd0fe7 */.sp-services {
    /* Palette */
    --sp-primary: #0e7c7b;
    --sp-primary-dark: #095c5b;
    --sp-accent: #d4eaea;
    --sp-text: #334155;
    --sp-text-light: #64748b;
    --sp-bg: #ffffff;
    --sp-surface: #f8fafc;
    --sp-border: #e2e8f0;
    
    --sp-radius: 16px;
    --sp-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    --sp-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);
    
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: var(--sp-bg);
    color: var(--sp-text);
    line-height: 1.5;
    padding-bottom: 40px;
    margin-bottom: 80px;
  }

  .sp-services *, .sp-services *::before, .sp-services *::after { box-sizing: border-box; }
  .sp-services img { max-width: 100%; display: block; height: auto; border-radius: var(--sp-radius); }
  .sp-services a { text-decoration: none; color: inherit; transition: 0.2s; }
  .sp-services a:hover { color: var(--sp-primary); }
  
  /* LARGHEZZA AGGIORNATA A 1320px */
  .sp-container { width: min(100% - 32px, 1320px); margin: 0 auto; }
  .sp-srLive { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

  /* HERO */
  .sp-hero {
    padding: 60px 0 40px;
    background: radial-gradient(circle at top right, var(--sp-accent) 0%, transparent 40%);
    text-align: center;
  }
  .sp-badge {
    display: inline-block;
    padding: 4px 12px;
    background: #e0f2f1;
    color: var(--sp-primary-dark);
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 99px;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .sp-title {
    font-size: clamp(2rem, 5vw, 3.2rem);
    line-height: 1.1;
    color: #1e293b;
    margin: 0 0 16px;
    font-weight: 800;
  }
  .sp-subtitle {
    font-size: 1.125rem;
    color: var(--sp-text-light);
    max-width: 65ch;
    margin: 0 auto 24px;
  }
  .sp-trust {
    display: flex; justify-content: center; gap: 12px; flex-wrap: wrap;
    list-style: none; padding: 0; margin: 0 0 30px;
  }
  .sp-trust li {
    font-size: 0.9rem; font-weight: 600; color: var(--sp-text);
    display: flex; align-items: center; gap: 6px;
    background: #fff; padding: 6px 14px; border-radius: 99px; border: 1px solid var(--sp-border);
  }
  .sp-note { font-size: 0.9rem; margin-top: 16px; color: var(--sp-text-light); }
  .sp-note a { color: var(--sp-primary); font-weight: 600; text-decoration: underline; }

  /* BUTTONS */
  .sp-ctaRow { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
  .sp-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 48px; padding: 0 24px; border-radius: 99px;
    font-weight: 700; font-size: 1rem; cursor: pointer;
    text-decoration: none;
  }
  a.sp-btnPrimary, a.sp-btnWhatsapp { color: #ffffff !important; }
  .sp-btnPrimary { background: var(--sp-primary); box-shadow: 0 4px 12px rgba(14, 124, 123, 0.3); }
  .sp-btnPrimary:hover { background: var(--sp-primary-dark); transform: translateY(-1px); color: #ffffff !important; }
  .sp-btnWhatsapp { background: #25D366; }
  .sp-btnWhatsapp:hover { background: #1ebc57; color: #ffffff !important; }
  .sp-btnGhost { background: transparent; border: 1px solid var(--sp-border); color: var(--sp-text); }
  .sp-btnGhost:hover { background: var(--sp-surface); border-color: var(--sp-text-light); color: var(--sp-text); }

  /* NAV */
  .sp-switchWrap {
    position: sticky; top: 0; z-index: 100;
    background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--sp-border);
    padding: 12px 0; transition: box-shadow 0.3s;
  }
  .sp-switchWrap.is-stuck { box-shadow: var(--sp-shadow); }
  .sp-switchWrap .sp-container { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
  .sp-switch { display: flex; background: var(--sp-surface); border: 1px solid var(--sp-border); padding: 4px; border-radius: 99px; }
  .sp-tab { background: transparent; border: none; padding: 8px 20px; border-radius: 99px; font-weight: 600; color: var(--sp-text-light); cursor: pointer; transition: 0.2s; font-size: 0.95rem; }
  .sp-tab.is-active { background: #fff; color: var(--sp-primary); box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
  .sp-quickActions { display: flex; gap: 12px; }
  .sp-miniLink { font-weight: 600; font-size: 0.9rem; color: var(--sp-primary); }
  .sp-miniLink:hover { text-decoration: underline; }

  /* CONTENT */
  .sp-content { padding-top: 40px; }
  .sp-panel { display: none; animation: fadeIn 0.4s ease; }
  .sp-panel.is-active { display: block; }
  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  .sp-introBlock { display: grid; gap: 30px; align-items: center; margin-bottom: 40px; }
  .sp-introText h2 { font-size: 1.75rem; color: var(--sp-primary); margin-bottom: 12px; }
  
  /* CARDS */
  .sp-grid { display: grid; gap: 20px; margin-bottom: 30px; }
  .sp-card { background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); padding: 24px; transition: transform 0.2s, box-shadow 0.2s; display: flex; flex-direction: column; height: 100%; }
  .sp-card:hover { transform: translateY(-4px); box-shadow: var(--sp-shadow-hover); border-color: var(--sp-primary); }
  .sp-cardIcon { font-size: 2rem; margin-bottom: 12px; }
  .sp-card h3 { font-size: 1.1rem; margin: 0 0 8px; color: #1e293b; }
  .sp-card p { font-size: 0.95rem; color: var(--sp-text-light); margin: 0; flex-grow: 1; }

  /* ACCORDION (Mobile) */
  .sp-accordion { display: none; } 
  .sp-item { margin-bottom: 10px; border: 1px solid var(--sp-border); border-radius: 12px; overflow: hidden; }
  .sp-item summary { padding: 16px; font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; background: #fff; }
  .sp-item summary::after { content: '+'; font-size: 1.2rem; color: var(--sp-primary); }
  .sp-item[open] summary::after { content: '−'; }
  .sp-itemBody { padding: 0 16px 16px; font-size: 0.95rem; color: var(--sp-text-light); background: #fff; border-top: 1px solid #f1f5f9; }

  /* PROCESS (Sfondo Verde) */
  .sp-process { margin: 60px 0; padding: 60px 20px; background-color: #f0fdfa; border-radius: var(--sp-radius); border: 1px solid #ccfbf1; }
  .sp-h2-center { text-align: center; margin-bottom: 30px; font-size: 1.8rem; }
  .sp-stepsGrid { display: grid; gap: 30px; }
  .sp-step { text-align: center; position: relative; }
  .sp-stepNum { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--sp-primary); color: #fff; font-weight: 700; border-radius: 50%; margin: 0 auto 12px; }

  /* FAQ (Sfondo Grigio) */
  .sp-faqSection { background-color: var(--sp-surface); padding: 60px 20px; border-radius: var(--sp-radius); margin-bottom: 40px; }
  .sp-infoBox { background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); padding: 30px; max-width: 800px; margin: 0 auto; box-shadow: var(--sp-shadow); }
  .sp-faqItem { border-bottom: 1px solid var(--sp-border); margin-bottom: 10px; }
  .sp-faqItem:last-child { border-bottom: none; }
  .sp-faqItem summary { padding: 12px 0; font-weight: 600; cursor: pointer; outline: none; }
  .sp-faqBody { padding-bottom: 12px; color: var(--sp-text-light); }

  /* FOOTER */
  .sp-footerCta { margin-top: 60px; text-align: center; background: #1e293b; color: #fff; padding: 40px 20px; border-radius: var(--sp-radius); }
  .sp-footerContent h2 { color: #fff; margin-bottom: 8px; }
  .sp-footerContent p { color: #94a3b8; margin-bottom: 24px; }
  .sp-hours { display: block; margin-top: 20px; color: #64748b; font-size: 0.85rem; }
  .sp-footerCta a:hover { color: #fff; }

  /* RESPONSIVE */
  @media (min-width: 768px) {
    .sp-introBlock { grid-template-columns: 1fr 1fr; }
    .sp-gridCards { grid-template-columns: repeat(3, 1fr); }
    .sp-stepsGrid { grid-template-columns: repeat(3, 1fr); }
    .sp-accordion { display: none; } 
  }
  @media (max-width: 767px) {
    .sp-gridCards { display: none; } 
    .sp-accordion { display: block; margin-bottom: 30px; }
    .sp-switchWrap .sp-container { flex-direction: column; gap: 10px; }
    .sp-switch { width: 100%; }
    .sp-tab { flex: 1; text-align: center; }
    .sp-quickActions { width: 100%; justify-content: space-between; padding: 0 10px; }
    .sp-card { padding: 16px; }
  }
  .sp-anchor { scroll-margin-top: 140px; }
</style>

<script>
  document.addEventListener("DOMContentLoaded", function() {
    const serviceSections = document.querySelectorAll(".sp-services");
    serviceSections.forEach(root => {
      const tabs = root.querySelectorAll(".sp-tab");
      const panels = root.querySelectorAll(".sp-panel");
      const stickyNav = root.querySelector(".sp-switchWrap");
      const liveRegion = root.querySelector(".sp-srLive");

      function switchTab(targetId) {
        tabs.forEach(t => {
          const isActive = t.dataset.target === targetId;
          t.classList.toggle("is-active", isActive);
          t.setAttribute("aria-selected", isActive);
        });
        panels.forEach(p => {
          const isTarget = p.id.includes("sp-panel-" + targetId);
          p.classList.toggle("is-active", isTarget);
          p.setAttribute("aria-hidden", !isTarget);
        });
        root.querySelectorAll("details[open]").forEach(d => d.removeAttribute("open"));
        if(liveRegion) liveRegion.textContent = `Sezione ${targetId === 'odo' ? 'Odontoiatria' : 'Ginecologia'} attivata.`;
      }

      tabs.forEach(tab => {
        tab.addEventListener("click", () => {
          const target = tab.dataset.target; 
          switchTab(target);
          const mainContent = root.querySelector(".sp-content");
          if(mainContent) {
             const offset = stickyNav ? stickyNav.offsetHeight : 80;
             const elementPosition = mainContent.getBoundingClientRect().top + window.scrollY;
             const offsetPosition = elementPosition - offset - 20;
             window.scrollTo({ top: offsetPosition, behavior: "smooth" });
          }
        });
      });

      window.addEventListener("scroll", () => {
        if(stickyNav) {
           const navTop = stickyNav.getBoundingClientRect().top;
           if(navTop <= 0) stickyNav.classList.add("is-stuck");
           else stickyNav.classList.remove("is-stuck");
        }
      }, { passive: true });

      const tabList = root.querySelector('[role="tablist"]');
      if(tabList) {
        tabList.addEventListener("keydown", e => {
          if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
            const current = document.activeElement;
            if(current.closest('.sp-services') !== root) return;
            const next = e.key === "ArrowRight" ? current.nextElementSibling : current.previousElementSibling;
            if (next && next.classList.contains("sp-tab")) { next.focus(); next.click(); }/* End custom CSS */