/* Layout mobile condiviso: colonne contenute e controlli utilizzabili al tocco. */
@media (min-width:761px) and (max-width:960px) {
  .calendar-section,.booking-section { grid-template-columns:minmax(0,1fr); gap:32px; padding:60px 28px; }
  .booking-form { max-width:640px; width:100%; justify-self:center; }
}
@media (max-width:760px) {
  html { -webkit-text-size-adjust:100%; scroll-padding-top:16px; }
  body { overflow-x:clip; }
  main,main>section,section>div,article,form,fieldset { min-width:0; }
  main>section { max-width:100%; }
  p,h1,h2,h3,a,label { overflow-wrap:break-word; }
  input,select,textarea { min-width:0; max-width:100%; font-size:16px; }
  button,a,input { touch-action:manipulation; }
  .event-page .event-header { width:100%; padding:0 16px; }
  .menu-toggle { min-width:64px; min-height:44px; }
  .site-header .brand-logo-link { position:relative; z-index:2; }
  .event-page.menu-open .main-nav { left:0; right:0; width:auto; }
  .menu-open .main-nav { max-height:90dvh; overflow-y:auto; gap:4px; }
  .main-nav a { padding-block:10px; }

  .event-page .event-cover-intro { grid-template-columns:minmax(0,1fr); padding:28px 16px; gap:20px; }
  .event-page .event-cover .event-logo { max-width:100%; }
  .pumpkin-theme .event-cover .logo-zucche { justify-self:center; object-position:center; width:min(270px,85%); max-height:160px; margin:16px auto 22px; }
  .event-cover .event-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-cover .event-facts span { font-family:var(--sans); font-size:.78rem; padding:9px 8px; }
  .event-cover .hero-photo-slot { height:clamp(220px,62vw,310px); }
  .event-cover .hero-photo-slot>div { max-width:calc(100% - 44px); }
  .event-cover .hero-text { margin:0 0 18px; }
  .pumpkin-theme .event-cover .hero-text,
  .pumpkin-theme #prenota .booking-intro>p:not(.eyebrow) { display:none; }
  .pumpkin-theme .hero-essentials { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 0 20px; border:1px solid rgba(119,47,26,.22); border-radius:10px; background:rgba(255,249,236,.65); overflow:hidden; }
  .pumpkin-theme .hero-essentials .event-facts { display:contents; }
  .pumpkin-theme .hero-essentials .event-facts>span { min-height:52px; padding:12px 10px; border:0; border-radius:0; font-size:.86rem; line-height:1.4; text-align:center; }
  .pumpkin-theme .hero-essentials .event-facts>span:first-child { grid-column:1/-1; border-bottom:1px solid rgba(119,47,26,.18); font-weight:700; }
  .pumpkin-theme .hero-essentials .event-facts>span:nth-child(2) { border-right:1px solid rgba(119,47,26,.18); }
  .pumpkin-theme .hero-essentials .hero-age-policy { grid-column:1/-1; margin:0; padding:12px 10px; border-top:1px solid rgba(119,47,26,.18); font-size:.8rem; line-height:1.45; text-align:center; }
  .pumpkin-theme .hero-essentials .hero-age-policy strong { font-size:.86rem; }
  .experience-section,.event-gallery,.special-section,.info-section { padding:40px 16px; }
  .event-page h2 { font-size:clamp(1.9rem,8vw,2.5rem); line-height:1.08; }
  .experience-section .large-copy { margin:20px 0; font-size:1rem; }
  .gallery-heading { grid-template-columns:minmax(0,1fr); gap:18px; margin-bottom:24px; }

  .service-grid,.event-cards,.activity-grid,.special-grid,.egg-story {
    display:grid; grid-template-columns:minmax(0,1fr); gap:14px;
    width:100%; margin:24px 0 0; padding:0; overflow:visible; scroll-snap-type:none;
  }
  .service-grid article,.activity-grid article,.special-grid article,.egg-story-card { width:100%; min-width:0; min-height:0; padding:20px; }
  .activity-grid h3,.special-grid h3,.egg-story-card h3 { font-size:1.5rem; margin:12px 0 8px; }
  .activity-grid-clean h3 { margin-top:0; }
  .activity-grid p,.special-grid p,.egg-story-card p,.service-grid p { max-width:none; margin-bottom:0; font-size:.94rem; }
  .special-grid .education-open,.special-grid .whatsapp-card-link { min-height:44px; padding-block:12px; }
  .egg-story-card { border-radius:12px; box-shadow:none; }
  .event-card { width:100%; min-height:355px; padding:22px; }
  .event-card h3 { font-size:clamp(2.2rem,9vw,3rem); }
  .event-card p { max-width:calc(100% - 85px); font-size:.85rem; }
  .gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; width:100%; margin:0; padding:0; gap:10px; overflow:visible; }
  .gallery-slot { width:100%; height:190px; min-width:0; padding:14px; }
  .gallery-slot-wide { grid-column:1/-1; grid-row:auto; height:240px; }
  .gallery-slot figcaption { left:14px; right:14px; bottom:16px; font-size:1.05rem; }

  .calendar-section { width:100%; padding:36px 16px; grid-template-columns:minmax(0,1fr); gap:24px; }
  .calendar-copy .calendar-period { font-size:clamp(1.85rem,7.5vw,2.35rem); }
  .calendar-period>span { white-space:normal; }
  .calendar-period .calendar-year { margin-top:8px; }
  .calendar-copy>p:not(.eyebrow) { margin:14px 0; line-height:1.5; }
  .weekend-prices { gap:8px; margin-top:16px; padding-top:16px; }
  .weekend-price { padding:10px 12px; }
  .weekend-price strong { font-size:2rem; }
  .calendar { width:100%; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
  .calendar-day,.calendar-empty { min-width:0; min-height:46px; padding:4px 0; }
  .calendar-day span { font-size:.9rem; }
  .calendar-weekday { font-size:.62rem; }
  .calendar-range-label { font-size:.65rem; line-height:1.5; }
  .calendar-legend { margin-top:16px; padding:12px; }
  .calendar-legend p { margin:0; min-height:40px; font-size:.84rem; }
  .calendar-legend a { display:block; padding:10px 0; }

  .booking-section { width:100%; grid-template-columns:minmax(0,1fr); padding:32px 0 0; gap:20px; }
  .booking-intro { padding:0 16px; }
  .booking-intro h2 { font-size:2rem; }
  .booking-intro>p:not(.eyebrow) { margin-top:12px; }
  .booking-form { width:100%; min-width:0; padding:24px 16px 30px; border-radius:0; }
  .booking-form .booking-fieldset { min-inline-size:0; padding-top:20px; margin-top:20px; }
  .booking-form .booking-fieldset:first-child { margin-top:0; padding-top:0; }
  .booking-form legend { max-width:100%; }
  .form-section-title { font-size:1.2rem; }
  .form-section-title small { font-size:.78rem; line-height:1.4; }
  .booking-form .booking-info-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .booking-form .booking-info-grid .form-field-label { font-size:.8rem; }
  .booking-form .booking-info-grid input { font-size:16px; min-height:40px; }
  .date-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .date-choices label { position:relative; min-width:0; }
  .date-choices input { position:absolute; width:1px; height:1px; margin:0; padding:0; border:0; overflow:hidden; clip-path:inset(50%); }
  .date-choices span { display:flex; flex-direction:column; justify-content:center; min-height:62px; height:100%; padding:9px 6px; font-family:var(--sans); font-size:.83rem; line-height:1.3; }
  .date-choices span small { font-size:.72rem; }
  .date-choices input:focus-visible + span { outline:2px solid var(--brown); outline-offset:2px; }
  .guest-row { min-height:76px; gap:10px; }
  .guest-row label { min-width:0; }
  .guest-row label strong { font-size:1rem; line-height:1.25; }
  .guest-row label small { font-size:.75rem; line-height:1.4; }
  .quantity-control { grid-template-columns:44px 40px 44px; }
  .quantity-button { width:44px; height:44px; }
  .booking-form .quantity-control input { width:40px; height:44px; font-size:16px; }
  .booking-form .booking-summary { margin:24px 0 18px; padding:18px 0; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .booking-summary small { font-size:.78rem; line-height:1.5; }
  .booking-form .button { min-height:52px; }
  .form-note { font-size:.76rem; line-height:1.5; }
  .mobile-booking-cta { bottom:calc(14px + env(safe-area-inset-bottom,0px)); }
  body:has(input:focus) .mobile-booking-cta,body:has(dialog[open]) .mobile-booking-cta { display:none; }
  .site-footer { width:100%; min-height:0; margin:0; padding:24px 16px calc(24px + env(safe-area-inset-bottom,0px)); display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; text-align:center; line-height:1.5; }
  .site-footer span:last-child { display:block; font-size:.7rem; opacity:.8; }
  .site-footer>a { display:flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; }
  .event-page .site-footer { color:var(--paper); }
  .egg-booking { padding:36px 16px; }
  .egg-booking .booking-intro { padding:0; }
  .waiting-card { min-width:0; padding:28px 20px; border-radius:16px; }
  .coming-section { padding:40px 16px; }

  .modal-card { max-height:calc(100dvh - 24px); overflow:auto; }
  .modal-close { min-width:44px; min-height:44px; top:5px; right:5px; }
  .ticket { grid-template-columns:90px minmax(0,1fr); }
  .ticket-qr,.ticket-qr img { width:88px; }
  .ticket-qr img { height:88px; }
  .ticket strong,.ticket span { overflow-wrap:anywhere; }
  .education-dialog { max-width:calc(100% - 24px); max-height:calc(100dvh - 24px); }
  .staff-page .staff-filter-panel,.staff-page .staff-action-grid,.staff-page .staff-list-section { grid-template-columns:minmax(0,1fr); }
  .staff-page .staff-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .staff-list span,.staff-result h2 { overflow-wrap:anywhere; }
  .staff-page .staff-controls { grid-template-columns:minmax(0,1fr); }
  .scanner-actions { flex-wrap:wrap; }
  .scanner-actions .button,.staff-booking-details .button { min-height:44px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
