/*
Theme Name: Astra Child
Template: astra
Version: 1.0
*/

/* ============================================================
   UVVC — DESIGN SYSTEM 2026 REFINED
   Ispirato a guide editoriali di alto livello (Michelin, 50Best)
   Palette: Avorio caldo · Nero profondo · Terracotta · Verde oliva
   ============================================================ */

:root {
  --uvvc-bg:            #FAFAF7;
  --uvvc-surface:       #F4F2ED;
  --uvvc-surface-2:     #EDEAE2;
  --uvvc-cream:         #FFF8F2;
  --uvvc-text:          #1A1A18;
  --uvvc-text-soft:     #5C5A54;
  --uvvc-text-muted:    #9A978E;
  --uvvc-primary:       #4A6741;
  --uvvc-primary-dark:  #364E30;
  --uvvc-accent:        #B05A2A;
  --uvvc-accent-light:  rgba(176, 90, 42, 0.10);
  --uvvc-line:          rgba(26, 26, 24, 0.08);
  --uvvc-line-mid:      rgba(26, 26, 24, 0.13);
  --uvvc-shadow-sm:     0 2px 8px rgba(26, 26, 24, 0.05);
  --uvvc-shadow:        0 8px 28px rgba(26, 26, 24, 0.08);
  --uvvc-shadow-lg:     0 20px 56px rgba(26, 26, 24, 0.10);
  --uvvc-shadow-hover:  0 20px 56px rgba(26, 26, 24, 0.12);
  --uvvc-radius-xl:     18px;
  --uvvc-radius-lg:     14px;
  --uvvc-radius-md:     10px;
  --uvvc-radius-pill:   999px;
}

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background-color: var(--uvvc-bg);
  color: var(--uvvc-text);
  font-family: "Inter", "Source Sans 3", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body, button, input, select, textarea {
  font-family: "Inter", "Source Sans 3", Arial, sans-serif;
  color: var(--uvvc-text);
}

/* TIPOGRAFIA */
h1, h2, h3, h4, h5, h6, .site-title a {
  margin-top: 0;
  margin-bottom: 0.55em;
  color: var(--uvvc-text);
  font-family: "Playfair Display", Georgia, serif;
  letter-spacing: -0.025em;
  line-height: 1.08;
}
h1 { font-size: clamp(36px, 5vw, 66px); font-weight: 700; }
h2 { font-size: clamp(24px, 3vw, 40px); font-weight: 700; }
h3 { font-size: clamp(19px, 1.8vw, 26px); font-weight: 600; }
h4, h5, h6 { font-weight: 600; }

p, li { font-size: 15px; line-height: 1.75; color: var(--uvvc-text-soft); }
strong { color: var(--uvvc-text); font-weight: 700; }
a { color: var(--uvvc-primary); text-decoration: none; transition: color 0.18s ease; }
a:hover { color: var(--uvvc-primary-dark); }

/* LAYOUT */
.uvvc-app-layout .site-content > .ast-container,
.uvvc-app-layout .entry-content,
.uvvc-app-layout .ast-article-single,
.uvvc-app-layout #primary { width: 100%; max-width: none; }
.uvvc-app-layout .site-content > .ast-container { display: block; padding-left: 0; padding-right: 0; }

.pignamele-shell {
  width: min(1380px, calc(100vw - 48px));
  margin: 0 auto;
}

/* KICKER */
.section-kicker, .locale-single-kicker {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--uvvc-accent);
  font-family: "Inter", Arial, sans-serif;
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0; width: 100%;
  z-index: 999;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transform: translateY(0);
  transition: transform 0.28s cubic-bezier(0.4,0,0.2,1), box-shadow 0.28s ease;
}
.admin-bar .site-header { top: 32px; }
.site-header.header-hidden  { transform: translateY(-110%); box-shadow: none !important; }
.site-header.header-visible { transform: translateY(0); }

.main-header-bar {
  background: rgba(250, 250, 247, 0.97);
  border-bottom: 1px solid var(--uvvc-line);
  box-shadow: 0 1px 0 var(--uvvc-line);
}

/* Forza il logo inline col testo del sito su una sola riga compatta */
.site-branding { display: flex; align-items: center; min-height: 54px; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo-link img, .custom-logo { display: block; max-height: 38px; width: auto; }
.site-branding {
  gap: 0;
  flex-wrap: nowrap;
}
.site-branding .custom-logo-link,
.site-branding .custom-logo-link img,
.site-branding .custom-logo {
  opacity: 1 !important;
  visibility: visible !important;
}

.site-title,
.ast-site-title-wrap,
.site-brand-text {
  display: inline-flex !important;
  align-items: center;
}
.site-title a,
.ast-site-title-wrap a,
.site-brand-text {
  margin-left: 12px;
  text-decoration: none;
}
.site-brand-text {
  white-space: nowrap;
}

/* Tutto il builder row su una sola riga, no wrap */
.main-header-bar .ast-builder-grid-row,
.main-header-bar .ast-builder-grid-row-container,
.main-header-bar .ast-builder-grid-row-container-inner {
  flex-wrap: nowrap !important;
  align-items: center !important;
}

/* Il menu non va mai a capo */
.main-header-menu,
.ast-nav-menu {
  flex-wrap: nowrap !important;
  white-space: nowrap;
}

.main-header-menu .menu-link,
.main-header-bar-navigation a {
  color: var(--uvvc-text) !important;
  font-weight: 600;
  font-size: 13px;
  padding: 5px 9px !important;
  border-radius: 7px !important;
  transition: background 0.18s, color 0.18s !important;
  white-space: nowrap;
}
.main-header-menu .menu-link:hover,
.main-header-bar-navigation a:hover {
  color: var(--uvvc-text) !important;
  background: var(--uvvc-surface) !important;
}
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current_page_item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link {
  background: var(--uvvc-surface) !important;
  color: var(--uvvc-text) !important;
  font-weight: 700 !important;
}
.menu-item-uvvc-login > .menu-link { background: transparent !important; color: var(--uvvc-primary, #8B5E3C) !important; border-radius: 7px !important; padding: 6px 18px !important; font-weight: 700 !important; border: none !important; font-size: 15px !important; }
.menu-item-uvvc-login > .menu-link:hover { background: rgba(139,94,60,0.08) !important; color: #6B3F18 !important; }
.menu-item-uvvc-extra > .menu-link { background: var(--uvvc-surface) !important; }

/* ============================================================
   HERO
   ============================================================ */
.hero-fullscreen {
  min-height: 68vh;
  display: flex;
  align-items: center;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}
.hero-fullscreen-content {
  width: 100%;
  max-width: 820px;
  padding: 96px 0 80px;
  text-align: center;
  color: #fff;
}
.hero-main-title {
  margin: 0 0 20px;
  color: #fff;
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
}
.hero-main-subtitle {
  margin: 0 auto;
  max-width: 600px;
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.86);
  font-family: "Inter", Arial, sans-serif;
}
.hero-main-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* PULSANTI */
.hero-btn, .btn-primary, .btn-secondary,
.filter-actions button, .submit-locale-button,
.geo-btn, .no-results-state button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 22px;
  border: 0;
  border-radius: var(--uvvc-radius-pill);
  text-decoration: none;
  font-family: "Inter", Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  cursor: pointer;
  white-space: nowrap;
}
.hero-btn-primary, .btn-primary, .filter-actions button,
.submit-locale-button, .no-results-state button {
  background: var(--uvvc-text); color: #fff;
}
.hero-btn-primary:hover, .btn-primary:hover,
.filter-actions button:hover, .submit-locale-button:hover,
.no-results-state button:hover {
  background: #333; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(26,26,24,0.18);
}
.hero-btn-secondary, .btn-secondary, .geo-btn {
  background: rgba(255,255,255,0.12); color: #fff;
  border: 1px solid rgba(255,255,255,0.26); backdrop-filter: blur(8px);
}
.hero-btn-secondary:hover, .btn-secondary:hover {
  background: rgba(255,255,255,0.20); transform: translateY(-1px);
}
.btn-secondary-dark { background: #fff; color: var(--uvvc-text); border: 1px solid var(--uvvc-line-mid); }
.btn-secondary-dark:hover { background: var(--uvvc-surface); transform: translateY(-1px); }

/* ============================================================
   SEZIONE EDITORIALE
   ============================================================ */
.editorial-intro {
  display: grid; grid-template-columns: 1fr;
  gap: 16px; margin: 40px 0 28px; align-items: stretch;
}
.editorial-intro-left,
.pignola-note,
.legend-card,
.locale-list-card,
.submit-locale-hero-text,
.submit-locale-card,
.submit-side-box,
.locale-ratings-box,
.locale-description-box,
.locale-card,
.about-premium-hero-text,
.about-premium-story-card,
.about-value-card {
  padding: 26px 30px;
  background: #fff;
  border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl);
  box-shadow: var(--uvvc-shadow-sm);
}
.editorial-intro-left h2, .legend-head h2, .results-head-left h2,
.map-panel-head h2, .about-premium-hero-text h1, .about-premium-story-card h2,
.about-values-head h2, .locale-single-title { color: var(--uvvc-text); }

.editorial-intro-left p, .pignola-note p, .legend-head p,
.results-head-left p, .map-panel-head p, .no-results-state p,
.submit-locale-subtitle, .frontend-message p,
.submit-side-box p, .submit-side-box li,
.locale-single-address, .locale-list-card-address, .locale-card-address,
.about-premium-hero-text p, .about-premium-story-card p, .about-value-card p {
  color: var(--uvvc-text-soft);
}
.pignola-note-label {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px;
  border-radius: 999px; background: var(--uvvc-accent-light); color: var(--uvvc-accent);
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.12em; font-family: "Inter", Arial, sans-serif;
}

/* LEGENDA */
.legend-section { margin: 32px 0 28px; }
.legend-head { margin-bottom: 18px; }
.legend-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.legend-card h3 { margin: 0 0 6px; color: var(--uvvc-primary); }

/* ============================================================
   BOTTONI GEO COORDINATE — sempre visibili e prominenti
   ============================================================ */
.geo-actions-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}

.geo-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  padding: 0 20px;
  border-radius: var(--uvvc-radius-pill);
  font-family: "Inter", Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, opacity 0.18s ease;
  white-space: nowrap;
}
.geo-btn svg {
  flex-shrink: 0;
  display: block;
}

/* Bottone principale: sfondo verde oliva pieno */
.geo-btn-primary {
  background: var(--uvvc-primary);
  color: #fff;
  box-shadow: 0 4px 16px rgba(74, 103, 65, 0.28);
}
.geo-btn-primary:hover:not(:disabled) {
  background: var(--uvvc-primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(74, 103, 65, 0.34);
}

/* Bottone secondario: bordo visibile, sfondo bianco */
.geo-btn-secondary {
  background: #fff;
  color: var(--uvvc-text);
  border: 1.5px solid var(--uvvc-line-mid) !important;
  box-shadow: var(--uvvc-shadow-sm);
}
.geo-btn-secondary:hover:not(:disabled) {
  background: var(--uvvc-surface);
  border-color: var(--uvvc-text) !important;
  transform: translateY(-1px);
}

/* Stato successo (dopo coordinate trovate) */
.geo-btn.geo-btn-success {
  background: #2d6a4f !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 4px 16px rgba(45, 106, 79, 0.28) !important;
  opacity: 0.85;
  cursor: default;
}

/* Stato disabilitato durante caricamento */
.geo-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  transform: none !important;
}

