/**
 * Estilos publicos dos componentes do pacote (FASE 7-8).
 *
 * Estrutura funcional + responsividade basica, conforme documento 09,
 * FASE 7/8 ("nao precisa fazer o redesign final perfeito nesta etapa").
 * O refinamento visual completo pertence a FASE 11.
 */

/**
 * Grade de cards: 3 colunas no desktop, reduzindo em tablet/mobile
 * (documento: Alpha Pacotes Grid, secao "GRID"). Colunas explicitas
 * (nao auto-fill) para os cards dividirem a largura igualmente e nao
 * sobrar espaco vazio dentro do widget quando ha poucos itens.
 */
.alpha-home-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px 24px;
	margin: 24px 0;
	/* stretch: os cards da mesma linha assumem a altura do maior (v1.22.3). */
	align-items: stretch;
}

@media (max-width: 1024px) {
	.alpha-home-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.alpha-home-grid {
		grid-template-columns: 1fr;
	}
}

/**
 * Alpha Pacotes Grid - card do pacote.
 *
 * Mesma logica visual/hierarquia do card do Alpha Roteiros Grid
 * (.alpha-roteiro-card__* em templates/package-card-roteiro.php):
 * imagem 1:1, caixa de duracao/data com icone, titulo serifado,
 * "Visitando:" agrupado por pais, divisor, CTA "SAIBA MAIS" com
 * circulo claro + seta. Classes proprias (.alpha-grid-card__*) -
 * continua um componente distinto, so a apresentacao foi realinhada.
 * Mesmo pipeline de dados (Alpha_Turismo_Package::get()) - nenhum dado
 * foi removido do banco, apenas deixou de ser exibido aqui (numeracao,
 * regiao/tipo de saida, descricao curta, avaliacoes, disponibilidade
 * "sob consulta" e o CTA antigo "Consultar viagem").
 */

.alpha-grid-card {
	background: #fff;
	font-family: "DM Sans", Arial, sans-serif;
	/* Coluna flexivel: o rodape (divisor + CTA) e empurrado para o fim e
	   todos os cards da linha da grade ficam com a mesma altura (v1.22.3). */
	display: flex;
	flex-direction: column;
	height: 100%;
}

.alpha-grid-card__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	color: inherit;
	text-decoration: none;
}

.alpha-grid-card__media {
	flex: 0 0 auto;
	position: relative;
	aspect-ratio: 1 / 1;
	width: 100%;
	background: #f0f0f1;
	overflow: hidden;
}

/**
 * O Elementor (e a maioria dos temas) aplica um reset generico de
 * imagem responsiva do tipo ".elementor-widget-container img {
 * height: auto; max-width: 100% }" - especificidade (0,1,1), maior
 * que a de ".alpha-grid-card__image" sozinha (0,1,0). Isso faz a
 * imagem assumir a altura natural dela (bem menor que a caixa
 * quadrada) e sobra o fundo cinza de .alpha-grid-card__media por
 * baixo. Forcamos aqui com !important e com um seletor mais
 * especifico (a propria classe + elemento) para garantir que a
 * imagem sempre preencha 100% da area de midia, independente do CSS
 * do tema/Elementor. Quadrado 1:1 sempre (nunca distorcido): o
 * container define o aspect-ratio acima, a imagem preenche via
 * object-fit: cover + object-position: center - fotos 4:3, 16:9 ou
 * verticais sao enquadradas/cortadas, nunca esticadas.
 */
.alpha-grid-card__media img.alpha-grid-card__image {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover;
	object-position: center;
	display: block;
	position: absolute;
	inset: 0;
	border-radius: 0;
}

.alpha-grid-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 20px 4px 0;
}

.alpha-grid-card__dates {
	align-self: flex-start;
}

/* Rodape: empurrado para o fim do card; padding-top e o espaco minimo
   entre o conteudo e o divisor (antes era a margem do divisor, que nao
   colapsa em flex). */
.alpha-grid-card__footer {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin-top: auto;
	padding-top: 24px;
}

/**
 * Bloco de duracao/data: caixa com borda e cantos arredondados, duas
 * linhas (duracao com icone de calendario, depois o intervalo de
 * datas) - mesmo padrao visual de .alpha-roteiro-card__dates. Os
 * valores vem de $dates (Alpha_Turismo_Package::get()), nunca
 * hardcoded.
 */
