/**
 * Visual polish layer (buttons, focus, cards, sections).
 * Loaded after theme-style.
 */

::selection {
	background: rgba(79, 132, 196, 0.28);
	color: var(--lb-deep);
}

:focus-visible {
	outline: 2px solid var(--lb-blue-mid);
	outline-offset: 3px;
}

.button {
	gap: 0.5rem;
	backdrop-filter: blur(6px);
	box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
}

.button:hover {
	opacity: 1;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(6, 40, 67, 0.22);
}

.button:active {
	transform: translateY(0);
}

.button.standard:hover {
	background: var(--lb-deep);
	border-color: var(--lb-deep);
}

.button.outlined {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.85);
}

.button.outlined:hover {
	color: var(--lb-deep);
	background: var(--lb-white);
	border-color: var(--lb-white);
}

.button.secondary {
	background: var(--lb-white);
	border-color: var(--lb-white);
	color: var(--lb-deep);
	box-shadow: var(--lb-shadow-soft);
}

.button.secondary:hover {
	background: var(--lb-sand);
	border-color: var(--lb-sand);
}

.navbar {
	z-index: var(--lb-z-nav);
}

.navbar.navbar--scrolled {
	backdrop-filter: blur(18px) saturate(160%);
	-webkit-backdrop-filter: blur(18px) saturate(160%);
	background-color: rgba(6, 40, 67, 0.82);
	box-shadow: 0 10px 36px rgba(2, 18, 41, 0.28);
}

.navbar__home-link img {
	transition: transform var(--lb-duration) var(--lb-ease), opacity var(--lb-duration) var(--lb-ease);
}

.navbar__home-link:hover img {
	transform: scale(1.03);
}

.navbar__menu-button {
	border-radius: 999px;
	transition: background-color var(--lb-duration) var(--lb-ease), transform var(--lb-duration) var(--lb-ease);
}

.navbar__menu-button:hover {
	background: rgba(255, 255, 255, 0.08);
}

.navbar__drawer-close {
	transition: transform var(--lb-duration) var(--lb-ease), opacity var(--lb-duration) var(--lb-ease);
}

.navbar__drawer-close:hover {
	transform: rotate(90deg);
	opacity: 0.85;
}

/* Hero readability + chrome */
.hero__text.text-white .hero__headline,
.hero__text.text-white .hero__subtext {
	text-shadow: 0 2px 24px rgba(2, 18, 41, 0.35);
}

.hero__subheadline {
	color: var(--lb-gold);
	letter-spacing: 0.01em;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem;
	margin-top: 1.75rem;
}

.keen-slider__dot {
	width: 10px;
	height: 10px;
	margin-right: 8px;
	background: rgba(255, 255, 255, 0.4);
	transition: transform var(--lb-duration) var(--lb-ease), background-color var(--lb-duration) var(--lb-ease), width var(--lb-duration) var(--lb-ease);
}

.keen-slider__dot.active {
	width: 28px;
	border-radius: 999px;
	background: var(--lb-white);
}

.keen-slider__arrow {
	background: var(--lb-accent);
	box-shadow: 0 8px 24px rgba(219, 8, 18, 0.35);
	transition: transform var(--lb-duration) var(--lb-ease), background-color var(--lb-duration) var(--lb-ease), box-shadow var(--lb-duration) var(--lb-ease);
}

.keen-slider__arrow:hover {
	transform: scale(1.06);
	background: #c40710;
	box-shadow: 0 12px 28px rgba(219, 8, 18, 0.42);
}

/* Boat cards */
.boat-slider-section {
	background-color: var(--lb-cream);
}

.boat-card {
	border-radius: 0.75rem;
	box-shadow: var(--lb-shadow-soft);
	transition: transform var(--lb-duration-slow) var(--lb-ease), box-shadow var(--lb-duration-slow) var(--lb-ease);
}

.boat-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--lb-shadow-lift);
}

.boat-card__image-wrapper img,
.boat-card__image-slider .boat-card__image-slide img {
	transition: transform 0.7s var(--lb-ease);
}

.boat-card:hover .boat-card__image-wrapper img,
.boat-card:hover .boat-card__image-slider .boat-card__image-slide img {
	transform: scale(1.04);
}

.boat-slider-card__subtitle {
	color: var(--lb-gold);
	font-family: var(--lb-font-script);
}

/* FAQ */
.faq-section__item {
	border-bottom-color: rgba(34, 50, 77, 0.14);
	transition: border-color var(--lb-duration) var(--lb-ease);
}

.faq-section__question {
	transition: color var(--lb-duration) var(--lb-ease);
}

.faq-section__question:hover {
	color: var(--lb-blue);
}

.faq-section__answer {
	padding-bottom: 0.75rem;
	line-height: var(--lb-lh-relaxed);
	color: var(--lb-slate);
}

.faq-section__button {
	padding: 0.75rem 1.75rem;
	letter-spacing: var(--lb-tracking);
	font-weight: var(--lb-fw-medium);
	box-shadow: var(--lb-shadow-soft);
	transition: background-color var(--lb-duration) var(--lb-ease), transform var(--lb-duration) var(--lb-ease), box-shadow var(--lb-duration) var(--lb-ease);
}

.faq-section__button:hover {
	transform: translateY(-2px);
	box-shadow: var(--lb-shadow-card);
}

/* Footer */
.footer-banner {
	letter-spacing: var(--lb-tracking);
	background: linear-gradient(90deg, var(--lb-slate) 0%, var(--lb-blue-soft) 55%, #6f95ad 100%);
}

.footer-banner__icon {
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: rgba(255, 255, 255, 0.08);
}

.footer__input-wrapper-title a {
	letter-spacing: var(--lb-tracking);
}

.footer__lists li a {
	position: relative;
}

.footer__lists li a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--lb-duration) var(--lb-ease);
	opacity: 0.55;
}

.footer__lists li a:hover::after {
	transform: scaleX(1);
}

/* Membership / misc section rhythm */
.memberships-section,
.boat-section,
.logo-slider-section,
.image-accordion-section {
	scroll-margin-top: 6rem;
}

@media (prefers-reduced-motion: reduce) {
	.button,
	.boat-card,
	.keen-slider__arrow,
	.keen-slider__dot,
	.faq-section__button,
	.navbar__home-link img {
		transition: none !important;
	}

	.button:hover,
	.boat-card:hover,
	.faq-section__button:hover {
		transform: none;
	}
}
