/* =====================================================================
   Le Ti – core block adjustments
   Makes Gutenberg core-block markup render exactly like the original
   design (layout.css carries the original section/element styles).
   ===================================================================== */

/* ---------- page shell ---------- */
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; }
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block: 0 !important; }
:where(.elementor) .wp-block-group { box-sizing: border-box; }

/* sticky header (same behaviour as original: sticky on desktop, tablet & mobile) */
header.lt-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 99;
}
[id] { scroll-margin-top: 140px; }
@media (max-width: 1024px) { [id] { scroll-margin-top: 110px; } }

/* ---------- reset core block defaults ---------- */
.elementor figure.wp-block-image,
.elementor figure.wp-block-video,
.elementor figure.wp-block-gallery { margin: 0; }
.elementor .elementor-widget-image img { vertical-align: middle; display: inline-block; }
.elementor .wp-block-image a { display: inline-block; }
.elementor p.lt-raw { margin: 0; }
.elementor .wp-block-heading { margin: 0; }

/* ---------- buttons (core/buttons -> original button widget) ---------- */
.elementor .wp-block-buttons.elementor-widget-button { display: block; }
.elementor .wp-block-buttons.elementor-widget-button > .wp-block-button { display: inline-block; margin: 0; width: auto; }
.elementor .wp-block-buttons.elementor-align-left { text-align: left; }
.elementor .wp-block-buttons.elementor-align-center { text-align: center; }
.elementor .wp-block-buttons.elementor-align-right { text-align: right; }
.elementor .wp-block-buttons.elementor-align-justify > .wp-block-button { display: block; width: 100%; }
.elementor .wp-block-button__link { height: auto; word-break: normal; text-decoration: none; box-shadow: none; }
.elementor .wp-block-button__link:not([href]) { cursor: pointer; }

