/* ================================================================
   Panettando e Fiabando — Foglio di stile principale
   Palette: #fdf8f0 (crema) · #d4a520 (oro) · #8b5e3c (marrone)
            #67111b (cremisi scuro) · #0a0d12 (nero blu) · #1a0f05 (nero caldo)
   Font: Cormorant Garamond (serif elegante) + Nunito (sans leggibile)
================================================================ */

/* ── Reset base ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; padding: 0;
  font-family: 'Nunito', sans-serif;
  background: #fdf8f0;
  color: #1a0f05;
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }
.wp-site-blocks { padding: 0 !important; }
.entry-content { margin: 0; padding: 0; }

/* ── Animazioni keyframe ── */
@keyframes fireflyDrift {
  0%   { transform: translate(0,0);         opacity: .08; }
  25%  { transform: translate(14px,-22px);  opacity: .85; }
  55%  { transform: translate(-9px,-40px);  opacity: .45; }
  80%  { transform: translate(16px,-26px);  opacity: .9; }
  100% { transform: translate(0,0);         opacity: .08; }
}
@keyframes starTwinkle {
  0%,100% { opacity: .12; transform: scale(.7); }
  50%      { opacity: .85; transform: scale(1.3); }
}
@keyframes charFloat {
  0%,100% { transform: translateY(0) rotate(-1.5deg); }
  50%      { transform: translateY(-22px) rotate(1.5deg); }
}
@keyframes shimmerGold {
  0%   { background-position: -300% center; }
  100% { background-position:  300% center; }
}
@keyframes scrollBounce {
  0%,100% { transform: translateX(-50%) translateY(0);    opacity: .4; }
  50%      { transform: translateX(-50%) translateY(10px); opacity: .9; }
}
@keyframes pulseOrb {
  0%,100% { transform: scale(1);   opacity: .55; }
  50%      { transform: scale(1.1); opacity: 1; }
}
@keyframes timelineDot {
  0%,100% { box-shadow: 0 0 0 0   rgba(212,165,32,.5); }
  50%      { box-shadow: 0 0 0 8px rgba(212,165,32,0); }
}
@keyframes gentleSway {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50%      { transform: rotate(2deg)  translateY(-6px); }
}
@keyframes lockShake {
  0%,100% { transform: translateX(0); }
  20%      { transform: translateX(-6px) rotate(-3deg); }
  40%      { transform: translateX(6px) rotate(3deg); }
  60%      { transform: translateX(-4px) rotate(-2deg); }
  80%      { transform: translateX(4px) rotate(2deg); }
}
@keyframes chainPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(212,165,32,.6); }
  50%      { box-shadow: 0 0 0 16px rgba(212,165,32,0); }
}

