/*
Theme Name: Tema Corporate AI GO
Theme URI: https://blisq.pt
Author: Blisq Creative
Author URI: https://blisq.pt
Description: Tema base WordPress corporate da Blisq Creative. Modular. Código transversal em /src e /modules; código de cada projeto em /inc.
Version: 1.1.0
Requires at least: 6.5
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-logo, custom-menu, featured-images, translation-ready
Text Domain: blisq
*/

:root {
	--blisq-color-background: #fff;
	--blisq-color-border: #dcdcde;
	--blisq-color-error: #b32d2e;
	--blisq-color-text: #191919;
	--blisq-content-width: 48rem;
	--blisq-wide-width: 80rem;
	--blisq-space: 1.5rem;
}

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

html {
	overflow-x: hidden;
	scroll-behavior: smooth;
}

body {
	background: var(--blisq-color-background);
	color: var(--blisq-color-text);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.6;
	margin: 0;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	cursor: pointer;
}

img,
svg,
video {
	display: block;
	height: auto;
	max-width: 100%;
}

a {
	color: inherit;
}

.site-header,
.site-main,
.site-footer {
	margin-inline: auto;
	max-width: var(--blisq-wide-width);
	padding: var(--blisq-space);
	width: 100%;
}

.site-header,
.site-footer-legal,
.menu {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.site-header,
.site-footer-legal {
	justify-content: space-between;
}

.menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-main {
	min-height: 60vh;
}

.site-main>* {
	margin-inline: auto;
	max-width: var(--blisq-content-width);
}

.site-main>.alignwide,
.site-main>.wp-block-group.alignwide,
.site-main>.wp-block-cover.alignwide {
	max-width: var(--blisq-wide-width);
}

.site-main>.alignfull {
	margin-inline: calc(50% - 50vw);
	max-width: none;
	width: 100vw;
}

.entry-content>*+*,
.site-main>*+* {
	margin-block-start: var(--blisq-space);
}

.entry-thumbnail {
	margin-block: var(--blisq-space);
}

.entry-thumbnail img {
	width: 100%;
}

.navigation.pagination,
.post-navigation,
.comments-area {
	margin-block-start: calc(var(--blisq-space) * 2);
}

.blisq-table-wrapper {
	overflow-x: auto;
}

.blisq-table {
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}

.blisq-table caption {
	font-weight: 700;
	padding-block-end: 0.5rem;
	text-align: start;
}

.blisq-table td,
.blisq-table th {
	border: 1px solid var(--blisq-color-border);
	padding: 0.6rem 0.75rem;
	text-align: start;
}

.blisq-table.is-striped tbody tr:nth-child(even) {
	background: #f6f7f7;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-break: normal !important;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f6f7f7;
	clip-path: none;
	color: #1d2327;
	display: block;
	font-size: 1rem;
	font-weight: 600;
	height: auto;
	left: 0.5rem;
	line-height: normal;
	padding: 0.75rem 1rem;
	top: 0.5rem;
	width: auto;
	z-index: 100000;
}

/* Frontend Intersol. Administração isolada em assets/admin/. */
:root {
	--intersol-blue: #033478;
	--intersol-navy: #001532;
	--intersol-bright: #0082ec;
	--intersol-yellow: #ebc10a;
	--intersol-paper: #f1f8fd;
	--intersol-tint: #d4e7f7;
	--intersol-text: #8298B5;
	--intersol-muted: #829FC2;
	--intersol-border: #b7d6ef;
	--intersol-heading: 'Zalando Sans Expanded', sans-serif;
}

body {
	background: var(--intersol-paper);
	color: var(--intersol-blue);
	font: 600 16px/1.5 'Quicksand', sans-serif;
}

h1,
h2,
h3,
h4,
p,
figure {
	margin: 0;
}

h1,
h2,
h3,
h4 {
	font-family: var(--intersol-heading);
	font-weight: 800;
	line-height: 1.1;
}

h1,
h2 {
	text-wrap: balance;
}

h1 {
	font-size: clamp(32px, 2.8vw, 54px);
	letter-spacing: -2px;
	text-transform: uppercase;
}

h2 {
	font-size: clamp(20px, 2.2vw, 42px);
	letter-spacing: -1.7px;
	text-transform: uppercase;
}

h3 {
	font-size: 20px;
	letter-spacing: -0.6px;
}

h4 {
	font-size: 14px;
}

a {
	text-decoration: none;
}

button,
input,
select,
textarea {
	font-family: inherit;
}

button {
	border: 0;
}

button,
a,
input,
select,
textarea,
summary {
	-webkit-tap-highlight-color: transparent;
	scroll-margin-block: 100px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--intersol-bright);
	outline-offset: 4px;
}

[hidden] {
	display: none !important;
}

.site-main {
	max-width: none;
	padding: 0;
	min-height: 60vh;
}

.site-main>* {
	max-width: none;
	margin-block: 0;
}

.container {
	width: 100%;
	max-width: 1720px;
	margin-inline: auto;
	padding-inline: 40px;
}

.container--narrow {
	max-width: 1560px;
}

.section {
	padding-block: 100px;
	scroll-margin-block: 30px;
}

.section--compact {
	padding-block: 60px;
}

.section--tinted {
	background: var(--intersol-tint);
}

.section--bright {
	background: var(--intersol-bright);
}

.split-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	align-items: center;
	gap: 80px;
}

.split-layout--editorial {
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.65fr);
	align-items: start;
	gap: 100px;
}

.section-heading--program {
	position: sticky;
	top: 20px;
}

.section-heading {
	max-width: 760px;
	margin-block-end: 18px;
}

.section-heading--included {
	margin-block-end: 42px;
}

.section-heading>*+* {
	margin-block-start: 10px;
}

.section-heading--compact h2 {
	font-size: clamp(20px, 1.8vw, 34px);
}

.section-heading>p:not(.eyebrow) {
	color: #A3B0C2;
	font-size: 18px;
	line-height: 1.6;
}

.prose {
	color: #8198B6;
	font-size: 18px;
	line-height: 1.6;
}

.contact-panel>.section-heading>p:not(.eyebrow) {
	color: #829FC2;
}

.section-heading--center {
	margin-inline: auto;
	max-width: 950px;
	text-align: center;
}

.section-heading--center>p:not(.eyebrow) {
	max-width: 752px;
	margin-inline: auto;
}

.eyebrow {
	color: var(--intersol-yellow);
	font: 600 14px/1.2 var(--intersol-heading);
	letter-spacing: -0.5px;
	text-transform: uppercase;
}

.eyebrow--blue {
	color: #0063b5;
}

.prose>*+* {
	margin-block-start: 20px;
}

.prose h2,
.prose h3 {
	color: var(--intersol-blue);
	font-size: 24px;
	text-transform: none;
}

.prose ul,
.prose ol {
	padding-inline-start: 24px;
}

.button-group,
.form-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 16px 19px;
	border-radius: 10px;
	background: var(--intersol-blue);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	transition: background 180ms, box-shadow 180ms, transform 180ms;
}

.button:hover {
	background: #0950b2;
	box-shadow: 0 6px 18px #00153220;
}

.button:active {
	transform: translateY(1px);
}

.button:disabled {
	background: #d4dfec;
	color: #536d90;
	box-shadow: none;
	cursor: wait;
}

.button--bright {
	background: #0082EC;
}

.button--bright:hover {
	background: var(--intersol-blue);
}

.section--compact .button--bright:hover,
.section--compact .button--bright:focus-visible {
	background: #0950b2;
}

.button--arrow::after {
	content: '';
	display: block;
	background: url('assets/images/arrow-white.svg') center / contain no-repeat;
	width: 14px;
	aspect-ratio: 1;
}

.text-button {
	padding: 8px 0;
	background: transparent;
	color: inherit;
	font-weight: 600;
	text-align: start;
}

.text-button:hover,
.text-link:hover {
	color: #0063b5;
}

.text-link {
	font-size: 14px;
	font-weight: 700;
}

.text-link::after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	margin-inline-start: 10px;
	width: 11.3112px;
	height: 11.2708px;
	background: url('assets/images/arrow-blue.svg') center / contain no-repeat;
	transform: rotate(45deg);
	transition: transform 180ms ease;
}

.text-link:hover::after,
.text-link:focus-visible::after {
	transform: translateX(4px) rotate(45deg);
}

