:root{
  --bg:#080808;
  --panel:#111;
  --text:#fff;
  --muted:rgba(255,255,255,0.78);
  --accent:rgba(97,157,97,0.867);
  --accent-strong:rgba(16,75,15,0.8);
  --border:rgba(255,255,255,0.08);
  --shadow:0 20px 40px rgba(0,0,0,0.5);
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html,body{
  scroll-behavior:smooth;
}

body{
  font-family:'Montserrat',sans-serif;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  padding-top: 70px;
}

img{
  display:block;
  max-width:100%;
}

.skip-link{
  position:fixed;
  top:16px;
  left:16px;
  transform:translateY(-160%);
  background:var(--accent);
  color:#081008;
  padding:12px 18px;
  border-radius:999px;
  z-index:10001;
  font-weight:700;
  transition:transform .25s ease;
}

.skip-link:focus{
  transform:translateY(0);
}

/* ===== LOADER ===== */
#loader{
  position:fixed;
  inset:0;
  background:#080808;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
}
#loader span{
  font-family:'Playfair Display',serif;
  font-size:40px;
  letter-spacing:6px;
  animation:pulseText 1.5s infinite;
  color: rgba(97,157,97,0.867);
}

/* ===== SCROLL BAR ===== */
#scrollbar{
  position:fixed;
  top:0;
  left:0;
  height:3px;
  width:0;
  background:linear-gradient(90deg, rgba(97,157,97,0.867), rgba(16,75,15,0.8));
  z-index:9999;
}

/* ===== HERO ===== */
.hero{
  min-height:100vh;
  min-height:100svh;
  position:relative;
  background:url('img/hero_cascata.jpg') center/cover no-repeat;
  overflow:hidden;
}
.hero.small{
  min-height:65vh;
  min-height:65svh;
}

.hero::before{
  content:'';
  position:absolute;
  inset:-40%;
  background:
    radial-gradient(circle, rgba(97,157,97,0.2), transparent 60%),
    radial-gradient(circle, rgba(16,75,15,0.15), transparent 60%);
  animation:slowFloat 20s infinite alternate;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#00000066,#000000ee);
}

.hero-content{
  position:relative;
  min-height:inherit;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding:0 24px;
}

.hero h1{
  font-family:'Playfair Display',serif;
  font-size:clamp(3rem,10vw,6.2rem);
  letter-spacing:6px;
}

.hero p{
  font-size:clamp(1rem, 2.2vw, 1.3rem);
}

.hero-kicker,
.section-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.08);
  color:rgba(255,255,255,0.84);
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:11px;
  font-weight:700;
}

.hero-kicker{
  margin-bottom:22px;
}

.section-label{
  margin-bottom:18px;
}

.home-hero{
  min-height:100vh;
  display:grid;
  align-items:end;
  padding-bottom:46px;
}

.home-hero::after{
  content:'';
  position:absolute;
  inset:auto 8% 28px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  z-index:2;
}

.hero-actions{
  margin-top:28px;
  justify-content:center;
}

.hero-glance{
  position:relative;
  z-index:3;
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}

.glance-card{
  background:linear-gradient(145deg, rgba(10,10,10,0.86), rgba(26,26,26,0.78));
  border:1px solid rgba(255,255,255,0.12);
  border-radius:28px;
  padding:22px 24px;
  backdrop-filter:blur(12px);
  box-shadow:var(--shadow);
}

.glance-card span{
  display:block;
  margin-bottom:8px;
  color:rgba(255,255,255,0.6);
  text-transform:uppercase;
  letter-spacing:0.16em;
  font-size:11px;
}

.glance-card strong{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.3rem, 3vw, 1.9rem);
  margin-bottom:10px;
}

.glance-card p{
  color:var(--muted);
  line-height:1.6;
}

/* ===== SEZIONI ===== */
section{
  padding:120px 8%;
}

main{
  display:block;
}

.container{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
}

/* ===== INTRO ===== */
.intro{
  text-align:center;
}
.intro h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem,6vw,3rem);
  margin-bottom:20px;
}
.intro p{
  opacity:.8;
  max-width:760px;
  margin:0 auto;
  line-height:1.7;
}

