/* Base, tokens, utilities and shared site components */
:root{
  --verde:#7C855F;
  --verde-escuro:#4C5339;
  --bege:#E8E4D8;
  --texto:#2f2f2f;
}

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

body{
  font-family:"Montserrat",sans-serif;
  background:var(--bege);
  color:var(--texto);
}

.logo{
  padding-right:10%;
}

.btn-premium{
  display:inline-block;
  margin-top:28px;
  padding:16px 48px;
  border-radius:40px;
  background:var(--verde);
  color:#fff;
  text-decoration:none;
  letter-spacing:2px;
  font-weight:400;
  transition:.35s;
}

.btn-premium:hover{
  background:var(--verde-escuro);
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.btn-ghost{
  background:var(--verde-escuro);
  border:1px solid;
  color:var(--bege);
  border-radius:40px;
  padding:13px 16px;
  letter-spacing:1px;
  cursor:pointer;
  transition:.25s;
  margin-top:28px;
  flex:1;
}

.btn-ghost:hover{
  background:rgba(124,133,95,.10);
  transform:translateY(-2px);
  color:var(--texto);
}

a.btn-ghost{
  text-decoration:none;
}

@keyframes heroFadeUp{
  0%{
    opacity:0;
    transform:translateY(34px);
    filter:blur(6px);
  }
  100%{
    opacity:1;
    transform:translateY(0);
    filter:blur(0);
  }
}

@keyframes waveDriftBack{
  0%{transform:translateX(0) scaleX(1.02)}
  50%{transform:translateX(-20px) scaleX(1.04)}
  100%{transform:translateX(18px) scaleX(1.02)}
}

@keyframes waveDriftMiddle{
  0%{transform:translateX(0) scaleX(1.01)}
  50%{transform:translateX(14px) scaleX(1.03)}
  100%{transform:translateX(-12px) scaleX(1.01)}
}

@keyframes waveDriftFront{
  0%{transform:translateX(0) scaleX(1)}
  50%{transform:translateX(-10px) scaleX(1.02)}
  100%{transform:translateX(8px) scaleX(1)}
}

@keyframes tideBack{
  0%{bottom:-10px}
  50%{bottom:-2px}
  100%{bottom:-10px}
}

@keyframes tideMiddle{
  0%{bottom:-12px}
  50%{bottom:-5px}
  100%{bottom:-12px}
}

@keyframes tideFront{
  0%{bottom:-14px}
  50%{bottom:-8px}
  100%{bottom:-14px}
}

.servicos,
.cidades,
.contato{
  padding:120px 8%;
  text-align:center;
}

.servicos{
  background:var(--verde);
  color:#fff;
  position:relative;
}

.servicos h2,
.cidades h2{
  letter-spacing:10px;
  font-weight:400;
}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:34px;
  margin-top:54px;
}

.card{
  padding:86px 22px;
  border-radius:32px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  letter-spacing:4px;
  font-weight:600;
  transition:.35s;
}

.card:hover{
  transform:translateY(-10px) scale(1.02);
  background:rgba(255,255,255,.22);
}

.cidades{
  background:var(--bege);
}

.contato{
  background:var(--verde);
  color:#fff;
}

.contato p{
  max-width:760px;
  margin:18px auto 0;
  opacity:.92;
  line-height:1.7;
}

.reveal { opacity:1; transform:none; }
.reveal.reveal-ready:not(.active) { opacity:0; transform:translateY(24px); }
.reveal.reveal-ready { transition:opacity .65s ease, transform .65s cubic-bezier(.22,1,.36,1); }
.reveal.active { opacity:1; transform:none; }

.carousel{
  width:100%;
  overflow:hidden;
  position:relative;
}

.foto{
  border-radius:28px;
  overflow:hidden;
  position:relative;
  box-shadow:0 20px 60px rgba(0,0,0,.12);
  transition:.4s;
}

.foto img{
  width:100%;
  height:320px;
  object-fit:cover;
  transition:.6s;
}

.foto:hover img{
  transform:scale(1.1);
}

@keyframes floatSelo{
  0%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
  100%{transform:translateY(0)}
}

