/* Catalogue + formulaire d'inscription — site public (espace pro).
 *
 * Portée restreinte à .psycol-cat / .psycol-modal pour ne rien casser dans
 * les mises en page Elementor. À l'inverse, les propriétés susceptibles
 * d'être héritées du thème (boutons, champs, marges) sont redéclarées
 * explicitement : le thème habille sinon les boutons du formulaire.
 */

.psycol-cat,
.psycol-row,
.psycol-modal {
  --psycol-violet: #7c3aed;
  --psycol-violet-dark: #6d28d9;
  --psycol-violet-soft: #f5f3ff;
  --psycol-border: #e7e5eb;
  --psycol-text: #18181b;
  --psycol-muted: #71717a;
  --psycol-error: #dc2626;
  --psycol-radius: 14px;

  font-family: inherit;
  color: var(--psycol-text);
}

.psycol-cat *,
.psycol-modal * {
  box-sizing: border-box;
}

/* ── Onglets ──────────────────────────────────────────────────────────── */

/* Onglets en CSS pure : un groupe de boutons radio pilote l'affichage des
   panneaux via `:checked ~`. Aucun JavaScript, et la navigation au clavier
   (flèches) fonctionne nativement dans un groupe de radios. */

.psycol-tabs {
  --psycol-violet: #7c3aed;
  --psycol-violet-dark: #6d28d9;
  --psycol-violet-soft: #f5f3ff;
  --psycol-border: #e7e5eb;
  --psycol-muted: #71717a;

  margin: 0 0 28px;
  font-family: inherit;
}

.psycol-tabs * { box-sizing: border-box; }

/* Hors écran mais focusable : indispensable au pilotage clavier. */
.psycol-tabs__radio {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.psycol-tabs__nav {
  display: flex;
  gap: 6px;
  margin-bottom: 24px;
  padding: 5px;
  background: #f4f4f5;
  border-radius: 12px;
  overflow-x: auto;
  scrollbar-width: none;
}

.psycol-tabs__nav::-webkit-scrollbar { display: none; }

.psycol-tabs .psycol-tabs__tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 0;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: #52525b;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.psycol-tabs .psycol-tabs__tab:hover { color: var(--psycol-violet-dark); }

.psycol-tabs__count {
  display: inline-block;
  min-width: 20px;
  padding: 1px 6px;
  border-radius: 999px;
  background: rgba(113, 113, 122, .16);
  font-size: 11px;
  font-weight: 700;
  text-align: center;
  transition: background .15s ease, color .15s ease;
}

.psycol-tabs__panel { display: none; }

/* Trois règles par position : les identifiants sont générés dynamiquement,
   on s'appuie donc sur le rang plutôt que sur un sélecteur d'id. */
.psycol-tabs__radio:nth-of-type(1):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(1),
.psycol-tabs__radio:nth-of-type(2):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(2),
.psycol-tabs__radio:nth-of-type(3):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(3),
.psycol-tabs__radio:nth-of-type(4):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(4) {
  background: #fff;
  color: var(--psycol-violet-dark);
  box-shadow: 0 1px 3px rgba(24, 24, 27, .1);
}

.psycol-tabs__radio:nth-of-type(1):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(1) .psycol-tabs__count,
.psycol-tabs__radio:nth-of-type(2):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(2) .psycol-tabs__count,
.psycol-tabs__radio:nth-of-type(3):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(3) .psycol-tabs__count,
.psycol-tabs__radio:nth-of-type(4):checked ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(4) .psycol-tabs__count {
  background: var(--psycol-violet-soft);
  color: var(--psycol-violet-dark);
}

.psycol-tabs__radio:nth-of-type(1):checked ~ .psycol-tabs__panels > .psycol-tabs__panel:nth-child(1),
.psycol-tabs__radio:nth-of-type(2):checked ~ .psycol-tabs__panels > .psycol-tabs__panel:nth-child(2),
.psycol-tabs__radio:nth-of-type(3):checked ~ .psycol-tabs__panels > .psycol-tabs__panel:nth-child(3),
.psycol-tabs__radio:nth-of-type(4):checked ~ .psycol-tabs__panels > .psycol-tabs__panel:nth-child(4) {
  display: block;
}

/* Anneau de focus reporté sur l'étiquette, puisque le radio est hors écran. */
.psycol-tabs__radio:nth-of-type(1):focus-visible ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(1),
.psycol-tabs__radio:nth-of-type(2):focus-visible ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(2),
.psycol-tabs__radio:nth-of-type(3):focus-visible ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(3),
.psycol-tabs__radio:nth-of-type(4):focus-visible ~ .psycol-tabs__nav > .psycol-tabs__tab:nth-child(4) {
  outline: 2px solid var(--psycol-violet);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  .psycol-tabs .psycol-tabs__tab { flex: 0 0 auto; padding: 9px 14px; font-size: 13px; }
}

/* ── Dépliants ────────────────────────────────────────────────────────── */

/* <details> natif : ouverture sans JavaScript, et sémantique correcte. */

.psycol-acc {
  background: #fff;
  border: 1px solid var(--psycol-border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.psycol-acc[open] {
  border-color: #d8ccf5;
  box-shadow: 0 8px 24px -14px rgba(76, 29, 149, .3);
}

.psycol-acc.is-closed { opacity: .62; }

.psycol-acc__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  cursor: pointer;
  list-style: none;
}

/* Retire le triangle natif : on affiche notre propre chevron. */
.psycol-acc__summary::-webkit-details-marker { display: none; }
.psycol-acc__summary::marker { content: ''; }
.psycol-acc__summary:hover { background: #fcfcfd; }

.psycol-acc__heading {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.psycol-acc__title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  color: #18181b;
}

.psycol-acc__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--psycol-muted);
}

.psycol-acc .psycol-acc__meta svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  color: var(--psycol-violet);
}

