/* ==========================================================================
   Doussou Emplois — rafraîchissement du thème (JobScout Pro + thème enfant)
   Chargé en dernier par wp-content/mu-plugins/doussou-refresh.php
   Pour revenir en arrière : supprimer doussou-refresh.php (par FTP).
   ========================================================================== */

:root {
  --de-green: #1fb34f;        /* vert principal (boutons, liens) */
  --de-green-bright: #2ace5e; /* vert d'origine du thème */
  --de-green-dark: #0b7a32;   /* survol, pied de page */
  --de-green-deep: #064d20;
  --de-green-soft: #e9f8ee;   /* fonds teintés */
  --de-ink: #1c2321;          /* texte principal */
  --de-muted: #5d6763;        /* texte secondaire */
  --de-line: #e3e8e5;         /* bordures */
  --de-bg: #f6f8f7;           /* fond de section */
  --de-radius: 10px;
  --de-shadow: 0 1px 2px rgba(16, 40, 24, .06), 0 6px 20px rgba(16, 40, 24, .07);
  --de-shadow-hover: 0 2px 4px rgba(16, 40, 24, .08), 0 14px 32px rgba(16, 40, 24, .12);
  --de-display: "Big Shoulders Display", "Nunito Sans", sans-serif;
}

/* ---------- Base ---------- */
body {
  color: var(--de-ink);
  -webkit-font-smoothing: antialiased;
}
body p { line-height: 1.7; }
a { color: var(--de-green); transition: color .15s ease; }
a:hover { color: var(--de-green-dark); }
::selection { background: var(--de-green-soft); color: var(--de-ink); }
hr { background-color: var(--de-line) !important; }
:focus-visible { outline: 3px solid rgba(31, 179, 79, .45); outline-offset: 2px; }

/* ---------- Boutons ---------- */
.btn,
a.btn,
.btn-primary,
button[type="submit"],
input[type="submit"]:not(.search-submit),
.search-filter-wrap-front-page button,
.ur-submit-button,
.load_more_jobs {
  background-color: var(--de-green) !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
  box-shadow: 0 2px 6px rgba(31, 179, 79, .25);
  transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.btn:hover,
a.btn:hover,
.btn-primary:hover,
button[type="submit"]:hover,
input[type="submit"]:not(.search-submit):hover,
.search-filter-wrap-front-page button:hover,
.ur-submit-button:hover,
.load_more_jobs:hover {
  background-color: var(--de-green-dark) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(11, 122, 50, .28);
}

/* ---------- Champs de formulaire ---------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
select,
textarea,
.form-control {
  border: 1px solid var(--de-line) !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: var(--de-ink);
  padding: .65rem .85rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
input:focus,
select:focus,
textarea:focus,
.form-control:focus {
  border-color: var(--de-green) !important;
  box-shadow: 0 0 0 3px rgba(31, 179, 79, .18) !important;
  outline: none;
}
::placeholder { color: #9aa39f !important; opacity: 1; }

/* ---------- En-tête ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: #fff;
  box-shadow: 0 1px 0 var(--de-line), 0 4px 18px rgba(16, 40, 24, .05);
}
.admin-bar .site-header { top: 32px; }
.site-header .header-t {
  background: var(--de-bg);
  border-bottom: 1px solid var(--de-line);
  font-size: 13px;
}
.site-header .header-t a { color: var(--de-muted); }
.site-header .header-t a:hover,
.site-header .header-t .current-lang a,
.site-header .header-t .current-menu-item > a { color: var(--de-green); }
.header-main { padding-top: 14px !important; padding-bottom: 14px !important; }

.header-main .main-navigation ul li a {
  font-weight: 700;
  color: var(--de-ink);
  position: relative;
}
.header-main .main-navigation ul li > a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: var(--de-green);
  transform: scaleX(0);
  transition: transform .2s ease;
}
.header-main .main-navigation ul li:hover > a,
.header-main .main-navigation ul li.current-menu-item > a,
.header-main .main-navigation ul li.current_page_item > a { color: var(--de-green) !important; }
.header-main .main-navigation ul li:hover > a::after,
.header-main .main-navigation ul li.current-menu-item > a::after,
.header-main .main-navigation ul li.current_page_item > a::after { transform: scaleX(1); }

/* Bouton « Publication d'emplois » : contour vert, plein au survol */
.menu-wrap .btn-wrap a.btn {
  font-size: 13px !important;
  width: auto !important;
  white-space: nowrap;
  padding: .6rem 1.1rem !important;
  background-color: #fff !important;
  color: var(--de-green) !important;
  box-shadow: inset 0 0 0 2px var(--de-green) !important;
}
.menu-wrap .btn-wrap a.btn:hover {
  background-color: var(--de-green) !important;
  color: #fff !important;
}

/* ---------- Bannière d'accueil ---------- */
#banner-section { position: relative; overflow: hidden; }
#banner-section .item { position: relative; }
#banner-section #wp-custom-header::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 30, 14, .72) 0%, rgba(6, 30, 14, .45) 38%, rgba(6, 30, 14, 0) 70%);
  pointer-events: none;
}
#banner-section #wp-custom-header img {
  max-height: 640px;
  min-height: 520px;
  object-fit: cover;
  object-position: 70% 30%;
}
.banner-caption { z-index: 2; }
.banner-caption h2.title {
  font-family: var(--de-display) !important;
  font-weight: 800;
  font-size: clamp(2.6rem, 5vw, 4.4rem) !important;
  line-height: .95 !important;
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .25);
  margin-bottom: 1.5rem !important;
}
.search-filter-wrap-front-page {
  background: rgba(255, 255, 255, .96) !important;
  border-radius: 14px;
  padding: 1.5rem 1.5rem 1.1rem !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
  backdrop-filter: blur(6px);
}
.search-filter-wrap-front-page > hr { display: none; }
.search-filter-wrap-front-page::before {
  content: "Explorez les emplois";
  display: block;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--de-muted);
  padding-bottom: .8rem;
  margin-bottom: .9rem;
  border-bottom: 1px solid var(--de-line);
}
html[lang^="en"] .search-filter-wrap-front-page::before { content: "Explore jobs"; }
.search-filter-wrap-front-page label {
  font-size: 12px !important;
  font-weight: 700;
  color: var(--de-green-dark) !important;
  margin: .55rem 0 .3rem;
}
.search-filter-wrap-front-page .form-control { height: 46px; }
.search-filter-wrap-front-page button {
  margin-top: 1.1rem !important;
  padding: .85rem !important;
  font-size: 15px !important;
  text-transform: uppercase;
}

