/* =======================
   Base / Reset leve
======================= */
*{ box-sizing:border-box; }
:root{
  --safe-top: env(safe-area-inset-top);
  --safe-bottom: env(safe-area-inset-bottom);
  --brand:#0b7c8b;
  --ink:#0a2330;
  --ink-2:#415462;
  --line:#e6edf2;
  --bg-soft:#f6fafb;
}
html,body{ height:100%; }
body{
  margin:0;
  font-family:'Quicksand', system-ui, -apple-system, Roboto, sans-serif;
  color:var(--ink);
  background:#fff;
}
img,picture,video{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button,.btn{ min-height:44px; min-width:44px; touch-action:manipulation; cursor:pointer; }
:focus-visible{ outline:3px solid rgba(11,124,139,.6); outline-offset:2px; }
.container{ width:min(1100px,92vw); margin:0 auto; }

/* Tipografia fluida */
h1{ font-size:clamp(1.6rem,2.4vw + 1.2rem,2.8rem); line-height:1.2; margin:.5em 0 .4em; }
h2{ font-size:clamp(1.3rem,1.6vw + 1rem,2rem); line-height:1.2; margin:.5em 0 .4em; }
h3{ font-size:clamp(1.05rem,1.2vw + .9rem,1.3rem); line-height:1.25; margin:.5em 0 .4em; }
p,li,a,input,button{ font-size:clamp(.95rem,.3vw + .9rem,1.05rem); }

/* =======================
   Navegação / Topo
======================= */
.topo-menu{ position:relative; z-index:1500; background:#fff; border-bottom:1px solid var(--line); }
.menu-container{
  width:min(1100px,92vw); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:6px 0;
}
.menu-logo{ display:flex; align-items:center; gap:8px; }
.menu-logo img{ max-height:60px; height:auto; }
.menu-links{ display:flex; align-items:center; gap:1rem; list-style:none; margin:0; padding:0; }
.menu-links a{ padding:.5rem .6rem; border-radius:.5rem; }
.menu-links a:hover{ background:#f3f6f8; }
.hamburger{ display:none; background:transparent; border:0; font-size:1.25rem; }

/* Dropdown (desktop) */
.dropdown{ position:relative; }
.dropdown-menu{
  position:absolute; top:100%; left:0; min-width:200px;
  background:#fff; border:1px solid var(--line); border-radius:.6rem;
  padding:.4rem; list-style:none; margin:.3rem 0 0;
}
.dropdown-menu[hidden]{ display:none !important; }

/* Menu mobile */
@media (max-width:1024px){
  .hamburger{ display:inline-flex; align-items:center; justify-content:center; }
  .menu-links{
    display:none; position:absolute; top:100%; right:4vw; left:4vw;
    background:#fff; border:1px solid var(--line); border-radius:.8rem;
    padding:.6rem; box-shadow:0 8px 30px rgba(0,0,0,.06);
  }
  .menu-links[data-open="true"]{ display:grid; gap:.3rem; }
  .dropdown .dropdown-menu{ position:static; border:0; box-shadow:none; }
}

/* =======================
   Hero (compacto, sem “buraco”)
======================= */
/* clique garantido no botão do card */
.carousel-background{ pointer-events:none; }
.welcome-text.hero-card{
  position:relative; z-index:10; pointer-events:auto;
  background:rgba(255,255,255,.86); backdrop-filter:blur(4px);
  border-radius:14px; width:fit-content;
  margin:0 0 8px 0; padding:10px 14px;
}
.welcome-text.hero-card h1{ margin:0 0 4px; line-height:1.1; }
.welcome-text.hero-card p{ margin:0 0 8px; }

/* remove gap para a próxima seção */
main{ margin-top:0; padding-top:0; }
main > section:first-of-type{ margin-top:0; padding-top:0; }
#sobre h2{ margin-top:0; }

/* Mobile ainda mais compacto */
@media (max-width:640px){
  .hero{ min-height:min(50vh,460px); padding-top:4px; padding-bottom:6px; }
  .menu-logo img{ max-height:52px; }
  .welcome-text.hero-card{ margin-bottom:6px; }
}

/* =======================
   Botões
======================= */
.btn,.btn-reservar,.btn-primary,.btn-outline{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.2rem; border-radius:.8rem; border:2px solid transparent;
}
.btn-primary,.btn-reservar{ background:var(--brand); color:#fff; }
.btn-primary:hover,.btn-reservar:hover{ filter:brightness(.95); }
.btn-outline{ border-color:var(--brand); color:var(--brand); background:#fff; }
.btn-outline:hover{ background:var(--brand); color:#fff; }

/* =======================
   Seção: Sobre
======================= */
.sobre-profissional .sobre-conteudo{
  display:grid; grid-template-columns:1.2fr .9fr; gap:clamp(16px,3vw,36px); align-items:center;
}
@media (max-width:900px){ .sobre-profissional .sobre-conteudo{ grid-template-columns:1fr; } }

/* =======================
   Seção: Serviços
======================= */
.servicos-section{ margin:clamp(28px,6vw,64px) auto; }
.servicos{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,2.5vw,22px); }
.servico-card{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; text-align:center;
  box-shadow:0 8px 26px rgba(10,35,48,.04);
}
.servico-card i{ font-size:28px; margin-bottom:8px; color:var(--brand); }
@media (max-width:1100px){ .servicos{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .servicos{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .servicos{ grid-template-columns:1fr; } }

/* =======================
   Seção: Passeios
======================= */
.passeios-section{ margin:clamp(28px,6vw,64px) auto; }
.passeios{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,2.5vw,22px); }
.passeio-card{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px;
  display:grid; gap:.5rem; box-shadow:0 8px 26px rgba(10,35,48,.04);
}
.passeio-card i{ font-size:26px; color:var(--brand); }
@media (max-width:1100px){ .passeios{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .passeios{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .passeios{ grid-template-columns:1fr; } }

/* =======================
   Seção: Reserva
======================= */
#reserva .btn-group{ display:flex; flex-wrap:wrap; gap:10px; }

/* =======================
   Modal de Reserva
======================= */
.modal{
  display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.55);
  justify-content:center; align-items:center; padding:20px;
}
.modal.show{ display:flex; }
.modal .modal-content{ width:min(680px,96vw); background:#fff; border-radius:12px; padding:20px; }
body.modal-open{ overflow:hidden; }
.form-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.form-group{ display:grid; gap:6px; }
label{ color:var(--ink-2); }
input[type="date"], input[type="number"]{
  width:100%; height:46px; border:1px solid #dfe7ec; border-radius:10px; padding:0 12px; background:#fff;
}
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }

/* =======================
   Prévia (iframe) opcional
======================= */
.iframe-shell{ aspect-ratio:16/10; width:100%; }
.iframe-shell iframe{ width:100%; height:100%; border:0; border-radius:12px; }

/* =======================
   Mapa
======================= */
.mapa-shell{ margin:.4rem 0 1rem; }
.mapa-embed iframe{ width:100%; height:min(70vh,560px); border:0; border-radius:14px; }

/* =======================
   Footer
======================= */
footer{ padding:28px 4vw; border-top:1px solid var(--line); text-align:center; color:var(--ink-2); }

/* =======================
   Utilidades
======================= */
.hidden{ display:none !important; }
.text-center{ text-align:center; }
.bg-soft{ background:var(--bg-soft); }

/* Âncoras suaves para headings */
h1,h2,h3{ scroll-margin-top:72px; }
/* ===== Compactar o card do hero (título, frase e botão) ===== */
.welcome-text.hero-card{
  padding: 6px 10px !important;   /* menos respiro interno */
  gap: 4px !important;            /* menos espaço entre os elementos do card */
  margin: 0 !important;           /* nada de margem extra */
}
.welcome-text.hero-card h1{
  margin: 0 0 2px !important;
  line-height: 1.08 !important;   /* título mais “colado” */
}
.welcome-text.hero-card p{
  margin: 0 0 4px !important;     /* frase colada no botão */
}
.welcome-text.hero-card .btn{
  margin: 0 !important;           /* tira qualquer margem no botão */
  padding: .45rem .75rem !important;  /* botão menor (opcional) */
  border-radius: .5rem !important;
  min-height: 34px !important;
  font-size: .9rem !important;
}


/* primeira seção encosta no hero */
main{ margin-top: 0 !important; padding-top: 0 !important; }
main > section:first-of-type{
  margin-top: 0 !important;
  padding-top: 0 !important;
}
main > section:first-of-type > *:first-child{
  margin-top: 0 !important;
}

/* Segurança: nada “invisível” cobrindo o botão */
.carousel-background,
.carousel-background *{ pointer-events: none !important; }
.welcome-text.hero-card,
.welcome-text.hero-card *{ pointer-events: auto !important; }
/* Posiciona o card sobre a foto, centralizado na base */
.welcome-text.hero-card{
  position:absolute;              /* passa a flutuar sobre a imagem */
  left:50%; transform:translateX(-50%);
  bottom:clamp(12px, 7vh, 56px);
  z-index:2;
  background: rgba(0,0,0,.35) !important;  /* contraste leve p/ leitura */
  backdrop-filter: blur(2px) !important;
}

/* Texto branco com sombra para legibilidade */
.welcome-text.hero-card h1,
.welcome-text.hero-card p{
  color:#fff !important;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
}

/* card sem fundo: só o texto por cima da foto */
.welcome-text.hero-card{
  background: transparent !important;
  backdrop-filter: none !important;
  padding: 6px 10px !important;
  gap: 6px !important;
}

/* melhora leitura sobre a foto */
.welcome-text.hero-card p{
  color:#fff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.45);
}

/* botão menor e destacado */
.welcome-text.hero-card .btn{
  padding:.45rem .75rem !important;
  border-radius:.5rem !important;
}
/* Focar a parte de baixo da imagem (placa) */
.hero-slide,
.carousel-background img{
  object-fit: cover !important;
  object-position: 50% 75% !important;   /* 50% = centro horizontal | 75% = mais para baixo */
}

/* Ajuste fino por breakpoint (se no mobile ainda ficar alto, desce mais) */
@media (max-width: 640px){
  .hero-slide,
  .carousel-background img{
    object-position: 50% 82% !important; /* empurra o foco um pouco mais para baixo */
  }
}

/* 2) Título e frase brancos por cima da foto */
.welcome-text.hero-card h1,
.welcome-text.hero-card p{
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.45); /* melhora contraste na foto */
}

/* Se quiser ver mais a foto, deixe o card transparente */
.welcome-text.hero-card{
  background: transparent !important;
  backdrop-filter: none !important;
}

/* 3) (Opcional) faixa de contraste bem leve sobre a foto */
.carousel-container::after{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.15) 35%, rgba(0,0,0,0) 70%);
  z-index: 1;               /* fica atrás do card */
}
/* garante que o texto fique acima da faixa */
.welcome-text.hero-card{ position: relative; z-index: 2; }
.booking-panel label {
  display: flex;
  flex-direction: column;
  font-weight: 600;
  color: #0b7c8b; /* azul da Corais de Trancoso */
  font-size: 0.95rem;
  margin-bottom: .4rem;
}

/* quando o form estiver DENTRO do header */
.booking-panel{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom: clamp(12px, 4vh, 40px);
  z-index:3;
  width:min(720px,92%);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(4px);
  border-radius:14px; padding:14px;
  box-shadow:0 12px 32px rgba(0,0,0,.22);
}
@media (max-width:768px){
  .booking-panel{ width:92%; bottom: clamp(10px, 3vh, 28px); padding:12px; }
}

/* ===== HERO PROFISSIONAL: foto cheia + título e formulário sobrepostos ===== */

/* Estrutura e altura real do hero */
header.hero{ position:relative; overflow:hidden; }
.hero{ position:relative; min-height:min(72vh, 600px); margin:0; padding:0; }

/* Imagem de fundo preenche tudo */
.carousel-container{ position:absolute; inset:0; z-index:1; }
.carousel-background{ position:absolute; inset:0; }
.carousel-background picture,
.carousel-background img{
  position:absolute !important; inset:0;
  width:100%; height:100% !important;
  object-fit:cover !important;
  object-position:50% 82% !important; /* mostra mais a parte de baixo */
}

/* Gradiente sutil para leitura do conteúdo */
.carousel-container::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.10) 40%, rgba(0,0,0,0) 70%);
}

/* Título (card leve) sobre a foto */
.welcome-text.hero-card{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom: clamp(88px, 22vh, 160px); /* deixa espaço para o formulário abaixo */
  z-index:2;
  background: rgba(0,0,0,.28);
  backdrop-filter: blur(2px);
  color:#fff; padding:10px 14px; border-radius:12px;
  text-align:center;
}
.welcome-text.hero-card h1,
.welcome-text.hero-card p{
  color:#fff; margin:0 0 6px;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
}

/* Formulário sobre a foto (card) */
.booking-panel{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom: clamp(16px, 6vh, 48px);
  z-index:3;
  width:min(720px, 92%);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(4px);
  border-radius:14px; padding:14px;
  box-shadow:0 12px 32px rgba(0,0,0,.22);
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px;
}
.booking-panel label{ display:grid; gap:6px; font-weight:600; color:#0b7c8b; }
.booking-panel input[type="date"], .booking-panel select{
  height:44px; padding:0 10px; border:1px solid #cfd8dc; border-radius:10px; background:#fff;
}
.booking-panel .btn{ grid-column:1 / -1; }

/* Mobile: foco mais baixo da foto e formulário compacto */
@media (max-width: 768px){
  .hero{ min-height:min(78vh, 620px); }
  .carousel-background img{ object-position:50% 86% !important; }
  .welcome-text.hero-card{
    bottom: clamp(120px, 26vh, 180px);
    padding:10px 12px;
  }
  .booking-panel{
    width:92%;
    grid-template-columns:1fr 1fr;
    gap:8px; padding:12px;
    bottom: clamp(12px, 6vh, 40px);
  }
  .booking-panel .btn{ grid-column:1 / -1; }
}

/* Garanta que nada atrapalhe o clique no formulário */
.carousel-background, .carousel-background *{ pointer-events:auto; }
/* Passeios: deixa o "Saiba mais" com mais presença */
.passeio-card .btn-outline{
  border-color: var(--brand);
  color: var(--brand);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
  padding: .55rem .9rem;
  border-width: 2px;
  position: relative;
}

.passeio-card .btn-outline::after{
  content: " →";
  font-weight: 700;
  transition: transform .18s ease;
}

.passeio-card .btn-outline:hover{
  background: var(--brand);
  color: #fff;
}

.passeio-card .btn-outline:hover::after{
  transform: translateX(2px);
}/* CTA WhatsApp mais forte */
#reserva .btn-group .btn-reserva{
  font-size: 1.05rem;          /* maior */
  font-weight: 700;            /* mais “pesado” */
  padding: .85rem 1.2rem;
  border-radius: .9rem;
  box-shadow: 0 8px 24px rgba(11,124,139,.18);
  transition: transform .15s ease, box-shadow .15s ease;
}

/* variação em verde WhatsApp, mantendo a identidade */
#reserva .btn-group .btn-reserva{
  background: #25D366;         /* verde WhatsApp */
  border-color: #25D366;
  color: #0a2330;              /* legível sobre verde */
}