/* ══════════════════════════════════════════
   NAVBAR
══════════════════════════════════════════ */
.paf-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  padding: 1rem 2.5rem;
  display: flex; align-items: center; justify-content: space-between;
  background: transparent;
  transition: background .5s ease, box-shadow .5s ease;
}
.paf-nav.scrolled {
  background: rgba(103,17,27,.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 1px 25px rgba(0,0,0,.4);
}
.paf-nav-logo { display: flex; align-items: center; gap: .875rem; }
.paf-nav-logo-icon {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg,#d4a520 0%,#8b5e3c 100%);
  display: flex; align-items: center; justify-content: center;
}
.paf-nav-logo-img {
  height: 48px; width: auto; display: block; object-fit: contain;
}
.paf-footer-brand-logo-img {
  height: 56px; width: auto; display: block; object-fit: contain;
  margin-bottom: .5rem;
}
.paf-nav-logo-text-main {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem; font-weight: 700; color: #fdf8f0;
  line-height: 1.1; letter-spacing: .02em;
}
.paf-nav-logo-text-sub {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem; font-style: italic; color: #d4a520;
  line-height: 1.1; letter-spacing: .04em;
}
.paf-nav-links {
  display: flex; align-items: center; gap: 2rem;
}
.paf-nav-links a {
  font-family: 'Nunito', sans-serif;
  font-size: 1rem; font-weight: 600;
  color: rgba(253,248,240,.85); letter-spacing: .04em;
  transition: color .25s;
}
.paf-nav-links a:hover { color: #d4a520; }
.paf-nav-cta {
  font-family: 'Nunito', sans-serif;
  font-size: 1rem; font-weight: 700; color: #1a0f05 !important;
  background: linear-gradient(135deg,#d4a520,#c9a227);
  padding: .55rem 1.4rem; border-radius: 100px;
  letter-spacing: .04em;
  box-shadow: 0 3px 15px rgba(212,165,32,.25);
  transition: transform .25s, box-shadow .25s;
}
.paf-nav-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(212,165,32,.45);
}
/* bottone biglietti navbar */
.paf-nav-tickets {
  font-family: 'Nunito', sans-serif;
  font-size: .96rem; font-weight: 700; color: #fdf8f0 !important;
  background: rgba(212,165,32,.15);
  border: 1.5px solid rgba(212,165,32,.5);
  padding: .55rem 1.4rem; border-radius: 100px;
  letter-spacing: .04em;
  transition: background .25s, border-color .25s;
}
.paf-nav-tickets:hover {
  background: rgba(212,165,32,.3);
  border-color: #d4a520;
}
.paf-nav-burger {
  display: none; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  background: rgba(253,248,240,.08);
  border: 1.5px solid rgba(253,248,240,.25);
  border-radius: 10px; cursor: pointer; color: #fdf8f0; font-size: 1.3rem;
}

/* Menu mobile */
.paf-mobile-menu {
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(10,13,18,.98);
  display: none; flex-direction: column; align-items: center; justify-content: center; gap: 1.8rem;
}
.paf-mobile-menu.open { display: flex; }
.paf-mobile-close {
  position: absolute; top: 1.25rem; right: 1.25rem;
  width: 44px; height: 44px;
  background: rgba(253,248,240,.08);
  border: 1.5px solid rgba(253,248,240,.2);
  border-radius: 50%; cursor: pointer; color: #fdf8f0; font-size: 1.2rem;
  display: flex; align-items: center; justify-content: center;
}
.paf-mobile-menu-sub {
  font-family: 'Cormorant Garamond', serif;
  font-size: .9rem; font-style: italic; color: #d4a520;
  letter-spacing: .1em; margin-bottom: .5rem;
}
.paf-mobile-menu a {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4rem; font-weight: 600; color: #fdf8f0;
  transition: color .2s;
}
.paf-mobile-menu a:hover { color: #d4a520; }
.paf-mobile-cta {
  display: inline-block;
  font-family: 'Nunito', sans-serif; font-size: 1.05rem; font-weight: 700;
  color: #1a0f05 !important;
  background: linear-gradient(135deg,#d4a520,#c9a227);
  padding: .85rem 2.5rem; border-radius: 100px; margin-top: .75rem;
}

/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
.paf-hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center;
  background: #0a0d12; overflow: hidden;
}
.paf-hero-bg {
  position: absolute; inset: 0;
  background: url('../../../uploads/panettando/libro.png') center 25%/cover no-repeat;
  opacity: .2;
}
.paf-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(10,13,18,.97) 0%, rgba(182,60,66,.78) 45%, rgba(10,13,18,.94) 100%);
}
.paf-hero-fade {
  position: absolute; bottom: 0; left: 0; right: 0; height: 180px;
  background: linear-gradient(to top, #0a0d12, transparent);
}
.paf-hero-inner {
  position: relative; z-index: 2; width: 100%; max-width: 1360px;
  margin: 0 auto; padding: 9rem 2.5rem 5rem;
  display: flex; align-items: center; gap: 4rem;
}
.paf-hero-text { flex: 1; min-width: 0; }
.paf-hero-badge {
  display: inline-flex; align-items: center; gap: .6rem;
  background: rgba(212,165,32,.1); border: 1px solid rgba(212,165,32,.3);
  border-radius: 100px; padding: .45rem 1.2rem; margin-bottom: 2rem;
}
.paf-hero-badge-dot {
  width: 6px; height: 6px; border-radius: 50%; background: #d4a520;
  animation: pulseOrb 2s ease-in-out infinite; flex-shrink: 0;
}
.paf-hero-badge span {
  font-family: 'Nunito', sans-serif; font-size: .88rem; font-weight: 700;
  color: #d4a520; letter-spacing: .18em; text-transform: uppercase;
}
.paf-hero-h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3.8rem,7.5vw,7rem); font-weight: 700;
  line-height: 1; color: #fdf8f0; margin: 0 0 .5rem;
  text-shadow: 0 4px 40px rgba(0,0,0,.5);
}
.paf-hero-h1 em {
  font-style: italic;
  background: linear-gradient(90deg,#c9a227,#f0c84a,#d4a520,#f5d060,#c9a227);
  background-size: 300% auto;
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmerGold 5s linear infinite;
}
.paf-hero-sub {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.3rem,2.5vw,1.85rem); font-style: italic;
  color: rgba(253,248,240,.7); margin: 0 0 .5rem; line-height: 1.4;
}
.paf-hero-divider {
  display: flex; align-items: center; gap: .75rem; margin-bottom: 3rem;
}
.paf-hero-divider-line { height: 1px; width: 40px; background: rgba(212,165,32,.35); }
.paf-hero-divider span {
  font-family: 'Nunito', sans-serif; font-size: .78rem; font-weight: 700;
  color: rgba(212,165,32,.65); letter-spacing: .2em; text-transform: uppercase;
}
.paf-hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.paf-btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: #1a0f05;
  background: linear-gradient(135deg,#d4a520 0%,#c9a227 100%);
  padding: .9rem 2.2rem; border-radius: 100px; letter-spacing: .03em;
  box-shadow: 0 4px 25px rgba(212,165,32,.3);
  transition: transform .3s, box-shadow .3s;
}
.paf-btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(212,165,32,.5);
  color: #1a0f05;
}
.paf-btn-secondary {
  display: inline-flex; align-items: center;
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 600;
  color: #fdf8f0;
  background: rgba(253,248,240,.07);
  border: 1.5px solid rgba(253,248,240,.2);
  padding: .9rem 2.2rem; border-radius: 100px; letter-spacing: .03em;
  transition: background .3s, border-color .3s;
}
.paf-btn-secondary:hover {
  background: rgba(253,248,240,.14);
  border-color: rgba(253,248,240,.4);
  color: #fdf8f0;
}
.paf-btn-tickets {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: #1a0f05;
  background: linear-gradient(135deg,#f0c84a,#d4a520);
  padding: .9rem 2.2rem; border-radius: 100px; letter-spacing: .03em;
  box-shadow: 0 4px 25px rgba(212,165,32,.4);
  transition: transform .3s, box-shadow .3s;
}
.paf-btn-tickets:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(212,165,32,.6);
  color: #1a0f05;
}
/* Pinocchio frame */
.paf-hero-char {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: clamp(300px,34vw,500px);
}
.paf-hero-char-card {
  position: relative;
  background: #fdf8f0; border-radius: 24px; padding: 2.75rem 2.25rem;
  box-shadow: 0 30px 80px rgba(0,0,0,.65), 0 0 0 1px rgba(212,165,32,.18);
  animation: charFloat 5.5s ease-in-out infinite;
}
.paf-hero-char-video {
  display: block; width: 100%; height: auto;
  pointer-events: none; user-select: none;
  mix-blend-mode: darken;
}
.paf-hero-char-card::before {
  content: '';
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 75%; height: 3px;
  background: linear-gradient(90deg,transparent,#d4a520,transparent);
  border-radius: 0 0 4px 4px;
}
.paf-hero-char-label {
  text-align: center; margin-top: 1.25rem; padding-top: 1.1rem;
  border-top: 1px solid rgba(139,94,60,.14);
}
.paf-hero-char-label-main {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem; font-style: italic; color: #8b5e3c;
}
.paf-hero-char-label-sub {
  font-family: 'Nunito', sans-serif; font-size: .72rem; font-weight: 700;
  color: #6b4a30; letter-spacing: .12em; text-transform: uppercase; margin-top: .15rem;
}
/* Scroll indicator */
.paf-hero-scroll {
  position: absolute; bottom: 2.5rem; left: 50%;
  animation: scrollBounce 2.5s ease-in-out infinite;
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
}
.paf-hero-scroll span {
  font-family: 'Nunito', sans-serif; font-size: .65rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase; color: rgba(253,248,240,.3);
}

/* ══════════════════════════════════════════
   SECTION HEADER (riutilizzabile)
══════════════════════════════════════════ */
.paf-section-header { text-align: center; margin-bottom: 4.5rem; }
.paf-section-eyebrow {
  display: flex; align-items: center; gap: 1rem; justify-content: center; margin-bottom: 1rem;
}
.paf-section-eyebrow-line {
  height: 1px; width: 52px;
  background: linear-gradient(to right, transparent, rgba(139,94,60,.35));
}
.paf-section-eyebrow-line.r {
  background: linear-gradient(to left, transparent, rgba(139,94,60,.35));
}
.paf-section-eyebrow-line.gold {
  background: linear-gradient(to right, transparent, rgba(212,165,32,.4));
}
.paf-section-eyebrow-line.gold.r {
  background: linear-gradient(to left, transparent, rgba(212,165,32,.4));
}
.paf-section-label {
  font-family: 'Nunito', sans-serif; font-size: .96rem; font-weight: 700;
  color: #8b5e3c; letter-spacing: .25em; text-transform: uppercase;
}
.paf-section-label.gold { color: rgba(212,165,32,.65); }
.paf-section-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.5rem,5vw,3.8rem); font-weight: 700;
  color: #1a0f05; margin-top: .5rem; line-height: 1.1;
}
.paf-section-title.light { color: #fdf8f0; }
.paf-section-title em { color: #8b5e3c; font-style: italic; }
.paf-section-title em.gold { color: #d4a520; }
.paf-wave {
  position: absolute; top: 0; left: 0; right: 0; line-height: 0;
  pointer-events: none; z-index: 0;
}
.paf-wave svg { display: block; width: 100%; height: 100px; }

/* ══════════════════════════════════════════
   IL PROGETTO (#intro)
══════════════════════════════════════════ */
.paf-intro {
  padding: 9rem 2rem 7rem;
  background: #fdf8f0; position: relative; overflow: hidden;
}
.paf-intro-deco {
  position: absolute; top: 2rem; right: 2%;
  font-family: 'Cormorant Garamond', serif; font-size: 22rem; line-height: 1;
  color: rgba(139,94,60,.04); pointer-events: none; user-select: none; z-index: 0;
}
.paf-intro-inner {
  max-width: 1280px; margin: 0 auto; position: relative; z-index: 1;
}
.paf-intro-body {
  display: flex; gap: 5rem; align-items: center; flex-wrap: wrap;
}
.paf-intro-text { flex: 1; min-width: min(100%,380px); }
.paf-intro-text p {
  font-family: 'Nunito', sans-serif; font-size: 1.25rem;
  line-height: 1.9; color: #3d2b1a; margin-bottom: 1.5rem;
}
.paf-stats { display: flex; gap: 3rem; margin-top: 3rem; flex-wrap: wrap; }
.paf-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 3.2rem; font-weight: 700; color: #8b5e3c; line-height: 1;
}
.paf-stat-label {
  font-family: 'Nunito', sans-serif; font-size: .93rem; font-weight: 700;
  color: #6b4a30; letter-spacing: .08em; text-transform: uppercase; margin-top: .2rem;
}
.paf-intro-img {
  flex: 1; min-width: min(100%,380px); max-width: 540px;
}
.paf-intro-img-inner {
  border-radius: 24px; overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.13);
  aspect-ratio: 3/4;
  transition: transform .5s ease, box-shadow .5s ease;
}
.paf-intro-img-inner:hover {
  transform: translateY(-6px);
  box-shadow: 0 35px 90px rgba(0,0,0,.22);
}
.paf-intro-img-inner img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

/* ══════════════════════════════════════════
   PINOCCHIO (#pinocchio)
══════════════════════════════════════════ */
.paf-pinocchio {
  padding: 9rem 2rem 7rem;
  background: #67111b; position: relative; overflow: hidden;
}
.paf-pinocchio-inner {
  max-width: 1280px; margin: 0 auto; position: relative; z-index: 1;
}
.paf-pinocchio-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.1rem,2.5vw,1.5rem); font-style: italic;
  color: rgba(253,248,240,.45); margin-top: .5rem;
}
.paf-pinocchio-body {
  display: flex; gap: 5rem; align-items: center; flex-wrap: wrap;
}
.paf-pinocchio-text { flex: 1; min-width: min(100%,380px); }
.paf-pinocchio-text p {
  font-family: 'Nunito', sans-serif; font-size: 1.25rem;
  line-height: 1.9; color: rgba(253,248,240,.78); margin-bottom: 1.5rem;
}
.paf-pinocchio-text p strong { color: #fdf8f0; }
.paf-pinocchio-char {
  flex: 1; min-width: min(100%,340px);
  display: flex; justify-content: center;
}
.paf-pinocchio-card {
  position: relative; max-width: 380px; width: 100%;
}
.paf-pinocchio-card-glow {
  position: absolute; inset: -24px; border-radius: 34px;
  background: radial-gradient(circle, rgba(212,165,32,.08) 0%, transparent 70%);
}
.paf-pinocchio-card-inner {
  position: relative; background: #fdf8f0; border-radius: 24px; padding: 2.5rem 2rem;
  box-shadow: 0 30px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(212,165,32,.22);
  animation: charFloat 5s ease-in-out infinite;
}
.paf-pinocchio-card-inner::before {
  content: '';
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 70%; height: 3px;
  background: linear-gradient(90deg,transparent,#d4a520,transparent);
  border-radius: 0 0 4px 4px;
}

/* ══════════════════════════════════════════
   FOTO EVENTO (#foto-evento)
══════════════════════════════════════════ */
.paf-foto-evento {
  background: #fdf8f0;
  padding: 5rem 2rem;
  position: relative;
}
.paf-foto-evento-inner {
  max-width: 1100px; margin: 0 auto; position: relative; z-index: 1;
}
.paf-foto-evento-img {
  display: block; width: 100%; height: auto;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
}

/* ══════════════════════════════════════════
   IL PERCORSO — CARD ATTRAZIONI (#percorso)
══════════════════════════════════════════ */
.paf-percorso {
  padding: 9rem 2rem 7rem;
  background: #100a05; position: relative; overflow: hidden;
}
.paf-percorso-inner {
  max-width: 1280px; margin: 0 auto; position: relative; z-index: 1;
}
.paf-percorso-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  position: relative;
}
.paf-att-card {
  flex: 1 1 420px;
  max-width: 560px;
}

/* Linea connettore "catena" */
.paf-percorso-grid::before {
  content: '';
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent, rgba(212,165,32,.25), transparent);
  pointer-events: none;
  z-index: 0;
}

