﻿/* ==========================================================
   DEMA MEDICAL
   Custom stylesheet
   ========================================================== */
/* ----------------------------------------------------------
   01. Variables
   ---------------------------------------------------------- */ :root {
  /* Brand colors */
  --dema-primary: #7C99AF;
  --dema-dark: #2E2D2C;
  --dema-black: #000000;
  --dema-light: #F2F2F2;
  --dema-white: #FFFFFF;
  /* Transparent colors */
  --dema-black-40: rgba(0, 0, 0, 0.40);
  --dema-black-10: rgba(0, 0, 0, 0.10);
  /* Layout */
  --dema-container-max: 95rem; /* 1520px */
  --dema-container-supermax: 106.25rem; /* 1700px */
  /* Gutters - valori iniziali da verificare sul layout reale */
  --dema-gutter-desktop: 2rem; /* 32px */
  --dema-gutter-tablet: 1.5rem; /* 24px */
  --dema-gutter-mobile: 1.25rem; /* 20px */
--dema-section-space: 5rem; /* 80px */
}
@media (max-width: 991.98px) {
    :root {
        --dema-section-space: 4rem; /* 64px */
    }
}

@media (max-width: 767.98px) {
    :root {
        --dema-section-space: 3rem; /* 48px */
    }
}
/* ----------------------------------------------------------
   02. Base
   ---------------------------------------------------------- */
html {
  font-size: 100%;
}
body {
  color: var(--dema-dark);
}
/* ----------------------------------------------------------
   03. Typography
   ---------------------------------------------------------- */
/*
   H1 / H2 / H3 e Body vengono gestiti nelle Typography
   globali di Helix Ultimate.

   Valori di riferimento:

   Body
   Source Sans 3 Regular
   16px / 26px
   1rem / line-height 1.625

   H1
   Asap Medium 500
   60px / 70px
   3.75rem / line-height 1.167

   H2
   Asap Medium 500
   40px / 50px
   2.5rem / line-height 1.25

   H3
   Asap Medium 500
   28px / 38px
   1.75rem / line-height 1.357
*/
/* Introductory text below the main page heading */
.page-lead {
  font-family: "Asap", sans-serif;
  font-size: 1.5625rem; /* 25px */
  font-weight: 400;
  line-height: 1.4; /* 35px */
  letter-spacing: 0;
}
/* ----------------------------------------------------------
   04. Layout
   ---------------------------------------------------------- */
.container, .sppb-container {
  width: 100%;
  max-width: var(--dema-container-max);
  margin-left: auto;
  margin-right: auto;
}
/* ----------------------------------------------------------
   05. Section spacing
   ---------------------------------------------------------- */
/*
   Valori iniziali.
   Li confermeremo dopo il confronto con le sezioni Figma.
*/
.section {
  padding-top: 6.25rem; /* 100px */
  padding-bottom: 6.25rem; /* 100px */
}
.section--compact {
  padding-top: 4rem; /* 64px */
  padding-bottom: 4rem; /* 64px */
}
.dema-section {
    padding-top: var(--dema-section-space);
    padding-bottom: var(--dema-section-space);
}

.dema-section-notop {
    padding-top: 0;
    padding-bottom: var(--dema-section-space);
}

.dema-section-nobottom {
    padding-top: var(--dema-section-space);
    padding-bottom: 0;
}

.dema-section-nopadding {
    padding-top: 0;
    padding-bottom: 0;
}
/* ----------------------------------------------------------
   06. Background utilities
   ---------------------------------------------------------- */
.bg-light {
  background-color: var(--dema-light) !important;
}
.bg-primary {
  background-color: var(--dema-primary) !important;
}
.bg-dark {
  background-color: var(--dema-dark) !important;
}
.bg-white {
  background-color: var(--dema-white) !important;
}
/* ----------------------------------------------------------
   07. Text utilities
   ---------------------------------------------------------- */
.text-primary {
  color: var(--dema-primary);
}
.text-dark {
  color: var(--dema-dark);
}
.text-white {
  color: var(--dema-white);
}

/* ==========================================================
   IMAGE — FULL WIDTH
   ========================================================== */

.dema-img-fullwidth,
.dema-img-fullwidth .sppb-addon-content,
.dema-img-fullwidth .sppb-addon-single-image-container {
    width: 100%;
    max-width: none;
}

.dema-img-fullwidth .sppb-addon-single-image-container {
    display: block;
}

.dema-img-fullwidth img {
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    object-fit: contain !important;
}
/* ==========================================================
   IMAGE — ROUNDED
   ========================================================== */

.dema-img-rounded,
.dema-img-rounded .sppb-addon-content,
.dema-img-rounded .sppb-addon-single-image-container,
.dema-img-rounded img {
    border-radius: 8px !important;
}

.dema-img-rounded .sppb-addon-single-image-container {
    overflow: hidden;
}

.border-top-row {
	border-top:1px solid var(--dema-primary);
}
/* ----------------------------------------------------------
   08. Header & Navigation
   ---------------------------------------------------------- */
/* TOP BAR
   ---------------------------------------------------------- */
#sp-dema-topbar {
  height: 3.4375rem; /* 55px */
  background-color: var(--dema-primary);
  color: var(--dema-white);
  font-family: "Asap", sans-serif;
  font-size: 1.125rem; /* 18px */
  font-weight: 500;
  line-height: 1.389; /* 25px */
}
/* Tutta la catena strutturale occupa l'altezza della topbar */
#sp-dema-topbar > .container, #sp-dema-topbar .container-inner, #sp-dema-topbar .row, #sp-dema-topbar [class*="col-"], #sp-dema-topbar .sp-column {
  height: 100%;
}
#sp-dema-topbar .sp-column, #sp-dema-topbar .sp-module, #sp-dema-topbar .sp-module-content, #sp-dema-topbar .mod-custom {
  display: flex;
  align-items: center;
}
#sp-dema-topbar p {
  margin: 0;
}
#sp-dema-topbar a {
  color: inherit;
  text-decoration: none;
}
#sp-dema-topbar a:hover, #sp-dema-topbar a:focus {
  color: inherit;
  text-decoration: underline;
}
/* Allineamento orizzontale delle tre posizioni */
#sp-top1 .sp-column {
  justify-content: flex-start;
}
#sp-top2 .sp-column {
  justify-content: center;
}
#sp-top3 .sp-column {
  justify-content: flex-end;
}
/* MAIN HEADER
   ---------------------------------------------------------- */
#sp-header {
  height: 5.0625rem; /* 81px */
  background-color: var(--dema-white);
  box-shadow: none !important;
}
#sp-header > .container, #sp-header > .container-fluid, #sp-header .container-inner, #sp-header .row {
  height: 100%;
}
#sp-header .row {
  align-items: center;
  flex-wrap: nowrap;
}
/* Colonna logo */
#sp-header #sp-logo {
  flex: 0 0 auto;
  width: auto;
}
#sp-header #sp-logo .sp-column {
  height: 100%;
  display: flex;
  align-items: center;
}
/* Logo: override dell'altezza imposta da Helix */
#sp-header .logo {
  height: 5.0625rem; /* 81px */
  display: inline-flex;
  align-items: center;
  margin: 0;
}
#sp-logo img {
  display: block;
  width: 17.8125rem; /* circa 285px */
  max-width: 100%;
  height: auto;
}
/* Colonna menu */
#sp-header #sp-menu {
  flex: 1 1 auto;
  width: auto;
}
#sp-header #sp-menu .sp-column {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
/* Neutralizza lo spostamento a destra introdotto da Helix */
#sp-header .sp-megamenu-parent {
  margin-right: 0;
}
/* MAIN MENU
   ---------------------------------------------------------- */
#sp-menu .sp-megamenu-parent {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}
#sp-menu .sp-megamenu-parent > li > a {
  font-family: "Asap", sans-serif;
  font-size: 1rem; /* 16px */
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  color: var(--dema-dark);
  padding-left: 2rem;
  padding-right: 2rem;
}
#sp-menu .sp-megamenu-parent > li:first-child > a {
  padding-left: 0;
}
#sp-menu .sp-megamenu-parent > li > a:hover, #sp-menu .sp-megamenu-parent > li.active > a {
  color: var(--dema-primary);
}
/* CTA PRENOTA
   ---------------------------------------------------------- */
#sp-menu .sp-megamenu-parent > li:has(a.dema-menu-booking) {
  margin-left: 1.5rem;
}
#sp-menu .sp-megamenu-parent > li > a.dema-menu-booking {
  padding: 0.9375rem 1.25rem; /* 15px 20px */
  font-family: "Asap", sans-serif;
  font-size: 1rem; /* 16px */
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--dema-dark);
  background-color: transparent;
  border: 2px solid var(--dema-primary);
  border-radius: 0.625rem; /* 10px */
  transition:
    background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
#sp-menu .sp-megamenu-parent > li > a.dema-menu-booking:hover, #sp-menu .sp-megamenu-parent > li > a.dema-menu-booking:focus, #sp-menu .sp-megamenu-parent > li.active > a.dema-menu-booking {
  color: var(--dema-white);
  background-color: var(--dema-primary);
  border-color: var(--dema-primary);
}
/* HEADER RESPONSIVE
   ---------------------------------------------------------- */