.home-intro{
  padding-bottom:32px;
}

.home-stats{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px;
  padding-top:0;
}

.stat-card{
  padding:28px;
  border-radius:28px;
  background:linear-gradient(160deg, rgba(14,14,14,0.98), rgba(26,26,26,0.9));
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:var(--shadow);
}

.stat-card strong{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:clamp(2.5rem, 6vw, 4rem);
  color:var(--accent);
  margin-bottom:10px;
}

.stat-card span{
  display:block;
  max-width:220px;
  color:var(--muted);
  line-height:1.6;
}

.home-feature{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap:26px;
  align-items:stretch;
}

.feature-copy,
.feature-panel,
.banner-card,
.home-quote{
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:var(--shadow);
}

.feature-copy{
  padding:34px;
  border-radius:32px;
  background:linear-gradient(155deg, rgba(15,15,15,0.98), rgba(29,29,29,0.92));
}

.feature-copy h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem, 4.6vw, 3.4rem);
  line-height:1.05;
  margin-bottom:18px;
}

.feature-copy p{
  color:var(--muted);
  line-height:1.8;
  margin-bottom:24px;
}

.feature-panel{
  border-radius:32px;
  overflow:hidden;
  background:linear-gradient(145deg, rgba(11,11,11,0.95), rgba(23,23,23,0.9));
}

.feature-image-large{
  height:360px;
}

.feature-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.feature-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.feature-note{
  padding:24px;
  border-top:1px solid rgba(255,255,255,0.08);
}

.feature-note + .feature-note{
  border-left:1px solid rgba(255,255,255,0.08);
}

.feature-note span{
  display:block;
  margin-bottom:10px;
  font-family:'Playfair Display',serif;
  font-size:1.2rem;
}

.feature-note p{
  color:var(--muted);
  line-height:1.7;
}

.home-posts{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
}

.home-banners{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:24px;
}

.banner-card{
  display:block;
  padding:34px;
  border-radius:32px;
  background:
    linear-gradient(135deg, rgba(18,18,18,0.96), rgba(34,34,34,0.9)),
    radial-gradient(circle at top right, rgba(97,157,97,0.16), transparent 45%);
}

.banner-card h3{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.8rem, 4vw, 2.6rem);
  margin-bottom:14px;
}

.banner-card p{
  color:var(--muted);
  line-height:1.7;
  max-width:460px;
}

.home-quote{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto 120px;
  padding:42px 36px;
  border-radius:32px;
  background:linear-gradient(145deg, rgba(12,12,12,0.96), rgba(22,22,22,0.92));
  text-align:center;
}

.home-quote p{
  max-width:880px;
  margin:0 auto;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem, 4vw, 2.7rem);
  line-height:1.3;
}

.places-hero{
  min-height:74vh;
}

.places-feature{
  margin-bottom:24px;
}

.places-panel{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:32px;
  overflow:hidden;
  background:linear-gradient(145deg, rgba(11,11,11,0.95), rgba(23,23,23,0.9));
  box-shadow:var(--shadow);
}

.places-panel img{
  display:block;
  width:100%;
  height:360px;
  object-fit:cover;
}

.places-panel-copy{
  padding:26px 28px 30px;
}

.places-panel-copy span{
  display:block;
  margin-bottom:10px;
  font-family:'Playfair Display',serif;
  font-size:1.35rem;
}

.places-panel-copy p{
  color:var(--muted);
  line-height:1.75;
}

.places-grid{
  width:min(1120px, calc(100% - 48px));
  margin:0 auto;
}

/* ===== POSTS / CARDS ===== */
.posts{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:40px;
}


@media (max-width: 1024px){
  .posts{
    grid-template-columns: repeat(2, 1fr);
  }

  .posts .card-featured{
    grid-column: 1 / -1;
    height: 360px;
  }

  .posts .card-featured .card-text h3{
    font-size: 30px;
  }
}