.alpha-grid-card__dates {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	width: fit-content;
	margin: 0 0 18px;
	padding: 10px 16px;
	border: 1px solid rgba(16, 48, 53, 0.25);
	border-radius: 10px;
}

.alpha-grid-card__duration {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #1b1b1b;
}

.alpha-grid-card__dates-icon {
	flex-shrink: 0;
	color: #103035;
}

.alpha-grid-card__period {
	display: block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.03em;
	color: rgba(27, 27, 27, 0.65);
}

.alpha-grid-card__title {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.25;
	margin: 0 0 8px;
	color: #0c3035;
}

.alpha-grid-card__visiting {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.4;
	color: rgba(29, 29, 29, 0.69);
	margin: 0;
}

.alpha-grid-card__visiting strong {
	font-weight: 700;
}

/**
 * Ajuste final de espacamento (Alpha Pacotes Grid, exclusivo desta
 * classe - o Alpha Roteiros Grid nao e afetado, ".alpha-roteiro-card__divider"
 * continua com seu proprio margin, inalterado). margin-top cria o
 * espaco entre "Visitando" e o divisor sem duplicar espacamento: como
 * ".alpha-grid-card__visiting" (paragrafo, bloco) e este <hr> (bloco)
 * sao irmaos adjacentes no fluxo normal, as margens colapsam para o
 * maior valor entre os dois (nunca somam) - por isso o paragrafo
 * "Visitando" em si nao precisou ser alterado. margin-bottom cria o
 * espaco entre o divisor e o CTA "Saiba mais" logo abaixo.
 */
/*
 * Seletor com 2 classes (0,2,0): o Elementor define ".elementor hr
 * { margin: 0 }" (0,1,1), que vencia a regra de 1 classe e deixava o
 * divisor colado no CTA. Mesmo padrao nos dois cards.
 */
.alpha-grid-card .alpha-grid-card__divider {
	border: none;
	border-top: 1px solid rgba(0, 0, 0, 0.28);
	align-self: stretch;
	width: 100%;
	margin: 0 0 28px;
}

.alpha-grid-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 6px 6px 6px 22px;
	border-radius: 999px;
	background: #128cc2;
	color: #fff;
	transition: background-color 0.2s ease;
}

/* Hover/foco: o card inteiro e um link, entao o escurecimento sutil do
   botao acontece ao passar o mouse (ou focar) em qualquer parte dele. */
.alpha-grid-card__link:hover .alpha-grid-card__cta,
.alpha-grid-card__link:focus-visible .alpha-grid-card__cta {
	background: #0e6f9c;
}

.alpha-grid-card__cta-text {
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	white-space: nowrap;
}

.alpha-grid-card__cta-icon {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #ffffff;
	color: #012d41;
	display: flex;
	align-items: center;
	justify-content: center;
}

.alpha-hero {
	position: relative;
	min-height: 360px;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: flex-end;
	color: #fff;
	border-radius: 8px;
	overflow: hidden;
}

.alpha-hero__overlay {
	background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%);
	width: 100%;
	padding: 32px 24px;
}

.alpha-hero__title {
	font-size: 32px;
	margin: 0 0 8px;
}

.alpha-hero__destinations,
.alpha-hero__dates {
	margin: 0 0 4px;
	font-size: 15px;
}

.alpha-summary__list,
.alpha-values__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
	margin: 16px 0;
}

.alpha-summary__item dt,
.alpha-values__item dt {
	font-size: 13px;
	color: #666;
	margin: 0 0 4px;
}

.alpha-summary__item dd,
.alpha-values__item dd {
	font-size: 16px;
	font-weight: 600;
	margin: 0;
}

.alpha-itinerary__days {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 16px 0;
}

.alpha-itinerary__day {
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	padding: 16px;
}

.alpha-itinerary__day-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}

.alpha-itinerary__day-number {
	font-weight: 700;
	letter-spacing: 0.05em;
}

.alpha-itinerary__day-images {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.alpha-itinerary__day-images img {
	width: 120px;
	height: 90px;
	object-fit: cover;
	border-radius: 4px;
}

.alpha-included__list,
.alpha-not-included__list,
.alpha-destinations__list {
	margin: 12px 0;
	padding-left: 20px;
}

.alpha-hotels__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
	margin: 16px 0;
}

