/* Amo Lençóis Turismo — estilos de página (passeio-combo). Usado por: passeios/combo/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:var(--white);
    box-shadow:0 1px 0 rgba(10,10,10,0.06), 0 4px 16px rgba(10,10,10,0.05);
  }

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

  .brand img{
    height:44px;
    width:auto;
    display:block;
  }

  .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(--ink);
    text-transform:uppercase;
    letter-spacing:0.01em;
    white-space:nowrap;
  }

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

  nav.primary-nav a{
    color:var(--ink);
    text-decoration:none;
    font-size:15px;
    font-weight:500;
    letter-spacing:0.01em;
    opacity:0.88;
    position:relative;
    padding:4px 0;
        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(--ink);
    font-size:26px;
    cursor:pointer;
    padding:4px;
      }

  /* ---------- 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);}
  }

  /* ---------- 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;
      color:var(--white);
    }
    .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 ---------- */

  @media (max-width: 880px){
    .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;
      scroll-snap-align:center;
      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:640px;
    margin:0 auto 42px;
    text-align:center;
  }
  .reviews__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;
  }
  .reviews__head p{
    margin-top:12px;
    color:var(--gray-dark);
    font-size:clamp(1rem, 1.5vw, 1.15rem);
  }

  .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__eyebrow{
    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:18px;
    text-shadow:0 2px 12px rgba(0,0,0,0.35);
  }

  .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;
  }



  /* ---- Fotos do circuito (abaixo do título) ---- */
  .fotos-topo{ background:var(--white); padding:40px clamp(20px, 4vw, 56px) 8px; }
  .fotos-topo__grid{
    max-width:1180px; margin:0 auto;
    column-count:3; column-gap:16px;
  }
  .fotos-topo figure{
    margin:0 0 16px; break-inside:avoid; -webkit-column-break-inside:avoid;
    border-radius:14px; overflow:hidden; background:var(--border);
    cursor:pointer;
  }
  .fotos-topo img{ width:100%; height:auto; display:block; }
  @media (min-width: 881px){
    .fotos-topo figure{ transition:transform 0.35s ease; }
    .fotos-topo figure:hover{ transform:scale(1.02); }
  }
  @media (max-width: 880px){
    .fotos-topo{ padding:28px 16px 4px; }
    .fotos-topo__grid{ column-count:1; column-gap:0; }
    .fotos-topo figure{ margin-bottom:12px; }
  }
  .fotos-topo + .tl-section{ padding-top:56px; }
  @media (max-width: 768px){ .fotos-topo + .tl-section{ padding-top:38px; } }

  /* ---- Título do circuito (topo da subpágina) ---- */
  .circuito-titulo{
    background:var(--white); color:var(--ink);
    padding:72px clamp(20px, 4vw, 56px) 0;
    text-align:center;
  }
  .circuito-titulo h1{
    font-family:'Open Sans', system-ui, sans-serif;
    font-weight:800; text-transform:uppercase;
    font-size:clamp(2rem, 5.2vw, 3.4rem);
    line-height:1.02; letter-spacing:0.01em;
    max-width:1080px; margin:0 auto;
    color:var(--ink); text-shadow:none;
  }
  .circuito-titulo::after{
    content:""; display:block;
    width:72px; height:4px; border-radius:999px;
    background:var(--gold); margin:22px auto 0;
  }
  .circuito-titulo + .tl-section{ padding-top:56px; }
  @media (max-width: 768px){
    .circuito-titulo{ padding-top:48px; }
    .circuito-titulo + .tl-section{ padding-top:38px; }
  }

  /* ---- 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; }

  /* aviso do roteiro — muda o jeito de ler as etapas, então vem antes delas */
  .tl-aviso{
    max-width:1080px;
    margin:0 auto 44px;
    padding:20px 24px;
    background:#FFF8E8;
    border-left:4px solid var(--gold);
    border-radius:4px;
  }
  .tl-aviso__titulo{
    font-weight:800;
    font-size:14px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--gold-deep);
    margin-bottom:8px;
  }
  .tl-aviso p{ color:var(--gray-dark); font-size:15px; line-height:1.62; margin:0 0 10px; }
  .tl-aviso p:last-child{ margin-bottom:0; }
  .tl-aviso a{ color:var(--ink); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
  .tl-aviso a:hover{ color:var(--gold-deep); }

  @media (max-width: 880px){
    .tl-aviso{ margin-inline:clamp(20px, 4vw, 56px); padding:18px 18px; }
  }

  .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{
    position:relative;
    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); }

  /* ---- slider dentro do card: dá pra colocar mais de uma foto por etapa ---- */
  .tl__slider-track{
    display:flex;
    width:100%; height:100%;
    touch-action:pan-y;
    cursor:grab;
    transition:transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .tl__slider-track:active{ cursor:grabbing; }
  .tl__slide{ flex:0 0 100%; width:100%; height:100%; position:relative; }
  .tl__slide img{ width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }

  .tl__slider-nav{
    position:absolute; top:50%; z-index:2;
    width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(8,19,56,0.45); color:var(--white);
    border:none; font-size:20px; line-height:1; cursor:pointer;
    transform:translateY(-50%);
    transition:background 0.2s ease;
  }
  .tl__slider-nav:hover{ background:rgba(8,19,56,0.72); }
  .tl__slider-nav--prev{ left:10px; }
  .tl__slider-nav--next{ right:10px; }

  .tl__slider-dots{
    position:absolute; left:50%; bottom:12px; z-index:2;
    display:flex; gap:6px;
    transform:translateX(-50%);
  }
  .tl__slider-dot{
    width:6px; height:6px; border-radius:999px;
    background:rgba(255,255,255,0.55);
    border:none; padding:0; cursor:pointer;
    transition:background 0.2s ease, width 0.2s ease;
  }
  .tl__slider-dot.is-active{ width:16px; background:var(--white); }

  /* placeholder honesto: etapa sem fotografia própria ainda */
  .tl__slide--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); }


  /* ---------- COMO FUNCIONA ---------- */
  .cf-section{ background:var(--white); color:var(--ink); padding:8px 0 76px; }
  .cf-head{ max-width:1080px; margin:0 auto 44px; padding:0 clamp(20px, 4vw, 56px); }
  .cf-head__eyebrow{
    font-weight:700; font-size:clamp(14px, 1.4vw, 16px);
    letter-spacing:0.02em; color:var(--gold-deep); margin-bottom:8px;
  }
  .cf-head h2{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.6rem, 3vw, 2.3rem); line-height:1.06;
    max-width:24ch; text-wrap:balance;
  }

  .cf{
    max-width:1080px; margin:0 auto;
    padding:0 clamp(20px, 4vw, 56px);
    display:grid; grid-template-columns:repeat(4, 1fr); gap:28px;
    align-items:start;
  }
  /* degrau: o 2º e o 4º descem um pouco, como numa escada */
  .cf__item:nth-child(even){ margin-top:38px; }

  .cf__topo{ position:relative; display:inline-block; margin-bottom:18px; }
  .cf__icone{
    display:flex; align-items:center; justify-content:center;
    width:84px; height:84px; border-radius:20px;
    background:var(--blue-deep);
    color:#fff;
  }
  .cf__num{
    position:absolute; top:-14px; left:-14px;
    display:flex; align-items:center; justify-content:center;
    min-width:38px; height:34px; padding:0 8px;
    border-radius:9px;
    background:var(--gold); color:var(--ink);
    font-weight:800; font-size:15px; letter-spacing:0.02em;
  }
  .cf__item h3{
    font-family:'Open Sans', system-ui, sans-serif; font-weight:800;
    font-size:clamp(1.05rem, 1.5vw, 1.2rem); line-height:1.2;
    margin-bottom:9px;
  }
  .cf__item p{ color:var(--gray-dark); font-size:14.5px; line-height:1.6; }

  @media (max-width: 880px){
    .cf{ grid-template-columns:1fr 1fr; gap:26px 20px; }
    .cf__item:nth-child(even){ margin-top:0; }
    .cf__icone{ width:68px; height:68px; border-radius:17px; }
    .cf__num{ min-width:32px; height:29px; font-size:13.5px; top:-11px; left:-11px; }
  }
  @media (max-width: 520px){
    .cf{ grid-template-columns:1fr; gap:26px; }
    .cf-section{ padding-bottom:56px; }
  }

  /* ---- Galeria editorial ---- */
  .gallery-section{ background:var(--white); color:var(--ink); padding:52px 0 88px; }

  .gallery figure{ margin:0; border-radius:14px; overflow:hidden; background:var(--border); height:100%; }
  .gallery img{ width:100%; height:100%; object-fit:cover; display:block; }

  /* Desktop / tablet: grade responsiva, todas as fotos dos cards + galeria juntas */
  @media (min-width: 881px){
    .gallery{
      max-width:1180px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px);
      display:grid;
      grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
      gap:14px;
    }
    .gallery__item{ aspect-ratio:4 / 3; }
    .gallery__item figure{ transition:transform 0.35s ease; }
    .gallery__item:hover figure{ transform:scale(1.035); }
  }

  /* Mobile: coverflow horizontal — a foto central em destaque, as vizinhas menores e recuadas */
  @media (max-width: 880px){
    .gallery{
      display:flex;
      gap:0;
      padding:0;
      margin:0;
      overflow-x:auto;
      overflow-y:hidden;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      perspective:1000px;
      padding-block:10px;
    }
    .gallery::-webkit-scrollbar{ display:none; }
    .gallery__item{
      flex:0 0 74%;
      max-width:340px;
      aspect-ratio:4 / 3;
      scroll-snap-align:center;
      padding:0 8px;
      will-change:transform, opacity;
      transition:transform 0.15s ease-out, opacity 0.15s ease-out;
    }
    .gallery__item figure{ box-shadow:0 16px 34px rgba(5,10,26,0.22); }
  }

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

  /* ---- Lightbox: clique na foto da galeria pra ampliar (mobile e desktop) ---- */
  .gallery__item{ cursor:pointer; }

  .lightbox{
    position:fixed; inset:0; z-index:999;
    background:rgba(5,10,26,0.94);
    display:flex; align-items:center; justify-content:center;
    padding:clamp(16px, 4vw, 48px);
  }
  .lightbox[hidden]{ display:none; }
  .lightbox__img{
    max-width:100%; max-height:100%;
    object-fit:contain;
    border-radius:8px;
    box-shadow:0 20px 60px rgba(0,0,0,0.5);
  }
  .lightbox__close{
    position:absolute; top:16px; right:16px; z-index:2;
    width:42px; height:42px; border-radius:50%;
    background:rgba(255,255,255,0.12); color:var(--white);
    border:none; font-size:26px; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background 0.2s ease;
  }
  .lightbox__close:hover{ background:rgba(255,255,255,0.24); }
  .lightbox__nav{
    position:absolute; top:50%; transform:translateY(-50%); z-index:2;
    width:48px; height:48px; border-radius:50%;
    background:rgba(255,255,255,0.12); color:var(--white);
    border:none; font-size:30px; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background 0.2s ease;
  }
  .lightbox__nav:hover{ background:rgba(255,255,255,0.24); }
  .lightbox__nav--prev{ left:12px; }
  .lightbox__nav--next{ right:12px; }

  @media (max-width: 640px){
    .lightbox__nav{ width:40px; height:40px; font-size:24px; }
    .lightbox__close{ width:38px; height:38px; font-size:22px; }
  }

  /* ---- 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__obs{
    margin-top:16px;
    padding-top:14px;
    border-top:1px dashed var(--border);
    font-size:13px;
    line-height:1.5;
    color:var(--gray);
  }
  .plan__obs b{ color:var(--gray-dark); font-weight:700; }

  .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; }

  /* o quadro de informações subiu pra logo depois da descrição do passeio:
     a cabeça do roteiro fecha sem respiro embaixo, o quadro encosta nela e as
     etapas recomeçam com o espaço normal */
  .tl-section--cabeca{ padding-bottom:0; }
  /* sem isso a margem de baixo do .tl-head escapa da seção (margin collapse)
     e aparece uma faixa do fundo preto do body entre as duas */
  .tl-section--cabeca .tl-head{ margin-bottom:0; }
  .info-section--topo{ padding:30px 0 0; }
  /* nesta posição o título vira rótulo: dois títulos grandes empilhados
     (o do roteiro e este) competiam entre si */
  .info-section--topo h2{
    font-size:clamp(1rem, 1.5vw, 1.2rem);
    letter-spacing:0.06em;
    color:var(--gray-dark);
    margin-bottom:14px;
  }
  .tl-section--etapas{ padding-top:clamp(34px, 4vw, 52px); }
  .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;
  }

  /* ---- Outros passeios: mesma mecânica de fotos do CTA (painéis que expandem no hover) ---- */
  .others-gallery{ display:none; }

  @media (min-width: 881px){
    .others-gallery{
      display:flex; gap:10px;
      height:clamp(280px, 22vw, 340px);
      margin-top:26px;
    }
    .others-gallery__item{
      position:relative; display:block;
      flex:1 1 0; min-width:0;
      border-radius:14px; overflow:hidden;
      background:linear-gradient(150deg, var(--blue-deep) 0%, var(--blue-night) 100%);
      text-decoration:none;
      transition:flex-grow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .others-gallery__item img{
      position:absolute; inset:0; z-index:0;
      width:100%; height:100%; object-fit:cover; display:block;
    }
    .others-gallery__item::after{
      content:""; position:absolute; inset:0; z-index:1;
      background:linear-gradient(180deg, rgba(8,19,56,0) 40%, rgba(5,10,26,0.88) 100%);
    }
    .others-gallery__todo{
      position:absolute; inset:0; z-index:1;
      display:flex; align-items:center; justify-content:center;
      text-align:center; padding:16px;
      color:rgba(255,255,255,0.55); font-size:11.5px; letter-spacing:0.04em;
    }
    .others-gallery__label{
      position:absolute; left:0; right:0; bottom:0; z-index:2;
      display:flex; flex-direction:column; gap:4px;
      padding:16px;
    }
    .others-gallery__label strong{
      font-family:'Open Sans', system-ui, sans-serif; font-weight:800; text-transform:uppercase;
      color:var(--white); font-size:15px; letter-spacing:0.01em; line-height:1.15;
      text-shadow:0 2px 10px rgba(0,0,0,0.4);
    }
    .others-gallery__label small{
      color:rgba(255,255,255,0.85); font-size:12px;
    }
    .others-gallery:hover .others-gallery__item{ flex-grow:0.75; }
    .others-gallery:hover .others-gallery__item:hover{ flex-grow:2.6; }
    .others-gallery__item:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
  }

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

  /* ---- 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; }
    .info-section--topo{ padding:20px 0 0; }
    .tl-section--etapas{ padding-top:30px; }
  }

  @media (prefers-reduced-motion: reduce){
    .tl__media,
    .reveal{
      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; }
  }

  /* ---- Roteiro: etapa com e sem foto ---- */
  .tl__item--sem-foto{ grid-template-columns:minmax(0, 1fr); }
  .tl__item--sem-foto .tl__text{ max-width:72ch; }
  .tl__foto{
    grid-column:2; grid-row:1 / 3; align-self:center; margin:0;
    border-radius:16px; overflow:hidden; background:var(--border);
  }
  .tl__foto img{ width:100%; height:auto; display:block; }
  /* Mobile: título, depois o texto, e a foto por último */
  @media (max-width: 880px){
    .tl__item{ grid-template-columns:minmax(0, 1fr); grid-template-rows:auto; }
    .tl__head{ grid-column:1; grid-row:1; align-self:start; }
    .tl__body{ grid-column:1; grid-row:2; padding-top:10px; }
    .tl__foto{ grid-column:1; grid-row:3; align-self:start; margin-top:18px; }
  }

  /* ---------- 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; }
  }

  /* ---------- CABEÇALHO BRANCO (padrão do site todo) ---------- */
  header{
    background:#FFFFFF !important;
    box-shadow:0 1px 0 rgba(10,10,10,0.06), 0 4px 16px rgba(10,10,10,0.05);
  }
  header .brand img{ filter:none; }
  header .brand span.wordmark{ color:var(--ink); text-shadow:none; }
  header .nav-toggle{ color:var(--ink); text-shadow:none; }
  @media (min-width: 881px){
    header nav.primary-nav a{ color:var(--ink); text-shadow:none; opacity:0.8; }
    header nav.primary-nav a:hover{ opacity:1; }
  }
  @media (max-width: 880px){
    header nav.primary-nav a{ color:var(--white); text-shadow:none; }
    header nav.primary-nav.open ~ .header-actions .nav-toggle{ color:var(--white); }
  }

  /* ---------- 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; }
  }

  /* ---- Fotos do topo viram carrossel no celular ---- */
  .fotos-topo__pontos{ display:none; }
  @media (max-width: 880px){
    .fotos-topo__grid{
      display:flex; column-count:auto; gap:12px;
      overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
    }
    .fotos-topo__grid::-webkit-scrollbar{ display:none; }
    .fotos-topo__grid figure{
      flex:0 0 100%; margin:0; scroll-snap-align:center; aspect-ratio:4 / 3;
    }
    .fotos-topo__grid img{ width:100%; height:100%; object-fit:cover; }
    .fotos-topo__pontos{ display:flex; justify-content:center; gap:8px; margin-top:14px; }
    .fotos-topo__ponto{
      width:8px; height:8px; padding:0; border:0; border-radius:999px; cursor:pointer;
      background:#D3D7DE; transition:width .25s ease, background .25s ease;
    }
    .fotos-topo__ponto.is-atual{ width:24px; background:var(--gold); }
    .fotos-topo__ponto:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }
  }

  /* 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; } }

  /* ---- Quadro de informações (igual às demais páginas de passeio) ---- */
  .info-quadro{ background:var(--white); padding:34px clamp(20px, 4vw, 56px) 0; }
  .info-quadro__card{
    max-width:1180px; margin:0 auto;
    background:var(--cream); border:1px solid rgba(227,155,0,0.28);
    border-radius:0; padding:28px clamp(18px, 3vw, 34px);
  }
  .info-quadro__grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
  .info-quadro__item{ text-align:center; padding:4px 10px; }
  .info-quadro__item + .info-quadro__item{ border-left:1px solid rgba(10,10,10,0.10); }
  .info-quadro__label{
    font-size:11.5px; font-weight:700; letter-spacing:0.10em; text-transform:uppercase;
    color:var(--gold-deep);
  }
  .info-quadro__label--off{ color:var(--gray); }
  .info-quadro__valor{
    margin-top:8px; font-weight:800; color:var(--ink); line-height:1.1;
    font-size:clamp(1.35rem, 2.6vw, 1.85rem);
  }
  .info-quadro__obs{ margin-top:5px; font-size:13.5px; color:var(--gray-dark); }

  .info-quadro__extras{
    margin-top:24px; padding-top:22px; border-top:1px solid rgba(10,10,10,0.10);
    display:grid; grid-template-columns:1fr 1fr; gap:22px;
  }
  .info-quadro__lista ul{ list-style:none; margin-top:11px; display:flex; flex-direction:column; gap:8px; }
  .info-quadro__lista li{ display:flex; gap:9px; font-size:14.5px; color:var(--gray-dark); line-height:1.45; }
  .info-quadro__lista svg{ flex-shrink:0; margin-top:3px; }

  @media (max-width: 720px){
    .info-quadro{ padding:24px 16px 0; }
    .info-quadro__card{ padding:8px 18px 22px; }
    .info-quadro__grid{ grid-template-columns:1fr; gap:0; }
    .info-quadro__item{ padding:16px 0; }
    .info-quadro__item + .info-quadro__item{
      border-left:0; border-top:1px solid rgba(10,10,10,0.10);
    }
    .info-quadro__extras{ grid-template-columns:1fr; gap:18px; margin-top:18px; padding-top:18px; }
  }
  .info-quadro + .tl-section{ padding-top:104px; }
  @media (max-width: 768px){ .info-quadro + .tl-section{ padding-top:64px; } }
  .info-quadro__card{ background:transparent; border:0; padding-left:0; padding-right:0; }
  @media (max-width: 768px){ .info-quadro__card{ padding:0 0 8px; } }