@media (max-width: 600px){
  .posts{
    grid-template-columns: 1fr;
  }

  .posts .card-featured{
    height: 300px;
  }

  .posts .card-featured .card-text h3{
    font-size: 24px;
  }
}

/* ===== CARD NORMALE ===== */
.card{
  position: relative;
  height: 360px;
  border-radius: 28px;
  overflow: hidden;
  background: #000;
  box-shadow: 0 20px 40px rgba(0,0,0,0.5);
  transition: transform 0.6s ease, box-shadow 0.6s ease;
}

.card-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition: transform 1s ease;
}

.card-img{
  width:100%;
  height:100%;
}

.card:hover .card-img img{
  transform: scale(1.08) rotate(1deg);
}

.card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.8) 40%, transparent 100%);
  z-index: 2;
}

.card-text{
  position: absolute;
  bottom: 20px;
  left: 20px;
  right: 20px;
  z-index: 3;
  text-align: left;
  pointer-events: none;
}
.card-text h3{
  font-size: 28px;
  font-family: 'Playfair Display', serif;
  color: rgba(255, 255, 255, 0.867);
}
.card-text p{
  font-size: 16px;
  opacity: 0.9;
  margin-top:5px;
}

.card-tag{
  display:inline-flex;
  align-items:center;
  margin-bottom:10px;
  padding:6px 11px;
  border-radius:999px;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.16);
  color:rgba(255,255,255,0.88);
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.place-card .card-text h3{
  margin-bottom:8px;
}

.place-card .card-text p{
  max-width:260px;
  color:rgba(255,255,255,0.82);
  line-height:1.55;
}

/* ===== INFO BOX ===== */
.info{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:30px;
}

.info-box{
  background: linear-gradient(145deg, rgba(18,18,18,0.85), rgba(30,30,30,0.85));
  backdrop-filter: blur(8px);
  padding: 50px 25px;
  border-radius: 32px;
  text-align: center;
  font-size: 20px;
  position: relative;
  overflow: hidden;
  transition: transform 0.6s ease, box-shadow 0.6s ease;
}
.info-box::after{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent, rgba(97,157,97,0.25), transparent);
  transform: translateX(-100%);
}
.info-box:hover::after{
  animation:shine 1.2s;
}
.info-box:hover{
  transform: translateY(-15px) scale(1.05);
  box-shadow: 0 30px 60px rgba(97,157,97,0.867);
}

/* ===== PERCORSI NUOVI ===== */

.paths{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
gap:30px;
}

.path-card{
background:#0e0e0e;
border-radius:22px;
overflow:hidden;
transition:.4s;
border:1px solid rgba(255,255,255,0.05);
}

.path-card:hover{
transform:translateY(-8px);
border:1px solid rgba(97,157,97,0.4);
}

.path-image{
height:200px;
overflow:hidden;
}

.path-image img{
width:100%;
height:100%;
object-fit:cover;
transition:.5s;
}

.path-card:hover img{
transform:scale(1.05);
}

.path-info{
padding:20px;
}

.path-info h3{
font-family:'Playfair Display',serif;
margin-bottom:12px;
font-size:20px;
}

.path-stats{
display:flex;
flex-wrap:wrap;
gap:10px;
}

.path-stats span{
background:rgba(97,157,97,0.1);
padding:6px 12px;
border-radius:12px;
font-size:13px;
border:1px solid rgba(97,157,97,0.16);
}

/* MOBILE */
@media(max-width:768px){

.path-image{
height:180px;
}

.path-info h3{
font-size:18px;
}

}
/* immagine */
.path-card img{
width:100%;
height:220px;
object-fit:cover;
transition:.6s;
}

.path-card:hover img{
transform:scale(1.05);
}

/* contenuto */
.path-info{
padding:22px;
}

.path-info h3{
font-family:'Playfair Display',serif;
font-size:22px;
margin-bottom:15px;
}

/* stats */
.path-info ul{
display:flex;
flex-wrap:wrap;
gap:15px;
list-style:none;
}

.path-info li{
background:rgba(97,157,97,0.1);
padding:8px 14px;
border-radius:14px;
font-size:14px;
border:1px solid rgba(97,157,97,0.2);
}

