/**
 * Falirakion Beach Studios — Frontend chrome (Phase 2 shell)
 * Header/footer polish; full Elementor header/footer in Phase 6.
 */

.fbs-main {
	display: block;
	width: 100%;
	min-height: 50vh;
}

.fbs-site-header {
	position: relative;
	z-index: 100;
	width: 100%;
	background: var(--fbs-white);
	border-bottom: 1px solid var(--fbs-border);
}

.fbs-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--fbs-space-lg);
	max-width: var(--fbs-container-wide);
	margin-inline: auto;
	padding: var(--fbs-space-md) var(--fbs-gutter);
	min-height: var(--fbs-header-height-mobile);
}

@media (min-width: 1024px) {
	.fbs-site-header__inner {
		min-height: var(--fbs-header-height);
	}
}

.fbs-site-branding {
	flex-shrink: 0;
}

.fbs-site-branding .custom-logo-link img,
.fbs-site-branding .custom-logo {
	max-height: 3rem;
	width: auto;
}

.fbs-site-title {
	font-family: var(--fbs-font-heading);
	font-size: var(--fbs-fs-lg);
	font-weight: var(--fbs-fw-bold);
	color: var(--fbs-primary);
	text-decoration: none;
}

.fbs-site-title:hover {
	color: var(--fbs-primary-dark);
	text-decoration: none;
}

.fbs-primary-nav .fbs-menu {
	display: none;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--fbs-space-lg);
}

@media (min-width: 1024px) {
	.fbs-primary-nav .fbs-menu {
		display: flex;
		align-items: center;
	}
}

.fbs-primary-nav .fbs-menu a {
	font-family: var(--fbs-font-nav);
	font-size: var(--fbs-fs-sm);
	font-weight: var(--fbs-fw-medium);
	color: var(--fbs-dark);
	text-decoration: none;
}

.fbs-primary-nav .fbs-menu a:hover,
.fbs-primary-nav .fbs-menu .current-menu-item > a {
	color: var(--fbs-primary);
}

.fbs-site-footer {
	width: 100%;
	background: var(--fbs-dark);
	color: var(--fbs-white);
	padding: var(--fbs-space-2xl) 0 var(--fbs-space-xl);
	margin-top: auto;
}

.fbs-site-footer__inner {
	max-width: var(--fbs-container);
	margin-inline: auto;
	padding-inline: var(--fbs-gutter);
	display: flex;
	flex-direction: column;
	gap: var(--fbs-space-lg);
	align-items: center;
	text-align: center;
}

.fbs-footer-nav .fbs-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--fbs-space-md) var(--fbs-space-lg);
	list-style: none;
	margin: 0;
	padding: 0;
}

.fbs-footer-nav .fbs-menu a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	font-size: var(--fbs-fs-sm);
}

.fbs-footer-nav .fbs-menu a:hover {
	color: var(--fbs-accent);
}

.fbs-copyright {
	margin: 0;
	font-size: var(--fbs-fs-sm);
	color: rgba(255, 255, 255, 0.65);
}

.fbs-copyright a {
	color: var(--fbs-white);
	text-decoration: none;
}

.fbs-error-404 {
	max-width: var(--fbs-container-narrow);
	margin: var(--fbs-section-y) auto;
	padding-inline: var(--fbs-gutter);
	text-align: center;
}

.skip-link:focus {
	position: fixed;
	top: var(--fbs-space-sm);
	left: var(--fbs-space-sm);
	z-index: 100000;
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	padding: var(--fbs-space-sm) var(--fbs-space-md);
	background: var(--fbs-primary);
	color: var(--fbs-white);
	border-radius: var(--fbs-radius-sm);
	text-decoration: none;
	box-shadow: var(--fbs-shadow-md);
}

/* Fixed mobile booking CTA (Performance setting). */
.fbs-mobile-booking {
	display: none;
}

@media (max-width: 781px) {
	.fbs-mobile-booking {
		display: flex;
		align-items: center;
		justify-content: center;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 99990;
		min-height: 3.25rem;
		padding: 0.85rem 1.25rem;
		background: var(--fbs-primary);
		color: var(--fbs-white);
		font-family: var(--fbs-font-button);
		font-weight: 600;
		text-decoration: none;
		box-shadow: 0 -4px 16px rgba(18, 32, 51, 0.18);
	}

	.fbs-mobile-booking:hover,
	.fbs-mobile-booking:focus-visible {
		background: var(--fbs-primary-dark);
		color: var(--fbs-white);
		box-shadow: var(--fbs-focus-ring);
	}

	body {
		padding-bottom: 3.5rem;
	}
}

/* External Book Now (native booking off → Booking.com) */
.fbs-external-book {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 99980;
	box-shadow: 0 8px 24px rgba(18, 32, 51, 0.22);
}

@media (max-width: 767px) {
	.fbs-external-book {
		right: 0.75rem;
		bottom: 0.75rem;
		left: 0.75rem;
		text-align: center;
	}

	body:has(.fbs-mobile-booking) .fbs-external-book {
		bottom: 4.25rem;
	}
}
