
.qwi-wrap {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 20px;
  font-family: inherit;
  margin-bottom: 0;
  align-items: stretch;
}

/* Card */
.qwi-card {
  background: #FBF2EB;
  border: 1px solid rgba(50,50,62,0.08);
  border-radius: 16px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}
.qwi-card--reviews { /* même style */ }

/* Header */
.qwi-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.qwi-card--reviews .qwi-card-header { align-items: flex-start; margin-bottom: 14px; }
.qwi-card-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: #DE624E; color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.qwi-card-icon--google { background: #fff; border: 1px solid rgba(0,0,0,0.12); }
.qwi-card-title {
  font-size: 13px; font-weight: 800; color: #1a1a2e;
  text-transform: uppercase; letter-spacing: 0.05em;
  display: block;
}

/* Statut */
.qwi-status { display: flex; align-items: center; gap: 0; margin-bottom: 10px; }
.qwi-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  display: inline-block;
  margin-right: 7px;
}
.qwi-dot--green  { background: #22c55e; animation: qwi-pulse-green  2s ease-in-out infinite; }
.qwi-dot--yellow { background: #f59e0b; animation: qwi-pulse-yellow 2s ease-in-out infinite; }
.qwi-dot--red    { background: #ef4444; animation: none; }
@keyframes qwi-pulse-green  { 0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.8), 0 0 4px 2px rgba(34,197,94,.6)}  50%{box-shadow:0 0 0 6px rgba(34,197,94,0), 0 0 8px 4px rgba(34,197,94,.2)} }
@keyframes qwi-pulse-yellow { 0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.8), 0 0 4px 2px rgba(245,158,11,.6)} 50%{box-shadow:0 0 0 6px rgba(245,158,11,0), 0 0 8px 4px rgba(245,158,11,.2)} }
.qwi-status-tag {
  display: inline-flex;
  align-items: center;
  background: rgba(26,26,46,0.08);
  border: 1px solid rgba(26,26,46,0.12);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1;
  white-space: nowrap;
}
.qwi-hours-today { font-size: 12px; color: #6b7280; margin-bottom: 14px; padding-left: 18px; }

/* Divider */
.qwi-divider { height: 1px; background: rgba(50,50,62,0.08); margin: 14px 0; }

/* Info row */
.qwi-info-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.qwi-info-icon {
  width: 30px; height: 30px; border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; color: #fff;
}
.qwi-icon--pin       { background: #DE624E; }
.qwi-icon--parking   { background: #3b82f6; }
.qwi-icon--transport { background: #8b5cf6; }
.qwi-icon--phone     { background: #128C7E; }
.qwi-icon--mail      { background: #DE624E; }
.qwi-icon--form      { background: #6366f1; }
.qwi-icon--social    { background: #1a1a2e; }
.qwi-info-label { font-size: 10px; font-weight: 700; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 1px; line-height: 1.2; }
.qwi-info-value { font-size: 13px; color: #1a1a2e; line-height: 1.55; font-weight: 500; }
.qwi-inline-link { color: #DE624E; text-decoration: none; font-weight: 600; }
.qwi-inline-link:hover { text-decoration: underline; }

/* Transport tags */
.qwi-ttag { display: inline-flex; align-items: center; padding: 1px 5px; border-radius: 3px; font-size: 10px; font-weight: 800; vertical-align: middle; }
.qwi-ttag--metro { background: #f97316; color: #fff; }
.qwi-ttag--bus   { background: #3b82f6; color: #fff; }

/* Socials */
.qwi-social-icons { display: flex; gap: 8px; flex-wrap: wrap; }
.qwi-social {
  width: 32px; height: 32px; border-radius: 6px;
  background: rgba(26,26,46,0.07);
  display: flex; align-items: center; justify-content: center;
  color: #1a1a2e; text-decoration: none;
  transition: background 0.15s, transform 0.15s;
}
.qwi-social:hover { background: rgba(26,26,46,0.15); transform: scale(1.1); }

/* Boutons */
.qwi-link-btn {
  display: flex; align-items: center; justify-content: center; gap: 7px;
  padding: 10px 14px; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  text-decoration: none; transition: transform 0.15s, opacity 0.15s;
  margin-top: 8px; cursor: pointer; border-radius: 0;
  white-space: nowrap;
}
.qwi-link-btn:hover { transform: scale(1.02); text-decoration: none; }
.qwi-link-btn--primary  { background: #DE624E; color: #EBD3AF; box-shadow: inset 4px 4px 0px -1px #EBD3AF; }
.qwi-link-btn--primary:hover { color: #EBD3AF; }
.qwi-link-btn--outline  { background: transparent; color: #1a1a2e; border: 1px solid rgba(26,26,46,0.18); }
.qwi-link-btn--outline:hover { color: #1a1a2e; background: rgba(26,26,46,0.04); }
.qwi-link-btn--whatsapp { background: #128C7E; color: #fff; }
.qwi-link-btn--whatsapp:hover { color: #fff; }
.qwi-link-btn--whatsapp:hover { color: #fff; }
.qwi-link-btn--google   { background: #fff; color: #1a1a2e; border: 1px solid rgba(26,26,46,0.15); }
.qwi-link-btn--google:hover { color: #1a1a2e; }
.qwi-btn-group { display: flex; flex-direction: column; gap: 6px; }

/* Bouton Nous écrire — texte centré, chevron à droite */
#qwi-contact-trigger {
  position: relative;
  justify-content: center;
  text-align: center;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: 1px solid rgba(26,26,46,0.18);
  background: transparent;
  color: #1a1a2e;
}
#qwi-contact-trigger .qwi-btn-left {
  display: flex;
  align-items: center;
  gap: 7px;
}
#qwi-contact-trigger .qwi-chevron {
  position: absolute;
  right: 14px;
  flex-shrink: 0;
}

/* Rating */
.qwi-rating-summary { display: flex; align-items: center; gap: 5px; margin-top: 0; }
.qwi-stars { color: #f59e0b; font-size: 13px; letter-spacing: 1px; }
.qwi-rating-score { font-size: 14px; font-weight: 800; color: #1a1a2e; }
.qwi-rating-total { font-size: 11px; color: #9ca3af; }

/* Reviews carousel */
.qwi-reviews-wrap { overflow: hidden; flex: 1; margin-bottom: 10px; min-height: 0; }
.qwi-reviews-track { display: flex; transition: transform 0.4s ease; will-change: transform; }
.qwi-review-card {
  flex: 0 0 100%; width: 100%;
  padding: 14px; background: rgba(26,26,46,0.04);
  border: 1px solid rgba(26,26,46,0.07);
  display: flex; flex-direction: column; gap: 8px;
  box-sizing: border-box;
}
.qwi-review-stars { color: #f59e0b; font-size: 15px; letter-spacing: 1px; }
.qwi-review-text  { font-size: 13px; color: #32323E; line-height: 1.6; margin: 0; font-style: italic; flex: 1; }
.qwi-review-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
}
.qwi-review-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  align-self: center;
}
.qwi-review-avatar--initial {
  background: #DE624E;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
}
.qwi-review-author { font-size: 12px; font-weight: 700; color: #1a1a2e; display: block; line-height: 1.2; }
.qwi-review-date   { font-size: 11px; color: #9ca3af; line-height: 1.2; margin-top: 1px; display: block; }

.qwi-reviews-dots { display: flex; justify-content: center; gap: 6px; margin-bottom: 10px; }
.qwi-rdot {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(26,26,46,0.2); border: none; cursor: pointer; padding: 0;
  transition: background 0.2s, transform 0.2s;
}
.qwi-rdot--active { background: #DE624E; transform: scale(1.3); }

/* Mobile */
@media (max-width: 767px) {
  .qwi-wrap { grid-template-columns: 1fr; gap: 16px; }
  .qwi-card { padding: 20px; }
}

/* Padding extérieur cohérent avec activities et events */
.qwi-wrap {
  padding: 0 48px;
}

@media (max-width: 767px) {
  .qwi-wrap {
    padding: 0 16px;
  }
}

/* Accordéon formulaire de contact */
.qwi-accordion {
  margin: 0 48px 60px;
}

.qwi-accordion-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: transparent;
  border: 2px solid #DE624E;
  color: #DE624E;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 14px 24px;
  cursor: pointer;
  border-radius: 0;
  transition: background 0.2s, color 0.2s;
}

.qwi-accordion-trigger:hover {
  background: #DE624E;
  color: #EBD3AF;
}

.qwi-accordion-trigger svg {
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.qwi-accordion-trigger[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.qwi-accordion-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease;
}

.qwi-accordion-body--open {
  max-height: 1200px;
}

.qwi-accordion-inner {
  padding: 32px;
  background: #FBF2EB;
  border: 1px solid rgba(26,26,46,0.08);
  border-radius: 16px;
  margin-top: 8px;
}

@media (max-width: 767px) {
  .qwi-accordion {
    margin: 0 0 40px;
  }
}

/* Transport list vertical */
.qwi-transport-list { display: flex; flex-direction: column; gap: 4px; }
.qwi-transport-row { display: flex; align-items: center; gap: 8px; }

/* Chevron dans le bouton formulaire */
.qwi-chevron { margin-left: auto; }
.qwi-link-btn[aria-expanded="true"] .qwi-chevron { transform: rotate(180deg); }
.qwi-chevron { transition: transform 0.3s ease; }
