:root {
	/* Brand tokens reconciled against the real site (asktravelturismo)   */
	/* CSS, 2026-07-03: --e-global-color-primary:#FF5346 (post-7.css),    */
	/* navy panel bg #172540 (post-690.css header) / #0D1A2E (post-759.css*/
	/* footer, post-15.css accordion), teal #00C9A7 (post-759.css social),*/
	/* accent hover #C73D28 (post-690.css button-536395f :hover), body    */
	/* text font "Montserrat" / heading font "Poppins" (post-7.css        */
	/* --e-global-typography-text/primary-font-family). primary-light,    */
	/* bg-light/soft, border, muted, text, radius and shadow have no      */
	/* direct equivalent on the marketing site (it's a dark/navy page,    */
	/* these are light-UI tokens for the plugin's own form screens) so    */
	/* they're left as originally chosen, not "corrected".                */
	--agencia-primary: #172540;
	--agencia-primary-dark: #0D1A2E;
	--agencia-primary-light: #2a4a7a;
	--agencia-accent: #FF5346;
	--agencia-accent-dark: #C73D28;
	--agencia-teal: #00C9A7;
	--agencia-bg-light: #F5F8FF;
	--agencia-bg-soft: #e5eaf4;
	--agencia-accent-soft: #FDE7E2;
	--agencia-border: #c3d3e8;
	--agencia-muted: #6b7280;
	--agencia-text: #374151;
	--agencia-radius: 12px;
	--agencia-shadow: 0 10px 30px rgba(15, 26, 46, 0.08);
	--agencia-font-heading: 'Poppins', sans-serif;
	--agencia-font-body: 'Montserrat', sans-serif;
}

/* Box-sizing reset — the active theme doesn't set this globally, so any
   element in this stylesheet using `width: 100%` together with padding
   and/or a border (buttons, inputs, cards) renders wider than its parent's
   content box by exactly that padding+border, and visually spills outside
   the parent (e.g. the "Fazer reserva" button overflowing the calendar
   card). Scoped to the plugin's own containers, not `*`, to avoid touching
   unrelated theme/page-builder markup on the same page. */
.agencia-home,
.agencia-home *,
.agencia-viagens-archive,
.agencia-viagens-archive *,
.agencia-viagem-single,
.agencia-viagem-single *,
.agencia-login,
.agencia-login *,
.agencia-minhas-reservas-card,
.agencia-minhas-reservas-card *,
.agencia-obrigado,
.agencia-obrigado * {
	box-sizing: border-box;
}

/* Layout base */

.agencia-home,
.agencia-viagens-archive,
.agencia-viagem-single,
.agencia-login,
.agencia-minhas-reservas-card,
.agencia-obrigado {
	font-family: var(--agencia-font-body);
	color: var(--agencia-text);
}

.agencia-home h2,
.agencia-home h3,
.agencia-viagens-archive h1,
.agencia-viagens-archive h2,
.agencia-viagem-single h2,
.agencia-viagem-single h3,
.agencia-login h1,
.agencia-obrigado h2 {
	font-family: var(--agencia-font-heading);
	color: var(--agencia-primary);
	font-weight: 600;
}

/* Neutralize the active theme's block-template wrapper on the plugin's
   shortcode pages (Home/Login/Minhas Viagens/Obrigado): hides the theme's
   own page-title block and un-constrains the content column so full-bleed
   sections (hero, banners) can span the viewport. */

.agencia-shortcode-page .wp-block-post-title {
	display: none;
}

.agencia-shortcode-page .entry-content > * {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* These wrappers carry inline margin/padding from the theme's block styles
   (e.g. style="padding-top:..."), which only !important can override. */
.agencia-shortcode-page main.wp-block-group {
	margin-top: 0 !important;
}

.agencia-shortcode-page main > .wp-block-group {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Even hidden (display:none), .wp-block-post-title is still the 1st DOM
   child, which bumps .entry-content into the 2nd-child slot and makes it
   inherit the theme's default margin-block-start: 1.2rem — the source of
   the visible gap between the header and the hero. */
.agencia-shortcode-page .entry-content {
	margin-block-start: 0 !important;
}

/* `100vw` includes the vertical scrollbar's own width in most browsers, so
   the full-bleed rule below overflows past the visible viewport edge by the
   scrollbar's width (~15-17px) whenever the page is tall enough to show one
   — producing a phantom horizontal scrollbar at the bottom of the page.
   Clipping it on body is the standard, side-effect-free fix: the overshoot
   is by definition just past the visible edge, so nothing visible is cut.
   Applied to body generally (not just .agencia-shortcode-page) because
   single-viagem.php and other custom templates also use the 100vw
   full-bleed technique below and need the same protection. */
body {
	overflow-x: hidden;
}

.agencia-hero,
.agencia-viagem-single__header,
.agencia-viagem-single__esperar,
.agencia-institucional,
.agencia-viagem-single__reserva,
.agencia-viagem-single__precos,
.agencia-viagem-single__depoimentos {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Buttons */

.agencia-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.85rem 1.75rem;
	border-radius: 999px;
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.agencia-btn--primary,
button.agencia-btn--primary {
	background: var(--agencia-accent);
	color: #fff;
}

.agencia-btn--primary:hover,
button.agencia-btn--primary:hover {
	background: var(--agencia-accent-dark);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(232, 80, 58, 0.35);
	color: #fff;
}

.agencia-btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.6);
}

.agencia-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #fff;
	color: #fff;
}

.agencia-btn--small {
	padding: 0.5rem 1.1rem;
	font-size: 0.85rem;
}

.agencia-btn--dark {
	background: var(--institucional-navy, #172b4d);
	color: #fff;
}

.agencia-btn--dark:hover {
	background: #101d38;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(23, 43, 77, 0.3);
	color: #fff;
}

.agencia-btn--outline {
	background: #fff;
	color: var(--agencia-primary);
	border-color: var(--agencia-border);
}

.agencia-btn--outline:hover {
	background: var(--agencia-bg-soft);
	color: var(--agencia-primary);
}

.agencia-btn--outline svg {
	width: 16px;
	height: 16px;
}

/* Hero (home) */

.agencia-hero {
	background-color: var(--agencia-primary);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
	overflow: hidden;
	padding: 6.5rem 0 6rem;
}

.agencia-hero__container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 1.5rem;
	position: relative;
	z-index: 2;
}

.agencia-hero__inner {
	max-width: 700px;
	margin: 0;
}

.agencia-hero__title {
	color: #fff;
	font-size: clamp(2.25rem, 4.5vw, 3.25rem);
	line-height: 1.12;
	font-weight: 700;
	margin: 0 0 1.25rem;
	text-align: left;
}

.agencia-hero__title-accent {
	color: var(--agencia-accent);
}

.agencia-hero__subtitle {
	color: #eef2fa;
	font-size: 1.1rem;
	line-height: 1.6;
	margin: 0 0 2.5rem;
	text-align: left;
}

/* Search card, overlaid directly on the hero image */

.agencia-hero-busca {
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
	padding: 1.25rem 1.5rem;
	display: grid;
	grid-template-columns: 1.5fr 0.85fr 1.2fr auto;
	align-items: end;
	gap: 1rem;
	margin: 0 0 2rem;
}

.agencia-hero-busca__campo {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	text-align: left;
	position: relative;
	padding-right: 1rem;
}

.agencia-hero-busca__campo:not(:last-of-type)::after {
	content: '';
	position: absolute;
	top: 2.1rem;
	bottom: 0.1rem;
	right: 0;
	width: 1px;
	background: var(--agencia-bg-soft);
}

.agencia-hero-busca__campo label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--agencia-font-body);
	font-weight: 600;
	font-size: 0.8rem;
	color: var(--agencia-muted);
	white-space: nowrap;
}

.agencia-hero-busca__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--agencia-bg-light);
	color: var(--agencia-accent);
	flex-shrink: 0;
}

.agencia-hero-busca__icone svg {
	width: 14px;
	height: 14px;
	display: block;
}

.agencia-hero-busca__campo input,
.agencia-hero-busca__campo select {
	width: 100%;
	min-width: 0;
	border: 1px solid var(--agencia-bg-soft);
	border-radius: calc(var(--agencia-radius) - 4px);
	padding: 0.65rem 0.85rem;
	font-family: var(--agencia-font-body);
	font-size: 0.95rem;
	color: var(--agencia-text);
	background-color: #fff;
	overflow: hidden;
	text-overflow: ellipsis;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.agencia-hero-busca__campo select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	padding-right: 2rem;
}

.agencia-hero-busca__campo input:focus,
.agencia-hero-busca__campo select:focus {
	outline: none;
	border-color: var(--agencia-accent);
	box-shadow: 0 0 0 3px rgba(255, 83, 70, 0.15);
}

.agencia-hero-busca__btn {
	flex: 0 0 auto;
	align-self: stretch;
	padding: 0 1.75rem;
	border-radius: calc(var(--agencia-radius) - 4px);
	white-space: nowrap;
}

@media (max-width: 860px) {
	.agencia-hero-busca {
		grid-template-columns: 1fr 1fr;
	}

	.agencia-hero-busca__campo:nth-child(2)::after {
		display: none;
	}

	.agencia-hero-busca__btn {
		grid-column: 1 / -1;
		padding: 0.85rem 1.75rem;
	}
}

@media (max-width: 640px) {
	.agencia-hero-busca {
		grid-template-columns: 1fr;
	}

	.agencia-hero-busca__campo {
		padding-right: 0;
	}

	.agencia-hero-busca__campo::after {
		display: none;
	}

	.agencia-hero-busca__btn {
		width: 100%;
	}
}

/* Rating / social-proof line */

.agencia-hero__stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	color: #fff;
	font-size: 0.95rem;
	margin: 0 0 2rem;
}

.agencia-hero__stars {
	display: inline-flex;
	gap: 2px;
	color: #FFB020;
}

.agencia-hero__stars svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
	display: block;
}

.agencia-hero__stats-rating {
	color: #fff;
	font-weight: 700;
}

.agencia-hero__stats-divider {
	color: rgba(255, 255, 255, 0.35);
}

/* Feature badges */

.agencia-hero__badges {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}

.agencia-hero__badge {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	background: rgba(13, 26, 46, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 14px;
	padding: 1.15rem;
	backdrop-filter: blur(6px);
}

.agencia-hero__badge-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--agencia-accent);
	color: #fff;
}

