/* EL-PSY — composants CSS (aucun JavaScript). Préfixe .el- */
.el-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:44px;padding:var(--space-sm) 22px;border:0;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:15px;font-weight:600;line-height:1;text-decoration:none;cursor:pointer;transition:transform .15s ease}
.el-btn:active{transform:scale(.97)}
.el-btn:focus-visible,.el-field input:focus-visible,.el-field textarea:focus-visible,.el-slot:focus-visible,.el-nav a:focus-visible,.el-faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.el-btn--primary{background:var(--primary);color:var(--on-primary)}
.el-btn--secondary{background:var(--surface-2);color:var(--ink)}
.el-btn--on-spot{background:var(--canvas);color:var(--ink)}
.el-btn[disabled]{opacity:.5;cursor:not-allowed}
.el-link{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}

.el-tag{display:inline-flex;align-items:center;padding:6px var(--space-sm);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink);font-family:var(--font-sans);font-size:13px;font-weight:500;line-height:1.3;letter-spacing:.2px}
.el-tag--outline{background:none;box-shadow:inset 0 0 0 1px var(--hairline-strong)}
.el-card--featured .el-tag{background:var(--surface-1)}

.el-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-xl);border-radius:var(--radius-xl);background:var(--surface-1);color:var(--ink);font-family:var(--font-sans)}
.el-card--featured{background:var(--surface-2)}
.el-card__title{margin:0;font-family:var(--font-display);font-size:28px;font-weight:500;line-height:1.15;letter-spacing:-.5px}
.el-card__text{margin:0;font-size:16px;line-height:1.55;color:var(--ink-muted)}
.el-card__meta{margin-top:auto;padding-top:var(--space-sm);font-size:14px;font-weight:500;color:var(--ink)}

.el-spot{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-xxl);padding:var(--space-xl);border-radius:var(--radius-xxl);background:var(--spot-sage);color:var(--on-spot);font-family:var(--font-sans)}
.el-spot--terracotta{background:var(--spot-terracotta)}
.el-spot--sable{background:var(--spot-sable)}
.el-spot--teal{background:var(--teal);color:var(--on-teal)}
.el-spot__title{margin:0;font-family:var(--font-display);font-size:40px;font-weight:500;line-height:1.08;letter-spacing:-1px}
.el-spot__text{margin:0;font-size:18px;line-height:1.5}

.el-field{display:flex;flex-direction:column;gap:var(--space-xs);font-family:var(--font-sans)}
.el-field label{font-size:14px;font-weight:500;color:var(--ink)}
.el-field input,.el-field textarea{min-height:44px;box-sizing:border-box;padding:var(--space-sm) var(--space-md);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);background:var(--surface-1);color:var(--ink);font:400 16px/1.4 var(--font-sans)}
.el-field input::placeholder,.el-field textarea::placeholder{color:var(--ink-muted)}
.el-field__hint{font-size:13px;color:var(--ink-muted)}
.el-field--error input{border-color:var(--danger)}
.el-field--error .el-field__hint{color:var(--danger);font-weight:500}

.el-slot{min-width:76px;min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--hairline-strong);border-radius:var(--radius-md);background:var(--surface-1);color:var(--ink);font:500 14px/1 var(--font-sans);cursor:pointer}
.el-slot[aria-pressed="true"]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.el-slot[disabled]{background:none;border-style:dashed;color:var(--ink-muted);text-decoration:line-through;cursor:not-allowed}

.el-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);min-height:56px;padding:6px 6px 6px var(--space-lg);border-radius:var(--radius-pill);background:var(--surface-1);box-shadow:var(--shadow-float);font-family:var(--font-sans)}
.el-nav__brand{font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.5px;color:var(--ink);text-decoration:none}
.el-nav__links{display:flex;gap:var(--space-lg);margin:0;padding:0;list-style:none}
.el-nav__links a{font-size:14px;font-weight:500;color:var(--ink);text-decoration:none}
.el-nav__links a[aria-current="page"]{color:var(--accent);text-decoration:underline;text-underline-offset:6px}

.el-faq{border-bottom:1px solid var(--hairline);font-family:var(--font-sans);color:var(--ink)}
.el-faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;font-size:22px;font-weight:600;line-height:1.25;letter-spacing:-.3px;cursor:pointer;list-style:none}
.el-faq summary::-webkit-details-marker{display:none}
.el-faq summary::after{content:"+";flex:none;width:32px;height:32px;border-radius:50%;background:var(--surface-2);font-weight:400;font-size:20px;line-height:32px;text-align:center}
.el-faq[open] summary::after{content:"–"}
.el-faq p{margin:0;padding:0 0 var(--space-lg);max-width:60ch;font-size:16px;line-height:1.55;color:var(--ink-muted)}