.footer{
  background:var(--verde-escuro);
  color:#f5f1e8;
  padding:90px 8% 30px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1.4fr;
  gap:40px;
  align-items:start;
}

.footer-col h3,
.footer-col h4{
  margin-bottom:18px;
  letter-spacing:3px;
  font-weight:500;
}

.footer-col p{
  line-height:1.8;
  font-size:14px;
  opacity:.92;
}

.footer-contato{
  margin-top:20px;
}

.footer-contato p{
  margin-bottom:8px;
}

.footer-links{
  list-style:none;
  padding:0;
  margin:0;
}

.footer-links li{
  margin-bottom:12px;
}

.footer-links a{
  text-decoration:none;
  color:#f5f1e8;
  opacity:.9;
  transition:.3s;
}

.footer-links a:hover{
  opacity:1;
  color:#d8d1c2;
  padding-left:4px;
}

.footer-mapa .mapa-container{
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}

.footer-bottom{
  margin-top:40px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.12);
  text-align:center;
}

.footer-bottom p{
  font-size:13px;
  opacity:.8;
  letter-spacing:1px;
}

.btn-instagram{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:14px 26px;
  background:linear-gradient(
    45deg,
    #405DE6,
    #5851DB,
    #833AB4,
    #C13584,
    #E1306C,
    #FD1D1D,
    #F56040,
    #F77737
  );
  color:#fff;
  text-decoration:none;
  border-radius:40px;
  font-size:14px;
  letter-spacing:1px;
  transition:.35s;
  box-shadow:0 12px 35px rgba(0,0,0,.2);
}

.btn-instagram svg{
  width:18px;
  height:18px;
}

.btn-instagram:hover{
  transform:translateY(-4px) scale(1.03);
  box-shadow:0 20px 45px rgba(0,0,0,.25);
}

.whatsapp-float{
  position:fixed;
  bottom:18px;
  right:18px;
  background:#25D366;
  color:#fff;
  font-size:22px;
  padding:14px 16px;
  border-radius:999px;
  text-decoration:none;
  transition:.25s;
  z-index:1100;
}

.whatsapp-float:hover{
  transform:translateY(-3px) scale(1.03);
}

/* ===== BADGES ===== */
.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(124,133,95,.10);
  border:1px solid rgba(76,83,57,.12);
  color:var(--verde-escuro);
  font-size:13px;
  letter-spacing:.5px;
  font-weight:500;
}

/* ===== PÁGINAS DE PASSEIOS (escopo isolado) ===== */

body.modal-open{
  overflow:hidden;
}

/* ===== VITRINE COMERCIAL - PASSEIOS DAS CIDADES ===== */

/* ===== AJUSTES FINAIS: EXCURSOES + MODAL COMERCIAL ===== */

/* ===== EXCURSOES ===== */

/* =========================
   SCROLL VERTICAL NO MODAL
========================= */

/* =========================
   SECTION BUILDER
========================= */
.builder{
  padding: 120px 8%;
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.88)),
    linear-gradient(135deg, #f7f2e8 0%, #ece4d3 100%);
  text-align: center;
}

.builder h3{
  font-size: clamp(28px, 4vw, 40px);
  letter-spacing: 5px;
  font-weight: 500;
  color: var(--verde-escuro);
  margin-bottom: 16px;
  text-transform: uppercase;
}

.builder p{
  max-width: 780px;
  margin: 0 auto;
  font-size: 17px;
  line-height: 1.9;
  color: #555;
}

/* =========================
   RESPONSIVO
========================= */

/* ===== SUPORTE A VIDEO NO SLIDER DO MODAL ===== */

/* ===== SUBMENU CIDADES ===== */
/* =========================
   NAVBAR PREMIUM RESPONSIVA
========================= */

/* =========================
   MODAL DE NOVIDADE EXCLUSIVA
========================= */

/* ===== SCROLL VERTICAL NO MODAL DE NOVIDADE ===== */

/* ===== MODAL DE RESERVA DA NOVIDADE ===== */

/* ===== GALERIA DA NOVIDADE ===== */

/* ===== HOTFIX NAVBAR: LINKS ESPREMIDOS ===== */

.logo{
  padding-right: 0;
  margin-right: 20px;
  flex: 0 0 auto;
}

