/* Guides : mise en page éditoriale (chargée en plus de styles.css). */
.g-hero { background: radial-gradient(900px 420px at 85% -20%, #dcd8ff 0%, transparent 60%), radial-gradient(600px 300px at -10% 120%, #ffe3d8 0%, transparent 60%), var(--canvas); padding: 34px 0 46px; border-bottom: 1px solid var(--line); }
.g-hero h1 { font-size: clamp(32px, 4.6vw, 52px); max-width: 860px; margin: 14px 0; }
.g-hero .lead { max-width: 720px; margin-bottom: 18px; }
.pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pill { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: #fff; color: var(--muted); box-shadow: var(--shadow); }
.pill.brand { background: var(--brand); color: #fff; }

.g-layout { display: grid; gap: 40px; grid-template-columns: 250px minmax(0, 1fr); padding-top: 36px; padding-bottom: 70px; }
@media (max-width: 900px) { .g-layout { grid-template-columns: 1fr; gap: 0; } .g-side { display: none; } }
.g-side nav { position: sticky; top: 92px; font-size: 14px; }
.g-side strong { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; }
.g-side a { display: block; padding: 7px 12px; border-left: 2px solid var(--line); color: var(--muted); text-decoration: none; }
.g-side a:hover, .g-side a.on { color: var(--brand); border-color: var(--brand); background: var(--brand-soft); border-radius: 0 10px 10px 0; }

.article { max-width: 740px; font-size: 17px; }
.article p, .article li { line-height: 1.75; }
.article h2 { display: flex; align-items: center; gap: 12px; font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -.02em; margin: 48px 0 14px; scroll-margin-top: 90px; }
.article h2 .n { flex: none; display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: linear-gradient(135deg, var(--brand), #7c6cf6); color: #fff; font-size: 17px; }
.article h3 { font-size: 19px; margin: 26px 0 8px; }
.article ul { list-style: none; padding: 0; }
.article ul li { position: relative; padding-left: 30px; margin: 8px 0; }
.article ul li::before { content: ""; position: absolute; left: 4px; top: .5em; width: 18px; height: 18px; border-radius: 50%; background: var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.6L12 5.4' fill='none' stroke='%234f46e5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat; }

.essentiel { background: #fff; border-radius: 22px; padding: 22px 24px; box-shadow: var(--shadow); border: 1px solid #e3e0ff; }
.essentiel .t { font-weight: 800; font-size: 18px; margin: 0 0 4px; }
.essentiel ul { margin: 0; }

.callout { display: flex; gap: 14px; border-radius: 18px; padding: 16px 18px; margin: 22px 0; }
.callout .ic { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; font-size: 19px; }
.callout p { margin: 0; }
.callout.tip { background: var(--brand-soft); } .callout.tip .ic { background: #fff; }
.callout.warn { background: #fff6e5; } .callout.warn .ic { background: #ffe7b8; }
.callout.law { background: #eef6f3; } .callout.law .ic { background: #d6ece4; }

.steps3 { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); margin: 18px 0; }
.steps3 > div { background: #fff; border-radius: 18px; padding: 18px; box-shadow: var(--shadow); border-top: 4px solid var(--brand); }
.steps3 > div:nth-child(2) { border-top-color: #7c6cf6; }
.steps3 > div:nth-child(3) { border-top-color: var(--coral); }
.steps3 .k { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.steps3 h3 { margin: 2px 0 6px; font-size: 17px; }
.steps3 ul li { font-size: 15px; line-height: 1.6; }

.stats { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); margin: 18px 0; }
.stat { background: linear-gradient(160deg, #fff, var(--brand-soft)); border-radius: 18px; padding: 16px; box-shadow: var(--shadow); }
.stat b { display: block; font-size: 30px; letter-spacing: -.03em; color: var(--brand); line-height: 1.1; }
.stat span { font-size: 14px; color: var(--muted); line-height: 1.4; display: block; margin-top: 4px; }

.vs { width: 100%; border-collapse: separate; border-spacing: 0; margin: 18px 0; font-size: 15px; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); }
.vs th { padding: 12px 14px; text-align: left; color: #fff; font-size: 14px; }
.vs th:first-child { background: #12a17a; }
.vs th:last-child { background: #e0574f; }
.vs td { padding: 11px 14px; background: #fff; border-bottom: 1px solid var(--line); vertical-align: top; width: 50%; line-height: 1.5; }

.g-cta { margin: 44px 0; border-radius: 26px; padding: 28px; color: #fff; background: radial-gradient(500px 220px at 90% 0%, #8b7dff 0%, transparent 70%), linear-gradient(135deg, #3d34c9, #4f46e5); display: grid; gap: 14px; }
.g-cta .t { margin: 0; font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.g-cta p { margin: 0; opacity: .92; }
.g-cta .row { display: flex; flex-wrap: wrap; gap: 10px; }
.g-cta .btn { background: #fff; color: var(--brand); }
.g-cta .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }

.related { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin: 16px 0 28px; }
.related a { display: block; text-decoration: none; background: #fff; border-radius: 18px; padding: 18px; box-shadow: var(--shadow); border: 1px solid var(--line); }
.related a:hover { border-color: var(--brand); }
.related small { color: var(--brand); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }
.related b { display: block; margin: 4px 0; }
.related span { color: var(--muted); font-size: 15px; }

.readbar { position: fixed; top: 0; left: 0; height: 4px; width: 0; background: linear-gradient(90deg, var(--brand), var(--coral)); z-index: 20; }

/* Liste des guides */
.g-list { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); margin-top: 8px; }
.g-card { display: block; text-decoration: none; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); transition: transform .15s, border-color .15s; }
.g-card:hover { transform: translateY(-3px); border-color: var(--brand); }
.g-card .cover { height: 150px; display: grid; place-items: center; background: radial-gradient(260px 140px at 80% 10%, #8b7dff 0%, transparent 70%), linear-gradient(135deg, #3d34c9, #4f46e5); }
.g-card .cover.coral { background: radial-gradient(260px 140px at 80% 10%, #ffc2ad 0%, transparent 70%), linear-gradient(135deg, #e86a4a, #ff8a65); }
.g-card .cover.teal { background: radial-gradient(260px 140px at 80% 10%, #8fe3cc 0%, transparent 70%), linear-gradient(135deg, #0f8f6c, #12a17a); }
.g-card .body { padding: 20px 22px 22px; }
.g-card .tag { font-size: 12px; font-weight: 700; color: var(--brand); text-transform: uppercase; letter-spacing: .06em; }
.g-card h3 { margin: 6px 0 8px; font-size: 20px; letter-spacing: -.01em; }
.g-card p { margin: 0 0 16px; color: var(--muted); }
.g-card .go { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #fff; background: var(--brand); border-radius: 999px; padding: 10px 18px; font-size: 15px; }
.g-card.soon { opacity: .7; pointer-events: none; }
.g-card.soon .go { background: var(--line); color: var(--muted); }
