:root{
  --cream:#F4ECD8;
  --cream-2:#EFE3C8;
  --paper:#FBF5E6;
  --terracota:#C2410C;
  --terracota-deep:#9A2D08;
  --ocre:#D97706;
  --forest:#1C3829;
  --forest-2:#2A4A37;
  --ink:#2A1810;
  --ink-soft:#5C4232;
  --rust:#7C2D12;
  --misiones:#2A9D5F;
}
*{ -webkit-font-smoothing:antialiased; }
html{ scroll-behavior:smooth; }
body{
  font-family:'Outfit', sans-serif;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}
.font-display{ font-family:'Fraunces', serif; font-optical-sizing:auto; }
.font-hand{ font-family:'Caveat', cursive; }
.font-mono{ font-family:'JetBrains Mono', monospace; }

.paper-texture{
  background-image:
    radial-gradient(circle at 25% 25%, rgba(124,45,18,0.04) 0%, transparent 50%),
    radial-gradient(circle at 75% 75%, rgba(28,56,41,0.04) 0%, transparent 50%),
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.1 0 0 0 0 0.05 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.marquee{ display:flex; overflow:hidden; gap:0; }
.marquee-track{
  display:flex; gap:3rem; padding-right:3rem;
  animation: scroll 40s linear infinite;
  flex-shrink:0; align-items:center;
}
@keyframes scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-100%); }
}

.hero-title{
  font-family:'Fraunces', serif;
  font-weight:900;
  line-height:0.92;
  letter-spacing:-0.04em;
}
.hero-title em{
  font-style:italic;
  font-weight:400;
  color:var(--terracota);
}

.stamp{
  border:2px dashed var(--terracota);
  color:var(--terracota);
  border-radius:50%;
  transform:rotate(-12deg);
  transition:transform 0.6s cubic-bezier(.34,1.56,.64,1);
}
.stamp:hover{ transform:rotate(0deg) scale(1.05); }

.dotted-line{
  background-image:linear-gradient(to right, var(--ink-soft) 50%, transparent 50%);
  background-size:10px 1px;
  background-repeat:repeat-x;
  height:1px;
}

.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,1,.36,1);
}
.reveal.visible{ opacity:1; transform:translateY(0); }
.reveal-delay-1{ transition-delay:0.15s; }
.reveal-delay-2{ transition-delay:0.3s; }
.reveal-delay-3{ transition-delay:0.45s; }

.btn-primary{
  background:var(--ink);
  color:var(--paper);
  position:relative;
  overflow:hidden;
  transition:color 0.4s ease;
}
.btn-primary::before{
  content:'';
  position:absolute; inset:0;
  background:var(--terracota);
  transform:translateY(100%);
  transition:transform 0.4s cubic-bezier(.22,1,.36,1);
}
.btn-primary span{ position:relative; z-index:1; }
.btn-primary:hover::before{ transform:translateY(0); }

.journal-entry{
  position:relative;
  background:var(--paper);
  box-shadow:
    0 1px 2px rgba(42,24,16,0.04),
    0 8px 24px rgba(42,24,16,0.06),
    0 24px 60px rgba(42,24,16,0.08);
}

.map-dot{
  position:absolute;
  width:12px; height:12px;
  background:var(--terracota);
  border-radius:50%;
  box-shadow:0 0 0 5px rgba(194,65,12,0.25);
  animation:pulse 2.5s ease-in-out infinite;
  cursor:pointer;
  transform:translate(-50%,-50%);
  transition:transform 0.3s ease;
}
.map-dot:hover{
  transform:translate(-50%,-50%) scale(1.5);
  z-index:10;
}
.map-dot.origin{
  background:var(--misiones);
  box-shadow:0 0 0 5px rgba(42,157,95,0.3);
}
.map-dot.base{
  background:var(--ocre);
  box-shadow:0 0 0 5px rgba(217,119,6,0.3);
}
.map-dot .tooltip{
  position:absolute;
  bottom:calc(100% + 12px);
  left:50%;
  transform:translateX(-50%);
  background:var(--ink);
  color:var(--cream);
  padding:8px 14px;
  font-size:11px;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.3s ease;
  font-family:'JetBrains Mono', monospace;
  letter-spacing:0.05em;
  z-index:20;
}
.map-dot .tooltip::after{
  content:'';
  position:absolute;
  top:100%; left:50%;
  transform:translateX(-50%);
  border:5px solid transparent;
  border-top-color:var(--ink);
}
.map-dot:hover .tooltip{ opacity:1; }
@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 5px rgba(194,65,12,0.25); }
  50%{ box-shadow:0 0 0 12px rgba(194,65,12,0); }
}

