.tp-team-wrap { margin: 18px 0; }
.tp-team-filters { margin-bottom: 14px; }
.tp-team-filters__row {     display: flex;
    gap: 10px;
    align-items: center;
    width: 80%;
    margin: 0 auto; 
    margin-bottom: 100px;
}
.tp-team-filters input[type="text"], .tp-team-filters select {
  padding:10px 12px; border:1px solid #ddd; border-radius:10px; min-width:260px;background:#fff;
}
.tp-team-filters button {
  padding:10px 40px; border:1px solid #111; border-radius:10px; background:#111; color:#fff; cursor:pointer;display:flex;
}
.tp-team-filters .tp-reset { margin-left:6px; color:#555; text-decoration:underline; }

.tp-team-grid { display:grid; gap:16px; }
.tp-cols-1 { grid-template-columns: 1fr; }
.tp-cols-2 { grid-template-columns: repeat(2, 1fr); }
.tp-cols-3 { grid-template-columns: repeat(3, 1fr); }
.tp-cols-4 { grid-template-columns: repeat(4, 1fr); }
.tp-cols-5 { grid-template-columns: repeat(5, 1fr); }
.tp-cols-6 { grid-template-columns: repeat(6, 1fr); }

.tp-card {
  border:1px solid #eee; border-radius:16px; overflow:hidden; background:#fff;
  box-shadow: 0 6px 24px rgba(0,0,0,.06);
  display:flex; flex-direction:column;
}
.tp-card__top { text-decoration:none; color:inherit; display:block; }
.tp-card__media { width:100%; aspect-ratio: 4 / 3; background:#f6f6f6; display:flex; align-items:center; justify-content:center; }
.tp-card__img { width:100%; height:100%; object-fit:cover; display:block; }
.tp-card__placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#777; }

.tp-card__head { padding:14px 14px 10px; }
.tp-card__name { margin:0; font-size:18px; line-height:1.2; }
.tp-card__title { margin-top:6px; color:#222; font-weight:600; }
.tp-card__spec { margin-top:6px; color:#555; font-size:13px; }
.tp-card__langs { margin-top:8px; color:#666; font-size:13px; }

.tp-card__actions { padding: 12px 14px 16px; display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; }

.tp-btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 12px; border-radius:12px; border:1px solid #ddd; text-decoration:none; color:#111;
}
.tp-btn--primary { background:#111; color:#fff; border-color:#111; }

.tp-single__grid { display:grid; grid-template-columns: 360px 1fr; gap:20px; }
@media (max-width: 900px) { .tp-single__grid { grid-template-columns: 1fr; } }

.tp-single__img { width:100%; height:auto; border-radius:18px; display:block; }
.tp-single__name { margin:0; font-size:34px; }
.tp-single__title { margin-top:8px; font-weight:700; }
.tp-single__spec { margin-top:8px; color:#555; }
.tp-single__line { margin-top:8px; color:#333; }
.tp-single__actions { margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.tp-single__section { margin-top:26px; padding-top:18px; border-top:1px solid #eee; }
.tp-single__calendar iframe { width:100%; min-height:520px; border:0; border-radius:14px; }
.tp-empty { padding:16px; background:#fafafa; border:1px dashed #ddd; border-radius:14px; color:#666; }
/* Ne bloque pas le scroll sur mobile */
.tp-team-results { position: relative; }

.tp-loading .tp-team-results {
  opacity: .6;
  pointer-events: auto !important; /* IMPORTANT */
}

/* Petit texte “Chargement…” sans overlay qui bloque */
.tp-loading .tp-team-results::before{
  content: "Chargement…";
  display: block;
  padding: 10px 0;
  font-weight: 700;
  color: #555;
}

.tp-team-pagination { margin-top:14px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.tp-page-btn { padding:10px 12px; border-radius:10px; border:1px solid #ddd; background:#fff; cursor:pointer; }
.tp-page-btn:disabled { opacity:.5; cursor:not-allowed; }
/* Page doctor detail */
.tp-doc { background:#f4f7ff; padding:40px 0; }
.tp-doc__container { max-width:1200px; margin:0 auto; padding:0 18px; }
.tp-doc__grid { display:grid; grid-template-columns: 360px 1fr; gap:26px; align-items:start; }

@media (max-width: 980px) {
  .tp-doc__grid { grid-template-columns: 1fr; }
}

/* LEFT card */
.tp-doc__side { position: sticky; top: 90px; }
@media (max-width: 980px){ .tp-doc__side { position: static; } }

.tp-doccard{
  background:#0b1b63;
  border-radius:18px;
  overflow:hidden;
  box-shadow: 0 10px 30px rgba(11,27,99,.22);
}
.tp-doccard__media{ position:relative; background:#eaf0ff; }
.tp-doc__img{ width:100%; height:auto; display:block; }
.tp-doc__ph{ height:320px; display:flex; align-items:center; justify-content:center; color:#666; }

.tp-doccard__rating{
  position:absolute; top:14px; right:14px;
  background:#ffd24a; color:#111;
  font-weight:800;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
}

.tp-doccard__body{ padding:18px 18px 20px; color:#fff; }
.tp-doccard__name{ margin:0; font-size:22px; }
.tp-doccard__title{ margin-top:6px; opacity:.9; font-weight:600; }

.tp-doccard__actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.tp-doccard__actions .tp-btn{ border-color: rgba(255,255,255,.28); color:#fff; }
.tp-doccard__actions .tp-btn--primary{ background:#ffffff; color:#0b1b63; border-color:#fff; }

.tp-doccard__info{ margin-top:16px; display:grid; gap:10px; font-size:13px; }
.tp-line{ display:flex; gap:10px; align-items:flex-start; }
.tp-ico{ width:18px; display:inline-flex; justify-content:center; opacity:.9; }
.tp-doccard__info a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }

.tp-doccard__social{ margin-top:14px; display:flex; gap:10px; }
.tp-doccard__social a{
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px;
  background: rgba(255,255,255,.14);
  color:#fff; text-decoration:none;
  font-weight:800;
}

/* RIGHT content */
.tp-doc__main{ }
.tp-doc__h1{ margin:0; font-size:34px; color:#0c1638; }
.tp-doc__intro{ margin-top:12px; color:#4b5575; line-height:1.7; max-width:820px; }

.tp-doc__facts{
  margin-top:16px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px 18px;
  max-width:820px;
}
@media (max-width: 720px){ .tp-doc__facts{ grid-template-columns:1fr; } }

.tp-fact{ color:#344066; }
.tp-fact span{ color:#6b77a3; font-weight:700; margin-right:8px; }

.tp-cardbox{
  background:#fff;
  border-radius:18px;
  padding:18px 18px;
  margin-top:18px;
  box-shadow: 0 10px 28px rgba(20,40,120,.08);
}
.tp-cardbox h2{ margin:0 0 10px; font-size:22px; color:#0c1638; }

.tp-doc__row2{
  display:grid; grid-template-columns: 1fr 1fr; gap:18px;
  margin-top:18px;
}
@media (max-width: 980px){ .tp-doc__row2{ grid-template-columns:1fr; } }

.tp-list{ margin:0; padding-left:18px; color:#4b5575; line-height:1.8; }
.tp-muted{ color:#7a86ab; }

/* Progress rings (pure CSS) */
.tp-stats{ margin-top:16px; display:flex; gap:18px; flex-wrap:wrap; }
.tp-stat{ display:flex; flex-direction:column; align-items:center; gap:8px; min-width:130px; }

.tp-ring{
  width:84px; height:84px;
  border-radius:50%;
  background: conic-gradient(#2f55ff calc(var(--p) * 1%), #e8eeff 0);
  display:flex; align-items:center; justify-content:center;
}
.tp-ring__in{
  width:66px; height:66px;
  border-radius:50%;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:900;
  color:#0c1638;
}
.tp-stat__label{ font-size:12px; color:#4b5575; text-align:center; }

/* Calendar iframe */
.tp-calendar iframe{
  width:100%;
  min-height:520px;
  border:0;
  border-radius:14px;
}

/* Quote */
.tp-quote{
  margin-top:18px;
  background:#fff;
  border-radius:18px;
  padding:22px;
  box-shadow: 0 10px 28px rgba(20,40,120,.08);
  position:relative;
}
.tp-quote__mark{
  position:absolute;
  right:18px; top:10px;
  font-size:54px;
  color:#2fd0c8;
  font-weight:900;
  line-height:1;
  opacity:.8;
}
.tp-quote__text{ color:#3b466a; line-height:1.8; padding-right:40px; }
.tp-quote__author{ margin-top:14px; font-weight:800; color:#0c1638; }

h2.tp-doccard__name {
    color: #fff;
}
.tp-archive { background:#f4f7ff; padding:40px 0; }
.tp-archive__container { max-width:1200px; margin:0 auto; padding:0 18px; }
.tp-archive__title { margin:0 0 18px; font-size:34px; color:#0c1638; }


/* ==========================
   RESPONSIVE ARCHIVE GRID
   Mobile: 1 / Tablet: 3 / Desktop: 3
   ========================== */

/* Base: desktop (déjà tp-cols-3 = 3 colonnes) */

/* Mobile <= 767px : 1 praticien par row */
@media (max-width: 767px) {
  .tp-team-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Tablette 768px - 1024px : 3 praticiens par row */
@media (min-width: 768px) and (max-width: 1024px) {
  .tp-team-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}


/* ==========================
   RESPONSIVE FILTER BAR
   Mobile + Tablet: 1 champ par ligne
   ========================== */

@media (max-width: 1024px) {
  .tp-team-filters__row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  .tp-team-filters__row input[type="text"],
  .tp-team-filters__row select,
  .tp-team-filters__row button,
  .tp-team-filters__row .tp-reset {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Le lien reset devient bouton-like */
  .tp-team-filters__row .tp-reset {
    text-align: center;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    text-decoration: none;
    background: #fff;
  }
}
.tp-searchform { background: transparent; }
.tp-searchform__row {
  display: grid;
  grid-template-columns: 1.3fr 1fr auto;
  gap: 10px;
  align-items: center;
}

.tp-searchform__row input,
.tp-searchform__row select {
  width: 100%;
  padding: 12px 12px;
  border: 1px solid #ddd;
  border-radius: 12px;
  background: #fff;
}

.tp-searchform__row button {
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid #0b1b63;
  background: #0b1b63;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

@media (max-width: 1024px) {
  .tp-searchform__row {
    grid-template-columns: 1fr;
  }
}

.tp-slider { position: relative; }
.tp-card--slider { height: 100%; }
.tp-slider .swiper { padding-bottom: 34px; }
.tp-slider .swiper-button-prev,
.tp-slider .swiper-button-next { color: #0b1b63; }
.tp-slider .swiper-pagination-bullet { opacity: .35; }
.tp-slider .swiper-pagination-bullet-active { opacity: 1; }

/* =====================================
   SAME HEIGHT CARDS + IMAGES (SLIDER)
   ===================================== */

/* Le slide prend toute la hauteur */
.tp-slider .swiper-slide {
  height: auto;
  display: flex;
}

/* La carte prend toute la hauteur du slide */
.tp-card--slider {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

/* Zone image : hauteur FIXE */
.tp-card--slider .tp-card__media {
  height: 240px;            /* 🔥 ajuste si tu veux */
  overflow: hidden;
  flex-shrink: 0;
}

/* Image responsive, bien cadrée */
.tp-card--slider .tp-card__img,
.tp-card--slider img {
  width: 100%;
  height: 100%;
  object-fit: cover;        /* 🔥 clé */
  display: block;
}

/* Contenu de la carte = flex */
.tp-card--slider .tp-card__top {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Header pousse le bas */
.tp-card--slider .tp-card__head {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Sécurité pour textes longs */
.tp-card__name,
.tp-card__title,
.tp-card__spec,
.tp-card__langs {
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Optionnel : limite le nombre de lignes du nom */
.tp-card__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
