/* TechAIPress — feuille commune, chargée en asynchrone partout : colonne
   latérale, encarts, newsletter, avatars, pied de page. */

/* --- Colonne latérale et widgets --- */
.tap-sidebar { min-width: 0; }
.tap-sidebar__sticky { display: flex; flex-direction: column; gap: var(--tap-s6); }
.tap-widget__title, .tap-footer__title { margin: 0 0 var(--tap-s3); padding-bottom: var(--tap-s2); border-bottom: 2px solid var(--tap-text); font-size: var(--tap-fs-md); text-transform: uppercase; letter-spacing: .06em; }
.tap-widget ul, .tap-widget ol { margin: 0; padding: 0; list-style: none; }
.tap-widget li { padding-block: var(--tap-s2); border-bottom: 1px solid var(--tap-line); font-size: var(--tap-fs-md); }
.tap-widget li:last-child { border-bottom: 0; }
.tap-widget a { color: var(--tap-text); text-decoration: none; }
.tap-widget a:hover { color: var(--tap-accent); text-decoration: underline; }
.tap-trending__item { display: grid; gap: 0 var(--tap-s3); align-items: baseline; grid-template-columns: 1.75rem minmax(0, 1fr); }
.tap-trending__rank { color: var(--tap-accent); font-size: var(--tap-fs-lg); font-weight: 800; line-height: 1.2; }
.tap-trending__link { font-weight: 700; line-height: var(--tap-lh-snug); }
.tap-trending__date { grid-column: 2; color: var(--tap-muted); font-size: var(--tap-fs-xs); }
.tap-sections__list .children { padding-left: var(--tap-s4); }

/* --- Emplacements publicitaires : hauteur réservée, donc CLS nul --- */
.tap-ad { display: flex; flex-direction: column; gap: var(--tap-s1); align-items: center; margin-block: var(--tap-s6); }
.tap-ad__label { color: var(--tap-muted); font-size: var(--tap-fs-xs); text-transform: uppercase; letter-spacing: .1em; }
.tap-ad__inner { display: flex; align-items: center; justify-content: center; width: min(100%, var(--tap-ad-w)); height: var(--tap-ad-h); max-height: 50vh; overflow: hidden; border: 1px dashed var(--tap-line-strong); border-radius: var(--tap-radius); background: var(--tap-bg-alt); }

/* --- Newsletter et boutons --- */
.tap-newsletter { margin-block: var(--tap-s7); padding: var(--tap-s6) var(--tap-s5); border: 2px solid var(--tap-text); border-radius: var(--tap-radius); background: var(--tap-bg-alt); }
.tap-newsletter__inner { max-width: 44rem; margin-inline: auto; }
.tap-newsletter__title { margin: 0 0 var(--tap-s2); font-size: var(--tap-fs-2xl); }
.tap-newsletter__text { margin: 0 0 var(--tap-s4); color: var(--tap-muted); }
.tap-newsletter__form { display: flex; flex-wrap: wrap; gap: var(--tap-s2); }
.tap-newsletter__label { flex: 1 1 100%; font-size: var(--tap-fs-sm); font-weight: 700; }
.tap-newsletter__input { flex: 1 1 16rem; min-width: 0; padding: var(--tap-s3); border: 1px solid var(--tap-line-strong); border-radius: var(--tap-radius); background: var(--tap-bg); }
.tap-newsletter__submit, .tap-button { display: inline-block; padding: var(--tap-s3) var(--tap-s5); border: 0; border-radius: var(--tap-radius); background: var(--tap-accent); color: #fff; font-weight: 800; text-decoration: none; cursor: pointer; }
.tap-newsletter__submit:hover, .tap-button:hover { background: var(--tap-accent-ink); color: #fff; }
.tap-newsletter__legal { margin: var(--tap-s3) 0 0; color: var(--tap-muted); font-size: var(--tap-fs-xs); }

/* --- Avatars locaux (aucun appel à Gravatar) --- */
.tap-avatar { display: inline-flex; align-items: center; justify-content: center; width: var(--tap-avatar-size, 48px); height: var(--tap-avatar-size, 48px); border-radius: 50%; background: hsl(var(--tap-avatar-hue, 220) 60% 92%); color: hsl(var(--tap-avatar-hue, 220) 70% 25%); font-size: calc(var(--tap-avatar-size, 48px) / 2.6); font-weight: 800; line-height: 1; letter-spacing: -.02em; }
:root[data-theme="dark"] .tap-avatar { background: hsl(var(--tap-avatar-hue, 220) 35% 22%); color: hsl(var(--tap-avatar-hue, 220) 70% 82%); }

/* --- Pied de page --- */
.tap-footer { margin-top: var(--tap-s8); border-top: 2px solid var(--tap-text); background: var(--tap-bg-alt); font-size: var(--tap-fs-md); }
.tap-footer__grid { display: grid; gap: var(--tap-s6); padding-block: var(--tap-s7); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.tap-footer__brand { margin: 0 0 var(--tap-s2); font-size: var(--tap-fs-lg); font-weight: 800; letter-spacing: -.02em; }
.tap-footer__brand a { color: var(--tap-text); text-decoration: none; }
.tap-footer__tagline { max-width: 28ch; color: var(--tap-muted); }
.tap-footer__list { margin: 0; padding: 0; list-style: none; }
.tap-footer__list li { padding-block: var(--tap-s1); }
.tap-footer__list a, .tap-footer__feeds a { color: var(--tap-text); text-decoration: none; }
.tap-footer__list a:hover, .tap-footer__feeds a:hover { color: var(--tap-accent); text-decoration: underline; }
.tap-footer__bottom { border-top: 1px solid var(--tap-line); }
.tap-footer__bottom-inner { display: flex; flex-wrap: wrap; gap: var(--tap-s3) var(--tap-s5); align-items: center; justify-content: space-between; padding-block: var(--tap-s4); color: var(--tap-muted); font-size: var(--tap-fs-sm); }
.tap-footer__copyright { margin: 0; }
.tap-footer__menu { display: flex; flex-wrap: wrap; gap: var(--tap-s4); margin: 0; padding: 0; list-style: none; }
.tap-footer__menu a { color: var(--tap-muted); text-decoration: none; }
.tap-footer__menu a:hover { color: var(--tap-accent); text-decoration: underline; }

/* --- Ruptures --- */
@media (min-width: 900px) {
	.tap-sidebar__sticky { position: sticky; top: 5.5rem; max-height: calc(100vh - 7rem); overflow-y: auto; overscroll-behavior: contain; }
}
