/* ============================================================
   Du Cœur à l'Ouvrage — Page d'accueil
   À coller dans : Personnaliser → CSS additionnel
   (ou à charger comme feuille de style dans le thème enfant)
   Le header/menu n'est pas inclus : il est géré par Astra.
   ============================================================ */

.dco { --dco-red:#A0242B; --dco-dark:#14100E; --dco-cream:#F5F1EC; --dco-sand:#EDE7E0;
  font-family:Archivo,sans-serif; color:var(--dco-dark); background:var(--dco-cream); }
.dco *, .dco *::before, .dco *::after { box-sizing:border-box; }
.dco img { max-width:100%; display:block; }
.dco a { text-decoration:none; }
.dco h1,.dco h2,.dco h3,.dco p { margin:0; }

/* --- utilitaires --- */
.dco-eyebrow { font-size:12px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--dco-red); }
.dco-btn { display:inline-flex; align-items:center; justify-content:center; padding:18px 34px;
  border-radius:2px; font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; transition:.2s; }
.dco-btn--red { background:var(--dco-red); color:#fff; }
.dco-btn--red:hover { background:var(--dco-cream); color:var(--dco-dark); }
.dco-btn--ghost { border:1px solid rgba(245,241,236,.4); color:var(--dco-cream); }
.dco-btn--ghost:hover { border-color:var(--dco-cream); background:rgba(245,241,236,.08); color:var(--dco-cream); }
.dco-btn--outline-dark { border:1px solid rgba(20,16,14,.25); color:var(--dco-dark); padding:16px 28px; }
.dco-btn--outline-dark:hover { background:var(--dco-dark); color:var(--dco-cream); }

/* --- HERO --- */
.dco-hero { position:relative; min-height:88vh; display:flex; flex-direction:column; justify-content:flex-end;
  padding:120px 48px 0; color:var(--dco-cream);
  background-image:linear-gradient(to right,rgba(20,16,14,.92) 0%,rgba(20,16,14,.72) 45%,rgba(20,16,14,.35) 100%),
    var(--dco-hero-img); background-size:cover; background-position:center 55%; }
.dco-hero__inner { max-width:900px; padding-bottom:72px; }
.dco-hero__tag { display:flex; align-items:center; gap:14px; margin-bottom:28px; }
.dco-hero__tag span:first-child { width:46px; height:2px; background:var(--dco-red); }
.dco-hero__tag span:last-child { font-size:12px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:rgba(245,241,236,.72); }
.dco-hero h1 { font-size:clamp(44px,7vw,92px); line-height:.94; font-weight:800; letter-spacing:-.03em; text-transform:uppercase; }
.dco-hero__lead { max-width:560px; margin-top:32px; font-family:Newsreader,serif; font-size:24px; line-height:1.5; color:rgba(245,241,236,.82); }
.dco-hero__cta { display:flex; flex-wrap:wrap; gap:16px; margin-top:44px; }
.dco-facts { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(245,241,236,.16);
  background:rgba(20,16,14,.55); margin:0 -48px; }
.dco-facts div { padding:26px 32px; border-right:1px solid rgba(245,241,236,.12); }
.dco-facts div:last-child { border-right:0; }
.dco-facts b { display:block; font-size:30px; font-weight:700; letter-spacing:-.02em; }
.dco-facts small { display:block; margin-top:4px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(245,241,236,.55); }

/* --- SECTIONS CLAIRES --- */
.dco-section { padding:120px 48px; background:var(--dco-cream); }
.dco-section__head { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; }
.dco-section__head--rule { padding-bottom:40px; border-bottom:1px solid rgba(20,16,14,.14); }
.dco-section h2 { margin-top:18px; font-size:clamp(32px,4.5vw,54px); line-height:1.02; font-weight:700; letter-spacing:-.03em; max-width:620px; }
.dco-section__note { max-width:380px; font-family:Newsreader,serif; font-size:19px; line-height:1.6; color:rgba(20,16,14,.7); }

/* --- MÉTIERS --- */
.dco-metiers { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:1px; background:rgba(20,16,14,.14); }
.dco-metier { padding:44px 36px 40px; background:var(--dco-cream); transition:.25s; }
.dco-metier:hover { background:var(--dco-dark); color:var(--dco-cream); }
.dco-metier:hover p { color:rgba(245,241,236,.75); }
.dco-metier__num { font-size:13px; font-weight:700; letter-spacing:.16em; color:var(--dco-red); }
.dco-metier h3 { margin:22px 0 14px; font-size:28px; font-weight:700; letter-spacing:-.02em; }
.dco-metier p { font-size:16px; line-height:1.65; color:rgba(20,16,14,.72); transition:.25s; }

/* --- BANDEAU CITATION --- */
.dco-quote { display:grid; grid-template-columns:1.1fr 1fr; background:var(--dco-dark); color:var(--dco-cream); }
.dco-quote__text { padding:110px 64px 110px 48px; }
.dco-quote__mark { font-family:Newsreader,serif; font-size:64px; line-height:1; color:var(--dco-red); }
.dco-quote blockquote { max-width:520px; margin:8px 0 0; font-family:Newsreader,serif; font-size:34px; line-height:1.35; font-weight:300; }
.dco-cities { display:flex; flex-wrap:wrap; gap:10px; margin-top:40px; }
.dco-cities span { padding:9px 16px; border:1px solid rgba(245,241,236,.22); border-radius:999px;
  font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:rgba(245,241,236,.75); }
.dco-cities span.is-active { background:var(--dco-red); border-color:var(--dco-red); color:#fff; }
.dco-quote__img { min-height:420px; background-size:cover; background-position:center; }

/* --- RÉALISATIONS --- */
.dco-works { display:grid; grid-template-columns:1.4fr 1fr; gap:28px; margin-top:56px; }
.dco-work { display:block; color:var(--dco-dark); }
.dco-work__img { height:460px; background-size:cover; background-position:center; transition:.35s; }
.dco-work:hover .dco-work__img { filter:brightness(.85); }
.dco-work__meta { display:flex; align-items:baseline; justify-content:space-between; gap:24px;
  padding-top:20px; margin-top:16px; border-top:2px solid var(--dco-dark); }
.dco-work__meta h3 { font-size:24px; font-weight:700; letter-spacing:-.01em; }
.dco-work__meta span { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(20,16,14,.55); }

/* nombre variable de métiers / réalisations (sans ACF Pro) */
.dco-metiers { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.dco-works--1 { grid-template-columns:1fr; }
.dco-works--3 { grid-template-columns:repeat(3,1fr); }
.dco-works--3 .dco-work__img, .dco-works--4 .dco-work__img { height:340px; }
.dco-works--4 { grid-template-columns:repeat(2,1fr); }

/* --- À PROPOS --- */
.dco-about { display:grid; grid-template-columns:1fr 1fr; background:var(--dco-sand); }
.dco-about__img { min-height:620px; background-size:cover; background-position:center 30%; }
.dco-about__text { display:flex; flex-direction:column; justify-content:center; padding:100px 48px 100px 72px; }
.dco-about__text h2 { max-width:480px; margin-top:18px; font-size:clamp(30px,3.6vw,48px); line-height:1.05; font-weight:700; letter-spacing:-.03em; }
.dco-about__text p { max-width:520px; margin-top:24px; font-size:18px; line-height:1.7; color:rgba(20,16,14,.75); }
.dco-about__facts { display:flex; flex-wrap:wrap; gap:40px; margin-top:44px; padding-top:32px; border-top:1px solid rgba(20,16,14,.18); }
.dco-about__facts small { display:block; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(20,16,14,.5); }
.dco-about__facts b { display:block; margin-top:6px; font-size:19px; font-weight:600; }

/* --- CONTACT --- */
.dco-contact { padding:130px 48px; color:var(--dco-cream);
  background-image:linear-gradient(rgba(20,16,14,.9),rgba(20,16,14,.9)), var(--dco-contact-img);
  background-size:cover; background-position:center; }
.dco-contact__grid { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:end; }
.dco-contact .dco-eyebrow { color:rgba(245,241,236,.6); }
.dco-contact h2 { max-width:640px; margin-top:20px; font-size:clamp(34px,5vw,64px); line-height:1; font-weight:800; letter-spacing:-.03em; text-transform:uppercase; }
.dco-contact__lead { max-width:520px; margin-top:26px; font-family:Newsreader,serif; font-size:22px; line-height:1.55; color:rgba(245,241,236,.8); }
.dco-contact__links { display:flex; flex-direction:column; gap:18px; }
.dco-link { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;
  padding:24px 28px; border-radius:2px; transition:.2s; }
.dco-link--red { background:var(--dco-red); color:#fff; }
.dco-link--red:hover { background:var(--dco-cream); color:var(--dco-dark); }
.dco-link--ghost { border:1px solid rgba(245,241,236,.35); color:var(--dco-cream); }
.dco-link--ghost:hover { background:rgba(245,241,236,.1); border-color:var(--dco-cream); color:var(--dco-cream); }
.dco-link strong { font-size:22px; font-weight:700; letter-spacing:-.01em; }
.dco-link em { font-style:normal; font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.dco-link--ghost strong { font-size:16px; font-weight:600; }

/* --- RESPONSIVE --- */
@media (max-width:1024px) {
  .dco-quote, .dco-about, .dco-works, .dco-contact__grid { grid-template-columns:1fr; }
  .dco-metiers { grid-template-columns:1fr; }
  .dco-facts { grid-template-columns:1fr 1fr; }
  .dco-facts div:nth-child(2n) { border-right:0; }
  .dco-facts div:nth-child(-n+2) { border-bottom:1px solid rgba(245,241,236,.12); }
  .dco-quote__text { padding:72px 32px; }
  .dco-about__text { padding:72px 32px; }
  .dco-about__img { min-height:380px; }
  .dco-section__head { flex-direction:column; align-items:flex-start; gap:24px; }
}
@media (max-width:640px) {
  .dco-hero { padding:100px 24px 0; min-height:auto; }
  .dco-hero__inner { padding-bottom:48px; }
  .dco-facts { margin:0 -24px; }
  .dco-facts div { padding:20px 24px; }
  .dco-facts b { font-size:22px; }
  .dco-section { padding:72px 24px; }
  .dco-contact { padding:80px 24px; }
  .dco-work__img { height:280px; }
  .dco-quote blockquote { font-size:26px; }
}


/* ============================================================
   OVERRIDES ASTRA — neutralise les styles du thème dans .dco
   (Astra cible h1/h2/p/a avec plus de spécificité que nos classes)
   ============================================================ */

/* pleine largeur : supprime le conteneur Astra autour du contenu */
.page-template-template-accueil .site-content .ast-container,
.page-template-template-accueil .entry-content,
.page-template-template-accueil #primary,
.page-template-template-accueil #main {
  max-width:100% !important; width:100% !important;
  padding:0 !important; margin:0 !important;
}
.page-template-template-accueil .site-content { padding:0 !important; }
.page-template-template-accueil .entry-header,
.page-template-template-accueil .post-thumb { display:none !important; }

/* typo : reprend la main sur les règles de thème */
.dco, .dco p, .dco a, .dco span, .dco small, .dco b, .dco em, .dco strong {
  font-family:Archivo,sans-serif;
}
.dco h1, .dco h2, .dco h3 { font-family:Archivo,sans-serif !important; margin:0; }
.dco p { margin-bottom:0; }

/* couleurs des titres (Astra les force en sombre) */
.dco-hero h1, .dco-contact h2, .dco-quote blockquote { color:#F5F1EC !important; }
.dco-section h2, .dco-about__text h2, .dco-work__meta h3, .dco-metier h3 { color:#14100E !important; }
.dco-metier:hover h3 { color:#F5F1EC !important; }

/* tailles (Astra impose ses tailles de h1/h2/h3) */
.dco-hero h1 { font-size:clamp(44px,7vw,92px) !important; line-height:.94 !important; font-weight:800 !important; }
.dco-section h2, .dco-about__text h2 { font-size:clamp(32px,4.5vw,54px) !important; line-height:1.05 !important; font-weight:700 !important; }
.dco-contact h2 { font-size:clamp(34px,5vw,64px) !important; line-height:1 !important; font-weight:800 !important; }
.dco-metier h3 { font-size:28px !important; font-weight:700 !important; }
.dco-work__meta h3 { font-size:24px !important; font-weight:700 !important; }

/* polices serif des accroches */
.dco-hero__lead, .dco-section__note, .dco-contact__lead, .dco-quote blockquote, .dco-quote__mark {
  font-family:Newsreader,Georgia,serif !important;
}

/* liens : Astra les colore et les souligne */
.dco a, .dco a:hover, .dco a:focus { text-decoration:none !important; }
.dco-btn--red, .dco-btn--red:visited, .dco-link--red, .dco-link--red:visited { color:#fff !important; }
.dco-btn--red:hover { background:#F5F1EC !important; color:#14100E !important; }
.dco-btn--ghost, .dco-btn--ghost:visited { color:#F5F1EC !important; }
.dco-btn--ghost:hover { color:#F5F1EC !important; }
.dco-btn--outline-dark, .dco-btn--outline-dark:visited { color:#14100E !important; }
.dco-btn--outline-dark:hover { color:#F5F1EC !important; }
.dco-link--ghost, .dco-link--ghost:visited, .dco-link--ghost:hover { color:#F5F1EC !important; }
.dco-work, .dco-work:visited { color:#14100E !important; }

/* espacements internes du hero (le conteneur Astra les écrasait) */
.dco-hero { padding-left:48px; padding-right:48px; }
@media (max-width:640px) { .dco-hero { padding-left:24px; padding-right:24px; } }

.dco-hero {
  background-image:linear-gradient(to right,
    rgba(20,16,14,.80) 0%,
    rgba(20,16,14,.55) 45%,
    rgba(20,16,14,.15) 100%),
    var(--dco-hero-img);
}