/* salon.css - pagina pubblica del salone: galleria, lightbox, layout a schede. Condiviso da /it e /en. */

/* ---------- Galleria: mobile = carosello scroll-snap 16:9, desktop = griglia hero ---------- */
.gal { position:relative; border-radius:20px; overflow:hidden; }
.gal-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.gal-track::-webkit-scrollbar { display:none; }
.gal-item { position:relative; flex:0 0 100%; aspect-ratio:16/9; scroll-snap-align:start; overflow:hidden; background:#eee; }
.gal-photo { position:absolute; inset:0; display:block; width:100%; height:100%; padding:0; border:0; margin:0; background:#eee; cursor:zoom-in; }
div.gal-photo { cursor:default; }
.gal-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:filter .2s; }
button.gal-photo:hover img { filter:brightness(.92); }
.gal-photo:focus-visible { outline:3px solid #D4AF37; outline-offset:-3px; }
.gal-count { position:absolute; right:12px; bottom:12px; background:rgba(26,26,26,0.72); color:#fff; font-size:12px; font-weight:600; padding:4px 11px; border-radius:20px; pointer-events:none; }
.gal-all { display:none; position:absolute; right:14px; bottom:14px; align-items:center; gap:8px; background:#fff; color:#1a1a1a; border:1px solid rgba(26,26,26,0.15); border-radius:8px; padding:9px 14px; font-size:12.5px; font-weight:600; box-shadow:0 2px 10px rgba(0,0,0,0.18); cursor:pointer; }
.gal-all:hover { background:#faf8f4; }
.gal-all:focus-visible { outline:3px solid #D4AF37; outline-offset:2px; }
@media (min-width:720px) {
  .gal-track { display:grid; gap:4px; overflow:visible; scroll-snap-type:none; aspect-ratio:5/2; }
  .gal-item { flex:none; aspect-ratio:auto; min-width:0; min-height:0; scroll-snap-align:none; }
  .gal-item:first-child { grid-row:1 / -1; }
  .gal-item:nth-child(n+6) { display:none; }
  .gal-n1 .gal-track { grid-template-columns:1fr; grid-template-rows:1fr; }
  .gal-n2 .gal-track { grid-template-columns:2fr 1fr; grid-template-rows:1fr; }
  .gal-n3 .gal-track { grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; }
  .gal-n4 .gal-track { grid-template-columns:2fr 1fr; grid-template-rows:repeat(3,1fr); }
  .gal-n5 .gal-track { grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; }
  .gal-count { display:none; }
  .gal-all { display:inline-flex; }
}

/* ---------- Lightbox ---------- */
#lightbox { position:fixed; inset:0; z-index:300; background:rgba(10,10,10,0.97); display:none; flex-direction:column; }
#lightbox.open { display:flex; }
.lb-top { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; color:#fff; font-size:13px; font-weight:600; }
.lb-btn { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,0.14); color:#fff; font-size:16px; cursor:pointer; }
.lb-btn:hover { background:rgba(255,255,255,0.26); }
.lb-btn:focus-visible { outline:3px solid #D4AF37; outline-offset:2px; }
.lb-stage { position:relative; flex:1; min-height:0; display:flex; align-items:center; justify-content:center; padding:0 72px 20px; touch-action:pan-y; }
.lb-stage img { max-width:100%; max-height:100%; object-fit:contain; display:block; user-select:none; -webkit-user-drag:none; }
.lb-prev, .lb-next { position:absolute; top:50%; transform:translateY(-50%); }
.lb-prev { left:14px; }
.lb-next { right:14px; }
@media (max-width:719px) {
  .lb-stage { padding:0 0 16px; }
  .lb-prev { left:6px; }
  .lb-next { right:6px; }
  .lb-prev, .lb-next { width:40px; height:40px; background:rgba(0,0,0,0.5); }
}

/* ---------- Pagina salone ---------- */
html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }

.sd { max-width:1160px; margin:0 auto; padding-bottom:calc(88px + var(--cookie-h, 0px)); }
.sd a { color:inherit; }
.sd-back { display:inline-block; font-size:12px; font-weight:600; letter-spacing:.5px; text-transform:uppercase; color:#8a8578 !important; margin-bottom:14px; cursor:pointer; }
.sd-back:hover { color:#D4AF37 !important; }
.sd-head { margin:0 0 18px; }
.sd-title { font-family:'Poppins',sans-serif; font-size:clamp(26px,3.6vw,40px); line-height:1.1; font-weight:700; margin:0 0 12px; }
.sd-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; font-size:14px; color:#55524a; }
.sd-rating { display:inline-flex; align-items:center; gap:7px; }
.sd-rating:hover strong { color:#8a6d12; }
.sd-stars { display:inline-flex; gap:2px; }
.sd-stars i { color:#D4AF37; font-size:13px; }
.sd-muted { color:#8a8578; font-size:13px; }
.sd-pill { font-size:11.5px; font-weight:700; padding:4px 11px; border-radius:20px; white-space:nowrap; }
.sd-pill.is-open { background:rgba(40,167,69,0.12); color:#1e7e34; }
.sd-pill.is-closed { background:rgba(26,26,26,0.07); color:#77736a; }
.sd-addr-inline i { color:#D4AF37; }
.sd-addr-inline a { color:#8a6d12; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.sd-alert { background:rgba(255,193,7,0.14); border:1px solid rgba(255,193,7,0.45); color:#6b5300; border-radius:12px; padding:12px 16px; font-size:14px; font-weight:600; margin:0 0 16px; }
.sd-alert.is-active { background:rgba(220,53,69,0.08); border-color:rgba(220,53,69,0.35); color:#9b2333; }

.sd-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:32px; margin-top:28px; align-items:start; }
.sd-aside { display:none; }
.sd-bar { position:fixed; left:0; right:0; bottom:var(--cookie-h, 0px); z-index:90; display:flex; align-items:center; justify-content:space-between; gap:14px; background:rgba(255,255,255,0.97); backdrop-filter:blur(10px); border-top:1px solid rgba(26,26,26,0.1); padding:12px 20px calc(12px + env(safe-area-inset-bottom)); }
.sd-bar-info { min-width:0; }
.sd-bar-rating { font-size:14px; }
.sd-bar-today { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sd-cta { display:block; width:100%; background:#D4AF37; color:#fff; border:0; border-radius:30px; padding:15px 0; font-family:'Inter',sans-serif; font-size:12.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase; cursor:pointer; transition:background .15s,transform .15s; }
.sd-cta:hover { background:#1a1a1a; transform:translateY(-1px); }
.sd-cta:focus-visible { outline:3px solid #1a1a1a; outline-offset:2px; }
.sd-cta-bar { width:auto; padding:13px 26px; flex:0 0 auto; }

.sd-chips { display:flex; gap:8px; overflow-x:auto; margin:0 0 26px; padding-bottom:2px; scrollbar-width:none; }
.sd-chips::-webkit-scrollbar { display:none; }
.sd-chip { white-space:nowrap; padding:9px 17px; border:1px solid #e4e0d6; border-radius:30px; background:#fff; font-size:13px; font-weight:600; color:#1a1a1a; }
.sd-chip:hover { border-color:#D4AF37; }
.sd-sec { scroll-margin-top:96px; margin:0 0 44px; }
.sd-h2 { display:flex; align-items:baseline; gap:10px; font-family:'Poppins',sans-serif; font-size:22px; font-weight:700; margin:0 0 14px; }
.sd-h2 small { font-family:'Inter',sans-serif; font-size:13px; font-weight:500; color:#8a8578; }
.sd-h3 { font-family:'Poppins',sans-serif; font-size:15px; font-weight:600; margin:0 0 10px; }

.sd-cat { font-size:12px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:#8a8578; margin:24px 0 4px; }
.sd-svc { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:16px 0; border-bottom:1px solid rgba(26,26,26,0.08); }
.sd-svc-name { font-size:15px; font-weight:600; }
.sd-svc-desc { font-size:13px; line-height:1.5; color:#77736a; margin-top:3px; }
.sd-svc-dur { font-size:12.5px; color:#8a8578; margin-top:5px; }
.sd-svc-price { font-size:15px; font-weight:700; white-space:nowrap; text-align:right; }

.sd-team { display:grid; grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:20px 14px; }
.sd-member { text-align:center; }
.sd-avatar { display:block; width:84px; height:84px; border-radius:50%; object-fit:cover; margin:0 auto 9px; background:#f1efe7; }
.sd-avatar-ph { display:flex; align-items:center; justify-content:center; font-family:'Poppins',sans-serif; font-size:26px; font-weight:700; color:#8a6d12; background:rgba(212,175,55,0.14); }
.sd-member-name { font-size:14px; font-weight:600; }

.sd-rev-sum { display:flex; align-items:center; gap:16px; margin:0 0 8px; }
.sd-rev-score { font-family:'Poppins',sans-serif; font-size:44px; font-weight:700; line-height:1; }
.sd-review { padding:18px 0; border-bottom:1px solid rgba(26,26,26,0.08); }
.sd-review-top { display:flex; justify-content:space-between; gap:12px; margin-bottom:5px; }
.sd-review-name { font-size:14px; font-weight:600; }
.sd-review-text { font-size:14px; line-height:1.6; color:#55524a; margin:8px 0 0; }
.sd-linkbtn { display:inline-block; background:none; border:0; padding:8px 0; font-family:'Inter',sans-serif; font-size:13.5px; font-weight:600; color:#8a6d12 !important; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }

.sd-info { display:grid; grid-template-columns:1fr; gap:28px; margin-bottom:26px; }
.sd-hours-row { display:flex; justify-content:space-between; gap:16px; padding:7px 0; font-size:14px; color:#55524a; border-bottom:1px dashed rgba(26,26,26,0.07); }
.sd-hours-row.is-today { color:#1a1a1a; font-weight:700; }
.sd-hours-row.is-today span:first-child::after { content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:#D4AF37; margin-left:8px; vertical-align:middle; }
.sd-contact { display:flex; align-items:center; gap:12px; padding:7px 0; font-size:14px; }
.sd-contact i { width:16px; color:#D4AF37; text-align:center; }
.sd-contact:hover span { text-decoration:underline; }
.sd-socials { display:flex; gap:10px; margin-top:10px; }
.sd-social { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:#fff; border:1px solid #e4e0d6; }
.sd-social:hover { border-color:#D4AF37; color:#8a6d12; }
.sd-addr { display:flex; gap:12px; font-size:14px; line-height:1.5; margin-bottom:12px; }
.sd-addr i { color:#D4AF37; margin-top:3px; }
.sd-map { height:240px; border-radius:16px; overflow:hidden; border:1px solid rgba(26,26,26,0.1); margin-bottom:6px; background:#eee; }
.sd-empty { padding:40px 0; }

.sd-card { background:#fff; border:1px solid rgba(26,26,26,0.1); border-radius:20px; padding:24px; box-shadow:0 10px 30px rgba(0,0,0,0.05); }
.sd-card-title { font-family:'Poppins',sans-serif; font-size:19px; font-weight:700; margin-bottom:8px; }
.sd-card-rating { display:flex; align-items:center; gap:7px; font-size:14px; margin-bottom:16px; }
.sd-today { font-size:13px; color:#55524a; line-height:1.5; margin:14px 0 0; }
.sd-perks { list-style:none; margin:18px 0 0; padding:16px 0 0; border-top:1px solid rgba(26,26,26,0.08); display:flex; flex-direction:column; gap:9px; font-size:13px; color:#55524a; }
.sd-perks i { color:#D4AF37; margin-right:6px; }
.sd-card-line { display:flex; gap:12px; align-items:flex-start; font-size:13.5px; line-height:1.5; margin-top:12px; color:#55524a; }
.sd-card-line i { width:14px; margin-top:3px; color:#D4AF37; }

@media (min-width:700px) {
  .sd-info { grid-template-columns:1fr 1fr; }
}
@media (min-width:960px) {
  .sd { padding-bottom:40px; }
  .sd-grid { grid-template-columns:minmax(0,1fr) 360px; gap:48px; }
  .sd-aside { display:block; position:sticky; top:84px; }
  .sd-bar { display:none; }
}
