/* ===================================================================
   L'ARGONAUTE — feuille de styles des gabarits de page
   -------------------------------------------------------------------
   Reprise à l'identique des blocs <style> propres à chaque fichier de
   référence. Le fragment commun (fil d'ariane + bandeau de titre),
   dupliqué tel quel dans les 9 fichiers hors accueil, n'apparaît ici
   qu'une seule fois ; les @media de chaque page sont conservés.
   Aucune couleur en dur : uniquement les custom properties du :root.
   =================================================================== */

/* ----- Bandeau d'en-tête : fil d'ariane + titre + intro -------------
   Fond beige ; la section de contenu qui suit repart toujours en blanc. */
.page-breadcrumb { font-family: var(--sans); font-size: 12px; color: var(--gris-moyen); margin-bottom: 10px; }
.page-breadcrumb a { color: var(--gris-moyen); text-decoration: none; }
.page-breadcrumb a:hover { color: var(--rouge); }
.page-breadcrumb span { margin: 0 6px; color: var(--gris-clair); }

.rubrique-header { padding: 0; }
.rubrique-header__title { font-family: var(--serif); font-size: 42px; font-weight: 500; color: var(--noir); }
.rubrique-header__intro { font-family: var(--sans); font-size: 16px; line-height: 1.5; color: var(--gris-fonce); max-width: 520px; margin-top: 10px; }

.rubrique-intro { background: var(--beige); padding: 24px 0; }

@media (max-width: 1024px) {
  .rubrique-header__title { font-size: 34px; }
}
@media (max-width: 768px) {
  .rubrique-intro { padding: 18px 0; }
  .rubrique-header__title { font-size: 28px; }
  .rubrique-header__intro { font-size: 15px; }
}

/* ----- Accueil : hero d'inscription à la newsletter -----------------
   Source : largonaute-accueil-v0-v1_7.html */
.nl-hero { padding: 76px 0; background: var(--beige); border-bottom: 1px solid #e0dbd5; }
body.dark-mode .nl-hero { border-bottom-color: #2e2a2a; }
.nl-hero__inner { max-width: 620px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.nl-hero__eyebrow { font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rouge); }
.nl-hero__title { font-family: var(--serif); font-size: 42px; font-weight: 400; font-style: italic; color: var(--noir); line-height: 1.18; }
.nl-hero__desc { font-family: var(--sans); font-size: 15px; line-height: 1.7; color: var(--gris-fonce); max-width: 520px; }
.nl-hero__form { display: flex; gap: 10px; width: 100%; max-width: 420px; }
.nl-hero__input { flex: 1; min-width: 0; height: 48px; box-sizing: border-box; font-family: var(--sans); font-size: 14px; padding: 0 18px; border: 1px solid var(--gris-clair); background: var(--blanc); color: var(--encre); outline: none; transition: border-color 0.15s; }
.nl-hero__input:focus { border-color: var(--rouge); }
.nl-hero__input::placeholder { color: var(--gris-moyen); }
.nl-hero__btn { flex-shrink: 0; height: 48px; box-sizing: border-box; font-family: var(--sans); font-size: 14px; font-weight: 600; padding: 0 24px; }
.nl-hero__note { font-family: var(--sans); font-size: 12px; color: var(--gris-moyen); }

@media (max-width: 640px) {
  .nl-hero { padding: 52px 0; }
  .nl-hero__title { font-size: 30px; }
  .nl-hero__form { flex-direction: column; }
}

/* ----- Qui sommes-nous : corps, carte newsletter, équipe ------------
   Source : largonaute-qui-sommes-nous-v1_2_2.html */
.about-section { background: var(--blanc); padding: 56px 0; }
.about-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 56px; align-items: start; }
.about-body { max-width: none; margin: 0; font-family: var(--serif); font-size: 19px; line-height: 1.75; color: var(--encre); }
.about-body p { margin-bottom: 22px; }
.about-body p:last-child { margin-bottom: 0; }

.about-nl-card { background: var(--beige); border-left: 3px solid var(--rouge); padding: 32px 28px; display: flex; flex-direction: column; gap: 14px; }
.about-nl-card__eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rouge); }
.about-nl-card__title { font-family: var(--serif); font-size: 20px; font-weight: 500; color: var(--noir); line-height: 1.3; }
.about-nl-card__desc { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--gris-fonce); }
.about-nl-card__form { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.about-nl-card__input { font-family: var(--sans); font-size: 14px; padding: 11px 14px; border: 1px solid var(--gris-clair); background: var(--blanc); color: var(--encre); outline: none; transition: border-color 0.15s; }
.about-nl-card__input:focus { border-color: var(--rouge); }
.about-nl-card__input::placeholder { color: var(--gris-moyen); }
.about-nl-card__btn { font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 12px 18px; background: var(--rouge); color: #fff; border: none; cursor: pointer; transition: background 0.15s; }
.about-nl-card__btn:hover { background: var(--rouge-hover); }
.about-nl-card__more { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--rouge); align-self: flex-start; }
.about-nl-card__more:hover { color: var(--rouge-hover); text-decoration: underline; }

.team-section { background: var(--beige); padding: 56px 0 60px; }
.team-section .section-title { margin-bottom: 28px; justify-content: center; }

.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.team-card { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 32px 28px; background: var(--blanc); border-left: 3px solid var(--rouge); }
.team-card--bleu { border-left-color: var(--bleu); }
.team-card__avatar { width: 72px; height: 72px; border-radius: 50%; background: var(--rouge); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--sans); font-weight: 600; font-size: 22px; flex-shrink: 0; }
.team-card--bleu .team-card__avatar { background: var(--bleu); }
.team-card__name { font-family: var(--serif); font-size: 20px; font-weight: 500; color: var(--noir); display: inline-block; text-decoration: none; transition: color 0.15s; }
.team-card__name:hover { color: var(--rouge); }
.team-card__role { font-family: var(--serif); font-style: italic; font-size: 13px; color: var(--bleu); margin-top: -8px; }
.team-card__bio { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--gris-fonce); }