.agencia-hero__badge-icon svg {
	width: 20px;
	height: 20px;
	display: block;
}

.agencia-hero__badge-texto h3 {
	color: #fff;
	font-family: var(--agencia-font-heading);
	font-size: 0.98rem;
	margin: 0 0 0.3rem;
}

.agencia-hero__badge-texto p {
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.85rem;
	line-height: 1.45;
	margin: 0;
}

/* Curved transition into the next (white) section */

.agencia-hero__wave {
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 70px;
	color: #fff;
	z-index: 1;
	display: block;
}

.agencia-hero__wave path {
	fill: currentColor;
}

@media (max-width: 980px) {
	.agencia-hero__badges {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.agencia-hero {
		padding: 5.5rem 0 5rem;
	}

	.agencia-hero__badges {
		grid-template-columns: 1fr;
	}

	.agencia-hero__stats {
		font-size: 0.85rem;
	}
}

.agencia-home__destaques {
	max-width: 1200px;
	margin: 0 auto;
	padding: 3rem 1.5rem 4rem;
}

.agencia-home__destaques-title,
.agencia-viagens-title {
	text-align: center;
	font-size: 1.9rem;
	margin: 0 0 0.75rem;
}

.agencia-home__destaques-subtitle {
	text-align: center;
	color: var(--agencia-muted);
	margin: 0 0 2.5rem;
}

.agencia-home__destaques-head {
	position: relative;
	text-align: center;
	margin: 0 0 1rem;
}

.agencia-home__destaques-eyebrow {
	display: inline-block;
	color: var(--agencia-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
}

.agencia-home__destaques-head .agencia-home__destaques-title {
	display: block;
}

.agencia-home__destaques-divider {
	display: block;
	width: 64px;
	height: 3px;
	margin: 1.5rem auto 0;
	background: var(--agencia-accent);
	border-radius: 999px;
}

.agencia-home__destaques-footer {
	text-align: center;
	margin: 2.5rem 0 0;
}

.agencia-home__destaques-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.85rem 1.75rem;
	border: 2px solid var(--agencia-primary);
	border-radius: 999px;
	color: var(--agencia-primary);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.agencia-home__destaques-cta svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.agencia-home__destaques-cta:hover {
	background: var(--agencia-primary);
	color: #fff;
}

/* Trip card grid */

.agencia-viagens-archive {
	max-width: 1200px;
	margin: 0 auto;
	padding: 3rem 1.5rem;
}

.agencia-viagens-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 2rem;
	margin: 1.5rem 0;
}

.agencia-viagens-grid--destaques {
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: 2.25rem;
}

.agencia-viagem-card {
	border-radius: var(--agencia-radius);
	overflow: hidden;
	box-shadow: var(--agencia-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.agencia-viagem-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(15, 26, 46, 0.14);
}

.agencia-viagem-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.agencia-viagem-card__thumb {
	position: relative;
	aspect-ratio: 3 / 4;
	background: var(--agencia-bg-soft);
	overflow: hidden;
}

.agencia-viagem-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.agencia-viagem-card__thumb-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--agencia-primary-light) 0%, var(--agencia-teal) 100%);
}

.agencia-viagem-card__badge {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	z-index: 2;
	background: var(--agencia-accent);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	box-shadow: 0 4px 10px rgba(15, 26, 46, 0.2);
}

.agencia-viagem-card__overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	padding: 2.5rem 1.25rem 1.25rem;
	background: linear-gradient(180deg, rgba(13, 26, 46, 0) 0%, rgba(13, 26, 46, 0.55) 45%, rgba(13, 26, 46, 0.92) 100%);
	color: #fff;
}

.agencia-viagem-card__destino {
	margin: 0 0 0.3rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #ffd8ae;
}

.agencia-viagem-card__title {
	margin: 0 0 0.35rem;
	font-size: 1.15rem;
	font-family: var(--agencia-font-heading);
	color: #fff;
}

.agencia-viagem-card__data {
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: #dbe4f5;
}

.agencia-viagem-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 0.75rem;
}

.agencia-viagem-card__preco {
	font-family: var(--agencia-font-body);
	font-weight: 400;
	font-size: 0.8rem;
	color: #dbe4f5;
}

.agencia-viagem-card__preco strong {
	display: block;
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 1.15rem;
	color: #fff;
}

.agencia-viagem-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--agencia-accent);
	color: #fff;
	font-size: 1rem;
	flex-shrink: 0;
}

.agencia-viagens-pagination {
	margin: 2.5rem 0 1rem;
	text-align: center;
}

/* Home: featured destination card (redesigned) */

.agencia-destaque-card {
	display: flex;
	flex-direction: column;
	background: var(--agencia-primary);
	border-radius: var(--agencia-radius);
	overflow: hidden;
	box-shadow: var(--agencia-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.agencia-destaque-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(15, 26, 46, 0.14);
}

.agencia-destaque-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.agencia-destaque-card__thumb {
	position: relative;
	aspect-ratio: 3 / 4;
	background: var(--agencia-bg-soft);
	overflow: hidden;
}

.agencia-destaque-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.agencia-destaque-card__thumb-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--agencia-primary-light) 0%, var(--agencia-teal) 100%);
}

.agencia-destaque-card__badge {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: var(--agencia-accent);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 0.35rem 0.75rem 0.35rem 0.6rem;
	border-radius: 999px;
	box-shadow: 0 4px 10px rgba(15, 26, 46, 0.2);
}

.agencia-destaque-card__badge svg {
	width: 12px;
	height: 12px;
	fill: #fff;
}

.agencia-destaque-card__overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 4rem 1.1rem 1.15rem;
	background: linear-gradient(180deg, rgba(13, 26, 46, 0) 0%, rgba(13, 26, 46, 0.55) 32%, rgba(13, 26, 46, 0.97) 100%);
	color: #fff;
}

.agencia-home h3.agencia-destaque-card__title {
	position: relative;
	margin: 0 0 0.55rem;
	padding-bottom: 0.5rem;
	font-size: 2.1rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
	font-family: var(--agencia-font-heading);
	color: #fff;
	text-shadow: 0 4px 16px rgba(0, 0, 0, 0.7);
}

.agencia-destaque-card__title::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 42px;
	height: 4px;
	border-radius: 999px;
	background: var(--agencia-accent);
}

.agencia-destaque-card__local {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.75rem;
	font-size: 0.9rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

.agencia-destaque-card__local svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	fill: rgba(255, 255, 255, 0.85);
}

.agencia-destaque-card__resumo {
	margin: 0 0 1.1rem;
	font-size: 0.88rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.82);
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

.agencia-destaque-card__inclusos {
	display: flex;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.agencia-destaque-card__inclusos li {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.4rem;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.25;
	color: rgba(255, 255, 255, 0.92);
}

.agencia-destaque-card__inclusos-icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.25);
}

.agencia-destaque-card__inclusos-icone svg {
	width: 16px;
	height: 16px;
	fill: #fff;
}

.agencia-destaque-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.75rem;
	padding: 1rem 1.1rem;
	background: var(--agencia-primary);
}

.agencia-destaque-card__preco {
	font-family: var(--agencia-font-body);
	font-weight: 400;
	font-size: 0.75rem;
	color: #b9c4dc;
}

.agencia-destaque-card__preco-label {
	display: block;
	margin: 0 0 0.2rem;
}

.agencia-destaque-card__preco strong {
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 1.3rem;
	color: #fff;
}

.agencia-destaque-card__unidade {
	font-size: 0.75rem;
	font-weight: 400;
	color: #b9c4dc;
	margin-left: 0.15rem;
}

.agencia-destaque-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.65rem 1.1rem;
	border-radius: 999px;
	background: var(--agencia-accent);
	color: #fff;
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	flex-shrink: 0;
	box-shadow: 0 8px 18px rgba(255, 83, 70, 0.35);
	transition: background 0.2s ease, transform 0.2s ease;
}

.agencia-destaque-card__cta svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
}

.agencia-destaque-card__link:hover .agencia-destaque-card__cta {
	background: #e8402f;
	transform: translateY(-1px);
}

/* Home: Como Funciona */

.agencia-home__como-funciona {
	max-width: 1180px;
	margin: 0 auto;
	padding: 1rem 1.5rem 4rem;
	text-align: center;
}

.agencia-home__como-funciona-head {
	margin: 0 0 3rem;
}

.agencia-home__como-funciona-eyebrow {
	display: inline-block;
	color: var(--agencia-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
}

.agencia-home__como-funciona-title {
	margin: 0 0 0.75rem;
	font-family: var(--agencia-font-heading);
	font-size: 2.1rem;
	font-weight: 800;
	color: var(--agencia-primary);
}

.agencia-home__como-funciona-subtitle {
	color: var(--agencia-muted);
	margin: 0;
}

.agencia-home__como-funciona-divider {
	display: block;
	width: 64px;
	height: 3px;
	margin: 1.5rem auto 0;
	background: var(--agencia-accent);
	border-radius: 999px;
}

.agencia-home__passos {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: wrap;
	gap: 2.5rem 1.5rem;
}

.agencia-home__passo {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 1 1 280px;
	max-width: 340px;
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: 0 12px 30px rgba(23, 37, 64, 0.08);
	border: 1px solid rgba(23, 37, 64, 0.05);
	text-align: center;
}

.agencia-home__passo-numero {
	position: absolute;
	top: -22px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--agencia-accent);
	color: #fff;
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 1.05rem;
	box-shadow: 0 6px 14px rgba(255, 83, 70, 0.4);
	z-index: 2;
}

.agencia-home__passo-corpo {
	padding: 3rem 1.75rem 1.5rem;
}

.agencia-home__passo-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 112px;
	height: 112px;
	border-radius: 50%;
	margin: 0 auto 1.25rem;
	background: var(--agencia-accent-soft);
}

.agencia-home__passo-icone svg {
	width: 58px;
	height: 58px;
}

.agencia-home__passo-titulo {
	position: relative;
	display: block;
	margin: 0 0 0.75rem;
	font-family: var(--agencia-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--agencia-primary);
}

.agencia-home__passo p {
	margin: 0;
	color: var(--agencia-muted);
	font-size: 0.9rem;
	line-height: 1.5;
}

