/* site-clean.css — final shared cleanup v19
   One small file loaded last for spacing, tour fact cards, buttons and language menu.
   Keep this as the final adjustment layer before publishing. */
:root{
  --ttv-section-y:68px;
  --ttv-section-y-mobile:50px;
  --ttv-section-x:24px;
  --ttv-section-x-mobile:18px;
  --ttv-block-gap:30px;
  --ttv-block-gap-desktop:40px;
  --ttv-card-gap:28px;
}

/* Global vertical rhythm */
.tours-section,
.why-ride-section,
.easy-section,
.about-section,
#reviews,
.mini-faq-section{
  padding-top:var(--ttv-section-y);
  padding-bottom:var(--ttv-section-y);
  padding-left:var(--ttv-section-x);
  padding-right:var(--ttv-section-x);
}
.section-header{margin-bottom:40px;}
.tours-grid{gap:var(--ttv-card-gap);}
.tour-choice-help{margin-top:var(--ttv-block-gap-desktop);}
.tours-custom-cta{
  margin-top:var(--ttv-block-gap-desktop);
  display:flex;
  justify-content:center;
}

/* Home spacing: Contact card → See all tours → Why ride with me */
html[data-page="home"] .tour-choice-help{margin-top:var(--ttv-block-gap);}
html[data-page="home"] .tours-custom-cta{margin-top:var(--ttv-block-gap);}
html[data-page="home"] .tours-section{padding-bottom:0;}
html[data-page="home"] .why-ride-section{padding-top:var(--ttv-block-gap);}
html[data-page="home"] .why-ride-section .section-header{margin-bottom:32px;}

/* Tour cards: smaller, aligned Price / Duration / Group boxes */
.tour-card-specs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  gap:9px;
  width:100%;
  max-width:430px;
  margin:18px auto 0;
}
.tour-spec{
  min-width:0;
  min-height:86px;
  padding:11px 5px 9px;
  display:grid;
  grid-template-rows:15px 29px 12px;
  row-gap:2px;
  align-items:center;
  justify-items:center;
  text-align:center;
  border-radius:14px;
}
.tour-spec-label{
  grid-row:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:15px;
  margin:0;
  line-height:1;
  white-space:nowrap;
}
.tour-spec-value{
  grid-row:2;
  display:flex;
  align-items:baseline;
  justify-content:center;
  width:100%;
  min-height:29px;
  margin:0;
  line-height:1;
  white-space:nowrap;
}
.tour-spec-unit{
  display:inline-block;
  line-height:1;
  margin-left:2px;
  position:relative;
  top:-0.14em;
}
.tour-spec-note{
  grid-row:3;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  width:100%;
  min-height:12px;
  margin:-5px 0 0;
  line-height:.95;
  white-space:nowrap;
}

/* Private TukTuk Tour kicker inside tour cards and tour detail pages */
.tour-detail-kicker{
  width:100%;
  margin:0 0 9px;
  text-align:center;
  font-family:var(--font-body);
  font-size:.74rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold-ink);
}
.tour-detail-rule{
  display:block;
  width:52px;
  height:3px;
  margin:0 auto 18px;
  border-radius:2px;
  background:var(--gold);
}
.tour-card-body,
.tour-name,
.tour-card-best,
.tour-card-note{text-align:center;}
.tour-card-body,
.tour-actions,
.booking-inquiry-row{
  align-items:center;
  justify-content:center;
}

/* WhatsApp / Email buttons: icon + label visually centred */
.booking-inquiry-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1;
  white-space:nowrap;
}
.booking-inquiry-icon{
  display:block;
  width:17px;
  height:17px;
  flex:0 0 17px;
  margin:0;
  transform:none!important;
}
.booking-inquiry-btn:hover .booking-inquiry-icon,
.booking-inquiry-btn:active .booking-inquiry-icon{transform:none!important;}
.booking-inquiry-label{
  display:inline-block;
  line-height:1;
  transform:translateY(.09em);
}

