/* ==========================================================================
   Páginas públicas: home, catálogo, passeio, conteúdo institucional
   ========================================================================== */

@layer pages {

  /* ======================= LiveTur: busca e ofertas ===================== */
  .livetur-hero {
    position: relative;
    display: grid;
    align-items: center;
    min-height: clamp(18rem, 33vw, 29rem);
    overflow: hidden;
    background: var(--igor-navy);
    color: var(--igor-white);
    isolation: isolate;
  }
  .livetur-hero::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, rgb(8 43 82 / 0.92) 0%, rgb(8 43 82 / 0.72) 42%, rgb(8 43 82 / 0.08) 100%);
    content: "";
  }
  .livetur-hero__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
  .livetur-hero__content { width: min(100% - 2 * var(--gutter), var(--container)); padding-block: var(--space-8); }
  .livetur-hero h1 { max-width: 13ch; color: var(--igor-white); font-family: var(--font-display); font-size: clamp(2.75rem, 5vw, 5rem); font-style: italic; font-weight: 800; line-height: 0.96; letter-spacing: 0; }
  .livetur-hero__content > p { margin-top: var(--space-4); color: var(--igor-wa); font-size: clamp(1.125rem, 1rem + 0.8vw, 1.5rem); font-weight: 700; }

  .travel-search { position: relative; z-index: 2; margin-top: -2.5rem; }
  .travel-search__form {
    display: grid;
    grid-template-columns: minmax(12rem, 1.2fr) minmax(12rem, 0.9fr) auto;
    align-items: end;
    gap: var(--space-3);
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--igor-white);
    box-shadow: var(--shadow-pop);
  }
  .travel-search__field { display: grid; gap: 0.45rem; min-width: 0; color: var(--igor-navy); font-size: var(--fs-14); font-weight: 700; }
  .travel-search__input-wrap { display: flex; align-items: center; gap: 0.625rem; min-height: 3.25rem; padding-inline: 0.875rem; border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); background: var(--igor-white); color: var(--igor-blue); }
  .travel-search__input-wrap:focus-within { outline: 3px solid rgb(101 184 213 / 0.45); border-color: var(--igor-blue); }
  .travel-search__input-wrap input, .travel-search__input-wrap select { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--color-text); font-size: var(--fs-16); }
  .travel-search__input-wrap select { cursor: pointer; }
  .travel-search__submit { min-height: 3.25rem; padding-inline: 1.5rem; border-radius: var(--radius-pill); background: var(--igor-lime); color: var(--igor-navy); }
  .travel-search__submit:hover:not(:disabled) { background: var(--igor-wa); color: var(--igor-navy); }

  .experience-nav { display: flex; align-items: start; justify-content: center; gap: clamp(1rem, 3vw, 3.25rem); padding-block: var(--space-5) var(--space-6); overflow-x: auto; scrollbar-width: thin; }
  .experience-nav__item { display: grid; justify-items: center; gap: 0.5rem; min-width: 5.5rem; color: var(--color-text-muted); font-size: var(--fs-14); font-weight: 650; white-space: nowrap; transition: color var(--dur-fast) ease; }
  .experience-nav__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: #EAF3F8; color: var(--igor-navy); transition: background-color var(--dur-fast) ease, color var(--dur-fast) ease, translate var(--dur-fast) ease; }
  .experience-nav__icon .icon { width: 1.4rem; height: 1.4rem; }
  .experience-nav__item:hover, .experience-nav__item[aria-pressed="true"] { color: var(--igor-navy); }
  .experience-nav__item:hover .experience-nav__icon { translate: 0 -2px; }
  .experience-nav__item[aria-pressed="true"] .experience-nav__icon { background: var(--igor-navy); color: var(--igor-wa); }
  .experience-nav__item:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; border-radius: var(--radius-sm); }

  .catalog-home { padding-top: var(--space-6); background: var(--igor-gray-100); }
  .catalog-home__head { justify-content: space-between; align-items: end; }
  .catalog-home__head h2 { color: var(--igor-navy); font-size: var(--fs-36); }
  .catalog-home__head p { color: var(--color-text-muted); }
  .catalog-home .tour-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: var(--space-5); }
  .catalog-home .tour-card--home { border-color: #DCE7EE; border-radius: var(--radius-lg); box-shadow: 0 2px 12px rgb(8 43 82 / 0.08); }
  .catalog-home .tour-card--home .tour-card__media { aspect-ratio: 2.05 / 1; }
  .catalog-home .tour-card--home .tour-card__media > img[hidden] { display: none; }
  .catalog-home .tour-card--home .tour-card__body { gap: var(--space-3); padding: var(--space-5); }
  .catalog-home .tour-card--home .tour-card__category { display: flex; align-items: center; gap: 0.65rem; color: var(--igor-blue); font-size: var(--fs-16); font-weight: 700; }
  .catalog-home .tour-card--home .tour-card__category .icon { width: 1.5rem; height: 1.5rem; }
  .catalog-home .tour-card--home .tour-card__title { min-height: 0; color: var(--igor-navy); font-family: var(--font-display); font-size: var(--fs-36); font-weight: 800; line-height: 1.08; }
  .catalog-home .tour-card--home .tour-card__title a { color: inherit; }
  .catalog-home .tour-card--home .tour-card__destination { color: var(--color-text-muted); font-size: var(--fs-18); font-weight: 650; }
  .catalog-home .tour-card--home .tour-card__includes { display: flex; flex-direction: column; gap: 0.5rem; margin: var(--space-2) 0 var(--space-3); padding: 0; list-style: none; color: var(--color-text); }
  .catalog-home .tour-card--home .tour-card__includes li { display: flex; align-items: flex-start; gap: 0.55rem; max-width: none; }
  .catalog-home .tour-card--home .tour-card__includes .icon { flex: 0 0 1.1rem; width: 1.1rem; height: 1.1rem; margin-top: 0.15rem; color: var(--igor-blue); stroke-width: 3; }
  .catalog-home .tour-card--home .tour-card__includes .tour-card__more { color: var(--igor-blue); font-size: var(--fs-14); font-weight: 700; }
  .catalog-home .tour-card--home .tour-card__duration { position: absolute; right: 0.875rem; bottom: 0.875rem; z-index: 2; display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.25rem; padding: 0.375rem 0.875rem; border-radius: var(--radius-pill); background: var(--igor-wa); color: var(--igor-navy); font-size: var(--fs-14); font-weight: 750; box-shadow: 0 2px 8px rgb(8 43 82 / 0.14); pointer-events: none; }
  .catalog-home .tour-card--home .tour-card__duration .icon { width: 1rem; height: 1rem; }
  .catalog-home .tour-card--home .tour-card__badges { top: 0.875rem; left: 0.875rem; }
  .catalog-home .tour-card--home .tour-card__foot { gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
  .catalog-home .tour-card--home .tour-card__foot .price--end { align-items: flex-start; text-align: left; }
  .catalog-home .tour-card--home .price__from { font-size: var(--fs-14); }
  .catalog-home .tour-card--home .tour-card__foot .price__value { font-size: var(--fs-36); }
  .catalog-home .tour-card--home .price__unit { font-size: var(--fs-14); }
  .catalog-home .tour-card--home .tour-card__request { position: relative; z-index: 2; min-height: 3.25rem; border-radius: var(--radius-md); --btn-bg: var(--igor-wa); --btn-fg: var(--igor-navy); }
  .catalog-home .tour-card--home .tour-card__request .icon { width: 1.25rem; height: 1.25rem; }

  @media (max-width: 760px) {
    .livetur-hero { min-height: 22rem; }
    .livetur-hero::after { background: linear-gradient(90deg, rgb(8 43 82 / 0.9), rgb(8 43 82 / 0.32)); }
    .livetur-hero__content { padding-block: var(--space-7); }
    .travel-search { margin-top: -1.5rem; }
    .travel-search__form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: var(--space-4); }
    .travel-search__field:first-child { grid-column: 1 / -1; }
    .travel-search__submit { align-self: stretch; padding-inline: 0.75rem; }
    .experience-nav { justify-content: flex-start; gap: var(--space-5); padding-block: var(--space-4) var(--space-5); }
    .catalog-home__head { align-items: start; flex-direction: column; }
  }
  @media (max-width: 440px) {
    .travel-search__form { grid-template-columns: minmax(0, 1fr); }
    .travel-search__field:first-child { grid-column: auto; }
    .travel-search__submit { width: 100%; }
  }

  /* ======================= HOME: abertura =============================== */
  @keyframes hero-fade { from { opacity: 0; translate: 0 0.5rem; } }
  @keyframes slide-in { from { opacity: 0; } }
  @keyframes slide-zoom { from { scale: 1.08; } }

  /* ---- Faixa de confiança ------------------------------------------------ */
  .trust-row-wrap { border-bottom: 1px solid var(--color-border); }
  .trust-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block: 0; padding-block: 0; }
  .trust-row__item { position: relative; display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-4); max-width: none; }
  .trust-row__item + .trust-row__item::before { content: ""; position: absolute; top: 22%; bottom: 22%; left: 0; width: 1px; background: var(--color-border); }
  .trust-row__icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 3.5rem;
    height: 3.5rem;
    border: 1.5px solid var(--igor-navy);
    border-radius: 50%;
    color: var(--igor-navy);
    transition: background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
  }
  .trust-row__icon .icon { width: 1.5rem; height: 1.5rem; }
  .trust-row__item:hover .trust-row__icon { background: var(--igor-navy); color: var(--igor-white); }
  .trust-row__text { display: flex; flex-direction: column; line-height: 1.3; }
  .trust-row__text strong { color: var(--color-heading); font-weight: 700; }
  .trust-row__text span { color: var(--color-text-muted); font-size: var(--fs-14); }
  @media (max-width: 1000px) {
    .trust-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .trust-row__item:nth-child(odd)::before { display: none; }
  }
  @media (max-width: 560px) {
    .trust-row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .trust-row::-webkit-scrollbar { display: none; }
    .trust-row__item { flex: 0 0 82%; scroll-snap-align: start; }
    .trust-row__item:nth-child(odd)::before { display: block; }
    .trust-row__item:first-child::before { display: none; }
    .trust-row__icon { width: 3rem; height: 3rem; }
  }

  /* ---- Carrossel de destaques --------------------------------------------- */
  .hero-carousel { position: relative; width: min(100% - 2 * var(--gutter), 88rem); margin: var(--space-6) auto var(--space-8); }
  .hero-carousel__viewport {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: var(--igor-royal);
    touch-action: pan-y;
  }

  .hero-rail {
    grid-column: 1;
    grid-row: 1;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    margin: 0;
    padding: var(--space-5) 0;
    list-style: none;
    background: var(--igor-navy);
  }
  .hero-rail li { max-width: none; }
  .hero-rail a {
    position: relative;
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border: 1.5px solid rgb(255 255 255 / 0.6);
    border-radius: 50%;
    color: var(--igor-white);
    transition: background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base), scale var(--dur-fast) var(--ease-out);
  }
  .hero-rail a:hover, .hero-rail a:focus-visible { border-color: var(--igor-white); background: var(--igor-white); color: var(--igor-navy); }
  .hero-rail a:active { scale: 0.92; }
  .hero-rail a:focus-visible { outline-color: var(--igor-cyan); }
  .hero-rail .icon { width: 1.6rem; height: 1.6rem; }
  .hero-rail__label {
    position: absolute;
    top: 50%;
    left: calc(100% + 0.75rem);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-pill);
    background: var(--igor-white);
    color: var(--igor-navy);
    font-size: var(--fs-14);
    font-weight: 650;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    translate: -0.5rem -50%;
    transition: opacity var(--dur-base) var(--ease-out), translate var(--dur-base) var(--ease-out);
  }
  .hero-rail a:hover .hero-rail__label, .hero-rail a:focus-visible .hero-rail__label { opacity: 1; translate: 0 -50%; }

  .hero-slides { grid-column: 2; grid-row: 1; display: grid; }
  .hero-slide {
    grid-area: 1 / 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    min-height: clamp(26rem, 18rem + 16vw, 34rem);
    background: var(--igor-royal);
    color: var(--igor-white);
  }
  .hero-slide.is-hidden { visibility: hidden; }
  .hero-slide.is-leaving { z-index: 1; }
  .hero-slide.is-active { z-index: 2; }

  .hero-slide__text { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--space-4); padding: var(--space-7) clamp(1.5rem, 0.75rem + 3vw, 4.5rem); }
  .hero-slide__heading { display: flex; flex-direction: column; gap: 0.35rem; color: var(--igor-white); letter-spacing: 0; }
  .hero-slide__kicker {
    color: var(--igor-cyan);
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 0.9rem + 1.3vw, 2.25rem);
    font-weight: 500;
    letter-spacing: 0.42em;
    line-height: 1;
    text-transform: uppercase;
  }
  .hero-slide__title {
    color: var(--igor-white);
    font-family: var(--font-display);
    font-size: clamp(2.75rem, 1.4rem + 5vw, 5.75rem);
    font-stretch: 75%;
    font-weight: 800;
    letter-spacing: -0.005em;
    line-height: 0.9;
    text-transform: uppercase;
  }
  .hero-slide__tagline { padding: 0.375rem 0.875rem; background: var(--igor-navy); color: var(--igor-white); font-size: var(--fs-21); line-height: 1.35; }
  .hero-slide__lead { max-width: 32ch; color: rgb(255 255 255 / 0.92); font-size: var(--fs-21); line-height: 1.45; }
  .hero-slide__lead strong { color: var(--igor-white); font-weight: 750; }
  .hero-slide__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-2); }
  .hero-slide__title { font-style: italic; }
  .hero-slide__kicker { color: var(--igor-wa); }

  .hero-slide__photo { position: relative; margin: 0; overflow: hidden; }
  .hero-slide__photo img { width: 100%; height: 100%; object-fit: cover; }
  .hero-slide__place {
    position: absolute;
    top: var(--space-5);
    right: var(--space-5);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 1rem 0.375rem 0.75rem;
    border-radius: var(--radius-pill);
    background: rgb(255 255 255 / 0.94);
    color: var(--igor-navy);
    font-size: var(--fs-18);
    font-weight: 600;
    box-shadow: var(--shadow-lift);
  }

  .hero-carousel__arrow {
    position: absolute;
    top: 50%;
    z-index: 4;
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--igor-white);
    color: var(--igor-navy);
    box-shadow: var(--shadow-lift);
    translate: 0 -50%;
    transition: scale var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
  }
  .hero-carousel__arrow:hover { scale: 1.08; box-shadow: var(--shadow-pop); }
  .hero-carousel__arrow:active { scale: 0.94; }
  .hero-carousel__arrow .icon { width: 1.4rem; height: 1.4rem; }
  .hero-carousel__arrow--prev { left: 4.75rem; } /* na divisa da coluna de atalhos, sem cobrir os ícones */
  .hero-carousel__arrow--next { right: -1.5rem; }
  @media (max-width: 1100px) { .hero-carousel__arrow--next { right: 0.75rem; } }

  .hero-carousel__controls { display: flex; align-items: center; justify-content: center; gap: var(--space-2); margin-top: var(--space-3); }
  .hero-dots { display: flex; gap: 0.125rem; margin: 0; padding: 0; list-style: none; }
  .hero-dots li { max-width: none; }
  .hero-dots button { display: grid; place-items: center; min-width: 28px; height: 28px; }
  .hero-dots button::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: var(--radius-pill);
    background: var(--igor-gray-600);
    transition: width var(--dur-base) var(--ease-out), background-color var(--dur-base);
  }
  .hero-dots button[aria-current="true"]::before { width: 28px; background: var(--igor-navy); }
  .hero-carousel__pause { width: 36px; height: 36px; }
  .hero-carousel__pause .icon { width: 18px; height: 18px; }

  @media (prefers-reduced-motion: no-preference) {
    .hero-slide.is-active { animation: slide-in 700ms var(--ease-out) both; }
    .hero-slide.is-active .hero-slide__photo img { animation: slide-zoom 8s ease-out both; }
    .hero-slide.is-active .hero-slide__text > * { animation: hero-fade 600ms var(--ease-out) both; }
    .hero-slide.is-active .hero-slide__text > :nth-child(2) { animation-delay: 90ms; }
    .hero-slide.is-active .hero-slide__text > :nth-child(3) { animation-delay: 180ms; }
    .hero-slide.is-active .hero-slide__text > :nth-child(4) { animation-delay: 270ms; }
  }

  @media (max-width: 860px) {
    .hero-carousel { margin-block: var(--space-4) var(--space-7); }
    .hero-carousel__viewport { grid-template-columns: minmax(0, 1fr); }
    .hero-slides { grid-column: 1; grid-row: 1; }
    .hero-slide { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; min-height: 0; }
    .hero-slide__photo { grid-row: 1; aspect-ratio: 4 / 3; }
    .hero-slide__text { grid-row: 2; justify-content: flex-start; gap: var(--space-3); padding: var(--space-5) var(--space-5) var(--space-6); }
    .hero-slide__kicker { letter-spacing: 0.28em; }
    .hero-slide__tagline, .hero-slide__lead { font-size: var(--fs-18); }
    .hero-slide__place { top: var(--space-3); right: var(--space-3); font-size: var(--fs-14); }
    .hero-rail { grid-column: 1; grid-row: 2; flex-direction: row; justify-content: flex-start; overflow-x: auto; padding: var(--space-3) var(--space-4); scrollbar-width: none; }
    .hero-rail::-webkit-scrollbar { display: none; }
    .hero-rail li { flex: none; }
    .hero-rail__label { display: none; }
    .hero-carousel__arrow { top: calc((100vw - 2 * var(--gutter)) * 0.375); width: 2.5rem; height: 2.5rem; }
    .hero-carousel__arrow--prev { left: 0.5rem; }
    .hero-carousel__arrow--next { right: 0.5rem; }
  }

  /* ======================= HOME: catálogo ============================== */
  .catalog-panel { padding-top: var(--space-6); }
  .catalog-panel:focus-visible { outline-offset: 8px; }

  /* ======================= HOME: como funciona ========================= */
  .how { background: var(--color-band); color: var(--color-band-text); padding-block: clamp(3rem, 2rem + 4vw, 5.5rem); }
  .how__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--space-7); align-items: start; }
  .how h2, .how h3 { color: var(--igor-white); }
  .how__intro { display: flex; flex-direction: column; gap: var(--space-3); }
  .how__intro p { color: rgb(255 255 255 / 0.88); font-size: var(--fs-18); }
  .how__steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6) var(--space-5); counter-reset: how; }
  .how__steps li { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-4); border-top: 1px solid rgb(255 255 255 / 0.3); counter-increment: how; }
  .how__steps li::before {
    content: counter(how);
    color: var(--color-band-accent);
    font-family: var(--font-display);
    font-size: var(--fs-36);
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
  }
  .how__steps p { color: rgb(255 255 255 / 0.88); }
  .how__steps--plain li::before { display: none; }
  @media (max-width: 860px) { .how__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } }
  @media (max-width: 520px) { .how__steps { grid-template-columns: minmax(0, 1fr); } }

  /* ======================= HOME/SOBRE: LiveTur ========================= */
  .igor__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: end; }
  .igor__photo { position: relative; border-radius: var(--radius-lg); background: var(--igor-gray-200); overflow: hidden; }
  .igor__photo img { width: 100%; height: 100%; object-fit: cover; }
  .igor__text { display: flex; flex-direction: column; gap: var(--space-4); padding-bottom: var(--space-4); }
  .igor__quote { color: var(--color-heading); font-family: var(--font-display); font-size: var(--fs-24); font-weight: 600; line-height: 1.3; max-width: 32ch; }
  .igor__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-5); margin: var(--space-2) 0; }
  .igor__facts div { padding-top: var(--space-3); border-top: 2px solid var(--igor-sky); }
  .igor__facts dt { color: var(--color-heading); font-weight: 700; }
  .igor__facts dd { margin: 0; color: var(--color-text-muted); font-size: var(--fs-14); }
  .igor__text .btn { align-self: flex-start; }
  @media (max-width: 860px) { .igor__grid { grid-template-columns: minmax(0, 1fr); } .igor__photo { max-width: 22rem; } }

  /* ======================= Depoimentos ================================= */
  .reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: var(--space-5); }
  .review { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; padding: var(--space-5); border-radius: var(--radius-md); background: var(--igor-white); }
  .review__stars { display: flex; gap: 2px; color: var(--livetur-yellow); }
  .review__stars .icon { width: 18px; height: 18px; fill: currentColor; stroke: none; }
  .review blockquote { margin: 0; color: var(--color-text); font-size: var(--fs-16); }
  .review figcaption { margin-top: auto; color: var(--color-text-muted); font-size: var(--fs-14); }
  .review figcaption strong { color: var(--color-heading); }

  /* ======================= Perguntas frequentes ======================== */
  .faq-layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-7); align-items: start; }
  .faq-layout__intro { position: sticky; top: calc(var(--header-h) + var(--space-5)); display: flex; flex-direction: column; gap: var(--space-4); }
  .faq-layout__intro p { color: var(--color-text-muted); }
  .faq-layout__intro .btn { align-self: flex-start; }
  .faq-layout__mascot { width: 7.5rem; height: auto; margin-top: var(--space-3); }
  @media (max-width: 860px) {
    .faq-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
    .faq-layout__intro { position: static; }
    .faq-layout__mascot { display: none; }
  }

  /* ======================= Catálogo ==================================== */
  .catalog-layout { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: var(--space-7); align-items: start; padding-bottom: var(--space-9); }
  .filters { position: sticky; top: calc(var(--header-h) + var(--space-4)); }
  .filters__toggle { display: none; }
  .filters__body { display: flex; flex-direction: column; gap: var(--space-5); }
  .filter-group { display: flex; flex-direction: column; gap: var(--space-2); }
  .filter-group legend { margin-bottom: var(--space-2); color: var(--color-heading); font-weight: 700; }
  .filter-group .check { font-size: var(--fs-16); min-height: 32px; align-items: center; }
  .filter-group .check input { margin-top: 0; }
  .results-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-block: var(--space-5); }
  .results-bar__count { color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
  .results-bar .select { width: auto; min-width: 12rem; }
  .sort-field { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-14); }

  @media (max-width: 900px) {
    .catalog-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .filters { position: static; }
    .filters__toggle { display: inline-flex; }
    .filters__body { padding: var(--space-4) 0; }
    .filters:not(.is-open) .filters__body { display: none; }
  }

  /* ======================= Página do passeio =========================== */
  .tour-top { display: flex; flex-direction: column; gap: var(--space-3); padding-block: var(--space-6) var(--space-4); }
  .tour-top h1 { max-width: 22ch; color: var(--igor-navy); font-family: var(--font-display); font-size: var(--fs-48); font-weight: 800; line-height: var(--lh-heading); }
  .tour-top__meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); color: var(--color-text-muted); }
  .tour-top__meta li { display: inline-flex; align-items: center; gap: 0.5rem; }
  .tour-top__meta .icon { color: var(--igor-blue); }

  .tour-layout { display: grid; grid-template-columns: minmax(0, 1fr) 24rem; gap: clamp(var(--space-5), 4vw, var(--space-7)); align-items: start; padding-block: var(--space-6) var(--space-9); }
  .tour-main { display: flex; flex-direction: column; gap: var(--space-7); min-width: 0; }

  .gallery { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: var(--space-2); overflow: hidden; aspect-ratio: 2.45 / 1; border-radius: var(--radius-lg); background: var(--igor-gray-200); }
  .gallery__photo { position: relative; display: block; min-width: 0; min-height: 0; overflow: hidden; padding: 0; border: 0; background: var(--igor-gray-200); cursor: pointer; }
  .gallery__photo:focus-visible { z-index: 1; outline: 3px solid var(--color-focus); outline-offset: -4px; }
  .gallery__photo img { width: 100%; height: 100%; object-fit: cover; transition: scale 300ms var(--ease-out); }
  .gallery__photo:hover img { scale: 1.025; }
  .gallery__photo--featured { view-transition-name: tour-media; }
  .gallery__secondary { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: var(--space-2); min-height: 0; }
  .gallery__secondary .gallery__photo:only-child { grid-row: 1 / -1; }
  .gallery__secondary .gallery__photo:nth-child(3) { display: none; }
  .gallery__photo[aria-current="true"] { box-shadow: inset 0 0 0 3px var(--igor-wa); }
  .gallery__photo[aria-current="true"]::after { position: absolute; inset: 0; border: 3px solid var(--igor-wa); content: ""; pointer-events: none; }
  @media (max-width: 760px) {
    .gallery { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; aspect-ratio: 4 / 3; }
    .gallery__secondary { display: flex; gap: var(--space-2); overflow-x: auto; min-height: 4.25rem; }
    .gallery__secondary .gallery__photo { flex: 0 0 6rem; aspect-ratio: 8 / 5; border-radius: var(--radius-sm); }
    .gallery__secondary .gallery__photo:nth-child(3) { display: block; }
  }

  .tour-section { display: flex; flex-direction: column; gap: var(--space-4); }
  .tour-section h2 { font-size: var(--fs-24); }
  .tour-section__lead { color: var(--color-heading); font-size: var(--fs-21); line-height: 1.45; }

  .itinerary { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; counter-reset: stop; }
  .itinerary li { position: relative; display: grid; grid-template-columns: 2.5rem 1fr; gap: 0 var(--space-3); padding-bottom: var(--space-5); counter-increment: stop; max-width: none; }
  .itinerary li::before {
    content: counter(stop);
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--igor-gray-200);
    color: var(--igor-navy);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
  }
  .itinerary li:not(:last-child)::after { content: ""; position: absolute; top: 2.75rem; bottom: 0.25rem; left: calc(1.25rem - 1px); width: 2px; background: var(--igor-gray-300); }
  .itinerary__body { display: flex; flex-direction: column; gap: 0.125rem; padding-top: 0.375rem; }
  .itinerary__body strong { color: var(--color-heading); font-size: var(--fs-18); }
  .itinerary__time { color: var(--igor-blue); font-size: var(--fs-14); font-weight: 700; font-variant-numeric: tabular-nums; }

  .includes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
  .includes h3 { margin-bottom: var(--space-2); font-size: var(--fs-18); }
  .includes ul { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
  .includes li { display: flex; gap: 0.5rem; }
  .includes .is-yes .icon { color: var(--igor-green); }
  .includes .is-no .icon { color: var(--igor-gray-600); }
  @media (max-width: 560px) { .includes { grid-template-columns: minmax(0, 1fr); } }

  .facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--space-4); margin: 0; }
  .facts div { padding: var(--space-4); border-radius: var(--radius-md); background: var(--color-surface); }
  .facts dt { display: flex; align-items: center; gap: 0.5rem; color: var(--color-text-muted); font-size: var(--fs-14); }
  .facts dt .icon { color: var(--igor-blue); }
  .facts dd { margin: 0.25rem 0 0; color: var(--color-heading); font-weight: 650; }

  .policy { display: flex; flex-direction: column; gap: var(--space-2); padding-left: 1.25rem; }
  .policy li::marker { color: var(--igor-blue); }

  /* ---- Reserva ---------------------------------------------------------- */
  .booking {
    position: sticky;
    top: calc(var(--header-h) + var(--space-4));
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--igor-white);
    box-shadow: var(--shadow-lift);
  }
  .booking__price { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-2); }

  .booking-bar { display: none; }

  @media (max-width: 1000px) {
    .tour-layout { grid-template-columns: minmax(0, 1fr); }
    .booking { position: static; }
    .booking-bar {
      position: fixed;
      inset: auto 0 0;
      z-index: 55;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-3);
      padding: var(--space-3) var(--gutter) max(var(--space-3), env(safe-area-inset-bottom));
      background: var(--igor-white);
      box-shadow: 0 -8px 24px rgb(8 43 82 / 0.1);
    }
    .booking-bar .price__value { font-size: var(--fs-21); }
    .booking-bar.is-hidden { translate: 0 110%; }
    .booking-bar { transition: translate var(--dur-base) var(--ease-out); }
  }

  .related { padding-block: var(--space-8); background: var(--color-surface); }

  /* ======================= Conteúdo ==================================== */
  .prose { display: flex; flex-direction: column; gap: var(--space-4); font-size: var(--fs-18); line-height: 1.7; }
  .prose h2 { margin-top: var(--space-5); font-size: var(--fs-24); }
  .prose ul { display: flex; flex-direction: column; gap: var(--space-2); padding-left: 1.25rem; }

  .posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: var(--space-7) var(--space-5); padding-bottom: var(--space-9); }
  .post-card { position: relative; display: flex; flex-direction: column; gap: var(--space-3); }
  .post-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); }
  .post-card h2 { font-size: var(--fs-21); }
  .post-card h2 a { color: inherit; text-decoration: none; }
  .post-card h2 a::after { content: ""; position: absolute; inset: 0; }
  .post-card:hover h2 a { text-decoration: underline; }
  .post-card p { color: var(--color-text-muted); }
  .post-card time { color: var(--color-text-muted); font-size: var(--fs-14); }

  .article { padding-bottom: var(--space-9); }
  .article__cover { width: 100%; max-height: 26rem; object-fit: cover; margin-bottom: var(--space-6); border-radius: var(--radius-lg); }
  .article__cta { margin-top: var(--space-7); padding-top: var(--space-6); border-top: 1px solid var(--color-border); }

  .about-banner img { width: 100%; height: clamp(12rem, 8rem + 14vw, 20rem); object-fit: cover; border-radius: var(--radius-lg); }

  .contact-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: start; padding-bottom: var(--space-9); }
  .contact-list { display: flex; flex-direction: column; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
  .contact-list li { display: grid; grid-template-columns: 2.75rem 1fr; gap: var(--space-3); align-items: start; max-width: none; }
  .contact-list .icon-wrap { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--igor-gray-200); color: var(--igor-navy); }
  .contact-list li > span:last-child { min-width: 0; overflow-wrap: anywhere; }
  .contact-list strong { display: block; color: var(--color-heading); }
  .contact-form { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border-radius: var(--radius-lg); background: var(--color-surface); }
  @media (max-width: 860px) { .contact-grid { grid-template-columns: minmax(0, 1fr); } }
}