.agencia-home__passo-foto {
	margin-top: auto;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-bottom-left-radius: var(--agencia-radius);
	border-bottom-right-radius: var(--agencia-radius);
}

.agencia-home__passo-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.agencia-home__passo-seta {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	align-self: flex-start;
	width: 40px;
	margin-top: 96px;
	color: var(--agencia-accent);
}

.agencia-home__passo-seta svg {
	width: 44px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.agencia-home__inclusos-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 1.75rem 2.5rem;
	margin: 3.5rem 0 0;
	padding: 1.75rem 2.25rem;
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
}

.agencia-home__inclusos-item {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	flex: 1 1 220px;
	text-align: left;
}

.agencia-home__inclusos-item-icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
	flex-shrink: 0;
}

.agencia-home__inclusos-item-icone svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.agencia-home__inclusos-item-texto {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.agencia-home__inclusos-item-texto strong {
	font-family: var(--agencia-font-heading);
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--agencia-primary);
}

.agencia-home__inclusos-item-texto span {
	font-size: 0.8rem;
	color: var(--agencia-muted);
	line-height: 1.35;
}

@media (max-width: 900px) {
	.agencia-home__passo-seta {
		display: none;
	}

	.agencia-home__passo {
		flex: 1 1 100%;
		max-width: 420px;
	}
}

/* Home: gallery */

.agencia-home__galeria {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1rem 1.5rem 4rem;
	text-align: center;
}

.agencia-home__galeria-head {
	position: relative;
	text-align: center;
	margin: 0 0 2.5rem;
}

.agencia-home__galeria-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: var(--agencia-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
}

.agencia-home__galeria-eyebrow svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.agencia-home__galeria-title {
	margin: 0;
}

.agencia-home__galeria-subtitle {
	color: var(--agencia-muted);
	margin: 0.5rem 0 0;
}

.agencia-home__galeria-divider {
	display: block;
	width: 64px;
	height: 3px;
	margin: 1.5rem auto 0;
	background: var(--agencia-accent);
	border-radius: 999px;
}

.agencia-home__galeria-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: 280px 220px;
	gap: 1.25rem;
}

.agencia-home__galeria-item {
	border-radius: var(--agencia-radius);
	overflow: hidden;
	box-shadow: var(--agencia-shadow);
}

.agencia-home__galeria-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.agencia-home__galeria-item:hover img {
	transform: scale(1.06);
}

.agencia-home__galeria-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1.25rem;
	margin: 2rem 0 0;
	padding: 1.25rem 1.75rem;
	background: #fff;
	border: 1px solid var(--agencia-bg-soft);
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
	text-align: left;
}

.agencia-home__galeria-stat {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--agencia-primary);
	font-weight: 600;
	white-space: nowrap;
}

.agencia-home__galeria-stat svg {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	color: var(--agencia-accent);
}

.agencia-home__galeria-stat strong {
	color: var(--agencia-accent);
	font-size: 1.05rem;
}

.agencia-home__galeria-footer-text {
	flex: 1 1 240px;
	color: var(--agencia-muted);
	font-size: 0.9rem;
	text-align: center;
}

.agencia-home__galeria-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.7rem 1.4rem;
	border: 2px solid var(--agencia-accent);
	border-radius: 999px;
	color: var(--agencia-accent);
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease, color 0.2s ease;
}

.agencia-home__galeria-cta svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.agencia-home__galeria-cta:hover {
	background: var(--agencia-accent);
	color: #fff;
}

@media (max-width: 900px) {
	.agencia-home__galeria-grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: none;
		grid-auto-rows: 220px;
	}

	.agencia-home__galeria-footer {
		flex-direction: column;
		text-align: center;
	}

	.agencia-home__galeria-footer-text {
		order: 1;
	}
}

@media (max-width: 520px) {
	.agencia-home__galeria-grid {
		grid-auto-rows: 160px;
	}
}

/* Home: pontos de embarque */

.agencia-home__embarque {
	max-width: 1100px;
	margin: 0 auto;
	padding: 1rem 1.5rem 4rem;
	text-align: center;
}

.agencia-home__embarque-head {
	margin: 0 0 2.5rem;
}

.agencia-home__embarque-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 0.75rem;
	color: var(--agencia-accent);
}

.agencia-home__embarque-icon svg {
	width: 40px;
	height: 40px;
	fill: currentColor;
}

.agencia-home__embarque-subtitle {
	color: var(--agencia-muted);
	margin: 0.5rem 0 0;
}

.agencia-home__embarque-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.5rem;
}

.agencia-home__embarque-item {
	background: #fff;
	border: 1px solid var(--agencia-bg-soft);
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	padding: 2rem 1.25rem 1.75rem;
}

.agencia-home__embarque-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(15, 26, 46, 0.12);
}

.agencia-home__embarque-item-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
}

.agencia-home__embarque-item-icon svg {
	width: 26px;
	height: 26px;
	fill: currentColor;
}

.agencia-home__embarque-item h3 {
	margin: 0;
	font-size: 1.05rem;
}

.agencia-home__embarque-item-divider {
	display: block;
	width: 28px;
	height: 3px;
	margin: 0.65rem auto 0.9rem;
	background: var(--agencia-accent);
	border-radius: 999px;
}

.agencia-home__embarque-item p {
	margin: 0;
	color: var(--agencia-muted);
	font-size: 0.9rem;
}

/* Home: depoimentos */

.agencia-home__depoimentos {
	max-width: 1100px;
	margin: 0 auto;
	padding: 1rem 1.5rem 4rem;
	text-align: center;
}

.agencia-home__depoimentos-head {
	margin: 0 0 2.5rem;
}

.agencia-home__depoimentos-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 1rem;
	padding: 0.35rem 0.9rem;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: 999px;
}

.agencia-home__depoimentos-eyebrow svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
}

.agencia-home__depoimentos-head h2 {
	margin: 0;
}

.agencia-home__depoimentos-subtitle {
	color: var(--agencia-muted);
	margin: 0.5rem 0 0;
}

.agencia-depoimentos-slider {
	position: relative;
}

.agencia-depoimentos-slider__viewport {
	overflow: hidden;
}

.agencia-depoimentos-slider__track {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding: 0.25rem 0.25rem 0.75rem;
}

.agencia-depoimentos-slider__track::-webkit-scrollbar {
	display: none;
}

.agencia-depoimentos-slider__slide {
	flex: 0 0 calc((100% - 3rem) / 3);
	display: flex;
	scroll-snap-align: start;
}

.agencia-depoimentos-slider__slide .agencia-depoimento-card {
	width: 100%;
}

@media (max-width: 900px) {
	.agencia-depoimentos-slider__slide {
		flex: 0 0 calc((100% - 1.5rem) / 2);
	}
}

@media (max-width: 600px) {
	.agencia-depoimentos-slider__slide {
		flex: 0 0 100%;
	}
}

.agencia-depoimentos-slider__seta {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 50%;
	border: 1px solid var(--agencia-bg-soft);
	background: #fff;
	color: var(--agencia-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: var(--agencia-shadow);
	transition: background 0.2s ease, color 0.2s ease;
	z-index: 2;
}

.agencia-depoimentos-slider__seta:hover {
	background: var(--agencia-accent);
	border-color: var(--agencia-accent);
	color: #fff;
}

.agencia-depoimentos-slider__seta svg {
	width: 20px;
	height: 20px;
}

.agencia-depoimentos-slider__seta--prev {
	left: -22px;
}

.agencia-depoimentos-slider__seta--next {
	right: -22px;
}

.agencia-depoimentos-slider__seta[hidden] {
	display: none;
}

@media (max-width: 700px) {
	.agencia-depoimentos-slider__seta {
		display: none;
	}
}

.agencia-depoimentos-slider__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
}

.agencia-depoimentos-slider__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: none;
	padding: 0;
	background: var(--agencia-bg-soft);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.agencia-depoimentos-slider__dot.is-ativo {
	background: var(--agencia-accent);
	transform: scale(1.3);
}

.agencia-depoimento-card {
	background: #fff;
	border: 1px solid var(--agencia-bg-soft);
	border-radius: var(--agencia-radius);
	padding: 1.75rem 1.5rem 1.5rem;
	box-shadow: var(--agencia-shadow);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.agencia-depoimento-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(15, 26, 46, 0.12);
}

.agencia-depoimento-card__quote {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}

.agencia-depoimento-card__texto {
	margin: 0;
	color: var(--agencia-text);
	font-size: 0.95rem;
	line-height: 1.6;
	flex: 1;
}

.agencia-depoimento-card__divider {
	display: block;
	height: 1px;
	margin: 0;
	background: var(--agencia-bg-soft);
}

.agencia-depoimento-card__rodape {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.agencia-depoimento-card__avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--agencia-bg-soft);
	color: var(--agencia-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--agencia-font-heading);
	font-size: 1.1rem;
	font-weight: 700;
	overflow: hidden;
	flex-shrink: 0;
}

.agencia-depoimento-card__avatar--foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.agencia-depoimento-card__info {
	flex: 1;
	min-width: 0;
}

.agencia-depoimento-card__nome {
	margin: 0;
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--agencia-primary);
}

.agencia-depoimento-card__local {
	margin: 0.15rem 0 0;
	color: var(--agencia-muted);
	font-size: 0.8rem;
}

.agencia-depoimento-card__estrelas {
	display: flex;
	gap: 0.15rem;
	flex-shrink: 0;
}

.agencia-depoimento-card__estrelas svg {
	width: 14px;
	height: 14px;
	fill: #FFB800;
}

.agencia-home__depoimentos-footer {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 2.5rem 0 0;
	color: var(--agencia-text);
	font-size: 0.95rem;
}

.agencia-home__depoimentos-footer svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	color: var(--agencia-accent);
}

.agencia-home__depoimentos-footer strong {
	color: var(--agencia-accent);
}

/* Home: FAQ */

.agencia-home__faq {
	max-width: 800px;
	margin: 0 auto;
	padding: 1rem 1.5rem 4rem;
	text-align: center;
}

.agencia-home__faq-head {
	margin: 0 0 1rem;
}

.agencia-home__faq-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 1rem;
	padding: 0.35rem 0.9rem;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: 999px;
}

.agencia-home__faq-eyebrow svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
}

.agencia-home__faq-head h2 {
	margin: 0;
}

.agencia-home__faq-subtitle {
	color: var(--agencia-muted);
	margin: 0.5rem 0 0;
}