/* Card sbloccata */
.paf-att-card {
  position: relative; border-radius: 22px; overflow: hidden;
  background: #1a1208; aspect-ratio: 3/4; max-height: 580px;
  cursor: pointer; box-shadow: 0 8px 35px rgba(0,0,0,.55);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s ease;
  z-index: 1;
}
.paf-att-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 28px 75px rgba(0,0,0,.75);
}
.paf-att-card-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform .7s ease;
}
.paf-att-card:hover .paf-att-card-bg { transform: scale(1.07); }
.paf-att-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top,
    rgba(10,5,2,.97) 0%,
    rgba(10,5,2,.65) 35%,
    rgba(10,5,2,.05) 65%,
    transparent 85%);
  pointer-events: none;
}
.paf-att-card-num {
  position: absolute; top: 1.25rem; right: 1.5rem;
  font-family: 'Cormorant Garamond', serif;
  font-size: 5.5rem; font-weight: 700;
  color: rgba(253,248,240,.07); line-height: 1;
  pointer-events: none; user-select: none; letter-spacing: -.03em; z-index: 1;
}
.paf-att-card-body {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 2rem 1.75rem; pointer-events: none;
}
.paf-att-card-tag {
  display: inline-block;
  background: rgba(212,165,32,.18); border: 1px solid rgba(212,165,32,.4);
  border-radius: 100px; padding: .25rem .85rem; margin-bottom: .85rem;
}
.paf-att-card-tag span {
  font-family: 'Nunito', sans-serif; font-size: .92rem; font-weight: 700;
  color: #d4a520; letter-spacing: .15em; text-transform: uppercase;
}
.paf-att-card-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem; font-weight: 700; color: #fdf8f0;
  line-height: 1.1; margin: 0 0 .4rem;
}
.paf-att-card-tappa {
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: rgba(212,165,32,.7); letter-spacing: .08em; text-transform: uppercase;
  margin-bottom: .7rem;
}
.paf-att-card-desc {
  font-family: 'Nunito', sans-serif; font-size: 1.15rem;
  color: rgba(253,248,240,.68); line-height: 1.7;
}