.filter-introduction {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.filter-introduction::before {
	content: '';
	width: 23px;
	aspect-ratio: 1;
	background: url('assets/images/search.svg') center / contain no-repeat;
}

/* Cabeçalho sobre o hero e submenus flutuantes. */
.site-header {
	position: relative;
	z-index: 20;
	width: 94%;
	max-width: 1800px;
	margin: 60px auto;
	padding: 10px 20px;
	border-radius: 10px;
	background: #f6fbfe;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.site-header--overlay {
	position: absolute;
	inset-inline: 40px;
	top: 60px;
	width: auto;
	margin-block: 0;
}

.admin-bar .site-header--overlay {
	margin-top: var(--wp-admin--admin-bar--height, 32px);
}

.site-branding {
	flex-shrink: 0;
}

.d-block,
.site-branding a {
	display: block;
}

.site-branding img {
	width: 146px;
	height: auto;
}

.menu-primary {
	gap: 10px;
	font-size: 15px;
	font-weight: 500;
}

.menu-primary>li {
	position: relative;
	display: flex;
	align-items: center;
}

.menu-primary a {
	display: block;
	padding-block: 10px;
}

.menu-primary a:hover,
.menu-primary .current-menu-item>a {
	color: #0063b5;
}

.menu-primary>.menu-cta>a {
	padding: 12px 17px;
	border-radius: 10px;
	background: var(--intersol-blue);
	color: white;
	font-weight: 700;
}

.menu-primary>.menu-cta>a:hover,
.menu-primary>.menu-cta>a:focus-visible {
	background: #0950b2;
}

@media (min-width: 1025px) {
	.menu-primary>li:not(.menu-cta)>a {
		padding-inline: 8px;
		border-radius: 8px;
		color: #51719d;
		transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
	}

	.menu-primary>li:not(.menu-cta)>a:hover,
	.menu-primary>li:not(.menu-cta)>a:focus-visible {
		background: #e4f2fb;
		color: #0063b5;
	}

	.menu-primary>li:not(.menu-cta).is-open>a {
		box-shadow: inset 0 0 0 1.5px var(--intersol-bright);
	}

	.menu-primary>li:not(.menu-cta).is-open>a:hover,
	.menu-primary>li:not(.menu-cta).is-open>a:focus-visible {
		background: var(--intersol-paper);
	}
}

.menu-primary .menu-item-has-children>a {
	display: flex;
	align-items: center;
	gap: 10px;
}

.menu-primary .menu-item-has-children>a::after {
	content: '';
	width: 6px;
	aspect-ratio: 1;
	flex-shrink: 0;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	transition: transform 180ms ease;
}

.menu-primary .is-open>a::after {
	transform: rotate(225deg);
}

.sub-menu {
	display: none;
	position: absolute;
	z-index: 30;
	inset-block-start: 100%;
	inset-inline-start: -12px;
	min-width: 220px;
	max-width: 300px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: white;
	border: 1px solid var(--intersol-tint);
	border-radius: 12px;
	box-shadow: 0 8px 24px #0014301f;
}

.sub-menu a {
	padding: 10px 14px;
	border-radius: 8px;
}

.sub-menu a:hover,
.sub-menu a:focus-visible {
	background: var(--intersol-tint);
}

.menu-primary li:hover>.sub-menu,
.menu-primary li:focus-within>.sub-menu,
.menu-primary li.is-open>.sub-menu {
	display: block;
}

.intersol-js .menu-primary li:not(.is-open)>.sub-menu {
	display: none;
}

.menu-toggle {
	display: none;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 10px 8px;
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font-size: 14px;
}

.menu-toggle[aria-expanded="true"] {
	background: var(--intersol-tint);
}

.menu-toggle__icon {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 22px;
	aspect-ratio: 1;
}

.menu-toggle__icon::before,
.menu-toggle__icon::after,
.menu-toggle__icon>span {
	content: '';
	position: absolute;
	inset-inline: 0;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 180ms ease, opacity 180ms ease;
}

.menu-toggle__icon::before {
	transform: translateY(-7px);
}

.menu-toggle__icon::after {
	transform: translateY(7px);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon::before {
	transform: rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon::after {
	transform: rotate(-45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon>span {
	opacity: 0;
	transform: scaleX(0);
}

/* Imagem/vídeo de fundo e sombras decorativas. */
.hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	display: grid;
	align-items: center;
	min-height: 100dvh;
	padding-block: 240px 160px;
	color: #f6fbfe;
	background: var(--intersol-navy);
}

.hero__background {
	position: absolute;
	z-index: -3;
	inset: 0;
}

.hero__background img,
.hero__background video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__intro,
.hero__text {
	position: relative;
}

.hero__intro::before,
.hero__text::before {
	content: '';
	position: absolute;
	z-index: -1;
	inset: -100px -90px;
	pointer-events: none;
	background: radial-gradient(ellipse, #001532e6 15%, #00153299 42%, #00153200 72%);
	filter: blur(90px);
}

.hero__content {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: end;
	gap: 130px;
}

.hero h1 {
	max-width: 558px;
	line-height: 1;
}

.hero .button-group {
	margin-block-start: 26px;
}

.hero .button:not(.button--bright) {
	background: var(--intersol-navy);
}

.hero .button:not(.button--bright):hover {
	background: #0950b2;
}

.hero__text {
	max-width: 544px;
	justify-self: end;
	text-align: right;
	font-size: 18px;
}

.hero__registration {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 110px;
	text-align: right;
	font-size: 12px;
	text-transform: uppercase;
}

/* Listagem e paginação. */
.departures {
	padding-block-start: 60px;
	padding-block-end: 0;
}

.departures h2 {
	font-size: clamp(20px, 1.8vw, 34px);
}

.trip-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	padding: 10px;
	background: var(--intersol-tint);
	border-radius: 30px;
	margin-block-end: 24px;
}

.program-filter-controls {
	position: relative;
}

.filter-panel-heading,
.filter-actions {
	display: contents;
}

.filters-toggle,
.filters-close {
	display: none;
}

.filters-toggle {
	justify-content: space-between;
	width: 100%;
}

.filters-toggle::after {
	content: '';
	width: 8px;
	aspect-ratio: 1;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 180ms ease;
}

.filters-toggle[aria-expanded='true']::after {
	transform: rotate(225deg);
}

.filter-introduction {
	flex: 0.8;
	padding: 10px;
	color: var(--intersol-text);
	font-size: 11px;
	text-transform: uppercase;
	white-space: nowrap;
}

.filter-field {
	display: block;
	flex: 1;
	min-width: 160px;
}

.filter-field select {
	display: block;
	width: 100%;
	padding: 12px 15px;
	border: 0;
	border-radius: 21px;
	background: var(--intersol-paper);
	color: var(--intersol-text);
	font-size: 14px;
}

.intersol-js .filter-submit {
	display: none;
}

.filter-feedback {
	padding-block: 12px;
}

.is-error,
[data-field-error] {
	color: #b32631;
}

[data-program-results] {
	position: relative;
}

[data-program-results][aria-busy='true'] {
	opacity: 0.55;
}

.section-heading--results {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 24px;
	max-width: none;
}

.section-heading--results> :not(.results-count) {
	grid-column: 1;
	max-width: 760px;
}

.section-heading.section-heading--results>.results-count {
	grid-column: 2;
	grid-row: 1 / span 3;
	align-self: end;
	color: var(--intersol-text);
	text-align: right;
	font-size: 14px;
	margin: 0;
}

.trip-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px 15px;
}

.trip-card {
	min-width: 0;
	border-radius: 20px;
	transition: background 200ms, box-shadow 200ms;
}

.trip-card:hover,
.trip-card:focus-within {
	background: white;
	box-shadow: 0 16px 50px #60b4f12e;
}

.trip-card__link {
	display: block;
	border-radius: inherit;
}

.trip-card__media {
	position: relative;
	overflow: hidden;
	border-radius: 20px;
	aspect-ratio: 0.9;
	background: var(--intersol-tint);
}

.trip-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms;
}

.trip-card:hover .trip-card__image {
	transform: scale(1.04);
}

.price-tag {
	position: absolute;
	top: 20px;
	left: 0;
	display: grid;
	justify-items: center;
	gap: 2px;
	border-inline-start: 8px solid var(--intersol-blue);
	background: var(--intersol-bright);
	color: white;
	padding: 8px 12px;
	border-radius: 0 18px 18px 0;
}

.price-tag small {
	font-size: 8px;
	letter-spacing: 0.8px;
	text-transform: uppercase;
}

.price-tag strong {
	color: #ffe000;
	font: 800 16px/1.2 var(--intersol-heading);
	letter-spacing: -0.7px;
	transition: font-size 180ms;
}

.trip-card:hover .price-tag strong {
	font-size: 18px;
}

.trip-card__badge {
	position: absolute;
	inset-block-end: 14px;
	inset-inline-end: 14px;
	background: var(--intersol-yellow);
	color: var(--intersol-navy);
	padding: 6px 10px;
	border-radius: 6px;
	font-size: 11px;
	text-transform: uppercase;
	transition: transform 180ms ease;
}

.trip-card:hover .trip-card__badge,
.trip-card:focus-within .trip-card__badge {
	transform: rotate(-3.82deg);
}

.trip-card__content {
	padding: 16px 18px 24px;
}

.trip-card__classification {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-block-end: 10px;
	text-transform: uppercase;
}

.trip-card__destination {
	color: var(--intersol-text);
	font: 400 10px/1.4 var(--intersol-heading);
	text-align: right;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	overflow: hidden;
	overflow-wrap: anywhere;
}

.category-badge {
	display: inline-block;
	padding: 5px 8px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #dcefff;
	color: #0082ec;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

.trip-card h3 {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	margin-block-end: 12px;
}

.icon-line {
	display: flex;
	align-items: start;
	gap: 8px;
	font-size: 11px;
	text-transform: uppercase;
	color: #001532;
}

.icon-line+.icon-line {
	margin-block-start: 2px;
}

.icon-line::before {
	content: '';
	flex-shrink: 0;
	width: 11.3336px;
	height: 11.3334px;
	margin-block-start: 2px;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
}

.icon-line--departure::before {
	background-image: url('assets/images/plane.svg');
}

.icon-line--dates::before {
	width: 12.7501px;
	height: 11.6734px;
	background-image: url('assets/images/calendar.svg');
}

.program-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-block-start: 28px;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 15px;
	border: 1px solid var(--intersol-border);
	border-radius: 8px;
	font-size: 14px;
}

.page-numbers:hover {
	background: var(--intersol-tint);
}

.page-numbers.current {
	background: var(--intersol-blue);
	color: white;
	border-color: var(--intersol-blue);
}

.page-numbers.dots {
	border-color: transparent;
}

.page-numbers:disabled {
	color: #8090a4;
	background: transparent;
	border-color: #d4e7f7;
	cursor: default;
}

.empty-state {
	padding: 60px 24px;
	border: 1px solid var(--intersol-border);
	border-radius: 20px;
	text-align: center;
}

.empty-state>*+* {
	margin-block-start: 18px;
}

/* Listas de opções acessíveis, a partir dos selects nativos. */
.custom-select {
	position: relative;
	width: 100%;
}

.native-select {
	position: absolute;
	width: 1px !important;
	height: 1px;
	padding: 0 !important;
	clip-path: inset(50%);
	overflow: hidden;
}

.custom-select__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	text-align: left;
	transition: all .2s;
}

.custom-select__value {
	min-width: 0;
}

.custom-select__button::after {
	content: '';
	flex-shrink: 0;
	width: 10px;
	height: 11px;
	background: url('assets/images/chevron.svg') center / contain no-repeat;
	transition: all .2s;
}

.custom-select__button:hover::after {
	filter: contrast(0);
}

.custom-select--filter .custom-select__button {
	gap: 5px;
	min-height: 40px;
	padding: 12px 14px;
	border: 1px solid transparent;
	border-radius: 21px;
	background: var(--intersol-paper);
	color: #5a7cab;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
}

.custom-select--filter .custom-select__button:hover {
	background: #aed0ed;
	color: var(--intersol-blue);
}

.custom-select--filter .custom-select__button[aria-expanded='true'] {
	background: white;
	border-color: #87bfe8;
}

.custom-select--filter.is-filled .custom-select__button {
	color: var(--intersol-blue);
	background: white;
}

.custom-select--form .custom-select__button {
	padding: 16px;
	border: 1px solid var(--intersol-border);
	border-radius: 12px;
	background: transparent;
	color: var(--intersol-text);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
}

.custom-select--form .custom-select__button:hover {
	background: var(--intersol-paper);
	color: #2b4161;
}

.custom-select--form .custom-select__button[aria-expanded='true'] {
	background: white;
	border-color: #87bfe8;
}

.custom-select--form.is-filled .custom-select__button {
	color: var(--intersol-blue);
	background: white;
}

.custom-select__options {
	position: absolute;
	z-index: 40;
	inset-inline-start: 0;
	top: 100%;
	width: 100%;
	min-width: 290px;
	max-height: 320px;
	overflow-y: auto;
	margin: 6px 0 0;
	padding: 6px;
	list-style: none;
	border: 1px solid var(--intersol-tint);
	border-radius: 12px;
	background: white;
	box-shadow: 0 8px 24px #0014301f;
}

.custom-select--form .custom-select__options {
	min-width: 0;
}

.custom-select__options li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	border-radius: 8px;
	color: var(--intersol-text);
	font-size: 15px;
	cursor: pointer;
}

