/* Pesquisas de alojamento no painel inicial (separadores "Hotel" e "Voo +
   Hotel", home-search.js). Os dois usam as mesmas classes home-hotel-* nos
   resultados; o Voo + Hotel só acrescenta o calendário e o bloco dos voos
   (home-trip-*). Segue o desenho dos resultados de voos: cartões brancos com
   linha fina, preço a laranja à direita, títulos de secção em maiúsculas
   pequenas. */

.home-hotel-form { grid-template-columns: minmax(230px, 1.6fr) repeat(2, minmax(140px, .8fr)) minmax(190px, 1fr) minmax(170px, .9fr); }
.home-hotel-place { position: relative; display: grid; gap: 7px; min-width: 0; color: var(--ink); font-size: .75rem; font-weight: 850; }
.home-hotel-place input { width: 100%; min-height: 49px; padding: 10px 12px; border: 1px solid #c7c0b9; border-radius: 4px; color: var(--ink); background: #fff; font: inherit; font-size: .9rem; font-weight: 500; }
.home-hotel-place input:focus-visible { border-color: var(--orange); outline: 3px solid rgba(255, 121, 0, .2); }
.home-hotel-place-list { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; right: 0; max-height: 320px; margin: 0; padding: 6px; overflow-y: auto; list-style: none; border: 1px solid #ddd5cd; border-radius: 8px; background: #fff; box-shadow: 0 18px 35px rgba(23, 30, 32, .2); }
.home-hotel-place-list button { display: grid; width: 100%; gap: 1px; padding: 9px 10px; border: 0; border-radius: 6px; color: var(--ink); background: transparent; font: inherit; text-align: left; cursor: pointer; }
.home-hotel-place-list button:hover, .home-hotel-place-list button[aria-selected="true"] { background: #fff4e8; }
.home-hotel-place-list strong { font-size: .88rem; }
.home-hotel-place-list span { color: #716964; font-size: .72rem; font-weight: 600; }
.home-hotel-place-empty { padding: 10px; color: #716964; font-size: .78rem; font-weight: 600; }

.home-hotel-guests-popover { display: grid; gap: 10px; }
.home-hotel-counter { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); font-size: .8rem; font-weight: 800; }
.home-hotel-counter small { display: block; color: #716964; font-size: .66rem; font-weight: 600; }
.home-hotel-stepper { display: inline-flex; align-items: center; gap: 10px; }
.home-hotel-stepper button { display: grid; width: 32px; height: 32px; border: 1px solid #c7c0b9; border-radius: 50%; color: var(--navy); background: #fff; font-size: 1rem; font-weight: 800; line-height: 1; place-items: center; cursor: pointer; }
.home-hotel-stepper button:disabled { opacity: .35; cursor: default; }
.home-hotel-stepper output { min-width: 18px; font-size: .92rem; text-align: center; }
.home-hotel-child-ages { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.home-hotel-child-ages:empty { display: none; }
.home-hotel-child-ages label { display: grid; gap: 4px; color: #514a46; font-size: .68rem; font-weight: 800; }
.home-hotel-child-ages select { min-height: 36px; padding: 5px 8px; border: 1px solid #c7c0b9; border-radius: 4px; font: inherit; font-size: .78rem; }

/* ─── Resultados ─────────────────────────────────────────────────────── */

.home-hotel-status { margin: 14px 0 0; color: #514a46; font-size: .82rem; font-weight: 700; }
.home-hotel-status[data-state="error"] { color: #a83629; }
.home-hotel-status[data-state="loading"] { color: #2e5b7b; }
.home-hotel-results { margin-top: 25px; }
.home-hotel-results-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 20px 22px; border-top: 4px solid var(--orange); background: linear-gradient(110deg, #fff8f0, #fff); }
.home-hotel-kicker { margin: 0 0 4px; color: #a44a00; font-size: .64rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.home-hotel-results-head h3 { margin: 0; color: var(--ink); font-size: 1.18rem; letter-spacing: -.02em; }
.home-hotel-results-head p { margin: 4px 0 0; color: #716964; font-size: .75rem; }
.home-hotel-sort { display: inline-flex; align-items: center; gap: 8px; color: #5b5651; font-size: .7rem; font-weight: 800; }
.home-hotel-sort select { min-height: 36px; padding: 6px 28px 6px 10px; border: 1px solid #d7cec6; border-radius: 4px; color: var(--ink); background: #fff; font: inherit; font-size: .74rem; }
.home-hotel-loading-more { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; padding: 10px 14px; border: 1px dashed #e0c7ae; color: #7c470c; background: #fff8f0; font-size: .76rem; font-weight: 700; }
.home-hotel-spinner { width: 14px; height: 14px; border: 2px solid #f1c79e; border-top-color: var(--orange); border-radius: 50%; animation: home-hotel-spin .8s linear infinite; }
@keyframes home-hotel-spin { to { transform: rotate(360deg); } }

.home-hotel-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; margin-top: 16px; }
.home-hotel-filters { align-self: start; position: sticky; top: 16px; display: grid; gap: 16px; padding: 16px; border: 1px solid var(--line); background: #fff; }
.home-hotel-filters h4 { margin: 0 0 8px; color: var(--ink); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.home-hotel-filters fieldset { margin: 0; padding: 0; border: 0; }
.home-hotel-filters label { display: flex; align-items: center; gap: 8px; padding: 3px 0; color: #3f3a37; font-size: .78rem; font-weight: 600; cursor: pointer; }
.home-hotel-filters label span { flex: 1; }
.home-hotel-filters label small { color: #8a827b; font-size: .68rem; }
.home-hotel-filters input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--orange); }
.home-hotel-filters input[type="search"] { width: 100%; min-height: 36px; padding: 6px 10px; border: 1px solid #d7cec6; border-radius: 4px; font: inherit; font-size: .78rem; }
.home-hotel-filters-reset { justify-self: start; padding: 0; border: 0; color: #a44a00; background: none; font: inherit; font-size: .72rem; font-weight: 800; text-decoration: underline; cursor: pointer; }
.home-hotel-filters-toggle { display: none; }
.home-hotel-filters:empty { visibility: hidden; }

.home-hotel-list { display: grid; gap: 12px; }
.home-hotel-empty { padding: 18px; border: 1px dashed #d9d2ca; color: #716964; background: #f8f5f1; font-size: .84rem; }
.home-hotel-card { display: grid; grid-template-columns: 260px minmax(0, 1fr) auto; border: 1px solid var(--line); background: #fff; }
.home-hotel-card:hover { border-color: #cdbfb2; box-shadow: 0 10px 24px rgba(23, 30, 32, .07); }
.home-hotel-photo { position: relative; height: 190px; overflow: hidden; background: linear-gradient(135deg, #ebe4dc, #f7f3ee); }
.home-hotel-photo img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; }
.home-hotel-photo span { position: absolute; inset: 0; display: grid; color: #a89c90; font-size: 2rem; place-items: center; }
.home-hotel-info { display: grid; align-content: start; gap: 7px; min-width: 0; padding: 16px 18px; }
.home-hotel-info h3 { margin: 0; color: var(--ink); font-size: 1.02rem; line-height: 1.25; }
.home-hotel-stars { color: #e4a11b; font-size: .8rem; letter-spacing: 1px; }
.home-hotel-category { color: #716964; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.home-hotel-where { margin: 0; color: #5b5651; font-size: .76rem; }
.home-hotel-where strong { color: #3f3a37; }
.home-hotel-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 0; padding: 0; list-style: none; }
.home-hotel-tags li { padding: 4px 8px; border-radius: 99px; color: #45505a; background: #eef2f3; font-size: .66rem; font-weight: 800; }
.home-hotel-tags li.is-free { color: #176e52; background: #e5f3ec; }
.home-hotel-price { display: grid; align-content: center; justify-items: end; gap: 3px; min-width: 190px; padding: 16px 18px; border-left: 1px solid #efe8e1; background: #fcfaf7; text-align: right; }
.home-hotel-price span { color: #716964; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.home-hotel-price strong { color: var(--orange-deep); font-size: 1.45rem; letter-spacing: -.04em; line-height: 1.1; }
.home-hotel-price small { color: #625a55; font-size: .66rem; font-weight: 700; line-height: 1.35; }
.home-hotel-price button, .home-hotel-choose { margin-top: 8px; min-height: 40px; padding: 9px 14px; border: 0; color: #fff; background: var(--orange); font: inherit; font-size: .74rem; font-weight: 850; white-space: nowrap; cursor: pointer; }
.home-hotel-price button:hover, .home-hotel-choose:hover, .home-hotel-price button:focus-visible, .home-hotel-choose:focus-visible { background: var(--orange-deep); }
.home-hotel-price button[aria-expanded="true"] { color: var(--navy); background: #e8eef0; }

.home-hotel-rooms { grid-column: 1 / -1; padding: 4px 18px 16px; border-top: 1px solid #efe8e1; background: #fdfcfa; }
.home-hotel-room { margin-top: 12px; }
.home-hotel-room h4 { margin: 0 0 6px; padding: 7px 10px; color: #fff; background: var(--navy); font-size: .74rem; font-weight: 850; }
.home-hotel-rate { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 1.6fr) auto auto; gap: 14px; align-items: center; padding: 9px 10px; border-bottom: 1px solid #efe8e1; font-size: .78rem; }
.home-hotel-rate:last-child { border-bottom: 0; }
.home-hotel-rate strong { color: var(--ink); }
.home-hotel-rate .is-free { color: #176e52; font-weight: 700; }
.home-hotel-rate .is-strict { color: #a83629; font-weight: 700; }
.home-hotel-rate-price { color: var(--ink); font-size: .95rem; font-weight: 900; white-space: nowrap; }
.home-hotel-choose { margin: 0; min-height: 34px; padding: 7px 12px; }
.home-hotel-more { display: block; margin: 16px auto 0; min-height: 42px; padding: 9px 22px; border: 1px solid var(--navy); color: var(--navy); background: #fff; font: inherit; font-size: .78rem; font-weight: 850; cursor: pointer; }
.home-hotel-more:hover { color: #fff; background: var(--navy); }

.home-hotel-skeleton { display: grid; grid-template-columns: 260px 1fr 190px; height: 190px; border: 1px solid var(--line); background: #fff; }
.home-hotel-skeleton div { margin: 16px; border-radius: 6px; background: linear-gradient(90deg, #f1ece6 25%, #f8f5f1 50%, #f1ece6 75%); background-size: 200% 100%; animation: home-hotel-shimmer 1.2s infinite; }
.home-hotel-skeleton div:first-child { margin: 0; border-radius: 0; }
@keyframes home-hotel-shimmer { to { background-position: -200% 0; } }

/* ─── Opção escolhida e pedido ───────────────────────────────────────── */

.home-hotel-offer { position: fixed; z-index: 90; inset: 0; display: grid; padding: 24px; overflow-y: auto; background: rgba(15, 24, 30, .6); place-items: start center; }
.home-hotel-offer-card { position: relative; width: min(820px, 100%); margin: 24px 0; border-top: 4px solid var(--orange); background: #fff; box-shadow: 0 30px 60px rgba(10, 16, 20, .35); }
.home-hotel-offer-close { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; color: var(--ink); background: #f3eee8; font-size: 1.2rem; cursor: pointer; }
.home-hotel-offer-head { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; padding: 22px; }
.home-hotel-offer-head img { width: 100%; height: 160px; object-fit: cover; }
.home-hotel-offer-head h3 { margin: 4px 0 6px; color: var(--ink); font-size: 1.25rem; }
.home-hotel-offer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.home-hotel-offer-grid div { padding: 10px 12px; background: #f8f5f1; }
.home-hotel-offer-grid span { display: block; color: #716964; font-size: .64rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.home-hotel-offer-grid strong { display: block; margin-top: 3px; color: var(--ink); font-size: .86rem; }
.home-hotel-offer-grid .is-price strong { color: var(--orange-deep); font-size: 1.25rem; }
.home-hotel-offer-body { padding: 0 22px 22px; }
.home-hotel-offer-body h4 { margin: 16px 0 6px; color: var(--ink); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.home-hotel-offer-body p { margin: 0; color: #514a46; font-size: .8rem; line-height: 1.5; }
.home-hotel-offer-notes { max-height: 150px; overflow-y: auto; white-space: pre-line; }
.home-hotel-warning { margin-top: 12px !important; padding: 10px 12px; border-left: 3px solid #e9b173; color: #7c470c !important; background: #fff8f0; }
.home-hotel-request { display: grid; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #efe8e1; }
.home-hotel-request-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.home-hotel-request label { display: grid; gap: 5px; color: var(--ink); font-size: .72rem; font-weight: 850; }
.home-hotel-request input, .home-hotel-request textarea { min-height: 42px; padding: 8px 10px; border: 1px solid #c7c0b9; border-radius: 4px; font: inherit; font-size: .84rem; font-weight: 500; }
.home-hotel-request .home-hotel-check { display: flex; align-items: flex-start; gap: 8px; font-weight: 600; }
.home-hotel-request .home-hotel-check input { min-height: auto; margin-top: 2px; accent-color: var(--orange); }
.home-hotel-request-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.home-hotel-done { padding: 26px 22px; }
.home-hotel-done h3 { margin: 0 0 8px; color: var(--ink); }
/* A janela vive dentro da secção da pesquisa (z-index próprio): a barra de
   ações do telemóvel e o botão do WhatsApp ficavam por cima dela. */
.home-offer-open .mobile-action-bar, .home-offer-open .whatsapp-float { display: none !important; }

/* ─── Reservar e pagar (escolha do caminho e dados dos passageiros) ───── */

.home-booking-paths { margin-top: 18px; padding-top: 16px; border-top: 1px solid #efe8e1; }
.home-booking-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.home-booking-head h4 { margin: 0 !important; }
.home-booking-test { padding: 3px 8px; border-radius: 99px; color: #7c470c; background: #fff0d9; font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.home-booking-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.home-booking-choice > div { display: grid; align-content: start; gap: 8px; padding: 14px; border: 1px solid #efe8e1; background: #fcfaf7; }
.home-booking-choice > div:first-child { border-color: #f3c89c; background: #fff8f0; }
.home-booking-choice small { color: #5b5651; font-size: .74rem; line-height: 1.45; }
.home-booking-choice .button { width: 100%; }
.home-booking-secondary { min-height: 47px; padding: 10px 16px; border: 1px solid var(--navy); color: var(--navy); background: #fff; font: inherit; font-size: .86rem; font-weight: 850; cursor: pointer; }
.home-booking-secondary:hover, .home-booking-secondary:focus-visible { color: #fff; background: var(--navy); }
.home-booking-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.home-booking-group { display: grid; gap: 10px; }
.home-booking-group > legend { margin-bottom: 8px; padding: 0; color: var(--ink); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.home-booking-form .home-booking-hint { color: #5b5651; font-size: .74rem; }
.home-booking-room { display: grid; gap: 10px; }
.home-booking-room h5 { margin: 4px 0 0; padding: 6px 10px; color: #fff; background: var(--navy); font-size: .72rem; font-weight: 850; }
.home-booking-passenger { padding: 12px 14px !important; border: 1px solid #efe8e1 !important; background: #fcfaf7; }
.home-booking-passenger > legend { padding: 0 6px; color: #a44a00; font-size: .7rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.home-hotel-request select { min-height: 42px; padding: 8px 10px; border: 1px solid #c7c0b9; border-radius: 4px; color: var(--ink); background: #fff; font: inherit; font-size: .84rem; font-weight: 500; }
.home-hotel-request input:focus-visible, .home-hotel-request select:focus-visible, .home-hotel-request textarea:focus-visible { border-color: var(--orange); outline: 3px solid rgba(255, 121, 0, .2); }
.home-hotel-request [aria-invalid="true"] { border-color: #a83629; background: #fff7f5; }
.home-hotel-request-grid .is-wide { grid-column: 1 / -1; }
.home-booking-error { color: #a83629; font-size: .7rem; font-weight: 700; line-height: 1.35; }
.home-hotel-check + .home-booking-error { margin: -6px 0 0 24px; }
.home-booking-conditions { display: grid; gap: 6px; padding: 12px 14px; border-left: 3px solid var(--navy); background: #f8f5f1; }
.home-booking-conditions h5 { margin: 0; color: var(--ink); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.home-booking-conditions .is-strict { color: #a83629; font-weight: 700; }
/* O total e o botão ficam à vista no fundo da janela enquanto se preenche
   (a janela tem 24 px de margem interior; no telemóvel, nenhuma). */
.home-booking-choice .button, .home-booking-pay .button { gap: 8px; }
.home-booking-pay { position: sticky; bottom: -24px; z-index: 2; display: grid; gap: 6px; margin: 4px -22px 0; padding: 14px 22px 16px; border-top: 1px solid #efe8e1; background: #fff; box-shadow: 0 -10px 24px rgba(23, 30, 32, .08); }
.home-booking-pay .home-hotel-status { margin: 0; }
.home-booking-pay .home-hotel-status:empty { display: none; }
.home-booking-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; color: var(--ink) !important; font-size: .9rem !important; font-weight: 800; }
.home-booking-total strong { color: var(--orange-deep); font-size: 1.35rem; letter-spacing: -.03em; }
.home-booking-pay .home-hotel-request-actions { margin-top: 4px; }
.home-booking-alt { color: #716964; font-size: .74rem; }

/* ─── Voo + Hotel: formulário, calendário e voos ─────────────────────── */

.home-trip-form { grid-template-columns: minmax(115px, .7fr) minmax(175px, 1.2fr) minmax(175px, 1fr) minmax(80px, .45fr) minmax(175px, 1fr) minmax(205px, 1fr); }
.home-trip-date { position: relative; display: grid; gap: 7px; min-width: 0; color: var(--ink); font-size: .75rem; font-weight: 850; }
.home-trip-calendar { left: 0; right: auto; width: min(400px, calc(100vw - 56px)); }
.home-trip-calendar-head { display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; gap: 7px; padding-bottom: 11px; border-bottom: 1px solid #eee9e4; }
.home-trip-calendar-head strong { color: var(--ink); font-size: .83rem; text-align: center; text-transform: capitalize; }
.home-trip-calendar-head button { display: grid; width: 34px; height: 32px; padding: 0; border: 1px solid #dfd7cf; border-radius: 4px; color: var(--ink); background: #fff; cursor: pointer; font: inherit; font-size: 1rem; place-items: center; }
.home-trip-calendar-head button:hover:not(:disabled), .home-trip-calendar-head button:focus-visible:not(:disabled) { border-color: var(--orange); color: var(--orange-deep); outline: 0; }
.home-trip-calendar-head button:disabled { opacity: .35; cursor: not-allowed; }
.home-trip-weekdays, .home-trip-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.home-trip-weekdays { margin: 11px 0 5px; color: #867c74; font-size: .62rem; font-weight: 850; text-align: center; }
.home-trip-days { align-content: start; min-height: 222px; }
.home-trip-day { display: grid; min-height: 40px; padding: 3px 1px; border: 0; border-radius: 4px; color: #c5bdb7; background: transparent; font: inherit; font-size: .72rem; font-weight: 600; place-content: center; place-items: center; }
button.home-trip-day { color: #0f6648; background: #dff3e8; cursor: pointer; }
button.home-trip-day strong { font-size: .74rem; line-height: 1; }
button.home-trip-day span { margin-top: 3px; font-size: .5rem; font-weight: 850; line-height: 1; white-space: nowrap; }
button.home-trip-day:hover, button.home-trip-day:focus-visible { color: #0b533a; background: #c9ecd9; outline: 1px solid #21875d; }
button.home-trip-day.is-charter { color: #fff; background: var(--navy); }
button.home-trip-day.is-charter:hover, button.home-trip-day.is-charter:focus-visible { background: #234d5a; outline: 2px solid var(--orange); }
button.home-trip-day.is-selected, button.home-trip-day.is-selected:hover { color: #fff; background: var(--orange); outline: 0; }
.home-flight-travellers-popover .home-trip-calendar-note { min-height: 1.3em; margin: 10px 0 0; color: #716964; font-size: .65rem; font-weight: 600; line-height: 1.45; }

.home-trip-flight { margin-top: 14px; padding: 16px 18px; border: 1px solid var(--line); background: #fff; }
.home-trip-flight h4 { margin: 0 0 10px; color: var(--ink); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.home-trip-flight > .home-hotel-warning { margin: 0 0 12px !important; }
.home-trip-flight-list { display: grid; gap: 10px; }
.home-trip-flight-card { display: grid; gap: 10px; padding: 12px 14px; border: 1px solid #efe8e1; background: #fcfaf7; }
.home-trip-flight-card[hidden] { display: none; }
.home-trip-flight-card.is-compact { margin-top: 6px; padding: 10px 12px; }
.home-trip-flight-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.home-trip-flight-badges strong { margin-right: 4px; color: var(--ink); font-size: .8rem; }
.home-trip-flight-badges span { padding: 3px 8px; border-radius: 99px; color: #45505a; background: #eef2f3; font-size: .64rem; font-weight: 800; }
.home-trip-flight-badges span.is-charter { color: #fff; background: var(--navy); }
.home-trip-legs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.home-trip-leg { display: grid; align-content: start; gap: 4px; }
.home-trip-leg-label { color: #a44a00; font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.home-trip-leg p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: 0; color: #3f3a37; font-size: .78rem; }
.home-trip-leg p strong { color: var(--ink); font-size: .84rem; }
.home-trip-leg p small { color: #a83629; font-size: .66rem; font-weight: 800; }
.home-trip-leg p span { color: #716964; font-size: .7rem; }
.home-trip-leg > small { color: #716964; font-size: .66rem; font-weight: 700; }
.home-trip-rate-flight { display: block; margin-top: 2px; color: #2e5b7b; font-size: .68rem; font-weight: 800; }
.home-trip-far { margin: 0; padding: 8px 10px; border-left: 3px solid #e9b173; color: #7c470c; background: #fff8f0; font-size: .74rem; font-weight: 700; line-height: 1.45; }

/* ─── Voo + Hotel nas Férias e na página do destino ──────────────────── */

.ferias-trip { margin: 6px 0 28px; }
.ferias-trip-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.ferias-trip-head h2 { margin: 0; color: var(--ink); font-size: clamp(1.5rem, 3vw, 2.1rem); letter-spacing: -.04em; }
.ferias-trip-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.ferias-trip-back { padding: 0; border: 0; color: var(--orange-deep); background: none; font: inherit; font-size: .82rem; font-weight: 850; cursor: pointer; }
.ferias-trip-page { color: #5b5651; font-size: .76rem; font-weight: 700; }
.ferias-trip-card, .trip-page-panel { padding: 20px; border: 1px solid var(--line); background: #fff; }
.online-destination-page { display: inline-block; margin-top: 10px; color: #5b5651; font-size: .72rem; font-weight: 700; }
.online-destination-direct button.online-destination-cta { width: 100%; padding: 0; border: 0; background: none; font: inherit; font-size: .78rem; font-weight: 850; text-align: left; cursor: pointer; }
/* O voo + hotel em direto na lista de opções de um destino: um botão com o
   mesmo aspeto das linhas dos programas (<a class="online-program-option">). */
button.online-program-option { width: 100%; border: 0; border-top: 1px solid #e5ded8; background: none; font: inherit; color: var(--ink); text-align: left; cursor: pointer; }

.trip-page { padding: 20px 0 48px; background: var(--sand, #f7f2ec); }
.trip-page-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); margin-bottom: 18px; overflow: hidden; color: #fff; background: var(--navy); }
.trip-page-photo { min-height: 260px; background: linear-gradient(135deg, #2c5266, #152f3c); }
.trip-page-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.trip-page-intro { display: grid; align-content: center; gap: 10px; padding: 30px; }
.trip-page-intro .eyebrow { color: #ffb36b; }
.trip-page-intro h1 { margin: 0; font-size: clamp(2.2rem, 5vw, 3.4rem); letter-spacing: -.05em; line-height: 1; }
.trip-page-intro p:last-child { margin: 0; color: rgba(255, 255, 255, .85); font-size: .9rem; line-height: 1.55; }
.trip-page-closed { margin: 0; color: #514a46; font-size: .9rem; }
.trip-page-closed:empty { display: none; }

@media (max-width: 760px) {
  .trip-page-hero { grid-template-columns: minmax(0, 1fr); }
  .trip-page-photo { min-height: 190px; }
  .trip-page-intro { padding: 22px 18px; }
  .ferias-trip-card, .trip-page-panel { padding: 14px; }
}

@media (max-width: 1080px) {
  .home-hotel-form, .home-trip-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-hotel-place { grid-column: 1 / -1; }
  .home-hotel-form .integrated-search-submit, .home-trip-form .integrated-search-submit { grid-column: auto; }
  .home-hotel-layout { grid-template-columns: minmax(0, 1fr); }
  .home-hotel-filters { position: static; }
  .home-hotel-filters-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px; border: 1px solid #d7cec6; border-radius: 4px; color: var(--ink); background: #fff; font: inherit; font-size: .74rem; font-weight: 800; cursor: pointer; }
  .home-hotel-filters:not(.is-open) { display: none; }
  .home-hotel-filters.is-open { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
}

@media (max-width: 760px) {
  .home-trip-legs { grid-template-columns: minmax(0, 1fr); }
  .home-hotel-card { grid-template-columns: minmax(0, 1fr); }
  .home-hotel-photo { height: 180px; }
  .home-hotel-price { justify-items: start; min-width: 0; border-top: 1px solid #efe8e1; border-left: 0; text-align: left; }
  .home-hotel-price button { width: 100%; }
  .home-hotel-rate { grid-template-columns: minmax(0, 1fr) auto; }
  .home-hotel-rate > span:nth-child(2) { grid-column: 1 / -1; order: 3; }
  .home-hotel-skeleton { grid-template-columns: 1fr; height: auto; }
  .home-hotel-skeleton div { height: 60px; }
  .home-hotel-skeleton div:first-child { height: 160px; }
  .home-hotel-offer { padding: 0; }
  .home-hotel-offer-card { margin: 0; min-height: 100vh; }
  .home-hotel-offer-head { grid-template-columns: minmax(0, 1fr); }
  .home-hotel-offer-grid, .home-hotel-request-grid { grid-template-columns: minmax(0, 1fr); }
  .home-booking-choice { grid-template-columns: minmax(0, 1fr); }
  .home-booking-pay { bottom: 0; gap: 4px; padding: 10px 22px 12px; }
  .home-booking-pay .home-booking-secure { font-size: .72rem !important; line-height: 1.35 !important; }
  .home-booking-pay .home-hotel-request-actions .button { width: 100%; min-height: 44px; }
}

.home-hotel-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.home-hotel-more-rooms { margin-top: 10px; padding: 0; border: 0; color: #a44a00; background: none; font: inherit; font-size: .76rem; font-weight: 850; text-decoration: underline; cursor: pointer; }
.home-hotel-choose:disabled { color: #8a827b; background: #ece6df; cursor: default; }

@media (max-width: 500px) {
  .home-hotel-form, .home-trip-form { grid-template-columns: minmax(0, 1fr); }
}

/* ─── Reserva confirmada (reserva-confirmada.html) ───────────────────── */

.booking-status-page { padding: 28px 0 56px; background: var(--sand, #f7f2ec); }
.booking-status-card { width: min(760px, 100%); margin: 0 auto; padding: clamp(22px, 5vw, 40px); border-top: 4px solid var(--orange); background: #fff; box-shadow: 0 18px 40px rgba(23, 30, 32, .08); }
.booking-status-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.booking-status-top .home-hotel-kicker { margin: 0; }
.booking-status-card h1 { margin: 10px 0 0; color: var(--ink); font-size: clamp(1.7rem, 4.5vw, 2.5rem); letter-spacing: -.04em; line-height: 1.08; }
.booking-status-text { margin: 12px 0 0; color: #514a46; font-size: .95rem; line-height: 1.6; }
.booking-status-box { display: flex; align-items: flex-start; gap: 12px; margin-top: 22px; padding: 14px 16px; border-left: 4px solid #2e5b7b; background: #eef4f7; }
.booking-status-box strong { display: block; color: var(--ink); font-size: .9rem; }
.booking-status-box span { display: block; margin-top: 3px; color: #5b5651; font-size: .82rem; line-height: 1.45; }
.booking-status-box span:empty { display: none; }
.booking-status-box::before { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; color: #fff; background: #2e5b7b; content: "i"; font-size: .78rem; font-weight: 900; line-height: 22px; text-align: center; }
.booking-status-box[data-tone="wait"]::before { box-sizing: border-box; border: 3px solid #bfd3de; border-top-color: #2e5b7b; background: transparent; content: ""; animation: home-hotel-spin .9s linear infinite; }
.booking-status-box[data-tone="ok"] { border-left-color: #17794f; background: #edf8f2; }
.booking-status-box[data-tone="ok"]::before { background: #17794f; content: "✓"; }
.booking-status-box[data-tone="stop"] { border-left-color: #b86a1f; background: #fff8f0; }
.booking-status-box[data-tone="stop"]::before { background: #b86a1f; content: "!"; }
.booking-status-refs { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 20px 0 0; }
.booking-status-refs div { padding: 12px 14px; background: #f8f5f1; }
.booking-status-refs dt { color: #716964; font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.booking-status-refs dd { margin: 4px 0 0; color: var(--ink); font-size: 1.05rem; font-weight: 850; letter-spacing: .02em; overflow-wrap: anywhere; }
.booking-status-keep { margin: 12px 0 0; color: #17794f; font-size: .85rem; font-weight: 700; }
.booking-status-summary { margin-top: 22px; }
.booking-status-summary h2 { margin: 0 0 8px; color: var(--ink); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.booking-status-summary dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 16px; margin: 0; font-size: .86rem; }
.booking-status-summary dt { color: #716964; font-weight: 700; }
.booking-status-summary dd { margin: 0; color: var(--ink); font-weight: 600; overflow-wrap: anywhere; }
.booking-status-note { margin: 14px 0 0; color: #716964; font-size: .78rem; }
.booking-status-note:empty { display: none; }
.booking-status-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 26px; }
.booking-status-help { margin: 24px 0 0; padding-top: 16px; border-top: 1px solid #efe8e1; color: #716964; font-size: .8rem; line-height: 1.55; }

@media (max-width: 560px) {
  .booking-status-page { padding: 16px 0 36px; }
  .booking-status-summary dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .booking-status-summary dd { margin-bottom: 8px; }
  .booking-status-actions { flex-direction: column; align-items: stretch; }
}