/* Desktop: nasconde l'hamburger */
@media (min-width: 992px) {
  #sp-header .offcanvas-toggler, #sp-header #offcanvas-toggler {
    display: none !important;
  }
}
/* Tablet / mobile */
@media (max-width: 991.98px) {
  /* Topbar: su mobile resta visibile solo il telefono */
  #sp-dema-topbar #sp-top1, #sp-dema-topbar #sp-top2 {
    display: none;
  }
  #sp-dema-topbar #sp-top3 {
    display: flex;
    flex: 0 0 100%;
    width: 100%;
  }
  #sp-dema-topbar #sp-top3 .sp-column {
    width: 100%;
    justify-content: flex-end;
  }
  /* Mantiene l'header e il wrapper del logo a 81px anche su mobile */
  #sp-header, #sp-header .logo {
    height: 5.0625rem; /* override Helix 60px */
  }
  #sp-header .row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
  }
  #sp-header #sp-logo {
    flex: 0 0 auto;
    width: auto;
  }
  #sp-header #sp-menu {
    flex: 1 1 auto;
    width: auto;
    margin-left: auto;
    padding-right: calc(var(--bs-gutter-x)* .5);
    padding-left: calc(var(--bs-gutter-x)* .5);
  }
  #sp-header #sp-menu .sp-column {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  /* Menu desktop nascosto, hamburger visibile */
  #sp-header .sp-megamenu-parent {
    display: none !important;
  }
  #sp-header .offcanvas-toggler, #sp-header #offcanvas-toggler {
    display: flex !important;
    align-items: center;
    margin: 0;
  }
}
/* Tablet / mobile */
@media (max-width: 991.98px) {
  #sp-header #sp-logo {
    padding-left: 0px;
  }
  #sp-header #sp-menu {
    padding-right: 0px;
  }
}
/* ----------------------------------------------------------
   Offcanvas mobile
   ---------------------------------------------------------- */
.offcanvas-menu {
  background-color: var(--dema-white);
  color: var(--dema-dark);
}
.offcanvas-menu .offcanvas-inner {
  padding: 2rem 1.5rem;
}
.offcanvas-menu .sp-module {
  margin: 0;
}
.offcanvas-menu .menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
.offcanvas-menu .menu > li {
  margin: 0;
  padding: 0;
  text-align: center;
}
.offcanvas-menu .menu > li > a {
  display: inline-block;
  padding: 0.75rem 0;
  font-family: "Asap", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.3;
  text-transform: uppercase;
  text-align: center;
  color: var(--dema-dark);
  text-decoration: none;
}
.offcanvas-menu .menu > li > a:hover, .offcanvas-menu .menu > li.active > a {
  color: var(--dema-primary);
}
.offcanvas-menu .menu > li > a.dema-menu-booking {
  width: fit-content;
  margin: 1rem auto 0;
  padding: 0.9375rem 1.25rem;
  min-width: 10rem;
  font-weight: 700;
  color: var(--dema-dark);
  background-color: transparent;
  border: 2px solid var(--dema-primary);
  border-radius: 0.625rem;
  transition:
    background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.offcanvas-menu .menu > li > a.dema-menu-booking:hover, .offcanvas-menu .menu > li > a.dema-menu-booking:focus {
  color: var(--dema-white);
  background-color: var(--dema-primary);
  border-color: var(--dema-primary);
}
/* ----------------------------------------------------------
   Mobile menu toggler
   ---------------------------------------------------------- */
#sp-header .offcanvas-toggler {
  width: 2rem;
  height: 2rem;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
#sp-header .burger-icon {
  display: inline-block;
  width: 1.5rem; /* 24px */
}
#sp-header .burger-icon > span {
  display: block;
  width: 100%;
  height: 2px;
  margin: 5px 0;
  background-color: var(--dema-dark);
}
/* Close offcanvas
   ---------------------------------------------------------- */
.offcanvas-menu .close-offcanvas {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  color: var(--dema-dark);
  background: transparent;
  border: 0;
}
.offcanvas-menu .close-offcanvas::before, .offcanvas-menu .close-offcanvas::after {
  content: "";
  position: absolute;
  width: 1.5rem;
  height: 2px;
  background-color: var(--dema-dark);
}
.offcanvas-menu .close-offcanvas::before {
  transform: rotate(45deg);
}
.offcanvas-menu .close-offcanvas::after {
  transform: rotate(-45deg);
}
.offcanvas-menu .close-offcanvas > * {
  display: none;
}
.offcanvas-menu .offcanvas-inner {
  padding: 5rem 1.5rem 2rem;
}
/* ----------------------------------------------------------
   09. Components
   ---------------------------------------------------------- */
/*
   Hero
   Buttons
   Cards
   CTA
   FAQ
   Team
   News
   Gallery

   Verranno aggiunti man mano che costruiamo i componenti reali.
*/
/* ==========================================================
   09A. HOME PAGE — componenti reali
   ========================================================== */
.dema-video-main .sppb-addon-single-image .sppb-addon-single-image-container {
	width: -webkit-fill-available;
}
.dema-video-main .sppb-addon-single-image img {
	width: -webkit-fill-available;	
}

/* Hero */
.dema-home-hero {
  max-width: 62rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.dema-hero-title h1, h1.dema-hero-title {
  max-width: 54rem;
  margin: 0 auto;
  font-family: "Asap", sans-serif;
  font-size: 3.75rem;
  font-weight: 500;
  line-height: 1.167;
  letter-spacing: 0;
  color: var(--dema-dark);
}
.dema-page-lead, .dema-page-lead p {
  font-family: "Asap", sans-serif;
  font-size: 2.5rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
}
.dema-hero-lead {
  max-width: 45rem;
  margin: 1.5rem auto 0;
}
.dema-hero-lead p {
  margin: 0;
}
/* Buttons */
.sppb-btn.dema-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.9375rem 1.25rem;
  font-family: "Asap", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--dema-primary);
  border-radius: 0.625rem;
  box-shadow: none;
  transition:
    background-color .2s ease, color .2s ease, border-color .2s ease;
}
.sppb-btn.dema-btn-primary {
  color: var(--dema-white) !important;
  background-color: var(--dema-primary) !important;
  border-color: var(--dema-primary) !important;
}
.sppb-btn.dema-btn-primary:hover, .sppb-btn.dema-btn-primary:focus {
  color: var(--dema-white) !important;
  background-color: var(--dema-dark) !important;
  border-color: var(--dema-dark) !important;
}
.sppb-btn.dema-btn-primary-outline {
  color: var(--dema-white) !important;
  background-color: transparent !important;
  border-color: var(--dema-dark) !important;
}
.sppb-btn.dema-btn-primary-outline:hover, .sppb-btn.dema-btn-primary-outline:focus {
  color: var(--dema-white) !important;
  background-color: var(--dema-dark) !important;
  border-color: var(--dema-dark) !important;
}
.sppb-btn.dema-btn-outline {
  color: var(--dema-dark) !important;
  background-color: transparent !important;
  border-color: var(--dema-primary) !important;
}
.sppb-btn.dema-btn-outline:hover, .sppb-btn.dema-btn-outline:focus {
  color: var(--dema-white) !important;
  background-color: var(--dema-primary) !important;
  border-color: var(--dema-primary) !important;
}
.sppb-btn.dema-btn-dark {
  color: var(--dema-white) !important;
  background-color: var(--dema-dark) !important;
  border-color: var(--dema-dark) !important;
}
.sppb-btn.dema-btn-dark:hover, .sppb-btn.dema-btn-dark:focus {
  color: var(--dema-dark) !important;
  background-color: var(--dema-white) !important;
  border-color: var(--dema-white) !important;
}
/* Le classi custom SPPB sono applicate direttamente al tag <a>. */
.sppb-btn.dema-hero-button {
  margin-top: 2rem;
}
.sppb-btn.dema-hero-button.dema-btn-primary {
  margin-right: 0rem;
}
/* Hero media */
.dema-home-media-wrap {
  max-width: 86rem;
  margin: 0 auto;
}
.dema-home-media {
  overflow: hidden;
  border-radius: .625rem;
}
.dema-home-media iframe, .dema-home-media video, .dema-home-media .sppb-embed-responsive {
  width: 100%;
}
/* Headings */
.dema-section-title h2, h2.dema-section-title {
  margin: 0;
  font-family: "Asap", sans-serif;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0;
  color: var(--dema-dark);
}
/* Perché scegliere Dema Medical */
.dema-home-why .sppb-addon-wrapper:last-child, .dema-home-why .sppb-addon:last-child {
  margin-bottom: 0;
}
/* Why / feature cards */
.dema-home-why, .dema-feature-card {
  max-width: none;
}
.dema-feature-card {
  height: 100%;
  padding: 2rem;
  border: 1px solid var(--dema-primary);
  border-radius: .5rem;
}
.dema-feature-title h3, h3.dema-feature-title {
  margin: 0 0 1rem;
  font-family: "Asap", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.357;
  color: var(--dema-dark);
}
.dema-feature-text, .dema-feature-text p {
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
}
.dema-feature-text p {
  margin: 1em 0px 0px;
}
/* Aree specialistiche */
.dema-services-section {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.dema-services-section::before {
  content: "";
  position: absolute;
  inset: 0 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--dema-light);
  z-index: -1;
}
.dema-services-section {
  position: relative;
  z-index: 0;
}
.dema-services-html {
  margin-top: 2.25rem;
}
.dema-services-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}
.dema-service-card {
  min-width: 0;
}
.dema-service-card-link {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1.05;
  overflow: hidden;
  border-radius: .5rem;
  color: var(--dema-white);
}
.dema-service-card-link:hover {
  color: var(--dema-white);
}
.dema-service-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.dema-service-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .12) 20%, rgba(0, 0, 0, .72) 100%);
}
.dema-service-content {
  position: absolute;
  left: 2rem;
  right: 2rem;
  top: 2rem;
  bottom: auto;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.dema-service-content strong {
  font-family: "Asap", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
}
.dema-service-content > span {
  font-size: .9375rem;
  line-height: 1.4;
}
.dema-service-arrow {
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  display: block;
  width: 3rem;
  height: 3rem;
  background: url("/images/dema-arrow.svg") center / contain no-repeat;
  border: 2px solid rgba(255, 255, 255, .8);
  border-radius: 50%;
  font-size: 0;
  line-height: 0;
}
.dema-service-card-link:hover img {
  transform: scale(1.035);
}
/* Fisioterapia split */
.dema-content-lead {
  font-size: 1.5rem;
  margin-top: 1.5rem;
}
.dema-split-copy, .dema-split-media {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.dema-split-copy {
  padding-right: 4rem;
}
.dema-content-title {
  max-width: 34rem;
}
.dema-content-text {
  max-width: 38rem;
  margin-top: 1.rem;
}
.dema-content-text p {
  margin: 0 0 1rem;
}
.dema-split-copy .dema-btn {
  margin-top: .75rem;
}
.dema-image-frame {
  margin: 0;
  overflow: hidden;
  border-radius: .5rem;
}
.dema-image-frame img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
/* Video nuova sede */
.dema-location-video {
  position: relative;
  min-height: 35rem;
  overflow: hidden;
  border-radius: .5rem;
}
.dema-location-video > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dema-location-video-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .22);
}
.dema-location-video-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  text-align: center;
  color: var(--dema-white);
}
.dema-location-video-content h2 {
  margin: 0;
  font-family: "Asap", sans-serif;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.25;
}
.dema-play {
  display: flex;
  width: 4rem;
  height: 4rem;
  align-items: center;
  justify-content: center;
  padding-left: .2rem;
  border: 2px solid var(--dema-white);
  border-radius: 50%;
}
/* Team — addon Person nativo SP Page Builder
   Riutilizzabile nella pagina Staff e nella preview in Home */
