/*
 * Seine Rigger – ordering / booking calls to action, navigation and logo.
 * Brand gold is taken from the logo (#ca9129).
 */
:root {
	--sr-gold: #ca9129;
	--sr-gold-dark: #b07c1d;
	--sr-ink: #151515;
	--sr-bar-h: 64px;
}

/* ---------- Buttons ---------- */
.sr-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}
.sr-btn,
.sr-header-cta,
.sr-mobile-bar a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: inherit;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
	border-radius: 999px;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
	-webkit-tap-highlight-color: transparent;
}
.sr-btn {
	min-height: 54px;
	padding: 0 30px;
	font-size: 15px;
	border: 2px solid transparent;
}
.sr-btn svg,
.sr-header-cta svg,
.sr-mobile-bar svg { flex: none; }

.sr-btn--order {
	background: var(--sr-gold);
	color: var(--sr-ink) !important;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .28);
}
.sr-btn--order:hover,
.sr-btn--order:focus-visible {
	background: #fff;
	color: var(--sr-ink) !important;
	transform: translateY(-2px);
}
.sr-btn--book {
	background: rgba(0, 0, 0, .25);
	border-color: rgba(255, 255, 255, .85);
	color: #fff !important;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.sr-btn--book:hover,
.sr-btn--book:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--sr-ink) !important;
	transform: translateY(-2px);
}
.sr-btn:focus-visible,
.sr-header-cta:focus-visible,
.sr-mobile-bar a:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

/* Neutralise the old global "button:hover { red }" overrides */
.sr-btn:hover, .sr-header-cta:hover, .sr-mobile-bar a:hover { text-shadow: none; }

/* ---------- Global ---------- */
html, body { overflow-x: clip; }
.sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

/* ---------- Slider (photo only + buttons) ---------- */
.slide-inner--image picture,
.slide-inner--image .sr-slide-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.swiper-slide .overlay { background: linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%) !important; opacity: 1 !important; }
.swiper-slide .slide-inner--info { box-sizing: border-box; bottom: 3.2em; }
.swiper-slide .slide-inner--info .sr-cta--slider { justify-content: flex-start; margin-top: 0; }

/* Logo only on the first slide (home) */
.ms-logo { transition: opacity .5s ease, visibility .5s ease; }
body.sr-logo-hidden .ms-logo { opacity: 0; visibility: hidden; }
body.sr-logo-hidden .ms-nav.is-visible .ms-logo { opacity: 1; visibility: visible; }

/* ---------- Page heroes: white titles on the blue band ---------- */
.about-hero__title,
.contact-hero__title,
.gallery-hero__title,
.menu-hero__title,
.reservation-hero__title { color: #fff !important; text-shadow: 0 2px 18px rgba(0, 0, 0, .18); }
.sr-cta--hero { justify-content: center; }

/* ---------- Footer decorative fish ---------- */
.newsletter-decor-right { right: 0 !important; }

/* ---------- Header button ---------- */
.sr-header-cta {
	position: relative;
	z-index: 7;
	margin-left: auto;
	margin-top: 22px;
	min-height: 44px;
	padding: 0 22px;
	font-size: 13px;
	background: var(--sr-gold);
	color: var(--sr-ink) !important;
}
.sr-header-cta:hover { background: var(--sr-gold-dark); color: #fff !important; }
@media (min-width: 992px) { .sr-header-cta + .hamburger { margin-left: 28px; } }

/* ---------- Logo (vector, crisp on retina) ---------- */
.ms-logo img {
	height: 148px !important;
	width: auto !important;
	max-width: none;
}

/* ---------- Full-screen menu ---------- */
.ms-menu-section .nav-item__label {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: .02em;
	text-transform: none;
	color: rgba(255, 255, 255, .6);
	padding: .35em 0 0 .3em;
}
.ms-nav-item:hover .nav-item__label { color: rgba(255, 255, 255, .85); }
.ms-menu-section .ms-navbar > .ms-nav-item { margin-bottom: 1.1em; }
.ms-menu-section .menu-cta-order .nav-item__btn { color: var(--sr-gold) !important; }
.ms-menu-section .menu-cta-order .nav-item__btn::before { background: var(--sr-gold); }

/* ---------- Footer legal links ---------- */
.seine-footer__legal { margin-left: 12px; }
.seine-footer__legal a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Mobile quick-action bar ---------- */
.sr-mobile-bar { display: none; }

@media (max-width: 991px) {
	.sr-header-cta { display: none; }
}

@media (max-width: 767px) {
	.ms-logo img { height: 104px !important; }

	.sr-cta { gap: 10px; margin-top: 22px; }
	.sr-btn { min-height: 52px; font-size: 14px; padding: 0 22px; }

	.swiper-slide .slide-inner--info { left: 0; right: 0; width: 100%; padding: 0 16px !important; bottom: calc(132px + env(safe-area-inset-bottom, 0px)); }
	.swiper-slide .slide-inner--info .sr-cta--slider { justify-content: center; flex-wrap: nowrap; max-width: 440px; margin: 0 auto; }
	.sr-cta--slider .sr-btn { flex: 1 1 0; min-width: 0; padding: 0 10px; gap: 8px; font-size: 13px; letter-spacing: .04em; }

	.ms-menu-section .nav-item__btn { font-size: 1.6em; }
	.ms-menu-section .nav-item__label { font-size: 13px; }

	.sr-mobile-bar {
		display: flex;
		gap: 8px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9998;
		padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
		background: rgba(21, 21, 21, .96);
		box-shadow: 0 -6px 24px rgba(0, 0, 0, .25);
	}
	.sr-mobile-bar a {
		min-height: 48px;
		font-size: 13px;
		padding: 0 12px;
	}
	.sr-mobile-bar__order { flex: 1.3; background: var(--sr-gold); color: var(--sr-ink) !important; }
	.sr-mobile-bar__book { flex: 1; border: 2px solid rgba(255, 255, 255, .8); color: #fff !important; }
	.sr-mobile-bar__call { flex: 0 0 48px; width: 48px; padding: 0 !important; border: 2px solid rgba(255, 255, 255, .8); color: #fff !important; }

	body.has-sr-mobile-bar { padding-bottom: calc(var(--sr-bar-h) + env(safe-area-inset-bottom, 0px)); }
	body:has(.ms-nav.is-visible) .sr-mobile-bar, body:has(.ms-nav.is-visible) #cookie-banner { display: none !important; }
}

@media (max-width: 360px) {
	.sr-mobile-bar a { font-size: 12px; letter-spacing: .03em; }
	.sr-mobile-bar svg { display: none; }
	.sr-mobile-bar__call svg { display: block; }
}

/* ---------- Cookie notice ---------- */
#cookie-banner.cookie-banner {
	left: 24px;
	right: auto;
	bottom: 24px;
	max-width: 440px;
	background: rgba(21, 21, 21, .97);
	border: 1px solid rgba(202, 145, 41, .35);
	border-radius: 16px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .35);
	animation: srCookieIn .45s ease-out;
}
#cookie-banner.cookie-banner[hidden] { display: none !important; }
#cookie-banner .cookie-banner__container {
	padding: 18px 20px;
	gap: 16px;
	flex-wrap: nowrap;
	flex-direction: row;
	text-align: left;
}
#cookie-banner .cookie-banner__text {
	color: rgba(255, 255, 255, .88);
	font-size: 14px;
	line-height: 1.5;
	min-width: 0;
}
#cookie-banner .cookie-banner__text a { color: var(--sr-gold); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
#cookie-banner .cookie-banner__button {
	flex: none;
	background: var(--sr-gold) !important;
	color: var(--sr-ink) !important;
	border-radius: 999px;
	padding: 12px 24px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	width: auto;
}
#cookie-banner .cookie-banner__button:hover { background: #fff !important; transform: none; }
@keyframes srCookieIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

