/* ============================================================
   Karine Silvanie — Styles additionnels
   Complète theme.json pour les éléments que les réglages de blocs
   natifs ne couvrent pas.

   Structure inspirée de gwladysmontredon.com (blocs de couleur pleins,
   anneaux décoratifs, liste à pastilles numérotées, encart histoire
   personnelle avec signature, boutons pilule) appliquée à la charte
   graphique propre à Karine.

   Toutes les classes ci-dessous sont à appliquer via le champ
   "Classe CSS additionnelle" (Avancé) de chaque bloc Gutenberg.
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ---------- Anneaux décoratifs (inspirés des ronds de Gwladys) ---------- */
.ks-ring {
  position: absolute;
  border-radius: 50%;
  border-style: solid;
  pointer-events: none;
  z-index: 0;
}
.ks-ring--orange { border-color: var(--wp--preset--color--terracotta); opacity: 0.55; }
.ks-ring--sable   { border-color: var(--wp--preset--color--sable); opacity: 0.7; }
.ks-ring--mauve   { border-color: var(--wp--preset--color--sauge); opacity: 0.4; }

.ks-ring--lg { width: 220px; height: 220px; border-width: 26px; }
.ks-ring--md { width: 120px; height: 120px; border-width: 16px; }
.ks-ring--sm { width: 64px;  height: 64px;  border-width: 10px; }

/* Positions courantes, à combiner avec une des tailles ci-dessus */
.ks-ring--top-right    { top: -60px; right: -60px; }
.ks-ring--bottom-left  { bottom: -40px; left: -40px; }
.ks-ring--bottom-right { bottom: -30px; right: 8%; }
.ks-ring--mid-left     { top: 45%; left: -50px; }

/* Un conteneur qui porte des .ks-ring doit être positionné et masquer le débordement au besoin */
.ks-ring-host { position: relative; }

/* ---------- Ruban SVG signature (variante hero) ---------- */
.ks-ribbon-bg { position: relative; overflow: hidden; }
.ks-ribbon-bg::before {
  content: "";
  position: absolute;
  top: 0; right: -10%;
  width: 70%; height: 100%;
  z-index: 0;
  opacity: 0.9;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 800'%3E%3Cpath d='M120 0 C 320 120, -20 260, 220 380 C 460 500, 100 620, 340 800' stroke='%23895C7F' stroke-width='1.4' fill='none' opacity='0.5'/%3E%3Cpath d='M220 -40 C 420 100, 60 240, 320 360 C 560 480, 200 640, 440 820' stroke='%23FF7E09' stroke-width='1.4' fill='none' opacity='0.35'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}
.ks-ribbon-bg > * { position: relative; z-index: 1; }

/* ---------- Hero : grille photo (2 images en léger décalage, à la Gwladys) ---------- */
.ks-hero-photo-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 18px;
  z-index: 1;
}
.ks-hero-photo-grid figure { margin: 0; border-radius: 6px; overflow: hidden; }
.ks-hero-photo-grid figure.ks-photo-secondary { margin-top: 48px; }
.ks-hero-photo-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 782px) {
  .ks-hero-photo-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .ks-hero-photo-grid figure.ks-photo-secondary { margin-top: 24px; }
}

/* ---------- Badge témoignage flottant ---------- */
.ks-visual-wrap { position: relative; }
.ks-hero-badge {
  position: absolute;
  bottom: -28px;
  left: 40px;
  z-index: 3;
  background: var(--wp--preset--color--sable-light);
  border: 1px solid rgba(46, 28, 43, 0.12);
  padding: 20px 24px;
  max-width: 230px;
  border-radius: 8px;
  box-shadow: 0 18px 40px -20px rgba(46, 28, 43, 0.35);
}
.ks-hero-badge p {
  font-family: var(--wp--preset--font-family--fraunces);
  font-style: italic;
  font-size: 1rem;
  line-height: 1.4;
  margin: 0;
}
.ks-hero-badge .ks-who {
  display: block;
  margin-top: 10px;
  font-family: var(--wp--preset--font-family--work-sans);
  font-size: 0.78rem;
  color: var(--wp--preset--color--sauge-deep);
  font-weight: 600;
  letter-spacing: 0.03em;
}
@media (max-width: 782px) {
  .ks-hero-badge { position: static; margin-top: 20px; max-width: none; }
}