@media (max-width: 600px) {
  .geo-actions-row { flex-direction: column; }
  .geo-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   FILTRI — non sticky, resta al suo posto nella pagina */
.filters-sticky-wrap {
  position: static !important;
  top: auto !important;
  z-index: 1;
  margin: 0 0 32px;
}
.filters-sticky-bar {
  padding: 20px 24px;
  background: rgba(250, 250, 247, 0.96);
  border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl);
  box-shadow: var(--uvvc-shadow);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.filters-main-row { display: grid; grid-template-columns: 1fr; gap: 12px; align-items: end; }

.filter-field label, .form-field label {
  display: block; margin-bottom: 7px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.10em;
  text-transform: uppercase; color: var(--uvvc-text-muted);
  font-family: "Inter", Arial, sans-serif;
}
.filter-field input, .filter-field select,
.submit-locale-form input, .submit-locale-form select, .submit-locale-form textarea {
  width: 100%; min-height: 44px; padding: 0 14px;
  border: 1px solid var(--uvvc-line-mid);
  border-radius: var(--uvvc-radius-lg);
  background: #fff; color: var(--uvvc-text);
  font-size: 14px; line-height: 1.5;
  font-family: "Inter", Arial, sans-serif;
  transition: border-color 0.18s, box-shadow 0.18s;
  box-sizing: border-box; box-shadow: none;
}
.submit-locale-form textarea { min-height: 140px; padding: 14px; resize: vertical; }
.filter-field input:focus, .filter-field select:focus,
.submit-locale-form input:focus, .submit-locale-form select:focus,
.submit-locale-form textarea:focus {
  outline: none; border-color: var(--uvvc-text);
  box-shadow: 0 0 0 3px rgba(26,26,24,0.07);
}
.filter-actions { display: flex; align-items: flex-end; }

.quick-tipologie-row {
  display: flex; gap: 8px; overflow-x: auto;
  padding-top: 18px; margin-top: 18px;
  border-top: 1px solid var(--uvvc-line);
  scrollbar-width: none;
}
.quick-tipologie-row::-webkit-scrollbar { display: none; }
.quick-tipologia {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 38px; padding: 0 16px;
  border-radius: 999px; border: 1px solid var(--uvvc-line-mid);
  background: #fff; color: var(--uvvc-text);
  font-family: "Inter", Arial, sans-serif; font-size: 13px; font-weight: 600;
  white-space: nowrap; cursor: pointer; transition: all 0.18s ease;
}
.quick-tipologia:hover { border-color: var(--uvvc-text); background: var(--uvvc-surface); }
.quick-tipologia.is-active { background: var(--uvvc-text); color: #fff; border-color: var(--uvvc-text); }

/* ============================================================
   DIRECTORY LAYOUT
   ============================================================ */
.directory-layout { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: flex-start; }

.results-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.results-head > span {
  width: fit-content; padding: 7px 16px; border-radius: 999px;
  background: var(--uvvc-surface); border: 1px solid var(--uvvc-line);
  font-size: 12px; font-weight: 700; letter-spacing: 0.05em;
  color: var(--uvvc-text-soft); font-family: "Inter", Arial, sans-serif;
}
.locali-list-vertical { display: grid; gap: 14px; }

/* ============================================================
   CARD LOCALE
   ============================================================ */
.locale-list-card {
  position: relative; overflow: hidden;
  background: #fff; border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl); box-shadow: var(--uvvc-shadow-sm);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.locale-list-card:hover {
  transform: translateY(-4px); box-shadow: var(--uvvc-shadow-hover);
  border-color: var(--uvvc-line-mid);
}
.locale-list-card-link { display: grid; grid-template-columns: 1fr; color: inherit; text-decoration: none; }

/* Immagine: forziamo aspect-ratio 16:9 landscape */
.locale-list-card-image-wrap {
  position: relative; overflow: hidden;
  background: var(--uvvc-surface-2);
  aspect-ratio: 16 / 9; width: 100%;
}
.locale-list-card-image {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: center 62%;
  transition: transform 0.45s ease;
}
.locale-list-card:hover .locale-list-card-image { transform: scale(1.04); }

.locale-list-card-placeholder {
  display: flex; align-items: center; justify-content: center;
  height: 100%; color: var(--uvvc-text-muted); font-weight: 600; font-size: 13px;
}

/* Badge rank */
.locale-bollino, .locale-rank-badge {
  position: absolute; left: 12px; top: 12px; z-index: 2;
  display: inline-flex; align-items: center;
  min-height: 28px; padding: 0 11px; border-radius: 999px;
  background: rgba(26,26,24,0.76); color: #fff;
  font-size: 12px; font-weight: 700;
  font-family: "Inter", Arial, sans-serif;
  backdrop-filter: blur(8px);
}

.locale-list-card-content { display: grid; gap: 10px; padding: 20px 22px; }
.locale-list-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.locale-list-card-heading { display: grid; gap: 7px; }
.locale-list-card-title {
  margin: 0; color: var(--uvvc-text);
  font-size: clamp(19px, 1.8vw, 24px); line-height: 1.14; letter-spacing: -0.02em;
}
.locale-list-card-taxonomy, .locale-single-taxonomies { display: flex; flex-wrap: wrap; gap: 7px; }

.locale-badge, .locale-meta-item {
  display: inline-flex; align-items: center;
  min-height: 26px; padding: 0 10px; border-radius: 999px;
  white-space: nowrap; font-size: 12px; font-weight: 600;
  font-family: "Inter", Arial, sans-serif;
}
.locale-badge { background: var(--uvvc-accent-light); color: var(--uvvc-accent); border: 1px solid rgba(176,90,42,0.15); }
.locale-meta-item { background: var(--uvvc-surface); color: var(--uvvc-text-soft); border: 1px solid var(--uvvc-line); }
.locale-meta-item-soft { background: var(--uvvc-surface); }
.locale-arrow { display: none !important; }

.locale-list-card-address { margin: 0; font-size: 13px; color: var(--uvvc-text-muted); line-height: 1.5; }
.locale-list-card-excerpt {
  margin: 0; font-size: 13.5px; line-height: 1.65; color: var(--uvvc-text-soft);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

.locale-list-card-footer {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--uvvc-line);
}
.locale-list-card-rating-block, .locale-card-rating {
  display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.locale-rating-label {
  color: var(--uvvc-text-muted); font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; font-family: "Inter", Arial, sans-serif;
}
.locale-card-number-score, .locale-total-score-number, .single-total-score-number {
  font-size: 13.5px; font-weight: 700; color: var(--uvvc-text);
}

/* ============================================================
   SISTEMA PIGNE
   ============================================================ */
.pigne-rating { display: inline-flex; align-items: center; gap: 5px; }
.pigna-icon { width: 22px; height: 27px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 22px; }
.pigna-icon svg { width: 100%; height: 100%; display: block; overflow: visible; }
.pigna-icon.is-active svg          { fill: #8B5E3C; }
.pigna-icon.is-active svg .pigna-inner { fill: #6B4428; }
.pigna-icon.is-inactive svg        { fill: rgba(91,68,46,0.18); }
.pigna-icon.is-inactive svg .pigna-inner { fill: rgba(70,50,33,0.14); }
.pigna-icon.is-active   { opacity: 1; filter: drop-shadow(0 1px 4px rgba(139,94,60,0.28)); }
.pigna-icon.is-inactive { opacity: 0.50; }

/* ============================================================
   MAPPA
   ============================================================ */
.directory-map-sticky { position: static; }
.map-panel-head { margin-bottom: 16px; }
#homepage-map {
  width: 100%; height: 420px; overflow: hidden;
  border-radius: var(--uvvc-radius-xl); border: 1px solid var(--uvvc-line);
  background: var(--uvvc-surface); box-shadow: var(--uvvc-shadow-sm);
}
.map-fallback {
  display: flex; align-items: center; justify-content: center;
  height: 100%; padding: 20px; text-align: center; color: var(--uvvc-text-muted);
}
.uvvc-marker { width: 22px; height: 22px; display: block; border-radius: 999px; background: rgba(26,26,24,0.12); position: relative; }
.uvvc-marker-core {
  width: 12px; height: 12px; border-radius: 999px; background: var(--uvvc-primary);
  border: 2.5px solid #fff; box-shadow: 0 4px 12px rgba(74,103,65,0.30);
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
}
.uvvc-marker.is-active { transform: scale(1.18); background: var(--uvvc-accent-light); }
.uvvc-marker.is-active .uvvc-marker-core { background: var(--uvvc-accent); }
.leaflet-popup-content-wrapper { border-radius: 14px; box-shadow: var(--uvvc-shadow-lg); border: 1px solid var(--uvvc-line); }
.leaflet-popup-content { margin: 14px 16px; font-family: "Inter", Arial, sans-serif; }
.map-popup-card { display: grid; gap: 5px; }
.map-popup-card strong { color: var(--uvvc-text); font-size: 14px; }
.map-popup-card span { color: var(--uvvc-text-soft); font-size: 12px; }
.map-popup-card a { font-weight: 700; color: var(--uvvc-primary); }

/* NO RESULTS */
.no-results-state {
  padding: 40px 32px; text-align: center; background: #fff;
  border: 1px solid var(--uvvc-line); border-radius: var(--uvvc-radius-xl); box-shadow: var(--uvvc-shadow-sm);
}
.no-results-icon { margin-bottom: 12px; font-size: 32px; }
.no-results-state h3 { margin: 0 0 8px; color: var(--uvvc-text); }

/* ============================================================
   PAGINE INTERNE
   ============================================================ */
.submit-locale-page, .locale-single-page, .about-premium-page { padding-bottom: 64px; }
.submit-locale-hero-text, .submit-locale-card, .submit-side-box,
.locale-ratings-box, .locale-description-box { padding: 18px 22px; }

.frontend-message { margin-bottom: 20px; padding: 16px 20px; border: 1px solid transparent; border-radius: 12px; }
.frontend-message strong { display: block; margin-bottom: 4px; }
.frontend-message-success { background: var(--uvvc-surface); border-color: var(--uvvc-line); color: var(--uvvc-text); }
.frontend-message-error { background: var(--uvvc-accent-light); border-color: rgba(176,90,42,0.20); color: var(--uvvc-text); }

.submit-locale-layout, .form-grid, .about-premium-hero-grid,
.about-premium-story-grid, .about-values-grid, .single-premium-grid {
  display: grid; grid-template-columns: 1fr; gap: 22px;
}
.form-section { padding-bottom: 22px; border-bottom: 1px solid var(--uvvc-line); }
.form-section:last-child { padding-bottom: 0; border-bottom: 0; }
.form-section h2 { margin: 0 0 14px; }
.form-field-full { grid-column: 1 / -1; }
.form-field-inline-actions { display: flex; flex-direction: column; gap: 10px; }
.field-helper { margin: 0; color: var(--uvvc-text-muted); font-size: 13px; }
.submit-locale-actions { display: flex; justify-content: flex-start; }
.submit-side-box h3, .about-value-card h3 { margin: 0 0 10px; }
.submit-side-box ol { margin: 0; padding-left: 18px; }
.honeypot-wrap { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* ============================================================
   HERO SINGOLO LOCALE
   ============================================================ */
.single-hero-premium {
  position: relative; overflow: hidden;
  border-radius: var(--uvvc-radius-xl); min-height: 520px;
  background: #1a1a18; box-shadow: var(--uvvc-shadow-lg); margin-top: 28px;
}
.single-hero-premium-media { position: absolute; inset: 0; }
.single-hero-premium-media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.18) 55%, rgba(0,0,0,0) 100%);
}
.single-hero-premium-overlay {
  position: relative; z-index: 2; display: flex; align-items: flex-end;
  min-height: 520px; padding: 40px;
}
.single-hero-premium-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 62%; }
.single-hero-premium-content { max-width: 760px; color: #fff; }
.single-hero-premium-content .locale-single-kicker,
.single-hero-premium-content .locale-single-title,
.single-hero-premium-content .locale-single-address { color: #fff; }
.single-hero-premium-content .locale-meta-item {
  background: rgba(255,255,255,0.12); color: #fff;
  border-color: rgba(255,255,255,0.18); backdrop-filter: blur(8px);
}
.single-hero-premium-content .locale-badge {
  background: rgba(176,90,42,0.22); color: #fff;
  border-color: rgba(176,90,42,0.28); backdrop-filter: blur(8px);
}
.locale-single-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }

.single-hero-rating-strip { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.single-rating-chip {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 46px; padding: 8px 16px; border-radius: 12px;
  background: rgba(255,255,255,0.96) !important;
  border: 1px solid rgba(26,26,24,0.10) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.10) !important;
}
.single-rating-chip span, .single-rating-chip .locale-rating-label {
  color: var(--uvvc-text-muted) !important; font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
}
.single-rating-chip-total { background: rgba(255,255,255,0.98) !important; }
.single-total-score-number { color: var(--uvvc-text) !important; font-size: 14px; font-weight: 700; }

/* ============================================================
   GALLERY
   ============================================================ */
body .premium-gallery-content .gallery,
body .locale-description-content .gallery,
body .entry-content .gallery {
  display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 10px !important; float: none !important; width: 100% !important; margin-top: 20px !important;
}
body .premium-gallery-content .gallery br,
body .locale-description-content .gallery br { display: none !important; }
body .premium-gallery-content .gallery .gallery-item,
body .locale-description-content .gallery .gallery-item {
  float: none !important; width: 100% !important; max-width: 100% !important;
  margin: 0 !important; padding: 0 !important; overflow: hidden !important;
  border-radius: 12px !important; line-height: 0 !important; aspect-ratio: 4/3 !important;
}
body .premium-gallery-content .gallery .gallery-item img,
body .locale-description-content .gallery .gallery-item img,
body .premium-gallery-content .gallery img,
body .locale-description-content .gallery img {
  width: 100% !important; height: 100% !important; max-height: none !important;
  object-fit: cover !important; object-position: center 62% !important;
  display: block !important; border-radius: 12px !important;
  border: none !important; box-shadow: none !important;
  margin: 0 !important; padding: 0 !important; max-width: 100% !important;
  transition: transform 0.30s ease;
}
body .premium-gallery-content .gallery .gallery-item:hover img,
body .locale-description-content .gallery .gallery-item:hover img { transform: scale(1.04); }
body .premium-gallery-content .gallery-caption,
body .locale-description-content .gallery-caption { display: none !important; }

/* ============================================================
   RATING BOX
   ============================================================ */
.locale-ratings-box {
  background: #fff; border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl); box-shadow: var(--uvvc-shadow-sm);
}
.rating-list { display: grid; gap: 0; }
.rating-row { display: grid; grid-template-columns: 110px 1fr 44px; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--uvvc-line); }
.rating-row:last-child { border-bottom: 0; }
.rating-label { font-weight: 600; font-size: 13px; color: var(--uvvc-text); font-family: "Inter", Arial, sans-serif; }
.rating-value { font-weight: 700; font-size: 13px; color: var(--uvvc-text-soft); font-family: "Inter", Arial, sans-serif; text-align: right; }

/* ============================================================
   CHI SIAMO
   ============================================================ */
.about-premium-page { padding-top: 28px; }
.about-premium-hero, .about-premium-story, .about-premium-values { margin-bottom: 32px; }
.about-premium-hero-grid, .about-premium-story-grid { align-items: stretch; }
.about-premium-hero-media, .about-premium-detail-media {
  overflow: hidden; border-radius: var(--uvvc-radius-xl); box-shadow: var(--uvvc-shadow); min-height: 360px;
}
.about-premium-hero-media img, .about-premium-detail-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.about-values-grid { margin-top: 20px; }
.about-quote-box {
  display: grid; gap: 6px; margin-top: 20px; padding: 20px 24px;
  border-radius: 12px; background: var(--uvvc-surface); border: 1px solid var(--uvvc-line);
}

/* FOOTER */
.site-footer, .site-primary-footer-wrap, .site-below-footer-wrap {
  background: var(--uvvc-text); color: rgba(255,255,255,0.70);
}
.site-footer a, .site-primary-footer-wrap a, .site-below-footer-wrap a {
  color: rgba(255,255,255,0.70); transition: color 0.18s;
}
.site-footer a:hover, .site-primary-footer-wrap a:hover { color: #fff; }
.uvvc-footer-social, .uvvc-footer-social-injected { display: flex !important; align-items: center; justify-content: center; gap: 12px; padding: 10px 0 6px; width: 100%; }
.uvvc-footer-social-link {
  opacity: 1 !important; visibility: visible !important;
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.14);
  color: rgba(255,255,255,0.70) !important; transition: background 0.18s, color 0.18s, transform 0.18s;
}
.uvvc-footer-social-link:hover { background: rgba(255,255,255,0.18); color: #fff !important; transform: translateY(-2px); }
.site-footer-primary-section-1, .site-footer-primary-section-2,
.site-footer-primary-section-3, .site-footer-primary-section-4,
.site-below-footer-wrap, .site-primary-footer-wrap {
  padding-top: 0 !important; padding-bottom: 0 !important; min-height: auto !important;
}
.site-below-footer-wrap { font-size: 12px; color: rgba(255,255,255,0.40); padding: 0 !important; }

/* ============================================================
   HOMEPAGE SPECIFICI
   ============================================================ */
.home .site-header, .home #masthead, .home .main-header-bar,
.home .ast-primary-header-bar,
.home.ast-theme-transparent-header .main-header-bar,
.home.ast-theme-transparent-header #masthead,
.home.ast-theme-transparent-header .site-header,
.ast-theme-transparent-header.home .main-header-bar,
.ast-theme-transparent-header.home .ast-primary-header-bar {
  background: rgba(250,250,247,0.97) !important;
  background-color: rgba(250,250,247,0.97) !important;
  position: sticky !important; top: 0 !important; z-index: 999 !important;
  border-bottom: 1px solid var(--uvvc-line) !important;
  box-shadow: 0 1px 0 var(--uvvc-line) !important;
}
.home .hero-fullscreen, .homepage-directory .hero-fullscreen { margin-top: 0 !important; }

.hero-fullscreen-home { min-height: 66vh; }
.hero-fullscreen-home .hero-fullscreen-content { padding: 80px 0 66px; }
.homepage-directory .hero-main-subtitle { max-width: 640px; }

.editorial-intro-compact, .editorial-intro-enhanced { grid-template-columns: 1fr; align-items: stretch; }

.pignola-note-compact {
  height: 100%; display: flex; flex-direction: column; justify-content: center;
  background: var(--uvvc-surface);
}
.pignola-note-compact h3 { margin: 0 0 12px; font-size: clamp(20px, 2.4vw, 32px); }

.legend-floating-box {
  padding: 22px 26px; background: #fff; border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl); box-shadow: var(--uvvc-shadow-sm);
}
.legend-floating-title { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: var(--uvvc-text); font-weight: 600; }
.legend-floating-mini { display: grid; gap: 8px; }
.legend-mini-item { display: grid; gap: 2px; padding: 10px 14px; background: var(--uvvc-surface); border-radius: 10px; }
.legend-mini-item strong { font-size: 13px; color: var(--uvvc-text); }
.legend-mini-item span { font-size: 13px; line-height: 1.5; color: var(--uvvc-text-soft); }

/* Nasconde elementi non necessari */
.locale-single-kicker { display: none; }
.legend-section-bottom { display: none; }
.hero-fullscreen .hero-kicker { display: none; }
.results-head-left p { display: none; }

/* CATEGORIE */
.category-hero-premium { margin: 32px 0 20px; }
.category-hero-premium-grid { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: stretch; }
.category-hero-premium-text, .category-hero-premium-media {
  background: #fff; border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl); box-shadow: var(--uvvc-shadow-sm);
}
.category-hero-premium-text { padding: 30px 34px; }
.category-hero-premium-text h1 { margin: 0 0 12px; }
.category-hero-premium-text p { margin: 0; color: var(--uvvc-text-soft); }
.category-hero-stats { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 20px; }
.category-hero-stat {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px;
  border-radius: 999px; background: var(--uvvc-surface); border: 1px solid var(--uvvc-line);
  font-weight: 600; font-size: 13px;
}
.category-hero-premium-media { overflow: hidden; min-height: 300px; }
.category-hero-premium-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; display: block; }

.locali-grid-category-premium {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 10px 0 32px;
}
.locale-card-category-premium {
  background: #fff; border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl); overflow: hidden; box-shadow: var(--uvvc-shadow-sm);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.locale-card-category-premium:hover { transform: translateY(-3px); box-shadow: var(--uvvc-shadow-hover); }
.locale-card-category-premium .locale-card-image { width: 100%; height: 180px; object-fit: cover; object-position: center 62%; display: block; }
.locale-card-category-premium .locale-card-content { padding: 18px 20px; }
.locale-card-category-premium .locale-card-title { font-size: 22px; line-height: 1.2; }
.locale-card-category-premium .locale-list-card-excerpt { font-size: 13.5px; line-height: 1.6; }
.locale-card-category-premium .locale-card-address { font-size: 13px; margin-bottom: 12px; }

/* CLASSIFICHE */
.classifiche-panels { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 16px; }
.classifica-panel { background: #fff; border: 1px solid var(--uvvc-line); border-radius: var(--uvvc-radius-xl); padding: 22px 24px; box-shadow: var(--uvvc-shadow-sm); }
.classifica-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.classifica-panel-head h2 { font-size: 26px; margin: 0; }
.classifica-sortable { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.classifica-item { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 10px; background: var(--uvvc-surface); border: 1px solid var(--uvvc-line); cursor: move; }
.classifica-handle { font-weight: 700; color: var(--uvvc-text-muted); }
.classifica-position { font-weight: 700; min-width: 36px; }
.classifica-title { font-weight: 600; flex: 1; }
.classifica-edit-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 999px;
  background: #fff; border: 1px solid var(--uvvc-line-mid);
  color: var(--uvvc-text) !important; text-decoration: none;
  font-size: 16px; flex-shrink: 0;
}
.classifica-edit-link:hover { background: var(--uvvc-surface); }
.existing-media-grid {
  display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: 12px; margin-top: 14px;
}
.existing-media-card {
  display: flex; flex-direction: column; gap: 8px; padding: 10px; border-radius: 12px;
  background: var(--uvvc-surface); border: 1px solid var(--uvvc-line);
}
.existing-media-card img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 62%; border-radius: 10px; display: block;
}
.existing-media-card-featured img { aspect-ratio: 16 / 10; }
.existing-media-caption { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--uvvc-text-soft); }
.remove-media-toggle { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--uvvc-text-soft); }
.category-ranking-page .locale-card, .locali-grid-category .locale-card {
  background: #fff; border: 1px solid var(--uvvc-line); border-radius: var(--uvvc-radius-xl); overflow: hidden; box-shadow: var(--uvvc-shadow-sm);
}

