/* EOCHE — Barre d'action fixe mobile + scroll-snap carrousels + bloc avis
   + compaction des pages locales. Autonome (hex en dur, zéro dépendance).
   Créé le 2026-07-26. */

/* ── Barre CTA fixe, mobile uniquement ─────────────────────── */
.eoche-sticky-cta { display: none; }

@media (max-width: 767px) {
  .eoche-sticky-cta {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 9980; /* sous le chat (9990+) et le modal (99999) */
    gap: 1px;
    background: #09090B;
    padding-bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -4px 20px rgba(9, 9, 11, 0.18);
  }
  .eoche-sticky-cta a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px 10px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    line-height: 1;
  }
  .eoche-sticky-cta .cta-tel { background: #09090B; color: #fff; }
  .eoche-sticky-cta .cta-devis { background: #FD3A25; color: #fff; }
  .eoche-sticky-cta svg { width: 16px; height: 16px; flex-shrink: 0; }

  /* Le contenu ne doit pas finir caché sous la barre */
  body { padding-bottom: calc(52px + env(safe-area-inset-bottom)); }

  /* Le lanceur du chat remonte au-dessus de la barre */
  .eoche-chat-launcher { bottom: calc(64px + env(safe-area-inset-bottom)) !important; }
  .eoche-chat-panel { bottom: calc(120px + env(safe-area-inset-bottom)) !important; }
}

/* ── Carrousels sans Swiper sur mobile : swipe natif scroll-snap ── */
@media (max-width: 1024px) {
  .swiper.tf-swiper .swiper-wrapper,
  .swiper-progressbar .swiper-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 16px;
  }
  .swiper.tf-swiper .swiper-wrapper::-webkit-scrollbar,
  .swiper-progressbar .swiper-wrapper::-webkit-scrollbar { display: none; }
  .swiper.tf-swiper .swiper-slide,
  .swiper-progressbar .swiper-slide {
    flex: 0 0 85%;
    max-width: 85%;
    scroll-snap-align: start;
  }
  /* Navigation/progression Swiper inutiles sans Swiper */
  .swiper-progressbar ~ .progress-wrap,
  .progressbar-prev, .progressbar-next,
  #progressBar { display: none !important; }
}

/* ── Bloc avis (accueil + pages locales) ───────────────────── */
.eoche-avis-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
}
.eoche-avis-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #E4E4E7;
  border-radius: 99px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  color: #09090B;
  text-decoration: none;
  transition: border-color .15s;
}
.eoche-avis-badge:hover { border-color: rgba(253, 58, 37, 0.4); color: #09090B; }
.eoche-avis-badge .stars { color: #FD3A25; letter-spacing: 1px; font-size: 12px; }
.eoche-avis-badge .src { color: #71717A; font-weight: 400; }

.eoche-avis-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 991px) { .eoche-avis-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .eoche-avis-grid { grid-template-columns: 1fr; gap: 10px; } }

.eoche-avis-card {
  background: #fff;
  border: 1px solid #E4E4E7;
  border-radius: 16px;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.eoche-avis-card .stars { color: #FD3A25; font-size: 13px; letter-spacing: 2px; }
.eoche-avis-card blockquote {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: #3F3F46;
}
.eoche-avis-card footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
  color: #09090B;
  font-weight: 600;
}
.eoche-avis-card footer .via {
  font-weight: 400;
  color: #71717A;
  white-space: nowrap;
}
.eoche-avis-more {
  font-size: 13.5px;
  color: #71717A;
}
.eoche-avis-more a { color: #09090B; }

/* Pages locales (fond sombre .portfolio-page) : variante */
.portfolio-page .eoche-avis-card { background: #18181B; border-color: #27272A; }
.portfolio-page .eoche-avis-card blockquote { color: #D4D4D8; }
.portfolio-page .eoche-avis-card footer { color: #fff; }
.portfolio-page .eoche-avis-badge { background: #18181B; border-color: #27272A; color: #fff; }
.portfolio-page .eoche-avis-badge:hover { color: #fff; }

/* ── Compaction verticale des pages locales (sans toucher portfolio.css) ── */
@media (max-width: 640px) {
  .portfolio-page .portfolio-hero { padding: 40px 0 32px !important; }
  .portfolio-page .portfolio-taxonomy { padding: 30px 0 !important; }
  .portfolio-page .portfolio-work { padding: 36px 0 40px !important; }
  .portfolio-page .portfolio-closing { padding: 36px 0 !important; }
  .portfolio-page .taxonomy-grid { gap: 10px !important; }
  .portfolio-page .taxonomy-item { padding: 18px 16px !important; }
}
