/* TechAIPress — contenus isolés (article, page, fiche outil, test). Inclut le
   balisage de l'éditeur de blocs : le thème remplace wp-block-library. */

/* --- En-tête d'article --- */
.tap-single__header, .tap-page__header { max-width: var(--tap-measure); margin-bottom: var(--tap-s5); }
.tap-single__kicker { display: inline-block; margin-bottom: var(--tap-s2); color: var(--tap-urgent); font-size: var(--tap-fs-sm); font-weight: 800; text-transform: uppercase; letter-spacing: .07em; text-decoration: none; }
.tap-single__title, .tap-page__title { margin: 0 0 var(--tap-s3); font-size: var(--tap-fs-3xl); letter-spacing: -.035em; }
.tap-single__standfirst { margin: 0 0 var(--tap-s4); color: var(--tap-muted); font-size: var(--tap-fs-lg); line-height: 1.55; }
.tap-meta--single { padding-top: var(--tap-s3); border-top: 1px solid var(--tap-line); font-size: var(--tap-fs-sm); }
.tap-meta__author-link { color: var(--tap-text); font-weight: 700; }
.tap-single__figure, .tap-page__figure { margin: 0 0 var(--tap-s5); }
.tap-single__figure img, .tap-page__figure img { width: 100%; border-radius: var(--tap-radius); }
.tap-single__credit { margin-top: var(--tap-s2); color: var(--tap-muted); font-size: var(--tap-fs-xs); }

