/* Shared article discussion, using the existing 99outils design tokens. */
.o99-comments {
 --brand:var(--o-blue,#0060A1); --brand-dark:var(--o-hover,#004B7D); --brand-soft:#EAF4FB;
 --text:var(--o-ink,#1A1A1A); --text-secondary:var(--o-muted,#5F6368); --surface:#FFF;
 --border-light:var(--o-border,#D9DEE3); --border-strong:#7C8793; --radius:8px;
 --shadow-soft:0 12px 30px rgba(26,26,26,.07); --red:#B42318; --red-soft:#FFF1F0;
 --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:40px;
 width:100%; min-width:0; color:var(--text); font-family:"Atkinson Hyperlegible Next",Arial,sans-serif; font-size:18px; line-height:1.6;
}
.o99-comments, .o99-comments * { box-sizing:border-box; }
.o99-comments [hidden] { display:none !important; }
.o99-comments__shell { width:min(1180px,calc(100% - 32px)); margin-inline:auto; }
.o99-comments__heading { display:grid; grid-template-columns:6px minmax(0,1fr); gap:16px; align-items:start; max-width:820px; }
.o99-comments__heading::before { content:""; width:6px; min-height:72px; background:var(--brand); border-radius:8px; }
.o99-comments h2 { margin:0 0 16px; font-size:clamp(28px,3.4vw,38px); font-weight:700; line-height:1.2; letter-spacing:-.018em; }
.o99-comments a { color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.o99-comments :is(a,button,input,textarea):focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.o99-comments .form-submit button { min-height:48px; padding:12px 20px; border-radius:8px; font-family:inherit; font-size:17px; font-weight:600; line-height:1.3; cursor:pointer; }
.o99-comments { background:var(--surface); scroll-margin-top:var(--space-6); padding-block:var(--space-7); }
.o99-comments .o99-comments__heading { margin-bottom:var(--space-5); }
.o99-comments__layout { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); align-items:start; }
.o99-comments__layout > * { min-width:0; }
.o99-comments h3 { margin:0 0 var(--space-5); font-size:24px; line-height:1.3; }
.o99-comments__form { padding:var(--space-5); border:1px solid var(--border-light); border-top:4px solid var(--brand); border-radius:var(--radius); background:var(--brand-soft); box-shadow:var(--shadow-soft); }
.o99-comments__empty { margin:0; color:var(--text-secondary); }
.o99-comments__policy, .o99-comments__label-note, .o99-comments__guidelines { color:var(--text-secondary); font-size:15px; line-height:1.6; font-weight:400; }
.o99-comments__guidelines { margin:0; font-size:14px; font-style:italic; }
.o99-comments label { display:block; font-size:16px; font-weight:600; margin-bottom:var(--space-2); }
.o99-comments input:not([type="hidden"]), .o99-comments textarea { display:block; box-sizing:border-box; width:100%; max-width:100%; min-height:48px; padding:var(--space-3); border:1px solid var(--border-strong); border-radius:var(--radius); background:var(--surface); color:var(--text); font:inherit; }
.o99-comments textarea { resize:vertical; }
.o99-comments .comment-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:var(--space-4) var(--space-5); }
.o99-comments .comment-form > p { margin:0; min-width:0; }
.o99-comments__author { grid-column:1; grid-row:1; }
.o99-comments__email { grid-column:1; grid-row:2; }
.o99-comments__message { grid-column:2; grid-row:1 / span 2; display:flex; flex-direction:column; }
.o99-comments__message textarea { flex:1; }
.o99-comments .logged-in-as { grid-column:1 / -1; }
.o99-comments .logged-in-as ~ .o99-comments__message { grid-column:1 / -1; grid-row:auto; }
.o99-comments__actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3) var(--space-5); }
.o99-comments__actions > p { margin:0; }
.o99-comments__status { grid-column:1 / -1; grid-row:4; }
.o99-comments .form-submit button { background:var(--brand); color:var(--surface); border:1px solid var(--brand); box-shadow:none; }
.o99-comments .form-submit button:hover { background:var(--brand-dark); border-color:var(--brand-dark); }
.o99-comments .form-submit button:focus-visible { box-shadow:0 0 0 2px var(--surface),0 0 0 5px var(--brand); }
.o99-comments .form-submit button:disabled { background:#E9ECEF; color:var(--text-secondary); border-color:var(--border-light); cursor:wait; }
.o99-comments__trap { display:none; }
.o99-comments__status, .o99-comments__notice { padding:var(--space-4); border-radius:var(--radius); background:var(--brand-soft); border-left:4px solid var(--brand); }
.o99-comments__status.is-error { color:var(--red); background:var(--red-soft); border-color:var(--red); }
.o99-comments__list, .o99-comments .children { list-style:none; padding:0; margin:0; }
.o99-comments .children { margin-inline-start:var(--space-4); border-left:2px solid var(--border-light); padding-inline-start:var(--space-4); }
.o99-comment__body { padding-block:var(--space-5); border-bottom:1px solid var(--border-light); overflow-wrap:anywhere; }
.o99-comment__meta { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2) var(--space-3); }
.o99-comment__meta a, .o99-comment__badge { font-size:15px; }
.o99-comment__badge { padding:var(--space-1) var(--space-2); color:var(--brand-dark); background:var(--brand-soft); border-radius:var(--radius); }
.o99-comments .comment-reply-link, .o99-comments__pagination a, .o99-comments__pagination span { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
.o99-comments__pagination { display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-5); }
.o99-comments #cancel-comment-reply-link { display:inline-block; margin-top:var(--space-3); min-height:44px; font-size:16px; }
.o99-comments .comment-respond { scroll-margin-top:var(--space-6); }
@media (max-width:600px) {
    .o99-comments__form { padding:var(--space-4); }
    .o99-comments .comment-form { grid-template-columns:minmax(0,1fr); }
    .o99-comments .comment-form > p { grid-column:1; grid-row:auto; }
    .o99-comments__actions { flex-direction:column; align-items:stretch; }
    .o99-comments .children { margin-inline-start:var(--space-2); padding-inline-start:var(--space-2); }
    .o99-comments .form-submit button { width:100%; white-space:normal; }
}
