:root{
  --navy:#061d30;
  --deep:#031421;
  --blue:#0b5375;
  --cyan:#1fb9d2;
  --gold:#f6c431;
  --white:#ffffff;
  --muted:#d8e9ef;
  --panel:rgba(5,25,42,.62);
  --line:rgba(255,255,255,.22);
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:Inter,Arial,Helvetica,sans-serif;
  color:var(--white);
  background:var(--deep);
  line-height:1.55;
}

a{
  color:inherit;
}

.page{
  min-height:100vh;
  background:radial-gradient(circle at 80% 10%,rgba(255,211,116,.35),transparent 18%),linear-gradient(to bottom,#123d5b 0%,#0d4662 26%,#073554 32%,#06243a 56%,#03111d 100%);
  position:relative;
  overflow:hidden;
}

.page:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom,rgba(255,255,255,.06) 0 26%,rgba(22,184,214,.18) 26% 42%,rgba(1,16,28,.62) 70% 100%);
  pointer-events:none;
}

.container{
  width:min(1120px,92vw);
  margin:0 auto;
  position:relative;
  z-index:2;
}

/* ==========================================
   HEADER & NAVIGATION (Barra Trasparente, Hamburger a DESTRA)
   ========================================== */
/* ==========================================
   HEADER & NAVIGATION (Navbar Sfumata Scura)
   ========================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: linear-gradient(180deg, rgba(2, 12, 22, 0.94) 0%, rgba(4, 22, 36, 0.88) 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 4px 25px rgba(0, 0, 0, 0.35);
}

.nav-row {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  position: relative;
}

.logo {
  font-size: 28px;
  letter-spacing: 0.02em;
  font-weight: 700;
  line-height: 1.05;
  margin-bottom: 0;
}

.logo span { color: var(--gold); }

.nav-logo {
  font-size: 24px;
  display: inline-block;
  text-decoration: none;
  color: #fff;
}

.payoff {
  display: block;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: var(--muted);
  text-transform: uppercase;
  margin-top: 3px;
}

/* Menu Hamburger Toggle - Visibile solo su Small Devices (<= 900px) */
.menu-toggle {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  padding: 9px;
  cursor: pointer;
  transition: all 0.2s ease;
  z-index: 102;
}

.menu-toggle:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: var(--gold);
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.menu-toggle.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Base Navigazione */
.main-nav a {
  display: flex;
  align-items: center;
  color: #edf8fb;
  font-size: 15px;
  font-weight: 500;
  transition: background 0.2s ease, color 0.2s ease;
  text-decoration: none;
}

.main-nav a:hover {
  color: var(--gold);
}

