*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0}
img{display:block;max-width:100%}
::selection{background:var(--accent,#c0613a);color:var(--accent-ink,#fdf6ef)}

@keyframes tt-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

@media (max-width:880px){
  .navlinks{display:none !important}
  .nav-phone{display:none !important}   /* le burger remplace le bouton SMS sur mobile */
  .nav-region{display:none !important}
  .nav-logo{height:80px !important}
}
@media (max-width:780px){
  .hero-grid{grid-template-columns:1fr !important}
  .split-grid{grid-template-columns:1fr !important}
  .acces-grid{grid-template-columns:1fr !important}
  .hero-section{padding-top:22px !important}
  /* 2 boutons hero côte à côte */
  .hero-cta{flex-wrap:nowrap !important}
  .hero-cta > a{flex:1}
  .hero-cta .btn-lg{padding-left:14px;padding-right:14px}
}

/* Burger (mobile uniquement) */
.nav-burger{display:none}
@media (max-width:880px){
  .nav-burger{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:46px;height:46px;padding:13px;flex:none;
    background:var(--accent);border:none;border-radius:2px;cursor:pointer;
  }
  .nav-burger span{display:block;height:2px;width:100%;background:var(--accent-ink);border-radius:2px;transition:transform .25s,opacity .2s}
  .nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* Panneau latéral mobile */
.panel-backdrop{
  position:fixed;inset:0;background:rgba(43,36,32,.5);z-index:60;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility .3s;
}
.panel-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}
.mobile-panel{
  position:fixed;top:0;right:0;height:100%;width:min(82vw,340px);
  background:var(--bg);z-index:70;box-shadow:-20px 0 60px -30px rgba(40,28,18,.6);
  transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.2,1);
  display:flex;flex-direction:column;padding:18px 22px 26px;
}
.mobile-panel.is-open{transform:translateX(0)}
.mobile-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.panel-close{background:none;border:none;font-size:34px;line-height:1;color:var(--ink);cursor:pointer;padding:0 4px}
.mobile-panel-links{display:flex;flex-direction:column}
.mobile-panel-links a{
  color:var(--ink);text-decoration:none;font-size:1.15rem;font-weight:600;
  padding:15px 2px;border-bottom:1px solid var(--line);transition:color .2s;
}
.mobile-panel-links a:hover,.mobile-panel-links a:active{color:var(--accent)}
.mobile-panel-cta{display:flex;flex-direction:column;gap:12px;margin-top:auto;padding-top:22px}

/* Avis : carrousel sur mobile */
.avis-arrow{ display:none; }
@media (max-width:780px){
  .avis-track{
    display:flex !important;
    grid-template-columns:none !important;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:4px;
  }
  .avis-track::-webkit-scrollbar{ display:none; }
  .avis-card{
    flex:0 0 85%;
    scroll-snap-align:center;
  }
  .avis-arrow{
    display:flex;align-items:center;justify-content:center;
    position:absolute;top:50%;transform:translateY(-50%);
    width:36px;height:36px;border-radius:50%;
    background:var(--surface);border:1px solid var(--line);
    color:var(--ink);font-size:20px;line-height:1;cursor:pointer;z-index:5;
    box-shadow:0 8px 20px -10px rgba(50,33,20,.5);
  }
  .avis-arrow-prev{ left:-6px; }
  .avis-arrow-next{ right:-6px; }
}

/* Galerie : carrousel horizontal (desktop + mobile) */
.galerie-track{
  display:flex;gap:clamp(12px,1.5vw,18px);
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-bottom:4px;
}
.galerie-track::-webkit-scrollbar{ display:none; }
.galerie-item,.galerie-img{
  flex:0 0 clamp(240px,30%,340px);
  aspect-ratio:4/5;border-radius:3px;object-fit:cover;
  scroll-snap-align:start;background:var(--accent-soft);
  box-shadow:0 26px 50px -40px rgba(50,33,20,.5);
}
.galerie-placeholder{
  display:flex;align-items:center;justify-content:center;
  border:1px dashed var(--line);
  color:var(--ink-2);font-size:13px;letter-spacing:.04em;
}
.galerie-arrow{
  display:flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line);
  color:var(--ink);font-size:22px;line-height:1;cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.galerie-arrow:hover{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
@media (max-width:780px){
  .galerie-item,.galerie-img{ flex:0 0 78%; }
}

/* Nav links underline-on-hover */
.link-underline{
  color:var(--ink);text-decoration:none;padding:4px 2px;
  background-image:linear-gradient(var(--accent),var(--accent));
  background-repeat:no-repeat;background-position:0 100%;background-size:0% 1.6px;
  transition:background-size .3s cubic-bezier(.2,.7,.2,1),color .2s,transform .2s;
}
.link-underline:hover{ color:var(--accent); background-size:100% 1.6px; transform:translateY(-1px); }

/* Accent button (SMS / CTA) */
.btn-accent{
  background:var(--accent);color:var(--accent-ink);
  transition:background .2s,transform .2s;
}
.btn-accent:hover{ background:var(--accent-2); transform:translateY(-1px); }
.btn-lg{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:10px;
  font-weight:700;font-size:1rem;padding:15px 26px;border-radius:2px;text-decoration:none;
  box-shadow:0 14px 30px -16px var(--accent);
}
.btn-lg:hover{ transform:translateY(-2px); }

/* Outline button */
.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:10px;
  background:transparent;color:var(--ink);text-decoration:none;font-weight:600;font-size:1rem;
  padding:14px 24px;border-radius:2px;border:1.5px solid var(--ink);
  transition:background .2s,color .2s;
}
.btn-outline:hover{ background:var(--ink); color:var(--bg); }

/* WhatsApp button */
.btn-whatsapp{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:9px;
  background:#1faf54;color:#fff;text-decoration:none;font-weight:700;font-size:1rem;
  padding:14px 22px;border-radius:2px;transition:background .2s,transform .2s;
}
.btn-whatsapp:hover{ background:#188f44; transform:translateY(-2px); }

/* Dark button (avis Google) */
.btn-dark{
  display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:var(--bg);
  text-decoration:none;font-weight:600;font-size:.95rem;padding:11px 18px;border-radius:2px;
  transition:background .2s,transform .2s;
}
.btn-dark:hover{ background:var(--accent); transform:translateY(-1px); }

/* Footer links */
.footer-link{ color:var(--bg); text-decoration:none; }
.footer-link:hover{ color:var(--accent); }

/* Social circle (Instagram) */
.social-circle{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(245,239,230,.28);
  display:flex;align-items:center;justify-content:center;color:var(--bg);text-decoration:none;
  font-size:13px;font-weight:600;transition:background .2s,border-color .2s,color .2s;
}
.social-circle:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }

/* Scroll-reveal: JS adds .reveal-hidden only to elements below the fold on load */
[data-reveal].reveal-hidden{ opacity:0; transform:translateY(22px); }
[data-reveal]{ transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
