:root{
  --orange:#ff4b00;
  --orange2:#ff6a1a;
  --navy:#15325b;
  --charcoal:#30333a;
  --peach:#fff2e8;
  --peach2:#f8e1d1;
  --white:#ffffff;
  --muted:#60708a;
  --max:1180px;
  --shadow:0 14px 40px rgba(40,40,40,.08);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;color:var(--navy);background:#fff;line-height:1.45}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.site-header{height:96px;display:flex;align-items:center;gap:28px;max-width:var(--max);margin:auto;padding:14px 24px;position:relative;z-index:20;background:#fff}.brand img{width:330px;max-height:72px;object-fit:contain}.main-nav{margin-left:auto;display:flex;align-items:center;gap:25px;text-transform:uppercase;font-size:13px;letter-spacing:.05em}.main-nav>a:not(.btn){padding:14px 0}.main-nav>a:not(.btn):hover{color:var(--orange)}.menu-toggle{display:none;border:0;background:transparent;font-size:28px;color:var(--navy)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 26px;border-radius:999px;background:linear-gradient(90deg,var(--orange),var(--orange2));color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.03em;box-shadow:0 8px 20px rgba(255,75,0,.18);transition:.2s}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(255,75,0,.24)}.btn-small{padding:12px 20px}.btn-outline{background:#fff;color:var(--orange);border:1.5px solid var(--orange);box-shadow:none}
.hero{min-height:660px;position:relative;overflow:hidden;background:#fff}.hero-copy{width:50%;padding:90px max(24px,calc((100vw - var(--max))/2 + 24px));padding-right:7vw;position:relative;z-index:4}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--orange);font-weight:700}.hero h1{font-size:clamp(44px,5vw,76px);line-height:1.02;margin:16px 0 20px;color:var(--charcoal);letter-spacing:-.035em}.hero h1 span{color:var(--orange);font-weight:500}.accent-line{width:70px;height:4px;background:var(--orange);border-radius:8px;margin:24px 0}.accent-line.short{width:52px}.lead{font-size:20px;max-width:560px;color:var(--navy)}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.hero-photo{position:absolute;right:0;top:0;width:56%;height:100%;background:url('assets/ambulatorio-bg.png') center/cover no-repeat}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,0) 40%)}.hero-curve{position:absolute;left:25%;bottom:-320px;width:1100px;height:540px;background:#fff;border:2px solid var(--orange);border-radius:50% 50% 0 0/100% 100% 0 0;z-index:3;transform:rotate(-8deg)}.hero-script{position:absolute;right:7%;bottom:52px;z-index:5;color:var(--orange);font-family:"Segoe Script","Brush Script MT",cursive;font-size:32px;line-height:1.25;transform:rotate(-7deg);text-align:center}
.section{max-width:var(--max);margin:auto;padding:68px 24px}.section-title-wrap{display:flex;align-items:center;gap:14px;margin-bottom:34px}.section-title-wrap h2{text-transform:uppercase;letter-spacing:.25em;color:var(--orange);font-size:19px;margin:0;white-space:nowrap}.section-title-wrap span{height:1.5px;background:var(--orange);flex:1}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px 28px}.service-card{text-align:center}.icon-wrap,.value-icon{width:78px;height:78px;margin:0 auto 14px}.icon-wrap svg,.value-icon svg{width:100%;height:100%;stroke:var(--orange);fill:none;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.icon-wrap img{width:100%;height:100%;object-fit:contain;display:block}.service-card h3{text-transform:uppercase;font-size:15px;line-height:1.25;margin:0 0 8px}.service-card p{margin:0;color:var(--muted);font-size:15px}
.care-band{display:grid;grid-template-columns:58% 42%;min-height:360px;overflow:hidden;background:linear-gradient(90deg,#fff 0,#fff 54%,var(--peach) 54%)}.hands-photo{background:url('assets/mani-medico-paziente.png') center/cover no-repeat;clip-path:ellipse(85% 100% at 35% 50%)}.care-copy{padding:66px 8vw 54px 70px;align-self:center}.care-copy h2{font-family:Georgia,serif;font-style:italic;font-weight:400;font-size:38px;line-height:1.16;margin:0;color:var(--navy)}.care-copy p{font-size:19px;max-width:390px;margin:0;color:var(--navy)}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding-top:46px;padding-bottom:46px}.value{display:flex;align-items:center;gap:16px;padding:0 25px;border-right:1px solid #f2d7c6}.value:last-child{border-right:0}.value-icon{width:64px;height:64px;flex:0 0 64px;margin:0}.value h3{text-transform:uppercase;color:var(--orange);font-size:15px;margin:0 0 4px}.value p{margin:0;color:var(--muted);font-size:14px}
.cta-strip{background:var(--peach);padding:45px max(24px,calc((100vw - var(--max))/2 + 24px));display:flex;align-items:center;justify-content:space-between;gap:24px}.cta-strip h2{margin:6px 0 0;font-size:32px;color:var(--navy)}
footer{background:#fff9f5;border-top:1px solid #fae4d4;padding:38px 24px 24px}.contact-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.25fr 1fr 1.55fr auto;align-items:center;gap:28px}.contact-item{display:flex;gap:15px;align-items:center;color:var(--navy)}.contact-symbol{font-size:34px;color:var(--orange)}.contact-item small{display:block;color:var(--muted)}.contact-item strong{font-size:22px}.footer-tagline{max-width:var(--max);margin:34px auto 0;padding-top:18px;border-top:1px solid #bcc6d1;text-align:center;text-transform:uppercase;letter-spacing:.23em;font-size:12px}
.floating-whatsapp{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#25D366;color:#fff;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.22);z-index:30}
@media(max-width:980px){.site-header{height:auto}.brand img{width:260px}.menu-toggle{display:block;margin-left:auto}.main-nav{display:none;position:absolute;left:20px;right:20px;top:82px;background:#fff;padding:20px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.hero{min-height:auto}.hero-copy{width:100%;padding:64px 24px 360px}.hero-photo{top:auto;bottom:0;width:100%;height:350px}.hero-curve{display:none}.hero-script{right:24px;bottom:40px;font-size:25px;text-shadow:0 1px 10px #fff}.services-grid{grid-template-columns:repeat(2,1fr)}.care-band{grid-template-columns:1fr;display:block;background:#fff}.hands-photo{height:360px;clip-path:none}.care-copy{background:var(--peach);padding:48px 24px}.values{grid-template-columns:repeat(2,1fr);gap:26px}.value{border-right:0;padding:0}.contact-grid{grid-template-columns:1fr 1fr}.cta-strip{flex-direction:column;align-items:flex-start}}
@media(max-width:620px){.site-header{padding:12px 16px}.brand img{width:210px}.hero-copy{padding-top:45px}.hero h1{font-size:44px}.lead{font-size:18px}.hero-actions{flex-direction:column}.btn{width:100%}.hero-script{font-size:21px}.services-grid{grid-template-columns:1fr;gap:32px}.values{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}.care-copy h2{font-size:32px}.cta-strip h2{font-size:28px}}
/* =========================
   LE NOSTRE SEDI
   ========================= */

.locations {
  background: #fff;
}

.locations-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 30px;
}

.location-card {
  display: flex;
  align-items: center;
  gap: 22px;

  padding: 28px 30px;

  background: #fff;
  border: 1px solid #eeeeee;
  border-radius: 18px;

  text-decoration: none;
  color: inherit;

  box-shadow: 0 8px 24px rgba(0,0,0,0.06);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.location-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.10);
}

.location-icon {
  flex: 0 0 64px;

  width: 64px;
  height: 64px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 2px solid #ff4b00;
  border-radius: 50%;

  color: #ff4b00;
  font-size: 30px;
}

.location-copy h3 {
  margin: 0 0 6px;

  color: #30333a;
  font-size: 24px;
}

.location-copy p {
  margin: 0 0 12px;
  color: #666;
}

.location-link {
  color: #ff4b00;
  font-weight: 600;
}

.location-link strong {
  margin-left: 5px;
}

/* =========================================
   FINESTRA SCELTA SEDE - PRENOTAZIONE
   ========================================= */

.booking-location-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;

  display: none;
  align-items: center;
  justify-content: center;

  padding: 20px;
}

.booking-location-modal.open {
  display: flex;
}

.booking-location-overlay {
  position: absolute;
  inset: 0;

  background: rgba(20, 30, 45, 0.65);
  backdrop-filter: blur(3px);
}

.booking-location-box {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 560px;

  padding: 42px;

  background: #ffffff;
  border-radius: 22px;

  box-shadow: 0 20px 60px rgba(0,0,0,0.20);
}

.booking-location-box h2 {
  margin: 5px 0 10px;

  font-size: 32px;
  color: #30333a;
}

.booking-location-intro {
  margin: 0 0 28px;
  color: #666;
  line-height: 1.5;
}

.booking-location-close {
  position: absolute;
  top: 15px;
  right: 18px;

  border: 0;
  background: transparent;

  font-size: 32px;
  line-height: 1;

  color: #777;
  cursor: pointer;
}

.booking-location-options {
  display: grid;
  gap: 14px;
}

.booking-location-option {
  display: flex;
  flex-direction: column;
  gap: 5px;

  padding: 20px 22px;

  border: 1px solid #eeeeee;
  border-radius: 14px;

  text-decoration: none;

  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.booking-location-option strong {
  color: #30333a;
  font-size: 21px;
}

.booking-location-option span {
  color: #ff4b00;
  font-size: 14px;
  font-weight: 600;
}

.booking-location-option:hover {
  transform: translateY(-2px);
  border-color: #ff4b00;

  box-shadow: 0 8px 22px rgba(0,0,0,0.08);
}

body.modal-open {
  overflow: hidden;
}


@media (max-width: 600px) {

  .booking-location-box {
    padding: 34px 24px 26px;
  }

  .booking-location-box h2 {
    font-size: 27px;
  }

}
/* =========================================
   APPROFONDIMENTO SERVIZI
   ========================================= */

.service-more {
  margin-top: 10px;
  padding: 0;

  border: 0;
  background: transparent;

  color: #ff4b00;
  font: inherit;
  font-size: 14px;
  font-weight: 600;

  cursor: pointer;
}

.service-more:hover {
  text-decoration: underline;
}


/* POPUP */

.service-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;

  display: none;
  align-items: center;
  justify-content: center;

  padding: 20px;
}

.service-modal.open {
  display: flex;
}

.service-modal-overlay {
  position: absolute;
  inset: 0;

  background: rgba(20, 30, 45, 0.65);
  backdrop-filter: blur(3px);
}

.service-modal-box {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 650px;
  max-height: 85vh;
  overflow-y: auto;

  padding: 42px;

  background: #ffffff;
  border-radius: 22px;

  box-shadow: 0 20px 60px rgba(0,0,0,0.20);
}

.service-modal-box h2 {
  margin: 5px 0 10px;

  color: #30333a;
  font-size: 30px;
}

.service-modal-box p {
  line-height: 1.65;
}

.service-modal-box h3 {
  margin-top: 24px;
  margin-bottom: 8px;

  color: #30333a;
  font-size: 18px;
}

.service-modal-close {
  position: absolute;
  top: 15px;
  right: 18px;

  border: 0;
  background: transparent;

  color: #777;
  font-size: 32px;
  line-height: 1;

  cursor: pointer;
}

.service-booking-button {
  margin-top: 25px;
}

body.modal-open {
  overflow: hidden;
}


@media (max-width: 600px) {

  .service-modal-box {
    padding: 35px 24px 28px;
    max-height: 90vh;
  }

  .service-modal-box h2 {
    font-size: 25px;
  }

}