/* =========================================================================
   Refonte de l'outil principal (page d'accueil uniquement).

   Chargée APRÈS style.css et entièrement portée par `.page-outil`, posé sur
   le <body> de index.html : /collectivites et /press consomment les mêmes
   partials (_result.html, _avance.html) et gardent donc leur rendu actuel.

   Principe : le verdict en bandeau pleine largeur, l'analyse dépliée en
   grille de cartes juste dessous. Plus rien d'essentiel derrière un bouton.
   ========================================================================= */

.page-outil {
    /* Palette conservée : le marine et le cyan font l'identité du site. */
    --navy: #273678;
    --navy-clair: #3d52a8;
    --cyan: #5aafcc;
    --cyan-fonce: #3c8ba6;
    /* Le cyan de l'identité ne tient pas sur le marine : 3,6:1, sous le 4,5:1
       exigé pour du petit texte. Cette version éclaircie passe à 5,4:1. */
    --cyan-clair: #8ed3e6;

    --encre: #1f2533;
    --encre-doux: #59617a;
    --encre-tenu: #8990a6;

    --fond: #f4f6fc;
    --surface: #fff;
    --surface-douce: #f8f9fd;
    --bordure: #e2e7f4;
    --bordure-tenue: #eef1f9;

    --rayon: 14px;
    --rayon-s: 9px;
    --ombre: 0 1px 2px rgba(39, 54, 120, .05), 0 6px 22px rgba(39, 54, 120, .07);
    --ombre-relief: 0 2px 4px rgba(39, 54, 120, .07), 0 12px 34px rgba(39, 54, 120, .11);

    --largeur: 1120px;

    /* Neutralise la mise en page « carte étroite centrée » de style.css. */
    display: block;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    background: var(--fond);
    color: var(--encre);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

.page-outil .enveloppe {
    width: 100%;
    max-width: var(--largeur);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}

/* `hidden` gouverne l'affichage des annexes (actions, analyse). Les règles de
   mise en page ci-dessous portent une classe et l'emporteraient sinon sur la
   règle navigateur `[hidden] { display: none }`, qui n'en a pas. */
.page-outil [hidden] {
    display: none !important;
}

/* ---------------------------------------------------------------- En-tête */

.page-outil .site-entete {
    background: var(--surface);
    border-bottom: 1px solid var(--bordure);
    padding: 20px 0 26px;
    text-align: center;
}

/* Ciblé par l'ID : style.css pose `#logo_mail { max-width: 200px }`, qu'un
   sélecteur de classe ne pourrait pas contredire. */
.page-outil #logo_mail {
    max-width: 92px;
    height: auto;
    display: block;
    margin: 0 auto 10px;
}

.page-outil h1 {
    /* style.css habille h1 en bandeau marine : on repart d'un titre nu. */
    background: none;
    color: var(--navy);
    margin: 0 0 8px;
    padding: 0;
    border-radius: 0;
    font-size: 30px;
    line-height: 1.2;
    letter-spacing: -0.015em;
}

.page-outil .accroche {
    margin: 0 auto 20px;
    max-width: 70ch;
    color: var(--encre-doux);
    font-size: 15px;
}

/* -------------------------------------------------------------- Recherche */

.page-outil .recherche {
    display: flex;
    gap: 10px;
    max-width: 560px;
    margin: 0 auto;
    align-items: stretch;
}

.page-outil .recherche .search-container {
    flex: 1;
    max-width: none;
}

.page-outil #domain {
    height: 52px;
    padding: 0 42px 0 18px;
    background: var(--surface);
    border: 1.5px solid var(--bordure);
    border-radius: var(--rayon-s);
    font-size: 16.5px;
    color: var(--encre);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.page-outil #domain::placeholder {
    color: var(--encre-tenu);
}

.page-outil #domain:focus {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 4px rgba(39, 54, 120, .12);
}

.page-outil #clearButton {
    font-size: 24px;
    right: 14px;
}

.page-outil .decouverte {
    margin: 0;
    padding: 0 30px;
    height: 52px;
    background: var(--navy);
    border: none;
    border-radius: var(--rayon-s);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .18s ease, transform .18s ease;
}