.underline-draw{
  position:relative;
  display:inline-block;
}
.underline-draw::after{
  content:'';
  position:absolute;
  left:-2%; right:-2%; bottom:-6px;
  height:8px;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 8' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0,4 Q25,0 50,4 T100,4' stroke='%23C2410C' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat;
  background-size:100% 100%;
}

.polaroid{
  background:var(--paper);
  padding:14px 14px 50px;
  box-shadow:0 8px 30px rgba(42,24,16,0.15), 0 2px 6px rgba(42,24,16,0.08);
  transition:transform 0.5s cubic-bezier(.22,1,.36,1);
}
.polaroid:hover{ transform:rotate(0deg) translateY(-6px) !important; }

.nav-link{
  position:relative;
  transition:color 0.3s ease;
}
.nav-link::after{
  content:'';
  position:absolute;
  left:0; bottom:-4px;
  width:0; height:1px;
  background:var(--terracota);
  transition:width 0.4s cubic-bezier(.22,1,.36,1);
}
.nav-link:hover::after{ width:100%; }
.nav-link:hover{ color:var(--terracota); }

.vertical-text{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:rotate(180deg);
}

.tape{
  position:absolute;
  width:80px; height:24px;
  background:rgba(217,119,6,0.35);
  backdrop-filter:blur(1px);
  border-left:1px dashed rgba(124,45,18,0.2);
  border-right:1px dashed rgba(124,45,18,0.2);
}

::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cream-2); }
::-webkit-scrollbar-thumb{ background:var(--terracota); border-radius:0; }

.pull-quote{
  font-family:'Fraunces', serif;
  font-weight:300;
  font-style:italic;
  line-height:1.15;
  letter-spacing:-0.02em;
}

.timeline-item{
  position:relative;
  padding-left:32px;
}
.timeline-item::before{
  content:'';
  position:absolute;
  left:0; top:8px;
  width:14px; height:14px;
  background:var(--cream);
  border:2px solid var(--terracota);
  border-radius:50%;
}
.timeline-item::after{
  content:'';
  position:absolute;
  left:6px; top:22px; bottom:-20px;
  width:2px;
  background:linear-gradient(to bottom, var(--terracota), transparent);
}
.timeline-item:last-child::after{ display:none; }

.passport-stamp{
  border:2px solid var(--terracota);
  color:var(--terracota);
  padding:6px 14px;
  border-radius:2px;
  font-family:'Fraunces', serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.15em;
  font-size:11px;
  transform:rotate(-3deg);
  display:inline-block;
}

.float-slow{
  animation:floatSlow 6s ease-in-out infinite;
}
@keyframes floatSlow{
  0%,100%{ transform:translateY(0) rotate(var(--rot,0deg)); }
  50%{ transform:translateY(-12px) rotate(var(--rot,0deg)); }
}

.lift{ transition:transform 0.5s cubic-bezier(.22,1,.36,1), box-shadow 0.5s ease; }
.lift:hover{ transform:translateY(-6px); }

.cursor-go{ cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%23C2410C' stroke-width='2'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") 16 16, pointer; }

.social-card{
  position:relative;
  overflow:hidden;
  transition:all 0.5s cubic-bezier(.22,1,.36,1);
}
.social-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--ink);
  transform:translateY(100%);
  transition:transform 0.5s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.social-card:hover::before{ transform:translateY(0); }
.social-card > *{ position:relative; z-index:1; transition:color 0.3s ease; }
.social-card:hover{ color:var(--cream); border-color:var(--ink); }
.social-card:hover .social-icon{ color:var(--ocre); }

/* ===== PLANISFERIO REAL ===== */
.world-map-wrap{
  position:relative;
  background:var(--cream-2);
  overflow:hidden;
}
.world-map-svg{ display:block; }
.world-map-svg .land{
  fill:var(--paper);
  stroke:var(--ink-soft);
  stroke-width:0.4;
  stroke-linejoin:round;
  transition:fill 0.3s ease;
}
.world-map-svg .land:hover{ fill:#E8D9B5; }
.world-map-svg .land.visited{
  fill:rgba(194,65,12,0.30);
  stroke:var(--terracota);
  stroke-width:0.6;
}
.world-map-svg .land.visited:hover{ fill:rgba(194,65,12,0.5); }
.route-overlay{
  position:absolute; inset:0;
  width:100%; height:100%;
  pointer-events:none;
}
.route-overlay .route-line{
  fill:none;
  stroke:var(--terracota);
  stroke-width:1.5;
  stroke-dasharray:5 5;
  opacity:0.75;
  animation:routeDash 30s linear infinite;
}
@keyframes routeDash{
  to{ stroke-dashoffset:-500; }
}

.flag-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  background:var(--paper);
  border:1px solid rgba(42,24,16,0.15);
  font-size:13px;
  transition:all 0.3s ease;
}
.flag-chip:hover{
  border-color:var(--terracota);
  background:var(--cream-2);
  transform:translateY(-2px);
}