/* ---------- Bandeau de confiance défilant (marquee) ---------- */
.ks-trust-bar { background: var(--wp--preset--color--sauge); padding: 16px 0; overflow: hidden; }
.ks-trust-track {
  display: flex; gap: 64px; white-space: nowrap; width: max-content;
  animation: ks-scroll 28s linear infinite;
}
.ks-trust-track span {
  color: var(--wp--preset--color--sable-light);
  font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500;
}
@keyframes ks-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- "Vous reconnaissez-vous ici" : liste à pastilles numérotées ---------- */
.ks-pain-points { position: relative; }
.ks-pain-point-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.ks-pain-point-item { display: flex; gap: 18px; align-items: flex-start; }
.ks-pastille {
  flex: none;
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wp--preset--font-family--fraunces);
  font-style: italic;
  font-weight: 600;
  font-size: 1.1rem;
  color: #fff;
}
.ks-pastille--1 { background: var(--wp--preset--color--terracotta); }
.ks-pastille--2 { background: var(--wp--preset--color--sauge); }
.ks-pastille--3 { background: var(--wp--preset--color--terracotta-deep); }
.ks-pain-point-item h3 {
  font-size: 1.05rem;
  margin: 0 0 8px;
}
.ks-pain-point-item p { margin: 0; font-weight: 300; font-size: 0.95rem; line-height: 1.6; }
@media (max-width: 782px) {
  .ks-pain-point-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ---------- Encart histoire personnelle (citation + signature) ---------- */
.ks-story-callout {
  position: relative;
  background: var(--wp--preset--color--sable-light);
  border-radius: 8px;
  padding: 48px;
  z-index: 1;
}
.ks-story-callout blockquote {
  font-family: var(--wp--preset--font-family--fraunces);
  font-style: italic;
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.45;
  margin: 0 0 24px;
  color: var(--wp--preset--color--ink);
}
.ks-signature {
  font-family: var(--wp--preset--font-family--fraunces);
  font-style: italic;
  font-weight: 600;
  font-size: 1.6rem;
  color: var(--wp--preset--color--terracotta-deep);
  display: inline-block;
  transform: rotate(-2deg);
}
@media (max-width: 782px) {
  .ks-story-callout { padding: 32px 24px; }
}

/* ---------- Grille "Pour qui" (héritée, conservée pour usage ponctuel) ---------- */
.ks-audience-grid { border: 1px solid rgba(46, 28, 43, 0.12); }
.ks-audience-grid .wp-block-column {
  border-right: 1px solid rgba(46, 28, 43, 0.12);
  border-bottom: 1px solid rgba(46, 28, 43, 0.12);
  padding: 38px 28px !important;
  transition: background 0.3s;
}
.ks-audience-grid .wp-block-column:hover { background: var(--wp--preset--color--sable-light); }
.ks-audience-eyebrow {
  font-family: var(--wp--preset--font-family--fraunces);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--wp--preset--color--sauge-deep);
  display: block;
  margin-bottom: 22px;
}