.custom-select__options li::after {
	content: '';
	flex-shrink: 0;
	width: 13px;
	height: 10px;
	background: url('assets/images/icon-checkmark.svg') center / contain no-repeat;
	visibility: hidden;
}

.custom-select--filter .custom-select__options li[data-term-depth] {
	padding-inline-start: calc(16px + var(--term-depth) * 16px);
}

.custom-select--filter .custom-select__options li[data-term-depth='0'] {
	font-weight: 700;
}

.custom-select__options li:hover,
.custom-select__options li.is-active {
	background: var(--intersol-paper);
}

.custom-select__options li[aria-selected='true'] {
	background: var(--intersol-tint);
	color: var(--intersol-blue);
}

.custom-select__options li[aria-selected='true']::after {
	visibility: visible;
}

/* Blocos de imagem, propostas e modalidades de viagem. */
.image-banner {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 85px 40px;
	border-radius: 20px;
	background: var(--intersol-tint);
}

.image-banner__background {
	position: absolute;
	z-index: -1;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.callout {
	position: relative;
	z-index: 1;
	max-width: 860px;
	margin-inline: auto;
	padding: 36px 42px;
	display: flex;
	align-items: flex-end;
	gap: 50px;
	border-radius: 15px;
	background: var(--intersol-blue);
	color: #d4e7f7;
}

.callout h3 {
	color: #EBC10A;
	text-transform: uppercase;
	margin-block-end: 6px;
}

.callout p {
	max-width: 620px;
}

.callout .button {
	flex-shrink: 0;
	padding: 12px 17px;
}

.brand-ribbons {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	border-radius: inherit;
}

.brand-ribbon {
	position: absolute;
	display: flex;
	align-items: center;
	gap: 11px;
	width: max-content;
	padding: 5px 8px;
	white-space: nowrap;
	font: 700 10px/1.4 var(--intersol-heading);
	letter-spacing: 0.1px;
}

.brand-ribbon--top-blue,
.brand-ribbon--bottom-blue {
	background: var(--intersol-blue);
	color: #EBC10A;
	transform: rotate(35deg);
}

.brand-ribbon--top-yellow,
.brand-ribbon--bottom-yellow {
	background: #EBC10A;
	color: #0082EC;
	transform: rotate(19deg);
}

.brand-ribbon--top-blue {
	inset-inline-end: -70px;
	inset-block-start: 22px;
}

.brand-ribbon--top-yellow {
	inset-inline-end: -35px;
	inset-block-start: 22px;
}

.brand-ribbon--bottom-blue {
	inset-inline-start: -70px;
	inset-block-end: 28px;
}

.brand-ribbon--bottom-yellow {
	inset-inline-start: -50px;
	inset-block-end: 22px;
}

.contact-panel {
	position: relative;
}

.contact-panel .brand-ribbon--bottom-blue,
.contact-panel .brand-ribbon--bottom-yellow {
	display: none;
}

.section--bright .section-heading>p:not(.eyebrow) {
	color: #c1cee0;
}

.travel-types {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 20px;
}

.travel-type {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: stretch;
	overflow: hidden;
	border-radius: 22px;
	background: var(--intersol-blue);
	color: white;
}

.travel-type:first-child {
	grid-row: span 2;
	display: flex;
	flex-direction: column;
	background: var(--intersol-paper);
	color: var(--intersol-blue);
}

.travel-type:nth-child(3) {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	background: var(--intersol-navy);
}

.travel-type:nth-child(3) .travel-type__image {
	order: 2;
}

.travel-type__image {
	min-width: 0;
	overflow: hidden;
	border-radius: 18px;
}

.travel-type__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms;
}

.travel-type:hover .travel-type__image img {
	transform: scale(1.035);
}

.travel-type:first-child .travel-type__image {
	aspect-ratio: 1.85;
}

.travel-type__content {
	padding: 36px;
	align-self: center;
}