/* ---------- Titres de section ---------- */
.section-title,
section.top-job-section .section-title,
.bg-cta-section .widget_text.widget.widget_custom_html .widget-title,
.additional-posts .section-title {
  font-family: var(--de-display) !important;
  font-weight: 800 !important;
  font-size: clamp(2rem, 3.4vw, 2.75rem) !important;
  line-height: 1.05;
  color: var(--de-ink);
  letter-spacing: .01em;
}

/* Bloc « Le site d'emplois spécialisés en TI » */
#custom_html-7 { padding-top: 80px !important; }
#custom_html-7 .widget-title { display: block !important; margin-bottom: 1.5rem !important; }
#custom_html-7 .widget-title .container { color: var(--de-green-dark); }
#custom_html-7 p { color: var(--de-muted); font-size: 17px; max-width: 70ch; }
#custom_html-7 img { filter: drop-shadow(0 18px 24px rgba(16, 40, 24, .15)); }
section#cta-section.bg-cta-section:not(.cta-section-jun) {
  background: linear-gradient(180deg, #fff 0%, var(--de-bg) 100%);
}

/* ---------- Récents emplois publiés ---------- */
#job-posting-section {
  padding-top: 70px;
  padding-bottom: 70px;
  padding-left: max(15px, calc((100% - 1140px) / 2)) !important;
  padding-right: max(15px, calc((100% - 1140px) / 2)) !important;
  background: var(--de-bg) !important;
  gap: 2rem;
  align-items: flex-start;
}
#job-posting-section .container-recent-emploi {
  flex: 1 1 auto;
  background: #fff;
  border: 1px solid var(--de-line);
  border-radius: 14px;
  box-shadow: var(--de-shadow);
  padding: 2rem 2rem 1.5rem;
  margin: 0 !important;
}
#job-posting-section .section-title { margin-bottom: 1.2rem; }

