/* Base styles — kept minimal so Elementor Kit settings take precedence. */
*, *::before, *::after { box-sizing: border-box; }
html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	max-width: 100vw;
	overflow-x: clip;
}
body {
	margin: 0;
	background: var(--hgb-background);
	color: var(--hgb-on-surface);
	font-family: var(--hgb-font-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	max-width: 100vw;
	overflow-x: clip;
}
#hgb-main,
.elementor,
.site-main {
	max-width: 100%;
	overflow-x: clip;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--hgb-font-display); color: var(--hgb-primary); line-height: 1.15; margin: 0 0 .5em; }
img { max-width: 100%; height: auto; display: block; }
svg { max-width: 100%; }

/* Icon & Media Flash-of-Unstyled-Content guard */
.e-font-icon-svg,
svg.e-font-icon-svg,
.hgb-header__social-link svg,
.hgb-header__contact-link svg,
.hgb-header__toggle svg,
.hgb-header__cta-icon svg,
.hgb-topbar svg,
.hgb-navbar svg,
.hgb-footer svg,
.hgb-footer__social-link svg,
.hgb-footer__contact-icon svg,
.hgb-icon-wrap svg {
	width: 1em !important;
	height: 1em !important;
	max-width: 100%;
	display: inline-block;
	vertical-align: middle;
}
.hgb-header__social-link,
.hgb-topbar__social-link,
.hgb-footer__social-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 28px !important;
	height: 28px !important;
	max-width: 28px !important;
	max-height: 28px !important;
	border-radius: 50%;
	overflow: hidden !important;
	flex-shrink: 0;
}
.hgb-header__social-link svg,
.hgb-topbar__social-link svg,
.hgb-footer__social-link svg {
	width: 14px !important;
	height: 14px !important;
	max-width: 14px !important;
	max-height: 14px !important;
}
.hgb-header__logo img,
.hgb-header__logo svg,
.hgb-navbar__brand img,
.hgb-navbar__brand svg,
.hgb-footer__logo img,
.hgb-footer__logo svg,
.custom-logo {
	max-height: 80px !important;
	width: auto !important;
	height: auto;
	display: block;
	object-fit: contain;
}

a { color: var(--hgb-secondary); transition: color .2s var(--hgb-ease); }
:where(a:hover) { color: var(--hgb-primary); }
:focus-visible { outline: 2px solid var(--hgb-secondary-container); outline-offset: 3px; }

.material-symbols-outlined {
	font-family: "Material Symbols Outlined";
	font-weight: normal; font-style: normal; line-height: 1;
	display: inline-block; white-space: nowrap; direction: ltr;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.hgb-skip-link:focus { clip: auto; width: auto; height: auto; z-index: 100000; top: 8px; left: 8px; padding: 8px 16px; background: #fff; }

.hgb-container { width: 100%; max-width: var(--hgb-container); margin-inline: auto; padding-inline: var(--hgb-gutter); }
.hgb-wrap { width: 100%; max-width: 1280px; margin-inline: auto; padding-inline: clamp(1.25rem, 4vw, 3rem); box-sizing: border-box; }
.hgb-main { display: block; min-height: 40vh; }

/* ── Fallback header (only when no HFE template is set) ────────── */
.hgb-fallback-header { position: sticky; top: 0; z-index: 1000; }

/* Top bar */
.hgb-topbar {
	background: var(--hgb-primary);
	color: var(--hgb-primary-fixed);
	font-size: .75rem;
	letter-spacing: .02em;
	line-height: 1;
}
.hgb-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 36px;
	gap: 1rem;
}
.hgb-topbar__contact {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}
.hgb-topbar__link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: var(--hgb-primary-fixed);
	text-decoration: none;
	transition: color .2s var(--hgb-ease);
}
.hgb-topbar__link:hover { color: var(--hgb-secondary-container); }
.hgb-topbar__icon { display: flex; align-items: center; line-height: 0; }

.hgb-topbar__social {
	display: flex;
	align-items: center;
	gap: .65rem;
}
.hgb-topbar__social-label {
	font-size: .75rem;
	opacity: .85;
	margin-right: .15rem;
}
.hgb-topbar__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .2);
	color: var(--hgb-primary-fixed);
	text-decoration: none;
	transition: background .2s var(--hgb-ease), color .2s var(--hgb-ease), border-color .2s var(--hgb-ease);
}
.hgb-topbar__social-link:hover {
	background: rgba(255, 255, 255, .12);
	border-color: rgba(255, 255, 255, .35);
	color: #fff;
}