.dema-team-section > .sppb-column-addons > .sppb-section .sppb-container-inner {
  width: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.dema-team-section .sppb-nested-row {
  align-items: stretch;
}

.dema-team-section .sppb-nested-row > .sppb-row-column {
  display: flex;
  margin-bottom: 2rem;
}

.dema-team-section .sppb-nested-row > .sppb-row-column > .sppb-column,
.dema-team-section .sppb-nested-row > .sppb-row-column .sppb-column-addons,
.dema-team-section .addon-root-person,
.dema-team-section .addon-root-person > div,
.dema-team-card,
.dema-team-card > .sppb-addon-content {
  width: 100%;
}

.dema-team-card {
  height: 100%;
}

/* Team — card cliccabile solo quando JS rileva un link valido al profilo */
.dema-team-card.dema-team-card-clickable {
  cursor: pointer;
}

.dema-team-card.dema-team-card-clickable .sppb-person-image img {
  transition: transform .35s ease;
}

.dema-team-card.dema-team-card-clickable:hover .sppb-person-image img,
.dema-team-card.dema-team-card-clickable:focus .sppb-person-image img {
  transform: scale(1.035);
}

.dema-team-card.dema-team-card-clickable:focus-visible {
  outline: 2px solid var(--dema-primary);
  outline-offset: 4px;
  border-radius: .5rem;
}


.dema-team-card > .sppb-addon-content {
  display: flex;
  height: 100%;
  flex-direction: column;
}

.dema-team-card .sppb-person-image {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  margin: 0 0 1rem;
  border-radius: .5rem;
  background: var(--dema-light);
}

.dema-team-card .sppb-person-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}

.dema-team-card .person-content-show-on-hover {
  display: none !important;
}

.dema-team-card .sppb-person-information {
  position: relative;
  margin: 0;
  padding: 0 3.25rem .875rem 0;
  border-bottom: 1px solid var(--dema-primary);
}

.dema-team-card .sppb-person-information > a {
  display: inline-block;
  color: var(--dema-dark);
  text-decoration: none;
}

.dema-team-card .sppb-person-name {
  display: block;
  margin: 0 0 .35rem;
  font-family: "Asap", sans-serif;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--dema-dark);
}

.dema-team-card .sppb-person-designation {
  display: block;
  margin: 0;
  font-family: "Source Sans 3", sans-serif;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--dema-dark);
}

/* Link membro team: occupa l'area informativa e mantiene la freccia cliccabile */
.dema-team-card .sppb-person-information > a[href]:not([href=""]):not([href="#"]) {
    display: block;
    color: var(--dema-dark);
    text-decoration: none;
}

/* Freccia circolare: pseudo-elemento del link, quindi cliccabile */
.dema-team-card .sppb-person-information > a[href]:not([href=""]):not([href="#"])::after {
    content: "";
    position: absolute;
    top: .15rem;
    right: 0;
    width: 2.25rem;
    height: 2.25rem;
    background: url("/images/dema-arrow.svg") center / contain no-repeat;
    filter: brightness(0);
    cursor: pointer;
	border: 2px solid rgba(255, 255, 255, .8) !important;
    border-radius: 50% !important;
}

.dema-team-card .sppb-person-introtext {
  margin: .875rem 0 0;
  font-family: "Source Sans 3", sans-serif;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--dema-dark);
}

/* Preview team in Home: eventuale pulsante sotto la griglia */
.dema-team-button {
  margin-top: 2rem;
  text-align: center;
}

@media (max-width: 991.98px) {
  .dema-team-section .sppb-nested-row > .sppb-row-column {
    margin-bottom: 1.75rem;
  }
}

@media (max-width: 767.98px) {
  .dema-team-section .sppb-nested-row > .sppb-row-column {
    margin-bottom: 2rem;
  }

  .dema-team-card .sppb-person-image {
    margin-bottom: .875rem;
  }

  .dema-team-card .sppb-person-name {
    font-size: 1.125rem;
  }

  .dema-team-card .sppb-person-information {
    padding-right: 3rem;
  }
}

/* FAQ — Accordion nativo SP Page Builder
   Struttura reale SPPB 6.8: il trigger è <button class="sppb-panel-heading"> */
section.dema-faq-section {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
section.dema-faq-section > .sppb-row-container {
  width: 100%;
  max-width: 70rem;
  margin-left: auto;
  margin-right: auto;
}
section.dema-faq-section .sppb-column.dema-faq-section {
  max-width: none;
  margin: 0;
}
.dema-faq-accordion {
  margin-top: 2rem;
}
/* Riga FAQ */
.dema-faq-accordion .sppb-panel {
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--dema-primary) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* Il button è l'area cliccabile reale generata da SPPB 6.8 */
.dema-faq-accordion button.sppb-panel-heading {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 4.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin: 0;
  padding: 1.25rem 3rem 1.25rem 0 !important;
  text-align: left;
  background: transparent !important;
  border: 0 !important;
  color: var(--dema-dark);
  cursor: pointer;
}
/* Domanda */
.dema-faq-accordion .sppb-panel-title {
  display: block;
  flex: 1 1 auto;
  width: auto;
  margin: 0;
  padding: 0;
  font-family: "Asap", sans-serif;
  font-size: 1.25rem; /* 20px */
  font-weight: 500;
  line-height: 1.35;
  color: var(--dema-dark);
  text-align: left;
}
/* Freccia: chevron sottile coerente con il layout Dema */
.dema-faq-accordion button.sppb-panel-heading::after {
  content: "";
  position: absolute;
  top: 50%;
  right: .25rem;
  width: .65rem;
  height: .65rem;
  border-right: 1.5px solid var(--dema-primary);
  border-bottom: 1.5px solid var(--dema-primary);
  transform: translateY(-65%) rotate(45deg);
  transform-origin: center;
  transition: transform .2s ease;
}
/* Aperto: freccia verso l'alto */
.dema-faq-accordion button.sppb-panel-heading[aria-expanded="true"]::after {
  transform: translateY(-35%) rotate(225deg);
}
/* Risposta */
.dema-faq-accordion .sppb-panel-body {
  padding: 0 3rem 1.5rem 0 !important;
  background: transparent !important;
  border: 0 !important;
}
.dema-faq-answer-row, .dema-faq-answer-row .sppb-container-inner, .dema-faq-answer-row .sppb-nested-row, .dema-faq-answer-row .sppb-row-column, .dema-faq-answer-row .sppb-column, .dema-faq-answer-row .sppb-column-addons {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.dema-faq-answer, .dema-faq-answer p {
  max-width: 58rem;
  margin-top: 0;
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem; /* 16px */
  font-weight: 400;
  line-height: 1.625;
  color: var(--dema-dark);
}
.dema-faq-answer p {
  margin-bottom: 0;
}
/* Evita eventuali icone aggiunte dal preset SPPB. */
.dema-faq-accordion .sppb-toggle-direction {
  display: none !important;
}
@media (max-width: 767.98px) {
  .dema-faq-accordion {
    margin-top: 1.5rem;
  }
  .dema-faq-accordion button.sppb-panel-heading {
    min-height: 3.75rem;
    gap: 1rem;
    padding: 1rem 2.25rem 1rem 0 !important;
  }
  .dema-faq-accordion .sppb-panel-title {
    font-size: 1.125rem; /* 18px */
  }
  .dema-faq-accordion button.sppb-panel-heading::after {
    right: .125rem;
    width: .55rem;
    height: .55rem;
  }
  .dema-faq-accordion .sppb-panel-body {
    padding: 0 2.25rem 1.25rem 0 !important;
  }
}
/* Final CTA */
.dema-final-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  padding: 4rem 10rem;
  background: var(--dema-primary);
  border-radius: .5rem;
  color: var(--dema-white);
}
.dema-final-cta-copy {
  max-width: 48rem;
}
.dema-final-cta-copy h2 {
  margin: 0 0 .75rem;
  font-family: "Asap", sans-serif;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--dema-white);
}
.dema-final-cta-copy p {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.55;
}
/* HOME responsive */
@media (max-width: 991.98px) {
  .dema-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dema-split-copy {
    padding-right: 2rem;
  }
  .dema-final-cta {
    padding: 3rem;
  }
}
@media (max-width: 767.98px) {
  .dema-hero-title h1, h1.dema-hero-title {
    font-size: 2.5rem;
    line-height: 1.2;
  }
  .dema-page-lead, .dema-page-lead p {
    font-size: 1.25rem;
    line-height: 1.4;
  }
  .dema-section-title h2, h2.dema-section-title, .dema-location-video-content h2, .dema-final-cta-copy h2 {
    font-size: 2rem;
    line-height: 1.25;
  }
  .dema-feature-title h3, h3.dema-feature-title {
    font-size: 1.5rem;
    line-height: 1.3;
  }
  .sppb-btn.dema-hero-button {
    margin-top: 1rem;
    margin-right: 0;
  }
  .dema-home-why {
    margin-bottom: 2rem;
  }
  .dema-feature-card {
    margin-bottom: 1.25rem;
  }
  .dema-feature-card:last-child {
    margin-bottom: 0;
  }
  .dema-services-grid {
    gap: 1.25rem;
  }
  .dema-services-grid {
    grid-template-columns: 1fr;
  }
  .dema-service-card-link {
    aspect-ratio: 1.25 / 1;
  }
  .dema-split-copy {
    padding-right: 0;
    margin-bottom: 2rem;
  }
  .dema-location-video {
    min-height: 25rem;
  }
  .dema-final-cta {
    display: block;
    padding: 2.5rem 1.5rem;
  }
  .dema-final-cta-button {
    margin-top: 1.5rem;
  }
}
.dema-final-cta-button {
  margin-top: 1.5rem;
}
/* ==========================================================
   09B. PAGINA SERVIZI
   ========================================================== */