.psycol-acc__aside {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.psycol-acc__chevron {
  display: flex;
  color: #a1a1aa;
  transition: transform .2s ease;
}

.psycol-acc[open] .psycol-acc__chevron { transform: rotate(180deg); }

.psycol-acc__body {
  padding: 0 20px 20px;
  border-top: 1px solid #f4f4f5;
}

.psycol-acc__desc {
  padding-top: 14px;
  font-size: 14px;
  line-height: 1.65;
  color: #52525b;
}

.psycol-acc__desc p { margin: 0 0 10px; }

.psycol-acc__actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 4px;
}

/* Le bouton d'inscription est partagé avec les cartes. */
.psycol-acc .psycol-card__cta {
  display: inline-block;
  cursor: pointer;
  background: var(--psycol-violet);
  color: #fff;
  border-radius: 9px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.psycol-acc .psycol-card__cta:hover,
.psycol-acc .psycol-card__cta:focus {
  background: var(--psycol-violet-dark);
  color: #fff;
  text-decoration: none;
}

@media (max-width: 560px) {
  .psycol-acc__summary { flex-direction: column; align-items: flex-start; gap: 10px; }
  .psycol-acc__aside { width: 100%; justify-content: space-between; }
}

/* ── Grille de fiches ─────────────────────────────────────────────────── */

.psycol-cat {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
  margin: 0 0 24px;
}

.psycol-cat--single {
  grid-template-columns: minmax(0, 520px);
}

/* Bandeaux et dépliants occupent toute la largeur et s'empilent. */
.psycol-cat--stack {
  grid-template-columns: 1fr;
  gap: 14px;
}

.psycol-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--psycol-border);
  border-radius: var(--psycol-radius);
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.psycol-card:hover {
  border-color: #d8ccf5;
  box-shadow: 0 8px 24px -12px rgba(76, 29, 149, .28);
  transform: translateY(-2px);
}

.psycol-card.is-closed { opacity: .62; }
.psycol-card.is-closed:hover { transform: none; box-shadow: none; }

.psycol-card__body {
  flex: 1;
  padding: 22px 22px 18px;
}

.psycol-card__title {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.35;
  font-weight: 700;
  color: var(--psycol-text);
}

.psycol-card__meta {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--psycol-muted);
}

.psycol-cat .psycol-card__meta svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: var(--psycol-violet);
}

.psycol-card__desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #52525b;
}

.psycol-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 22px;
  border-top: 1px solid #f4f4f5;
  background: #fcfcfd;
}