.page-outil .decouverte:hover {
    background: var(--navy-clair);
    transform: translateY(-1px);
}

.page-outil .decouverte:active {
    transform: translateY(0);
}

/* Seconde clé d'entrée du même outil (recherche par commune). Discrète mais
   au contact du champ : c'est là que la question se pose. Un gris trop tenu la
   rendait invisible, d'où le lien en marine souligné.

   Posée sur une pastille au fond de la page : sur l'en-tête blanc, elle se
   détache assez pour qu'on la voie sans concurrencer le bouton « Découvrir ».
   `inline-flex` la fait épouser son texte — en bloc pleine largeur, la bande
   grise passerait pour une nouvelle section. Le centrage vient du
   `text-align: center` de l'en-tête. */
.page-outil .recherche-alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 16px 0 0;
    padding: 8px 16px;
    background: var(--fond);
    border: 1px solid var(--bordure);
    border-radius: 999px;
    font-size: 13.5px;
    color: var(--encre-doux);
    transition: background .18s ease, border-color .18s ease;
}

/* Survol porté par la pastille entière : le lien reste la cible, mais le
   retour visuel commence dès qu'on approche de la phrase. */
.page-outil .recherche-alt:hover {
    background: #eef1f9;
    border-color: #d3dbf0;
}

.page-outil .recherche-alt svg {
    color: var(--cyan-fonce);
    flex-shrink: 0;
}

.page-outil .recherche-alt a {
    display: inline-block;
    padding: 3px 0;
    color: var(--navy);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(39, 54, 120, .35);
    text-underline-offset: 2px;
}

.page-outil .recherche-alt a:hover {
    text-decoration-color: var(--navy);
}

/* ------------------------------------------------------------------ Corps */

.page-outil main {
    padding: 34px 0 8px;
}

/* ---------------------------------------------------------------- Verdict */

.page-outil #result {
    font-size: inherit;
    font-weight: normal;
    margin: 0;
}

/* Le verdict est une étiquette : un objet compact et centré, pas une
   banderole pleine largeur où le regard se perdait entre le nom et le badge. */
.page-outil #result .result-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 560px;
    margin: 0 auto;
    padding: 28px 32px 24px;
    text-align: center;
    background: var(--surface);
    border: 1px solid var(--bordure);
    border-top: 4px solid var(--cyan);
    border-radius: var(--rayon);
    box-shadow: var(--ombre-relief);
}

.page-outil #result .logo-hebergeur {
    width: auto;
    max-width: 132px;
    max-height: 62px;
    margin: 0;
    flex-shrink: 0;
}

.page-outil #result .verdict-corps {
    width: 100%;
    min-width: 0;
}

.page-outil #result .hebergeur-name,
.page-outil #result .status-title {
    margin: 0 0 4px;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--navy);
    letter-spacing: -0.015em;
}

.page-outil #result .verdict-corps p {
    margin: 4px 0 0;
}

.page-outil #result .location,
.page-outil #result .location-unknown {
    margin: 6px 0 0;
    font-size: 14.5px;
    color: var(--encre-doux);
}

/* La méthode de détection, discrète mais toujours là : elle explique le
   verdict sans qu'on ait à ouvrir quoi que ce soit. */
.page-outil .verdict-methode {
    display: inline-block;
    margin-top: 10px;
    padding: 3px 11px;
    background: var(--surface-douce);
    border: 1px solid var(--bordure);
    border-radius: 20px;
    font-size: 12px;
    color: var(--encre-doux);
}

.page-outil .verdict-methode strong {
    color: var(--navy);
    font-weight: 600;
}

/* Le badge de confiance quitte le bas de carte pour l'aplomb du bandeau. */
.page-outil #result .result-card > hr {
    display: none;
}

.page-outil #result .confidence-badge {
    flex-shrink: 0;
    align-self: center;
}

/* Le pourquoi du verdict. « Détection incertaine » sans explication laisse le
   visiteur devant un jugement qu'il ne peut ni comprendre ni contester. */
