/*
Theme Name: Journal du Web
Theme URI: https://le-journal-du-web.fr
Author: SASU ABCduWeb
Author URI: https://abcduweb.fr
Description: Thème magazine sur mesure pour Le Journal du Web. Aucun constructeur de pages, aucune dépendance externe : HTML sémantique, CSS natif, zéro JavaScript bloquant.
Version: 1.5.8
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: jdw
*/

/* ==========================================================================
   Jetons de design
   ========================================================================== */

:root {
    --jdw-navy:        #38465a;
    --jdw-navy-dark:   #2b3648;
    --jdw-orange:      #e8833a;
    --jdw-orange-dark: #cf6d27;

    --jdw-text:        #1f2933;
    --jdw-text-soft:   #52606d;
    --jdw-line:        #e4e7eb;
    --jdw-bg:          #f5f7fa;
    --jdw-card:        #ffffff;

    /* Pilotés depuis Apparence → Personnaliser → Mise en page */
    --jdw-max:         1320px;
    --jdw-gutter:      18px;
    --jdw-radius:      10px;
    --jdw-shadow:      0 1px 3px rgba(31, 41, 51, .08), 0 4px 16px rgba(31, 41, 51, .05);

    /* Police système : aucune requête réseau, aucun décalage de mise en page */
    --jdw-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    --jdw-font-title: Georgia, "Times New Roman", serif;
}

/* ==========================================================================
   Base
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

/* Un widget tiers plus large que l'écran ne doit pas élargir toute la page */
html, body { max-width: 100%; overflow-x: hidden; }

body {
    margin: 0;
    font-family: var(--jdw-font);
    font-size: 17px;
    line-height: 1.65;
    color: var(--jdw-text);
    background: var(--jdw-bg);
}

img, video { max-width: 100%; height: auto; display: block; }

a { color: var(--jdw-orange-dark); text-decoration: none; }
a:hover, a:focus { text-decoration: underline; }

h1, h2, h3, h4 {
    font-family: var(--jdw-font-title);
    line-height: 1.25;
    color: var(--jdw-text);
    margin: 0 0 .6em;
}

h1 { font-size: 2.1rem; }
h2 { font-size: 1.55rem; }
h3 { font-size: 1.25rem; }

p { margin: 0 0 1.2em; }

/* Accessibilité : lien d'évitement et focus visible */
.jdw-skip {
    position: absolute; left: -9999px;
    background: var(--jdw-orange); color: #fff;
    padding: 10px 18px; z-index: 999;
}
.jdw-skip:focus { left: 8px; top: 8px; }

:focus-visible { outline: 3px solid var(--jdw-orange); outline-offset: 2px; }

.jdw-wrap {
    max-width: var(--jdw-max);
    margin: 0 auto;
    padding-left: var(--jdw-gutter);
    padding-right: var(--jdw-gutter);
}

.screen-reader-text {
    position: absolute !important; width: 1px; height: 1px;
    overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

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

.jdw-header { background: var(--jdw-navy); color: #fff; }

.jdw-header__bar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding-top: 14px; padding-bottom: 14px;
}

.jdw-logo img { max-height: 62px; width: auto; }
.jdw-logo a { color: #fff; font-family: var(--jdw-font-title); font-size: 1.4rem; }

.jdw-nav ul {
    list-style: none; display: flex; flex-wrap: wrap;
    gap: 4px; margin: 0; padding: 0;
}

.jdw-nav a {
    display: block; padding: 8px 12px; color: #e8ecf2;
    border-radius: 6px; font-size: .94rem; text-decoration: none;
}
.jdw-nav a:hover, .jdw-nav .current-menu-item > a {
    background: rgba(255, 255, 255, .12); color: #fff;
}

/* Menu mobile sans JavaScript : case à cocher masquée */
.jdw-burger { display: none; }
.jdw-burger-label {
    display: none; cursor: pointer; padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.4); border-radius: 6px; color: #fff;
}

@media (max-width: 860px) {
    .jdw-burger-label { display: block; }
    .jdw-nav { display: none; width: 100%; }
    .jdw-burger:checked ~ .jdw-nav { display: block; }
    .jdw-nav ul { flex-direction: column; padding-bottom: 12px; }
    .jdw-header__bar { flex-wrap: wrap; }
}

/* ==========================================================================
   Mise en page
   ========================================================================== */

.jdw-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 34px;
    padding-top: 30px;
    padding-bottom: 50px;
}