.psycol-card__price {
  font-size: 16px;
  font-weight: 700;
  color: var(--psycol-violet-dark);
  white-space: nowrap;
}

.psycol-card__price.is-free {
  color: #15803d;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.psycol-card__closed {
  font-size: 13px;
  font-style: italic;
  color: var(--psycol-muted);
}

.psycol-cat .psycol-card__cta {
  display: inline-block;
  background: var(--psycol-violet);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background .15s ease;
}

.psycol-cat .psycol-card__cta:hover,
.psycol-cat .psycol-card__cta:focus {
  background: var(--psycol-violet-dark);
  color: #fff;
  text-decoration: none;
}

/* ── Bandeau ──────────────────────────────────────────────────────────── */

.psycol-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--psycol-border);
  border-radius: var(--psycol-radius);
  padding: 20px 22px;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.psycol-row:hover {
  border-color: #d8ccf5;
  box-shadow: 0 8px 24px -14px rgba(76, 29, 149, .3);
}

.psycol-row.is-closed { opacity: .62; }
.psycol-row.is-closed:hover { box-shadow: none; }

.psycol-row__body {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}

.psycol-row__title {
  margin: 0;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 700;
  color: var(--psycol-text);
}

.psycol-row__desc {
  font-size: 14px;
  line-height: 1.65;
  color: #52525b;
}

.psycol-row__desc p { margin: 0 0 9px; }
.psycol-row__desc p:last-child { margin-bottom: 0; }
.psycol-row__desc ul, .psycol-row__desc ol { margin: 0 0 9px; padding-left: 20px; }

/* La colonne de droite : prix et bouton, séparés par un filet vertical. */
.psycol-row__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  align-self: stretch;
  padding-left: 24px;
  border-left: 1px solid #f1f0f4;
}

/* ── Repli du texte long ──────────────────────────────────────────────────
   Case à cocher hors écran plutôt que JavaScript, et hauteur maximale
   plutôt que `line-clamp` : le texte conserve ses paragraphes et ses listes.
   Le bouton n'est présent dans le HTML que si le texte dépasse le seuil,
   décision prise côté PHP — le CSS ne sait pas mesurer un débordement. */

.psycol-fold__toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.psycol-fold {
  position: relative;
  max-height: 6.6em;
  overflow: hidden;
  transition: max-height .25s ease;
}

/* Estompe vers le fond de la fiche : aucune phrase ne s'arrête net. */
.psycol-fold::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2.6em;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 82%);
  pointer-events: none;
  transition: opacity .2s ease;
}

/* Valeur bornée plutôt que `none` : sans elle, la transition ne se joue pas. */
.psycol-fold__toggle:checked ~ .psycol-fold { max-height: 60em; }
.psycol-fold__toggle:checked ~ .psycol-fold::after { opacity: 0; }

.psycol-row .psycol-fold__btn {
  align-self: flex-start;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 600;
  color: var(--psycol-violet-dark);
  cursor: pointer;
  border-bottom: 1px solid rgba(109, 40, 217, .3);
}

.psycol-fold__less { display: none; }
.psycol-fold__toggle:checked ~ .psycol-fold__btn .psycol-fold__more { display: none; }
.psycol-fold__toggle:checked ~ .psycol-fold__btn .psycol-fold__less { display: inline; }

.psycol-fold__toggle:focus-visible ~ .psycol-fold__btn {
  outline: 2px solid var(--psycol-violet);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .psycol-fold,
  .psycol-fold::after,
  .psycol-row { transition: none; }
}

/* Sur téléphone, la fiche s'empile : le prix et le bouton passent sous le
   texte, le filet de séparation bascule de vertical à horizontal. */
@media (max-width: 560px) {
  .psycol-row {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px 16px 14px;
  }

  .psycol-row__aside {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding-left: 0;
    padding-top: 13px;
    border-left: 0;
    border-top: 1px solid #f1f0f4;
  }

  .psycol-row__title { font-size: 16px; }
}

