/* ── BARRA DE RESERVA (topo, sem hero) ──
       Fica logo a seguir ao menu, sem imagem nem texto a atrasar. É a
       mesma lógica do Premier Inn: nav → busca, sem card à volta —
       o widget Lodgify já tem o próprio fundo/sombra/cantos, uma caixa
       extra por fora só duplicava a moldura.
       O padding-top existe só para o conteúdo não ficar escondido atrás
       da nav fixa (o hero antigo fazia isso com os seus 170px; sem hero,
       tem de ser esta secção a abrir esse espaço). */
    .lp-barra-topo { padding: 108px 0 8px; }
    .lp-barra-caixa { padding: 0; }
    @media (max-width: 860px) {
      .lp-barra-topo { padding: 84px 0 6px; }
    }
    .lp-prova { padding: 44px 0 8px; }
    .lp-prova-grelha {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
    }
    .lp-prova-item {
      display: flex; align-items: center; gap: 11px;
      padding: 16px 18px;
      background: var(--bg-soft);
      border-radius: 12px;
    }
    .lp-prova-item svg-icon { display: block; width: 22px; height: 22px; flex-shrink: 0; }
    .lp-prova-item svg-icon svg { width: 22px; height: 22px; color: var(--green); }
    .lp-prova-item span { font-size: 0.9375rem; font-weight: 600; line-height: 1.3; }
    @media (max-width: 860px) {
      .lp-prova-grelha { grid-template-columns: repeat(2, 1fr); gap: 10px; }
      .lp-prova-item { padding: 13px 14px; gap: 9px; }
      .lp-prova-item span { font-size: 0.875rem; }
    }
    .lp-galeria { padding: 56px 0 0; }
    .lp-galeria-grelha {
      display: grid;
      grid-template-columns: 1.62fr 1fr 1fr;
      grid-template-rows: repeat(2, minmax(0, 1fr));
      gap: 12px;
      border-radius: 14px;
      overflow: hidden;
    }
    .lp-galeria-grelha figure { margin: 0; position: relative; overflow: hidden; background: var(--bg-soft); min-height: 0; }
    .lp-galeria-grelha img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .lp-galeria-grande { grid-row: span 2; aspect-ratio: 4 / 5; }
    @media (max-width: 860px) {
      .lp-galeria-grelha {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto;
        gap: 8px;
      }
      .lp-galeria-grande { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 10; }
      .lp-galeria-grelha figure:not(.lp-galeria-grande) { aspect-ratio: 1 / 1; }
    }
    .lp-galeria-grelha .mosaico-thumb { cursor: pointer; }
    .lp-galeria-grelha .mosaico-thumb img { transition: transform .35s ease, opacity .2s ease; }
    .lp-galeria-grelha .mosaico-thumb:hover img { transform: scale(1.04); }
    .lp-galeria-grelha .mosaico-thumb::after {
      content: ""; position: absolute; inset: 0; pointer-events: none;
      box-shadow: inset 0 0 0 0 var(--terracota); transition: box-shadow .18s ease;
    }
    .lp-galeria-grelha .mosaico-thumb.active::after { box-shadow: inset 0 0 0 3px var(--terracota); }
    .lp-galeria-grelha .mosaico-thumb:focus-visible { outline: 3px solid var(--terracota); outline-offset: 2px; }
    .lp-galeria-grande img { transition: opacity .18s ease; }
    .btn-quente {
      background: var(--terracota); color: #fff; border-color: var(--terracota);
      min-height: 48px;
    }
    .btn-quente:hover { background: var(--terracota-escuro); border-color: var(--terracota-escuro); }
    .btn-wa { min-height: 48px; }
    .lp-nao-hotel { background: var(--bg-soft); }
    .lp-nao-hotel-grelha {
      display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 40px;
      margin-top: 32px;
    }
    .lp-nao-hotel-linha { display: flex; gap: 13px; align-items: flex-start; }
    .lp-nao-hotel-linha svg-icon { display: block; width: 20px; height: 20px; flex-shrink: 0; margin-top: 3px; }
    .lp-nao-hotel-linha svg-icon svg { width: 20px; height: 20px; color: var(--green); }
    .lp-nao-hotel-linha strong { display: block; margin-bottom: 2px; font-size: 1rem; }
    .lp-nao-hotel-linha p { color: var(--muted); font-size: 0.9375rem; line-height: 1.55; }
    @media (max-width: 700px) { .lp-nao-hotel-grelha { grid-template-columns: 1fr; gap: 16px; } }
    .lp-mapa-caixa {
      background: var(--green-soft);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: clamp(22px, 4vw, 40px);
      display: grid; grid-template-columns: 1.1fr 1fr; gap: 34px; align-items: center;
    }
    .lp-mapa-svg { width: 100%; height: auto; display: block; }
    .lp-mapa-dados { list-style: none; margin: 20px 0 24px; }
    .lp-mapa-dados li {
      display: flex; justify-content: space-between; gap: 16px;
      padding: 11px 0; border-bottom: 1px solid var(--border);
      font-size: 0.9375rem;
    }
    .lp-mapa-dados li:last-child { border-bottom: none; }
    .lp-mapa-dados span:first-child { color: var(--muted); }
    .lp-mapa-dados span:last-child { font-weight: 600; text-align: right; }
    @media (max-width: 800px) {
      .lp-mapa-caixa { grid-template-columns: 1fr; gap: 22px; }
    }
    .lp-quem-grelha { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 34px; }
    .lp-quem-cartao {
      border: 1px solid var(--border); border-radius: 14px;
      padding: 26px 24px; background: #fff;
    }
    .lp-quem-cartao svg-icon { display: block; width: 24px; height: 24px; margin-bottom: 14px; }
    .lp-quem-cartao svg-icon svg { width: 24px; height: 24px; color: var(--green); }
    .lp-quem-cartao h3 { font-size: 1.0625rem; margin-bottom: 8px; }
    .lp-quem-cartao p { color: var(--muted); font-size: 0.9375rem; line-height: 1.6; }
    @media (max-width: 820px) { .lp-quem-grelha { grid-template-columns: 1fr; } }
    .lp-review { background: var(--bg-soft); }
    .lp-review-grelha { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 34px; }
    .lp-review-cartao {
      background: #fff; border: 1px solid var(--border); border-radius: 14px;
      padding: 26px 24px; display: flex; flex-direction: column;
    }
    .lp-review-nota {
      display: inline-flex; align-items: baseline; gap: 5px;
      align-self: flex-start;
      background: var(--green); color: #fff;
      font-size: 1.0625rem; font-weight: 700;
      padding: 5px 11px; border-radius: 8px 8px 8px 2px;
      margin-bottom: 16px;
    }
    .lp-review-nota small { font-size: 0.75rem; font-weight: 600; opacity: 0.82; }
    .lp-review-texto {
      font-family: 'Instrument Serif', Georgia, serif;
      font-weight: 400;
      font-size: 1.1875rem; line-height: 1.42;
      color: var(--ink); margin-bottom: 18px; flex-grow: 1;
    }
    .lp-review-autor { font-size: 0.875rem; color: var(--muted); line-height: 1.5; }
    .lp-review-autor strong { color: var(--ink); font-weight: 600; }
    @media (max-width: 900px) { .lp-review-grelha { grid-template-columns: 1fr; } }
    .lp-faq-lista { max-width: 780px; margin: 34px auto 0; }
    .lp-faq-item { border-bottom: 1px solid var(--border); }
    .lp-faq-item summary {
      cursor: pointer; list-style: none;
      padding: 20px 40px 20px 0; position: relative;
      font-weight: 600; font-size: 1.0625rem;
    }
    .lp-faq-item summary::-webkit-details-marker { display: none; }
    .lp-faq-item summary::after {
      content: '+'; position: absolute; right: 6px; top: 17px;
      font-size: 1.4rem; font-weight: 400; color: var(--muted);
      transition: transform 0.2s;
    }
    .lp-faq-item[open] summary::after { content: '−'; }
    .lp-faq-item p { padding: 0 0 22px; color: var(--muted); line-height: 1.65; }