/* Les colonnes latérales passent sous le contenu sur écran étroit.
   La colonne de gauche reste avant le contenu dans le code (accessibilité),
   mais s'affiche après lui en lecture mobile. */
@media (max-width: 1100px) {
    .jdw-layout { grid-template-columns: 1fr; }
    .jdw-layout > main { order: 1; }
    .jdw-sidebar--left { order: 2; }
    .jdw-layout > .jdw-sidebar:not(.jdw-sidebar--left) { order: 3; }
}

/* ==========================================================================
   Cartes d'article
   ========================================================================== */

.jdw-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 22px;
}

.jdw-card {
    background: var(--jdw-card); border-radius: var(--jdw-radius);
    box-shadow: var(--jdw-shadow); overflow: hidden;
    display: flex; flex-direction: column;
}

.jdw-card__thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--jdw-line); }
.jdw-card__thumb img { width: 100%; height: 100%; object-fit: cover; }

.jdw-card__body { padding: 16px 18px 20px; display: flex; flex-direction: column; flex: 1; }

.jdw-card__title { font-size: 1.15rem; margin: 0 0 8px; }
.jdw-card__title a { color: var(--jdw-text); }
.jdw-card__title a:hover { color: var(--jdw-orange-dark); }

.jdw-card__excerpt { font-size: .93rem; color: var(--jdw-text-soft); margin: 0 0 14px; }

.jdw-meta {
    font-size: .8rem; color: var(--jdw-text-soft);
    display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
    margin-bottom: 10px;
}

.jdw-cat {
    display: inline-block; background: var(--jdw-navy); color: #fff;
    padding: 3px 9px; border-radius: 999px; font-size: .74rem;
    text-decoration: none;
}
.jdw-cat:hover { background: var(--jdw-orange-dark); color: #fff; text-decoration: none; }

/* Article en vedette */
.jdw-hero { margin-bottom: 28px; }
.jdw-hero .jdw-card__title { font-size: 1.75rem; }
.jdw-hero .jdw-card__thumb { aspect-ratio: 21 / 9; }

/* ==========================================================================
   Article seul
   ========================================================================== */

.jdw-single {
    background: var(--jdw-card); border-radius: var(--jdw-radius);
    box-shadow: var(--jdw-shadow); padding: 30px;
}

@media (max-width: 600px) { .jdw-single { padding: 20px 16px; } }

.jdw-single__title { font-size: 2.05rem; margin-bottom: 14px; }

.jdw-single__thumb { margin: 20px -30px; }
.jdw-single__thumb img { width: 100%; }

@media (max-width: 600px) { .jdw-single__thumb { margin: 18px -16px; } }

.jdw-content { font-size: 1.05rem; }
.jdw-content h2 { margin-top: 1.7em; padding-bottom: .3em; border-bottom: 2px solid var(--jdw-line); }
.jdw-content h3 { margin-top: 1.4em; }
.jdw-content ul, .jdw-content ol { padding-left: 1.4em; margin-bottom: 1.2em; }
.jdw-content li { margin-bottom: .45em; }
.jdw-content img { border-radius: 8px; margin: 1.2em 0; }
.jdw-content blockquote {
    margin: 1.4em 0; padding: 4px 0 4px 20px;
    border-left: 4px solid var(--jdw-orange); color: var(--jdw-text-soft); font-style: italic;
}
.jdw-content table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .95rem; }
.jdw-content th, .jdw-content td { border: 1px solid var(--jdw-line); padding: 9px 12px; text-align: left; }
.jdw-content th { background: var(--jdw-bg); }
.jdw-content pre {
    background: var(--jdw-navy-dark); color: #e8ecf2; padding: 16px;
    border-radius: 8px; overflow-x: auto; font-size: .88rem;
}
.jdw-content a { text-decoration: underline; }

