.phone-entry { display:flex; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:white; }
.phone-entry span { padding:11px 12px; background:var(--sand); border-right:1px solid var(--line); font-weight:600; }
.phone-entry input { min-width:0; border:0; border-radius:0; flex:1; }
.booking-contact h3 { margin-top:0; }
.booking-contact input[readonly] { background:var(--cream); }
.center-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:22px 0 12px; }
.center-gallery img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:var(--radius); background:var(--sand); }
.directions-card { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; background:var(--rose-l); }
.location-section .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.location-symbol { font-size:3rem; color:var(--rose-d); line-height:1; }
.hero-photo img { display:block; width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.hero-photo::after { display:none; }
.faq-widget { position:fixed; bottom:22px; left:18px; z-index:70; font-family:var(--sans); }
.faq-launcher { box-shadow:var(--shadow); }
.faq-panel { width:390px; max-width:calc(100vw - 36px); position:absolute; bottom:58px; left:0; background:white; border:1px solid var(--line); border-radius:18px; box-shadow:0 16px 60px #2f262233; overflow:hidden; }
.faq-head { padding:16px; background:var(--rose-l); display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.faq-messages { max-height:220px; overflow:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }
.faq-message { border-radius:12px; background:var(--cream); padding:10px 12px; font-size:.85rem; }
.faq-message p { margin:0; }
.faq-message a { display:inline-block; margin:6px 12px 0 0; font-weight:600; }
.faq-message.from-user { background:var(--rose-l); align-self:flex-end; max-width:90%; }
.faq-suggestions { display:flex; flex-direction:column; gap:6px; max-height:155px; overflow:auto; padding:0 14px 12px; }
.faq-suggestions button { cursor:pointer; border:1px solid var(--line); border-radius:9px; background:white; padding:8px 10px; text-align:left; font:inherit; font-size:.78rem; color:var(--ink); }
.faq-form { display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); }
.faq-form input { min-width:0; flex:1; font-size:.82rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:760px) {
  .faq-widget { bottom:84px; left:12px; }
  .faq-launcher { font-size:.75rem; padding:11px 14px; }
  .faq-panel { max-height:calc(100dvh - 165px); overflow:auto; width:360px; max-width:calc(100vw - 24px); }
  .center-gallery { grid-template-columns:1fr; }
  .location-section .grid { grid-template-columns:1fr; }
  .center-gallery img { max-height:380px; }
  .tabbar { grid-template-columns:repeat(6,1fr); }
}

/* Sito clienti: rifiniture mobile. Il pannello /admin usa un foglio stile separato. */
@media (max-width: 760px) {
  body { overflow-x:hidden; }
  main { padding:0 18px calc(112px + env(safe-area-inset-bottom)); }
  .top { gap:8px; padding:calc(8px + env(safe-area-inset-top)) 14px 9px; }
  .brand { gap:8px; min-width:0; font-size:1rem; }
  .brand-logo { width:56px; height:44px; flex:none; }
  .brand span[data-name] { max-width:none; font-size:.82rem; line-height:1.15; }
  section { padding:30px 0 6px; }
  h1 { font-size:clamp(1.9rem, 8vw, 2.55rem); }
  h2 { font-size:clamp(1.45rem, 6vw, 1.85rem); }
  .hero { gap:18px; padding:24px 0 12px; }
  .hero p.lead { font-size:1rem; line-height:1.55; }
  .hero .row { gap:8px; }
  .hero .row .btn { flex:1 1 auto; padding:10px 13px; font-size:.84rem; }
  .hero-art { display:block; aspect-ratio:1.45; max-height:250px; border-radius:24px; }
  .hero-badges { gap:22px; margin-top:20px; }
  .hero-badges b { font-size:1.35rem; }
  .cat-tabs { margin-right:-18px; padding-right:18px; scroll-snap-type:x proximity; }
  .cat-tabs button { scroll-snap-align:start; }
  .svc { display:grid; grid-template-columns:56px minmax(0,1fr); gap:10px 12px; padding:13px; align-items:start; }
  .svc-img { width:56px; height:56px; grid-column:1; grid-row:1; }
  .svc-b { grid-column:2; min-width:0; }
  .svc:not(:has(.svc-img)) .svc-b { grid-column:1 / -1; }
  .svc-b h3 { font-size:1.05rem; overflow-wrap:anywhere; }
  .svc-meta { gap:4px 10px; font-size:.75rem; }
  .svc-r { grid-column:1 / -1; width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px; }
  .svc-price { font-size:1.1rem; text-align:left; }
  .pick { align-items:flex-start; flex-wrap:wrap; gap:8px; padding:13px; }
  .pick > div:first-child { flex:1 1 100% !important; min-width:0; }
  .pick > div:first-child b { display:block; font-size:.96rem; line-height:1.3; }
  .pick > b:last-child { flex:1 1 100%; width:100%; font-size:.78rem; text-align:left; }
  .book-grid { gap:14px; }
  .cal { padding:11px; }
  .cal-g { gap:2px; }
  .cal-g button { min-height:36px; }
  .slots { grid-template-columns:repeat(auto-fill,minmax(70px,1fr)); gap:6px; }
  .slots button { min-height:42px; padding:8px 4px; }
  .summary { padding:14px; }
  .summary > div { align-items:flex-start; flex-wrap:wrap; gap:3px 8px; }
  .summary > div > * { min-width:0; }
  .grid.g2, .grid.g3 { grid-template-columns:minmax(0,1fr); gap:12px; }
  .pkg { padding:18px; }
  .pkg .off { top:12px; right:-36px; }
  .area-tabs { margin:14px -18px; padding:0 18px; scroll-snap-type:x proximity; }
  .area-tabs button { flex:none; min-height:44px; padding:10px 12px; scroll-snap-align:start; }
  .appt { flex-wrap:wrap; gap:10px; padding:13px; }
  .appt-date { width:52px; }
  .appt > div:nth-child(2) { flex:1 1 calc(100% - 66px); min-width:0; overflow-wrap:anywhere; }
  .appt > .btn { margin-left:auto; }
  .sessions { gap:5px; }
  .sessions i { width:14px; height:14px; }
  .center-gallery { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(74vw,1fr); grid-template-columns:none; gap:12px; overflow-x:auto; padding:2px 18px 12px 0; margin-right:-18px; scroll-snap-type:x mandatory; }
  .center-gallery img { height:260px; max-height:260px; aspect-ratio:auto; scroll-snap-align:start; }
  .location-section .grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .foot .row.between { align-items:flex-start; flex-direction:column; gap:14px; }
  .foot .row.between > .row { gap:12px; flex-wrap:wrap; }
  .auth-box { width:100%; margin:22px auto; }
  .modal-bg { align-items:flex-end; padding-top:env(safe-area-inset-top); }
  .modal { max-height:calc(92dvh - env(safe-area-inset-top)); padding:18px 16px calc(18px + env(safe-area-inset-bottom)); }
  .faq-widget { left:12px; bottom:calc(78px + env(safe-area-inset-bottom)); }
  .faq-launcher { width:48px; height:48px; min-height:48px; padding:0; border-radius:50%; font-size:0; line-height:1; }
  .faq-launcher::after { content:"?"; font-size:1.35rem; font-weight:600; }
  .faq-panel { max-height:calc(100dvh - 150px - env(safe-area-inset-bottom)); }
  .wa-float { width:48px; height:48px; right:12px; bottom:calc(78px + env(safe-area-inset-bottom)) !important; }
  .tabbar { width:100%; box-sizing:border-box; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; padding:5px 6px calc(5px + env(safe-area-inset-bottom)); backdrop-filter:blur(14px); background:rgba(255,255,255,.96); }
  .tabbar a { min-width:0; min-height:44px; justify-content:center; align-items:center; gap:1px; font-size:.58rem; line-height:1.05; text-align:center; overflow-wrap:normal; }
  .tabbar a span { font-size:1.05rem; }
  .tabbar .tb-main span { width:34px; height:34px; }
  .table-wrap { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .table-wrap table { min-width:560px; }
}

@media (max-width: 380px) {
  main { padding-left:14px; padding-right:14px; }
  .brand-logo { width:48px; height:40px; }
  .brand span[data-name] { font-size:.76rem; }
  .hero .row { align-items:stretch; }
  .hero .row .btn { padding-inline:9px; font-size:.78rem; }
  .faq-launcher { max-width:calc(100vw - 112px); }
  .tabbar a { font-size:.54rem; }
}

.hero-actions { gap:22px; }
.hero-actions .hero-book { min-height:56px; min-width:220px; justify-content:space-between; gap:28px; padding:15px 24px; font-size:1.05rem; font-weight:600; box-shadow:0 8px 22px #a8427633; }
.hero-secondary { color:var(--ink-2); font-size:.85rem; text-underline-offset:5px; }
.feature-photo { display:block; width:100%; height:220px; object-fit:cover; border-radius:12px; margin:0 0 18px; }
.location-photo { height:280px; object-position:center 50%; }
.center-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
.center-gallery figure { margin:0; min-width:0; scroll-snap-align:start; }
.center-gallery figure img { height:280px; aspect-ratio:auto; }
.center-gallery figcaption { padding:9px 2px; font-size:.8rem; color:var(--ink-2); }
.install-banner { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); z-index:65; width:min(480px,calc(100% - 24px)); display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:10px; padding:15px 24px 15px 12px; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:16px; box-shadow:0 6px 24px #18223826; font-family:var(--sans); }
.install-banner img { border-radius:9px; }
.install-banner b { display:block; font-size:.78rem; line-height:1.35; }
.install-banner span { display:block; font-size:.66rem; line-height:1.4; color:var(--ink-2); margin-top:3px; }
.install-action { background:var(--sand); color:var(--ink); border:0; border-radius:8px; min-height:42px; padding:8px 10px; font:600 .72rem var(--sans); cursor:pointer; }
.install-dismiss { position:absolute; right:0; top:-14px; width:28px; height:28px; border-radius:50%; background:#fff; border:1px solid var(--line); color:var(--ink-2); font-size:20px; cursor:pointer; }
.install-steps { padding-left:22px; line-height:1.8; }
@media (max-width:760px) {
  .hero .hero-actions { gap:14px; align-items:center; flex-direction:column; }
  .hero .hero-actions .hero-book { width:100%; min-height:56px; padding:14px 20px; font-size:1.05rem; }
  .hero-secondary { font-size:.82rem; }
  .center-gallery { grid-template-columns:none; }
  .center-gallery figure img { height:260px; }
  .install-banner { bottom:calc(64px + env(safe-area-inset-bottom)); grid-template-columns:36px minmax(0,1fr) auto; gap:8px; padding:12px 18px 12px 10px; }
  .install-banner img { width:36px; height:36px; }
  .has-install-banner main { padding-bottom:calc(220px + env(safe-area-inset-bottom)); }
  .has-install-banner .wa-float { visibility:hidden; }
  .tabbar .tb-main { font-weight:600; color:var(--rose-d); }
  .tabbar .tb-main span { width:40px; height:40px; box-shadow:0 3px 12px #a8427655; }
}

/* Comandi cliente su una riga; assistente richiamabile dall'intestazione. */
.top { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
.top .brand, .top .nav, .top-r { flex-shrink:0; }
.top .nav, .top-r { flex-wrap:nowrap; }
.nav a, .tabbar a, .header-faq, .hero-secondary { white-space:nowrap; }
.header-faq { border:1px solid #ffffff66; border-radius:999px; background:transparent; color:#fff; padding:9px 12px; font:500 .72rem var(--sans); cursor:pointer; min-height:36px; }
.header-faq:hover, .header-faq[aria-expanded="true"] { background:#ffffff16; border-color:#f1a0c6; }
.faq-widget { top:100px; bottom:auto; left:auto; right:18px; }
.faq-panel { position:static; padding:0; max-height:calc(100dvh - 120px); overflow:auto; }
.hero .hero-actions { flex-direction:row; flex-wrap:nowrap; }
.experience-contact { color:var(--rose-d); font-weight:600; text-underline-offset:4px; }
@media (max-width:760px) {
  .top { overflow-x:auto; }
  .top .brand { flex-shrink:1; }
  .brand span[data-name] { max-width:112px; font-size:.72rem; }
  .top-r { gap:6px; }
  .header-faq { padding:9px 10px; font-size:.63rem; min-height:40px; }
  .hero .hero-actions { gap:12px; }
  .hero .hero-actions .hero-book { width:auto; min-width:0; flex:1 1 auto; min-height:52px; padding:12px 14px; gap:12px; font-size:.9rem; }
  .hero-secondary { flex:none; font-size:.72rem; }
  .tabbar a { font-size:.56rem; overflow-wrap:normal; }
  .faq-widget { top:76px; left:12px; right:12px; bottom:auto; z-index:80; }
  .faq-panel { width:100%; max-width:none; max-height:calc(100dvh - 100px); }
}
@media (max-width:380px) {
  .brand span[data-name] { display:none; }
  .header-faq { font-size:.68rem; }
  .hero .hero-actions { gap:9px; }
  .hero .hero-actions .hero-book { font-size:.8rem; padding-inline:12px; gap:8px; }
  .hero-secondary { font-size:.66rem; }
  .tabbar a { font-size:.56rem; }
}

/* Nome completo e accesso sempre visibili nell'intestazione cliente. */
.brand span.brand-name[data-name] { display:block; max-width:230px; font-size:1.08rem; line-height:1.2; letter-spacing:.01em; }
.brand-title { display:block; font-weight:600; }
.brand-subtitle { display:block; margin-top:2px; font-size:.85em; color:#f1a0c6; font-weight:500; }
.nav .header-account { display:inline-flex; align-items:center; padding:6px 12px; border:1px solid #ffffff66; border-radius:999px; min-height:36px; }
@media (max-width:760px) {
  .top { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 10px; overflow:visible; padding:calc(10px + env(safe-area-inset-top)) 14px 10px; }
  .top .brand { grid-column:1 / -1; gap:12px; width:fit-content; max-width:calc(100% - 34px); }
  .top .brand-logo { width:54px; height:46px; }
  .brand span.brand-name[data-name] { display:block; font-size:1.05rem; max-width:220px; }
  .top .nav { display:flex; gap:10px; margin:0; min-width:0; align-items:center; }
  .top .nav > a { display:none; }
  .top .nav > .header-location, .top .nav > .header-account { display:inline-flex; align-items:center; flex:none; min-height:38px; font-size:.73rem; }
  .top .nav > .header-account { max-width:90px; overflow:hidden; text-overflow:ellipsis; padding:7px 11px; }
  .top-r { margin:0; }
  .top-r .cart-link { position:absolute; top:calc(17px + env(safe-area-inset-top)); right:14px; }
  .header-faq { font-size:.61rem; padding:8px 10px; min-height:38px; }
  .faq-widget { top:calc(130px + env(safe-area-inset-top)); }
  .faq-panel { max-height:calc(100dvh - 150px - env(safe-area-inset-top)); }
}
@media (max-width:380px) {
  .top { gap:8px; }
  .top .nav { gap:8px; }
  .top .nav > .header-location, .top .nav > .header-account { font-size:.68rem; }
  .top .nav > .header-account { padding-inline:9px; max-width:74px; }
  .header-faq { font-size:.59rem; padding-inline:8px; }
}

/* Evita che i comandi dell'intestazione escano lateralmente su tablet e desktop piccoli. */
.top .nav { align-items:center; }
.faq-widget { width:min(390px,calc(100vw - 24px)); }
.faq-panel { width:100%; max-width:100%; }
@media (min-width:761px) and (max-width:1279px) {
  .top { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:16px; row-gap:10px; padding:12px 24px; overflow:visible; }
  .top .brand { grid-column:1; grid-row:1; min-width:0; }
  .top-r { grid-column:2; grid-row:1; margin:0; }
  .top .nav { grid-column:1 / -1; grid-row:2; justify-content:center; gap:clamp(12px,2vw,22px); margin:0; min-width:0; }
  .top .nav a { font-size:.86rem; }
  .top .nav .header-account { max-width:120px; overflow:hidden; text-overflow:ellipsis; }
  .faq-widget { top:146px; }
  .faq-panel { max-height:calc(100dvh - 162px); }
}
@media (min-width:1280px) {
  .top { gap:20px; padding-inline:clamp(24px,3vw,48px); overflow:visible; }
  .top .nav { gap:16px; margin-left:0; }
  .top .nav .header-account { max-width:120px; overflow:hidden; text-overflow:ellipsis; }
}
@media (max-width:760px) {
  .faq-widget { width:auto; }
  .top .nav > .header-account { flex:0 1 auto; min-width:0; max-width:clamp(54px,17vw,90px); }
}