/* ===== MAP ===== */
#map,.map{
  height:460px;
  border-radius:32px;
  box-shadow:0 45px 100px rgba(0,0,0,.9);
  width:100%;
}

.route-shell{
  display:grid;
  gap:32px;
}

.route-intro{
  display:grid;
  grid-template-columns:1.4fr .9fr;
  gap:24px;
  align-items:start;
}

.route-summary,
.route-actions,
.route-highlights,
.route-tips{
  background:linear-gradient(145deg, rgba(14,14,14,0.96), rgba(24,24,24,0.96));
  border:1px solid var(--border);
  border-radius:28px;
  box-shadow:var(--shadow);
}

.route-summary,
.route-highlights,
.route-tips{
  padding:28px;
}

.route-summary h2,
.route-highlights h2,
.route-tips h2,
.reviews h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.8rem, 4vw, 2.4rem);
  margin-bottom:16px;
}

.route-summary p,
.route-actions p,
.route-highlights li,
.route-tips li{
  color:var(--muted);
  line-height:1.7;
}

.route-actions{
  padding:22px;
  display:grid;
  gap:14px;
  align-content:start;
}

.button-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.cta-section{
  text-align:center;
  padding-top:0;
}

/* ===== METE RAGGIUNGIBILI ===== */
.mete-section{
  max-width:1100px;
  margin:0 auto;
  padding-top:0;
}
.mete-section h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.4rem,3vw,2rem);
  margin-bottom:12px;
}
.mete-section .mete-intro{
  opacity:.7;
  font-size:.9rem;
  margin-bottom:36px;
}
.mete-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:20px;
  list-style:none;
}
.mete-grid li{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:14px;
  padding:28px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  text-align:center;
  transition:border-color .25s, transform .25s;
}
.mete-grid li:hover{
  border-color:var(--accent);
  transform:translateY(-4px);
}
.mete-grid li i{
  font-size:1.6rem;
  color:var(--accent);
}
.mete-grid li span{
  font-size:.92rem;
  color:var(--muted);
  line-height:1.4;
}

.cta-section .button-row{
  justify-content:center;
}

.button-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(97,157,97,0.32);
  background:rgba(97,157,97,0.12);
  color:var(--text);
  font-weight:600;
}

.button-link.secondary{
  background:transparent;
  border-color:var(--border);
}

.button-link:hover{
  color:var(--text);
  border-color:rgba(97,157,97,0.6);
  background:rgba(97,157,97,0.18);
}

.route-highlights ul,
.route-tips ul{
  list-style:none;
  display:grid;
  gap:12px;
}

.route-highlights li,
.route-tips li{
  position:relative;
  padding-left:22px;
}

.route-highlights li::before,
.route-tips li::before{
  content:'';
  position:absolute;
  left:0;
  top:11px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 15px rgba(97,157,97,0.55);
}