.travel-type h3 {
	color: var(--intersol-yellow);
	text-transform: uppercase;
	margin-block-end: 8px;
}

.travel-type:first-child h3 {
	color: var(--intersol-blue);
}

.travel-type h4 {
	text-transform: uppercase;
	color: var(--intersol-bright);
	margin-block-end: 8px;
}

.travel-type p {
	font-size: 14px;
	color: #ffffffb3;
}

.travel-type:first-child p {
	color: var(--intersol-muted);
}

.travel-type .text-link {
	display: inline-block;
	margin-block-start: 14px;
}

.travel-type:not(:first-child) .text-link:hover,
.travel-type:not(:first-child) .text-link:focus-visible {
	color: #fff;
}

.why-layout {
	grid-template-columns: minmax(0, 615fr) minmax(0, 791fr);
	gap: 74px;
}

.why-layout>.section-heading {
	margin-block-end: 0;
}

.why-layout .prose {
	max-width: 566px;
}

.heading-highlight {
	color: var(--intersol-bright);
}

.benefit-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.benefit {
	padding: 20px 18px;
	border-inline-start: 8px solid var(--intersol-bright);
	border-radius: 0 20px 20px 0;
	background: white;
}

.benefit h3 {
	font-size: 16px;
	line-height: 1.3;
	text-transform: uppercase;
	margin-block-end: 6px;
}

.benefit p {
	font-size: 14px;
	color: var(--intersol-muted);
}

.trust-banner {
	margin-block-start: 60px;
	margin-inline: auto;
	max-width: 1244px;
	padding-block: 72px;
}

.trust-banner .callout {
	max-width: 860px;
	align-items: center;
}

.trust-banner .image-banner__background {
	filter: blur(5px);
	transform: scale(1.03);
}

.trust-credentials {
	display: flex;
	gap: 24px;
}

.trust-credentials p {
	font-size: 12px;
}

.trust-credentials small {
	display: block;
	color: #7893b9;
	font-size: inherit;
}

.reviews {
	position: relative;
	isolation: isolate;
	padding-block: 150px 130px;
	overflow: clip;
}

.reviews::before {
	content: '';
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(ellipse at center, #9eb7d159, #c1d6eb33 45%, #f1f8fd00 72%);
	pointer-events: none;
}

.reviews__inner {
	position: relative;
	isolation: isolate;
	max-width: 1490px;
	padding-block: 36px 120px;
}

.reviews .section-heading {
	max-width: 602px;
	margin-block: 0;
}

.reviews .section-heading h2 {
	font-size: clamp(20px, 1.8vw, 34px);
}

.reviews__comment {
	position: absolute;
	inset-inline-start: 17.25%;
	inset-block-start: 0;
	max-width: 159px;
}

.reviews__reaction {
	position: absolute;
	inset-inline-end: 22.8%;
	inset-block-start: 33px;
	max-width: 70px;
}

.reviews__rating {
	position: absolute;
	z-index: -1;
	inset-inline-end: 26.85%;
	inset-block-end: -32px;
	max-width: 246px;
}

/* Contactos e formulários. */
.section-home-contact {
	padding-block: 0 120px
}

.home-contact {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	align-items: center;
	gap: 0;
}

.contact-form-backdrop {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 60px;
	border-radius: 30px;
	background: var(--intersol-tint);
}

.contact-panel {
	/* Evita uma fresta de fundo quando as colunas são renderizadas em subpíxeis. */
	margin-inline-start: -1px;
	padding: 60px;
	border-radius: 0 40px 40px 0;
	background: var(--intersol-navy);
	color: white;
}

.contact-panel h2 {
	color: #0082EC;
	font-size: clamp(20px, 1.8vw, 34px);
	margin-block-start: 20px;
}

.contact-panel .eyebrow {
	color: #ffe000;
}

.contact-details {
	margin-block: 20px;
}

.contact-details>div {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 16px;
	font-size: 16px;
	align-items: baseline;
}

.contact-details>div+div {
	margin-block-start: 18px;
}

.contact-details dt {
	font-size: 14px;
	font-family: var(--intersol-heading);
	text-transform: uppercase;
	color: #829FC2;
}

.contact-details dd {
	margin: 0;
	overflow-wrap: anywhere;
	transition: color 180ms ease;
}

.contact-details dd:hover,
.contact-details dd:focus-within {
	color: #8dd5ff;
}

.contact-address {
	display: grid;
}

.contact-details small {
	display: block;
	color: #829FC2;
	font-size: 11px;
}

.whatsapp {
	--whatsapp-icon-color: #25d366;
	display: inline-flex;
	transition: background-color .2s, color .2s, box-shadow .2s;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-radius: 10px;
	background: #dbf0e3;
	color: var(--intersol-navy);
	font-size: 14px;
	font-weight: 500;
	border: 1px solid transparent;
}

.whatsapp:hover,
.whatsapp:focus-visible {
	--whatsapp-icon-color: #145b2e;
	background: #bbe2c9;
	color: #000;
	box-shadow: inset 0 0 0 1px #63bb83;
}

.whatsapp::before {
	content: "";
	flex: 0 0 26px;
	width: 26px;
	height: 26px;
	background-color: var(--whatsapp-icon-color);
	-webkit-mask: url("assets/images/whatsapp-v2.svg") center / contain no-repeat;
	mask: url("assets/images/whatsapp-v2.svg") center / contain no-repeat;
	transition: background-color .2s;
}

.floating-whatsapp {
	position: fixed;
	inset-inline-end: 40px;
	inset-block-end: 30px;
	z-index: 15;
	border: none;
}

.floating-whatsapp[hidden] {
	display: none;
}

.enquiry-form {
	padding: 40px;
	border: 1px solid var(--intersol-tint);
	border-radius: 20px;
	background: white;
	color: var(--intersol-blue);
}

.enquiry-form h3 {
	font-size: 24px;
	margin-block-end: 24px;
}

.form-note {
	color: var(--intersol-text);
	font-size: 14px;
}

.enquiry-form>.form-note {
	margin-block: 16px 24px;
}

.form-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.form-field {
	grid-column: 1 / -1;
	min-width: 0;
}

.form-field--half {
	grid-column: span 1;
}

.form-field label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	margin-block-end: 8px;
}

.form-field input:not([type='checkbox']),
.form-field textarea,
.form-field select {
	display: block;
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--intersol-border);
	border-radius: 12px;
	background: white;
	color: var(--intersol-navy);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}

.form-field textarea {
	resize: none;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
	color: #627c9f;
	opacity: 1;
}

.form-field input:hover,
.form-field textarea:hover {
	border-color: #87bfe8;
}

.form-field input:focus,
.form-field textarea:focus {
	border-color: var(--intersol-bright);
	outline: 2px solid var(--intersol-bright);
	outline-offset: 1px;
}

.form-field [aria-invalid='true'],
.custom-select--form .custom-select__button[aria-invalid='true'] {
	border-color: #d32f41 !important;
	background: #fff9fa;
}

.form-field input:user-invalid,
.form-field textarea:user-invalid {
	border-color: #d32f41;
	background: #fff9fa;
}

.form-field [data-field-error] {
	display: block;
	font-size: 14px;
	margin-block-start: 6px;
}

.form-field small {
	display: block;
	margin-block-start: 6px;
	color: var(--intersol-text);
	font-size: 12px;
}

.checkbox-label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-size: 14px;
}

.checkbox-label label {
	display: inline;
	margin: 0;
	font-weight: 500;
}

.checkbox-label a {
	text-decoration: underline;
}

.checkbox-label input {
	appearance: none;
	border: 1px solid #7189a8;
	border-radius: 4px;
	background: white;
	display: grid;
	place-content: center;
	width: 24px;
	height: 100%;
	aspect-ratio: 1;
	margin: 0 6px 0 0;
	flex-shrink: 0;
}

.checkbox-label input:checked {
	background: var(--intersol-blue);
	border-color: var(--intersol-blue);
}

.checkbox-label input:checked::after {
	content: '✓';
	color: white;
	font-size: 16px;
	line-height: 1;
}

@media (forced-colors: active) {
	.checkbox-label input {
		appearance: auto;
	}

	.checkbox-label input::after {
		content: none;
	}
}

.form-actions {
	margin-block-start: 24px;
	gap: 24px;
}

.form-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin-block-start: 24px;
}

.form-footer>.form-field {
	flex: 1 1 200px;
}

.form-footer .checkbox-label,
.form-footer .checkbox-label label {
	font-size: 14px;
}

.form-footer>.form-actions {
	justify-content: end;
	gap: 12px;
	margin-block-start: 0;
	margin-inline-start: auto;
}