/* Card BLOCCATA */
.paf-att-card.locked { cursor: default; }
.paf-att-card.locked .paf-att-card-bg {
  filter: blur(4px) brightness(.35);
  transform: scale(1.05);
}
.paf-att-card.locked:hover .paf-att-card-bg {
  transform: scale(1.05); /* no zoom on hover */
}
.paf-att-lock-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: rgba(10,5,2,.55); z-index: 2; padding: 2rem; text-align: center;
}
.paf-att-lock-icon {
  font-size: 3rem; margin-bottom: 1rem;
  transition: transform .15s;
}
.paf-att-lock-icon.shaking { animation: lockShake .4s ease; }
.paf-att-lock-msg {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.65rem; font-weight: 700; color: #fdf8f0; line-height: 1.3;
  margin-bottom: .75rem;
}
.paf-att-lock-date {
  display: inline-block;
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: #d4a520; letter-spacing: .1em; text-transform: uppercase;
  background: rgba(212,165,32,.12); border: 1px solid rgba(212,165,32,.35);
  border-radius: 100px; padding: .35rem 1rem;
}

/* "Prossimo sblocco" — evidenziato */
.paf-att-card.next-unlock {
  animation: chainPulse 2s ease-in-out infinite;
}

/* ══════════════════════════════════════════
   PROGRAMMA (#programma)
══════════════════════════════════════════ */
.paf-programma {
  padding: 9rem 2rem 7rem;
  background: radial-gradient(ellipse at 25% 60%, #f7e8c8 0%, #fdf8f0 65%);
  position: relative; overflow: hidden;
}
.paf-programma-deco {
  position: absolute; bottom: -3rem; right: -1rem;
  font-family: 'Cormorant Garamond', serif; font-size: 18rem; font-weight: 700;
  line-height: 1; color: rgba(139,94,60,.04); pointer-events: none; user-select: none; white-space: nowrap;
}
.paf-programma-inner { max-width: 960px; margin: 0 auto; position: relative; z-index: 1; }
.paf-programma-where {
  font-family: 'Nunito', sans-serif; font-size: 1rem; color: #6b4a30; margin-top: .75rem;
}
.paf-timeline { max-width: 780px; margin: 0 auto; }
.paf-timeline-item {
  display: flex; gap: 0; align-items: stretch;
  padding: 1.75rem 0; border-bottom: 1px dashed rgba(139,94,60,.18);
  position: relative; overflow: hidden;
}
.paf-timeline-time-col {
  flex: 0 0 110px; position: relative; overflow: hidden;
  display: flex; flex-direction: column; align-items: flex-end;
  justify-content: flex-start; padding-right: 1.5rem;
}
.paf-timeline-time {
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 800;
  color: #d4a520; letter-spacing: .14em; padding-top: 6px;
  position: relative; z-index: 1; white-space: nowrap;
}
.paf-timeline-time-ghost {
  position: absolute; bottom: -24px; right: -18px;
  font-family: 'Cormorant Garamond', serif; font-size: 6rem; font-weight: 700;
  color: rgba(212,165,32,.07); line-height: 1;
  pointer-events: none; user-select: none; white-space: nowrap; z-index: 0;
}
.paf-timeline-bar {
  flex: 0 0 3px;
  background: linear-gradient(to bottom, #d4a520 65%, rgba(212,165,32,.08));
  border-radius: 4px; align-self: stretch; margin: 4px 0; flex-shrink: 0;
}
.paf-timeline-content {
  flex: 1; padding-left: 1.5rem; padding-right: .5rem; padding-bottom: .25rem;
}
.paf-timeline-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.7rem; font-weight: 700; color: #1a0f05;
  margin: 0 0 .35rem; line-height: 1.2;
}
.paf-timeline-desc {
  font-family: 'Nunito', sans-serif; font-size: 1.18rem;
  color: #5a3d22; line-height: 1.7;
}
.paf-programma-note {
  text-align: center; margin-top: .5rem;
}
.paf-programma-note-inner {
  display: inline-flex; align-items: center; gap: .75rem;
  background: rgba(139,94,60,.06); border: 1px solid rgba(139,94,60,.15);
  border-radius: 12px; padding: .875rem 1.5rem;
}
.paf-programma-note-inner span {
  font-family: 'Nunito', sans-serif; font-size: 1rem; color: #6b4a30;
}

/* ══════════════════════════════════════════
   GALLERIA (#galleria)
══════════════════════════════════════════ */
.paf-galleria {
  padding: 8rem 2rem 6rem;
  background: #0a0d12; position: relative; overflow: hidden;
}
.paf-galleria-inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; }
.paf-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 230px;
  gap: 12px;
}
.paf-gallery-item {
  border-radius: 16px; overflow: hidden; cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
  transition: transform .4s, box-shadow .4s;
}
.paf-gallery-item:hover {
  transform: scale(1.015);
  box-shadow: 0 18px 55px rgba(0,0,0,.6);
}
.paf-gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s ease;
}
.paf-gallery-item:hover img { transform: scale(1.07); }
.paf-gallery-item.span2r { grid-row: span 2; }
.paf-gallery-item.col2r3 { grid-column: 2 / span 2; grid-row: span 2; }