/* ===== WIDGET ===== */
.path-widgets{
  display:flex;
  flex-wrap:wrap;
  gap:30px;
  justify-content:center;
}
.widget{
  width:150px;
  background:linear-gradient(145deg,#0e0e0e,#1a1a1a);
  border-radius:26px;
  padding:30px 20px;
  text-align:center;
  transition:transform .6s,box-shadow .6s;
}
.widget i {
  font-size: 42px;
  color: rgba(97,157,97,0.867) !important; 
  filter: drop-shadow(0 0 15px rgba(97,157,97,0.867)) !important;
  transition: filter 0.3s, color 0.3s;
}
.widget:hover i {
  filter: drop-shadow(0 0 25px rgba(97,157,97,0.867)) !important;
}

/* ===== RECENSIONI ===== */
.review{
  background:#111;
  padding:30px;
  border-radius:24px;
  margin-bottom:20px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.stars{
  color: rgba(97,157,97,0.867);
  margin-bottom:10px;
}

.review h4{
  margin-bottom:8px;
}

/* ===== REVEAL ===== */
.reveal{
  opacity:0;
  transform:translateY(120px) scale(.5);
  filter:blur(6px);
}
.reveal.show{
  opacity:1;
  transform:none;
  filter:none;
  transition:all 1.5s cubic-bezier(.2,.8,.2,1);
}

/* ===== FOOTER ===== */
footer{
  text-align:center;
  padding:40px 20px;
  opacity:.7;
  border-top:1px solid var(--border);
  margin-top:60px;
}

footer p{
  margin:0;
  line-height:1.6;
}

footer .footer-credits{
  margin-top:6px;
  font-size:13px;
  letter-spacing:.5px;
  color:var(--muted);
  opacity:.85;
}

/* ===== KEYFRAMES ===== */
@keyframes shine{
  to{transform:translateX(100%)}
}
@keyframes slowFloat{
  to{transform:scale(1.3)}
}
@keyframes pulseText{
  50%{opacity:.4}
}

/* ===== MOBILE ===== */
@media(max-width:768px){
  section{
    padding:90px 6%;
  }
  body{
    padding-top:118px;
  }
  .hero{
    min-height:88svh;
  }
  .hero.small,
  .places-hero{
    min-height:56svh;
  }
  .hero h1{
    letter-spacing:3px;
  }
  .hero-content{
    padding:0 18px;
  }
  .card{
    height:280px;
  }
  .card-text{
    left:16px;
    right:16px;
    bottom:16px;
  }
  .card-text h3{
    font-size:22px;
  }
  .card-text p{
    font-size:14px;
  }
  .widget{
    width:140px;
  }

  .home-stats,
  .home-feature,
  .home-banners,
  .home-posts,
  .home-quote,
  .hero-glance,
  .places-grid{
    width:min(1120px, calc(100% - 28px));
  }

  .hero-glance,
  .home-stats,
  .home-feature,
  .home-banners{
    grid-template-columns:1fr;
  }

  .feature-grid{
    grid-template-columns:1fr;
  }
  .feature-copy,
  .feature-panel,
  .banner-card,
  .home-quote,
  .route-summary,
  .route-actions,
  .route-highlights,
  .route-tips{
    border-radius:24px;
  }

  .places-panel img{
    height:280px;
  }

  .feature-note + .feature-note{
    border-left:none;
  }

  .hero-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .home-quote{
    margin-bottom:90px;
    padding:30px 22px;
  }
  .home-quote p{
    font-size:clamp(1.35rem, 6vw, 2rem);
  }
  .path-card{
    border-radius:20px;
  }
  .path-image,
  .path-card img{
    height:190px;
  }
  .path-info,
  .path-info{
    padding:18px;
  }
  .path-stats{
    gap:8px;
  }
  .path-stats span{
    width:100%;
    text-align:center;
    padding:8px 10px;
  }
  .route-shell{
    gap:22px;
  }
  .route-summary,
  .route-highlights,
  .route-tips{
    padding:22px;
  }
  .route-actions{
    padding:20px;
  }
  #map,.map{
    height:340px;
    border-radius:24px;
  }
  .review{
    padding:22px;
    border-radius:20px;
  }
}

/* ===== LINK ===== */
a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s;
}
a:hover {
  color: rgba(97,157,97,0.867);
}

a:focus-visible,
button:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:3px;
}

/* ===== HOME BUTTON ===== */
.home-btn{
  position: fixed;
  top: 20px;
  left: 20px;
  background: rgba(18, 18, 18, 0.85);
  color: rgba(97,157,97,0.867);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  text-decoration: none;
  box-shadow: 0 5px 20px rgba(97,157,97,0.6);
  transition: transform 0.3s, box-shadow 0.3s , background 0.3s;
  z-index: 9999;
}

.home-btn:hover{
  transform: scale(1.1);
  box-shadow: 0 5px 30px rgba(97,157,97,0.9);
  background: rgba(18, 18, 18, 0.95);
}

/* ===== NAVBAR ===== */
.navbar{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:70px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 40px;
  z-index:1000;
  background:rgba(0,0,0,0.35);
  backdrop-filter:blur(10px);
}

.nav-logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Playfair Display', serif;
  font-size:20px;
  color:#fff;
  text-decoration:none;
}

