/**
 * SW Médias — Top Finance — Styles spécifiques.
 */

/* Buttons */
.sw-button { display: inline-block; padding: .75rem 1.5rem; border-radius: .375rem; font-weight: 600; text-decoration: none; transition: all .15s ease; cursor: pointer; border: 0; line-height: 1.4; }
.sw-button:hover { text-decoration: none; transform: translateY(-1px); }
.sw-button--primary { background: #1E40AF; color: #fff; }
.sw-button--primary:hover { background: #1E3A8A; color: #fff; }

/* Front hero finance */
.sw-front__hero--finance { background: linear-gradient(135deg, #1E3A8A 0%, #0F172A 100%); color: #fff; border-radius: .75rem; padding: 3rem 1.5rem; margin: 1rem 0 3rem; text-align: center; }
.sw-front__hero--finance .sw-front__title { color: #fff; }
.sw-front__hero--finance .sw-front__tagline { color: rgba(255,255,255,.92); font-size: 1.125rem; }

/* Dossier */
.sw-dossier { max-width: 880px; padding-top: 1.5rem; }
.sw-dossier__title { margin-bottom: 1rem; }
.sw-dossier__meta { display: flex; gap: 1rem; flex-wrap: wrap; color: #64748B; font-size: .875rem; margin-bottom: 1.5rem; }
.sw-dossier__meta .sw-dossier__expert { color: #1E40AF; font-weight: 600; }

.sw-dossier__summary { background: #EFF6FF; border-left: 4px solid #1E40AF; padding: 1.25rem 1.5rem; margin: 1.5rem 0; border-radius: 0 .375rem .375rem 0; }
.sw-dossier__summary-title { font-size: 1.0625rem; margin: 0 0 .5rem; color: #1E40AF; }

.sw-dossier__keypoints { margin: 2rem 0; padding: 1.25rem 1.5rem; background: #F8FAFC; border-radius: .5rem; border: 1px solid #E2E8F0; }

.sw-dossier__hero { margin: 0 0 2rem; border-radius: .5rem; overflow: hidden; }
.sw-dossier__hero img { aspect-ratio: 16/9; object-fit: cover; }
.sw-dossier__content { font-size: 1.0625rem; line-height: 1.75; }

/* Lists */
.sw-list-checks { list-style: none; padding: 0; margin: 0; }
.sw-list-checks li { position: relative; padding: .375rem 0 .375rem 1.75rem; }
.sw-list-checks li::before { content: "✓"; position: absolute; left: 0; top: .375rem; color: #1E40AF; font-weight: 700; font-size: 1.125rem; }

/* FAQ */
.sw-dossier__faq, .sw-faq-list { margin-top: 2.5rem; }
.sw-faq-list dt { font-weight: 700; color: #0F172A; padding: 1rem 0 .375rem; border-top: 1px solid #E2E8F0; }
.sw-faq-list dt:first-child { border-top: 0; }
.sw-faq-list dd { margin: 0 0 1rem; color: #475569; font-size: .9375rem; line-height: 1.7; }

/* Glossaire single */
.sw-glossaire { max-width: 760px; padding-top: 1.5rem; }
.sw-glossaire__title { margin-bottom: .5rem; }
.sw-glossaire__source { color: #64748B; font-size: .875rem; font-style: italic; margin-bottom: 1.5rem; }
.sw-glossaire__short { background: #F1F5F9; padding: 1rem 1.25rem; margin-bottom: 1.5rem; border-radius: .375rem; font-size: 1.0625rem; }
.sw-glossaire__short p { margin: 0; }
.sw-glossaire__content { font-size: 1.0625rem; line-height: 1.75; }
.sw-related-terms { list-style: none; padding: 0; margin: 0; display: flex; gap: .5rem; flex-wrap: wrap; }
.sw-related-terms a { display: inline-block; background: #EFF6FF; color: #1E40AF; padding: .375rem .875rem; border-radius: 999px; font-weight: 500; }
.sw-related-terms a:hover { background: #DBEAFE; text-decoration: none; }

/* CTA comparateur */
.sw-cta-comparateur { margin: 3rem 0 2rem; padding: 2rem; background: linear-gradient(135deg, #1E40AF 0%, #2563EB 100%); border-radius: .75rem; color: #fff; }
.sw-cta-comparateur__inner { max-width: 640px; margin: 0 auto; text-align: center; }
.sw-cta-comparateur__title { color: #fff; margin: 0 0 .5rem; font-size: 1.375rem; }
.sw-cta-comparateur__lead { color: rgba(255,255,255,.92); margin: 0 0 1.25rem; }
.sw-cta-comparateur .sw-button--primary { background: #fff; color: #1E40AF; }
.sw-cta-comparateur .sw-button--primary:hover { background: #F1F5F9; color: #1E3A8A; }

/* Front glossaire list */
.sw-front__glossaire-intro { color: #475569; margin-bottom: 1rem; }
.sw-glossaire-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .5rem; }
.sw-glossaire-list a { display: block; padding: .5rem .75rem; background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: .25rem; color: #1E40AF; font-size: .9375rem; }
.sw-glossaire-list a:hover { background: #EFF6FF; text-decoration: none; }
.sw-front__glossaire-cta { margin-top: 1.5rem; text-align: right; font-weight: 600; }