.main-nav a.nav-cta {
  background: linear-gradient(90deg, #ffc94c, #f0ae20);
  color: #061d30 !important;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.04em;
  border-radius: 999px;
}

.main-nav a.nav-cta:hover {
  background: linear-gradient(90deg, #ffd466, #f5b933);
  box-shadow: 0 4px 15px rgba(246, 196, 49, 0.35);
}

/* Mobile & Small Devices (<= 900px): Popover Dropdown */
@media (max-width: 900px) {
  .menu-toggle {
    display: flex !important;
  }

  .main-nav {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: auto;
    width: min(300px, 88vw);
    background: rgba(3, 20, 33, 0.98);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 14px;
    padding: 12px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(246, 196, 49, 0.18);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    display: none;
    flex-direction: column;
    gap: 4px;
    z-index: 101;
  }

  .main-nav.is-open {
    display: flex !important;
    animation: slideDownRight 0.22s ease-out forwards;
  }

  .main-nav a {
    padding: 12px 14px;
    border-radius: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }

  .main-nav a:last-child {
    border-bottom: 0;
  }

  .main-nav a:hover {
    background: rgba(255, 255, 255, 0.08);
  }

  .main-nav a.nav-cta {
    margin-top: 8px;
    padding: 12px 18px;
    justify-content: center;
    border-bottom: 0;
  }
}

/* Desktop (> 900px): Link in linea, niente Hamburger */
@media (min-width: 901px) {
  .menu-toggle {
    display: none !important;
  }

  .main-nav {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 20px !important;
    width: auto !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
    animation: none !important;
  }

  .main-nav a {
    padding: 8px 12px;
    border-bottom: none !important;
    border-radius: 6px;
  }

  .main-nav a.nav-cta {
    margin-top: 0 !important;
    padding: 10px 22px !important;
  }
}

@keyframes slideDownRight {
  from {
    opacity: 0;
    transform: translateY(-8px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}



.container{
  width:min(1200px,92vw);
  margin:0 auto;
  position:relative;
  z-index:2;
}

/* HERO SECTION - 2 colonne come dentisti.html */
.hero {
  min-height: auto;
  padding: 72px 0 80px;
  position: relative;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 60px;
  align-items: center;
}

.hero-copy {
  max-width: 640px;
  text-align: left;
}

.eyebrow {
  display: inline-block;
  border: 1px solid rgba(246, 196, 49, 0.42);
  background: rgba(246, 196, 49, 0.08);
  color: #ffe39b;
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 22px;
}

.hero h1 {
  font-size: clamp(38px, 4.8vw, 58px);
  line-height: 1.08;
  margin: 0 0 20px;
  font-weight: 800;
  letter-spacing: -0.03em;
  text-shadow: 0 10px 35px rgba(0, 0, 0, 0.35);
  text-align: left;
}

.gold-line {
  width: 72px;
  height: 5px;
  background: var(--gold);
  margin: 0 0 24px;
  border-radius: 2px;
}

.hero p {
  font-size: 17px;
  line-height: 1.65;
  margin: 0 0 16px;
  color: #e2f2f7;
  text-align: left;
}

.hero strong, .accent { color: var(--gold); }

/* SEARCH CARD (MOCKUP RICERCHE) */
.search-card {
  background: rgba(2, 15, 27, 0.56);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 18px;
  padding: 26px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.34);
}

.search-card-top {
  display: flex;
  gap: 8px;
  margin-bottom: 22px;
}

.search-card-top span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
}

.search-card-top span:nth-child(1) { background: #ffb070; }
.search-card-top span:nth-child(2) { background: #f6c431; }
.search-card-top span:nth-child(3) { background: #8ae0c9; }

.query-list {
  display: grid;
  gap: 13px;
}

.query-item {
  position: relative;
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  padding: 14px 14px 14px 44px;
  color: #f1fbff;
  font-size: 15px;
}

.query-item:before {
  content: "⌕";
  position: absolute;
  left: 16px;
  top: 11px;
  color: var(--gold);
  font-size: 20px;
}

.query-note {
  margin-top: 22px;
  border-left: 4px solid var(--gold);
  background: rgba(246, 196, 49, 0.08);
  padding: 16px 18px;
  color: #fff5d0;
  font-size: 14px;
  font-weight: 700;
  border-radius: 0 8px 8px 0;
}

@media (max-width: 900px) {
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

/* SEZIONI E CONTENUTI (Margini regolati) */
.section{
  padding:96px 0;
  border-top:1px solid rgba(255,255,255,.08);
}
.grid{
  display:grid;
  grid-template-columns:1fr 1.45fr;
  gap:70px;
  align-items:start;
}
.section h2{font-size:clamp(30px,4vw,46px);line-height:1.08;margin:0 0 18px}
.section h3{font-size:22px;line-height:1.18;margin:0 0 10px}
.section p{color:#e1eef3;margin:0 0 14px}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-left:1px solid var(--line)}
.service{padding:0 28px 28px;border-right:1px solid var(--line)}
.service:nth-child(n+4){border-top:1px solid var(--line);padding-top:28px}
.service img{width:46px;height:46px;margin-bottom:12px}

.twocol{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.text-card{background:rgba(3,20,33,.34);border-left:1px solid var(--line);padding:10px 0 10px 34px}
.text-card .icon-round{width:60px;height:60px;border:2px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin-bottom:20px}
.text-card .icon-round img{width:34px}

/* FORM CONTATTI (Margini regolati) */
.contact{
  padding:104px 0 96px;
  background:linear-gradient(to bottom,rgba(3,20,33,.08),rgba(1,10,18,.72));
  border-top:1px solid rgba(255,255,255,.08);
  position:relative;
}
.contact-grid{display:grid;grid-template-columns:1fr 440px;gap:80px;align-items:center}
.checks{list-style:none;padding:0;margin:24px 0 0}
.checks li{margin:10px 0;padding-left:34px;position:relative}
.checks li:before{content:"◎";position:absolute;left:0;color:var(--gold)}
.form-box{background:rgba(2,15,27,.66);border:1px solid rgba(255,255,255,.55);border-radius:14px;padding:26px;backdrop-filter:blur(6px);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.form-box h2{font-size:22px;margin:0 0 18px;text-transform:uppercase;letter-spacing:.03em}
.form-box input,.form-box textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.52);border-radius:5px;color:#fff;padding:13px 14px;margin-bottom:11px;font:inherit}
.form-box textarea{min-height:118px;resize:vertical}
.privacy{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:#d3e3e8;margin:5px 0 18px}
.privacy input{width:auto;margin-top:4px}
.form-box button{width:100%;border:0;border-radius:5px;background:linear-gradient(90deg,#ffc94c,#f0ae20);color:#061d30;font-weight:800;padding:15px 18px;cursor:pointer;text-transform:uppercase}

/* FOOTER & LINK LEGALI */
.footer{
  position:relative;
  z-index:2;
  border-top:1px solid rgba(255,255,255,.1);
  padding:32px 0 28px;
  background:rgba(0,8,14,.55);
}
.footer-row{
  display:flex;
  gap:34px;
  align-items:center;
  justify-content:space-between;
  color:#c9dce2;
  font-size:14px;
  padding-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-subrow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:20px;
  color:#9cb5bd;
  font-size:13px;
  flex-wrap:wrap;
}
.footer-links{
  display:flex;
  gap:24px;
  align-items:center;
}
.footer-links a{
  color:#c9dce2;
  text-decoration:none;
  transition:color 0.2s ease;
}
.footer-links a:hover{
  color:var(--gold);
  text-decoration:underline;
}

/* VALIDAZIONE FORM */
.form-box input,
.form-box textarea{
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.form-box input:focus,
.form-box textarea:focus{
  outline:none;
  border-color:rgba(246,196,49,.88);
  box-shadow:0 0 0 3px rgba(246,196,49,.12);
  background:rgba(255,255,255,.07);
}
.form-box .is-invalid{
  border-color:rgba(255,189,89,.95);
  box-shadow:0 0 0 3px rgba(255,189,89,.10);
}
.form-box .is-valid{
  border-color:rgba(138,224,201,.58);
}
.field-message{
  min-height:0;
  margin:-5px 0 10px;
  color:#ffd98a;
  font-size:12px;
  line-height:1.35;
  opacity:0;
  transform:translateY(-2px);
  transition:opacity .18s ease, transform .18s ease;
}
.field-message.is-visible{
  opacity:1;
  transform:translateY(0);
}
.privacy + .field-message{
  margin:2px 0 14px 28px;
}
.form-box button:disabled{
  cursor:default;
  opacity:.82;
}
.form-success{
  margin-top:14px;
  padding:12px 14px;
  border:1px solid rgba(138,224,201,.35);
  border-radius:6px;
  background:rgba(138,224,201,.08);
  color:#dffbf5;
  font-size:13px;
}
.form-banner{
  display:none;
  margin-top:16px;
  padding:13px 16px;
  border-radius:7px;
  font-size:13px;
  line-height:1.5;
}
.form-banner.is-visible{ display:block; }
.form-banner[data-type="success"]{
  border:1px solid rgba(138,224,201,.45);
  background:rgba(138,224,201,.10);
  color:#d0faf0;
}
/* UTILITIES PER PAGINE SPECIFICHE (Dentisti, Fisioterapisti) */
.narrow{max-width:850px}
.intro-section p{font-size:21px;color:#eaf5f8;margin:0 0 20px}
.service-icon{width:46px;height:46px;margin-bottom:13px;border:2px solid rgba(246,196,49,.9);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-weight:800;font-size:21px}
.email-cta-box{margin-top:50px;background:rgba(2,15,27,.66);border:1px solid rgba(255,255,255,.4);border-radius:14px;padding:30px}
.email-cta-box h3{margin:0 0 10px;font-size:22px}
.email-cta-box p{color:#d6e8ed;margin:0 0 18px}
.email-button{display:inline-block;background:linear-gradient(90deg,#ffc94c,#f0ae20);color:#061d30;font-weight:800;padding:13px 20px;border-radius:6px;text-transform:uppercase;text-decoration:none}
.email-note{margin-top:12px;font-size:13px;color:#b0cacedd}

/* RESPONSIVE DESIGN */
@media (max-width:900px){
  .hero{padding-top:35px}
  .grid,.twocol,.contact-grid{grid-template-columns:1fr;gap:38px}
  .services{grid-template-columns:1fr;border-left:0}
  .service{border-right:0;border-top:1px solid var(--line);padding:24px 0}
  .service:nth-child(n+4){padding-top:24px}
  .balloon{right:10%;opacity:.7}
  .island{right:2%;width:52vw}
  .contact{padding-top:60px}
  .treasure{display:none}
  .footer-row{display:block}
  .footer-row>*{margin:8px 0}
  .footer-subrow{flex-direction:column;align-items:flex-start;gap:12px}
  .footer-links{flex-wrap:wrap;gap:16px}
}

@media (max-width:560px){
  .logo{margin-bottom:0}
  .hero p{font-size:16px}
  .hero{min-height:620px}
  .section{padding:48px 0}
  .form-box{padding:20px}
  .sun{opacity:.45}
  .island{width:70vw}
  .balloon{width:115px}
  .balloon .orb{width:115px;height:135px}
  .balloon .basket{left:43px;bottom:38px}

