/* moderne.css — styles communs des pages publiques modernisées
   (tarifs, horaires, coordonnées, dojos, cours, instructeurs, lexique) */

.tf-wrap{max-width:1000px;margin:0 auto;padding:14px 10px;text-align:left;font-family:'Open Sans',Arial,sans-serif;color:#222;box-sizing:border-box}
.tf-wrap *,.tf-wrap *:before,.tf-wrap *:after{box-sizing:border-box}
.tf-wrap img{max-width:100%;height:auto}

/* pastilles d'info */
.tf-intro{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 18px}
.tf-pill{background:#eef1fd;border:1px solid #c9d2fa;border-radius:20px;padding:6px 14px;font-size:13px;color:#1d2f8f}
.tf-pill b{color:#2d4be1}

/* cartes */
.tf-cartes{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.tf-carte{flex:1 1 290px;max-width:320px;background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.15);overflow:hidden;display:flex;flex-direction:column}
.tf-cartes.larges .tf-carte{max-width:480px;flex-basis:380px}
.tf-tete{background:#2d4be1;color:#fff;padding:10px 14px}
.tf-carte.deux .tf-tete{background:linear-gradient(90deg,#2d4be1,#b8142b)}
.tf-carte.ambrault .tf-tete{background:#1f8a4c}
.tf-carte.mix .tf-tete{background:#b8142b}
.tf-tete strong{display:block;font-size:18px;letter-spacing:.5px}
.tf-tete span{font-size:12px;opacity:.9}
.tf-corps{padding:12px 14px;font-size:13px;line-height:1.55;flex:1}
.tf-corps p{margin:0 0 8px;padding:0}
.tf-pied{padding:0 14px 14px;display:flex;flex-wrap:wrap;gap:8px}

/* tableau des tarifs */
.tf-table{width:100%;border-collapse:collapse;font-size:13px;margin:0}
.tf-table th{background:#f3f5fb;color:#555;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.3px;padding:6px 6px;text-align:right;border-bottom:1px solid #dde2f0}
.tf-table th:first-child{text-align:left;padding-left:12px}
.tf-table td{padding:9px 6px;text-align:right;border-bottom:1px solid #eef0f5;white-space:nowrap}
.tf-table td:first-child{text-align:left;padding-left:12px;font-weight:600;white-space:normal}
.tf-table tr:last-child td{border-bottom:0}
.tf-table td.tf-plein{font-size:16px;font-weight:700;color:#2d4be1}
.tf-table td small{display:block;font-size:10px;color:#888;font-weight:400}
.tf-vide{color:#bbb}
.tf-note{font-size:11px;color:#666;text-align:center;margin:12px 0 0}

/* blocs d'information */
.tf-blocs{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px}
.tf-bloc{flex:1 1 280px;background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.12);padding:14px 16px;font-size:13px;line-height:1.55}
.tf-bloc h4{margin:0 0 8px;font-size:15px;color:#2d4be1;line-height:1.3}
.tf-bloc ul{margin:0;padding-left:18px}
.tf-bloc .rouge,.tf-wrap .rouge{color:#b8142b;font-weight:700}
.tf-offre{border-left:4px solid #1f9d55}
.tf-offre h4{color:#1f9d55}
.tf-section{font-size:17px;color:#2d4be1;margin:26px 0 12px;padding-bottom:6px;border-bottom:2px solid #dde2f0;line-height:1.3}
.tf-section:first-child{margin-top:4px}

/* séances (horaires) */
.tf-seances{list-style:none;margin:0;padding:0}
.tf-seances li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #eef0f5;flex-wrap:wrap}
.tf-seances li:last-child{border-bottom:0}
.tf-jour{font-weight:700;min-width:78px}
.tf-heure{color:#2d4be1;font-weight:700;white-space:nowrap}
.tf-type{color:#666;font-size:12px;flex:1 1 100%;margin-left:86px;margin-top:-4px}
.tf-dojo{display:inline-block;border-radius:12px;padding:1px 9px;font-size:11px;font-weight:600;color:#fff;background:#2d4be1;margin-left:auto;white-space:nowrap}
.tf-dojo.ambrault{background:#1f8a4c}

/* planning de la semaine */
.tf-semaine{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.tf-colonne{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden}
.tf-colonne h5{background:#2d4be1!important;color:#fff;margin:0;padding:6px 8px!important;font-size:13px!important;text-align:center}
.tf-creneau{margin:6px;padding:6px 8px;border-radius:6px;background:#eef1fd;border-left:4px solid #2d4be1;font-size:12px;line-height:1.35}
.tf-creneau.ambrault{background:#e9f6ee;border-left-color:#1f8a4c}
.tf-creneau b{display:block;color:#222}
.tf-creneau span{color:#555}
.tf-creneau-vide{margin:10px 6px;color:#aaa;font-size:12px;text-align:center}

/* boutons */
.tf-btn{display:inline-block;padding:7px 14px;border-radius:6px;background:#2d4be1;color:#fff!important;font-size:13px;font-weight:600;text-decoration:none!important;line-height:1.3}
.tf-btn:hover{background:#1d34b0}
.tf-btn.clair{background:#eef1fd;color:#1d2f8f!important;border:1px solid #c9d2fa}
.tf-btn.clair:hover{background:#dfe5fc}

/* carte (plan) et photo */
.tf-plan{width:100%;height:260px;border:0;display:block}
.tf-photo{display:block;width:100%;height:240px;object-fit:cover}
.tf-affiche{display:block;margin:0 auto;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.15)}

/* galerie de photos */
.tf-galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.tf-galerie a{display:block;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.15);background:#ddd}
.tf-galerie img{display:block;width:100%;height:170px;object-fit:cover;transition:transform .25s}
.tf-galerie a:hover img{transform:scale(1.05)}
.tf-zoom{position:fixed;inset:0;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;z-index:9999;cursor:zoom-out;padding:16px}
.tf-zoom img{max-width:100%;max-height:100%;border-radius:6px;box-shadow:0 4px 30px rgba(0,0,0,.6)}

/* lexique */
.tf-recherche{display:block;width:100%;max-width:460px;margin:0 auto 12px;padding:10px 14px!important;height:auto!important;font-size:15px!important;border:1px solid #c9d2fa!important;border-radius:22px!important;box-shadow:none}
.tf-lettres{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:0 0 16px}
.tf-lettres a{display:inline-block;width:28px;line-height:28px;text-align:center;border-radius:6px;background:#eef1fd;color:#1d2f8f;font-weight:700;font-size:13px;text-decoration:none}
.tf-lettres a:hover{background:#2d4be1;color:#fff}
.tf-lettres span{display:inline-block;width:28px;line-height:28px;text-align:center;color:#ccc;font-size:13px}
.tf-mots{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.tf-mot{background:#fff;border-radius:8px;box-shadow:0 1px 5px rgba(0,0,0,.1);padding:8px 12px;font-size:13px;line-height:1.45}
.tf-mot b{color:#2d4be1}
.tf-lettre-titre{grid-column:1/-1;font-size:20px;font-weight:700;color:#b8142b;margin:10px 0 0;scroll-margin-top:10px}
.tf-aucun{text-align:center;color:#888;margin:16px 0;display:none}
.tf-nombres td:nth-child(2){font-size:18px;font-weight:400;color:#b8142b}

@media (max-width:900px){
  .tf-semaine{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:560px){
  .tf-semaine{grid-template-columns:1fr 1fr}
  .tf-carte,.tf-cartes.larges .tf-carte{max-width:100%}
  .tf-type{margin-left:0}
}

/* articles (le karaté) */
.tf-wrap iframe{max-width:100%}
.tf-article{display:block;margin:0 0 16px;font-size:14px;line-height:1.65}
.tf-article h4{font-size:18px;margin-bottom:10px;scroll-margin-top:10px}
.tf-article p{margin:0 0 10px;padding:0}
.tf-article ul{margin:0 0 10px;padding-left:20px}
.tf-article li{margin-bottom:6px}
.tf-sous{font-size:15px!important;color:#b8142b!important;margin:12px 0 6px!important}
.tf-haut{text-align:right;font-size:12px;margin:6px 0 0!important}

/* code moral */
.tf-valeurs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.tf-valeur{display:flex;background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.12);overflow:hidden}
.tf-kanji{flex:0 0 74px;background:#2d4be1;color:#fff;font-size:30px;line-height:1.15;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 4px;writing-mode:vertical-rl;letter-spacing:4px;font-family:"Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif}
.tf-valeur:nth-child(even) .tf-kanji{background:#b8142b}
.tf-valeur-txt{padding:12px 14px;position:relative;font-size:13px;line-height:1.55}
.tf-valeur-txt h4{margin:0 0 6px;font-size:16px;color:#222;padding-right:26px}
.tf-valeur-txt h4 small{display:block;font-size:12px;color:#2d4be1;font-weight:600;font-style:italic}
.tf-valeur-txt p{margin:0;padding:0}
.tf-num{position:absolute;top:10px;right:12px;width:22px;height:22px;border-radius:50%;background:#eef1fd;color:#1d2f8f;font-size:12px;font-weight:700;text-align:center;line-height:22px}

/* équipe (instructeurs) */
.tf-lettres a.actif{background:#2d4be1;color:#fff}
.tf-equipe{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.tf-instr{background:#fff;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.14);overflow:hidden;display:flex;flex-direction:column}
.tf-instr-photo{position:relative;height:0;padding-bottom:133.333%;overflow:hidden;background:linear-gradient(135deg,#2d4be1,#b8142b)}
.tf-instr-photo a{position:absolute;top:0;left:0;right:0;bottom:0;display:block}
.tf-instr-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.tf-instr-photo span{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:48px;font-weight:700;letter-spacing:2px}
.tf-grade{z-index:1;position:absolute;left:10px;bottom:10px;background:#111;color:#fff;font-size:12px;padding:3px 10px;border-radius:12px;border:2px solid #fff}
.tf-instr-txt{padding:10px 12px 12px;font-size:13px;line-height:1.4}
.tf-instr-txt strong{display:block;font-size:16px;color:#222}
.tf-instr-txt strong span{text-transform:uppercase}
.tf-instr-txt em{display:inline-block;font-style:normal;font-size:11px;font-weight:700;color:#b8142b;margin:2px 0 4px}
.tf-instr-txt p{margin:2px 0 6px;padding:0;color:#555}
.tf-badge{display:inline-block;font-size:10px;font-weight:600;border-radius:10px;padding:1px 8px;margin:4px 4px 0 0;background:#eef1fd;color:#1d2f8f}
.tf-b-baby{background:#fde7f3;color:#a3206b}.tf-b-enfants{background:#e3f4fb;color:#0b6b8f}.tf-b-adultes{background:#e9f6ee;color:#1f6f3e}
.tf-b-self{background:#fdeaf0;color:#a3163e}.tf-b-mix{background:#fff1e0;color:#a65300}.tf-b-competition{background:#fff7c2;color:#7a6200}
.tf-intro-texte{max-width:760px;margin:0 auto 16px!important;padding:0!important;text-align:center;font-size:14px;line-height:1.6;color:#333}
.tf-b-coach_national{background:#1d2f8f;color:#fff}

/* profs d'un cours */
.tf-profs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:18px}
.tf-prof{display:flex;align-items:center;gap:10px;background:#fff;border-radius:40px 10px 10px 40px;box-shadow:0 2px 8px rgba(0,0,0,.12);padding:6px 12px 6px 6px}
.tf-prof a{flex:0 0 64px}
.tf-prof img,.tf-prof-ini{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 20%;display:block;border:3px solid #2d4be1}
.tf-prof-ini{display:flex;align-items:center;justify-content:center;background:#2d4be1;color:#fff;font-weight:700;font-size:20px;flex:0 0 64px}
.tf-prof strong{display:block;font-size:14px;color:#222;line-height:1.25}
.tf-prof em{display:block;font-style:normal;font-size:11px;font-weight:700;color:#b8142b}
.tf-prof small{display:block;font-size:11px;color:#666}

/* accueil */
.tf-essai{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#2d4be1,#b8142b);color:#fff;border-radius:12px;padding:16px 20px;font-size:14px;line-height:1.5;box-shadow:0 3px 12px rgba(0,0,0,.18)}
.tf-essai > div:first-child{flex:1 1 420px}
.tf-essai strong{display:block;font-size:20px;margin-bottom:4px}
.tf-essai-btn{display:flex;flex-wrap:wrap;gap:8px}
.tf-essai .tf-btn{background:#fff;color:#1d2f8f!important}
.tf-essai .tf-btn:hover{background:#eef1fd}
.tf-essai .tf-btn.clair{background:transparent;color:#fff!important;border:1px solid #fff}
.tf-accueil-cours{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.tf-carte-cours{display:flex;flex-direction:column;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.14);text-decoration:none!important;color:#222!important;transition:transform .2s,box-shadow .2s}
.tf-carte-cours:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.2)}
.tf-cc-img{display:block;position:relative;height:0;padding-bottom:70%;background:linear-gradient(135deg,#2d4be1,#b8142b);overflow:hidden}
.tf-cc-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.tf-cc-txt{display:block;padding:10px 12px 12px;font-size:12px;line-height:1.45}
.tf-cc-txt strong{display:block;font-size:15px;color:#2d4be1}
.tf-cc-txt em{display:block;font-style:normal;color:#b8142b;margin-bottom:4px}
.tf-cc-jours{display:block;font-weight:600;margin-bottom:4px}
.tf-cc-txt .tf-dojo{margin:0 2px 0 0}
.tf-cc-prix{display:block;margin-top:6px;font-size:15px;font-weight:700;color:#222}
.tf-cc-prix small{font-size:10px;font-weight:400;color:#777}

/* accueil : fond teinté pour faire ressortir cartes et posts Facebook (blancs) */
.tf-fond-accueil{background:#e6ebf4;background:linear-gradient(180deg,#eef2fa 0%,#dfe6f3 100%)}
.tf-fond-accueil .tf-bloc,.tf-fond-accueil .tf-carte-cours{box-shadow:0 3px 12px rgba(29,47,143,.14)}
.tf-fond-accueil iframe,.tf-fond-accueil .fb-post{box-shadow:0 3px 14px rgba(29,47,143,.18);border-radius:8px}

/* sponsors */
.tf-sponsors{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.tf-sponsors.principal{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.tf-sponsor{background:#fff;border-radius:12px;box-shadow:0 3px 12px rgba(29,47,143,.14);overflow:hidden;display:flex;flex-direction:column}
.tf-sp-logo{display:flex;align-items:center;justify-content:center;height:140px;padding:14px;background:#fff;border-bottom:1px solid #eef0f5;text-decoration:none!important}
.tf-sponsors.principal .tf-sp-logo{height:180px}
.tf-sp-logo img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s}
a.tf-sp-logo:hover img{transform:scale(1.05)}
.tf-sp-nom-seul{font-size:20px;font-weight:700;color:#2d4be1;text-align:center}
.tf-sp-txt{padding:10px 14px 14px;font-size:13px;line-height:1.5}
.tf-sp-txt strong{display:block;font-size:15px;color:#222;margin-bottom:4px}
.tf-sp-txt p{margin:0 0 6px;padding:0;color:#555}
.tf-sp-lien{font-size:12px;font-weight:600}