/* Language selector: main flag, caret, menu flags and text aligned */
.lang-select{
  top:50%;
  transform:translateY(-50%);
}
.lang-select-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  height:44px;
  min-width:44px;
}
.lang-select-btn .lang-flag{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.lang-caret{
  display:block;
  width:12px;
  height:8px;
  flex:0 0 12px;
  margin:0;
}
.lang-menu{min-width:204px;}
.lang-option{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  column-gap:10px;
  min-height:44px;
  text-align:left;
}
.lang-option .lang-flag{
  width:28px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 28px;
  line-height:1;
  font-size:1.14rem;
}
.lang-option span:not(.lang-flag){
  display:flex;
  align-items:center;
  min-height:24px;
  line-height:1.1;
}

/* Detail pages: consistent bottom space */
.crpage-main{padding-bottom:var(--ttv-section-y);}
.tour-detail-actions{margin-top:var(--ttv-block-gap);}

@media (max-width:640px){
  .tours-section,
  .why-ride-section,
  .easy-section,
  .about-section,
  #reviews,
  .mini-faq-section{
    padding-top:var(--ttv-section-y-mobile);
    padding-bottom:var(--ttv-section-y-mobile);
    padding-left:var(--ttv-section-x-mobile);
    padding-right:var(--ttv-section-x-mobile);
  }
  .section-header{margin-bottom:30px;}
  .tour-choice-help,
  .tours-custom-cta{margin-top:var(--ttv-block-gap);}
  html[data-page="home"] .tours-section{padding-bottom:0;}
  html[data-page="home"] .why-ride-section{padding-top:var(--ttv-block-gap);}
  html[data-page="home"] .why-ride-section .section-header{margin-bottom:30px;}
  .tour-card-specs{
    max-width:360px;
    gap:8px;
    margin-top:16px;
  }
  .tour-spec{
    min-height:82px;
    padding:10px 4px 8px;
    grid-template-rows:14px 27px 11px;
    row-gap:1px;
    border-radius:13px;
  }
  .tour-spec-label{
    height:14px;
    font-size:.58rem;
    letter-spacing:.075em;
  }
  .tour-spec-value{
    min-height:27px;
    font-size:1.08rem;
  }
  .tour-spec-unit{font-size:.64rem;top:-0.13em;}
  .tour-spec-note{
    min-height:11px;
    margin-top:-6px;
    font-size:.58rem;
    line-height:.95;
  }
  .lang-select{right:16px;}
  .crpage-main{padding-bottom:var(--ttv-section-y-mobile);}
}

@media (max-width:380px){
  .tour-card-specs{gap:7px;}
  .tour-spec-label{font-size:.55rem;letter-spacing:.06em;}
  .tour-spec-value{font-size:1.02rem;}
  .tour-spec-note{font-size:.55rem;}
}

/* === Botão flutuante de WhatsApp (todas as páginas) === */
.wa-float{
  position:fixed;
  z-index:1200;
  right:18px;
  bottom:calc(22px + env(safe-area-inset-bottom));
  width:58px;
  height:58px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#25d366;
  color:#fff;
  border:2px solid #fff;
  box-shadow:0 10px 26px rgba(0,0,0,.26);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  transition:transform .2s var(--ease-ios,ease),box-shadow .2s ease,opacity .2s ease,visibility .2s ease;
}
.wa-float svg{
  width:30px;
  height:30px;
  display:block;
  fill:currentColor;
}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.30);}
.wa-float:active{transform:scale(.94);}
.wa-float:focus-visible{outline:3px solid rgba(37,211,102,.5);outline-offset:3px;}

/* Esconder quando o menu ou o modal de reserva estão abertos */
body.menu-open .wa-float,
body.booking-modal-open .wa-float{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

@media (max-width:640px){
  .wa-float{
    right:16px;
    bottom:calc(18px + env(safe-area-inset-bottom));
    width:54px;
    height:54px;
  }
  .wa-float svg{width:28px;height:28px;}
}
.booking-whatsapp-btn .booking-inquiry-icon{filter:drop-shadow(0 0 1.5px rgba(0,0,0,.5)) drop-shadow(0 1px 1px rgba(0,0,0,.4))}