.nav-logo i{
  font-size:22px;
  color:rgba(97,157,97,0.867);
  filter:drop-shadow(0 0 10px rgba(97,157,97,0.867));
}

/* link navbar */
.nav-links{
  list-style:none;
  display:flex;
  gap:30px;
}

.nav-links a{
  color:#fff;
  text-decoration:none;
  font-family:'Montserrat', sans-serif;
  font-weight:500;
  position:relative;
}

/* hover elegante */
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  width:0;
  height:2px;
  background:rgba(97,157,97,0.867);
  transition:0.3s;
}

.nav-links a:hover::after{
  width:100%;
}

.nav-links a[aria-current="page"]::after{
  width:100%;
}

.page-header{
  padding: 80px 20px 40px;
  text-align: center;
}

.page-header h1{
  font-size: 2.5rem;
  margin-bottom: 10px;
}

.page-header p{
  opacity: 0.8;
}

.text-section{
  max-width: 800px;
  margin: 0 auto 50px;
  line-height: 1.7;
}

.image-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.image-grid img{
  width: 100%;
  height: 260px;
  object-fit: cover;
  border-radius: 10px;
}

.split-section{
  max-width: 1100px;
  margin: 80px auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 50px;
}

.split-section.reverse{
  flex-direction: row-reverse;
}

.split-img img{
  width: 100%;
  max-width: 480px;
  height: 320px;
  object-fit: cover;
  border-radius: 16px;
}

/* utility per spostare l'inquadratura quando il crop centrale taglia male */
.split-img.align-top img{ object-position: center top; }
.split-img.align-bottom img{ object-position: center bottom; }

/* utility per immagini a bassa risoluzione: niente upscale, niente crop, niente "box" intorno */
.split-img.contain{
  display:flex;
  align-items:center;
  justify-content:center;
}
.split-img.contain img{
  width:auto;
  height:320px;
  max-width:100%;
  object-fit:contain;
  background:transparent;
  border:none;
}
@media (max-width: 768px){
  .split-img.contain img{
    height:auto;
    max-height:340px;
    max-width:100%;
  }
}

.split-img{
  flex:1 1 0;
}

.split-text{
  max-width: 500px;
  flex:1 1 0;
}

.split-text h3{
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  margin-bottom: 15px;
}

.split-text p{
  line-height: 1.7;
  opacity: 0.9;
}

/* MOBILE */
@media (max-width: 768px){
  .split-section,
  .split-section.reverse{
    flex-direction: column;
    text-align: center;
    gap:24px;
    margin:56px auto;
    padding:0 14px;
  }

  .split-text{
    max-width: 100%;
    padding:0 6px;
  }

  .split-img img{
    max-width: 100%;
    height: 260px;
    width:100%;
  }
}


.start-marker,
.end-marker {
background: none;
border: none;
}

.marker-start,
.marker-end {
width: 32px;
height: 32px;
border-radius: 50%;
border: 3px solid white;
box-shadow: 0 2px 8px rgba(0,0,0,0.4);
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: 700;
color: white;
font-family: 'Montserrat', sans-serif;
}

.marker-start {
background: #2ecc71;
}

.marker-end {
background: #e74c3c;
}

/* ===== COMING SOON / PLACEHOLDERS ===== */
.coming-soon-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(97,157,97,0.12);
  border:1px solid rgba(97,157,97,0.45);
  color:var(--accent);
  padding:6px 14px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:10px;
}

.coming-soon-badge i{
  font-size:11px;
}

/* card percorso/località con stato "prossimamente" */
.path-card.coming-soon,
.place-card.coming-soon{
  position:relative;
  border:1px dashed rgba(97,157,97,0.4);
  background:linear-gradient(145deg, rgba(14,14,14,0.92), rgba(20,20,20,0.92));
}

.path-card.coming-soon .path-stats span,
.place-card.coming-soon .card-tag{
  opacity:.65;
}

