/* Modulo di richiesta appuntamento */
.rdv-form fieldset.choices { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
.rdv-form fieldset.choices[hidden] { display: none; }
.rdv-form legend { font-weight: 700; font-size: .92rem; margin-bottom: 8px; padding: 0; }
.rdv-form .choices-note { font-size: .9rem; color: var(--muted); margin: 0 0 10px; }
.rdv-form .choice { display: inline-flex; align-items: center; gap: 8px; margin: 0 8px 8px 0; padding: 9px 14px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--bg); cursor: pointer; font-size: .95rem; transition: border-color .2s, background .2s; }
.rdv-form .choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--primary); flex: none; }
.rdv-form .choice:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.rdv-form .choice:has(input:focus-visible) { box-shadow: 0 0 0 4px var(--primary-soft); }
.rdv-form .field textarea { min-height: 110px; }
@media (max-width: 520px) { .rdv-form .choice { display: flex; margin-right: 0; } }

/* Barra sottile in basso: porta al modulo di richiesta appuntamento */
.rdv-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 44; display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 60px; padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: var(--primary-dark, #1f5457); color: #fff; text-decoration: none; font-size: 1.15rem; box-shadow: 0 -4px 16px rgba(30,43,48,.12); transition: transform .25s ease; }
.rdv-bar:hover strong, .rdv-bar:focus-visible strong { text-decoration: underline; }
.rdv-bar:focus-visible { outline: 3px solid var(--primary-soft); outline-offset: -3px; }
.rdv-bar .icon { width: 22px; height: 22px; flex: none; }
.rdv-bar-q { opacity: .85; }
.rdv-bar.is-hidden { transform: translateY(110%); }
body { padding-bottom: 60px; }
@media (max-width: 760px) {
  .rdv-bar { bottom: calc(68px + env(safe-area-inset-bottom)); min-height: 50px; padding: 8px 12px; font-size: 1.05rem; box-shadow: none; }
  .rdv-bar-q { display: none; }
  .rdv-bar.is-hidden { transform: none; visibility: hidden; }
  body { padding-bottom: calc(118px + env(safe-area-inset-bottom)); }
}
@media print { .rdv-bar { display: none !important; } }
.rdv-bar:hover, .rdv-bar:visited, .rdv-bar:focus { color: #fff; }

/* Barra: solo l'invito, un po' più grande */
.rdv-bar strong { font-size: 1.3rem; letter-spacing: .01em; }
.rdv-bar .icon { width: 24px; height: 24px; }
@media (max-width: 760px) { .rdv-bar strong { font-size: 1.15rem; } }

/* Pulsante musica di sottofondo */
.musica-btn { position: fixed; left: 16px; bottom: 76px; z-index: 45; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(31,84,87,.25); background: rgba(255,255,255,.92); color: var(--primary-dark, #1f5457); display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 10px rgba(30,43,48,.12); }
.musica-btn:hover { background: #fff; }
.musica-btn:focus-visible { outline: 3px solid var(--primary-soft, #9fc6c2); outline-offset: 2px; }
.musica-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.musica-btn .musica-off { display: none; }
.musica-btn.is-off { opacity: .75; }
.musica-btn.is-off .musica-off { display: inline; }
@media (max-width: 760px) { .musica-btn { left: 12px; bottom: calc(68px + 50px + 12px + env(safe-area-inset-bottom)); width: 40px; height: 40px; } }
@media print { .musica-btn { display: none !important; } }

/* Luce che si muove piano nella foto del bosco (sotto il velo chiaro del testo) */
.hero-bg::before { content: ""; position: absolute; inset: -15%; pointer-events: none; mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 30% 42% at 72% 22%, rgba(255,232,180,.62), rgba(255,232,180,0) 70%),
    radial-gradient(ellipse 22% 30% at 88% 58%, rgba(255,214,150,.40), rgba(255,214,150,0) 70%),
    repeating-linear-gradient(108deg, rgba(255,244,214,0) 0 70px, rgba(255,244,214,.18) 95px, rgba(255,244,214,0) 120px 200px);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 55%, transparent 90%);
          mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 55%, transparent 90%);
  animation: luce-bosco 16s ease-in-out infinite alternate; will-change: transform, opacity; }
@keyframes luce-bosco {
  0%   { transform: translate3d(-6%, -2%, 0) rotate(-1.5deg); opacity: .45; }
  50%  { opacity: 1; }
  100% { transform: translate3d(6%, 2%, 0) rotate(1.5deg); opacity: .7; }
}
@media (prefers-reduced-motion: reduce) { .hero-bg::before { animation: none; opacity: .75; } }
