/* Palma Voyages — capa de diseño moderno (se carga DESPUÉS del <style> de cada página y lo sobrescribe) */
:root{
  --navy:#0A2540;
  --cream:#F5F9FC;
  --cream-dim:#EAF3F8;
  --gold:#FF7A59;
  --teal:#0A9FA8;
  --stamp:#FF5A4F;
  --ink:#1B2B3A;
  --line:rgba(10,37,64,0.10);
  --grad:linear-gradient(135deg,#00B4D8 0%,#0A9FA8 55%,#12C2A1 100%);
  --coral-grad:linear-gradient(135deg,#FF8A5B 0%,#FF5A4F 100%);
  --shadow-sm:0 2px 10px rgba(10,37,64,0.06);
  --shadow-md:0 14px 38px rgba(10,37,64,0.10);
  --shadow-lg:0 30px 70px rgba(10,37,64,0.18);
  --r-card:22px;
}
html{ scroll-padding-top:84px; }
body{ font-family:'Inter','Plus Jakarta Sans',sans-serif; background:var(--cream); }
h1,h2,h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; letter-spacing:-0.025em; }
.eyebrow{
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:12px; letter-spacing:0.14em; color:var(--teal);
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:22px; height:3px; border-radius:3px; background:var(--grad); }

/* ---------- NAV (transparente sobre el hero, cristal al hacer scroll) ---------- */
header.site{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:transparent; border-bottom:1px solid transparent; backdrop-filter:none;
  transition:background .25s ease, box-shadow .25s ease, border-color .25s ease;
}
header.site.scrolled{
  background:rgba(255,255,255,0.86); backdrop-filter:saturate(180%) blur(14px); -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom-color:var(--line); box-shadow:0 6px 24px rgba(10,37,64,0.06);
}
nav.wrap{ padding-top:14px; padding-bottom:14px; }
.brand{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; letter-spacing:-0.02em; color:#fff; transition:color .25s ease; }
header.site.scrolled .brand{ color:var(--navy); }
.nav-blog-link, .lang-switch a{ color:#fff; transition:color .25s ease, opacity .15s ease; }
.lang-switch a.lang-current{ background:rgba(255,255,255,0.2); }
.lang-switch a:hover{ background:rgba(255,255,255,0.16); }
header.site.scrolled .nav-blog-link, header.site.scrolled .lang-switch a{ color:var(--navy); }
header.site.scrolled .lang-switch a.lang-current{ background:rgba(10,37,64,0.08); }
header.site.scrolled .lang-switch a:hover{ background:rgba(10,37,64,0.06); }
.nav-cta{
  background:var(--coral-grad); color:#fff; box-shadow:0 8px 22px rgba(255,90,79,0.35);
  padding:11px 20px;
}
.nav-cta:hover{ background:var(--coral-grad); filter:brightness(1.05); transform:translateY(-2px); }

/* ---------- BOTONES ---------- */
.btn-primary{
  background:var(--coral-grad); color:#fff; font-weight:700; border-radius:999px; padding:15px 28px;
  box-shadow:0 12px 30px rgba(255,90,79,0.38);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 18px 38px rgba(255,90,79,0.46); filter:brightness(1.05); }
.btn-ghost{ border-radius:999px; padding:13px 26px; border:1.5px solid var(--navy); transition:background .18s ease, color .18s ease, transform .18s ease; }
.btn-ghost:hover{ background:var(--navy); color:#fff; transform:translateY(-2px); }

/* ---------- HERO ---------- */
.hero{
  position:relative; color:#fff;
  min-height:min(94vh,880px); display:flex; align-items:center;
  padding:150px 0 150px;
  background:
    linear-gradient(100deg, rgba(6,24,44,0.74) 0%, rgba(6,24,44,0.42) 45%, rgba(6,24,44,0.04) 100%),
    linear-gradient(180deg, rgba(6,24,44,0.35) 0%, rgba(6,24,44,0) 30%, rgba(6,24,44,0.25) 100%),
    url('/hero-cancun.jpg') center 40%/cover no-repeat;
}
.hero .wrap{ width:100%; }
.hero-grid{ grid-template-columns:1.15fr 0.85fr; gap:56px; }
.hero .eyebrow{
  background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.28); color:#fff;
  padding:8px 16px; border-radius:999px; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.hero .eyebrow::before{ display:none; }
.hero h1{ color:#fff; font-size:clamp(36px,4.9vw,60px); line-height:1.05; letter-spacing:-0.03em; margin-top:22px; text-shadow:0 2px 24px rgba(0,0,0,0.25); }
.hero h1 em{
  font-style:normal;
  background:linear-gradient(95deg,#FFD39B 0%,#FF9A72 60%,#FF7A59 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
}
.hero p.lede{ color:rgba(255,255,255,0.9); font-size:19px; max-width:48ch; margin-top:22px; }
.hero-actions{ margin-top:34px; gap:14px; }
.hero .btn-ghost{ color:#fff; border-color:rgba(255,255,255,0.7); background:rgba(255,255,255,0.08); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.hero .btn-ghost:hover{ background:#fff; color:var(--navy); }

/* tarjeta de vidrio con el "boarding pass" */
.ticket{
  background:rgba(255,255,255,0.13); border:1px solid rgba(255,255,255,0.3);
  backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-radius:26px; padding:30px 28px 24px; color:#fff;
  box-shadow:0 30px 70px rgba(0,0,0,0.3);
  animation:pv-float 6s ease-in-out infinite;
}
.ticket::before, .ticket::after{ display:none; }
.ticket-city{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; letter-spacing:-0.02em; font-size:30px; }
.ticket-code{ color:#FFC9B3; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; letter-spacing:0.12em; }
.ticket-path{ color:#FFC9B3; }
.ticket-path .dots{ border-top-color:rgba(255,201,179,0.6); }
.ticket-meta{ border-top-color:rgba(255,255,255,0.3); }
.ticket-meta div, .ticket-meta span, .ticket-meta strong{ font-family:'Plus Jakarta Sans',sans-serif; }
.ticket-meta span{ color:rgba(255,255,255,0.65); }
.ticket-barcode{ background:repeating-linear-gradient(90deg, rgba(255,255,255,0.9) 0 2px, transparent 2px 5px, rgba(255,255,255,0.9) 5px 6px, transparent 6px 11px); opacity:0.7; }
@keyframes pv-float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }

/* ---------- FRANJA DE CONFIANZA (tarjeta flotante sobre el hero) ---------- */
.trust{ background:transparent; padding:0; margin-top:-62px; position:relative; z-index:3; }
.trust .wrap{
  background:#fff; border-radius:24px; box-shadow:var(--shadow-lg);
  max-width:1072px; padding:24px 34px; gap:18px 28px;
  font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; font-weight:600; color:var(--navy);
}
.trust .dot{ color:var(--gold); }
.trust li{ opacity:1; }

/* ---------- SECCIONES ---------- */
.section{ padding:100px 0; }
.section-head{ max-width:700px; margin-bottom:48px; }
.section-head h2{ font-size:clamp(28px,3.8vw,44px); line-height:1.1; margin-top:16px; }
.section-head p{ font-size:17px; color:#4b5d6e; }

/* destinos */
.dest-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.dest-card{
  position:relative; display:block; border-radius:var(--r-card); overflow:hidden; aspect-ratio:4/5; color:#fff; text-decoration:none;
  box-shadow:var(--shadow-md); isolation:isolate;
}
.dest-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.dest-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(6,24,44,0) 35%, rgba(6,24,44,0.82) 100%); }
.dest-card:hover img{ transform:scale(1.07); }
.dest-body{ position:absolute; left:0; right:0; bottom:0; padding:26px 26px 24px; }
.dest-body h3{ color:#fff; font-size:28px; letter-spacing:-0.02em; }
.dest-body p{ color:rgba(255,255,255,0.85); font-size:14.5px; margin:6px 0 16px; }
.dest-cta{
  display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px;
  background:rgba(255,255,255,0.18); border:1px solid rgba(255,255,255,0.35); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:9px 16px; border-radius:999px; transition:background .2s ease, color .2s ease;
}
.dest-card:hover .dest-cta{ background:#fff; color:var(--navy); }

/* ejemplos reales */
.examples-carousel{ padding:6px 0 26px; margin-bottom:-20px; }
.example-card{ border:none; border-radius:var(--r-card); box-shadow:var(--shadow-md); transition:transform .25s ease, box-shadow .25s ease; }
.example-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.example-photo{ aspect-ratio:16/11; }
.example-destino{ color:var(--teal); font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; }
.example-hotel{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; letter-spacing:-0.015em; }
.example-price{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.examples-dot[aria-current="true"]{ background:var(--gold); transform:scale(1.4); }
.examples-note{ color:#5b6c7c; }

/* mapa */
.map-tab{ border-radius:999px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; padding:10px 20px; box-shadow:var(--shadow-sm); border-color:transparent; }
.map-tab[aria-selected="true"]{ background:var(--grad); border-color:transparent; color:#fff; box-shadow:0 10px 24px rgba(10,159,168,0.35); }
.hotel-zone-map{ border-radius:var(--r-card); border:none; box-shadow:var(--shadow-md); }

/* beneficios */
.benefit-grid{ background:none; border:none; gap:22px; border-radius:0; overflow:visible; }
.benefit{
  background:#fff; border-radius:var(--r-card); padding:34px 30px; box-shadow:var(--shadow-sm); border:1px solid var(--line);
  transition:transform .25s ease, box-shadow .25s ease;
}
.benefit:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.benefit .num{
  display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:14px;
  background:var(--grad); color:#fff; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:15px;
  box-shadow:0 10px 22px rgba(10,159,168,0.3);
}
.benefit h3{ font-size:20px; margin-top:20px; }
.benefit p{ color:#4b5d6e; font-size:15.5px; line-height:1.6; }

/* servicios */
.services-grid{ gap:14px; }
.service-pill{
  background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm);
  padding:15px 24px; font-size:15px; font-weight:700; border-radius:999px;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.service-pill:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); background:var(--grad); color:#fff; border-color:transparent; }

/* pasos */
.steps-grid{ gap:26px; counter-reset:step; }
.step{ background:#fff; border-radius:var(--r-card); padding:34px 30px 32px; box-shadow:var(--shadow-sm); border:1px solid var(--line); }
.step:not(:last-child)::after{ display:none !important; }
.step .badge{
  display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%;
  background:var(--coral-grad); color:#fff; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:20px;
  box-shadow:0 12px 26px rgba(255,90,79,0.35);
}
.step h3{ font-size:20px; margin-top:20px; }
.step p{ color:#4b5d6e; font-size:15.5px; line-height:1.6; }

/* preguntas frecuentes */
.faq-list{ display:flex; flex-direction:column; gap:12px; }
.faq-item, .faq-item:first-child{ border:1px solid var(--line); background:#fff; border-radius:18px; box-shadow:var(--shadow-sm); overflow:hidden; transition:box-shadow .2s ease; }
.faq-item:hover{ box-shadow:var(--shadow-md); }
.faq-q{ padding:22px 26px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:17px; }
.faq-a{ padding:0 26px 24px; font-size:15.5px; line-height:1.65; }
.faq-q .chevron{ color:var(--teal); }

/* blog */
.post-card{ border:none; border-radius:var(--r-card); box-shadow:var(--shadow-md); }
.post-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.post-card-destino{ color:var(--teal); font-weight:800; }
.post-card h3{ font-size:18px; line-height:1.3; }

/* ---------- COTIZACIÓN ---------- */
.quote{
  background:
    radial-gradient(900px 420px at 85% -10%, rgba(18,194,161,0.28), transparent 60%),
    radial-gradient(700px 400px at 0% 110%, rgba(255,122,89,0.20), transparent 60%),
    linear-gradient(160deg,#071A2E 0%,#0A2540 55%,#0B3552 100%);
}
.quote .eyebrow{ color:#7EE3D4; }
.quote .eyebrow::before{ background:linear-gradient(135deg,#7EE3D4,#12C2A1); }
.stub{ background:#fff; border-radius:28px; padding:42px 38px; box-shadow:0 40px 90px rgba(0,0,0,0.38); }
.stub::before, .stub::after{ display:none; }
.field label{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; color:var(--navy); letter-spacing:0.06em; }
.field input, .field select, .field textarea, .traveler-toggle{ border:1.5px solid rgba(10,37,64,0.14); border-radius:14px; padding:14px 16px; background:#F8FBFD; transition:border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--teal); background:#fff; box-shadow:0 0 0 4px rgba(10,159,168,0.14); }
.traveler-toggle:hover{ border-color:var(--teal); }
.traveler-panel{ border-radius:18px; background:#0A2540; }
.traveler-row-text strong{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; }
.stub-footer{ border-top:1px dashed rgba(10,37,64,0.18); }
#quoteForm .btn-primary{ font-family:'Plus Jakarta Sans',sans-serif; font-size:16px; padding:16px 30px; }
.field-hint, .status-msg{ font-family:'Plus Jakarta Sans',sans-serif; color:var(--stamp); }

/* ---------- FOOTER ---------- */
footer{ background:#071A2E; color:rgba(255,255,255,0.8); padding:64px 0 36px; margin-top:0; }
.footer-grid{ border-top:none; padding-top:0; }
footer .brand{ color:#fff; }
footer p{ color:rgba(255,255,255,0.7); }
footer .legal{ color:rgba(255,255,255,0.5); }
footer .legal a, .foot-credit a{ color:rgba(255,255,255,0.75); }
.foot-credit{ font-size:11.5px; color:rgba(255,255,255,0.45); margin-top:10px; }
.foot-links a, .footer-contact a{ color:#fff; }
.footer-contact-label{ color:#7EE3D4; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; }
.foot-links a{ opacity:0.9; }
.foot-links a:hover{ opacity:1; text-decoration:underline; }

/* ---------- ANIMACIÓN DE ENTRADA (solo si hay JS) ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:860px){
  .section{ padding:72px 0; }
  .hero{ padding:116px 0 120px; min-height:0;
    background:
      linear-gradient(180deg, rgba(6,24,44,0.78) 0%, rgba(6,24,44,0.5) 55%, rgba(6,24,44,0.72) 100%),
      url('/hero-cancun-sm.jpg') center/cover no-repeat; }
  .hero-grid{ grid-template-columns:1fr; gap:36px; }
  .dest-grid{ grid-template-columns:1fr; }
  .dest-card{ aspect-ratio:16/11; }
  .trust{ margin-top:-48px; }
  .trust .wrap{ padding:22px 24px; border-radius:20px; }
  .stub{ padding:30px 22px; border-radius:22px; }
}
@media (prefers-reduced-motion: reduce){
  .ticket{ animation:none; }
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* alinear los precios al fondo de cada tarjeta de ejemplo */
.example-body{ display:flex; flex-direction:column; flex:1; }
.example-price-row{ margin-top:auto; }
.example-meta{ margin-bottom:16px; }

@media (max-width:560px){
  .ticket{ display:none; }
  .hero{ padding:112px 0 112px; }
  .hero h1{ font-size:38px; }
  .hero p.lede{ font-size:17px; }
  .nav-blog-link{ display:none; }
}
.brand, .nav-cta{ white-space:nowrap; }
@media (max-width:560px){
  .brand{ font-size:17px; gap:6px; }
  .brand img{ width:28px !important; height:28px !important; }
  .nav-right{ gap:8px; }
  .nav-cta{ padding:9px 14px; font-size:13px; }
}

/* sombra de las tarjetas de ejemplo contenida dentro del carrusel (overflow:hidden) */
.examples-carousel{ padding:10px 0 40px; margin-bottom:-24px; }
.example-card{ box-shadow:0 6px 22px rgba(10,37,64,0.10); }
.example-card:hover{ box-shadow:0 10px 28px rgba(10,37,64,0.14); }

/* tarjetas del blog: destino y fecha en líneas separadas */
.post-card-destino{ display:block; }
.post-card-date{ margin-top:2px; }
.foot-credit{ max-width:none; }

/* más contraste del texto sobre las fotos de destino */
.dest-card::after{ background:linear-gradient(180deg, rgba(6,24,44,0.05) 10%, rgba(6,24,44,0.9) 100%); }
@media (max-width:860px){ .dest-card{ aspect-ratio:4/3; } }

@media (max-width:560px){
  nav.wrap{ padding-left:16px; padding-right:16px; }
  .brand{ font-size:16px; }
  .lang-switch .sep{ display:none; }
  .lang-switch a{ padding:5px 6px; }
  .nav-cta{ padding:8px 12px; font-size:12.5px; }
}