.alpha-hotels__item {
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	padding: 12px;
}

.alpha-flights__table-wrap {
	overflow-x: auto;
	margin: 16px 0;
}

.alpha-flights__table {
	width: 100%;
	border-collapse: collapse;
	min-width: 640px;
}

.alpha-flights__table th,
.alpha-flights__table td {
	text-align: left;
	padding: 8px 12px;
	border-bottom: 1px solid #e2e2e2;
	font-size: 14px;
}

.alpha-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 8px;
	margin: 16px 0;
}

.alpha-gallery__item img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}

.alpha-pdf__button,
.alpha-whatsapp,
.alpha-cta {
	display: inline-block;
	padding: 12px 24px;
	border-radius: 999px;
	background: #128c7e;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	margin: 8px 8px 8px 0;
}

.alpha-cta {
	background: #c0392b;
}

.alpha-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 16px;
}

.alpha-tabs__nav-item {
	background: none;
	border: none;
	padding: 10px 16px;
	cursor: pointer;
	font-weight: 600;
	color: #666;
	border-bottom: 2px solid transparent;
}

.alpha-tabs__nav-item.is-active {
	color: #c0392b;
	border-bottom-color: #c0392b;
}

.alpha-tabs__panel {
	display: none;
}

.alpha-tabs__panel.is-active {
	display: block;
}

.alpha-single-package {
	max-width: 1080px;
	margin: 0 auto;
	padding: 24px 16px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

@media (max-width: 782px) {
	.alpha-hero {
		min-height: 260px;
	}

	.alpha-hero__title {
		font-size: 24px;
	}

	.alpha-summary__list,
	.alpha-values__list,
	.alpha-hotels__list {
		grid-template-columns: 1fr;
	}
}

/**
 * Alpha Pacotes Grid - wrapper, filtros e estados (grade completa com
 * filtro por região via AJAX). O visual do card em si está em
 * .alpha-grid-card* (ver bloco acima).
 */

.alpha-pacotes-grid__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	margin: 0 0 28px;
}

.alpha-pacotes-grid__filter {
	appearance: none;
	background: transparent;
	border: 1px solid #d8d8d8;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #4a4a4a;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.alpha-pacotes-grid__filter:hover {
	border-color: #1a1a1a;
}

.alpha-pacotes-grid__filter.is-active {
	background: #1a1a1a;
	border-color: #1a1a1a;
	color: #fff;
}

.alpha-pacotes-grid__items {
	transition: opacity 0.15s ease;
}

.alpha-pacotes-grid__items.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

.alpha-pacotes-grid__empty {
	grid-column: 1 / -1;
	text-align: center;
	color: #7a7a7a;
	padding: 40px 0;
}

@media (max-width: 782px) {
	.alpha-pacotes-grid__filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
	}

	.alpha-pacotes-grid__filter {
		flex: 0 0 auto;
	}
}

/**
 * Alpha Roteiros Grid - secao "Encontre um roteiro para chamar de seu"
 * (widget alpha_roteiro_grid). Componente visualmente distinto do
 * Alpha Pacotes Grid (.alpha-grid-card*/.alpha-pacotes-grid* acima):
 * classes proprias, nunca reaproveitadas entre os dois. Valores
 * reproduzem a linguagem visual e as proporcoes observadas no card
 * construido manualmente no Elementor #3870 (imagem quadrada, titulo
 * Playfair Display ~30px, texto DM Sans, CTA pill escuro com seta em
 * circulo claro).
 */

.alpha-roteiros-grid__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	margin: 0 0 20px;
}

.alpha-roteiros-grid__filter {
	appearance: none;
	background: transparent;
	border: 1px solid #d8d8d8;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #4a4a4a;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.alpha-roteiros-grid__filter:hover {
	border-color: #103035;
}

.alpha-roteiros-grid__filter.is-active {
	background: #103035;
	border-color: #103035;
	color: #fff;
}

.alpha-roteiros-grid__count {
	margin: 0 0 24px;
	font-family: "DM Sans", Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #4a4a4a;
}

.alpha-roteiros-grid__items {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 24px;
	transition: opacity 0.15s ease;
}

