:root { --acc: #1f3d36; --paper: #f6f3ee; --ink: #1d1d1b; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
.text-acc { color: var(--acc); }
.bg-acc { background-color: var(--acc); }
.border-acc { border-color: var(--acc); }
.ring-acc { --tw-ring-color: var(--acc); }

/* Galleria orizzontale con barra di scorrimento visibile */
.gallery { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 14px; scrollbar-width: thin; scrollbar-color: var(--acc) #e6e1d8; }
.gallery::-webkit-scrollbar { height: 10px; }
.gallery::-webkit-scrollbar-track { background: #e6e1d8; border-radius: 99px; }
.gallery::-webkit-scrollbar-thumb { background: var(--acc); border-radius: 99px; }
.gallery > button { flex: 0 0 auto; scroll-snap-align: start; }
.gallery img { height: min(62vh, 560px); width: auto; max-width: 88vw; object-fit: cover; border-radius: 14px; background: #e6e1d8; }
@media (max-width: 640px) { .gallery img { height: 52vh; max-width: 86vw; } }

.prose-lp p { margin: 0 0 1em; line-height: 1.75; }

/* Turni open house */
.slot { transition: transform .12s ease, background-color .15s ease, border-color .15s ease; }
.slot:not(:disabled):active { transform: scale(.97); }
.slot[aria-pressed="true"] { background: var(--acc); border-color: var(--acc); color: #fff; }
.slot[aria-pressed="true"] .slot-sub { color: rgba(255,255,255,.8); }

.lightbox { position: fixed; inset: 0; background: rgba(15,15,14,.94); z-index: 60; display: none; align-items: center; justify-content: center; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 94vw; max-height: 86vh; object-fit: contain; border-radius: 6px; }

.fade-in { animation: fadeIn .35s ease both; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fade-in { animation: none; } html { scroll-behavior: auto; } }

.skeleton { background: linear-gradient(90deg, #ece7df 25%, #f3efe9 50%, #ece7df 75%); background-size: 200% 100%; animation: sk 1.2s infinite; border-radius: 12px; }
@keyframes sk { to { background-position: -200% 0; } }