.form-actions .text-button {
	font-size: 14px;
}

.enquiry-form>.button-reset {
	display: block;
	min-height: 24px;
	max-width: 100%;
	margin-block-start: 24px;
	padding: 0;
	background: transparent;
	color: var(--intersol-bright);
	font: 600 14px/1.5 'Quicksand', sans-serif;
	text-align: start;
}

.enquiry-form>.form-note+.button-reset {
	margin-block-start: 0;
}

.enquiry-form>.button-reset:hover {
	color: #0063b5;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.form-response:not(:empty) {
	margin-block-start: 20px;
	padding: 16px;
	border-radius: 10px;
	background: var(--intersol-paper);
}

.blisq-contact-honeypot {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
}

/* Detalhe do programa. */
.program-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding-block: 192px 85px;
	background: var(--intersol-navy);
	background-image: var(--program-hero-image, none);
	background-position: center;
	background-size: cover;
	background-attachment: fixed;
	color: white;
}

.program-hero::before {
	content: '';
	position: absolute;
	z-index: -1;
	inset: 0;
	background: #001532a6;
	backdrop-filter: blur(14px);
	pointer-events: none;
}

.program-hero .program-hero__layout {
	grid-template-areas: 'breadcrumb cover' 'content cover';
	grid-template-rows: auto 1fr;
	row-gap: 0;
	align-items: start;
}

.program-hero__layout>.breadcrumb {
	grid-area: breadcrumb;
}

.program-hero__content {
	grid-area: content;
}

.program-hero__layout>.program-cover {
	grid-area: cover;
	align-self: center;
}

.program-hero h1 {
	font-size: clamp(22px, 2.3vw, 44px);
	margin-block: 20px;
}

.program-hero .eyebrow {
	color: #ffe000;
	margin-top: 0;
}

.program-hero__content>p {
	margin-block: 20px;
}

.breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 14px;
	margin-block-end: 24px;
}

.breadcrumb a:hover {
	text-decoration: underline;
}

.program-notice {
	padding: 16px;
	margin-block: 16px 20px;
	border-inline-start: 4px solid var(--intersol-yellow);
	background: rgb(255 255 255 / 10%);
	border-radius: 0 10px 10px 0;
}

.program-notice strong {
	display: block;
}

.program-notice p {
	margin-block-start: 6px;
	font-size: 14px;
	line-height: 1.5;
}

.program-facts {
	display: flex;
	gap: 28px;
	flex-wrap: wrap;
	margin-block: 24px;
}

.program-price-action {
	display: flex;
	gap: 42px;
	align-items: center;
	margin-block-start: 24px;
}

.program-price-action .button img {
	max-width: 16px;
	transform: rotate(135deg);
}

.program-price {
	display: grid;
	gap: 4px;
}

.program-price small,
.program-price span {
	font-size: 14px;
}

.program-price small {
	text-transform: uppercase;
}

.program-price strong {
	font: 800 24px/1.2 var(--intersol-heading);
	color: #ffe000;
}

.program-price-note {
	display: block;
	font-size: 12px;
	margin-block-start: 24px;
}

.program-cover {
	overflow: hidden;
	border-radius: 20px;
	aspect-ratio: 1.91;
}

.program-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.program-anchors {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	gap: 16px;
	padding-block: 40px 0;
	scrollbar-width: none;
}

.program-anchors a {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	gap: 12px;
	padding: 10px;
	font-size: 16px;
	border-radius: 8px;
	white-space: nowrap;
}

.program-anchors a::after {
	content: '';
	flex-shrink: 0;
	width: 22px;
	aspect-ratio: 1;
	background: url('assets/images/anchor-arrow.svg') center no-repeat;
	transform: rotate(135deg);
}

.program-anchors a:hover {
	background: var(--intersol-tint);
}

.program-anchors a:focus-visible {
	outline-offset: -3px;
}

.itinerary {
	display: grid;
	gap: 16px;
}

.itinerary-day {
	border-radius: 15px;
	overflow: clip;
	background: white;
	cursor: pointer;
}

details::details-content {
	display: block;
	block-size: 0;
	overflow: hidden;
	transition-property: block-size, content-visibility;
	transition-duration: 0.5s;
	transition-behavior: allow-discrete;
}

details[open]::details-content {
	block-size: auto;
	block-size: calc-size(auto, size);
}

.itinerary-day summary {
	display: grid;
	grid-template-columns: 74px minmax(0, 1fr) 24px;
	gap: 18px;
	align-items: center;
	padding: 24px 28px;
	border-radius: 15px;
	cursor: pointer;
	list-style: none;
	border: 1px solid transparent;
	transition: all 180ms ease;
}

.itinerary-day:not([open]) summary:hover,
.itinerary-day summary:focus-visible {
	background: #c3ddf4;
	color: #0063b5;
	border-color: #a9cfef;
}

.itinerary-day summary:focus-visible {
	outline-offset: -3px;
}

.itinerary-day summary::-webkit-details-marker {
	display: none;
}

.itinerary-day__label {
	color: var(--intersol-bright);
	font-size: 14px;
	font-weight: 700;
}

.itinerary-day summary h3 {
	font-size: 18px;
	line-height: 1.2;
	text-transform: uppercase;
}

.accordion-symbol::before {
	content: '+';
	font-size: 24px;
}

.itinerary-day[open] .accordion-symbol::before {
	content: '−';
}

.itinerary-day>.prose {
	font-size: 16px;
	padding: 0 28px 24px;
}

.service-lists {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}

.service-list {
	padding: 40px;
	border: 1px solid var(--intersol-border);
	border-radius: 14px;
	color: var(--intersol-text);
	transition: all .2s;
}

.service-list:hover {
	background-color: #fff;
}

.service-list h3 {
	font-size: clamp(18px, 2vw, 24px);
	color: var(--intersol-blue);
}

.service-list ul {
	padding-inline-start: 20px;
	margin-block: 24px;
	font-size: 18px;
}

.service-list small {
	font-size: 14px;
}

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

.gallery-grid a {
	display: block;
	overflow: hidden;
	border-radius: 15px;
	background: var(--intersol-blue);
}

.gallery-featured {
	aspect-ratio: 1.91;
}

.gallery-featured>a {
	height: 100%;
}

.gallery-grid:has(> .gallery-featured:only-child) {
	grid-template-columns: 1fr;
}

.gallery-thumbnails {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 24px;
	min-height: 0;
	aspect-ratio: 1.91;
}

.gallery-thumbnails>a {
	min-height: 0;
}

.gallery-thumbnails>a:only-child {
	grid-area: 1 / 1 / -1 / -1;
}

.gallery-thumbnails:has(> a:nth-child(2):last-child)>a,
.gallery-thumbnails>a:nth-child(3):last-child {
	grid-column: 1 / -1;
}

.gallery-additional {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.gallery-additional>a {
	aspect-ratio: 1.96;
}

.gallery-grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 250ms;
}

.gallery-grid a:hover img {
	transform: scale(1.04);
}

.gallery-dialog {
	width: 90%;
	max-width: 1100px;
	max-height: 92dvh;
	padding: 40px;
	border: 1px solid var(--intersol-border);
	border-radius: 20px;
	background: white;
	color: var(--intersol-blue);
	overscroll-behavior: contain;
}

.gallery-dialog[open] {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.gallery-dialog::backdrop {
	background: #001532cc;
	overflow: hidden;
	overscroll-behavior: contain;
}

html.gallery-scroll-locked {
	overflow: hidden;
	overscroll-behavior: none;
}

.gallery-scroll-locked body {
	position: fixed;
	top: var(--gallery-scroll-top);
	left: var(--gallery-scroll-left);
	width: calc(100% - var(--gallery-scrollbar-width));
}

.gallery-dialog__heading,
.gallery-dialog__navigation {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.gallery-dialog__heading h3 {
	font-size: 24px;
}

.gallery-dialog figure {
	position: relative;
	flex: 0 1 auto;
	width: 100%;
	min-height: 0;
	max-height: 60dvh;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: 14px;
	background: var(--intersol-navy);
	touch-action: pinch-zoom;
}

.gallery-dialog figure img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--intersol-navy);
	-webkit-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
}

.gallery-dialog [data-gallery-status] {
	position: absolute;
	z-index: 4;
	inset-block-start: 12px;
	inset-inline: 12px;
	width: fit-content;
	margin-inline: auto;
	padding: 8px 12px;
	border-radius: 8px;
	background: white;
	font-size: 14px;
	overflow-wrap: anywhere;
}

.gallery-dialog__navigation {
	font-size: 16px;
}

