/* ===========================
   L'ÉPHÉMÈRE — Styles globaux
   =========================== */

/* Variables */
:root{
  --brand: #ff8a3d;          /* orange doux */
  --brand-ink: #ff7a22;
  --text: #1d1d1f;
  --muted: #6e6e73;
  --bg: #f5f5f7;
  --card: #ffffff;
  --ring: rgba(255,138,61,.35);
  --radius: 22px;
}

/* Reset de base */
*{ box-sizing: border-box }
html,body{ margin:0; padding:0 }
img{ max-width:100%; height:auto; display:block }
a{ color:inherit; text-decoration:none }
button{ font: inherit }
input,select,textarea{ font: inherit }

/* Typo */
body{
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3{ margin: 0 0 10px }
h1{ font-size: clamp(32px, 3.6vw, 52px); line-height:1.06; letter-spacing:-.02em; font-weight:800 }
h2{ font-size: clamp(22px, 2.2vw, 30px); line-height:1.1; font-weight:750 }
h3{ font-size: 18px; font-weight:700 }
.kicker{
  color: var(--brand);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .8rem;
}
.lead{ color: var(--muted); font-size: 1.05rem }

/* Layout */
.container{ width: min(1200px, 92vw); margin: 0 auto; }
.section{ padding: 36px 0 }
.media{ padding: 8px; border-radius: var(--radius); background: var(--card); box-shadow: 0 28px 60px rgba(0,0,0,.12) }

/* Header */
.site-header{
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: saturate(180%) blur(8px);
  background: rgba(255,255,255,.72);
  transition: box-shadow .35s ease;
}
.site-header.stuck{ box-shadow: 0 10px 30px rgba(0,0,0,.08) }
.site-header .inner{
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; padding: 12px 0;
}
.site-header .brand{
  display:flex; align-items:center; gap:10px; text-decoration:none; color:inherit;
}
.site-header .brand img{ width:34px; height:34px; object-fit:contain }

/* Nav */
.site-header nav{
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.site-header nav a{
  padding: 8px 10px; border-radius: 12px; white-space: nowrap;
  color:#222; opacity:.9; transition: background .2s ease, opacity .2s ease;
}
.site-header nav a:hover{ background: rgba(0,0,0,.06); opacity:1 }
.site-header nav a.active{
  background: rgba(255,138,61,.12);
  outline: 2px solid rgba(255,138,61,.25);
}
.call-btn{
  display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius: 999px;
  background: var(--brand); color:white; font-weight:700;
  box-shadow: 0 10px 30px rgba(255,138,61,.35);
}
.call-btn svg{ width:18px; height:18px }
@media (max-width: 820px){
  .call-btn span{ display:none } /* icône seule sur mobile pour éviter les retours à la ligne */
}

/* Burger (affichage simple) */
.burger{
  display:none; border:0; background:transparent; font-size:22px; padding:6px 8px; border-radius:10px;
}
@media (max-width: 860px){
  .burger{ display:block }
  .site-header nav{
    display:none; position:absolute; left:0; right:0; top:58px;
    background:rgba(255,255,255,.96); padding:10px 4vw; box-shadow:0 18px 36px rgba(0,0,0,.12)
  }
  .site-header nav.open{ display:flex; flex-wrap:wrap; gap:10px }
}

/* Hero */
.hero{ padding: 30px 0 24px; position:relative; overflow:hidden }
.hero-inner{
  display:grid; grid-template-columns: 1.1fr .9fr; gap: 24px; align-items: center;
}
@media (max-width: 980px){ .hero-inner{ grid-template-columns: 1fr } }
.actions{ display:flex; gap:10px; flex-wrap:wrap; margin: 14px 0 2px }
.socials{ display:flex; gap:14px }
.socials a{
  display:inline-grid; place-items:center; width:36px; height:36px; border-radius:12px;
  background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.08)
}

/* Formes organiques très pâles */
.organic-bg{
  position:absolute; inset:-10% -10% auto -10%; height:120%;
  pointer-events:none; z-index:0; opacity:.9;
  background:
    radial-gradient(120px 80px at 12% 28%, rgba(255,138,61,.06), transparent 60%),
    radial-gradient(160px 90px at 78% 20%, rgba(0,0,0,.05), transparent 60%),
    radial-gradient(110px 70px at 68% 86%, rgba(0,0,0,.04), transparent 60%),
    conic-gradient(from 180deg at 20% 60%, rgba(0,0,0,.03), transparent 40%),
    conic-gradient(from -60deg at 80% 40%, rgba(255,138,61,.05), transparent 45%);
  filter: blur(.4px);
}

/* Buttons */
.btn{
  --ring-size: 0 0 0 0px var(--ring);
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:42px; padding:0 16px; border-radius:999px; font-weight:700;
  box-shadow: var(--ring-size);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn.primary{ background: var(--brand); color:white }
.btn.primary:hover{ transform: translateY(-1px); box-shadow: 0 16px 36px rgba(255,138,61,.35) }
.btn.ghost{ background:#fff; color:#222; outline:1px solid rgba(0,0,0,.08) }
.btn.ghost:hover{ background:#f9f9fb }

/* Cards (section services) */
.cards{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px }
@media (max-width: 980px){ .cards{ grid-template-columns: 1fr } }
.card{
  background: var(--card); border-radius: var(--radius); padding: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s cubic-bezier(.22,.61,.36,1);
}
.card:hover{ transform: translateY(-6px); box-shadow: 0 24px 60px rgba(0,0,0,.14) }
.card .icon{
  width:64px; height:64px; border-radius:18px; display:grid; place-items:center;
  margin-bottom:10px; background:#fff; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.card .icon svg{ width:36px; height:36px; fill: var(--brand) }

/* Carousel (hero à droite) */
.carousel{
  border-radius: var(--radius); background:#fff; box-shadow: 0 28px 60px rgba(0,0,0,.12);
  overflow:hidden; position:relative; user-select:none;
}
.carousel .track{ display:flex; transition: transform .5s ease; will-change: transform }
.carousel .slide{ min-width: 100%; height: clamp(220px, 36vw, 420px) }
.carousel img{ width:100%; height:100%; object-fit: cover }
.carousel .nav{
  position:absolute; top:50%; transform: translateY(-50%); width:40px; height:40px;
  border-radius:999px; border:0; background: rgba(255,255,255,.9); box-shadow:0 6px 18px rgba(0,0,0,.14);
  font-size:24px; line-height:0; cursor:pointer;
}
.carousel .prev{ left:10px } .carousel .next{ right:10px }
.carousel .dots{
  position:absolute; left:0; right:0; bottom:10px;
  display:flex; gap:6px; justify-content:center;
}
.carousel .dots button{
  width:8px; height:8px; border-radius:999px; border:0;
  background: rgba(0,0,0,.18); cursor:pointer;
}
.carousel .dots button[aria-current="true"]{ background: var(--brand) }

/* Formulaires (contact / traiteur) */
.form form{
  background: var(--card); border-radius: var(--radius); padding: 18px;
  box-shadow: 0 18px 48px rgba(0,0,0,.10);
}
.form label{ display:block; font-weight:600; margin: 6px 0 }
.form input, .form select, .form textarea{
  width:100%; margin-top:6px; padding:12px 12px; border-radius: 14px; border:1px solid #e6e6ea; background:#fff;
  outline: none; transition: box-shadow .2s ease, border-color .2s ease;
}
.form input:focus, .form select:focus, .form textarea:focus{
  border-color: var(--brand-ink); box-shadow: 0 0 0 4px var(--ring);
}
.form .row{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px }
@media (max-width: 800px){ .form .row{ grid-template-columns: 1fr } }

/* Map (contact) */
.map-wrap{ border-radius: var(--radius); overflow:hidden; box-shadow:0 28px 60px rgba(0,0,0,.16) }
.map-wrap.map-square{ aspect-ratio:1/1; height:auto }
.map-wrap.map-small{ width:280px; max-width:100% }
.map-wrap iframe{ width:100%; height:100%; border:0; display:block }

/* Reveal au scroll (accentué + accessibilité) */
.reveal{ opacity: 0; transform: translateY(26px) scale(.985) }
.reveal.is-visible{
  opacity: 1; transform: none;
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1)
}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal.is-visible{ opacity:1; transform:none !important; transition:none !important }
}

/* Footer */
.site-footer{ background:#fff; border-top:1px solid #ededf0; padding: 18px 0; color:#333 }

/* ================================
   Tarteaucitron — barre "pilule"
   ================================ */
#tarteaucitronRoot *{ font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial }
#tarteaucitronAlertBig{
  position: fixed; left:50%; transform: translateX(-50%);
  bottom: 14px; z-index: 99999;
  display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;
  max-width: 94vw; width: auto;
  padding: 6px 8px;
  background: rgba(255,255,255,.9);
  backdrop-filter: saturate(180%) blur(12px);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
  border-radius: 999px;
  color: #1d1d1f;
}
#tarteaucitronDisclaimerAlert{
  margin: 0 6px 0 6px;
  font-size: 13px; line-height: 1; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 56vw;
}
#tarteaucitronAlertBig .tarteaucitronCTAButton{
  border: 0; cursor: pointer; font-weight: 700;
  border-radius: 999px; padding: 8px 12px; font-size: 13px;
  box-shadow: none; transition: transform .12s ease, background .12s ease;
}
#tarteaucitronAlertBig .tarteaucitronCTAButton:hover{ transform: translateY(-1px) }
#tarteaucitronAllAllowed{ background: var(--brand, #ff8a3d); color: #fff }
#tarteaucitronAllDenied{ background: #efefef; color: #1d1d1f }
#tarteaucitronPersonalize{ background: #fff; color: #1d1d1f; outline: 1px solid rgba(0,0,0,.12) }
#tarteaucitronAlertBig #tarteaucitronCloseAlert{ display:none }
#tarteaucitron #tarteaucitronClosePanel, .tarteaucitronBorder{ display:none!important }
@media (max-width:560px){
  #tarteaucitronDisclaimerAlert{ display:none } /* ne garder que les boutons sur mobile */
  #tarteaucitronAlertBig{ padding: 6px }
}
/* --- Fix centrage + largeur barre cookies (pilule) --- */
#tarteaucitronRoot #tarteaucitronAlertBig{
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  bottom: calc(10px + env(safe-area-inset-bottom, 0)) !important;
  max-width: min(860px, calc(100vw - 24px)) !important; /* marge 12px de chaque côté */
  width: auto !important;
  padding: 6px 10px !important;
  border-radius: 999px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  z-index: 999999 !important;
}