/* ══════════════════════════════════════════
   NEWS (#news)
══════════════════════════════════════════ */
.paf-news {
  padding: 9rem 2rem 7rem;
  background: #f5ead8; position: relative; overflow: hidden;
}
.paf-news-inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; }
.paf-news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%,340px), 1fr));
  gap: 24px;
}
.paf-news-card {
  background: #fdf8f0; border-radius: 20px; overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.07);
  display: flex; flex-direction: column;
  transition: transform .35s, box-shadow .35s;
}
.paf-news-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 50px rgba(0,0,0,.13);
}
.paf-news-card-img {
  height: 195px; overflow: hidden; position: relative; flex-shrink: 0;
}
.paf-news-card-img .paf-news-img-bg {
  width: 100%; height: 100%;
  background-size: cover; background-position: center 30%;
  transition: transform .55s ease;
}
.paf-news-card:hover .paf-news-img-bg { transform: scale(1.07); }
.paf-news-card-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(10,5,2,.1) 0%, rgba(10,5,2,.45) 55%, #fdf8f0 100%);
}
.paf-news-cat {
  position: absolute; top: 1rem; left: 1rem;
  font-family: 'Nunito', sans-serif; font-size: .82rem; font-weight: 700;
  color: #fdf8f0;
  background: rgba(10,5,2,.55); border: 1px solid rgba(212,165,32,.5);
  padding: .22rem .82rem; border-radius: 100px;
  letter-spacing: .14em; text-transform: uppercase; backdrop-filter: blur(4px);
}
.paf-news-card-body {
  padding: 1.4rem 1.75rem 1.75rem;
  display: flex; flex-direction: column; flex: 1;
}
.paf-news-date {
  font-family: 'Nunito', sans-serif; font-size: 1rem; color: #8b7a6a; font-weight: 600;
  margin-bottom: .85rem;
}
.paf-news-card-body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.7rem; font-weight: 700; color: #1a0f05;
  line-height: 1.25; margin: 0 0 .75rem;
}
.paf-news-excerpt {
  font-family: 'Nunito', sans-serif; font-size: 1.05rem;
  color: #5a3d22; line-height: 1.7; flex: 1;
}
.paf-news-readmore {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: 1.5rem;
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: #8b5e3c;
  transition: gap .25s;
}
.paf-news-readmore:hover { gap: .7rem; color: #8b5e3c; }

/* ══════════════════════════════════════════
   CTA
══════════════════════════════════════════ */
.paf-cta {
  padding: 8rem 2rem;
  background: linear-gradient(135deg, rgba(10,13,18,.97) 0%, rgba(182,60,66,.85) 45%, rgba(10,13,18,.94) 100%);
  position: relative; overflow: hidden; text-align: center;
}
.paf-cta-deco {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-52%);
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(7rem,18vw,20rem); font-weight: 700;
  color: rgba(212,165,32,.028); white-space: nowrap;
  pointer-events: none; user-select: none; letter-spacing: .08em;
}
.paf-cta-inner {
  position: relative; z-index: 1; max-width: 700px; margin: 0 auto;
}
.paf-cta-inner h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.8rem,6vw,4.5rem); font-weight: 700;
  color: #fdf8f0; line-height: 1.05; margin: 0 0 1rem;
}
.paf-cta-inner h2 em { color: #d4a520; font-style: italic; }
.paf-cta-inner p {
  font-family: 'Nunito', sans-serif; font-size: 1.25rem;
  color: rgba(253,248,240,.65); line-height: 1.75; margin-bottom: 2.5rem;
}
.paf-cta-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ══════════════════════════════════════════
   COME ARRIVARE (PDF)
══════════════════════════════════════════ */
.paf-come-arrivare {
  background: #100a05;
  padding: 6rem 2rem;
  text-align: center;
}
.paf-come-arrivare-inner { max-width: 900px; margin: 0 auto; }
.paf-come-arrivare-flyer {
  display: block; border-radius: 14px; overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(212,165,32,.15);
  transition: transform .3s, box-shadow .3s;
}
.paf-come-arrivare-flyer:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 70px rgba(0,0,0,.6), 0 0 0 1px rgba(212,165,32,.3);
}
.paf-come-arrivare-flyer img { display: block; width: 100%; height: auto; }

