/* Scroll To Top button (sits above Core's floating WhatsApp button) and the footer world clocks.
   Colours come from the theme tokens only. */

/* WhatsApp is 56 px at 16 px (52 px at 12 px on phones); this button is the same size, one 12 px gap above it. */
.go-scroll-top {
	position: fixed;
	right: calc(16px + env(safe-area-inset-right, 0px));
	bottom: calc(16px + 56px + 12px + env(safe-area-inset-bottom, 0px));
	z-index: 899;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0;
	border-radius: var(--go-radius-pill, 999px);
	background: var(--go-accent);
	color: var(--go-forest-950);
	box-shadow: var(--go-shadow-lg);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 150ms ease-out, transform 150ms ease-out, visibility 0s linear 150ms;
}

.go-scroll-top svg {
	display: block;
	flex: none;
	width: 24px;
	height: 24px;
	stroke-width: 2.6;
}

.go-scroll-top[hidden] {
	display: none;
}

.go-scroll-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity 150ms ease-out, transform 150ms ease-out, visibility 0s;
}

.go-scroll-top.is-visible:hover {
	transform: translateY(-2px);
}

.go-scroll-top:focus-visible {
	outline: 3px solid var(--go-white);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--go-forest-950), var(--go-shadow-lg);
}

@media (max-width: 767px) {
	.go-scroll-top {
		right: calc(12px + env(safe-area-inset-right, 0px));
		bottom: calc(12px + 52px + 12px + env(safe-area-inset-bottom, 0px));
		width: 52px;
		height: 52px;
	}
}

/* Hidden together with the WhatsApp button while the trip page's booking bar shows. */
.go-booking-bar-visible .go-scroll-top {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.go-scroll-top,
	.go-scroll-top.is-visible,
	.go-scroll-top.is-visible:hover {
		transition: none;
		transform: none;
	}
}

@media print {
	.go-scroll-top {
		display: none;
	}
}

/* ---- Footer clocks ----
   A <details>. Desktop and tablet (768 px and up): a slim one-row strip, always open (clocks.js opens it; the
   ::details-content rule does it where scripts are off). Phones: a dropdown, closed until opened. */
.go-clocks {
	box-sizing: border-box;
	width: 100%;
	padding: 6px var(--go-gutter);
	background: var(--go-forest-950);
	color: var(--go-text-on-dark);
	font-family: var(--go-font-body);
	font-size: 12px;
	line-height: 1.3;
}

/* Once the script has moved it into the footer, the footer's own background shows. */
.go-footer .go-clocks {
	max-width: var(--go-content-width);
	margin: var(--go-space-3) auto 0;
	padding: 6px 0 0;
	border-top: 1px solid rgba(255, 255, 255, .12);
	background: none;
	color: rgba(255, 255, 255, .94);
}

.go-clocks__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0;
	padding: 0;
	color: var(--go-accent);
	font-family: var(--go-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.3;
	list-style: none;
	cursor: pointer;
}

.go-clocks__title::-webkit-details-marker {
	display: none;
}

.go-clocks__chev {
	flex: none;
	transition: transform 150ms ease-out;
}

.go-clocks[open] .go-clocks__chev {
	transform: rotate(180deg);
}

.go-clocks__title:focus-visible {
	outline: 2px solid var(--go-accent);
	outline-offset: 2px;
}

.go-clocks__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px 12px;
	margin: 0;
	padding: 8px 0 4px;
	list-style: none;
}

.go-clock {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.go-clock__place {
	color: var(--go-accent);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
}

.go-clock__time {
	color: var(--go-white);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.go-clock__date {
	font-size: 11px;
	line-height: 1.3;
}

/* Desktop and tablet: the label and the six clocks on one row; the date stays in the markup but is not shown. */
@media (min-width: 768px) {
	.go-clocks {
		display: flex;
		align-items: center;
		gap: 16px;
	}

	.go-clocks__title {
		flex: none;
		cursor: default;
		pointer-events: none;
	}

	.go-clocks__chev {
		display: none;
	}

	.go-clocks::details-content {
		content-visibility: visible;
		display: block;
		flex: 1 1 auto;
		min-width: 0;
	}

	.go-clocks__list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 2px 14px;
		padding: 0;
	}

	.go-clock {
		flex-direction: row;
		align-items: baseline;
		gap: 6px;
	}

	.go-clock__date {
		display: none;
	}
}

/* Tablet: the clocks wrap onto two rows, and keep clear of the round buttons at the right edge. */
@media (min-width: 768px) and (max-width: 1100px) {
	.go-clocks__list {
		justify-content: flex-start;
		gap: 2px 18px;
		padding-right: 72px;
	}
}

@media (max-width: 767px) {
	.go-clocks {
		padding: 0 var(--go-gutter);
	}

	.go-footer .go-clocks {
		padding: 0;
	}

	.go-clocks__title {
		justify-content: flex-start;
		min-height: 40px;
	}
}

@media (max-width: 359px) {
	.go-clocks__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.go-clocks__chev {
		transition: none;
	}
}

@media print {
	.go-clocks {
		display: none;
	}
}

/* The Elementor kit styles every <button> (fill, colour, hover): two classes keep the gold fill and navy arrow in every state. */
button.go-scroll-top.go-scroll-top,
button.go-scroll-top.go-scroll-top:is(:hover, :focus, :active) {
	border: 0;
	border-radius: var(--go-radius-pill, 999px);
	background: var(--go-accent);
	color: var(--go-forest-950);
}

button.go-scroll-top.go-scroll-top:is(:hover, :focus-visible) {
	background: var(--go-cta-hover);
}