/* Message quand aucune offre n'est publiée */
#recent-emploi:not(:has(article)):not(:has(li.job_listing))::after {
  content: "Aucune offre n'est publiée pour le moment. Revenez bientôt, ou publiez la vôtre gratuitement.";
  display: block;
  padding: 1.5rem;
  border: 2px dashed var(--de-line);
  border-radius: 10px;
  background: var(--de-bg);
  color: var(--de-muted);
  text-align: center;
}
html[lang^="en"] #recent-emploi:not(:has(article)):not(:has(li.job_listing))::after {
  content: "No job postings right now. Check back soon, or post yours for free.";
}

/* Cartes d'offres (accueil et pages d'emplois) */
.top-job-section .row div.job_listings article,
.site-main .entry-content div.job_listings div.job_listings article,
ul.job_listings li.job_listing {
  background: #fff;
  border: 1px solid var(--de-line) !important;
  border-radius: var(--de-radius);
  box-shadow: none;
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.top-job-section .row div.job_listings article:hover,
.site-main .entry-content div.job_listings div.job_listings article:hover,
ul.job_listings li.job_listing:hover {
  border-color: rgba(31, 179, 79, .45) !important;
  box-shadow: var(--de-shadow-hover);
  transform: translateY(-2px);
}
.job_listings article .entry-title a,
ul.job_listings li.job_listing h3 { color: var(--de-ink); font-weight: 800; }
.job_listings article .entry-title a:hover { color: var(--de-green); }

/* Pastilles de type d'emploi */
.job-manager li.job-type,
.job-types li.job-type,
.job_listing li.job-type {
  border-radius: 999px !important;
  font-weight: 700;
  font-size: 12px;
}

/* Publicité Doussou Formation */
#banner-df {
  flex: 0 0 320px;
  max-width: 320px !important;
  align-self: flex-start !important;
  position: relative;
}
#banner-df > div { position: absolute; top: 10px; right: 10px; z-index: 2; }
#banner-df button {
  width: 28px; height: 28px;
  padding: 0 !important;
  border-radius: 50% !important;
  background: rgba(0, 0, 0, .55) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  line-height: 28px;
}
#banner-df img {
  border: 0 !important;
  border-radius: 14px;
  box-shadow: var(--de-shadow);
  transition: transform .2s ease, box-shadow .2s ease;
  display: block;
  width: 100%;
}
#banner-df a:hover img { transform: translateY(-3px); box-shadow: var(--de-shadow-hover); }