/* ══════════════════════════════════════════
   PARTNER
══════════════════════════════════════════ */
.paf-partner {
  padding: 5rem 2rem;
  background: #fdf8f0; border-top: 1px solid rgba(139,94,60,.1);
}
.paf-partner-inner { max-width: 1100px; margin: 0 auto; }
.paf-partner-inner h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem; font-weight: 700; color: #1a0f05; margin-top: .3rem;
}
.paf-partner-grid {
  display: flex; align-items: center; justify-content: center;
  gap: 2rem; flex-wrap: wrap;
}
.paf-partner-card {
  display: flex; align-items: center; justify-content: center;
  padding: 1.25rem 1.75rem; background: #fff; border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06); border: 1px solid rgba(139,94,60,.1);
  width: 150px; height: 110px; transition: box-shadow .3s;
}
.paf-partner-card:hover { box-shadow: 0 8px 30px rgba(0,0,0,.12); }
.paf-partner-card.is-big { width: 175px; height: 130px; }
.paf-partner-logo-img {
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  object-fit: contain;
}

/* ══════════════════════════════════════════
   FOOTER (#contatti)
══════════════════════════════════════════ */
.paf-footer {
  background: #0a0507; padding: 5rem 2rem 2.5rem;
}
.paf-footer-inner { max-width: 1280px; margin: 0 auto; }
.paf-footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1.6fr;
  gap: 3rem; margin-bottom: 4rem;
}
.paf-footer-brand-logo {
  display: flex; align-items: center; gap: .875rem; margin-bottom: 1.25rem;
}
.paf-footer-brand-logo-icon {
  width: 42px; height: 42px; border-radius: 50%;
  background: linear-gradient(135deg,#d4a520 0%,#8b5e3c 100%);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.paf-footer-brand-name { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; font-weight: 700; color: #fdf8f0; line-height: 1.1; }
.paf-footer-brand-sub  { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-style: italic; color: #d4a520; line-height: 1.1; }
.paf-footer-tagline {
  font-family: 'Nunito', sans-serif; font-size: 1rem; line-height: 1.75;
  color: rgba(253,248,240,.45); max-width: 280px; margin-bottom: 1.5rem;
}
.paf-footer-social { display: flex; gap: .75rem; }
.paf-footer-social a {
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(253,248,240,.06); border: 1px solid rgba(253,248,240,.12);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s, border-color .25s;
}
.paf-footer-social a:hover {
  background: rgba(212,165,32,.15);
  border-color: rgba(212,165,32,.4);
}
.paf-footer-col h4 {
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: rgba(253,248,240,.4); letter-spacing: .2em; text-transform: uppercase;
  margin: 0 0 1.25rem;
}
.paf-footer-col-links { display: flex; flex-direction: column; gap: .75rem; }
.paf-footer-col-links a {
  font-family: 'Nunito', sans-serif; font-size: 1.05rem;
  color: rgba(253,248,240,.55); transition: color .25s;
}
.paf-footer-col-links a:hover { color: #d4a520; }
.paf-footer-contact { display: flex; flex-direction: column; gap: 1rem; }
.paf-footer-contact-item {
  display: flex; gap: .75rem; align-items: flex-start;
}
.paf-footer-contact-item span,
.paf-footer-contact-item a {
  font-family: 'Nunito', sans-serif; font-size: 1.05rem;
  color: rgba(253,248,240,.55); line-height: 1.55;
}
.paf-footer-contact-item a:hover { color: #d4a520; }
.paf-footer-bottom {
  border-top: 1px solid rgba(253,248,240,.07);
  padding-top: 2rem;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 1rem;
}
.paf-footer-copy {
  font-family: 'Nunito', sans-serif; font-size: .95rem;
  color: rgba(253,248,240,.3); margin: 0;
}
.paf-footer-legal { display: flex; gap: 1.5rem; }
.paf-footer-legal a {
  font-family: 'Nunito', sans-serif; font-size: .95rem;
  color: rgba(253,248,240,.3); transition: color .25s;
}
.paf-footer-legal a:hover { color: rgba(253,248,240,.6); }

/* ══════════════════════════════════════════
   SINGLE ATTRAZIONE
══════════════════════════════════════════ */
.paf-single-hero {
  position: relative; height: 70vh; min-height: 480px;
  display: flex; align-items: flex-end;
  overflow: hidden; background: #0a0d12;
}
.paf-single-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .55; transform: scale(1.03);
}
.paf-single-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,5,2,.95) 0%, rgba(10,5,2,.2) 60%, transparent 100%);
}
.paf-single-hero-content {
  position: relative; z-index: 2;
  width: 100%; max-width: 1280px; margin: 0 auto; padding: 3rem 2rem;
}
.paf-single-tag {
  display: inline-block;
  background: rgba(212,165,32,.18); border: 1px solid rgba(212,165,32,.4);
  border-radius: 100px; padding: .3rem 1rem; margin-bottom: 1rem;
}
.paf-single-tag span {
  font-family: 'Nunito', sans-serif; font-size: .88rem; font-weight: 700;
  color: #d4a520; letter-spacing: .18em; text-transform: uppercase;
}
.paf-single-hero h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem,6vw,5rem); font-weight: 700;
  color: #fdf8f0; line-height: 1.05; margin: 0 0 .5rem;
}
.paf-single-tappa {
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 700;
  color: rgba(212,165,32,.75); letter-spacing: .12em; text-transform: uppercase;
}
.paf-single-content-wrap {
  max-width: 900px; margin: 0 auto; padding: 5rem 2rem;
}
.paf-single-graphic {
  margin-bottom: 3rem; border-radius: 16px; overflow: hidden;
  box-shadow: 0 15px 45px rgba(0,0,0,.15);
}
.paf-single-graphic img { display: block; width: 100%; height: auto; }
.paf-single-desc {
  font-family: 'Nunito', sans-serif; font-size: 1.25rem;
  line-height: 1.9; color: #3d2b1a; margin-bottom: 3rem;
}
.paf-single-desc p { margin-bottom: 1.25rem; }
.paf-single-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%,280px), 1fr));
  gap: 12px; margin-bottom: 3rem;
}
.paf-single-gallery img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
}
.paf-single-video { margin-bottom: 3rem; }
.paf-single-video iframe,
.paf-single-video video { border-radius: 12px; max-width: 100%; }
.paf-single-extlink { margin-bottom: 3rem; text-align: center; }
/* Nav prev/next */
.paf-single-nav {
  display: flex; justify-content: space-between; gap: 1rem;
  border-top: 1px solid rgba(139,94,60,.15); padding-top: 2.5rem; margin-top: 2rem;
  flex-wrap: wrap;
}
.paf-single-nav a {
  font-family: 'Nunito', sans-serif; font-size: .9rem; font-weight: 700;
  color: #8b5e3c; transition: color .2s;
}
.paf-single-nav a:hover { color: #d4a520; }

/* Schermata BLOCCATA (single) */
.paf-locked-screen {
  min-height: 80vh; display: flex; align-items: center; justify-content: center;
  background: #100a05; text-align: center; padding: 3rem 2rem;
}
.paf-locked-screen-inner { max-width: 480px; margin: 0 auto; }
.paf-locked-screen-icon { font-size: 5rem; margin-bottom: 1.5rem; }
.paf-locked-screen-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.5rem; font-weight: 700; color: #fdf8f0; margin-bottom: 1rem;
}
.paf-locked-screen-msg {
  font-family: 'Nunito', sans-serif; font-size: 1rem;
  color: rgba(253,248,240,.6); line-height: 1.7; margin-bottom: 2rem;
}
.paf-locked-screen-date {
  display: inline-block;
  font-family: 'Nunito', sans-serif; font-size: .9rem; font-weight: 700;
  color: #d4a520; letter-spacing: .1em; text-transform: uppercase;
  background: rgba(212,165,32,.12); border: 1px solid rgba(212,165,32,.35);
  border-radius: 100px; padding: .5rem 1.5rem; margin-bottom: 2rem;
}