/* Lien sponsorisé signalé visuellement */
.jdw-content a[rel~="sponsored"]::after {
    content: " ↗"; font-size: .8em; opacity: .7;
}

.jdw-tags { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--jdw-line); }
.jdw-tags a {
    display: inline-block; background: var(--jdw-bg); color: var(--jdw-text-soft);
    padding: 4px 11px; border-radius: 999px; font-size: .82rem; margin: 0 6px 6px 0;
    text-decoration: none;
}
.jdw-tags a:hover { background: var(--jdw-orange); color: #fff; }

/* ==========================================================================
   Navigation entre articles
   ========================================================================== */

.jdw-postnav {
    display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px;
}
@media (max-width: 600px) { .jdw-postnav { grid-template-columns: 1fr; } }

.jdw-postnav a {
    display: block; background: var(--jdw-card); padding: 14px 18px;
    border-radius: var(--jdw-radius); box-shadow: var(--jdw-shadow);
    color: var(--jdw-text); text-decoration: none;
}
.jdw-postnav a:hover { color: var(--jdw-orange-dark); }
.jdw-postnav span { display: block; font-size: .78rem; color: var(--jdw-text-soft); margin-bottom: 4px; }
.jdw-postnav .jdw-next { text-align: right; }

/* ==========================================================================
   Barre latérale
   ========================================================================== */

.jdw-sidebar--left .widget-title,
.jdw-sidebar--left h2 { border-bottom-color: var(--jdw-navy); }

.jdw-sidebar .widget {
    background: var(--jdw-card); border-radius: var(--jdw-radius);
    box-shadow: var(--jdw-shadow); padding: 20px; margin-bottom: 22px;
}

.jdw-sidebar .widget-title, .jdw-sidebar h2 {
    font-size: 1.05rem; margin: 0 0 14px; padding-bottom: 10px;
    border-bottom: 2px solid var(--jdw-orange);
}

/* Le contenu d'un widget reste dans sa colonne ; s'il est trop large,
   il défile à l'intérieur au lieu de déborder sur la page. */
.jdw-sidebar .widget > * { max-width: 100%; }
.jdw-sidebar--left .widget-title,
.jdw-sidebar--left h2 { border-bottom-color: var(--jdw-navy); }

.jdw-sidebar .widget { overflow-x: auto; }
.jdw-sidebar .widget table { width: 100%; table-layout: fixed; }
.jdw-sidebar .widget img { height: auto; }

.jdw-sidebar ul { list-style: none; margin: 0; padding: 0; }
.jdw-sidebar li { padding: 7px 0; border-bottom: 1px solid var(--jdw-line); font-size: .93rem; }
.jdw-sidebar li:last-child { border-bottom: 0; }

/* ==========================================================================
   Pagination
   ========================================================================== */

.jdw-pagination { margin: 34px 0 0; text-align: center; }
.jdw-pagination .page-numbers {
    display: inline-block; padding: 8px 14px; margin: 0 3px 6px;
    background: var(--jdw-card); border-radius: 6px;
    box-shadow: var(--jdw-shadow); color: var(--jdw-text); text-decoration: none;
}
.jdw-pagination .page-numbers.current { background: var(--jdw-orange); color: #fff; }
.jdw-pagination a.page-numbers:hover { background: var(--jdw-navy); color: #fff; }

/* ==========================================================================
   Emplacements publicitaires
   ========================================================================== */

.jdw-ad { margin: 26px 0; text-align: center; min-height: 90px; }
.jdw-ad--infeed { margin: 30px 0; }

/* Idem pour les widgets du pied de page */
.jdw-footer .widget > * { max-width: 100%; }
.jdw-footer .widget { overflow-x: auto; }

/* ==========================================================================
   Commentaires
   ========================================================================== */

.jdw-comments {
    background: var(--jdw-card);
    border-radius: var(--jdw-radius);
    box-shadow: var(--jdw-shadow);
    padding: 30px;
    margin-top: 28px;
}

@media (max-width: 600px) { .jdw-comments { padding: 22px 16px; } }

.jdw-comments__title {
    font-size: 1.35rem;
    margin: 0 0 22px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--jdw-line);
}

.jdw-comments__closed {
    color: var(--jdw-text-soft);
    font-style: italic;
    padding: 12px 0;
}

/* --- Liste --- */

.jdw-commentlist,
.jdw-commentlist .children {
    list-style: none;
    margin: 0;
    padding: 0;
}

.jdw-commentlist .children {
    margin-left: 26px;
    padding-left: 20px;
    border-left: 2px solid var(--jdw-line);
}

@media (max-width: 600px) {
    .jdw-commentlist .children { margin-left: 10px; padding-left: 12px; }
}

.jdw-comment { margin-bottom: 18px; }

.jdw-comment__body {
    background: var(--jdw-bg);
    border-radius: var(--jdw-radius);
    padding: 16px 18px;
}

.jdw-comment.bypostauthor > .jdw-comment__body {
    border-left: 3px solid var(--jdw-orange);
}

.jdw-comment__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.jdw-comment__avatar img {
    border-radius: 50%;
    display: block;
}

.jdw-comment__meta { display: flex; flex-direction: column; line-height: 1.35; }

.jdw-comment__author,
.jdw-comment__author a {
    font-weight: 600;
    color: var(--jdw-text);
    text-decoration: none;
}

.jdw-comment__meta time { font-size: .8rem; color: var(--jdw-text-soft); }

.jdw-comment__content { font-size: .97rem; }
.jdw-comment__content p:last-child { margin-bottom: 0; }

.jdw-comment__pending {
    background: #fff8e6;
    border-left: 3px solid var(--jdw-orange);
    padding: 8px 12px;
    font-size: .88rem;
    margin: 0 0 10px;
}

.jdw-comment__actions {
    margin-top: 10px;
    display: flex;
    gap: 14px;
    font-size: .85rem;
}

.jdw-comment__actions a {
    color: var(--jdw-orange-dark);
    font-weight: 600;
    text-decoration: none;
}
.jdw-comment__actions a:hover { text-decoration: underline; }

/* --- Formulaire --- */

.jdw-commentform { margin-top: 30px; }

.comment-reply-title {
    font-size: 1.2rem;
    margin: 0 0 6px;
    padding-top: 22px;
    border-top: 2px solid var(--jdw-line);
}

.comment-reply-title small { font-size: .8rem; font-weight: 400; margin-left: 10px; }

.jdw-form-notes {
    font-size: .85rem;
    color: var(--jdw-text-soft);
    margin-bottom: 18px;
}

.jdw-field { margin-bottom: 16px; }

.jdw-field label {
    display: block;
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: 6px;
}

.jdw-req { color: var(--jdw-orange-dark); }

.jdw-field input,
.jdw-field textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--jdw-line);
    border-radius: 8px;
    font-family: inherit;
    font-size: .97rem;
    background: #fff;
    color: var(--jdw-text);
}