.logo img{
  display: block;
  max-width: 84px !important;
  height: auto;
}

/* ===== SLIDER MODERNO DA NOVIDADE ===== */

/* ===== CARD DE AUDIO ===== */

/* ===== HOTFIX MOBILE FINAL: CARD INFORMATIVO EMBAIXO NO MODAL ===== */

/* ===== SHARED VIDEO HERO (used by home, tours and city pages) ===== */
.hero-video{
  position:relative;
  height:100vh;
  min-height:720px;
  width:100%;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  isolation:isolate;
}.hero-bg-video{
  position:absolute;
  top:50%;
  left:50%;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  transform:translate(-50%,-50%) scale(1.08);
  z-index:0;
  will-change:transform;
}.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,.16) 0%,
    rgba(0,0,0,.24) 35%,
    rgba(0,0,0,.40) 100%
  );
  z-index:1;
}.hero-video::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top center,rgba(255,255,255,.14),transparent 45%),
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0));
  z-index:1;
  pointer-events:none;
}.hero-content{
  position:relative;
  z-index:3;
  max-width:940px;
  padding:0 24px;
}.hero-kicker{
  display:inline-block;
  margin-bottom:18px;
  letter-spacing:4px;
  font-size:12px;
  font-weight:500;
  text-transform:uppercase;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
}.hero-content h1{
  font-size:64px;
  letter-spacing:10px;
  font-weight:400;
  line-height:1.05;
  text-shadow:0 8px 28px rgba(251,251,251,.18);
}.hero-content p{
  margin:24px auto 0;
  max-width:700px;
  font-size:18px;
  line-height:1.85;
  opacity:.96;
  text-shadow:0 6px 16px rgba(0,0,0,.16);
}.hero-actions{
  margin-top:34px;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}.hero-ghost{
  color:#fff;
  border-color:rgba(255,255,255,.38);
  background:rgba(255,255,255,.08);
}.hero-ghost:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
}.hero-animate .hero-kicker,
.hero-animate h1,
.hero-animate p,
.hero-animate .hero-actions{
  opacity:0;
  transform:translateY(34px);
  animation:heroFadeUp 1.15s ease forwards;
}.hero-animate .hero-kicker{
  transform:translateY(24px);
  animation-duration:1s;
}.hero-animate h1{
  animation-delay:.18s;
}.hero-animate p{
  animation-delay:.38s;
}.hero-animate .hero-actions{
  animation-delay:.58s;
}.wave{
  position:absolute;
  left:0;
  width:100%;
  pointer-events:none;
  z-index:2;
  transform-origin:center bottom;
}.wave-back{
  bottom:-8px;
  height:260px;
  opacity:.9;
  filter:blur(1.5px);
  animation:
    waveDriftBack 18s ease-in-out infinite alternate,
    tideBack 9s ease-in-out infinite;
}.wave-middle{
  bottom:-10px;
  height:240px;
  opacity:1;
  filter:blur(.6px);
  animation:
    waveDriftMiddle 13s ease-in-out infinite alternate,
    tideMiddle 7s ease-in-out infinite;
}.wave-front{
  bottom:-12px;
  height:220px;
  opacity:1;
  animation:
    waveDriftFront 9s ease-in-out infinite alternate,
    tideFront 5.5s ease-in-out infinite;
}

/* ===== Shared city experience cards ===== */
.escolha-cidade{
  padding:120px 8%;
  background:#f8f6f1;
  text-align:center;
  perspective:1200px;
}

.cidade-container h2{
  letter-spacing:8px;
  font-weight:400;
  color:var(--verde-escuro);
}

.cidade-subtitle{
  max-width:760px;
  margin:20px auto 60px;
  line-height:1.8;
  opacity:.9;
}

.cidade-cards{
  width:100%;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:28px;
}

.cidade-card{
  display:block;
  width:100%;
  position:relative;
  height:380px;
  border-radius:32px;
  overflow:hidden;
  text-decoration:none;
  box-shadow:0 24px 70px rgba(0,0,0,.14);
  transform-style:preserve-3d;
  transition:transform .18s ease,box-shadow .25s ease;
  isolation:isolate;
}