/* Reveal on scroll */
[data-reveal] {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity .95s cubic-bezier(.16,1,.3,1), transform .95s cubic-bezier(.16,1,.3,1);
}
[data-reveal].revealed {
  opacity: 1;
  transform: translateY(0);
}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media (max-width: 960px) {
  .paf-nav-links { display: none !important; }
  .paf-nav-burger { display: flex !important; }
  .paf-gallery-grid { grid-template-columns: repeat(2,1fr) !important; }
  .paf-footer-grid { grid-template-columns: 1fr 1fr !important; }
  .paf-hero-inner { flex-direction: column; text-align: center; padding-bottom: 3rem; }
  .paf-hero-divider, .paf-hero-btns { justify-content: center; }
  .paf-intro-body, .paf-pinocchio-body { flex-direction: column; }
  .paf-percorso-grid .paf-att-card { flex: 0 0 100% !important; max-width: 100% !important; }
  /* Card Pinocchio: visibile su mobile, più piccola e centrata */
  .paf-hero-char {
    width: min(280px, 72vw);
    flex: 0 0 auto;
    order: -1;
    margin-bottom: -1rem;
  }
  .paf-hero-char-card {
    padding: 1.75rem 1.5rem;
    border-radius: 18px;
  }
}
@media (max-width: 600px) {
  .paf-gallery-grid { grid-template-columns: 1fr !important; }
  .paf-footer-grid { grid-template-columns: 1fr !important; }
  .paf-hero-h1 { font-size: 3rem; }
  .paf-hero-char { width: min(240px, 78vw); }
  .paf-timeline-item { flex-direction: column; gap: .5rem; }
  .paf-timeline-time-col { flex: none; width: 100%; align-items: flex-start; padding-right: 0; border-bottom: 1px solid rgba(212,165,32,.2); padding-bottom: .5rem; }
  .paf-timeline-bar { display: none; }
  .paf-timeline-content { padding-left: 0; }
}