.gallery-dialog__navigation button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	flex-shrink: 0;
	min-width: 44px;
	min-height: 44px;
}

[data-gallery-counter] {
	flex: 1;
	min-width: 0;
	text-align: center;
	overflow-wrap: anywhere;
}

.enquiry-layout {
	align-items: start;
	gap: 100px;
}

.program-summary {
	padding: 28px;
	background: var(--intersol-blue);
	color: white;
	border-radius: 15px;
	margin-block: 30px;
}

.program-summary>*+* {
	margin-block-start: 10px;
}

.program-summary__details {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 14px;
}

.program-summary__price {
	font-size: 18px;
}

.program-vat-note {
	display: block;
	text-transform: uppercase;
	margin-block-start: 12px;
}

.program-summary .eyebrow,
.program-summary__price {
	color: #EBC10A;
}

.program-summary small {
	font-size: 12px;
	flex: 1 0 100%;
}

/* Página não encontrada. */
.error-page .section-heading {
	margin-block-end: 0;
}

.error-page h1 {
	font-size: clamp(24px, 3vw, 48px);
	text-transform: uppercase;
}

.error-page .button-group {
	margin-block-start: 28px;
}

.error-page__code {
	padding: 48px 20px;
	border: 2px dashed var(--intersol-border);
	border-radius: 20px;
	background: var(--intersol-tint);
	color: var(--intersol-blue);
	font: 800 clamp(100px, 16vw, 240px)/1 var(--intersol-heading);
	letter-spacing: -8px;
	text-align: center;
}

/* Seletores comuns, incluindo política de privacidade e condições gerais. */
.page-content.container {
	max-width: 920px;
	padding-block: 60px 120px;
}

.site-main>article:not(.page-content) {
	max-width: 920px;
	margin-inline: auto;
	padding: 60px 40px;
}

.site-main>.error-404 {
	max-width: 920px;
	margin-inline: auto;
	padding: 60px 40px 120px;
}

.page-content .entry-title {
	font-size: clamp(28px, 2.2vw, 38px);
	letter-spacing: 0;
	margin-block-end: 24px;
}

.entry-content {
	color: #5b6f89;
	font-size: 16px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.entry-content h2 {
	font-size: 22px;
	letter-spacing: 0;
	margin-block-start: 32px;
	color: var(--intersol-blue);
}

.entry-content h3 {
	font-size: 20px;
	color: var(--intersol-blue);
}

.entry-content>p:first-child {
	font-size: 18px;
}

.entry-content>*+* {
	margin-block-start: 16px;
}

.entry-content li+li {
	margin-block-start: 6px;
}

.entry-content a {
	text-decoration: underline;
	color: var(--intersol-blue);
}

.entry-content table {
	display: block;
	overflow-x: auto;
	overflow-wrap: normal;
	max-width: 100%;
	border-collapse: collapse;
	margin-block: 24px;
	font-size: 14px;
}

/* A tabela pode exceder a coluna de leitura sem alargar a página no telemóvel. */
.entry-content>table,
.entry-content>.blisq-table-wrapper,
.entry-content>.wp-block-table {
	--content-table-width: max(100%, min(1180px, calc(100vw - 80px)));
	width: var(--content-table-width);
	max-width: none;
	margin-inline: calc((100% - var(--content-table-width)) / 2);
}

.entry-content th,
.entry-content td {
	min-width: 8.5rem;
	padding: 12px 16px;
	text-align: start;
	vertical-align: top;
	border: 1px solid var(--intersol-border);
}

.entry-content th {
	color: var(--intersol-blue);
	background: var(--intersol-tint);
	font-size: 12px;
}

/* Rodapé. */
.site-footer {
	position: relative;
	max-width: none;
	margin: 0;
	padding: 26px 0 0;
	background: linear-gradient(180deg, var(--intersol-paper) 26px, var(--intersol-tint) 26px);
}

.footer-grid.container,
.footer-bottom.container {
	max-width: 1920px;
	padding-inline: 60px;
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 2.85fr) minmax(0, 1fr) minmax(0, 1.5fr);
	gap: 38px 0;
	padding-block: 60px 0;
	font-size: 14px;
	color: var(--intersol-navy);
}

.footer-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-block: 8px 40px;
	font-size: 12px;
	color: var(--intersol-text);
}

.footer-bottom small {
	font-size: 12px;
}

.footer-brand {
	grid-row: span 2;
}

.footer-brand img {
	width: 239px;
	height: auto;
}

.footer-logo {
	mix-blend-mode: multiply;
}

.footer-brand p {
	max-width: 416px;
	margin-block: 52px 0;
	font-size: 16px;
	line-height: 1.6;
}

.footer-brand small {
	color: var(--intersol-text);
	font-size: 12px;
}

.menu-footer {
	display: grid;
	gap: 3px;
	font-size: 14px;
	color: #8298B5;
}

.menu-footer#menu-rodape-intersol {
	color: var(--intersol-navy)
}

.footer-legal .text-button:hover,
.menu-footer a:hover {
	color: var(--intersol-blue);
	text-decoration: none;
}

.menu-footer a {
	display: inline-block;
	min-height: 24px;
	line-height: 1.6;
	transition: all .2s;
}

.footer-legal {
	display: grid;
	align-content: start;
	gap: 3px;
	color: var(--intersol-text);
}

.footer-legal .text-button {
	justify-self: start;
	min-height: 24px;
	padding: 0;
	font-size: 14px;
	line-height: 1.6;
	color: #8298B5;
	transition: all .2s;
}

.header-legal .footer-legal {
	margin-block-start: 16px;
	padding-block-start: 12px;
	border-top: 1px solid #03347814;
}

.header-legal .menu-footer,
.header-legal .footer-legal .text-button {
	font-size: 12px;
}

.footer-credentials {
	grid-column: 2 / -1;
	font-size: 14px;
	font-weight: 700;
}

.footer-credentials p+p {
	margin-block-start: 6px;
}

.footer-bar {
	overflow: clip;
	background: #033478;
	color: white;
	font-size: 12px;
}

.footer-bar>.container {
	padding-block: 18px;
	text-align: right;
}

.funding-partners {
	display: block;
}

a.funding-partners:focus-visible {
	outline: 3px solid var(--intersol-yellow);
	outline-offset: -4px;
}

.funding-partners__fallback {
	width: auto;
	margin-inline: auto;
}

.funding-partners--custom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	padding: 18px 40px;
}

.funding-partners--custom img {
	width: auto;
	max-width: 263px;
	height: auto;
	object-fit: contain;
}

.footer-credit {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	font-size: 13px;
	color: var(--intersol-navy);
}

.back-top {
	position: absolute;
	inset-block-start: 0;
	inset-inline-end: 60px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 55px;
	aspect-ratio: 1;
	border-radius: 14px;
	background: var(--intersol-bright);
	color: white;
	transition: all .2s;
}

.back-top img {
	transform: rotate(180deg);
}

.back-top:hover {
	background: var(--intersol-blue);
}

@media (max-width: 1680px) {
	.menu-primary {
		font-size: 14px;
	}

	.reviews {
		padding-block: 100px;
	}

	.trip-card h3,
	.itinerary-day summary h3 {
		font-size: 16px;
	}

	.filter-introduction {
		flex-basis: 100%;
		padding-block: 0 4px;
	}

	.trip-filters {
		border-radius: 24px;
	}

	.travel-type__content {
		padding: 28px;
	}
}

@media (max-width: 1440px) {
	.section-heading--included {
		margin-block-end: 20px;
	}

	.itinerary-day summary h3,
	.service-list ul,
	.section-heading>p:not(.eyebrow),
	.prose {
		font-size: 16px;
	}

	.prose h2,
	.prose h3 {
		font-size: 22px;
	}

	.section-heading--results> :not(.results-count) {
		max-width: 650px;
	}

	.trip-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.reviews {
		padding-block: 60px 100px;
	}

	.menu-primary {
		gap: 14px;
		font-size: 13px;
	}

	.site-header {
		margin-block: 45px;
	}

	.site-header--overlay {
		inset-inline: 30px;
		top: 45px;
		margin-block: 0;
	}

	.split-layout,
	.split-layout--editorial,
	.enquiry-layout {
		gap: 60px;
	}

	.hero {
		padding-block: 220px 110px;
	}

	.hero__content {
		gap: 70px;
	}

	.hero__registration {
		inset-block-end: 60px;
	}

	.contact-form-backdrop,
	.contact-panel {
		padding: 40px;
	}

	.travel-type__content {
		padding: 24px;
	}

	.travel-type h3 {
		font-size: 18px;
	}

	.button {
		font-size: 14px;
		padding: 14px 16px;
	}

	.section {
		padding-block: 75px;
	}

	.footer-brand img {
		width: 180px;
	}
}

