/* Footer — soft-black block with hairline-divided rows, centered columns,
   newsletter row, legal strip; plus the back-to-top link above it.
   Measured from reference footer/back-to-top CSS. */

/* ------------------------------------------------------------ Back to top */

.back-to-top {
	color: var(--color-burgundy-2);
	margin-bottom: var(--grid-section-gutter);
	margin-top: var(--grid-section-gutter);
	text-align: center;
}
.back-to-top a { color: inherit; display: inline-block; text-decoration: none; }
.back-to-top svg { height: 11px; margin-left: 2px; width: 10px; }

/* Floating planning control on the two live landing pages that use it. */
.replica-utility-nav { display: none; }
.post-type-archive-trip .replica-utility-nav,
.page-template-page-custom-travel .replica-utility-nav,
body:has(.around-world-page) .replica-utility-nav {
	bottom: 20px;
	display: block;
	height: 70px;
	position: fixed;
	right: 20px;
	width: 70px;
	z-index: 99;
}
body:has(.around-world-page) .replica-utility-nav { bottom: 96px; }
.replica-utility-nav[data-scroll-reveal] {
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px) scale(0.96);
	transform-origin: center;
	transition:
		opacity 180ms ease-out,
		transform 180ms ease-out,
		visibility 0s linear 180ms;
	visibility: hidden;
}
.replica-utility-nav[data-scroll-reveal].is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: none;
	transition-delay: 0s;
	visibility: visible;
}
.replica-utility-nav > summary {
	align-items: center;
	background: var(--color-burgundy-2);
	border: 0;
	border-radius: 50%;
	color: var(--color-soft-white);
	cursor: pointer;
	display: flex;
	height: 70px;
	justify-content: center;
	list-style: none;
	padding: 0;
	width: 70px;
}
.replica-utility-nav > summary::-webkit-details-marker { display: none; }
.replica-utility-nav__logo { display: block; height: 43px; width: 43px; }
.replica-utility-nav__menu {
	background: var(--color-burgundy-2);
	bottom: 84px;
	display: grid;
	gap: 1px;
	padding: 12px;
	position: absolute;
	right: 0;
	width: 220px;
}
.replica-utility-nav__menu a {
	background: rgb(254 254 252 / 7%);
	color: var(--color-soft-white);
	padding: 11px 12px;
	text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
	.replica-utility-nav[data-scroll-reveal],
	.replica-utility-nav[data-scroll-reveal].is-visible {
		transform: none;
		transition: none;
	}
}

/* ----------------------------------------------------------------- Shell */

.footer {
	background-color: var(--color-soft-black);
	color: var(--color-soft-white);
	padding-bottom: var(--grid-section-gutter);
	padding-top: var(--grid-section-gutter);
}
/* The expedition archive keeps its fixed 80px CTA clear of the legal copy,
   matching the extra footer breathing room on the current live route. */
.post-type-archive-trip .footer { padding-bottom: 126px; }
@media screen and (min-width: 768px) {
	.post-type-archive-trip .footer { padding-bottom: 136px; }
}
.footer__wrap { padding-left: var(--grid-col-gutter); padding-right: var(--grid-col-gutter); }
.footer__wrap > * + * {
	border-top: 1px solid var(--color-gray-900);
	margin-top: 40px;
	padding-top: 40px;
	position: relative;
}
@media screen and (min-width: 1024px) {
	.footer__wrap > * + * {
		margin-top: var(--grid-section-gutter);
		padding-top: var(--grid-section-gutter);
	}
}

.footer a { color: var(--color-soft-white); text-decoration: none; transition: color var(--transition-time) var(--transition-easing); }
.footer a:hover { color: var(--color-gray-600); }

/* --------------------------------------------------------------- Columns */

.footer__columns {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(1, 1fr);
	grid-template-rows: auto;
}
@media screen and (min-width: 1024px) {
	.footer__columns { gap: 40px; grid-template-columns: repeat(3, 1fr); row-gap: var(--grid-row-gutter); }
	.footer__columns--links { grid-template-columns: repeat(2, 1fr); }
}

.footer__column { text-align: center; }
.footer__column + .footer__column {
	border-top: 1px solid var(--color-gray-900);
	margin-top: 40px;
	padding-top: 40px;
}
@media screen and (min-width: 1024px) {
	.footer__column + .footer__column { border-top: 0; margin-top: 0; padding-top: 0; }
	.footer__column:not(:last-child) {
		border-right: 1px solid var(--color-gray-900);
		padding-right: var(--grid-row-gutter);
	}
}

.footer__column-title + *,
.footer__column h1 + *, .footer__column h2 + *, .footer__column h3 + *,
.footer__column h4 + *, .footer__column h5 + *, .footer__column h6 + * { margin-top: 20px; }

/* Link-list menus (footer-1 / footer-2) */
.footer__menu-list { list-style: none; margin: 0; padding: 0; }
.footer__menu-list li + li { margin-top: 12px; }

/* ------------------------------------------------------------ Newsletter */

.footer__newsletter-form + * { margin-top: 15px; }
.footer__newsletter-form-row { display: flex; margin: 0 auto; max-width: 340px; }
.footer__newsletter-form-row .form-field { border: 0; flex: 1; min-width: 0; }
.footer__newsletter-form-row input {
	background-color: var(--color-soft-black);
	border-right: none;
	height: 50px;
}
.footer__newsletter-form-submit {
	align-self: flex-start;
	height: 50px;
	margin-top: 0;
	min-width: 60px;
	width: auto;
}
.footer__newsletter-note { text-align: center; }

/* ------------------------------------------------------------- Awards */

.footer__awards { margin: 0; }
.footer .logo-grid__title { text-align: center; }
.footer .logo-grid__items {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 25px;
	justify-content: center;
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
}
@media screen and (min-width: 768px) {
	.footer .logo-grid__items { gap: 30px; }
}
.footer__award {
	align-items: center;
	border: 1px solid var(--color-gray-900);
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	height: 120px;
	justify-content: center;
	margin: 0;
	opacity: 0.9;
	padding: 14px;
	text-align: center;
	width: 120px;
}
@media screen and (min-width: 1024px) {
	.footer__award { height: 132px; width: 132px; }
}
.footer__award-name {
	font-family: var(--heading-font-family);
	font-size: 13px;
	line-height: 1.25;
}
.footer__award-note {
	color: var(--color-gray-600);
	font-size: 9px;
	font-weight: var(--font-weight-medium);
	letter-spacing: 0.8px;
	line-height: 1.3;
	margin-top: 5px;
	text-transform: uppercase;
}

/* ------------------------------------------------------------ Legal strip */

.footer__nav { padding-top: 0; }
.footer__nav + * { margin-top: 0; }
.footer__nav-menu {
	display: flex;
	flex-flow: column;
	justify-content: space-between;
	list-style: none;
	margin: 0 auto;
	max-width: 1200px;
	padding: 40px 0;
	text-align: center;
}
@media screen and (min-width: 1024px) {
	.footer__nav-menu { flex-flow: row wrap; padding: 20px 0; }
}
.footer__nav-menu > li + li { margin-top: 20px; }
@media screen and (min-width: 1024px) {
	.footer__nav-menu > li + li { margin-left: 20px; margin-top: 0; }
}

/* -------------------------------------------------------------- Copyright */

.footer__copyright { color: var(--color-gray-700); text-align: center; }
.footer__copyright-content { margin: 0 auto; max-width: 460px; }