/* Stelle e lucciole generate da JS — assolute dentro il contenitore */
.paf-star, .paf-fly {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  user-select: none;
}

/* Le sezioni scure hanno già overflow:hidden dalla loro definizione,
   ma lo forziamo qui come sicurezza per evitare scroll orizzontale */
.paf-pinocchio,
.paf-percorso,
.paf-mappa,
.paf-galleria,
.paf-cta,
.paf-footer { overflow: hidden; }

/* ══════════════════════════════════════════
   MAPPA DEL BORGO
══════════════════════════════════════════ */
.paf-mappa {
  background: #f5ead8;
  padding: 7rem 2rem;
  position: relative;
}
.paf-mappa-inner {
  max-width: 1100px; margin: 0 auto; position: relative; z-index: 1;
}
.paf-mappa-wrap {
  position: relative; margin-top: 3rem;
  border-radius: 18px; overflow: hidden;
  border: 1.5px solid rgba(212,165,32,.22);
  box-shadow: 0 0 80px rgba(212,165,32,.06), 0 20px 80px rgba(0,0,0,.65);
}
#paf-mappa-leaflet {
  width: 100%; height: 720px; display: block;
}
/* Legenda */
.paf-mappa-legend {
  display: flex; align-items: center; gap: 2rem;
  margin-top: 1.5rem; justify-content: center; flex-wrap: wrap;
}
.paf-mappa-legend-item {
  display: flex; align-items: center; gap: .6rem;
  font-family: 'Nunito', sans-serif; font-size: .92rem;
  color: #6b4a30;
}
.paf-mappa-legend-dot {
  width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0;
}
.paf-mappa-legend-dot.gold {
  background: linear-gradient(135deg,#f5d060,#d4a520);
  box-shadow: 0 0 8px rgba(212,165,32,.5);
}
.paf-mappa-legend-dot.grey {
  background: #b8a898; border: 1px solid rgba(0,0,0,.12);
}

/* ── Popup Leaflet personalizzato ── */
.paf-map-popup .leaflet-popup-content-wrapper {
  background: rgba(10,5,2,.96);
  border: 1px solid rgba(212,165,32,.22);
  border-radius: 14px;
  box-shadow: 0 12px 50px rgba(0,0,0,.75);
  color: #fdf8f0; padding: 0;
}
.paf-map-popup .leaflet-popup-content { margin: 0; width: auto !important; }
.paf-map-popup .leaflet-popup-tip { background: rgba(10,5,2,.96); box-shadow: none; }
.paf-map-popup .leaflet-popup-close-button {
  color: rgba(253,248,240,.35) !important;
  font-size: 18px !important; top: 8px !important; right: 10px !important;
}
.paf-map-popup .leaflet-popup-close-button:hover { color: #d4a520 !important; }

.paf-popup-inner { padding: 1.25rem 1.5rem 1.5rem; }
.paf-popup-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.8rem; font-weight: 700;
  color: rgba(212,165,32,.18); line-height: 1; margin-bottom: -.4rem;
}
.paf-popup-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.45rem; font-weight: 700; color: #fdf8f0;
  line-height: 1.2; margin-bottom: .4rem;
}
.paf-popup-tag {
  display: inline-block;
  font-family: 'Nunito', sans-serif; font-size: .82rem; font-weight: 700;
  color: #d4a520; letter-spacing: .15em; text-transform: uppercase;
  background: rgba(212,165,32,.12); border: 1px solid rgba(212,165,32,.3);
  border-radius: 100px; padding: .15rem .75rem; margin-bottom: .5rem;
}
.paf-popup-tappa {
  font-family: 'Nunito', sans-serif; font-size: .94rem;
  color: rgba(253,248,240,.38); margin-bottom: .75rem; display: block;
}
.paf-popup-status {
  font-family: 'Nunito', sans-serif; font-size: 1rem; font-weight: 600;
  display: flex; align-items: center; gap: .4rem; margin-bottom: .85rem;
}
.paf-popup-status.is-unlocked { color: #d4a520; }
.paf-popup-star { font-size: .65rem; }
.paf-popup-status.is-locked   { color: rgba(253,248,240,.3); }
.paf-popup-btn {
  display: block;
  background: linear-gradient(135deg,#d4a520,#c9a227);
  color: #1a0f05 !important; font-family: 'Nunito', sans-serif;
  font-size: .95rem; font-weight: 700;
  padding: .65rem 1.25rem; border-radius: 8px;
  text-align: center; transition: opacity .2s;
}
.paf-popup-btn:hover { opacity: .85; }

/* Icone custom: glow su tutte */
.leaflet-marker-icon.paf-map-custom-icon.is-unlocked {
  filter: drop-shadow(0 0 10px rgba(212,165,32,.6));
}
.leaflet-marker-icon.paf-map-custom-icon.is-locked {
  filter: drop-shadow(0 0 6px rgba(212,165,32,.3));
}

/* Mobile */
@media (max-width: 600px) {
  #paf-mappa-leaflet { height: 520px; }
  .paf-mappa-legend { gap: 1rem; }
}