/* ---------- video widget ---------- */
.elementor .wp-block-video.elementor-wrapper video { width: 100%; height: 100%; display: flex; border: none; background-color: #000; object-fit: cover; }

/* ---------- hero: core/cover with background video ---------- */
.elementor .wp-block-cover.lt-hero {
	padding: 10px;
	min-height: 650px;
	display: flex;
	align-items: stretch;
	justify-content: center;
	overflow: hidden;
}
.elementor .wp-block-cover.lt-hero .wp-block-cover__inner-container { width: 100%; max-width: min(100%, var(--container-max-width, 1300px)); margin: 0 auto; display: flex; color: inherit; }
.elementor .wp-block-cover.lt-hero { --container-max-width: 1300px; }
@media (max-width: 1024px) { .elementor .wp-block-cover.lt-hero { --container-max-width: 1024px; } }
@media (max-width: 767px) { .elementor .wp-block-cover.lt-hero { --container-max-width: 767px; } }
.elementor .wp-block-spacer { margin: 0; }
.elementor .wp-block-cover.lt-hero .wp-block-cover__video-background { object-fit: cover; }

/* ---------- footer list ---------- */
.elementor .elementor-icon-list-items.wp-block-list { list-style: none; margin: 0; padding: 0; }
.elementor .elementor-element-ef4746f a { color: #E4E4E4; font-family: "Albert Sans", sans-serif; font-size: 16px; font-weight: 500; }

/* ---------- language switcher (EN / FR) ---------- */
.elementor p.lt-lang { margin: 0; line-height: 24px; }
.elementor p.lt-lang a { color: #c36; font-weight: 400; }
.elementor p.lt-lang a.is-current { font-weight: 700; }
.skiptranslate iframe, .goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
body { top: 0 !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
#lt-gt-el { display: none; }

/* =====================================================================
   Navigation (core/navigation styled like the original menu)
   ===================================================================== */
.elementor .lt-nav { font-family: "Albert Sans", sans-serif; font-size: 16px; font-weight: 500; }
.elementor .lt-nav .wp-block-navigation__container { gap: 0 !important; }
.elementor .lt-nav .wp-block-navigation-item__content {
	color: #fff;
	padding: 0 15px;
	line-height: 24px;
	text-decoration: none;
	transition: color .3s;
}
.elementor .lt-nav .wp-block-navigation-item__content:hover,
.elementor .lt-nav .wp-block-navigation-item__content:focus { color: #BEAB62; }

html { scroll-behavior: auto; }
@media (min-width: 1025px) { .elementor [id] { scroll-margin-top: 143px; } }
@media (min-width: 768px) and (max-width: 1024px) { .elementor [id] { scroll-margin-top: 113px; } }
@media (max-width: 767px) { .elementor [id] { scroll-margin-top: 156px; } }

/* desktop: horizontal menu */
@media (min-width: 1025px) {
	.elementor .lt-nav .wp-block-navigation__responsive-container-open { display: none !important; }
	.elementor .lt-nav .wp-block-navigation__responsive-container,
	.elementor .lt-nav .wp-block-navigation__responsive-container.hidden-by-default {
		display: block !important;
		position: relative !important;
		inset: auto !important;
		width: auto; height: auto;
		background: transparent !important;
		color: inherit !important;
		padding: 0 !important;
		overflow: visible !important;
		z-index: auto;
		box-shadow: none;
	}
	.elementor .lt-nav .wp-block-navigation__responsive-container-close { display: none !important; }
	.elementor .lt-nav .wp-block-navigation__responsive-close,
	.elementor .lt-nav .wp-block-navigation__responsive-dialog { margin: 0; padding: 0; max-width: none; }
	.elementor .lt-nav .wp-block-navigation__responsive-container-content { display: flex !important; padding: 0 !important; }
	.elementor .lt-nav .wp-block-navigation__container { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; height: 80px; width: 100%; }
	.elementor .lt-nav .wp-block-navigation__responsive-container-content, .elementor .lt-nav .wp-block-navigation__responsive-dialog, .elementor .lt-nav .wp-block-navigation__responsive-close { width: 100%; }
	.elementor .lt-nav .wp-block-navigation-item__content { height: 80px; display: flex; align-items: center; }
}

/* tablet + mobile: hamburger + left off-canvas panel */
@media (max-width: 1024px) {
	.elementor .elementor-element-a029471 { width: 100%; }
	.elementor .lt-nav { justify-content: flex-end; width: 100%; }
	.elementor .lt-nav .wp-block-navigation__responsive-container-open {
		display: block !important;
		margin-left: auto;
		width: 45px; height: 29px;
		padding: 8px;
		border-radius: 3px;
		background: transparent;
		border: 1px solid transparent;
		cursor: pointer;
		position: relative;
		transition: background-color .3s;
	}
	.elementor .lt-nav .wp-block-navigation__responsive-container-open:hover { background-color: #C91A15; }
	.elementor .lt-nav .wp-block-navigation__responsive-container-open svg { display: none; }
	.elementor .lt-nav .wp-block-navigation__responsive-container-open::before {
		content: "";
		position: absolute; left: 8px; right: 8px; top: 8px; bottom: 8px;
		background:
			linear-gradient(#fff, #fff) top / 100% 1px no-repeat,
			linear-gradient(#fff, #fff) center / 100% 1px no-repeat,
			linear-gradient(#fff, #fff) bottom / 100% 1px no-repeat;
	}
	.elementor .lt-nav .wp-block-navigation__responsive-container.is-menu-open,
	.elementor .lt-nav .wp-block-navigation__responsive-container.open-menu {
		position: fixed !important;
		top: 0 !important; left: 0 !important; bottom: 0 !important; right: auto !important;
		width: 350px; max-width: 100%;
		background: #f7f7f7 !important;
		color: #000 !important;
		padding: 0 !important;
		box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .5);
		animation: lt-slide-in .4s ease;
		z-index: 100000;
	}
	@keyframes lt-slide-in { from { transform: translateX(-100%); } to { transform: none; } }
	.elementor .lt-nav .is-menu-open .wp-block-navigation__responsive-close,
	.elementor .lt-nav .is-menu-open .wp-block-navigation__responsive-dialog { max-width: none; margin: 0; padding: 0; height: 100%; }
	.elementor .lt-nav .is-menu-open .wp-block-navigation__responsive-container-close {
		top: 22px; right: 12px; left: auto;
		width: 45px; height: 42px;
		padding: 8px;
		border: 1px solid #555;
		border-radius: 3px;
		color: #fff;
		background: transparent;
		display: flex; align-items: center; justify-content: center;
	}
	.elementor .lt-nav .is-menu-open .wp-block-navigation__responsive-container-close svg { display: none; }
	.elementor .lt-nav .is-menu-open .wp-block-navigation__responsive-container-close::before { content: "X"; font-size: 16px; line-height: 1; color: #fff; }
	.elementor .lt-nav .is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 86px 0 0 !important;
		align-items: stretch !important;
		display: block !important;
	}
	.elementor .lt-nav .is-menu-open .wp-block-navigation__container {
		display: flex; flex-direction: column; align-items: stretch !important; gap: 0 !important;
	}
	.elementor .lt-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
	.elementor .lt-nav .is-menu-open .wp-block-navigation-item__content {
		color: #000 !important;
		padding: 10px 15px !important;
		display: flex; width: 100%; box-sizing: border-box;
		font-size: 16px !important;
	}
	.elementor .lt-nav .is-menu-open .wp-block-navigation-item__content:hover { color: #BEAB62 !important; }
}

/* =====================================================================
   Photo carousel (core/gallery enhanced by site.js)
   ===================================================================== */
.elementor .wp-block-gallery.lt-carousel {
	display: block !important;
	position: relative;
	overflow: hidden;
	padding-bottom: 30px;
	gap: 0 !important;
	--lt-per-view: 6;
}
.elementor .wp-block-gallery.lt-carousel:not(.is-ready) { display: flex !important; flex-wrap: nowrap !important; gap: 5px !important; }
.elementor .lt-carousel .lt-car-track { display: flex; gap: 5px; align-items: center; will-change: transform; }
.elementor .wp-block-gallery.lt-carousel figure.wp-block-image,
.elementor .wp-block-gallery.has-nested-images.lt-carousel figure.wp-block-image:not(#individual-image) {
	flex: 0 0 calc((100% - (var(--lt-per-view) - 1) * 5px) / var(--lt-per-view));
	width: auto !important;
	max-width: none;
	margin: 0 !important;
	display: flex;
	align-items: center;
	justify-content: center;
}
.elementor .wp-block-gallery.lt-carousel figure.wp-block-image a { display: block; width: 100%; padding-bottom: 7px; }
.elementor .wp-block-gallery.lt-carousel figure.wp-block-image img { width: 100% !important; height: auto !important; display: block; object-fit: contain !important; }
@media (max-width: 767px) { .elementor .wp-block-gallery.lt-carousel { --lt-per-view: 1; } }

.lt-car-arrow {
	position: absolute; top: calc((100% - 30px) / 2); transform: translateY(-50%);
	width: 25px; height: 25px; padding: 0; margin: 0; border: 0; background: none;
	color: rgba(237, 237, 237, .9); cursor: pointer; z-index: 2;
	display: flex; align-items: center; justify-content: center;
}
.lt-car-arrow svg { width: 25px; height: 25px; fill: currentColor; }
.lt-car-prev { left: 10px; }
.lt-car-next { right: 10px; }

/* lightbox */
.lt-lightbox {
	position: fixed; inset: 0; z-index: 100001;
	background: rgba(0, 0, 0, .9);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transition: opacity .25s;
}
.lt-lightbox.is-open { opacity: 1; }
.lt-lightbox img { max-width: 90vw; max-height: 85vh; object-fit: contain; box-shadow: 0 0 30px rgba(0, 0, 0, .3); }
.lt-lightbox button { position: absolute; background: none; border: 0; color: rgba(238, 238, 238, .9); cursor: pointer; padding: 15px; }
.lt-lightbox button svg { width: 32px; height: 32px; fill: currentColor; }
.lt-lightbox .lt-lb-close { top: 10px; right: 10px; }
.lt-lightbox .lt-lb-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.lt-lightbox .lt-lb-next { right: 10px; top: 50%; transform: translateY(-50%); }
.lt-lightbox .lt-lb-count { position: absolute; top: 22px; left: 25px; color: rgba(238, 238, 238, .9); font: 14px/1 "Albert Sans", sans-serif; }

/* ---------- block editor niceties ---------- */
.editor-styles-wrapper .lt-carousel { overflow-x: auto; }
.editor-styles-wrapper .wp-block-post-title { font-family: "Albert Sans", sans-serif; font-size: 22px; padding: 12px 20px; margin: 0; color: #777; }
.editor-styles-wrapper.elementor-kit-7 { margin: 0; }
.editor-styles-wrapper .lt-hero video { visibility: visible; }

/* nav JS keeps a copy of the overlay; removing it after an anchor click must restore the hamburger */
.elementor .lt-nav .wp-block-navigation__responsive-container-open { display: block; }
