/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.13.12.1789897309
Updated: 2026-09-20 11:41:49

*/

:root {
    --ei-primaire: #1b2a4a;
    --ei-primaire-clair: #2c4270;
    --ei-fond: #e8eaf0;
    --ei-blanc: #ffffff;
    --ei-texte: #1a1a1a;
    --ei-texte-clair: #6b7280;
}

body {
    background-color: var(--ei-fond);
    color: var(--ei-texte);
}


.ei-accueil-blocs {
    display: flex;
    gap: 24px;
    justify-content: center;
    align-items: stretch;
    padding: 60px 20px;
    flex-wrap: wrap;
}

.ei-bloc-accueil {
    background: var(--ei-blanc);
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 60px 50px;
    text-decoration: none;
    text-align: center;
    flex: 1 1 320px;
    max-width: 400px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ei-bloc-accueil:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(27, 42, 74, 0.15);
}

.ei-bloc-accueil h2 {
    color: var(--ei-primaire);
    font-size: 1.8em;
    margin-bottom: 10px;
}

.ei-bloc-accueil p {
    color: var(--ei-texte-clair);
    font-size: 1em;
    margin: 0;
}

/* ========================================== */
/* Variables couleur du site */
/* ========================================== */
:root {
    --ei-primaire: #1b2a4a;
    --ei-primaire-clair: #2c4270;
    --ei-fond: #f7f8fa;
    --ei-blanc: #ffffff;
    --ei-texte: #1a1a1a;
    --ei-texte-clair: #6b7280;
}

body {
    background-color: var(--ei-fond);
    color: var(--ei-texte);
}

/* ========================================== */
/* Blocs de la page d'accueil */
/* ========================================== */
.ei-accueil-blocs {
    display: flex;
    gap: 24px;
    justify-content: center;
    align-items: stretch;
    padding: 60px 20px;
    flex-wrap: wrap;
}

.ei-bloc-accueil {
    background: var(--ei-blanc);
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 60px 50px;
    text-decoration: none !important;
    text-align: center;
    flex: 1 1 320px;
    max-width: 400px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ei-bloc-accueil:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(27, 42, 74, 0.15);
}

.ei-bloc-accueil h2 {
    color: var(--ei-primaire) !important;
    font-size: 1.8em;
    margin-bottom: 10px;
}

.ei-bloc-accueil p {
    color: var(--ei-texte-clair);
    font-size: 1em;
    margin: 0;
}

.ei-bloc-connexion-mini {
    display: inline-block;
    background: var(--ei-blanc);
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px 20px;
    color: var(--ei-primaire) !important;
    text-decoration: none !important;
    font-size: 0.9em;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ei-bloc-connexion-mini:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(27, 42, 74, 0.12);
}

.ei-connexion-fixe {
    position: fixed !important;
    top: 25px !important;
    right: calc(50% - 412px) !important;
    z-index: 9999 !important;
}

/* Mobile / tablette : le bouton reste dans l'écran, à droite de l'en-tête */
@media (max-width: 921px) {
    .ei-connexion-fixe {
        right: 16px !important;
        top: 12px !important;
        padding: 8px 16px !important;
    }
}


.ei-dashboard-section {
    background: var(--ei-blanc);
    border: 1px solid #54789B;
    border-radius: 12px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 6px 20px rgba(27, 42, 74, 0.15);
}

.ei-dashboard-section h2 {
    color: var(--ei-primaire);
    font-size: 1.3em;
    margin-top: 0;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ei-primaire);
    display: inline-block;
}

.ei-dashboard-item {
    background: var(--ei-fond);
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 12px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ei-dashboard-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(27, 42, 74, 0.1);
}

.ei-dashboard-item:last-child {
    margin-bottom: 0;
}

form input[type="text"],
form input[type="email"],
form input[type="tel"],
form input[type="password"],
form input[type="number"],
form textarea,
form select {
    max-width: 420px;
    width: 100%;
    box-sizing: border-box;
}

.entry-content form {
    max-width: 500px !important;
    margin: 0 auto !important;
}

/* Lignes de champs côte à côte (CD : RPPS + Pseudo, Code postal + Ville... / F : SIRET + Pseudo, Email + Téléphone...) */
body.page-id-9 .entry-content form,
body.page-id-13 .entry-content form {
    max-width: 640px !important;
}

/* Tous les champs de ces formulaires remplissent toute la largeur de leur boîte,
   qu'ils soient seuls sur une ligne ou à deux : les bords extérieurs et la
   séparation centrale restent alignés du haut en bas du formulaire. */