/* ---------- Stages et premiers emplois ---------- */
.cta-section-jun {
  background: linear-gradient(135deg, var(--de-green-soft) 0%, #f7fbf8 100%) !important;
  height: auto !important;
  padding: 70px 0 !important;
  align-items: center !important;
}
.cta-section-jun .row { align-items: center; }
.cta-section-jun h2 {
  font-family: var(--de-display) !important;
  font-weight: 800 !important;
  font-size: clamp(1.9rem, 3vw, 2.5rem) !important;
  text-align: left !important;
  color: var(--de-ink);
}
.cta-section-jun p { text-align: left !important; color: var(--de-muted); }
.cta-section-jun .text-right-cta { text-align: left !important; }
.cta-section-jun .btn { float: none !important; display: inline-block; padding: .75rem 1.5rem; }

/* ---------- Articles (accueil, blogue, articles similaires) ---------- */
.article-section { padding-top: 70px; padding-bottom: 70px; }
.article-section .article-wrap article.post,
.additional-posts .article-wrap article.post,
.blog .site-main article.post {
  background: #fff;
  border: 1px solid var(--de-line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--de-shadow);
  transition: transform .2s ease, box-shadow .2s ease;
}
.article-section .article-wrap article.post:hover,
.additional-posts .article-wrap article.post:hover,
.blog .site-main article.post:hover {
  transform: translateY(-4px);
  box-shadow: var(--de-shadow-hover);
}
.article-wrap .post-thumbnail { margin: 0; overflow: hidden; }
.article-wrap .post-thumbnail img,
.blog .site-main .post-thumbnail img {
  transition: transform .4s ease;
  width: 100%;
  object-fit: cover;
}
.article-wrap article.post:hover .post-thumbnail img,
.blog .site-main article.post:hover .post-thumbnail img { transform: scale(1.04); }
.article-wrap .entry-header,
.blog .site-main .content-wrap { padding: 1.1rem 1.25rem 1.4rem; }
.article-wrap .entry-title a,
.blog .site-main .entry-title a { color: var(--de-ink); font-weight: 800; }
.article-wrap .entry-title a:hover,
.blog .site-main .entry-title a:hover { color: var(--de-green); }
.entry-meta, .posted-on { color: var(--de-muted); font-size: 13px; }
.blog .site-main article.post { margin-bottom: 2rem; }
.readmore-link { font-weight: 700; }

/* Article seul : lecture confortable */
.single-post .site-main .entry-content { font-size: 17.5px; }
.single-post .site-main .entry-content p { color: #2f3834; }
.single-post .site-main .entry-content h5 {
  font-size: 1.35rem !important;
  margin-top: 2rem;
  color: var(--de-green-dark);
}
.single-post .post-thumbnail img { border-radius: 14px; }
.single-post h1.entry-title {
  font-family: var(--de-display);
  font-weight: 800;
  font-size: clamp(2.2rem, 4vw, 3rem);
  line-height: 1.05;
}

/* ---------- En-tête de page + fil d'Ariane ---------- */
.page-header, .breadcrumb-wrapper { background: var(--de-bg); }
.site-main .entry-header h1.entry-title,
.page .site-main .page-title {
  font-family: var(--de-display);
  font-weight: 800;
  font-size: clamp(2.2rem, 4vw, 3rem);
  color: var(--de-ink);
}

/* ---------- Recherche d'emplois (WP Job Manager) ---------- */
.job_filters,
.site-main .job_listings .jobscout_job_filters {
  background: #fff !important;
  border: 1px solid var(--de-line);
  border-radius: 14px;
  box-shadow: var(--de-shadow);
  overflow: hidden;
}
.job_filters .search_jobs { background: transparent !important; padding: 1.25rem !important; }
/* Le formulaire de la bannière est déjà dans une carte */
.search-filter-wrap-front-page .job_filters {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0;
  overflow: visible;
}
.job_filters ul.job_types {
  background: var(--de-bg) !important;
  border-top: 1px solid var(--de-line);
  padding: .8rem 1.25rem !important;
}
.job_filters ul.job_types li { font-size: 14px; }
.job_filters .showing_jobs { background: var(--de-green-soft) !important; color: var(--de-green-deep); }
div.job_listings .no_job_listings_found,
.job_listings .no_job_listings_found {
  border: 2px dashed var(--de-line);
  border-radius: 10px;
  background: var(--de-bg);
  padding: 1.25rem;
  color: var(--de-muted);
  text-align: center;
  margin-top: 1.25rem;
}
.entry-content > p > a[href*="recherche"],
.entry-content > p:first-child > a { font-weight: 700; }

/* ---------- Barre latérale ---------- */
#secondary .widget {
  background: #fff;
  border: 1px solid var(--de-line);
  border-radius: 14px;
  padding: 1.25rem;
  box-shadow: var(--de-shadow);
  margin-bottom: 1.5rem;
}
#secondary .widget_media_image { padding: 1.75rem 1rem; }
#custom_html-17 { margin: 0 0 1.5rem !important; }
#secondary .widget .widget-title {
  font-size: 1.15rem !important;
  font-weight: 800;
  margin-bottom: .9rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--de-line);
}
#custom_html-17 .widget-title, #custom_html-18 .widget-title { font-size: 1.15rem !important; }
#secondary .search-form { display: flex; gap: .5rem; }
#secondary .search-form label { flex: 1; margin: 0; }
#secondary .search-form .search-field { width: 100%; height: 44px; }
#secondary .search-form .search-submit {
  width: 44px; height: 44px; min-width: 44px;
  border-radius: 8px !important;
  border: 0 !important;
  background-color: var(--de-green) !important;
}
#secondary .search-form .search-submit:hover { background-color: var(--de-green-dark) !important; }
/* Formulaire d'inscription déjà dans une carte : pas de 2e cadre */
.module-page-login .ur-frontend-form.ur-frontend-form--bordered {
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
ul.job_listings { list-style: none; padding-left: 0; margin-left: 0; }

/* ---------- Formulaires (publier une offre, connexion, inscription) ---------- */
.job-manager-form,
#job_preview,
.user-registration,
.ur-frontend-form,
.user-registration-MyAccount-content,
.user-registration-form-login {
  border-radius: 14px !important;
}
.job-manager-form {
  background: #fff;
  border: 1px solid var(--de-line);
  border-radius: 14px;
  box-shadow: var(--de-shadow);
  padding: 2rem;
}
.job-manager-form fieldset { border-bottom: 1px solid var(--de-line); padding: .9rem 0; }
.job-manager-form fieldset label { font-weight: 700; color: var(--de-ink); }
.job-manager-form small.description { color: var(--de-muted); }

.ur-frontend-form.ur-frontend-form--bordered {
  background: #fff !important;
  border: 1px solid var(--de-line) !important;
  box-shadow: var(--de-shadow) !important;
  padding: 2rem !important;
}
.ur-frontend-form .ur-form-row .ur-form-grid label,
.user-registration-form-login label {
  font-weight: 700;
  color: var(--de-ink) !important;
  font-size: 14px;
}
.ur-frontend-form .ur-form-row .ur-form-grid input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.user-registration-form-login input.input-text {
  height: 46px;
  background: #fff !important;
}
.user-registration-form-login .user-registration-Button,
.user-registration-form-login input[type="submit"] {
  background: var(--de-green) !important;
  color: #fff !important;
  border: 0 !important;
  min-width: 160px;
  padding: .75rem 1.5rem !important;
}

/* Page d'inscription (module maison) */
.module-page-login {
  border: 1px solid var(--de-line) !important;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--de-shadow-hover) !important;
}
.module-page-login .login-gauche a { color: var(--de-green) !important; }
.module-page-login .login-droite {
  background: linear-gradient(160deg, var(--de-green) 0%, var(--de-green-dark) 100%) !important;
}
.module-page-login .login-droite h1 { font-family: var(--de-display); font-weight: 800; }
.module-page-login .login-droite .btn,
.module-page-login .login-droite a.btn {
  background: #fff !important;
  color: var(--de-green-dark) !important;
}