/* Main navbar */
.hgb-navbar {
	background: var(--hgb-surface-lowest);
	border-bottom-left-radius: var(--hgb-radius-lg);
	border-bottom-right-radius: var(--hgb-radius-lg);
	box-shadow: 0 2px 12px rgba(50, 29, 8, .08);
}
.hgb-navbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	gap: 1.5rem;
}

/* Brand */
.hgb-navbar__brand {
	display: flex;
	align-items: center;
	gap: .65rem;
	text-decoration: none;
	color: var(--hgb-primary);
	flex-shrink: 0;
}
.hgb-navbar__brand img,
.hgb-navbar__brand .custom-logo {
	height: 44px;
	width: auto;
}
.hgb-navbar__logo-placeholder { display: flex; }
.hgb-navbar__brand-text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}
.hgb-navbar__brand-name {
	font-family: var(--hgb-font-display);
	font-weight: 800;
	font-size: 1.05rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--hgb-primary);
}
.hgb-navbar__brand-tagline {
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--hgb-secondary);
	margin-top: .1rem;
}

/* Navigation */
.hgb-navbar__nav { flex: 1; display: flex; justify-content: center; }
.hgb-navbar__menu {
	display: flex;
	gap: .15rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.hgb-navbar__mobile-item { display: none; }
.hgb-navbar__menu li a {
	display: block;
	padding: .5rem .85rem;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--hgb-on-surface);
	border-radius: var(--hgb-radius);
	transition: color .2s var(--hgb-ease), background .2s var(--hgb-ease);
}
.hgb-navbar__menu li a:hover,
.hgb-navbar__menu li.current-menu-item a,
.hgb-navbar__menu li.current_page_item a {
	color: var(--hgb-secondary);
	background: rgba(130, 85, 0, .06);
}
.hgb-navbar__menu li.current-menu-item a,
.hgb-navbar__menu li.current_page_item a {
	font-weight: 700;
}

/* CTA button */
.hgb-navbar__cta {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .6rem 1.35rem;
	font-family: var(--hgb-font-body);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background: var(--hgb-secondary);
	border-radius: 50px;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background .25s var(--hgb-ease), transform .2s var(--hgb-ease), box-shadow .25s var(--hgb-ease);
}
.hgb-navbar__cta:hover {
	background: var(--hgb-primary-container);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(130, 85, 0, .3);
}

/* Mobile toggle */
.hgb-navbar__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	border-radius: var(--hgb-radius);
	background: transparent;
	color: var(--hgb-primary);
	cursor: pointer;
	transition: background .2s;
}
.hgb-navbar__toggle:hover { background: var(--hgb-surface-container); }

/* Responsive Header & Navigation */
@media (max-width: 960px) {
	.hgb-topbar__social-label { display: none; }
	.hgb-navbar__toggle { display: flex; }
	.hgb-navbar__inner {
		min-height: 58px;
		padding-inline: clamp(12px, 3vw, 24px);
	}
	.hgb-navbar__brand img,
	.hgb-navbar__brand .custom-logo {
		height: 38px;
	}
	.hgb-navbar__nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #ffffff;
		border-radius: 0 0 16px 16px;
		box-shadow: 0 16px 36px rgba(50, 29, 8, .16);
		border-top: 1px solid #f1eee5;
		padding: 1rem 1.25rem 1.5rem;
		display: none;
		z-index: 9999;
	}
	.hgb-navbar__nav.is-open {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		animation: hgbSlideDown 0.25s ease forwards;
	}
	.hgb-navbar__menu {
		flex-direction: column;
		gap: .35rem;
	}
	.hgb-navbar__menu li a {
		padding: .75rem 1rem;
		border-radius: var(--hgb-radius);
		font-size: 0.9rem;
	}
	.hgb-navbar__cta {
		display: none;
	}
	.hgb-navbar__mobile-cta {
		display: flex !important;
		align-items: center;
		justify-content: center;
		gap: .5rem;
		width: 100%;
		padding: .85rem 1.25rem;
		background: #825500;
		color: #ffffff !important;
		border-radius: 50px;
		font-family: var(--hgb-font-body);
		font-size: .85rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: .06em;
		text-decoration: none;
		margin-top: .5rem;
		transition: background-color .2s;
	}
	.hgb-navbar__mobile-cta:hover {
		background: #4a321b;
	}
	.hgb-navbar { position: relative; }
}