.agencia-home__faq-divider {
	display: block;
	width: 64px;
	height: 3px;
	margin: 1.5rem auto 0;
	background: var(--agencia-accent);
	border-radius: 999px;
}

.agencia-home__faq-lista {
	text-align: left;
	margin-top: 2rem;
}

.agencia-home__faq-item {
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: inset 0 0 0 1px var(--agencia-bg-soft);
	padding: 1rem 1.25rem;
	margin-bottom: 0.9rem;
	transition: box-shadow 0.2s ease;
}

.agencia-home__faq-item[open] {
	box-shadow: inset 0 0 0 1px var(--agencia-accent);
}

.agencia-home__faq-item summary {
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 0.9rem;
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	color: var(--agencia-primary);
	list-style: none;
}

.agencia-home__faq-item summary::-webkit-details-marker {
	display: none;
}

.agencia-home__faq-item-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	flex-shrink: 0;
}

.agencia-home__faq-item-icone::before {
	content: '+';
}

.agencia-home__faq-item[open] .agencia-home__faq-item-icone::before {
	content: '\2212';
}

.agencia-home__faq-item-pergunta {
	flex: 1;
}

.agencia-home__faq-item-seta {
	width: 18px;
	height: 18px;
	color: var(--agencia-accent);
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.agencia-home__faq-item[open] .agencia-home__faq-item-seta {
	transform: rotate(180deg);
}

.agencia-home__faq-resposta {
	margin: 0.9rem 0 0 2.9rem;
	padding: 0.9rem 1.1rem;
	background: var(--agencia-accent-soft);
	border-left: 3px solid var(--agencia-accent);
	border-radius: 0 8px 8px 0;
}

.agencia-home__faq-resposta p {
	margin: 0;
	color: var(--agencia-text);
	line-height: 1.6;
}

.agencia-home__faq-contato {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex-wrap: wrap;
	margin-top: 2rem;
	padding: 1.5rem 1.75rem;
	background: var(--agencia-bg-light);
	border-radius: var(--agencia-radius);
	text-align: left;
}

.agencia-home__faq-contato-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #fff;
	color: var(--agencia-primary);
	box-shadow: var(--agencia-shadow);
	flex-shrink: 0;
}

.agencia-home__faq-contato-icone svg {
	width: 24px;
	height: 24px;
}

.agencia-home__faq-contato-texto {
	flex: 1;
	min-width: 200px;
}

.agencia-home__faq-contato-texto strong {
	display: block;
	font-family: var(--agencia-font-heading);
	color: var(--agencia-primary);
	font-size: 1.05rem;
}

.agencia-home__faq-contato-texto span {
	display: block;
	color: var(--agencia-muted);
	font-size: 0.9rem;
	margin-top: 0.15rem;
}

.agencia-home__faq-contato-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.8rem 1.5rem;
	background: var(--agencia-primary);
	color: #fff;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.2s ease;
}

.agencia-home__faq-contato-cta svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.agencia-home__faq-contato-cta:hover {
	background: var(--agencia-primary-dark);
	transform: translateY(-1px);
	color: #fff;
}

@media (max-width: 600px) {
	.agencia-home__faq-contato {
		flex-direction: column;
		text-align: center;
	}

	.agencia-home__faq-contato-texto {
		text-align: center;
	}
}

/* Single viagem */

.agencia-viagem-single {
	max-width: 960px;
	margin: 0 auto;
	padding: 0 1.5rem 4rem;
}

.agencia-viagem-single__header {
	/* Horizontal position/width (100vw + calc(50% - 50vw) breakout) is set
	   by the shared full-bleed rule near the top of this file — only the
	   vertical spacing is set here so that rule isn't clobbered. */
	margin-top: 0;
	margin-bottom: 3rem;
	padding: 3rem 0;
	background: linear-gradient(135deg, var(--agencia-primary) 0%, var(--agencia-primary-dark) 100%);
	color: #fff;
	text-align: left;
	/* A fixed-ish min-height + vertical centering keeps the hero balanced
	   whether or not the optional Região/Melhor época badges are present,
	   instead of the content sitting top-heavy with a big dead gap below
	   when those fields are empty. */
	display: flex;
	align-items: center;
	min-height: clamp(460px, 56vw, 620px);
}

.agencia-viagem-single__header--com-imagem {
	background-size: cover;
	background-position: center;
	position: relative;
}

/* Left-to-right scrim: darkest where the text sits, fading out toward the
   right so the photo itself stays visible, matching the reference design. */
.agencia-viagem-single__header--com-imagem::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 20, 38, 0.92) 0%, rgba(11, 20, 38, 0.78) 32%, rgba(11, 20, 38, 0.25) 65%, rgba(11, 20, 38, 0) 100%);
}

/* Centered, max-width, padded container — mirrors .agencia-hero__container
   so hero text lines up with the nav bar's gutter instead of sitting flush
   against the true viewport edge on wide screens. */
.agencia-viagem-single__header-container {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 0 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 2rem;
}

.agencia-viagem-single__header-inner {
	position: relative;
	max-width: 640px;
	margin: 0;
	width: 100%;
	flex: 1 1 420px;
}

/* Cartão de preço + calendário flutuando sobre a capa, ao lado do texto do
   hero (em telas largas) ou empilhado abaixo dele (em telas estreitas). */
.agencia-viagem-single__header-container .agencia-viagem-single__preco-destaque {
	margin: 0;
	flex: 0 1 380px;
	width: 100%;
}

.agencia-viagem-single__header-container .agencia-preco-destaque {
	padding: 2rem 1.75rem;
}

@media (max-width: 860px) {
	.agencia-viagem-single__header {
		align-items: flex-start;
		min-height: 0;
		padding: 2.5rem 0;
	}

	.agencia-viagem-single__header-container {
		flex-direction: column;
		align-items: stretch;
	}

	.agencia-viagem-single__header-container .agencia-viagem-single__preco-destaque {
		max-width: 420px;
	}
}

.agencia-viagem-single__header h1 {
	color: #fff;
	font-family: var(--agencia-font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 700;
	margin: 0.5rem 0 1rem;
}

.agencia-viagem-single__header .agencia-viagem-single__resumo {
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.7;
	margin: 0 0 2rem;
}

.agencia-viagem-single__destino {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--agencia-teal);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 600;
	font-size: 0.85rem;
	margin: 0;
}

.agencia-viagem-single__destino svg {
	width: 16px;
	height: 16px;
}

.agencia-viagem-single__badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 1.5rem;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 14px;
	padding: 1rem 1.5rem;
	margin-top: 1.75rem;
	backdrop-filter: blur(2px);
}

.agencia-viagem-single__badge {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	text-align: left;
	padding-right: 1.5rem;
}

.agencia-viagem-single__badge:not(:last-child) {
	border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.agencia-viagem-single__badge-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: var(--agencia-teal);
	flex-shrink: 0;
}

.agencia-viagem-single__badge-icone svg {
	width: 20px;
	height: 20px;
}

.agencia-viagem-single__badge-texto {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.agencia-viagem-single__badge-label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.75);
}

.agencia-viagem-single__badge-valor {
	font-size: 0.95rem;
	font-weight: 500;
	color: #fff;
}

.agencia-viagem-single__header-cta {
	margin-top: 2rem;
}

.agencia-viagem-single__header-cta svg {
	width: 16px;
	height: 16px;
}

.agencia-viagem-single__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.75rem;
}

.agencia-viagem-single__trust-item {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 10px;
	padding: 0.65rem 1rem;
}

.agencia-viagem-single__trust-item svg {
	width: 20px;
	height: 20px;
	color: var(--agencia-teal);
	flex-shrink: 0;
}

.agencia-viagem-single__trust-texto {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.agencia-viagem-single__trust-texto strong {
	font-size: 0.82rem;
	font-weight: 700;
	color: #fff;
}

.agencia-viagem-single__trust-texto span {
	font-size: 0.76rem;
	color: rgba(255, 255, 255, 0.68);
}

.agencia-viagem-single__galeria {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.75rem;
	margin: 1.5rem 0;
}

.agencia-viagem-single__galeria img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	border-radius: 8px;
}

.agencia-viagem-single__conteudo {
	line-height: 1.7;
	color: var(--agencia-text);
	margin: 1.25rem 0;
}

/* These two sections were the only top-level blocks on this page missing from
   the shared full-bleed rule above, so they were still trapped inside the
   article's own max-width:960px column while every sibling section (hero,
   reserva, institucional, esperar) broke out to full viewport width — that
   mismatch is what showed up as big blank white bands flanking a suddenly-
   narrow block ("zonas brancas"). Now that they're full-bleed too, they need
   the same single-box max-width/padding/margin:auto inner container as the
   others so their content lines up with the hero's gutter instead of
   stretching edge-to-edge. */
/* margin-top/bottom only (NOT the `margin: 4rem 0` shorthand) — the shorthand
   resets margin-left/margin-right to 0 too, which silently overwrote the
   full-bleed rule's `margin-left/right: calc(50% - 50vw)` above (same class
   selector, later in the file → same specificity → last one wins). That's
   what actually caused the "zonas brancas"/horizontal-scrollbar report: the
   section kept width:100vw but its horizontal margin collapsed to 0, so the
   full-viewport-wide box sat offset at the article's normal (narrow, centered)
   position instead of at the true viewport edge — blank space on the left,
   overflow off the right edge. */
.agencia-viagem-single__precos,
.agencia-viagem-single__depoimentos {
	margin-top: 4rem;
	margin-bottom: 4rem;
}

.agencia-viagem-single__precos > .agencia-precos-intro,
.agencia-viagem-single__precos > .agencia-precos-grid,
.agencia-viagem-single__depoimentos > h2,
.agencia-viagem-single__depoimentos > .agencia-depoimentos-grid {
	max-width: 1280px;
	padding: 0 1.5rem;
	margin-left: auto;
	margin-right: auto;
}