/* Le bouton d'inscription est partagé avec les cartes. */
.psycol-row .psycol-card__cta {
  display: inline-block;
  cursor: pointer;
  background: var(--psycol-violet);
  color: #fff;
  border-radius: 9px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.psycol-row .psycol-card__cta:hover,
.psycol-row .psycol-card__cta:focus {
  background: var(--psycol-violet-dark);
  color: #fff;
  text-decoration: none;
}

/* ── Popup ────────────────────────────────────────────────────────────── */

/* ── Enveloppe d'une fiche ────────────────────────────────────────────────
   Regroupe l'interrupteur, la fiche et sa popup. L'interrupteur doit
   précéder la popup : c'est le sélecteur de voisinage qui les relie. */
.psycol-item {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.psycol-item > .psycol-row,
.psycol-item > .psycol-card,
.psycol-item > .psycol-acc { flex: 1; }

/* Hors écran mais focusable : la popup reste ouvrable au clavier. */
.psycol-modal__switch {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Fermée par défaut, ouverte quand sa case est cochée — et rien d'autre.
   Ni fragment d'URL, ni classe posée par un script : un <label> coche et
   décoche la case, aussi bien depuis le bouton d'inscription que depuis la
   croix ou le fond assombri. Aucun script de thème ne peut s'interposer. */
.psycol-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100000; /* au-dessus des en-têtes collants d'Elementor */
  align-items: flex-start;
  justify-content: center;
  padding: 5vh 16px;
  overflow-y: auto;
}

.psycol-modal__switch:checked ~ .psycol-modal { display: flex; }

.psycol-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(24, 24, 27, .55);
  opacity: 0;
  cursor: pointer;
  transition: opacity .18s ease;
}

.psycol-modal__switch:checked ~ .psycol-modal .psycol-modal__backdrop { opacity: 1; }

.psycol-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 560px;
  margin: auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 24px 60px -12px rgba(24, 24, 27, .35);
  opacity: 0;
  transform: translateY(12px) scale(.985);
  transition: opacity .18s ease, transform .18s ease;
}

.psycol-modal__switch:checked ~ .psycol-modal .psycol-modal__dialog {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .psycol-modal__backdrop,
  .psycol-modal__dialog { transition: none; }
}

/* Empêche la page de défiler derrière la popup */
html.psycol-modal-open { overflow: hidden; }

.psycol-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid #f4f4f5;
}

.psycol-modal__eyebrow {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--psycol-violet);
}

.psycol-modal__title {
  margin: 0;
  font-size: 19px;
  line-height: 1.3;
  font-weight: 700;
}

.psycol-modal__meta {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--psycol-muted);
}

.psycol-modal .psycol-modal__close {
  flex-shrink: 0;
  background: transparent;
  border: 0;
  padding: 6px;
  margin: -6px -6px 0 0;
  color: #a1a1aa;
  cursor: pointer;
  border-radius: 8px;
  line-height: 0;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}

.psycol-modal .psycol-modal__close:hover {
  background: #f4f4f5;
  color: #3f3f46;
}

/* L'anneau de focus est reporté sur le bouton visible, la case étant hors écran. */
.psycol-modal__switch:focus-visible ~ .psycol-row .psycol-card__cta,
.psycol-modal__switch:focus-visible ~ .psycol-card .psycol-card__cta,
.psycol-modal__switch:focus-visible ~ .psycol-acc .psycol-card__cta {
  outline: 2px solid var(--psycol-violet);
  outline-offset: 3px;
}
.psycol-modal .psycol-modal__close svg { width: 20px; height: 20px; flex: 0 0 auto; }

.psycol-modal__body { padding: 20px 24px 24px; }

/* ── Formulaire ───────────────────────────────────────────────────────── */

/* Mode compact : le formulaire seul, hors popup */
.psycol-ins {
  --psycol-violet: #7c3aed;
  --psycol-violet-dark: #6d28d9;
  --psycol-violet-soft: #f5f3ff;
  --psycol-border: #e7e5eb;
  --psycol-text: #18181b;
  --psycol-muted: #71717a;
  --psycol-error: #dc2626;

  background: #fff;
  border: 1px solid var(--psycol-border);
  border-radius: 14px;
  padding: 24px;
  margin: 0 0 24px;
  font-family: inherit;
  color: var(--psycol-text);
}

.psycol-ins * { box-sizing: border-box; }

.psycol-ins__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

@media (max-width: 560px) {
  .psycol-ins__grid { grid-template-columns: 1fr; }
  .psycol-modal { padding: 0; }
  .psycol-modal__dialog { border-radius: 0; min-height: 100%; max-width: none; }
}