.page-outil .confidence-motif {
    display: block;
    max-width: 46ch;
    margin: 8px auto 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--encre-tenu);
}

/* La méthode renvoie à l'étape qui l'a établie. */
.page-outil a.verdict-methode-lien {
    text-decoration: none;
    transition: border-color .18s ease, color .18s ease;
}

.page-outil a.verdict-methode-lien:hover {
    border-color: var(--cyan);
    color: var(--navy);
}

.page-outil a.verdict-methode-lien svg {
    opacity: .55;
    vertical-align: -1px;
}

/* La carte visée s'annonce brièvement, sinon l'ancre déplace la page sans
   qu'on sache ce qu'on est censé regarder. */
.page-outil .analyse-grille .analyse-section:target {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(90, 175, 204, .22), var(--ombre-relief);
}

/* Cas sans logo (auto-hébergement, inconnu) : l'icône tient lieu de vignette. */
.page-outil #result .icon-large {
    flex-shrink: 0;
    margin: 0;
    color: var(--encre-tenu);
    line-height: 0;
}

.page-outil #result .result-unknown .cta-help,
.page-outil #result .result-antispam .antispam-info {
    margin-top: 12px;
}

/* Anti-spam : la carte garde sa logique propre, on la met juste à l'échelle. */
.page-outil #result .result-antispam {
    display: block;
    max-width: 560px;
    margin: 0 auto;
    padding: 22px 26px;
    border: 1px solid var(--bordure);
    border-top: 4px solid #ba7517;
    border-left: 1px solid var(--bordure);
    border-radius: var(--rayon);
    box-shadow: var(--ombre-relief);
}

.page-outil #result .antispam-provider {
    font-size: 24px;
}

.page-outil #result .antispam-sub {
    font-size: 13px;
}

.page-outil #result .antispam-info {
    font-size: 12.5px;
    padding: 9px 12px;
}

/* États transitoires */
.page-outil #result .result-initial,
.page-outil #result .result-loading,
.page-outil #result .result-error {
    display: block;
    text-align: center;
    border-left-width: 4px;
}

.page-outil #result .result-initial {
    background: var(--surface);
    border: 1px dashed var(--bordure);
    color: var(--encre-tenu);
}

.page-outil #result .result-error {
    border-left-color: #d9534f;
}

/* --------------------------------------------------------- Barre d'actions */

.page-outil .verdict-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    max-width: 560px;
    margin: 14px auto 0;
}

.page-outil .result-signature {
    margin: 0;
    font-size: 12.5px;
    color: var(--encre-tenu);
}

.page-outil .share-button {
    border-color: var(--bordure);
    color: var(--navy);
    background: var(--surface);
    font-size: 13px;
    padding: 8px 16px;
}

.page-outil .share-button:hover {
    background: var(--navy);
    border-color: var(--navy);
    color: #fff;
}

/* ---------------------------------------------------------------- Analyse */

.page-outil .analyse {
    display: block;
    margin-top: 30px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    text-align: left;
}

.page-outil .analyse-entete {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin-bottom: 16px;
}

/* Le lien vers le guide se tient au seuil de l'enquête, pas orphelin sous la
   dernière carte où il flottait sans rien à quoi se rattacher. */
.page-outil .analyse-guide {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
    padding: 8px 15px;
    background: var(--surface);
    border: 1px solid var(--bordure);
    border-radius: 20px;
    color: var(--cyan-fonce);
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color .18s ease, color .18s ease;
}

.page-outil .analyse-guide:hover {
    border-color: var(--cyan);
    color: var(--navy);
}

/* La question que pose chaque étape : elle explique le sigle par ce qu'il
   sert à savoir, plutôt que par une définition hors-sol. */
.page-outil .analyse-grille .analyse-question {
    margin: 0 0 8px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--encre-tenu);
}

/* La réponse en clair, entre la question et la donnée brute. C'est la ligne
   qu'on lit si on ne lit qu'une chose de la carte : elle porte donc le plus
   de contraste des trois. */
.page-outil .analyse-grille .analyse-reponse {
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--encre);
}