.cidade-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease;
  transform:scale(1.01);
}

.cidade-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.10) 15%,rgba(0,0,0,.60) 100%);
  z-index:1;
}

.cidade-card:hover{
  box-shadow:0 30px 80px rgba(0,0,0,.18);
}

.cidade-card:hover img{
  transform:scale(1.08);
}

.cidade-card::before{
  content:"";
  position:absolute;
  top:-20%;
  left:-40%;
  width:50%;
  height:140%;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.16) 50%,
    rgba(255,255,255,0) 100%
  );
  transform:rotate(18deg);
  transition:transform .8s ease;
  z-index:2;
  pointer-events:none;
}

.cidade-card:hover::before{
  transform:translateX(320%) rotate(18deg);
}

.cidade-card-wave{
  position:absolute;
  left:-10%;
  bottom:-18px;
  width:120%;
  height:90px;
  background:rgba(124,133,95,.45);
  border-radius:45% 55% 0 0 / 70% 70% 0 0;
  z-index:2;
  transform:translateY(32px);
  transition:transform .45s ease;
  animation:waveFloat 6s ease-in-out infinite;
  filter:blur(.2px);
}

.cidade-card-wave::before,
.cidade-card-wave::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:100%;
  border-radius:inherit;
}

.cidade-card-wave::before{
  background:rgba(255,255,255,.10);
  transform:translateY(10px) scaleX(.96);
}

.cidade-card-wave::after{
  background:rgba(76,83,57,.18);
  transform:translateY(18px) scaleX(.92);
}

.cidade-card:hover .cidade-card-wave{
  transform:translateY(10px);
}

@keyframes waveFloat{
  0%{transform:translateY(32px) translateX(0)}
  50%{transform:translateY(24px) translateX(-6px)}
  100%{transform:translateY(32px) translateX(0)}
}

.cidade-overlay{
  position:absolute;
  inset:auto 0 0 0;
  padding:28px;
  color:#fff;
  text-align:left;
  z-index:3;
  transform:translateZ(26px);
}

.cidade-meta{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  letter-spacing:1.5px;
  margin-bottom:10px;
  opacity:.95;
}

.location-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
  transition:transform .25s ease,background .25s ease;
}

.cidade-card:hover .location-icon{
  transform:translateY(-3px) scale(1.08);
  background:rgba(255,255,255,.28);
}

.cidade-overlay h3{
  font-size:24px;
  line-height:1.3;
  letter-spacing:1px;
  font-weight:500;
  max-width:290px;
}

.cidade-link{
  display:inline-block;
  margin-top:14px;
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
  opacity:.95;
  position:relative;
}

.cidade-link::after{
  content:"";
  display:block;
  width:0;
  height:2px;
  margin-top:8px;
  background:#fff;
  transition:width .3s ease;
}

.cidade-card:hover .cidade-link::after{
  width:100%;
}
/* ===== End shared city experience cards ===== */

/* ===== SHARE VIA WHATSAPP ===== */
.share-whatsapp{
  appearance:none;
  border:1px solid rgba(63,77,46,.24);
  background:transparent;
  color:inherit;
  min-height:46px;
  padding:0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font:600 12px/1 Montserrat,Arial,sans-serif;
  letter-spacing:.04em;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}
.share-whatsapp svg{width:18px;height:18px;fill:currentColor;flex:0 0 auto}
.share-whatsapp:hover{background:#465235;color:#fff;border-color:#465235;transform:translateY(-1px)}
.share-whatsapp--compact{min-height:44px;padding:0 15px}
.tour-card-actions,.lodging-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto}
.tour-card-actions .tour-card-cta,.lodging-actions .lodging-cta{margin-top:0}
.lodging-actions{margin-top:22px}
.share-target-flash{scroll-margin-top:120px;animation:shareTargetFlash 2.4s ease both}
@keyframes shareTargetFlash{0%,100%{box-shadow:0 0 0 0 rgba(82,96,60,0)}25%{box-shadow:0 0 0 4px rgba(82,96,60,.18)}}
@media(max-width:700px){
  .tour-card-actions,.lodging-actions{align-items:stretch}
  .tour-card-actions>* , .lodging-actions>*{flex:1 1 auto}
  .share-whatsapp{min-height:46px}
}