/* Hero / introduzione */
.dema-services-intro-main, .dema-services-intro-side {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.dema-services-page-title h1, h1.dema-services-page-title {
  max-width: none;
  margin: 0;
  text-align: left;
}
.dema-services-page-lead {
  max-width: 47rem;
  margin-top: 1.5rem;
}
.dema-services-page-lead, .dema-services-page-lead p {
  font-size: 1.5625rem;
  line-height: 1.4;
  text-align: left;
}
.dema-services-page-lead p, .dema-services-page-intro-copy p {
  margin-bottom: 0;
}
.dema-services-page-intro-copy {
  max-width: 35rem;
  margin-left: auto;
  padding-top: 5.25rem;
  font-size: 1rem;
  line-height: 1.625;
}
/* ----------------------------------------------------------
   Box servizi
   ---------------------------------------------------------- */
/* Container largo Dema Medical — max 1520px */
.dema-container-wide > .sppb-row-container, .sppb-row-container.dema-container-wide {
  width: 100%;
  max-width: var(--dema-container-max);
}
/* Container largo Dema Medical — max 1700px */
.dema-container-superwide > .sppb-row-container, .sppb-row-container.dema-container-superwide {
  width: 100%;
  max-width: var(--dema-container-supermax);
}
/* La nested section usa tutta la larghezza del container Dema (95rem / 1520px). */
.dema-services-page-list .sppb-container, .dema-services-page-list .sppb-container-inner {
  width: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
.dema-services-page-list .sppb-nested-row {
  align-items: stretch;
}
.dema-services-page-list .dema-service-detail-col {
  display: flex;
  margin-bottom: 2rem;
}
/* Propaga l'altezza attraverso i wrapper reali di SPPB */
.dema-service-detail-col .sppb-column-addons, .dema-service-detail-col .sppb-addon-wrapper, .dema-service-detail-col .sppb-addon, .dema-service-detail-col .sppb-addon-image-layouts, .dema-service-detail-col .sppb-addon-content {
  width: 100%;
  height: 100%;
}
/* Box effettivo generato dall'addon Image Layout */
.dema-service-detail-card .sppb-addon-image-layout-wrap {
  height: 100%;
  overflow: hidden;
  border: 2px solid var(--dema-primary);
  border-radius: .5rem;
  background: var(--dema-white);
}
.dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row {
  height: 100%;
  margin: 0;
  align-items: stretch;
}
.dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row > [class*="sppb-col-"] {
  padding: 0;
}
/* Desktop/tablet: testo e immagine alternati.
   Dispari = testo | immagine; pari = immagine | testo. */
/* La classe dema-service-detail-col è sul .sppb-column interno;
   nth-child va quindi applicato al vero figlio della nested row: .sppb-row-column.
   Card dispari: testo | immagine. Card pari: immagine | testo. */
.dema-services-page-list .sppb-nested-row > .sppb-row-column:nth-child(odd) .dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row {
  flex-direction: row-reverse;
}
.dema-services-page-list .sppb-nested-row > .sppb-row-column:nth-child(even) .dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row {
  flex-direction: row;
}
/* Immagine */
.dema-service-detail-card .sppb-addon-image-layout-image, .dema-service-detail-card .sppb-addon-image-layout-image > a {
  display: block;
  width: 100%;
  height: 100%;
}
.dema-service-detail-card .sppb-addon-image-layout-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 21rem;
  object-fit: cover;
}
/* Contenuto */
.dema-service-detail-card .sppb-addon-image-layout-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
  padding: 2rem;
}
.dema-service-detail-card .sppb-image-layout-title {
  margin: 0 0 1rem;
  font-family: "Asap", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--dema-dark);
}
.dema-service-detail-card .sppb-addon-image-layout-text {
  margin: 0;
}
.dema-service-detail-card .sppb-addon-image-layout-text p {
  margin: 0;
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--dema-dark);
}
/* Pulsante: allineato in basso anche con testi di diversa lunghezza */
.dema-service-detail-card .sppb-btn {
  margin-top: auto;
  padding: .75rem 1.125rem;
  font-family: "Asap", sans-serif;
  font-size: .875rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  color: var(--dema-dark) !important;
  background: transparent !important;
  border: 2px solid var(--dema-primary) !important;
  border-radius: .5rem;
  box-shadow: none;
}
.dema-service-detail-card .sppb-btn:hover, .dema-service-detail-card .sppb-btn:focus {
  color: var(--dema-white) !important;
  background: var(--dema-primary) !important;
  border-color: var(--dema-primary) !important;
}
/* Tablet */
@media (max-width: 991.98px) {
  .dema-services-intro-main, .dema-services-intro-side {
    width: 100% !important;
    flex: 0 0 100% !important;
  }
  .dema-services-page-intro-copy {
    max-width: 47rem;
    margin-left: 0;
    padding-top: 1.5rem;
  }
  .dema-services-page-list .dema-service-detail-col {
    margin-bottom: 1.5rem;
  }
  .dema-service-detail-card .sppb-addon-image-layout-content {
    padding: 1.75rem;
  }
  .dema-service-detail-card .sppb-addon-image-layout-image img {
    min-height: 19rem;
  }
}
/* Mobile */
@media (max-width: 767.98px) {
  .dema-services-page-lead, .dema-services-page-lead p {
    font-size: 1.25rem;
    line-height: 1.4;
  }
  .dema-services-page-intro-copy {
    padding-top: 1.25rem;
  }
  .dema-services-page-list .dema-service-detail-col {
    display: block;
    margin-bottom: 1.5rem;
  }
  .dema-service-detail-col .sppb-column-addons, .dema-service-detail-col .sppb-addon-wrapper, .dema-service-detail-col .sppb-addon, .dema-service-detail-col .sppb-addon-image-layouts, .dema-service-detail-col .sppb-addon-content, .dema-service-detail-card .sppb-addon-image-layout-wrap, .dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row {
    height: auto;
  }
  /* Mobile: tutte le card tornano allo stesso ordine verticale. */
  .dema-services-page-list .sppb-nested-row > .sppb-row-column:nth-child(odd) .dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row, .dema-services-page-list .sppb-nested-row > .sppb-row-column:nth-child(even) .dema-service-detail-card .sppb-addon-image-layout-wrap > .sppb-row {
    flex-direction: row;
  }
  .dema-service-detail-card .sppb-addon-image-layout-image, .dema-service-detail-card .sppb-addon-image-layout-image > a {
    height: auto;
  }
  .dema-service-detail-card .sppb-addon-image-layout-image img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }
  .dema-service-detail-card .sppb-addon-image-layout-content {
    height: auto;
    padding: 1.5rem;
  }
  .dema-service-detail-card .sppb-btn {
    margin-top: 1.5rem;
  }
  .dema-services-page-list .dema-service-detail-col:last-child {
    margin-bottom: 0;
  }
}
/* ----------------------------------------------------------
   10. Forms
   ---------------------------------------------------------- */
/*
   Da definire quando realizzeremo form contatti/prenotazione.
*/
/* ----------------------------------------------------------
   11. Footer
   ---------------------------------------------------------- */
