/* ============================================================
   PERU NASKA TRAVEL — Luxury Design System
   HTML5 + Bootstrap 5 + Vanilla JS
   ============================================================ */

:root{
  --pn-gold:#c9a24a;
  --pn-gold-soft:#e6c879;
  --pn-terracotta:#b04a2f;
  --pn-clay:#7a2e1f;
  --pn-sky:#1e6f9f;
  --pn-deep:#0e2233;
  --pn-cream:#f7f1e3;
  --pn-bone:#fbf8f1;
  --pn-ink:#1a1a1a;
  --pn-muted:#6b6258;
  --pn-line:rgba(0,0,0,.08);
  --pn-shadow:0 20px 60px -20px rgba(14,34,51,.35);
  --pn-shadow-soft:0 8px 30px -10px rgba(14,34,51,.18);
  --pn-radius:14px;
  --pn-font-display:'Playfair Display', Georgia, serif;
  --pn-font-body:'Inter','Helvetica Neue',Arial,sans-serif;
  --pn-font-script:'Dancing Script', cursive;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--pn-font-body);
  color:var(--pn-ink);
  background:var(--pn-bone);
  overflow-x:hidden;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:var(--pn-font-display); font-weight:700; letter-spacing:-.01em; color:var(--pn-deep)}
h1{font-size:clamp(2.4rem,5vw,4.5rem); line-height:1.05}
h2{font-size:clamp(1.9rem,3.4vw,2.9rem); line-height:1.15}
h3{font-size:clamp(1.3rem,2vw,1.6rem)}
a{color:var(--pn-terracotta); text-decoration:none; transition:color .25s}
a:hover{color:var(--pn-clay)}
img{max-width:100%; height:auto}
.section{padding:clamp(60px,8vw,110px) 0}
.section-cream{background:var(--pn-cream)}
.eyebrow{
  display:inline-block;
  font-family:var(--pn-font-script);
  color:var(--pn-terracotta);
  font-size:1.6rem;
  margin-bottom:.4rem;
  line-height:1;
}
.divider-gold{
  width:64px; height:3px; background:linear-gradient(90deg,var(--pn-gold),var(--pn-gold-soft));
  margin:14px auto 26px; border-radius:3px;
}
.divider-gold.start{margin-left:0; margin-right:0}