/* SCORE BADGE */
.uvvc-score-badge { display: inline-flex; align-items: baseline; gap: 4px; padding: 8px 14px; border-radius: 999px; background: var(--uvvc-surface); border: 1px solid var(--uvvc-line); }
.uvvc-score-badge-label { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--uvvc-text-muted); }
.uvvc-score-badge-value { font-size: 20px; line-height: 1; font-weight: 700; color: var(--uvvc-text); }
.uvvc-score-badge-max { font-size: 13px; color: var(--uvvc-text-muted); }

/* MISC */
.site-title a::after, .ast-site-name-text::after { content: ''; }

/* Rimuovi TUTTI i social dall'header */
.ast-header-social-icons,
.ast-header-social-element,
.header-social-icons,
.ast-header-custom-widget .ast-social-icon-list,
.ast-header-custom-widget,
.ast-builder-layout-element[data-section*="social"],
.ast-social-color-type-custom,
[class*="ast-header-social"],
[class*="header-social"],
.ast-site-header-area .ast-social-icon-list { display: none !important; }
.locale-list-card-image-wrap, .locale-card-image-wrap { position: relative; }
.locale-emoji { margin-right: 4px; }
.locale-card-category-inline { margin: 0 0 6px; font-weight: 600; color: var(--uvvc-text-soft); }
.locale-card-rating-line { display: flex; gap: 12px; flex-wrap: wrap; }
.locale-card-rating, .locale-list-card-rating-block { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.locale-list-card-rating-block-total, .locale-card-rating-total { display: inline-flex; align-items: center; gap: 8px; }
.locale-rank-badge { position: absolute; top: 12px; left: 12px; display: inline-flex; }
.page-head-simple-category { padding: 28px 0 10px; }
.category-page-intro { max-width: 680px; margin: 8px auto 0; text-align: center; }
.about-values-grid-small { gap: 16px; }
.about-values-grid-small .about-value-card { padding: 22px 24px; border-radius: var(--uvvc-radius-lg); }
.about-premium-hero-text h1 { max-width: 16ch; }
.about-premium-story-card p, .about-premium-hero-text p, .about-value-card p { line-height: 1.8; }

/* ============================================================
   HEADER SCROLL - padding
   ============================================================ */
@media (min-width: 922px) {
  #page { padding-top: var(--uvvc-header-h, 62px); }
  body.home #page, body.home #content, body.home .site-content { padding-top: 0 !important; margin-top: 0 !important; }
}

/* ============================================================
   TABLET 768px+
   ============================================================ */
@media (min-width: 768px) {
  .pignamele-shell { width: min(1380px, calc(100vw - 56px)); }
  .editorial-intro { grid-template-columns: 1.2fr 0.8fr; }
  .editorial-intro-compact, .editorial-intro-enhanced { grid-template-columns: 1.2fr 0.8fr; }
  .legend-grid { grid-template-columns: repeat(3,1fr); }
  .filters-main-row { grid-template-columns: 1.4fr 1fr 1fr 1fr auto; }
  .directory-layout { grid-template-columns: minmax(0,1.05fr) minmax(400px,0.95fr); gap: 36px; }
  .results-head { flex-direction: row; align-items: flex-end; justify-content: space-between; }
  .locale-list-card-link { grid-template-columns: 270px 1fr; }
  .locale-list-card-image-wrap { aspect-ratio: unset; min-height: 240px; height: 100%; }
  .directory-map-sticky, .submit-locale-sidecard { position: sticky; top: 110px; }
  #homepage-map { height: 680px; }
  .submit-locale-layout { grid-template-columns: minmax(0,1fr) 310px; align-items: flex-start; }
  .form-grid, .single-premium-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-premium-hero-grid, .about-premium-story-grid { grid-template-columns: 1.05fr 0.95fr; }
  .about-values-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .about-values-grid-small { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .category-hero-premium-grid { grid-template-columns: 1.08fr 0.92fr; }
  .category-hero-premium-media { min-height: 340px; }
  .locali-grid-category-premium { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rating-row { grid-template-columns: 120px 1fr 48px; align-items: center; gap: 12px; }
  .single-hero-premium, .single-hero-premium-overlay { min-height: 560px; }
}

/* ============================================================
   DESKTOP 1024px+
   ============================================================ */
@media (min-width: 1024px) {
  .locali-grid-category-premium { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* ============================================================
   MOBILE max 767px
   ============================================================ */
@media (max-width: 767px) {
  .pignamele-shell { width: calc(100vw - 24px); }
  .hero-fullscreen { min-height: 62vh; }
  .hero-fullscreen-content { padding: 88px 0 60px; }
  .hero-main-subtitle { font-size: 16px; line-height: 1.65; }
  .editorial-intro { margin: 26px 0 18px; }
  .editorial-intro-left, .legend-floating-box, .locale-list-card-content, .pignola-note { padding: 18px 20px; }
  .editorial-intro-left, .locale-list-card, .filters-sticky-bar, .legend-floating-box { border-radius: var(--uvvc-radius-lg); }
  .filters-sticky-bar { padding: 14px 16px; }
  .filters-main-row { grid-template-columns: 1fr; gap: 10px; }
  .quick-tipologie-row { padding-top: 12px; margin-top: 12px; gap: 7px; }
  .quick-tipologia { min-height: 36px; padding: 0 12px; font-size: 12.5px; }
  .locale-list-card-link { grid-template-columns: 1fr; }
  .locale-list-card-image-wrap { aspect-ratio: 16/9; min-height: unset; height: auto; }
  .locale-list-card-content { padding: 16px 18px; gap: 9px; }
  .locale-list-card-title { font-size: 18px; }
  .locale-list-card-address { font-size: 12.5px; }
  #homepage-map { height: 300px; }
  .single-hero-premium, .single-hero-premium-overlay { min-height: 360px; }
  .single-hero-premium-overlay { padding: 22px; }
  body .premium-gallery-content .gallery, body .locale-description-content .gallery { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px !important; }
  body .premium-gallery-content .gallery .gallery-item, body .locale-description-content .gallery .gallery-item { aspect-ratio: 3/2 !important; }
  .locale-ratings-box, .submit-locale-hero-text, .submit-locale-card, .submit-side-box, .locale-description-box { padding: 18px 20px; }
  .classifiche-panels { grid-template-columns: 1fr; }
  .category-hero-premium-grid { grid-template-columns: 1fr; }
  .category-hero-premium-media { min-height: 220px; }
  .locali-grid-category-premium { grid-template-columns: 1fr; }
  .about-values-grid-small { grid-template-columns: 1fr; }
}

/* ============================================================
   HAMBURGER ICON — stile globale (fuori media query)
   ============================================================ */
.uvvc-hamburger {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 20px;
  height: 20px;
  pointer-events: none;
}
.uvvc-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--uvvc-text);
  border-radius: 2px;
  transition: transform 0.22s ease, opacity 0.18s ease, width 0.22s ease;
  transform-origin: center;
}
/* X animata quando aperto */
.uvvc-menu-open .uvvc-hamburger span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.uvvc-menu-open .uvvc-hamburger span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.uvvc-menu-open .uvvc-hamburger span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ============================================================
   MOBILE MENU max 921px
   ============================================================ */
@media (max-width: 921px) {
  .site-header { position: fixed !important; top: 0 !important; transform: translateY(0) !important; }
  .site-header.header-hidden { transform: translateY(0) !important; }
  /* Forza fixed anche sull'header della home su mobile */
  .home .site-header, .home #masthead,
  .home.ast-theme-transparent-header .site-header,
  .ast-theme-transparent-header.home .main-header-bar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    transform: translateY(0) !important;
    background: rgba(250,250,247,0.97) !important;
  }
  #page { padding-top: var(--uvvc-header-h, 56px) !important; }
  body.home #page { padding-top: var(--uvvc-header-h, 56px) !important; }
  .admin-bar #page { padding-top: calc(var(--uvvc-header-h, 56px) + 46px) !important; }
  .filters-sticky-wrap, .filters-sticky-bar, .directory-map-sticky { position: static !important; top: auto !important; }
  .directory-map-column { display: none; }

  /* === TASTO HAMBURGER === */
  .menu-toggle, .main-header-menu-toggle, .ast-mobile-menu-trigger-minimal,
  .ast-button-wrap .menu-toggle, button.ast-mobile-menu-trigger-minimal,
  .ast-header-break-point .menu-toggle {
    display: inline-flex !important; visibility: visible !important; opacity: 1 !important;
    align-items: center !important; justify-content: center !important;
    width: 40px !important; height: 40px !important; min-width: 40px !important; min-height: 40px !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--uvvc-text) !important;
    cursor: pointer !important;
    position: relative !important; z-index: 1001 !important; padding: 0 !important;
  }
  /* Nascondi l'icona SVG/testo originale Astra e mostra solo il nostro hamburger */
  .menu-toggle .menu-toggle-icon,
  .ast-mobile-menu-trigger-minimal .ast-mobile-svg,
  .ast-mobile-menu-trigger-minimal svg,
  .menu-toggle svg,
  .menu-toggle .ast-mobile-svg { display: none !important; }
  .menu-toggle .uvvc-hamburger,
  .ast-mobile-menu-trigger-minimal .uvvc-hamburger { display: flex !important; }

  /* === MENU DROPDOWN VERTICALE === */
  .ast-header-break-point .main-header-bar-navigation {
    display: none;
    background: #fff !important;
    border-top: 1px solid var(--uvvc-line) !important;
    box-shadow: 0 14px 32px rgba(26,24,24,0.10) !important;
    padding: 8px 0 20px !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
  }
  .ast-header-break-point .main-header-bar-navigation.toggle-on { display: block !important; }

  /* Menu voci in colonna — verticale */
  .ast-header-break-point .main-header-menu,
  .ast-header-break-point .ast-nav-menu {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .ast-header-break-point .main-header-menu .menu-item {
    margin: 0 !important;
    padding: 0 16px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .ast-header-break-point .main-header-menu .menu-item + .menu-item {
    border-top: 1px solid var(--uvvc-line) !important;
  }
  .ast-header-break-point .main-header-menu .menu-link {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    padding: 14px 4px !important;
    font-size: 15px !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    color: var(--uvvc-text) !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    transition: color 0.15s !important;
  }
  .ast-header-break-point .main-header-menu .menu-link:hover {
    color: var(--uvvc-primary) !important;
    background: transparent !important;
  }
  .ast-header-break-point .main-header-menu .current-menu-item > .menu-link,
  .ast-header-break-point .main-header-menu .current_page_item > .menu-link {
    color: var(--uvvc-primary) !important;
    font-weight: 700 !important;
    background: transparent !important;
  }
  /* Login button nel menu mobile */
  .ast-header-break-point .menu-item-uvvc-login > .menu-link {
    margin: 12px 0 0 !important;
    padding: 12px 16px !important;
    background: var(--uvvc-text) !important;
    color: #fff !important;
    border-radius: 9px !important;
    justify-content: center !important;
    font-weight: 700 !important;
  }

  .hero-fullscreen-home { min-height: 54vh; }
  .hero-fullscreen-home .hero-fullscreen-content { padding: 50px 0 42px; }
  .site-branding { min-height: 54px; }
  .custom-logo-link img, .custom-logo { max-height: 44px; }

  /* === FOOTER SOCIAL su mobile === */
  .uvvc-footer-social {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    padding: 16px 0 10px !important;
  }
  .uvvc-footer-social-link {
  opacity: 1 !important; visibility: visible !important;
    display: inline-flex !important;
    width: 44px !important;
    height: 44px !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  /* Assicura che i widget footer siano visibili su mobile */
  .site-footer-primary-section-1,
  .site-footer-primary-section-2,
  .site-footer-primary-section-3,
  .site-footer-primary-section-4 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  /* Widget area footer: layout a colonna su mobile */
  .site-primary-footer-wrap .ast-footer-widget-area {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 16px !important;
  }
}

/* ============================================================
   MIGLIORAMENTI MOBILE AGGIUNTIVI — v4 → v5
   Ispirati a Michelin Guide: rigore tipografico, spaziature
   generose, gerarchia visiva chiara, touch targets comodi
   ============================================================ */

/* ============================================================
   HERO — mobile più cinematografico
   ============================================================ */
@media (max-width: 767px) {
  .hero-fullscreen {
    min-height: 70vh;
    align-items: flex-end;
  }
  .hero-fullscreen-content {
    padding: 0 0 44px;
    text-align: left;
  }
  .hero-main-title {
    font-size: clamp(28px, 8vw, 40px);
    line-height: 1.08;
    letter-spacing: -0.025em;
    margin-bottom: 12px;
  }
  .hero-main-subtitle {
    font-size: 15px;
    line-height: 1.65;
    text-align: left;
    max-width: 100%;
    margin: 0 0 20px;
  }
  .hero-main-actions {
    justify-content: flex-start;
    flex-direction: column;
    gap: 10px;
    margin-top: 20px;
  }
  .hero-main-actions .hero-btn,
  .hero-main-actions .btn-primary,
  .hero-main-actions .btn-secondary {
    width: 100%;
    justify-content: center;
    min-height: 50px;
    font-size: 15px;
  }
  .hero-fullscreen-home {
    min-height: 72vh;
  }
  .hero-fullscreen-home .hero-fullscreen-content {
    padding: 0 0 48px;
    text-align: left;
  }
  /* Overlay gradient più forte su mobile per leggibilità */
  .hero-fullscreen::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to top,
      rgba(10, 10, 8, 0.72) 0%,
      rgba(10, 10, 8, 0.30) 50%,
      rgba(10, 10, 8, 0.10) 100%
    );
    pointer-events: none;
    z-index: 1;
  }
  .hero-fullscreen { position: relative; }
  .hero-fullscreen .pignamele-shell { position: relative; z-index: 2; }
}

/* ============================================================
   TIPOGRAFIA MOBILE — scaling più generoso
   ============================================================ */
@media (max-width: 767px) {
  h1 { font-size: clamp(28px, 7.5vw, 38px); }
  h2 { font-size: clamp(22px, 5.5vw, 30px); }
  h3 { font-size: clamp(17px, 4.5vw, 22px); }
  p, li { font-size: 14.5px; line-height: 1.75; }

  /* Section kicker */
  .section-kicker, .locale-single-kicker {
    font-size: 10px;
    letter-spacing: 0.20em;
  }
}

/* ============================================================
   CARD LOCALI — layout mobile ottimizzato
   ============================================================ */
@media (max-width: 767px) {
  /* Card lista: immagine sopra, contenuto sotto */
  .locale-list-card-link {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .locale-list-card-image-wrap {
    aspect-ratio: 16 / 9;
    border-radius: var(--uvvc-radius-xl) var(--uvvc-radius-xl) 0 0;
  }
  .locale-list-card-content {
    padding: 16px 18px 18px;
    gap: 10px;
  }
  .locale-list-card-title {
    font-size: 19px;
    line-height: 1.18;
    letter-spacing: -0.02em;
  }
  .locale-list-card-excerpt {
    -webkit-line-clamp: 3;
    font-size: 13.5px;
  }
  .locale-list-card-address {
    font-size: 12.5px;
    display: flex;
    align-items: center;
    gap: 5px;
  }
  .locale-list-card-footer {
    padding-top: 12px;
    gap: 8px;
    flex-wrap: wrap;
  }
  /* Badge tassonomia più piccoli su mobile */
  .locale-badge, .locale-meta-item {
    font-size: 11.5px;
    min-height: 24px;
    padding: 0 9px;
  }
  /* Nessun hover transform su mobile (touch) */
  .locale-list-card:hover {
    transform: none;
    box-shadow: var(--uvvc-shadow-sm);
  }
  /* Griglia categoria: sempre 1 colonna su mobile */
  .locali-grid-category-premium {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* ============================================================
   SEZIONE EDITORIALE INTRO — mobile
   ============================================================ */
@media (max-width: 767px) {
  .editorial-intro {
    margin: 20px 0 16px;
    gap: 12px;
  }
  .editorial-intro-left,
  .pignola-note,
  .legend-card {
    padding: 20px 18px;
    border-radius: var(--uvvc-radius-lg);
  }
  .pignola-note-compact {
    padding: 18px 18px;
  }
  .legend-floating-box {
    padding: 18px 18px;
    border-radius: var(--uvvc-radius-lg);
  }
}

/* ============================================================
   SINGLE LOCALE HERO — mobile
   ============================================================ */
@media (max-width: 767px) {
  .single-hero-premium,
  .single-hero-premium-overlay {
    min-height: 380px;
  }
  .single-hero-premium-overlay {
    padding: 20px 18px 24px;
    align-items: flex-end;
  }
  .single-hero-premium-content .locale-single-title {
    font-size: clamp(22px, 6.5vw, 32px);
    line-height: 1.1;
    margin-bottom: 8px;
  }
  /* Rating chips su mobile: scroll orizzontale */
  .single-hero-rating-strip {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 8px;
    padding-bottom: 4px;
    margin-top: 14px;
  }
  .single-hero-rating-strip::-webkit-scrollbar { display: none; }
  .single-rating-chip {
    flex-shrink: 0;
    min-height: 42px;
    padding: 6px 12px;
  }
  /* Azioni locale */
  .locale-single-actions {
    flex-direction: column;
    gap: 8px;
    margin-top: 14px;
  }
  .locale-single-actions .btn-primary,
  .locale-single-actions .btn-secondary,
  .locale-single-actions .hero-btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
    font-size: 14.5px;
  }
}

/* ============================================================
   FILTRI — mobile touch-friendly
   ============================================================ */
@media (max-width: 767px) {
  .filters-sticky-bar {
    padding: 16px 16px 14px;
    border-radius: var(--uvvc-radius-lg);
  }
  .filter-field input,
  .filter-field select {
    min-height: 48px;
    font-size: 15px;
    padding: 0 14px;
    border-radius: var(--uvvc-radius-md);
  }
  .filter-actions button,
  .filter-actions .btn-primary {
    min-height: 48px;
    width: 100%;
    font-size: 15px;
  }
  .quick-tipologie-row {
    padding-top: 14px;
    margin-top: 14px;
    gap: 8px;
    /* Snap per scroll orizzontale fluido */
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .quick-tipologia {
    scroll-snap-align: start;
    min-height: 38px;
    padding: 0 14px;
    font-size: 13px;
  }
}

/* ============================================================
   HEADER — rifinitura mobile
   ============================================================ */
@media (max-width: 921px) {
  .main-header-bar {
    padding: 0 16px !important;
  }
  /* Aumenta l'area toccabile del logo */
  .custom-logo-link {
    padding: 8px 0;
  }
  /* Header bar height */
  .site-branding {
    min-height: 56px !important;
  }
}

/* ============================================================
   FOOTER — mobile rifinito
   ============================================================ */
@media (max-width: 767px) {
  .site-footer,
  .site-primary-footer-wrap {
    text-align: center;
  }
  .site-primary-footer-wrap .ast-footer-widget-area {
    padding: 20px 16px !important;
  }
  .site-below-footer-wrap {
    padding: 12px 16px !important;
    font-size: 11px;
    text-align: center;
  }
  /* Aumenta il font footer su mobile */
  .site-footer p,
  .site-footer li,
  .site-primary-footer-wrap p,
  .site-primary-footer-wrap li {
    font-size: 13.5px;
    line-height: 1.7;
  }
  .site-footer a,
  .site-primary-footer-wrap a {
    color: rgba(255,255,255,0.80);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  /* Social links — targhet touch più grandi */
  .uvvc-footer-social-link {
  opacity: 1 !important; visibility: visible !important;
    width: 46px !important;
    height: 46px !important;
    background: rgba(255,255,255,0.12) !important;
    border: 1px solid rgba(255,255,255,0.20) !important;
  }
  .uvvc-footer-social {
    padding: 20px 0 14px !important;
    gap: 16px !important;
  }
}

/* ============================================================
   SHELL / CONTENITORE — padding laterale mobile ottimale
   ============================================================ */
@media (max-width: 767px) {
  .pignamele-shell {
    width: calc(100vw - 32px);
  }
}
@media (max-width: 400px) {
  .pignamele-shell {
    width: calc(100vw - 24px);
  }
}

/* ============================================================
   PULSANTI — touch target generoso su mobile
   ============================================================ */
@media (max-width: 767px) {
  .hero-btn, .btn-primary, .btn-secondary,
  .geo-btn, .no-results-state button {
    min-height: 50px;
    font-size: 15px;
    padding: 0 24px;
  }
  .geo-actions-row {
    flex-direction: column;
    gap: 10px;
  }
  .geo-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ============================================================
   CLASSIFICHE — mobile
   ============================================================ */
@media (max-width: 767px) {
  .classifica-panel {
    padding: 18px 16px;
  }
  .classifica-panel-head h2 {
    font-size: 20px;
  }
  .classifica-item {
    padding: 10px 12px;
    font-size: 14px;
  }
}

/* ============================================================
   CHI SIAMO — mobile
   ============================================================ */
@media (max-width: 767px) {
  .about-premium-hero-media,
  .about-premium-detail-media {
    min-height: 240px;
    border-radius: var(--uvvc-radius-lg);
  }
  .about-premium-hero-text,
  .about-premium-story-card,
  .about-value-card {
    padding: 20px 18px;
  }
  .about-quote-box {
    padding: 16px 18px;
  }
}

/* ============================================================
   MAPPA — mobile
   ============================================================ */
@media (max-width: 767px) {
  #homepage-map {
    height: 280px;
    border-radius: var(--uvvc-radius-lg);
  }
}

/* ============================================================
   FIX: rimuovi hover transform su tutti gli elementi
   interattivi — su touch non serve e può dare flicker
   ============================================================ */
@media (hover: none) and (pointer: coarse) {
  .locale-list-card:hover,
  .locale-card-category-premium:hover,
  .locale-list-card:hover .locale-list-card-image { transform: none !important; }
  .hero-btn-primary:hover, .btn-primary:hover,
  .filter-actions button:hover, .submit-locale-button:hover,
  .hero-btn-secondary:hover, .btn-secondary:hover,
  .btn-secondary-dark:hover,
  .geo-btn-primary:hover:not(:disabled),
  .geo-btn-secondary:hover:not(:disabled) { transform: none !important; }
  .uvvc-footer-social-link:hover { transform: none !important; }
}



@media (max-width: 921px) {
  body.home #page,
  body.home #content,
  body.home .site-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
  .site-branding {
    min-height: 56px !important;
    display: flex !important;
    align-items: center !important;
  }
  .site-title a,
  .ast-site-title-wrap a,
  .site-brand-text {
    display: inline-flex !important;
    margin-left: 10px !important;
  }
  .custom-logo-link,
  .custom-logo-link img,
  .custom-logo {
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    max-height: 34px !important;
    width: auto !important;
  }
}

@media (max-width: 767px) {
  .classifica-item {
    padding: 10px 12px;
    gap: 8px;
  }
  .classifica-edit-link {
    width: 34px;
    height: 34px;
  }
  .existing-media-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ============================================================
   MOBILE — fix icone categorie visibili + logo visibile
   ============================================================ */

/* Icone emoji nelle categorie sempre visibili su mobile */
.quick-tipologia span:first-child {
  display: inline-flex !important;
  align-items: center;
  font-size: 15px;
  line-height: 1;
  flex-shrink: 0;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.quick-tipologia span {
  display: inline !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
}
@media (max-width: 921px) {
  .quick-tipologia {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    white-space: nowrap;
    overflow: visible !important;
  }
  .quick-tipologia span:first-child {
    font-size: 14px !important;
    display: inline-flex !important;
  }
}

/* Logo sempre visibile su mobile — forza massima */
@media (max-width: 921px) {
  .site-branding {
    display: flex !important;
    align-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .custom-logo-link {
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .custom-logo-link img,
  .custom-logo {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    max-height: 36px !important;
    width: auto !important;
    flex-shrink: 0 !important;
  }
}

/* ============================================================
   RATING BOX — compatto e equilibrato
   ============================================================ */
.section-title { font-size: 15px !important; margin-bottom: 10px !important; }
.locale-ratings-box .section-title { margin-bottom: 8px !important; }
.rating-pigne { display: inline-flex; align-items: center; gap: 1px; }
.rating-pigne .pigna-icon { width: 16px !important; height: 19px !important; flex: 0 0 16px !important; }

/* ============================================================
   GLIGHTBOX — override stili per coerenza con tema
   ============================================================ */
.glightbox-clean .gslide-description { background: rgba(26,26,24,0.85); }
.glightbox-clean .gdesc-inner { padding: 10px 16px; }
.glightbox-clean .gslide-title { font-family: "Playfair Display", Georgia, serif; color: #fff; font-size: 15px; }
.glightbox-clean .gnext, .glightbox-clean .gprev { background: rgba(26,26,24,0.6); border-radius: 50%; }
.glightbox-clean .gnext:hover, .glightbox-clean .gprev:hover { background: rgba(26,26,24,0.9); }
.glightbox-container .gcontainer { background: rgba(26,26,24,0.95); }

/* Cursore pointer sulle immagini della gallery */
.premium-gallery-content .gallery-item img,
.premium-gallery-content a img {
  cursor: pointer;
  transition: opacity 0.18s ease;
}
.premium-gallery-content .gallery-item img:hover,
.premium-gallery-content a img:hover {
  opacity: 0.88;
}

/* ============================================================
   NUOVA HOMEPAGE — Griglia stile Guida Michelin
   Hero compatto + filtri + grid card + load more
   ============================================================ */

/* --- HP HERO --- */
.hp-hero {
  min-height: 52vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}
.hp-hero-inner {
  padding: 100px 0 60px;
  max-width: 680px;
}
.hp-hero-kicker {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.60);
  font-family: "Inter", Arial, sans-serif;
}
.hp-hero-title {
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -0.03em;
  font-family: "Playfair Display", Georgia, serif;
}
.hp-hero-subtitle {
  margin: 0 0 28px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.78);
  font-family: "Inter", Arial, sans-serif;
  max-width: 520px;
}
.hp-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.hp-hero-btn-primary {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 28px;
  background: #fff;
  color: var(--uvvc-text);
  border-radius: var(--uvvc-radius-pill);
  font-family: "Inter", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
}
.hp-hero-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  color: var(--uvvc-text);
}
.hp-hero-btn-secondary {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 28px;
  background: rgba(255,255,255,0.10);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: var(--uvvc-radius-pill);
  font-family: "Inter", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  backdrop-filter: blur(6px);
  transition: background 0.18s, transform 0.18s;
}
.hp-hero-btn-secondary:hover {
  background: rgba(255,255,255,0.18);
  transform: translateY(-1px);
  color: #fff;
}
.hp-hero-stats {
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  font-family: "Inter", Arial, sans-serif;
}
.hp-hero-stats strong {
  color: rgba(255,255,255,0.90);
  font-weight: 700;
}
.hp-hero-stats-sep {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255,255,255,0.30);
}

/* --- HP FILTRI --- */
.hp-filters-bar {
  margin: 32px 0 24px;
  padding: 18px 22px;
  background: #fff;
  border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl);
  box-shadow: var(--uvvc-shadow);
}
.hp-filters-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.hp-filter-search-wrap {
  flex: 1 1 240px;
  position: relative;
}
.hp-filter-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--uvvc-text-muted);
  pointer-events: none;
}
.hp-filter-search {
  width: 100%;
  min-height: 44px;
  padding: 0 14px 0 46px;
  border: 1px solid var(--uvvc-line-mid);
  border-radius: var(--uvvc-radius-lg);
  background: var(--uvvc-bg);
  font-size: 14px;
  font-family: "Inter", Arial, sans-serif;
  color: var(--uvvc-text);
  transition: border-color 0.18s, box-shadow 0.18s;
  box-sizing: border-box;
}
.hp-filter-search:focus {
  outline: none;
  border-color: var(--uvvc-text);
  box-shadow: 0 0 0 3px rgba(26,26,24,0.06);
}
.hp-filter-select-wrap {
  flex: 0 0 auto;
}
.hp-filter-select {
  min-height: 44px;
  padding: 0 32px 0 14px;
  border: 1px solid var(--uvvc-line-mid);
  border-radius: var(--uvvc-radius-lg);
  background: var(--uvvc-bg);
  font-size: 13.5px;
  font-family: "Inter", Arial, sans-serif;
  color: var(--uvvc-text);
  cursor: pointer;
  transition: border-color 0.18s;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239A978E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.hp-filter-select:focus {
  outline: none;
  border-color: var(--uvvc-text);
}
.hp-filter-reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--uvvc-line-mid);
  border-radius: var(--uvvc-radius-lg);
  background: var(--uvvc-bg);
  color: #8B5E3C;
  cursor: pointer;
  transition: all 0.18s;
  flex-shrink: 0;
}
.hp-filter-reset svg { stroke: #8B5E3C; stroke-width: 2.8; }
.hp-filter-reset:hover {
  background: rgba(139,94,60,0.10);
  color: #6B3F18;
  border-color: var(--uvvc-line-mid);
}
.hp-filter-reset:hover svg { stroke: #6B3F18; }

/* Tipologie pills */
.hp-tipologie-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-top: 14px;
  margin-top: 14px;
  border-top: 1px solid var(--uvvc-line);
  scrollbar-width: none;
}
.hp-tipologie-row::-webkit-scrollbar { display: none; }
.hp-tipologia {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--uvvc-line-mid);
  background: #fff;
  color: var(--uvvc-text);
  font-family: "Inter", Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.18s;
}
.hp-tipologia:hover {
  border-color: var(--uvvc-text);
  background: var(--uvvc-surface);
}
.hp-tipologia.is-active {
  background: var(--uvvc-text);
  color: #fff;
  border-color: var(--uvvc-text);
}

/* --- HP RESULTS HEADER --- */
.hp-results-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 20px;
  gap: 12px;
}
.hp-results-title {
  margin: 0;
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 700;
  color: var(--uvvc-text);
}
.hp-results-count {
  font-size: 13px;
  font-weight: 600;
  color: var(--uvvc-text-muted);
  font-family: "Inter", Arial, sans-serif;
  white-space: nowrap;
}

/* --- HP CARD GRID --- Stile Guida Michelin */
.hp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}

.hp-card {
  background: #fff;
  border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl);
  overflow: hidden;
  box-shadow: var(--uvvc-shadow-sm);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.hp-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--uvvc-shadow-hover);
  border-color: var(--uvvc-line-mid);
}
.hp-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* Immagine card */
.hp-card-image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: var(--uvvc-surface-2);
}
.hp-card-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 62%;
  transition: transform 0.4s ease;
}
.hp-card:hover .hp-card-image {
  transform: scale(1.04);
}
.hp-card-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 40px;
  background: var(--uvvc-surface);
}
.hp-card-rank {
  position: absolute;
  top: 10px;
  left: 10px;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(26,26,24,0.76);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  font-family: "Inter", Arial, sans-serif;
  backdrop-filter: blur(8px);
}