.jdw-field textarea { resize: vertical; min-height: 130px; }

.jdw-field input:focus,
.jdw-field textarea:focus {
    outline: none;
    border-color: var(--jdw-orange);
    box-shadow: 0 0 0 3px rgba(232, 131, 58, .16);
}

.jdw-field input::placeholder,
.jdw-field textarea::placeholder { color: #9aa5b1; }

/* Nom et e-mail côte à côte sur écran large */
@media (min-width: 640px) {
    .jdw-commentform .comment-form-author,
    .jdw-commentform .comment-form-email {
        display: inline-block;
        width: calc(50% - 8px);
        vertical-align: top;
    }
    .jdw-commentform .comment-form-author { margin-right: 14px; }
}

.jdw-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: .88rem;
    color: var(--jdw-text-soft);
    margin-bottom: 18px;
}

.jdw-consent input { margin-top: 3px; flex-shrink: 0; }
.jdw-consent label { cursor: pointer; }

.jdw-btn,
.jdw-commentform input[type="submit"] {
    background: var(--jdw-orange);
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 12px 26px;
    font-family: inherit;
    font-size: .98rem;
    font-weight: 600;
    cursor: pointer;
}

.jdw-btn:hover,
.jdw-commentform input[type="submit"]:hover { background: var(--jdw-orange-dark); }