/* --- Partage --- */
.tap-share { display: flex; flex-wrap: wrap; gap: var(--tap-s3); align-items: center; margin-block: var(--tap-s4); }
.tap-share--top { padding-bottom: var(--tap-s4); border-bottom: 1px solid var(--tap-line); }
.tap-share--bottom { margin-top: var(--tap-s5); }
.tap-share__label { margin: 0; color: var(--tap-muted); font-size: var(--tap-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.tap-share__list { display: flex; flex-wrap: wrap; gap: var(--tap-s2); margin: 0; padding: 0; list-style: none; }
.tap-share__link { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--tap-line-strong); border-radius: var(--tap-radius); color: var(--tap-muted); }
.tap-share__link:hover { border-color: var(--tap-accent); color: var(--tap-accent); }

/* --- Sommaire --- */
.tap-toc { max-width: var(--tap-measure); margin-bottom: var(--tap-s5); padding: var(--tap-s4); border-left: 3px solid var(--tap-accent); background: var(--tap-bg-alt); }
.tap-toc__title { margin: 0 0 var(--tap-s2); font-size: var(--tap-fs-sm); text-transform: uppercase; letter-spacing: .08em; }
.tap-toc__list { margin: 0; padding: 0; list-style: none; }
.tap-toc__item { padding-block: var(--tap-s1); font-size: var(--tap-fs-md); }
.tap-toc__item--level-3 { padding-left: var(--tap-s5); font-size: var(--tap-fs-sm); }
.tap-toc__link { color: var(--tap-text); text-decoration: none; }
.tap-toc__link:hover { color: var(--tap-accent); text-decoration: underline; }

/* --- Corps de l'article --- */
.tap-prose { max-width: var(--tap-measure); font-size: var(--tap-fs-base); line-height: var(--tap-lh-base); }
.tap-prose > * { margin-bottom: var(--tap-s5); }
.tap-prose h2 { margin: var(--tap-s7) 0 var(--tap-s3); font-size: var(--tap-fs-2xl); scroll-margin-top: 5rem; }
.tap-prose h3 { margin: var(--tap-s6) 0 var(--tap-s2); font-size: var(--tap-fs-xl); scroll-margin-top: 5rem; }
.tap-prose h4 { margin-top: var(--tap-s5); font-size: var(--tap-fs-lg); }
.tap-prose a { text-decoration: underline; }
.tap-prose ul, .tap-prose ol { padding-left: 1.4em; }
.tap-prose li { margin-bottom: var(--tap-s2); }
.tap-prose img { border-radius: var(--tap-radius); }
.tap-prose figure, .tap-prose .wp-block-image { margin-inline: 0; }
.tap-prose figcaption, .tap-prose .wp-caption-text { margin-top: var(--tap-s2); color: var(--tap-muted); font-size: var(--tap-fs-xs); text-align: left; }
.tap-prose blockquote, .tap-prose .wp-block-quote { margin-inline: 0; padding-left: var(--tap-s4); border-left: 3px solid var(--tap-accent); font-size: var(--tap-fs-lg); font-style: italic; }
.tap-prose blockquote cite { display: block; margin-top: var(--tap-s2); color: var(--tap-muted); font-size: var(--tap-fs-sm); font-style: normal; }
.tap-prose code, .tap-prose kbd { padding: .1em .35em; border-radius: var(--tap-radius); background: var(--tap-bg-alt); font-family: var(--tap-font-mono); font-size: .9em; }
.tap-prose pre, .tap-prose .wp-block-code { padding: var(--tap-s4); overflow-x: auto; border: 1px solid var(--tap-line); border-radius: var(--tap-radius); background: var(--tap-bg-alt); font-family: var(--tap-font-mono); font-size: var(--tap-fs-sm); line-height: 1.55; }
.tap-prose pre code { padding: 0; background: none; }
.tap-prose table { width: 100%; border-collapse: collapse; font-size: var(--tap-fs-md); }
.tap-prose .wp-block-table { overflow-x: auto; }
.tap-prose th, .tap-prose td { padding: var(--tap-s2) var(--tap-s3); border-bottom: 1px solid var(--tap-line); text-align: left; }
.tap-prose th { background: var(--tap-bg-alt); font-weight: 800; }
.tap-prose hr, .tap-prose .wp-block-separator { height: 0; margin-block: var(--tap-s7); border: 0; border-top: 1px solid var(--tap-line); }

/* --- Blocs de l'éditeur pris en charge --- */
.tap-prose .aligncenter { margin-inline: auto; text-align: center; }
.tap-prose .alignleft { float: left; max-width: 45%; margin: 0 var(--tap-s4) var(--tap-s3) 0; }
.tap-prose .alignright { float: right; max-width: 45%; margin: 0 0 var(--tap-s3) var(--tap-s4); }
.tap-prose .alignwide, .tap-prose .alignfull { max-width: none; }
.tap-prose .wp-block-columns { display: flex; flex-wrap: wrap; gap: var(--tap-s5); }
.tap-prose .wp-block-column { flex: 1 1 14rem; min-width: 0; }
.tap-prose .wp-block-gallery { display: grid; gap: var(--tap-s3); grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.tap-prose .wp-block-gallery figure { margin: 0; }
.tap-prose .wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--tap-s3); padding: 0; list-style: none; }
.tap-prose .wp-block-button__link { display: inline-block; padding: var(--tap-s3) var(--tap-s5); border-radius: var(--tap-radius); background: var(--tap-accent); color: #fff; font-weight: 800; text-decoration: none; }
.tap-prose .wp-block-embed__wrapper, .tap-prose .wp-block-embed iframe { width: 100%; }
.tap-prose .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper { aspect-ratio: 16 / 9; }
.tap-prose .wp-block-embed.wp-has-aspect-ratio iframe { height: 100%; }
.tap-prose .wp-block-pullquote { padding: var(--tap-s5) 0; border-block: 2px solid var(--tap-text); border-left: 0; font-size: var(--tap-fs-2xl); font-style: normal; font-weight: 700; text-align: center; }
.tap-pagelinks { display: flex; flex-wrap: wrap; gap: var(--tap-s2); align-items: center; padding-top: var(--tap-s4); border-top: 1px solid var(--tap-line); font-weight: 700; }
.tap-editlink { font-size: var(--tap-fs-sm); }

/* --- Encadrés éditoriaux --- */
.tap-factbox, .tap-verdict { max-width: var(--tap-measure); margin-block: var(--tap-s5); padding: var(--tap-s5); border: 2px solid var(--tap-text); border-radius: var(--tap-radius); background: var(--tap-bg-alt); }
.tap-factbox__title, .tap-verdict__title { margin: 0 0 var(--tap-s3); font-size: var(--tap-fs-lg); text-transform: uppercase; letter-spacing: .05em; }
.tap-factbox__list { margin: 0; }
.tap-factbox__row { display: flex; flex-wrap: wrap; gap: var(--tap-s2) var(--tap-s4); padding-block: var(--tap-s2); border-bottom: 1px solid var(--tap-line); }
.tap-factbox__row:last-child { border-bottom: 0; }
.tap-factbox__row dt { flex: 0 0 8rem; color: var(--tap-muted); font-size: var(--tap-fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.tap-factbox__row dd { flex: 1 1 10rem; margin: 0; font-weight: 600; }
.tap-factbox__cta { margin: var(--tap-s4) 0 0; }
.tap-verdict__score { margin: 0 0 var(--tap-s4); line-height: 1; }
.tap-verdict__value { color: var(--tap-accent); font-size: var(--tap-fs-3xl); font-weight: 800; letter-spacing: -.04em; }
.tap-verdict__max { color: var(--tap-muted); font-size: var(--tap-fs-lg); font-weight: 700; }
.tap-verdict__columns { display: grid; gap: var(--tap-s4); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.tap-verdict__subtitle { margin: 0 0 var(--tap-s2); font-size: var(--tap-fs-md); }
.tap-verdict__list { margin: 0; padding-left: 1.2em; font-size: var(--tap-fs-md); }
.tap-verdict__col--pros .tap-verdict__subtitle { color: var(--tap-accent-2-ink); }
.tap-verdict__col--cons .tap-verdict__subtitle { color: var(--tap-urgent); }
.tap-verdict__text { max-width: var(--tap-measure); margin: 0; }

/* --- Pied d'article : taxonomies --- */
.tap-single__footer { max-width: var(--tap-measure); margin-top: var(--tap-s6); padding-top: var(--tap-s4); border-top: 1px solid var(--tap-line); }
.tap-terms { display: flex; flex-wrap: wrap; gap: var(--tap-s2) var(--tap-s3); align-items: baseline; margin-bottom: var(--tap-s3); }
.tap-terms__label { color: var(--tap-muted); font-size: var(--tap-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.tap-terms__list { display: flex; flex-wrap: wrap; gap: var(--tap-s2); margin: 0; padding: 0; list-style: none; }
.tap-terms__link { display: inline-block; padding: 2px var(--tap-s3); border: 1px solid var(--tap-line-strong); border-radius: 999px; color: var(--tap-text); font-size: var(--tap-fs-sm); text-decoration: none; }
.tap-terms__link:hover { border-color: var(--tap-accent); color: var(--tap-accent); }

/* --- Encadré auteur --- */
.tap-authorbox { display: flex; gap: var(--tap-s4); max-width: var(--tap-measure); margin-block: var(--tap-s7); padding: var(--tap-s5); border: 1px solid var(--tap-line); border-radius: var(--tap-radius); background: var(--tap-bg-alt); }
.tap-authorbox__body { min-width: 0; }
.tap-authorbox__name { margin: 0 0 var(--tap-s2); font-size: var(--tap-fs-lg); font-weight: 800; }
.tap-authorbox__name a { color: var(--tap-text); text-decoration: none; }
.tap-authorbox__job { margin: 0 0 var(--tap-s2); color: var(--tap-accent); font-size: var(--tap-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.tap-authorbox__bio { margin: 0 0 var(--tap-s3); color: var(--tap-muted); font-size: var(--tap-fs-md); }
.tap-authorbox__links { display: flex; flex-wrap: wrap; gap: var(--tap-s4); margin: 0; font-size: var(--tap-fs-sm); font-weight: 700; }

/* --- Articles liés --- */
.tap-related { margin-block: var(--tap-s7); padding-top: var(--tap-s5); border-top: 2px solid var(--tap-text); }
.tap-related__grid { display: grid; gap: var(--tap-s5); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.tap-card--related .tap-card__title { font-size: var(--tap-fs-md); }

/* --- Commentaires --- */
.tap-comments { max-width: var(--tap-measure); margin-top: var(--tap-s7); padding-top: var(--tap-s5); border-top: 2px solid var(--tap-text); }
.tap-comments__title { font-size: var(--tap-fs-2xl); }
.tap-comments__list, .tap-comments__list .children { margin: 0 0 var(--tap-s5); padding: 0; list-style: none; }
.tap-comments__list .children { margin: var(--tap-s4) 0 0 var(--tap-s5); padding-left: var(--tap-s4); border-left: 2px solid var(--tap-line); }
.tap-comments .comment-body { padding-block: var(--tap-s4); border-bottom: 1px solid var(--tap-line); }
.tap-comments .comment-author { display: flex; gap: var(--tap-s3); align-items: center; font-weight: 700; }
.tap-comments .comment-author .fn { font-style: normal; }
.tap-comments .comment-metadata { margin-bottom: var(--tap-s3); color: var(--tap-muted); font-size: var(--tap-fs-xs); }
.tap-comments .comment-metadata a { color: var(--tap-muted); text-decoration: none; }
.tap-comments .reply a { color: var(--tap-accent); font-size: var(--tap-fs-sm); font-weight: 700; text-decoration: none; }
.tap-comments .comment-content p:last-child { margin-bottom: 0; }
.tap-comments__closed { color: var(--tap-muted); font-size: var(--tap-fs-sm); }
.tap-comments__pagination { display: flex; flex-wrap: wrap; gap: var(--tap-s4); margin-bottom: var(--tap-s5); font-weight: 700; }
.tap-commentform__title { font-size: var(--tap-fs-xl); }
.tap-commentform__notes, .comment-form .comment-notes, .comment-form .logged-in-as { color: var(--tap-muted); font-size: var(--tap-fs-sm); }
.comment-form p { display: flex; flex-direction: column; gap: var(--tap-s2); margin-bottom: var(--tap-s4); }
.comment-form label { font-size: var(--tap-fs-sm); font-weight: 700; }
.comment-form :is(input:not([type="checkbox"]):not([type="submit"]), textarea) { width: 100%; padding: var(--tap-s3); border: 1px solid var(--tap-line-strong); border-radius: var(--tap-radius); background: var(--tap-bg); }
.comment-form .comment-form-cookies-consent { flex-direction: row; align-items: center; }
.comment-form .submit { padding: var(--tap-s3) var(--tap-s5); border: 0; border-radius: var(--tap-radius); background: var(--tap-accent); color: #fff; font-weight: 800; cursor: pointer; }

/* --- Ruptures --- */
@media (min-width: 900px) {
	.tap-prose .alignwide { width: calc(100% + 8rem); margin-left: -4rem; }
}
