/* ===== Avis clients (.rev-*) ===== */
.rev{background:var(--rice)}
.rev-head{text-align:center;margin-bottom:var(--sp-7)}
.rev-title{font-family:var(--f-display);font-weight:500;font-size:var(--fs-2xl);line-height:1.15;color:var(--ink);margin-top:var(--sp-2)}

.rev-note{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-3);font-style:italic}

.rev-track{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);outline:none}
.rev-card{position:relative;margin:0;padding:var(--sp-6) 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column}
.rev-mark{display:block;width:64px;height:44px;margin-bottom:var(--sp-4);fill:none;stroke:var(--plum);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
[dir="rtl"] .rev-mark{transform:rotate(180deg)}
.rev-quote{margin:0;font-family:var(--f-display);font-size:var(--fs-lg);line-height:1.6;color:var(--ink);flex:1}
.rev-card:nth-child(2) .rev-quote{font-size:var(--fs-xl);line-height:1.4}
.rev-name{margin-top:var(--sp-5);font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);letter-spacing:.02em;display:flex;align-items:center;gap:var(--sp-3)}
.rev-name::before{content:"";width:22px;height:1.5px;background:var(--plum);border-radius:2px}
.rev-dots{display:none}
.js-motion .rev-track[data-reveal="stagger"] > *{transition-delay:calc(var(--reveal-i,0) * 140ms)}

@media (max-width:760px){
  .rev-head{margin-bottom:var(--sp-5)}
  .rev-track{display:flex;gap:var(--sp-4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain}
  .rev-track::-webkit-scrollbar{display:none}
  .rev-card{flex:0 0 86%;scroll-snap-align:start;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5)}
  .rev-mark{width:52px;height:36px}
  .rev-quote,.rev-card:nth-child(2) .rev-quote{font-size:var(--fs-lg);line-height:1.55}
  .rev-dots{display:flex;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-4)}
  .rev-dot{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background var(--dur) var(--ease),width var(--dur) var(--ease)}
  .rev-dot.is-on{background:var(--plum);width:18px;border-radius:var(--r-pill)}
}

/* ===== Venir nous voir (.visit-*) ===== */
.visit{background:var(--washi);border-top:1px solid var(--line)}
.visit-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--sp-7);align-items:stretch}
.visit-title{font-family:var(--f-display);font-weight:500;font-size:var(--fs-2xl);line-height:1.1;color:var(--ink);margin-top:var(--sp-2)}

.visit-status{display:inline-flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-4);padding:.35em .9em;border-radius:var(--r-pill);
  font-size:var(--fs-sm);font-weight:600;background:var(--paper);border:1px solid var(--line);color:var(--ink-2)}
.visit-status[hidden]{display:none}
.visit-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.visit-status.is-open{color:var(--ink)}
.visit-status.is-open .visit-dot{background:var(--wasabi);position:relative}
.visit-status.is-open .visit-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--wasabi);opacity:.45;animation:visit-pulse 2.6s var(--ease) infinite}
@keyframes visit-pulse{0%{transform:scale(1);opacity:.45}70%,100%{transform:scale(2.6);opacity:0}}

.visit-contact{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-1)}
.visit-link{display:inline-flex;align-items:center;gap:var(--sp-3);min-height:44px;color:var(--ink);font-size:var(--fs-md);text-decoration:none;transition:color var(--dur) var(--ease)}
.visit-link:hover{color:var(--plum)}
.visit-ico{width:20px;height:20px;flex:none;fill:none;stroke:var(--plum);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.visit-hours{width:100%;max-width:420px;margin-top:var(--sp-5);border-collapse:collapse;font-size:var(--fs-md)}
.visit-hours th,.visit-hours td{padding:var(--sp-3) var(--sp-3);border-bottom:1px solid var(--line);text-align:start}
.visit-hours th{font-weight:400;color:var(--ink-2);padding-inline-end:var(--sp-5)}
.visit-hours td{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.visit-hours tr.is-today th,.visit-hours tr.is-today td{color:var(--plum-deep);font-weight:600;background:var(--plum-soft)}
.visit-hours tr.is-today th,.visit-hours tr.is-today td{position:relative}
.visit-hours tr.is-today th::after,.visit-hours tr.is-today td::after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;background:var(--plum);
  transform:scaleX(0);transform-origin:left center;transition:transform .55s var(--ease)}
[dir="rtl"] .visit-hours tr.is-today th::after,[dir="rtl"] .visit-hours tr.is-today td::after{transform-origin:right center}
.visit-hours.is-drawn tr.is-today th::after,.visit-hours.is-drawn tr.is-today td::after{transform:scaleX(1)}
.visit-hours.is-drawn tr.is-today td::after{transition-delay:.45s}
.visit-hours tr.is-today th{border-start-start-radius:var(--r-sm);border-end-start-radius:var(--r-sm)}
.visit-hours tr.is-today td{border-start-end-radius:var(--r-sm);border-end-end-radius:var(--r-sm)}

.visit-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-6)}

.visit-map{position:relative;min-height:380px;border-radius:var(--r-lg);overflow:hidden;background:var(--rice);border:1px solid var(--line)}
.visit-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.2)}

/* Instagram */
.visit-insta{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-7);padding:var(--sp-4) 0;
  border-block:1px solid var(--line);color:var(--ink);text-decoration:none;min-height:44px}
.visit-insta-text{font-family:var(--f-display);font-size:var(--fs-lg)}
.visit-insta-handle{margin-inline-start:auto;font-weight:600;color:var(--plum);letter-spacing:.04em;transition:color var(--dur) var(--ease)}
.visit-insta:hover .visit-insta-handle{color:var(--plum-deep)}

/* CTA final */
.visit-cta{display:flex;align-items:center;gap:var(--sp-5);margin-top:var(--sp-7);padding:var(--sp-6) var(--sp-6);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg)}
.visit-hanko{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1.5px solid var(--plum);
  color:var(--plum);font-family:var(--f-display);font-size:var(--fs-sm);font-weight:700;letter-spacing:.08em;
  border-style:dashed;border-width:1.5px;animation:visit-spin 40s linear infinite}
.visit-hanko > span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1.5px solid var(--plum);animation:visit-spin 40s linear infinite reverse}
@keyframes visit-spin{to{transform:rotate(360deg)}}
.visit-cta-title{flex:1;margin:0;font-family:var(--f-display);font-size:var(--fs-xl);line-height:1.25;color:var(--ink)}
.visit-cta-btn{flex:none}

@media (max-width:860px){
  .visit-grid{grid-template-columns:1fr;gap:var(--sp-6)}
  .visit-map{min-height:280px}
}
@media (max-width:700px){
  .visit-map{display:none}               /* mobile : boutons seulement */
  .visit-actions{flex-direction:column}
  .visit-actions .visit-btn{width:100%}
  .visit-hours{max-width:none}
  .visit-insta-text{font-size:var(--fs-md)}
  .visit-cta{flex-direction:column;text-align:center;gap:var(--sp-4);padding:var(--sp-6) var(--sp-5)}
  .visit-cta-btn{width:100%}
  .visit-hanko,.visit-hanko > span{animation:none}
}

@media (prefers-reduced-motion:reduce){
  .rev-track{scroll-behavior:auto}
  .rev-dot,.visit-link,.visit-insta-handle{transition:none}
  .visit-status.is-open .visit-dot::after,.visit-hanko,.visit-hanko > span{animation:none}
  .visit-hours tr.is-today th::after,.visit-hours tr.is-today td::after{transform:scaleX(1);transition:none}
}