/* ===== LOS 7 DESTINOS ===== */
.destino-card{
  background:var(--paper);
  border:1px solid rgba(42,24,16,0.1);
  padding:28px 24px;
  position:relative;
  transition:all 0.5s cubic-bezier(.22,1,.36,1);
  overflow:hidden;
}
.destino-card:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 40px rgba(42,24,16,0.12);
  border-color:var(--terracota);
}
.destino-card .destino-num{
  font-family:'Fraunces', serif;
  font-weight:900;
  font-size:64px;
  line-height:1;
  color:rgba(194,65,12,0.14);
  position:absolute;
  top:8px; right:14px;
  transition:color 0.4s ease;
}
.destino-card:hover .destino-num{ color:rgba(194,65,12,0.35); }
.destino-card.secreto{
  background:var(--ink);
  color:var(--cream);
  border-color:var(--ink);
}
.destino-card.secreto .destino-num{ color:rgba(217,119,6,0.3); }
.destino-card.secreto:hover{ border-color:var(--ocre); }

/* ===== PACKS DE COLABORACIÓN ===== */
.pack-card{
  background:var(--paper);
  padding:32px 28px;
  height:100%;
  display:flex;
  flex-direction:column;
  border-top:4px solid var(--terracota);
  box-shadow:0 12px 40px rgba(42,24,16,0.08);
  transition:transform 0.5s cubic-bezier(.22,1,.36,1), box-shadow 0.5s ease;
}
.pack-card:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 60px rgba(42,24,16,0.14);
}
.pack-card .passport-stamp{ align-self:flex-start; }
.pack-card ul{ flex:1; }
.pack-card li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:14px;
  color:var(--ink-soft);
  padding:7px 0;
}
.pack-card li i{
  color:var(--terracota);
  margin-top:4px;
  font-size:11px;
}
.pack-featured{
  background:var(--forest);
  color:var(--cream);
  border-top-color:var(--ocre);
}
.pack-featured li{ color:rgba(244,236,216,0.75); }
.pack-featured li i{ color:var(--ocre); }

/* ===== ÍNDICE DE LA GUÍA ===== */
.guide-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:baseline;
  gap:20px;
  padding:22px 8px;
  border-bottom:1px dashed rgba(42,24,16,0.2);
  transition:all 0.4s cubic-bezier(.22,1,.36,1);
  cursor:default;
}
.guide-row:hover{
  background:var(--paper);
  padding-left:20px;
  border-bottom-color:var(--terracota);
}
.guide-row .guide-num{
  font-family:'Fraunces', serif;
  font-weight:900;
  font-style:italic;
  font-size:34px;
  line-height:1;
  color:rgba(42,24,16,0.18);
  min-width:58px;
  transition:color 0.4s ease;
}
.guide-row:hover .guide-num{ color:var(--terracota); }
.guide-row .guide-tag{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--ink-soft);
  border:1px solid rgba(42,24,16,0.2);
  padding:4px 10px;
  white-space:nowrap;
  transition:all 0.4s ease;
}
.guide-row:hover .guide-tag{
  border-color:var(--terracota);
  color:var(--terracota);
}
@media (max-width:640px){
  .guide-row{ grid-template-columns:auto 1fr; }
  .guide-row .guide-tag{ display:none; }
}

/* ===== BLOG ===== */
.blog-tag{
  padding:4px 10px;
  border:1px solid var(--ink-soft);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.1em;
  transition:all 0.3s ease;
  cursor:pointer;
}
.blog-tag:hover, .blog-tag.active{
  background:var(--ink);
  color:var(--cream);
  border-color:var(--ink);
}

.blog-card{
  background:var(--paper);
  border:1px solid rgba(42,24,16,0.08);
  transition:all 0.4s cubic-bezier(.22,1,.36,1);
}
.blog-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(42,24,16,0.1);
}
.blog-card img{ transition:transform 1s ease; }
.blog-card:hover img{ transform:scale(1.05); }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    transition-duration:0.01ms !important;
  }
}