/* Texte compact et flexible */
#tarteaucitronRoot #tarteaucitronDisclaimerAlert{
  margin: 0 6px !important;
  font-size: 13px !important; line-height: 1 !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
  max-width: clamp(120px, 52vw, 520px) !important;
  flex: 1 1 auto !important;
}

/* Boutons non cassants */
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCTAButton{
  flex: 0 0 auto !important;
}

/* Encore plus compact sur petits écrans : on masque le texte */
@media (max-width: 820px){
  #tarteaucitronRoot #tarteaucitronDisclaimerAlert{ display: none !important; }
}
/* Centrage des icônes des 3 cartes (accueil) */
.cards .card{ text-align:center }
.card .icon{ margin: 0 auto 10px }
.card .icon svg{ display:block; margin:0 auto }
.card .btn{ margin-left:auto; margin-right:auto }
/* Accueil : abaisse légèrement les icônes réseaux du hero */
.hero .socials{
  margin-top: 18px !important;  /* +8px vs avant */
}
@media (max-width: 980px){
  .hero .socials{ margin-top: 12px !important; } /* un peu moins sur mobile */
}
/* Masquer le titre "What Our Customers Say" du widget Elfsight sur l'accueil */
#avis .elfsight-app-fc1704e1-e6a7-464f-aebc-f0c5b2d2a2d5 .eapps-widget__title,
#avis .elfsight-app-fc1704e1-e6a7-464f-aebc-f0c5b2d2a2d5 .eapps-google-reviews__title {
  display: none !important;
}

/* Sécurité : s'il change l'intitulé de classe, on masque tout heading direct du widget */
#avis .elfsight-app-fc1704e1-e6a7-464f-aebc-f0c5b2d2a2d5 h1,
#avis .elfsight-app-fc1704e1-e6a7-464f-aebc-f0c5b2d2a2d5 h2,
#avis .elfsight-app-fc1704e1-e6a7-464f-aebc-f0c5b2d2a2d5 h3 {
  display: none !important;
}
/* Accueil : masque le titre "What Our Customers Say" du widget Elfsight */
#avis h1, 
#avis h2, 
#avis h3 { 
  display: none !important; 
}

/* Et tout élément dont la classe contient "title" dans la section avis */
#avis [class*="title"] { 
  display: none !important; 
}

/* Ciblage explicite des classes fréquentes d'Elfsight */
#avis .eapps-widget__title,
#avis .eapps-widget-title,
#avis .eapps-google-reviews__title,
#avis .eapps-google-reviews__header-title {
  display: none !important;
}