/* =========================
   Tório Locações — Tema Claro
   Hierarquia tipográfica + ritmo de espaço
========================= */
:root{
  /* Tipografia */
  --font: 'Aileron', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, 'Noto Sans', sans-serif;
  --fs-xxl: clamp(1.6rem, 2.6vw, 2.2rem); /* título produto */
  --fs-xl: 1.25rem;                       /* subtítulos/labels grandes */
  --fs-lg: 1.05rem;                       /* texto base maior */
  --fs-md: 0.95rem;                       /* meta/hint */
  --fs-sm: 0.9rem;                        /* breadcrumbs, captions */

  /* Cores */
  --bg:#ffffff;
  --surface:#ffffff;
  --text:#0b0c0e;
  --muted:#5b6676;
  --border:#e7eaf1;
  --accent:#2157ea;
  --brand:#18a05f;
  --brand-700:#128a51;

  /* Espaços (ritmo 8px) */
  --s-1: 8px;
  --s-2: 12px;
  --s-3: 16px;
  --s-4: 20px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 40px;

  /* Outros */
  --radius-1: 10px;
  --radius-2: 14px;
  --radius-3: 20px;
  --shadow: 0 8px 28px rgba(14, 30, 62, .08);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:var(--font); color:var(--text); background:var(--bg);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

/* Utilitários */
.container{width:min(1200px,92vw); margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;clip:rect(0 0 0 0);overflow:hidden}

/* Navbar */
.nav{position:sticky; top:0; z-index:30; background:#fff; border-bottom:1px solid var(--border); backdrop-filter:saturate(1.1) blur(6px)}
.nav__inner{display:flex; align-items:center; justify-content:space-between; padding:var(--s-3) 0}
.nav__brand img{height:28px}
.nav__actions{display:flex; align-items:center; gap:var(--s-3)}
.nav__cta{
  display:inline-flex; align-items:center; gap:var(--s-2); padding:10px 14px; border-radius:var(--radius-2);
  background:#f7f9fd; color:var(--text); text-decoration:none; border:1px solid var(--border)
}
.nav__cta:hover{background:#eef2fb}
.nav__auth{display:flex; align-items:center; gap:var(--s-2)}
.nav__link{color:var(--muted); text-decoration:none; font-size:var(--fs-sm)}
.nav__link:hover{color:#111}
.nav__sep{color:#aab3c2}

/* Breadcrumbs */
.breadcrumbs{
  display:flex; align-items:center; gap:var(--s-2); color:var(--muted);
  font-size:var(--fs-sm); padding:var(--s-3) 0;
}
.breadcrumbs a{color:var(--muted); text-decoration:none}
.breadcrumbs a:hover{color:#111}

/* Layout do produto */
.product{
  display:grid; grid-template-columns: 1.15fr 1fr; gap:var(--s-6); padding-bottom:var(--s-7)
}
@media (max-width: 980px){ .product{grid-template-columns:1fr; gap:var(--s-5)} }

/* Galeria */
.gallery{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-3);
  padding:var(--s-3); box-shadow:var(--shadow)
}
.gallery__stage{
  width:100%; aspect-ratio:16/11; background:#f6f8fc; border-radius:var(--radius-2); display:grid; place-items:center; overflow:hidden;
}
.gallery__stage img{max-width:100%; max-height:100%; display:block; transition:transform .3s ease}
.gallery__stage:hover img{transform:scale(1.01)}
.gallery__thumbs{margin-top:var(--s-2); display:grid; grid-template-columns:repeat(5,1fr); gap:var(--s-2)}
.thumb{
  border:1px solid var(--border); border-radius:var(--radius-2); padding:6px; background:#fff; cursor:pointer;
  transition:border-color .2s ease, transform .2s ease
}
.thumb:hover{border-color:#dfe4ee; transform:translateY(-1px)}
.thumb img{width:100%; height:64px; object-fit:cover; border-radius:var(--radius-1)}
.thumb.is-active{border-color:var(--accent)}

/* Detalhes */
.details__header{margin-bottom:var(--s-3)}
.details__title{margin:0 0 var(--s-1); font-size:var(--fs-xxl); line-height:1.2; letter-spacing:-.01em}
.meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2);
  color:var(--muted); font-size:var(--fs-md); margin-top:var(--s-2)
}
.meta__dot{opacity:.5}

/* Blocos/fundos */
.panel{
  background:#fff; border:1px solid var(--border); border-radius:var(--radius-3);
  padding:var(--s-4); box-shadow:var(--shadow);
}
.field{margin-bottom:var(--s-4)}
.label{display:block; font-weight:700; margin-bottom:var(--s-2); font-size:var(--fs-lg)}
.hint{color:var(--muted); font-size:var(--fs-sm)}

/* Inputs */
.input{
  width:100%; padding:12px 14px; border-radius:var(--radius-2); border:1px solid var(--border);
  background:#fff; color:var(--text); outline:none; font-size:var(--fs-lg);
}
.input:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(33,87,234,.12)}

/* Segmented */
.segmented{
  display:flex; gap:var(--s-2); background:#f4f6fb; padding:6px; border-radius:var(--radius-2); border:1px solid var(--border)
}
.segmented__btn{
  flex:1; padding:10px 12px; border-radius:var(--radius-1); border:1px solid transparent;
  background:transparent; color:var(--text); cursor:pointer; font-weight:700; font-size:var(--fs-lg)
}
.segmented__btn.is-active{background:#e9eef8; border-color:#d6def0}

/* Chips */
.chips{display:flex; flex-wrap:wrap; gap:var(--s-2)}
.chip{
  background:#f5f7fb; border:1px solid var(--border); color:var(--text);
  padding:10px 12px; border-radius:999px; cursor:pointer; transition:background .2s ease, border-color .2s ease;
}
.chip:hover{background:#eef2f8}
.chip.is-selected{background:#eaf0ff; border-color:#d6def0}

/* Quantidade */
.qty{display:flex; align-items:flex-end; justify-content:space-between}
.qty__box{display:inline-flex; align-items:center; background:#fff; border:1px solid var(--border); border-radius:var(--radius-2)}
.qty__btn{
  width:40px; height:40px; border:0; background:transparent; color:var(--text); font-size:20px; cursor:pointer
}
.qty__btn:hover{background:#f4f6fb}
.qty__input{
  width:64px; text-align:center; border:0; background:transparent; color:var(--text); font-weight:700; font-size:var(--fs-lg)
}

/* Preço (headline) */
.priceRow{
  margin:var(--s-1) 0 var(--s-2); padding:var(--s-3);
  border:1px dashed #dfe4ee; border-radius:var(--radius-2); display:flex; align-items:center; justify-content:space-between; gap:var(--s-3); flex-wrap:wrap; background:#fff;
}
.priceRow--headline{ margin-top:var(--s-1); margin-bottom:var(--s-2); }
.priceRow__label{color:var(--muted); font-weight:700; font-size:var(--fs-sm)}
.priceRow__value{font-size:clamp(1.4rem, 2.4vw, 2rem); font-weight:800; letter-spacing:-.01em}
.priceRow__sub{color:var(--muted); margin-top:4px; font-size:var(--fs-md)}
.badge{
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; font-weight:700;
  border:1px solid var(--border); background:#fff; color:var(--text); font-size:var(--fs-sm)
}
.badge--success{border-color:#d9f3e7}
.badge .dot{width:10px; height:10px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 0 rgba(24,160,95,.6); animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(24,160,95,.6)}70%{box-shadow:0 0 0 10px rgba(24,160,95,0)}100%{box-shadow:0 0 0 0 rgba(24,160,95,0)}}

/* Ações */
.actions{display:flex; flex-wrap:wrap; gap:var(--s-2); margin:var(--s-3) 0 var(--s-1)}
.btn{
  display:inline-flex; align-items:center; gap:10px; padding:14px 18px; border-radius:var(--radius-2);
  border:1px solid var(--border); background:#fff; color:var(--text); cursor:pointer; transition:transform .2s ease, background .2s ease, border-color .2s ease; font-weight:700
}
.btn:hover{transform:translateY(-1px); border-color:#dfe4ee; background:#fbfcff}
.btn--primary{background:var(--brand); color:#fff; border-color:transparent}
.btn--primary:hover{background:var(--brand-700)}
.btn--ghost{background:#fff}

/* Bullets */
.bullets{list-style:none; padding:0; margin:var(--s-3) 0 0; display:grid; gap:var(--s-2)}
.bullets li{display:flex; align-items:center; gap:10px; color:#374151}
.bullets svg{width:18px; height:18px}

/* Tabs */
.tabs{display:flex; gap:var(--s-2); margin:var(--s-4) 0 var(--s-2)}
.tab{
  padding:10px 12px; border-radius:var(--radius-1); border:1px solid var(--border);
  background:#fff; color:var(--text); cursor:pointer; transition:background .2s ease, border-color .2s ease; font-weight:700
}
.tab.is-active{background:#eef2fb; border-color:#d6def0}
.tabpanes{background:#fff; border:1px solid var(--border); border-radius:var(--radius-2); padding:var(--s-3)}
.tabpane{display:none; color:#374151; font-size:var(--fs-lg)}
.tabpane.is-active{display:block}
.specs{margin:0; padding-left:18px}
.specs li{margin:6px 0}

/* Add-on faciais */
.addon .checkbox{display:flex; align-items:center; gap:10px}
.addon input[type="checkbox"]{width:18px; height:18px}

/* Rodapé */
.footer{border-top:1px solid var(--border); margin-top:var(--s-6); padding:var(--s-3) 0; background:#fff}
.footer__inner{display:flex; align-items:center; justify-content:space-between}
.footer__link{color:var(--muted); text-decoration:none}
.footer__link:hover{color:#111}

/* Toast */
.toast{
  position:fixed; right:22px; bottom:22px; background:#ffffff; color:var(--text); border:1px solid var(--border);
  padding:12px 14px; border-radius:var(--radius-2); min-width:220px; box-shadow:var(--shadow); opacity:0; pointer-events:none; transform:translateY(8px);
  transition:.25s ease; z-index:50; font-size:var(--fs-md)
}
.toast--show{opacity:1; transform:translateY(0); pointer-events:auto}

/* Responsivo fino */
@media (max-width: 720px){
  .priceRow{flex-direction:column; align-items:flex-start}
}
/* ...mantenha seu CSS atual (tema claro com Aileron)... */

/* ===== Tabela de Preços ===== */
.pricingTable{
  margin-top: 20px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
  padding: 12px;
}
.pricingTable__tabs{
  display: flex; gap: 10px; padding: 8px; border:1px solid var(--border);
  border-radius: 12px; background: #f7f9fd; margin-bottom: 10px;
}
.ptab{
  flex: 1; padding: 10px 12px; border-radius: 10px; border:1px solid transparent;
  background: transparent; cursor:pointer; font-weight:700;
}
.ptab.is-active{ background:#e9eef8; border-color:#d6def0 }
.pricingTable__body{ display:grid; gap: 6px }
.ptable{
  display:none; width:100%; border-collapse: collapse; font-size: .98rem;
}
.ptable.is-active{ display: table; }
.ptable thead th{
  text-align:left; padding: 10px 12px; background:#f5f7fb; border-bottom:1px solid var(--border);
  font-weight:800; color:#394150;
}
.ptable tbody td{
  padding:10px 12px; border-bottom:1px solid var(--border);
}
.ptable tbody tr.highlight{
  background: #f0f5ff;
}
.pricingTable__note{
  margin: 8px 4px 2px; color:#5b6676; font-size:.9rem;
}
/* ===== Tabela selecionável ===== */
.ptable tbody tr{
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.ptable tbody tr:hover{
  background: #f7faff;
}
.ptable tbody tr.highlight{
  background: #eef4ff;
  font-weight: 700;
}
/* Linha do preço + cupom lado a lado */
.priceRow__top{
  display: flex;
  align-items: baseline;   /* alinha visualmente com o número do preço */
  gap: 16px;               /* espaçamento ideal entre preço e cupom */
  flex-wrap: nowrap;       /* mantém exatamente na mesma linha */
}

/* Badge do cupom — garantir que não quebre */
.coupon-badge{ white-space: nowrap; }
/* ===== BOTÃO FIXO DE ATENDIMENTO ===== */
.chat-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #16a34a; /* verde Tório */
  color: #fff;
  font-family: 'Aileron', sans-serif;
  font-weight: 600;
  font-size: 15px;
  border: none;
  border-radius: 50px;
  padding: 12px 22px;
  box-shadow: 0 6px 16px rgba(22, 163, 74, 0.35);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.3s ease;
  z-index: 999;
}

.chat-fab:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(22, 163, 74, 0.45);
  background: #15803d;
}

.chat-fab i {
  width: 22px;
  height: 22px;
  stroke-width: 2.2;
}

/* Responsivo */
@media (max-width: 600px) {
  .chat-fab {
    bottom: 16px;
    right: 16px;
    padding: 10px 18px;
    font-size: 14px;
  }

  .chat-fab span {
    display: none; /* mostra só o ícone em telas pequenas */
  }
}
/* ===== NAVBAR LUXO ===== */
.nav {
  background: linear-gradient(90deg, #010201 0%, #081b15 100%); /* gradiente luxo */
  color: #fff;
  padding: 14px 0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.nav__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.nav__brand img {
  height: 40px;
  filter: brightness(0) invert(1); /* deixa o logo branco se for escuro */
}

.nav__actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.nav__cta {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 30px;
  transition: background 0.25s ease, transform 0.15s ease;
}

.nav__cta:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-1px);
}

.nav__link {
  color: #ffffff;
  font-weight: 500;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.nav__link:hover { opacity: 0.8; }

.nav__sep {
  color: rgba(255, 255, 255, 0.6);
}

/* ===== MOBILE ===== */
@media (max-width: 768px) {
  .nav__inner {
    flex-direction: column;
    gap: 10px;
  }

  .nav__actions {
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }

  .nav__cta {
    width: 100%;
    justify-content: center;
  }
}
/* ===== BOTÕES RESPONSIVOS (WhatsApp + Orçamento) ===== */
@media (max-width: 760px) {
  .actions {
    flex-direction: column;
    width: 100%;
  }

  .actions .btn {
    width: 100%;
    justify-content: center; /* centraliza o conteúdo */
    font-size: 1rem;
    padding: 14px 0;
  }

  .actions .btn i {
    width: 20px;
    height: 20px;
  }
}
.tab { cursor: pointer; }
.tab:focus-visible {
  outline: 3px solid rgba(33,87,234,.35);
  outline-offset: 2px;
}
.tabpane[hidden] { display: none !important; }
/* ===== CORREÇÃO MOBILE — Campos de Data e Hora ===== */
@media (max-width: 760px) {
  .grid2 {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .grid2 .field {
    width: 100%;
  }

  .grid2 .input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* opcional: reduz padding no card no mobile para encaixar melhor */
  .panel {
    padding: 16px;
  }
}
/* ===== BADGES NO TOPO DA IMAGEM ===== */
.gallery__stage {
  position: relative; /* necessário para posicionamento absoluto interno */
  overflow: hidden;
}

.gallery__badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  gap: 8px;
  z-index: 10;
}

/* Estilo base dos badges */
.gallery__badges .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(6px);
  color: #222;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Cores personalizadas */
.badge--facial {
  background: #eaf3ff;
  border-color: #c7dcff;
  color: #1d4ed8;
}

.badge--gineco {
  background: #eafaf0;
  border-color: #b5e2c3;
  color: #047857;
}

/* Mobile: ajusta posição e tamanho */
@media (max-width: 760px) {
  .gallery__badges {
    top: 8px;
    left: 8px;
    gap: 6px;
  }

  .gallery__badges .badge {
    font-size: 0.8rem;
    padding: 4px 8px;
  }
}
/* Badge de taxa técnica (obrigatória) */
.fee-badge{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:999px; border:1px solid #ffead6;
  background:#fff7ef; color:#924100; font-weight:800;
}
.fee-badge i { width:16px; height:16px; }
.priceRow__fee {
  margin-top: 4px;
  font-size: 0.9rem;
  color: #5b6676;
  font-weight: 600;
}
/* Informações abaixo do preço principal */
.priceRow__fee,
#subinfo {
  line-height: 1.6; /* aumenta o espaçamento vertical */
  margin-top: 6px;  /* adiciona um respiro extra entre os blocos */
  color: #5b6676;
  font-size: 0.95rem;
}

.priceRow__fee {
  font-weight: 600;
}

#subinfo {
  display: block;
  margin-top: 8px;
}
.priceRow__fee {
  margin-top: 14px;   /* aumente conforme desejar (ex: 16px ou 20px) */
  line-height: 1.6;
  font-size: 0.95rem;
  color: #5b6676;
  font-weight: 600;
}

#subinfo {
  display: block;
  margin-top: 10px;
  line-height: 1.6;
  font-size: 0.95rem;
  color: #5b6676;
}
.gift-badge {
  display: block;          /* força o brinde a ocupar uma linha inteira */
  margin-top: 10px;        /* espaço entre o preço e o brinde */
  font-size: 0.95rem;
  font-weight: 700;
}
/* Botões de ação — desktop: largura total */
.actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.actions .btn {
  width: 100%;
}

/* Layout lado a lado no mobile (se quiser opcional) */
@media (max-width: 760px) {
  .actions {
    flex-direction: column; /* mantém empilhado no mobile */
  }
}
/* Área dos botões */
.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* Cada botão ocupa metade da largura no desktop */
.actions .btn {
  flex: 1 1 48%;
  text-align: center;
}

/* No mobile, eles ficam empilhados */
@media (max-width: 760px) {
  .actions {
    flex-direction: column;
  }
  .actions .btn {
    width: 100%;
  }
}
/* Centralizar texto e ícone dentro dos botões */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px; /* espaço entre ícone e texto */
  text-align: center;
  font-weight: 600;
  line-height: 1;
}
/* Animação do botão "Reservar Online" */
#btnReservaOnline {
  position: relative;
  overflow: hidden;
  border: 1px solid #18a05e60; /* verde principal */
  box-shadow: 0 0 0 rgba(24, 160, 95, 0.6);
  animation: pulseGlow 1s infinite;
}

/* Efeito pulsante suave */
@keyframes pulseGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(24, 160, 95, 0.6);
  }
  70% {
    box-shadow: 0 0 12px 10px rgba(24, 160, 95, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(24, 160, 95, 0);
  }
}
/* Preço visível apenas no mobile */
.mobile-price {
  display: none;
  text-align: center;
  margin: 16px 0;
}

.mobile-price .priceRow__value {
  font-size: 1.4rem;
  font-weight: 800;
  color: #2f3746;
  margin-bottom: 6px;
}

.mobile-price .priceRow__fee {
  font-size: 0.95rem;
  color: #5b6676;
}

/* Bloco de preço extra (fica acima dos botões) */
.mobile-price {
  display: block;         /* sempre visível */
  text-align: left;
  margin: 16px 0;
}

.mobile-price .priceRow__value {
  font-size: 1.4rem;
  font-weight: 800;
  color: #2f3746;
  margin-bottom: 6px;
}

.mobile-price .priceRow__fee {
  font-size: 0.95rem;
  color: #5b6676;
  line-height: 1.6;
}

/* Bloco de preço adicional (acima dos botões) */
.mobile-price {
  display: block;
  text-align: left; /* <-- alinhamento à esquerda */
  margin: 16px 0;
}

.mobile-price .priceRow__value {
  font-size: 1.4rem;
  font-weight: 800;
  color: #2f3746;
  margin-bottom: 6px;
}

.mobile-price .priceRow__fee {
  font-size: 0.95rem;
  color: #5b6676;
  line-height: 1.6;
}
