/* Adaptation Elementor <-> template (chargé après site.css) */

/* Conteneurs Elementor : la direction flex vient du gabarit (classes flex / flex-col / sm:flex-row) */
body .e-con.e-flex.flex { --flex-direction: row; }
body .e-con.e-flex.flex-col { --flex-direction: column; }
@media (min-width: 640px) {
  body .e-con.e-flex.sm\:flex-row { --flex-direction: row; }
}

/* Titres Elementor : héritent de la taille / interligne posés sur le widget */
body .elementor-widget-heading .elementor-heading-title {
  line-height: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  font-weight: inherit;
  color: inherit;
}
body .elementor-widget-heading .elementor-heading-title em { color: inherit; }
body .title .elementor-heading-title em { font-style: italic; color: #C8471A; }
body .title-light .elementor-heading-title em { color: #F4A06E; }
body h1.elementor-heading-title em { font-style: italic; }
body .elementor-widget-text-editor p { margin: 0; }
body .ba-prose p + p { margin-top: 1rem; }

/* Widgets qui remplissent leur parent */
.ba-fill { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -10; pointer-events: none; }
.ba-fill .elementor-widget-container { height: 100%; }
.ba-fill img { width: 100%; height: 100%; object-fit: cover; }
.ba-stretch, .ba-stretch > .elementor-widget-container { height: 100%; }
.media-zoom.elementor-widget, .media-zoom .elementor-widget-container { height: 100%; }
.media-zoom.elementor-widget { display: block; }
.media-zoom .elementor-widget-container { overflow: hidden; }

/* Elementor réinitialise ces propriétés sur les liens et images */
body .elementor a.shadow-lift, body .elementor a.btn { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow, 0 0 #0000); }
body .elementor a { text-decoration: none; }
body .elementor a.link-arrow:hover { text-decoration: none; }

/* Délais d'apparition (remplaçent style="--d:…") */
.d80 { --d: 80ms; } .d120 { --d: 120ms; } .d160 { --d: 160ms; } .d200 { --d: 200ms; } .d220 { --d: 220ms; } .d240 { --d: 240ms; } .d260 { --d: 260ms; } .d280 { --d: 280ms; } .d320 { --d: 320ms; }

/* Pages légales / contenu Elementor : fond de page */
body.elementor-page { background-color: #FBF7F0; }

/* Elementor met figure {margin:0} dans les widgets */
body .elementor .elementor-widget figure.container-x { margin-left: auto; margin-right: auto; }

/* ===================== Widgets Elementor natifs ===================== */
body .e-con.e-flex.shrink-0 { flex-shrink: 0; }
body .e-con.badge { width: auto; }

/* Boutons */
body .ba-btn .elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: 0 1.25rem; border: 0; border-radius: .375rem; background: transparent; font-family: inherit; font-size: .95rem; font-weight: 600; line-height: 1.25; text-align: center; text-decoration: none; fill: currentColor; transition: color .2s, background-color .2s, border-color .2s, box-shadow .2s, transform .2s; }
body .ba-btn .elementor-button:active { transform: translateY(1px); }
body .ba-btn .elementor-button-content-wrapper { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; flex-direction: row; }
body .ba-btn .elementor-button-icon { display: inline-flex; margin: 0; }
body .ba-btn .elementor-button-icon i { font-size: 18px; line-height: 1; }
body .ba-btn .elementor-button-icon svg { width: 18px; height: 18px; }
body .ba-btn.ba-end .elementor-button-icon { order: 2; transition: transform .2s; }
body .ba-btn.ba-end .elementor-button:hover .elementor-button-icon { transform: translateX(.25rem); }
body .ba-btn-primary .elementor-button { background: #C8471A; color: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
body .ba-btn-primary .elementor-button:hover, body .ba-btn-primary .elementor-button:focus { background: #A83A13; color: #fff; box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
body .ba-btn-outline .elementor-button { border: 1px solid rgba(20,55,36,.7); color: #0F2A1C; }
body .ba-btn-outline .elementor-button:hover, body .ba-btn-outline .elementor-button:focus { border-color: #0F2A1C; background: #0F2A1C; color: #fff; }
body .ba-btn-ghost .elementor-button { border: 1px solid rgba(255,255,255,.4); color: #fff; }
body .ba-btn-ghost .elementor-button:hover, body .ba-btn-ghost .elementor-button:focus { border-color: #fff; background: rgba(255,255,255,.1); color: #fff; }
body .ba-btn-full .elementor-button { width: 100%; }
body .ba-btn-mfull .elementor-button { width: 100%; }
@media (min-width: 640px) { body .ba-btn-mfull .elementor-button { width: auto; } }
body .ba-link-arrow .elementor-button { min-height: 0; padding: 0; gap: .375rem; background: transparent; box-shadow: none; color: #A83A13; font-size: .875rem; line-height: 1.25rem; text-underline-offset: 4px; }
body .ba-link-arrow .elementor-button:hover, body .ba-link-arrow .elementor-button:focus { background: transparent; color: #A83A13; text-decoration: underline; }
body .ba-link-arrow .elementor-button-icon i { font-size: 1rem; }

/* Icônes */
body .ba-ico .elementor-icon { display: inline-flex; font-size: 1rem; line-height: 1; color: inherit; }
body .ba-ico .elementor-icon i { font-size: inherit; }
body .ba-ico-ember .elementor-icon { font-size: 1.5rem; color: #C8471A; }
body .ba-ico-ember-light .elementor-icon { font-size: 1.25rem; color: #F4A06E; }
body .group .ba-ico .elementor-icon { font-size: 1.5rem; }
body .badge .ba-ico .elementor-icon { font-size: .875rem; }
body .badge .elementor-widget-heading .elementor-heading-title { font-size: inherit; }

/* Icon Box (points forts) */
body .ba-feature .elementor-icon-box-wrapper { display: flex; align-items: flex-start; gap: .75rem; text-align: left; }
body .ba-feature .elementor-icon-box-icon { margin: 2px 0 0; flex-shrink: 0; }
body .ba-feature .elementor-icon-box-icon .elementor-icon { font-size: 1.5rem; color: #C8471A; }
body .ba-feature .elementor-icon-box-content { width: auto; }
body .ba-feature .elementor-icon-box-title { margin: 0; font-family: Fraunces, Georgia, serif; font-size: 1.125rem; line-height: 1.75rem; font-weight: 400; color: #0F2A1C; }
body .ba-feature .elementor-icon-box-description { margin: 0; font-size: .875rem; line-height: 1.25rem; color: #55615A; }

/* Listes coffrets (coches) */
body .ba-checks .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .625rem; }
body .ba-checks .elementor-icon-list-item { display: flex; align-items: flex-start; gap: .5rem; margin: 0; padding: 0; font-size: .875rem; line-height: 1.25rem; }
body .ba-checks .elementor-icon-list-icon { display: flex; width: 1rem; margin-top: .125rem; color: #2F6A48; }
body .ba-checks .elementor-icon-list-icon i { font-size: 1rem; color: inherit; }
body .ba-checks-dark .elementor-icon-list-icon { color: #F4A06E; }
body .ba-checks .elementor-icon-list-text { padding: 0; color: inherit; }

/* Options de menu (« ou ») */
body .ba-options .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
body .ba-options .elementor-icon-list-item { display: block; margin: 0; padding: 0; font-size: .95rem; line-height: 1.625; color: #FFFDF9; }
body .ba-options .elementor-icon-list-icon { display: none; }
body .ba-options .elementor-icon-list-text { padding: 0; color: inherit; }
body .ba-options .elementor-icon-list-item + .elementor-icon-list-item::before { content: "ou"; display: block; margin: .25rem 0; font-family: Fraunces, Georgia, serif; font-size: .875rem; line-height: 1.25rem; font-style: italic; color: #7AA98B; }

/* Price List = plats et tapas */
body .ba-dishes .elementor-price-list { list-style: none; margin: 0; padding: 0; }
body .ba-dishes .elementor-price-list li { margin: 0; padding: 1rem 0; border-bottom: 1px solid rgba(15,42,28,.1); }
body .ba-dishes .elementor-price-list li:last-child { border-bottom: 0; }
body .ba-dishes .elementor-price-list-item { display: block; }
body .ba-dishes .elementor-price-list-text { width: 100%; }
body .ba-dishes .elementor-price-list-header { display: flex; align-items: baseline; gap: .75rem; font-size: inherit; font-weight: 400; }
body .ba-dishes .elementor-price-list-title { margin: 0; min-width: 0; font-family: Fraunces, Georgia, serif; font-size: 1.05rem; line-height: 1.375; font-weight: 400; color: #0F2A1C; }
body .ba-dishes .elementor-price-list-separator { display: none; min-width: 1.5rem; flex: 1 1 0%; margin: 0; transform: translateY(-.3em); border: 0; border-bottom: 1px dotted rgba(125,138,130,.7); }
@media (min-width: 640px) { body .ba-dishes .elementor-price-list-separator { display: block; } }
body .ba-dishes .elementor-price-list-price { margin-left: auto; flex-shrink: 0; white-space: nowrap; font-family: Fraunces, Georgia, serif; font-size: 1.05rem; font-weight: 400; color: #A83A13; }
body .ba-dishes .elementor-price-list-description { margin: .25rem 0 0; font-size: .875rem; line-height: 1.625; color: #55615A; }
body .ba-tapas .elementor-price-list { display: grid; grid-template-columns: 1fr; column-gap: 2rem; }
@media (min-width: 768px) { body .ba-tapas .elementor-price-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } body .ba-tapas .elementor-price-list li:nth-last-child(2) { border-bottom: 0; } }
@media (min-width: 1024px) { body .ba-tapas .elementor-price-list { grid-template-columns: 1fr; } body .ba-tapas .elementor-price-list li:nth-last-child(2) { border-bottom: 1px solid rgba(15,42,28,.1); } }
@media (min-width: 1280px) { body .ba-tapas .elementor-price-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } body .ba-tapas .elementor-price-list li:nth-last-child(2) { border-bottom: 0; } }

/* Nested Tabs = onglets de la carte */
body .ba-tabs .e-n-tabs { display: block; }
body .elementor .ba-tabs .e-n-tabs-heading { display: flex; flex-wrap: nowrap; gap: 0; overflow-x: auto; margin: 0 -1rem; padding: 0 .25rem; border-bottom: 1px solid rgba(15,42,28,.1); scrollbar-width: none; }
body .ba-tabs .e-n-tabs-heading::-webkit-scrollbar { display: none; }
@media (min-width: 400px) { body .elementor .ba-tabs .e-n-tabs-heading { margin: 0 -1.25rem; } }
@media (min-width: 640px) { body .elementor .ba-tabs .e-n-tabs-heading { margin: 0; padding: 0; } }
body .elementor .ba-tabs .e-n-tab-title { position: relative; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 48px; padding: 0 .75rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; white-space: nowrap; font-family: Fraunces, Georgia, serif; font-size: 1rem; line-height: 1.5rem; font-weight: 400; color: #55615A; transition: color .15s; }
body .elementor .ba-tabs .e-n-tab-title:hover { color: #0F2A1C; background: transparent; }
body .elementor .ba-tabs .e-n-tab-title::after { content: ""; position: absolute; left: .5rem; right: .5rem; bottom: 0; height: 2px; border-radius: .25rem; background: #C8471A; transform: scaleX(0); transition: transform .3s; }
body .elementor .ba-tabs .e-n-tab-title[aria-selected="true"] { color: #0F2A1C; background: transparent; }
body .elementor .ba-tabs .e-n-tab-title[aria-selected="true"]::after { transform: scaleX(1); }
body .elementor .ba-tabs .e-n-tab-title-text { font: inherit; color: inherit; }
body .ba-tabs .e-n-tabs-content > .e-con { padding-top: .5rem; }
/* Conteneurs positionnés en absolu : largeur automatique (les insets décident) */
body .e-con.absolute { width: auto; }

/* Icônes SVG inline d'Elementor : suivent la couleur du texte */
body .elementor-icon svg, body .elementor-icon-list-icon svg, body .elementor-button-icon svg { fill: currentColor; }
body .elementor .elementor-icon svg, body .elementor .elementor-icon-list-icon svg, body .elementor .elementor-button-icon svg { fill: currentColor !important; }

/* Conteneurs : largeur pilotée par le gabarit (plus de width:100% imposé) */
body .e-con { --width: auto; }
body .elementor .ba-options .elementor-icon-list-text { padding: 0 !important; }
body .elementor .ba-options .elementor-icon-list-icon { display: none !important; }

/* Onglets : états actif/survol sans fond, alignement à gauche */
body .elementor .ba-tabs .e-n-tabs-heading { justify-content: flex-start; align-items: stretch; }
body .elementor .ba-tabs .e-n-tab-title, body .elementor .ba-tabs .e-n-tab-title:hover, body .elementor .ba-tabs .e-n-tab-title:focus, body .elementor .ba-tabs .e-n-tab-title[aria-selected="true"], body .elementor .ba-tabs .e-n-tab-title.e-active { background: transparent !important; box-shadow: none !important; border: 0 !important; }
body .elementor .ba-tabs .e-n-tab-title[aria-selected="true"] { color: #0F2A1C !important; }
body .elementor .ba-tabs .e-n-tab-title:not([aria-selected="true"]) { color: #55615A !important; }
body .elementor .ba-tabs .e-n-tab-title:not([aria-selected="true"]):hover { color: #0F2A1C !important; }
body .e-con.e-flex.badge { --flex-direction: row; }