.alpha-roteiros-grid__items.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

.alpha-roteiros-grid__empty {
	grid-column: 1 / -1;
	text-align: center;
	color: #7a7a7a;
	padding: 40px 0;
}

@media (max-width: 1024px) {
	.alpha-roteiros-grid__items {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.alpha-roteiros-grid__items {
		grid-template-columns: 1fr;
	}

	.alpha-roteiros-grid__filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
	}

	.alpha-roteiros-grid__filter {
		flex: 0 0 auto;
	}
}

/**
 * Card do Alpha Roteiros Grid. Largura definida pela grade acima (nunca
 * fixa em px), imagem quadrada via aspect-ratio (o card manual de
 * referencia usava 397x397 fixo - aqui o quadrado acompanha a largura
 * real da coluna da grade, responsiva).
 */

.alpha-roteiro-card {
	background: #fff;
	font-family: "DM Sans", Arial, sans-serif;
	/* Coluna flexivel: o rodape (divisor + CTA) e empurrado para o fim e
	   todos os cards da linha da grade ficam com a mesma altura (v1.22.3). */
	display: flex;
	flex-direction: column;
	height: 100%;
}

.alpha-roteiro-card__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	color: inherit;
	text-decoration: none;
}

.alpha-roteiro-card__media {
	flex: 0 0 auto;
	position: relative;
	aspect-ratio: 1 / 1;
	width: 100%;
	background: #f0f0f1;
	overflow: hidden;
}

/**
 * Mesmo problema de especificidade do Elementor/tema descrito em
 * .alpha-grid-card__media img.alpha-grid-card__image acima - reforcado
 * aqui com !important e selecionando o elemento pela propria classe.
 * Quadrado 1:1 sempre (nunca distorcido): o container define o
 * aspect-ratio acima, a imagem preenche via object-fit: cover +
 * object-position: center - roteiros com foto 4:3, 16:9 ou vertical
 * sao enquadrados/cortados, nunca esticados.
 */
.alpha-roteiro-card__media img.alpha-roteiro-card__image {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover;
	object-position: center;
	display: block;
	position: absolute;
	inset: 0;
	border-radius: 0;
}

.alpha-roteiro-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 20px 4px 0;
}

.alpha-roteiro-card__dates {
	align-self: flex-start;
}

/* Rodape: empurrado para o fim do card; padding-top e o espaco minimo
   entre o conteudo e o divisor (antes era a margem do divisor, que nao
   colapsa em flex). */
.alpha-roteiro-card__footer {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin-top: auto;
	padding-top: 24px;
}

/**
 * Bloco de duracao/data: caixa com borda e cantos arredondados, duas
 * linhas (duracao com icone de calendario, depois o intervalo de
 * datas) - substitui o layout anterior em linha unica separada por
 * "·". Os valores continuam vindo de $dates (Alpha_Turismo_Package::get()),
 * nunca hardcoded.
 */
.alpha-roteiro-card__dates {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	width: fit-content;
	margin: 0 0 18px;
	padding: 10px 16px;
	border: 1px solid rgba(16, 48, 53, 0.25);
	border-radius: 10px;
}

.alpha-roteiro-card__duration {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #1b1b1b;
}

.alpha-roteiro-card__dates-icon {
	flex-shrink: 0;
	color: #103035;
}

.alpha-roteiro-card__period {
	display: block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.03em;
	color: rgba(27, 27, 27, 0.65);
}

.alpha-roteiro-card__title {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 12px;
	color: #103035;
}

.alpha-roteiro-card__visiting {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.4;
	color: rgba(29, 29, 29, 0.69);
	margin: 0;
}

.alpha-roteiro-card__visiting strong {
	font-weight: 700;
}

.alpha-roteiro-card .alpha-roteiro-card__divider {
	border: none;
	border-top: 1px solid rgba(0, 0, 0, 0.28);
	align-self: stretch;
	width: 100%;
	margin: 0 0 28px;
}

.alpha-roteiro-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 6px 6px 6px 22px;
	border-radius: 999px;
	background: #128cc2;
	color: #fff;
	transition: background-color 0.2s ease;
}

/* Hover/foco: o card inteiro e um link, entao o escurecimento sutil do
   botao acontece ao passar o mouse (ou focar) em qualquer parte dele. */