@media (max-width: 1024px) {
  .team-grid { grid-template-columns: 1fr 1fr; }
  .about-layout { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .about-section { padding: 32px 0; }
  .about-body { font-size: 17px; }
  .about-nl-card { padding: 26px 22px; }
  .team-section { padding: 32px 0 40px; }
  .team-grid { grid-template-columns: 1fr; }
}

/* ----- Pages légales : mentions, confidentialité, CGU ---------------
   Source : largonaute-politique-confidentialite-v1_3.html
   (surensemble des blocs de -mentions-legales-v1_2 et -cgu-v1_0) */
.legal-section { background: var(--blanc); padding: 56px 0 64px; }
.legal-body { max-width: 720px; font-family: var(--sans); font-size: 15px; line-height: 1.7; color: var(--gris-fonce); }
.legal-body h2 { font-family: var(--serif); font-size: 24px; font-weight: 500; color: var(--noir); margin: 40px 0 14px; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body p { margin-bottom: 14px; }
.legal-body p:last-child { margin-bottom: 0; }
.legal-body a { color: var(--rouge); text-decoration: underline; text-decoration-color: rgba(159,0,14,0.35); }
.legal-body a:hover { color: var(--rouge-hover); }
.legal-placeholder { color: var(--rouge); font-weight: 600; background: rgba(159,0,14,0.08); padding: 1px 5px; border-radius: 2px; }
.legal-updated { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--gris-clair); font-size: 13px; font-style: italic; color: var(--gris-moyen); }
.cookie-manage-link { background: none; border: none; padding: 0; font: inherit; color: var(--rouge); text-decoration: underline; text-decoration-color: rgba(159,0,14,0.35); cursor: pointer; }
.cookie-manage-link:hover { color: var(--rouge-hover); }
.legal-body ul { margin: 0 0 14px 20px; }
.legal-body li { margin-bottom: 6px; }
.legal-table-wrap { overflow-x: auto; margin: 4px 0 20px; }
.legal-table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: 13.5px; min-width: 600px; }
.legal-table th, .legal-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--gris-clair); vertical-align: top; }
.legal-table th { font-weight: 700; color: var(--noir); background: var(--beige); font-size: 11.5px; letter-spacing: 0.03em; text-transform: uppercase; }
.legal-table td { color: var(--gris-fonce); }

@media (max-width: 768px) {
  .legal-section { padding: 32px 0 40px; }
  .legal-body { font-size: 14.5px; }
  .legal-body h2 { font-size: 21px; margin: 32px 0 12px; }
}