/* ---------- Cartes "Accompagnements" (fond sombre) ---------- */
.ks-offers-section { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--cream); }
.ks-offer-card { background: #36222F; padding: 44px 34px !important; transition: background 0.3s; border-radius: 8px; }
.ks-offer-card:hover { background: #402A35; }
.ks-offer-tag {
  font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--wp--preset--color--sauge); font-weight: 600; display: block; margin-bottom: 20px;
}
.ks-offer-price {
  font-size: 0.85rem; color: var(--wp--preset--color--terracotta-light); font-weight: 600;
  border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 18px; margin-top: 20px;
}

/* ---------- Témoignages : cartes minimalistes (ligne fine, pas d'ombre lourde) ---------- */
.ks-testimonials-section { background: var(--wp--preset--color--sable-light); }
.ks-test-card {
  background: var(--wp--preset--color--cream);
  border-top: 3px solid var(--wp--preset--color--terracotta);
  padding: 32px !important;
  border-radius: 4px;
}
.ks-test-stars { color: var(--wp--preset--color--terracotta); font-size: 0.85rem; letter-spacing: 2px; margin-bottom: 16px; display: block; }

/* ---------- Avis : widget façon carrousel (résumé + cartes défilantes) ---------- */
.ks-reviews-widget {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: center;
}
.ks-reviews-summary {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ks-reviews-stars-big { color: #F5A623; font-size: 1.3rem; letter-spacing: 3px; margin: 0; }
.ks-reviews-average {
  font-family: var(--wp--preset--font-family--fraunces);
  font-size: 2.4rem; font-weight: 600; color: var(--wp--preset--color--ink);
  margin: 0; line-height: 1;
}
.ks-reviews-average span { font-size: 1.2rem; font-weight: 400; color: var(--wp--preset--color--sauge-deep); }
.ks-reviews-count { font-size: 0.85rem; color: var(--wp--preset--color--sauge-deep); margin: 0 0 12px; }
.ks-reviews-cta {
  display: inline-block;
  background: var(--wp--preset--color--terracotta);
  color: #fff !important;
  font-weight: 600; font-size: 0.85rem;
  padding: 12px 24px; border-radius: 999px;
  text-decoration: none !important;
  width: fit-content;
  transition: background 0.2s;
}
.ks-reviews-cta:hover { background: var(--wp--preset--color--terracotta-deep); }

.ks-reviews-carousel { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; }
.ks-reviews-track {
  display: flex; gap: 20px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory;
  padding: 6px 2px 16px; flex: 1; min-width: 0;
  scrollbar-width: thin;
}
.ks-review-card {
  flex: 0 0 280px; scroll-snap-align: start;
  background: var(--wp--preset--color--cream);
  border: 1px solid rgba(46, 28, 43, 0.08);
  border-radius: 12px;
  padding: 22px;
  display: flex; flex-direction: column;
}
.ks-review-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.ks-review-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 700; font-family: var(--wp--preset--font-family--fraunces);
  flex-shrink: 0;
}
.ks-review-identity { display: flex; flex-direction: column; line-height: 1.3; }
.ks-review-name { font-weight: 600; font-size: 0.9rem; color: var(--wp--preset--color--ink); }
.ks-review-time { font-size: 0.75rem; color: var(--wp--preset--color--sauge-deep); }
.ks-review-stars { color: #F5A623; letter-spacing: 2px; font-size: 0.85rem; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.ks-review-verified {
  color: #fff; background: var(--wp--preset--color--sauge);
  width: 16px; height: 16px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.6rem; letter-spacing: 0;
}
.ks-review-text {
  font-size: 0.88rem; font-weight: 300; color: var(--wp--preset--color--ink);
  max-height: 5.6em; overflow: hidden; position: relative;
}
.ks-review-text p { margin: 0; }
.ks-review-card.is-expanded .ks-review-text { max-height: none; }
.ks-review-toggle {
  background: none !important; border: none !important; padding: 6px 0 0 !important;
  color: var(--wp--preset--color--sauge-deep) !important; font-size: 0.8rem; font-weight: 600;
  text-align: left; cursor: pointer; width: fit-content;
}
.ks-review-toggle:hover { color: var(--wp--preset--color--terracotta-deep) !important; }
.ks-review-source { margin: 10px 0 0; font-size: 0.75rem; color: var(--wp--preset--color--sauge-deep); }
.ks-reviews-arrow {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  background: var(--wp--preset--color--cream) !important;
  border: 1px solid rgba(46, 28, 43, 0.15) !important;
  color: var(--wp--preset--color--ink) !important;
  font-size: 1.3rem; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s;
}
.ks-reviews-arrow:hover { background: var(--wp--preset--color--sable-light) !important; }
.ks-reviews-arrow:disabled { opacity: 0.35; cursor: default; }

@media (max-width: 782px) {
  .ks-reviews-widget { grid-template-columns: 1fr; }
  .ks-reviews-summary { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
  .ks-reviews-cta { order: 3; }
}

/* ---------- Bandeau événement / stage ---------- */
.ks-event-strip {
  background: var(--wp--preset--color--sauge);
  color: var(--wp--preset--color--sable-light);
  border-radius: 8px;
  padding: 30px 44px !important;
}
.ks-event-date {
  font-family: var(--wp--preset--font-family--fraunces);
  font-style: italic;
  font-size: 1.4rem;
  background: rgba(255, 255, 255, 0.15);
  padding: 10px 18px;
  border-radius: 999px;
  display: inline-block;
}

/* ---------- Eyebrow générique ---------- */
.ks-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--wp--preset--color--sauge-deep); font-weight: 600;
}
.ks-eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--wp--preset--color--sauge-deep); }
.ks-eyebrow--dark { color: var(--wp--preset--color--terracotta-light); }
.ks-eyebrow--dark::before { background: var(--wp--preset--color--terracotta-light); }