/* Footer base
   ---------------------------------------------------------- */
#sp-footer, #sp-footer-bottom {
  background-color: var(--dema-dark);
  color: var(--dema-white);
}
/* ----------------------------------------------------------
   Main footer
   ---------------------------------------------------------- */
#sp-footer {
  padding-top: 4rem;
  padding-bottom: 3rem;
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem; /* 16px */
  font-weight: 400;
  line-height: 1.625; /* 26px */
  letter-spacing: 0;
}
#sp-footer .container-inner {
  border: none;
}
/* Links */
#sp-footer a, #sp-footer-bottom a {
  color: var(--dema-white);
  text-decoration: none;
}
#sp-footer a:hover, #sp-footer-bottom a:hover {
  color: var(--dema-white);
  text-decoration: underline;
}
/* ----------------------------------------------------------
   Brand
   ---------------------------------------------------------- */
.dema-footer-logo img {
  display: block;
  width: auto;
  max-width: 12rem;
  height: auto;
}
.dema-footer-brand p {
  margin: 0 0 0.5rem;
}
/* ----------------------------------------------------------
   Contacts
   ---------------------------------------------------------- */
.dema-footer-contacts {
  text-align: right;
}
.dema-footer-contacts h3 {
  margin: 0 0 1rem;
  font-family: "Asap", sans-serif;
  font-size: 1.75rem; /* 28px */
  font-weight: 500;
  line-height: 1.357; /* 38px */
  letter-spacing: 0;
  color: var(--dema-white);
}
.dema-footer-contacts p {
  margin: 0 0 0.5rem;
}
.dema-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
}
.dema-contact-link i {
  font-size: 0.875em;
  color: var(--dema-white);
}
/* Footer contact icons
   ---------------------------------------------------------- */
.dema-footer-contacts .dema-contact-link {
  justify-content: flex-end;
}
.dema-footer-contacts .dema-contact-link i {
  width: 1.125rem;
  text-align: center;
}
/* Footer social
   ---------------------------------------------------------- */
.dema-footer-social {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}
.dema-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--dema-white);
}
.dema-footer-social i {
  font-size: 1rem;
}
@media (max-width: 767.98px) {
  .dema-footer-contacts .dema-contact-link {
    justify-content: flex-start;
  }
  .dema-footer-social {
    justify-content: flex-start;
  }
}
/* ----------------------------------------------------------
   Bottom footer / Legal
   ---------------------------------------------------------- */
#sp-footer-bottom {
  padding-bottom: 3rem;
  font-family: "Source Sans 3", sans-serif;
  font-size: 0.875rem; /* 14px */
  font-weight: 400;
  line-height: 1.5; /* 21px */
  letter-spacing: 0;
}
#sp-footer-bottom .container-inner {
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}
/* Legal */
.dema-footer-legal p {
  margin: 0;
}
.dema-footer-copyright {
  margin-bottom: 0.75rem !important;
  color: var(--dema-white);
}
.dema-footer-legal-secondary {
  color: rgba(255, 255, 255, 0.55);
}
.dema-footer-legal-secondary p {
  margin: 0;
}
.dema-footer-legal-secondary p:first-child {
  margin-bottom: 0.25rem;
}
/* ----------------------------------------------------------
   Credit
   ---------------------------------------------------------- */
.dema-footer-credit {
  text-align: right;
}
.dema-footer-credit p, #sp-footer-credit p {
  margin: 0 0 0.5rem;
  text-align: right;
}
.dema-footer-credit-logo {
  display: inline-block;
}
.dema-footer-credit-logo img {
  display: block;
  width: auto;
  max-width: 12rem;
  height: auto;
}
/* ----------------------------------------------------------
   Footer responsive
   ---------------------------------------------------------- */
@media (max-width: 767.98px) {
  #sp-footer {
    padding-top: 3rem;
    padding-bottom: 2.5rem;
  }
  #sp-footer-bottom {
    padding-bottom: 2.5rem;
  }
  #sp-footer .row, #sp-footer-bottom .row {
    row-gap: 2rem;
  }
  /* Contacts */
  .dema-footer-contacts {
    text-align: left;
  }
  /* Credit */
  .dema-footer-credit, .dema-footer-credit p, #sp-footer-credit p {
    text-align: left;
  }
}
/* ----------------------------------------------------------
   12. Responsive
   ---------------------------------------------------------- */
@media (max-width: 991.98px) {
  /*
       Regole responsive generali da introdurre dopo aver verificato
       il comportamento reale delle sezioni interne.
       Le regole specifiche dell'header restano nella sezione 08.
    */
}
@media (max-width: 767.98px) {
  #sp-dema-topbar > .container, #sp-header > .container {
    padding-left: var(--dema-gutter-mobile);
    padding-right: var(--dema-gutter-mobile);
  }
  #sp-header .row {
    margin-left: 0;
    margin-right: 0;
  }
}
/* ==========================================================
   09C. DETTAGLIO SERVIZIO
   ========================================================== */
.dema-service-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 5rem
}
.dema-service-page-title h1, h1.dema-service-page-title {
  max-width: none;
  margin: 0;
  text-align: left
}
.dema-service-hero-lead {
  margin-top: 1rem;
  font-family: "Asap", sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.35
}
.dema-service-hero-lead p, .dema-service-hero-text p {
  margin-bottom: 1rem
}
.dema-service-hero-text {
  max-width: 43rem;
  margin-top: .5rem
}
.sppb-btn.dema-service-hero-button {
  margin-top: 1rem
}
/* ----------------------------------------------------------
   Hero dettaglio servizio — immagine
   ---------------------------------------------------------- */

.dema-service-hero-media {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Tutta la catena dell'addon occupa la larghezza disponibile */
.dema-service-hero-media .sppb-column-addons,
.dema-service-hero-media .sppb-addon-wrapper,
.dema-service-hero-media .sppb-addon-image-layouts,
.dema-service-hero-media .sppb-addon-content,
.dema-service-hero-image .sppb-addon-image-layout-wrap {
    width: 100%;
}

/* Neutralizza la struttura 50/50 del preset Card */
.dema-service-hero-image .sppb-addon-image-layout-wrap > .sppb-row {
    margin: 0;
}

.dema-service-hero-image .sppb-addon-image-layout-wrap > .sppb-row > .sppb-col-sm-6:first-child {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    padding: 0;
}

/* La seconda metà del preset non contiene nulla */
.dema-service-hero-image .sppb-addon-image-layout-wrap > .sppb-row > .sppb-col-sm-6:last-child {
    display: none;
}

/* Immagine */
.dema-service-hero-image .sppb-addon-image-layout-image,
.dema-service-hero-image .sppb-addon-image-layout-image > a {
    display: block;
    width: 100%;
}

.dema-service-hero-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1.05;
    object-fit: cover;
    object-position: center;
    border-radius: .5rem;
}
.dema-service-hero-image {
    width: 100%;
    max-width: 35rem; /* 560px */
    margin-left: auto;
}
@media (max-width: 767.98px) {

    .dema-service-hero-media {
        margin-top: 2rem;
    }

    .dema-service-hero-image {
        max-width: none;
        margin-left: 0;
    }

    .dema-service-hero-image img {
        aspect-ratio: 4 / 3;
    }
}
.dema-service-light-section {
  position: relative;
  z-index: 0
}
.dema-service-light-section:before {
  content: "";
  position: absolute;
  inset: 0 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--dema-light);
  z-index: -1
}
.dema-service-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4rem;
  margin-top: 2.5rem
}

/* ----------------------------------------------------------
   Quando rivolgersi al fisioterapista
   ---------------------------------------------------------- */

/* Colonna sinistra */
.dema-service-indications-intro {
    padding-right: 4rem;
}

.dema-service-indications-lead {
    max-width: 31rem;
    margin-top: 1.25rem;
}

.dema-service-indications-lead,
.dema-service-indications-lead p {
    font-family: "Asap", sans-serif;
    font-size: 1.25rem; /* 20px */
    font-weight: 500;
    line-height: 1.4;
    color: var(--dema-dark);
}

.dema-service-indications-lead p {
    margin: 0;
}