#reserva .btn-group .btn-reserva:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(37,211,102,.25);
}/* ===== SOBRE (MOBILE): texto primeiro, imagem embaixo ===== */
@media (max-width: 900px){
  /* garante 1 coluna no mobile */
  .sobre-profissional .sobre-conteudo{
    display: grid;
    grid-template-columns: 1fr !important;
  }

  /* força a ordem no grid */
  .sobre-profissional .texto-sobre{ grid-row: 1; }
  .sobre-profissional .imagem-sobre{ 
    grid-row: 2;

    /* deixa a foto com mais presença sem quebrar layout */
    margin: 10px -14px 2px;           /* “sangra” um pouco nas laterais */
  }

  .sobre-profissional .imagem-sobre picture,
  .sobre-profissional .imagem-sobre img{
    display:block; width:100%; height:auto;
    aspect-ratio: 16 / 10;             /* mude p/ 3/2 se quiser mais alta */
    object-fit: cover;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 14px 40px rgba(10,35,48,.12);
  }
}

/* acabamento no desktop/tablet (mantém sua estrutura) */
.sobre-profissional .imagem-sobre picture,
.sobre-profissional .imagem-sobre img{
  border-radius: 16px;
  box-shadow: 0 14px 40px rgba(10,35,48,.08);
}/* Esconde o painel antigo (se ainda estiver no HTML) */
.booking-panel { display: none !important; }