.comment-navigation { margin: 22px 0; font-size: .9rem; }
.comment-navigation a { font-weight: 600; }

/* Champ leurre de l'antispam : accessible au navigateur, hors écran pour les humains. */
.jdw-antispam-field {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/* Formulaire de contact interactif [jdw_contact] */
.jdw-contact {
    max-width: 760px;
    margin: 28px auto;
    padding: clamp(22px, 5vw, 38px);
    background: var(--jdw-card);
    border-radius: 16px;
    box-shadow: var(--jdw-shadow);
    border-top: 4px solid var(--jdw-orange);
}
.jdw-contact__intro { margin: 0 0 24px; color: var(--jdw-text-soft); }
.jdw-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.jdw-contact__field { position: relative; margin-bottom: 18px; }
.jdw-contact__field--full { grid-column: 1 / -1; }
.jdw-contact label { display: block; margin-bottom: 7px; color: var(--jdw-text); font-weight: 650; }
.jdw-contact input[type="text"],
.jdw-contact input[type="email"],
.jdw-contact textarea {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #cbd2da;
    border-radius: 8px;
    background: #fff;
    color: var(--jdw-text);
    font: inherit;
    transition: border-color .2s, box-shadow .2s;
}
.jdw-contact textarea { min-height: 170px; resize: vertical; }
.jdw-contact input:focus,
.jdw-contact textarea:focus {
    outline: 0;
    border-color: var(--jdw-orange);
    box-shadow: 0 0 0 3px rgba(232, 131, 58, .16);
}
.jdw-contact [aria-invalid="true"] { border-color: #b42318 !important; }
.jdw-contact__counter { display: block; margin-top: 5px; color: var(--jdw-text-soft); font-size: .78rem; text-align: right; }
.jdw-contact__consent { display: flex; gap: 10px; align-items: flex-start; margin: 2px 0 20px; font-size: .9rem; }
.jdw-contact__consent input { margin-top: 4px; }
.jdw-contact__submit {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 22px;
    border: 0;
    border-radius: 8px;
    background: var(--jdw-orange);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s, transform .2s;
}
.jdw-contact__submit:hover { background: var(--jdw-orange-dark); transform: translateY(-1px); }
.jdw-contact__submit:disabled { cursor: wait; opacity: .7; transform: none; }
.jdw-contact__spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: jdw-spin .7s linear infinite;
}
.jdw-contact.is-sending .jdw-contact__spinner { display: inline-block; }
.jdw-contact__status { display: none; margin: 18px 0 0; padding: 12px 14px; border-radius: 8px; }
.jdw-contact__status.is-visible { display: block; }
.jdw-contact__status.is-success { color: #17643a; background: #e9f7ef; border: 1px solid #a9ddbd; }
.jdw-contact__status.is-error { color: #8d1a12; background: #fff0ef; border: 1px solid #efb2ad; }
@keyframes jdw-spin { to { transform: rotate(360deg); } }

@media (max-width: 600px) {
    .jdw-contact { margin: 20px 0; padding: 22px 16px; }
    .jdw-contact__grid { grid-template-columns: 1fr; gap: 0; }
    .jdw-contact__field--full { grid-column: auto; }
    .jdw-contact__submit { width: 100%; }
}

/* ==========================================================================
   Pied de page
   ========================================================================== */

.jdw-footer { background: var(--jdw-navy-dark); color: #dbe2ec; padding: 34px 0 22px; margin-top: 40px; }
.jdw-footer a { color: #fff; text-decoration-color: rgba(255,255,255,.5); }
.jdw-footer a:hover { color: var(--jdw-orange); }
.jdw-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 26px; }
.jdw-footer__col { min-width: 0; }
.jdw-footer .widget { margin: 0 0 18px; }
.jdw-footer .widget:last-child { margin-bottom: 0; }
.jdw-footer .widget-title,
.jdw-footer h2,
.jdw-footer h3 {
    color: #fff;
    font-size: 1.05rem;
    line-height: 1.3;
    margin: 0 0 12px;
}
.jdw-footer ul { list-style: none; margin: 0; padding: 0; }
.jdw-footer li { padding: 4px 0; font-size: .92rem; }
.jdw-footer__bottom {
    margin-top: 0; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14);
    font-size: .86rem; text-align: center;
}
.jdw-footer__cols + .jdw-footer__bottom { margin-top: 26px; }

@media (max-width: 600px) {
    .jdw-footer { padding: 26px 0 20px; margin-top: 28px; }
    .jdw-footer__cols { grid-template-columns: 1fr; gap: 20px; }
    .jdw-footer__cols + .jdw-footer__bottom { margin-top: 20px; }
    .jdw-footer__bottom { padding-top: 14px; }
}

/* ==========================================================================
   Cadenas de gestion des cookies
   ========================================================================== */

.jdw-cookie-lock {
    position: fixed;
    bottom: 18px;
    z-index: 2147483645;        /* visible, juste sous le panneau tarteaucitron */
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: var(--jdw-navy);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(31, 41, 51, .3);
    transition: background .2s, transform .2s;
}

.jdw-cookie-lock--left  { left: 18px; }
.jdw-cookie-lock--right { right: 18px; }

.jdw-cookie-lock:hover,
.jdw-cookie-lock:focus-visible {
    background: var(--jdw-orange);
    transform: translateY(-2px);
}

.jdw-cookie-lock svg { display: block; }

@media (max-width: 600px) {
    .jdw-cookie-lock { width: 42px; height: 42px; bottom: 14px; }
    .jdw-cookie-lock--left  { left: 14px; }
    .jdw-cookie-lock--right { right: 14px; }
}

@media print { .jdw-cookie-lock { display: none; } }

.jdw-adsense-wrap {
    clear: both;
    margin: 26px auto;
    min-height: 90px;
    overflow: hidden;
    text-align: center;
    width: 100%;
}

.jdw-adsense-unit { width: 100%; }

.jdw-adsense-config-warning {
    background: #fff4e8;
    border-left: 4px solid var(--jdw-orange);
    color: var(--jdw-text);
    padding: 12px 16px;
}

/* ========================================================================== 
   Tarteaucitron — adaptation à la charte du Journal du Web
   Les !important sont nécessaires car la feuille native est chargée
   dynamiquement après celle du thème.
   ========================================================================== */

html body #tarteaucitronRoot #tarteaucitronAlertBig {
    background: #fff !important;
    color: var(--jdw-text) !important;
    border: 1px solid var(--jdw-line) !important;
    border-top: 4px solid var(--jdw-orange) !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 55px rgba(31, 41, 51, .22) !important;
    bottom: 22px !important;
    left: 50% !important;
    max-width: 820px !important;
    padding: 18px 22px !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 48px) !important;
    font-family: inherit !important;
}

html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert,
html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert strong {
    color: var(--jdw-text) !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    background: var(--jdw-orange) !important;
    color: #fff !important;
    border-radius: 7px !important;
    font-weight: 700 !important;
    padding: 11px 16px !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrlDialog,
html body #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronDeny {
    background: #fff !important;
    color: var(--jdw-navy) !important;
    border: 1px solid var(--jdw-navy) !important;
    border-radius: 7px !important;
    padding: 10px 15px !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig button:hover,
html body #tarteaucitronRoot #tarteaucitronAlertBig button:focus-visible {
    filter: brightness(.92);
    transform: translateY(-1px);
}

html body #tarteaucitronRoot div#tarteaucitronServices,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder {
    border-radius: var(--jdw-radius) !important;
    box-shadow: 0 18px 50px rgba(31, 41, 51, .25) !important;
}