.alpha-roteiro-card__link:hover .alpha-roteiro-card__cta,
.alpha-roteiro-card__link:focus-visible .alpha-roteiro-card__cta {
	background: #0e6f9c;
}

.alpha-roteiro-card__cta-text {
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	white-space: nowrap;
}

.alpha-roteiro-card__cta-icon {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #ffffff;
	color: #012d41;
	display: flex;
	align-items: center;
	justify-content: center;
}

/**
 * Secao "Roteiro + Hoteis + Valores" da Single (v1.22.0).
 *
 * Escopada em .alpha-journey (classe do container Elementor da Single),
 * para nao alterar o visual dos mesmos componentes usados em outros
 * contextos (abas, shortcodes). Tokens herdados da identidade da Single:
 * Playfair Display (titulos), DM Sans (texto), #012d41 (titulos),
 * #09272d / #17383b (texto), #758084 (rotulos), #128cc2 (destaque).
 */

.alpha-journey,
.e-con.alpha-journey,
.elementor .e-con.alpha-journey {
	--aj-navy: #012d41;
	--aj-text: #17383b;
	--aj-muted: #758084;
	--aj-accent: #128cc2;
	--aj-line: #d6e2e6;
	--aj-soft: #f3f8fa;
	--aj-serif: "Playfair Display", serif;
	--aj-sans: "DM Sans", sans-serif;
	width: 100%;
	max-width: 1330px;
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
	font-family: var(--aj-sans);
	color: var(--aj-text);
}

@media (max-width: 1362px) {
	.alpha-journey,
	.e-con.alpha-journey,
	.elementor .e-con.alpha-journey {
		padding: 0 16px;
	}
}

.alpha-journey *,
.alpha-journey *::before,
.alpha-journey *::after {
	box-sizing: border-box;
}

.alpha-journey .alpha-itinerary,
.alpha-journey .alpha-hotels,
.alpha-journey .alpha-values {
	padding: 56px 0 8px;
}

.alpha-journey .alpha-itinerary__title,
.alpha-journey .alpha-hotels__title,
.alpha-journey .alpha-values__title {
	font-family: var(--aj-serif);
	font-size: 44px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.04em;
	color: var(--aj-navy);
	margin: 0 0 36px;
}

/* ---------- Roteiro (accordion v1.24.0) ---------- */

.alpha-journey .alpha-itinerary__days {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--aj-line);
}

.alpha-journey .alpha-itinerary__day {
	margin: 0;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--aj-line);
	border-radius: 0;
	background: transparent;
}

.alpha-journey .alpha-itinerary__day-head {
	margin: 0;
	padding: 0;
	font: inherit;
}

.alpha-journey .alpha-itinerary__toggle {
	display: flex;
	align-items: center;
	gap: 28px;
	width: 100%;
	min-height: 64px;
	margin: 0;
	padding: 26px 4px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
	font: inherit;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color 0.2s ease;
}

.alpha-journey span.alpha-itinerary__toggle {
	cursor: default;
}

/* v1.27.2: o tema aplica white-space: nowrap em <button>; com dias agora
   expansiveis, titulos longos estouravam a largura no mobile. */
.alpha-journey button.alpha-itinerary__toggle {
	white-space: normal;
}

.alpha-journey button.alpha-itinerary__toggle:hover,
.alpha-journey button.alpha-itinerary__toggle:focus {
	background: transparent;
	color: inherit;
}

.alpha-journey button.alpha-itinerary__toggle:focus-visible {
	outline: 2px solid var(--aj-accent);
	outline-offset: 2px;
}

.alpha-journey .alpha-itinerary__day-number {
	flex: 0 0 auto;
	min-width: 64px;
	font-family: var(--aj-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--aj-accent);
}

.alpha-journey .alpha-itinerary__day-heading {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.alpha-journey .alpha-itinerary__day-title {
	font-family: var(--aj-serif);
	font-size: 26px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--aj-navy);
	margin: 0;
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-itinerary__day-date {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--aj-muted);
}

.alpha-journey .alpha-itinerary__icon {
	position: relative;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
}

.alpha-journey .alpha-itinerary__icon::before,
.alpha-journey .alpha-itinerary__icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 16px;
	height: 1.5px;
	margin: -0.75px 0 0 -8px;
	background: var(--aj-navy);
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.alpha-journey .alpha-itinerary__icon::after {
	transform: rotate(90deg);
}