/* Estados e condições do catálogo LiveTur. */
.badge--encerrado { background: #e8edf2; color: #173954; }
.badge--sem-data { background: #ffc51b; color: #092b50; }
.badge--programado { background: #092b50; color: #fff; }
.price__value, .price__unit { overflow-wrap: anywhere; }
.tour-card .price { min-width: 0; max-width: 100%; }

/* Enquadramento dos cards com capas de roteiro. */
.catalog-home .tour-card--home .tour-card__media { aspect-ratio: 8 / 5; }
.tour-card__media:has(img[src*="catalogo-"]) { background: #092b50; }
.tour-card__media img[src*="catalogo-"] { object-fit: contain; }
.tour-card:hover .tour-card__media img[src*="catalogo-"] { scale: 1; }
.catalog-home .tour-card--home .tour-card__title { font-size: clamp(1.5rem, 1.25rem + 0.7vw, 1.875rem); line-height: 1.18; overflow-wrap: anywhere; }
.catalog-home .tour-card--home .tour-card__destination { font-size: 1rem; line-height: 1.5; font-weight: 500; }
.catalog-home .tour-card--home .tour-card__body { gap: 0.875rem; padding: 1.25rem; }
.tour-card .price { display: flex; flex-direction: column; align-items: flex-start; gap: 0.375rem; }
.tour-card .price__value::before { display: none; }
.tour-card .price__value { white-space: normal; }
.tour-card .price__unit { line-height: 1.45; }
.tour-card .price__from { line-height: 1.4; }
.catalog-home .tour-card--home .tour-card__foot { gap: 1rem; }
@media (max-width: 480px) {
  .catalog-home .tour-card--home .tour-card__title { font-size: 1.5rem; }
  .catalog-home .tour-card--home .tour-card__duration { font-size: 0.75rem; min-height: 1.875rem; padding: 0.35rem 0.65rem; }
}

/* Fotografias reais dos roteiros: preencher a capa sem distorção. */
.tour-card__media img[src*="foto-"] { object-fit: cover; object-position: center; }
.gallery:has(.gallery__photo:only-child) { grid-template-columns: minmax(0, 1fr); }

/* Banners de inspiração e relacionamento LiveTur. */
.travel-benefits { background: #fff; }
.travel-benefits__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.travel-benefits__title { margin: 2rem 0 1.25rem; font-family: var(--font-body, Inter, sans-serif); font-size: clamp(1.25rem, 2vw, 1.625rem); line-height: 1.3; }
.travel-banner { position: relative; display: flex; align-items: center; gap: 1.25rem; min-width: 0; min-height: 14rem; padding: 1.5rem; border-radius: 1.25rem; overflow: hidden; }
.travel-banner--navy { background: #082b52; color: #fff; }
.travel-banner--blue { background: #0076a6; color: #fff; }
.travel-banner--light { min-height: 12rem; background: #f1f5f7; color: #082b52; }
.travel-banner__content { position: relative; z-index: 1; min-width: 0; flex: 1; }
.travel-banner__content h2, .travel-banner__content h3 { margin: 0 0 .5rem; color: inherit; font-family: Inter,sans-serif; font-size: clamp(1.125rem, 1.5vw, 1.375rem); font-weight: 750; line-height: 1.3; }
.travel-banner__content p { margin: 0 0 1rem; color: inherit; font-size: .875rem; line-height: 1.6; }
.travel-banner__content .travel-banner__eyebrow { margin-bottom: .5rem; color: #ffcf40; font-size: .6875rem; font-weight: 750; text-transform: uppercase; letter-spacing: .1em; }
.travel-banner__content .btn { width: fit-content; max-width: 100%; gap: .5rem; font-size: .8125rem; white-space: normal; }
.travel-banner__white { background: #fff; color: #082b52; border: 1px solid #fff; }
.travel-banner__symbol { position: relative; display: grid; place-items: center; flex: 0 0 6rem; height: 6rem; border-radius: 50%; background: #244667; color: #ffca26; transform: rotate(-12deg); }
.travel-banner__symbol > .icon { width: 3.25rem; height: 3.25rem; }
.travel-banner__spark { position: absolute; top: -.5rem; right: -.25rem; font-size: 2.25rem; }
.travel-banner__symbol--light { background: #e0ebf2; color: #087eac; transform: none; }
.travel-banner__illustration { width: 7rem; height: 12rem; object-fit: contain; align-self: end; margin-block: -1rem -1.5rem; flex-shrink: 0; }
.travel-banner--destination { padding-left: 0; gap: 1.5rem; }
.travel-banner__destination { align-self: stretch; width: 34%; max-width: 11rem; object-fit: cover; border-radius: 0 50% 50% 0; margin-block: -1.5rem; }
.travel-offers { background: #edf3f7; padding: 2.5rem 0; }
.travel-offers__inner { display: flex; align-items: center; gap: 1.5rem; }
.travel-offers__icon { position: relative; flex: 0 0 4.5rem; color: #082b52; }
.travel-offers__icon > .icon { width: 4.5rem; height: 4.5rem; stroke-width: 1.25; }
.travel-offers__icon span { position: absolute; right: -.25rem; top: -.25rem; border-radius: 50%; background: #ffc51b; padding: .125rem .5rem; }
.travel-offers__content { flex: 1; }
.travel-offers__content h2 { font: 750 1.25rem/1.35 Inter,sans-serif; margin: 0 0 .5rem; }
.travel-offers__content p { font-size: .875rem; margin: 0 0 .5rem; }
.travel-offers__content small { display: block; font-size: .75rem; color: #536575; line-height: 1.6; }
.travel-offers .btn { flex-shrink: 0; font-size: .875rem; }
@media (max-width: 900px) {
 .travel-banner { padding: 1.25rem; gap: 1rem; }
 .travel-banner__symbol { flex-basis: 4rem; height: 4rem; }
 .travel-banner__symbol > .icon { width: 2.25rem; height: 2.25rem; }
 .travel-banner__illustration { width: 5rem; }
 .travel-offers__inner { flex-wrap: wrap; }
 .travel-offers .btn { margin-left: 6rem; }
}
@media (max-width: 640px) {
 .travel-benefits__grid { grid-template-columns: minmax(0,1fr); }
 .travel-banner { min-height: 12rem; }
 .travel-banner--light { min-height: 11rem; }
 .travel-banner--destination { padding-left: 0; }
 .travel-offers__inner { align-items: flex-start; gap: 1rem; }
 .travel-offers__icon { flex-basis: 3rem; }
 .travel-offers__icon > .icon { width: 3rem; height: 3rem; }
 .travel-offers__content { flex-basis: calc(100% - 4rem); }
 .travel-offers .btn { margin-left: 0; width: 100%; }
}

/* Condições comerciais e próximas saídas */
.trip-logistics{display:grid;gap:12px;margin:18px 0;padding:16px 0;border-top:1px solid var(--border,#dce6ee);border-bottom:1px solid var(--border,#dce6ee)}
.trip-logistics>div{min-width:0}.trip-logistics dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#526477;font-weight:600}.trip-logistics dd{margin:4px 0 0;color:#082b52;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.price__value,.price__installment,.price__condition,.price__detail{display:block;overflow-wrap:anywhere}.price__installment{font-weight:700;color:#087eac;margin-top:6px}.price__condition,.price__detail{font-size:.85rem;line-height:1.45;margin-top:5px}.price__note{font-size:.78rem;color:#596775;line-height:1.4}.price__value--consult{font-size:1.5rem!important}
.archive-callout{background:#edf7fa;padding:36px 0}.archive-callout .container{display:flex;align-items:center;justify-content:space-between;gap:24px}.archive-callout h2{margin:0 0 8px}.archive-callout p{margin:0}.photo-caption{font-size:.7rem;background:#082b52;color:white;padding:6px 10px;line-height:1.4}
@media(max-width:650px){.archive-callout .container{display:block}.archive-callout .btn{margin-top:18px}.booking-bar .price__condition,.booking-bar .price__note,.booking-bar .price__detail{display:none}.booking-bar .price__value{font-size:1.2rem!important}.booking-bar .price__installment{font-size:.75rem}}

.trip-logistics dt{display:flex;align-items:center;gap:6px}.trip-logistics dt .icon{width:15px;height:15px}.tour-card>.photo-caption{margin:0}.gallery>.photo-caption{grid-column:1/-1;margin:0}.booking-bar .price__from{display:none}

/* Blog LiveTur */
.blog-eyebrow{font:700 .8rem Inter,system-ui,sans-serif;letter-spacing:.15em;color:#087eac}.blog-tools{display:grid;grid-template-columns:1fr 240px;gap:16px;margin:0 0 22px;max-width:850px}.blog-count{color:#637386;font-size:.9rem;margin-bottom:26px}.posts .post-card{background:#fff;border:1px solid #e0e7ee;border-radius:22px;overflow:hidden;gap:0;box-shadow:0 8px 24px #082b5208}.posts .post-card img{border-radius:0;aspect-ratio:16/10}.post-card__content{padding:26px;display:flex;flex-direction:column;gap:14px;flex:1}.post-card__content p,.post-card__content h2{margin:0}.blog-category{font-size:.73rem;font-weight:700;letter-spacing:.05em;color:#087eac}.blog-meta{font-size:.78rem;color:#637386}.posts .post-card h2{font-size:1.6rem;line-height:1.2}.blog-read{color:#082b52;font-size:.9rem;font-weight:700;margin-top:auto;padding-top:12px}.article .prose p{white-space:pre-line}.article .prose h2{margin-top:36px}@media(max-width:650px){.blog-tools{grid-template-columns:1fr}.post-card__content{padding:22px}}

.home-promotions{background:#fff8df;border-block:1px solid #f4e2a2}.home-promotions .eyebrow{color:#082b52;font-weight:800;letter-spacing:.1em}.home-promotions .tour-grid{margin-top:26px}.home-promotions .muted{margin-top:24px;font-size:.85rem}

.price .price__cash{display:block;font-size:.9rem;font-weight:400;color:#596775;line-height:1.5;margin-top:8px}.price .price__value--installment{font-size:clamp(1.6rem,2.5vw,2.5rem);line-height:1.15;color:#082b52;white-space:normal}.price--installments .price__value::before{display:none}.catalog-home .tour-card--home .tour-card__foot .price__value--installment{font-size:1.9rem}@media(max-width:650px){.booking-bar .price .price__value--installment{font-size:1.15rem!important}.booking-bar .price__cash{font-size:.72rem}}