.page-outil .analyse-grille .analyse-reponse strong {
    color: var(--navy);
    font-weight: 600;
}

.page-outil .analyse-entete h2 {
    margin: 0;
    font-size: 19px;
    color: var(--navy);
    letter-spacing: -0.015em;
}

.page-outil .analyse-entete .analyse-intro {
    margin: 4px 0 0;
    font-size: 14px;
    color: var(--encre-doux);
}

.page-outil .analyse-entete .analyse-compte {
    margin: 0;
    font-size: 12.5px;
    color: var(--encre-tenu);
}

/* Chaque section du partial devient une carte de la grille. */
.page-outil .analyse-grille {
    display: grid;
    /* Deux colonnes larges plutôt que trois étroites : les sections vont par
       quatre (anti-spam, MX, SMTP, SPF), donc trois colonnes laissaient la
       dernière seule sur une rangée, avec deux tiers de vide à sa droite. Et
       les valeurs techniques (bannière, enregistrement SPF) ont enfin la place
       de tenir sans se couper. */
    /* min(…, 100%) : sans lui, la piste garde 420 px de minimum même sur un
       écran de 360 px, et toute la page se décale horizontalement. */
    grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
    gap: 16px;
}

.page-outil .analyse-grille {
    counter-reset: etape;
}

.page-outil .analyse-grille .analyse-section {
    counter-increment: etape;
    position: relative;
    margin: 0;
    padding: 18px 20px;
    background: var(--surface);
    border: 1px solid var(--bordure);
    border-bottom: 1px solid var(--bordure);
    border-radius: var(--rayon);
    box-shadow: var(--ombre);
    transition: box-shadow .18s ease, transform .18s ease;
}

.page-outil .analyse-grille .analyse-section:hover {
    box-shadow: var(--ombre-relief);
    transform: translateY(-1px);
}

.page-outil .analyse-grille .analyse-title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 8px;
    padding-bottom: 0;
    border-bottom: none;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--cyan-fonce);
}

/* La pastille numérotée : c'est elle qui transforme quatre encarts juxtaposés
   en étapes successives d'une même enquête. */
.page-outil .analyse-grille .analyse-title::before {
    content: counter(etape);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: var(--navy);
    border-radius: 50%;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
}


.page-outil .analyse-grille .analyse-title svg {
    flex-shrink: 0;
    opacity: .75;
}

.page-outil .analyse-grille .analyse-content {
    padding-top: 12px;
    border-top: 1px solid var(--bordure-tenue);
}

.page-outil .analyse-grille .analyse-content p,
.page-outil .analyse-grille .analyse-content li {
    font-size: 13.5px;
    color: var(--encre-doux);
    line-height: 1.5;
    /* `break-all` hérité de style.css coupait les mots n'importe où ;
       `anywhere` ne coupe que les chaînes réellement insécables. */
    word-break: normal;
    overflow-wrap: anywhere;
}

.page-outil .analyse-grille .analyse-content strong {
    color: var(--encre);
    font-weight: 600;
}

.page-outil .analyse-grille .analyse-content ul {
    margin: 6px 0 0;
    padding-left: 0;
    list-style: none;
}

.page-outil .analyse-grille .analyse-content li {
    padding: 5px 0;
    border-bottom: 1px solid var(--bordure-tenue);
    font-size: 12.5px;
}

.page-outil .analyse-grille .analyse-content li:last-child {
    border-bottom: none;
}

.page-outil .analyse-grille .valeur {
    background: var(--surface-douce);
    border-color: var(--bordure);
    color: var(--encre);
}

.page-outil .analyse-grille .guide-link {
    margin: 0;
    padding: 0;
    border: none;
}

/* Les éléments hors sections du partial (avertissement, note de correction,
   lien vers le guide) traversent la grille sur toute sa largeur. */
.page-outil .analyse-grille > .analyse-disclaimer,
.page-outil .analyse-grille > .domain-corrected-note,
.page-outil .analyse-grille > .guide-link {
    grid-column: 1 / -1;
}