/* placeholder immagine generico */
.img-placeholder{
  width:100%;
  height:100%;
  min-height:200px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255,255,255,0.02),
      rgba(255,255,255,0.02) 12px,
      rgba(255,255,255,0.05) 12px,
      rgba(255,255,255,0.05) 24px
    );
  color:rgba(255,255,255,0.55);
  border:1px dashed rgba(255,255,255,0.12);
  border-radius:18px;
  font-size:13px;
  letter-spacing:.5px;
  text-transform:uppercase;
}

.img-placeholder i{
  font-size:34px;
  color:var(--accent);
  opacity:.7;
}

.path-image .img-placeholder,
.card-img .img-placeholder{
  border-radius:0;
  border:none;
  height:100%;
  min-height:200px;
}

/* placeholder mappa nelle pagine percorso vuote */
.map-placeholder{
  height:340px;
  border-radius:32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:rgba(255,255,255,0.55);
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255,255,255,0.02),
      rgba(255,255,255,0.02) 14px,
      rgba(97,157,97,0.06) 14px,
      rgba(97,157,97,0.06) 28px
    );
  border:1px dashed rgba(97,157,97,0.35);
  font-size:14px;
  letter-spacing:.5px;
  text-transform:uppercase;
  box-shadow:var(--shadow);
}

.map-placeholder i{
  font-size:42px;
  color:var(--accent);
  opacity:.75;
}

/* split-section quando c'è un placeholder al posto dell'immagine */
.split-img .img-placeholder{
  min-height:280px;
  border-radius:22px;
}

.user-marker {
background: none;
border: none;
}

.user-pin {
width: 16px;
height: 16px;
background: #2ecc71;
border-radius: 50%;
border: 3px solid white;
box-shadow: 0 0 0 4px rgba(46,204,113,0.3);
}

.lang-switch{
display:flex;
gap:10px;
font-size:18px;
}

.lang-switch a{
opacity:.7;
transition:.3s;
padding:6px 8px;
border-radius:999px;
}

.lang-switch a:hover{
opacity:1;
transform:scale(1.1);
}

.lang-switch a[aria-current="page"]{
  opacity:1;
  background:rgba(97,157,97,0.16);
}

/* ===== NAVBAR MOBILE ===== */
@media (max-width: 768px){

.navbar{
padding: 10px 15px;
height:auto;
min-height:70px;
gap:10px 14px;
flex-wrap:wrap;
justify-content:center;
}

.nav-logo span{
font-size:16px;
letter-spacing:1px;
}

.nav-logo i{
font-size:18px;
}

.nav-links{
gap:15px;
flex-wrap:wrap;
justify-content:center;
row-gap:8px;
width:100%;
}

.nav-links a{
font-size:14px;
}

.lang-switch{
justify-content:center;
width:100%;
font-size:15px;
}

.route-intro{
grid-template-columns:1fr;
}

.container{
width:min(1120px, calc(100% - 28px));
}

}

@media (max-width: 600px){

body{
padding-top:132px;
}

.nav-logo span{
display:none;
}

.hero.small{
min-height:52svh;
}

.path-widgets{
gap:16px;
}

.widget{
width:calc(50% - 8px);
padding:24px 14px;
}

.button-row{
flex-direction:column;
}

.button-link{
width:100%;
}

.button-row{
align-items:stretch;
}

.hero-kicker,
.section-label{
font-size:10px;
letter-spacing:0.14em;
padding:7px 11px;
}

.intro h2,
.feature-copy h2,
.route-summary h2,
.route-highlights h2,
.route-tips h2,
.reviews h2{
font-size:clamp(1.6rem, 8vw, 2rem);
}

#map,.map{
height:300px;
}

.glance-card,
.stat-card,
.feature-copy,
.banner-card,
.review{
padding-left:18px;
padding-right:18px;
}

.intro,
.route-summary,
.route-actions,
.route-highlights,
.route-tips,
.reviews,
.split-text,
.cta-section{
padding-left:12px;
padding-right:12px;
}

.path-info h3,
.card-text h3,
.split-text h3{
font-size:1.35rem;
}

}

@media (prefers-reduced-motion: reduce){
  html,body{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
  }

  .reveal{
    opacity:1;
    transform:none;
    filter:none;
  }
}
