/* Styles du plugin Synonymes FLE */
.synfle-lettre-liste {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.5rem 1rem;
    list-style: none;
    padding: 0;
    margin: 1.5rem 0;
}

.synfle-lettre-liste li {
    margin: 0;
    padding: 0;
}

.synfle-lettre-liste a {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    text-decoration: none;
    border-radius: 4px;
    color: #005599;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.synfle-lettre-liste a:hover {
    background-color: #eef5ff;
    color: #003366;
}

#synonyme-search {
    width: 100%;
    max-width: 400px;
    padding: 0.5rem 0.75rem;
    margin: 1rem 0;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 6px;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#synonyme-search:focus {
    border-color: #0073aa;
    box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.2);
    outline: none;
}


/* MOT */
	.synfle-verbe-info {
    background: #f0f8ff;
    border-left: 5px solid #0073aa;
    padding: 1.5rem;
    margin-bottom: 2rem;
    border-radius: 8px;
}

.synfle-verbe-info h3 {
    margin-top: 0;
    font-size: 1.3rem;
    color: #004466;
}

.synfle-verbe-links {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.synfle-btn {
    display: inline-block;
    background-color: #0073aa;
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 5px;
    text-decoration: none;
    transition: background-color 0.2s ease;
}

.synfle-btn:hover {
    background-color: #005a8c;
}

.synfle-definition {
    background: #fff9f0;
    border-left: 5px solid #e0a030;
    padding: 1.25rem;
    margin-bottom: 2rem;
    border-radius: 8px;
}

.synfle-definition h4 {
    margin-top: 0;
    font-size: 1.2rem;
    color: #c77400;
}

.synfle-definition p {
    margin: 0.5rem 0;
}

.synfle-synonymes {
    margin-top: 2rem;
}

.synfle-synonyme-groupe {
    margin-bottom: 1.5rem;
}

.synfle-synonyme-groupe h4 {
    margin-bottom: 0.3rem;
    color: #333;
    font-size: 1.1rem;
}

.synfle-synonyme-groupe p {
    margin: 0;
    line-height: 1.6;
}

.synfle-synonyme-groupe a {
    text-decoration: none;
    color: #005599;
    border-bottom: 1px dotted #ccc;
    transition: color 0.2s;
}

.synfle-synonyme-groupe a:hover {
    color: #002244;
    border-bottom-color: #002244;
}


.synfle-synonymes {
    padding: 1rem 1.5rem;
    background: #f7faff;
    border-radius: 8px;
    border-left: 4px solid #0090d0;
    margin-bottom: 2rem;
}

.synfle-synonymes h3 {
    margin-top: 0;
    font-size: 1.3rem;
    color: #004466;
}

.synfle-synonyme-groupe {
    margin-bottom: 1rem;
}

.synfle-synonyme-type {
    font-weight: bold;
    font-size: 0.95rem;
    color: #333;
    margin-bottom: 0.25rem;
}

.synfle-synonyme-list {
    font-size: 1rem;
    line-height: 1.6;
}

.synfle-synonyme-list a {
    color: #005599;
    text-decoration: none;
    border-bottom: 1px dotted #ccc;
    transition: color 0.2s;
}

.synfle-synonyme-list a:hover {
    color: #003355;
    border-bottom-color: #003355;
}

/* LISTE */
/* === Liste de mots en 4 colonnes, avec largeur mini par colonne === */
.synfle-lettre-liste{
  --navy:#0B1533; --mint:#A7F2DE; --mintDark:#39C3A4; --yellow:#FFD84D;
  list-style:none; margin:0; padding:1.25rem 1rem;

  display:grid;
  grid-template-columns: repeat(6, minmax(14ch, 1fr)); /* 4 cols, min 14ch */
  gap:.25rem 2rem;            /* lignes / colonnes */
  align-items:start;
  position:relative; isolation:isolate; /* pour les décos dessous */
}

.synfle-lettre-liste li{ margin:0; }
.synfle-lettre-liste a{
  display:block; padding:.125rem 0;
  color:var(--navy); text-decoration:none;
}
.synfle-lettre-liste a:hover{ text-decoration:underline; }
.synfle-lettre-liste a:focus-visible{ outline:2px solid currentColor; outline-offset:2px; }

/* Responsive : 3, 2, puis 1 colonne */
@media (max-width:1024px){
  .synfle-lettre-liste{ grid-template-columns:repeat(4, minmax(16ch,1fr)); }
}
@media (max-width:768px){
  .synfle-lettre-liste{ grid-template-columns:repeat(3, minmax(16ch,1fr)); }
}
@media (max-width:480px){
  .synfle-lettre-liste{ grid-template-columns:1fr; }
}

/* === Décor de fond (SVG inline en data URI) === */
.synfle-lettre-liste::before{
  content:"";
  position:absolute; inset:-80px auto auto -120px; /* bascule la position si besoin */
  width:520px; height:520px; pointer-events:none; z-index:-1;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600'><circle cx='300' cy='300' r='260' fill='%23A7F2DE' fill-opacity='0.35'/></svg>")
    no-repeat 0 0 / contain; /* grand cercle mint doux */
}

.synfle-lettre-liste::after{
  content:"";
  position:absolute; inset:-40px -60px auto auto; /* coin haut-droit */
  width:320px; height:220px; pointer-events:none; z-index:-1; opacity:.9;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240'><path d='M340 10 C 300 80 220 120 120 160' fill='none' stroke='%23FFD84D' stroke-width='14' stroke-linecap='round'/><path d='M345 35 C 305 100 220 140 100 180' fill='none' stroke='%23FFD84D' stroke-width='7' stroke-linecap='round'/></svg>")
    no-repeat 100% 0 / contain; /* double trait jaune */
}




/* ABCEDAIRE */

.synfle-abecedaire {
	margin: 0px;
  max-width: 1100px;
  padding: 0rem;
  text-align: center;
}

.synfle-titre {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 2rem;
  color: #0e1133; /* bleu foncé moderne */
}

.synfle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1rem;
}


.synfle-lettre {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.2rem;
  border-radius: 1rem;
  background: #f9f9ff;
  text-decoration: none;
  color: #0e1133;
  font-weight: 600;
  transition: all 0.3s ease;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  position: relative;
  overflow: hidden;
}

.synfle-lettre .lettre {
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff; /* bleu vif */
  transition: transform 0.3s ease, color 0.3s ease;
 
}

.synfle-lettre .nombre {
  font-size: 0.85rem;
  color: #666;
  margin-top: 0.6rem;
  transition: color 0.3s ease;
}

/* Halo coloré caché par défaut */
.synfle-lettre::after {
  content: "";
  position: absolute;
  width: 160%;
  height: 160%;
  background: radial-gradient(circle, rgba(28,45,227,0.05) 0%, rgba(0,198,255,0.01) 100%);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  border-radius: 50%;
  transition: transform 0.4s ease;
  z-index: 0;
}

.synfle-lettre:hover::after {
  transform: translate(-50%, -50%) scale(1);
}

.synfle-lettre:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.synfle-lettre:hover .lettre {
  transform: scale(1.3);
  color: #fff; /* accent bleu clair */
}

.synfle-lettre:hover .nombre {
  
 
  font-size:10px;
}