/*
Theme Name:   La Cabane Bauloise
Theme URI:    https://lacabanebauloise.fr/
Description:  Hello Elementor child theme for La Cabane Bauloise.
Author:       Mixit7
Author URI:   https://mixit7.com/
Template:     hello-elementor
Version:      1.0.0
Text Domain:  lacabanebauloise
Tags:         elementor, hello-elementor, child-theme
*/

/* ---------------------------------------------------------------
   Design tokens — mirror the holding page palette
--------------------------------------------------------------- */
:root {
	--rouge:       #BC433F;
	--rouge-hover: #D44432;
	--encre:       #1A110A;
	--creme:       #FAF6EF;
	--pale:        #9A7055;
	--blanc:       #FFFFFF;

	/* Map to Elementor global color vars */
	--e-global-color-primary:   var(--rouge);
	--e-global-color-secondary: var(--pale);
	--e-global-color-text:      var(--encre);
	--e-global-color-accent:    var(--creme);
}

/* Base */
body {
	background-color: var(--creme);
	color: var(--encre);
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
}

/* Containter Deco Stripe */
.stripe-deco {
    width: 100%;
    height: 16px;
	background: repeating-linear-gradient(90deg, var(--rouge) 0px, var(--rouge) 18px, #ffffff 18px, #ffffff 36px);
    flex-shrink: 0;
}

.horaires-days { display: flex; flex-direction: column; }
.horaires-day { display: flex; justify-content: space-between; align-items: baseline; padding: 0.75rem 0; border-bottom: 1px solid #C0392B; }
.horaires-day .jour { font-size: 0.95rem;  font-weight: 700; }
.horaires-day .heure { font-size: 0.95rem; font-weight: 500; }
.horaires-day.ferme .heure { }

/* ---------------------------------------------------------------
   WPML Language Switcher — Desktop styles
--------------------------------------------------------------- */
.wpml-ls-legacy-list-horizontal {
    background-color: rgba(240, 242, 244, 0.50);
    border-radius: 0px;
    padding: 4px;
    display: inline-flex;
    align-items: center;
}

/* Liste */
.wpml-ls-legacy-list-horizontal ul {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    gap: 0;
}

/* Items */
.wpml-ls-legacy-list-horizontal li {
    display: flex;
    align-items: center;
    float: none;
}

/* Separateur */
.wpml-ls-legacy-list-horizontal li:not(:last-child)::after {
    content: "|";
    color: #000;
    margin: 0 10px;
    font-size: 15px;
    margin-top: -4px;
}

/* Liens */
.wpml-ls-legacy-list-horizontal .wpml-ls-link {
    text-decoration: none;
    font-size: 14px;
    font-family: Helvetica;
    line-height: 16px;
    font-weight: 400;
    padding: 8px 8px;
    border-radius: 0px;
    color: #fff;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
}

/* Langue active */
.wpml-ls-legacy-list-horizontal .wpml-ls-current-language .wpml-ls-link {
    background-color: #BE3B35;
    color: #fff;
    border-radius: 0px;
}

/* Langue inactive */
.wpml-ls-legacy-list-horizontal li:not(.wpml-ls-current-language) .wpml-ls-link {
    background: transparent;
    color: #000 !important;
}

.wpml-ls-legacy-list-horizontal ul {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
}

.wpml-ls-legacy-list-horizontal li {
    display: flex !important;
    float: none !important;
}

/* ---------------------------------------------------------------
   WPML Language Switcher — Mobile Dropdown panel
   Always hidden globally; only revealed on mobile via lcb-open.
--------------------------------------------------------------- */
.lcb-lang-panel {
    display: none !important;
}

/* ---------------------------------------------------------------
   WPML Language Switcher — Mobile Dropdown (max-width: 768px)
--------------------------------------------------------------- */
@media (max-width: 768px) {

    /* Container becomes the dropdown trigger */
    .wpml-ls-legacy-list-horizontal {
        position: relative;
        cursor: pointer;
        user-select: none;
        background-color: transparent;
        padding: 2px;
    }

    /* Current language link — discreet, no red */
    .wpml-ls-legacy-list-horizontal .wpml-ls-current-language .wpml-ls-link {
        background-color: transparent;
        color: #BE3B35 !important;
        padding: 4px 4px;
        font-size: 16px;
        transition: color 0.2s ease;
    }

    /* No background on sticky — mobile */
    .elementor-sticky--effects .elementor-element-3522d3f .wpml-ls-legacy-list-horizontal,
    .elementor-44.elementor-sticky--effects .elementor-element-3522d3f .wpml-ls-legacy-list-horizontal {
        background-color: transparent !important;
    }

    /* Red text when Elementor sticky header is active — trigger + dropdown */
    .elementor-sticky--effects .elementor-element-3522d3f .wpml-ls-legacy-list-horizontal .wpml-ls-current-language .wpml-ls-link,
    .elementor-44.elementor-sticky--effects .elementor-element-3522d3f .wpml-ls-legacy-list-horizontal .wpml-ls-current-language .wpml-ls-link,
    .elementor-sticky--effects .elementor-element-3522d3f .wpml-ls-legacy-list-horizontal.lcb-open .lcb-lang-panel a,
    .elementor-44.elementor-sticky--effects .elementor-element-3522d3f .wpml-ls-legacy-list-horizontal.lcb-open .lcb-lang-panel a {
        color: #BE3B35 !important;
    }

    /* Remove separator — match original selector specificity */
    .wpml-ls-legacy-list-horizontal li:not(:last-child)::after {
        display: none !important;
    }

    /* Hide non-current languages in the list */
    .wpml-ls-legacy-list-horizontal li:not(.wpml-ls-current-language) {
        display: none !important;
    }

    /* No chevron on mobile */
    .wpml-ls-legacy-list-horizontal .wpml-ls-current-language .wpml-ls-link::after {
        content: none;
    }

    /* Show panel when open */
    .wpml-ls-legacy-list-horizontal.lcb-open .lcb-lang-panel {
        display: block !important;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        z-index: 9999;
        background: rgba(240, 242, 244, 0.97);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
        box-sizing: border-box;
    }

    .wpml-ls-legacy-list-horizontal.lcb-open .lcb-lang-panel a {
        display: block;
        text-decoration: none;
        font-size: 16px;
        font-family: Helvetica, sans-serif;
        font-weight: 400;
        line-height: 16px;
        padding: 4px 4px;
        color: #1A110A;
        transition: background 0.15s ease, color 0.15s ease;
        white-space: nowrap;
    }

    .wpml-ls-legacy-list-horizontal.lcb-open .lcb-lang-panel a:hover {
        background: #BE3B35;
        color: #fff;
    }
}


/* ---------------------------------------------------------------
   Galerie de fin d'article (2 a 3 images, hauteur identique)
   La largeur suit le ratio de l'image, passe par la variable --ar
--------------------------------------------------------------- */
.lcb-article-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 36px 0 8px;
}

.lcb-article-gallery figure {
	flex: var(--ar, 1) 1 calc(var(--ar, 1) * 180px);
	min-width: 0;
	margin: 0;
	padding: 0;
}

.lcb-article-gallery img {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: cover;
}

@media (max-width: 1024px) {
	.lcb-article-gallery img {
		height: 240px;
	}
}

@media (max-width: 767px) {
	.lcb-article-gallery {
		gap: 10px;
	}

	.lcb-article-gallery figure {
		flex: 1 1 100%;
	}

	.lcb-article-gallery img {
		height: 220px;
	}
}

/* ---------------------------------------------------------------
   Bloc FAQ de fin d'article (shortcode via champ ACF faq_shortcode)
   Aligne le rendu du shortcode brut sur celui du widget de la page FAQ
--------------------------------------------------------------- */
.elementor-widget-shortcode .mixit7-faq {
	--mixit7-faq-border-color: rgba(255, 255, 255, 0);
}

.elementor-widget-shortcode .mixit7-faq .mixit7-faq-section-title {
	font-family: "Bodoni Moda", serif;
	font-size: 28px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.72px;
	color: var(--encre, #1A110A);
	margin-bottom: 0.6em;
}

.elementor-widget-shortcode .mixit7-faq .mixit7-faq-question {
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 4px;
	text-transform: uppercase;
	padding: 12px 14px;
}

.elementor-widget-shortcode .mixit7-faq .mixit7-faq-item:not(.is-open) .mixit7-faq-question {
	background-color: var(--blanc, #FFFFFF);
	color: var(--encre, #1A110A);
}

.elementor-widget-shortcode .mixit7-faq .mixit7-faq-item.is-open .mixit7-faq-question {
	background-color: var(--rouge, #BC433F);
	color: var(--blanc, #FFFFFF);
}

.elementor-widget-shortcode .mixit7-faq .mixit7-faq-question:hover,
.elementor-widget-shortcode .mixit7-faq .mixit7-faq-question:focus-visible {
	background-color: var(--rouge-hover, #D44432);
	color: var(--blanc, #FFFFFF);
	outline: none;
}

.elementor-widget-shortcode .mixit7-faq .mixit7-faq-answer-inner {
	font-family: Montserrat, sans-serif;
	font-size: 14.4px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.72px;
	color: var(--encre, #1A110A);
}

@media (max-width: 767px) {
	.elementor-widget-shortcode .mixit7-faq .mixit7-faq-section-title {
		font-size: 24px;
	}

	.elementor-widget-shortcode .mixit7-faq .mixit7-faq-question {
		letter-spacing: 2px;
	}
}

/* ---------------------------------------------------------------
   Barre de filtre des actualites (widget natif Filtre par taxonomie)
   Angles droits, pas d'arrondi
--------------------------------------------------------------- */
.elementor-element.elementor-element-f1a2b3c {
	--container-widget-width: auto;
	max-width: 100%;
	padding: 0 0 22px;
	border-bottom: 1px solid rgba(154, 112, 85, 0.25);
	margin-bottom: 34px;
}

.elementor-element.elementor-element-f1a2b3c > .elementor-element,
.elementor-element.elementor-element-f1a2b3c > .elementor-widget {
	width: auto;
	max-width: none;
	flex: 0 0 auto;
}

.lcb-filtre-label .elementor-heading-title {
	font-family: Montserrat, sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--pale, #9A7055);
	white-space: nowrap;
}

/* variables exposees par le widget */
.elementor-widget.lcb-filtre {
	--e-filter-space-between: 10px;
	--e-filter-item-padding: 14px 22px;
	--e-filter-justify-content: flex-start;
	--e-filter-normal-text-color: var(--encre, #1A110A);
	--e-filter-hover-text-color: var(--rouge, #BC433F);
	--e-filter-active-text-color: var(--blanc, #FFFFFF);
}

.elementor-widget.lcb-filtre .e-filter {
	justify-content: flex-start;
	margin: 0;
	padding: 0;
}

.elementor-widget.lcb-filtre .e-filter .e-filter-item {
	border: 1px solid rgba(154, 112, 85, 0.35);
	border-radius: 0;
	background-color: transparent;
	font-family: Montserrat, sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* « Tout » est rendu en dernier dans le DOM : on le ramene en tete */
.elementor-widget.lcb-filtre .e-filter .e-filter-item[data-filter="__all"] {
	order: -1;
}

.elementor-widget.lcb-filtre .e-filter .e-filter-item:hover,
.elementor-widget.lcb-filtre .e-filter .e-filter-item:focus-visible {
	border-color: var(--rouge, #BC433F);
	outline: none;
}

.elementor-widget.lcb-filtre .e-filter .e-filter-item[aria-pressed="true"] {
	background-color: var(--rouge, #BC433F);
	border-color: var(--rouge, #BC433F);
}

.lcb-filtre-compte {
	margin-left: auto;
}

.lcb-compte-articles {
	font-family: Montserrat, sans-serif;
	font-size: 13px;
	letter-spacing: 0.5px;
	color: var(--pale, #9A7055);
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.elementor-widget.lcb-filtre {
		--e-filter-item-padding: 12px 16px;
	}

	.elementor-widget.lcb-filtre .e-filter .e-filter-item {
		letter-spacing: 1.5px;
	}
}

@media (max-width: 767px) {
	.elementor-element.elementor-element-f1a2b3c {
		padding-bottom: 18px;
		margin-bottom: 26px;
	}

	.lcb-filtre-compte {
		margin-left: 0;
		width: 100%;
	}

	.elementor-widget.lcb-filtre {
		--e-filter-space-between: 8px;
		--e-filter-item-padding: 10px 14px;
	}

	.elementor-widget.lcb-filtre .e-filter .e-filter-item {
		font-size: 12px;
		letter-spacing: 1px;
	}
}

/* ---------------------------------------------------------------
   Fil d'Ariane des articles
--------------------------------------------------------------- */
.lcb-fil-ariane ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
}

.lcb-fil-ariane li {
	display: inline-flex;
	align-items: center;
	font-family: Montserrat, sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--pale, #9A7055);
	line-height: 1.4;
}

.lcb-fil-ariane li:not(:last-child)::after {
	content: "\203A";
	margin-inline-start: 8px;
	color: var(--pale, #9A7055);
	opacity: 0.7;
	letter-spacing: 0;
}

.lcb-fil-ariane a {
	color: var(--pale, #9A7055);
	text-decoration: none;
	transition: color 0.2s ease;
}

.lcb-fil-ariane a:hover,
.lcb-fil-ariane a:focus-visible {
	color: var(--rouge, #BC433F);
}

.lcb-fil-ariane li:last-child span {
	color: var(--encre, #1A110A);
	max-width: 46ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 767px) {
	.lcb-fil-ariane li {
		font-size: 11px;
		letter-spacing: 1px;
	}

	.lcb-fil-ariane li:last-child span {
		max-width: 22ch;
	}
}

/* ---------------------------------------------------------------
   Titre de section de la page Actualites, au-dessus de la liste.
   La typographie vient du style H2 global du kit Elementor
   (Montserrat capitales rouge, comme les surtitres) : on ne regle
   ici que l'espacement avec la barre de filtre.
--------------------------------------------------------------- */
.lcb-titre-liste .elementor-heading-title {
	margin: 0 0 26px;
}

@media (max-width: 767px) {
	.lcb-titre-liste .elementor-heading-title {
		margin-bottom: 20px;
	}
}

/* ---------------------------------------------------------------
   Bloc « infos pratiques » des articles
   Coordonnees avec icones, filet, puis actions en liste
--------------------------------------------------------------- */
.lcb-info-nom {
	font-family: Montserrat, sans-serif;
	font-size: 15px;
	line-height: 1.4;
	margin: 0 0 18px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.28);
}

.lcb-infos,
.lcb-actions {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lcb-infos li {
	position: relative;
	padding-inline-start: 30px;
	margin-bottom: 16px;
	font-family: Montserrat, sans-serif;
	font-size: 14.4px;
	line-height: 1.6;
	letter-spacing: 0.4px;
}

.lcb-infos li:last-child {
	margin-bottom: 0;
}

/* icones : on colore le SVG via un masque, pour qu'il suive le texte */
.lcb-info-adresse::before,
.lcb-info-tel::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 3px;
	width: 17px;
	height: 17px;
	background-color: currentColor;
	opacity: 0.9;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.lcb-info-adresse::before {
	-webkit-mask-image: url("/wp-content/uploads/icon-localisation.svg");
	mask-image: url("/wp-content/uploads/icon-localisation.svg");
}

.lcb-info-tel::before {
	-webkit-mask-image: url("/wp-content/uploads/icon-phone.svg");
	mask-image: url("/wp-content/uploads/icon-phone.svg");
}

.lcb-info-tel a {
	font-weight: 600;
	text-decoration: none;
	color: inherit;
}

.lcb-info-tel a:hover,
.lcb-info-tel a:focus-visible {
	text-decoration: underline;
}

/* les horaires n'ont pas d'icone : un intitule les annonce */
.lcb-info-label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	opacity: 0.75;
	margin-bottom: 3px;
}

/* filet de separation entre coordonnees et actions */
.lcb-actions {
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.28);
}

.lcb-actions li {
	margin-bottom: 12px;
}

.lcb-actions li:last-child {
	margin-bottom: 0;
}

.lcb-actions a {
	display: inline-flex;
	align-items: baseline;
	gap: 9px;
	font-family: Montserrat, sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	line-height: 1.35;
	transition: opacity 0.2s ease;
}

.lcb-actions a::before {
	content: "\2192";
	flex: 0 0 auto;
	font-weight: 400;
	letter-spacing: 0;
	transition: transform 0.2s ease;
}

.lcb-actions a:hover,
.lcb-actions a:focus-visible {
	opacity: 0.78;
}

.lcb-actions a:hover::before,
.lcb-actions a:focus-visible::before {
	transform: translateX(3px);
}

@media (max-width: 767px) {
	.lcb-infos li {
		font-size: 14px;
		margin-bottom: 14px;
	}

	.lcb-actions a {
		font-size: 12px;
		letter-spacing: 1.2px;
	}
}
