/* Inter servito in locale (SIL Open Font License) */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../../fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =========================================================
   Physioemme – foglio di stile condiviso (caricato dopo Mobirise)
   ========================================================= */
:root {
  --brand: #68AA46;
  --brand-2: #78C245;
  --brand-dark: #3E6B28;
  --brand-darker: #2F5220;
  --brand-light: #EEF6EA;
  --brand-tint: var(--brand-light);
  --brand-ink: #10240a;
  --btn-primary: #4A8232;        /* pulsanti pieni: testo bianco, contrasto ~4.6:1 */
  --btn-primary-hover: #3E6B28;  /* hover/focus dei pulsanti pieni */
  --gray: #8C8C8C;
  --pe-primary: var(--brand-dark);
  --pe-primary-dark: var(--brand-darker);
  --pe-aqua: var(--brand);
  --pe-aqua-dark: var(--brand-dark);
  --pe-green: var(--brand);
  --pe-ink: #1f2a1b;
  --pe-muted: #555b52;
  --pe-surface: #f6f8f3;
  --pe-surface-2: var(--brand-tint);
  --pe-white: #ffffff;
  --pe-border: rgba(140, 140, 140, .32);
  --pe-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --pe-radius: 18px;
  --pe-radius-sm: 12px;
  --pe-shadow-sm: 0 2px 8px rgba(30, 40, 20, .07);
  --pe-shadow: 0 10px 30px rgba(30, 40, 20, .11);
  --pe-shadow-lg: 0 20px 50px rgba(30, 40, 20, .16);
  --pe-header-h: 92px;
  --pe-section-y: clamp(3.5rem, 6vw, 5rem);
  --pe-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--pe-header-h) + 16px); -webkit-text-size-adjust: 100%; }
body.pe {
  font-family: var(--pe-font);
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--pe-ink);
  background: var(--pe-white);
  overflow-x: hidden;
}
.pe, .pe .mbr-fonts-style, .pe [class*="display-"], .pe h1, .pe h2, .pe h3, .pe h4, .pe h5, .pe h6,
.pe p, .pe li, .pe a, .pe button, .pe input, .pe textarea { font-family: var(--pe-font) !important; }
.pe h1, .pe h2, .pe h3 { color: var(--pe-ink); letter-spacing: -.02em; line-height: 1.2; text-wrap: balance; }
.pe h1 strong, .pe h2 strong, .pe h3 strong { font-weight: 800; }
.pe p { text-wrap: pretty; }
.pe .mbr-text, .pe .display-7 { font-size: 1.125rem; line-height: 1.75; color: var(--pe-ink); }
.pe .display-4 { font-size: 1rem; }
.pe .display-1 { font-size: clamp(1.9rem, 4vw, 2.8rem); line-height: 1.15; }
.pe .display-2 { font-size: clamp(1.75rem, 3.6vw, 2.6rem); line-height: 1.2; }
.pe .display-5 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.3; }
.pe h1.display-2, .pe h1.display-5 { font-size: clamp(2rem, 4.8vw, 3.3rem); line-height: 1.12; }
.pe a { color: var(--pe-primary); text-underline-offset: .18em; transition: color .2s ease; }
.pe a:hover { color: var(--pe-aqua-dark); }
.pe img { max-width: 100%; height: auto; }
.pe strong { font-weight: 700; }
.pe .text-danger, .pe .text-warning { color: var(--pe-primary) !important; }
.pe-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Focus visibile */
.pe :focus-visible { outline: 3px solid var(--pe-aqua) !important; outline-offset: 3px; border-radius: 6px; }
.pe .btn:focus-visible, .pe .pe-btn:focus-visible { outline-offset: 4px; }

/* Sezioni */
.pe section { position: relative; }
.pe section:not(.menu):not(.header13):not(.header14):not(.info1) { padding-top: clamp(3rem, 6vw, 5.5rem); padding-bottom: clamp(3rem, 6vw, 5.5rem); background-color: var(--pe-white); }
.pe .container { padding-left: 16px; padding-right: 16px; }
.pe .pe-narrow { max-width: 860px; }