/* Body card */
.hp-card-body {
  padding: 16px 18px 18px;
  display: grid;
  gap: 8px;
}
.hp-card-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.hp-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--uvvc-accent);
  font-family: "Inter", Arial, sans-serif;
}
.hp-card-zone {
  font-size: 12px;
  color: var(--uvvc-text-muted);
  font-family: "Inter", Arial, sans-serif;
}
.hp-card-zone::before {
  content: "·";
  margin-right: 6px;
  color: var(--uvvc-line-mid);
}
.hp-card-title {
  margin: 0;
  font-size: clamp(17px, 1.5vw, 22px);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.015em;
  color: var(--uvvc-text);
}
.hp-card-address {
  margin: 0;
  font-size: 12.5px;
  color: var(--uvvc-text-muted);
  line-height: 1.45;
}
.hp-card-excerpt {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--uvvc-text-soft);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hp-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 10px;
  margin-top: 4px;
  border-top: 1px solid var(--uvvc-line);
}
.hp-card-rating {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.hp-card-rating .pigne-rating { gap: 2px; }
.hp-card-rating .pigna-icon { width: 16px; height: 20px; flex: 0 0 16px; }
.hp-card-rating strong {
  font-size: 13px;
  font-weight: 700;
  color: var(--uvvc-text);
  font-family: "Inter", Arial, sans-serif;
}
.hp-card-price {
  display: inline-flex;
  gap: 2px;
  font-size: 12px;
  font-family: "Inter", Arial, sans-serif;
}
.hp-price-dot {
  color: var(--uvvc-line-mid);
  font-weight: 600;
}
.hp-price-dot.is-active {
  color: var(--uvvc-primary);
}

/* --- NO RESULTS --- */
.hp-no-results {
  text-align: center;
  padding: 48px 24px;
  background: #fff;
  border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl);
  margin-bottom: 40px;
}
.hp-no-results-icon {
  font-size: 36px;
  margin-bottom: 12px;
  display: block;
}
.hp-no-results h3 {
  margin: 0 0 8px;
  color: var(--uvvc-text);
}
.hp-no-results p {
  color: var(--uvvc-text-soft);
  margin: 0 0 20px;
}

