

/* ===== app.css (externalized from inline <style> blocks) ===== */

  /* ===== polices auto-hébergées (remplace Google Fonts pour accélérer le LCP) ===== */
  @font-face{
    font-family:'Inter'; font-style:normal; font-weight:400 800; font-display:swap;
    src:url('fonts/inter-regular.woff2') format('woff2');
  }
  @font-face{
    font-family:'Fraunces'; font-style:normal; font-weight:400 800; font-display:swap;
    src:url('fonts/fraunces-regular.woff2') format('woff2');
  }
  @font-face{
    font-family:'Fraunces'; font-style:italic; font-weight:400 800; font-display:swap;
    src:url('fonts/fraunces-italic.woff2') format('woff2');
  }
  @font-face{
    font-family:'Pacifico'; font-style:normal; font-weight:400; font-display:swap;
    src:url('fonts/pacifico-regular.woff2') format('woff2');
  }

  :root{
    --orange:#D97A4E;
    --orange-deep:#AD5C34;
    --cream:#F7EFE2;
    --cream-2:#EFE3CC;
    --ink:#17110B;
    --ink-soft:#332A21;
    --muted:#6E6353;
    --terra:#AD5C34;
    --leaf:#5C6B3A;
    --line:rgba(23,17,11,.15);
    --accent:var(--orange);
    --accent-text:#8B5209;
    --accent-deep:var(--orange-deep);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html,body{ background:var(--cream); color:var(--ink); font-family:"Inter", system-ui, sans-serif; -webkit-font-smoothing:antialiased; scroll-behavior:smooth; }
  body{ overflow-x:hidden; }

  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }

  .skip-link{
    position:absolute; left:12px; top:-60px; z-index:200;
    background:var(--ink); color:var(--cream); padding:12px 18px;
    border-radius:8px; font-size:14px; font-weight:600;
    transition:top .2s ease;
  }
  .skip-link:focus{ top:12px; }
  
  /* ============ SMOOTH SCROLL ============ */
  html{ scroll-behavior:smooth; }

  .wrap{ max-width:1320px; margin:0 auto; padding:0 36px; }
  @media (max-width:760px){ .wrap{ padding:0 22px; } }

  .serif{ font-family:"Fraunces", Georgia, serif; font-optical-sizing:auto; font-variation-settings:"SOFT" 50, "WONK" 0; letter-spacing:-0.01em; }
  
  /* ============ SECTION TITLES - PREMIUM HIERARCHY ============ */
  h2{
    font-size:clamp(2rem, 5vw, 3.5rem);
    font-weight:800;
    position:relative;
    padding-bottom:24px;
    margin-bottom:36px;
  }
  h2::after{
    content:'';
    position:absolute;
    bottom:0;
    left:50%;
    transform:translateX(-50%);
    width:80px;
    height:4px;
    background:var(--accent);
    border-radius:2px;
  }
  .script{ font-family:"Pacifico", cursive; }
  .mono{ font-family:"Inter", monospace; letter-spacing:.14em; text-transform:uppercase; font-size:11px; font-weight:600; color:var(--muted); }

  /* ============ NAV ============ */
  .nav{
    position:sticky; top:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 36px;
    background:color-mix(in srgb, var(--cream) 82%, transparent);
    backdrop-filter:saturate(150%) blur(14px);
    -webkit-backdrop-filter:saturate(150%) blur(14px);
    border-bottom:1px solid var(--line);
  }
  .nav .brand{ display:flex; align-items:center; gap:10px; }
  .nav .brand .mark{
    height:38px; width:auto; display:block;
  }
  .nav .brand .name{ font-family:"Fraunces", serif; font-weight:700; font-size:18px; letter-spacing:-0.01em; }
  .nav .brand .name em{ font-style:italic; color:var(--accent-text); }
  .nav .links{ display:flex; gap:28px; }
  .nav .links a{ font-size:14px; font-weight:500; color:var(--ink-soft); }
  .nav .links a:hover{ color:var(--accent-text); }
  .nav .cta{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--ink); color:var(--cream);
    padding:10px 18px; border-radius:999px; font-size:13px; font-weight:600;
    transition:transform .2s ease, background .2s ease;
  }
  .nav .cta:hover{ transform:translateY(-1px); background:var(--accent-deep); }
  .nav .nav-actions{ display:flex; align-items:center; gap:14px; }
  .lang-switch{ font-size:12.5px; font-weight:700; letter-spacing:.04em; color:var(--ink-soft); border:1px solid var(--line); border-radius:999px; padding:6px 12px; transition:border-color .2s, color .2s; }
  .lang-switch:hover{ border-color:var(--ink); color:var(--ink); }
  .lang-switch-mobile{ display:none; }
  .nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
  .nav-toggle span{ display:block; width:22px; height:2px; background:var(--ink); border-radius:2px; margin:5px 0; transition:transform .2s ease, opacity .2s ease; }
  .nav.open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav.open .nav-toggle span:nth-child(2){ opacity:0; }
  .nav.open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  @media (max-width:900px){
    .nav-toggle{ display:inline-flex; flex-direction:column; }
    .nav .links{
      position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:stretch; gap:0;
      background:var(--cream); border-bottom:1px solid var(--line);
      padding:8px 24px 28px; max-height:calc(100vh - 70px); overflow-y:auto;
      transform:translateY(-8px); opacity:0; visibility:hidden; pointer-events:none;
      transition:opacity .2s ease, transform .2s ease;
      box-shadow:0 20px 40px rgba(30,26,20,.14);
    }
    .nav.open .links{ transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto; }
    .nav .links a{ padding:14px 2px; border-bottom:1px solid var(--line); font-size:16px; }
    .nav .links .nav-item{ flex-direction:column; align-items:stretch; }
    .lang-switch-desktop{ display:none; }
    .lang-switch-mobile{ display:block; font-weight:600; }
  }

  /* ============ HERO ============ */
  .hero{ position:relative; padding:80px 0 40px; }
  .hero .eyebrow{ display:flex; gap:10px; align-items:center; margin-bottom:22px; }
  .hero .eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
  .hero h1{
    font-family:"Fraunces", serif; font-weight:500;
    font-size:clamp(56px, 9vw, 132px); line-height:.94;
    letter-spacing:-0.035em;
    color:var(--ink);
  }
  .hero h1 em{ font-style:italic; font-weight:400; color:var(--accent-text); }
  .hero h1 .amp{ font-family:"Fraunces", serif; font-weight:500; font-style:italic; color:var(--accent-text); font-size:.78em; vertical-align:.02em; padding:0 .02em 0 .12em; }
  .hero .lede{
    margin-top:36px; max-width:560px; font-size:19px; line-height:1.55; color:var(--ink-soft);
  }
  .hero .ctas{ margin-top:32px; display:flex; gap:14px; flex-wrap:wrap; }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 22px; border-radius:999px; font-size:14px; font-weight:600;
    transition:transform .2s, background .2s, color .2s;
    border:1px solid transparent;
  }
  .btn.primary{ background:var(--ink); color:var(--cream); }
  .btn.primary:hover{ background:var(--accent-deep); transform:translateY(-1px); }
  .btn.ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
  .btn.ghost:hover{ border-color:var(--ink); }

  .hero-grid{ display:grid; grid-template-columns: 1.05fr .95fr; gap:56px; align-items:center; }
  @media (max-width:1000px){ .hero-grid{ grid-template-columns:1fr; gap:40px; } }

  .hero-visual{
    position:relative; aspect-ratio: 11/10; border-radius:24px; overflow:hidden;
    background:
      radial-gradient(60% 50% at 30% 30%, rgba(255,220,170,.4), transparent 60%),
      linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);
    box-shadow:0 40px 60px -30px rgba(30,26,20,.35);
  }
  .hero-visual .ph{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 14px, transparent 14px 28px);
  }
  .hero-visual .ph .label{
    font-family:"Inter", monospace; font-size:11px; color:rgba(255,255,255,.78); letter-spacing:.15em; text-transform:uppercase;
    padding:6px 12px; border:1px solid rgba(255,255,255,.3); border-radius:999px; backdrop-filter:blur(8px);
  }
  .hero-visual .tag{
    position:absolute; top:22px; left:22px;
    background:rgba(255,255,255,.92); color:var(--ink);
    padding:8px 14px; border-radius:999px; font-size:12px; font-weight:600;
  }
  .hero-visual .script-tag{
    position:absolute; bottom:30px; right:28px;
    color:#fff; transform:rotate(-4deg);
    font-family:"Fraunces", serif; font-style:italic; font-weight:500; font-size:30px; line-height:1.1;
    text-shadow:0 2px 12px rgba(0,0,0,.2);
  }
  .hero-visual .ticks{
    position:absolute; bottom:22px; left:22px; display:flex; gap:8px;
  }
  .hero-visual .ticks span{
    font-size:11px; color:#fff; background:rgba(0,0,0,.25); padding:6px 10px; border-radius:999px;
    backdrop-filter:blur(6px);
  }
  
  /* ============ BADGE CONFIANCE ============ */
  .trust-badge{
    position:absolute;
    top:20px;
    right:20px;
    background:rgba(30,26,20,.78);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border:1.5px solid rgba(217,122,78,.4);
    border-radius:12px;
    padding:12px 16px;
    display:flex;
    align-items:center;
    gap:8px;
    color:#fff;
    font-size:12px;
    font-weight:600;
    z-index:20;
  }
  .trust-badge svg{
    width:16px;
    height:16px;
    flex-shrink:0;
  }

  .hero-meta{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:56px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .hero-meta .cell{ padding:22px 18px; border-right:1px solid var(--line); }
  .hero-meta .cell:last-child{ border-right:none; }
  .hero-meta .cell .n{ font-family:"Fraunces", serif; font-size:34px; font-weight:500; letter-spacing:-.02em; }
  .hero-meta .cell .n em{ font-style:italic; color:var(--accent-text); }
  .hero-meta .cell .l{ font-size:12px; color:var(--muted); margin-top:6px; }
  @media (max-width:760px){ .hero-meta{ grid-template-columns:repeat(2,1fr); } .hero-meta .cell:nth-child(2){ border-right:none; } .hero-meta .cell:nth-child(1),.hero-meta .cell:nth-child(2){ border-bottom:1px solid var(--line); }  }

  /* ============ TICKER ============ */
  .ticker{
    margin-top:48px; padding:18px 0;
    background:var(--ink); color:var(--cream);
    overflow:hidden;
    border-radius:0;
  }
  .ticker-track{
    display:flex; gap:48px; white-space:nowrap; width:max-content;
    animation: slide 40s linear infinite;
    font-family:"Fraunces", serif; font-size:28px; font-weight:500; font-style:italic;
    letter-spacing:-.01em;
  }
  .ticker-track span{ display:inline-flex; align-items:center; gap:48px; }
  .ticker-track .heart{ color:var(--accent); font-style:normal; }
  @keyframes slide{ to{ transform:translateX(-50%); } }

  /* ============ SECTION ============ */
  section{ padding:100px 0; }
  @media (max-width:760px){ section{ padding:70px 0; } }

  .section-head{ display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:56px; }
  .section-head .kicker{ display:flex; flex-direction:column; gap:14px; max-width:720px; }
  .section-head h2{
    font-family:"Fraunces", serif; font-weight:500;
    font-size:clamp(40px, 5.5vw, 76px); line-height:1; letter-spacing:-.03em;
  }
  .section-head h2 em{ font-style:italic; color:var(--accent-text); }
  .section-head .sub{ font-size:17px; color:var(--ink-soft); max-width:440px; line-height:1.5; }
  @media (max-width:760px){ .section-head{ flex-direction:column; align-items:flex-start; } }

  /* ============ HISTOIRE ============ */
  #histoire{ background:var(--cream-2); position:relative; }
  .story{ display:grid; grid-template-columns: 1fr 1fr; gap:64px; align-items:center; }
  @media (max-width:900px){ .story{ grid-template-columns:1fr; gap:40px; } }
  .story-visual{
    aspect-ratio: 4/5; border-radius:18px; overflow:hidden; position:relative;
    background:
      radial-gradient(70% 40% at 80% 20%, rgba(217,122,78,.5), transparent 70%),
      linear-gradient(160deg, #2e2720 0%, #4a3e32 100%);
  }
  .story-visual .ph{ position:absolute; inset:0;
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.04) 0 14px, transparent 14px 28px);
    display:flex; align-items:flex-end; padding:28px;
  }
  .story-visual .ph .label{
    font-family:"Inter", monospace; font-size:11px; color:rgba(255,255,255,.65); letter-spacing:.15em; text-transform:uppercase;
  }
  .story-visual .signature{
    position:absolute; top:32px; left:32px; color:#fff;
    font-family:"Pacifico",cursive; font-size:32px; line-height:1.25; transform:rotate(-3deg);
    text-shadow:0 1px 8px rgba(0,0,0,.5);
  }
  .story-visual .stamp{
    position:absolute; bottom:28px; right:28px;
    width:120px; height:120px; border-radius:50%; border:1px solid rgba(255,255,255,.3);
    display:grid; place-items:center; text-align:center; color:#fff;
    font-family:"Fraunces",serif; font-size:13px; font-style:italic; line-height:1.15;
    transform:rotate(-8deg);
    text-shadow:0 1px 6px rgba(0,0,0,.45);
    background:rgba(30,26,20,.22);
  }

  .story-text h3{
    font-family:"Fraunces",serif; font-size:clamp(32px,4vw,52px); font-weight:500; letter-spacing:-.025em; line-height:1.05;
    margin-bottom:24px;
  }
  .story-text h3 em{ font-style:italic; color:var(--accent-text); }
  .story-text p{ font-size:17px; line-height:1.6; color:var(--ink-soft); margin-bottom:16px; }
  .story-text .pullquote{
    margin-top:28px; padding:24px 28px; background:var(--cream); border-left:3px solid var(--accent);
    font-family:"Fraunces",serif; font-style:italic; font-size:20px; line-height:1.4; color:var(--ink);
    border-radius:0 14px 14px 0;
  }

  .flags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:28px; }
  .flag{
    display:inline-flex; align-items:center; gap:8px; padding:8px 14px;
    background:var(--cream); border:1px solid var(--line); border-radius:999px;
    font-size:13px; font-weight:500;
  }
  .flag .swatch{ font-size:16px; line-height:1; display:inline-block; }

  .credentials{ margin-top:40px; display:flex; gap:14px; flex-wrap:wrap; }
  .credentials .c{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted); }
  .credentials .c svg{ width:16px; height:16px; }

  /* ============ SERVICES ============ */
  .services{ display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
  @media (max-width:1000px){ .services{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:640px){ .services{ grid-template-columns:1fr; } }
  .service{
    position:relative; padding:28px 26px 30px; border-radius:18px;
    background:var(--cream-2); border:1px solid var(--line);
    transition:transform .3s ease, background .3s ease, color .3s ease;
    min-height:320px; display:flex; flex-direction:column; justify-content:space-between;
    overflow:hidden;
    cursor:pointer;
  }
  .service::before{
    content:""; position:absolute; inset:0; background:transparent; z-index:5;
  }
  .service a, .service button{
    position:relative;
    z-index:10;
  }
  .service a:hover, .service button:hover{
    transform:translateY(-4px);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .service:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 32px -12px rgba(30,26,20,.22);
  }
  .service:hover .meta .arrow{
    background:var(--accent);
    transform:rotate(-45deg);
  }
  .service .visual{
    aspect-ratio:16/10; border-radius:12px; margin-bottom:20px; position:relative; z-index:6;
    background: linear-gradient(135deg, #D97A4E, #7A3B20);
    overflow:hidden;
  }
  .service .visual.v2{ background: linear-gradient(135deg, #5C6B3A, #3E4A24); }
  .service .visual.v3{ background: linear-gradient(135deg, #2B2018, #493c30); }
  .service .visual.v4{ background: linear-gradient(135deg, #D97757, #8F3520); }
  .service .visual.v5{ background: linear-gradient(135deg, #E29A64, #AD5C34); }
  .service .visual.v6{ background: linear-gradient(135deg, #415c48, #1e2e22); }
  .service .visual::after{
    content:""; position:absolute; inset:0;
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.06) 0 10px, transparent 10px 20px);
  }
  .service .visual .ph-label{
    position:absolute; bottom:12px; left:14px;
    font-family:"Inter",monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.8);
  }
  .service .visual-slide{
    position:absolute; inset:0; background-size:cover; background-position:center;
    opacity:0; transition:opacity .35s ease; touch-action:pan-y;
  }
  .service .visual-slide.is-active{ opacity:1; }
  .service .visual-dots{
    position:absolute; bottom:10px; left:0; right:0; z-index:6;
    display:flex; justify-content:center; gap:6px;
  }
  .service .visual-dots .dot{
    width:6px; height:6px; border-radius:50%; border:none; padding:0; cursor:pointer;
    background:rgba(255,255,255,.5); transition:background .2s, transform .2s;
  }
  .service .visual-dots .dot.is-active{ background:#fff; transform:scale(1.35); }
  .service .visual-arrow{
    position:absolute; top:50%; transform:translateY(-50%); z-index:6;
    width:30px; height:30px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(20,16,10,.4); color:#fff; display:grid; place-items:center;
    transition:background .2s;
  }
  .service .visual-arrow:hover{ background:rgba(20,16,10,.65); }
  .service .visual-arrow.prev{ left:8px; }
  .service .visual-arrow.next{ right:8px; }
  .service .visual-arrow svg{ width:14px; height:14px; }
  .service .visual-zoom{
    position:absolute; top:8px; right:8px; z-index:6;
    width:30px; height:30px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(20,16,10,.4); color:#fff; display:grid; place-items:center;
    transition:background .2s;
  }
  .service .visual-zoom:hover{ background:rgba(20,16,10,.65); }
  .service .visual-zoom svg{ width:14px; height:14px; }

  /* ============ LIGHTBOX ============ */
  #lightbox{
    position:fixed; inset:0; z-index:10000; background:rgba(20,16,10,.94);
    display:none; align-items:center; justify-content:center; padding:60px;
  }
  #lightbox.is-open{ display:flex; }
  #lightbox img{ max-width:100%; max-height:100%; border-radius:10px; object-fit:contain; }
  #lightbox .lightbox-close, #lightbox .lightbox-nav{
    position:absolute; border:none; cursor:pointer; color:#fff;
    background:rgba(255,255,255,.15); display:grid; place-items:center; border-radius:50%;
    transition:background .2s;
  }
  #lightbox .lightbox-close:hover, #lightbox .lightbox-nav:hover{ background:rgba(255,255,255,.28); }
  #lightbox .lightbox-close{ top:20px; right:20px; width:44px; height:44px; }
  #lightbox .lightbox-close svg{ width:18px; height:18px; }
  #lightbox .lightbox-nav{ top:50%; transform:translateY(-50%); width:48px; height:48px; }
  #lightbox .lightbox-nav svg{ width:20px; height:20px; }
  #lightbox .lightbox-nav.prev{ left:16px; }
  #lightbox .lightbox-nav.next{ right:16px; }
  @media (max-width:640px){
    #lightbox{ padding:20px; }
    #lightbox .lightbox-nav{ width:40px; height:40px; }
  }
  .service h4{ font-family:"Fraunces",serif; font-weight:500; font-size:26px; letter-spacing:-.015em; line-height:1.1; }
  .service p{ font-size:14px; color:var(--ink-soft); margin-top:10px; line-height:1.5; }
  .service .meta{ display:flex; justify-content:space-between; align-items:center; margin-top:18px; font-size:12px; color:var(--muted); }
  .service .meta .arrow{
    width:34px; height:34px; border-radius:50%; background:var(--ink); color:var(--cream);
    display:grid; place-items:center; transition:transform .25s, background .25s;
  }
  .service:hover{ transform:translateY(-4px); }
  .service:hover .meta .arrow{ background:var(--accent); transform:rotate(-45deg); }
    grid-column:span 2; background:var(--ink); color:var(--cream); border-color:var(--ink);
  }
  @media (max-width:1000px){ .service.feature{ grid-column:span 2; } }
  @media (max-width:640px){ .service.feature{ grid-column:span 1; } }
  .service.feature h4{ color:var(--cream); font-size:38px; }
  .service.feature p{ color:rgba(247,239,226,.75); font-size:16px; max-width:520px; }
  .service.feature .meta{ color:rgba(247,239,226,.6); }
  .service.feature .detail-title, .service.feature .detail-list li, .service.feature .detail-more{ color:var(--cream); }
  .service.feature .meta .arrow{ background:var(--accent); color:var(--ink); }

  .service.service-cta{
    grid-column:span 2; cursor:default; justify-content:flex-start; gap:22px;
    background:linear-gradient(135deg, var(--orange), var(--orange-deep)); border-color:transparent;
  }
  @media (max-width:1000px){ .service.service-cta{ grid-column:span 2; } }
  @media (max-width:640px){ .service.service-cta{ grid-column:span 1; } }
  .service.service-cta h4{ color:var(--cream); }
  .service.service-cta p{ color:rgba(251,247,241,.85); max-width:420px; }
  .service.service-cta .cta-link{
    display:inline-flex; align-items:center; gap:10px; margin-top:auto;
    background:var(--ink); color:var(--cream); padding:13px 20px; border-radius:100px;
    font-family:"Inter",sans-serif; font-weight:600; font-size:14px; text-decoration:none; align-self:flex-start;
    transition:background .2s, transform .2s;
  }
  .service.service-cta .cta-link:hover{ background:#000; transform:translateY(-1px); }

  /* ============ MENU ============ */
  #menus{ background:var(--ink); color:var(--cream); }
  #menus .section-head h2{ color:var(--cream); }
  #menus .section-head h2 em{ color:var(--accent); }
  #menus .section-head .sub{ color:rgba(247,239,226,.7); }
  #menus .section-head .mono{ color:var(--accent); }

  .menu{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid rgba(247,239,226,.15); }
  @media (max-width:760px){ .menu{ grid-template-columns:1fr; } }
  .menu-item{
    padding:32px 0; border-bottom:1px solid rgba(247,239,226,.15);
    display:grid; grid-template-columns: 1fr auto; gap:24px; align-items:baseline;
  }
  .menu-item:nth-child(odd){ padding-right:32px; border-right:1px solid rgba(247,239,226,.15); }
  .menu-item:nth-child(even){ padding-left:32px; }
  @media (max-width:760px){
    .menu-item:nth-child(odd){ padding-right:0; border-right:none; }
    .menu-item:nth-child(even){ padding-left:0; }
  }
  .menu-item .name{ font-family:"Fraunces",serif; font-size:24px; font-weight:500; letter-spacing:-.01em; }
  .menu-item .name em{ font-style:italic; color:var(--gold); }
  .menu-item .desc{ font-size:14px; color:rgba(247,239,226,.65); margin-top:6px; line-height:1.5; }
  .menu-item .price{ font-family:"Fraunces",serif; font-size:20px; font-style:italic; color:var(--gold); white-space:nowrap; }
  .menu-item .badge{ display:inline-block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-left:8px; vertical-align:middle; }
  @media (max-width:420px){
    .menu-item{ gap:12px; }
    .menu-item .name{ font-size:20px; }
    .menu-item .price{ font-size:16px; }
  }

  .menu-cta{ margin-top:48px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
  .menu-cta p{ color:rgba(247,239,226,.7); font-family:"Fraunces",serif; font-style:italic; font-size:22px; max-width:500px; line-height:1.3; }
  .menu-cta .btn.primary{ background:var(--accent); color:var(--ink); }
  .menu-cta .btn.primary:hover{ background:var(--cream); }
  .menu-downloads{ display:flex; flex-direction:column; gap:10px; }
  .menu-download-link{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--cream); border-bottom:1px solid rgba(247,239,226,.35); padding-bottom:2px; transition:color .15s, border-color .15s; }
  .menu-download-link svg{ flex-shrink:0; color:var(--accent); }
  .menu-download-link:hover{ color:var(--accent); border-color:var(--accent); }

  /* ============ GALERIE INLINE ============ */
  .gallery{
    display:grid; grid-template-columns:repeat(4,1fr); gap:8px;
    margin-top:80px;
  }
  @media (max-width:760px){ .gallery{ grid-template-columns:repeat(2,1fr); } }
  .gallery .tile{
    aspect-ratio:1; border-radius:10px; position:relative; overflow:hidden;
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 10px, transparent 10px 20px);
  }
  .gallery .tile.t1{ background-color:#B5462A; }
  .gallery .tile.t2{ background-color:#5C6B3A; }
  .gallery .tile.t3{ background-color:#D97A4E; }
  .gallery .tile.t4{ background-color:#2B2018; }
  .gallery .tile.t5{ background-color:#AD5C34; }
  .gallery .tile.t6{ background-color:#8F3520; }
  .gallery .tile.t7{ background-color:#3E4A24; }
  .gallery .tile.t8{ background-color:#F2BC5B; }
  .gallery .tile .ph{ position:absolute; inset:0; display:flex; align-items:flex-end; padding:14px; }
  .gallery .tile .ph span{ font-family:"Inter",monospace; font-size:10px; color:rgba(255,255,255,.75); letter-spacing:.14em; text-transform:uppercase; }

  /* ============ CERTIFICATIONS ============ */
  #certifie{ padding:80px 0; background:var(--cream); }
  .certs{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  @media (max-width:900px){ .certs{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:500px){ .certs{ grid-template-columns:1fr; } }
  .cert{
    padding:28px 22px; background:var(--cream-2); border:1px solid var(--line); border-radius:18px;
    display:flex; flex-direction:column; gap:12px; min-height:220px;
    transition:transform .3s, background .3s;
  }
  .cert:hover{ transform:translateY(-3px); background:var(--accent); color:var(--ink); border-color:var(--accent); }
  .cert:hover .cert-num, .cert:hover h5, .cert:hover p{ color:var(--ink); }
  .cert-num{ font-family:"Fraunces",serif; font-style:italic; font-size:34px; color:var(--accent-text); line-height:1; }
  .cert h5{ font-family:"Fraunces",serif; font-weight:500; font-size:20px; letter-spacing:-.01em; line-height:1.15; }
  .cert p{ font-size:13px; color:var(--ink-soft); line-height:1.5; }

  /* ============ CONFIANCE / CLIENTS ============ */
  #confiance{ padding:100px 0 48px; background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .logos-carousel{ position:relative; background:var(--cream); border-radius:20px; padding:36px 68px; }
  .logos-track-wrap{ overflow:hidden; }
  .logos-track{ display:flex; align-items:center; gap:48px; transition:transform .4s ease; will-change:transform; }
  .logos-track .logo-cell{
    flex:0 0 auto; width:180px; height:90px;
    display:flex; align-items:center; justify-content:center;
  }
  .logos-track .logo-cell img{ max-width:100%; max-height:100%; object-fit:contain; }
  .logos-nav{
    position:absolute; top:50%; transform:translateY(-50%); z-index:5;
    width:40px; height:40px; border-radius:50%; border:none;
    background:var(--ink); color:var(--cream);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .2s, opacity .2s;
  }
  .logos-nav:hover{ background:var(--accent-deep); }
  .logos-nav:disabled{ opacity:.3; cursor:default; background:var(--ink); }
  .logos-nav.prev{ left:14px; }
  .logos-nav.next{ right:14px; }
  @media (max-width:900px){
    .logos-carousel{ padding:32px 56px; }
    .logos-track{ gap:32px; }
    .logos-track .logo-cell{ width:150px; height:76px; }
  }
  @media (max-width:640px){
    .logos-carousel{ padding:26px 46px; border-radius:16px; }
    .logos-track{ gap:24px; }
    .logos-track .logo-cell{ width:120px; height:60px; }
    .logos-nav{ width:34px; height:34px; }
    .logos-nav.prev{ left:8px; }
    .logos-nav.next{ right:8px; }
  }
  .press-strip{
    margin-top:48px; display:flex; gap:48px; flex-wrap:wrap; justify-content:space-between; align-items:center;
    padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .press-strip .item{ display:flex; flex-direction:column; gap:4px; }
  .press-strip .item .n{ font-family:"Fraunces",serif; font-style:italic; font-size:32px; color:var(--accent-text); letter-spacing:-.02em; }
  .press-strip .item .l{ font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.1em; }


  .quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  @media (max-width:900px){ .quotes{ grid-template-columns:1fr; } }
  .quote{
    background:var(--cream); padding:34px 30px; border-radius:18px; border:1px solid var(--line);
    display:flex; flex-direction:column; gap:20px; min-height:280px;
  }
  .quote .stars{ color:var(--accent-text); font-size:14px; letter-spacing:3px; }
  .quote p{ font-family:"Fraunces",serif; font-size:20px; line-height:1.4; font-style:italic; letter-spacing:-.01em; color:var(--ink); }
  .quote .author{ display:flex; align-items:center; gap:12px; margin-top:auto; }
  .quote .author .av{ width:42px; height:42px; border-radius:50%; background:var(--accent); display:grid; place-items:center; color:var(--ink); font-family:"Fraunces",serif; font-weight:600; font-size:16px; }
  .quote .author .who{ font-size:14px; font-weight:600; }
  .quote .author .ctx{ font-size:12px; color:var(--muted); }
  .quote--cta{ background:var(--accent); border:none; justify-content:space-between; }
  .quote--cta .cta-stars{ color:var(--ink); opacity:.75; font-size:14px; letter-spacing:3px; }
  .quote--cta p{ font-family:"Fraunces",serif; font-size:19px; line-height:1.4; font-style:italic; letter-spacing:-.01em; color:var(--ink); margin:0; }
  .quote--cta .cta-link{
    display:inline-flex; align-items:center; gap:10px; margin-top:auto;
    background:var(--ink); color:var(--cream); padding:13px 20px; border-radius:100px;
    font-family:"Inter",sans-serif; font-weight:600; font-size:14px; text-decoration:none; align-self:flex-start;
    transition:background .2s, transform .2s;
  }
  .quote--cta .cta-link:hover{ background:var(--cream); transform:translateY(-1px); }

  /* ============ CONTACT ============ */
  #contact{ background:var(--accent); color:var(--ink); position:relative; overflow:hidden; }
  #contact::before{
    content:""; position:absolute; top:-20%; right:-10%; width:700px; height:700px; border-radius:50%;
    background: radial-gradient(closest-side, rgba(255,255,255,.18), transparent 70%);
    pointer-events:none;
  }
  #contact .section-head h2{ color:var(--cream); }
  #contact .section-head h2 em{ color:var(--cream-2); }
  #contact .section-head .sub{ color:rgba(251,247,241,.92); }
  #contact .section-head .mono{ color:rgba(251,247,241,.92); }

  .contact-grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap:56px; position:relative; z-index:1; }
  @media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }

  .form{ background:var(--cream); color:var(--ink); padding:40px; border-radius:20px; }
  .form h3{ font-family:"Fraunces",serif; font-size:28px; font-weight:500; margin-bottom:6px; letter-spacing:-.015em; }
  .form .sub{ font-size:14px; color:var(--muted); margin-bottom:24px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
  @media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
  .form label{ display:block; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin-bottom:6px; }
  .form input, .form select, .form textarea{
    width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--cream); color:var(--ink);
    font-family:inherit; font-size:14px; border-radius:10px; outline:none; transition:border .2s;
  }
  .form input:focus, .form select:focus, .form textarea:focus{ border-color:var(--accent); }
  .form textarea{ resize:vertical; min-height:100px; }
  .form .btn.primary{ width:100%; justify-content:center; margin-top:8px; background:var(--ink); }
  .form .btn.primary:hover{ background:var(--accent-deep); }
  .form .btn.primary:disabled{ opacity:.6; cursor:default; }
  .form input[aria-invalid="true"], .form textarea[aria-invalid="true"]{ border-color:#B5462A; }
  .fs-field-error{ display:block; font-size:12px; color:#B5462A; margin-top:5px; }
  .fs-form-success, .fs-form-error{ display:none; margin-top:16px; padding:12px 14px; border-radius:10px; font-size:14px; font-weight:600; }
  .fs-form-success{ background:#E9F3EA; color:#2C5A34; }
  .fs-form-error{ background:#FBEAE5; color:#8A2E1B; }
  .fs-form-success:not(:empty), .fs-form-success[data-fs-active],
  .fs-form-error:not(:empty), .fs-form-error[data-fs-active]{ display:block; }

  .contact-info{ color:var(--cream); display:flex; flex-direction:column; justify-content:space-between; gap:28px; }
  .contact-info .block .mono{ color:rgba(251,247,241,.92); margin-bottom:8px; }
  .contact-info .block .v{ font-family:"Fraunces",serif; font-size:28px; font-weight:500; letter-spacing:-.015em; line-height:1.15; }
  .contact-info .block .v.small{ font-size:18px; }
  .whatsapp-link{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--cream); margin-top:8px; opacity:.85; transition:opacity .2s; }
  .whatsapp-link:hover{ opacity:1; }
  .contact-info hr{ border:none; border-top:1px solid rgba(251,247,241,.3); }
  .contact-info .socials a{ background:rgba(251,247,241,.18); color:var(--cream); }
  .contact-info .socials a:hover{ background:var(--ink); color:var(--cream); }

  /* ============ FOOTER ============ */
  footer{ background:var(--ink); color:var(--cream); padding:60px 0 30px; position:relative; overflow:hidden; }
  .socials { display: flex; gap: 12px; margin-top: 12px; }
  .socials a { 
    display: inline-flex; align-items: center; justify-content: center; 
    width: 32px; height: 32px; border-radius: 50%; background: rgba(247,239,226,.15); 
    color: var(--cream); text-decoration: none; transition: transform .2s, background .2s;
  }
  .socials a:hover { transform: translateY(-2px); background: var(--accent); }
  .socials a svg { width: 14px; height: 14px; }
  footer .foot{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:32px; }
  @media (max-width:1000px){ footer .foot{ grid-template-columns:1fr 1fr; } }
  footer h5{ font-family:"Fraunces",serif; font-weight:500; font-size:18px; margin-bottom:16px; }
  footer ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
  footer a{ color:rgba(247,239,226,.7); font-size:14px; transition:color .2s; }
  footer a:hover{ color:var(--accent); }
  footer .brand-block .tagline{ font-family:"Fraunces",serif; font-style:italic; font-weight:500; font-size:19px; color:var(--accent); margin-top:8px; }
  footer .brand-block p{ font-size:14px; color:rgba(247,239,226,.6); margin-top:12px; max-width:320px; line-height:1.5; }
  footer .newsletter-text{ font-size:14px; color:rgba(247,239,226,.7); line-height:1.5; margin-bottom:14px; }
  footer .newsletter-form{ display:flex; flex-direction:column; gap:10px; }
  footer .newsletter-form input{
    width:100%; padding:11px 14px; border-radius:10px; border:1px solid rgba(247,239,226,.25);
    background:rgba(247,239,226,.08); color:var(--cream); font-family:inherit; font-size:14px; outline:none;
    transition:border-color .2s;
  }
  footer .newsletter-form input::placeholder{ color:rgba(247,239,226,.45); }
  footer .newsletter-form input:focus{ border-color:var(--accent); }
  footer .newsletter-form button{
    padding:11px 16px; border-radius:999px; border:none; background:var(--accent); color:var(--ink);
    font-family:inherit; font-size:14px; font-weight:600; cursor:pointer; transition:background .2s, transform .2s;
  }
  footer .newsletter-form button:hover{ background:var(--accent-text); color:var(--cream); transform:translateY(-1px); }
  footer .bottom{ margin-top:50px; padding-top:24px; border-top:1px solid rgba(247,239,226,.15); display:flex; justify-content:space-between; font-size:12px; color:rgba(247,239,226,.5); flex-wrap:wrap; gap:12px; }

  /* ============ ÉCRAN D'INTRO ============ */
  #intro{
    position:fixed; inset:0; z-index:9999;
    background:
      radial-gradient(circle at 18% 22%, rgba(255,255,255,.14), transparent 45%),
      radial-gradient(circle at 84% 78%, rgba(255,255,255,.10), transparent 45%),
      linear-gradient(160deg, var(--orange) 0%, var(--orange-deep) 100%);
    display:flex; align-items:center; justify-content:center;
    transition:opacity .7s ease, visibility .7s ease;
  }
  #intro.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
  #intro.no-transition{ transition:none; }
  #intro .intro-inner{ text-align:center; color:#fff; padding:0 24px; }
  #intro .intro-mark{ height:52px; width:auto; filter:invert(1) brightness(1.3); margin:0 auto 28px; }
  #intro .intro-kicker{
    font-family:"Inter", monospace; font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    color:rgba(255,255,255,.75); margin-bottom:20px;
  }
  #intro .intro-title{
    font-family:"Fraunces", serif; font-weight:500; font-style:italic;
    font-size:clamp(30px,5vw,50px); line-height:1.1; letter-spacing:-.01em; margin:0 0 6px;
  }
  #intro .intro-script{
    font-family:"Pacifico", cursive; font-size:clamp(32px,5.4vw,54px); color:#fff; line-height:1.2;
  }
  #intro .intro-bar{
    width:160px; height:2px; background:rgba(255,255,255,.28); border-radius:2px; margin:36px auto 0; overflow:hidden;
  }
  #intro .intro-bar span{
    display:block; height:100%; width:0%; background:#fff; border-radius:2px;
    animation: introload 6s ease forwards;
  }
  #intro .intro-skip{
    margin-top:18px; font-size:12px; color:rgba(255,255,255,.6); letter-spacing:.04em;
  }
  @keyframes introload{ to{ width:100%; } }
  body.intro-active{ overflow:hidden; }




  :root{
    --orange:#B8410E;
    --orange-deep:#7A2C09;
    --accent-text:#B8410E;
    --accent:var(--orange);
    --accent-deep:var(--orange-deep);
    --gold:#D4AF37;
    --cream:#FBF7F1;
    --cream-2:#F5EEE1;
    --shadow-soft:0 14px 34px -18px rgba(23,17,11,.28);
    --shadow-lift:0 30px 54px -20px rgba(23,17,11,.4);
  }

  /* ---- cartes de service : ombres douces + zoom au survol ---- */
  .service{ border-radius:22px; box-shadow:var(--shadow-soft); border-color:rgba(23,17,11,.06); }
  .service:hover{ box-shadow:var(--shadow-lift); }
  .service .visual{ border-radius:16px; }
  .service .visual-slide{ transition:opacity .35s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
  .service:hover .visual-slide.is-active{ transform:scale(1.06); }
  .service.feature{ box-shadow:0 20px 50px -22px rgba(23,17,11,.55); }

  /* ---- "Set up & buffets" devient la carte en vedette ---- */
  .services{ grid-auto-flow:dense; }
  #svc-traiteur.service.feature{ grid-column:span 1; }
  #svc-traiteur.service.feature h4{ font-size:24px; }
  #svc-traiteur.service.feature p{ font-size:13.5px; }
  #svc-setup.service{ grid-column:span 2; }
  #svc-setup.service .visual{ aspect-ratio:21/9; }
  @media (max-width:640px){
    #svc-setup.service, #svc-traiteur.service.feature{ grid-column:span 1; }
    #svc-setup.service .visual{ aspect-ratio:16/10; }
  }

  /* ---- boutons ---- */
  .btn.primary{ background:linear-gradient(135deg, var(--ink) 0%, #2b2118 100%); box-shadow:0 16px 32px -12px rgba(23,17,11,.5); }
  .btn.primary:hover{ box-shadow:0 22px 40px -12px rgba(23,17,11,.58); }
  .btn.ghost:hover{ transform:translateY(-2px); box-shadow:0 10px 22px -12px rgba(23,17,11,.25); }

  /* ---- hero : ombre riche + badges flottants façon v4 ---- */
  .hero-visual{ box-shadow:0 60px 90px -34px rgba(30,26,20,.5); }
  .hero-visual::before{
    content:''; position:absolute; inset:-2px; border-radius:26px; z-index:-1;
    background:conic-gradient(from 180deg, var(--gold), var(--orange), var(--gold));
    opacity:.35; filter:blur(18px);
  }
  .float-badge{
    position:absolute; background:#fff; border-radius:14px; padding:12px 16px; box-shadow:var(--shadow-lift);
    font-size:13px; font-weight:700; color:var(--ink); z-index:5; display:flex; flex-direction:column; gap:2px;
  }
  .float-badge .sub{ font-weight:400; opacity:.65; font-size:11px; }
  .float-badge.rating{ top:18px; right:18px; flex-direction:row; align-items:center; gap:8px; }
  .float-badge.rating .stars{ color:var(--gold); letter-spacing:1px; font-size:13px; }
  .float-badge.rating .sub{ margin-left:4px; }
  .float-badge.rating{ text-decoration:none; transition:transform .2s, box-shadow .2s; }
  .float-badge.rating:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }
  .float-badge.mapaq{ bottom:18px; left:18px; background:var(--ink); color:#fff; }
  @media (max-width:480px){
    .float-badge{ padding:9px 12px; font-size:11px; border-radius:11px; }
    .float-badge .sub{ font-size:9.5px; }
    .float-badge.rating{ top:12px; right:12px; gap:6px; }
    .float-badge.rating .stars{ font-size:11px; }
    .float-badge.mapaq{ bottom:12px; left:12px; }
  }

  /* ---- ticker : fond plus profond, coeur en or ---- */
  .ticker{ background:linear-gradient(120deg, var(--ink) 0%, #2b2118 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.06); }
  .ticker-track .heart{ color:var(--gold); }

  /* ---- drapeaux ---- */
  .flag{ box-shadow:0 4px 12px -6px rgba(23,17,11,.18); transition:transform .2s, box-shadow .2s; }
  .flag:hover{ transform:translateY(-2px); box-shadow:0 8px 18px -6px rgba(23,17,11,.28); border-color:var(--orange); }

  /* ---- stats de confiance ---- */
  .press-strip .item .n{ color:var(--accent-text); }
  .press-strip .item{ position:relative; padding-left:14px; }
  .press-strip .item::before{
    content:''; position:absolute; left:0; top:6px; bottom:6px; width:2px;
    background:linear-gradient(var(--gold), var(--orange)); border-radius:2px; opacity:.6;
  }

  /* ---- FAQ ---- */
  .faq-item{
    background:#fff; border-radius:16px; padding:4px 20px; margin-bottom:12px;
    box-shadow:var(--shadow-soft); border:1px solid rgba(23,17,11,.05); transition:box-shadow .25s;
  }
  .faq-item[open]{ box-shadow:var(--shadow-lift); }
  .faq-item summary{ padding:18px 0; }

  /* ---- citation "notre histoire" ---- */
  .story-text .pullquote{ border-left-color:var(--gold); }

  /* ---- logos partenaires : couleur au survol ---- */
  .logos-carousel{ border:1px solid rgba(212,175,55,.15); }
  .logos-track .logo-cell img{ filter:grayscale(1) opacity(.75); transition:filter .35s ease, transform .35s ease; }
  .logos-track .logo-cell:hover img{ filter:grayscale(0) opacity(1); transform:scale(1.06); }

  /* ---- temoignages (vrai contenu) : cartes sombres contrastees ---- */
  .quote{ background:var(--ink); border-color:transparent; box-shadow:var(--shadow-soft); transition:transform .3s, box-shadow .3s; }
  .quote:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lift); }
  .quote .stars{ color:var(--gold); }
  .quote p{ color:rgba(247,239,226,.9); }
  .quote .author .av{ background:var(--gold); color:var(--ink); }
  .quote .author .who{ color:var(--cream); }
  .quote .author .ctx{ color:rgba(247,239,226,.55); }
  .quote--cta{ background:linear-gradient(135deg, var(--orange), var(--orange-deep)); box-shadow:var(--shadow-soft); }
  .quote--cta .cta-stars{ color:#fff; opacity:.85; }
  .quote--cta p{ color:#fff; }
  .quote--cta .cta-link{ background:var(--ink); color:var(--cream); }
  .quote--cta .cta-link:hover{ background:#000; }

  /* ---- histoire + a propos combines : bandeau d'engagements compact ---- */
  #certifie.trust-strip{
    padding:36px 0 0 0; background:transparent;
    display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
    margin-top:60px; border-top:1px solid var(--line);
  }
  .trust-strip .trust-label{
    grid-column:1/-1; font-family:"Inter",monospace; font-size:11px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--muted); margin-bottom:4px;
  }
  .trust-item{ display:flex; flex-direction:column; gap:6px; }
  .trust-item .n{ font-family:"Fraunces",serif; font-style:italic; color:var(--accent-text); font-size:26px; line-height:1; }
  .trust-item h5{ font-family:"Fraunces",serif; font-weight:500; font-size:16px; margin:0; letter-spacing:-.01em; }
  .trust-item p{ font-size:12.5px; color:var(--muted); line-height:1.5; margin:2px 0 0; }
  @media (max-width:760px){ .trust-strip{ grid-template-columns:repeat(2,1fr); } }

  /* ---- menus + contact : profondeur additionnelle ---- */
  .form{ box-shadow:var(--shadow-lift); }
  .menu-item .price{ text-shadow:0 0 20px rgba(212,175,55,.25); }

  /* ---- fondu + montee douce a l'entree dans le viewport ---- */
  .reveal-up{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
  .reveal-up.is-in{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion:reduce){ .reveal-up{ opacity:1; transform:none; transition:none; } }

  /* ---- typographie plus audacieuse (poids v4) sur les titres principaux ---- */
  .hero h1{ font-weight:700; }
  .hero h1 em{ font-weight:700; }
  .section-head h2{ font-weight:700; }
  .story-text h3{ font-weight:700; }
  .service h4{ font-weight:700; }
  .service.feature h4{ font-weight:700; }

  /* ---- correction : le titre ne doit jamais se re-couper en 2 lignes sur grand ecran ---- */
  .hero h1{ font-size:clamp(44px, 6.2vw, 92px); }

  /* ---- boutons "Demander un devis" : orange marque au lieu de noir, partout ---- */
  .btn.primary{
    background:linear-gradient(135deg, var(--orange) 0%, var(--orange-deep) 100%);
    box-shadow:0 16px 32px -12px rgba(184,65,14,.5);
  }
  .btn.primary:hover{ box-shadow:0 22px 40px -12px rgba(184,65,14,.6); filter:brightness(1.06); }
  .nav .cta{ background:linear-gradient(135deg, var(--orange) 0%, var(--orange-deep) 100%); box-shadow:0 8px 20px -10px rgba(184,65,14,.45); }
  .nav .cta:hover{ background:var(--orange-deep); }
  .form .btn.primary{ background:linear-gradient(135deg, var(--orange) 0%, var(--orange-deep) 100%); }
  .btn.ghost{ border-color:rgba(23,17,11,.3); border-width:1.5px; }
  .btn.ghost:hover{ border-color:var(--orange); color:var(--orange); background:rgba(184,65,14,.05); }

  /* ---- liens PDF menus : vrais boutons visibles au lieu de liens soulignes ---- */
  .menu-download-link{
    background:var(--cream); color:var(--ink); border:none !important;
    padding:14px 22px; border-radius:999px; box-shadow:0 12px 26px -10px rgba(0,0,0,.45);
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  }
  .menu-download-link svg{ color:var(--orange); }
  .menu-download-link:hover{ transform:translateY(-3px); background:#fff; box-shadow:0 16px 32px -10px rgba(0,0,0,.5); border:none; color:var(--ink); }

  /* ---- ambiance generale plus lumineuse : brun chaud au lieu de quasi-noir ---- */
  :root{ --ink:#241A12; }

  /* ---- retour au survol plus clair sur les boutons PDF ---- */
  .menu-download-link:hover{ color:var(--orange); }
  .menu-download-link:hover svg{ color:var(--orange); }

  /* ---- hierarchie a 3 niveaux : l'or reserve aux mentions signature/premium ---- */
  .menu-item .badge{ color:var(--gold); }

  /* ---- lien prestation -> plat correspondant dans la vraie carte ---- */
  .detail-menu-link{
    display:inline-flex; align-items:center; gap:6px; margin-top:12px;
    font-size:12.5px; font-weight:700; color:var(--orange); text-decoration:none;
    border-bottom:1px solid rgba(184,65,14,.35); padding-bottom:2px;
    transition:color .15s, border-color .15s, gap .15s;
  }
  .detail-menu-link:hover{ color:var(--orange-deep); border-color:var(--orange-deep); gap:9px; }
  .service.feature .detail-menu-link{ color:var(--gold); border-color:rgba(212,175,55,.4); }
  .service.feature .detail-menu-link:hover{ color:#fff; border-color:#fff; }

  /* ---- effet de surlignage quand on arrive sur un plat depuis une prestation ---- */
  @keyframes menu-item-pulse{
    0%{ box-shadow:0 0 0 0 rgba(184,65,14,.45); }
    70%{ box-shadow:0 0 0 14px rgba(184,65,14,0); }
    100%{ box-shadow:0 0 0 0 rgba(184,65,14,0); }
  }
  .menu-item.is-targeted{ animation:menu-item-pulse 1.4s ease-out 2; border-radius:12px; }





  .legal-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,.6);
    z-index: 9999;
    overflow-y: auto;
    padding: 40px 20px;
  }
  .legal-modal.open {
    display: flex;
    align-items: flex-start;
    justify-content: center;
  }
  .legal-modal-content {
    background: #faf7f2;
    border-radius: 12px;
    max-width: 800px;
    width: 100%;
    padding: 40px;
    position: relative;
    margin-top: 40px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,.2);
  }
  .legal-modal-close {
    position: absolute;
    top: 16px; right: 16px;
    background: #D97A4E;
    color: #fff;
    border: none;
    width: 40px; height: 40px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
  }
  .legal-modal-close:hover { background: #d17a1a; }
  .legal-modal h2 {
    font-family: "Fraunces", serif;
    font-size: 24px;
    margin-top: 32px;
    margin-bottom: 16px;
    color: #2b2016;
  }
  .legal-modal h2:first-child { margin-top: 0; }
  .legal-modal h3 {
    font-family: "Fraunces", serif;
    font-size: 18px;
    margin-top: 24px;
    margin-bottom: 12px;
    color: #493c30;
  }
  .legal-modal p {
    margin-bottom: 16px;
    text-align: justify;
    color: #2b2016;
    line-height: 1.6;
  }
  .legal-modal ul {
    margin-left: 24px;
    margin-bottom: 16px;
  }
  .legal-modal li {
    margin-bottom: 8px;
    color: #2b2016;
    line-height: 1.6;
  }
  .legal-modal a { color: #D97A4E; text-decoration: none; }
  .legal-modal a:hover { text-decoration: underline; }
  .legal-modal strong { color: #493c30; }

/* --- FAQ --- */
#faq{padding:clamp(56px,8vw,110px) 0;background:var(--cream)}
#faq .faq-list{max-width:820px;margin:34px auto 0;display:flex;flex-direction:column;gap:12px}
#faq .faq-item{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;transition:box-shadow .2s}
#faq .faq-item[open]{box-shadow:0 10px 30px rgba(30,26,20,.08)}
#faq summary{cursor:pointer;list-style:none;padding:18px 22px;font-weight:650;font-size:clamp(15px,1.6vw,17px);color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:14px}
#faq summary::-webkit-details-marker{display:none}
#faq summary::after{content:"+";font-size:24px;line-height:1;color:var(--accent-text);transition:transform .2s;flex:0 0 auto}
#faq .faq-item[open] summary::after{transform:rotate(45deg)}
#faq .faq-a{padding:0 22px 20px;color:var(--ink-soft);line-height:1.65;font-size:15.5px}

/* --- Sous-menus déroulants (desktop) --- */
.nav .links{align-items:center}
.nav .links .nav-item{position:relative;display:flex;align-items:center}
.nav .links .nav-item>a{display:inline-flex;align-items:center;gap:6px}
.nav .links .has-sub>a::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-1px);opacity:.55;transition:transform .18s}
.nav .links .has-sub:hover>a::after,.nav .links .has-sub:focus-within>a::after{transform:rotate(225deg) translateY(2px);opacity:.9}
.nav .links .has-sub::after{content:"";position:absolute;top:100%;left:-10px;right:-10px;height:14px}
.nav .links .submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:236px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 44px rgba(30,26,20,.16);padding:8px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s;z-index:60}
.nav .links .has-sub:hover .submenu,.nav .links .has-sub:focus-within .submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(6px)}
.nav .links .submenu a{padding:9px 12px;border-radius:9px;font-size:13.5px;white-space:nowrap;color:var(--ink-soft)}
.nav .links .submenu a:hover{background:var(--cream);color:var(--accent-text)}
@media (max-width:900px){
  .nav .links .has-sub>a::after{display:none}
  .nav .links .submenu{position:static;transform:none;opacity:1;box-shadow:none;border:none;background:transparent;padding:0 0 6px 14px;min-width:0}
  .nav.open .links .submenu{visibility:visible;pointer-events:auto}
  .nav .links .submenu a{padding:10px 2px;font-size:14.5px;color:var(--muted);border-bottom:none}
}
/* ancrage : ne pas masquer la cible sous le nav fixe */
[id^="svc-"],[id^="menu-"]{scroll-margin-top:96px}

/* --- Panneaux dépliables (prestations + plats) --- */
[data-exp]{cursor:pointer}
[data-exp]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.detail-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.open>.detail-panel{grid-template-rows:1fr}
.detail-panel>.detail-inner{overflow:hidden;min-height:0}
.detail-inner{padding-top:14px;margin-top:16px;border-top:1px solid color-mix(in srgb, currentColor 22%, transparent)}
.detail-title{font-size:11.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.55;margin-bottom:10px;font-weight:600}
.detail-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.detail-list li{font-size:13.5px;line-height:1.2;padding:6px 12px;border:1px solid color-mix(in srgb, currentColor 22%, transparent);border-radius:999px;opacity:.92}
.detail-more{margin:11px 0 0;font-size:12.5px;font-style:italic;opacity:.6}
/* menu-item : le panneau occupe toute la largeur de la rangée */
.menu-item .detail-panel{grid-column:1 / -1}
.menu-item .detail-inner{margin-top:14px;padding-top:12px}
/* flèche ronde des prestations : pivote à l'ouverture */
.service .meta .arrow{transition:transform .3s ease}
.service.open .meta .arrow,.service.open:hover .meta .arrow{transform:rotate(90deg)}
/* chevron des plats */
.mi-chev{display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:9px;opacity:.5;transition:transform .3s ease;vertical-align:middle}
.menu-item.open .mi-chev{transform:rotate(225deg)}
.menu-item[data-exp]:hover .name{color:var(--accent)}


/* ===== utility classes (replacing inline style="" attributes for CSP) ===== */
.hidden{ display:none; }
.footer-brand{ display:flex; align-items:center; gap:10px; }
.footer-brand-name{ font-family:'Fraunces',serif; font-weight:700; font-size:20px; }
.text-accent{ color:var(--accent-text); }
.footer-logo-mark{ height:42px; width:auto; filter:invert(1) brightness(1.3); }
.legal-links-row{ display:flex; gap:18px; flex-wrap:wrap; }
.mb-14{ margin-bottom:14px; }
.img-cover-r16{ width:100%; height:100%; object-fit:cover; border-radius:16px; }
.img-cover-center{ width:100%; height:100%; object-fit:cover; object-position:center; }
.svc-traiteur-bg{ background-color: rgb(30, 26, 20); }