.psycol-ins__field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
}

.psycol-ins__field--full { grid-column: 1 / -1; }

.psycol-ins__field > span {
  font-size: 13px;
  font-weight: 600;
  color: #3f3f46;
}

.psycol-ins__field small { font-weight: 400; color: var(--psycol-muted); }

.psycol-ins__form input[type="text"],
.psycol-ins__form input[type="email"],
.psycol-ins__form input[type="tel"] {
  width: 100%;
  border: 1px solid var(--psycol-border);
  border-radius: 9px;
  padding: 10px 12px;
  font-size: 15px; /* ≥ 16px évite le zoom auto iOS ; 15px reste confortable */
  font-family: inherit;
  line-height: 1.4;
  color: var(--psycol-text);
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.psycol-ins__form input:focus {
  outline: none;
  border-color: var(--psycol-violet);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .13);
}

.psycol-ins__form [data-error-for] {
  font-style: normal;
  font-size: 12px;
  color: var(--psycol-error);
}

.psycol-ins__form [data-error-for]:empty { display: none; }
.psycol-ins__form .has-error input { border-color: var(--psycol-error); }

/* Honeypot : hors écran plutôt que display:none, que certains bots détectent */
.psycol-ins__hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.psycol-ins__engagement {
  margin-top: 18px;
  background: var(--psycol-violet-soft);
  border-radius: 11px;
  padding: 14px 16px;
}

.psycol-ins__check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  cursor: pointer;
}

.psycol-ins__check input[type="checkbox"] {
  margin: 3px 0 0;
  width: 17px;
  height: 17px;
  accent-color: var(--psycol-violet);
  flex-shrink: 0;
}

.psycol-ins__check a {
  color: var(--psycol-violet-dark);
  font-weight: 600;
  text-decoration: underline;
}

.psycol-ins__warning {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(124, 58, 237, .16);
  font-size: 13px;
  line-height: 1.5;
  color: #4c1d95;
}

.psycol-ins__form .psycol-ins__warning svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  margin-top: 1px;
  color: #d97706;
}

.psycol-ins__form .psycol-ins__submit {
  display: block;
  margin-top: 16px;
  width: 100%;
  background: var(--psycol-violet);
  color: #fff;
  border: 0;
  border-radius: 10px;
  padding: 13px 18px;
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  transition: background .15s ease;
}

.psycol-ins__form .psycol-ins__submit:hover:not(:disabled) { background: var(--psycol-violet-dark); }
.psycol-ins__form .psycol-ins__submit:disabled { opacity: .6; cursor: not-allowed; }

.psycol-ins__privacy {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--psycol-muted);
  text-align: center;
}

.psycol-ins__status { margin-top: 12px; font-size: 14px; }
.psycol-ins__status:empty { display: none; }

.psycol-ins__status.is-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
  padding: 10px 12px;
  border-radius: 9px;
}

/* ── Confirmation ─────────────────────────────────────────────────────── */

.psycol-ins__success {
  text-align: center;
  padding: 12px 4px 4px;
  outline: none;
}

.psycol-ins__success-icon {
  width: 46px;
  height: 46px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #dcfce7;
  color: #15803d;
  display: flex;
  align-items: center;
  justify-content: center;
}

.psycol-ins__success .psycol-ins__success-icon svg { width: 22px; height: 22px; }

.psycol-ins__success strong {
  display: block;
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 6px;
}

.psycol-ins__success p {
  margin: 0 0 6px;
  font-size: 14px;
  line-height: 1.55;
  color: #52525b;
}

.psycol-ins__ref { font-size: 13px !important; color: var(--psycol-muted) !important; }

.psycol-ins__success .psycol-ins__done {
  margin-top: 14px;
  background: #f4f4f5;
  color: #3f3f46;
  border: 0;
  border-radius: 9px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
}

.psycol-ins__success .psycol-ins__done:hover { background: #e4e4e7; }

.psycol-cat__empty,
.psycol-ins__empty {
  margin: 0;
  font-size: 14px;
  color: #71717a;
  font-style: italic;
}

.psycol-ins__error { color: #dc2626; font-size: 13px; }