/* --- LOAD MORE --- */
.hp-load-more-wrap {
  text-align: center;
  padding: 8px 0 56px;
}
.hp-load-more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 36px;
  border: 2px solid var(--uvvc-text);
  border-radius: var(--uvvc-radius-pill);
  background: transparent;
  color: var(--uvvc-text);
  font-family: "Inter", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, transform 0.18s;
}
.hp-load-more-btn:hover {
  background: var(--uvvc-text);
  color: #fff;
  transform: translateY(-1px);
}

/* --- MAPPA PAGE --- */
.mappa-page .mappa-page-hero {
  padding: 32px 0 8px;
  text-align: center;
}
.mappa-page .mappa-page-hero h1 {
  margin: 0 0 8px;
}
.mappa-page .mappa-page-subtitle {
  color: var(--uvvc-text-soft);
  max-width: 560px;
  margin: 0 auto 20px;
  font-size: 15px;
}

/* ============================================================
   HOMEPAGE GRID — RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .hp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}

@media (max-width: 767px) {
  /* Hero mobile */
  .hp-hero {
    min-height: 50vh;
    align-items: flex-end;
  }
  .hp-hero-inner {
    padding: 60px 0 36px;
  }
  .hp-hero-title {
    font-size: clamp(26px, 7vw, 38px);
  }
  .hp-hero-subtitle {
    font-size: 14.5px;
  }
  .hp-hero-actions {
    flex-direction: column;
    gap: 10px;
  }
  .hp-hero-btn-primary,
  .hp-hero-btn-secondary {
    width: 100%;
    justify-content: center;
    min-height: 50px;
    font-size: 15px;
  }
  .hp-hero-stats {
    font-size: 12px;
    gap: 12px;
    flex-wrap: wrap;
  }

  /* Filtri mobile */
  .hp-filters-bar {
    margin: 20px 0 18px;
    padding: 14px 16px;
    border-radius: var(--uvvc-radius-lg);
  }
  .hp-filters-row {
    flex-direction: column;
    gap: 8px;
  }
  .hp-filter-search-wrap {
    flex: 1 1 100%;
  }
  .hp-filter-search,
  .hp-filter-select {
    min-height: 48px;
    font-size: 15px;
    width: 100%;
  }
  .hp-filter-select-wrap {
    width: 100%;
  }
  .hp-filter-reset {
    width: 100%;
    height: 44px;
  }

  /* Grid mobile: 1 colonna */
  .hp-grid {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 28px;
  }

  .hp-card-body {
    padding: 14px 16px 16px;
  }
  .hp-card-title {
    font-size: 18px;
  }

  /* Results header */
  .hp-results-header {
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
  }
  .hp-results-title {
    font-size: 22px;
  }

  /* Load more */
  .hp-load-more-wrap {
    padding: 4px 0 40px;
  }
  .hp-load-more-btn {
    width: 100%;
    min-height: 52px;
    font-size: 15px;
  }

  /* No results mobile */
  .hp-no-results {
    padding: 32px 18px;
    border-radius: var(--uvvc-radius-lg);
  }

  /* Card hover disabilitato su touch */
  .hp-card:hover {
    transform: none;
    box-shadow: var(--uvvc-shadow-sm);
  }

  /* Mappa page mobile */
  .mappa-page .mappa-page-hero {
    padding: 24px 0 4px;
    text-align: left;
  }
  .mappa-page .mappa-page-subtitle {
    margin-left: 0;
    text-align: left;
  }
}