/* ===== WhatsApp share icon • global hard sizing ===== */
button.share-whatsapp{
  overflow:hidden;
}
button.share-whatsapp > svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
  inline-size:18px !important;
  block-size:18px !important;
  fill:currentColor !important;
}
button.share-whatsapp > svg > path{
  fill:currentColor !important;
}
@media(max-width:700px){
  body.page-tours .tour-card-actions{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:10px;
  }
  body.page-tours .tour-card-actions .tour-card-cta{
    flex:1 1 auto;
    min-width:0;
  }
  body.page-tours .tour-card-actions .share-whatsapp{
    flex:0 0 46px !important;
    width:46px !important;
    min-width:46px !important;
    max-width:46px !important;
    height:46px !important;
    min-height:46px !important;
    padding:0 !important;
    border-radius:14px;
  }
  body.page-tours .tour-card-actions .share-whatsapp span{
    display:none !important;
  }
}

/* ===== Compact WhatsApp share button • cache-safe final component ===== */
button.share-whatsapp--compact{
  -webkit-appearance:none !important;
  appearance:none !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 44px !important;
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid rgba(63,77,46,.26) !important;
  border-radius:14px !important;
  background:#f5f1e8 !important;
  color:#465235 !important;
  line-height:0 !important;
  font-size:0 !important;
  overflow:hidden !important;
  vertical-align:middle !important;
}
button.share-whatsapp--compact:hover,
button.share-whatsapp--compact:focus-visible{
  background:#465235 !important;
  color:#fff !important;
  border-color:#465235 !important;
}
button.share-whatsapp--compact > svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
  fill:currentColor !important;
  pointer-events:none !important;
}
button.share-whatsapp--compact > span{
  display:none !important;
}
@media(max-width:700px){
  body.page-tours .tour-card-actions{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 44px !important;
    align-items:center !important;
    gap:10px !important;
    width:100% !important;
  }
  body.page-tours .tour-card-actions .tour-card-cta{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }
}

/* ===== WhatsApp share • clean icon-only treatment ===== */
button.share-whatsapp--compact{
  -webkit-appearance:none !important;
  appearance:none !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:0 5px 14px rgba(25,65,38,.14) !important;
  background:#25D366 !important;
  color:#fff !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  flex:0 0 42px !important;
  border-radius:999px !important;
  padding:0 !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:0 !important;
  font-size:0 !important;
  overflow:hidden !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease !important;
}
button.share-whatsapp--compact:hover,
button.share-whatsapp--compact:focus-visible{
  background:#1fb85a !important;
  color:#fff !important;
  border:0 !important;
  transform:translateY(-1px) !important;
  box-shadow:0 7px 18px rgba(25,65,38,.20) !important;
}
button.share-whatsapp--compact:active{
  transform:scale(.96) !important;
}
button.share-whatsapp--compact > svg{
  display:block !important;
  width:20px !important;
  height:20px !important;
  min-width:20px !important;
  min-height:20px !important;
  max-width:20px !important;
  max-height:20px !important;
  flex:0 0 20px !important;
  fill:#fff !important;
  color:#fff !important;
  pointer-events:none !important;
}
button.share-whatsapp--compact > svg > path{
  fill:#fff !important;
}
@media(max-width:700px){
  body.page-tours .tour-card-actions{
    grid-template-columns:minmax(0,1fr) 42px !important;
    gap:14px !important;
  }
  body.page-tours .tour-card-actions .share-whatsapp{
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    flex:0 0 42px !important;
    border-radius:999px !important;
  }
}