/* ---------- Bouton "ghost" souligné ---------- */
.ks-btn-ghost {
  font-weight: 600 !important;
  border-bottom: 1.5px solid var(--wp--preset--color--ink) !important;
  border-radius: 0 !important;
  padding: 16px 6px !important;
  background: transparent !important;
  color: var(--wp--preset--color--ink) !important;
  transition: color 0.25s, border-color 0.25s;
}
.ks-btn-ghost:hover { color: var(--wp--preset--color--terracotta-deep) !important; border-color: var(--wp--preset--color--terracotta-deep) !important; }

/* ---------- Accessibilité ---------- */
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--wp--preset--color--terracotta);
  outline-offset: 3px;
}

/* ============================================================
   Menus (en-tête et pied de page) — gérés dans Apparence > Menus
   Sortie du shortcode [ks_menu] (voir functions.php)
   ============================================================ */

.ks-sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.ks-menu ul { list-style: none; margin: 0; padding: 0; }
.ks-menu li { margin: 0; padding: 0; }
.ks-menu a { color: inherit; text-decoration: none; }
.ks-menu a:hover,
.ks-menu a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- En-tête ---------- */
header.wp-block-group { position: relative; }
header .wp-block-group.is-layout-flex > .wp-block-site-logo,
header .wp-block-group.is-layout-flex > .wp-block-buttons { flex: none; }

.ks-header-nav { flex: 1 1 auto; min-width: 0; display: flex; justify-content: flex-end; }
.ks-menu--primary { color: var(--wp--preset--color--ink); }
.ks-menu--primary .ks-menu__list {
  display: flex; flex-wrap: wrap; justify-content: flex-end;
  gap: 0.35rem 1.15rem;
  font-family: var(--wp--preset--font-family--work-sans);
  font-size: 0.85rem; font-weight: 500; line-height: 1.35; text-align: right;
}
.ks-menu--primary .current-menu-item > a,
.ks-menu--primary .current-page-ancestor > a {
  font-weight: 600;
  box-shadow: 0 1.5px 0 var(--wp--preset--color--terracotta);
}
.ks-menu--primary a:hover { color: var(--wp--preset--color--terracotta-deep); }

/* Sous-menus éventuels (bureau) */
.ks-menu--primary .menu-item-has-children { position: relative; }
.ks-menu--primary .sub-menu {
  display: none; position: absolute; right: 0; top: 100%; z-index: 60;
  min-width: 220px; padding: 12px 16px; text-align: left;
  background: var(--wp--preset--color--cream);
  box-shadow: 0 12px 28px -12px rgba(46, 28, 43, 0.3);
}
.ks-menu--primary .menu-item-has-children:hover > .sub-menu,
.ks-menu--primary .menu-item-has-children:focus-within > .sub-menu { display: block; }
.ks-menu--primary .sub-menu li + li { margin-top: 8px; }