/* CTA do hero: destaque premium */
.welcome-text.hero-card .cta-omnibees{
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--brand); color: #fff; border: 0;
  border-radius: .9rem; padding: .75rem 1.25rem;
  font-weight: 800; text-decoration: none;
  box-shadow: 0 10px 28px rgba(11,124,139,.28);
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.welcome-text.hero-card .cta-omnibees::after{ content: " →"; font-weight: 800; }
.welcome-text.hero-card .cta-omnibees:hover{
  transform: translateY(-1px);
  filter: brightness(.98);
  box-shadow: 0 12px 32px rgba(11,124,139,.34);
}

/* Card do hero por cima da foto, com boa leitura */
.welcome-text.hero-card{
  position: absolute; left: 50%; transform: translateX(-50%);
  bottom: clamp(16px, 10vh, 72px);
  z-index: 2; text-align: center;
  background: rgba(0,0,0,.28); backdrop-filter: blur(2px);
  padding: 10px 14px; border-radius: 12px;
}
.welcome-text.hero-card h1,
.welcome-text.hero-card p{
  color: #fff; margin: 0 0 8px;
  text-shadow: 0 2px 8px rgba(0,0,0,.45);
}

/* Enquadramento melhor no mobile */
@media (max-width: 768px){
  .carousel-background img{ object-position: 50% 86% !important; }
  .welcome-text.hero-card .cta-omnibees{
    padding: .7rem 1.1rem; font-size: 1.02rem;
  }
}/* ===== Rodapé profissional (desktop + mobile) ===== */