/* Colonna destra */
.dema-service-indications-list-wrap {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.dema-service-indications-row,
.dema-service-indications-row .sppb-container-inner {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.dema-service-indications-row .sppb-nested-row {
    align-items: stretch;
}


/* Le due colonne dell'elenco */
.dema-service-indications-col:first-child {
    padding-right: 1rem;
}

.dema-service-indications-col:last-child {
    padding-left: 1rem;
}


/* Singola voce */
.dema-service-indication-item {
    display: flex;
    align-items: center;
    min-height: 3.75rem; /* 60px */

    padding: .75rem 0;

    border-bottom: 1px solid var(--dema-primary);
}

.dema-service-indication-item .sppb-addon-content {
    width: 100%;
}

.dema-service-indication-item p {
    margin: 0;

    font-family: "Source Sans 3", sans-serif;
    font-size: 1rem; /* 16px */
    font-weight: 400;
    line-height: 1.4;

    color: var(--dema-dark);
}

@media (max-width: 991.98px) {

    .dema-service-indications-intro {
        padding-right: 2rem;
    }

    .dema-service-indications-col:first-child {
        padding-right: .75rem;
    }

    .dema-service-indications-col:last-child {
        padding-left: .75rem;
    }
}


@media (max-width: 767.98px) {

    .dema-service-indications-intro {
        padding-right: 0;
        margin-bottom: 2rem;
    }

    .dema-service-indications-lead {
        max-width: none;
        margin-top: 1rem;
    }

    /* Le due colonne dell'elenco diventano una sola */
    .dema-service-indications-row .sppb-row-column {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }

    .dema-service-indications-col:first-child,
    .dema-service-indications-col:last-child {
        padding-left: 0;
        padding-right: 0;
    }

    .dema-service-indication-item {
        min-height: 3.5rem;
    }
}

/* ----------------------------------------------------------
   Come lavoriamo — numerazione step
   ---------------------------------------------------------- */
.dema-process-number {
  width: 3rem; /* 48px */
  height: 3rem; /* 48px */
  margin: 0 0 1.25rem;
}
.dema-process-number .sppb-addon-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin: 0;
  font-family: "Asap", sans-serif;
  font-size: 1.25rem; /* 20px */
  font-weight: 500;
  line-height: 1;
  color: var(--dema-dark);
  border: 1px solid var(--dema-primary);
  border-radius: 50%;
}
/* Titolo immediatamente sotto il numero */
.dema-service-process-step .dema-feature-title h3, .dema-service-process-step h3.dema-feature-title {
  margin-top: 0;
}
/* Testo dello step */
.dema-service-process-step .dema-feature-text {
  margin-top: 0;
}
.dema-service-process-grid h3 {
  margin: 0 0 .75rem;
  font-family: "Asap", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.3
}
.dema-service-process-grid p {
  margin: 0
}
.dema-service-treatments-lead {
  margin-bottom: 2.25rem
}
.dema-treatment-card--plain .dema-service-why-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2rem
}
.dema-service-why-grid .dema-feature-card {
  min-height: 18rem
}
/* ----------------------------------------------------------
   Trattamenti disponibili — dettaglio Fisioterapia
   Struttura nativa SP Page Builder / Image Layouts
   ---------------------------------------------------------- */
.dema-service-treatments-lead {
  max-width: 42rem;
  margin-top: 1rem;
  margin-bottom: 2.25rem;
}
.dema-service-treatments .sppb-container-inner {
  width: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
.dema-treatment-row + .dema-treatment-row {
  margin-top: 1.5rem;
}
.dema-treatment-row .sppb-nested-row {
  align-items: stretch;
}
.dema-treatment-col {
  display: flex;
}
.dema-treatment-col .sppb-column-addons, .dema-treatment-col .sppb-addon-wrapper, .dema-treatment-col .sppb-addon, .dema-treatment-col .sppb-addon-image-layouts, .dema-treatment-col .sppb-addon-content {
  width: 100%;
  height: 100%;
}
.dema-treatment-card-addon .sppb-addon-image-layout-wrap {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1.05;
  min-height: 0;
  overflow: hidden;
  border-radius: .5rem;
  background: var(--dema-primary);
  color: var(--dema-white);
}
.dema-treatment-card-addon .sppb-addon-image-layout-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.dema-treatment-card-addon .sppb-addon-image-layout-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.dema-treatment-card-addon .sppb-addon-image-layout-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  background: var(--dema-black-40);
  pointer-events: none;
}
.dema-treatment-card-addon .sppb-addon-image-layout-content {
  position: absolute;
  z-index: 4;
  top: 1.5rem;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
  margin: 0px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0;
  text-align: left !important;
  color: var(--dema-white);
  background: transparent;
}
.dema-treatment-card-addon .sppb-image-layout-title {
  width: 100%;
  margin: 0 0 .5rem;
  font-family: "Asap", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--dema-white);
  text-align: left !important;
}
.dema-treatment-card-addon h3.sppb-image-layout-title a {
  color: var(--dema-white);
}
.dema-treatment-card-addon .sppb-addon-image-layout-text, .dema-treatment-card-addon .sppb-addon-image-layout-text p {
  width: 100%;
  margin: 0;
  font-family: "Source Sans 3", sans-serif;
  font-size: .9375rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--dema-white);
  text-align: left !important;
}
/* Il bottone SPPB diventa la freccia circolare usata nelle card Home. */
.dema-treatment-card-addon .sppb-btn {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 3rem;
  min-width: 3rem;
  height: 3rem;
  min-height: 3rem;
  margin: 0;
  padding: 0;
  font-size: 0 !important;
  line-height: 0;
  text-indent: -9999px;
  background: url("/images/dema-arrow.svg") center / contain no-repeat !important;
  border: 2px solid rgba(255, 255, 255, .8) !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}
.dema-treatment-card-addon .sppb-btn:hover, .dema-treatment-card-addon .sppb-btn:focus {
  background: url("/images/dema-arrow.svg") center / contain no-repeat !important;
  border-color: var(--dema-white) !important;
}
.dema-treatment-card-addon .sppb-addon-image-layout-wrap:hover .sppb-addon-image-layout-image img {
  transform: scale(1.035);
}
@media (max-width: 991.98px) {
  .dema-treatment-row .sppb-row-column {
    flex: 0 0 50%;
    width: 50%;
    max-width: 50%;
    margin-bottom: 1.5rem;
  }
  .dema-treatment-row + .dema-treatment-row {
    margin-top: 0;
  }
}
@media (max-width: 767.98px) {
  .dema-treatment-row .sppb-row-column {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
  .dema-treatment-card-addon .sppb-addon-image-layout-wrap {
    aspect-ratio: 1.25 / 1;
  }
  .dema-treatment-card-addon .sppb-addon-image-layout-content {
    top: 1.5rem;
    right: 1.5rem;
    bottom: 1.5rem;
    left: 1.5rem;
  }
}
@media(max-width:1199.98px) {
  .dema-service-hero-copy {
    padding-right: 3rem
  }
}
@media(max-width:991.98px) {
  .dema-service-hero-copy, .dema-service-hero-media {
    width: 100% !important;
    flex: 0 0 100% !important
  }
  .dema-service-hero-copy {
    padding-right: 0
  }
  .dema-service-hero-media {
    margin-top: 2.5rem
  }
  .dema-service-hero-image.dema-person-img img {
    aspect-ratio: auto
  }
	.dema-service-hero-image img, .dema-service-hero-media img {
    aspect-ratio: 10/16
  }
  .dema-service-process-grid {
    gap: 2rem
  }
  .dema-service-why-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
  .dema-service-why-grid .dema-feature-card {
    min-height: 0
  }
}
@media(max-width:767.98px) {
  .dema-service-indications h2, .dema-service-process h2, .dema-service-treatments h2, .dema-service-why h2, .dema-faq-html > h2 {
    font-size: 2rem;
    line-height: 1.25
  }
  .dema-service-process-grid {
    gap: 2.5rem;
    margin-top: 2rem
  }
}
.demamedical-puntidiforza.dema-container-wide .sppb-row-container {
  padding: 0px;
}
/* ==========================================================
   PAGINA STUDIO
   ========================================================== */


/* ==========================================================
   STUDIO — La nostra storia
   ========================================================== */
.dema-story-section .sppb-addon-title {
	color: var(--dema-white);
}
.dema-story-section:before {
  content: "";
  position: absolute;
  inset: 0 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--dema-primary);
  z-index: -1
}

.dema-story-row {
    margin-top: 3rem;
}

/* La nested row contiene linea + tre tappe */
.dema-story-row .sppb-nested-row {
    position: relative;
}

/* Linea orizzontale */
.dema-story-row .sppb-nested-row::before {
    content: "";
    position: absolute;

    top: .5rem;
    left: calc(var(--bs-gutter-x) * .5);
    right: calc(var(--bs-gutter-x) * .5);

    height: 1px;
    background-color: rgba(255, 255, 255, .75);

    z-index: 0;
}

/* Singola tappa */
.dema-story-step {
    position: relative;
    z-index: 1;
}

/* Pallino */
.dema-story-step::before {
    content: "";
    display: block;

    width: 1rem;
    height: 1rem;

    margin: 0 0 2rem;

    background-color: var(--dema-white);
    border-radius: 50%;
}

/* Anno */
.dema-story-number {
    margin: 0 0 1rem;
}

.dema-story-number .sppb-addon-title {
    margin: 0;

    font-family: "Source Sans 3", sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;

    color: var(--dema-white);
}

/* Titolo della tappa */
.dema-story-step .dema-feature-title {
    margin: 0 0 1rem;
}

.dema-story-step .dema-feature-title .sppb-addon-title {
    margin: 0;

    font-family: "Asap", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.3;

    color: var(--dema-white);
}

/* Testo */
.dema-story-step .dema-feature-text,
.dema-story-step .dema-feature-text p,
.dema-story-step .dema-feature-text span {
    font-family: "Source Sans 3", sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;

    color: var(--dema-white);
}

.dema-story-step .dema-feature-text p {
    margin: 0;
}

/* ==========================================================
   STUDIO — GALLERY "I NUOVI SPAZI"
   Addon SPPB: Single Image
   ========================================================== */

/* ----------------------------------------------------------
   Struttura generale
   ---------------------------------------------------------- */

.dema-gallerystudio-section .dema-studio-gallery-row {
    width: 100%;
    margin-top: 2rem;
}