@media (max-width: 1280px) {
	.footer-brand img {
		width: 160px;
	}

	.footer-brand p {
		margin-block: 25px 0;
	}

	.site-header {
		margin-block: 24px;
	}

	.site-header--overlay {
		top: 24px;
		margin-block: 0;
	}

	.trip-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.filter-field {
		flex-basis: 28%;
	}

	.menu-primary,
	.program-anchors {
		gap: 10px;
	}

	.site-branding img {
		width: 130px;
	}

	.hero {
		padding-block: 200px 100px;
	}

	.hero__content {
		gap: 50px;
	}

	.travel-type {
		grid-template-columns: 1fr 1.3fr;
	}

	.travel-type:nth-child(3) {
		grid-template-columns: 1.3fr 1fr;
	}

	.contact-form-backdrop,
	.contact-panel {
		padding: 30px;
	}

	.enquiry-form {
		padding: 28px;
	}

	.contact-details>div {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.brand-ribbons {
		display: none;
	}

	.program-hero {
		padding-block: 150px 85px;
	}

	.program-anchors a {
		font-size: 14px;
	}

	.contact-panel h2 {
		margin-block-start: 10px;
	}
}

@media (max-width: 1024px) {
	.section {
		padding-block: 70px;
	}

	.section--compact {
		padding-block: 48px;
	}

	.site-header {
		flex-wrap: wrap;
		gap: 12px;
	}

	.intersol-js .site-header {
		flex-wrap: nowrap;
	}

	.intersol-js .menu-toggle {
		display: inline-flex;
	}

	.header-navigation {
		width: 100%;
	}

	.intersol-js .header-navigation {
		position: absolute;
		inset-inline: 0;
		inset-block-start: 100%;
		width: auto;
		max-height: var(--mobile-menu-max-height, 70dvh);
		margin-block-start: 12px;
		padding: 12px 20px 20px;
		overflow-y: auto;
		overscroll-behavior: contain;
		border: 1px solid var(--intersol-tint);
		border-radius: 14px;
		background: #f6fbfe;
		box-shadow: 0 14px 36px #00153224;
	}

	.intersol-js .header-navigation:not(.is-open) {
		display: none;
	}

	.menu-primary {
		display: grid;
		gap: 0;
		padding: 0;
		font-size: 15px;
		font-weight: 600;
	}

	.menu-primary>li {
		display: block;
	}

	.menu-primary>li+li {
		border-top: 1px solid #03347814;
	}

	.menu-primary>li>a {
		padding: 14px 4px;
	}

	.menu-primary .menu-item-has-children>a {
		justify-content: space-between;
	}

	.menu-primary>.menu-cta {
		border-top: 0;
	}

	.menu-primary>.menu-cta>a {
		margin-block-start: 12px;
		text-align: center;
	}

	.sub-menu {
		position: static;
		width: 100%;
		min-width: 0;
		max-width: none;
		margin-block-end: 10px;
		padding: 4px 12px;
		border: 0;
		border-radius: 8px;
		background: var(--intersol-paper);
		box-shadow: none;
	}

	.sub-menu li+li {
		border-top: 1px solid #0334780d;
	}

	.sub-menu a {
		padding: 12px 8px;
		font-size: 14px;
	}

	.split-layout,
	.split-layout--editorial,
	.enquiry-layout,
	.footer-grid {
		gap: 40px;
	}

	.hero {
		padding-block: 180px 90px;
	}

	.hero__content {
		gap: 60px;
	}

	.hero__text {
		font-size: 16px;
	}

	.travel-types {
		grid-template-columns: 1fr 1fr;
	}

	.travel-type {
		display: flex;
		flex-direction: column;
	}

	.travel-type:first-child {
		grid-row: auto;
	}

	.travel-type:nth-child(3) {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.travel-type__image {
		aspect-ratio: 1.85;
	}

	.travel-type__content {
		align-self: auto;
	}

	.benefit-grid {
		grid-template-columns: 1fr;
	}

	.callout {
		gap: 24px;
		padding: 28px;
	}

	.trust-credentials {
		flex-wrap: wrap;
	}

	.home-contact {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.contact-panel {
		margin-inline-start: 0;
		border-radius: 30px;
	}

	.contact-form-backdrop {
		padding: 50px;
	}

	.program-hero {
		padding-block: 150px 60px;
		background-attachment: scroll;
	}

	.program-facts {
		gap: 12px;
	}

	.program-price-action {
		gap: 24px;
	}

	.service-list {
		padding: 28px;
	}

	.image-banner {
		padding: 40px;
	}

	.footer-brand p {
		max-width: 350px;
		font-size: 14px;
	}

	.footer-bottom {
		padding-top: 20px;
	}

	.reviews__comment {
		inset-inline-start: 10%;
	}

	.reviews__reaction {
		inset-inline-end: 10%;
	}
}

@media (max-width: 820px) {

	.section-heading--results,
	.split-layout,
	.split-layout--editorial,
	.enquiry-layout,
	.service-lists {
		grid-template-columns: 1fr;
	}

	.section-heading.section-heading--results>.results-count {
		grid-column: 1;
		grid-row: auto;
		margin-block-start: 16px;
	}

	.program-filter-controls {
		margin-block-end: 24px;
	}

	.intersol-js .filters-toggle {
		display: flex;
	}

	.intersol-js .trip-filters {
		position: absolute;
		z-index: 50;
		inset-inline: 0;
		inset-block-start: 100%;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		max-height: var(--filters-panel-height, 70dvh);
		margin-block: 12px 0;
		padding: 16px 16px 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		scroll-padding-block: 16px 80px;
		border: 1px solid var(--intersol-border);
		border-radius: 16px;
		box-shadow: 0 14px 36px #00153224;
	}

	.intersol-js .trip-filters:not(.is-open) {
		display: none;
	}

	.intersol-js .trip-filters.opens-above {
		inset-block-start: auto;
		inset-block-end: 100%;
		margin-block-end: 12px;
	}

	.intersol-js .filter-panel-heading {
		grid-column: 1 / -1;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
	}

	.filter-panel-heading .filter-introduction {
		flex: 1;
		min-width: 0;
		padding: 0;
	}

	.intersol-js .filters-close {
		display: inline-flex;
		flex-shrink: 0;
		align-items: center;
		gap: 6px;
		min-height: 44px;
		padding: 8px;
		font-size: 14px;
		white-space: nowrap;
	}

	.intersol-js .filter-actions {
		position: sticky;
		inset-block-end: 0;
		grid-column: 1 / -1;
		display: block;
		padding-block: 8px 16px;
		background: var(--intersol-tint);
	}

	.intersol-js .filter-submit {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.program-filter-controls .filter-field {
		min-width: 0;
	}

	.program-filter-controls .custom-select__button {
		min-height: 50px;
	}

	.program-filter-controls .custom-select__value {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.program-filter-controls .custom-select__options {
		position: static;
		min-width: 0;
		max-height: 200px;
		margin-block-start: 8px;
	}

	.container {
		padding-inline: 25px;
	}

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

	.hero {
		grid-template-rows: 1fr auto;
		gap: 40px;
	}

	.hero h1 {
		max-width: 550px;
	}

	.hero__text {
		text-align: left;
		justify-self: start;
		max-width: 520px;
	}

	.hero__registration {
		position: static;
		text-align: left;
	}

	.trip-card h3 {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
		overflow: hidden;
		overflow-wrap: anywhere;
	}

	.split-layout .section-heading {
		margin-block-end: 0;
		position: relative;
		top: 0;
	}

	.benefit-grid,
	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}

	.trust-banner {
		margin-block-start: 40px;
		padding: 48px 24px;
	}

	.trust-banner .callout,
	.callout {
		flex-wrap: wrap;
	}

	.reviews {
		padding-block: 72px;
	}

	.reviews__inner {
		padding-block: 88px 140px;
	}

	.reviews .section-heading {
		max-width: 520px;
	}

	.reviews__comment {
		inset-inline-start: 28px;
		inset-block-start: 0;
		max-width: 120px;
	}

	.reviews__reaction {
		inset-inline-end: 28px;
		inset-block-start: 28px;
		max-width: 60px;
	}

	.reviews__rating {
		inset-inline-end: 28px;
		inset-block-end: 0;
		max-width: 200px;
	}

	.program-hero .program-hero__layout {
		grid-template-areas: 'breadcrumb' 'cover' 'content';
		grid-template-rows: auto auto auto;
		gap: 20px;
	}

	.program-hero__layout>.breadcrumb {
		margin-block-end: 0;
	}

	.program-hero__content {
		max-width: 650px;
	}

	.program-hero h1,
	.program-hero__content>p {
		margin-block: 12px;
	}

	.program-facts {
		margin-block: 16px;
	}

	.program-price-action {
		margin-block-start: 16px;
	}

	.program-price-note {
		margin-block-start: 12px;
	}

	.program-price-note+.program-price-note {
		margin-block-start: 4px;
	}

	.program-cover {
		max-width: 840px;
	}

	.program-anchors {
		padding-block-start: 24px;
		gap: 8px;
	}

	.gallery-grid,
	.gallery-thumbnails,
	.gallery-additional {
		gap: 16px;
	}

	.gallery-dialog {
		padding: 24px;
	}

	.gallery-dialog__heading h3 {
		font-size: 20px;
	}

	.footer-grid.container,
	.footer-bottom.container {
		padding-inline: 30px;
	}

	.footer-brand {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.footer-credentials {
		grid-column: 1 / -1;
	}

	.footer-brand p {
		margin-block-start: 24px;
	}

	.floating-whatsapp {
		inset-inline-end: 20px;
		inset-block-end: 20px;
	}

	.split-layout,
	.split-layout--editorial,
	.enquiry-layout {
		gap: 20px;
	}
}

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

@media (max-width: 600px) {
	.program-cover {
		border-radius: 10px;
	}

	.eyebrow,
	.form-footer .checkbox-label,
	.form-footer .checkbox-label label,
	.contact-details dt {
		font-size: 12px;
	}

	.reviews__inner {
		padding-block: 80px 120px;
	}

	.reviews__comment {
		max-width: 100px;
	}

	.reviews__reaction {
		max-width: 50px;
	}

	.reviews__rating {
		max-width: 180px;
	}

	.reviews .section-heading h2 {
		font-size: clamp(20px, 5.5vw, 26px);
	}

	.intersol-js .trip-filters,
	.travel-types,
	.benefit-grid,
	.gallery-grid {
		grid-template-columns: 1fr;
	}

	.footer-grid.container,
	.footer-bottom.container {
		padding-inline: 20px;
	}

	.funding-partners__fallback {
		min-width: 960px;
	}

	.funding-partners--custom {
		gap: 16px;
		padding: 16px 20px;
	}

	.section {
		padding-block: 50px;
	}

	.section--compact {
		padding-block: 40px;
	}

	.container {
		padding-inline: 15px;
	}

	.site-header {
		margin-block: 20px;
		padding: 10px 16px;
	}

	.site-header--overlay {
		top: 20px;
		inset-inline: 15px;
		margin-block: 0;
	}

	.hero {
		padding-block: 190px 70px;
	}

	.hero__content {
		gap: 32px;
	}

	.hero h1 {
		font-size: clamp(32px, 6.6vw, 40px);
	}

	.hero .button,
	.form-field input:not([type='checkbox']),
	.form-field textarea,
	.form-field select,
	.price-tag strong,
	.trip-card:hover .price-tag strong,
	.itinerary-day summary h3,
	.gallery-dialog__navigation {
		font-size: 14px;
	}

	.trip-filters {
		gap: 8px;
	}

	.filter-field {
		flex-basis: 45%;
		min-width: 0;
	}

	.filter-field .custom-select__button {
		font-size: 13px;
		padding: 12px;
	}

	.custom-select--filter .custom-select__options {
		min-width: 190px;
	}

	.filter-field:nth-of-type(even) .custom-select__options {
		inset-inline-start: auto;
		inset-inline-end: 0;
	}

	.trip-grid {
		gap: 14px;
	}

	.trip-card__content {
		padding: 12px 8px 16px;
	}

	.trip-card h3 {
		font-size: clamp(12px, 3.3vw, 15px);
		letter-spacing: -0.4px;
	}

	.trip-card__classification {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		justify-items: start;
		gap: 5px;
		margin-block-end: 5px;
	}

	.trip-card__destination {
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		font-size: 9px;
		text-align: start;
	}

	.trip-card .category-badge {
		padding: 4px 6px;
		font-size: 9px;
	}

	.trip-card .icon-line {
		gap: 6px;
		font-size: 10px;
	}

	.trip-card__media {
		border-radius: 14px;
		aspect-ratio: 1.1;
	}

	.price-tag {
		top: 14px;
		padding: 6px 10px;
	}

	.image-banner {
		padding: 20px;
	}

	.callout,
	.contact-form-backdrop,
	.enquiry-form,
	.service-list {
		padding: 24px;
	}

	.travel-type:nth-child(3) {
		display: flex;
		grid-column: auto;
	}

	.travel-type:nth-child(3) .travel-type__image {
		order: 0;
	}

	.travel-type__content {
		padding: 28px;
	}

	.contact-panel {
		padding: 32px 24px;
	}

	.form-fields {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.form-field--half {
		grid-column: 1 / -1;
	}

	.enquiry-form h3,
	.entry-content h2 {
		font-size: 20px;
	}

	.program-hero {
		padding-block: 110px 48px;
	}

	.program-price-action {
		flex-wrap: wrap;
	}

	.itinerary-day summary {
		grid-template-columns: 42px minmax(0, 1fr) 18px;
		gap: 10px;
		padding: 24px 20px;
	}

	.itinerary-day>.prose {
		padding: 0 20px 24px;
	}

	.service-list ul,
	.section-heading>p:not(.eyebrow),
	.prose {
		font-size: 15px;
	}

	.gallery-additional {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gallery-dialog {
		width: 94%;
		padding: 20px;
	}

	.gallery-dialog figure {
		aspect-ratio: 4 / 5;
	}

	.gallery-dialog__heading,
	.gallery-dialog__navigation {
		gap: 12px;
	}

	.gallery-dialog__navigation-label {
		display: none;
	}

	.gallery-dialog__heading {
		align-items: start;
	}

	.gallery-dialog__heading h3 {
		font-size: 17px;
	}

	.gallery-dialog__heading button {
		flex-shrink: 0;
	}

	.footer-grid {
		gap: 32px;
		padding-block-start: 48px;
	}

	.back-top {
		inset-inline-end: 15px;
	}

	.floating-whatsapp {
		padding: 12px;
		font-size: 12px;
	}

	.page-content.container {
		padding-block: 56px 72px;
	}

	.page-content .entry-title {
		font-size: 28px;
	}

	.site-branding img {
		width: 105px;
	}

	.prose h2,
	.prose h3 {
		font-size: 20px;
	}
}

@media (max-width: 450px) {
	.program-facts {
		margin-block: 10px;
	}

	.back-top {
		top: -25px;
	}

	.itinerary-day summary {
		padding: 15px;
	}

	h3 {
		font-size: 18px;
	}

	body,
	.itinerary-day>.prose,
	.contact-details>div {
		font-size: 14px;
	}

	.footer-grid {
		grid-template-columns: 1fr;
		gap: 20px;
		padding-block-start: 32px;
	}

	.footer-grid.container,
	.footer-bottom.container,
	.funding-partners--custom {
		padding-inline: 16px;
	}

	.footer-brand {
		grid-column: auto;
	}

	.footer-brand p {
		margin-block-start: 20px;
		font-size: 13px;
	}

	.breadcrumb,
	.footer-credentials {
		font-size: 12px;
	}

	.footer-bottom {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
		gap: 16px;
		padding-block: 16px 24px;
	}

	.contact-details dt,
	.footer-bottom small {
		font-size: 10px;
	}

	.footer-credit {
		gap: 6px;
		font-size: 11px;
	}

	.funding-partners--custom img {
		max-width: 100%;
	}

	.program-anchors {
		gap: 4px;
	}

	.hero .button-group {
		align-items: start;
	}

	.home-contact.container {
		padding-inline: 0;
		gap: 0;
	}

	.contact-panel {
		border-radius: 0;
	}

	.contact-form-backdrop {
		padding: 15px;
		border-radius: 0;
	}

	.form-footer>.form-actions {
		margin-inline-start: 0;
		flex-direction: column;
		width: 100%;
	}

	.form-actions>.button {
		width: 100%;
	}

	.section-home-contact {
		padding-block: 0;
	}

	.site-footer {
		background: var(--intersol-tint);
		padding: 0;
	}
}

@media (max-width: 375px) {

	.itinerary-day summary h3,
	.hero .button,
	.button {
		font-size: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.program-hero {
		background-attachment: scroll;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition: none !important;
		animation: none !important;
	}
}

@view-transition {
	navigation: auto;
}
