/* ── CSS Variables ── */
:root {
  --bg:           #f8fcff;
  --surface:      #ffffff;
  --surface-2:    #eef7ff;
  --surface-3:    #dbeafe;
  --border:       #c7ddf7;
  --text:         #0f172a;
  --muted:        #475569;
  --primary:      #2563eb;
  --primary-dark: #1d4ed8;
  --white:        #ffffff;
  --accent:       #38bdf8;

  --radius-sm: 10px; --radius-md: 16px; --radius-lg: 22px;
  --radius-xl: 30px; --radius-full: 9999px;
  --shadow-sm: 0 8px 24px rgba(37,99,235,.08);
  --shadow-md: 0 18px 40px rgba(37,99,235,.14);
  --shadow-lg: 0 28px 64px rgba(37,99,235,.16);
  --t: 260ms cubic-bezier(0.22,1,0.36,1);
  --container: 1040px;
  --fs-xs: .875rem; --fs-sm: 1rem; --fs-base: 1.1rem; --fs-lg: 1.3rem;
  --fs-xl: clamp(2rem,4vw,3.2rem);
}

/* ── Dark Mode ── */
html.dark {
  --bg:           #0d1117;
  --surface:      #161b22;
  --surface-2:    #1c2433;
  --surface-3:    #1e3a5f;
  --border:       #2a3a55;
  --text:         #e2e8f0;
  --muted:        #94a3b8;
  --primary:      #60a5fa;
  --primary-dark: #3b82f6;
  --white:        #161b22;
  --accent:       #38bdf8;
  --shadow-sm: 0 8px 24px rgba(0,0,0,.3);
  --shadow-md: 0 18px 40px rgba(0,0,0,.4);
  --shadow-lg: 0 28px 64px rgba(0,0,0,.5);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { font-family:'Inter',sans-serif; font-size:var(--fs-base); color:var(--text); background:var(--bg); line-height:1.7; overflow-x:hidden; transition:background .3s, color .3s; }
img,svg { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; border:none; background:none; }
ul { list-style:none; padding:0; }

.skip-link { position:absolute; left:-9999px; }
.skip-link:focus { left:1rem; top:1rem; padding:.75rem 1rem; background:var(--text); color:var(--bg); border-radius:var(--radius-sm); z-index:9999; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vt-out .2s ease both; }
::view-transition-new(root) { animation: vt-in  .3s cubic-bezier(0.16,1,0.3,1) both; }
@keyframes vt-out { to { opacity:0; transform:scale(.98); } }
@keyframes vt-in  { from { opacity:0; transform:scale(1.01); } }

/* ── Scroll reveal ── */
.fade-up  { opacity:0; transform:translate3d(0,22px,0); transition:opacity .72s cubic-bezier(0.22,1,0.36,1),transform .72s cubic-bezier(0.22,1,0.36,1); will-change:transform,opacity; }
.fade-up.visible  { opacity:1; transform:translateY(0); }
.fade-in  { opacity:0; transition:opacity .72s cubic-bezier(0.22,1,0.36,1); will-change:opacity; }
.fade-in.visible  { opacity:1; }
.stagger-1 { transition-delay:.06s; }
.stagger-2 { transition-delay:.13s; }
.stagger-3 { transition-delay:.20s; }

.container { width:min(100% - 2rem, var(--container)); margin-inline:auto; }

/* ── ANIMATED BACKGROUND ── */
.bg-blobs {
  position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden;
}
.bg-blob {
  position:absolute; border-radius:50%; filter:blur(70px); opacity:.35;
  will-change:transform;
}
.bg-blob:nth-child(1) {
  width:min(600px,90vw); height:min(600px,90vw);
  top:-10%; left:-15%;
  background:radial-gradient(circle, #93c5fd 0%, #3b82f6 100%);
  animation: float1 18s ease-in-out infinite;
}
.bg-blob:nth-child(2) {
  width:min(500px,80vw); height:min(500px,80vw);
  top:30%; right:-10%;
  background:radial-gradient(circle, #bfdbfe 0%, #60a5fa 100%);
  animation: float2 22s ease-in-out infinite;
}
.bg-blob:nth-child(3) {
  width:min(400px,70vw); height:min(400px,70vw);
  bottom:5%; left:25%;
  background:radial-gradient(circle, #e0f2fe 0%, #38bdf8 100%);
  animation: float3 26s ease-in-out infinite;
}

html.dark .bg-blob:nth-child(1) { background:radial-gradient(circle, #1e3a5f 0%, #1d4ed8 100%); opacity:.25; }
html.dark .bg-blob:nth-child(2) { background:radial-gradient(circle, #1e3a5f 0%, #2563eb 100%); opacity:.18; }
html.dark .bg-blob:nth-child(3) { background:radial-gradient(circle, #0c2a47 0%, #1e40af 100%); opacity:.2; }

@keyframes float1 {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(40px,-30px) scale(1.05); }
  66%     { transform: translate(-20px,50px) scale(.95); }
}
@keyframes float2 {
  0%,100% { transform: translate(0,0) scale(1); }
  40%     { transform: translate(-50px,30px) scale(1.08); }
  70%     { transform: translate(30px,-20px) scale(.96); }
}
@keyframes float3 {
  0%,100% { transform: translate(0,0) scale(1); }
  30%     { transform: translate(30px,40px) scale(1.06); }
  60%     { transform: translate(-40px,-10px) scale(.94); }
}

/* ── HEADER ── */
.site-header {
  position:sticky; top:0; z-index:900;
  background:rgba(248,252,255,.88);
  backdrop-filter:blur(14px) saturate(1.6);
  border-bottom:1px solid var(--border);
  transition:background .3s;
}
html.dark .site-header {
  background:rgba(13,17,23,.88);
}
.header-inner {
  display:flex; align-items:center;
  justify-content:center;   /* logo rimosso → centro */
  gap:.5rem;
  min-height:72px;
  position:relative;
}

/* Dark toggle button */
.dark-toggle {
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:44px; height:44px;
  border-radius:var(--radius-full);
  border:1.5px solid var(--border);
  background:var(--surface);
  font-size:1.2rem;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background var(--t), border-color var(--t), transform .2s;
  box-shadow:var(--shadow-sm);
}
.dark-toggle:hover { background:var(--surface-2); transform:translateY(-50%) scale(1.1); }

/* Menu toggle mobile */
.menu-toggle {
  display:none;
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  min-width:44px; min-height:44px;
  border:1px solid var(--border); border-radius:var(--radius-sm);
  background:var(--surface); font-size:1.4rem;
  align-items:center; justify-content:center;
  transition:background var(--t);
}
.menu-toggle:hover { background:var(--surface-2); }

/* ── NAVIGATION (centered, emoji hover) ── */
.main-nav { display:flex; align-items:center; gap:.15rem; }
.main-nav a {
  padding:.55rem .8rem;
  border-radius:var(--radius-full);
  font-weight:600; font-size:var(--fs-xs);
  transition:background var(--t),color var(--t), transform .18s;
  white-space:nowrap;
  position:relative;
}
.main-nav a::after {
  content: attr(data-emoji);
  position:absolute; top:-.5rem; left:50%; transform:translateX(-50%) scale(0);
  font-size:.9rem; transition:transform .22s cubic-bezier(0.34,1.56,0.64,1), opacity .18s;
  opacity:0; pointer-events:none;
}
.main-nav a:hover::after { transform:translateX(-50%) scale(1); opacity:1; }
.main-nav a:hover,.main-nav a:focus-visible {
  background:var(--surface-2); color:var(--primary);
  transform:translateY(-2px);
}
.main-nav a.active { background:var(--surface-3); color:var(--primary-dark); }
.nav-cta { background:var(--primary) !important; color:#fff !important; }
.nav-cta:hover,.nav-cta:focus-visible { background:var(--primary-dark) !important; }

/* ── PAGE NAVIGATION ARROWS ── */
.page-nav { display:flex; justify-content:space-between; align-items:center; padding:1rem 0; border-top:1px solid var(--border); margin-top:.5rem; position:fixed; top:50%; left:0; right:0; transform:translateY(-50%); width:100%; max-width:none; padding:0 18px; pointer-events:none; z-index:50; border-top:none; margin-top:0; }
.page-nav a,.page-nav .spacer { pointer-events:auto; }
.page-nav .spacer { display:none; }
.page-nav a { background:rgba(255,255,255,.95); box-shadow:var(--shadow-md); display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:var(--fs-sm); color:var(--primary); padding:.6rem 1rem; border-radius:var(--radius-full); border:1px solid var(--border); transition:background var(--t),transform var(--t); }
.page-nav a:hover { background:var(--surface-2); transform:translateX(-3px); }
.page-nav a.next:hover { transform:translateX(3px); }
.page-nav a.prev { margin-right:auto; }
.page-nav a.next { margin-left:auto; }
html.dark .page-nav a { background:rgba(22,27,34,.95); }
main { position:relative; }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:50px; padding:.85rem 1.5rem; border-radius:var(--radius-full); font-weight:700; font-size:var(--fs-sm); transition:background var(--t),transform var(--t),box-shadow var(--t); cursor:pointer; }
.btn-primary { background:var(--primary); color:#fff; box-shadow:0 10px 24px rgba(37,99,235,.24); }
.btn-primary:hover { background:var(--primary-dark); transform:translate3d(0,-3px,0); box-shadow:0 18px 34px rgba(37,99,235,.28); }
.btn-primary:active { transform:translateY(0); }
.btn-secondary { background:var(--surface); color:var(--primary); border:2px solid var(--primary); }
.btn-secondary:hover { background:var(--surface-2); transform:translate3d(0,-3px,0); }

/* Copy button */
.copy-btn {
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.5rem 1rem; border-radius:var(--radius-full);
  border:1.5px solid var(--border); background:var(--surface);
  font-weight:600; font-size:var(--fs-xs); color:var(--primary);
  cursor:pointer; transition:background var(--t), transform .18s, border-color var(--t);
}
.copy-btn:hover { background:var(--surface-2); border-color:var(--primary); transform:translateY(-2px); }
.copy-btn.copied { background:var(--surface-3); border-color:var(--primary-dark); }

/* ── SECTIONS ── */
.section { padding:4.5rem 0; }
.section.alt-bg { background:var(--surface-2); }
.section-tag { display:inline-block; background:var(--surface-3); color:var(--primary-dark); padding:.45rem .9rem; border-radius:var(--radius-full); font-weight:700; font-size:var(--fs-xs); margin-bottom:.9rem; letter-spacing:.03em; text-transform:uppercase; }
.section-header { text-align:center; margin-bottom:3rem; }
.section-header h2 { font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.2; margin-bottom:.7rem; }
.section-header p { color:var(--muted); max-width:55ch; margin:0 auto; }

/* ── HERO ── */
.hero { padding:5rem 0 3rem; position:relative; overflow:hidden; }
.hero-inner { display:grid; align-items:center; gap:3rem; position:relative; z-index:1; }
.hero-inner-simple { grid-template-columns:1fr; }
.hero-text-centered { text-align:center; max-width:760px; margin:0 auto; }
.centered-actions { justify-content:center; }
.eyebrow { display:inline-block; background:var(--surface-3); color:var(--primary-dark); padding:.5rem .95rem; border-radius:var(--radius-full); font-weight:700; font-size:var(--fs-xs); margin-bottom:1.1rem; letter-spacing:.04em; text-transform:uppercase; }
.hero h1 { font-size:var(--fs-xl); line-height:1.12; margin-bottom:1.2rem; text-align:center; margin-left:auto; margin-right:auto; }
.hero h1 span { color:var(--primary); }
.hero-desc { color:var(--muted); max-width:54ch; margin:0 auto 2rem; text-align:center; }
.hero-actions { display:flex; flex-wrap:wrap; gap:1rem; justify-content:center !important; align-items:center; margin-left:auto; margin-right:auto; }
.hero-photo { position:relative; display:flex; justify-content:center; }
.hero-photo img { width:min(320px,100%); height:auto; border-radius:var(--radius-xl); object-fit:cover; box-shadow:var(--shadow-lg); }
.scroll-hint { display:flex; flex-direction:column; align-items:center; gap:.35rem; margin-top:3rem; color:var(--muted); font-size:var(--fs-xs); font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
.scroll-arrow { font-size:1.4rem; animation:bounce .9s ease-in-out infinite; }
@keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }

/* ── PAGE HERO ── */
.page-hero { padding:4rem 0 1.5rem; text-align:center; }
.page-hero .container { display:flex; flex-direction:column; align-items:center; }
.page-hero h1 { font-size:clamp(2rem,4vw,2.8rem); margin-bottom:.5rem; }
.page-hero p { color:var(--muted); max-width:52ch; margin:0 auto; }

/* ── CARDS ── */
.cards-grid { display:grid; gap:1.5rem; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:1.8rem; transition:box-shadow var(--t),transform var(--t); }
.card:hover { box-shadow:var(--shadow-md); transform:translate3d(0,-6px,0); }
.card-icon { font-size:2.2rem; margin-bottom:1rem; }
.card h3 { font-size:1.2rem; margin-bottom:.6rem; color:var(--primary-dark); }
.card p { color:var(--muted); font-size:var(--fs-sm); }

/* ── INFO ── */
.info-grid { display:grid; gap:1.5rem; }
.info-box { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:1.8rem; }
.info-box h3 { font-size:1.2rem; margin-bottom:1rem; color:var(--primary-dark); }
.info-list { display:flex; flex-direction:column; gap:.6rem; }
.info-list li { display:flex; align-items:flex-start; gap:.6rem; font-size:var(--fs-sm); color:var(--muted); }
.info-list li::before { content:'✓'; color:var(--primary); font-weight:700; flex-shrink:0; }

/* ── ABOUT ── */
.about-grid { display:grid; gap:2.5rem; align-items:start; }
.about-photo img { width:100%; max-width:340px; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); margin:0 auto; }
.about-content h2 { font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:1rem; }
.about-content p { color:var(--muted); }
.about-top-section { padding:4.5rem 0 2rem; }
.about-top { display:grid; gap:2rem; align-items:center; max-width:960px; margin:0 auto; }
.about-top-text { text-align:center; }
.about-top-text h1 { font-size:clamp(2.2rem,4vw,3.6rem); margin-bottom:.8rem; }
.about-top-text p { color:var(--muted); max-width:32ch; margin:0 auto; }
.about-top-photo { display:flex; justify-content:center; }
.about-top-photo img { width:min(280px,100%); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); }
.solo-about-content { max-width:960px; margin:0 auto; }
.about-badge { position:static; transform:none; margin:1rem auto 0; width:max-content; }
.under-photo { position:static; transform:none; margin-top:.85rem; }
@media(min-width:900px){ .about-top { grid-template-columns:1.2fr .8fr; } .about-top-text { text-align:left; } .about-top-text p { margin:0; } }
@media(min-width:1100px){ .about-top { grid-template-columns:1.3fr .7fr; } }
@media(max-width:980px){ .about-top-text h1 { white-space:normal; } }

/* ── CONTACTS ── */
.contact-grid { display:grid; gap:1.5rem; }
.contact-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:1.8rem; }
.contact-card h3 { font-size:1.2rem; margin-bottom:1rem; color:var(--primary-dark); }
.contact-row { display:flex; align-items:center; gap:.8rem; padding:.75rem 0; border-bottom:1px solid var(--border); font-size:var(--fs-sm); flex-wrap:wrap; }
.contact-row:last-of-type { border-bottom:none; }
.contact-row .ci { font-size:1.4rem; flex-shrink:0; }
.contact-row a { color:var(--primary); font-weight:600; }
.contact-row a:hover { text-decoration:underline; }
.contact-row-inner { display:flex; flex-direction:column; gap:.3rem; flex:1; min-width:0; }
.copy-row { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-top:.25rem; }

/* ── SOCIAL ── */
.social-list { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.2rem; }
.social-list.centered { justify-content:center; }
.social-btn { display:inline-flex; align-items:center; gap:.55rem; padding:.75rem 1.3rem; border-radius:var(--radius-full); border:2px solid var(--border); font-weight:700; font-size:var(--fs-sm); transition:background var(--t),border-color var(--t),transform var(--t); background:var(--surface); }
.social-btn img { display:inline-block; width:22px; height:22px; }
.social-btn:hover { background:var(--surface-2); border-color:var(--primary); transform:translate3d(0,-3px,0); }
.social-cta { text-align:center; }
.social-cta h2 { font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:.7rem; }

/* ── RECENSIONI ── */
.recensioni-grid { display:grid; gap:1rem; }
.rec-thumb { cursor:pointer; border-radius:var(--radius-lg); overflow:hidden; border:2px solid var(--border); transition:border-color var(--t), transform var(--t), box-shadow var(--t); }
.rec-thumb:hover { border-color:var(--primary); transform:scale(1.02); box-shadow:var(--shadow-md); }
.rec-thumb img { width:100%; height:auto; display:block; }
.lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.85); z-index:9999; align-items:center; justify-content:center; padding:1rem; }
.lightbox.open { display:flex; }
.lightbox img { max-width:min(90vw,900px); max-height:90vh; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.lightbox-close { position:absolute; top:1.5rem; right:1.5rem; color:#fff; font-size:2rem; cursor:pointer; background:rgba(0,0,0,.4); border-radius:50%; width:44px; height:44px; display:flex; align-items:center; justify-content:center; }

/* ── ORARI ── */
.legend-box { display:flex; flex-wrap:wrap; justify-content:center; gap:1rem 1.5rem; align-items:center; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1rem 1.25rem; margin-bottom:1.5rem; }
.legend-item { display:inline-flex; align-items:center; gap:.55rem; font-weight:700; color:var(--text); }
.legend-dot { width:14px; height:14px; border-radius:50%; display:inline-block; }
.open-dot { background:#43a047; }
.closed-dot { background:#d32f2f; }
.legend-text { color:var(--muted); font-weight:600; }
.calendar-grid { display:flex !important; flex-wrap:wrap; justify-content:center; gap:1rem; max-width:980px; margin:0 auto; }
.calendar-grid .day-card { flex:0 1 220px; }
.day-card { border-radius:var(--radius-lg); padding:1.25rem; text-align:center; box-shadow:var(--shadow-sm); border:1px solid var(--border); }
.day-card h3 { margin-bottom:.35rem; font-size:1.15rem; }
.day-card p { font-weight:700; }
.day-card.open { background:#e9f7ea; color:#1e5a26; }
.day-card.closed { background:#fdeaea; color:#9c1f1f; }
html.dark .day-card.open { background:#1a3a1f; color:#86efac; }
html.dark .day-card.closed { background:#3a1a1a; color:#fca5a5; }
.today-date { text-align:center; margin:0 0 .55rem; color:var(--primary-dark); font-weight:700; font-size:var(--fs-sm); }
.center-clock-wrap { display:flex; justify-content:center; align-items:center; margin:.35rem 0 1.4rem; }
.center-clock { width:108px; height:108px; border-radius:50%; position:relative; background:radial-gradient(circle at 30% 30%,#ffffff 0%,#f3f7f1 55%,#e4eee3 100%); border:5px solid #6a8f69; box-shadow:0 10px 28px rgba(58,86,57,.14),inset 0 0 0 4px rgba(255,255,255,.75); }
html.dark .center-clock { background:radial-gradient(circle at 30% 30%,#1c2433 0%,#243447 100%); border-color:#3b82f6; }
.center-clock::before { content:''; position:absolute; inset:8px; border-radius:50%; border:1px solid rgba(76,110,75,.18); }
.center-clock::after { content:''; position:absolute; inset:18px; border-radius:50%; border:1px dashed rgba(76,110,75,.18); }
.clock-face-dot { position:absolute; top:50%; left:50%; width:12px; height:12px; border-radius:50%; background:#355d35; transform:translate(-50%,-50%); z-index:4; box-shadow:0 0 0 4px rgba(83,127,83,.12); }
.hour-hand,.minute-hand { position:absolute; left:50%; bottom:50%; transform-origin:bottom center; border-radius:999px; }
.hour-hand { width:6px; height:24px; background:#355d35; margin-left:-3px; animation:spin-hour 18s linear infinite; z-index:2; }
.minute-hand { width:4px; height:35px; background:#b14141; margin-left:-2px; animation:spin-minute 6s linear infinite; z-index:3; }
@keyframes spin-hour { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes spin-minute { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

/* ── FOOTER ── */
.site-footer { background:var(--surface); border-top:1px solid var(--border); padding:2rem 0 1rem; margin-top:3rem; }
.footer-top { padding-bottom:1.2rem; border-bottom:1px solid var(--border); margin-bottom:1.2rem; }
.footer-nav { display:flex; gap:.5rem 1rem; flex-wrap:wrap; justify-content:center; }
.footer-nav a { font-size:var(--fs-xs); font-weight:600; color:var(--muted); padding:.3rem .5rem; border-radius:var(--radius-sm); transition:color var(--t); }
.footer-nav a:hover { color:var(--primary); }
.footer-bottom { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:space-between; align-items:center; font-size:var(--fs-xs); color:var(--muted); }
.footer-social { display:flex; gap:.75rem; align-items:center; }
.footer-social a { transition:transform var(--t); }
.footer-social a:hover { transform:scale(1.12); }

/* ── MOBILE RESPONSIVE ── */
@media(max-width:860px) {
  .menu-toggle { display:inline-flex !important; }
  .main-nav {
    position:absolute; top:72px; left:0; right:0;
    flex-direction:column; align-items:stretch;
    background:var(--bg); border-bottom:1px solid var(--border);
    padding:1rem; gap:.5rem; display:none;
    backdrop-filter:blur(14px);
  }
  .main-nav.open { display:flex; }
  .main-nav a {
    background:var(--surface); border:1px solid var(--border);
    border-radius:var(--radius-sm); padding:1rem;
    text-align:center; font-size:1rem;
  }
  .main-nav a::after { display:none; }
  .dark-toggle { right:56px; }
  .page-nav { top:auto; bottom:18px; transform:none; padding:0 12px; }
  .page-nav a { font-size:.9rem; padding:.55rem .8rem; }
  .hero { padding:3rem 0 2rem; }
  .section { padding:3rem 0; }
  .cards-grid,.info-grid,.contact-grid { gap:1rem; }
  .btn { min-height:46px; padding:.75rem 1.3rem; font-size:.95rem; }
  .header-inner { min-height:64px; }
}

@media(max-width:600px) {
  .hero h1 { font-size:clamp(1.8rem,7vw,2.5rem); }
  .footer-bottom { flex-direction:column; text-align:center; }
  .contact-row { gap:.5rem; }
  .hero-actions { flex-direction:column; align-items:center; width:100%; }
  .hero-actions .btn { width:100%; max-width:320px; }
}

@media(min-width:640px) { .cards-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:900px) { .cards-grid { grid-template-columns:repeat(3,1fr); } }
@media(min-width:640px) { .info-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:640px) { .contact-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:640px) { .recensioni-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:900px) { .recensioni-grid { grid-template-columns:repeat(3,1fr); } }

@media(max-width:760px) {
  .calendar-grid .day-card { flex-basis:min(100%,220px); }
  .center-clock { width:92px; height:92px; }
  .hour-hand { height:20px; }
  .minute-hand { height:30px; }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important }
  .bg-blob { animation:none !important; }
}