/* ---------- Pulsanti ---------- */
.pe .btn, .pe .pe-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 52px; padding: .8rem 1.6rem; margin: .35rem;
  border-radius: 999px !important; border: 2px solid transparent !important;
  font-weight: 700 !important; font-size: 1.05rem !important; line-height: 1.2; letter-spacing: 0;
  text-decoration: none !important; white-space: normal; text-align: center;
  box-shadow: var(--pe-shadow-sm);
  transition: transform .25s var(--pe-ease), box-shadow .25s var(--pe-ease), background-color .2s ease, color .2s ease, border-color .2s ease !important;
}
.pe .btn:hover, .pe .pe-btn:hover { transform: translateY(-2px); box-shadow: var(--pe-shadow); }
.pe .btn:active, .pe .pe-btn:active { transform: translateY(0); }
.pe .pe-btn svg { width: 1.2em; height: 1.2em; fill: currentColor; flex: none; }
.pe .btn-danger, .pe .btn-info, .pe .btn-primary, .pe .pe-btn--primary {
  background: var(--pe-primary) !important; color: #fff !important; border-color: var(--pe-primary) !important;
}
.pe .btn-danger:hover, .pe .btn-info:hover, .pe .btn-primary:hover, .pe .pe-btn--primary:hover {
  background: var(--pe-primary-dark) !important; border-color: var(--pe-primary-dark) !important; color: #fff !important;
}
.pe .btn-success { background: #fff !important; color: var(--pe-primary) !important; border-color: #fff !important; }
.pe .btn-success:hover { background: var(--pe-surface-2) !important; color: var(--pe-primary-dark) !important; }
.pe .pe-btn--ghost { background: transparent; color: var(--pe-primary); border-color: var(--pe-primary) !important; box-shadow: none; }
.pe .pe-btn--ghost:hover { background: var(--pe-primary); color: #fff; }
.pe .pe-btn--light { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .85) !important; backdrop-filter: blur(4px); }
.pe .pe-btn--light:hover { background: #fff; color: var(--pe-primary); }
.pe .pe-btn--lg { min-height: 58px; padding: .95rem 1.9rem; font-size: 1.1rem !important; }
.pe-btn-row { display: flex; flex-wrap: wrap; gap: .25rem; margin: 1.25rem -.35rem 0; }
.pe-btn-row--center { justify-content: center; }
.pe .pe-link-arrow { font-weight: 600; text-decoration: none; }
.pe .pe-link-arrow::after { content: " →"; transition: margin .2s ease; }
.pe .pe-link-arrow:hover::after { margin-left: .25rem; }

/* ---------- Header sticky ---------- */
.pe section.menu { min-height: var(--pe-header-h); padding: 0 !important; background: transparent; }
.pe .navbar.navbar-dropdown {
  position: fixed !important; top: 0; left: 0; right: 0; z-index: 1030;
  min-height: var(--pe-header-h); padding: .5rem 0;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: 0 1px 0 var(--pe-border);
  transition: min-height .3s var(--pe-ease), box-shadow .3s ease, padding .3s ease, background-color .3s ease;
}
@supports (backdrop-filter: blur(8px)) { .pe .navbar.navbar-dropdown { background: rgba(255, 255, 255, .88) !important; backdrop-filter: saturate(160%) blur(12px); } }
.pe.is-scrolled .navbar.navbar-dropdown { min-height: 68px; padding: .25rem 0; box-shadow: var(--pe-shadow); }
.pe .navbar-logo img { transition: height .3s var(--pe-ease); width: auto; }
.pe.is-scrolled .navbar-logo img { height: 3rem !important; }
.pe .navbar .navbar-caption { color: var(--pe-primary) !important; font-weight: 700 !important; font-size: 1rem !important; }
.pe .navbar .nav-link, .pe .navbar .dropdown-item {
  color: var(--pe-ink) !important; font-weight: 600 !important; font-size: 1rem !important;
  border-radius: 999px; padding: .55rem 1rem !important; transition: background-color .2s ease, color .2s ease;
}
.pe .navbar .nav-link:hover, .pe .navbar .nav-link[aria-current="page"] { color: var(--pe-primary) !important; background: var(--pe-surface-2); }
.pe .navbar .dropdown-menu {
  border: 1px solid var(--pe-border) !important; border-radius: var(--pe-radius-sm) !important;
  box-shadow: var(--pe-shadow) !important; padding: .5rem !important; background: #fff !important;
}
.pe .navbar .dropdown-item { border-radius: 10px; white-space: normal; }
.pe .navbar .dropdown-item:hover { background: var(--pe-surface-2) !important; color: var(--pe-primary) !important; }
.pe .icons-menu a .mbr-iconfont { color: var(--pe-primary) !important; fill: var(--pe-primary) !important; font-size: 18px !important; }
.pe .icons-menu a:hover .mbr-iconfont { color: var(--pe-aqua) !important; }
.pe .pe-nav-cta { min-height: 44px; padding: .55rem 1.1rem; font-size: .95rem !important; margin-left: .75rem; }
.pe .navbar-toggler { border: 0 !important; padding: 0 !important; width: 44px !important; height: 44px !important; border-radius: 12px; }
.pe .navbar-toggler .hamburger { position: absolute; top: 12px; right: 7px; width: 30px; height: 20px; }
.pe .navbar-toggler .hamburger span {
  display: block; position: absolute; right: 0; width: 30px; height: 3px; border-radius: 3px;
  background-color: var(--pe-primary) !important; transition: transform .3s var(--pe-ease), opacity .2s ease, top .3s var(--pe-ease), width .3s ease;
}
.pe .navbar-toggler .hamburger span:nth-child(1) { top: 0; }
.pe .navbar-toggler .hamburger span:nth-child(2), .pe .navbar-toggler .hamburger span:nth-child(3) { top: 8px; }
.pe .navbar-toggler .hamburger span:nth-child(4) { top: 16px; }
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(1),
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(4) { top: 8px; width: 0; opacity: 0; }
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(2) { transform: rotate(45deg); }
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(3) { transform: rotate(-45deg); }
.pe .navbar-toggler .hamburger span { background-color: var(--pe-primary) !important; }

@media (max-width: 991.98px) {
  :root { --pe-header-h: 72px; }
  .pe .navbar-logo img { height: 3rem !important; }
  .pe .navbar .navbar-caption { font-size: .9rem !important; }
  .pe .navbar-collapse {
    background: #fff; border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-lg);
    margin-top: .75rem; padding: .75rem; max-height: calc(100vh - 100px); overflow-y: auto;
  }
  .pe .navbar-collapse.show { animation: pe-menu-in .35s var(--pe-ease); }
  .pe .navbar .nav-link, .pe .navbar .dropdown-item { padding: .85rem 1rem !important; font-size: 1.1rem !important; }
  .pe .navbar .dropdown-menu { box-shadow: none !important; border: 0 !important; background: var(--pe-surface) !important; }
  .pe .icons-menu { justify-content: center; padding: .5rem 0; }
  .pe .pe-nav-cta { display: flex; margin: .5rem 0 .25rem; width: 100%; }
}
@keyframes pe-menu-in { from { opacity: 0; transform: translateY(-10px) scale(.98); } to { opacity: 1; transform: none; } }

/* ---------- Breadcrumb ---------- */
.pe section.content4:has(.pe-breadcrumb) { padding: 1.25rem 0 0 !important; background: var(--pe-surface) !important; }
.pe .pe-breadcrumb p { font-size: .95rem !important; color: var(--pe-muted); margin: 0; padding: .75rem 0; text-align: left !important; }
.pe .pe-breadcrumb a { color: var(--pe-primary) !important; font-weight: 600 !important; }

/* ---------- Hero home ---------- */
.pe .header13 {
  min-height: 100vh; min-height: 100svh; display: flex; align-items: center;
  padding: calc(var(--pe-header-h) + 3rem) 0 4rem !important;
  background-size: cover !important; background-position: center !important;
}
.pe-home section.menu { min-height: 0; }
.pe .header13 .mbr-overlay, .pe .info1 .mbr-overlay {
  opacity: 1 !important;
  background: linear-gradient(120deg, rgba(104, 170, 70, .90) 0%, rgba(120, 194, 69, .82) 100%) !important;
}
.pe .header13 .container { position: relative; z-index: 2; }
.pe .header13 h1, .pe .header13 .mbr-section-title { color: #fff !important; font-size: clamp(2.4rem, 6.5vw, 4.6rem) !important; line-height: 1.05; }
.pe .header13 .mbr-section-subtitle, .pe .header13 .mbr-text { color: rgba(255, 255, 255, .94) !important; }
.pe .header13 .mbr-section-subtitle { font-size: clamp(1.2rem, 2.4vw, 1.6rem) !important; }
.pe .header13 .mbr-text { max-width: 760px; margin-left: auto; margin-right: auto; font-size: clamp(1.05rem, 1.7vw, 1.25rem) !important; }
.pe .header13 .mbr-text strong { color: #fff; font-weight: 600; }
.pe .pe-kicker {
  display: inline-block; margin-bottom: 1.25rem; padding: .45rem 1rem; border-radius: 999px;
  background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35);
  color: #fff; font-weight: 600; font-size: .95rem; letter-spacing: .02em;
}
.pe .pe-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; margin-top: 2rem; }
.pe .pe-hero-more { margin-top: 1.25rem; }
.pe .pe-hero-more a { color: #fff; font-weight: 600; text-decoration: none; opacity: .9; }
.pe .pe-hero-more a:hover { opacity: 1; text-decoration: underline; color: #fff; }
.pe .pe-hero-actions .pe-btn--primary { background: #fff !important; color: var(--pe-primary) !important; border-color: #fff !important; }
.pe .pe-hero-actions .pe-btn--primary:hover { background: var(--pe-surface-2) !important; color: var(--pe-primary-dark) !important; }

/* Hero pagine servizi (header14) */
.pe .header14 { padding: clamp(2.5rem, 5vw, 4.5rem) 0 !important; min-height: 0 !important; background: linear-gradient(180deg, var(--pe-surface) 0%, #fff 100%) !important; }
.pe .header14 .card, .pe .header14 .card-wrapper { background: transparent !important; border: 0; }
.pe .header14 img { border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-lg); object-fit: cover; }

/* ---------- Titoli di sezione ---------- */
.pe .content4 .mbr-section-title { color: var(--pe-ink) !important; }
.pe .content4 .mbr-section-subtitle, .pe .mbr-section-head .mbr-section-subtitle { color: var(--pe-muted) !important; font-size: clamp(1.1rem, 1.8vw, 1.3rem) !important; line-height: 1.6; font-weight: 400; max-width: 760px; margin-left: auto; margin-right: auto; }
.pe section.content4:not(:has(.pe-breadcrumb)) { padding-bottom: 0 !important; }
.pe .content4 + section { padding-top: 1.5rem !important; }
.pe .content4:has(.pe-breadcrumb) + section { padding-top: clamp(2.5rem, 5vw, 4rem) !important; }
.pe-section__head { text-align: center; max-width: 760px; margin: 0 auto 2.5rem; }
.pe-section__head h2 { font-size: clamp(1.75rem, 3.6vw, 2.6rem); font-weight: 800; margin-bottom: .75rem; }
.pe-eyebrow { display: inline-block; margin-bottom: .6rem; color: var(--pe-aqua-dark); font-weight: 700; font-size: .9rem; letter-spacing: .1em; text-transform: uppercase; }
.pe-lead { color: var(--pe-muted); font-size: 1.15rem; }

/* ---------- Card servizi home (features8) – alternanza testo/immagine ---------- */
.pe .features8 { background: var(--pe-surface) !important; }
.pe .features8 .card { border: 0 !important; background: transparent !important; margin-bottom: 2rem; }
.pe .features8 .card-wrapper {
  background: #fff !important; border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-sm); overflow: hidden;
  transition: transform .35s var(--pe-ease), box-shadow .35s var(--pe-ease);
}
.pe .features8 .card-wrapper:hover { transform: translateY(-4px); box-shadow: var(--pe-shadow-lg); }
.pe .features8 .image-wrapper { margin: 0; overflow: hidden; }
.pe .features8 .image-wrapper img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s var(--pe-ease); }
.pe .features8 .card-wrapper:hover .image-wrapper img { transform: scale(1.04); }
.pe .features8 .card-box { padding: clamp(1.5rem, 3vw, 2.5rem); }
.pe .features8 .card-title { color: var(--pe-primary) !important; margin-bottom: .75rem; }
@media (min-width: 768px) {
  .pe .features8 .card:nth-child(even) .row.align-items-center { flex-direction: row-reverse; }
  .pe .features8 .col-md-4 { padding: 0; }
}

/* ---------- Perché Physioemme (features22) ---------- */
.pe .features22 .card { border: 0 !important; background: transparent !important; }
.pe .features22 .card-box {
  height: 100%; background: #fff; border: 1px solid var(--pe-border); border-radius: var(--pe-radius);
  padding: 2rem 1.75rem; box-shadow: var(--pe-shadow-sm);
  transition: transform .35s var(--pe-ease), box-shadow .35s var(--pe-ease), border-color .35s ease;
}
.pe .features22 .card-box:hover { transform: translateY(-4px); box-shadow: var(--pe-shadow); border-color: transparent; }
.pe .features22 .title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.pe .features22 .num { color: var(--pe-border) !important; font-size: 2rem !important; font-weight: 800; }
.pe .features22 .card-title { color: var(--pe-ink) !important; font-size: 1.3rem !important; }
.pe .features22 .mbr-section-title { text-align: center; }
.pe .features22 .card-wrapper .card-box { border: 0; box-shadow: none; padding: 0; background: transparent; }
.pe .features22 .card-wrapper .card-box:hover { transform: none; box-shadow: none; }
.pe-icon-badge {
  display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 16px;
  background: linear-gradient(135deg, var(--pe-primary), var(--pe-aqua)); color: #fff; box-shadow: var(--pe-shadow-sm);
}
.pe-icon-badge svg { width: 28px; height: 28px; fill: currentColor; }

/* ---------- Banda CTA consulto (info1) ---------- */
.pe .info1 { padding: clamp(4rem, 8vw, 6.5rem) 0 !important; background-size: cover !important; background-position: center !important; }
.pe .info1 .container { position: relative; z-index: 2; }
.pe .info1 .mbr-section-title, .pe .info1 .mbr-text { color: #fff !important; }
.pe .info1:not(:has(.mbr-overlay)) { background: linear-gradient(120deg, var(--pe-primary-dark), var(--pe-primary) 55%, var(--pe-aqua)) !important; }

/* ---------- Spazi (content3) e card servizi (features3) ---------- */
.pe .content3, .pe .features3 { background: var(--pe-white) !important; }
.pe .content3 .item, .pe .features3 .item { margin-bottom: 2rem; }
.pe .content3 .item-wrapper, .pe .features3 .item-wrapper {
  height: 100%; background: #fff !important; border: 1px solid var(--pe-border); border-radius: var(--pe-radius) !important;
  overflow: hidden; box-shadow: var(--pe-shadow-sm); display: flex; flex-direction: column;
  transition: transform .35s var(--pe-ease), box-shadow .35s var(--pe-ease);
}
.pe .content3 .item-wrapper:hover, .pe .features3 .item-wrapper:hover { transform: translateY(-5px); box-shadow: var(--pe-shadow-lg); }
.pe .content3 .item-img, .pe .features3 .item-img { overflow: hidden; }
.pe .content3 .item-img img, .pe .features3 .item-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .6s var(--pe-ease); }
.pe .content3 .item-wrapper:hover img, .pe .features3 .item-wrapper:hover img { transform: scale(1.05); }
.pe .content3 .item-content, .pe .features3 .item-content { padding: 1.5rem 1.5rem .5rem; flex: 1; }
.pe .features3 .item-footer { padding: 0 1.25rem 1.5rem; }
.pe .content3 .item-subtitle, .pe .features3 .item-title { color: var(--pe-primary) !important; font-size: 1.25rem !important; }
.pe .features3 .mbr-section-title, .pe .content3 .mbr-section-title { text-align: center; }

/* ---------- Immagine + testo (image1) – alternanza ---------- */
.pe .image1 .image-wrapper img { border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-lg); width: 100%; object-fit: cover; }
.pe .image1 .text-wrapper { padding: 1.5rem 0 0; }
@media (min-width: 992px) {
  .pe .image1 .text-wrapper { padding: 0 0 0 2.5rem; }
  .pe .image1:nth-of-type(even) .row.align-items-center { flex-direction: row-reverse; }
  .pe .image1:nth-of-type(even) .text-wrapper { padding: 0 2.5rem 0 0; }
}
.pe .image1 .mbr-section-title { color: var(--pe-primary) !important; }

/* ---------- Testi lunghi (content5 / content8) ---------- */
.pe .content5 .mbr-text, .pe .content8 .mbr-text { max-width: 820px; margin-left: auto; margin-right: auto; }
.pe .content8 { background: var(--pe-surface) !important; }
.pe .content8 + .content8, .pe .content5 + .content5 { padding-top: 0 !important; }
.pe .content8 .counter-container {
  background: #fff; border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-sm); padding: clamp(1.5rem, 4vw, 2.75rem);
}
.pe .content8 ul { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .6rem; }
@media (min-width: 768px) { .pe .content8 ul:not(.pe-hours) { grid-template-columns: 1fr 1fr; column-gap: 2rem; } }
.pe .content8 li { position: relative; padding-left: 2rem; line-height: 1.55; }
.pe .content8 li::before {
  content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
  background: var(--pe-surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233E6B28' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.pe .content8 .pe-hours li::before { display: none; }
.pe .content8 h2, .pe .content5 h2 { font-size: clamp(1.25rem, 2.2vw, 1.5rem) !important; color: var(--pe-primary) !important; }

/* Testi lunghi: "Leggi tutto" (gestito da JS) */
.pe-clamp { position: relative; overflow: hidden; max-height: var(--pe-clamp-h, 13.5em); transition: max-height .5s var(--pe-ease); }
.pe-clamp::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4.5em; pointer-events: none;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--pe-fade, #fff)); transition: opacity .3s ease;
}
.pe-clamp.is-open::after { opacity: 0; }
.pe-more {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: .75rem; padding: .55rem 1.1rem;
  border: 2px solid var(--pe-primary); border-radius: 999px; background: #fff; color: var(--pe-primary);
  font-weight: 700; font-size: 1rem; cursor: pointer; transition: background-color .2s ease, color .2s ease;
}
.pe-more:hover { background: var(--pe-primary); color: #fff; }
.pe-more::after { content: ""; width: .5em; height: .5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .3s ease; }
.pe-more[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-2px); }
.pe-more-wrap { text-align: center; }

/* ---------- Pagina Centro ---------- */
.pe .features16 .content-wrapper, .pe .features17 .content-wrapper { border-radius: var(--pe-radius); overflow: hidden; }
.pe .features16 img { border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-lg); }
.pe .features16 .card-title { color: var(--pe-primary) !important; }
.pe .slider2 .carousel, .pe .slider2 .carousel-inner { border-radius: var(--pe-radius); overflow: hidden; box-shadow: var(--pe-shadow-lg); }
.pe .testimonails3 { background: var(--pe-surface) !important; }
.pe .testimonails3 .user { background: #fff; border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-sm); padding: 2rem; margin: 0 auto; }
.pe .testimonails3 .fa-star { color: #e0a526; }

/* ---------- Contatti ---------- */
.pe .form5 { background: var(--pe-surface) !important; }
.pe .form5 .mbr-form { padding: 0; }
.pe .form5 form { background: #fff !important; border-radius: var(--pe-radius) !important; box-shadow: var(--pe-shadow) !important; padding: clamp(1.5rem, 4vw, 2.75rem) !important; }
.pe form .form-control {
  min-height: 54px; padding: .8rem 1rem; border: 1.5px solid var(--pe-border) !important; border-radius: var(--pe-radius-sm) !important;
  background: #fff !important; color: var(--pe-ink) !important; font-size: 1.1rem !important; box-shadow: none !important;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.pe form textarea.form-control { min-height: 160px; }
.pe form .form-control::placeholder { color: #6e6e6e; opacity: 1; }
.pe form .form-control:focus { border-color: var(--pe-aqua) !important; box-shadow: 0 0 0 4px rgba(104, 170, 70, .25) !important; }
.pe .contacts2 .card { border: 0 !important; background: transparent !important; margin-bottom: 1.5rem; }
.pe .contacts2 .card-wrapper {
  height: 100%; display: flex; align-items: center; gap: 1.25rem; padding: 1.5rem; border-radius: var(--pe-radius) !important;
  background: #fff !important; border: 1px solid var(--pe-border); box-shadow: var(--pe-shadow-sm);
  transition: transform .3s var(--pe-ease), box-shadow .3s var(--pe-ease);
}
.pe .contacts2 .card-wrapper:hover { transform: translateY(-3px); box-shadow: var(--pe-shadow); }
.pe .contacts2 .image-wrapper { flex: none; width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg, var(--pe-primary), var(--pe-aqua)) !important; }
.pe .contacts2 .image-wrapper .mbr-iconfont { font-size: 1.6rem !important; color: #fff !important; }
.pe .contacts2 .card-title { color: var(--pe-ink) !important; }
.pe .contacts2 .text-white, .pe .contacts2 .text-warning { color: var(--pe-primary) !important; font-weight: 600; }
.pe .content8 .counter-container .pe-hours { max-width: 520px; margin: 0 auto; }

/* Orari */
.pe .pe-hours { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: 0; }
.pe .pe-hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0 !important; border-bottom: 1px dashed var(--pe-border); }
.pe .pe-hours li:last-child { border-bottom: 0; }
.pe .pe-hours li span:first-child { font-weight: 600; }
.pe .pe-hours li span:last-child { font-variant-numeric: tabular-nums; }

/* Social */
.pe .contacts4 { background: var(--pe-white) !important; }
.pe .contacts4 .icons a, .pe .contacts4 .icons > span { margin: .35rem; }
.pe .contacts4 .mbr-iconfont-social, .pe .pe-social .socicon {
  display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%;
  background: var(--pe-surface-2); color: var(--pe-primary) !important; font-size: 1.3rem !important;
  transition: transform .25s var(--pe-ease), background-color .2s ease, color .2s ease;
}
.pe .contacts4 a:hover .mbr-iconfont-social, .pe .pe-social a:hover .socicon { background: var(--pe-primary); color: #fff !important; transform: translateY(-3px); }
.pe .contacts4 .socicon-twitter { display: none !important; }
.pe-social { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; gap: .6rem; }
.pe-social .socicon { width: 44px; height: 44px; font-size: 1.1rem !important; background: rgba(255, 255, 255, .1); color: #fff !important; }

/* ---------- Sezioni nuove: FAQ, Recensioni, Dove siamo ---------- */
.pe .pe-faq { background: var(--pe-surface) !important; }
.pe-faq__list { display: grid; gap: .9rem; }
.pe-faq__item { background: #fff; border: 1px solid var(--pe-border); border-radius: var(--pe-radius-sm); box-shadow: var(--pe-shadow-sm); overflow: hidden; transition: box-shadow .3s ease; }
.pe-faq__item[open] { box-shadow: var(--pe-shadow); }
.pe-faq__item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.4rem; }
.pe-faq__item summary::-webkit-details-marker { display: none; }
.pe-faq__item summary h3 { margin: 0; font-size: 1.15rem; font-weight: 700; line-height: 1.4; }
.pe-faq__item summary::after {
  content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%;
  background: var(--pe-surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233E6B28' d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z'/%3E%3C/svg%3E") center / 60% no-repeat;
  transition: transform .3s var(--pe-ease);
}
.pe-faq__item[open] summary::after { transform: rotate(45deg); }
.pe-faq__body { padding: 0 1.4rem 1.25rem; color: var(--pe-ink); }
.pe-faq__body p { margin: 0; }
.pe-faq__item[open] .pe-faq__body { animation: pe-fade-down .35s var(--pe-ease); }
@keyframes pe-fade-down { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.pe .pe-reviews { background: #fff !important; }
.pe-reviews__widget:empty { display: none; }
.pe-reviews__more { text-align: center; margin-top: 1.5rem; }

.pe .pe-where { background: var(--pe-surface) !important; }
.pe-where__grid { display: grid; gap: 1.5rem; align-items: stretch; }
@media (min-width: 992px) { .pe-where__grid { grid-template-columns: 5fr 7fr; gap: 2rem; } }
.pe-where__info { background: #fff; border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-sm); padding: clamp(1.5rem, 3vw, 2.25rem); }
.pe-info-row { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--pe-border); }
.pe-info-row:first-child { padding-top: 0; }
.pe-info-row > div { flex: 1; }
.pe-info-row > svg { flex: none; width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--pe-surface-2); fill: var(--pe-primary); }
.pe-info-row a { font-weight: 600; }
.pe-map { border-radius: var(--pe-radius); overflow: hidden; box-shadow: var(--pe-shadow); min-height: 360px; background: var(--pe-surface-2); }
.pe-map__frame { display: block; width: 100%; height: 100%; min-height: 360px; border: 0; }

/* ---------- Footer ---------- */
.pe-footer { background: var(--brand-dark); color: rgba(255, 255, 255, .86); padding: clamp(3rem, 6vw, 4.5rem) 0 1.5rem; font-size: 1.05rem; }
.pe-footer p { color: rgba(255, 255, 255, .86); margin-bottom: .9rem; }
.pe-footer a { color: #fff !important; text-decoration: none; }
.pe-footer a:hover { color: #d7f0c8 !important; text-decoration: underline; }
.pe-footer__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .pe-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .pe-footer__grid { grid-template-columns: 1.3fr 1fr 1fr 1.1fr; } }
.pe-footer__brand img { height: 64px; width: auto; background: #fff; border-radius: 12px; padding: 6px 10px; margin-bottom: 1rem; }
.pe-footer__title { color: #fff !important; font-weight: 700; font-size: .95rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 1rem !important; }
.pe-footer .pe-hours li { border-bottom-color: rgba(255, 255, 255, .15); color: rgba(255, 255, 255, .86); font-size: 1rem; }
.pe-footer__map { margin-top: 2.5rem; border-radius: var(--pe-radius); overflow: hidden; }
.pe-footer__map .pe-map__frame { min-height: 280px; height: 300px; }
.pe-footer__bottom { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .15); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; font-size: .95rem; }
.pe-footer__bottom p { margin: 0; }
.pe-footer__bottom nav { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }

/* ---------- WhatsApp flottante, barra mobile, torna su ---------- */
.pe-wa-float {
  position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 1020; display: flex; align-items: center; gap: .75rem;
  padding: .6rem .6rem .6rem .6rem; border-radius: 999px; background: #1f9d55; color: #fff !important; text-decoration: none !important;
  box-shadow: var(--pe-shadow-lg); transition: transform .3s var(--pe-ease), box-shadow .3s ease, padding .3s ease;
}
.pe-wa-float svg { width: 36px; height: 36px; fill: #fff; flex: none; }
.pe-wa-float__label { display: flex; flex-direction: column; line-height: 1.2; padding-right: .8rem; max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width .4s var(--pe-ease), opacity .3s ease; }
.pe-wa-float__label small { font-size: .8rem; opacity: .9; }
.pe-wa-float:hover, .pe-wa-float:focus-visible { transform: translateY(-3px); color: #fff !important; }
.pe-wa-float:hover .pe-wa-float__label, .pe-wa-float:focus-visible .pe-wa-float__label { max-width: 240px; opacity: 1; }

.pe-mobilebar { display: none; }
.physio-back-to-top {
  position: fixed; right: 1.6rem; bottom: 6.5rem; z-index: 1019; width: 48px; height: 48px; border: 0; border-radius: 50%;
  display: grid; place-items: center; background: #fff; color: var(--pe-primary); box-shadow: var(--pe-shadow);
  opacity: 0; visibility: hidden; transform: translateY(12px); cursor: pointer;
  transition: opacity .3s ease, transform .3s var(--pe-ease), visibility .3s, background-color .2s ease;
}
.physio-back-to-top svg { width: 22px; height: 22px; fill: currentColor; }
.physio-back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.physio-back-to-top:hover { background: var(--pe-primary); color: #fff; }

@media (max-width: 767.98px) {
  body.pe { padding-bottom: 72px; }
  .pe-wa-float { display: none; }
  .pe-mobilebar {
    display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1025;
    background: #fff; box-shadow: 0 -6px 24px rgba(30, 40, 20, .14); padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 8px;
  }
  .pe-mobilebar a {
    display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 54px; border-radius: 14px;
    font-weight: 700; font-size: 1.1rem; text-decoration: none !important; color: #fff !important;
  }
  .pe-mobilebar svg { width: 22px; height: 22px; fill: currentColor; }
  .pe-mobilebar__call { background: var(--pe-primary); }
  .pe-mobilebar__wa { background: #1f9d55; }
  .physio-back-to-top { right: 1rem; bottom: 88px; }
  .pe .header13 { min-height: calc(100svh - 72px); }
  .pe .pe-hero-actions .pe-btn { width: 100%; margin: .35rem 0; }
  .pe-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------- Animazioni di comparsa ---------- */
.pe-js .pe-reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); transition-delay: var(--pe-delay, 0ms); }
.pe-js .pe-reveal.is-revealed { opacity: 1; transform: none; }

/* Mobile: tipografia e spazi */
@media (max-width: 575.98px) {
  body.pe { font-size: 1.0625rem; }
  .pe .mbr-text, .pe .display-7 { font-size: 1.0625rem; }
  .pe .btn, .pe .pe-btn { width: auto; }
  .pe .content3 .item, .pe .features3 .item { padding-left: 8px; padding-right: 8px; }
  .pe .contacts2 .card-wrapper { padding: 1.1rem; }
  .pe .contacts4 .icons { justify-content: center !important; }
  .pe .contacts4 .text-content { text-align: center; }
}

/* Booking (pagina senza contenuti) */
.pe .pe-booking-title { padding-bottom: 2rem !important; }

/* ---------- Riduzione del movimento ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .pe-js .pe-reveal { opacity: 1; transform: none; }
}

@media (max-width: 991.98px) {
  .pe .header14 .mbr-section-title, .pe .features16 .card-title { margin-top: 1.75rem; }
}

/* ---------- Recensioni Trustindex ---------- */
.pe .pe-reviews { background: var(--pe-surface) !important; }
.pe-reviews__widget { max-width: 100%; margin: 0 auto; overflow: hidden; }
.pe-reviews__widget:has(> :not(script)) { margin-bottom: 2rem; }
.pe-reviews__widget .ti-widget { max-width: 100% !important; }

/* ---------- Sottoservizi nelle card della home ---------- */
.pe-sublinks { list-style: none; padding: 0; margin: 0 0 1.25rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.pe-sublinks a {
  display: inline-block; padding: .4rem .9rem; border-radius: 999px; background: var(--pe-surface-2);
  color: var(--pe-primary); font-weight: 600; font-size: .95rem; text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.pe-sublinks a:hover { background: var(--pe-primary); color: #fff; }
.pe .features8 .card-box .row { flex-direction: column; }
.pe .features8 .card-box .col-md-auto { margin-top: .25rem; }

/* ---------- Servizi correlati ---------- */
.pe .pe-related { background: #fff !important; padding-top: clamp(2.5rem, 5vw, 4rem) !important; padding-bottom: clamp(2.5rem, 5vw, 4rem) !important; }
.pe-related__title { text-align: center; font-size: clamp(1.4rem, 2.6vw, 1.9rem) !important; font-weight: 800; margin-bottom: 1.75rem; }
.pe-related__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.pe-related__card {
  display: flex; flex-direction: column; gap: .3rem; height: 100%; padding: 1.25rem 1.4rem; border-radius: var(--pe-radius-sm);
  border: 1px solid var(--pe-border); background: #fff; box-shadow: var(--pe-shadow-sm); text-decoration: none !important;
  transition: transform .3s var(--pe-ease), box-shadow .3s ease, border-color .3s ease;
}
.pe-related__card:hover { transform: translateY(-3px); box-shadow: var(--pe-shadow); border-color: var(--pe-aqua); }
.pe-related__cat { color: var(--pe-aqua-dark); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pe-related__name { color: var(--pe-ink); font-weight: 700; font-size: 1.1rem; }
.pe-related__name::after { content: " →"; color: var(--pe-primary); }
.pe-related__card--contact { background: var(--pe-primary); border-color: var(--pe-primary); }
.pe-related__card--contact .pe-related__cat { color: #e3f3d8; }
.pe-related__card--contact .pe-related__name, .pe-related__card--contact .pe-related__name::after { color: #fff; }

/* Dove siamo: variante solo mappa (Contatti) */
.pe-where__grid--map { grid-template-columns: 1fr !important; }
.pe-where__grid--map + .pe-btn-row { margin-top: 1.5rem; }

.pe-footer p, .pe-footer li { line-height: 1.6 !important; }
.pe-footer .pe-social .socicon { background: rgba(255,255,255,.12) !important; color: #fff !important; }

/* =========================================================
   Brand verde Physioemme – override finali
   ========================================================= */
/* Pulsanti */
.pe .btn-danger, .pe .btn-info, .pe .btn-primary, .pe .pe-btn--primary {
  background: var(--btn-primary) !important; border-color: var(--btn-primary) !important; color: #fff !important;
}
.pe .btn-danger:hover, .pe .btn-info:hover, .pe .btn-primary:hover, .pe .pe-btn--primary:hover,
.pe .btn-danger:focus, .pe .btn-info:focus, .pe .btn-primary:focus, .pe .pe-btn--primary:focus,
.pe .btn-danger:focus-visible, .pe .btn-info:focus-visible, .pe .btn-primary:focus-visible, .pe .pe-btn--primary:focus-visible {
  background: var(--btn-primary-hover) !important; border-color: var(--btn-primary-hover) !important; color: #fff !important;
}
/* icone bianche nei pulsanti pieni */
.pe .btn-danger svg, .pe .btn-info svg, .pe .btn-primary svg, .pe .pe-btn--primary svg,
.pe .btn-danger .mbr-iconfont, .pe .btn-info .mbr-iconfont, .pe .btn-primary .mbr-iconfont, .pe .pe-btn--primary .mbr-iconfont {
  fill: #fff !important; color: #fff !important;
}
.pe .btn-success { background: #fff !important; border-color: #fff !important; color: var(--brand-dark) !important; }
.pe .btn-success:hover { background: var(--brand-tint) !important; color: var(--brand-darker) !important; }
.pe .pe-btn--ghost { color: var(--brand-dark) !important; border-color: var(--brand-dark) !important; background: transparent !important; }
.pe .pe-btn--ghost:hover { background: var(--brand) !important; border-color: var(--brand) !important; color: var(--brand-ink) !important; }
.pe .pe-hero-actions .pe-btn--primary { background: #fff !important; border-color: #fff !important; color: var(--brand-dark) !important; }
.pe .pe-hero-actions .pe-btn--primary:hover { background: var(--brand-tint) !important; color: var(--brand-darker) !important; }
.pe .pe-hero-actions .pe-btn--primary svg { fill: currentColor !important; color: inherit !important; } /* pulsante bianco: icona verde */
.pe .pe-btn--light:hover { color: var(--brand-dark) !important; }
.pe-more { border-color: var(--brand-dark); color: var(--brand-dark); }
.pe-more:hover { background: var(--brand); border-color: var(--brand); color: var(--brand-ink); }

/* Link */
.pe a { color: var(--brand-dark); }
.pe a:hover { color: var(--brand-darker); }

/* Hero e banda CTA: sfumatura brand + velo scuro leggero */
.pe .header13 .mbr-overlay, .pe .info1 .mbr-overlay {
  opacity: 1 !important;
  background: linear-gradient(rgba(16, 36, 10, .38), rgba(16, 36, 10, .38)), linear-gradient(120deg, var(--brand) 0%, var(--brand-2) 100%) !important;
}
.pe .info1:not(:has(.mbr-overlay)) {
  background: linear-gradient(rgba(16, 36, 10, .38), rgba(16, 36, 10, .38)), linear-gradient(120deg, var(--brand) 0%, var(--brand-2) 100%) !important;
}
.pe .header13 .mbr-text { max-width: 880px; text-wrap: balance; }
.pe .pe-kicker { background: rgba(255, 255, 255, .18); border-color: rgba(255, 255, 255, .5); }

/* Header: logo più grande e più respiro */
.pe .navbar-brand { margin-right: 2.25rem !important; }
.pe .navbar-logo img { height: 4.6rem !important; }
.pe.is-scrolled .navbar-logo img { height: 3.6rem !important; }
.pe .navbar-caption-wrap { padding-left: 1rem; }
.pe .navbar .navbar-caption { color: var(--brand-dark) !important; }
.pe .navbar .nav-link:hover, .pe .navbar .nav-link[aria-current="page"],
.pe .navbar .dropdown-item:hover { color: var(--brand-dark) !important; background: var(--brand-tint) !important; }
.pe .icons-menu a .mbr-iconfont { color: var(--brand-dark) !important; fill: var(--brand-dark) !important; }
.pe .icons-menu a:hover .mbr-iconfont { color: var(--brand) !important; }
.pe .navbar-toggler .hamburger span { background-color: var(--brand-dark) !important; }
@media (min-width: 992px) and (max-width: 1199.98px) {
  .pe .navbar-caption-wrap { display: none; }
  .pe .pe-nav-cta span { display: none; }
}
@media (max-width: 991.98px) {
  .pe .navbar-logo img, .pe.is-scrolled .navbar-logo img { height: 3.4rem !important; }
}

/* Icone, chip, numeri */
.pe-icon-badge { background: var(--brand-tint); color: var(--brand-dark); box-shadow: none; }
.pe .features22 .num, .pe .features22 .num strong { color: var(--brand-2) !important; font-size: 2.4rem !important; font-weight: 800; opacity: 1; }
.pe .contacts2 .image-wrapper { background: var(--brand-tint) !important; }
.pe .contacts2 .image-wrapper .mbr-iconfont { color: var(--brand-dark) !important; fill: var(--brand-dark) !important; }
.pe-sublinks a { background: var(--brand-tint); color: var(--brand-dark); }
.pe-sublinks a:hover { background: var(--brand); color: var(--brand-ink); }
.pe-info-row > svg { background: var(--brand-tint); fill: var(--brand-dark); }
.pe .contacts4 .mbr-iconfont-social { background: var(--brand-tint); color: var(--brand-dark) !important; }
.pe .contacts4 a:hover .mbr-iconfont-social { background: var(--brand); color: var(--brand-ink) !important; }
.pe-related__card:hover { border-color: var(--brand); }
.pe-related__card--contact { background: var(--brand-dark); border-color: var(--brand-dark); }
.pe :focus-visible { outline-color: var(--brand) !important; }
.physio-back-to-top { color: var(--brand-dark); border: 1px solid var(--pe-border); }
.physio-back-to-top:hover { background: var(--brand); color: var(--brand-ink); }

/* Footer verde scuro */
.pe-footer { background: var(--brand-dark); color: #fff; }
.pe-footer p, .pe-footer .pe-hours li { color: rgba(255, 255, 255, .92); }
.pe-footer .pe-hours li { border-bottom-color: rgba(255, 255, 255, .2); }
.pe-footer a:hover { color: #d7f0c8 !important; }

/* Padding verticale uniforme per tutte le sezioni */
.pe section:not(.menu):not(.header13),
.pe .pe-section, .pe .info1, .pe .pe-related, .pe .header14 {
  padding-top: var(--pe-section-y) !important; padding-bottom: var(--pe-section-y) !important;
}
.pe section.content4:has(.pe-breadcrumb) { padding: 1.25rem 0 0 !important; }
.pe section.content4:not(:has(.pe-breadcrumb)) { padding-bottom: 0 !important; }
.pe .content4 + section { padding-top: 2rem !important; }
.pe .content8 + .content8, .pe .content5 + .content5 { padding-top: 0 !important; }
.pe section .mbr-section-head, .pe section .title { margin-top: 0 !important; }
.pe .pe-section__head { margin-bottom: 2.25rem; }

/* "I nostri Spazi": titolo visibile, card di altezza uguale */
.pe .content3 { overflow: visible !important; }
.pe .content3 .mbr-section-head { position: relative; z-index: 1; transform: none !important; opacity: 1 !important; }
.pe .content3 .mbr-section-subtitle { margin-top: .75rem !important; }
.pe .content3 .mbr-section-subtitle br { display: none; }
.pe .content3 .row { display: flex; flex-wrap: wrap; }
.pe .content3 .item { display: flex; }
.pe .content3 .item-wrapper { flex: 1 1 auto; width: 100%; }
.pe .content3 .item-content { display: flex; flex-direction: column; }
.pe .content3 .item-subtitle { margin-top: 0 !important; }

/* Card servizi home: immagine a tutta altezza, angoli coerenti */
.pe .features8 .card-wrapper > .row { margin: 0 !important; align-items: stretch !important; }
.pe .features8 .card-wrapper > .row > [class*="col-"] { padding: 0 !important; }
.pe .features8 .image-wrapper { height: 100%; min-height: 280px; position: relative; }
.pe .features8 .image-wrapper img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; aspect-ratio: auto; object-fit: cover; border-radius: 0 !important; }
.pe .features8 .card-box { padding: clamp(1.75rem, 3vw, 2.75rem) !important; height: 100%; display: flex; flex-direction: column; justify-content: center; }
.pe .features8 .card-box > .row { margin: 0; }
.pe .features8 .card-box > .row > [class*="col"] { padding: 0; }
@media (min-width: 768px) {
  .pe .features8 .card .card-wrapper > .row { flex-direction: row !important; }
  .pe .features8 .card:nth-child(even) .card-wrapper > .row { flex-direction: row-reverse !important; }
  .pe .features8 .card-wrapper > .row > .col-md-4 { flex: 0 0 40%; max-width: 40%; }
}
@media (max-width: 767.98px) {
  .pe .features8 .image-wrapper { min-height: 0; aspect-ratio: 16 / 10; }
}

/* Mappa: nasconde il riquadro informativo in alto a sinistra dell'embed */
.pe-map, .pe-footer__map { position: relative; overflow: hidden; }
.pe-map .pe-map__frame, .pe-footer__map .pe-map__frame {
  position: absolute; left: 0; top: -150px; width: 100%; height: calc(100% + 150px); min-height: 0;
}
.pe-map { min-height: 380px; }
.pe-footer__map { height: 300px; }
.pe-where__grid--map .pe-map { min-height: 420px; }

/* Pulsanti fissi */
.pe-wa-float { right: 1.5rem; bottom: 1.5rem; }
.physio-back-to-top { right: 1.9rem; bottom: 7.25rem; }
@media (max-width: 767.98px) {
  body.pe { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  .pe-wa-float { display: none !important; }
  .pe-mobilebar__call { background: var(--btn-primary); color: #fff !important; }
  .pe-mobilebar__wa { background: var(--btn-primary-hover); }
  .physio-back-to-top { right: 1rem; bottom: calc(92px + env(safe-area-inset-bottom)); }
}

/* Header sempre bianco */
.pe .navbar.navbar-dropdown { background: #fff !important; backdrop-filter: none !important; }

/* =========================================================
   Hero con foto + correzioni responsive
   ========================================================= */
/* Hero home */
.pe .header13 {
  min-height: 88vh; min-height: 88svh;
  padding: calc(var(--pe-header-h) + 2.5rem) 0 3.5rem !important;
  background-image: url("../../images/palestra-panoramica-physioemme-800.webp") !important;
  background-size: cover !important; background-position: 30% 30% !important; background-repeat: no-repeat !important;
}
.pe-home section.menu { min-height: 0; }
.pe .header13 .mbr-overlay {
  opacity: 1 !important;
  background: linear-gradient(120deg, rgba(62, 107, 40, .80) 0%, rgba(104, 170, 70, .65) 100%) !important;
}
.pe .header13 h1, .pe .header13 .mbr-section-title {
  font-size: clamp(2.1rem, 6.2vw, 4.4rem) !important; line-height: 1.08; margin-bottom: 1rem !important;
  text-shadow: 0 2px 18px rgba(16, 36, 10, .35);
}
.pe .header13 .mbr-section-subtitle { font-size: clamp(1.15rem, 2.4vw, 1.6rem) !important; text-shadow: 0 1px 10px rgba(16, 36, 10, .35); }
.pe .header13 .mbr-text {
  max-width: 820px; font-size: clamp(1.05rem, 1.6vw, 1.25rem) !important; line-height: 1.6;
  text-shadow: 0 1px 8px rgba(16, 36, 10, .45); text-wrap: balance;
}
.pe .header13 .mbr-text strong { font-weight: 700; color: #fff; }
.pe .pe-hero-actions { margin-top: 2rem; gap: .75rem; }
.pe .pe-hero-actions .pe-btn { margin: 0; }
.pe .pe-hero-actions .pe-btn--primary { background: #fff !important; border-color: #fff !important; color: var(--brand-dark) !important; }
.pe .pe-hero-actions .pe-btn--light { background: transparent !important; border: 2px solid #fff !important; color: #fff !important; backdrop-filter: none; }
.pe .pe-hero-actions .pe-btn--light:hover { background: #fff !important; color: var(--brand-dark) !important; }
@media (max-width: 767.98px) {
  .pe .header13 { min-height: 0; padding: calc(var(--pe-header-h) + 2rem) 0 3rem !important; background-position: 32% center !important; }
}

/* Focus: solo tastiera, outline verde */
.pe :focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
.pe :focus-visible, .pe .btn:focus-visible, .pe .pe-btn:focus-visible, .pe a:focus-visible, .pe button:focus-visible, .pe summary:focus-visible {
  outline: 2px solid #68AA46 !important; outline-offset: 2px !important; box-shadow: none !important;
}
.pe .btn:focus, .pe .btn.focus, .pe .navbar-toggler:focus { box-shadow: none !important; }
.pe form .form-control:focus-visible { outline: 2px solid #68AA46 !important; outline-offset: 0 !important; }

/* Pulsante menu: hamburger e X nello stesso riquadro 44x44 */
.pe .navbar .navbar-toggler, .pe button.navbar-toggler {
  display: none; position: relative !important; width: 44px !important; height: 44px !important; padding: 0 !important; margin: 0 !important;
  align-items: center !important; justify-content: center !important; border: 0 !important; border-radius: 12px; background: transparent;
  flex: 0 0 44px !important; align-self: center !important;
}
@media (max-width: 991.98px) { .pe .navbar .navbar-toggler, .pe button.navbar-toggler { display: flex !important; } }
.pe .navbar-toggler .hamburger { position: relative !important; top: auto !important; right: auto !important; left: auto !important; width: 26px !important; height: 18px !important; display: block; margin: 0 !important; }
.pe .navbar-toggler .hamburger span {
  position: absolute !important; left: 0 !important; right: auto !important; width: 26px !important; height: 2.5px !important; border-radius: 2px;
  background-color: var(--brand-dark) !important; opacity: 1 !important; transform: none !important;
  transition: transform .3s var(--pe-ease), opacity .2s ease, top .3s var(--pe-ease) !important;
}
.pe .navbar-toggler .hamburger span:nth-child(1) { top: 0 !important; }
.pe .navbar-toggler .hamburger span:nth-child(2), .pe .navbar-toggler .hamburger span:nth-child(3) { top: 7.75px !important; }
.pe .navbar-toggler .hamburger span:nth-child(4) { top: 15.5px !important; }
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(1),
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(4),
.pe nav.opened .navbar-toggler .hamburger span:nth-child(1),
.pe nav.opened .navbar-toggler .hamburger span:nth-child(4) { top: 7.75px !important; opacity: 0 !important; width: 26px !important; }
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(2),
.pe nav.opened .navbar-toggler .hamburger span:nth-child(2) { transform: rotate(45deg) !important; }
.pe .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(3),
.pe nav.opened .navbar-toggler .hamburger span:nth-child(3) { transform: rotate(-45deg) !important; }

/* Header: allineamento verticale e ancore */
.pe .navbar > .container { display: flex; align-items: center !important; flex-wrap: wrap; }
.pe .navbar-brand { display: flex !important; align-items: center !important; min-width: 0; }
.pe [id] { scroll-margin-top: calc(var(--pe-header-h) + 16px); }
@media (max-width: 991.98px) {
  .pe .navbar > .container { flex-wrap: nowrap; justify-content: space-between; }
  .pe .navbar-brand { margin-right: .5rem !important; }
  .pe .navbar-caption-wrap { display: none !important; }
  /* Menu mobile a pannello: copre lo schermo sotto l'header */
  .pe .navbar-collapse {
    position: fixed !important; top: var(--pe-header-h); left: 0; right: 0; bottom: 0; z-index: 1029;
    margin: 0 !important; border-radius: 0 !important; max-height: none !important; height: auto !important;
    padding: 1rem 16px calc(1.5rem + env(safe-area-inset-bottom)) !important; overflow-y: auto !important;
    background: #fff !important; box-shadow: none !important; border-top: 1px solid var(--pe-border);
  }
  .pe .navbar-collapse.collapsing { transition: none !important; height: auto !important; }
  .pe .navbar-collapse.show { animation: pe-menu-in .3s var(--pe-ease); }
  .pe .navbar-collapse .navbar-nav { width: 100%; }
  .pe .navbar .nav-item { width: 100%; }
  .pe .navbar .nav-link { display: flex !important; align-items: center; min-height: 52px; font-size: 1.15rem !important; padding: .75rem 1rem !important; border-radius: 12px; }
  .pe .navbar .dropdown-menu { position: static !important; float: none; width: 100%; margin: .25rem 0 .5rem !important; padding: .25rem !important; transform: none !important; }
  .pe .navbar .dropdown-item { display: flex !important; align-items: center; min-height: 48px; font-size: 1.05rem !important; padding: .6rem 1rem .6rem 1.75rem !important; }
  .pe .icons-menu { display: flex; justify-content: center; gap: .5rem; padding: 1rem 0 .5rem !important; }
  .pe .icons-menu a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .pe .pe-nav-cta { width: 100%; justify-content: center; margin: .5rem 0 0 !important; }
  .pe .pe-nav-cta span { display: inline !important; }
}
html.pe-menu-open, html.pe-menu-open body { overflow: hidden !important; height: 100%; }

/* Tipografia fluida */
.pe h1, .pe h2, .pe h3 { overflow-wrap: break-word; hyphens: manual; }
.pe h1.display-2, .pe h1.display-5, .pe .image1 h1, .pe .header14 h1 { font-size: clamp(1.75rem, 5.2vw, 3.1rem) !important; }
.pe h2.display-2, .pe .display-2:not(h1) { font-size: clamp(1.55rem, 4.2vw, 2.5rem) !important; }
.pe .display-1:not(h1) { font-size: clamp(1.6rem, 4.6vw, 2.6rem) !important; }
.pe h3.display-5, .pe .display-5:not(h1) { font-size: clamp(1.2rem, 2.6vw, 1.55rem) !important; }

/* Overflow: media e iframe sempre contenuti */
.pe img, .pe iframe, .pe video, .pe svg { max-width: 100%; }
.pe .container, .pe .container-fluid { max-width: 100%; }
@media (min-width: 1200px) { .pe .container { max-width: 1180px; } }
.pe .row { margin-left: -8px; margin-right: -8px; }
.pe .row > [class*="col"] { padding-left: 8px; padding-right: 8px; }
.pe .features8 .card-wrapper > .row, .pe .features8 .card-box > .row { margin-left: 0 !important; margin-right: 0 !important; }
.pe .features8 .card-box > .row > [class*="col"] { padding-left: 0 !important; padding-right: 0 !important; }
.pe .carousel, .pe .carousel-inner { max-width: 100%; }
.pe pre, .pe table { max-width: 100%; overflow-x: auto; }
.pe-reviews__widget, .pe-reviews__widget * { max-width: 100%; }
.pe-reviews__widget { min-width: 0; }

/* Aree cliccabili e pulsanti su schermi stretti */
@media (max-width: 767.98px) {
  .pe-sublinks a, .pe-footer__bottom nav a, .pe-footer a, .pe .pe-breadcrumb a, .pe .pe-link-arrow {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .pe-footer__bottom nav { gap: 0 1rem; }
  .pe-social a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
}
@media (max-width: 575.98px) {
  .pe .pe-btn-row, .pe .pe-hero-actions { flex-direction: column; align-items: stretch; margin-left: 0; margin-right: 0; }
  .pe .pe-btn-row .pe-btn, .pe .pe-hero-actions .pe-btn { width: 100%; margin: .35rem 0 !important; }
  .pe .mbr-section-btn { display: flex; flex-direction: column; align-items: stretch; }
  .pe .mbr-section-btn .btn { width: 100%; margin: .35rem 0 !important; }
}

/* Griglie: 1 colonna mobile, 2 tablet */
.pe-related__list { grid-template-columns: 1fr; }
@media (min-width: 576px) { .pe-related__list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .pe-related__list { grid-template-columns: repeat(4, 1fr); } }
.pe-where__grid { grid-template-columns: 1fr; }
@media (min-width: 768px) { .pe-where__grid:not(.pe-where__grid--map) { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .pe-where__grid:not(.pe-where__grid--map) { grid-template-columns: 5fr 7fr; } }
.pe-map { min-height: 320px; }
@media (min-width: 768px) { .pe-map { min-height: 380px; } }

/* Barra fissa mobile: nessuna sovrapposizione */
@media (max-width: 767.98px) {
  body.pe { padding-bottom: calc(86px + env(safe-area-inset-bottom)) !important; }
  .physio-back-to-top { bottom: calc(96px + env(safe-area-inset-bottom)) !important; right: 12px !important; width: 44px; height: 44px; }
  .pe-mobilebar a { min-height: 52px; }
}

/* =========================================================
   Rifinitura finale: dropdown, header, hero, sezioni, footer
   ========================================================= */
:root { --pe-section-y: 80px; }
@media (max-width: 767.98px) { :root { --pe-section-y: 56px; } }

/* ---- Dropdown "Servizi" (regole autonome, non dipendono da mbr-additional.css) ---- */
.pe .navbar, .pe .navbar > .container, .pe .navbar-collapse { overflow: visible; }
.pe .navbar .dropdown { position: relative; }
.pe .navbar .dropdown-menu { display: none; z-index: 1060; }
.pe .navbar .dropdown.open > .dropdown-menu,
.pe .navbar .dropdown.show > .dropdown-menu { display: block !important; }
.pe .navbar .dropdown-toggle::after { transition: transform .25s ease; vertical-align: .15em; }
.pe .navbar .dropdown.open > .dropdown-toggle::after { transform: rotate(180deg); }
@media (min-width: 992px) {
  .pe .navbar .dropdown:hover > .dropdown-menu,
  .pe .navbar .dropdown:focus-within > .dropdown-menu { display: block !important; }
  .pe .navbar .dropdown-menu {
    position: absolute !important; top: 100% !important; left: 0 !important; min-width: 300px; margin-top: 0 !important;
    padding: .5rem !important; background: #fff !important; border: 1px solid var(--pe-border) !important;
    border-radius: 14px !important; box-shadow: 0 18px 40px rgba(30, 40, 20, .16) !important;
  }
  .pe .navbar .dropdown-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
  .pe .navbar .dropdown-item { display: block; padding: .7rem 1rem !important; border-radius: 10px; color: var(--pe-ink) !important; white-space: nowrap; }
  .pe .navbar .dropdown-item:hover, .pe .navbar .dropdown-item:focus-visible { background: var(--brand-tint) !important; color: var(--brand-dark) !important; }
}

/* ---- Header ---- */
@media (min-width: 992px) {
  .pe .navbar-logo img { height: 5rem !important; }
  .pe.is-scrolled .navbar-logo img { height: 3.8rem !important; }
  .pe .navbar-brand { margin-right: 2.5rem !important; }
  .pe .navbar-caption-wrap { padding-left: 1.25rem; margin-right: 1rem; }
  .pe .navbar-collapse { align-items: center !important; }
  .pe .navbar-nav { align-items: center; gap: .25rem; }
  .pe .navbar .nav-link { font-size: 1.06rem !important; padding: .6rem 1.05rem !important; display: flex; align-items: center; }
  .pe .icons-menu { display: flex; align-items: center; gap: .25rem; margin-left: .75rem; }
  .pe .icons-menu a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
  .pe .icons-menu a .mbr-iconfont { padding: 0 !important; }
  .pe .pe-nav-cta { align-self: center; }
}
@media (max-width: 1199.98px) { .pe .navbar-caption-wrap { display: none !important; } }

/* ---- Hero ---- */
.pe .header13 { min-height: 85vh !important; display: flex; align-items: center; }
.pe .header13 .mbr-overlay {
  background: linear-gradient(to top right, rgba(47, 82, 32, .85) 0%, rgba(47, 82, 32, .62) 45%, rgba(104, 170, 70, .45) 100%) !important;
}
@media (max-width: 767.98px) { .pe .header13 { min-height: 0 !important; } }

/* ---- Servizi home: titolo e card nella stessa sezione ---- */
.pe-home #content4-p, .pe-home .features8 { background: var(--pe-surface) !important; }
.pe-home #content4-p { padding-bottom: 0 !important; }
.pe-home .features8 { padding-top: 2.5rem !important; }
.pe .features8 .card-wrapper { min-height: 380px; }
.pe .features8 .card-box { justify-content: center; }
.pe .features8 .image-wrapper::before, .pe .features8 .image-wrapper::after { display: none !important; }
.pe .features8 .image-wrapper { overflow: hidden; }
.pe .features8 .image-wrapper img { filter: none !important; -webkit-mask-image: none !important; mask-image: none !important; opacity: 1 !important; }
/* le foto originali hanno una vignettatura bianca: ritaglio dei bordi sfumati */
.pe .features8 .card:nth-child(1) .image-wrapper img { transform: scale(1.22); transform-origin: 18% 30%; object-position: 20% 30%; }
.pe .features8 .card:nth-child(2) .image-wrapper img { transform: scale(1.18); transform-origin: 25% 70%; object-position: 30% 60%; }
.pe .features8 .card-wrapper:hover .image-wrapper img { transform: scale(1.26); }
.pe .features8 .card:nth-child(3) .card-wrapper:hover .image-wrapper img { transform: scale(1.04); }
.pe-sublinks a { color: var(--brand-dark) !important; background: var(--brand-tint) !important; border: 1px solid rgba(62, 107, 40, .18); }

/* ---- Perché Physioemme ---- */
.pe .features22 .content-row { align-items: stretch; }
.pe .features22 .card { display: flex; }
.pe .features22 .card > .card-box { flex: 1; display: flex; flex-direction: column; justify-content: flex-start; }

/* ---- Banda CTA ---- */
.pe .info1 { overflow: hidden; isolation: isolate; }
.pe .info1::before, .pe .info1::after {
  content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 1;
  border: 2px solid rgba(255, 255, 255, .16); background: radial-gradient(circle, rgba(255, 255, 255, .10), rgba(255, 255, 255, 0) 70%);
}
.pe .info1::before { width: 420px; height: 420px; right: -120px; top: -160px; }
.pe .info1::after { width: 280px; height: 280px; left: -90px; bottom: -130px; }
.pe .pe-cta-icon { display: inline-grid; place-items: center; width: 64px; height: 64px; margin-bottom: 1.25rem; border-radius: 50%; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35); }
.pe .pe-cta-icon svg { width: 30px; height: 30px; fill: #fff; }
.pe .info1 .mbr-section-btn { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.pe .info1 .mbr-section-btn .btn { margin: 0 !important; }
.pe .pe-btn-outline-light { background: transparent !important; color: #fff !important; border: 2px solid #fff !important; }
.pe .pe-btn-outline-light svg { width: 1.15em; height: 1.15em; fill: currentColor; }
.pe .pe-btn-outline-light:hover { background: #fff !important; color: var(--brand-dark) !important; }
.pe .info1 .mbr-text { margin-bottom: 2rem !important; }

/* ---- I nostri Spazi ---- */
.pe .content3 .item-content { justify-content: center; padding: 1.5rem 1.5rem 1.75rem; }
.pe .content3 .item-content .mbr-text { margin-top: .5rem !important; margin-bottom: 0; }

/* ---- Sfondi alternati in home ---- */
.pe-home .features22 { background: #fff !important; }
.pe-home .content3 { background: #fff !important; }
.pe-home .pe-faq { background: var(--pe-surface) !important; }
.pe-home .pe-reviews { background: #fff !important; }
.pe-home .pe-where { background: var(--pe-surface) !important; }

/* ---- Come raggiungerci ---- */
.pe-where__grid { align-items: stretch; }
.pe-where__info { height: 100%; display: flex; flex-direction: column; }
.pe-where__info .pe-btn-row { margin-top: auto; padding-top: 1.25rem; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-left: 0; margin-right: 0; }
.pe-where__info .pe-btn-row .pe-btn { width: 100%; margin: 0 !important; padding-left: 1rem; padding-right: 1rem; }
.pe-map { height: 100%; }
.pe-info-row a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 575.98px) { .pe-where__info .pe-btn-row { grid-template-columns: 1fr; } }

/* ---- Footer ---- */
.pe-footer {
  background: linear-gradient(180deg, #3E6B28 0%, #2F5220 100%) !important; border-top: 4px solid #78C245;
  color: rgba(255, 255, 255, .85); padding: 64px 0 1.25rem;
}
.pe-footer p, .pe-footer li, .pe-footer .pe-hours li { color: rgba(255, 255, 255, .85) !important; }
.pe-footer__title { color: #78C245 !important; font-size: .82rem !important; letter-spacing: .12em; margin-bottom: 1rem !important; }
.pe-footer a { color: rgba(255, 255, 255, .92) !important; text-decoration: none !important; transition: color .2s ease; }
.pe-footer a:hover, .pe-footer a:focus-visible { color: #78C245 !important; }
.pe-footer__logo { display: inline-block; }
.pe-footer__brand img { height: auto; width: 150px; max-width: 100%; padding: 8px 12px; background: #fff; border-radius: 12px; margin-bottom: 1rem; }
.pe-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.pe-footer__list a { display: flex; align-items: flex-start; gap: .7rem; min-height: 44px; padding: .35rem 0; line-height: 1.5; }
.pe-footer__list svg { flex: none; width: 20px; height: 20px; margin-top: .15rem; fill: #78C245; }
.pe-nowrap { white-space: nowrap; }
.pe-footer .pe-hours li { border-bottom: 1px solid rgba(255, 255, 255, .12) !important; padding: .45rem 0 !important; }
.pe-footer .pe-hours li span:first-child { font-weight: 400; }
.pe .pe-hours li.is-today { font-weight: 700; }
.pe .pe-hours li.is-today span:first-child { font-weight: 700; }
.pe .pe-hours .pe-today { display: inline-block; margin-left: .5rem; padding: .05rem .5rem; border-radius: 999px; font-size: .75rem; font-weight: 700; background: var(--brand); color: var(--brand-ink); vertical-align: .1em; }
.pe-footer .pe-hours li.is-today { color: #fff !important; }
.pe-footer .pe-social { margin-top: .5rem; }
.pe-footer .pe-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); }
.pe-footer .pe-social .socicon { width: auto !important; height: auto !important; background: none !important; color: #fff !important; font-size: 1.05rem !important; }
.pe-footer .pe-social a:hover { border-color: #78C245; }
.pe-footer .pe-social a:hover .socicon { color: #78C245 !important; transform: none; }
.pe-footer__bottom { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .92rem; }
.pe-footer__bottom nav { justify-content: flex-end; }
.pe-footer__bottom nav a { display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 768px) { .pe-footer__bottom { padding-right: 110px; } }
@media (max-width: 767.98px) {
  .pe-footer { padding-top: 48px; }
  .pe-footer__bottom nav { justify-content: flex-start; }
}
.pe-footer__map { display: none; }

/* ritocchi finali */
@media (min-width: 992px) { :root { --pe-header-h: 104px; } .pe .header13 { min-height: calc(85vh + var(--pe-header-h)) !important; } }
.pe-footer__list a > span { display: block; line-height: 1.55; }
.pe-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; }
.pe-footer__bottom p { flex: 0 1 auto; }
.pe-footer__bottom nav { margin-left: auto; }
@media (max-width: 767.98px) { .pe-footer__bottom nav { margin-left: 0; } }
@media (min-width: 1100px) { .pe-where__grid:not(.pe-where__grid--map) { grid-template-columns: 1fr 1fr; } }
.pe-where__info .pe-btn-row .pe-btn { white-space: nowrap; font-size: 1rem !important; }
.pe-home .features8 { padding-top: 1.5rem !important; }

/* =========================================================
   Privacy, cookie e accessibilità
   ========================================================= */
/* Skip link */
.pe-skip {
  position: absolute; left: 16px; top: -100px; z-index: 2000; padding: .8rem 1.2rem; border-radius: 12px;
  background: var(--brand-dark); color: #fff !important; font-weight: 700; text-decoration: none !important;
}
.pe-skip:focus, .pe-skip:focus-visible { top: 12px; outline: 3px solid #fff !important; outline-offset: 2px; }
main:focus { outline: none; }

/* Contrasti AA */
.pe-footer__title { color: #c3eaa3 !important; }
.pe-footer a:hover, .pe-footer a:focus-visible { color: #d4f2bd !important; }
.pe .header13 .mbr-overlay {
  background: linear-gradient(to top right, rgba(47, 82, 32, .88) 0%, rgba(47, 82, 32, .74) 50%, rgba(84, 140, 56, .58) 100%) !important;
}
.pe .pe-btn--light, .pe .pe-btn-outline-light { text-shadow: 0 1px 4px rgba(16, 36, 10, .35); }

/* Moduli */
.pe .pe-label { display: block; margin: 0 0 .35rem; font-weight: 600; color: var(--pe-ink); font-size: 1rem; }
.pe-form-hint { margin: -.15rem 0 .5rem; font-size: .95rem; color: var(--pe-muted); }
.pe-form-note { margin: .75rem 0 0; font-size: .95rem; color: var(--pe-muted); text-align: center; }
.pe-form-note a { font-weight: 600; }

/* Riga dati professionali */
.pe-footer__bottom .pe-footer__pro { flex: 1 1 100%; order: 3; margin: .25rem 0 0 !important; font-size: .8rem; line-height: 1.5; color: rgba(255, 255, 255, .85) !important; }
.pe-footer__legal { display: flex; flex-wrap: wrap; gap: 0 1.25rem; width: 100%; justify-content: flex-start; }
.pe-footer__legal a, .pe-footer__legal .pe-linkbtn { display: inline-flex; align-items: center; min-height: 44px; font-size: .9rem; }
.pe-linkbtn { background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.pe-footer .pe-linkbtn { color: rgba(255, 255, 255, .92); text-decoration: none; }
.pe-footer .pe-linkbtn:hover { color: #d4f2bd; }
.pe-pro-line { margin: .25rem 0 1rem; font-size: 1rem; font-weight: 600; color: var(--brand-dark); }

/* Segnaposto per mappa e recensioni */
.pe-embed { position: relative; width: 100%; height: 100%; min-height: 320px; border-radius: inherit; background: var(--brand-tint); display: flex; }
.pe-embed--reviews { min-height: 0; border-radius: var(--pe-radius); border: 1px dashed rgba(62, 107, 40, .35); margin-bottom: 1.5rem; }
.pe-embed.is-loaded { background: transparent; border: 0; display: block; }
.pe-embed--reviews.is-loaded { margin-bottom: 2rem; }
.pe-embed__inner { margin: auto; padding: 2rem 1.5rem; text-align: center; max-width: 460px; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.pe-embed__inner > svg { width: 40px; height: 40px; fill: var(--brand-dark); }
.pe-embed__inner p { margin: 0; color: var(--pe-ink); font-weight: 500; }
.pe-embed__inner .pe-btn { margin: 0 !important; }
.pe-embed.is-loaded .pe-map__frame { position: absolute; inset: auto; left: 0; top: -150px; width: 100%; height: calc(100% + 150px); border: 0; }
.pe-map .pe-embed--map { position: absolute; inset: 0; }

/* Banner cookie */
.pe-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 3000; padding: 16px; display: none; pointer-events: none; }
.pe-cookie.is-visible { display: block; }
.pe-cookie__box {
  position: relative; pointer-events: auto; max-width: 880px; margin: 0 auto; padding: 1.4rem 1.5rem 1.25rem;
  background: #fff; color: var(--pe-ink); border-radius: 18px; border-top: 4px solid var(--brand);
  box-shadow: 0 20px 60px rgba(20, 30, 15, .28); max-height: calc(100vh - 32px); overflow-y: auto;
}
.pe-cookie__title { margin: 0 2.5rem .4rem 0; font-weight: 800; font-size: 1.15rem; }
.pe-cookie__text { margin: 0 0 1rem; font-size: .98rem; line-height: 1.55; }
.pe-cookie__text a { font-weight: 600; color: var(--brand-dark); }
.pe-cookie__close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.pe-cookie__close svg { width: 22px; height: 22px; fill: var(--pe-ink); }
.pe-cookie__close:hover { background: var(--brand-tint); }
.pe-cookie__prefs fieldset { border: 0; margin: 0 0 1rem; padding: 0; }
.pe-cookie__prefs legend { font-weight: 700; font-size: 1rem; margin-bottom: .5rem; }
.pe-switch { display: flex; gap: .75rem; align-items: flex-start; padding: .6rem 0; border-bottom: 1px solid var(--pe-border); font-size: .95rem; cursor: pointer; }
.pe-switch input { width: 22px; height: 22px; margin-top: .15rem; accent-color: var(--brand-dark); flex: none; }
.pe-cookie__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; align-items: center; }
.pe-cbtn {
  min-height: 48px; min-width: 140px; padding: .7rem 1.4rem; border-radius: 999px; cursor: pointer; font: inherit; font-weight: 700; font-size: 1rem;
  background: var(--btn-primary); color: #fff; border: 2px solid var(--btn-primary);
}
.pe-cbtn:hover, .pe-cbtn:focus-visible { background: var(--btn-primary-hover); border-color: var(--btn-primary-hover); }
.pe-cbtn--link, .pe-cbtn--save { background: #fff; color: var(--brand-dark); }
.pe-cbtn--link:hover, .pe-cbtn--save:hover { background: var(--brand-tint); color: var(--brand-darker); }
.pe-cbtn--link { margin-right: auto; }
@media (max-width: 575.98px) {
  .pe-cookie { padding: 8px; }
  .pe-cookie__box { padding: 1.1rem 1rem 1rem; border-radius: 14px; }
  .pe-cookie__text { font-size: .92rem; }
  .pe-cookie__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .pe-cbtn { min-width: 0; width: 100%; padding: .65rem .75rem; }
  .pe-cbtn--link, .pe-cbtn--save { grid-column: 1 / -1; margin: 0; order: 3; }
}
html.pe-cookie-open .pe-mobilebar { visibility: hidden; }

/* Pagine legali */
.pe-legal__container { max-width: 860px; }
.pe-legal h1 { font-size: clamp(1.9rem, 4.5vw, 2.8rem); font-weight: 800; margin-bottom: .5rem; }
.pe-legal h2 { font-size: clamp(1.3rem, 2.6vw, 1.6rem); font-weight: 800; margin: 2.25rem 0 .75rem; color: var(--brand-dark); }
.pe-legal h3 { font-size: 1.15rem; font-weight: 700; margin: 1.5rem 0 .5rem; }
.pe-legal ul { padding-left: 1.25rem; }
.pe-legal li { margin-bottom: .5rem; }
.pe-legal__updated { color: var(--pe-muted); font-size: .95rem; }
.pe-legal__note { background: var(--brand-tint); border-left: 4px solid var(--brand); padding: 1rem 1.25rem; border-radius: 8px; }
.pe-table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; }
.pe-table { width: 100%; border-collapse: collapse; font-size: .97rem; min-width: 560px; }
.pe-table caption { caption-side: top; text-align: left; font-weight: 700; color: var(--pe-ink); padding: 0 0 .5rem; }
.pe-table th, .pe-table td { padding: .7rem .8rem; border-bottom: 1px solid var(--pe-border); text-align: left; vertical-align: top; }
.pe-table th { background: var(--brand-tint); font-weight: 700; }
.pe .pe-breadcrumb-section { background: var(--pe-surface) !important; padding: 1.25rem 0 0 !important; }

/* Testo ingrandito al 200%: niente rotture */
.pe .pe-btn, .pe .btn { white-space: normal; }
.pe-mobilebar a span { white-space: nowrap; }
@media (max-width: 400px) { .pe-mobilebar a { font-size: 1rem; gap: .35rem; } }

.pe-embed__inner p { line-height: 1.55; }
.pe-skip { min-height: 44px; display: inline-flex; align-items: center; }

/* ---------- Pagine macchinario, galleria foto e lightbox (nov 2026) ---------- */
.pe-device { padding: var(--pe-section-y) 0 1rem; }
.pe-device__body { font-size: 1.05rem; line-height: 1.7; color: var(--pe-ink); }
.pe-device__h { margin: 2rem 0 .75rem; font-size: clamp(1.35rem, 3vw, 1.75rem); font-weight: 700; color: var(--pe-primary); }
.pe-device__h:first-child { margin-top: 0; }
.pe-device__body ul { padding-left: 1.25rem; margin: 0 0 1rem; }
.pe-device__body li { margin: .25rem 0; }
.pe-device__note { margin: 2rem 0 0; padding: 1rem 1.25rem; border-radius: var(--pe-radius-sm); background: var(--brand-tint); border-left: 4px solid var(--brand); font-weight: 600; color: var(--pe-primary); }
.pe-gallery-section { padding: 1.5rem 0 var(--pe-section-y); }
.pe-gallery-section__title { text-align: center; margin: 0 0 1.75rem; font-size: clamp(1.5rem, 3.5vw, 2.25rem); font-weight: 700; color: var(--pe-primary); }
.pe-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 1rem; grid-auto-flow: dense; }
.pe-gallery__item a { display: block; height: 100%; border-radius: var(--pe-radius); overflow: hidden; box-shadow: var(--pe-shadow); background: var(--pe-surface); }
.pe-gallery__item img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; transition: transform .5s var(--pe-ease); }
.pe-gallery__item--wide { grid-column: span 2; }
.pe-gallery__item--wide img { aspect-ratio: auto; }
.pe-gallery__item a:hover img, .pe-gallery__item a:focus-visible img { transform: scale(1.04); }
.pe-gallery__item a:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
@media (max-width: 479.98px) { .pe-gallery { grid-template-columns: 1fr 1fr; gap: .6rem; } .pe-gallery__item--wide { grid-column: span 2; } }
.pe-lightbox { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; background: rgba(10, 16, 8, .92); padding: 3.5rem 1rem; }
.pe-lightbox.is-open { display: flex; }
.pe-lightbox figure { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.pe-lightbox img { max-width: min(1600px, 100%); max-height: calc(100vh - 9rem); width: auto; height: auto; object-fit: contain; border-radius: var(--pe-radius-sm); box-shadow: var(--pe-shadow-lg); }
.pe-lightbox figcaption { margin-top: .75rem; color: #fff; font-size: .95rem; text-align: center; max-width: 60ch; }
.pe-lightbox button { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.pe-lightbox button:hover, .pe-lightbox button:focus-visible { background: var(--brand); outline: none; }
.pe-lightbox__close { top: 1rem; right: 1rem; }
.pe-lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.pe-lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 575.98px) { .pe-lightbox__prev, .pe-lightbox__next { top: auto; bottom: 1rem; transform: none; } }
body.pe-lightbox-open { overflow: hidden; }
/* foto nuove nelle card della home: nessun ingrandimento che tagli il macchinario */
.pe .features8 .card .image-wrapper img.pe-img-new { transform: none; object-position: center; transform-origin: center; }
.pe .features8 .card .card-wrapper:hover .image-wrapper img.pe-img-new { transform: scale(1.04); }
.pe .pe-device__body p, .pe .pe-device__body li { font-size: 1.05rem; line-height: 1.75; margin-bottom: .6rem; }

/* hero home: foto reale della palestra, versione leggera su mobile */
@media (min-width: 800px) { .pe .header13 { background-image: url("../../images/palestra-panoramica-physioemme-1600.webp") !important; background-position: center 40% !important; } }
/* banda CTA: lo sfondo era coperto al 100% dal velo colorato, inutile scaricarlo */
.pe .info1 { background-image: none !important; }
.pe-gallery__figure { margin: 0; display: flex; flex-direction: column; height: 100%; }
.pe-gallery__figure a { height: auto; }
.pe-gallery__item--wide img { aspect-ratio: 8 / 5; }
.pe-gallery__figure figcaption { margin-top: .5rem; font-size: .9rem; line-height: 1.35; color: var(--pe-muted); text-align: center; }
.pe-gallery-section__intro { text-align: center; margin: -1rem auto 1.75rem; max-width: 60ch; color: var(--pe-muted); }

/* =========================================================
   Il Centro: bio "Chi sono", aree di competenza, locali (nov 2026)
   ========================================================= */
.pe .pe-bio { background: var(--pe-surface) !important; }
.pe-bio .pe-section__head { margin-bottom: 1.5rem; }
.pe-bio__card {
  background: #fff; border: 1px solid var(--pe-border); border-left: 6px solid var(--brand);
  border-radius: var(--pe-radius); box-shadow: var(--pe-shadow-sm); padding: clamp(1.25rem, 3.5vw, 2.75rem);
}
.pe-bio__top { display: grid; gap: 1.75rem; align-items: start; }
@media (min-width: 992px) { .pe-bio__top { grid-template-columns: 340px 1fr; gap: 2.5rem; } }
.pe-bio__photo { margin: 0 auto; max-width: 360px; width: 100%; }
.pe-bio__photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--pe-radius); }
.pe-bio__name { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; line-height: 1.25; color: var(--brand-dark); margin: 0 0 1.25rem; }
.pe-bio h3 { font-size: 1.1rem; font-weight: 700; color: var(--pe-ink); margin: 0 0 .4rem; letter-spacing: .01em; }
.pe-bio__block { margin-bottom: 1.25rem; }
.pe-bio__block p { margin: 0 0 .5rem; }
.pe-bio__list { margin: 0; padding-left: 1.2rem; }
.pe-bio__list li { margin: .2rem 0; }
.pe-bio__list li::marker { color: var(--brand); }
.pe-bio__highlight {
  display: grid; gap: 1.25rem; align-items: center; margin: .75rem 0 1.75rem; padding: clamp(1.1rem, 3vw, 1.75rem);
  background: var(--brand-light, var(--brand-tint)); border-left: 4px solid var(--brand-dark); border-radius: var(--pe-radius-sm);
}
@media (min-width: 768px) { .pe-bio__highlight { grid-template-columns: 1fr 200px; gap: 2rem; } }
.pe-bio__highlight h3 { color: var(--brand-dark); }
.pe-bio__highlight p { margin: 0; font-size: 1.08rem; }
.pe-bio__cert { margin: 0 auto; width: min(200px, 60vw); text-align: center; }
.pe-bio__cert a { display: block; border-radius: var(--pe-radius-sm); overflow: hidden; box-shadow: var(--pe-shadow); }
.pe-bio__cert img { display: block; width: 100%; height: auto; transition: transform .4s var(--pe-ease); }
.pe-bio__cert a:hover img, .pe-bio__cert a:focus-visible img { transform: scale(1.04); }
.pe-bio__cert figcaption { margin-top: .4rem; font-size: .85rem; color: var(--pe-muted); }
.pe-bio__grid { display: grid; gap: .5rem 2rem; }
@media (min-width: 768px) { .pe-bio__grid { grid-template-columns: repeat(3, 1fr); } }
.pe-bio__quote { color: var(--pe-muted); font-size: .98rem; }
.pe-bio__areas { margin-top: 1rem; padding-top: 1.5rem; border-top: 1px solid var(--pe-border); }
.pe-bio__areas h3 { margin-bottom: 1rem; }
.pe-chips { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.pe-chip {
  display: flex; align-items: center; gap: .6rem; height: 100%; min-height: 48px; padding: .6rem .85rem;
  border: 1px solid var(--pe-border); border-radius: 12px; background: #fff; color: var(--pe-ink); font-size: .98rem; line-height: 1.3;
}
.pe-chip svg { flex: none; width: 20px; height: 20px; fill: var(--brand); }
.pe-chip > span { flex: 1; }
.pe a.pe-chip--link { color: var(--brand-dark); font-weight: 600; text-decoration: none; transition: background-color .2s ease, border-color .2s ease; }
.pe a.pe-chip--link:hover, .pe a.pe-chip--link:focus-visible { background: var(--brand-light, var(--brand-tint)); border-color: var(--brand); color: var(--brand-dark); }
.pe-chip__arrow { width: 16px !important; height: 16px !important; fill: var(--brand-dark) !important; }
.pe-bio__albo { margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--pe-border); font-size: .95rem; color: var(--pe-muted); }

/* I nostri locali: filtri e gruppi */
.pe-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0 0 2rem; }
.pe-filter {
  min-height: 44px; padding: .5rem 1.1rem; border-radius: 999px; border: 1px solid var(--brand-dark);
  background: #fff; color: var(--brand-dark); font-weight: 600; font-size: .95rem; cursor: pointer; transition: background-color .2s ease, color .2s ease;
}
.pe-filter:hover { background: var(--brand-light, var(--brand-tint)); }
.pe-filter.is-active { background: var(--brand-dark); color: #fff; }
.pe-locali__group { margin-bottom: 2.25rem; }
.pe-locali__group:last-child { margin-bottom: 0; }
.pe-locali__group[hidden] { display: none; }
.pe-locali__title { display: flex; align-items: baseline; gap: .75rem; font-size: clamp(1.15rem, 2.4vw, 1.4rem); font-weight: 700; color: var(--brand-dark); margin: 0 0 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--brand-light, var(--brand-tint)); }
.pe-locali__count { font-size: .85rem; font-weight: 500; color: var(--pe-muted); }

/* Come raggiungerci: telefoni */
.pe-where__phones { text-align: center; margin: 1.5rem 0 0; font-weight: 600; }
.pe-muted-note { font-weight: 400; color: var(--pe-muted); font-size: .92em; }

/* Bug mobile: hamburger e X sempre verde brand, senza evidenziazioni blu */
.pe .navbar .navbar-toggler, .pe section.menu button.navbar-toggler { color: var(--brand-dark) !important; -webkit-tap-highlight-color: transparent; box-shadow: none !important; }
.pe .navbar .navbar-toggler:focus:not(:focus-visible) { outline: none !important; }
.pe .navbar .navbar-toggler:focus-visible { outline: 3px solid var(--brand) !important; outline-offset: 2px; }
.pe section.menu .navbar .navbar-toggler .hamburger span,
.pe section.menu nav.opened .navbar-toggler .hamburger span { background-color: var(--brand-dark) !important; background-image: none !important; }

/* WhatsApp flottante: barra fissa Chiama/WhatsApp fino a 991px, pulsante compatto su desktop */
@media (max-width: 991.98px) {
  body.pe { padding-bottom: calc(86px + env(safe-area-inset-bottom)) !important; }
  .pe-wa-float { display: none !important; }
  .pe-mobilebar {
    display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1025;
    background: #fff; box-shadow: 0 -6px 24px rgba(30, 40, 20, .14); padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 8px;
  }
  .pe-mobilebar a {
    display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 52px; border-radius: 14px;
    font-weight: 700; font-size: 1.1rem; text-decoration: none !important; color: #fff !important;
  }
  .pe-mobilebar svg { width: 22px; height: 22px; fill: currentColor; }
  .pe-mobilebar__call { background: var(--btn-primary); color: #fff !important; }
  .pe-mobilebar__wa { background: var(--btn-primary-hover); }
  .physio-back-to-top { bottom: calc(96px + env(safe-area-inset-bottom)) !important; right: 12px !important; }
}
@media (min-width: 992px) {
  .pe-wa-float { right: 1rem; bottom: 1rem; padding: .45rem; }
  .pe-wa-float svg { width: 30px; height: 30px; }
  .physio-back-to-top { right: 1.15rem; bottom: 5.25rem; }
  body.pe { padding-bottom: 72px; }
}
@media (min-width: 992px) and (max-width: 1299.98px) {
  .pe main .container { padding-right: 76px; }
}

/* =========================================================
   Footer: logo bianco su fondo verde, colori brand #68AA46 (nov 2026)
   ========================================================= */
.pe-footer { background: linear-gradient(180deg, var(--brand-dark) 0%, var(--brand-darker) 100%) !important; }
.pe-footer__logo { display: inline-block; line-height: 0; margin-bottom: 1rem; }
.pe-footer__brand img.pe-footer__logo-img {
  display: block; width: 172px; max-width: 100%; height: auto; padding: 0; margin: 0 0 0 -2px;
  background: none; border-radius: 0; box-shadow: none;
}
@media (max-width: 767.98px) { .pe-footer__brand img.pe-footer__logo-img { width: 140px; } }
/* Se il file bianco non è disponibile resta il logo a colori nel riquadro */
.pe-footer__brand img.pe-footer__logo-img.is-fallback { background: #fff; padding: 8px 12px; border-radius: 12px; margin-left: 0; }
/* Titoli del footer leggibili sul verde scuro (il lime resta come dettaglio) */
.pe-footer__title { color: #fff !important; display: flex; align-items: center; gap: .5rem; }
.pe-footer__title::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--brand-2); flex: none; }
.pe-bio p, .pe-bio li { line-height: 1.65 !important; }
.pe-bio__list li { margin: .15rem 0; line-height: 1.5 !important; }
@media (max-width: 767.98px) { .pe-bio__cert { width: min(160px, 50vw); } }

/* =========================================================
   Card con immagine laterale (features8): immagine a tutta altezza (nov 2026)
   ========================================================= */
.pe .features8 .card-wrapper { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--pe-radius); min-height: 0; }
.pe .features8 .card-wrapper > .row { flex: 1 1 auto; align-items: stretch !important; }
.pe .features8 .card-wrapper > .row > .col-md-4 { align-self: stretch !important; display: flex; position: relative; }
.pe .features8 .image-wrapper { position: relative; flex: 1 1 auto; width: 100%; height: auto !important; max-height: none !important; overflow: hidden; margin: 0; }
.pe .features8 .image-wrapper img,
.pe .features8 .card .image-wrapper img.pe-img-new {
  position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-height: none !important;
  aspect-ratio: auto !important; object-fit: cover; transform: none; transform-origin: center;
}
.pe .features8 .card-wrapper:hover .image-wrapper img,
.pe .features8 .card .card-wrapper:hover .image-wrapper img.pe-img-new { transform: scale(1.04); }
.pe .features8 .card-wrapper > .row > .col-md { display: flex; align-items: center; }
.pe .features8 .card-box { width: 100%; height: auto !important; display: flex; flex-direction: column; justify-content: center; }
/* Inquadratura per foto: soggetto principale sempre visibile */
.pe .features8 .card:nth-child(1) .image-wrapper img { object-position: 50% 35% !important; }
.pe .features8 .card:nth-child(2) .image-wrapper img { object-position: 45% 55% !important; }
.pe .features8 .card:nth-child(3) .image-wrapper img { object-position: 50% 45% !important; }
@media (min-width: 768px) {
  .pe .features8 .card-wrapper { min-height: 320px; }
  .pe .features8 .image-wrapper { min-height: 320px; aspect-ratio: auto !important; }
}
@media (max-width: 767.98px) {
  .pe .features8 .card-wrapper > .row > .col-md-4 { flex: 0 0 100%; max-width: 100%; }
  .pe .features8 .image-wrapper { height: 220px !important; min-height: 220px; aspect-ratio: auto !important; flex: none; }
  .pe .features8 .card:nth-child(even) .card-wrapper > .row { flex-direction: column !important; }
  .pe .features8 .card .card-wrapper > .row { flex-direction: column !important; }
}

/* Logo bianco footer: il PNG 1080x1080 ha margini trasparenti (76px ai lati, 259px sopra/sotto).
   Il contenitore ha le proporzioni del solo logo (928x562) e ritaglia i margini. */
.pe-footer__logo { display: block; width: 172px; max-width: 100%; aspect-ratio: 928 / 562; overflow: hidden; line-height: 0; margin: 0 0 1.1rem; background: none; padding: 0; }
.pe-footer__brand .pe-footer__logo img.pe-footer__logo-img {
  display: block; width: 116.38% !important; max-width: none !important; height: auto !important;
  margin: -27.91% 0 0 -8.19% !important; padding: 0 !important; background: none !important; border-radius: 0 !important; box-shadow: none !important;
}
@media (max-width: 767.98px) { .pe-footer__logo { width: 140px; } }
.pe-footer__logo:focus-visible { outline: 3px solid var(--brand-2); outline-offset: 4px; overflow: visible; }
/* Su mobile ".pe-footer a" diventa inline-flex centrato: il logo resta un blocco con ritaglio fisso */
.pe-footer a.pe-footer__logo { display: block !important; min-height: 0 !important; align-items: initial; }

/* =========================================================
   Footer: barra inferiore a due righe, niente fascia bianca, pulsanti flottanti (nov 2026)
   ========================================================= */
html { background: var(--brand-darker); }
@media (min-width: 992px) { body.pe { padding-bottom: 0 !important; } }

.pe-footer__bottom {
  display: flex !important; flex-direction: column; align-items: stretch; gap: 10px;
  margin-top: 2.25rem; padding: 1.1rem 0 0 !important; border-top: 1px solid rgba(255, 255, 255, .14);
  font-size: .84rem; line-height: 1.5;
}
.pe-footer__row { display: flex; align-items: center; justify-content: space-between; gap: .35rem 2rem; }
.pe-footer__bottom p, .pe-footer__bottom .pe-footer__pro {
  margin: 0 !important; flex: 0 1 auto; order: 0; font-size: .84rem !important; color: rgba(255, 255, 255, .8) !important;
}
.pe-footer__bottom nav, .pe-footer__bottom .pe-footer__legal {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0; margin: 0 0 0 auto !important; width: auto; flex: 0 1 auto;
}
.pe-footer__bottom nav > a, .pe-footer__bottom nav > .pe-linkbtn {
  display: inline-flex !important; align-items: center; min-height: 32px !important; padding: 0 !important; margin: 0;
  font-size: .84rem !important; color: rgba(255, 255, 255, .8) !important; background: none; border: 0; text-decoration: none !important; white-space: nowrap;
}
.pe-footer__bottom nav > * + *::before { content: "·"; margin: 0 .6rem; color: rgba(255, 255, 255, .45); pointer-events: none; }
.pe-footer__bottom nav > a:hover, .pe-footer__bottom nav > a:focus-visible,
.pe-footer__bottom nav > .pe-linkbtn:hover, .pe-footer__bottom nav > .pe-linkbtn:focus-visible { color: var(--brand-2) !important; }
.pe-footer__bottom nav > a:focus-visible, .pe-footer__bottom nav > .pe-linkbtn:focus-visible { outline: 2px solid var(--brand-2); outline-offset: 2px; }
@media (min-width: 992px) and (max-width: 1299.98px) { .pe-footer__bottom { padding-right: 88px !important; } }
@media (min-width: 1300px) { .pe-footer__bottom { padding-right: 0 !important; } }
@media (max-width: 991.98px) {
  .pe-footer__bottom { gap: 14px; text-align: center; padding-right: 0 !important; }
  .pe-footer__row { flex-direction: column; justify-content: center; gap: 6px; }
  .pe-footer__bottom nav, .pe-footer__bottom .pe-footer__legal { justify-content: center; margin: 0 !important; }
  .pe-footer__bottom p, .pe-footer__bottom .pe-footer__pro { text-align: center; }
}

/* Pulsanti flottanti: WhatsApp 56px a 24px dai bordi, "torna su" sopra con 12px di distanza */
.pe-wa-float {
  right: 24px !important; bottom: 24px !important; width: 56px; height: 56px; padding: 0 !important; gap: 0 !important;
  justify-content: center; border-radius: 50%; overflow: hidden;
}
.pe-wa-float { background: var(--btn-primary); color: #fff !important; }
.pe-wa-float:hover, .pe-wa-float:focus-visible { background: var(--btn-primary-hover); }
.pe-wa-float svg { width: 30px !important; height: 30px !important; fill: #fff; }
.pe-wa-float__label { display: none !important; }
.pe-wa-float:hover, .pe-wa-float:focus-visible { transform: translateY(-2px); }
.physio-back-to-top { width: 56px !important; height: 56px !important; right: 24px !important; bottom: calc(24px + 56px + 12px) !important; }
@media (max-width: 991.98px) {
  .physio-back-to-top { width: 48px !important; height: 48px !important; right: 16px !important; bottom: calc(96px + env(safe-area-inset-bottom)) !important; }
}
/* niente corpo bianco "allungato" sotto il footer nelle pagine corte (style.css imposta min-height 100vh) */
html body.pe { min-height: 0; }
/* desktop: i link restano su una riga, il testo a sinistra va a capo */
@media (min-width: 992px) {
  .pe-footer__row > p { flex: 1 1 auto; min-width: 0; }
  .pe-footer__bottom nav, .pe-footer__bottom .pe-footer__legal { flex: 0 0 auto; flex-wrap: nowrap; }
}
/* tablet e mobile: niente separatori (andrebbero a inizio riga), spaziatura ordinata */
@media (max-width: 991.98px) {
  .pe-footer__bottom nav > * + *::before { content: none; }
  .pe-footer__bottom nav, .pe-footer__bottom .pe-footer__legal { gap: 0 1.1rem; }
}
/* sotto i 992px lo spazio per la barra Chiama/WhatsApp sta dentro il footer (verde), non nel body (bianco) */
@media (max-width: 991.98px) {
  body.pe { padding-bottom: 0 !important; }
  .pe-footer { padding-bottom: calc(1.25rem + 86px + env(safe-area-inset-bottom)) !important; }
}

/* =========================================================
   Correzioni mobile (7 nov 2026) – verificate a 360/375/390/414px
   ========================================================= */
/* Animazioni di comparsa: solo opacità e piccolo spostamento, mai altezza; senza JS (niente .pe-js) tutto resta visibile */
.pe-js .pe-reveal { transform: translateY(16px); transition-duration: .6s; }

@media (max-width: 991.98px) {
  /* Header sticky più basso: 64px, logo 40px, hamburger 44x44 centrato */
  :root { --pe-header-h: 64px; }
  .pe section.menu { min-height: 64px !important; }
  .pe .navbar.navbar-dropdown, .pe.is-scrolled .navbar.navbar-dropdown {
    min-height: 64px !important; height: 64px; padding: 0 !important; display: flex; align-items: center;
  }
  .pe .navbar.navbar-dropdown > .container { height: 64px; align-items: center !important; padding-top: 0 !important; padding-bottom: 0 !important; }
  .pe .navbar-brand { height: 64px; padding: 0 !important; }
  .pe .navbar-logo, .pe .navbar-logo a { display: flex; align-items: center; }
  .pe .navbar-logo img, .pe.is-scrolled .navbar-logo img { height: 40px !important; width: auto !important; }
  .pe .navbar .navbar-toggler, .pe button.navbar-toggler { width: 44px !important; height: 44px !important; align-self: center !important; }

  /* "Torna su": nascosto dove c'è la barra fissa in basso */
  .physio-back-to-top, .physio-back-to-top.is-visible { display: none !important; }

  /* Barra fissa in basso: due pulsanti uguali da 52px, margini uguali, area sicura iPhone */
  .pe-mobilebar {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px;
    padding: 8px 12px !important; padding-bottom: calc(8px + env(safe-area-inset-bottom)) !important;
  }
  .pe-mobilebar a {
    min-width: 0; height: 52px; min-height: 52px; padding: 0 12px; gap: 8px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center; overflow: hidden;
    font-size: 16px !important; font-weight: 700; line-height: 1; color: #fff !important; text-decoration: none !important;
  }
  .pe-mobilebar a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pe-mobilebar svg { flex: 0 0 22px; width: 22px !important; height: 22px !important; fill: #fff !important; display: block; }
  .pe-mobilebar__call { background: #4A8232 !important; }
  .pe-mobilebar__wa { background: #3E6B28 !important; }
  .pe-mobilebar a:active { filter: brightness(.92); }
  .pe-footer { padding-bottom: calc(1.25rem + 68px + env(safe-area-inset-bottom)) !important; }
}

@media (max-width: 767.98px) {
  /* Chip delle terapie (home) e aree di competenza (Il Centro): 2-3 per riga */
  .pe-sublinks { gap: 8px !important; margin-bottom: 1.25rem; }
  .pe-sublinks a, .pe .pe-sublinks a {
    display: inline-flex; align-items: center; min-height: 32px; padding: 6px 12px !important;
    font-size: 14px !important; line-height: 1.3; border-radius: 999px;
  }
  .pe-chips { display: flex !important; flex-wrap: wrap; gap: 8px !important; }
  .pe-chips > li { flex: 0 1 auto; max-width: 100%; }
  .pe-chip {
    height: auto; min-height: 32px; padding: 6px 12px !important; gap: 6px; border-radius: 999px;
    font-size: 14px !important; line-height: 1.3;
  }
  .pe-chip svg { width: 16px; height: 16px; }
  .pe-chip__arrow { width: 14px !important; height: 14px !important; }
  .pe-chip > svg:not(.pe-chip__arrow) { display: none; } /* su mobile solo testo (e freccia per i link): più chip per riga */

  /* Banda "Richiedi un Consulto Gratuito" */
  .pe section.info1:not(.menu):not(.header13) { padding-top: 40px !important; padding-bottom: 40px !important; }
  .pe .pe-cta-icon { width: 56px; height: 56px; margin-bottom: 1rem; }
  .pe .pe-cta-icon svg { width: 26px; height: 26px; }
  .pe .info1 .mbr-section-title, .pe .info1 .mbr-section-title strong { font-size: 28px !important; line-height: 1.2; margin-bottom: .75rem !important; text-wrap: balance; }
  .pe .info1 .mbr-text { font-size: 16px !important; margin-bottom: 1.5rem !important; }
  .pe .info1 .mbr-section-btn { flex-direction: column; align-items: stretch; gap: 10px; }
  .pe .info1 .mbr-section-btn .btn { width: 100%; height: 52px; min-height: 52px; padding: 0 1rem !important; display: inline-flex; align-items: center; justify-content: center; }

  /* Tipografia: testo 16-17px, H2 26-30px, a capo equilibrati */
  body.pe, .pe .mbr-text, .pe .display-7 { font-size: 17px; }
  .pe h2, .pe h2.mbr-section-title, .pe h2.mbr-section-title strong, .pe .pe-section h2,
  .pe h2.display-1, .pe h2.display-2, .pe h2.display-5 { font-size: clamp(26px, 7.4vw, 30px) !important; line-height: 1.2 !important; }
  .pe h1, .pe h2, .pe h3, .pe .card-title { text-wrap: balance; overflow-wrap: break-word; hyphens: manual; }
  .pe .pe-breadcrumb, .pe .pe-breadcrumb a { font-size: 15px; }
}
