/* Amo Lençóis Turismo — estilos de página (home). Usado por: index.html */
  :root{
    --gold: #FDB813;
    --gold-deep: #E39B00;
    --blue: #1B3F9B;
    --blue-deep: #0F2560;
    --blue-night: #081338;
    --ink: #0A0A0A;
    --cream: #FBF3DF;
    --white: #FFFFFF;
    --gray: #667085;
    --gray-dark: #4B5563;
    --border: #ECEEF1;
  }

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

  html{scroll-behavior:smooth;}

  body{
    font-family:'Open Sans',system-ui,sans-serif;
    background:var(--ink);
    color:var(--white);
    -webkit-font-smoothing:antialiased;
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- HERO ---------- */

  .hero{
    position:relative;
    min-height:100vh;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    background-image:
      linear-gradient(to bottom, rgba(8,19,56,0.68) 0%, rgba(8,19,56,0.26) 30%, rgba(8,19,56,0.30) 60%, rgba(5,10,26,0.76) 100%),
      url("../imagens/hero-desktop.webp");
    background-size: cover;
    background-position: center 60%;
    background-repeat: no-repeat;
    background-attachment: fixed;
  }

  /* fade — softens the photo into the next section's flat color
     (white for "Passeios") using a long, eased, multi-stop gradient
     (a smoothstep curve) instead of a linear 2-stop blend. Linear
     gradients across a tall span show visible "banding" because the
     eye is very sensitive to gradual luminance change; stepping through
     many stops that follow an S-curve (slow → fast → slow) reads as a
     single continuous, natural fade with no perceptible start/end line. */
  .hero-fade{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:clamp(120px, 17vh, 170px);
    background:linear-gradient(
      to bottom,
      color-mix(in srgb, var(--fade-target, var(--white)) 0%,   transparent) 0%,
      color-mix(in srgb, var(--fade-target, var(--white)) 1.5%, transparent) 8%,
      color-mix(in srgb, var(--fade-target, var(--white)) 4%,   transparent) 16%,
      color-mix(in srgb, var(--fade-target, var(--white)) 8%,   transparent) 24%,
      color-mix(in srgb, var(--fade-target, var(--white)) 14%,  transparent) 32%,
      color-mix(in srgb, var(--fade-target, var(--white)) 22%,  transparent) 40%,
      color-mix(in srgb, var(--fade-target, var(--white)) 32%,  transparent) 48%,
      color-mix(in srgb, var(--fade-target, var(--white)) 45%,  transparent) 56%,
      color-mix(in srgb, var(--fade-target, var(--white)) 58%,  transparent) 64%,
      color-mix(in srgb, var(--fade-target, var(--white)) 71%,  transparent) 72%,
      color-mix(in srgb, var(--fade-target, var(--white)) 82%,  transparent) 80%,
      color-mix(in srgb, var(--fade-target, var(--white)) 91%,  transparent) 88%,
      color-mix(in srgb, var(--fade-target, var(--white)) 97%,  transparent) 94%,
      var(--fade-target, var(--white)) 100%
    );
    pointer-events:none;
  }

  /* ---------- HEADER ---------- */

  header{
    position:sticky;
    top:0;
    z-index:30;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:18px clamp(20px, 4vw, 56px);
    background:none;
  }

  .brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    flex-shrink:0;
  }

  .brand img{
    height:44px;
    width:auto;
    display:block;
    filter:drop-shadow(0 2px 6px rgba(5,10,26,0.45));
  }

  .brand span.wordmark{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800;
    font-size:clamp(18px, 2vw, 23px);
    line-height:1;
    color:var(--white);
    text-transform:uppercase;
    letter-spacing:0.01em;
    text-shadow:0 1px 8px rgba(5,10,26,0.55);
    white-space:nowrap;
  }

  nav.primary-nav{
    display:flex;
    align-items:center;
    gap:clamp(18px, 2.4vw, 34px);
  }

  nav.primary-nav a{
    color:var(--white);
    text-decoration:none;
    font-size:15px;
    font-weight:500;
    letter-spacing:0.01em;
    opacity:0.88;
    position:relative;
    padding:4px 0;
    text-shadow:0 1px 8px rgba(5,10,26,0.55);
    transition:opacity 0.2s ease;
  }

  nav.primary-nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-2px;
    width:0;
    height:2px;
    background:var(--gold);
    transition:width 0.25s ease;
  }

  nav.primary-nav a:hover{opacity:1;}
  nav.primary-nav a:hover::after{width:100%;}
  nav.primary-nav a:focus-visible,
  .btn:focus-visible,
  .brand:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
  }

  .header-actions{display:flex;align-items:center;gap:18px;flex-shrink:0;}

  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 24px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    text-decoration:none;
    white-space:nowrap;
    transition:transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  }

  .btn-primary{
    background:var(--gold);
    color:var(--ink);
    box-shadow:0 8px 24px -8px rgba(253,184,19,0.6);
  }
  .btn-primary:hover{background:#ffc94a; transform:translateY(-1px);}

  .btn-ghost{
    background:transparent;
    color:var(--white);
    border:1.5px solid rgba(255,255,255,0.5);
  }
  .btn-ghost:hover{border-color:var(--white); background:rgba(255,255,255,0.08); transform:translateY(-1px);}

  /* small button variants — used inside tour cards on white backgrounds */
  .btn-primary-sm{
    background:var(--gold);
    color:var(--ink);
    padding:10px 0;
    font-size:13.5px;
  }
  .btn-primary-sm:hover{background:#ffc94a;}

  .btn-ghost-sm{
    background:transparent;
    color:var(--ink);
    border:1.5px solid #D8DCE3;
    padding:10px 0;
    font-size:13.5px;
  }
  .btn-ghost-sm:hover{border-color:var(--gold-deep); background:#FFFBF0;}

  .link-cta{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--white);
    text-decoration:none;
    font-size:15px;
    font-weight:600;
    padding:12px 6px;
    border-bottom:1.5px solid rgba(255,255,255,0.4);
    transition:border-color 0.2s ease, gap 0.2s ease;
  }
  .link-cta span{transition:transform 0.2s ease;}
  .link-cta:hover{border-color:var(--gold);}
  .link-cta:hover span{transform:translateX(3px);}

  .nav-toggle{
    display:none;
    background:none;
    border:none;
    color:var(--white);
    font-size:26px;
    cursor:pointer;
    padding:4px;
    text-shadow:0 1px 8px rgba(5,10,26,0.55);
  }

  /* ---------- HERO CONTENT ---------- */

  .hero-content{
    position:relative;
    z-index:2;
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:40px clamp(20px, 6vw, 40px) 140px;
  }

  .tag-stamp{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:700;
    letter-spacing:0.02em;
    color:var(--gold);
    font-size:clamp(17px, 2vw, 21px);
    display:inline-block;
    margin-bottom:22px;
    text-shadow:0 2px 12px rgba(0,0,0,0.35);
  }

  h1{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800;
    text-transform:uppercase;
    line-height:0.98;
    letter-spacing:0.01em;
    font-size:clamp(2.6rem, 6.6vw, 5.2rem);
    max-width:16ch;
    color:var(--white);
    text-shadow:0 4px 24px rgba(5,10,26,0.55);
  }

  h1 span{color:var(--gold);}

  .hero-sub{
    margin-top:26px;
    max-width:56ch;
    font-size:clamp(1rem, 1.5vw, 1.2rem);
    line-height:1.6;
    color:rgba(255,255,255,0.86);
    font-weight:400;
    text-shadow:0 2px 14px rgba(5,10,26,0.5);
  }

  .hero-ctas{
    margin-top:32px;
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    justify-content:center;
  }

  .hero-ctas .btn{padding:15px 30px; font-size:16px;}

  .scroll-cue{
    position:absolute;
    bottom:68px;
    left:50%;
    transform:translateX(-50%);
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:rgba(255,255,255,0.75);
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    animation:bob 2.2s ease-in-out infinite;
  }

  @keyframes bob{
    0%,100%{transform:translate(-50%,0);}
    50%{transform:translate(-50%,8px);}
  }


  /* ---------- HERO CLARO + VITRINE DE DESTAQUES ---------- */
  /* A hero deixou de ser foto de tela cheia: fundo creme, texto centralizado
     e, logo abaixo, a faixa de cards que corre sozinha. Mesma mecânica no
     celular e no computador — quem manda é o scroll nativo, então arrastar
     com o dedo e arrastar com o mouse funcionam sem código extra. */

  .hero.hero--claro{
    min-height:0;
    background:var(--white);
    background-image:none;
    background-attachment:scroll;
    padding-bottom:clamp(34px, 4.5vw, 56px);
  }

  /* cabeçalho sobre fundo claro: tira o branco e as sombras de foto */
  .hero--claro .brand img{ filter:none; }
  .hero--claro .brand span.wordmark{ color:var(--ink); text-shadow:none; }
  .hero--claro nav.primary-nav a{ color:var(--ink); text-shadow:none; opacity:0.72; }
  .hero--claro nav.primary-nav a:hover{ opacity:1; }
  .hero--claro .nav-toggle{ color:var(--ink); text-shadow:none; }
  @media (max-width: 880px){
    /* o menu deslizante continua escuro — ele cobre a tela inteira */
    .hero--claro nav.primary-nav a{ color:var(--white); opacity:0.9; }
  }

  .hero-claro{
    position:relative; z-index:2;
    display:flex; flex-direction:column; align-items:center; text-align:center;
    padding:clamp(38px, 6vw, 74px) clamp(20px, 6vw, 40px) 0;
  }
  .hero--claro h1{
    color:var(--ink);
    text-shadow:none;
    font-size:clamp(2.2rem, 5.2vw, 4.1rem);
    max-width:21ch;
    text-wrap:balance;
  }
  .hero--claro h1 span{ color:var(--gold); }
  .hero--claro .hero-sub{
    color:var(--gray-dark);
    text-shadow:none;
    margin-top:18px;
    max-width:52ch;
  }
  .hero--claro .hero-ctas{ margin-top:26px; }

  /* botão vazado para fundo claro (o .btn-ghost é branco, só serve sobre foto) */
  .btn-contorno{
    background:var(--white);
    color:var(--ink);
    border:1.5px solid #DBDFE5;
  }
  .btn-contorno:hover{ border-color:var(--ink); transform:translateY(-1px); }

  /* ---- a faixa ----
     O movimento é feito com transform, não com scroll. Scroll só anda de
     pixel em pixel inteiro: a 45px por segundo isso dá meio pixel por quadro,
     e o que sobra vira trepidação. O transform aceita fração de pixel e roda
     na placa de vídeo, então a faixa desliza sem serrilhar. */
  .vitrine{
    position:relative;
    margin-top:clamp(26px, 4vw, 42px);
    overflow:hidden;
  }
  .vitrine::-webkit-scrollbar{ display:none; }

  .vitrine__faixa{
    display:flex;
    gap:14px;
    width:max-content;
    padding-inline:clamp(20px, 4vw, 56px);
    /* tempo e distância são medidos e escritos pelo JS logo abaixo, pra
       velocidade ficar igual em qualquer tela e com qualquer nº de cards */
    animation: vitrine-correr var(--vitrine-tempo, 46s) linear infinite;
    will-change: transform;
    backface-visibility: hidden;
  }
  .vitrine--pausada .vitrine__faixa,
  .vitrine:hover .vitrine__faixa{ animation-play-state: paused; }

  @keyframes vitrine-correr{
    from{ transform: translate3d(0, 0, 0); }
    to  { transform: translate3d(var(--vitrine-volta, -2900px), 0, 0); }
  }

  /* quem pediu menos movimento no sistema vê a faixa parada e arrasta na mão */
  @media (prefers-reduced-motion: reduce){
    .vitrine{
      overflow-x:auto;
      overflow-y:hidden;
      scrollbar-width:none;
      -ms-overflow-style:none;
      -webkit-overflow-scrolling:touch;
    }
    .vitrine__faixa{ animation:none; will-change:auto; }
  }

  .card-vit{
    position:relative;
    flex:0 0 auto;
    width:305px;                 /* medidas do Figma: 305 x 410, raio 16 */
    aspect-ratio:305 / 410;
    border-radius:16px;
    overflow:hidden;
    text-decoration:none;
    background:var(--blue-night);
    box-shadow:0 14px 34px -20px rgba(5,10,26,0.6);
    margin:0;
    user-select:none;
  }

  .card-vit img{
    position:absolute; inset:0; z-index:0;
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    -webkit-user-drag:none;
  }


  @media (max-width: 880px){
    .hero-claro{ padding-top:18px; }
    .card-vit{ width:clamp(230px, 74vw, 305px); }
  }


  /* ---------- RESPONSIVE ---------- */

  @media (max-width: 880px){
    nav.primary-nav{
      position:fixed;
      top:0;
      right:0;
      height:100vh;
      width:min(78vw, 320px);
      background:var(--blue-night);
      flex-direction:column;
      align-items:flex-start;
      justify-content:flex-start;
      gap:0;
      padding:100px 32px 32px;
      transform:translateX(100%);
      transition:transform 0.3s ease;
      box-shadow:-12px 0 40px rgba(0,0,0,0.4);
    }
    nav.primary-nav.open{transform:translateX(0);}

    /* com o painel escuro aberto, o botão vira o X de fechar — e precisa ser
       claro pra aparecer sobre ele (fechado, ele é escuro sobre fundo claro) */
    nav.primary-nav.open ~ .header-actions .nav-toggle{
      color:var(--white);
      text-shadow:0 1px 8px rgba(5,10,26,0.55);
    }
    nav.primary-nav a{
      padding:14px 0;
      width:100%;
      border-bottom:1px solid rgba(255,255,255,0.1);
      font-size:17px;
    }
    .header-actions .btn-primary{padding:10px 18px; font-size:14px;}
    .nav-toggle{display:block;}

    /* o painel é position:fixed, então por padrão ele passa POR CIMA do botão
       e o X some. Isso levanta o botão acima do painel. */
    .nav-toggle{ position:relative; z-index:2; }
    .hero-content{padding-bottom:110px;}

    /* real photo replaces the illustrated gradient on mobile;
       parallax is skipped here on purpose (unreliable + heavy on iOS Safari) */
    .hero{
      background-image:
        linear-gradient(to bottom, rgba(8,19,56,0.76) 0%, rgba(8,19,56,0.36) 26%, rgba(8,19,56,0.46) 58%, rgba(5,10,26,0.80) 100%),
        url("../imagens/hero-mobile.webp");
      background-size: cover;
      background-position: center 28%;
      background-repeat: no-repeat;
      background-attachment: scroll;
    }
  }

  @media (max-width: 480px){
    .brand span.wordmark{display:none;}
    .header-actions .btn-primary span.full{display:none;}
  }

  /* ---------- PASSEIOS ---------- */

  .tours{
    background:var(--white);
    padding:88px clamp(20px, 4vw, 56px) 100px;
  }

  .tours__head{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    max-width:1320px;
    margin:0 auto 44px;
  }

  .tours__head h2{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800;
    text-transform:uppercase;
    color:var(--ink);
    font-size:clamp(2rem, 4vw, 3rem);
    line-height:1.02;
  }

  .tours__head p{
    margin-top:10px;
    color:var(--gray);
    font-size:clamp(1rem, 1.4vw, 1.1rem);
    max-width:52ch;
  }

  .pill-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:13px 26px;
    border-radius:999px;
    border:1.5px solid #D8DCE3;
    color:var(--ink);
    text-decoration:none;
    font-size:14.5px;
    font-weight:600;
    white-space:nowrap;
    transition:border-color 0.2s ease, background 0.2s ease;
  }
  .pill-btn:hover{border-color:var(--gold-deep); background:#FFFBF0;}
  .pill-btn:focus-visible{outline:2px solid var(--gold-deep); outline-offset:3px;}

  /* ---------- Passeios: abas de categoria ---------- */

  .tours__tabs{
    display:flex;
    justify-content:center;
    gap:10px;
    overflow-x:auto;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding:4px 4px 10px;
    margin:0 auto 40px;
    max-width:1320px;
  }
  .tours__tabs::-webkit-scrollbar{display:none;}

  .tours__tab{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    padding:12px 24px;
    border-radius:999px;
    border:1.5px solid #D8DCE3;
    background:var(--white);
    color:var(--ink);
    font-size:14.5px;
    font-weight:600;
    font-family:inherit;
    white-space:nowrap;
    cursor:pointer;
    transition:background 0.22s ease, border-color 0.22s ease, color 0.22s ease, transform 0.15s ease;
  }
  .tours__tab:hover{border-color:var(--gold-deep);}
  .tours__tab:active{transform:scale(0.97);}
  .tours__tab.is-active{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--ink);
  }
  .tours__tab:focus-visible{outline:2px solid var(--gold-deep); outline-offset:2px;}

  /* ---------- Passeios: grade de cards ---------- */

  .tours__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    max-width:1320px;
    margin:0 auto;
    transition:opacity 0.3s ease, transform 0.3s ease;
  }
  .tours__grid.is-switching{
    opacity:0;
    transform:translateY(12px);
  }

  .tour-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 1px 3px rgba(10,10,10,0.05);
    transition:transform 0.28s ease, box-shadow 0.28s ease;
  }
  .tour-card:hover{transform:translateY(-5px); box-shadow:0 20px 34px -16px rgba(10,10,10,0.2);}

  .tour-card__media{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
  }

  .tour-card__media img{
    width:100%; height:100%;
    object-fit:cover; display:block;
    transition:transform 0.5s ease;
  }
  .tour-card:hover .tour-card__media img{transform:scale(1.06);}

  /* placeholder tile — swap for a real photo of the tour when available */
  .tour-card__media .ph{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, var(--blue) 0%, var(--blue-deep) 55%, var(--blue-night) 100%);
    transition:transform 0.5s ease;
  }
  .tour-card__media .ph--alt{
    background:linear-gradient(135deg, var(--blue-deep) 0%, var(--blue-night) 60%, #050a1a 100%);
  }
  .tour-card__media .ph--gold{
    background:linear-gradient(135deg, var(--gold-deep) 0%, var(--blue-deep) 62%, var(--blue-night) 100%);
  }
  .tour-card:hover .tour-card__media .ph{transform:scale(1.06);}

  .tour-card__media::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(5,10,26,0.75) 0%, rgba(5,10,26,0.08) 55%, transparent 75%);
    pointer-events:none;
  }

  .tour-card__badge{
    position:absolute; top:14px; left:14px; z-index:2;
    background:rgba(255,255,255,0.94);
    color:var(--blue-deep);
    font-size:11.5px; font-weight:700;
    letter-spacing:0.03em; text-transform:uppercase;
    padding:6px 12px; border-radius:999px;
  }

  .tour-card__caption{
    position:absolute; left:16px; right:16px; bottom:14px; z-index:2;
    color:var(--white);
  }
  .tour-card__caption h3{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800;
    text-transform:uppercase; font-size:1.25rem; line-height:1.05;
  }

  .tour-card__body{padding:18px 18px 20px;}

  .tour-card__desc{
    font-size:13.5px; color:var(--gray-dark); line-height:1.5;
    margin-bottom:16px; min-height:40px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }

  .tour-card__price-label{font-size:12px; color:var(--gray);}
  .tour-card__price small{
    font-size:11.5px; font-weight:600; color:var(--gray);
    margin-left:2px;
  }
  .tour-card__price{
    margin-top:2px; margin-bottom:14px;
    font-size:1.15rem; font-weight:700; color:var(--gold-deep);
  }

  .tour-card__actions{display:flex; gap:10px;}
  .tour-card__actions .btn-primary-sm,
  .tour-card__actions .btn-ghost-sm{flex:1; justify-content:center;}

  @media (max-width: 880px){
    .tours{padding:64px 20px 76px;}
    .tours__head{align-items:flex-start;}
    .pill-btn{padding:11px 20px; font-size:13.5px;}

    .tours__tabs{justify-content:flex-start; padding:4px 2px 8px; margin-bottom:28px;}
    .tours__tab{padding:10px 18px; font-size:13px;}

    .tours__grid{grid-template-columns:repeat(2, 1fr); gap:13px;}
    .tour-card__body{padding:13px 13px 15px;}
    .tour-card__caption{left:11px; right:11px; bottom:10px;}
    .tour-card__caption h3{font-size:1.05rem; letter-spacing:0.01em;}
    .tour-card__badge{top:10px; left:10px; padding:5px 10px; font-size:10px;}
    .tour-card__desc{font-size:13px; margin-bottom:11px; min-height:32px; -webkit-line-clamp:2;}
    .tour-card__price-label{font-size:10.5px;}
    .tour-card__price{font-size:0.95rem; margin-bottom:10px;}
    .tour-card__actions{flex-direction:column; gap:7px;}
    .tour-card__actions .btn-primary-sm,
    .tour-card__actions .btn-ghost-sm{padding:9px 10px; font-size:12px;}
  }

  /* ---------- SCROLL REVEAL ---------- */

  .reveal{
    opacity:0;
    transform:translateY(26px);
    transition:opacity 0.7s cubic-bezier(.22,.61,.36,1), transform 0.7s cubic-bezier(.22,.61,.36,1);
  }
  .reveal.in-view{opacity:1; transform:translateY(0);}

  /* ---------- PACOTES ---------- */
  /* identidade própria: cartão de preço limpo, sem foto — mesma mecânica de
     carrossel/coverflow da seção Modalidades, mas visual completamente diferente */

  .packages{
    background:var(--cream);
    padding:90px clamp(20px, 4vw, 56px) 96px;
  }

  .packages__head{
    max-width:640px;
    margin:0 auto 50px;
    text-align:center;
  }
  .packages__head h2{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800;
    text-transform:uppercase;
    color:var(--ink);
    font-size:clamp(2rem, 4.2vw, 3.1rem);
    line-height:1.04;
  }
  .packages__head p{
    margin-top:12px;
    color:var(--gray-dark);
    font-size:clamp(1rem, 1.5vw, 1.15rem);
  }

  .packages__carousel{ position:relative; }

  .packages__track{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:26px;
    max-width:1180px;
    margin:0 auto;
    padding:18px clamp(20px, 4vw, 56px) 10px;
  }

  .package-card{
    position:relative;
    flex:1 1 0;
    min-width:0;
    max-width:340px;
    background:var(--white);
    border:1.5px solid var(--border);
    border-radius:22px;
    padding:32px 26px 28px;
    box-shadow:0 1px 3px rgba(10,10,10,0.05);
    transition:box-shadow 0.35s ease, border-color 0.35s ease;
  }

  /* pacote de 3 dias — protagonista, sutilmente elevado e com borda dourada.
     escopado só pro desktop: no mobile o destaque vem do card centralizado maior via JS */
  @media (min-width: 881px){
    .package-card--feature{
      border-color:var(--gold);
      box-shadow:0 26px 48px -22px rgba(10,10,10,0.22);
      transform:translateY(-12px);
    }
  }

  .package-card__badge{
    position:absolute; top:-14px; left:50%; transform:translateX(-50%);
    background:var(--gold);
    color:var(--ink);
    font-size:11px; font-weight:700;
    letter-spacing:0.05em; text-transform:uppercase;
    padding:7px 16px; border-radius:999px;
    box-shadow:0 8px 16px -6px rgba(227,155,0,0.55);
    white-space:nowrap;
    z-index:2;
  }

  .package-card__eyebrow{
    font-size:11.5px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--gray);
  }

  .package-card__days{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800;
    font-size:2.3rem; line-height:1;
    color:var(--ink);
    margin-top:6px;
  }

  .package-card__price{
    margin-top:18px;
    font-size:1.9rem; font-weight:700;
    color:var(--gold-deep);
    line-height:1;
  }
  .package-card__price small{
    display:block;
    margin-top:5px;
    font-size:12.5px; font-weight:600; color:var(--gray);
  }

  .package-card__label{
    margin-top:24px; margin-bottom:14px;
    padding-top:20px;
    border-top:1px solid var(--border);
    font-size:11px; font-weight:700; letter-spacing:0.09em; text-transform:uppercase;
    color:var(--gray);
  }

  .package-card__list{ list-style:none; margin-bottom:24px; }
  .package-card__list li{
    display:flex; align-items:flex-start; gap:10px;
    margin-bottom:13px;
  }
  .package-card__list li:last-child{ margin-bottom:0; }

  .package-card__check{
    flex:0 0 auto;
    width:18px; height:18px; border-radius:50%;
    background:var(--gold);
    display:flex; align-items:center; justify-content:center;
    margin-top:2px;
  }
  .package-card__check svg{ display:block; }

  .package-card__list strong{
    display:block; font-size:14px; font-weight:700; color:var(--ink);
  }
  .package-card__list small{
    display:block; margin-top:2px; font-size:12px; color:var(--gray); line-height:1.4;
  }

  .package-card__actions{ display:flex; gap:10px; }
  .package-card__actions .btn-primary-sm,
  .package-card__actions .btn-ghost-sm{ flex:1; justify-content:center; }

  .packages__custom{
    max-width:520px;
    margin:56px auto 0;
    text-align:center;
  }
  .packages__custom p{
    color:var(--gray-dark);
    font-size:14.5px;
    margin-bottom:16px;
  }

  @media (max-width: 880px){
    .packages{ padding:64px 0 76px; }
    .packages__head{ padding:0 24px; }

    .packages__track{
      justify-content:flex-start;
      overflow-x:auto;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      gap:16px;
      padding:16px calc(50vw - 141px) 30px;
    }
    .packages__track::-webkit-scrollbar{ display:none; }

    .package-card{
      flex:0 0 auto;
      width:282px;
      max-width:none;
        opacity:0.72;
      padding:28px 22px 24px;
      transition:box-shadow 0.4s ease, border-color 0.4s ease;
      /* transform (scale) é controlado 100% via JS a cada frame de scroll —
         sem transition nele aqui, senão ele briga com a atualização contínua */
    }
    .package-card.is-active{ opacity:1; }

    .package-card__days{ font-size:2rem; }
    .package-card__price{ font-size:1.6rem; }

    .packages__custom{ padding:0 24px; }
  }

  /* ---------- AVALIAÇÕES (Google) ---------- */

  .reviews{
    background:var(--white);
    padding:88px clamp(20px, 4vw, 56px) 96px;
    border-top:1px solid var(--border);
  }

  .reviews__head{
    max-width:1320px;
    margin:0 auto 42px;
    text-align:left;
  }
  /* a linha pequena vem em cima e anuncia o assunto; o título grande
     embaixo é o que a pessoa lê de fato */
  .reviews__head p{
    font-weight:700;
    font-size:clamp(14px, 1.4vw, 16px);
    letter-spacing:0.02em;
    color:var(--gold-deep);
    margin-bottom:8px;
  }
  .reviews__head h2{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800;
    text-transform:uppercase;
    color:var(--ink);
    font-size:clamp(1.65rem, 3.4vw, 2.7rem);
    line-height:1.06;
    max-width:28ch;      /* largura calculada pra frase fechar em duas linhas */
    text-wrap:balance;
  }

  .reviews__widget{
    max-width:1100px;
    margin:0 auto;
    /* altura reservada pro widget externo (SociableKIT) não empurrar o
       conteúdo abaixo quando carregar — evita layout shift (CLS) */
    min-height:480px;
  }

  @media (max-width: 880px){
    .reviews{ padding:64px 20px 76px; }
  }

  /* ---------- FAQ ---------- */

  .faq{
    background:var(--cream);
    padding:90px clamp(20px, 4vw, 56px) 96px;
  }

  .faq__head{
    max-width:640px;
    margin:0 auto 42px;
    text-align:center;
  }
  .faq__head h2{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800;
    text-transform:uppercase;
    color:var(--ink);
    font-size:clamp(2rem, 4.2vw, 3.1rem);
    line-height:1.04;
  }
  .faq__head p{
    margin-top:12px;
    color:var(--gray-dark);
    font-size:clamp(1rem, 1.5vw, 1.15rem);
  }

  .faq__list{
    max-width:760px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  .faq__item{
    background:var(--white);
    border:1.5px solid var(--border);
    border-radius:16px;
    padding:4px 22px;
    transition:border-color 0.25s ease;
  }
  .faq__item[open]{ border-color:var(--gold); }

  .faq__item summary{
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 0;
    cursor:pointer;
    font-weight:700;
    font-size:15.5px;
    color:var(--ink);
  }
  .faq__item summary::-webkit-details-marker{ display:none; }
  .faq__item summary:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:6px; }

  .faq__icon{
    flex:0 0 auto;
    color:var(--gold-deep);
    transition:transform 0.25s ease;
  }
  .faq__item[open] .faq__icon{ transform:rotate(180deg); }

  .faq__item p{
    padding:0 0 20px;
    margin-top:-6px;
    color:var(--gray-dark);
    font-size:14.5px;
    line-height:1.6;
    max-width:60ch;
  }

  .faq__cta{
    max-width:520px;
    margin:48px auto 0;
    text-align:center;
  }
  .faq__cta p{
    color:var(--gray-dark);
    font-size:14.5px;
    margin-bottom:16px;
  }

  @media (max-width: 880px){
    .faq{ padding:64px 20px 76px; }
    .faq__item{ padding:2px 16px; }
    .faq__item summary{ padding:16px 0; font-size:14.5px; }
    .faq__item p{ padding:0 0 16px; font-size:13.5px; }
  }

  /* ---------- BOTÃO FLUTUANTE DE WHATSAPP ---------- */
  /* Só aparece depois da primeira tela: na Hero o header já tem o WhatsApp,
     e ali o flutuante taparia o CTA principal. */

  .wa-float{
    position:fixed;
    right:clamp(16px, 2.5vw, 28px);
    bottom:clamp(16px, 2.5vw, 28px);
    z-index:40;
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#25D366;
    box-shadow:0 8px 22px -6px rgba(5,10,26,0.45);
    color:var(--white);
    text-decoration:none;
    opacity:0;
    visibility:hidden;
    transform:translateY(14px) scale(0.9);
    transition:opacity 0.28s ease, transform 0.28s ease, visibility 0.28s;
  }
  .wa-float.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
  }
  .wa-float:hover{ background:#1EBE5A; }
  .wa-float:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:3px;
  }
  .wa-float svg{ width:31px; height:31px; display:block; }

  @media (prefers-reduced-motion: reduce){
    .wa-float{ transition:none; }
  }

  /* ---------- CTA FINAL ---------- */

  /* Galeria de clientes ao lado do CTA — só no desktop.
     Painéis iguais em repouso; o hover expande um e comprime os vizinhos.
     Feito em CSS puro (flex-grow + transition), sem JavaScript. */
  .cta-gallery{ display:none; }

  @media (min-width: 881px){
    .final-cta__grid{
      display:grid;
      grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
      align-items:center;
      gap:clamp(32px, 4vw, 64px);
      max-width:1180px;
      margin:0 auto;
    }
    .final-cta__grid .final-cta__inner{
      max-width:520px;
      margin:0;
      text-align:left;
    }
    .final-cta__grid .final-cta__actions,
    .final-cta__grid .final-cta__custom{ text-align:left; }

    .cta-gallery{
      display:flex;
      gap:10px;
      height:clamp(380px, 32vw, 460px);
      /* proporção reservada evita o layout "pular" enquanto as fotos carregam */
    }
    .cta-gallery__item{
      flex:1 1 0;
      min-width:0;
      border-radius:14px;
      overflow:hidden;
      transition:flex-grow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .cta-gallery__item img{
      width:100%; height:100%;
      object-fit:cover;
      display:block;
    }
    .cta-gallery:hover .cta-gallery__item{ flex-grow:0.75; }
    .cta-gallery:hover .cta-gallery__item:hover{ flex-grow:2.6; }
  }

  @media (prefers-reduced-motion: reduce){
    .cta-gallery__item{ transition:none; }
  }


  .final-cta{
    background:linear-gradient(160deg, var(--blue) 0%, var(--blue-deep) 55%, var(--blue-night) 100%);
    padding:104px clamp(20px, 4vw, 56px);
    text-align:center;
  }

  .final-cta__inner{
    max-width:640px;
    margin:0 auto;
  }


  .final-cta h2{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800;
    text-transform:uppercase;
    line-height:1.05;
    font-size:clamp(2rem, 4.6vw, 3.2rem);
    color:var(--white);
    text-shadow:0 4px 24px rgba(5,10,26,0.4);
  }

  .final-cta__sub{
    margin-top:18px;
    font-size:clamp(1rem, 1.5vw, 1.15rem);
    color:rgba(255,255,255,0.86);
    line-height:1.6;
  }

  .final-cta__actions{
    margin-top:34px;
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    justify-content:center;
  }
  .final-cta__actions .btn{ padding:15px 30px; font-size:16px; }

  .final-cta__custom{
    margin-top:26px;
    color:rgba(255,255,255,0.72);
    font-size:14.5px;
    line-height:1.5;
  }
  .final-cta__custom a{
    color:var(--gold);
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-thickness:1.5px;
    cursor:pointer;
  }
  .final-cta__custom a:hover{ color:var(--white); }
  .final-cta__custom a:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
    border-radius:3px;
  }

  @media (max-width: 880px){
    .final-cta{ padding:76px 24px; }
  }

  /* ---------- SUBPÁGINA DE PASSEIO ---------- */

  /* Hero: mesma linguagem e mesmo parallax da Hero da home
     (background-attachment:fixed no desktop, scroll no mobile). */
  .page-hero{
    position:relative;
    min-height:clamp(520px, 78vh, 760px);
    display:flex;
    align-items:center;
    padding:120px clamp(20px, 4vw, 56px) 80px;
    background-size:cover;
    background-position:center 55%;
    background-repeat:no-repeat;
    background-attachment:fixed;
  }
  .page-hero__inner{ position:relative; z-index:2; max-width:1080px; margin:0 auto; width:100%; }

  .crumb{ font-size:12.5px; color:rgba(255,255,255,0.72); margin-bottom:18px; }
  .crumb a{ color:rgba(255,255,255,0.72); text-decoration:none; }
  .crumb a:hover{ color:var(--white); text-decoration:underline; }
  .crumb span{ color:rgba(255,255,255,0.45); }

  .page-hero__badge{
    display:inline-block;
    background:var(--gold); color:var(--ink);
    font-size:11.5px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
    padding:6px 12px; border-radius:999px; margin-bottom:16px;
  }
  .page-hero h1{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800;
    text-transform:uppercase; color:var(--white);
    font-size:clamp(2.6rem, 7vw, 5rem); line-height:0.98;
    text-shadow:0 2px 24px rgba(5,10,26,0.5);
  }
  .page-hero h1 small{
    display:block; font-size:0.44em; color:var(--gold);
    letter-spacing:0.02em; margin-top:6px;
  }
  .page-hero__actions{
    margin-top:34px; display:flex; flex-wrap:wrap; gap:14px;
  }

  /* ---- Timeline ---- */
  .tl-section{ background:var(--white); color:var(--ink); padding:88px 0 40px; }
  .tl-head{ max-width:1080px; margin:0 auto 46px; padding:0 clamp(20px, 4vw, 56px); }
  .tl-head h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.8rem, 3.4vw, 2.6rem); line-height:1.04;
  }
  .tl-head p{ margin-top:12px; color:var(--gray-dark); font-size:15.5px; max-width:56ch; }

  .tl{
    max-width:1080px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px);
    position:relative;
  }
  .tl__item{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr);
    grid-template-rows:auto auto;
    column-gap:clamp(28px, 5vw, 64px);
    align-content:center;
    padding:44px 0;
    border-top:1px solid var(--border);
  }
  .tl__item:first-child{ border-top:0; padding-top:0; }
  /* coluna esquerda: título em cima, texto embaixo. Foto à direita, ocupando as duas linhas. */
  .tl__head{ grid-column:1; grid-row:1; align-self:end; }
  .tl__body{ grid-column:1; grid-row:2; align-self:start; padding-top:14px; }
  .tl__media{ grid-column:2; grid-row:1 / 3; align-self:center; }

  .tl__num{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800;
    font-size:14px; letter-spacing:0.14em;
    color:var(--gold-deep);
    display:flex; align-items:center; gap:10px;
    margin-bottom:12px;
  }
  .tl__num::after{
    content:""; height:1px; flex:1; background:var(--border); max-width:60px;
  }
  .tl__title{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.4rem, 2.4vw, 1.9rem); line-height:1.05;
  }
  .tl__sub{
    margin-top:5px; font-size:13.5px; font-weight:600; color:var(--gold-deep);
    letter-spacing:0.02em;
  }
  .tl__text{ margin-top:14px; color:var(--gray-dark); line-height:1.7; font-size:15px; max-width:46ch; }

  .tl__note{
    margin-top:16px;
    display:flex; gap:10px; align-items:flex-start;
    background:var(--cream);
    border-left:3px solid var(--gold);
    border-radius:0 10px 10px 0;
    padding:12px 15px;
    font-size:13.5px; line-height:1.55; color:var(--ink);
  }
  .tl__note strong{ font-weight:700; }

  .tl__media{
    border-radius:16px; overflow:hidden;
    aspect-ratio:4 / 3;
    background:var(--border);
    /* estado inicial da entrada pela direita */
    opacity:0; transform:translateX(80px);
    transition:opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
               transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .tl__media.in-view{ opacity:1; transform:translateX(0); }
  .tl__media img{ width:100%; height:100%; object-fit:cover; display:block; }

  /* placeholder honesto: etapa sem fotografia própria ainda */
  .tl__media--todo{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:10px; text-align:center; padding:24px;
    background:linear-gradient(150deg, var(--blue-deep) 0%, var(--blue-night) 100%);
    color:rgba(255,255,255,0.62);
    font-size:12.5px; letter-spacing:0.04em;
  }

  /* etapa de maior peso emocional (Lagoa Bonita) */
  .tl__item--feature .tl__media{ aspect-ratio:3 / 2; }
  .tl__item--feature .tl__title{ font-size:clamp(1.7rem, 3vw, 2.3rem); }

  /* ---- Galeria editorial ---- */
  .gallery-section{ background:var(--white); color:var(--ink); padding:52px 0 88px; }
  .gallery{
    max-width:1080px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px);
    display:grid;
    grid-template-columns:1.62fr 1fr;
    grid-auto-rows:1fr;
    gap:14px;
  }
  .gallery figure{ margin:0; border-radius:14px; overflow:hidden; background:var(--border); }
  .gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
  .gallery__main{ grid-row:span 2; aspect-ratio:4 / 3; }
  .gallery__side{ aspect-ratio:16 / 10; }

  /* ---- Escolha do serviço (pricing cards) ---- */
  .plans-section{ background:var(--cream); color:var(--ink); padding:84px 0; }
  .plans-head{ max-width:1080px; margin:0 auto 40px; padding:0 clamp(20px, 4vw, 56px); text-align:center; }
  .plans-head h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.8rem, 3.4vw, 2.6rem); line-height:1.04;
  }
  .plans-head p{ margin-top:12px; color:var(--gray-dark); font-size:15.5px; max-width:52ch; margin-inline:auto; }

  .plans{
    max-width:1080px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px);
    display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:22px;
    align-items:start;
  }
  .plan{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:18px;
    padding:30px 28px;
    display:flex; flex-direction:column;
  }
  .plan--feature{ border-color:var(--gold); }
  .plan__tag{
    font-size:11.5px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--gray);
  }
  .plan__price{
    margin-top:10px;
    font-size:2.2rem; font-weight:700; color:var(--gold-deep); line-height:1;
  }
  .plan__base{ margin-top:6px; font-size:13px; font-weight:600; color:var(--gray); }

  .plan__block{ margin-top:24px; }
  .plan__label{
    font-size:11px; font-weight:700; letter-spacing:0.09em; text-transform:uppercase;
    color:var(--gray); margin-bottom:10px;
  }
  .plan__list{ list-style:none; display:flex; flex-direction:column; gap:8px; }
  .plan__list li{ display:flex; gap:9px; font-size:14.5px; color:var(--gray-dark); line-height:1.5; }
  .plan__list svg{ flex-shrink:0; margin-top:3px; }
  .plan__fact{ font-size:14.5px; color:var(--ink); font-weight:600; }
  .plan__fact span{ display:block; font-weight:400; color:var(--gray-dark); margin-top:2px; }

  .plan__excl{
    margin-top:22px; padding-top:18px; border-top:1px dashed var(--border);
  }
  .plan .btn{ margin-top:26px; justify-content:center; }

  /* tabela de preços do privativo */
  .ptable-wrap{ margin-top:22px; overflow-x:auto; }
  .ptable{ border-collapse:collapse; width:100%; min-width:280px; font-size:14px; }
  .ptable caption{ text-align:left; font-size:12px; color:var(--gray); padding-bottom:9px; }
  .ptable th, .ptable td{
    padding:9px 10px; text-align:left; border-bottom:1px solid var(--border);
    font-variant-numeric:tabular-nums;
  }
  .ptable th{ font-size:10.5px; font-weight:700; letter-spacing:0.07em; text-transform:uppercase; color:var(--gray); }
  .ptable td:last-child{ font-weight:700; color:var(--ink); }

  /* ---- Informações complementares ---- */
  .info-section{ background:var(--white); color:var(--ink); padding:80px 0; }
  .info-wrap{ max-width:1080px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px); }
  .info-wrap h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.6rem, 2.8vw, 2.1rem); margin-bottom:22px;
  }
  .facts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:14px; }
  .fact{ border:1px solid var(--border); border-radius:12px; padding:16px 18px; }
  .fact__label{ font-size:11px; font-weight:700; letter-spacing:0.09em; text-transform:uppercase; color:var(--gray); }
  .fact__value{ margin-top:6px; font-size:15.5px; font-weight:700; color:var(--ink); }

  .faq-section{ background:var(--white); color:var(--ink); padding:0 0 80px; }
  .faq-wrap{ max-width:1080px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px); }
  .faq-wrap h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.6rem, 2.8vw, 2.1rem); margin-bottom:20px;
  }

  .others{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:12px; margin-top:26px; }
  .other{
    display:block; border:1px solid var(--border); border-radius:12px;
    padding:15px 17px; text-decoration:none; color:var(--ink);
    font-weight:600; font-size:14.5px;
    transition:border-color 0.2s ease, transform 0.2s ease;
  }
  .other:hover{ border-color:var(--gold); transform:translateY(-2px); }
  .other span{ display:block; margin-top:3px; font-size:12.5px; font-weight:500; color:var(--gray); }
  .other:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; }

  /* ---- CTA final da subpágina ---- */
  .page-cta{
    background:linear-gradient(160deg, var(--blue) 0%, var(--blue-deep) 55%, var(--blue-night) 100%);
    padding:72px clamp(20px, 4vw, 56px);
    text-align:center;
  }
  .page-cta h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    color:var(--white); font-size:clamp(1.7rem, 3.6vw, 2.5rem); line-height:1.06;
  }
  .page-cta p{ margin-top:12px; color:rgba(255,255,255,0.8); font-size:15.5px; }
  .page-cta .btn{ margin-top:26px; }

  @media (max-width: 880px){
    /* iOS/Safari não lida bem com fixed: volta ao comportamento seguro */
    .page-hero{
      background-attachment:scroll;
      min-height:auto;
      padding:104px 20px 56px;
    }
    .page-hero__actions .btn{ width:100%; justify-content:center; }

    .tl-section{ padding:60px 0 28px; }
    .tl__item{
      grid-template-columns:1fr;
      grid-template-rows:auto;
      gap:20px;
      padding:34px 0;
    }
    .tl__head,
    .tl__body,
    .tl__media{ grid-column:1; grid-row:auto; }
    .tl__body{ padding-top:0; }
    /* mobile: número/título → foto → texto */
    .tl__head{ order:1; }
    .tl__media{ order:2; transform:translateY(24px); }
    .tl__media.in-view{ transform:translateY(0); }
    .tl__body{ order:3; }
    .tl__text{ max-width:none; margin-top:0; }
    .tl__item--feature .tl__media{ aspect-ratio:4 / 3; }

    .gallery{ grid-template-columns:1fr; }
    .gallery__main{ grid-row:auto; }
    .gallery__side{ aspect-ratio:4 / 3; }

    .plans-section{ padding:60px 0; }
    .plan{ padding:26px 22px; }
    .plan__price{ font-size:2rem; }
    .info-section{ padding:56px 0; }
  }

  @media (prefers-reduced-motion: reduce){
    .tl__media{
      opacity:1 !important;
      transform:none !important;
      transition:none !important;
    }
  }

  /* ---------- RODAPÉ ---------- */

  .site-footer{
    background:var(--ink);
    color:rgba(255,255,255,0.7);
    padding:64px clamp(20px, 4vw, 56px) 28px;
  }

  .site-footer__top{
    max-width:1180px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:40px;
    padding-bottom:44px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }

  .site-footer__logo{
    display:block;
    width:196px;
    height:auto;
  }

  /* Credenciamento e pagamento */
  .site-footer__heading--pay{ margin-top:22px; }

  .site-footer__cadastur{
    /* o logo oficial tem fundo branco e texto azul-escuro:
       sobre o preto do rodapé ele precisa da própria base clara pra continuar legível */
    display:block;
    width:170px;
    height:auto;
    margin-top:4px;
    background:var(--white);
    border-radius:8px;
    padding:7px 10px;
  }

  .site-footer__pay{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    margin-top:4px;
  }
  .site-footer__pay img{
    height:26px;
    width:auto;
    opacity:0.95;
  }
  .site-footer__pay img:last-child{ height:31px; }

  .site-footer__tagline{
    margin-top:10px;
    font-size:13.5px;
    color:rgba(255,255,255,0.5);
    max-width:26ch;
    line-height:1.5;
  }

  .site-footer__heading{
    font-size:11px;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.38);
    margin-bottom:14px;
  }

  .site-footer__col{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
  }
  .site-footer__col a,
  .site-footer__col span{
    font-size:14px;
    color:rgba(255,255,255,0.75);
    text-decoration:none;
  }
  .site-footer__col a:hover{ color:var(--gold); }

  .site-footer__bottom{
    max-width:1180px;
    margin:0 auto;
    padding-top:22px;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:baseline;
    gap:6px 14px;
    text-align:center;
    font-size:12px;
    color:rgba(255,255,255,0.38);
  }
  .site-footer__cnpj{
    color:rgba(255,255,255,0.72);
    font-weight:700;
    letter-spacing:0.02em;
  }

  @media (max-width: 880px){
    .site-footer{ padding:56px 24px 92px; }
    .site-footer__top{
      grid-template-columns:1fr 1fr;
      gap:32px 24px;
    }
    .site-footer__brand{ grid-column:1 / -1; }
  }
  /* ---------- CELULAR: UM CARD POR LINHA ----------
     Com dois por linha a foto ficava com 125px de altura e o nome do passeio
     tomava ela quase toda. Numa coluna só, a foto dobra de tamanho e o título
     cabe em uma linha. Acima de 600px continuam dois por linha. */
  @media (max-width: 600px){
    .tours__grid{ grid-template-columns:1fr; gap:16px; }

    /* com a largura toda de volta, dá pra soltar o que estava comprimido */
    .tour-card__body{ padding:16px 16px 18px; }
    .tour-card__caption{ left:14px; right:14px; bottom:12px; }
    .tour-card__caption h3{ font-size:1.3rem; }
    .tour-card__badge{ top:12px; left:12px; padding:6px 12px; font-size:11px; }
    .tour-card__desc{ font-size:14px; -webkit-line-clamp:3; min-height:0; margin-bottom:13px; }
    .tour-card__price{ font-size:1.05rem; }
    .tour-card__actions{ flex-direction:row; gap:10px; }
    .tour-card__actions .btn-primary-sm,
    .tour-card__actions .btn-ghost-sm{ flex:1 1 0; padding:11px 12px; font-size:13px; }
  }

  /* ---------- AVALIAÇÕES ----------
     Painel com a nota geral à esquerda e uma faixa de cartões curtos à
     direita, que se arrasta e tem setas. Sem script de fora. */

  .aval-bloco{
    display:grid;
    grid-template-columns:260px minmax(0, 1fr);
    gap:36px;
    align-items:center;
    max-width:1320px;
    margin:0 auto;
  }

  /* --- painel da nota --- */
  .aval-nota{ text-align:center; }
  .aval-nota__titulo{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800; text-transform:uppercase;
    font-size:22px; letter-spacing:0.02em;
    color:var(--ink);
  }
  .aval-nota__estrelas{ display:flex; justify-content:center; gap:3px; margin:10px 0 8px; }
  .aval-nota__base{ font-size:13.5px; color:var(--gray); }
  .aval-nota__base b{ color:var(--ink); }
  .aval-nota__fonte{
    display:block;
    width:88px; height:auto;
    margin:14px auto 0;
  }

  /* --- faixa de cartões --- */
  .aval-faixa{ position:relative; min-width:0; }
  .aval-pista{
    display:flex; gap:14px;
    overflow-x:auto; overflow-y:hidden;
    scroll-behavior:smooth;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    padding:4px 2px 6px;
  }
  .aval-pista::-webkit-scrollbar{ display:none; }

  .aval{
    position:relative;
    flex:0 0 auto;
    width:clamp(230px, 27vw, 268px);
    scroll-snap-align:start;
    background:#F6F6F4;
    border-radius:14px;
    padding:18px 18px 20px;
    display:flex; flex-direction:column;
  }

  .aval__topo{ display:flex; align-items:flex-start; gap:11px; margin-bottom:11px; padding-right:34px; }
  .aval__inicial{
    flex:0 0 auto;
    width:40px; height:40px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-weight:700; font-size:17px;
    line-height:1;
  }
  .aval__quem{ min-width:0; }
  .aval__nome{
    display:block; font-weight:700; font-size:14.5px; color:var(--ink);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .aval__data{ display:block; font-size:12.5px; color:var(--gray); margin-top:1px; }
  .aval__fonte{
    position:absolute; top:15px; right:16px;
    width:22px; height:auto;
  }
  .aval__estrelas{ display:flex; gap:2px; margin-bottom:9px; }
  .aval__texto{ font-size:14px; line-height:1.55; color:var(--gray-dark); }
  .aval__texto p{ margin:0 0 7px; }
  .aval__texto p:last-child{ margin-bottom:0; }
  .aval__texto[data-cortado]{
    display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden;
  }
  .aval__mais{
    align-self:flex-start; margin-top:8px;
    background:none; border:none; padding:0;
    color:var(--gold-deep); font-family:inherit; font-size:13px; font-weight:700;
    cursor:pointer;
  }
  .aval__mais:hover{ text-decoration:underline; }
  .aval__mais:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; }

  /* --- setas --- */
  .aval-seta{
    position:absolute; top:50%; transform:translateY(-50%); z-index:3;
    width:38px; height:38px; border-radius:50%;
    background:var(--white); border:1px solid var(--border);
    color:var(--ink); font-size:20px; line-height:1;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    box-shadow:0 6px 18px -8px rgba(10,10,10,0.35);
    transition:background 0.2s ease, opacity 0.2s ease;
  }
  .aval-seta:hover{ background:#FFFBF0; border-color:var(--gold-deep); }
  .aval-seta:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; }
  .aval-seta[disabled]{ opacity:0.3; cursor:default; }
  .aval-seta--ant{ left:-19px; }
  .aval-seta--prox{ right:-19px; }

  .aval-cta{ text-align:center; margin-top:34px; }

  @media (max-width: 880px){
    .aval-bloco{ grid-template-columns:1fr; gap:24px; }
    .aval-nota{ display:flex; flex-direction:column; align-items:center; }
    .aval-seta{ display:none; }
    .aval-pista{ padding-inline:0; }
    .aval{ width:clamp(228px, 76vw, 270px); }
  }


  /* ---- Home: vitrine de destaques e exclusivos ---- */
  .tours__grid--quatro{ grid-template-columns:repeat(4, 1fr); }
  .tours__grid--dois{ grid-template-columns:repeat(2, 1fr); max-width:880px; }
  .tours__head--sec{ margin-top:92px; }
  .tours__mais{ max-width:1320px; margin:40px auto 0; text-align:center; }
  .btn-catalogo{
    background:transparent; color:var(--ink); border:1.5px solid var(--ink);
  }
  .btn-catalogo:hover{ background:var(--ink); color:var(--white); transform:translateY(-1px); }
  @media (max-width: 1100px){ .tours__grid--quatro{ grid-template-columns:repeat(2, 1fr); } }
  @media (max-width: 880px){
    .tours__head--sec{ margin-top:64px; }
    .tours__mais{ margin-top:30px; }
  }
  @media (max-width: 600px){
    .tours__grid--quatro, .tours__grid--dois{ grid-template-columns:1fr; }
  }

  /* ---- FAQ da home ---- */
  .faq{ background:var(--cream); padding:90px clamp(20px, 4vw, 56px) 96px; }
  .faq__head{ max-width:640px; margin:0 auto 42px; text-align:center; }
  .faq__head h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    color:var(--ink); font-size:clamp(2rem, 4.2vw, 3.1rem); line-height:1.04;
  }
  .faq__head p{ margin-top:12px; color:var(--gray-dark); font-size:clamp(1rem, 1.5vw, 1.15rem); }
  .faq__list{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
  .faq__item{
    background:var(--white); border:1.5px solid var(--border); border-radius:16px;
    padding:4px 22px; transition:border-color 0.25s ease;
  }
  .faq__item[open]{ border-color:var(--gold); }
  .faq__item summary{
    list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:20px 0; cursor:pointer; font-weight:700; font-size:15.5px; color:var(--ink);
  }
  .faq__item summary::-webkit-details-marker{ display:none; }
  .faq__item summary:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:6px; }
  .faq__icon{ flex:0 0 auto; color:var(--gold-deep); transition:transform 0.25s ease; }
  .faq__item[open] .faq__icon{ transform:rotate(180deg); }
  .faq__item p{
    padding:0 0 20px; margin-top:-6px; color:var(--gray-dark);
    font-size:14.5px; line-height:1.6; max-width:60ch;
  }
  .faq__cta{ max-width:520px; margin:44px auto 0; text-align:center; }
  .faq__cta p{ color:var(--gray-dark); font-size:14.5px; margin-bottom:16px; }
  @media (max-width: 880px){
    .faq{ padding:64px 20px 72px; }
    .faq__head{ margin-bottom:30px; }
    .faq__item{ padding:2px 18px; }
    .faq__item summary{ font-size:15px; padding:17px 0; }
  }

  /* ---------- VÍDEO DA EQUIPE ----------
     Moldura vertical 9:16. Para ativar: coloque o arquivo em videos/equipe.mp4.
     Enquanto o arquivo não existir, aparece o aviso "Vídeo em breve". */
  .video-equipe{
    background:var(--white);
    padding:88px clamp(20px, 4vw, 56px) 96px;
  }
  .video-equipe__head{ max-width:640px; margin:0 auto 36px; text-align:center; }
  .video-equipe__head h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    color:var(--ink); font-size:clamp(2rem, 4.2vw, 3.1rem); line-height:1.04; text-wrap:balance;
  }
  .video-equipe__head h2 span{ color:var(--blue); }
  .video-equipe__frame{
    position:relative;
    width:min(100%, 360px);
    aspect-ratio:9 / 16;
    margin:0 auto;
    border-radius:26px;
    overflow:hidden;
    background:var(--blue-night);
    box-shadow:0 24px 50px -24px rgba(8,19,56,0.55);
  }
  .video-equipe__frame video{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    opacity:0; transition:opacity 0.3s ease;
  }
  .video-equipe__frame.tem-video video{ opacity:1; }
  .video-equipe__vazio{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    color:rgba(255,255,255,0.8); font-size:14px; font-weight:600; text-align:center; padding:24px;
  }
  .video-equipe__vazio span{
    width:64px; height:64px; border-radius:50%; background:var(--gold); color:var(--ink);
    display:flex; align-items:center; justify-content:center;
  }
  .video-equipe__frame.tem-video .video-equipe__vazio{ display:none; }
  @media (max-width: 880px){
    .video-equipe{ padding:64px 20px 76px; }
    .video-equipe__frame{ width:min(100%, 320px); }
  }

  /* ---------- HERO SLIDER (foto de fundo + fila de cards) ---------- */
  .hero.hero--slider{
    min-height:max(680px, 100vh); background:#0A0A0A; background-image:none;
    background-attachment:scroll; color:var(--white);
  }
  .hs-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
  .hs-bg__img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    opacity:0; z-index:0; transform:scale(1); transition:transform 6s ease-out;
  }
  .hs-bg__img.is-anterior{ opacity:1; z-index:1; }
  .hs-bg__img.is-atual{
    opacity:1; z-index:2; transform:scale(1.06);
    transition:opacity var(--hs-dur,700ms) cubic-bezier(.22,1,.36,1), transform 6s ease-out;
  }
  .hs-veu{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background:
      linear-gradient(90deg, rgba(6,12,30,.42) 0%, rgba(6,12,30,.2) 42%, transparent 70%),
      linear-gradient(to bottom, rgba(6,12,30,.18) 0%, transparent 16%, transparent 78%, rgba(6,12,30,.3) 100%);
  }
  .hero--slider header{ z-index:30; }
  .hs-corpo{
    position:relative; z-index:2; flex:1;
    display:flex; flex-wrap:wrap; align-items:center; gap:48px;
    padding:40px 0 100px clamp(20px, 7vw, 100px);
  }
  .hs-texto{ flex:1 1 420px; max-width:560px; padding-right:20px; }
  .hero--slider h1{
    color:var(--white); text-transform:uppercase; font-weight:800;
    font-size:clamp(34px, 4.4vw, 56px); line-height:1.02; letter-spacing:-0.015em; text-wrap:balance;
  }
  .hero--slider h1 span{ color:var(--gold); }
  .hero--slider .hero-sub{ color:rgba(255,255,255,.88); max-width:40ch; }
  .hs-btn-vazado{
    color:var(--white); border:1.5px solid rgba(255,255,255,.55); background:transparent;
  }
  .hs-btn-vazado:hover{ border-color:var(--white); background:rgba(255,255,255,.1); color:var(--white); }

  .hs-trilho{
    --gap:18px;
    position:relative; flex:1 1 480px; height:400px; overflow:hidden;
  }
  .hs-card{
    position:absolute; left:0; top:0; width:230px;
    display:flex; flex-direction:column; gap:10px;
    background:none; border:0; padding:0; cursor:pointer; text-align:left; color:var(--white); font:inherit;
    transition:transform var(--hs-dur,700ms) cubic-bezier(.22,1,.36,1), opacity calc(var(--hs-dur,700ms) * .7) ease;
    will-change:transform;
  }
  .hs-card.is-sem-transicao{ transition:none; }
  .hs-card.is-saindo{ opacity:0; pointer-events:none; }
  .hs-card__titulo{ font-weight:700; font-size:15px; }
  .hs-card__nota{ display:flex; align-items:center; gap:6px; font-size:13px; }
  .hs-estrelas{ position:relative; display:inline-block; font-size:15px; letter-spacing:1px; line-height:1; color:rgba(255,255,255,.35); }
  .hs-estrelas span{ position:absolute; left:0; top:0; overflow:hidden; white-space:nowrap; color:var(--gold); }
  .hs-card__foto{
    position:relative; display:block; width:100%; height:320px; border-radius:18px; overflow:hidden;
    box-shadow:0 24px 40px -20px rgba(0,0,0,.7); transition:transform .3s ease;
  }
  .hs-card:hover .hs-card__foto{ transform:translateY(-6px); }
  .hs-card__foto img{ width:100%; height:100%; object-fit:cover; display:block; }
  .hs-card__foto i{
    position:absolute; right:12px; top:12px; width:36px; height:36px; border-radius:50%;
    background:var(--white); color:var(--ink); display:grid; place-items:center;
    font-style:normal; font-size:18px; font-weight:700;
  }
  .hs-pontos{
    position:absolute; z-index:3; left:clamp(20px, 7vw, 100px); bottom:36px;
    display:flex; align-items:center; gap:10px;
  }
  .hs-ponto{
    width:8px; height:8px; border-radius:999px; border:0; padding:0; cursor:pointer;
    background:rgba(255,255,255,.6); transition:all .3s;
  }
  .hs-ponto.is-atual{ width:28px; background:var(--gold); }

  @media (max-width: 880px){
    .hero.hero--slider{ background-image:none; min-height:auto; }
    .hs-veu{ background:linear-gradient(rgba(6,12,30,.28) 0%, rgba(6,12,30,.1) 25%, rgba(6,12,30,.3) 60%, rgba(6,12,30,.5) 100%); }
    .hs-corpo{ padding:24px 0 80px 20px; gap:28px; }
    .hs-texto{ flex-basis:100%; }
    .hs-trilho{ --gap:12px; flex-basis:100%; height:250px; }
    .hs-card{ width:150px; gap:6px; }
    .hs-card__titulo{ font-size:13px; }
    .hs-card__foto{ height:190px; border-radius:14px; }
    .hs-card__foto i{ width:28px; height:28px; font-size:14px; right:8px; top:8px; }
    .hs-pontos{ left:20px; bottom:30px; }
  }

  /* ---------- WHATSAPP DO CABEÇALHO (ícone verde) ---------- */
  .wa-header{
    width:46px; height:46px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; background:#25D366; color:#FFFFFF; text-decoration:none;
    box-shadow:0 8px 20px -8px rgba(5,10,26,0.45);
    transition:background 0.2s ease, transform 0.18s ease;
  }
  .wa-header:hover{ background:#1EBE5A; transform:translateY(-1px); }
  .wa-header:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  .wa-header svg{ width:26px; height:26px; display:block; }
  @media (max-width: 880px){
    .wa-header{ width:42px; height:42px; }
    .wa-header svg{ width:24px; height:24px; }
  }

  /* ---------- SELETOR DE IDIOMA ----------
     Links para a mesma página em português, inglês (/en/) e espanhol (/es/). */
  .lang{ position:relative; flex-shrink:0; }
  .lang__btn{
    display:flex; align-items:center; gap:7px;
    height:40px; padding:0 12px 0 10px; border-radius:999px;
    background:#FFFFFF; color:#0A0A0A; border:1px solid #DDE1E7;
    font:700 13px/1 'Open Sans', system-ui, sans-serif; letter-spacing:0.03em;
    cursor:pointer; box-shadow:0 6px 16px -10px rgba(5,10,26,0.5);
  }
  .lang__btn:hover{ border-color:var(--gold-deep); }
  .lang__btn:focus-visible, .lang__opt:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
  .lang__flag{ display:inline-flex; width:24px; height:17px; border-radius:3px; overflow:hidden; flex-shrink:0; box-shadow:0 0 0 1px rgba(0,0,0,0.08); }
  .lang__flag svg{ width:100%; height:100%; display:block; }
  .lang__seta{ transition:transform .2s ease; }
  .lang__btn[aria-expanded="true"] .lang__seta{ transform:rotate(180deg); }
  .lang__menu{
    position:absolute; right:0; top:calc(100% + 8px); z-index:60;
    list-style:none; margin:0; padding:6px; min-width:170px;
    background:#FFFFFF; border-radius:14px; border:1px solid #ECEEF1;
    box-shadow:0 18px 40px -16px rgba(5,10,26,0.45);
  }
  .lang__opt{
    width:100%; display:flex; align-items:center; gap:10px;
    padding:10px 12px; border:0; border-radius:9px; background:none;
    font:600 14px/1.2 'Open Sans', system-ui, sans-serif; color:#0A0A0A; text-align:left; cursor:pointer;
  }
  .lang__opt:hover{ background:#FFF6DC; }
  .lang__opt[aria-current="true"]{ background:#FBF3DF; }
  body{ top:0 !important; }
  font[style]{ background:none !important; box-shadow:none !important; }
  @media (max-width: 880px){
    /* no celular o seletor fica "estático", igual ao ícone do WhatsApp:
       assim o painel do menu hambúrguer passa por cima dele ao abrir e ao fechar */
    .lang{ position:static; }
    .lang__menu{ right:clamp(20px, 4vw, 56px); }
    .lang__btn{ height:38px; padding:0 10px 0 8px; gap:5px; }
    .lang__code{ display:none; }
  }

  /* ---------- HERO: botões no celular ---------- */
  .hs-wa-ico, .so-mobile, .hs-ver-passeios{ display:none; }
  @media (max-width: 880px){
    .hs-btn-vazado{ display:none; }
    .so-desktop{ display:none; }
    .so-mobile{ display:inline; }
    .hs-btn-planejar{
      background:#25D366; color:#FFFFFF;
      box-shadow:0 8px 24px -8px rgba(37,211,102,0.6);
    }
    .hs-btn-planejar:hover{ background:#1EBE5A; }
    .hs-wa-ico{ display:block; }
    .hs-ver-passeios{
      display:inline-flex; align-items:center; gap:6px;
      flex-basis:100%; justify-content:center;
      margin-top:-8px; padding:10px 20px 0 0;
      color:var(--white); font-size:15px; font-weight:700; text-decoration:none;
      background:none; border:0;
    }
    .hs-ver-passeios span{ display:inline-block; animation:bob-seta 1.8s ease-in-out infinite; }
    .hs-ver-passeios:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }
  }
  @keyframes bob-seta{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(4px); } }

  /* ---------- HERO: local acima do título + legenda embaixo dos cards ---------- */
  .hs-local{
    display:inline-flex; align-items:center; gap:7px; margin-bottom:14px;
    color:var(--gold); font-size:15px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
    text-decoration:none; text-shadow:0 1px 8px rgba(5,10,26,0.55);
    border-bottom:1.5px solid transparent; transition:border-color .2s ease;
  }
  .hs-local:hover{ border-bottom-color:var(--gold); }
  .hs-local:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:3px; }
  .hs-card__foto + .hs-card__titulo{ margin-top:4px; }
  @media (max-width: 880px){
    .hs-local{ font-size:13px; margin-bottom:10px; }
  }

  a.hs-card{ text-decoration:none; }
  /* celular: fotos de fundo novas da hero ficam centralizadas */
  @media (max-width: 880px){ .hs-bg picture .hs-bg__img{ object-position:center !important; } }
  @media (max-width: 880px){ .hs-ponto--desk{ display:none; } }
  @media (min-width: 881px){ .hs-ponto--mob{ display:none; } }

  /* ---------- FORMAS DE PAGAMENTO (logos em plaquinhas brancas) ---------- */
  .site-footer__pay{ flex-direction:row !important; flex-wrap:wrap; align-items:center; gap:8px !important; }
  .site-footer__pay .pag{
    width:64px; height:42px; flex:0 0 auto;
    display:flex; align-items:center; justify-content:center;
    background:#FFFFFF; border-radius:7px; padding:5px 7px;
  }
  .site-footer__pay .pag img{ width:100%; height:100%; object-fit:contain; opacity:1; }
  .site-footer__pay .pag--amex{ padding:3px; }
  .site-footer__pay .pag--pix{ width:92px; padding:5px 8px; }

  /* celular: credenciamento ocupa a largura toda e os ícones de pagamento ficam numa linha só */
  @media (max-width: 880px){
    .site-footer__cred{ grid-column:1 / -1; }
    /* 3 em cima (Visa, Mastercard, Elo) e Amex + Pix na linha de baixo */
    .site-footer__pay{ flex-wrap:wrap !important; gap:8px !important; max-width:210px; }
  }
  /* celular: hero sem os cards de passeio (ficam só no computador) */
  @media (max-width: 880px){ .hs-trilho{ display:none; } .hs-ver-passeios{ margin-top:0; } }

  /* ---------- HERO: altura exata da tela em qualquer aparelho ----------
     svh = altura visível descontando as barras do navegador do celular
     (Safari/Chrome); vh fica de reserva para navegadores antigos. */
  .hero.hero--slider{ min-height:100vh; min-height:100svh; }
  .hero--slider .hs-corpo{ align-content:center; }
  @media (min-width: 881px){
    /* telas muito baixas (notebook pequeno) não espremem os cards */
    .hero.hero--slider{ min-height:max(620px, 100vh); min-height:max(620px, 100svh); }
  }
  @media (max-width: 880px){
    .hero.hero--slider{ min-height:100vh; min-height:100svh; }
    .hero--slider .hs-corpo{ padding-top:16px; padding-bottom:72px; }
    .hs-ver-passeios{ margin-top:4px; }
  }
  /* celular deitado / telas bem baixas: deixa crescer em vez de cortar o texto */
  @media (max-width: 880px) and (max-height: 520px){
    .hero.hero--slider{ min-height:auto; }
  }
  /* com o véu mais leve, a sombra no texto garante a leitura sobre a foto */
  .hero--slider h1, .hero--slider .hero-sub, .hs-local, .hs-ver-passeios{ text-shadow:0 2px 12px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.45); }

  /* celular: mostra o nome "Amo Lençóis" ao lado da logo */
  @media (max-width: 480px){
    .brand{ gap:8px; min-width:0; }
    .brand img{ height:36px; }
    .brand span.wordmark{ display:inline !important; font-size:16px; }
    header{ gap:10px; padding-left:16px; padding-right:16px; }
    .header-actions{ gap:8px; }
    .lang__btn{ padding:0 7px 0 6px; gap:3px; height:36px; }
    .lang__flag{ width:22px; height:15px; }
    .wa-header{ width:38px; height:38px; }
    .wa-header svg{ width:22px; height:22px; }
    .nav-toggle{ font-size:24px; padding:2px; }
  }
  @media (max-width: 350px){ .brand span.wordmark{ font-size:14px; } .lang__seta{ display:none; } header{ gap:6px; padding-left:12px; padding-right:12px; } .brand{ gap:6px; } .brand img{ height:32px; } .header-actions{ gap:6px; } .wa-header{ width:36px; height:36px; } }


  /* ---------- PACOTES (casais e solo) ---------- */
  .pacotes{
    position:relative; isolation:isolate; overflow:hidden; background:#FFFFFF;
    padding:clamp(64px, 8vw, 104px) clamp(20px, 4vw, 56px) clamp(120px, 14vw, 200px);
  }
  .pacotes::before{
    content:""; position:absolute; left:0; right:0; bottom:0; z-index:-1;
    height:min(100%, 760px);
    background:
      linear-gradient(to bottom, #FFFFFF 0%, rgba(255,255,255,0.86) 38%, rgba(255,255,255,0.42) 72%, rgba(255,255,255,0.10) 100%),
      url("../imagens/pacotes-fundo.webp") center bottom / cover no-repeat;
  }
  .pacotes__topo{ max-width:760px; margin:0 auto 28px; text-align:center; }
  .pacotes__topo h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.9rem, 4.2vw, 3rem); line-height:1.05; color:var(--ink);
  }
  .pacotes__topo h2 span{ color:var(--blue); }
  .pacotes__topo p{ margin-top:12px; font-size:clamp(1rem, 1.5vw, 1.15rem); line-height:1.5; color:var(--gray-dark); }

  .pacotes__abas{ display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin:0 auto 34px; }
  .pacotes__aba{
    font:inherit; font-size:15px; font-weight:700; padding:12px 24px; min-height:46px; cursor:pointer;
    border-radius:999px; border:1.5px solid #D8DCE3; background:#FFFFFF; color:var(--ink);
    transition:background .2s ease, border-color .2s ease, color .2s ease;
  }
  .pacotes__aba:hover{ border-color:var(--blue); }
  .pacotes__aba[aria-selected="true"]{ background:var(--blue); border-color:var(--blue); color:#FFFFFF; }
  .pacotes__aba:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }

  .pacotes__grade{
    --pct-gap:22px;
    max-width:1280px; margin:0 auto; display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:var(--pct-gap);
    transition:opacity .22s ease, transform .22s ease;
  }
  .pacotes__grade.is-trocando{ opacity:0; transform:translateY(8px); }
  .pct-card{
    flex:0 0 calc((100% - 3 * var(--pct-gap)) / 4); min-width:0;
    display:flex; flex-direction:column; background:#FFFFFF; border-radius:20px; overflow:hidden;
    border:1px solid rgba(10,10,10,0.08); box-shadow:0 18px 40px -22px rgba(8,19,56,0.38);
  }
  .pct-card__foto{ position:relative; aspect-ratio:4 / 3; background:#E5E7EB; overflow:hidden; }
  .pct-card__foto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .pct-card__corpo{ flex:1; display:flex; flex-direction:column; padding:20px 20px 22px; }
  .pct-card__nome{ font-size:1.15rem; font-weight:800; text-transform:uppercase; letter-spacing:0.01em; color:var(--ink); line-height:1.2; }
  .pct-card__frase{ margin-top:6px; font-size:14.5px; line-height:1.5; color:var(--gray-dark); }
  .pct-card__lista{ list-style:none; margin-top:16px; padding-top:16px; border-top:1px solid rgba(10,10,10,0.10); display:flex; flex-direction:column; gap:9px; }
  .pct-card__lista li{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; line-height:1.4; color:#1F2937; }
  .pct-card__lista svg{ flex-shrink:0; width:18px; height:18px; margin-top:1px; color:var(--blue); }
  .pct-card__rotulo{ font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-dark); margin-top:4px; }
  .pct-card__pessoas{ font-weight:700; }
  .pct-card__preco{ margin-top:auto; padding-top:18px; }
  .pct-card__preco strong{ display:block; font-size:1.55rem; font-weight:800; color:var(--ink); line-height:1.1; }
  .pct-card__preco span{ display:block; margin-top:3px; font-size:13.5px; color:var(--gray-dark); }
  .pct-card__acoes{ margin-top:16px; padding-top:16px; border-top:1px solid rgba(10,10,10,0.10); display:flex; flex-direction:column; gap:9px; }
  .pct-btn{
    display:flex; align-items:center; justify-content:center; text-align:center; min-height:46px; padding:11px 14px;
    font:inherit; font-size:14.5px; font-weight:700; border-radius:999px; cursor:pointer; text-decoration:none;
    border:1.5px solid #D8DCE3; background:#FFFFFF; color:var(--ink);
    transition:background .2s ease, border-color .2s ease, transform .15s ease;
  }
  .pct-btn:hover{ border-color:var(--blue); }
  .pct-btn--pri{ background:var(--blue); border-color:var(--blue); color:#FFFFFF; }
  .pct-btn--pri:hover{ background:var(--blue-deep); border-color:var(--blue-deep); }
  .pct-btn:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
  .pacotes__pontos{ display:none; justify-content:center; gap:8px; margin-top:-14px; }
  .pacotes__ponto{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:rgba(15,37,96,0.25); cursor:pointer; transition:all .25s; }
  .pacotes__ponto.is-atual{ width:26px; border-radius:999px; background:var(--blue); }
  .pacotes__ponto:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
  .pacotes__obs{
    max-width:760px; margin:34px auto 0; text-align:center; font-size:14.5px; line-height:1.5; color:#1F2937;
    background:rgba(255,255,255,0.88); border-radius:12px; padding:12px 18px;
  }
  /* telas menores: os cards ficam numa fila horizontal, que rola para o lado */
  @media (max-width: 1140px){
    .pacotes__grade{
      flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; overscroll-behavior-x:contain;
      scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none;
      margin-inline:calc(-1 * clamp(20px, 4vw, 56px)); padding:6px clamp(20px, 4vw, 56px) 34px;
      scroll-padding-inline:clamp(20px, 4vw, 56px);
    }
    .pacotes__grade::-webkit-scrollbar{ display:none; }
    .pct-card{ flex:0 0 min(320px, 80vw); max-width:none; scroll-snap-align:start; }
    .pacotes__pontos{ display:flex; }
    .pacotes__obs{ margin-top:8px; }
  }
  @media (max-width: 640px){
    .pacotes__grade{ --pct-gap:18px; }
    .pacotes__aba{ flex:1 1 0; padding:12px 10px; font-size:14px; }
    .pacotes::before{ height:520px; }
  }

  /* janela de detalhes do pacote */
  .pct-janela{
    position:fixed; inset:0; z-index:95; display:flex; align-items:center; justify-content:center; padding:16px;
    background:rgba(5,10,26,0.66);
  }
  .pct-janela[hidden]{ display:none; }
  .pct-janela__caixa{
    position:relative; width:100%; max-width:620px; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px);
    display:flex; flex-direction:column; overflow:hidden; background:#FFFFFF; border-radius:20px; color:var(--ink);
  }
  #pacoteJanelaConteudo{ overflow-y:auto; -webkit-overflow-scrolling:touch; min-height:0; }
  .pct-janela__foto{ position:relative; aspect-ratio:3 / 2; flex-shrink:0; background:#E5E7EB; overflow:hidden; }
  .pct-janela__foto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .pct-janela__miolo{ padding:22px clamp(18px, 4vw, 30px) 26px; }
  .pct-janela__cat{ font-size:12.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue); }
  .pct-janela__titulo{ margin-top:4px; font-size:1.5rem; font-weight:800; text-transform:uppercase; line-height:1.15; color:var(--ink); }
  .pct-janela__sub{ margin-top:18px; font-size:12.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-dark); }
  .pct-janela__passeios{ list-style:none; margin-top:10px; display:flex; flex-direction:column; gap:14px; }
  .pct-janela__passeios li{ padding-left:14px; border-left:3px solid var(--gold); }
  .pct-janela__passeios strong{ display:block; font-size:15.5px; color:var(--ink); }
  .pct-janela__passeios p{ margin-top:3px; font-size:14.5px; line-height:1.5; color:var(--gray-dark); }
  .pct-janela__passeios a{ display:inline-block; margin-top:4px; font-size:13.5px; font-weight:700; color:var(--blue); text-decoration:underline; }
  .pct-janela__preco{ margin-top:20px; padding-top:18px; border-top:1px solid rgba(10,10,10,0.10); }
  .pct-janela__preco strong{ font-size:1.5rem; font-weight:800; }
  .pct-janela__preco span{ margin-left:8px; font-size:14px; color:var(--gray-dark); }
  .pct-janela__aviso{ margin-top:10px; font-size:14px; line-height:1.5; color:var(--gray-dark); }
  .pct-janela__miolo .pct-btn{ margin-top:18px; }
  .pct-janela__fechar{
    position:absolute; z-index:2; top:12px; right:12px; width:44px; height:44px; border-radius:50%; border:0; cursor:pointer;
    background:rgba(255,255,255,0.94); color:var(--ink); font-size:26px; line-height:1; box-shadow:0 4px 14px -4px rgba(0,0,0,0.5);
  }
  .pct-janela__fechar:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }
  @media (prefers-reduced-motion: reduce){
    .pacotes__grade, .pacotes__aba, .pct-btn{ transition:none; }
  }

  /* botões dos cards com quinas (cantos retos) em vez de pílula */
  .tour-card .btn, .pk-card .btn, .package-card .btn{ border-radius:6px; }
  /* hero sem overlay: foto 100% limpa; a leitura fica por conta da sombra do texto */
  .hs-veu{ display:none !important; }
  .hero--slider h1, .hero--slider .hero-sub, .hs-local, .hs-ver-passeios, .hs-card__titulo, .hs-card__nota{
    text-shadow:0 2px 14px rgba(0,0,0,.75), 0 1px 3px rgba(0,0,0,.7);
  }
  .hero--slider nav.primary-nav a, .hero--slider .brand span.wordmark{ text-shadow:0 1px 8px rgba(0,0,0,.75), 0 1px 2px rgba(0,0,0,.6); }
  /* parallax da hero: o fundo rola mais devagar que a página */
  .hs-bg{ will-change:transform; }
  /* ---------- HERO: formulário de orçamento (barra branca) ---------- */
  .hero--slider .hs-corpo{
    flex-direction:column; flex-wrap:nowrap; align-items:stretch; align-content:normal; justify-content:space-between; gap:32px;
    padding:clamp(28px, 6vh, 72px) clamp(20px, 4vw, 56px) 64px;
  }
  .hero--slider .hs-texto{ flex:0 0 auto; max-width:640px; padding-right:0; margin-top:auto; margin-bottom:auto; }
  .orc{
    position:relative; display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; align-items:stretch;
    background:#FFFFFF; border-radius:14px; padding:18px; box-shadow:0 20px 50px rgba(0,0,0,0.25);
    color:#0E1B33; text-shadow:none;
  }
  .orc__campo{
    display:flex; flex-direction:column; justify-content:center; min-width:0; height:56px;
    border:1px solid #D9DDE5; border-radius:8px; padding:6px 14px; background:#FFFFFF;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  .orc__campo:focus-within{ border-color:#1B3F9B; box-shadow:0 0 0 3px rgba(27,63,155,0.18); }
  .orc__campo.is-erro{ border-color:#C62828; box-shadow:0 0 0 3px rgba(198,40,40,0.14); }
  .orc__campo label{ font-size:12px; font-weight:600; line-height:1.2; color:#5B6472; cursor:pointer; }
  .orc__campo select, .orc__campo input{
    width:100%; min-width:0; border:0; outline:0; background:transparent; padding:0; margin:0;
    font:inherit; font-size:16px; font-weight:600; line-height:1.3; color:#0E1B33; cursor:pointer;
  }
  .orc__campo input[type="number"]{ cursor:text; }
  .orc__campo select:invalid{ color:#5B6472; }
  .orc__campo select option, .orc__campo select optgroup{ color:#0E1B33; font-weight:400; }
  .orc__btn{
    height:56px; padding:0 30px; border:0; border-radius:8px; cursor:pointer; white-space:nowrap;
    background:#157A41; color:#FFFFFF; font:inherit; font-size:16px; font-weight:700;
    transition:background .15s ease;
  }
  .orc__btn:hover{ background:#0F6334; }
  .orc__btn:focus-visible{ outline:3px solid #FDB813; outline-offset:3px; }
  .orc__erro{ grid-column:1 / -1; margin:0; font-size:14px; font-weight:600; color:#B3261E; }
  .orc__erro[hidden]{ display:none; }
  .hero--slider .hs-pontos{ left:50%; transform:translateX(-50%); bottom:24px; }
  @media (min-width: 1081px){ .orc--roteiro{ grid-template-columns:repeat(5, minmax(0, 1fr)) minmax(0, 1.25fr); } }
  @media (max-width: 1080px) and (min-width: 881px){
    .orc__btn{ padding:0 16px; }
    .orc--roteiro{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  }
  @media (max-width: 880px){
    .hero--slider .hs-corpo{ justify-content:flex-start; gap:22px; padding:20px 16px 60px; }
    .hero--slider .hs-texto{ margin:clamp(8px, 6vh, 56px) 4px 0; }
    .orc{ grid-template-columns:1fr 1fr; gap:10px; padding:14px; margin-top:auto; box-shadow:0 20px 50px rgba(0,0,0,0.3); }
    .orc__campo--passeio, .orc__campo--tipo, .orc__btn{ grid-column:1 / -1; }
    .orc__btn{ height:52px; }
    .hero--slider .hs-pontos{ bottom:22px; }
  }
  @media (max-width: 340px){
    .orc{ grid-template-columns:1fr; }
  }
  @media (prefers-reduced-motion: reduce){ .orc__campo, .orc__btn{ transition:none; } }
  /* título da hero sempre em 3 linhas */
  .hero--slider h1.hs-titulo{ max-width:none; font-size:clamp(1.3rem, 6.3vw, 3.5rem); line-height:1.05; }
  .hero--slider h1.hs-titulo .hs-titulo__l{ display:block; white-space:nowrap; color:inherit; }
  .hero--slider h1.hs-titulo .hs-titulo__l--ouro{ color:var(--gold); }
  .hero--slider .hs-texto{ max-width:none; }
  .hero--slider .hero-sub{ max-width:560px; }
  @media (max-width: 340px){ .hero--slider h1.hs-titulo{ font-size:6.3vw !important; } }
  /* celular: uma única foto estática na hero (sem troca e sem zoom) */
  @media (max-width: 880px){
    .hs-bg picture .hs-bg__img{ object-position:50% 40% !important; transform:none !important; transition:none !important; }
    .hero--slider .hs-pontos{ display:none; }
    .hero--slider .hs-corpo{ padding-bottom:28px; }
    .hero--slider .hs-texto{ margin-top:clamp(0px, 1.5vh, 16px); }
    .hero--slider .hero-sub{ margin-top:12px; }
  }


  /* ---------- VALE A PENA (diferenciais) ---------- */
  .vale{ background:#F6F8FC; padding:clamp(64px, 8vw, 96px) clamp(20px, 4vw, 56px); }
  .vale__topo{ max-width:1320px; margin:0 auto 38px; }
  .vale__topo p{ font-weight:700; font-size:clamp(14px, 1.4vw, 16px); letter-spacing:0.02em; color:var(--gold-deep); margin-bottom:8px; }
  .vale__topo h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    color:var(--ink); font-size:clamp(1.65rem, 3.4vw, 2.7rem); line-height:1.06; max-width:26ch; text-wrap:balance;
  }
  .vale__grade{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; }
  .vale__card{
    background:#FFFFFF; border:1px solid var(--border); border-radius:18px; padding:26px 22px 24px;
    box-shadow:0 10px 28px rgba(15,37,96,0.06); transition:transform .25s, box-shadow .25s;
  }
  .vale__card:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(15,37,96,0.10); }
  .vale__icone{
    display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px;
    border-radius:14px; background:rgba(15,37,96,0.08); color:var(--blue); margin-bottom:16px;
  }
  .vale__card h3{ font-family:'Open Sans', system-ui, sans-serif; font-weight:800; font-size:1.12rem; line-height:1.25; color:var(--ink); margin-bottom:10px; }
  .vale__card p{ font-size:15px; line-height:1.55; color:var(--gray-dark); }
  .vale__acao{ max-width:1320px; margin:36px auto 0; text-align:center; }
  .vale__btn{
    display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 30px;
    border-radius:999px; background:#157A41; color:#FFFFFF; font-weight:800; font-size:16px; text-decoration:none;
    box-shadow:0 10px 24px rgba(23,140,75,0.25); transition:background .2s, transform .2s;
  }
  .vale__btn:hover{ background:#0F6334; transform:translateY(-1px); }
  .vale__btn:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
  @media (max-width: 1080px){ .vale__grade{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
  @media (max-width: 560px){
    .vale__grade{ grid-template-columns:1fr; gap:14px; }
    .vale__card{ padding:22px 20px; display:grid; grid-template-columns:48px 1fr; column-gap:14px; }
    .vale__icone{ width:48px; height:48px; margin:0; grid-row:span 2; }
    .vale__card h3{ margin:2px 0 6px; }
    .vale__btn{ width:100%; }
  }


  /* ---------- PACOTES: só os 2 destaques (Casal Clássico e Solo Clássico) + "Ver mais pacotes" ---------- */
  .pacotes__grade--dois .pct-card{ flex:0 0 min(360px, calc((100% - var(--pct-gap)) / 2)); }
  .pacotes__mais{ text-align:center; margin-top:30px; }
  .pacotes__mais-btn{
    display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 32px;
    border-radius:999px; background:var(--blue); color:#FFFFFF; font-weight:800; font-size:16px; text-decoration:none;
    box-shadow:0 10px 24px rgba(15,37,96,0.22); transition:background .2s, transform .2s;
  }
  .pacotes__mais-btn:hover{ background:var(--blue-deep); transform:translateY(-1px); }
  .pacotes__mais-btn:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
  @media (max-width: 1140px){
    .pacotes__grade.pacotes__grade--dois{
      flex-wrap:wrap; justify-content:center; overflow:visible; scroll-snap-type:none;
      margin-inline:0; padding:0;
    }
  }
  @media (max-width: 700px){
    .pacotes__grade--dois .pct-card{ flex:0 0 100%; max-width:400px; }
  }
  .pacotes__mais .btn-catalogo{ background:#FFFFFF; }
  .pacotes__mais .btn-catalogo:hover{ background:var(--ink); color:var(--white); }
