 :root{
  --blue:#0f4c81; --blue-dark:#0b3159; --green:#4d9b25; --green-dark:#21651f;
  --cream:#fbfaf6; --gold:#c79b32; --ink:#18324b; --muted:#6d7b89; --white:#fff;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Montserrat,Arial,sans-serif;color:var(--ink);background:var(--cream)}
img{max-width:100%;display:block} a{text-decoration:none;color:inherit}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:22px;padding:10px 4vw;background:rgba(255,255,255,.96);box-shadow:0 3px 20px rgba(0,0,0,.07)}
.brand img{width:86px;height:74px;object-fit:cover;object-position:50% 36%;border-radius:50%}
.nav{display:flex;gap:20px;align-items:center;margin-left:auto}.nav a{font-size:13px;font-weight:700;color:var(--blue-dark)}.nav a:hover{color:var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:12px;font-weight:700;border:0;cursor:pointer;transition:.2s}
.btn:hover{transform:translateY(-2px)} .btn-primary{background:var(--blue);color:#fff}.btn-green{background:var(--green);color:#fff}.btn-outline{border:2px solid var(--green);color:var(--green-dark);background:#fff}.btn-light{background:#fff;color:var(--blue-dark)}
.menu-toggle{display:none;background:none;border:0;font-size:28px;color:var(--blue-dark)}
.hero{min-height:650px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;background:linear-gradient(90deg,#fff 0%,#fff 45%,#eef6f2 100%);overflow:hidden}
.hero-copy{padding:70px 5vw 70px 7vw}.eyebrow{color:var(--green-dark);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700}
h1,h2{font-family:"Playfair Display",serif;color:var(--blue-dark)} h1{font-size:58px;line-height:1.05;margin:16px 0 20px}h1 em{font-size:.65em;color:var(--green-dark);font-weight:600}
h2{font-size:38px;margin:8px 0 16px}.hero-copy p{font-size:17px;line-height:1.7;max-width:700px}.hero-points{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0}.hero-points span{background:#fff;border:1px solid #dce8e3;padding:10px 12px;border-radius:999px;font-size:13px;font-weight:600}
.actions{display:flex;gap:14px;flex-wrap:wrap}.hero-media{height:100%}.hero-media img{width:100%;height:100%;object-fit:cover}
.section{padding:78px 6vw}.section-heading{text-align:center;max-width:780px;margin:0 auto 40px}.section-heading span{color:var(--green-dark);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}
.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.service-grid article{background:#fff;padding:26px 18px;border-radius:18px;text-align:center;box-shadow:0 10px 30px rgba(15,76,129,.08)}.icon{font-size:34px}.service-grid h3{margin:12px 0 8px;color:var(--green-dark)}.service-grid p{font-size:13px;line-height:1.6;color:var(--muted)}
.countries{background:linear-gradient(135deg,var(--blue-dark),var(--blue));color:#fff}.section-heading.light h2,.section-heading.light span{color:#fff}.country-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.country-grid article{overflow:hidden;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 8px 20px rgba(0,0,0,.18)}.country-grid img{height:160px;width:100%;object-fit:cover}.country-grid div{padding:14px}.country-grid h3{margin:0 0 6px;color:var(--green-dark)}.country-grid p{margin:0;font-size:12px}.center{text-align:center;margin-top:28px}
.packages{background:#eff8ec}.package-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;max-width:980px;margin:auto}.package-grid article{background:#fff;border:2px solid #cfe5c6;padding:24px;text-align:center;border-radius:18px}.package-grid strong{display:block;font-size:40px;color:var(--green-dark)}.package-grid span{font-size:12px;text-transform:uppercase;font-weight:700}.note{color:var(--muted)}
.split{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center}.split p{line-height:1.8}.checklist{padding:0;list-style:none}.checklist li{margin:10px 0}.checklist li:before{content:"✓";color:var(--green);font-weight:900;margin-right:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stats div{background:#fff;border-radius:18px;padding:30px 12px;text-align:center;box-shadow:0 10px 25px rgba(15,76,129,.08)}.stats strong{display:block;font-size:38px;color:var(--blue)}.stats span{font-size:12px;color:var(--muted)}
.quote{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:start;background:#fff}.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote-form input,.quote-form select,.quote-form textarea{width:100%;padding:14px 15px;border:1px solid #ccd8df;border-radius:10px;font:inherit;background:#fbfdff}.quote-form textarea,.quote-form button{grid-column:1/-1}
.gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px}.gallery-grid img{width:100%;height:260px;object-fit:cover;border-radius:18px}.about{text-align:center;max-width:920px;margin:auto}.about p{line-height:1.8}
.footer{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding:48px 6vw;background:var(--blue-dark);color:#fff}.footer a{color:#fff}.footer-brand{display:flex;gap:16px;align-items:center}.footer-brand img{width:95px;height:95px;object-fit:cover;border-radius:50%}.footer h3{color:#a9df93}
.footer-copy {
    width: 100%;
    display: flex;
    justify-content: space-around;
    align-items: center;
    text-align: center;
    color: #647580;
    padding: 30px 0;
    box-sizing: border-box;
}
.whatsapp-float{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#27ae60;color:#fff;font-size:28px;box-shadow:0 10px 25px rgba(0,0,0,.25);z-index:40}
@media(max-width:1100px){.service-grid,.country-grid{grid-template-columns:repeat(3,1fr)}.package-grid{grid-template-columns:repeat(3,1fr)}.nav{display:none}.top-cta{margin-left:auto}.menu-toggle{display:block;order:3}.nav.open{display:flex;position:absolute;top:94px;left:0;right:0;flex-direction:column;background:#fff;padding:25px;box-shadow:0 12px 30px rgba(0,0,0,.12)}}
@media(max-width:780px){.hero{grid-template-columns:1fr}.hero-copy{padding:55px 6vw}.hero-media{height:360px}h1{font-size:42px}.service-grid,.country-grid,.package-grid{grid-template-columns:1fr 1fr}.split,.quote{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr}.footer{grid-template-columns:1fr}.top-cta{display:none}}
@media(max-width:520px){.service-grid,.country-grid,.package-grid,.stats,.gallery-grid,.quote-form{grid-template-columns:1fr}.quote-form textarea,.quote-form button{grid-column:auto}.brand img{width:72px;height:62px}h1{font-size:34px}h2{font-size:30px}}

.menu-showcase{background:#f7faf7}.menu-showcase .section-heading p{color:#6d7b89;line-height:1.7}.menu-tools{display:flex;gap:14px;justify-content:center;max-width:900px;margin:0 auto 28px}.menu-tools input,.menu-tools select{flex:1;padding:14px 16px;border:1px solid #d6e2dc;border-radius:12px;background:#fff;font:inherit}.dish-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.dish-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 32px rgba(15,76,129,.10);transition:.22s;cursor:pointer;border:1px solid #eaf0ed}.dish-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(15,76,129,.16)}.dish-card img{width:100%;height:210px;object-fit:cover}.dish-card-body{padding:18px}.dish-country{display:inline-block;color:#4d9b25;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.dish-card h3{margin:7px 0 8px;color:#0b3159;font-size:18px}.dish-card p{font-size:13px;line-height:1.55;color:#6d7b89;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dish-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.discover-link{color:#21651f;font-weight:800;font-size:13px}.price-note{font-size:11px;color:#8a969f}.illustration-note{font-size:11px;color:#8a969f;text-align:center;margin-top:24px}.dish-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px}.dish-modal.open{display:flex}.dish-modal-backdrop{position:absolute;inset:0;background:rgba(4,22,35,.72);backdrop-filter:blur(4px)}.dish-modal-card{position:relative;z-index:2;background:#fff;border-radius:22px;max-width:980px;width:min(980px,95vw);max-height:90vh;overflow:auto;display:grid;grid-template-columns:1.05fr 1fr;box-shadow:0 30px 80px rgba(0,0,0,.35)}.dish-modal-card>img{width:100%;height:100%;min-height:520px;object-fit:cover}.dish-modal-content{padding:42px}.dish-modal-content h2{font-size:36px;margin:10px 0 16px}.dish-modal-content p{line-height:1.75;color:#5f6f7d}.dish-modal-close{position:absolute;right:14px;top:12px;width:42px;height:42px;border-radius:50%;border:0;background:#fff;color:#0b3159;font-size:26px;cursor:pointer;box-shadow:0 5px 15px rgba(0,0,0,.18);z-index:3}.selling-points{display:grid;gap:9px;margin:22px 0;color:#21651f;font-weight:700}.dish-modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}@media(max-width:1150px){.dish-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:820px){.dish-grid{grid-template-columns:repeat(2,1fr)}.dish-modal-card{grid-template-columns:1fr}.dish-modal-card>img{min-height:300px;max-height:340px}.dish-modal-content{padding:28px}.menu-tools{flex-direction:column}}@media(max-width:520px){.dish-grid{grid-template-columns:1fr}.dish-card img{height:235px}}

.catalog-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:0 auto 30px}
.catalog-actions .btn{min-width:220px}
@media(max-width:520px){.catalog-actions{display:grid;grid-template-columns:1fr}.catalog-actions .btn{width:100%}}


/* ===== Réservation du repas du jour ===== */
.btn-reservation-top{
  background:var(--green);
  color:#fff;
  border:2px solid var(--green);
  white-space:nowrap;
  box-shadow:0 7px 18px rgba(77,155,37,.20);
}
.btn-reservation-top:hover{
  background:var(--green-dark);
  border-color:var(--green-dark);
  color:#fff;
}
.daily-reservation-wrap{margin-top:18px}
.daily-reservation-btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  width:min(100%,430px);
  padding:15px 19px;
  border:2px solid var(--green);
  border-radius:14px;
  background:linear-gradient(135deg,var(--green),var(--green-dark));
  color:#fff;
  text-decoration:none;
  box-shadow:0 12px 26px rgba(33,101,31,.24);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.daily-reservation-btn:hover,
.daily-reservation-btn:focus-visible{
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(33,101,31,.30);
  filter:brightness(.98);
}
.daily-reservation-icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.15);
  font-size:24px;
  line-height:1;
}
.daily-reservation-text{display:block;flex:1;min-width:0;text-align:left}
.daily-reservation-text strong{display:block;font-size:16px;line-height:1.25}
.daily-reservation-text small{display:block;margin-top:3px;font-size:12px;line-height:1.35;opacity:.92}
.daily-reservation-arrow{flex:0 0 auto;font-size:24px;font-weight:800}
@media(max-width:1100px){
  .btn-reservation-top{order:2;margin-left:auto}
}
@media(max-width:780px){
  .btn-reservation-top{display:inline-flex;padding:11px 13px;font-size:12px}
}
@media(max-width:560px){
  .btn-reservation-top{display:none}
  .daily-reservation-btn{width:100%;padding:14px 15px}
}


/* =========================================================
   Menu du jour
   ========================================================= */

.daily-menu-info{
  display:flex;
  justify-content:center;
  margin:0 0 24px;
}

.daily-menu-badge{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:12px 18px;
  background:#f7fbf4;
  border:1px solid rgba(77,155,37,.22);
  border-radius:999px;
  color:#18324b;
}

.daily-menu-badge strong{
  color:#21651f;
  font-size:1rem;
}

.daily-menu-badge span{
  color:#6d7b89;
  font-size:.95rem;
}

.meal-placeholder{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:4rem;
  background:#f6f6f6;
}

@media (max-width:700px){
  .daily-menu-badge{
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
    border-radius:16px;
    text-align:center;
  }
}


.price-context-note{
  margin-top:8px;
  color:#6d7b89;
  font-size:.95rem;
}

.featured-note{
  margin:12px 0 18px;
  text-align:center;
  color:#6d7b89;
  font-size:.95rem;
}


/* =========================================================
   Menu hebdomadaire - mise en relief du jour courant
   ========================================================= */

.weekly-menu-note{
  margin:12px auto 24px;
  max-width:760px;
  text-align:center;
  color:#6d7b89;
  line-height:1.55;
}

.weekly-dish-card{
  position:relative;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.weekly-dish-card.is-today{
  border:2px solid var(--green);
  box-shadow:0 14px 34px rgba(77,155,37,.18);
  transform:translateY(-3px);
}

.weekly-dish-card.is-today .dish-country{
  color:var(--green-dark);
  font-weight:700;
}

.today-ribbon{
  position:absolute;
  top:14px;
  left:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 12px;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-weight:800;
  font-size:.82rem;
  letter-spacing:.01em;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}

.today-badge{
  border:2px solid rgba(77,155,37,.35);
  background:#f2faed;
}

@media (max-width:700px){
  .weekly-dish-card.is-today{
    transform:none;
  }
}


/* =========================================================
   Nouveau hero PST
   ========================================================= */
.hero{
  position:relative;
  overflow:hidden;
}

.hero img,
.hero-image img,
.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(10,20,15,.48) 0%, rgba(10,20,15,.20) 42%, rgba(10,20,15,0) 72%);
}

.hero .hero-content,
.hero-content{
  position:relative;
  z-index:2;
}

@media (max-width: 800px){
  .hero img,
  .hero-image img,
  .hero-visual img{
    object-position:64% center;
  }

  .hero::after{
    background:linear-gradient(180deg, rgba(10,20,15,.45) 0%, rgba(10,20,15,.18) 60%, rgba(10,20,15,.05) 100%);
  }
}