body.page-id-9 .entry-content form input[type="text"],
body.page-id-9 .entry-content form input[type="email"],
body.page-id-9 .entry-content form input[type="tel"],
body.page-id-9 .entry-content form input[type="password"],
body.page-id-9 .entry-content form input[type="file"],
body.page-id-13 .entry-content form input[type="text"],
body.page-id-13 .entry-content form input[type="email"],
body.page-id-13 .entry-content form input[type="tel"],
body.page-id-13 .entry-content form input[type="password"],
body.page-id-13 .entry-content form input[type="file"] {
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

/* Poster un besoin : formulaire compact et centré, à la largeur du champ Nom
   (pour ne pas encourager les titres à rallonge qui s'affichent mal sur les
   fiches d'enchères). Une seule règle pour tous les champs, pour rester cohérent. */
body.page-id-19 .entry-content form {
    max-width: 380px !important;
    margin: 0 auto !important;
}

body.page-id-19 .entry-content form input[type="text"],
body.page-id-19 .entry-content form input[type="number"],
body.page-id-19 .entry-content form select,
body.page-id-19 .entry-content form textarea {
    width: 100%;
    max-width: 34ch;
    box-sizing: border-box;
}

/* La ligne à deux colonnes (Au prix maxi de / Prix espéré) reste à la même
   largeur que le reste du formulaire (34ch), comme les autres champs. */
body.page-id-19 .entry-content form .ei-form-row {
    width: 100%;
    max-width: 34ch;
    box-sizing: border-box;
    margin-bottom: 16px;
}

body.page-id-19 .entry-content form input[type="file"] {
    width: 100%;
    box-sizing: border-box;
}

/* Chaque colonne est trop étroite pour que son libellé tienne toujours sur une
   seule ligne : plutôt que de forcer une seule ligne (ce qui fait déborder la
   case à droite), on réserve la hauteur de 2 lignes aux deux libellés, qu'ils
   passent réellement à la ligne ou non. Les deux champs de saisie démarrent
   ainsi toujours à la même hauteur, sans jamais déborder du formulaire. */
.ei-form-row > p > label {
    display: flex;
    align-items: flex-end;
    height: 2.6em;
    line-height: 1.3em;
    font-size: 0.88em;
}

.ei-form-row > p > br {
    display: none;
}

.ei-form-row .ei-aide {
    vertical-align: -3px;
    margin-left: 4px;
}

/* Supprime les petites flèches (incrément/décrément) des champs de prix */
.entry-content form input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.entry-content form input[type="number"]::-webkit-outer-spin-button,
.entry-content form input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Petit "?" explicatif au survol (ex. Prix espéré) : bulle rectangulaire, largeur limitée */
.ei-aide {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--ei-primaire-clair);
    color: #fff;
    font-size: 0.72em;
    font-weight: 700;
    cursor: help;
    vertical-align: middle;
    margin-left: 4px;
}

.ei-aide::after {
    content: attr(data-tip);
    position: absolute;
    bottom: 130%;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    max-width: 200px;
    padding: 8px 10px;
    background: #1b2a4a;
    color: #fff;
    font-size: 0.78em;
    font-weight: 400;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
    border-radius: 6px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease;
    z-index: 10;
    pointer-events: none;
}

.ei-aide:hover::after,
.ei-aide:focus::after {
    opacity: 1;
    visibility: visible;
}

