:root{
    --noir:#0d0b0a;
    --charbon:#16120f;
    --charbon-2:#1e1814;
    --or:#c79a45;
    --or-clair:#e6cd92;
    --or-pale:#f0dfb4;
    --rouge:#7d1a1a;
    --rouge-vif:#9c2222;
    --creme:#f4ece0;
    --gris:#bdb5aa;
    --gris-fonce:#6b6359;
    --serif:'Playfair Display',Georgia,serif;
    --serif-display:'Cormorant Garamond',Georgia,serif;
    --sans:'Jost',sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--sans);
    background:var(--noir);
    color:var(--creme);
    line-height:1.6;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  /* grain overlay */
  body::after{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.04;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  ::selection{background:var(--or);color:var(--noir)}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}

  .wrap{width:90%;max-width:1180px;margin:0 auto}
  .eyebrow{
    font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;
    color:var(--or);font-weight:500;display:inline-block;
  }
  .eyebrow::before{content:"— ";color:var(--or);opacity:.6}
  .eyebrow::after{content:" —";color:var(--or);opacity:.6}
  h2.title{
    font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,5vw,3.6rem);
    line-height:1.05;letter-spacing:.01em;margin:.5rem 0 1.4rem;
  }
  .title em{font-style:italic;color:var(--or-clair)}

  /* ---------- NAV ---------- */
  #hdr{
    position:fixed;top:0;left:0;width:100%;z-index:1000;
    transition:padding .5s ease,border-color .5s ease;
    padding:1.4rem 0;border-bottom:1px solid transparent;
  }
  #hdr::before{
    content:"";position:absolute;inset:0;z-index:-1;
    background:transparent;backdrop-filter:none;
    transition:background .5s ease,backdrop-filter .5s ease;
  }
  #hdr.scrolled::before{
    background:rgba(13,11,10,.86);backdrop-filter:blur(12px);
  }
  #hdr.scrolled{
    padding:.7rem 0;border-bottom:1px solid rgba(199,154,69,.18);
  }
  #hdr .wrap {
    max-width: 1380px;
    width: 94%;
  }
  .nav{display:flex;align-items:center;justify-content:space-between}
  .brand{display:flex;align-items:center;gap:.8rem;flex-shrink:0}
  .brand img{width:46px;height:46px;border-radius:50%;border:1px solid rgba(199,154,69,.35);transition:width .4s,height .4s}
  #hdr.scrolled .brand img{width:40px;height:40px}
  .brand .bn{font-family:var(--serif);font-size:1.35rem;letter-spacing:.18em;line-height:1;text-transform:uppercase;color:var(--creme)}
  .brand .bn small{display:block;font-family:var(--sans);font-size:.52rem;letter-spacing:.42em;color:var(--or);margin-top:3px}
  .links{display:flex;gap:clamp(0.7rem, 1.4vw, 1.8rem);align-items:center;margin-left:auto;flex-shrink:0}
  .links a{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--creme);position:relative;padding:.3rem 0;transition:color .3s;white-space:nowrap}
  .links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--or);transition:width .35s}
  .links a:hover, .links a.active{color:var(--or-clair)}
  .links a:hover::after, .links a.active::after{width:100%}

  /* Admin link in burger menu (mobile only) */
  .nav-admin-mobile { display: none; }

  /* Admin gear icon */
  .admin-gear {
    margin-left: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gris);
    opacity: 0.5;
    transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1), color 0.3s, opacity 0.3s;
    z-index: 1001;
  }
  .admin-gear svg {
    width: 20px;
    height: 20px;
    stroke-width: 1.5;
    stroke: currentColor;
    fill: none;
  }
  .admin-gear:hover {
    color: var(--or-clair);
    opacity: 1;
    transform: rotate(60deg);
  }
  .nav-cta{
    border:1px solid var(--or);color:var(--or-clair)!important;
    padding:.55rem 1.2rem!important;border-radius:2px;letter-spacing:.14em;
    transition:background .35s,color .35s;
  }
  .nav-cta::after{display:none}
  .nav-cta:hover{background:var(--or);color:var(--noir)!important}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;z-index:1100}
  .burger span{width:26px;height:2px;background:var(--creme);transition:.3s}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* ---------- HERO ---------- */
  .hero{
    min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;
    position:relative;padding:7rem 0 4rem;
    background:
      radial-gradient(ellipse 70% 55% at 50% 38%,rgba(125,26,26,.28),transparent 60%),
      radial-gradient(ellipse 80% 60% at 50% 50%,rgba(199,154,69,.10),transparent 65%),
      var(--noir);
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background-image:
      linear-gradient(transparent 97%,rgba(199,154,69,.05) 97%),
      linear-gradient(90deg,transparent 97%,rgba(199,154,69,.05) 97%);
    background-size:60px 60px;mask-image:radial-gradient(ellipse 70% 70% at 50% 45%,#000,transparent 75%);
    pointer-events:none;
  }
  .hero-inner{position:relative;z-index:2;padding-bottom:5rem}
  .hero-logo{width:150px;height:150px;margin:0 auto 1.8rem;border-radius:50%;border:1px solid rgba(199,154,69,.3);box-shadow:0 0 60px rgba(199,154,69,.18)}
  .hero h1{
    font-family:var(--serif-display);font-weight:500;font-size:clamp(3rem,9vw,6.5rem);
    letter-spacing:.04em;line-height:.95;text-transform:uppercase;margin-bottom:.4rem;
  }
  .hero h1 .v{color:var(--or-clair)}
  .hero .sub{font-family:var(--sans);font-size:.78rem;letter-spacing:.5em;text-transform:uppercase;color:var(--or);margin-bottom:2rem}
  .hero .slogan{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,3vw,1.9rem);color:var(--creme);opacity:.92;margin-bottom:2.6rem}
  .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
  .hero-pro-link{margin-top:1.4rem;text-align:center}
  .hero-pro-cta{font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(244,236,224,.55);transition:.3s}
  .hero-pro-cta:hover{color:var(--or)}
  .hero-pro-cta span{color:var(--or);font-weight:500}
  .btn{
    font-family:var(--sans);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;
    padding:.95rem 2rem;border-radius:2px;cursor:pointer;transition:.35s;display:inline-flex;align-items:center;gap:.6rem;
  }
  .btn-gold{background:linear-gradient(135deg,var(--or),var(--or-clair));color:var(--noir);font-weight:500;border:1px solid var(--or)}
  .btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(199,154,69,.3)}
  .btn-ghost{border:1px solid rgba(244,236,224,.35);color:var(--creme)}
  .btn-ghost:hover{border-color:var(--or);color:var(--or-clair)}
  .hero{user-select:none}
  .scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;color:var(--or);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;animation:bob 2.4s ease-in-out infinite}
  .scroll-cue span{display:block;width:1px;height:34px;background:linear-gradient(var(--or),transparent);margin:.6rem auto 0}
  @keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

  /* reveal */
  .reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .hero .reveal{transition-delay:var(--d,0s)}

  section{position:relative}
  .pad{padding:6.5rem 0}

  /* ---------- PILIERS ---------- */
  .piliers{background:var(--charbon);border-top:1px solid rgba(199,154,69,.12);border-bottom:1px solid rgba(199,154,69,.12)}
  .pil-grid{display:grid;grid-template-columns:repeat(3,1fr)}
  .pil{padding:3.2rem 2rem;text-align:center;border-right:1px solid rgba(199,154,69,.12)}
  .pil:last-child{border-right:none}
  .pil .ic{font-family:var(--serif);font-size:2rem;color:var(--or);margin-bottom:1rem;display:block}
  .pil svg{width:42px;height:42px;stroke:var(--or);fill:none;stroke-width:1.2;margin:0 auto 1.1rem;display:block}
  .pil h3{font-family:var(--serif);font-size:1.5rem;font-weight:500;margin-bottom:.5rem;letter-spacing:.02em}
  .pil p{font-size:.86rem;color:var(--gris);max-width:230px;margin:0 auto}

  /* ---------- MAISON ---------- */
  .maison .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:4.5rem;align-items:center}
  .maison p{color:var(--gris);margin-bottom:1.1rem;font-size:1rem}
  .maison p strong{color:var(--creme);font-weight:400}
  .maison .signature{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--or-clair);margin-top:1.4rem}
  .maison-visual{position:relative;aspect-ratio:4/5;border-radius:3px;overflow:hidden;border:1px solid rgba(199,154,69,.2)}
  .maison-visual img{width:100%;height:100%;object-fit:cover;object-position:65% center;filter:saturate(1.05)}
  .maison-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,11,10,.55),transparent 55%)}
  .maison-visual .badge{
    position:absolute;bottom:1.4rem;left:1.4rem;z-index:2;
    font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--or-pale);
  }
  .frame-tag{display:inline-block;border:1px solid var(--or);color:var(--or-clair);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;padding:.45rem .9rem;margin-bottom:1.6rem}

  /* ---------- ARTISAN PORTRAIT TEASER SECTION ---------- */
  .artisan-section-teaser {
    background: var(--noir);
    border-top: 1px solid rgba(199,154,69,.08);
  }
  .artisan-card-box {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 4.5rem;
    background: var(--charbon);
    border: 1px solid rgba(199,154,69,.15);
    border-radius: 4px;
    padding: 4rem;
    position: relative;
    box-shadow: 0 15px 40px rgba(0,0,0,.3);
  }
  .artisan-card-box::before {
    content: "";
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(to bottom, var(--or), var(--or-clair));
  }
  .artisan-card-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }
  .artisan-card-content h2.title {
    margin-bottom: 1.2rem;
    font-size: 2.2rem;
    text-align: left;
    line-height: 1.2;
  }
  .artisan-card-content .lead-text {
    font-size: 1.1rem;
    color: var(--creme);
    line-height: 1.6;
    margin-bottom: 1rem;
    font-weight: 300;
  }
  .artisan-card-content .desc-text {
    font-size: 0.92rem;
    color: var(--gris);
    line-height: 1.6;
    margin-bottom: 2rem;
  }
  .artisan-card-awards {
    border-left: 1px solid rgba(199,154,69,.12);
    padding-left: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .artisan-card-awards h3 {
    font-family: var(--serif);
    font-size: 1.4rem;
    color: var(--or-clair);
    margin-bottom: 1.8rem;
    font-weight: 500;
    letter-spacing: 0.02em;
  }
  .teaser-awards-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .teaser-awards-list li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1.4rem;
  }
  .teaser-awards-list li:last-child {
    margin-bottom: 0;
  }
  .teaser-awards-list .award-badge {
    font-size: 1.6rem;
    margin-right: 1.2rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    width: 40px;
    background: rgba(199,154,69,.06);
    border: 1px solid rgba(199,154,69,.12);
    border-radius: 50%;
  }
  .teaser-awards-list li strong {
    display: block;
    font-family: var(--sans);
    font-size: 0.95rem;
    color: var(--creme);
    font-weight: 500;
    margin-bottom: 0.15rem;
  }
  .teaser-awards-list li p {
    font-size: 0.82rem;
    color: var(--gris);
    margin: 0;
  }

  /* ---------- ARTISAN PAGE (DÉDIÉE) ---------- */
  .artisan-page {
    padding-top: 9.5rem;
    background: var(--noir);
  }
  .page-head {
    text-align: center;
    margin-bottom: 4.5rem;
  }
  .page-title {
    font-family: var(--serif);
    font-size: clamp(2.4rem, 6vw, 4rem);
    font-weight: 500;
    line-height: 1.1;
    margin-top: 0.5rem;
  }
  .page-title em {
    font-style: italic;
    color: var(--or-clair);
  }
  .page-subtitle {
    font-size: 1.05rem;
    color: var(--gris);
    margin-top: 0.8rem;
    font-family: var(--serif);
    font-style: italic;
  }
  .btn-print-cgv {
    display: inline-flex; align-items: center; gap: .55rem;
    margin-top: 1.4rem;
    font-family: var(--sans); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--gris); border: 1px solid rgba(255,255,255,.18); background: none;
    padding: .6rem 1.4rem; border-radius: 2px; cursor: pointer; transition: .3s;
  }
  .btn-print-cgv:hover { color: var(--or-clair); border-color: var(--or); }
  
  .artisan-content-grid {
    display: grid;
    grid-template-columns: 1.25fr 0.75fr;
    gap: 4.5rem;
    align-items: start;
  }
  
  .artisan-biography h2 {
    font-family: var(--serif);
    font-size: 1.8rem;
    color: var(--or-clair);
    margin: 2.2rem 0 1rem;
    font-weight: 500;
  }
  .artisan-biography p {
    font-size: 1rem;
    color: var(--gris);
    line-height: 1.65;
    margin-bottom: 1.4rem;
  }
  .artisan-biography .lead {
    font-size: 1.15rem;
    line-height: 1.6;
    color: var(--creme);
    margin-bottom: 2rem;
    font-family: var(--serif);
  }
  .artisan-biography strong {
    color: var(--creme);
    font-weight: 500;
  }
  
  .bio-quote {
    border-left: 2px solid var(--or);
    padding: 0.5rem 0 0.5rem 1.6rem;
    margin: 2.5rem 0;
  }
  .bio-quote p {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.25rem;
    color: var(--creme);
    line-height: 1.4;
    margin-bottom: 0.5rem;
  }
  .bio-quote cite {
    display: block;
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--or);
    font-style: normal;
  }
  
  /* Timeline Styles */
  .artisan-timeline {
    background: var(--charbon-2);
    border: 1px solid rgba(199, 154, 69, 0.18);
    border-radius: 4px;
    padding: 2.6rem 2.2rem;
    position: sticky;
    top: 110px;
    box-shadow: 0 20px 50px rgba(13,11,10,0.5);
  }
  .timeline-title {
    font-family: var(--serif);
    font-size: 1.4rem;
    color: var(--creme);
    margin-bottom: 2rem;
    border-bottom: 1px solid rgba(199, 154, 69, 0.15);
    padding-bottom: 0.8rem;
    letter-spacing: 0.05em;
  }
  .timeline-flow {
    position: relative;
    padding-left: 2rem;
  }
  .timeline-flow::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 6px;
    bottom: 6px;
    width: 1px;
    background: linear-gradient(to bottom, var(--or) 70%, transparent);
  }
  .timeline-item {
    position: relative;
    margin-bottom: 1.8rem;
  }
  .timeline-item:last-child {
    margin-bottom: 0;
  }
  .timeline-item::before {
    content: "";
    position: absolute;
    left: -28px;
    top: 6px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--or-clair);
    border: 2px solid var(--charbon-2);
    box-shadow: 0 0 0 3px rgba(199, 154, 69, 0.2);
    transition: transform 0.3s;
  }
  .timeline-item:hover::before {
    transform: scale(1.3);
    background: var(--or-pale);
  }
  .t-year {
    font-family: var(--sans);
    font-size: 0.78rem;
    color: var(--or);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.2rem;
  }
  .t-content h4 {
    font-family: var(--serif);
    font-size: 1.05rem;
    color: var(--creme);
    font-weight: 500;
    margin-bottom: 0.3rem;
  }
  .t-content p {
    font-size: 0.82rem;
    color: var(--gris);
    line-height: 1.4;
  }
  
  /* Footer CTA */
  .artisan-footer-cta {
    text-align: center;
    margin-top: 6rem;
    padding-top: 4rem;
    border-top: 1px solid rgba(199, 154, 69, 0.15);
  }
  .artisan-footer-cta p {
    font-family: var(--serif);
    font-size: 1.35rem;
    font-style: italic;
    color: var(--creme);
    margin-bottom: 2rem;
  }
  .cta-buttons {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
  }

  /* ---------- BANDE PARALLAX ---------- */
  .band{
    position:relative;
    min-height:46vh;display:flex;align-items:center;justify-content:center;text-align:center;
    background:linear-gradient(rgba(13,11,10,.74),rgba(13,11,10,.74)),url('../img/plateauviande.jpg');
    background-size:cover;background-position:center;background-attachment:fixed;
  }
  .band::before, .band::after{
    content:"";position:absolute;left:0;width:100%;height:1px;
    background:linear-gradient(90deg, transparent, rgba(199,154,69,.35) 50%, transparent);
  }
  .band::before{top:0}
  .band::after{bottom:0}
  .band-ornament{display:block;font-family:var(--sans);font-size:0.9rem;color:var(--or);margin-bottom:1.5rem;opacity:0.85;letter-spacing:0.15em}
  .band blockquote{font-family:var(--serif-display);font-style:italic;font-size:clamp(1.6rem,4vw,2.8rem);color:var(--creme);max-width:760px;padding:0 1.5rem;line-height:1.3}
  .band cite{display:block;font-family:var(--sans);font-style:normal;font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--or);margin-top:1.4rem}

  /* ---------- PRODUITS ---------- */
  .produits{background:var(--charbon)}
  .prod-head{text-align:center;margin-bottom:3.4rem}
  .prod-subtitle{max-width:640px;margin:1.2rem auto 0;color:var(--gris);font-size:0.95rem;line-height:1.6}
  .prod-subtitle a{color:var(--or-clair);text-decoration:underline;font-weight:500;transition:color .3s}
  .prod-subtitle a:hover{color:var(--or-pale)}
  .prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
  .card{
    background:linear-gradient(160deg,var(--charbon-2),#120e0b);
    border:1px solid rgba(199,154,69,.16);border-radius:3px;padding:2.4rem 2.2rem;
    position:relative;overflow:hidden;transition:border-color .4s,transform .4s;
    display:flex;flex-direction:column;
  }
  .card::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--or),transparent);transform:scaleX(0);transform-origin:left;transition:transform .5s}
  .card:hover{transform:translateY(-4px);border-color:rgba(199,154,69,.4)}
  .card:hover::before{transform:scaleX(1)}
  .card .num{font-family:var(--serif);font-size:1rem;color:var(--gris-fonce);letter-spacing:.1em}
  .card h3{font-family:var(--serif);font-size:1.9rem;font-weight:500;margin:.2rem 0 1rem;letter-spacing:.01em}
  .card-intro{font-size:0.86rem;color:var(--gris);margin-bottom:1.4rem;line-height:1.5}
  
  .sub-category h4 {
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--or-clair);
    margin-bottom: 0.6rem;
    border-bottom: 1px solid rgba(199,154,69,.12);
    padding-bottom: 0.2rem;
  }
  .prod-cta-row{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}
  .prod-cta-row .btn{font-size:.75rem;padding:.75rem 1.6rem}
  .prod-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem .6rem}
  .prod-list li{font-size:.78rem;color:var(--gris);border:1px solid rgba(169,159,146,.22);padding:.32rem .7rem;border-radius:2px;transition:.3s}
  .card:hover .prod-list li{border-color:rgba(199,154,69,.25);color:var(--creme)}
  .prod-list li.prod-tag-new{border-style:dashed;border-color:rgba(229,197,122,.3);color:var(--or-clair)}
  .prod-list li.prod-tag-premium{border-color:rgba(229,197,122,.35);color:var(--or-clair);font-style:italic}
  .prod-note{display:block;font-size:.65rem;color:var(--gris-fonce);font-style:italic;margin-top:.6rem}
  .sub-category-new h4{color:var(--or-clair);border-color:rgba(199,154,69,.22)}

  /* ---------- INFOS ---------- */
  .infos .wrap{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
  .panel{background:var(--charbon-2);border:1px solid rgba(199,154,69,.16);border-radius:3px;padding:2.6rem}
  .panel h3{font-family:var(--serif);font-size:1.7rem;font-weight:500;margin-bottom:1.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
  .status{font-family:var(--sans);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;padding:.4rem .8rem;border-radius:2px;font-weight:500;white-space:nowrap}
  .status.open{background:rgba(76,140,74,.15);color:#7fce7c;border:1px solid rgba(76,140,74,.4)}
  .status.closed{background:rgba(156,34,34,.15);color:#e08585;border:1px solid rgba(156,34,34,.4)}
  .hours{list-style:none}
  .hours li{display:flex;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid rgba(169,159,146,.12);font-size:.92rem}
  .hours li:last-child{border-bottom:none}
  .hours .day{color:var(--creme);letter-spacing:.04em}
  .hours .hr{color:var(--gris);font-size:.86rem;text-align:right}
  .hours li.today{color:var(--or-clair)}
  .hours li.today .day,.hours li.today .hr{color:var(--or-clair)}
  .hours .ferme{color:var(--rouge-vif)}
  .hours li.today.special-day .day::after{content:" ★";font-size:.7rem;color:var(--or)}
  .special-badge{display:inline-block;margin-left:.5rem;font-size:.7rem;color:var(--or);font-style:italic}
  .hours-section-title{font-family:var(--sans);font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:var(--or);margin-bottom:.6rem;margin-top:0}
  .hours-section-title--special{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid rgba(199,154,69,.25);position:relative}
  .hours-section-title--special::before{content:'';position:absolute;top:-1px;left:0;width:32px;height:1px;background:var(--or)}
  .hours-speciaux{margin-top:0}
  .hours-special-item{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.45rem 0;border-bottom:1px solid rgba(169,159,146,.07);font-size:.82rem}
  .hours-special-item:last-child{border-bottom:none}
  .hours-special-date{color:var(--creme);flex-shrink:0}
  .hours-special-date em{color:var(--gris);font-style:italic}
  .hours-special-hr{color:var(--gris);text-align:right}
  .hours-special-hr.ferme{color:var(--rouge-vif)}
  .contact-list{list-style:none;margin-bottom:1.8rem}
  .contact-list li{display:flex;align-items:center;gap:1rem;padding:.7rem 0;font-size:.95rem;color:var(--gris)}
  .contact-list svg{width:20px;height:20px;stroke:var(--or);fill:none;stroke-width:1.4;flex-shrink:0}
  .contact-list a:hover{color:var(--or-clair)}
  .contact-btns{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.8rem}
  .map{border-radius:3px;overflow:hidden;border:1px solid rgba(199,159,146,.18);height:200px;filter:grayscale(.3) contrast(1.05)}
  .map iframe{width:100%;height:100%;border:0;display:block}
  .socials{display:flex;gap:1rem;margin-top:.4rem}
  .socials a{width:42px;height:42px;border:1px solid rgba(199,154,69,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.35s}
  .socials a:hover{background:var(--or);border-color:var(--or)}
  .socials svg{width:18px;height:18px;fill:var(--or-clair);transition:.35s}
  .socials a:hover svg{fill:var(--noir)}

  /* ---------- FOOTER ---------- */
  footer{background:var(--noir);border-top:1px solid rgba(199,154,69,.14);padding:3.4rem 0 2rem;text-align:center}
  footer .flogo{width:70px;height:70px;border-radius:50%;margin:0 auto 1.2rem;border:1px solid rgba(199,154,69,.3)}
  footer .fname{font-family:var(--serif);font-size:1.5rem;letter-spacing:.2em;text-transform:uppercase}
  footer .ftag{font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--or);margin:.4rem 0 1.6rem}
  footer .fcopy{font-size:.78rem;color:var(--gris-fonce);margin-top:1.4rem}
  footer .fcopy a{color:var(--gris)}
  footer .fmediation{display:block;font-size:.68rem;color:var(--gris-fonce);opacity:.65;margin-top:.8rem}

  /* ---------- RESPONSIVE ---------- */
  @media(max-width:1200px){
    .links{
      position:fixed;inset:0 0 0 auto;width:78%;max-width:340px;background:var(--charbon);
      flex-direction:column;justify-content:center;gap:2rem;transform:translateX(100%);
      transition:transform .45s cubic-bezier(.6,.05,.2,1);border-left:1px solid rgba(199,154,69,.2);
    }
    .links.open{transform:translateX(0)}
    .links a{font-size:1rem}
    .burger{display:flex}
    .admin-gear { display: none; }
    .nav-admin-mobile {
      display: block;
      font-size: 0.75rem;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      color: var(--gris) !important;
      opacity: 0.6;
      margin-top: 1rem;
      padding-top: 1.5rem;
      border-top: 1px solid rgba(199,154,69,.15);
    }
    .nav-admin-mobile:hover {
      color: var(--or-clair) !important;
      opacity: 1;
    }
    .pil-grid{grid-template-columns:1fr}
    .pil{border-right:none;border-bottom:1px solid rgba(199,154,69,.12)}
    .pil:last-child{border-bottom:none}
    .maison .wrap{grid-template-columns:1fr;gap:2.6rem}
    .maison-visual{aspect-ratio:16/11;order:-1}
    .artisan-content-grid{grid-template-columns:1fr;gap:3.5rem}
    .artisan-timeline{position:static}
    .artisan-card-box{grid-template-columns:1fr;padding:2.5rem;gap:3rem}
    .artisan-card-awards{border-left:none;border-top:1px solid rgba(199,154,69,.12);padding-left:0;padding-top:2.5rem}
    .prod-grid{grid-template-columns:1fr}
    .infos .wrap{grid-template-columns:1fr}
    .band{background-attachment:scroll}
  }
  @media(max-width:480px){
    .pad{padding:4.5rem 0}
    .panel{padding:1.8rem}
    .hero-cta{flex-direction:column}
    .btn{justify-content:center}
  }

  /* ---------- ACTUALITES PAGE ---------- */
  .actualites-page {
    padding-top: 9.5rem;
    background: var(--noir);
  }
  
  /* Filtres */
  .filters-container {
    display: flex;
    justify-content: center;
    gap: 1.2rem;
    margin-bottom: 3.5rem;
    flex-wrap: wrap;
  }
  .filter-btn {
    background: transparent;
    border: 1px solid rgba(169, 159, 146, 0.25);
    color: var(--gris);
    font-family: var(--sans);
    font-size: 0.78rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.65rem 1.4rem;
    cursor: pointer;
    transition: all 0.35s ease;
    border-radius: 2px;
  }
  .filter-btn:hover {
    border-color: var(--or-clair);
    color: var(--or-clair);
  }
  .filter-btn.active {
    background: var(--or);
    color: var(--noir);
    border-color: var(--or);
    box-shadow: 0 4px 15px rgba(199, 154, 69, 0.25);
  }
  
  /* Grille */
  .actu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 2.5rem;
    margin-bottom: 5rem;
    justify-content: center;
  }
  @media (max-width: 480px) {
    .actu-grid {
      grid-template-columns: 1fr;
      gap: 2rem;
    }
  }
  
  /* Carte Annonce */
  .actu-card {
    background: var(--charbon);
    border: 1px solid rgba(199, 154, 69, 0.12);
    border-radius: 3px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color 0.4s, transform 0.4s, box-shadow 0.4s;
    max-width: 440px;
    width: 100%;
    margin: 0 auto;
  }
  .actu-card:hover {
    transform: translateY(-6px);
    border-color: rgba(199, 154, 69, 0.4);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5);
  }
  
  /* Carte Image */
  .actu-card-image {
    position: relative;
    height: 350px;
    background: #070504;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-bottom: 1px solid rgba(199, 154, 69, 0.08);
  }
  .actu-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
  }
  .actu-card:hover .actu-card-image img {
    transform: scale(1.03);
  }
  .image-overlay {
    position: absolute;
    inset: 0;
    background: rgba(13, 11, 10, 0.72);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    backdrop-filter: blur(2px);
  }
  .actu-card-image:hover .image-overlay {
    opacity: 1;
  }
  .zoom-btn {
    background: var(--charbon-2);
    border: 1px solid var(--or);
    color: var(--or-clair);
    font-family: var(--sans);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.65rem 1.25rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: background 0.3s, color 0.3s;
    border-radius: 2px;
  }
  .zoom-btn svg {
    width: 14px;
    height: 14px;
  }
  .zoom-btn:hover {
    background: var(--or);
    color: var(--noir);
  }
  .promo-sticker {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--rouge);
    color: #fff;
    font-family: var(--sans);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.05em;
    padding: 0.45rem 1rem;
    border-radius: 3px;
    box-shadow: 0 4px 12px rgba(125, 26, 26, 0.4);
    z-index: 5;
  }
  
  /* Contenu de carte image */
  .actu-card-content {
    padding: 2rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
  }
  .actu-badge {
    align-self: flex-start;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-weight: 600;
    padding: 0.25rem 0.65rem;
    border-radius: 2px;
    margin-bottom: 0.8rem;
  }
  .actu-badge.actualite {
    background: rgba(199, 154, 69, 0.1);
    color: var(--or-clair);
    border: 1px solid rgba(199, 154, 69, 0.25);
  }
  .actu-badge.promotion {
    background: rgba(125, 26, 26, 0.12);
    color: var(--or-pale);
    border: 1px solid var(--rouge);
  }
  .actu-date {
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gris-fonce);
    margin-bottom: 0.8rem;
  }
  .actu-card-content h3 {
    font-family: var(--serif);
    font-size: 1.5rem;
    color: var(--creme);
    margin-bottom: 0.8rem;
    font-weight: 600;
    line-height: 1.25;
  }
  .actu-card-content p {
    font-size: 0.88rem;
    color: #c9c1b5;
    line-height: 1.6;
    margin-bottom: 1.4rem;
    flex-grow: 1;
  }
  .actu-validity {
    font-size: 0.75rem;
    color: var(--or-pale);
    border-top: 1px solid rgba(199, 154, 69, 0.1);
    padding-top: 0.8rem;
    margin-bottom: 1.4rem;
    font-style: italic;
  }
  .actu-cta {
    margin-top: auto;
  }
  .actu-cta .btn {
    width: 100%;
    padding: 0.85rem 1rem;
    font-size: 0.75rem;
    justify-content: center;
  }
  
  /* Format Textuel Pur */
  .actu-card-textual {
    padding: 2.2rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    justify-content: center;
    position: relative;
    background: linear-gradient(145deg, var(--charbon-2), #120e0b);
  }
  .actu-card-textual::after {
    content: "";
    position: absolute;
    inset: 1.1rem;
    border: 1px dashed rgba(199, 154, 69, 0.22);
    pointer-events: none;
    transition: border-color 0.4s;
  }
  .actu-card:hover .actu-card-textual::after {
    border-color: rgba(199, 154, 69, 0.5);
  }
  .textual-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    align-items: center;
    width: 100%;
  }
  .giant-discount {
    font-family: var(--serif);
    font-size: 3.5rem;
    color: var(--or-clair);
    line-height: 1.1;
    margin: 1.2rem 0;
    font-weight: 700;
    letter-spacing: -0.02em;
  }
  .theme-promo .giant-discount {
    color: var(--or-clair);
    text-shadow: 0 4px 15px rgba(199, 154, 69, 0.15);
  }
  .giant-icon {
    font-size: 2.5rem;
    color: var(--or);
    margin: 1.2rem 0;
  }
  .actu-card-textual h3 {
    font-family: var(--serif);
    font-size: 1.55rem;
    color: var(--creme);
    margin-bottom: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    max-width: 90%;
  }
  .actu-card-textual .divider {
    font-size: 0.8rem;
    color: var(--or);
    margin-bottom: 1.2rem;
    opacity: 0.6;
  }
  .textual-desc {
    font-size: 0.88rem;
    color: #c9c1b5;
    line-height: 1.6;
    margin-bottom: 1.6rem;
    max-width: 90%;
    flex-grow: 1;
  }
  .textual-footer {
    margin-bottom: 1.6rem;
    border-top: 1px solid rgba(169, 159, 146, 0.1);
    padding-top: 0.8rem;
    width: 80%;
  }
  .textual-footer .actu-date {
    display: block;
    margin-bottom: 0.2rem;
    font-family: var(--sans);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gris-fonce);
  }
  .textual-footer .actu-validity {
    border-top: none;
    padding-top: 0;
    margin-bottom: 0;
    display: block;
  }
  
  /* Lightbox */
  .lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(13, 11, 10, 0.95);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
    padding: 2rem;
  }
  .lightbox.open {
    opacity: 1;
    pointer-events: auto;
  }
  .lightbox-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    color: var(--creme);
    font-size: 2.5rem;
    cursor: pointer;
    transition: color 0.3s;
    user-select: none;
    line-height: 1;
    z-index: 2100;
  }
  .lightbox-close:hover {
    color: var(--or-clair);
  }
  .lightbox-content {
    max-width: 100%;
    max-height: 88vh;
    object-fit: contain;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
    border: 1px solid rgba(199, 154, 69, 0.2);
    border-radius: 2px;
    transform: scale(0.95);
    transition: transform 0.35s ease;
  }
  .lightbox.open .lightbox-content {
    transform: scale(1);
  }
  @media (max-width: 576px) {
    .lightbox {
      padding: 1rem;
    }
    .lightbox-close {
      top: 1rem;
      right: 1rem;
      font-size: 2.2rem;
    }
  }
  
  /* Aucun élément */
  .no-items {
    padding: 4rem 0;
    display: flex;
    justify-content: center;
  }
  .no-items-card {
    background: var(--charbon);
    border: 1px solid rgba(199, 154, 69, 0.16);
    border-radius: 4px;
    padding: 3rem 2rem;
    max-width: 580px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  }
  .no-items-icon {
    font-size: 2rem;
    color: var(--or);
    display: block;
    margin-bottom: 1.2rem;
  }
  .no-items h3 {
    font-family: var(--serif);
    font-size: 1.7rem;
    margin-bottom: 0.8rem;
    font-weight: 500;
  }
  .no-items p {
    font-size: 0.92rem;
    color: var(--gris);
    line-height: 1.6;
    margin-bottom: 1.8rem;
  }
  .no-items-socials {
    display: flex;
    justify-content: center;
    gap: 1.2rem;
  }

  /* ---------- ACCUEIL ACTUALITES DYNAMIQUES ---------- */
  .home-actus {
    background: var(--charbon);
    border-top: 1px solid rgba(199, 154, 69, 0.12);
    border-bottom: 1px solid rgba(199, 154, 69, 0.12);
  }
  .home-actu-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
    margin-top: 3.5rem;
  }
  .home-actu-card {
    background: var(--charbon-2);
    border: 1px solid rgba(199, 154, 69, 0.15);
    border-radius: 3px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.4s, border-color 0.4s;
    width: 100%;
    max-width: 360px;
  }
  .home-actu-card:hover {
    transform: translateY(-4px);
    border-color: rgba(199, 154, 69, 0.35);
  }
  .home-actu-img {
    height: 220px;
    overflow: hidden;
    position: relative;
    background: #000;
  }
  .home-actu-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
  }
  .home-actu-card:hover .home-actu-img img {
    transform: scale(1.05);
  }
  .home-promo-badge {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    background: var(--rouge);
    color: #fff;
    font-family: var(--sans);
    font-size: 0.92rem;
    font-weight: 700;
    padding: 0.35rem 0.8rem;
    border-radius: 3px;
    letter-spacing: 0.05em;
    box-shadow: 0 4px 10px rgba(125, 26, 26, 0.35);
  }
  .home-actu-textual-badge {
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1f1a16, #120e0b);
    position: relative;
    border-bottom: 1px solid rgba(199, 154, 69, 0.1);
  }
  .home-promo-text-badge {
    font-family: var(--serif);
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--or-clair);
    letter-spacing: -0.01em;
  }
  .home-promo-icon {
    font-size: 2rem;
    color: var(--or);
  }
  .home-actu-info {
    padding: 1.6rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
  }
  .home-actu-tag {
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-weight: 500;
    margin-bottom: 0.6rem;
    display: inline-block;
  }
  .home-actu-tag.actualite {
    color: var(--or);
  }
  .home-actu-tag.promotion {
    color: var(--rouge-vif);
  }
  .home-actu-info h3 {
    font-family: var(--serif);
    font-size: 1.35rem;
    color: var(--creme);
    margin-bottom: 0.6rem;
    font-weight: 600;
    line-height: 1.25;
  }
  .home-actu-info p {
    font-size: 0.85rem;
    color: var(--gris);
    line-height: 1.5;
    margin-bottom: 1.2rem;
    flex-grow: 1;
  }
  .read-more {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--or-clair);
    font-weight: 500;
    align-self: flex-start;
    transition: color 0.3s, transform 0.3s;
  }
  .read-more:hover {
    color: var(--or-pale);
    transform: translateX(3px);
  }
  .home-actu-cta {
    text-align: center;
    margin-top: 3.5rem;
  }

  /* Scroll to top button */
  .scroll-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 46px;
    height: 46px;
    background: var(--charbon-2);
    border: 1px solid rgba(199, 154, 69, 0.3);
    color: var(--or-clair);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease, background 0.3s, color 0.3s, border-color 0.3s;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
  }
  .scroll-to-top svg {
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
  }
  .scroll-to-top:hover {
    background: var(--or);
    color: var(--noir);
    border-color: var(--or);
    transform: translateY(-2px);
  }
  .scroll-to-top:hover svg {
    transform: translateY(-2px);
  }
  .scroll-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  
  @media (max-width: 768px) {
    .scroll-to-top {
      bottom: 1.5rem;
      right: 1.5rem;
      width: 40px;
      height: 40px;
    }
    .scroll-to-top svg {
      width: 18px;
      height: 18px;
    }
  }