/* Bouton burger (masqué sur grand écran) */
.ks-menu__toggle {
  display: none; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; margin: 0;
  background: none; border: 0; color: inherit; cursor: pointer;
}
.ks-menu__burger,
.ks-menu__burger::before,
.ks-menu__burger::after {
  display: block; width: 24px; height: 2px; background: currentColor;
  border-radius: 2px; transition: transform 0.2s, opacity 0.2s;
}
.ks-menu__burger { position: relative; }
.ks-menu__burger::before,
.ks-menu__burger::after { content: ""; position: absolute; left: 0; }
.ks-menu__burger::before { top: -7px; }
.ks-menu__burger::after { top: 7px; }
.ks-menu--primary.is-open .ks-menu__burger { background: transparent; }
.ks-menu--primary.is-open .ks-menu__burger::before { top: 0; transform: rotate(45deg); }
.ks-menu--primary.is-open .ks-menu__burger::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1100px) {
  .ks-header-nav { flex: 0 0 auto; margin-left: auto; }
  .ks-menu--primary .ks-menu__toggle { display: inline-flex; }
  .ks-menu--primary .ks-menu__panel {
    display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 100;
    padding: 12px 32px 24px;
    background: var(--wp--preset--color--cream);
    border-bottom: 1px solid rgba(46, 28, 43, 0.12);
    box-shadow: 0 18px 30px -18px rgba(46, 28, 43, 0.3);
  }
  .ks-menu--primary.is-open .ks-menu__panel { display: block; }
  .ks-menu--primary .ks-menu__list {
    flex-direction: column; flex-wrap: nowrap; align-items: stretch;
    gap: 0; font-size: 1rem; text-align: left;
  }
  .ks-menu--primary .ks-menu__list > li > a { display: block; padding: 12px 0; }
  .ks-menu--primary .ks-menu__list > li + li { border-top: 1px solid rgba(46, 28, 43, 0.08); }
  .ks-menu--primary .sub-menu {
    display: block; position: static; box-shadow: none; padding: 0 0 8px 16px; min-width: 0;
  }
}