/* .agencia-viagem-single__reserva now breaks out to full viewport width
   (see the shared full-bleed rule above) so its left/right gutter lines up
   with the hero above it instead of falling back to the theme's own
   (narrower) content column — that mismatch made this section look
   noticeably narrower/more indented than the hero. The max-width + padding +
   margin:auto must all live on the SAME box (the direct children here),
   mirroring the hero's `.agencia-viagem-single__header-container` and
   institucional's `.agencia-institucional__container` exactly — splitting the
   padding onto the outer section and the max-width onto the children (as a
   prior version of this rule did) computes a different left-edge offset than
   those two containers and produced a visible section-to-section
   misalignment ("torta") down the page.

   Also: this must set margin-top/margin-bottom only, NOT the `margin: 4rem 0`
   shorthand — the shorthand resets margin-left/margin-right to 0 as well,
   which clobbered the full-bleed rule's `margin-left/right: calc(50% - 50vw)`
   above it (same selector specificity, later in the file wins). With the
   horizontal margin reset to 0 but width still 100vw, the section rendered as
   a full-viewport-wide box sitting at the article's normal narrow/centered
   offset instead of the true viewport edge — this was the real cause of the
   "zonas brancas" / phantom-horizontal-scrollbar report, not the earlier
   scrollbar-width theory. */
.agencia-viagem-single__reserva {
	margin-top: 4rem;
	margin-bottom: 4rem;
}

.agencia-viagem-single__reserva > h2,
.agencia-viagem-single__reserva > .agencia-form-erro,
.agencia-viagem-single__reserva > .agencia-reserva-layout {
	max-width: 1280px;
	padding: 0 1.5rem;
	margin-left: auto;
	margin-right: auto;
}

/* Preço em destaque + calendário de datas disponíveis (topo da página da
   viagem): um cartão central com o preço em evidência e um calendário
   simples onde só as datas de saída cadastradas ficam clicáveis. */

.agencia-viagem-single__preco-destaque {
	margin: 2.5rem 0 3rem;
}

.agencia-preco-destaque {
	background: #fff;
	border: 1px solid var(--agencia-bg-soft);
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
	padding: 2.5rem 2rem;
	text-align: center;
}

.agencia-preco-destaque__preco {
	margin-bottom: 2rem;
}

.agencia-preco-destaque__preco-eyebrow {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--agencia-primary);
	margin-bottom: 0.35rem;
}

.agencia-preco-destaque__preco-valor {
	display: block;
	font-family: var(--agencia-font-heading);
	font-size: clamp(2.4rem, 5vw, 3.2rem);
	font-weight: 700;
	color: var(--agencia-accent);
	line-height: 1;
}

.agencia-preco-destaque__preco-label {
	display: block;
	margin-top: 0.4rem;
	color: var(--agencia-muted);
	font-weight: 600;
}

.agencia-preco-destaque__calendario {
	max-width: 340px;
	margin: 0 auto;
}

.agencia-preco-destaque__calendario-titulo {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--agencia-primary);
	margin: 0 0 1rem;
}

.agencia-preco-destaque__dica {
	margin-top: 1rem;
	font-size: 0.85rem;
	color: var(--agencia-muted);
}

.agencia-preco-destaque__cta {
	width: 100%;
	margin-top: 1.5rem;
}

.agencia-preco-destaque__cta svg {
	width: 16px;
	height: 16px;
}

.agencia-calendario {
	max-width: 340px;
	margin: 0 auto;
}

.agencia-calendario__carregando {
	color: var(--agencia-muted);
	font-size: 0.9rem;
}

.agencia-calendario__cabecalho {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.85rem;
}

.agencia-calendario__mes {
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	color: var(--agencia-primary);
	text-transform: capitalize;
}

.agencia-calendario__seta {
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	border-radius: 50%;
	border: 1px solid var(--agencia-bg-soft);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--agencia-primary);
	transition: background 0.2s ease, color 0.2s ease;
	padding: 0;
}

.agencia-calendario__seta:hover:not(:disabled) {
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
}

.agencia-calendario__seta:disabled {
	opacity: 0.3;
	cursor: default;
}

.agencia-calendario__seta svg {
	width: 16px;
	height: 16px;
}

.agencia-calendario__semana {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	margin-bottom: 0.4rem;
}

.agencia-calendario__semana-dia {
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--agencia-muted);
	text-transform: uppercase;
	text-align: center;
}

.agencia-calendario__grade {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.agencia-calendario__dia {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--agencia-muted);
	background: transparent;
	border: none;
	font-family: var(--agencia-font-body);
}

.agencia-calendario__dia--vazio {
	visibility: hidden;
}

.agencia-calendario__dia--disponivel {
	color: var(--agencia-primary);
	background: var(--agencia-accent-soft);
	cursor: pointer;
}

.agencia-calendario__dia--disponivel:hover {
	background: var(--agencia-accent);
	color: #fff;
}

.agencia-calendario__dia--selecionado,
.agencia-calendario__dia--selecionado:hover {
	background: var(--agencia-accent);
	color: #fff;
	box-shadow: 0 0 0 3px var(--agencia-accent-soft);
}

.agencia-reserva-form__data-selecionada {
	background: var(--agencia-accent-soft);
	color: var(--agencia-primary);
	border-radius: calc(var(--agencia-radius) - 4px);
	padding: 0.75rem 1rem;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}

.agencia-reserva-form__data-selecionada strong {
	color: var(--agencia-accent-dark);
}

.agencia-viagem-single__eyebrow {
	color: var(--agencia-teal);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
	font-size: 0.8rem;
	margin: 0 0 0.5rem;
}

/* Bem-vindo ao destino — premium institutional section (Airbnb / Apple /
   Booking-style): full-bleed 2-column layout with a single large photo,
   a badge + display title + decorative rule, an elegant intro paragraph,
   and three feature cards, with scroll-triggered reveal animations. */

.agencia-viagem-single__bemvindo {
	margin-top: 0;
	margin-bottom: 0;
}

.agencia-institucional {
	background: #fff;
	--institucional-navy: #172b4d;
	--institucional-teal: #19c7b5;
	--institucional-gray-bg: #f8fafc;
	--institucional-gray-text: #667085;
	--institucional-muted: #5f6b7a;
}

.agencia-institucional__container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 120px 1.5rem;
}

.agencia-institucional__grid {
	display: grid;
	/* minmax(0, ...) is required here: plain fr tracks default to a min
	   width of "auto" (the content's min-content size), which lets a track
	   grow past its intended share of the row instead of shrinking — that
	   blowout is what pushed the cards column past the viewport edge. */
	grid-template-columns: minmax(0, 52fr) minmax(0, 48fr);
	gap: 56px;
	align-items: center;
}

/* Coluna esquerda: uma única fotografia impactante */

.agencia-institucional__media {
	position: relative;
	min-width: 0;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 25px 60px rgba(0, 0, 0, 0.12);
	opacity: 0;
	transform: scale(0.95);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.agencia-institucional__grid.is-inview .agencia-institucional__media {
	opacity: 1;
	transform: scale(1);
}

.agencia-institucional__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(23, 43, 77, 0) 45%, rgba(23, 43, 77, 0.35) 75%, rgba(15, 27, 48, 0.82) 100%);
	pointer-events: none;
}

.agencia-institucional__img {
	display: block;
	width: 100%;
	height: 680px;
	object-fit: cover;
}

.agencia-institucional__media-legenda {
	position: absolute;
	left: 28px;
	right: 28px;
	bottom: 28px;
	z-index: 2;
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.agencia-institucional__media-legenda-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.4);
	backdrop-filter: blur(4px);
	color: var(--institucional-teal);
}

.agencia-institucional__media-legenda-icone svg {
	width: 20px;
	height: 20px;
}

.agencia-institucional__media-legenda-texto {
	min-width: 0;
	color: #fff;
}

.agencia-institucional__media-legenda-eyebrow {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--institucional-teal);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.agencia-institucional__media-legenda-texto strong {
	display: block;
	margin-bottom: 0.4rem;
	font-size: clamp(1.35rem, 2vw, 1.7rem);
	font-weight: 800;
	line-height: 1.15;
}

.agencia-institucional__media-legenda-texto p {
	margin: 0;
	max-width: 320px;
	font-size: 13.5px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.85);
}

/* Coluna direita */

.agencia-institucional__conteudo {
	min-width: 0;
	opacity: 0;
	transform: translateX(40px);
	transition: opacity 0.7s ease 0.15s, transform 0.7s ease 0.15s;
}

.agencia-institucional__grid.is-inview .agencia-institucional__conteudo {
	opacity: 1;
	transform: translateX(0);
}

.agencia-institucional__badge {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
	color: var(--institucional-teal);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.agencia-institucional__badge-icone {
	font-size: 16px;
	line-height: 1;
}

.agencia-institucional__titulo {
	margin: 0;
	font-size: clamp(2.5rem, 5vw, 72px);
	font-weight: 800;
	line-height: 1;
	color: var(--institucional-navy);
}

.agencia-institucional__linha {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 1.75rem 0;
}

.agencia-institucional__linha::before {
	content: '';
	display: block;
	width: 70px;
	height: 5px;
	border-radius: 999px;
	background: var(--institucional-teal);
}

.agencia-institucional__linha::after {
	content: '';
	display: block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--institucional-teal);
}

.agencia-institucional__texto {
	max-width: 560px;
	margin: 0 0 2.5rem;
	font-size: 22px;
	line-height: 1.8;
	color: var(--institucional-muted);
}

.agencia-institucional__texto p {
	margin: 0 0 1rem;
}

.agencia-institucional__texto p:last-child {
	margin-bottom: 0;
}

.agencia-institucional__texto p:empty {
	display: none;
}

/* Cards */

.agencia-institucional__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.agencia-institucional__card {
	/* flex-basis 0 (not a px value) + min-width:0 lets the three cards
	   shrink evenly to whatever the column actually has available,
	   instead of holding a content-based minimum width that overflows
	   the grid track. */
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	border-radius: 20px;
	padding: 26px 18px;
	background: #fff;
	border: 1px solid #eef2f6;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.06);
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.agencia-institucional__card:nth-child(1) {
	transition-delay: 0.1s;
}

.agencia-institucional__card:nth-child(2) {
	transition-delay: 0.2s;
}

.agencia-institucional__card:nth-child(3) {
	transition-delay: 0.3s;
}

.agencia-institucional__grid.is-inview .agencia-institucional__card {
	opacity: 1;
	transform: translateY(0);
}

.agencia-institucional__card:hover {
	transform: translateY(-8px);
	transition: transform 0.35s ease;
}

.agencia-institucional__card-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	margin-bottom: 1rem;
	border-radius: 50%;
	background: #eafbf8;
	color: var(--institucional-teal);
}