/* ===== Buttons ===== */
.btn-pn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.85rem 1.6rem; border-radius:50px; font-weight:600;
  font-size:.95rem; letter-spacing:.02em; border:none; cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.btn-pn-primary{background:linear-gradient(135deg,var(--pn-terracotta),var(--pn-clay)); color:#fff; box-shadow:0 10px 24px -10px rgba(176,74,47,.7)}
.btn-pn-primary:hover{transform:translateY(-2px); color:#fff; box-shadow:0 16px 30px -10px rgba(176,74,47,.85)}
.btn-pn-gold{background:linear-gradient(135deg,var(--pn-gold),var(--pn-gold-soft)); color:#1a1a1a; box-shadow:0 10px 24px -10px rgba(201,162,74,.7)}
.btn-pn-gold:hover{transform:translateY(-2px); color:#1a1a1a}
.btn-pn-ghost{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.7)}
.btn-pn-ghost:hover{background:#fff; color:var(--pn-deep)}
.btn-pn-outline{background:transparent; color:var(--pn-deep); border:1.5px solid var(--pn-deep)}
.btn-pn-outline:hover{background:var(--pn-deep); color:#fff}

/* ===== Header / Navbar ===== */
.pn-navbar{
  position:fixed; top:0; left:0; right:0; z-index:1030;
  padding:14px 0; transition:all .35s ease;
  background:linear-gradient(180deg,rgba(14,34,51,.55),transparent);
}
.pn-navbar.scrolled{
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(180%) blur(14px);
  box-shadow:0 6px 20px -10px rgba(0,0,0,.2);
  padding:8px 0;
}
.pn-navbar .brand{display:flex; align-items:center; gap:.7rem; color:#fff; font-family:var(--pn-font-display); font-size:1.25rem; font-weight:700}
.pn-navbar.scrolled .brand{color:var(--pn-deep)}
.pn-navbar .brand img{height:52px; width:52px; object-fit:cover; border-radius:50%; border:2px solid rgba(255,255,255,.6); box-shadow:var(--pn-shadow-soft)}
.pn-navbar.scrolled .brand img{border-color:var(--pn-gold)}
.pn-nav-links{display:flex; gap:2rem; list-style:none; padding:0; margin:0; align-items:center}
.pn-nav-links a{color:#fff; font-weight:500; font-size:.95rem; position:relative; padding:.4rem 0}
.pn-navbar.scrolled .pn-nav-links a{color:var(--pn-deep)}
.pn-nav-links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px;
  background:var(--pn-gold); transition:width .3s ease;
}
.pn-nav-links a:hover::after, .pn-nav-links a.active::after{width:100%}
.pn-burger{display:none; background:none; border:none; color:#fff; font-size:1.6rem}
.pn-navbar.scrolled .pn-burger{color:var(--pn-deep)}

@media (max-width: 991px){
  .pn-burger{display:block}
  .pn-nav-links{
    position:fixed; top:0; right:-100%; width:80%; max-width:320px; height:100vh;
    background:#fff; flex-direction:column; align-items:flex-start; padding:90px 30px 30px;
    transition:right .35s ease; box-shadow:-10px 0 30px rgba(0,0,0,.15); gap:1.2rem;
  }
  .pn-nav-links.open{right:0}
  .pn-nav-links a{color:var(--pn-deep)}
}

/* ===== Hero Slider ===== */
.pn-hero{position:relative; height:100vh; min-height:620px; overflow:hidden}
.pn-hero .slide{
  position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease;
  background-size:cover; background-position:center;
}
.pn-hero .slide.active{opacity:1; z-index:2}
.pn-hero .slide::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(14,34,51,.45) 0%,rgba(14,34,51,.25) 40%,rgba(14,34,51,.85) 100%);
}
.pn-hero .slide.kenburns::after{
  content:''; position:absolute; inset:0;
  background:inherit; background-size:cover; background-position:center;
  animation:kenburns 12s ease-in-out infinite alternate;
}
@keyframes kenburns{
  from{transform:scale(1)}
  to{transform:scale(1.12)}
}
.pn-hero-content{
  position:absolute; inset:0; z-index:5; display:flex; flex-direction:column;
  justify-content:center; align-items:flex-start; color:#fff;
  padding:0 6vw; max-width:900px;
}
.pn-hero-content .eyebrow{color:var(--pn-gold-soft)}
.pn-hero-content h1{color:#fff; text-shadow:0 4px 30px rgba(0,0,0,.4); margin-bottom:1rem}
.pn-hero-content p{font-size:clamp(1rem,1.4vw,1.25rem); max-width:620px; margin-bottom:2rem; opacity:.95}
.pn-hero-content .actions{display:flex; gap:1rem; flex-wrap:wrap}
.pn-hero-dots{
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
  display:flex; gap:10px; z-index:6;
}
.pn-hero-dots button{
  width:40px; height:4px; background:rgba(255,255,255,.4); border:none; cursor:pointer;
  transition:background .3s, width .3s;
}
.pn-hero-dots button.active{background:var(--pn-gold); width:60px}
.pn-hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.15);
  border:1.5px solid rgba(255,255,255,.4); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
  backdrop-filter:blur(8px); transition:all .3s;
}
.pn-hero-arrow:hover{background:var(--pn-gold); border-color:var(--pn-gold); color:var(--pn-deep)}
.pn-hero-arrow.prev{left:30px}
.pn-hero-arrow.next{right:30px}
.pn-hero-scroll{
  position:absolute; bottom:30px; right:40px; z-index:6; color:#fff;
  writing-mode:vertical-rl; font-size:.8rem; letter-spacing:.3em; text-transform:uppercase;
  display:flex; align-items:center; gap:1rem;
}
.pn-hero-scroll::after{content:''; width:1.5px; height:60px; background:#fff; animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleY(.3); transform-origin:top}50%{transform:scaleY(1)}}
@media (max-width:768px){
  .pn-hero-arrow{display:none}
  .pn-hero-scroll{display:none}
}

/* ===== Section headers ===== */
.section-head{text-align:center; max-width:720px; margin:0 auto 60px}
.section-head p{color:var(--pn-muted); font-size:1.05rem}

/* ===== Stats ===== */
.stats-band{
  background:linear-gradient(135deg,var(--pn-deep),#163046);
  padding:60px 0; color:#fff;
}
.stat-item{text-align:center; padding:14px}
.stat-item .num{font-family:var(--pn-font-display); font-size:3rem; color:var(--pn-gold-soft); font-weight:700; line-height:1}
.stat-item .label{margin-top:6px; font-size:.95rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85}

/* ===== Map of Peru (24 regions, mapsvg-style) ===== */
.peru-map-wrap{
  position:relative; background:radial-gradient(ellipse at center,#fffaf0 0%, #f3e7c8 70%, #e8d5a0 100%);
  border-radius:24px; padding:24px; box-shadow:var(--pn-shadow);
  border:1px solid rgba(201,162,74,.3);
}
.peru-map-wrap svg{width:100%; height:auto; max-height:720px; display:block; overflow:visible}
.peru-regions .peru-region{
  stroke:#fffaf0; stroke-width:.9;
  cursor:pointer;
  transition:fill .35s ease, stroke-width .25s ease, transform .35s cubic-bezier(.2,.8,.2,1), filter .35s ease;
  transform-origin:center; transform-box:fill-box;
}
/* Zone fills (logo palette: terracotta, gold, jade, deep blue) */
.peru-region.zone-costa     { fill:url(#pn-grad-costa);     }
.peru-region.zone-sierra    { fill:url(#pn-grad-sierra);    }
.peru-region.zone-selva     { fill:url(#pn-grad-selva);     }
.peru-region.zone-altiplano { fill:url(#pn-grad-altiplano); }
.peru-region.is-lake        { fill:#7fc4e8 !important; opacity:.85; pointer-events:none; stroke:#fff; }

.peru-region:hover,
.peru-region.active{
  stroke-width:2.2; stroke:#fff;
  filter:drop-shadow(0 10px 18px rgba(122,46,31,.5)) brightness(1.12) saturate(1.15);
  transform:translateY(-2px) scale(1.015);
}
.peru-region.dim{ opacity:.35; filter:grayscale(.4); }

/* Floating tooltip (mapsvg style) */
.peru-tooltip{
  position:fixed; z-index:9999; pointer-events:none;
  background:#1a0e08; color:#fff7e8; padding:8px 14px; border-radius:10px;
  font-family:var(--pn-font-body); font-size:.85rem; font-weight:600;
  letter-spacing:.04em; box-shadow:0 12px 28px rgba(0,0,0,.35);
  border:1px solid rgba(201,162,74,.5);
  transform:translate(-50%,-130%); opacity:0;
  transition:opacity .15s ease;
  white-space:nowrap;
}
.peru-tooltip::after{
  content:""; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%) rotate(45deg);
  width:10px; height:10px; background:#1a0e08; border-right:1px solid rgba(201,162,74,.5); border-bottom:1px solid rgba(201,162,74,.5);
}
.peru-tooltip.show{opacity:1}
.peru-tooltip .tt-zone{display:block; font-size:.7rem; color:var(--pn-gold-soft); font-weight:500; text-transform:uppercase; letter-spacing:.12em; margin-bottom:2px}

/* Legend */
.map-legend{
  display:flex; flex-wrap:wrap; gap:14px 22px; justify-content:center;
  margin-top:18px; padding-top:18px; border-top:1px dashed rgba(201,162,74,.4);
  font-size:.85rem; color:var(--pn-deep); font-weight:600;
}
.map-legend .lg-dot{
  display:inline-block; width:14px; height:14px; border-radius:4px; margin-right:6px;
  vertical-align:middle; border:1px solid rgba(0,0,0,.1);
}
.lg-dot.zone-costa     { background:linear-gradient(135deg,#e8c479,#c08a3e); }
.lg-dot.zone-sierra    { background:linear-gradient(135deg,#d77b4f,#9b3a1f); }
.lg-dot.zone-selva     { background:linear-gradient(135deg,#7fb069,#3e7a3a); }
.lg-dot.zone-altiplano { background:linear-gradient(135deg,#5da3c9,#2a5d80); }

.map-info-card{
  background:#fff; padding:26px; border-radius:18px;
  box-shadow:var(--pn-shadow-soft); border-left:4px solid var(--pn-gold);
  min-height:300px;
}
.map-info-card h3{margin-top:0; color:var(--pn-clay)}
.map-info-card .region-name{display:block; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--pn-gold); font-weight:700; margin-bottom:6px}
.map-info-card .duration{display:inline-block; background:var(--pn-cream); color:var(--pn-deep); padding:4px 12px; border-radius:50px; font-size:.85rem; margin-bottom:10px; font-weight:600}
.map-info-card .price-tag{display:inline-block; background:var(--pn-terracotta); color:#fff; padding:4px 12px; border-radius:50px; font-size:.85rem; margin-left:6px; font-weight:600}
@media(max-width:768px){
  .peru-map-wrap svg{max-height:520px}
}

/* ===== Packages ===== */
.pkg-card{
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:var(--pn-shadow-soft); transition:transform .35s ease, box-shadow .35s ease;
  height:100%; display:flex; flex-direction:column;
}
.pkg-card:hover{transform:translateY(-8px); box-shadow:var(--pn-shadow)}
.pkg-card .img-wrap{position:relative; overflow:hidden; aspect-ratio:4/3}
.pkg-card .img-wrap img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease}
.pkg-card:hover .img-wrap img{transform:scale(1.08)}
.pkg-card .badge-days{
  position:absolute; top:14px; left:14px; background:var(--pn-gold);
  color:var(--pn-deep); padding:6px 14px; border-radius:50px; font-size:.8rem; font-weight:700;
}
.pkg-card .body{padding:24px; flex:1; display:flex; flex-direction:column}
.pkg-card .body h3{margin:0 0 8px; font-size:1.25rem}
.pkg-card .route{color:var(--pn-muted); font-size:.85rem; margin-bottom:12px; display:flex; align-items:center; gap:.4rem}
.pkg-card .desc{color:#444; font-size:.93rem; flex:1; margin-bottom:16px}
.pkg-card .footer{display:flex; justify-content:space-between; align-items:center; padding-top:14px; border-top:1px solid var(--pn-line)}
.pkg-card .price{font-family:var(--pn-font-display); color:var(--pn-clay); font-size:1.3rem; font-weight:700}
.pkg-card .price small{font-size:.7rem; color:var(--pn-muted); display:block; font-weight:400; font-family:var(--pn-font-body)}
.pkg-card .more{color:var(--pn-terracotta); font-weight:600; font-size:.9rem}

/* ===== Itinerary modal ===== */
.modal-content{border:none; border-radius:20px; overflow:hidden}
.modal-header{background:linear-gradient(135deg,var(--pn-deep),#163046); color:#fff; border:none; padding:24px 28px}
.modal-header .modal-title{font-family:var(--pn-font-display); font-size:1.6rem; color:#fff}
.modal-header .btn-close{filter:invert(1)}
.modal-body{padding:32px}
.itinerary-tabs{display:flex; gap:8px; flex-wrap:wrap; border-bottom:1px solid var(--pn-line); margin-bottom:24px; padding-bottom:0}
.itinerary-tab{
  background:transparent; border:none; padding:12px 18px; cursor:pointer;
  font-weight:600; color:var(--pn-muted); border-bottom:3px solid transparent;
  transition:all .25s; font-size:.9rem;
}
.itinerary-tab:hover{color:var(--pn-deep)}
.itinerary-tab.active{color:var(--pn-terracotta); border-bottom-color:var(--pn-terracotta)}
.day-panel{display:none; animation:fadeIn .4s ease}
.day-panel.active{display:block}
.day-panel h4{color:var(--pn-clay); margin-bottom:10px; display:flex; align-items:center; gap:.6rem}
.day-panel h4 .day-num{
  background:var(--pn-gold); color:var(--pn-deep);
  width:36px; height:36px; border-radius:50%; display:inline-flex;
  align-items:center; justify-content:center; font-size:.9rem; font-weight:700;
  font-family:var(--pn-font-body);
}
.day-panel ul{padding-left:1.2rem}
.day-panel ul li{margin-bottom:6px; color:#333}
.includes-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; padding-top:24px; border-top:1px solid var(--pn-line)}
.includes-grid h5{color:var(--pn-deep); font-family:var(--pn-font-body); font-size:.95rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:10px}
.includes-grid ul{list-style:none; padding:0; font-size:.9rem}
.includes-grid li{padding:4px 0; display:flex; align-items:flex-start; gap:.5rem}
.includes-grid .ok li::before{content:'✓'; color:#2a8b4f; font-weight:700}
.includes-grid .no li::before{content:'✕'; color:#b04a2f; font-weight:700}
@media (max-width:576px){.includes-grid{grid-template-columns:1fr}}
@keyframes fadeIn{from{opacity:0; transform:translateY(8px)}to{opacity:1; transform:none}}

/* ===== Gallery ===== */
.gallery-filters{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:40px}
.gallery-filter{
  background:#fff; border:1px solid var(--pn-line); padding:8px 18px; border-radius:50px;
  cursor:pointer; font-weight:600; font-size:.88rem; color:var(--pn-deep); transition:all .25s;
}
.gallery-filter:hover{border-color:var(--pn-gold)}
.gallery-filter.active{background:var(--pn-deep); color:#fff; border-color:var(--pn-deep)}
.gallery-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:14px; grid-auto-rows:200px;
}
.gallery-item{
  position:relative; overflow:hidden; border-radius:12px; cursor:pointer;
  box-shadow:var(--pn-shadow-soft); transition:transform .35s ease;
}
.gallery-item.tall{grid-row:span 2}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 50%, rgba(14,34,51,.85));
  opacity:0; transition:opacity .35s ease;
}
.gallery-item:hover::after{opacity:1}
.gallery-item .caption{
  position:absolute; bottom:0; left:0; right:0; padding:18px; color:#fff; z-index:2;
  transform:translateY(20px); opacity:0; transition:all .35s ease;
}
.gallery-item:hover .caption{transform:none; opacity:1}
.gallery-item .caption h4{color:#fff; font-size:1.1rem; margin:0; font-family:var(--pn-font-display)}
.gallery-item .caption span{font-size:.8rem; opacity:.85}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; background:rgba(10,18,28,.94); z-index:2000;
  display:none; align-items:center; justify-content:center; padding:30px;
}
.lightbox.open{display:flex; animation:fadeIn .3s}
.lightbox img{max-width:90vw; max-height:85vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lightbox .lb-close, .lightbox .lb-prev, .lightbox .lb-next{
  position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3);
  color:#fff; width:50px; height:50px; border-radius:50%; cursor:pointer; font-size:1.2rem;
  display:flex; align-items:center; justify-content:center; transition:all .25s;
}
.lightbox .lb-close:hover, .lightbox .lb-prev:hover, .lightbox .lb-next:hover{background:var(--pn-gold); color:var(--pn-deep); border-color:var(--pn-gold)}
.lightbox .lb-close{top:24px; right:24px}
.lightbox .lb-prev{left:24px; top:50%; transform:translateY(-50%)}
.lightbox .lb-next{right:24px; top:50%; transform:translateY(-50%)}
.lightbox .lb-caption{position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:#fff; font-family:var(--pn-font-display); font-size:1.1rem}

/* ===== Team ===== */
.team-card{
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:var(--pn-shadow-soft); text-align:center; padding-bottom:24px;
  transition:transform .3s, box-shadow .3s;
}
.team-card:hover{transform:translateY(-6px); box-shadow:var(--pn-shadow)}
.team-card .photo{
  width:100%; aspect-ratio:1; background:linear-gradient(135deg,var(--pn-cream),#e8d9b3);
  display:flex; align-items:center; justify-content:center; font-family:var(--pn-font-display);
  font-size:4rem; color:var(--pn-clay); position:relative; overflow:hidden;
}
.team-card .photo img{width:100%; height:100%; object-fit:cover}
.team-card h3{margin:24px 0 6px; font-size:1.25rem}
.team-card .role{display:block; color:var(--pn-terracotta); font-weight:600; font-size:.85rem; letter-spacing:.05em; text-transform:uppercase; margin-bottom:12px}
.team-card .bio{color:var(--pn-muted); font-size:.9rem; padding:0 22px; margin-bottom:14px}
.team-card .socials a{
  display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center;
  border-radius:50%; background:var(--pn-cream); color:var(--pn-deep); margin:0 4px;
  transition:all .25s;
}
.team-card .socials a:hover{background:var(--pn-deep); color:#fff}

/* ===== Why Us ===== */
.why-card{
  background:#fff; padding:30px 26px; border-radius:16px;
  box-shadow:var(--pn-shadow-soft); height:100%; transition:transform .3s, box-shadow .3s;
  border-top:3px solid transparent;
}
.why-card:hover{transform:translateY(-6px); box-shadow:var(--pn-shadow); border-top-color:var(--pn-gold)}
.why-card .icon{
  width:64px; height:64px; border-radius:14px;
  background:linear-gradient(135deg,var(--pn-cream),#efdfa9);
  display:flex; align-items:center; justify-content:center;
  color:var(--pn-clay); font-size:1.6rem; margin-bottom:18px;
}
.why-card h3{font-size:1.15rem; margin-bottom:8px}
.why-card p{color:var(--pn-muted); font-size:.92rem; margin:0}

/* ===== Testimonials ===== */
.testimonial-card{
  background:#fff; padding:36px; border-radius:18px; box-shadow:var(--pn-shadow-soft);
  text-align:center; max-width:780px; margin:0 auto; position:relative;
}
.testimonial-card::before{
  content:'"'; position:absolute; top:-30px; left:30px; font-family:var(--pn-font-display);
  font-size:8rem; color:var(--pn-gold); opacity:.4; line-height:1;
}
.testimonial-card p{font-size:1.15rem; font-style:italic; color:#333; margin-bottom:24px; font-family:var(--pn-font-display); font-weight:500; line-height:1.5}
.testimonial-card .author{font-weight:700; color:var(--pn-deep)}
.testimonial-card .author span{display:block; color:var(--pn-muted); font-weight:400; font-size:.85rem}
.testimonial-dots{display:flex; gap:8px; justify-content:center; margin-top:24px}
.testimonial-dots button{width:10px; height:10px; border-radius:50%; background:#ddd; border:none; cursor:pointer; transition:all .25s}
.testimonial-dots button.active{background:var(--pn-terracotta); width:30px; border-radius:5px}

/* ===== Contact form ===== */
.contact-wrap{
  background:#fff; padding:42px; border-radius:20px; box-shadow:var(--pn-shadow);
}
.form-control, .form-select{
  border:1.5px solid var(--pn-line); border-radius:10px; padding:.85rem 1rem;
  font-size:.95rem; transition:all .25s; background:#fafaf7;
}
.form-control:focus, .form-select:focus{
  border-color:var(--pn-gold); box-shadow:0 0 0 4px rgba(201,162,74,.18); background:#fff;
}
.form-label{font-weight:600; color:var(--pn-deep); margin-bottom:6px; font-size:.9rem}
.captcha-box{
  display:flex; align-items:center; gap:14px; padding:14px;
  background:var(--pn-cream); border-radius:10px; border:1px dashed rgba(0,0,0,.15);
}
.captcha-q{
  font-family:var(--pn-font-display); font-size:1.6rem; font-weight:700;
  background:#fff; padding:8px 18px; border-radius:8px; color:var(--pn-clay);
  letter-spacing:.15em; user-select:none;
  background-image:linear-gradient(45deg, transparent 48%, rgba(176,74,47,.15) 49%, rgba(176,74,47,.15) 51%, transparent 52%);
}
.captcha-box input{max-width:140px}
.captcha-box .reload{
  background:none; border:none; color:var(--pn-deep); cursor:pointer; font-size:1.1rem;
  width:36px; height:36px; border-radius:50%; transition:all .25s;
}
.captcha-box .reload:hover{background:#fff; transform:rotate(180deg)}
.form-msg{padding:12px 16px; border-radius:8px; margin-top:14px; display:none; font-size:.9rem}
.form-msg.success{display:block; background:#dcf3e3; color:#1d6b3a; border:1px solid #a9d9b9}
.form-msg.error{display:block; background:#fce4dd; color:#9a2e15; border:1px solid #e9b5a4}

/* ===== Floating WhatsApp ===== */
.wa-float{
  position:fixed; bottom:26px; right:26px; z-index:1040;
  width:62px; height:62px; border-radius:50%;
  background:#25d366; color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:1.9rem; box-shadow:0 10px 30px -8px rgba(37,211,102,.7);
  transition:transform .25s; text-decoration:none;
}
.wa-float:hover{transform:scale(1.1); color:#fff}
.wa-float::before{
  content:''; position:absolute; inset:0; border-radius:50%;
  background:#25d366; animation:waPulse 2s ease-out infinite; z-index:-1;
}
@keyframes waPulse{
  0%{transform:scale(1); opacity:.6}
  100%{transform:scale(1.6); opacity:0}
}

/* ===== Footer ===== */
.pn-footer{background:#0a1a26; color:#cfd9e2; padding:70px 0 30px}
.pn-footer h5{color:#fff; font-family:var(--pn-font-display); margin-bottom:18px; font-size:1.15rem}
.pn-footer a{color:#cfd9e2; font-size:.92rem; line-height:2}
.pn-footer a:hover{color:var(--pn-gold-soft)}
.pn-footer .brand-foot{display:flex; align-items:center; gap:.7rem; margin-bottom:14px}
.pn-footer .brand-foot img{height:50px; width:50px; border-radius:50%; object-fit:cover; border:2px solid var(--pn-gold)}
.pn-footer .brand-foot span{font-family:var(--pn-font-display); font-size:1.2rem; color:#fff}
.pn-footer .socials a{
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08);
  display:inline-flex; align-items:center; justify-content:center; margin-right:8px;
  transition:all .25s;
}
.pn-footer .socials a:hover{background:var(--pn-gold); color:var(--pn-deep)}
.pn-footer .copyright{
  border-top:1px solid rgba(255,255,255,.1); padding-top:24px; margin-top:50px;
  text-align:center; font-size:.85rem; color:#8a9aab;
}

/* ===== Page header (interior pages) ===== */
.page-head{
  position:relative; padding:170px 0 80px; text-align:center; color:#fff;
  background:linear-gradient(rgba(14,34,51,.7),rgba(14,34,51,.85)),
             url('../images/page-heading-bg.jpg') center/cover no-repeat;
}
.page-head h1{color:#fff; margin-bottom:.4rem}
.page-head .crumbs{font-size:.92rem; opacity:.85}
.page-head .crumbs a{color:var(--pn-gold-soft)}

/* ===== Reveal animations ===== */
.reveal{opacity:0; transform:translateY(30px); transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1; transform:none}

/* ===== Utilities ===== */
.text-gold{color:var(--pn-gold)!important}
.bg-deep{background:var(--pn-deep)!important; color:#fff}
.shadow-soft{box-shadow:var(--pn-shadow-soft)}
.rounded-xl{border-radius:var(--pn-radius)}

/* small media tweaks */
@media (max-width:768px){
  .contact-wrap{padding:26px}
  .testimonial-card{padding:28px}
  .testimonial-card::before{font-size:5rem; top:-12px; left:14px}
  .modal-body{padding:22px}
}

/* ============================================================
   DESTINOS PAGE — Mapa individual por región (24 regiones)
   ============================================================ */
.destinos-layout{ display:grid; grid-template-columns: 1.05fr .95fr; gap:36px; align-items:flex-start; }
@media (max-width: 991px){ .destinos-layout{ grid-template-columns: 1fr; } }

.destinos-map-card{
  background:linear-gradient(145deg, #fffdf6 0%, #f4eedc 100%);
  border-radius:22px; padding:22px 22px 14px;
  box-shadow:var(--pn-shadow);
  position:sticky; top:96px;
}
.destinos-map-card .peru-map-wrap{ background:transparent; box-shadow:none; padding:0; }

/* Region detail panel */
.region-detail{
  background:#fff;
  border-radius:22px;
  box-shadow:var(--pn-shadow);
  padding:34px 32px;
  position:relative;
  overflow:hidden;
  min-height:600px;
}
.region-detail::before{
  content:""; position:absolute; top:0; left:0; right:0; height:6px;
  background:linear-gradient(90deg, var(--pn-gold), var(--pn-terracotta), var(--pn-gold));
}
.region-detail .rd-eyebrow{
  font-family:var(--pn-font-script); color:var(--pn-terracotta);
  font-size:1.4rem; line-height:1;
}
.region-detail .rd-zone{
  display:inline-block; font-size:.7rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  padding:5px 12px; border-radius:50px; margin-left:10px;
  vertical-align:middle; color:#fff;
}
.rd-zone.zone-costa     { background:linear-gradient(135deg,#e8c479,#c08a3e); color:#3a2510; }
.rd-zone.zone-sierra    { background:linear-gradient(135deg,#d77b4f,#9b3a1f); }
.rd-zone.zone-selva     { background:linear-gradient(135deg,#7fb069,#3e7a3a); }
.rd-zone.zone-altiplano { background:linear-gradient(135deg,#5da3c9,#2a5d80); }

.region-detail h2.rd-title{
  font-size:clamp(2rem,3.4vw,2.8rem);
  margin:.3rem 0 .4rem; color:var(--pn-deep);
}
.region-detail .rd-meta{
  font-size:.88rem; color:var(--pn-muted); margin-bottom:14px;
}
.region-detail .rd-meta i{ color:var(--pn-gold); margin-right:6px; }
.region-detail .rd-intro{
  font-size:1.02rem; color:var(--pn-ink); line-height:1.7;
  border-left:3px solid var(--pn-gold); padding-left:14px;
  margin:18px 0 22px;
}
.rd-highlights-title{
  font-family:var(--pn-font-display); font-weight:700;
  color:var(--pn-clay); font-size:1.15rem; margin:6px 0 14px;
  display:flex; align-items:center; gap:10px;
}
.rd-highlights-title::before{
  content:""; display:inline-block; width:30px; height:2px;
  background:var(--pn-gold);
}
.rd-highlights{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.rd-highlights li{
  background:var(--pn-bone);
  border-left:3px solid var(--pn-terracotta);
  border-radius:10px;
  padding:12px 14px 12px 16px;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.rd-highlights li:hover{
  transform:translateX(4px);
  box-shadow:var(--pn-shadow-soft);
  background:#fff;
}
.rd-highlights li .h-name{
  display:block; font-weight:700; color:var(--pn-deep);
  font-size:.98rem; margin-bottom:2px;
}
.rd-highlights li .h-name::before{
  content:"\f3c5"; font-family:"Font Awesome 6 Free","Font Awesome 5 Free";
  font-weight:900; color:var(--pn-gold); margin-right:8px; font-size:.85rem;
}
.rd-highlights li .h-desc{
  display:block; color:var(--pn-muted); font-size:.9rem; line-height:1.55;
}
.region-detail .rd-cta{ margin-top:22px; display:flex; gap:10px; flex-wrap:wrap; }

/* Empty state */
.region-detail.is-empty{ display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.region-detail.is-empty .empty-icon{
  font-size:3.4rem; color:var(--pn-gold-soft); margin-bottom:14px;
}

/* Quick region search */
.region-search{
  display:flex; gap:10px; margin-bottom:18px;
}
.region-search input{
  flex:1; padding:12px 16px; border:1.5px solid var(--pn-line);
  border-radius:50px; font-family:inherit; font-size:.95rem;
  background:#fff; transition:border-color .2s;
}
.region-search input:focus{ outline:none; border-color:var(--pn-gold); }

.region-chips{
  display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px;
}
.region-chips .chip{
  font-size:.78rem; padding:5px 11px; border-radius:50px;
  background:#fff; border:1px solid var(--pn-line); cursor:pointer;
  color:var(--pn-deep); font-weight:500; transition:all .2s;
}
.region-chips .chip:hover{ background:var(--pn-cream); border-color:var(--pn-gold); }
.region-chips .chip.active{
  background:linear-gradient(135deg,var(--pn-terracotta),var(--pn-clay));
  color:#fff; border-color:transparent;
}

/* WhatsApp CTA inside package card footer */
.pkg-card .footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.pkg-card .btn-sm-wa{padding:.5rem .9rem;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem}
.pkg-card .btn-sm-wa i{color:#fff}

/* ============== DROPDOWN MENU ============== */
.pn-dropdown{position:relative}
.pn-drop-toggle{cursor:pointer}
.pn-drop-toggle .fa-caret-down{font-size:.7em; margin-left:.25rem; transition:transform .25s}
.pn-dropdown:hover .pn-drop-toggle .fa-caret-down,
.pn-dropdown.open .pn-drop-toggle .fa-caret-down{transform:rotate(180deg)}
.pn-drop-menu{
  position:absolute; top:100%; left:0; min-width:240px;
  background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.18);
  border-radius:10px; padding:.5rem 0; margin:0; list-style:none;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:1000;
}
.pn-dropdown:hover .pn-drop-menu,
.pn-dropdown.open .pn-drop-menu{opacity:1; visibility:visible; transform:translateY(0)}
.pn-drop-menu li{margin:0}
.pn-drop-menu a{
  display:block; padding:.7rem 1.1rem; color:var(--pn-deep)!important;
  font-weight:500; font-size:.92rem; white-space:nowrap; border-radius:6px;
  margin:0 .35rem; transition:background .2s, color .2s;
}
.pn-drop-menu a:hover, .pn-drop-menu a.active{
  background:var(--pn-cream); color:var(--pn-gold)!important;
}
.pn-drop-menu a::after{display:none}
@media (max-width:991px){
  .pn-drop-menu{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; padding:0 0 0 1rem; background:transparent;
  }
  .pn-drop-menu a{padding:.45rem 0; color:var(--pn-deep)!important}
}

/* ============== VIAJES — TARJETAS GRANDES ============== */
.viaje-card{
  display:grid; grid-template-columns:1.05fr 1fr; gap:2.5rem;
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 18px 50px rgba(20,40,60,.10);
  margin-bottom:3rem; padding:2rem;
  opacity:0; transform:translateY(30px); transition:opacity .8s, transform .8s;
}
.viaje-card.in{opacity:1; transform:translateY(0)}
.viaje-card.reverse{grid-template-columns:1fr 1.05fr}
.viaje-card.reverse .viaje-media{order:2}
.viaje-card.reverse .viaje-content{order:1}

.viaje-img-wrap{position:relative; border-radius:14px; overflow:hidden; aspect-ratio:16/10; background:#eee}
.viaje-img-wrap img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s}
.viaje-card:hover .viaje-img-wrap img{transform:scale(1.04)}
.viaje-img-wrap .badge-days{
  position:absolute; top:14px; left:14px;
  background:var(--pn-gold); color:#fff; padding:.4rem .85rem;
  border-radius:30px; font-size:.85rem; font-weight:600;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
}
.badge-pais{
  position:absolute; top:14px; right:14px;
  background:rgba(20,40,60,.92); color:#fff; padding:.4rem .85rem;
  border-radius:30px; font-size:.78rem; font-weight:600;
  box-shadow:0 6px 16px rgba(0,0,0,.25); letter-spacing:.02em;
}
.badge-pais .fa{margin-right:.35rem; color:var(--pn-gold)}

.viaje-thumbs{display:flex; gap:.5rem; margin-top:.7rem}
.vt-btn{
  flex:1; aspect-ratio:16/10; padding:0; border:2px solid transparent;
  border-radius:8px; overflow:hidden; cursor:pointer; background:none;
  transition:border-color .2s, transform .2s;
}
.vt-btn img{width:100%; height:100%; object-fit:cover; display:block}
.vt-btn:hover{transform:translateY(-2px)}
.vt-btn.active{border-color:var(--pn-gold)}

.viaje-video{margin-top:1rem}
.video-wrap{
  position:relative; padding-top:56.25%; border-radius:12px; overflow:hidden;
  background:#000; box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.video-wrap iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.video-cap{
  font-size:.82rem; color:#666; margin:.5rem 0 0; text-align:center;
}
.video-cap .fa{color:var(--pn-gold); margin-right:.3rem}

.viaje-content .eyebrow{font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600}
.viaje-content h2{
  font-family:'Playfair Display',serif; color:var(--pn-deep);
  font-size:clamp(1.6rem, 3vw, 2.2rem); margin:.4rem 0 .6rem; line-height:1.15;
}
.viaje-content .divider-gold{margin:0 0 1rem}
.viaje-summary{color:#444; font-size:1rem; line-height:1.65; margin-bottom:1.2rem}
.viaje-h4{
  font-family:'Playfair Display',serif; color:var(--pn-deep);
  font-size:1.15rem; font-weight:700; margin:1rem 0 .8rem;
}
.viaje-h4 .fa{margin-right:.4rem}
.viaje-highlights{list-style:none; padding:0; margin:0 0 1.5rem; display:grid; gap:.55rem}
.viaje-highlights li{
  position:relative; padding:.5rem .5rem .5rem 1.6rem;
  border-left:3px solid var(--pn-gold); background:#fafaf7;
  border-radius:0 6px 6px 0; font-size:.93rem; color:#333; line-height:1.5;
}
.viaje-highlights li::before{
  content:"✦"; position:absolute; left:.55rem; top:.5rem; color:var(--pn-gold);
  font-size:.85rem;
}
.viaje-highlights li strong{color:var(--pn-deep)}

.viaje-actions{display:flex; gap:.75rem; flex-wrap:wrap}

@media (max-width:900px){
  .viaje-card, .viaje-card.reverse{grid-template-columns:1fr; gap:1.5rem; padding:1.2rem}
  .viaje-card.reverse .viaje-media{order:1}
  .viaje-card.reverse .viaje-content{order:2}
}

/* Fix: page-heading bajo navbar sticky en páginas de viajes */
.pn-navbar.scrolled + .page-heading{padding-top:7rem !important}