.page-outil .analyse-grille > .analyse-disclaimer {
    order: 98;
    margin: 6px 0 0;
    font-size: 12.5px;
    font-style: normal;
    color: var(--encre-tenu);
    text-align: left;
}

.page-outil .analyse-grille > .guide-link {
    order: 99;
    margin: 2px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--bordure);
    text-align: center;
    font-size: 13.5px;
}

.page-outil .analyse .guide-link a,
.page-outil .liste {
    color: var(--cyan-fonce);
    font-weight: 500;
}

/* ------------------------------------------------------------ Autres pistes */

/* ------------------------------------------------------------ Enquête presse

   L'enquête n'est pas une variante de l'outil : c'est une lecture. Elle est donc
   traitée comme un objet éditorial — un seul bloc marine pleine largeur, titre
   de une, et surtout ses chiffres en clair. Les deux cartes jumelles d'avant
   (« Rechercher une commune » / « Le panorama de la presse ») mettaient sur le
   même plan un outil et un article, et n'annonçaient ni l'un ni l'autre. */

.page-outil .panorama {
    margin-top: 40px;
}

.page-outil .panorama-carte {
    position: relative;   /* repère de la surcouche cliquable (.panorama-action::after) */
    padding: 28px 32px 26px;
    /* Centré comme la une de /press (surtitre, titre, chapeau) et comme le
       reste de l'accueil, du champ de recherche au bandeau de verdict : un bloc
       ferré à gauche cassait cet axe. Tient parce que le texte est court — un
       constat de deux lignes, une légende ; pas du corps de texte. */
    text-align: center;
    background: linear-gradient(135deg, var(--navy) 0%, #31438f 100%);
    border: 1px solid var(--navy);
    border-radius: var(--rayon);
    box-shadow: var(--ombre);
    color: #fff;
    transition: box-shadow .18s ease, transform .18s ease;
}

.page-outil .panorama-carte:hover {
    box-shadow: var(--ombre-relief);
    transform: translateY(-3px);
}

.page-outil .panorama-surtitre {
    margin: 0 0 6px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    color: var(--cyan-clair);
}

.page-outil .panorama-titre {
    margin: 0;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #fff;
}

.page-outil .panorama-constat {
    margin: 14px auto 0;
    max-width: 62ch;
    font-size: 16px;
    color: rgba(255, 255, 255, .82);
}

.page-outil .panorama-constat strong {
    color: #fff;
    font-weight: 700;
}

/* Jauge : les trois parts de l'échantillon, dans les teintes des badges de
   /press (rouge États-Unis, vert Europe, or auto-hébergé) — éclaircies pour
   tenir sur le marine : le rouge d'origine du badge n'y faisait que 2,4:1,
   sous le 3:1 attendu d'un élément graphique porteur de sens, et se voyait à
   peine. Les largeurs viennent de flex-grow, posé sur les effectifs bruts
   dans le gabarit : la barre reste exactement proportionnelle, sans
   pourcentage à arrondir. */
.page-outil .panorama-jauge {
    display: flex;
    gap: 3px;
    height: 10px;
    max-width: 520px;
    margin: 18px auto 0;
    border-radius: 999px;
    overflow: hidden;
}

.page-outil .panorama-part {
    display: block;
    min-width: 3px;
}

.page-outil .panorama-part-us { background: #ff7a6b; }
.page-outil .panorama-part-eu { background: #2ecc71; }
.page-outil .panorama-part-auto { background: #f5b041; }

.page-outil .panorama-legende {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px 20px;
    margin: 12px 0 0;
    font-size: 13px;
    color: rgba(255, 255, 255, .75);
}

.page-outil .panorama-poste {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

.page-outil .panorama-legende strong {
    color: #fff;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.page-outil .panorama-cle {
    width: 9px;
    height: 9px;
    border-radius: 3px;
    flex-shrink: 0;
}

.page-outil .panorama-cle-us { background: #ff7a6b; }
.page-outil .panorama-cle-eu { background: #2ecc71; }
.page-outil .panorama-cle-auto { background: #f5b041; }

.page-outil .panorama-action {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 18px;
    font-size: 14.5px;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
}

/* Surcouche : la carte entière devient cliquable sans que le lien avale le
   titre et le constat. Contrepartie assumée — le texte du bloc n'est plus
   sélectionnable à la souris. */
.page-outil .panorama-action::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: var(--rayon);
}

/* Le focus clavier atterrit sur ce lien : sur fond marine, l'anneau par défaut
   du navigateur se voit à peine, d'où un liseré blanc explicite. */
.page-outil .panorama-action:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 4px;
    border-radius: 4px;
}

.page-outil .recherche-alt a:focus-visible {
    outline: 2px solid var(--navy);
    outline-offset: 3px;
    border-radius: 4px;
}

.page-outil .panorama-action svg {
    transition: transform .18s ease;
}

.page-outil .panorama-carte:hover .panorama-action svg {
    transform: translateX(4px);
}

/* --------------------------------------------------------------- À propos */

.page-outil .a-propos {
    margin-top: 34px;
    padding: 26px 30px;
    background: var(--surface);
    border: 1px solid var(--bordure);
    border-radius: var(--rayon);
}

.page-outil .a-propos h2 {
    margin: 0 0 10px;
    font-size: 17px;
    color: var(--navy);
}

.page-outil .a-propos p {
    margin: 0 0 14px;
    max-width: 68ch;
    color: var(--encre-doux);
    text-align: left;
}

.page-outil .a-propos-liens {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(330px, 100%), 1fr));
    gap: 12px 26px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--bordure-tenue);
}

.page-outil .a-propos-item {
    display: flex;
    gap: 10px;
    font-size: 13.5px;
    color: var(--encre-doux);
}

.page-outil .a-propos-item svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--cyan-fonce);
}

.page-outil .a-propos-item strong {
    display: block;
    color: var(--encre);
    font-weight: 600;
}

/* ------------------------------------------------------------------- Pied */

.page-outil .pied {
    margin-top: 40px;
    padding: 22px 0 30px;
    border-top: 1px solid var(--bordure);
    text-align: center;
    font-size: 13px;
    color: var(--encre-tenu);
}

.page-outil .pied a {
    color: var(--encre-doux);
    text-decoration: none;
}

.page-outil .pied a:hover {
    color: var(--navy);
    text-decoration: underline;
}

.page-outil .pied-ezeo {
    margin: 0 0 8px;
    font-weight: 600;
    color: var(--navy);
}

.page-outil .pied-ezeo a {
    color: var(--navy);
}

/* ------------------------------------------------------------ Adaptations */

@media (max-width: 780px) {
    .page-outil .enveloppe { padding: 0 16px; }
    .page-outil h1 { font-size: 24px; }
    .page-outil .accroche { font-size: 14.5px; }

    .page-outil .recherche {
        flex-direction: column;
        gap: 8px;
    }

    .page-outil .decouverte { width: 100%; }

    /* Le bandeau redevient une carte empilée et centrée. */
    .page-outil #result .result-card {
        flex-direction: column;
        align-items: center;
        gap: 14px;
        padding: 22px 18px;
        text-align: center;
    }

    .page-outil #result .hebergeur-name,
    .page-outil #result .status-title { font-size: 21px; }

    .page-outil #result .result-unknown .cta-help,
    .page-outil #result .result-antispam .antispam-info { text-align: center; }

    .page-outil .verdict-actions { justify-content: center; }
    .page-outil .result-signature { text-align: center; width: 100%; }

    .page-outil .analyse-entete { flex-direction: column; }

    /* La phrase passe sur deux lignes en petite largeur : un rayon « stade »
       sur une boîte haute fait bizarre, on revient au coin arrondi. */
    .page-outil .recherche-alt {
        font-size: 13px;
        border-radius: var(--rayon-s);
    }

    .page-outil .panorama-carte { padding: 22px 18px 20px; }
    .page-outil .panorama-titre { font-size: 21px; }
    .page-outil .panorama-constat { font-size: 15px; }

    .page-outil .a-propos { padding: 20px 18px; }
}

@media (prefers-reduced-motion: reduce) {
    .page-outil * {
        transition: none !important;
        transform: none !important;
    }
}