.agencia-institucional__card-icone svg {
	width: 20px;
	height: 20px;
}

.agencia-institucional__card h3 {
	margin: 0 0 0.5rem;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--institucional-navy);
	hyphens: auto;
	overflow-wrap: break-word;
}

.agencia-institucional__card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--institucional-gray-text);
	overflow-wrap: break-word;
}

.agencia-institucional__cta {
	margin-top: 32px;
}

@media (max-width: 900px) {
	.agencia-institucional__container {
		padding: 80px 1.5rem;
	}

	.agencia-institucional__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.agencia-institucional__img {
		height: 420px;
	}

	.agencia-institucional__texto {
		max-width: none;
	}
}

@media (max-width: 600px) {
	.agencia-institucional__container {
		padding: 60px 24px;
	}

	.agencia-institucional__titulo {
		font-size: 48px;
	}

	.agencia-institucional__texto {
		font-size: 1.05rem;
	}

	.agencia-institucional__img {
		height: 320px;
	}

	.agencia-institucional__media-legenda {
		left: 18px;
		right: 18px;
		bottom: 18px;
		gap: 10px;
	}

	.agencia-institucional__media-legenda-icone {
		width: 36px;
		height: 36px;
	}

	.agencia-institucional__media-legenda-icone svg {
		width: 16px;
		height: 16px;
	}

	.agencia-institucional__media-legenda-texto p {
		max-width: none;
	}

	.agencia-institucional__cards {
		flex-direction: column;
	}

	.agencia-institucional__card {
		flex-direction: row;
		align-items: flex-start;
		text-align: left;
	}

	.agencia-institucional__card-icone {
		margin-bottom: 0;
		margin-right: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.agencia-institucional__media,
	.agencia-institucional__conteudo,
	.agencia-institucional__card {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

/* O que esperar */

.agencia-viagem-single__esperar {
	/* Horizontal position/width (100vw + calc(50% - 50vw) breakout) is set
	   by the shared full-bleed rule near the top of this file — only the
	   vertical spacing is set here so that rule isn't clobbered. */
	padding: 4rem 1.5rem;
	background: var(--agencia-bg-light);
}

.agencia-esperar-intro {
	max-width: 620px;
	margin: 0 auto 2.5rem;
	text-align: center;
}

.agencia-esperar-divisor {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 1rem;
}

.agencia-esperar-divisor__linha {
	width: 28px;
	height: 1px;
	background: var(--agencia-accent);
	opacity: 0.5;
}

.agencia-esperar-divisor__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	color: var(--agencia-accent);
}

.agencia-esperar-divisor__icone svg {
	width: 18px;
	height: 18px;
}

.agencia-esperar-intro h2 {
	margin: 0 0 0.6rem;
}

.agencia-esperar-intro p {
	margin: 0;
	color: var(--agencia-muted);
}

.agencia-esperar-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	max-width: 1100px;
	margin: 0 auto;
}

.agencia-esperar-card {
	background: #fff;
	border-radius: var(--agencia-radius);
	padding: 1.75rem 1.5rem;
	text-align: center;
	box-shadow: var(--agencia-shadow);
}

.agencia-esperar-card__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--agencia-bg-soft);
	color: var(--agencia-primary);
	margin-bottom: 1rem;
}

.agencia-esperar-card__icone svg {
	width: 24px;
	height: 24px;
}

.agencia-esperar-card h3 {
	margin: 0 0 0.5rem;
	font-size: 1.05rem;
}

.agencia-esperar-card p {
	margin: 0;
	font-size: 0.88rem;
	color: var(--agencia-muted);
	line-height: 1.5;
}

/* Pricing cards */

.agencia-precos-intro {
	max-width: 620px;
	margin: 0 auto 2rem;
	text-align: center;
}

.agencia-precos-intro h2 {
	margin: 0 0 0.6rem;
}

.agencia-precos-intro p {
	margin: 0;
	color: var(--agencia-muted);
}

/* auto-fill (used elsewhere in this file) always reserves as many 220px
   tracks as fit the row, even when there are fewer cards than that — the
   leftover tracks stay empty instead of disappearing, so a trip configured
   with a single payment option (e.g. only "Reservar sem pagamento agora"
   enabled) renders as one card stranded on the left with a large dead strip
   of white space next to it. auto-fit collapses those empty tracks to 0,
   and justify-content:center + a capped track size (instead of 1fr, which
   would just stretch the lone card to fill the whole row) lets 1-3 cards
   sit centered at a natural size instead of stretching or floating left. */
.agencia-precos-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 300px));
	justify-content: center;
	gap: 1.25rem;
	margin: 1.5rem 0;
}

.agencia-preco-card {
	background: #fff;
	border: 1px solid var(--agencia-bg-soft);
	border-radius: var(--agencia-radius);
	padding: 1.75rem 1.5rem;
	text-align: center;
	box-shadow: var(--agencia-shadow);
}

.agencia-preco-card__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent);
	margin-bottom: 1rem;
}

.agencia-preco-card__icone svg {
	width: 24px;
	height: 24px;
}

.agencia-preco-card__label {
	margin: 0 0 0.6rem;
	font-weight: 600;
	color: var(--agencia-primary);
}

.agencia-preco-card__valor {
	margin: 0 0 0.4rem;
	font-family: var(--agencia-font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--agencia-accent);
}

.agencia-preco-card__detalhe {
	margin: 0;
	font-size: 0.85rem;
	color: var(--agencia-muted);
}

@media (max-width: 782px) {
	.agencia-esperar-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.agencia-esperar-grid {
		grid-template-columns: 1fr;
	}
}

/* Reserva form */

.agencia-reserva-form {
	background: var(--agencia-bg-light);
	border-radius: var(--agencia-radius);
	padding: 2rem;
}

.agencia-reserva-form p {
	margin: 0 0 1.6rem;
}

.agencia-reserva-form label {
	display: block;
	font-weight: 600;
	color: var(--agencia-primary);
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
}

.agencia-reserva-form input[type="text"],
.agencia-reserva-form input[type="email"],
.agencia-reserva-form input[type="date"],
.agencia-reserva-form input[type="number"] {
	width: 100%;
	max-width: 420px;
	padding: 0.85rem 1rem;
	border: 1px solid var(--agencia-border);
	border-radius: 8px;
	font-family: var(--agencia-font-body);
	font-size: 0.95rem;
	background: #fff;
}

.agencia-reserva-form fieldset {
	border: 1px solid var(--agencia-border);
	border-radius: var(--agencia-radius);
	padding: 1rem 1.25rem 1.25rem;
	margin: 1.5rem 0;
	background: #fff;
}

.agencia-reserva-form legend {
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	color: var(--agencia-primary);
	padding: 0 0.4rem;
}

.agencia-reserva-form fieldset .agencia-reserva-form__opcao {
	display: block;
	margin: 0.5rem 0;
	font-weight: 400;
}

.agencia-reserva-form input[type="radio"],
.agencia-reserva-form input[type="checkbox"] {
	accent-color: var(--agencia-accent);
}

.agencia-reserva-form__opcao-detalhe {
	display: block;
	font-size: 0.8rem;
	color: var(--agencia-muted);
	margin-top: 0.15rem;
}

.agencia-form-erro {
	background: #fdecea;
	border: 1px solid #f5c2c0;
	border-radius: var(--agencia-radius);
	padding: 0.9rem 1.2rem;
	margin-bottom: 1.5rem;
	color: #a12a20;
}

/* Utilitário: esconde visualmente mas mantém acessível a leitores de tela */

.agencia-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Layout de duas colunas: resumo fixo + wizard */

.agencia-reserva-layout {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	gap: 2rem;
	align-items: start;
}

/* Grid items default to min-width:auto, which lets their content's
   min-content size (e.g. the 4-item step row below) force the item wider
   than its actual track share, overflowing to the right — the same
   class of bug already fixed on .agencia-institucional__feature. Since the
   reserva section only recently started rendering at its intended
   (narrower, hero-aligned) width, this was previously masked by extra
   slack from the wider fallback layout. */
.agencia-reserva-layout__resumo,
.agencia-reserva-layout__wizard {
	min-width: 0;
}

.agencia-reserva-layout__resumo {
	position: sticky;
	top: 1.5rem;
	max-height: calc(100vh - 3rem);
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--agencia-border);
	border-radius: var(--agencia-radius);
	overflow: hidden;
	box-shadow: var(--agencia-shadow);
}

.agencia-reserva-layout__resumo-foto {
	display: block;
	width: 100%;
	height: 220px;
	flex: none;
	object-fit: cover;
}

.agencia-reserva-layout__resumo-corpo {
	padding: 1.25rem 1.4rem 1.5rem;
	overflow-y: auto;
}

.agencia-reserva-layout__resumo-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 0.9rem;
}

.agencia-reserva-layout__resumo-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.6rem;
	border-radius: 999px;
	background: var(--agencia-bg-soft);
	color: var(--agencia-primary);
	font-size: 0.72rem;
	font-weight: 600;
}

.agencia-reserva-layout__resumo-badge svg {
	width: 13px;
	height: 13px;
	color: var(--agencia-accent);
}

.agencia-reserva-layout__resumo-descricao {
	margin: 0 0 1rem;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--agencia-muted);
}

.agencia-reserva-layout__resumo-divisor {
	height: 1px;
	margin: 1.1rem 0;
	background: var(--agencia-border);
}

.agencia-reserva-layout__resumo-subtitulo {
	margin: 0 0 0.6rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--agencia-accent);
}

.agencia-reserva-layout__resumo-destaques {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.agencia-reserva-layout__resumo-destaques li {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.83rem;
	color: var(--agencia-primary);
}

.agencia-reserva-layout__resumo-destaques svg {
	flex: none;
	width: 16px;
	height: 16px;
	color: var(--agencia-teal);
}

.agencia-reserva-layout__resumo-preco {
	margin: 0 0 0.85rem;
	font-size: 0.85rem;
	color: var(--agencia-muted);
}

.agencia-reserva-layout__resumo-preco strong {
	display: block;
	font-family: var(--agencia-font-heading);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--agencia-accent);
	line-height: 1.3;
}

.agencia-reserva-layout__resumo-pagamentos {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.agencia-reserva-layout__resumo-pagamentos li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	font-size: 0.82rem;
	color: var(--agencia-muted);
	padding-bottom: 0.5rem;
	border-bottom: 1px dashed var(--agencia-border);
}