@media (max-width: 767px) {
	#cookie-banner.cookie-banner { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); max-width: none; }
	body.has-sr-mobile-bar #cookie-banner.cookie-banner { bottom: calc(var(--sr-bar-h) + 10px + env(safe-area-inset-bottom, 0px)) !important; }
	#cookie-banner .cookie-banner__container { padding: 14px 14px 14px 16px; gap: 12px; }
	#cookie-banner .cookie-banner__text { font-size: 13px; }
	#cookie-banner .cookie-banner__button { padding: 11px 18px; }
}

/* While the cookie notice is open, lift the slider buttons above it */
.swiper-slide .slide-inner--info { transition: opacity 1s ease 1s, bottom .4s ease; }
body.sr-cookie-open .swiper-slide .slide-inner--info { bottom: 132px; }
@media (max-width: 767px) {
	body.sr-cookie-open .swiper-slide .slide-inner--info { bottom: calc(200px + env(safe-area-inset-bottom, 0px)); }
}

/* Tablets: keep the buttons clear of the slide counter / progress line */
@media (min-width: 768px) and (max-width: 1199px) {
	.swiper-slide .slide-inner--info { bottom: 150px; }
	body.sr-cookie-open .swiper-slide .slide-inner--info { bottom: 190px; }
}

/* ---------- Header background: solid, and only as tall as the header ---------- */
.ms-header:not(.navbar-white)::after { background-color: #fff !important; }
@media (max-width: 767px) {
	.ms-header:not(.navbar-white)::after { height: 128px !important; }
}

/* ---------- Contact form: message field full width, button below ---------- */
form.contact-form > .form-group { float: none !important; width: 100% !important; }
form.contact-form .form-group input,
form.contact-form .form-group textarea { box-sizing: border-box; width: 100% !important; max-width: 100%; display: block; }
form.contact-form .form-group textarea { min-height: 170px; }
form.contact-form .form-submit { clear: both; }
@media (max-width: 767px) {
	form.contact-form .form-row { grid-template-columns: 1fr; gap: 0; margin-bottom: 0; }
}

/* ---------- Form result messages ---------- */
.seine-form-status { margin: 0; font-size: 15px; line-height: 1.5; }
.seine-form-status:empty { display: none; }
.seine-form-status.is-ok,
.seine-form-status.is-error { margin: 18px 0 0; padding: 12px 16px; border-radius: 10px; }
.seine-form-status.is-ok { background: #edf7ee; color: #1e6b2a; }
.seine-form-status.is-error { background: #fdeeee; color: #9b1c1c; }

/* ---------- Slider on portrait phones: full-bleed, cropped around each photo's focal point ---------- */
@media (max-aspect-ratio: 4/5) {
	.slide-inner--image .sr-slide-img { object-fit: cover; object-position: var(--sr-fx, 50%) 50%; }
}