html body #tarteaucitronRoot div#tarteaucitron {
    background: #fff !important;
    border-radius: 14px !important;
    box-shadow: 0 20px 65px rgba(31, 41, 51, .28) !important;
    overflow: visible !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronH1 {
    color: var(--jdw-navy-dark) !important;
    font-family: inherit !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    margin: 0 !important;
    padding: 24px 80px 18px 24px !important;
    text-align: left !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronDisclaimer {
    background: var(--jdw-bg) !important;
    border-left: 4px solid var(--jdw-orange) !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    color: var(--jdw-text-soft) !important;
    margin: 0 24px 18px !important;
    padding: 14px 16px !important;
    width: calc(100% - 48px) !important;
}

html body #tarteaucitronRoot #tarteaucitronMainLineOffset,
html body #tarteaucitronRoot #tarteaucitronServices .tarteaucitronMainLine {
    background: var(--jdw-bg) !important;
    border-color: var(--jdw-line) !important;
    color: var(--jdw-text) !important;
}

html body #tarteaucitronRoot #tarteaucitronMainLineOffset *,
html body #tarteaucitronRoot #tarteaucitronServices .tarteaucitronMainLine *,
html body #tarteaucitronRoot #tarteaucitronServices .tarteaucitronMainLine button {
    color: var(--jdw-text) !important;
}