.agencia-reserva-layout__resumo-pagamentos li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.agencia-reserva-layout__resumo-pagamentos strong {
	color: var(--agencia-primary);
	font-weight: 700;
	white-space: nowrap;
}

.agencia-reserva-layout__resumo-eyebrow {
	margin: 0 0 0.3rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--agencia-accent);
}

.agencia-reserva-layout__resumo-titulo {
	margin: 0 0 1rem;
	font-family: var(--agencia-font-heading);
	font-size: 1.15rem;
	font-style: italic;
	font-weight: 700;
	color: var(--agencia-primary);
	line-height: 1.3;
}

.agencia-reserva-layout__resumo-linha {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: var(--agencia-muted);
}

.agencia-reserva-layout__resumo-linha:last-child {
	margin-bottom: 0;
}

.agencia-reserva-layout__resumo-linha svg {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 0.05rem;
	color: var(--agencia-teal);
}

.agencia-reserva-layout__resumo-linha strong {
	color: var(--agencia-primary);
}

@media (max-width: 782px) {
	.agencia-reserva-layout {
		grid-template-columns: 1fr;
	}

	.agencia-reserva-layout__resumo {
		position: static;
	}
}

/* Reserva wizard (etapas com progresso) */

.agencia-reserva-wizard__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.9rem;
}

.agencia-reserva-wizard__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	background: var(--agencia-accent);
	color: #fff;
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 0.8rem;
}

.agencia-reserva-wizard__topo-titulo {
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 1rem;
	color: var(--agencia-primary);
}

.agencia-reserva-wizard__barra {
	background: var(--agencia-bg-soft);
	border-radius: 999px;
	height: 8px;
	overflow: hidden;
	margin-bottom: 1.5rem;
}

.agencia-reserva-wizard__barra-preenchida {
	display: block;
	height: 100%;
	width: 25%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--agencia-teal), var(--agencia-accent));
	transition: width 0.35s ease;
}

.agencia-reserva-wizard__passos {
	display: flex;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	gap: 0.5rem;
}

.agencia-reserva-wizard__passo {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	text-align: center;
}

.agencia-reserva-wizard__passo-label {
	overflow-wrap: break-word;
}

.agencia-reserva-wizard__passo-bolha {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--agencia-border);
	color: var(--agencia-muted);
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	font-size: 0.9rem;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.agencia-reserva-wizard__passo-check {
	display: none;
	width: 16px;
	height: 16px;
}

.agencia-reserva-wizard__passo-label {
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--agencia-muted);
}

.agencia-reserva-wizard__passo--ativo .agencia-reserva-wizard__passo-bolha {
	border-color: var(--agencia-accent);
	color: var(--agencia-accent);
	transform: scale(1.08);
}

.agencia-reserva-wizard__passo--ativo .agencia-reserva-wizard__passo-label {
	color: var(--agencia-primary);
}

.agencia-reserva-wizard__passo--concluido .agencia-reserva-wizard__passo-bolha {
	background: var(--agencia-teal);
	border-color: var(--agencia-teal);
	color: #fff;
}

.agencia-reserva-wizard__passo--concluido .agencia-reserva-wizard__passo-numero {
	display: none;
}

.agencia-reserva-wizard__passo--concluido .agencia-reserva-wizard__passo-check {
	display: block;
}

.agencia-reserva-wizard__passo--concluido .agencia-reserva-wizard__passo-label {
	color: var(--agencia-primary);
}

.agencia-reserva-wizard__reforco {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--agencia-accent-soft);
	color: var(--agencia-accent-dark);
	font-weight: 600;
	font-size: 0.85rem;
	padding: 0.6rem 1rem;
	border-radius: 999px;
	margin: 0 0 1.5rem;
}

.agencia-reserva-wizard__nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.agencia-reserva-wizard__nav .agencia-btn--outline {
	margin-right: auto;
}

.agencia-reserva-wizard__nav svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 560px) {
	.agencia-reserva-wizard__passo-label {
		display: none;
	}
}

.agencia-reserva-wizard__stepper {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}

.agencia-reserva-wizard__stepper-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.2rem;
	height: 2.2rem;
	border: 1px solid var(--agencia-border);
	border-radius: 50%;
	background: #fff;
	color: var(--agencia-primary);
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.agencia-reserva-wizard__stepper-btn:hover {
	background: var(--agencia-accent-soft);
	border-color: var(--agencia-accent);
	color: var(--agencia-accent-dark);
}

.agencia-reserva-wizard__stepper-input {
	width: 3.5rem !important;
	max-width: 3.5rem !important;
	text-align: center;
	-moz-appearance: textfield;
}

.agencia-reserva-wizard__stepper-input::-webkit-outer-spin-button,
.agencia-reserva-wizard__stepper-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.agencia-reserva-wizard__total-bar {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 1.5rem -2rem -2rem;
	padding: 1rem 2rem;
	background: var(--agencia-bg-soft);
	border-top: 1px solid var(--agencia-border);
	border-radius: 0 0 var(--agencia-radius) var(--agencia-radius);
}

.agencia-reserva-wizard__total-label {
	font-weight: 600;
	color: var(--agencia-muted);
	font-size: 0.9rem;
}

.agencia-reserva-wizard__total-valor {
	font-family: var(--agencia-font-heading);
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--agencia-accent);
}

/* Termos modal */

.agencia-termos-link {
	background: none;
	border: none;
	padding: 0;
	color: var(--agencia-accent);
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
	font-family: inherit;
	font-size: inherit;
}

.agencia-termos-link:hover {
	color: var(--agencia-accent-dark);
}

body.agencia-termos-aberto {
	overflow: hidden;
}

.agencia-termos-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.agencia-termos-modal[hidden] {
	display: none;
}

.agencia-termos-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(13, 26, 46, 0.6);
}

.agencia-termos-modal__caixa {
	position: relative;
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
	max-width: 640px;
	width: 100%;
	max-height: 85vh;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.agencia-termos-modal__cabecalho {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--agencia-bg-soft);
}

.agencia-termos-modal__cabecalho h3 {
	margin: 0;
	font-family: var(--agencia-font-heading);
	color: var(--agencia-primary);
	font-size: 1.1rem;
}

.agencia-termos-modal__fechar {
	background: none;
	border: none;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--agencia-muted);
	cursor: pointer;
	padding: 0.25rem;
}

.agencia-termos-modal__fechar:hover {
	color: var(--agencia-primary);
}

.agencia-termos-modal__corpo {
	padding: 1.25rem 1.5rem;
	overflow-y: auto;
	color: var(--agencia-text);
	font-size: 0.9rem;
	line-height: 1.6;
}

.agencia-termos-modal__corpo p {
	margin: 0 0 1rem;
}

.agencia-termos-modal__rodape {
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--agencia-bg-soft);
	text-align: right;
}

/* Testimonials */

.agencia-depoimentos-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5rem;
	margin: 1.5rem 0;
}

.agencia-depoimento {
	background: var(--agencia-bg-light);
	border-radius: var(--agencia-radius);
	padding: 1.5rem;
	margin: 0;
	border-left: 4px solid var(--agencia-teal);
}

.agencia-depoimento p {
	margin: 0 0 0.75rem;
	font-style: italic;
	line-height: 1.6;
}

.agencia-depoimento cite {
	font-style: normal;
	font-weight: 600;
	color: var(--agencia-primary);
}

/* Login */

.agencia-login {
	max-width: 420px;
	margin: 3rem auto;
	padding: 2rem;
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
}

.agencia-login-form p {
	margin: 0.9rem 0;
}

.agencia-login-form label {
	display: block;
	font-weight: 600;
	color: var(--agencia-primary);
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
}

.agencia-login-form input[type="text"],
.agencia-login-form input[type="password"] {
	width: 100%;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--agencia-border);
	border-radius: 8px;
	font-family: var(--agencia-font-body);
	font-size: 0.95rem;
}

/* Minhas reservas */

.agencia-minhas-reservas-card {
	max-width: 1100px;
	margin: 2.5rem auto;
	padding: 0 1.5rem;
}

.agencia-minhas-reservas {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: var(--agencia-radius);
	overflow: hidden;
	box-shadow: var(--agencia-shadow);
}

.agencia-minhas-reservas th,
.agencia-minhas-reservas td {
	padding: 0.9rem 1.1rem;
	text-align: left;
	border-bottom: 1px solid var(--agencia-bg-soft);
}

.agencia-minhas-reservas th {
	background: var(--agencia-primary);
	color: #fff;
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.agencia-minhas-reservas tbody tr:last-child td {
	border-bottom: none;
}

/* Status badges */

.agencia-status-badge {
	display: inline-block;
	padding: 0.3rem 0.85rem;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 600;
}

.agencia-status-badge--confirmada {
	background: #e3f8f1;
	color: #0b8a63;
}

.agencia-status-badge--parcial {
	background: #e5f4fb;
	color: #0f6fa3;
}

.agencia-status-badge--pendente {
	background: #fff3e0;
	color: #b06a00;
}

.agencia-status-badge--cancelada {
	background: #fdecea;
	color: #a12a20;
}

/* Obrigado */

.agencia-obrigado {
	max-width: 640px;
	margin: 3rem auto;
	padding: 2.5rem;
	text-align: center;
	background: #fff;
	border-radius: var(--agencia-radius);
	box-shadow: var(--agencia-shadow);
}

.agencia-obrigado__icone {
	width: 64px;
	height: 64px;
	margin: 0 auto 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--agencia-teal);
	color: #fff;
	font-size: 1.75rem;
	font-weight: 700;
}

.agencia-card,
.agencia-obrigado-resumo {
	width: 100%;
	border-collapse: collapse;
	margin-top: 1.5rem;
	text-align: left;
}

.agencia-obrigado-resumo th,
.agencia-obrigado-resumo td {
	padding: 0.7rem 0.9rem;
	border-bottom: 1px solid var(--agencia-bg-soft);
}

.agencia-obrigado-resumo tbody tr:last-child th,
.agencia-obrigado-resumo tbody tr:last-child td {
	border-bottom: none;
}

/* Pagamento */

.agencia-pagamento-pix,
.agencia-pagamento-cartao {
	border: 1px solid var(--agencia-bg-soft);
	border-radius: var(--agencia-radius);
	padding: 1.5rem;
	margin: 1.5rem 0;
	background: var(--agencia-bg-light);
}