/* ---------- Pied de page ---------- */
.ks-menu--footer_navigation .ks-menu__list,
.ks-menu--footer_practical .ks-menu__list {
  display: flex; flex-direction: column; gap: 0.55rem;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.ks-menu--footer_navigation a,
.ks-menu--footer_practical a { opacity: 0.85; transition: opacity 0.2s; }
.ks-menu--footer_navigation a:hover,
.ks-menu--footer_practical a:hover,
.ks-menu--footer_navigation a:focus-visible,
.ks-menu--footer_practical a:focus-visible { opacity: 1; }

/* Mobile : « Prise de rdv » est déjà dans le menu burger */
@media (max-width:600px){
  header .wp-block-buttons{display:none}
  .wp-block-site-logo img{max-width:160px;height:auto}
}
/* Évite le défilement horizontal dû aux anneaux décoratifs */
.ks-ring-host{overflow-x:clip}
/* Sous-menu du menu haut : aligné à gauche sous le titre parent (bureau) */
@media (min-width:1101px){
  header .ks-menu--primary .sub-menu{left:-16px;right:auto;text-align:left;white-space:nowrap}
  header .ks-menu--primary .sub-menu li{text-align:left}
}
/* Menu haut : une seule ligne, centré, taille adaptée, couleur #2E1C2B */
@media (min-width:1101px){
  header .ks-header-nav{justify-content:center}
  header .ks-menu--primary .ks-menu__list{justify-content:center;text-align:center;flex-wrap:nowrap;font-size:clamp(.85rem,1.2vw,1.15rem)}
  header .ks-menu--primary .ks-menu__list a{white-space:nowrap}
}
header .ks-menu--primary,
header .ks-menu--primary a,
header .ks-menu--primary .ks-menu__toggle{color:#2E1C2B}

/* Menu de filtrage Formations / Stages / Ateliers — à ajouter à assets/css/custom.css */
.ks-filter{margin:2rem 0 0}
.ks-filter__list{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;list-style:none;margin:0;padding:0}
.ks-filter__link{display:inline-block;padding:.55rem 1.3rem;border:1.5px solid #2E1C2B;border-radius:999px;
  color:#2E1C2B;text-decoration:none;font-weight:500;font-size:.95rem;line-height:1.2;transition:background .2s,color .2s,border-color .2s}
.ks-filter__link:hover,.ks-filter__link:focus-visible{background:rgba(46,28,43,.08)}
.ks-filter__link.is-active{background:#2E1C2B;color:var(--wp--preset--color--cream,#F8E3BC);border-color:#2E1C2B}
@media (max-width:600px){.ks-filter__link{padding:.5rem 1rem;font-size:.9rem}}

/* Menu de filtrage Formations / Stages / Ateliers — à ajouter à assets/css/custom.css */
.ks-filter{margin:2rem 0 0}
.ks-filter__list{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;list-style:none;margin:0;padding:0}
.ks-filter__link{display:inline-block;padding:.55rem 1.3rem;border:1.5px solid #2E1C2B;border-radius:999px;
  color:#2E1C2B;text-decoration:none;font-weight:500;font-size:.95rem;line-height:1.2;transition:background .2s,color .2s,border-color .2s}
.ks-filter__link:hover,.ks-filter__link:focus-visible{background:rgba(46,28,43,.08)}
.ks-filter__link.is-active{background:#2E1C2B;color:var(--wp--preset--color--cream,#F8E3BC);border-color:#2E1C2B}
@media (max-width:600px){.ks-filter__link{padding:.5rem 1rem;font-size:.9rem}}

/* Date · lieu des ateliers / stages */
.ks-event-meta{margin:.25rem 0 0;font-size:.95rem;font-weight:500;color:var(--wp--preset--color--sauge-deep,#66455F)}

/* Témoignages — rendu « avis Google » — à ajouter à assets/css/custom.css */
.ks-tm{display:flex;align-items:center;gap:2rem}
.ks-tm__summary{flex:0 0 190px;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}
.ks-tm__label{font-size:1.5rem;letter-spacing:.02em;color:#2E1C2B}
.ks-tm__count{font-size:.9rem;color:#2E1C2B}
.ks-tm__brand{margin-top:.3rem;display:inline-flex}
.ks-tm__stars{display:inline-flex;gap:2px;font-size:1.1rem;line-height:1;color:#d9d3cf}
.ks-tm__stars .is-on{color:#FBBC04}
.ks-tm__stars--lg{font-size:1.7rem}
.ks-tm__viewport{position:relative;flex:1 1 auto;min-width:0}
.ks-tm__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.5rem .25rem 1rem}
.ks-tm__track::-webkit-scrollbar{display:none}
.ks-tm__card{flex:0 0 calc((100% - 2rem) / 3);min-width:260px;scroll-snap-align:start;box-sizing:border-box;
  background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(46,28,43,.12);padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem;color:#111}
.ks-tm__head{display:flex;align-items:center;gap:.8rem}
.ks-tm__avatar{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:1.25rem}
.ks-tm__who{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;line-height:1.25}
.ks-tm__name{font-size:1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ks-tm__date{font-size:.85rem;color:#8a8a8a}
.ks-tm__src{flex:0 0 auto;display:inline-flex;align-self:flex-start}
.ks-tm__text{font-size:.95rem;line-height:1.55;max-height:6.6em;overflow:hidden}
.ks-tm__text p{margin:0 0 .5em}
.ks-tm__card.is-open .ks-tm__text{max-height:none}
.ks-tm__more{align-self:flex-start;background:none;border:0;padding:0;color:#8a8a8a;font:inherit;font-size:.9rem;cursor:pointer}
.ks-tm__more:hover{color:#2E1C2B;text-decoration:underline}
.ks-tm__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:34px;border-radius:50%;border:1px solid #ddd;background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.15);font-size:1.4rem;line-height:1;color:#555;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 0 3px}
.ks-tm__nav[hidden]{display:none}
.ks-tm__nav--prev{left:-14px}.ks-tm__nav--next{right:-14px}
@media (max-width:900px){
  .ks-tm{flex-direction:column;align-items:stretch;gap:1rem}
  .ks-tm__summary{flex:none}
  .ks-tm__card{flex-basis:82%}
  .ks-tm__nav--prev{left:-6px}.ks-tm__nav--next{right:-6px}
}
/* Section « Ils en parlent » en bas de page */
.ks-tm-section{padding:80px 32px}
.ks-tm-section__inner{max-width:1180px;margin:0 auto}
.ks-tm-section__inner h2{margin:.2em 0 1.4rem}
/* Bandeau prochain événement */
.ks-next-event h3{margin:.2em 0}.ks-next-event h3 a{text-decoration:none}

/* Logo principal du site (en-tête) : plus grand */
header .wp-block-site-logo{flex:none}
header .wp-block-site-logo img,
header .wp-block-site-logo .custom-logo{
  width:auto !important;
  height:auto !important;
  max-height:150px !important;
  max-width:none !important;
}
@media (max-width:1100px){
  header .wp-block-site-logo img,
  header .wp-block-site-logo .custom-logo{max-height:96px !important}
}
@media (max-width:600px){
  header .wp-block-site-logo img,
  header .wp-block-site-logo .custom-logo{max-height:72px !important}
}