/* ---------- Pied de page ---------- */
.footer-t {
  background-image: linear-gradient(180deg, var(--de-green-dark) 0%, var(--de-green-deep) 100%) !important;
  padding-top: 64px !important;
  padding-bottom: 40px !important;
}
.site-footer .widget .widget-title {
  color: #fff;
  font-size: 1rem !important;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.site-footer, .site-footer p, .site-footer li { color: rgba(255, 255, 255, .82); }
.site-footer a { color: rgba(255, 255, 255, .88) !important; }
.site-footer a:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
.site-footer ul li { border-color: rgba(255, 255, 255, .14) !important; }
.site-footer img[src*="Flag_of_Canada"] { border-radius: 3px; margin-top: 1rem; }

/* Bouton retour en haut */
#back-to-top span {
  background: var(--de-green) !important;
  box-shadow: 0 6px 16px rgba(11, 122, 50, .3);
}

/* ---------- Mobile ---------- */
@media (max-width: 991px) {
  #job-posting-section { flex-direction: column; padding-left: 15px; padding-right: 15px; }
  #banner-df { flex: none; max-width: 340px !important; margin: 0 auto; }
}
@media (max-width: 767px) {
  .site-header { position: relative; }
  #banner-section #wp-custom-header img { min-height: 640px; object-position: 75% center; }
  #banner-section #wp-custom-header::after {
    background: linear-gradient(180deg, rgba(6, 30, 14, .55) 0%, rgba(6, 30, 14, .35) 100%);
  }
  .search-filter-wrap-front-page { margin: 0 4px; }
  #job-posting-section .container-recent-emploi { padding: 1.4rem 1.1rem; }
  .cta-section-jun { padding: 48px 0 !important; text-align: left; }
  .cta-section-jun img.widget-image { max-width: 180px; margin: 0 auto 1rem; display: block; }
  .job-manager-form { padding: 1.25rem; }
  .footer-t { padding-top: 44px !important; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