/* ===================== CGV PAGE ===================== */
.cgv-page { padding-top: 9rem; }
.cgv-page .wrap { max-width: 820px; }

.cgv-content { margin-top: 3rem; }

.cgv-article {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.cgv-article:last-of-type { border-bottom: none; }

.cgv-article h2 {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--or-clair);
  margin-bottom: 1rem;
  letter-spacing: .03em;
}

.cgv-article p,
.cgv-article li {
  font-size: .93rem;
  color: var(--gris);
  line-height: 1.75;
  margin-bottom: .75rem;
}
.cgv-article p:last-child { margin-bottom: 0; }

.cgv-article ul {
  padding-left: 1.4rem;
  margin-bottom: .75rem;
}
.cgv-article li { margin-bottom: .4rem; }

.cgv-article strong { color: var(--creme); font-weight: 500; }
.cgv-article a { color: var(--or); text-decoration: none; }
.cgv-article a:hover { text-decoration: underline; }

.cgv-placeholder {
  background: rgba(199,154,69,.15);
  border: 1px dashed rgba(199,154,69,.4);
  border-radius: 3px;
  padding: 1px 6px;
  color: var(--or-clair);
  font-size: .85rem;
  font-style: italic;
}

.cgv-date {
  margin-top: 2rem;
  font-size: .8rem;
  color: var(--gris-fonce);
  font-style: italic;
}

@media (max-width: 768px) {
  .cgv-content { margin-top: 2rem; }
  .cgv-article {
    margin-bottom: 1.75rem;
    padding-bottom: 1.75rem;
  }
  .cgv-article h2 { font-size: .97rem; }
  .cgv-article p,
  .cgv-article li { font-size: .88rem; line-height: 1.65; }
}

@media (max-width: 480px) {
  .cgv-content { margin-top: 1.25rem; }
  .cgv-article {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
  }
  .cgv-article h2 { font-size: .92rem; margin-bottom: .6rem; }
  .cgv-article p,
  .cgv-article li { font-size: .85rem; }
  .cgv-placeholder { font-size: .8rem; }
}
/* ===================================================== */