/* Le nested section non devono introdurre larghezze proprie */
.dema-gallerystudio-section .dema-studio-gallery-row > .sppb-container-inner {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* Gestiamo il gutter attraverso la row */
.dema-gallerystudio-section .dema-studio-gallery-row .sppb-nested-row {
    width: auto;
    align-items: flex-start;
}


/* ----------------------------------------------------------
   Colonne
   ---------------------------------------------------------- */

.dema-gallerystudio-section .dema-studio-gallery-col {
    width: 100%;
}

/* Tutti i wrapper SPPB devono occupare l'intera colonna */
.dema-gallerystudio-section .dema-studio-gallery-col .sppb-column-addons,
.dema-gallerystudio-section .dema-studio-gallery-col .sppb-addon-wrapper,
.dema-gallerystudio-section .dema-studio-gallery-col .sppb-addon,
.dema-gallerystudio-section .dema-studio-gallery-col .sppb-addon-content,
.dema-gallerystudio-section .dema-studio-gallery-col .sppb-addon-single-image-container {
    width: 100% !important;
    max-width: none !important;
}


/* ----------------------------------------------------------
   Immagini
   ---------------------------------------------------------- */

.dema-gallerystudio-section .dema-studio-gallery-image {
    width: 100% !important;
    max-width: none !important;
    margin: 0;
}

.dema-gallerystudio-section
.dema-studio-gallery-image
.sppb-addon-single-image-container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    overflow: hidden;
    border-radius: .5rem;
}

/* QUESTO è il punto fondamentale */
.dema-gallerystudio-section
.dema-studio-gallery-image
.sppb-addon-single-image-container img {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    height: auto !important;
    min-height: 0 !important;

    object-fit: contain !important;

    margin: 0 !important;
}


/* ----------------------------------------------------------
   Spaziatura verticale tra le righe
   ---------------------------------------------------------- */

.dema-gallerystudio-section
.dema-studio-gallery-row + .dema-studio-gallery-row {
    margin-top: 2rem;
}


/* ----------------------------------------------------------
   Mobile
   ---------------------------------------------------------- */

@media (max-width: 767.98px) {

    .dema-gallerystudio-section .dema-studio-gallery-row {
        margin-top: 1.5rem;
    }

    .dema-gallerystudio-section
    .dema-studio-gallery-row + .dema-studio-gallery-row {
        margin-top: 1.5rem;
    }

}
/* ----------------------------------------------------------
   Immagini — bordo arrotondato
   ---------------------------------------------------------- */

.dema-gallerystudio-section
.dema-studio-gallery-image
.sppb-addon-single-image-container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    overflow: hidden !important;
    border-radius: .5rem !important; /* 8px */
}

.dema-gallerystudio-section
.dema-studio-gallery-image
.sppb-addon-single-image-container img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;

    border-radius: .5rem !important;
    object-fit: contain !important;
}


/* ----------------------------------------------------------
   Mobile — immagini verticali e spaziatura
   ---------------------------------------------------------- */

@media (max-width: 767.98px) {

    /* Spazio tra immagini appartenenti alla stessa nested row */
    .dema-gallerystudio-section
    .dema-studio-gallery-row
    .sppb-nested-row {
        row-gap: 1.25rem !important; /* 20px */
    }

    /* Elimina eventuali margini aggiunti da SPPB */
    .dema-gallerystudio-section
    .dema-studio-gallery-col {
        margin-bottom: 0 !important;
    }

    /* Spazio tra una nested row e la successiva */
    .dema-gallerystudio-section
    .dema-studio-gallery-row + .dema-studio-gallery-row {
        margin-top: 1.25rem !important;
    }

} 
/* ----------------------------------------------------------
   I numeri di Dema Medical
   ---------------------------------------------------------- */
.dema-studio-numbers-section {
  position: relative;
  z-index: 0;
}

.dema-studio-numbers-section::before {
  content: "";
  position: absolute;
  inset: 0 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--dema-light);
  z-index: -1;
}

.dema-studio-numbers-row {
  margin-top: 3rem;
}

.dema-studio-number-value .sppb-addon-title {
  margin: 0 0 .5rem;
  font-family: "Asap", sans-serif;
  font-size: 3rem;
  font-weight: 400;
  line-height: 1;
  color: var(--dema-primary);
}

.dema-studio-number-label .sppb-addon-title {
  margin: 0;
  font-family: "Asap", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--dema-dark);
}

@media (max-width: 991.98px) {
  .dema-story-step {
    padding-right: 2rem;
  }

  .dema-studio-number-item {
    margin-bottom: 2.5rem;
  }
}

@media (max-width: 767.98px) {
  .dema-story-row::before {
    display: none;
  }

  .dema-story-step {
    padding-right: 0;
    margin-bottom: 2.5rem;
  }

  .dema-story-step:last-child {
    margin-bottom: 0;
  }

  .dema-story-step::before {
    margin-bottom: 1.25rem;
  }

  .dema-gallerystudio-section .dema-studio-gallery-row .sppb-row-column {
    margin-bottom: 1.25rem;
  }

  .dema-gallerystudio-section .dema-studio-gallery-row .dema-studio-gallery-image {
    aspect-ratio: 16 / 9;
  }

  .dema-studio-number-value .sppb-addon-title {
    font-size: 2.5rem;
  }
}
/* ==========================================================
   STUDIO — TIMELINE MOBILE
   ========================================================== */

@media (max-width: 767.98px) {

    /* Titolo sezione */
    .dema-story-section .dema-section-title {
        text-align: left;
        margin-bottom: 2.5rem;
    }

    /* -------------------------------------------------------
       ROW DELLA TIMELINE
       ------------------------------------------------------- */

    .dema-story-section .dema-story-row {
        position: relative;
        margin: 0;
    }

    .dema-story-section .dema-story-row > .sppb-container-inner {
        width: 100%;
        padding: 0 !important;
        margin: 0 !important;
    }

    .dema-story-section
    .dema-story-row
    .sppb-nested-row {
        position: relative !important;
    }

    .dema-story-section
    .dema-story-row
    .sppb-nested-row::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;

        left: 1rem !important;
        top: .7rem !important;
        bottom: .7rem !important;

        width: 1px !important;
        height: auto !important;

        background: #fff !important;
        opacity: .75;

        z-index: 1 !important;
    }

    .dema-story-section
    .dema-story-row
    .sppb-nested-row > .sppb-row-column {
        position: relative;
        z-index: 2;
    }


    /* -------------------------------------------------------
       SINGOLA TAPPA
       ------------------------------------------------------- */

    .dema-story-section
    .dema-story-row
    .sppb-nested-row > .sppb-row-column {
        position: relative;
        display: block;
        flex: none !important;
        width: 100% !important;
        max-width: 100% !important;

        padding: 0 0 3.5rem 3.5rem !important;
        margin: 0 !important;
    }

    /* Niente spazio extra dopo l'ultima */
    .dema-story-section
    .dema-story-row
    .sppb-nested-row > .sppb-row-column:last-child {
        padding-bottom: 0 !important;
    }


    /* -------------------------------------------------------
       PALLINI
       ------------------------------------------------------- */

    .dema-story-section
    .dema-story-row
    .sppb-nested-row > .sppb-row-column::before {
        content: "";
        position: absolute;

        left: .55rem;
        top: .25rem;

        width: .9rem;
        height: .9rem;

        background: #fff;
        border-radius: 50%;

        z-index: 2;
    }


    /* -------------------------------------------------------
       RESET DELLA COLONNA INTERNA
       ------------------------------------------------------- */

    .dema-story-section .dema-story-step {
        width: 100% !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .dema-story-section
    .dema-story-step > .sppb-column-addons {
        padding: 0 !important;
        margin: 0 !important;
    }


    /* -------------------------------------------------------
       ANNO
       ------------------------------------------------------- */

    .dema-story-section .dema-story-number {
        margin: 0 0 .75rem !important;
        padding: 0 !important;
    }

    .dema-story-section
    .dema-story-number .sppb-addon-title {
        margin: 0 !important;
        padding: 0 !important;

        font-size: .9375rem;
        line-height: 1.4;
        font-weight: 400;
    }


    /* -------------------------------------------------------
       TITOLO TAPPA
       ------------------------------------------------------- */

    .dema-story-section .dema-feature-title {
        margin: 0 0 .75rem !important;
        padding: 0 !important;
    }

    .dema-story-section
    .dema-feature-title .sppb-addon-title {
        margin: 0 !important;
        padding: 0 !important;
    }


    /* -------------------------------------------------------
       TESTO
       ------------------------------------------------------- */

    .dema-story-section .dema-feature-text {
        margin: 0 !important;
        padding: 0 !important;
    }

    .dema-story-section
    .dema-feature-text .sppb-addon-content,
    .dema-story-section
    .dema-feature-text p {
        margin: 0 !important;
        padding: 0 !important;
    }


    /* -------------------------------------------------------
       DISATTIVA LINEE/PALLINI DELLA VERSIONE DESKTOP
       ------------------------------------------------------- */

    .dema-story-section .dema-story-row::before,
    .dema-story-section .dema-story-row::after,
    .dema-story-section .dema-story-step::before,
    .dema-story-section .dema-story-step::after {
        display: none !important;
    }

}

/* ==========================================================
   STUDIO — I NUMERI DI DEMA MEDICAL
   ========================================================== */

.dema-studio-numbers-section .dema-section-title {
    margin-bottom: 3rem;
}

/* Nested section */
.dema-studio-numbers-section .dema-numbers-row,
.dema-studio-numbers-section .dema-numbers-row > .sppb-container-inner {
    width: 100%;
    margin: 0;
    padding: 0;
}

.dema-studio-numbers-section .dema-numbers-row .sppb-nested-row {
    margin: 0;
    align-items: stretch;
}