.agencia-pagamento-pix__qrcode {
	display: block;
	width: 220px;
	height: 220px;
	margin: 0.75rem auto;
	border-radius: 8px;
}

.agencia-pagamento-pix__codigo {
	width: 100%;
	max-width: 420px;
	font-family: monospace;
	font-size: 0.85em;
	padding: 0.6rem;
	border: 1px solid var(--agencia-border);
	border-radius: 8px;
}

.agencia-pagamento-pix__aviso {
	font-size: 0.85em;
	color: var(--agencia-muted);
}

.agencia-pagamento-pix__copiar {
	display: block;
	margin: 0.5rem auto 0;
	padding: 0.6rem 1.4rem;
	border-radius: 999px;
	border: 2px solid var(--agencia-primary);
	background: transparent;
	color: var(--agencia-primary);
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	cursor: pointer;
}

.agencia-pagamento-pix__copiar:hover {
	background: var(--agencia-primary);
	color: #fff;
}

.agencia-pagamento-erro {
	background: #fdecea;
	border: 1px solid #f5c2c0;
	border-radius: var(--agencia-radius);
	padding: 0.9rem 1.2rem;
	margin-bottom: 1.5rem;
	color: #a12a20;
}

.agencia-pagamento-cartao__mensagem {
	background: #fdecea;
	border: 1px solid #f5c2c0;
	border-radius: var(--agencia-radius);
	padding: 0.75rem 1rem;
	margin-top: 1rem;
	color: #a12a20;
	font-size: 0.9em;
}

/* Site-wide header/footer branding (theme header + plugin-generated footer) */

.wp-block-site-title,
.wp-block-site-title a {
	font-family: var(--agencia-font-heading);
	font-weight: 700;
	color: var(--agencia-primary);
	text-decoration: none;
}

.wp-block-navigation {
	font-family: var(--agencia-font-body);
}

.wp-block-navigation a {
	color: var(--agencia-text);
}

.wp-block-navigation a:hover {
	color: var(--agencia-accent);
}

/* Top utility bar (thin strip above the header, quick trust reassurances) */

.agencia-topbar {
	background: var(--agencia-primary-dark);
}

.agencia-topbar__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0.5rem 1.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.75rem;
	font-family: var(--agencia-font-body);
	font-size: 0.78rem;
	font-weight: 500;
	color: #cfd8e8;
	text-align: center;
}

.agencia-topbar__inner span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	position: relative;
}

.agencia-topbar__inner span:not(:last-child)::after {
	content: '';
	position: absolute;
	right: -0.875rem;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.25);
}

.agencia-topbar__icone {
	width: 13px;
	height: 13px;
	color: var(--agencia-teal);
	flex-shrink: 0;
}

/* On classic (non-block) active themes, e.g. Hello Elementor in
   production, get_header()/get_footer() render the theme's own bare
   header.php/footer.php directly — the render_block_core/template-part
   swap below never fires there, so TemplateLoader also injects the
   agency header/footer via wp_body_open/wp_footer (see
   render_classic_theme_header/footer()) and we hide the theme's
   native wrappers here so they don't show up empty/unstyled alongside. */
body.agencia-classic-theme #site-header,
body.agencia-classic-theme #site-footer,
body.agencia-classic-theme .site-header,
body.agencia-classic-theme .site-footer {
	display: none !important;
}

/* Site header (logo + nav, replaces the theme's block header everywhere) */

.agencia-site-header {
	background: var(--agencia-primary);
	box-shadow: 0 2px 12px rgba(15, 26, 46, 0.08);
	position: relative;
	z-index: 20;
	/* The theme applies a default margin-block-start to every direct child
	   of .wp-site-blocks (via :where(), so any real selector overrides it).
	   Without this, a visible white sliver appears between the topbar and
	   the header, since this header is the 2nd child of that wrapper. */
	margin-block-start: 0;
}

.agencia-site-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0.9rem 1.5rem;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.agencia-site-header__logo {
	display: block;
	line-height: 0;
	margin-right: auto;
}

.agencia-site-header__logo img {
	display: block;
	width: 56px;
	height: 56px;
	object-fit: contain;
}

.agencia-site-header__nav {
	display: flex;
	align-items: center;
	gap: 1.75rem;
}

.agencia-site-header__nav a {
	position: relative;
	font-family: var(--agencia-font-body);
	font-weight: 500;
	font-size: 0.95rem;
	color: #cfd8e8;
	text-decoration: none;
	padding-bottom: 0.3rem;
}

.agencia-site-header__nav a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: var(--agencia-accent);
	transition: right 0.2s ease;
}

.agencia-site-header__nav a:hover {
	color: #fff;
}

.agencia-site-header__nav a:hover::after {
	right: 0;
}

.agencia-site-header__toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 32px;
	height: 32px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

.agencia-site-header__toggle span {
	display: block;
	height: 2px;
	background: #fff;
	border-radius: 2px;
}

@media (max-width: 860px) {
	.agencia-site-header__toggle {
		display: flex;
	}

	.agencia-site-header__nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
		background: var(--agencia-primary);
		padding: 1.25rem 1.5rem;
		box-shadow: 0 12px 20px rgba(15, 26, 46, 0.1);
	}

	.agencia-site-header__nav--aberto {
		display: flex;
	}

	.agencia-site-header__actions {
		display: none;
	}
}

/* Site footer */

.agencia-site-footer {
	background: var(--agencia-primary-dark);
	color: #cfd8e8;
	padding: 0 1.5rem 1.5rem;
	margin-top: 0;
}

.agencia-site-footer__selos {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	padding: 1.75rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.agencia-site-footer__selo {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.agencia-site-footer__selo-icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: var(--agencia-teal);
}

.agencia-site-footer__selo-icone svg {
	width: 20px;
	height: 20px;
}

.agencia-site-footer__selo-titulo {
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	font-size: 0.9rem;
	color: #fff;
}

.agencia-site-footer__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.2fr 1fr 1.2fr;
	gap: 2.5rem;
	text-align: left;
	padding: 2.5rem 0 2rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.agencia-site-footer__col {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.agencia-site-footer__logo {
	width: 56px;
	height: 56px;
	object-fit: contain;
}

.agencia-site-footer__titulo {
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	color: #fff;
	margin: 0 0 0.4rem;
}

.agencia-site-footer__marca {
	font-family: var(--agencia-font-heading);
	font-weight: 600;
	font-size: 1.15rem;
	color: #fff;
	margin: 0;
}

.agencia-site-footer__slogan {
	margin: 0;
	font-size: 0.9rem;
	color: #cfd8e8;
}

.agencia-site-footer__stat {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-top: 0.9rem;
	padding: 0.85rem 1rem;
	background: rgba(255, 255, 255, 0.06);
	border-radius: var(--agencia-radius);
	font-size: 0.85rem;
	color: #cfd8e8;
}

.agencia-site-footer__stat svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	color: var(--agencia-accent);
}

.agencia-site-footer__stat strong {
	color: #fff;
}

.agencia-site-footer__telefone {
	margin: 0;
	font-weight: 600;
	color: #fff;
}

.agencia-site-footer__redes-titulo {
	margin: 0.6rem 0 0;
	font-size: 0.85rem;
	color: #cfd8e8;
}

.agencia-site-footer__redes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: 0.5rem;
}

.agencia-site-footer__redes a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #cfd8e8;
	transition: background 0.2s ease, color 0.2s ease;
}

.agencia-site-footer__redes a svg {
	width: 18px;
	height: 18px;
}

.agencia-site-footer__redes a:hover {
	background: var(--agencia-teal);
	color: var(--agencia-primary-dark);
}

.agencia-site-footer__nav {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.agencia-site-footer__nav a {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	color: #cfd8e8;
	text-decoration: none;
	font-size: 0.95rem;
}

.agencia-site-footer__nav a svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	color: var(--agencia-teal);
}

.agencia-site-footer__nav a:hover {
	color: var(--agencia-teal);
}

.agencia-site-footer__contato-card {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.9rem 1rem;
	background: rgba(255, 255, 255, 0.06);
	border-radius: var(--agencia-radius);
}

.agencia-site-footer__contato-card-icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(0, 201, 167, 0.18);
	color: var(--agencia-teal);
}

.agencia-site-footer__contato-card-icone svg {
	width: 18px;
	height: 18px;
}

.agencia-site-footer__contato-card-texto {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	font-size: 0.85rem;
}

.agencia-site-footer__whatsapp-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.85rem;
	padding: 0.75rem 1rem;
	background: var(--agencia-accent);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	border-radius: var(--agencia-radius);
	transition: background 0.2s ease;
}

.agencia-site-footer__whatsapp-cta svg {
	width: 18px;
	height: 18px;
}

.agencia-site-footer__whatsapp-cta:hover {
	background: var(--agencia-accent-dark);
}

.agencia-site-footer__bottom {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	padding-top: 1.5rem;
}

.agencia-site-footer__copy {
	margin: 0;
	font-size: 0.85rem;
	color: #8b98b3;
}

.agencia-site-footer__pagamentos {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.agencia-site-footer__pagamentos-titulo {
	font-size: 0.8rem;
	color: #8b98b3;
}

.agencia-site-footer__pagamentos-lista {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.agencia-site-footer__pagamento-badge {
	padding: 0.3rem 0.65rem;
	background: rgba(255, 255, 255, 0.1);
	color: #e6ebf5;
	font-size: 0.75rem;
	font-weight: 600;
	border-radius: 6px;
	letter-spacing: 0.02em;
}

.agencia-scroll-topo {
	position: fixed;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 40;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: none;
	border-radius: 50%;
	background: var(--agencia-accent);
	color: #fff;
	box-shadow: var(--agencia-shadow);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.agencia-scroll-topo:hover {
	background: var(--agencia-accent-dark);
	transform: translateY(-3px);
}

.agencia-scroll-topo svg {
	width: 22px;
	height: 22px;
}

@media (max-width: 900px) {
	.agencia-site-footer__selos {
		grid-template-columns: repeat(2, 1fr);
	}

	.agencia-site-footer__inner {
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	}
}

@media (max-width: 600px) {
	.agencia-site-footer__selos {
		grid-template-columns: 1fr;
	}

	.agencia-site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}
}