/* ----- Contact ------------------------------------------------------
   Source : largonaute-contact-v1_2.html */
.contact-section { background: var(--blanc); padding: 56px 0 64px; }
.contact-layout { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }

.contact-form { display: flex; flex-direction: column; gap: 20px; }
.contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-field { display: flex; flex-direction: column; gap: 7px; }
.contact-field label { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gris-fonce); }
.contact-field input, .contact-field select, .contact-field textarea { font-family: var(--sans); font-size: 15px; padding: 12px 14px; border: 1px solid var(--gris-clair); background: var(--blanc); color: var(--encre); outline: none; transition: border-color 0.15s; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { border-color: var(--rouge); }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: var(--gris-moyen); }
.contact-field textarea { resize: vertical; min-height: 160px; line-height: 1.5; }
.contact-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a7474' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; cursor: pointer; }
.contact-submit { align-self: flex-start; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 14px 30px; background: var(--rouge); color: #fff; border: none; cursor: pointer; transition: background 0.15s; margin-top: 4px; }
.contact-submit:hover { background: var(--rouge-hover); }

.contact-aside { background: var(--beige); border-left: 3px solid var(--rouge); padding: 32px 28px; display: flex; flex-direction: column; gap: 26px; }
.contact-aside__block { display: flex; flex-direction: column; gap: 6px; }
.contact-aside__label { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rouge); }
.contact-aside__value { font-family: var(--serif); font-size: 18px; color: var(--noir); }
.contact-aside__value:hover { color: var(--rouge); }
.contact-aside__desc { font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--gris-fonce); }
.contact-aside__sep { border: none; border-top: 1px solid #e0dbd5; }
body.dark-mode .contact-aside__sep { border-top-color: #2e2a2a; }
.contact-aside__socials { display: flex; gap: 14px; }
.contact-aside__social { color: var(--rouge); display: flex; align-items: center; }
.contact-aside__social:hover { color: var(--rouge-hover); }

@media (max-width: 1024px) {
  .contact-layout { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .contact-section { padding: 32px 0 40px; }
  .contact-row { grid-template-columns: 1fr; gap: 20px; }
  .contact-aside { padding: 26px 22px; }
}

/* ----- Abonnement newsletter : atouts, carte d'inscription, FAQ -----
   Source : largonaute-abonnement-newsletter-v1_0.html */
.benefit-section { background: var(--blanc); padding: 8px 0 56px; }
.benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.benefit-card { display: flex; flex-direction: column; gap: 10px; }
.benefit-card__rule { display: block; width: 28px; height: 3px; background: var(--rouge); }
.benefit-card__title { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--noir); }
.benefit-card__text { font-family: var(--sans); font-size: 14px; line-height: 1.55; color: var(--gris-fonce); }

.nlsub-section { background: var(--beige); padding: 56px 0; }
.nlsub-card { max-width: 560px; margin: 0 auto; background: var(--blanc); border: 1px solid #e0dbd5; padding: 44px 40px; text-align: center; }
.nlsub-card__eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rouge); margin-bottom: 10px; }
.nlsub-card__title { font-family: var(--serif); font-size: 26px; font-weight: 500; color: var(--noir); margin-bottom: 10px; }
.nlsub-card__text { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--gris-fonce); max-width: 420px; margin: 0 auto 26px; }
.nlsub-form { display: flex; flex-direction: column; gap: 12px; text-align: left; }
.nlsub-form__input { font-family: var(--sans); font-size: 15px; padding: 13px 16px; border: 1px solid var(--gris-clair); background: var(--blanc); color: var(--encre); outline: none; transition: border-color 0.15s; width: 100%; }
.nlsub-form__input:focus { border-color: var(--rouge); }
.nlsub-form__input::placeholder { color: var(--gris-moyen); }
.nlsub-form__consent { display: flex; align-items: flex-start; gap: 10px; font-family: var(--sans); font-size: 12.5px; line-height: 1.5; color: var(--gris-fonce); }
.nlsub-form__consent input { margin-top: 3px; flex-shrink: 0; }
.nlsub-form__consent a { color: var(--rouge); }
.nlsub-form__btn { font-family: var(--sans); font-size: 15px; font-weight: 700; letter-spacing: 0.02em; padding: 14px; background: var(--rouge); color: #fff; border: none; cursor: pointer; transition: background 0.15s; margin-top: 4px; }
.nlsub-form__btn:hover { background: var(--rouge-hover); }
.nlsub-card__note { font-family: var(--sans); font-size: 12px; color: var(--gris-moyen); margin-top: 18px; line-height: 1.5; }

.faq-section { background: var(--blanc); padding: 56px 0 64px; max-width: 720px; margin: 0 auto; }
.faq-section__title { font-family: var(--serif); font-size: 24px; font-weight: 500; color: var(--noir); margin-bottom: 24px; text-align: center; }
.faq-item { padding: 20px 0; border-top: 1px solid #e0dbd5; }
.faq-item:first-of-type { border-top: none; }
.faq-item__q { font-family: var(--sans); font-size: 15px; font-weight: 700; color: var(--noir); margin-bottom: 8px; }
.faq-item__a { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--gris-fonce); }

body.dark-mode .nlsub-card { background: #181616; border-color: #2e2a2a; }
body.dark-mode .nlsub-form__input { background: #201e1e; border-color: #3a3636; }
body.dark-mode .faq-item { border-color: #2e2a2a; }

@media (max-width: 1024px) {
  .benefit-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .benefit-grid { grid-template-columns: 1fr; }
  .nlsub-card { padding: 32px 24px; }
}

/* ----- Page 404 -----------------------------------------------------
   Source : largonaute-404-v1_2.html */
.error-page { background: var(--blanc); padding: 100px 0 120px; }
.error-page__inner { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 560px; margin: 0 auto; }
.error-page__code { font-family: var(--serif); font-size: 120px; font-weight: 600; line-height: 1; color: var(--rouge); }
.error-page__title { font-family: var(--serif); font-size: 30px; font-weight: 500; color: var(--noir); margin-top: 12px; }
.error-page__text { font-family: var(--sans); font-size: 15px; line-height: 1.6; color: var(--gris-fonce); margin-top: 14px; }
.error-page__actions { display: flex; align-items: center; gap: 14px; margin-top: 32px; }
.error-page__links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 40px; padding-top: 32px; border-top: 1px solid #e0dbd5; width: 100%; }
body.dark-mode .error-page__links { border-top-color: #2e2a2a; }
.error-page__links-label { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--gris-moyen); margin-right: 4px; }

@media (max-width: 768px) {
  .error-page { padding: 64px 0 72px; }
  .error-page__code { font-size: 84px; }
  .error-page__title { font-size: 24px; }
  .error-page__actions { flex-direction: column; width: 100%; gap: 10px; }
  .error-page__actions .btn { width: 100%; }
}

/* ----- Pages légales rédigées dans l'éditeur de blocs ---------------
   Le bloc Tableau de Gutenberg pose la classe sur le <figure> et non
   sur le <table> : les règles .legal-table ci-dessus ne l'atteignent
   pas. On les rebranche ici, aux mêmes valeurs, pour que le tableau
   soit identique qu'il vienne de l'éditeur ou du texte par défaut.
   Le <figure> assure lui-même le défilement horizontal (overflow-x du
   bloc), à la place de .legal-table-wrap. */
.legal-body .wp-block-table {
  margin: 4px 0 20px;
  overflow-x: auto;
  /* Le <figure> porte lui aussi la classe .legal-table, donc le
     min-width: 600px prévu pour le tableau. Sur mobile, cela poussait
     toute la page en débordement horizontal : on le neutralise sur le
     conteneur, qui doit rester à la largeur de la colonne et faire
     défiler le tableau à l'intérieur. */
  min-width: 0;
  max-width: 100%;
}
.legal-body .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--sans);
  font-size: 13.5px;
  min-width: 600px;
}
.legal-body .wp-block-table th,
.legal-body .wp-block-table td {
  text-align: left;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid var(--gris-clair);
  vertical-align: top;
}
.legal-body .wp-block-table th {
  font-weight: 700;
  color: var(--noir);
  background: var(--beige);
  font-size: 11.5px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.legal-body .wp-block-table td { color: var(--gris-fonce); }
/* Les listes du bloc Liste reprennent le retrait des maquettes. */
.legal-body .wp-block-list { margin: 0 0 14px 20px; }
/* Les titres de bloc gardent la typographie de .legal-body h2. */
.legal-body .wp-block-heading:first-child { margin-top: 0; }

/* ----- Correctif : hauteur du champ email du hero sur mobile --------
   Sous 640px, .nl-hero__form passe en colonne. Or .nl-hero__input porte
   « flex: 1 » : dans un conteneur en colonne, le raccourci flex fixe
   flex-basis à 0 sur l'AXE PRINCIPAL, devenu la hauteur — ce qui écrase
   le « height: 48px » et réduisait le champ à la hauteur d'une ligne
   (20px mesurés sur iPhone 13 Pro).
   On rend donc au champ sa taille propre dès que le formulaire s'empile.
   Même correctif pour le champ du bloc « réservé aux abonnés », qui
   s'empile de la même façon (voir article.css). */
@media (max-width: 640px) {
  .nl-hero__form .nl-hero__input {
    flex: 0 0 auto;
    height: 48px;
  }
  .nl-hero__form .nl-hero__btn {
    flex: 0 0 auto;
    height: 48px;
  }
}

/* ----- Page d'un auteur ---------------------------------------------
   Pas de maquette pour cette page : elle réemploie le bandeau d'en-tête
   beige, la pastille d'avatar de la page « Qui sommes-nous » et la
   grille de cartes de l'archive. */
.author-header {
  display: flex;
  align-items: flex-start;
  gap: 22px;
}
.author-header__avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--rouge);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 26px;
  flex-shrink: 0;
}
.author-header__body {
  min-width: 0;
}
.author-header__role {
  font-family: var(--serif);
  font-style: italic;
  font-size: 15px;
  color: var(--bleu);
  margin-top: 2px;
}
.author-header .rubrique-header__intro {
  margin-top: 12px;
}
@media (max-width: 768px) {
  .author-header { gap: 16px; }
  .author-header__avatar {
    width: 64px;
    height: 64px;
    font-size: 20px;
  }
}
@media (max-width: 480px) {
  .author-header {
    flex-direction: column;
    gap: 14px;
  }
}

/* ===== PAGE LEXIQUE =======================================================
   Le mot souligné et son infobulle vivent dans main.css : ils servent
   aussi dans les éditions. Ici, seule la page.                          */
.lex-main { padding-bottom: 0; }

/* Sommaire — une forme d'art renseignée, un jeton. */
.lex-sommaire { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.lex-sommaire__link {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--rouge);
  border: 1px solid var(--rouge);
  padding: 6px 14px;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.lex-sommaire__link:hover { background: var(--rouge); color: #fff; }

/* Sections par forme d'art — alternance des fonds, comme le reste du site. */
.lex-section { padding: 48px 0; scroll-margin-top: calc(var(--masthead-h, 110px) + 12px); }
.lex-section--blanc { background: var(--blanc); }
.lex-section--beige { background: var(--beige); }
.lex-section__title {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  color: var(--noir);
  margin-bottom: 28px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--rouge);
  display: inline-block;
}

.lex-list { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 48px; }

/* L'entrée visée par un lien s'éclaire le temps qu'on la repère. */
.lex-entry {
  scroll-margin-top: calc(var(--masthead-h, 110px) + 20px);
  padding: 6px 10px;
  margin: -6px -10px;
  border-radius: 4px;
  transition: background 0.6s ease;
}
.lex-entry:target { background: rgba(159,0,14,0.07); }
body.dark-mode .lex-entry:target { background: rgba(139,157,224,0.12); }
.lex-entry__term {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  color: var(--noir);
  margin-bottom: 6px;
}
.lex-entry__def { font-family: var(--sans); font-size: 14px; line-height: 1.65; color: var(--gris-fonce); }
.lex-entry__def p { margin: 0 0 8px; }
.lex-entry__def p:last-child { margin-bottom: 0; }
.lex-entry__def a { color: var(--rouge); text-decoration: underline; text-decoration-color: rgba(159,0,14,0.35); }
.lex-entry__def a:hover { color: var(--rouge-hover); }

@media (max-width: 1024px) {
  .lex-list { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 768px) {
  .lex-section { padding: 32px 0; }
  .lex-section__title { font-size: 21px; margin-bottom: 20px; }
}