/* Singolo dato */
.dema-studio-numbers-section
.dema-numbers-row
.sppb-nested-row > .sppb-row-column {
    position: relative;
    padding: 0 2rem;
}

/* Elimina il padding esterno */
.dema-studio-numbers-section
.dema-numbers-row
.sppb-nested-row > .sppb-row-column:first-child {
    padding-left: 0;
}

.dema-studio-numbers-section
.dema-numbers-row
.sppb-nested-row > .sppb-row-column:last-child {
    padding-right: 0;
}

/* Separatore */
.dema-studio-numbers-section
.dema-numbers-row
.sppb-nested-row > .sppb-row-column:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background: rgba(124, 153, 175, .45);
}

/* Numero */
.dema-studio-numbers-section .dema-studio-number .sppb-addon-title {
    margin: 0 0 .75rem;
    font-family: "Asap", sans-serif;
    font-size: 4rem;
    font-weight: 500;
    line-height: 1;
    color: var(--dema-primary);
}

/* Descrizione */
.dema-studio-numbers-section .dema-feature-title .sppb-addon-title {
    margin: 0;
    font-family: "Asap", sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--dema-dark);
}

@media (max-width: 991.98px) {
.dema-studio-numbers-section
.dema-numbers-row
.sppb-nested-row > .sppb-row-column:first-child {
    padding-left: 2rem;
}
	.dema-studio-numbers-section .dema-numbers-row .sppb-nested-row > .sppb-row-column:not(:last-child)::after {
		display: none;
	}
}
/* =========================================================
   PAGINA PRENOTA
   ========================================================= */

/* HERO */
.dema-prenota-hero {
  padding: 95px 0 80px;
}

.dema-prenota-hero > .sppb-row-container {
  max-width: 820px;
  margin: 0 auto;
}


/* Titolo */
.dema-prenota-title {
  max-width: 620px;
  margin: 0 auto 65px;
  text-align: center;
}

.dema-prenota-title .sppb-addon-title {
  margin: 0;
  font-size: 42px;
  line-height: 1.12;
  font-weight: 500;
  color: var(--dema-dark);
}


/* =========================================================
   GRIGLIA CONTATTI
   ========================================================= */

/* Eliminiamo eventuali dimensionamenti della nested section */
.dema-prenota-contacts-row,
.dema-prenota-contacts-row > .sppb-container-inner {
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}

/*
 * Le 4 colonne di SPPB diventano:
 *
 * telefono | telefono
 * email    | social
 */

.dema-prenota-contacts-row .dema-prenota-contact-col {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
}

.dema-prenota-contact-col > .sppb-column-addons {
  width: 100%;
}


/* =========================================================
   TELEFONI
   ========================================================= */

.dema-prenota-phone {
  margin: 0;
}

.dema-prenota-phone a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #fff;
  text-decoration: none;
}

.dema-prenota-phone a::before {
  content: "";
  display: block;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;

  background-image: url("../../../images/dema-phone.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.dema-prenota-phone .sppb-addon-title {
  margin: 0;
  font-size: 27px;
  line-height: 1.2;
  font-weight: 400;
  color: #fff;
}


/* =========================================================
   SCRIVICI / SEGUICI
   ========================================================= */

.dema-prenota-contact-title {
  margin: 0 0 14px;
}

.dema-prenota-contact-title .sppb-addon-title {
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 500;
  color: var(--dema-dark);
}


/* Email */
.dema-prenota-email {
  margin: 0;
}

.dema-prenota-email a {
  color: #fff;
  text-decoration: none;
}

.dema-prenota-email .sppb-addon-title {
  margin: 0;
  font-size: 20px;
  line-height: 1.35;
  font-weight: 400;
  color: #fff;
}


/* Social */
.dema-prenota-social .sppb-icons-group-list {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0;
  padding: 0;
}

.dema-prenota-social .sppb-icons-group-list li {
  margin: 0px 10px 0px 0px !important;
}

.dema-prenota-social .sppb-icons-group-list li a {
  color: #fff;
  font-size: 21px;
  line-height: 1;
  text-decoration: none;
}


/* =========================================================
   MAPPA
   ========================================================= */

.dema-prenota-map-section {
  padding-top: 70px;
  padding-bottom: 70px;
}

.dema-prenota-map,
.dema-prenota-map .sppb-addon-content {
  width: 100%;
}

.dema-prenota-map iframe {
  display: block;
  width: 100% !important;
  height: 600px;
  border: 0 !important;
  border-radius: 8px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991.98px) {

  .dema-prenota-hero {
    padding: 75px 0 65px;
  }

  .dema-prenota-hero > .sppb-row-container {
    max-width: 720px;
  }

  .dema-prenota-title {
    margin-bottom: 55px;
  }

  .dema-prenota-title .sppb-addon-title {
    font-size: 38px;
  }
  .dema-prenota-phone .sppb-addon-title {
    font-size: 24px;
  }
	.dema-prenota-phone {
    text-align: center !important;
		margin: auto;
}
	.dema-prenota-phone a {
    padding: 20px;
    border: 1px solid #fff;
    border-radius: 9px;
    width: -webkit-fill-available;
}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767.98px) {

  .dema-prenota-hero {
    padding: 60px 0;
  }

  .dema-prenota-hero > .sppb-row-container {
    padding-left: 24px;
    padding-right: 24px;
  }

  .dema-prenota-title {
    max-width: none;
    margin-bottom: 45px;
    text-align: left;
  }

  .dema-prenota-title .sppb-addon-title {
    font-size: 34px;
    line-height: 1.15;
  }

  /*
   * Su mobile le quattro colonne diventano verticali.
   */
  .dema-prenota-contacts-row > .sppb-container-inner > .sppb-row {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .dema-prenota-contact-col {
    margin: 0 !important;
  }

  .dema-prenota-phone-col + .dema-prenota-phone-col {
    margin-top: 24px !important;
  }

  .dema-prenota-phone a::before {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  .dema-prenota-phone .sppb-addon-title {
    font-size: 23px;
  }

  .dema-prenota-contact-title .sppb-addon-title {
    font-size: 25px;
  }

  .dema-prenota-email .sppb-addon-title {
    font-size: 18px;
  }

  .dema-prenota-map-section {
    padding-top: 45px;
    padding-bottom: 45px;
  }

  .dema-prenota-map iframe {
    height: 420px;
    border-radius: 8px;
  }

}

/* =========================================================
   PAGINA NEWS
   ========================================================= */

.dema-news h1 {
	text-align: center;
}
.dema-news .article-list .article {
    position: relative;
    margin-bottom: 30px;
    padding: 20px;
    border: none;
    border-radius: 3px;
}
.dema-news .article-list .article .article-header h2 a:hover {
    color: var(--dema-primary);
}
.dema-news .pagination>.active>a,
.dema-news .pagination>.active>span {
    border-color: var(--dema-primary);
    background-color: var(--dema-primary);
}
.dema-news .article-list .article .readmore a {
    font-family: "Asap", sans-serif;
	color: var(--dema-primary);
	font-size: 1rem;
    font-weight: 700;
}
.dema-news.view-article h1 {
    text-align: left;
	margin-bottom:2rem;
}
.dema-news.article-details.dema-news {
    max-width: 920px;
    margin: auto;
}

/* =========================================================
   HEADER — SOTTOMENU DISATTIVATI
   Nasconde dropdown e frecce mantenendo cliccabili
   le voci principali.
   ========================================================= */


/* ---------------------------------------------------------
   DESKTOP — MEGAMENU
   --------------------------------------------------------- */

/* Nasconde i dropdown */
#sp-header .sp-megamenu-parent > .sp-has-child > .sp-dropdown {
    display: none !important;
}

/* Nasconde la freccia delle voci con figli */
#sp-header .sp-megamenu-parent > .sp-has-child > a::after {
    display: none !important;
    content: none !important;
}


/* ---------------------------------------------------------
   MOBILE / TABLET — OFFCANVAS
   --------------------------------------------------------- */

/* Nasconde i sottomenu */
.offcanvas-menu .menu-parent > .menu-child {
    display: none !important;
}

/* Nasconde il toggler/freccia inserito nel link */
.offcanvas-menu .menu-parent > a > .menu-toggler {
    display: none !important;
}

/* Nasconde eventuali frecce generate via pseudo-elemento
   dal template Helix */
.offcanvas-menu .menu-parent > a::after,
.offcanvas-menu .menu-parent > a::before {
    content: none !important;
    display: none !important;
}

.dema-footer-reviews {
	margin-top:1rem;
}


/* =========================================================
   DEMA MEDICAL - CARD AREE SPECIALISTICHE CLICCABILI
   ========================================================= */

.dema-treatment-card-addon .image-layout-preset-style-poster {
    position: relative;
    cursor: pointer;
}

/* feedback visivo */
.dema-treatment-card-addon .image-layout-preset-style-poster {
    transition: transform .2s ease, box-shadow .2s ease;
}

@media (hover: hover) {
    .dema-treatment-card-addon .image-layout-preset-style-poster:hover {
        transform: translateY(-2px);
    }
}

/* =========================================================
   PRENOTA - SOCIAL
   ========================================================= */

.dema-prenota-social .sppb-icons-group-list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: 100%;
    margin: 0;
    padding: 0;
}

.dema-prenota-social .sppb-icons-group-list > li {
    margin: 0;
}


/* Mantiene i link interni normalmente cliccabili */
.dema-treatment-card-addon a {
    position: relative;
    z-index: 2;
}