@keyframes hgbSlideDown {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 640px) {
	.hgb-topbar__inner {
		min-height: 34px;
		padding: 6px 14px;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
	.hgb-topbar__contact {
		gap: .65rem;
		font-size: .7rem;
	}
	/* Hide email on mobile to keep top bar sleek on one line */
	.hgb-topbar__contact a:nth-child(2) {
		display: none;
	}
	.hgb-topbar__social {
		gap: .4rem;
	}
	.hgb-topbar__social-link {
		width: 24px;
		height: 24px;
	}
}

/* Global Mobile Typography & Container Overrides */
@media (max-width: 767px) {
	/* 1. Harmonize horizontal padding across ALL containers and custom widgets */
	.hgb-container,
	.hgb-wrap,
	.hgb-header__inner,
	.hgb-topbar__inner,
	.hgb-footer__inner,
	.hgb-footer__bottom {
		padding-inline: 20px !important;
	}

	/* 2. Prevent double-padding on Elementor flexbox containers on mobile */
	.e-con-boxed {
		--padding-left: 20px !important;
		--padding-right: 20px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	.e-con-boxed > .e-con-inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.elementor-section.elementor-section-boxed > .elementor-container {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	/* 3. Homepage Booking Widget: align margins and clear top overlap on mobile */
	.elementor-element.elementor-element-ef0ca33 {
		margin-top: 1.25rem !important;
		margin-bottom: 0.5rem !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	.elementor-element.elementor-element-ef0ca33 > .e-con-inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* 4. Homepage Hero vertical padding */
	.hgb-hero__content {
		padding-block: 3.5rem 2.25rem !important;
	}

	/* 5. Homepage Galerie Mosaïque container: eliminate oversized desktop vertical padding */
	.elementor-element.elementor-element-8000600 {
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;
		padding-top: 0px !important;
		padding-bottom: 0px !important;
	}

	.hgb-heading-group__title,
	h2.hgb-heading-group__title {
		font-size: clamp(1.35rem, 5vw, 1.65rem) !important;
		line-height: 1.32 !important;
		font-weight: 700 !important;
		letter-spacing: -0.01em !important;
		text-wrap: balance !important;
	}

	.elementor-widget-text-editor h2,
	h2:not(.hgb-heading-group__title) {
		font-size: clamp(1.35rem, 5.5vw, 1.75rem) !important;
		line-height: 1.3 !important;
		text-wrap: balance !important;
	}

	.elementor-widget-text-editor p,
	.elementor-widget-text-editor p[style] {
		font-size: 14px !important;
		line-height: 1.65 !important;
	}
}

@media (max-width: 375px) {
	.hgb-container,
	.hgb-wrap,
	.hgb-header__inner,
	.hgb-topbar__inner,
	.hgb-footer__inner,
	.hgb-footer__bottom,
	.e-con-boxed,
	.elementor-element.elementor-element-ef0ca33,
	.elementor-section.elementor-section-boxed > .elementor-container {
		padding-inline: 16px !important;
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* Non-Elementor content (posts) */
body:not(.elementor-page) .hgb-entry { max-width: 760px; margin: 3rem auto; padding-inline: var(--hgb-gutter); }
.hgb-entry-summary { padding-block: 1.5rem; border-bottom: 1px solid var(--hgb-outline); }

/* ─── Floating Back to Top Button ─── */
.hgb-back-to-top {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background-color: var(--hgb-color-primary, #321d08);
	color: var(--hgb-color-secondary-fixed, #ffddb2);
	border: 1px solid var(--hgb-color-secondary, #825500);
	box-shadow: 0 4px 16px rgba(50, 29, 8, 0.25), 0 2px 6px rgba(0, 0, 0, 0.12);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px) scale(0.9);
	transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
	            visibility 0.3s cubic-bezier(0.16, 1, 0.3, 1),
	            background-color 0.2s ease,
	            border-color 0.2s ease,
	            box-shadow 0.2s ease,
	            color 0.2s ease;
	outline: none;
	padding: 0;
}

.hgb-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
}

.hgb-back-to-top:hover {
	background-color: #4a321b;
	color: #ffffff;
	border-color: #c58a2a;
	transform: translateY(-3px) scale(1.06);
	box-shadow: 0 8px 24px rgba(50, 29, 8, 0.35), 0 0 12px rgba(197, 138, 42, 0.3);
}

.hgb-back-to-top:active {
	transform: translateY(-1px) scale(0.98);
}

.hgb-back-to-top:focus-visible {
	box-shadow: 0 0 0 3px rgba(130, 85, 0, 0.4), 0 4px 16px rgba(50, 29, 8, 0.3);
}

.hgb-back-to-top svg {
	width: 20px !important;
	height: 20px !important;
	stroke: currentColor !important;
	stroke-width: 2.5;
	display: block;
	transition: transform 0.2s ease;
}

.hgb-back-to-top:hover svg {
	transform: translateY(-2px);
}

@media (max-width: 768px) {
	.hgb-back-to-top {
		bottom: 1.25rem;
		right: 1.25rem;
		width: 40px;
		height: 40px;
	}
	.hgb-back-to-top svg {
		width: 18px !important;
		height: 18px !important;
	}
}