.alpha-journey .alpha-itinerary__day.is-open .alpha-itinerary__icon::after {
	transform: rotate(0deg);
	opacity: 0;
}

.alpha-journey .alpha-itinerary__panel {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows 0.35s ease, visibility 0s linear 0.35s;
}

.alpha-journey .alpha-itinerary__day.is-open .alpha-itinerary__panel {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows 0.35s ease, visibility 0s;
}

.alpha-journey .alpha-itinerary__panel-inner {
	min-height: 0;
	overflow: hidden;
}

.alpha-journey .alpha-itinerary__panel-body {
	padding: 0 4px 32px 96px;
}

.alpha-journey .alpha-itinerary__day-description {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.75;
	color: var(--aj-text);
	max-width: 760px;
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-itinerary__day-description > :first-child {
	margin-top: 0;
}

.alpha-journey .alpha-itinerary__day-description > :last-child {
	margin-bottom: 0;
}

.alpha-journey .alpha-itinerary__day-meals {
	margin: 18px 0 0;
	font-size: 14px;
	color: var(--aj-muted);
}

.alpha-journey .alpha-itinerary__day-meals-label {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-right: 8px;
}

.alpha-journey .alpha-itinerary__day-images {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 12px;
	margin-top: 18px;
	max-width: 760px;
}

.alpha-journey .alpha-itinerary__day-images img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 8px;
}

@media (prefers-reduced-motion: reduce) {
	.alpha-journey .alpha-itinerary__panel,
	.alpha-journey .alpha-itinerary__icon::before,
	.alpha-journey .alpha-itinerary__icon::after {
		transition: none;
	}
}

/* ---------- Hoteis ---------- */

.alpha-journey .alpha-hotels__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
	margin: 0;
}

.alpha-journey .alpha-hotels__item {
	border: 1px solid var(--aj-line);
	border-radius: 16px;
	padding: 24px;
	background: #fff;
}

.alpha-journey .alpha-hotels__city {
	margin: 0 0 8px;
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aj-muted);
}

.alpha-journey .alpha-hotels__name {
	font-family: var(--aj-serif);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.3;
	color: var(--aj-navy);
	margin: 0 0 8px;
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-hotels__meta {
	margin: 0;
	font-size: 14px;
	color: var(--aj-accent);
}

.alpha-journey .alpha-hotels__note {
	margin: 10px 0 0;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--aj-text);
}

/* ---------- Valores (v1.24.0) ---------- */

.alpha-journey .alpha-values {
	padding-bottom: 72px;
}

.alpha-journey .alpha-values__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin: 0 0 24px;
}

.alpha-journey .alpha-values__row > :only-child {
	grid-column: 1 / -1;
}

.alpha-journey .alpha-values__card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 36px;
	background: var(--aj-soft);
	border-radius: 16px;
}

.alpha-journey .alpha-values__card--price {
	background: var(--aj-navy);
	color: #fff;
}

.alpha-journey .alpha-values__eyebrow {
	margin: 0 0 20px;
	font-family: var(--aj-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aj-accent);
}

.alpha-journey .alpha-values__card--price .alpha-values__eyebrow {
	color: rgba(255, 255, 255, 0.7);
}

.alpha-journey .alpha-values__price-label {
	display: block;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.75);
	margin-bottom: 4px;
}

.alpha-journey .alpha-values__price {
	display: block;
	font-family: var(--aj-serif);
	font-size: 56px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.03em;
	color: #fff;
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-values__price-caption {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.75);
}

.alpha-journey .alpha-values__extras {
	margin: 28px 0 0;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.alpha-journey .alpha-values__card--price .alpha-values__eyebrow + .alpha-values__extras {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.alpha-journey .alpha-values__extra {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
}

.alpha-journey .alpha-values__extra dt {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.75);
}

.alpha-journey .alpha-values__extra dd {
	margin: 0;
	font-family: var(--aj-serif);
	font-size: 22px;
	font-weight: 600;
	color: #fff;
	text-align: right;
}

.alpha-journey .alpha-values__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.alpha-journey .alpha-values__step {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	margin: 0;
	padding: 16px 0;
	border-top: 1px solid var(--aj-line);
}

.alpha-journey .alpha-values__step:first-child {
	border-top: 0;
	padding-top: 0;
}

.alpha-journey .alpha-values__step-number {
	flex: 0 0 auto;
	min-width: 28px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	color: var(--aj-accent);
	padding-top: 6px;
}

.alpha-journey .alpha-values__step-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.alpha-journey .alpha-values__step-label {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aj-muted);
}