/* Tablet: 2 colonne grid */
@media (min-width: 768px) and (max-width: 1024px) {
  .hp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hp-card-image-wrap {
    aspect-ratio: 4 / 3;
  }
}

/* Desktop large: 3 colonne con card proporzionate */
@media (min-width: 1025px) {
  .hp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }
}

/* ============================================================
   FIX HOMEPAGE — Header, larghezza, contenitore Astra
   ============================================================ */

/* L'header è sticky, il contenuto deve partire SOTTO di esso. */
body.home #page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Il hero compie il suo bleed, poi il contenuto sotto è nel flusso normale */
.uvvc-homepage-new .hp-hero {
  margin-top: 0;
}

/* Astra page-builder-template già rimuove il max-width del container.
   Qui ci assicuriamo che non ci siano residui di padding/border/shadow. */
body.home .ast-container,
body.home .site-content > .ast-container,
body.home #primary,
body.home .entry-content,
body.home article,
body.home .ast-article-single,
body.home .ast-article-post {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* La homepage main */
.uvvc-homepage-new {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Il shell dentro la homepage */
.uvvc-homepage-new > .pignamele-shell {
  width: 100%;
  max-width: 1380px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .uvvc-homepage-new > .pignamele-shell {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (min-width: 1200px) {
  .uvvc-homepage-new > .pignamele-shell {
    padding-left: 40px;
    padding-right: 40px;
  }
}

/* Griglia hp-grid: assicura che non esca dal contenitore */
.hp-grid {
  box-sizing: border-box;
  overflow: hidden;
}

/* Fix: Pagina mappa padding top per l'header fisso */
body.page-template-page-mappa #page,
.mappa-page {
  padding-top: 0;
}

/* ============================================================
   FIX: "Pignamele" nel site-title — gestito via JS
   Il JS in functions.php svuota il testo e inserisce il nome
   corretto. Qui ci assicuriamo solo che il site-title resti
   sempre su una riga orizzontale.
   ============================================================ */
.site-title,
.ast-site-title-wrap {
  display: inline-flex !important;
  align-items: center;
  white-space: nowrap;
  overflow: hidden;
}
.site-title a,
.ast-site-title-wrap a,
.site-brand-text {
  font-family: "Playfair Display", Georgia, serif !important;
  font-size: clamp(18px, 1.6vw, 28px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1 !important;
  color: var(--uvvc-text) !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
}
@media (max-width: 921px) {
  .site-title a,
  .ast-site-title-wrap a,
  .site-brand-text {
    font-size: 18px !important;
  }
}

/* ============================================================
   FIX: Chi Siamo — mobile immagini + card testo integrazione
   ============================================================ */
@media (max-width: 767px) {
  /* Hero Chi Siamo: immagine più corta con bordi arrotondati morbidi */
  .about-premium-hero-media,
  .about-premium-detail-media {
    min-height: 200px;
    max-height: 260px;
    border-radius: var(--uvvc-radius-lg);
    margin-bottom: -12px; /* sovrapponi leggermente alla card sotto */
    position: relative;
    z-index: 1;
  }
  /* Card testo: bordo arrotondato sopra si fonde con l'immagine */
  .about-premium-hero-text,
  .about-premium-story-card {
    padding: 28px 20px 22px;
    border-radius: 0 0 var(--uvvc-radius-lg) var(--uvvc-radius-lg);
    position: relative;
    z-index: 2;
    margin-top: 0;
  }
  /* Grid verticale senza gap per fusione visiva */
  .about-premium-hero-grid,
  .about-premium-story-grid {
    gap: 0 !important;
  }
  /* Story: immagine a sinistra diventa sopra */
  .about-premium-story-grid {
    display: flex !important;
    flex-direction: column !important;
  }
  /* Value cards */
  .about-value-card {
    padding: 18px 18px;
    border-radius: var(--uvvc-radius-lg);
  }
  .about-values-grid.about-values-grid-small {
    gap: 12px;
  }
  /* Riduci margini sezioni */
  .about-premium-hero,
  .about-premium-story,
  .about-premium-values {
    margin-bottom: 20px;
  }
  .about-premium-page {
    padding-top: 16px;
  }
}

/* ============================================================
   FIX: Categorie — mobile immagini + card hero
   ============================================================ */
@media (max-width: 767px) {
  .category-hero-premium {
    margin: 20px 0 16px;
  }
  .category-hero-premium-grid {
    gap: 0 !important;
  }
  /* Immagine categoria */
  .category-hero-premium-media {
    min-height: 180px;
    max-height: 220px;
    border-radius: var(--uvvc-radius-lg) var(--uvvc-radius-lg) 0 0;
    overflow: hidden;
  }
  .category-hero-premium-media img {
    height: 220px;
    object-fit: cover;
  }
  /* Card testo sotto l'immagine - fusione visiva */
  .category-hero-premium-text {
    padding: 22px 20px;
    border-radius: 0 0 var(--uvvc-radius-lg) var(--uvvc-radius-lg);
    border-top: none;
  }
  .category-hero-premium-text h1 {
    font-size: clamp(22px, 6vw, 30px);
  }
  .category-hero-premium-text p {
    font-size: 14px;
    line-height: 1.65;
  }
  .category-hero-stats {
    margin-top: 14px;
    gap: 8px;
  }
  .category-hero-stat {
    font-size: 12px;
    padding: 6px 12px;
  }
  /* Card locali in griglia categoria */
  .locale-card-category-premium .locale-card-image {
    height: 160px;
  }
  .locale-card-category-premium .locale-card-content {
    padding: 14px 16px;
  }
  .locale-card-category-premium .locale-card-title {
    font-size: 18px;
  }
  .locale-card-category-premium .locale-card-address {
    font-size: 12px;
    margin-bottom: 8px;
  }
  .locali-grid-category-premium {
    gap: 12px;
  }
}


/* ============================================================
   HOME ORIGINALE — fix full width definitivo
   ============================================================ */
html body.home.uvvc-home-force-fullwidth,
html body.home.uvvc-home-force-fullwidth #page,
html body.home.uvvc-home-force-fullwidth #content,
html body.home.uvvc-home-force-fullwidth .site-content {
  width: 100% !important;
  max-width: 100% !important;
}

html body.home.uvvc-home-force-fullwidth .site-content > .ast-container {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

html body.home.uvvc-home-force-fullwidth .site-content > .ast-container > main.homepage-directory,
html body.home.uvvc-home-force-fullwidth main.homepage-directory {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body.home.uvvc-home-force-fullwidth .homepage-directory > .pignamele-shell,
html body.home.uvvc-home-force-fullwidth .homepage-directory .hp-hero-inner {
  width: min(1380px, calc(100vw - 48px)) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html body.logged-in.home.uvvc-home-force-fullwidth .site-content > .ast-container,
html body.logged-in.home.uvvc-home-force-fullwidth main.homepage-directory {
  width: 100% !important;
  max-width: 100% !important;
}

/* ============================================================
   EURO RATING (replaces pigne for prezzo)
   ============================================================ */
.euro-rating { display: inline-flex; align-items: center; gap: 3px; }
.euro-icon {
  font-size: 15px; font-weight: 700; font-family: "Inter", Arial, sans-serif;
  line-height: 1;
}
.euro-icon.is-active { color: var(--uvvc-primary, #8B5E3C); }
.euro-icon.is-inactive { color: rgba(91,68,46,0.18); }
.rating-pigne .euro-rating { gap: 2px; }
.rating-pigne .euro-icon { font-size: 14px; }

/* ============================================================
   DOG FRIENDLY BADGE
   ============================================================ */
.uvvc-dog-friendly-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 16px; line-height: 1;
}
.uvvc-dog-no { color: rgba(0,0,0,0.35); font-size: 13px; }
.hp-card-dog { font-size: 15px; line-height: 1; }
.hp-card-footer-right { display: inline-flex; align-items: center; gap: 8px; }
.rating-row-dog { border-top: 1px solid var(--uvvc-line, #e8e5e0); padding-top: 10px; margin-top: 4px; }
.rating-value-dog { margin-left: auto; }

/* Single hero dog badge */
.single-hero-rating-strip .uvvc-dog-friendly-badge {
  font-size: 22px; display: inline-flex; align-items: center;
  background: rgba(255,255,255,0.15); border-radius: 8px; padding: 4px 10px;
}

/* ============================================================
   DOG FRIENDLY TOGGLE (form)
   ============================================================ */
.uvvc-dog-friendly-field { margin-top: 8px; }
.uvvc-toggle-wrap { display: flex; align-items: center; gap: 12px; }
.uvvc-toggle {
  position: relative; display: inline-flex; align-items: center;
  cursor: pointer; user-select: none; gap: 10px;
}
.uvvc-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.uvvc-toggle-slider {
  width: 52px; height: 28px; border-radius: 14px;
  background: #ccc; position: relative; transition: background 0.25s;
  flex-shrink: 0;
}
.uvvc-toggle-slider::after {
  content: ''; position: absolute; top: 3px; left: 3px;
  width: 22px; height: 22px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transition: transform 0.25s;
}
.uvvc-toggle input:checked + .uvvc-toggle-slider { background: var(--uvvc-primary, #8B5E3C); }
.uvvc-toggle input:checked + .uvvc-toggle-slider::after { transform: translateX(24px); }
.uvvc-toggle-label-on, .uvvc-toggle-label-off {
  font-size: 14px; font-weight: 600; font-family: "Inter", Arial, sans-serif;
}
.uvvc-toggle-label-on { display: none; color: var(--uvvc-primary, #8B5E3C); }
.uvvc-toggle-label-off { display: inline; color: #999; }
.uvvc-toggle input:checked ~ .uvvc-toggle-label-on { display: inline; }
.uvvc-toggle input:checked ~ .uvvc-toggle-label-off { display: none; }

/* ============================================================
   STRUCTURED FOOTER
   ============================================================ */
.uvvc-footer-structured {
  background: var(--uvvc-text, #1a1814); color: rgba(255,255,255,0.70);
  padding: 0; width: 100%;
}
.uvvc-footer-structured-inner {
  display: flex; flex-wrap: wrap; gap: 16px 40px;
  max-width: 1200px; margin: 0 auto;
  padding: 20px 24px 12px;
  align-items: flex-start;
}
.uvvc-footer-col { display: flex; flex-direction: column; gap: 3px; min-width: 140px; }
.uvvc-footer-col-title {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.08em; color: rgba(255,255,255,0.45);
  font-family: "Inter", Arial, sans-serif; margin-bottom: 0;
}
.uvvc-footer-col-brand { flex: 1 1 200px; }
.uvvc-footer-brand {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 16px; font-weight: 700; color: #fff;
}
.uvvc-footer-tagline { font-size: 12px; color: rgba(255,255,255,0.50); }
.uvvc-footer-email {
  color: rgba(255,255,255,0.70) !important; font-size: 13px;
  text-decoration: none; transition: color 0.18s;
}
.uvvc-footer-email:hover { color: #fff !important; }
.uvvc-footer-legal-link {
  color: rgba(255,255,255,0.70) !important; font-size: 13px;
  text-decoration: none; transition: color 0.18s;
}
.uvvc-footer-legal-link:hover { color: #fff !important; }
.uvvc-footer-col-social .uvvc-footer-social {
  padding: 0; justify-content: flex-start;
}
.uvvc-footer-bottom {
  text-align: center; font-size: 11px;
  color: rgba(255,255,255,0.35);
  padding: 10px 24px 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
  max-width: 1200px; margin: 0 auto;
}

@media (max-width: 600px) {
  .uvvc-footer-structured-inner { flex-direction: column; gap: 10px; padding: 14px 16px 8px; }
  .uvvc-footer-col { min-width: auto; gap: 2px; }
  .uvvc-footer-bottom { padding: 8px 16px 10px; }
  .uvvc-footer-structured { padding: 0; }
  .uvvc-footer-brand { font-size: 15px; }
}

/* ============================================================
   PRIVACY POLICY PAGE
   ============================================================ */
.privacy-policy-page {
  padding: 0 0 48px;
}
.privacy-hero {
  padding: 48px 0 32px;
  border-bottom: 1px solid var(--uvvc-line, #e8e5e0);
  margin-bottom: 32px;
}
.privacy-hero h1 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 32px; font-weight: 700;
  color: var(--uvvc-text, #1a1814);
  margin: 0 0 6px;
}
.privacy-subtitle {
  font-size: 15px; color: var(--uvvc-text-muted, #7a7265);
  margin: 0 0 4px;
}
.privacy-updated {
  font-size: 13px; color: var(--uvvc-text-muted, #7a7265);
  margin: 0;
}
.privacy-content {
  max-width: 760px;
}
.privacy-content h2 {
  font-family: "Inter", Arial, sans-serif;
  font-size: 18px; font-weight: 700;
  color: var(--uvvc-text, #1a1814);
  margin: 28px 0 10px;
}
.privacy-content p {
  font-size: 15px; line-height: 1.7;
  color: var(--uvvc-text, #1a1814);
  margin: 0 0 12px;
}
.privacy-content ul {
  margin: 0 0 16px 20px; padding: 0;
}
.privacy-content li {
  font-size: 15px; line-height: 1.7;
  color: var(--uvvc-text, #1a1814);
  margin-bottom: 4px;
}
.privacy-content a {
  color: var(--uvvc-primary, #8B5E3C);
  text-decoration: none; font-weight: 600;
}
.privacy-content a:hover { text-decoration: underline; }
.privacy-contact-email {
  font-size: 16px; font-weight: 600;
}
@media (max-width: 600px) {
  .privacy-hero { padding: 32px 0 20px; margin-bottom: 24px; }
  .privacy-hero h1 { font-size: 26px; }
  .privacy-content h2 { font-size: 16px; margin: 22px 0 8px; }
}

/* ============================================================
   LOGIN PAGE — frontend custom
   ============================================================ */
.uvvc-login-page {
  min-height: calc(100vh - 160px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 0;
}
.uvvc-login-box {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--uvvc-line);
  border-radius: var(--uvvc-radius-xl);
  padding: 40px 36px 36px;
  box-shadow: var(--uvvc-shadow);
}
.uvvc-login-header {
  text-align: center;
  margin-bottom: 28px;
}
.uvvc-login-header h1 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 30px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--uvvc-text);
}
.uvvc-login-header p {
  font-size: 14px;
  color: var(--uvvc-text-soft);
  margin: 0;
  line-height: 1.5;
}
.uvvc-login-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--uvvc-text-soft);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.uvvc-login-input {
  display: block;
  width: 100%;
  padding: 12px 14px;
  font-size: 15px;
  border: 1px solid var(--uvvc-line-mid);
  border-radius: var(--uvvc-radius-md);
  background: var(--uvvc-surface);
  color: var(--uvvc-text);
  transition: border-color 0.2s, box-shadow 0.2s;
  margin-bottom: 18px;
  box-sizing: border-box;
}
.uvvc-login-input:focus {
  outline: none;
  border-color: var(--uvvc-primary);
  box-shadow: 0 0 0 3px rgba(74, 103, 65, 0.12);
}
.uvvc-login-btn {
  width: 100%;
  margin-top: 6px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.uvvc-login-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.uvvc-login-message {
  padding: 12px 16px;
  border-radius: var(--uvvc-radius-md);
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 18px;
  text-align: center;
}
.uvvc-login-error {
  background: #FFF0EE;
  color: #C0392B;
  border: 1px solid rgba(192, 57, 43, 0.15);
}
.uvvc-login-success {
  background: #F0FFF4;
  color: #27AE60;
  border: 1px solid rgba(39, 174, 96, 0.15);
}
.uvvc-login-footer-note {
  text-align: center;
  font-size: 12px;
  color: var(--uvvc-text-muted);
  margin: 22px 0 0;
}
@media (max-width: 767px) {
  .uvvc-login-page {
    padding: 32px 0;
    align-items: flex-start;
  }
  .uvvc-login-box {
    padding: 28px 22px 24px;
    border-radius: var(--uvvc-radius-lg);
  }
  .uvvc-login-header h1 {
    font-size: 24px;
  }
}

/* Logout link nel menu */
.menu-item-uvvc-logout a {
  color: var(--uvvc-text-muted) !important;
  font-size: 13px;
}
.menu-item-uvvc-logout a:hover {
  color: var(--uvvc-accent) !important;
}

/* Classifica — touch-friendly handle su mobile */
@media (hover: none) and (pointer: coarse) {
  .classifica-handle {
    font-size: 20px;
    min-width: 40px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    touch-action: none;
  }
  .classifica-item {
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
  }
  .classifica-sortable .ui-sortable-helper {
    background: #fff !important;
    box-shadow: var(--uvvc-shadow-lg) !important;
    z-index: 999 !important;
  }
}

/* ============================================================
   CLASSIFICHE — Arrow buttons (up/down) per mobile
   ============================================================ */
.classifica-arrows {
  display: none;
  flex-direction: column;
  gap: 2px;
}
.classifica-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 26px;
  border: 1px solid var(--uvvc-line-mid);
  border-radius: 6px;
  background: #fff;
  color: var(--uvvc-text-soft);
  font-size: 11px;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.classifica-arrow:active {
  background: var(--uvvc-primary);
  color: #fff;
  border-color: var(--uvvc-primary);
}

/* Mobile: mostra frecce, nascondi handle drag */
@media (max-width: 921px) {
  .classifica-arrows {
    display: flex;
  }
  .classifica-handle {
    display: none;
  }
}

/* Desktop: mostra handle, nascondi frecce */
@media (min-width: 922px) {
  .classifica-arrows {
    display: none;
  }
  .classifica-handle {
    display: inline-flex;
  }
}
