/* ===== LOMA — Améliorations visuelles (A+B+C) =====
   Injecté après tous les styles du thème. DA intacte : crème #FDF8F4, navy #313556, bronze #A8784E, Marcellus/Inter. */

/* ========== Section conversion fin de page Restaurant ========== */
.loma-resto-cta { text-align: center; max-width: 700px; margin: 0 auto; padding: 78px 24px 92px; }
.loma-resto-title { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(32px, 5vw, 52px); line-height: 1.06; margin: 8px 0 16px; }
.loma-resto-sub { font-family: Inter, sans-serif; color: #6b6f86; font-size: 16px; line-height: 1.7; margin: 0 0 34px; }
.loma-resto-cta .loma-contact-actions { margin-bottom: 0; }

/* ========== Page ÉPICERIE FINE (vitrine) ========== */
.loma-epicerie { max-width: 1000px; margin: 0 auto; padding: 60px 26px 60px; }
.loma-epicerie-intro { text-align: center; margin-bottom: 50px; }
.loma-epicerie-feature { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: stretch; margin-bottom: 60px; }
.loma-epicerie-photo { overflow: hidden; box-shadow: 0 24px 60px rgba(49,53,86,.16); border-radius: 16px; }
.loma-epicerie-photo img, .loma-epicerie-photo video { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4/5; }
.loma-epicerie-text { display: flex; flex-direction: column; justify-content: center; padding: 8px 0 8px 32px; border-left: 1px solid rgba(168,120,78,.30); }
.loma-epicerie-text-title { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(26px, 3.4vw, 38px); line-height: 1.12; margin: 0 0 18px; }
.loma-epicerie-text p { font-family: Inter, sans-serif; font-size: 17px; line-height: 1.75; color: #5b5f78; margin: 0 0 14px; }
.loma-epicerie-pillars { list-style: none; margin: 20px 0 0; padding: 0; }
.loma-epicerie-pillars li { font-family: Marcellus, serif; font-size: 17px; color: #313556; padding: 13px 0 13px 22px; position: relative; border-top: 1px solid rgba(49,53,86,.10); }
.loma-epicerie-pillars li:last-child { border-bottom: 1px solid rgba(49,53,86,.10); }
.loma-epicerie-pillars li::before { content: ""; position: absolute; left: 0; top: 50%; width: 10px; height: 1px; background: #A8784E; transform: translateY(-50%); }
.loma-epicerie-cats { text-align: center; margin-bottom: 60px; }
.loma-epicerie-cats ul {
  list-style: none; margin: 18px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0;
  max-width: 760px; margin-left: auto; margin-right: auto;
}
.loma-epicerie-cats li {
  font-family: Marcellus, serif; font-size: 18px; color: #313556;
  padding: 16px 10px; border-bottom: 1px solid rgba(49,53,86,.10);
}
.loma-epicerie-soon { text-align: center; max-width: 540px; margin: 0 auto; padding-top: 14px; }
.loma-epicerie-soon-title { font-family: Marcellus, serif; font-size: clamp(26px,4vw,34px); color: #313556; margin: 6px 0 14px; }
.loma-epicerie-soon-text { font-family: Inter, sans-serif; font-size: 15px; line-height: 1.7; color: #6b6f86; margin: 0 0 28px; }
.loma-epicerie-soon .loma-contact-actions { margin-bottom: 0; }
@media (max-width: 760px) {
  .loma-epicerie-feature { grid-template-columns: 1fr; gap: 26px; }
  .loma-epicerie-photo { max-width: 420px; margin: 0 auto; }
  .loma-epicerie-text { padding: 0; border-left: none; text-align: center; }
  .loma-epicerie-text-title { font-size: clamp(24px, 7vw, 30px); }
  .loma-epicerie-pillars li { padding-left: 0; text-align: center; }
  .loma-epicerie-pillars li::before { display: none; }
  .loma-epicerie-cats ul { grid-template-columns: 1fr; max-width: 360px; }
}

/* ========== Section "Nous trouver" (Google Maps) ========== */
.loma-map { text-align: center; max-width: 900px; margin: 0 auto; padding: 64px 24px 20px; }
.loma-map-title { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(28px, 4vw, 44px); margin: 8px 0 6px; }
.loma-map-addr { font-family: Inter, sans-serif; color: #6b6f86; font-size: 15px; margin: 0 0 26px; }
.loma-map-embed { width: 100%; aspect-ratio: 16/9; overflow: hidden; border: 1px solid rgba(49,53,86,.12); margin-bottom: 24px; }
.loma-map-embed iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.2) contrast(.95); }
@media (max-width: 600px) { .loma-map-embed { aspect-ratio: 4/5; } }

/* ========== Concierge conversationnel (privatisation / contact) ========== */
.loma-concierge { max-width: 640px; margin: 0 auto; }
.loma-cc-thread { display: flex; flex-direction: column; gap: 12px; margin-bottom: 18px; }
.loma-cc-bubble { max-width: 84%; padding: 13px 17px; font-family: Inter, sans-serif; font-size: 15px; line-height: 1.5; animation: loma-cc-in .35s ease; }
.loma-cc-bot { align-self: flex-start; background: #fff; border: 1px solid rgba(49,53,86,.12); color: #313556; border-radius: 2px 14px 14px 14px; }
.loma-cc-user { align-self: flex-end; background: #313556; color: #fff; border-radius: 14px 2px 14px 14px; }
@keyframes loma-cc-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.loma-cc-input-zone { display: flex; flex-direction: column; gap: 12px; }
.loma-cc-options { display: flex; flex-wrap: wrap; gap: 10px; }
.loma-cc-opt {
  font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; color: #313556; background: transparent;
  border: 1px solid rgba(49,53,86,.4); padding: 11px 18px; cursor: pointer; transition: background .25s, color .25s, border-color .25s;
}
.loma-cc-opt:hover { background: #313556; color: #fff; border-color: #313556; }
.loma-cc-field { font-family: Inter, sans-serif; font-size: 15px; color: #313556; background: transparent; border: 1px solid rgba(49,53,86,.28); padding: 14px 16px; width: 100%; }
.loma-cc-field::placeholder { color: #9a9eb0; }
textarea.loma-cc-field { min-height: 90px; resize: vertical; }
.loma-cc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.loma-cc-send {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; font-family: Inter, sans-serif; font-size: 12px;
  font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #fff; background: #313556; border: 0;
  padding: 15px 32px; cursor: pointer; text-decoration: none; transition: background .3s;
}
.loma-cc-send:hover { background: #A8784E; }
.loma-cc-skip { background: none; border: 0; color: #9a9eb0; font-family: Inter, sans-serif; font-size: 12px; cursor: pointer; text-decoration: underline; align-self: flex-start; padding: 4px 0; }
.loma-cc-alt { text-align: center; margin-top: 26px; font-family: Inter, sans-serif; font-size: 13px; color: #8a8ea3; }
.loma-cc-alt a { color: #A8784E; text-decoration: none; font-weight: 600; }
@media (max-width: 520px) { .loma-cc-row { grid-template-columns: 1fr; } .loma-cc-bubble { max-width: 92%; } }

/* ========== Page Contact : infos d'abord (au-dessus de la ligne de flottaison) ========== */
.loma-contact-top { text-align: center; max-width: 820px; margin: 0 auto; padding: 72px 24px 10px; }
.loma-contact-h1 { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(32px, 5vw, 54px); margin: 8px 0 36px; }
.loma-contact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 48px; max-width: 660px; margin: 0 auto 38px; text-align: left; }
.loma-contact-item { display: flex; flex-direction: column; gap: 5px; }
.loma-ci-l { font-family: Inter, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #A8784E; }
.loma-contact-item a, .loma-contact-item > span:not(.loma-ci-l) { font-family: Inter, sans-serif; font-size: 16px; color: #313556; text-decoration: none; }
.loma-contact-item a:hover { color: #A8784E; }
@media (max-width: 600px) { .loma-contact-grid { grid-template-columns: 1fr; text-align: center; } .loma-contact-item { align-items: center; } }

/* ========== Boutons contact (appeler / écrire) ========== */
.loma-contact-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin: 4px auto 44px; }
.loma-contact-btn {
  display: inline-flex; align-items: center; gap: 11px; font-family: Inter, sans-serif; font-size: 12px;
  font-weight: 600; letter-spacing: .18em; text-transform: uppercase; text-decoration: none;
  padding: 16px 32px; transition: background .3s, color .3s, border-color .3s;
}
.loma-contact-btn svg { width: 17px; height: 17px; }
.loma-contact-btn--call { background: #313556; color: #fff; }
.loma-contact-btn--call svg { fill: #fff; }
.loma-contact-btn--call:hover { background: #A8784E; }
.loma-contact-btn--mail { background: transparent; color: #313556; border: 1px solid rgba(49,53,86,.45); }
.loma-contact-btn--mail svg { fill: currentColor; }
.loma-contact-btn--mail:hover { background: #313556; color: #fff; }
@media (max-width: 480px) {
  .loma-contact-actions { flex-direction: column; align-items: center; }
  .loma-contact-btn { width: 100%; max-width: 300px; justify-content: center; }
}

/* ===== Page Contact : infos + carte côte à côte (tout sous l'oeil, zéro répétition) ===== */
.loma-contact-top { max-width: 1080px; padding: 64px 24px 58px; }
.loma-contact-split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; text-align: left; margin-top: 10px; }
.loma-contact-info { display: flex; flex-direction: column; justify-content: center; }
.loma-contact-split .loma-contact-grid { grid-template-columns: 1fr; gap: 22px; max-width: none; margin: 0 0 30px; text-align: left; }
.loma-contact-split .loma-contact-actions { justify-content: flex-start; margin: 0; flex-wrap: wrap; }
.loma-contact-split .loma-map-embed { aspect-ratio: auto; height: 100%; min-height: 320px; margin: 0; }
@media (max-width: 860px) {
  .loma-contact-split { grid-template-columns: 1fr; gap: 30px; }
  .loma-contact-split .loma-contact-grid { grid-template-columns: 1fr 1fr; }
  .loma-contact-split .loma-contact-actions { justify-content: center; }
  .loma-contact-split .loma-map-embed { aspect-ratio: 16/9; height: auto; min-height: 0; }
}
@media (max-width: 560px) {
  .loma-contact-split .loma-contact-grid { grid-template-columns: 1fr; text-align: center; }
  .loma-contact-split .loma-contact-item { align-items: center; }
  .loma-contact-split .loma-contact-actions { flex-direction: column; align-items: center; }
}

/* ========== Piliers (Restaurant • Épicerie fine • Privatisation) — look "avant" + espacement harmonisé ========== */
.loma-pillars {
  display: inline-flex; flex-wrap: nowrap; align-items: center; justify-content: center;
  gap: .72em;
  font-family: Marcellus, serif !important; color: #5C749E !important;
  font-size: clamp(18px, 2.4vw, 30px) !important; letter-spacing: .04em !important;
  text-transform: none; font-weight: 400 !important; line-height: 1.45 !important;
  padding: 30px 16px; margin: 0 auto; text-align: center;
}
.loma-pillars-word { white-space: nowrap; }
.loma-pillars-sep { color: #A8784E; font-size: .6em; opacity: .85; line-height: 1; margin: 0; }
@media (max-width: 600px) {
  .loma-pillars { flex-wrap: wrap; gap: .4em .72em; padding: 22px 14px; letter-spacing: .03em !important; }
}

/* ===== Marquee piliers : egaliser l'espace haut/bas (haut 186px -> ~bas 61px) ===== */
.elementor-element-4b35747 { margin-top: -122px; }
@media (max-width: 600px) { .elementor-element-4b35747 { margin-top: 0; } }

/* ===== Contact LARGE : 3 zones cote a cote [equipe | coordonnees | carte] ===== */
.loma-contact-split--3 { grid-template-columns: 0.82fr 1fr 1.05fr; gap: 40px; align-items: stretch; }
.loma-contact-team { margin: 0; display: flex; flex-direction: column; }
.loma-contact-team .loma-team-photo { flex: 1 1 auto; min-height: 300px; overflow: hidden; box-shadow: 0 24px 60px rgba(49,53,86,.18); }
.loma-contact-team img { width: 100%; height: 100%; object-fit: cover; display: block; }
.loma-contact-team figcaption { flex: 0 0 auto; margin-top: 14px; display: flex; flex-direction: column; gap: 4px; font-family: Inter, sans-serif; font-size: 13.5px; color: #6b6f86; text-align: left; }
.loma-contact-team figcaption b { font-family: Marcellus, serif; font-weight: 400; font-size: 16px; color: #313556; }
@media (max-width: 980px) {
  .loma-contact-split--3 { grid-template-columns: 1fr 1fr; }
  .loma-contact-split--3 .loma-map-embed { grid-column: 1 / -1; aspect-ratio: 16/9; height: auto; min-height: 0; }
}
@media (max-width: 620px) {
  .loma-contact-split--3 { grid-template-columns: 1fr; }
  .loma-contact-team .loma-team-photo { min-height: 0; aspect-ratio: 4/5; }
}

/* ===== 3 cartes services (Restaurant/Épicerie/Privatisation, section 79ce0f2) : arrondi doux uniforme restaure (pas l'arche/ovale rejetee par Christelle) ===== */
.elementor-element-79ce0f2 .qodef-m-image { border-radius: 16px !important; overflow: hidden; aspect-ratio: 1000 / 1509; }
.elementor-element-79ce0f2 .qodef-m-image img { border-radius: 16px !important; width: 100%; height: 100%; object-fit: cover; }

/* ===== CTA band (accueil, action client) ===== */
.loma-cta-band { text-align: center; max-width: none; margin: 0; padding: 50px 24px 78px; position: relative; overflow: hidden; }
.loma-cta-band > * { position: relative; z-index: 1; }
/* emblème filigrane à DROITE seulement (gauche retiré) — top/bottom = tient entièrement, jamais coupé */
.loma-cta-band::after {
  content: ""; position: absolute; right: 3%; top: 26px; bottom: 26px; z-index: 0; pointer-events: none;
  width: 210px; opacity: .06;
  background: url(/loma-assets/emblem-motif.png) no-repeat center / contain;
}
@media (max-width: 820px) { .loma-cta-band::after { display: none; } }
.loma-cta-title { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(30px, 4.5vw, 46px); line-height: 1.05; margin: 6px 0 14px; }
.loma-cta-sub { font-family: Inter, sans-serif; font-size: 15.5px; line-height: 1.7; color: #6b6f86; margin: 0 auto 28px; max-width: 34em; display: inline-block; }
.loma-cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.loma-cta-btn { display: inline-block; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; padding: 15px 34px; border: 1px solid rgba(49,53,86,.4); color: #313556; transition: background .25s, color .25s, border-color .25s; }
.loma-cta-btn:hover { background: #313556; color: #fff; border-color: #313556; }
.loma-cta-btn--primary { background: #A8784E; color: #fff; border-color: #A8784E; }
.loma-cta-btn--primary:hover { background: #313556; border-color: #313556; }

/* ===== Restaurant : Notre histoire (2 colonnes, façon accueil) ===== */
.loma-histoire { padding: 92px 24px 64px; }
.loma-histoire-inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: center; }
.loma-histoire-photo { overflow: hidden; box-shadow: 0 24px 60px rgba(49,53,86,.18); border-radius: 16px; }
.loma-histoire-photo img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4/5; border-radius: 16px; }
/* photo "histoire de passion" (accueil) : angles arrondis 16px sur l'IMAGE (le conteneur arrondi n'a pas overflow:hidden) */
.qodef-single-image .qodef-m-image[style*="border-radius: 50em"] { border-radius: 16px !important; overflow: hidden; }
.qodef-single-image .qodef-m-image[style*="border-radius: 50em"] img { border-radius: 16px !important; display: block; }
.loma-histoire-title { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(32px, 4.4vw, 50px); line-height: 1.05; margin: 0 0 16px; }
.loma-histoire-lead { font-family: Marcellus, serif; font-style: italic; color: #A8784E; font-size: 19px; margin: 0 0 18px; }
.loma-histoire-text p { font-family: Inter, sans-serif; font-size: 16px; line-height: 1.8; color: #5b5f78; margin: 0 0 16px; }
@media (max-width: 860px) {
  .loma-histoire-inner { grid-template-columns: 1fr; gap: 30px; max-width: 560px; }
  .loma-histoire-photo { max-width: 400px; margin: 0 auto; }
  .loma-histoire-text { text-align: center; }
}

/* ===== Privatisation : contenu + photo à droite (moins large) ===== */
.loma-privat-split { display: grid; grid-template-columns: 1fr 0.5fr; gap: 50px; max-width: 1100px; margin: 0 auto; align-items: center; padding: 4px 24px; }
.loma-privat-main { min-width: 0; }
.loma-privat-photo { margin: 0 0 0 auto; max-width: 340px; overflow: hidden; box-shadow: 0 24px 60px rgba(49,53,86,.18); border-radius: 16px; }
.loma-privat-photo img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4/5; border-radius: 16px; }
@media (max-width: 900px) {
  .loma-privat-split { grid-template-columns: 1fr; gap: 28px; max-width: 600px; }
  .loma-privat-photo { max-width: 340px; margin: 0 auto; order: -1; }
}

/* ===== Contact : bouton WhatsApp + section conversation ===== */
.loma-contact-btn--wa { background: transparent; color: #313556; border: 1px solid rgba(49,53,86,.45); }
.loma-contact-btn--wa svg { fill: #25984a; }
.loma-contact-btn--wa:hover { background: #25984a; color: #fff; border-color: #25984a; }
.loma-contact-btn--wa:hover svg { fill: #fff; }
.loma-contact-convo { max-width: 640px; margin: 0 auto; padding: 6px 24px 60px; text-align: center; }
.loma-convo-title { font-family: Marcellus, serif; font-weight: 400; color: #313556; font-size: clamp(28px, 4vw, 40px); margin: 6px 0 12px; }
.loma-convo-sub { font-family: Inter, sans-serif; font-size: 15px; line-height: 1.7; color: #6b6f86; margin: 0 auto 26px; max-width: 34em; }

/* Contact : infos centrées (sans carte ni boutons redondants, les actions sont dans la conversation) */
.loma-contact-grid--center { grid-template-columns: repeat(4, auto); justify-content: center; gap: 26px 56px; max-width: none; margin: 30px auto 0; text-align: center; }
.loma-contact-grid--center .loma-contact-item { align-items: center; }
@media (max-width: 820px) { .loma-contact-grid--center { grid-template-columns: 1fr 1fr; gap: 26px 40px; } }
@media (max-width: 460px) { .loma-contact-grid--center { grid-template-columns: 1fr; } }

/* ===== Concierge : conversation épurée on-brand (pas de fenêtre boxy / case dans case) ===== */
.loma-concierge { max-width: none; margin: 0; background: none; border: 0; box-shadow: none; }
.loma-cc-header { display: none; }
.loma-online { margin: 0 0 14px; }
.loma-cc-thread { display: flex; flex-direction: column; gap: 12px; margin: 0 0 18px; padding: 0; background: transparent; }
.loma-cc-input-zone { display: flex; flex-direction: column; gap: 12px; padding: 0; }
.loma-cc-alt { margin: 22px 0 0; padding: 0; text-align: left; }

/* ===== Contact 2 colonnes : chat à gauche, actions (boutons) à droite ===== */
.loma-contact-2col { display: grid; grid-template-columns: 1.35fr 0.9fr; gap: 36px; max-width: 980px; margin: 26px auto 0; align-items: start; text-align: left; }
.loma-contact-chat { min-width: 0; }
.loma-contact-chat .loma-cc-alt { display: none; } /* redondant avec les boutons de droite */
.loma-contact-side { display: flex; flex-direction: column; gap: 12px; }
.loma-side-btn { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border: 1px solid rgba(49,53,86,.28); background: transparent; text-decoration: none; transition: background .2s, border-color .2s; }
.loma-side-btn svg { width: 20px; height: 20px; flex: 0 0 auto; fill: #313556; }
.loma-side-btn--wa svg { fill: #25984a; }
.loma-side-l { display: flex; flex-direction: column; font-family: Inter, sans-serif; font-weight: 600; font-size: 13.5px; letter-spacing: .12em; text-transform: uppercase; color: #313556; }
.loma-side-l small { font-weight: 400; font-size: 12px; letter-spacing: 0; text-transform: none; color: #8a8ea3; margin-top: 3px; }
.loma-side-btn:hover { background: #313556; border-color: #313556; }
.loma-side-btn:hover svg { fill: #fff; }
.loma-side-btn:hover .loma-side-l, .loma-side-btn:hover .loma-side-l small { color: #fff; }
.loma-side-btn--wa:hover { background: #25984a; border-color: #25984a; }
.loma-side-hours { font-family: Inter, sans-serif; font-size: 12.5px; color: #8a8ea3; text-align: center; margin: 10px 0 0; }
@media (max-width: 820px) { .loma-contact-2col { grid-template-columns: 1fr; max-width: 520px; gap: 24px; } }

/* ===== Carte : support cuir (étui suède marron, comme la vraie carte) ===== */
.loma-carte-support {
  max-width: 1060px; margin: 6px auto 0; padding: clamp(24px, 4vw, 52px);
  background:
    radial-gradient(130% 90% at 50% 0%, rgba(255,255,255,.07), transparent 55%),
    linear-gradient(158deg, #6f4a33 0%, #5b3b29 55%, #4c3122 100%);
  border-radius: 12px;
  box-shadow: 0 34px 80px rgba(40,25,15,.40), inset 0 1px 0 rgba(255,255,255,.10), inset 0 0 70px rgba(0,0,0,.28);
  position: relative;
}
.loma-carte-support::before {
  content: ""; position: absolute; inset: 14px; border: 1px dashed rgba(255,255,255,.20);
  border-radius: 7px; pointer-events: none;
}
/* carte OUVERTE en grand (spread Entrées | Plats) posée dans l'étui, clic = plein écran */
.loma-carte-spread {
  display: block; width: 100%; max-width: 940px; margin: 0 auto; padding: 0;
  border: 0; background: none; cursor: pointer;
  transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.loma-carte-spread img {
  width: 100%; height: auto; display: block; border-radius: 3px;
  box-shadow: 0 20px 48px rgba(20,12,6,.34);
}
.loma-carte-spread:hover { transform: translateY(-3px); }
.loma-carte--flip .loma-cta-band { padding-top: 30px; }

/* ===== Allergènes (panneau toggle, pictogrammes maison) ===== */
.loma-alg-toggle.is-open { background: #313556; color: #fff; border-color: #313556; }
.loma-alg-panel { max-width: 760px; margin: 6px auto 0; padding: 26px 24px 4px; }
.loma-alg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px 14px; }
.loma-alg-item { display: flex; align-items: center; gap: 10px; font-family: Inter, sans-serif; font-size: 13.5px; color: #5b5f78; }
.loma-alg-item .alg-svg { width: 30px; height: 30px; flex: 0 0 auto; }
.loma-alg-note { font-family: Inter, sans-serif; font-size: 12px; color: #9a9eb0; text-align: center; margin: 20px 0 0; }
@media (max-width: 560px) { .loma-alg-grid { grid-template-columns: repeat(2, 1fr); } }

/* ===== Photo inversée à droite (chef) ; équipe reste photo à gauche pour alterner ===== */
.loma-photo-right .loma-chef-inner { direction: rtl; }
.loma-photo-right .loma-chef-inner > * { direction: ltr; }

/* ===== Insta : intro (phrase + CTA d'accompagnement) ===== */
.loma-insta-intro { text-align: center; max-width: 640px; margin: 0 auto 32px; }
.loma-insta-line { font-family: Marcellus, serif; font-style: italic; color: #313556; font-size: clamp(18px, 2.4vw, 24px); line-height: 1.3; margin: 6px auto 18px; }
.loma-insta-cta { display: inline-flex; align-items: center; gap: 10px; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; padding: 13px 28px; background: #313556; color: #fff; transition: background .25s; }
.loma-ig-ico { width: 17px; height: 17px; flex: 0 0 auto; }
/* arrondi galerie restaurant (cohérent avec le reste) */
.qodef-image-gallery .qodef-e-media-image, .qodef-image-gallery .qodef-e-media-image img { border-radius: 16px; overflow: hidden; }
.loma-insta-cta:hover { background: #A8784E; }

/* ===== Indicateur "en ligne" (point vert clignotant) — concierge contact/privatisation ===== */
.loma-online { display: inline-flex; align-items: center; gap: 8px; font-family: Inter, sans-serif; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #2e7d46; margin: 0 0 14px; }
.loma-online-dot { width: 9px; height: 9px; border-radius: 50%; background: #2fb863; box-shadow: 0 0 0 0 rgba(47,184,99,.55); animation: loma-pulse 1.8s infinite; }
@keyframes loma-pulse { 0% { box-shadow: 0 0 0 0 rgba(47,184,99,.5); } 70% { box-shadow: 0 0 0 8px rgba(47,184,99,0); } 100% { box-shadow: 0 0 0 0 rgba(47,184,99,0); } }

/* ===== H1 SEO accessible mais hors-écran (titre principal géolocalisé) ===== */
.loma-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ===== Bouton retour-en-haut retiré (jugé inutile) ===== */
a#qodef-back-to-top, #qodef-back-to-top.qodef--predefined, #qodef-back-to-top { display: none !important; }

/* ========== Footer refait (boutons, moins de texte) ========== */
.loma-footer { max-width: 1080px; margin: 0 auto; padding: 64px 24px; text-align: center; }
.loma-footer-logo { width: 142px; height: auto; margin: 0 auto 30px; display: block; }
.loma-footer-actions { display: flex; flex-wrap: wrap; gap: 13px; justify-content: center; margin-bottom: 30px; }
.loma-footer-btn {
  font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: #fff; border: 1px solid rgba(255,255,255,.55); padding: 13px 26px; text-decoration: none;
  transition: background .3s, color .3s, border-color .3s;
}
.loma-footer-btn:hover { background: #fff; color: #313556; border-color: #fff; }
.loma-footer-btn--primary { background: #fff; color: #313556; }
.loma-footer-btn--primary:hover { background: #A8784E; color: #fff; border-color: #A8784E; }
.loma-footer-meta { font-family: Inter, sans-serif; font-size: 13px; color: rgba(255,255,255,.82); margin: 0 0 22px; }
.loma-footer-nav { display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: center; }
.loma-footer-nav a { font-family: Inter, sans-serif; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.72); text-decoration: none; transition: color .25s; }
.loma-footer-nav a:hover { color: #fff; }

/* ========== Texte de prose aéré (NOTRE HISTOIRE & co.) ========== */
.elementor-widget-text-editor p,
.elementor-widget-text-editor li { line-height: 1.9 !important; }
.elementor-widget-text-editor p { margin-bottom: 1.2em !important; }
.elementor-widget-text-editor p > strong:first-child,
.elementor-widget-text-editor strong { line-height: 1.7; }

/* ========== Emblème à la place des étoiles décoratives ========== */
.qodef-svg--star-decoration {
  width: 26px !important; height: 18px !important;
  background: url(/loma-assets/emblem-bronze.png) center / contain no-repeat;
  vertical-align: middle;
}
.qodef-svg--star-decoration > path { display: none !important; }
/* sur le bandeau marron (marquee), emblème en BLANC pour le contraste */
.elementor-widget-rolanda_core_text_marquee .qodef-svg--star-decoration { background-image: url(/loma-assets/emblem-white.png) !important; }

/* ===== Bande de marque élégante (remplace l'ancien marquee qui défilait) ===== */
.loma-tagline-wrap { width: 100%; padding: 0 !important; background: none !important; }
.loma-tagline-band { background: #313556; padding: clamp(28px, 3.6vw, 44px) 24px; text-align: center; }
.loma-tagline {
  margin: 0; font-family: Marcellus, serif; color: #FDF8F4;
  font-size: clamp(16px, 1.9vw, 23px); letter-spacing: .03em; line-height: 1.5;
  display: inline-flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 18px;
}
.loma-tagline-sep { color: #A8784E; font-style: normal; }
@media (max-width: 600px) { .loma-tagline { gap: 10px; font-size: 16px; } }

/* ===== Boutons RÉSERVATION (Zenchef) : taille IDENTIQUE partout, sans emblème buggé au survol ===== */
a.qodef-button[href*="zenchef"] {
  padding: 13px 28px !important;
  font-size: 13px !important;
  letter-spacing: 1.3px !important;
  line-height: 1.1 !important;
  min-width: 0 !important;
  white-space: nowrap;
}
a.qodef-button[href*="zenchef"]:hover { letter-spacing: 1.3px !important; }   /* fige : pas d'élargissement au survol */
a.qodef-button[href*="zenchef"] .qodef-m-icon-holder { display: none !important; }  /* retire l'emblème qui glissait sur le texte */
a.qodef-button[href*="zenchef"] .qodef-m-text { margin: 0 !important; padding: 0 !important; }
@media (max-width: 680px) {
  a.qodef-button[href*="zenchef"] { padding: 10px 18px !important; font-size: 12px !important; }
}

/* ========== Bouton retour-en-haut retravaillé (pastille emblème) ========== */
#qodef-back-to-top {
  width: 54px !important; height: 54px !important; border-radius: 0 !important;
  background: #313556 !important; box-shadow: 0 10px 26px rgba(49,53,86,.30);
  display: flex !important; align-items: center; justify-content: center;
  right: 26px; bottom: 26px;
  transition: background .3s ease, transform .3s ease;
}
#qodef-back-to-top:hover { background: #A8784E !important; transform: translateY(-3px); }
#qodef-back-to-top .qodef-back-to-top-text { display: none !important; }
#qodef-back-to-top .qodef-svg--star-decoration {
  width: 36px !important; height: 26px !important;
  background-image: url(/loma-assets/emblem-white.png) !important;
}
@media (max-width: 680px) {
  #qodef-back-to-top { width: 46px !important; height: 46px !important; right: 16px; bottom: 16px; }
  #qodef-back-to-top .qodef-svg--star-decoration { width: 30px !important; height: 22px !important; }
}

/* ========== Section INSTAGRAM (footer) — codes insta, minimaliste ========== */
.loma-insta { max-width: 1000px; margin: 0 auto; padding: 46px 24px 80px; }
.loma-insta-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 28px; padding-bottom: 26px; border-bottom: 1px solid rgba(49,53,86,.10); }
.loma-insta-profile { display: flex; align-items: center; gap: 20px; }
.loma-insta-avatar { display: block; }
.loma-insta-avatar img { width: 86px; height: 86px; border-radius: 50%; display: block; border: 1px solid rgba(49,53,86,.16); object-fit: cover; }
.loma-insta-id { text-align: left; }
.loma-insta-handle { font-family: Marcellus, serif; font-size: 26px; color: #313556; text-decoration: none; line-height: 1; }
.loma-insta-handle:hover { color: #A8784E; }
.loma-insta-bio { font-family: Inter, sans-serif; font-size: 13px; color: #8a8ea3; margin: 6px 0 12px; letter-spacing: .01em; }
.loma-insta-follow {
  display: inline-flex; align-items: center; gap: 8px; font-family: Inter, sans-serif; font-size: 11px; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase; color: #fff; background: #313556; text-decoration: none;
  padding: 10px 24px; border-radius: 0; transition: background .3s;
}
.loma-insta-follow:hover { background: #A8784E; }
.loma-insta-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.loma-insta-tile { position: relative; display: block; aspect-ratio: 1; overflow: hidden; border-radius: 16px; }
.loma-insta-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s cubic-bezier(.22,.61,.36,1); }
.loma-insta-tile:hover img { transform: scale(1.07); }
.loma-insta-ic { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(49,53,86,0); opacity: 0; transition: opacity .3s, background .3s; }
.loma-insta-tile:hover .loma-insta-ic { background: rgba(49,53,86,.34); opacity: 1; }
.loma-insta-ic svg { width: 32px; height: 32px; fill: #fff; }
@media (max-width: 680px) {
  .loma-insta-grid { grid-template-columns: repeat(2, 1fr); }
  .loma-insta-head { flex-direction: column; text-align: center; gap: 14px; }
  .loma-insta-profile { flex-direction: column; text-align: center; gap: 12px; }
  .loma-insta-id { text-align: center; }
}

/* ========== Section SERVICE v2 (déjeuner & dîner) — propre, 2 colonnes ========== */
.loma-service2 { background: transparent; padding: 48px 24px 70px; position: relative; overflow: hidden; } /* transparent = garde la texture papier DA */
/* gerbe botanique de la CARTE, en filigrane, déborde du bord droit (comme la couverture du menu) */
.loma-service2::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  right: -45px; top: 24px; bottom: 24px; width: 270px; opacity: .14;
  background: url(/loma-assets/menu-spray.png) no-repeat center / contain;
}
@media (max-width: 900px) { .loma-service2::after { display: none; } }
.loma-service2-inner {
  max-width: 960px; margin: 0 auto; position: relative; z-index: 1;
  display: grid; grid-template-columns: 300px 1fr; gap: 56px; align-items: center; text-align: left;
}
.loma-service2-photo { order: 1; width: 100%; max-width: 300px; border-radius: 16px; overflow: hidden; box-shadow: 0 28px 64px rgba(49,53,86,.22); }
.loma-service2-text { order: 2; display: block; }
.loma-service2-kicker {
  display: block; font-family: Inter, sans-serif; font-size: 12px; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase; color: #A8784E; margin-bottom: 14px;
}
.loma-service2-title {
  font-family: Marcellus, serif; font-weight: 400; color: #313556;
  font-size: clamp(34px, 4.4vw, 50px); line-height: 1.05; margin: 0 0 14px;
}
/* vague manuscrite de la CARTE sous le titre (autre motif DA, bronze) */
.loma-service2-title::after {
  content: ""; display: block; width: 56px; height: 16px; margin: 14px 0 2px;
  background: url(/loma-assets/menu-wave-bronze.png) no-repeat left center / contain;
}
@media (max-width: 760px) { .loma-service2-title::after { margin-left: auto; margin-right: auto; } }
/* même vague ~~ sous les titres de section des autres pages (système cohérent, comme le menu) */
.loma-cta-title::after, .loma-resto-title::after, .loma-epicerie-soon-title::after,
.loma-histoire-title::after, .loma-epicerie-text-title::after {
  content: ""; display: block; width: 54px; height: 15px; margin: 12px 0 2px;
  background: url(/loma-assets/menu-wave-bronze.png) no-repeat left center / contain;
}
.loma-cta-title::after, .loma-resto-title::after, .loma-epicerie-soon-title::after { margin-left: auto; margin-right: auto; }
@media (max-width: 760px) { .loma-histoire-title::after, .loma-epicerie-text-title::after { margin-left: auto; margin-right: auto; } }
.loma-service2-desc { font-family: Inter, sans-serif; font-size: 16.5px; line-height: 1.75; color: #5b5f78; margin: 0 0 28px; max-width: 32em; }
.loma-service2-cta {
  display: inline-block; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase; color: #313556; text-decoration: none;
  border: 1px solid rgba(49,53,86,.4); padding: 14px 32px; transition: background .3s, color .3s, border-color .3s;
}
.loma-service2-cta:hover { background: #313556; color: #fff; border-color: #313556; }
.loma-service2-photo img,
.loma-service2-photo video { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 9/16; }
@media (max-width: 760px) {
  .loma-service2 { padding: 36px 22px 56px; }
  .loma-service2-inner { grid-template-columns: 1fr; gap: 26px; max-width: 340px; text-align: center; }
  .loma-service2-photo { max-width: 240px; margin: 0 auto; }
  .loma-service2-desc { margin-left: auto; margin-right: auto; }
}

/* ========== (obsolète) Section SERVICE v1 — contexte + CTA ========== */
.loma-service-head { max-width: 32em; margin: 0 0 30px; }
.loma-service-kicker {
  display: block; font-family: Inter, sans-serif; font-size: 12px; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase; color: #A8784E; margin-bottom: 14px;
}
.loma-service-text { font-family: Inter, sans-serif; font-size: 16.5px; line-height: 1.7; color: #5b5f78; margin: 0; }
.loma-service-cta {
  display: inline-block; margin-top: 30px; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase; color: #313556; text-decoration: none;
  border: 1px solid rgba(49,53,86,.4); padding: 14px 32px; transition: background .3s, color .3s, border-color .3s;
}
.loma-service-cta:hover { background: #313556; color: #fff; border-color: #313556; }
/* item showcase plus lisible + affordance "carte" */
.qodef-interactive-link-showcase .qodef-e-title { transition: color .3s; }
.qodef-interactive-link-showcase .qodef-m-item:hover .qodef-e-title { color: #A8784E; }
@media (max-width: 768px) {
  /* le survol n'existe pas en mobile : on force l'affichage d'une image */
  .qodef-interactive-link-showcase .qodef-m-images { display: block !important; opacity: 1 !important; margin-top: 24px; }
  .qodef-interactive-link-showcase .qodef-m-image:first-child { opacity: 1 !important; visibility: visible !important; position: relative !important; }
  .qodef-interactive-link-showcase .qodef-m-image:not(:first-child) { display: none; }
}

/* ========== Bande vidéo pleine largeur (food / service) ========== */
.loma-band { position: relative; width: 100%; height: min(64vh, 600px); min-height: 360px; overflow: hidden; background: #1d2335; }
.loma-band video { width: 100%; height: 100%; object-fit: cover; display: block; }
.loma-band-overlay {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(to top, rgba(20,24,40,.30), rgba(20,24,40,.10));
  pointer-events: none;
}
.loma-band-caption {
  font-family: Marcellus, serif; color: #fff; font-size: clamp(24px, 3.4vw, 40px);
  letter-spacing: .02em; text-align: center; margin: 0; text-shadow: 0 2px 24px rgba(0,0,0,.35);
}

/* ========== Section CHEF (home) ========== */
.loma-chef { background: transparent; padding: 30px 24px 70px; position: relative; overflow: hidden; z-index: 2; } /* z-index 2 = passe AU-DESSUS des connecteurs (les fils filent derrière les photos) */
/* ===== Motifs déco DA (emblème spray + étoile), faible opacité, RÉPARTIS sur le site (formes variées) ===== */
.loma-chef::after, .loma-insta::before, .elementor-element-79ce0f2::before, .elementor-element-3a9a94f::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
/* chef : GERBE de la carte, déborde du bord droit (tige hors-champ), hauteur auto = pas de coupe */
.loma-chef:not(.loma-equipe):not(.loma-barman)::after {
  right: -55px; top: 26px; bottom: 26px; width: 250px; opacity: .08;
  background-image: url(/loma-assets/menu-spray.png);
}
/* équipe : petit emblème, en haut à droite (la photo est à gauche) */
.loma-equipe::after {
  right: 8%; top: 15%; width: 130px; height: 146px; opacity: .07; transform: rotate(8deg);
  background-image: url(/loma-assets/emblem-motif.png);
}
/* barman : emblème spray plus petit, incliné, en bas à droite */
.loma-barman::after {
  right: 1%; bottom: 7%; top: auto; width: 285px; height: 320px; opacity: .06; transform: rotate(-14deg);
  background-image: url(/loma-assets/emblem-motif.png);
}
/* histoire « passion » (haut de page) : petit emblème à droite */
.elementor-element-3a9a94f { position: relative; }
.elementor-element-3a9a94f::before {
  right: 6%; top: 26%; width: 112px; height: 125px; opacity: .06; transform: rotate(-9deg);
  background-image: url(/loma-assets/emblem-motif.png); z-index: 0;
}
/* trio de cartes (milieu) : emblème spray, gauche */
.elementor-element-79ce0f2 { position: relative; }
.elementor-element-79ce0f2 { overflow: hidden; }
.elementor-element-79ce0f2::before {
  left: -45px; top: 24px; bottom: 24px; width: 210px; opacity: .06; transform: scaleX(-1);
  background-image: url(/loma-assets/menu-leaf.png); z-index: 0;
}
/* Instagram (bas de page) : petit emblème en haut à gauche */
.loma-insta { position: relative; }
.loma-insta::before {
  left: 5%; top: 18px; width: 100px; height: 112px; opacity: .07; transform: rotate(-8deg);
  background-image: url(/loma-assets/emblem-motif.png);
}
/* sur mobile : on masque les motifs déco (risque de chevaucher le contenu empilé) */
@media (max-width: 760px) {
  .loma-chef::after, .loma-equipe::after, .loma-barman::after,
  .elementor-element-3a9a94f::before, .elementor-element-79ce0f2::before, .loma-insta::before { display: none !important; }
}
/* connecteur courbe pointillé bronze entre les portraits (façon surpiqûre DA) */
.loma-link { position: relative; z-index: 1; max-width: 1100px; margin: -82px auto; padding: 0 24px; pointer-events: none; }
.loma-link svg { display: block; width: 100%; height: 200px; overflow: visible; }
.loma-link path { fill: none; stroke: #7B4C2B; stroke-width: 2.6; stroke-dasharray: 2 12; stroke-linecap: round; opacity: .55; }
@media (max-width: 900px) { .loma-link { display: none; } }
.loma-chef-inner {
  position: relative; z-index: 1;
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 0.85fr 1fr; gap: 60px; align-items: center;
}
.loma-chef-photo { border-radius: 16px; overflow: hidden; box-shadow: 0 24px 60px rgba(49,53,86,.16); }
.loma-chef-photo img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4/5; }
.loma-chef-kicker {
  display: block; font-family: Inter, sans-serif; font-size: 12px; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase; color: #A8784E; margin-bottom: 14px;
}
.loma-chef-name {
  font-family: Marcellus, serif; font-weight: 400; color: #313556;
  font-size: clamp(34px, 4.4vw, 52px); line-height: 1.05; margin: 0 0 22px;
}
.loma-chef-bio { font-family: Inter, sans-serif; font-size: 16.5px; line-height: 1.75; color: #5b5f78; margin: 0 0 30px; max-width: 30em; }
.loma-chef-cta {
  display: inline-block; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase; color: #313556; text-decoration: none;
  border: 1px solid rgba(49,53,86,.4); padding: 14px 32px; transition: background .3s, color .3s, border-color .3s;
}
.loma-chef-cta:hover { background: #313556; color: #fff; border-color: #313556; }
@media (max-width: 860px) {
  .loma-chef-inner { grid-template-columns: 1fr; gap: 30px; max-width: 520px; }
  .loma-chef-photo { max-width: 360px; margin: 0 auto; }
  .loma-chef-text { text-align: center; }
  .loma-chef-bio { margin-left: auto; margin-right: auto; }
}

/* ========== CARTE intégrée (page /carte/) — façon carte papier, 2 colonnes ========== */
.loma-carte { max-width: 1080px; margin: 0 auto; padding: 60px 26px 50px; }
.loma-carte-intro { text-align: center; margin-bottom: 50px; }
.loma-carte-kicker {
  display: block; font-family: Inter, sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: .28em; text-transform: uppercase; color: #A8784E; margin-bottom: 12px;
}
.loma-carte-title {
  font-family: Marcellus, serif; font-weight: 400; color: #313556;
  font-size: clamp(40px, 7vw, 66px); line-height: 1; margin: 0 0 14px;
}
.loma-carte-sub { font-family: Inter, sans-serif; color: #6b6f86; font-size: 15px; margin: 0; }
.loma-carte-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 60px; align-items: start; }
.loma-carte-end { max-width: 580px; margin: 8px auto 0; }
.loma-carte-section { margin: 0 0 30px; }
.loma-carte-sechead { margin-bottom: 14px; }
.loma-carte-sechead .loma-carte-kicker { margin-bottom: 4px; }
.loma-carte-sechead h2 {
  font-family: Marcellus, serif; font-style: italic; font-weight: 400; color: #313556;
  font-size: 25px; letter-spacing: .02em; margin: 0;
}
.loma-carte-list { list-style: none; margin: 0; padding: 0; }
.loma-carte-item { padding: 11px 0; break-inside: avoid; }
.loma-carte-line { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.loma-carte-name { font-family: Marcellus, serif; font-size: 18px; color: #313556; }
.loma-carte-dots { display: none; }
.loma-carte-price { font-family: Marcellus, serif; font-size: 16px; color: #A8784E; white-space: nowrap; }
.loma-carte-desc { font-family: Inter, sans-serif; font-size: 12.5px; line-height: 1.5; color: #8a8ea3; margin: 4px 0 0; }
.loma-carte-tag { color: #A8784E; font-style: italic; }
.loma-carte-allerg { font-family: Inter, sans-serif; font-size: 11.5px; line-height: 1.6; color: #9a9eb0; margin: 8px 0 0; break-inside: avoid; }
.loma-carte-allerg strong { color: #313556; letter-spacing: .08em; }
.loma-carte-foot { text-align: center; margin-top: 30px; }
.loma-carte-maison { font-family: Marcellus, serif; font-style: italic; color: #313556; font-size: 17px; margin: 0; }
@media (max-width: 760px) {
  .loma-carte { padding: 44px 20px 34px; }
  .loma-carte-cols { grid-template-columns: 1fr; gap: 0; }
  .loma-carte-name { font-size: 17px; }
}

/* ========== CARTE flipbook (la vraie carte qui se tourne) ========== */
.loma-carte--flip { max-width: 1180px; }
.loma-flip-wrap {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  margin: 4px auto 0; max-width: 1080px;
}
.loma-flipbook {
  width: 100%; max-width: 920px; margin: 0 auto;
  filter: drop-shadow(0 26px 50px rgba(33,40,70,.22));
}
.loma-flipbook .stf__parent { margin: 0 auto; }
.loma-flip-nav {
  flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid #e3d8cb; background: #fff; color: #313556;
  font-size: 24px; line-height: 1; cursor: pointer; transition: all .2s;
  display: flex; align-items: center; justify-content: center;
}
.loma-flip-nav:hover { background: #A8784E; color: #fff; border-color: #A8784E; }
.loma-flip-nav:disabled { opacity: .22; cursor: default; background: #fff; color: #313556; border-color: #e3d8cb; }
.loma-flip-hint {
  text-align: center; font-family: Inter, sans-serif; font-size: 11px;
  letter-spacing: .16em; text-transform: uppercase; color: #b9806f;
  margin: 18px 0 0; transition: opacity .4s;
}
.loma-flip-actions {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  margin: 26px 0 34px;
}
.loma-flip-btn {
  font-family: Inter, sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; cursor: pointer;
  padding: 13px 24px; border: 1px solid #313556; background: transparent;
  color: #313556; text-decoration: none; transition: all .2s;
}
.loma-flip-btn:hover { background: #313556; color: #fff; }
.loma-flip-btn--bronze { border-color: #A8784E; color: #A8784E; }
.loma-flip-btn--bronze:hover { background: #A8784E; color: #fff; }
.loma-carte--flip .loma-carte-allerg,
.loma-carte--flip .loma-carte-maison { text-align: center; }
.loma-carte--flip .loma-carte-foot { margin-top: 10px; }

/* plein écran lecture */
.loma-flip-overlay {
  position: fixed; inset: 0; z-index: 99999; background: rgba(18,13,8,.96);
  display: flex; align-items: center; justify-content: center; padding: 18px;
}
.loma-flip-stage { display: flex; align-items: center; justify-content: center; }
.loma-flip-overlay .loma-flipbook { width: auto; max-width: none; margin: 0; filter: none; }
.loma-flip-overlay .loma-flip-page { background: #fff; overflow: hidden; }
.loma-flip-overlay .loma-flip-page img { width: 100%; height: 100%; display: block; object-fit: cover; }
.loma-flip-overlay .stf__parent, .loma-flip-overlay .stf__block, .loma-flip-overlay .stf__wrapper { background: transparent; }
.loma-flip-overlay .loma-flip-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  background: rgba(255,255,255,.92);
}
.loma-flip-overlay .loma-flip-prev { left: 16px; }
.loma-flip-overlay .loma-flip-next { right: 16px; }
.loma-flip-close {
  position: fixed; top: 14px; right: 18px; width: 44px; height: 44px;
  border: none; background: rgba(255,255,255,.14); color: #fff;
  font-size: 28px; line-height: 1; cursor: pointer; border-radius: 50%;
}
.loma-flip-close:hover { background: rgba(255,255,255,.28); }
@media (max-width: 760px) {
  .loma-flip-nav { width: 40px; height: 40px; font-size: 20px; }
  .loma-flip-wrap { gap: 6px; }
  .loma-flip-actions { margin: 20px 0 26px; }
}

/* ---------- A1. Bandeau cookies : retiré (site statique, aucun tracking) ---------- */
#wpconsent-banner-holder,
.wpconsent-banner,
.wpconsent-container,
[id^="wpconsent"],
.wpconsent-preferences-modal { display: none !important; }

/* ---------- A2/C. HERO custom (remplace le slider mort) ---------- */
.loma-hero {
  position: relative;
  width: 100%;
  height: calc(100svh - 124px); /* tient sous le header -> contenu centré dans la vue */
  min-height: 480px;
  max-height: 880px;
  overflow: hidden;
  background: #1d2335;
}
.loma-hero-media, .loma-hero-media video, .loma-hero-slide {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
}
.loma-hero-media video { object-fit: cover; display: block; }
.loma-hero-slide {
  background-size: cover; background-position: center;
  opacity: 0; transform: scale(1.001);
  transition: opacity 1.2s ease-in-out, transform 1.3s ease-out;
  will-change: opacity, transform;
}
.loma-hero-slide.is-active { opacity: 1; }
.loma-hero.loma-anim .loma-hero-slide.is-active {
  animation: loma-kenburns 11s ease-out forwards;
}
@keyframes loma-kenburns {
  from { transform: scale(1.001); }
  to   { transform: scale(1.10); }
}
.loma-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,24,40,.42) 0%, rgba(20,24,40,.10) 45%, rgba(20,24,40,.18) 100%);
  pointer-events: none;
}
.loma-hero-content {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 0 24px;
  z-index: 3;
}
.loma-hero-kicker {
  font-family: Inter, sans-serif;
  font-size: 13px; font-weight: 500;
  letter-spacing: .28em; text-transform: uppercase;
  color: rgba(255,255,255,.85);
  margin: 0 0 18px;
}
.loma-hero-title {
  font-family: Marcellus, serif;
  font-weight: 400;
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.12;
  color: #fff; margin: 0;
  text-wrap: balance;
}
.loma-hero-cta {
  margin-top: 34px;
  font-family: Inter, sans-serif;
  font-size: 13px; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase;
  color: #fff; text-decoration: none;
  border: 1px solid rgba(255,255,255,.85);
  padding: 16px 38px;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}
.loma-hero-cta:hover { background: #fff; color: #313556; border-color: #fff; }
.loma-hero-scroll {
  position: absolute; left: 50%; bottom: 26px;
  transform: translateX(-50%);
  width: 24px; height: 38px;
  border: 1.5px solid rgba(255,255,255,.7);
  border-radius: 13px; z-index: 3;
}
.loma-hero-scroll span {
  position: absolute; left: 50%; top: 7px;
  width: 3px; height: 8px; margin-left: -1.5px;
  border-radius: 2px; background: rgba(255,255,255,.9);
  animation: loma-scrollcue 2.2s ease-in-out infinite;
}
@keyframes loma-scrollcue {
  0%, 100% { transform: translateY(0); opacity: 1; }
  55%      { transform: translateY(12px); opacity: 0; }
}
/* entrance du contenu hero */
.loma-js .loma-hero-kicker, .loma-js .loma-hero-title, .loma-js .loma-hero-cta {
  opacity: 0; transform: translateY(26px);
  transition: opacity 1s ease, transform 1s ease;
}
.loma-hero.is-ready .loma-hero-kicker { opacity: 1; transform: translateY(0); transition-delay: .25s; }
.loma-hero.is-ready .loma-hero-title  { opacity: 1; transform: translateY(0); transition-delay: .45s; }
.loma-hero.is-ready .loma-hero-cta    { opacity: 1; transform: translateY(0); transition-delay: .70s; }
/* lisibilité du texte hero sur les plans clairs (ex. port ensoleillé) */
.loma-hero-kicker, .loma-hero-title { text-shadow: 0 2px 24px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35); }
@media (max-width: 768px) {
  .loma-hero { height: min(640px, 86svh); min-height: 460px; }
  .loma-hero-kicker { font-size: 11px; letter-spacing: .22em; }
  .loma-hero-cta { padding: 14px 30px; }
  .loma-hero-title span { display: block; }
  .loma-hero-title .loma-dot { display: none; }
  /* badge rond redondant avec le bouton header + CTA hero : masqué en mobile */
  .qodef-m-stamp, .qodef-sticker-holder, [class*="qodef-stamp"] { display: none !important; }
}

/* ---------- A5. Suppression des arches/ovales (demande Christelle) ----------
   Le thème met un border-radius inline 50em (arche "50em 50em 0 0" ou ovale "50em")
   sur .qodef-m-image. !important bat le style inline non-important -> coins doux. */
[style*="border-radius: 50em"],
[style*="border-radius:50em"] {
  border-radius: 0 !important;
  overflow: hidden;
}

/* ---------- B. Reveals au scroll (classes posées par JS) ---------- */
.loma-js .loma-reveal {
  opacity: 0; transform: translateY(26px);
  transition: opacity .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1);
  transition-delay: var(--loma-d, 0ms);
  will-change: opacity, transform;
}
.loma-js .loma-reveal.is-in { opacity: 1; transform: none; }

/* ---------- B. Hovers raffinés ---------- */
.qodef-e-media-image, .qodef-e-image, .elementor-widget-image .elementor-widget-container { overflow: hidden; }
.qodef-e-media-image img, .qodef-e-image img, .elementor-widget-image img {
  transition: transform 1.1s cubic-bezier(.22,.61,.36,1);
}
a:hover .qodef-e-media-image img,
.qodef-e-media-image:hover img,
.qodef-e-image:hover img,
.elementor-widget-image:hover img { transform: scale(1.045); }

.qodef-button, .elementor-button {
  transition: background-color .35s ease, color .35s ease, border-color .35s ease, letter-spacing .35s ease;
}

/* ---------- B. Lightbox galerie ---------- */
.loma-lightbox {
  position: fixed; inset: 0; z-index: 99999;
  display: flex; align-items: center; justify-content: center;
  background: rgba(18,21,34,.92);
  opacity: 0; pointer-events: none;
  transition: opacity .35s ease;
}
.loma-lightbox.is-open { opacity: 1; pointer-events: auto; }
.loma-lightbox img {
  max-width: 92vw; max-height: 90vh;
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
  transform: scale(.96);
  transition: transform .35s ease;
}
.loma-lightbox.is-open img { transform: scale(1); }
.loma-lightbox-close {
  position: absolute; top: 22px; right: 30px;
  font-family: Inter, sans-serif; font-size: 30px; line-height: 1;
  color: #fff; cursor: pointer; background: none; border: none;
  opacity: .8; transition: opacity .2s;
}
.loma-lightbox-close:hover { opacity: 1; }
.qodef-image-wrapper .qodef-e-image img { cursor: zoom-in; }

/* ---------- A3b. Badge reCAPTCHA : masqué (formulaires inertes sur la copie statique) ---------- */
.grecaptcha-badge { visibility: hidden !important; }

/* ---------- A4. Mobile : header langue propre ---------- */
@media (max-width: 768px) {
  .gtranslate_wrapper, #gtranslate_wrapper { line-height: 1.1; }
}

/* ---------- Accessibilité : reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .loma-js .loma-reveal { opacity: 1; transform: none; transition: none; }
  .loma-hero.loma-anim .loma-hero-slide.is-active { animation: none; }
  .loma-js .loma-hero-kicker, .loma-js .loma-hero-title, .loma-js .loma-hero-cta {
    opacity: 1; transform: none; animation: none;
  }
  .loma-hero-scroll span { animation: none; }
  .qodef-e-media-image img, .qodef-e-image img, .elementor-widget-image img { transition: none; }
}