.alpha-journey .alpha-values__step-big {
	font-family: var(--aj-serif);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--aj-navy);
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-values__step-small {
	font-size: 14px;
	color: var(--aj-muted);
}

.alpha-journey .alpha-values__methods {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--aj-line);
}

.alpha-journey .alpha-values__card--payment .alpha-values__eyebrow + .alpha-values__methods {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.alpha-journey .alpha-values__methods h4 {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aj-muted);
}

.alpha-journey .alpha-values__methods div,
.alpha-journey .alpha-values__text {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--aj-text);
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-values__methods p,
.alpha-journey .alpha-values__text p {
	margin: 0 0 10px;
}

.alpha-journey .alpha-values__methods p:last-child,
.alpha-journey .alpha-values__text p:last-child {
	margin-bottom: 0;
}

.alpha-journey .alpha-values__origins {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.alpha-journey .alpha-values__origins li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 16px;
	margin: 0;
	padding: 14px 0;
	border-top: 1px solid var(--aj-line);
}

.alpha-journey .alpha-values__origins li:first-child {
	border-top: 0;
	padding-top: 0;
}

.alpha-journey .alpha-values__origin-city {
	font-family: var(--aj-serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--aj-navy);
	overflow-wrap: anywhere;
}

.alpha-journey .alpha-values__origin-adjust {
	font-size: 14px;
	color: var(--aj-accent);
}

.alpha-journey .alpha-values__origin-note {
	flex-basis: 100%;
	font-size: 13px;
	font-weight: 300;
	color: var(--aj-muted);
}

@media (max-width: 782px) {
	.alpha-journey .alpha-itinerary,
	.alpha-journey .alpha-hotels,
	.alpha-journey .alpha-values {
		padding-top: 40px;
	}

	.alpha-journey .alpha-itinerary__title,
	.alpha-journey .alpha-hotels__title,
	.alpha-journey .alpha-values__title {
		font-size: 32px;
		margin-bottom: 28px;
	}

	.alpha-journey .alpha-itinerary__toggle {
		gap: 14px;
		min-height: 56px;
		padding: 20px 0;
		align-items: flex-start;
	}

	.alpha-journey .alpha-itinerary__day-number {
		min-width: 0;
		padding-top: 5px;
		font-size: 11px;
	}

	.alpha-journey .alpha-itinerary__day-title {
		font-size: 20px;
	}

	.alpha-journey .alpha-itinerary__icon {
		margin-top: 3px;
	}

	.alpha-journey .alpha-itinerary__panel-body {
		padding: 0 0 24px;
	}

	.alpha-journey .alpha-itinerary__day-images {
		grid-template-columns: repeat(2, 1fr);
	}

	.alpha-journey .alpha-hotels__list {
		grid-template-columns: 1fr;
	}

	.alpha-journey .alpha-hotels__item {
		padding: 20px;
	}

	.alpha-journey .alpha-values__row {
		grid-template-columns: 1fr;
		gap: 16px;
		margin-bottom: 16px;
	}

	.alpha-journey .alpha-values__card {
		padding: 24px 20px;
	}

	.alpha-journey .alpha-values__price {
		font-size: 42px;
	}

	.alpha-journey .alpha-values__step-big {
		font-size: 24px;
	}
}

/* ---------- Pagina de Pacotes: estado filtrado (v1.26.0) ----------
 * A secao "Em destaque" (container Elementor com a classe
 * .alpha-pacotes-featured) so existe no estado inicial. Enquanto houver
 * qualquer filtro ativo, o JS da listagem liga .alpha-pacotes-is-filtered
 * no <body> e a secao fica escondida (apenas visibilidade; o conteudo
 * do Elementor nao e alterado). */
.alpha-pacotes-is-filtered .alpha-pacotes-featured {
	display: none !important;
}