/* ===== Refinos finais do RODAPÉ (desktop + mobile) ===== */

/* Tipografia e respiro melhores no desktop */
.site-footer{
  margin-top: clamp(36px,7vw,80px);
  background:#0a1e27;
  color:#dfe7ec;
  font-size: 0.98rem;
}
.footer-wrap{
  width:min(1100px,92vw);
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.2fr 1fr 1.4fr;
  gap: clamp(20px,3.2vw,44px);
  padding: clamp(28px,5vw,56px) 0;
}
.footer-links h4,.footer-contact h4{
  margin:0 0 .6rem; color:#fff; font-weight:800;
  text-transform:uppercase; letter-spacing:.5px; font-size:.95rem;
}

/* Links legíveis e com quebra correta (e-mail/instagram) */
.footer-links a,.footer-contact a{ line-height:1.6; }
.footer-contact a{
  word-break: break-word;
  overflow-wrap: anywhere; /* quebra longas */
}

/* CTA WhatsApp visível */
.footer-cta{ border-top:1px solid rgba(255,255,255,.1); padding:18px 0; text-align:center; }
.footer-whatsapp{
  background: var(--brand); color:#fff; font-weight:800;
  padding:.9rem 1.4rem; border-radius:.9rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  box-shadow:0 8px 24px rgba(11,124,139,.25);
}
.footer-whatsapp:hover{ transform:translateY(-2px); filter:brightness(1.05); }

/* Linha final */
.footer-legal{ border-top:1px solid rgba(255,255,255,.08); text-align:center; padding:14px 4vw; color:#9fb1bb; }

/* ===== MOBILE ===== */
@media (max-width: 900px){
  .footer-wrap{
    grid-template-columns: 1fr !important;
    gap: 28px;
    text-align: center;
    padding: 28px 0;
  }
  /* cada coluna vira bloco centrado com largura confortável */
  .footer-wrap > *{
    width:100%;
    max-width: 560px;
    margin: 0 auto;
  }
  .footer-links, .footer-contact{ justify-items:center; }
  .footer-links a, .footer-contact a{ display:block; } /* evita ficar tudo numa linha */
  .footer-brand img{ width:140px; height:auto; margin:0 auto 10px; }
  .footer-legal{ font-size:.9rem; }
}