/* Champ "Ajouter une image" : input natif masqué, bouton + nom de fichier + croix de suppression */
.ei-champ-fichier {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ei-btn-fichier {
    display: inline-block;
    background: #eef0f3;
    border: 1px solid #d1d5db;
    color: var(--ei-primaire);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 0.9em;
    cursor: pointer;
    transition: background 0.2s ease;
}

.ei-btn-fichier:hover {
    background: #e2e5ea;
}

.ei-fichier-nom {
    font-size: 0.85em;
    color: #374151;
}

.ei-fichier-x {
    background: none;
    border: none;
    color: #b91c1c;
    font-size: 1.1em;
    line-height: 1;
    cursor: pointer;
    padding: 2px 6px;
}

.ei-fichier-x:hover {
    background: #fee2e2;
    border-radius: 50%;
}

/* Boutons "submit" des formulaires du site : une teinte visible plutôt qu'un texte nu */
.entry-content form button[type="submit"] {
    background: #eef0f3;
    border: 1px solid #d1d5db;
    color: var(--ei-primaire);
    padding: 10px 24px;
    border-radius: 8px;
    font-size: 1em;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
}

.entry-content form button[type="submit"]:hover {
    background: #e2e5ea;
    transform: translateY(-2px);
}

/* Bouton "S'inscrire" du formulaire F : couleur du bandeau du site */
.entry-content form button[name="ei_inscription_submit"] {
    background: #54789B;
    border-color: #54789B;
    color: #fff;
}

.entry-content form button[name="ei_inscription_submit"]:hover {
    background: #46647f;
}

.ei-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ei-form-row > p {
    margin: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Les champs de saisie ont une largeur minimale "automatique" imposée par le
   navigateur (indépendante de width:100%), ce qui empêchait la grille de les
   rétrécir à la moitié de la ligne et les faisait déborder à droite. */
.ei-form-row input {
    min-width: 0;
}

/* Un peu d'air entre "Ajouter une image" et le bouton "Publier" */
.ei-champ-fichier {
    margin-bottom: 12px !important;
}

.ei-btn-publier {
    margin-top: 16px !important;
}

.ei-dashboard-items-row {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.ei-dashboard-items-row .ei-dashboard-item {
    flex: 0 1 260px;
    max-width: 320px;
    margin-bottom: 0;
}

.ei-watchlist-item {
    flex: 0 1 220px;
    max-width: 260px;
}

.ei-carte-enchere {
    position: relative;
    background: var(--ei-blanc);
    border: 1px solid #c9ccd3;
    border-radius: 14px;
    padding: 12px 16px;
    flex: 0 1 280px;
    max-width: 320px;
    box-shadow: 0 3px 10px rgba(27, 42, 74, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Décompte mis en relief (plus de mot "Reste", juste le temps, en évidence) */
.ei-carte-decompte {
    font-size: 1.15em !important;
    font-weight: 700;
    color: #c0392b !important;
}

/* Icône watchlist (œil) en haut à droite de la case, au-dessus de la photo */
.ei-carte-enchere .ei-watchlist-icone {
    position: absolute;
    top: 10px;
    right: 10px;
}

/* Enchères en cours : pavés plus compacts (moins d'espace entre les lignes) */
.ei-liste-besoins {
    gap: 10px !important;
}

.ei-carte-enchere h3 {
    margin: 0 0 6px;
    font-size: 1.05em;
    line-height: 1.25;
}

.ei-carte-enchere p {
    margin: 0;
    padding: 3px 0;
    line-height: 1.3;
}

.ei-carte-enchere p + p {
    border-top: 1px solid #eef0f3;
}

/* Marque à côté du nom de l'annonce (enchères en cours) */
.ei-marque {
    font-weight: 400;
    font-size: 0.8em;
    color: #6b7280;
}

/* Petit bouton "Je fais une offre" */
.ei-btn-offre {
    display: inline-block;
    background: var(--ei-primaire);
    color: #54789B !important;
    text-decoration: none !important;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 0.9em;
    font-weight: 600;
    margin-top: 8px;
    transition: background 0.2s ease, transform 0.2s ease;
}

.ei-btn-offre:hover {
    background: var(--ei-primaire-clair);
    transform: translateY(-2px);
}

/* Bouton "Payer maintenant" (rappel de paiement, gagnant proposé F) */
.ei-btn-paiement {
    display: inline-block;
    background: #dc2626;
    color: #fff !important;
    text-decoration: none !important;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 0.9em;
    font-weight: 600;
    margin-top: 4px;
    transition: background 0.2s ease, transform 0.2s ease;
}

.ei-btn-paiement:hover {
    background: #b91c1c;
    transform: translateY(-2px);
}

/* Petit rond rouge (nombre de paiements en attente) à côté de "Mon compte" dans le menu */
.ei-badge-paiement {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: #dc2626;
    color: #fff;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    vertical-align: middle;
}

.ei-terminee-mienne {
    background: var(--ei-blanc);
    border-color: var(--ei-primaire);
    box-shadow: inset 4px 0 0 var(--ei-primaire);
}

.ei-terminee-tag {
    color: var(--ei-primaire);
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ei-mini-dashboard-wrap {
    margin-bottom: 10px;
}

.ei-mini-dashboard {
    cursor: pointer;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 4px 0;
}

.ei-mini-dashboard::-webkit-details-marker {
    display: none;
}

.ei-mini-titre {
    color: var(--ei-primaire);
    font-size: 1.3em;
    font-weight: 700;
    margin-right: 6px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ei-primaire);
    display: inline-block;
}

.ei-mini-stat {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9em;
    font-weight: 600;
}

.ei-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.ei-mini-dashboard-wrap[open] .ei-dashboard-items-row {
    margin-top: 20px;
    gap: 22px;
}

.ei-liste-gagnants-cd {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    font-size: 0.92em;
}

.ei-archives {
    margin-top: 24px;
    padding: 16px 20px;
    background: var(--ei-blanc);
    border: 1px solid #54789B;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(27, 42, 74, 0.15);
}

.ei-archives summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 1.05em;
    color: var(--ei-primaire);
    padding: 4px 0;
}

.ei-archives[open] summary {
    margin-bottom: 14px;
}

.ei-carte-enchere:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(27, 42, 74, 0.14);
}

/* Enchères en cours : photo + infos du posteur fusionnées dans la case */
.ei-carte-photo {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 8px;
}

.ei-carte-photo img {
    display: block;
    width: 150px;
    height: 130px;
    object-fit: contain;
    background: #f5f5f5;
    border-radius: 6px;
}

/* Case sans photo : vignette vide de même format, pour garder l'alignement */
.ei-carte-photo-vide {
    width: 150px;
    height: 130px;
    background: #eef0f3;
    border-radius: 6px;
}

/* Place réservée pour 2 lignes de titre, pour que toutes les cases s'alignent */
.ei-carte-enchere h3 {
    min-height: 2.6em;
}

/* Précisions éventuelles (remarque du CD), sous le titre.
   Hauteur réservée (2 lignes) même vide, pour que Départ/Actuel/Reste
   démarrent toujours à la même hauteur d'une case à l'autre. */
.ei-form-precisions-compteur {
    color: #6b7280;
    font-weight: 400;
    font-size: 0.85em;
}

.ei-carte-enchere .ei-carte-precisions {
    height: 1.3em;
    line-height: 1.3em;
    margin-bottom: 14px;
    font-size: 0.85em;
    color: #4b5563;
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ei-carte-meta {
    font-size: 0.78em;
    color: #6b7280;
}

.ei-form-offre-carte {
    display: flex;
    gap: 6px;
    margin-top: 8px;
}

.ei-form-offre-carte input[type="number"] {
    width: 130px;
    min-width: 0;
}

button.ei-btn-offre {
    border: none;
    cursor: pointer;
    margin-top: 0;
}

/* Carte d'une enchère où le fournisseur connecté a déjà une offre en cours */
.ei-encheres-mon-offre {
    background: #E6EBF0 !important;
}

/* Carte d'un besoin posté par le CD connecté */
.ei-encheres-mon-besoin {
    background: #E6EBF0 !important;
    border-top: none !important;
}

/* Page d'un besoin : titre + icône watchlist (œil) juste à côté */
.single-besoin .entry-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ei-watchlist-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #d1d5db;
    text-decoration: none !important;
    flex-shrink: 0;
    transition: border-color 0.2s ease, transform 0.15s ease;
}

.ei-watchlist-icone::before {
    content: "♥";
    font-size: 15px;
    color: #c9ccd3;
    transition: color 0.2s ease;
}

.ei-watchlist-icone:hover {
    transform: scale(1.08);
}

.ei-watchlist-icone.ei-watchlist-actif {
    border-color: #dc2626;
}

.ei-watchlist-icone.ei-watchlist-actif::before {
    color: #dc2626;
}

/* Petit badge carré vert "compte validé" à côté du nom du CD */
.ei-badge-valide {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    background: #16a34a;
    color: #fff;
    font-size: 9px;
    line-height: 1;
    vertical-align: middle;
}

/* Ma watchlist (Mon compte) : compte à rebours / mention "Terminée" */
.ei-watchlist-compte-a-rebours,
.ei-watchlist-compte-a-rebours .ei-countdown {
    margin-top: 6px;
    color: #dc2626 !important;
    font-size: 0.85em;
    font-weight: 700;
}

.ei-watchlist-terminee {
    margin-top: 6px;
    color: #6b7280;
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* Page d'un besoin : bloc prix / temps restant plus compact */
.single-besoin .entry-content div[style*="border-top:1px solid #ddd"] p {
    margin: 3px 0;
    line-height: 1.3;
}

/* Page d'un besoin : navigation "Précédent / Suivant" d'Astra masquée (inutile ici) */
.single-besoin .post-navigation {
    display: none;
}

/* Page d'un besoin : essai de rapprochement visuel avec la carte "Enchères en cours"
   (titre plus petit, marque à côté, formulaire d'offre compact et aligné) */
.single-besoin .entry-title {
    font-size: 1.4em;
    margin-bottom: 4px;
}

.single-besoin .entry-content form {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.single-besoin .entry-content form p {
    margin: 0;
}

.single-besoin .entry-content form label {
    font-size: 0.85em;
}

.single-besoin .entry-content form input[type="number"] {
    width: 110px;
}

/* Pied de page : ligne simple de liens (Contact, Mentions légales, CGU...),
   éditable et extensible directement dans Apparence > Widgets > Pied de page. */
.ei-footer-liens {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.85em;
}

.ei-footer-liens li {
    margin: 0;
    padding: 0;
    position: relative;
}

.ei-footer-liens li + li::before {
    content: "·";
    position: absolute;
    left: -12px;
    color: #9aa1ad;
}

.ei-footer-liens a {
    color: inherit;
    text-decoration: none;
}

.ei-footer-liens a:hover {
    text-decoration: underline;
}