html body #tarteaucitronRoot #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsAllowed {
    border-left-color: var(--jdw-orange) !important;
}

html body #tarteaucitronRoot #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsDenied {
    border-left-color: var(--jdw-navy) !important;
}

html body #tarteaucitronRoot .tarteaucitronAllow,
html body #tarteaucitronRoot #tarteaucitronAllAllowed.tarteaucitronIsSelected,
html body #tarteaucitronRoot button#tarteaucitronSaveButton {
    background: var(--jdw-orange) !important;
    color: #fff !important;
    border-radius: 6px !important;
}

html body #tarteaucitronRoot .tarteaucitronDeny,
html body #tarteaucitronRoot #tarteaucitronAllDenied.tarteaucitronIsSelected,
html body #tarteaucitronRoot #tarteaucitronAllDenied2.tarteaucitronIsSelected {
    background: var(--jdw-navy) !important;
    color: #fff !important;
    border-radius: 6px !important;
}

html body #tarteaucitronRoot button#tarteaucitronClosePanel {
    background: var(--jdw-navy-dark) !important;
    color: #fff !important;
    border-radius: 7px !important;
    right: 14px !important;
    top: -20px !important;
}

@media (max-width: 600px) {
    html body #tarteaucitronRoot #tarteaucitronAlertBig {
        bottom: 10px !important;
        padding: 16px !important;
        width: calc(100% - 20px) !important;
    }

    html body #tarteaucitronRoot #tarteaucitronAlertBig button {
        box-sizing: border-box !important;
        margin: 5px auto !important;
        width: calc(100% - 32px) !important;
    }

    html body #tarteaucitronRoot #tarteaucitron .tarteaucitronH1 {
        font-size: 20px !important;
        padding: 22px 60px 14px 16px !important;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronDisclaimer {
        margin: 0 16px 14px !important;
        width: calc(100% - 32px) !important;
    }
}

/* ==========================================================================
   Formulaires, recherche, 404
   ========================================================================== */

.jdw-search { display: flex; gap: 8px; }
.jdw-search input[type="search"] {
    flex: 1; padding: 9px 12px; border: 1px solid var(--jdw-line);
    border-radius: 6px; font-size: .95rem; font-family: inherit;
}
.jdw-search button {
    padding: 9px 16px; background: var(--jdw-orange); color: #fff;
    border: 0; border-radius: 6px; cursor: pointer; font-family: inherit;
}
.jdw-search button:hover { background: var(--jdw-orange-dark); }

.jdw-404 { text-align: center; padding: 60px 20px; }
.jdw-404 h1 { font-size: 4rem; color: var(--jdw-orange); margin-bottom: 0; }

@media print {
    .jdw-header, .jdw-footer, .jdw-sidebar, .jdw-ad, .jdw-postnav { display: none; }
    .jdw-layout { grid-template-columns: 1fr; }
}