/* ===== WhatsApp share badge • visual mark ===== */
button.share-whatsapp--compact{
  -webkit-appearance:none !important;
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  flex:0 0 42px !important;
  padding:1px !important;
  margin:0 !important;
  border-radius:50% !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
  cursor:pointer !important;
  line-height:0 !important;
  -webkit-tap-highlight-color:transparent !important;
  transition:transform .2s ease, filter .2s ease !important;
}
button.share-whatsapp--compact:hover,
button.share-whatsapp--compact:focus-visible{
  background:transparent !important;
  color:inherit !important;
  transform:translateY(-2px) scale(1.035) !important;
  filter:drop-shadow(0 7px 10px rgba(23,108,55,.22));
  outline:none !important;
}
button.share-whatsapp--compact:active{
  transform:scale(.95) !important;
}
button.share-whatsapp--compact > svg.share-whatsapp-badge{
  display:block !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  max-width:40px !important;
  max-height:40px !important;
  flex:0 0 40px !important;
  overflow:visible !important;
  pointer-events:none !important;
}
button.share-whatsapp--compact > svg.share-whatsapp-badge circle,
button.share-whatsapp--compact > svg.share-whatsapp-badge path{
  vector-effect:non-scaling-stroke;
}
@media(max-width:700px){
  body.page-tours .tour-card-actions{
    grid-template-columns:minmax(0,1fr) 42px !important;
    gap:12px !important;
  }
}

/* ===== Native share • generic system share sheet ===== */
.share-native{
  -webkit-appearance:none;
  appearance:none;
  border:1px solid rgba(63,77,46,.24);
  background:transparent;
  color:inherit;
  min-height:46px;
  padding:0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font:600 12px/1 Montserrat,Arial,sans-serif;
  letter-spacing:.04em;
  cursor:pointer;
  border-radius:999px;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
  -webkit-tap-highlight-color:transparent;
}
.share-native:hover,
.share-native:focus-visible{
  background:#465235;
  color:#fff;
  border-color:#465235;
  transform:translateY(-1px);
}
.share-native-icon{
  display:block;
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  max-width:20px;
  max-height:20px;
  flex:0 0 20px;
  color:currentColor;
  pointer-events:none;
}
button.share-native--compact{
  -webkit-appearance:none !important;
  appearance:none !important;
  border:1px solid rgba(63,77,46,.24) !important;
  background:#f5f1e8 !important;
  color:#394432 !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  flex:0 0 42px !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  cursor:pointer !important;
  line-height:0 !important;
  font-size:0 !important;
  -webkit-tap-highlight-color:transparent !important;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease !important;
}
button.share-native--compact:hover,
button.share-native--compact:focus-visible{
  background:#394432 !important;
  color:#fff !important;
  border-color:#394432 !important;
  transform:translateY(-1px) !important;
  outline:none !important;
}
button.share-native--compact:active{transform:scale(.96) !important;}
button.share-native--compact .share-native-icon{
  width:19px !important;
  height:19px !important;
  min-width:19px !important;
  min-height:19px !important;
  max-width:19px !important;
  max-height:19px !important;
  flex:0 0 19px !important;
}
.share-native-toast{
  position:fixed;
  left:50%;
  bottom:calc(24px + env(safe-area-inset-bottom, 0px));
  z-index:99999;
  transform:translate(-50%,18px);
  opacity:0;
  pointer-events:none;
  background:#30382b;
  color:#f7f3eb;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:11px 16px;
  max-width:calc(100vw - 36px);
  font:600 11px/1.35 Montserrat,Arial,sans-serif;
  letter-spacing:.02em;
  text-align:center;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
  transition:opacity .2s ease,transform .2s ease;
}
.share-native-toast.is-visible{opacity:1;transform:translate(-50%,0);}
@media(max-width:700px){
  body.page-tours .tour-card-actions{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 42px !important;
    align-items:center !important;
    gap:12px !important;
    width:100% !important;
  }
  body.page-tours .tour-card-actions .tour-card-cta{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }
}

/* Shared usability safeguards. */
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-height,84px) + 20px); }
:where(a,button,input,select,textarea):focus-visible { outline:2px solid #697548; outline-offset:4px; }
:where(img,video) { max-width:100%; }
body.dialog-open { overflow:hidden !important; }
[hidden] { display:none !important; }
.whatsapp-float { display:flex; align-items:center; justify-content:center; width:54px; height:54px; padding:0; box-shadow:0 5px 18px rgba(28,76,39,.16); }
.whatsapp-float svg { display:block; width:25px; height:25px; flex:0 0 25px; }
@media(max-width:768px) { input,select,textarea { font-size:16px; } }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal,.reveal-on-scroll { opacity:1 !important; transform:none !important; filter:none !important; }
}
