/*
Theme Name: Blocksy Child Mira
Template: blocksy
Description: Thème enfant de Blocksy pour mirafacade.com. Contient le CSS des articles (classes Mira), repris de Personnaliser > CSS additionnel le 04/11/2026.
Version: 1.0.0
Text Domain: blocksy-child-mira
*/

:root {
  --mira-primary : #0f1317;
  --mira-accent  : #169d43;
  --mira-light   : #f8f9fa;
  --mira-dark    : #1e2530;
  --mira-white   : #ffffff;
  --mira-gris    : #6c757d;
  --mira-bord    : #e0e5ea;
  --mira-vert-f  : #117a34;
}
.strongx strong {
  color: white !important;
}

:where(body:not(.single-landing_b2b)) strong {
  color: black !important;
}

/* ── Reset ciblé ── */
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }

/* ── Base ── */
body {
  font-family: 'Barlow', sans-serif;
  color: var(--mira-dark);
  font-size: 1.05rem;
  line-height: 1.75;
  background-color: var(--mira-white);
}

/* ── Titres ── (hors pages Pages Pro : elles ont leurs propres couleurs, A06 du 06/11/2026) */
:where(body:not(.single-landing_b2b)) h1, :where(body:not(.single-landing_b2b)) h2, :where(body:not(.single-landing_b2b)) h3, :where(body:not(.single-landing_b2b)) h4 {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  color: var(--mira-primary);
  text-transform: uppercase;
  letter-spacing: .02em;
  margin-top: 0;
}

h1 {
  font-size: clamp(2rem, 5vw, 2.8rem);
  line-height: 1.1;
}

h2 {
  font-size: clamp(1.4rem, 3vw, 1.85rem);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

:where(body:not(.single-landing_b2b)) h3 {
  font-size: 1.2rem;
  color: var(--mira-accent);
  text-transform: none;
  font-weight: 700;
  margin-top: 1.5rem;
  margin-bottom: .4rem;
}

p { margin-top: 0; margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

a {
  color: var(--mira-accent);
  text-underline-offset: 3px;
  transition: color .2s;
}

a:hover { color: var(--mira-vert-f); }

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--mira-accent);
  outline-offset: 2px;
  border-radius: 2px;
}

:where(body:not(.single-landing_b2b)) strong { color: var(--mira-primary); font-weight: 700; }

/* ============================================
   CONTENEUR
   ============================================ */
.article-body {
  max-width: 840px;
  margin: 0 auto;
  padding: 3rem 1.25rem 4rem;
}


/* ============================================
   HERO
   Fond noir. Bordure bas 5px vert.
   ============================================ */

.hero-banner {
  background-color: var(--mira-primary);
  padding: 3.5rem 2.5rem;
  border-bottom: 5px solid var(--mira-accent);
}

.hero-banner h1 {
  color: var(--mira-white);
}

.hero-banner .chapo {
  color: rgba(255, 255, 255, .82);
  font-size: 1.1rem;
  max-width: 680px;
  margin-bottom: 0;
}

/* Fil d'Ariane */
.hero-banner .breadcrumb {
  background: none;
  padding: 0;
  margin-bottom: 1.25rem;
}

.hero-banner .breadcrumb-item a,
.hero-banner .breadcrumb-item.active {
  color: rgba(255, 255, 255, .65);
  font-size: .88rem;
  text-decoration: none;
}

.hero-banner .breadcrumb-item a:hover {
  color: var(--mira-white);
}

.hero-banner .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, .4);
}

/* Barre méta (auteur/date — masquée en prod) */
.hero-banner .meta-bar {
  color: rgba(255, 255, 255, .55);
  font-size: .82rem;
  border-top: 1px solid rgba(255, 255, 255, .15);
  padding-top: .75rem;
  margin-top: 1.25rem;
}

/* Badge catégorie */
.tag-cat {
  background-color: var(--mira-accent);
  color: var(--mira-white);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .25rem .75rem;
  border-radius: 2px;
  display: inline-block;
  margin-bottom: 1rem;
  text-decoration: none;
}

/* Image hero */
.img-hero {
  width: 100%;
  height: clamp(240px, 42vw, 500px);
  object-fit: cover;
  display: block;
}

/* Images corps */
.img-article {
  width: 100%;
  border-radius: 4px;
  margin: 2rem 0 .5rem;
  box-shadow: 0 4px 20px rgba(15, 19, 23, .1);
}

.img-legende {
  font-size: .82rem;
  color: var(--mira-gris);
  text-align: center;
  font-style: italic;
  margin-bottom: 1.75rem;
}

/* ============================================
   HOOK
   Bordure gauche 5px vert. Fond gris clair.
   ============================================ */

.hook-block {
  border-left: 5px solid var(--mira-accent);
  padding: 1.25rem 1.5rem;
  background-color: var(--mira-light);
  margin: 2rem 0;
  font-size: 1.08rem;
  line-height: 1.75;
}

.hook-block p:last-child { margin-bottom: 0; }

/* ============================================
   SKIMMERS
   Fond noir. Numéros vert. Texte blanc.
   ============================================ */

.skimmers-block {
  background-color: var(--mira-primary);
  color: var(--mira-white);
  border-radius: 4px;
  padding: 1.5rem 2rem;
  margin: 0 0 2.5rem;
}

.skimmers-block .sk-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mira-accent);
  margin-bottom: 1rem;
}

.skimmers-block ol {
  padding-left: 1.2rem;
  margin-bottom: 0;
}

.skimmers-block ol li {
  margin-bottom: .55rem;
  color: rgba(255, 255, 255, .9);
  line-height: 1.65;
}

.skimmers-block ol li strong {
  color: var(--mira-white);
}

.skimmers-block ul {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}

.skimmers-block ul li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .45rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .9);
  font-size: .97rem;
  line-height: 1.6;
}

.skimmers-block ul li:last-child { border-bottom: none; }

.skimmers-block ul li::before {
  content: '→';
  color: var(--mira-accent);
  font-weight: 700;
  flex-shrink: 0;
  margin-top: .05rem;
}

/* ============================================
   MOMENTS ADN — TIP BOX (L'œil du façadier)
   Bordure gauche 4px noir. Fond gris clair.
   ============================================ */

:where(body:not(.single-landing_b2b)) .tip-box {
  border-left: 4px solid var(--mira-primary);
  background-color: var(--mira-light);
  padding: 1rem 1.25rem;
  margin: 1.75rem 0;
  border-radius: 0 4px 4px 0;
}

:where(body:not(.single-landing_b2b)) .tip-box strong {
  color: var(--mira-primary);
  display: block;
  margin-bottom: .4rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

:where(body:not(.single-landing_b2b)) .tip-box p {
  margin-bottom: 0;
  font-size: .97rem;
}

/* ============================================
   MOMENTS ADN — ALERTES
   ============================================ */

/* Bon à savoir */
.alert-info {
  background-color: rgba(22, 157, 67, .07);
  border: 1px solid rgba(22, 157, 67, .25);
  border-radius: 4px;
  padding: 1rem 1.25rem;
  margin: 1.75rem 0;
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  font-size: .97rem;
  color: var(--mira-dark);
}

.alert-info i {
  color: var(--mira-accent);
  flex-shrink: 0;
  margin-top: .2rem;
}

.alert-info p { margin-bottom: 0; }

/* Erreur à éviter */
.alert-warning {
  background-color: #fff8e1;
  border: 1px solid #ffca28;
  border-radius: 4px;
  padding: 1rem 1.25rem;
  margin: 1.75rem 0;
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  font-size: .97rem;
  color: var(--mira-dark);
}

.alert-warning i {
  color: #f57f17;
  flex-shrink: 0;
  margin-top: .2rem;
}

.alert-warning p { margin-bottom: 0; }

/* ============================================
   MOMENTS ADN — TERRAIN (Sur le terrain)
   ============================================ */

blockquote.terrain {
  border-left: 3px solid #aaa;
  padding: .9rem 1.2rem;
  background-color: var(--mira-light);
  border-radius: 0 4px 4px 0;
  margin: 1.75rem 0;
  font-style: italic;
  color: #444;
  font-size: .97rem;
}

blockquote.terrain p { margin-bottom: 0; }

/* ============================================
   MOMENTS ADN — CARTE IDF (Spécificité IDF)
   ============================================ */

.card-idf {
  border: none;
  border-radius: 6px;
  box-shadow: 0 2px 12px rgba(15, 19, 23, .09);
  margin: 1.75rem 0;
}

.card-idf .card-body {
  padding: 1.1rem 1.3rem;
}

.card-idf .card-subtitle {
  color: var(--mira-primary);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.card-idf .card-subtitle i {
  color: var(--mira-accent);
  font-size: .85rem;
}

.card-idf p {
  margin-bottom: 0;
  font-size: .97rem;
}

/* ============================================
   CAS CONCRET
   Fond noir. Titre vert. Texte blanc atténué.
   ============================================ */

.cas-chantier {
  background-color: var(--mira-primary);
  color: var(--mira-white);
  border-radius: 6px;
  padding: 1.75rem 2rem;
  margin: 2rem 0;
}

.cas-chantier .cas-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--mira-accent);
  margin-bottom: .75rem;
}

.cas-chantier p {
  color: rgba(255, 255, 255, .88);
  margin-bottom: .6rem;
  font-size: .97rem;
}

.cas-chantier p:last-child { margin-bottom: 0; }

.cas-chantier strong { color: var(--mira-white); }

/* ============================================
   TABLEAU
   Thead noir. Alternate rows. Hover vert pâle.
   ============================================ */

.table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
  font-size: .95rem;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(15, 19, 23, .08);
}

.table thead th {
  background-color: var(--mira-primary);
  color: var(--mira-white);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .9rem 1.1rem;
  text-align: left;
  border: none;
}

.table thead th:first-child {
  border-left: 4px solid var(--mira-accent);
}

.table tbody td {
  font-size: .95rem;
  vertical-align: top;
  padding: .75rem 1.1rem;
  border-bottom: 1px solid var(--mira-bord);
  color: #3a3f45;
}

.table tbody tr:nth-child(even) td {
  background-color: var(--mira-light);
}

.table tbody tr:last-child td { border-bottom: none; }

.table tbody tr {
  transition: background .15s;
}

.table tbody tr:hover td {
  background-color: rgba(22, 157, 67, .06);
}

/* ============================================
   CHECKLIST
   Icônes vert. Séparateurs fins.
   ============================================ */

.checklist {
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0;
}

.checklist li {
  padding: .45rem 0;
  border-bottom: 1px solid var(--mira-bord);
  font-size: .97rem;
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  line-height: 1.6;
}

.checklist li:last-child { border-bottom: none; }

.checklist li i {
  color: var(--mira-accent);
  margin-top: .15rem;
  flex-shrink: 0;
}

/* ============================================
   LISTE ÉTAPES (aides-list)
   Numéros carrés vert. Label noir. Détail gris.
   ============================================ */

.aides-list {
  counter-reset: aide-counter;
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0;
}

.aides-list li {
  counter-increment: aide-counter;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--mira-bord);
}

.aides-list li:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.aides-list li::before {
  content: counter(aide-counter);
  background-color: var(--mira-accent);
  color: var(--mira-white);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  width: 2rem;
  height: 2rem;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.aides-list li .aide-label {
  font-weight: 700;
  color: var(--mira-primary);
  display: block;
  margin-bottom: .2rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .02em;
}

.aides-list li .aide-detail {
  font-size: .95rem;
  color: #555;
  line-height: 1.65;
}

/* ============================================
   CTA — PRINCIPAL (fond vert)
   ============================================ */

.cta-block {
  background-color: var(--mira-accent);
  color: var(--mira-white);
  border-radius: 6px;
  padding: 1.5rem 2rem;
  margin: 2rem 0;
}

.cta-block p {
  color: rgba(255, 255, 255, .92);
  margin-bottom: .9rem;
  font-size: 1.02rem;
}

.cta-block .btn-cta {
  background-color: var(--mira-white);
  color: var(--mira-primary);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .65rem 1.5rem;
  border: none;
  border-radius: 3px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  transition: transform .15s ease, box-shadow .15s ease;
}

.cta-block .btn-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(15, 19, 23, .18);
  color: var(--mira-primary);
}

/* ============================================
   CTA — SECONDAIRE (fond noir)
   ============================================ */

.cta-block-dark {
  background-color: var(--mira-primary);
  color: var(--mira-white);
  border-radius: 6px;
  padding: 1.5rem 2rem;
  margin: 2rem 0;
}

.cta-block-dark p {
  color: rgba(255, 255, 255, .88);
  margin-bottom: .9rem;
  font-size: 1.02rem;
}

.cta-block-dark .btn-cta {
  background-color: var(--mira-accent);
  color: var(--mira-white);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .65rem 1.5rem;
  border: none;
  border-radius: 3px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  transition: transform .15s ease, box-shadow .15s ease, background .15s;
}

.cta-block-dark .btn-cta:hover {
  background-color: var(--mira-vert-f);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(22, 157, 67, .25);
  color: var(--mira-white);
}

/* ============================================
   CONCLUSION
   Fond noir. H2 vert. Texte blanc atténué.
   ============================================ */

.conclusion-block {
  background-color: var(--mira-primary);
  color: var(--mira-white);
  padding: 2.5rem;
  margin-top: 3rem;
}

.conclusion-block h2 {
  color: var(--mira-accent);
  margin-top: 0;
}

.conclusion-block p {
  color: rgba(255, 255, 255, .88);
}

.conclusion-block ul {
  color: rgba(255, 255, 255, .88);
  padding-left: 1.2rem;
  margin-bottom: 1.5rem;
}

.conclusion-block ul li {
  margin-bottom: .4rem;
  line-height: 1.65;
}

.conclusion-block .btn-cta {
  background-color: var(--mira-accent);
  color: var(--mira-white);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .75rem 1.75rem;
  border: none;
  border-radius: 3px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  transition: transform .15s ease, box-shadow .15s ease, background .15s;
}

.conclusion-block .btn-cta:hover {
  background-color: var(--mira-vert-f);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(22, 157, 67, .3);
  color: var(--mira-white);
}

/* ============================================
   ARTICLES LIÉS (related-card)
   Cards blanches. Hover ombre renforcée.
   ============================================ */

:where(body:not(.single-landing_b2b)) .related-card {
  border: none;
  border-radius: 6px;
  box-shadow: 0 2px 12px rgba(15, 19, 23, .09);
  transition: transform .2s ease, box-shadow .2s ease;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--mira-white);
}

:where(body:not(.single-landing_b2b)) .related-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 28px rgba(15, 19, 23, .16);
}

:where(body:not(.single-landing_b2b)) .related-card .card-img-top {
  border-radius: 6px 6px 0 0;
  height: 160px;
  object-fit: cover;
  width: 100%;
}

:where(body:not(.single-landing_b2b)) .related-card .card-body {
  padding: 1.1rem 1.25rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

:where(body:not(.single-landing_b2b)) .related-card .card-tag {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mira-accent);
  margin-bottom: .4rem;
  display: block;
}

:where(body:not(.single-landing_b2b)) .related-card .card-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  color: var(--mira-primary);
  text-transform: uppercase;
  margin-bottom: .5rem;
  line-height: 1.2;
}

:where(body:not(.single-landing_b2b)) .related-card .card-text {
  font-size: .88rem;
  color: #555;
  flex: 1;
  margin-bottom: .75rem;
  line-height: 1.6;
}

:where(body:not(.single-landing_b2b)) .related-card .btn-link-mira {
  color: var(--mira-accent);
  font-weight: 700;
  font-size: .88rem;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  align-self: flex-start;
  transition: gap .15s, color .15s;
}

:where(body:not(.single-landing_b2b)) .related-card .btn-link-mira:hover {
  gap: .6rem;
  color: var(--mira-vert-f);
}

:where(body:not(.single-landing_b2b)) .related-card .btn-link-mira i { font-size: .75rem; }

/* ============================================
   GRILLE ARTICLES LIÉS
   ============================================ */

.related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
}

/* ============================================
   FOOTER MENTIONS
   ============================================ */

.footer-mentions {
  background-color: #0a0f14;
  color: rgba(255, 255, 255, .4);
  font-size: .78rem;
  padding: 1rem 0;
  text-align: center;
}

/* Photos chantier */
.photo-chantier {
  width: 100%;
  border-radius: 4px;
  display: block;
}

.photo-legend {
  font-size: .82rem;
  color: var(--mira-gris);
  font-style: italic;
  margin-top: .5rem;
  margin-bottom: 0;
}

.photo-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 1.25rem 0;
}

.photo-solo {
  margin: 1.25rem 0;
}

/* Badges techniques */
.badges-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0 1.25rem;
}

.badge-technique {
  background-color: rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .85);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .25rem .65rem;
  border-radius: 2px;
  border: 1px solid rgba(255, 255, 255, .15);
}


/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 600px) {
  .photo-duo {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .hero-banner { padding: 2.5rem 0 2rem; }
  .article-body { padding: 2rem 1rem 3rem; }
  .hook-block { padding: 1rem 1.1rem; }
  .skimmers-block { padding: 1.25rem; }
  .cas-chantier { padding: 1.25rem 1.25rem; }
  .cta-block,
  .cta-block-dark { padding: 1.25rem; }
  .conclusion-block { padding: 2rem 0; }
  .table { font-size: .85rem; }
  .table thead th,
  .table tbody td { padding: .6rem .75rem; }
  .cta-block .btn-cta,
  .cta-block-dark .btn-cta,
  .conclusion-block .btn-cta { width: 100%; justify-content: center; }
}

@media (max-width: 480px) {
  .card-idf .card-body { padding: .9rem 1rem; }
  .aides-list li { gap: .75rem; }
  .related-grid { grid-template-columns: 1fr; }
} .skimmers-block li,
.skimmers-block strong,
.skimmers-block b {
  color: #FFFFFF !important;
}


/* ============================================
   CORRECTIFS AFFICHAGE BLOG (04/11/2026, constat A04)
   À coller à la fin de Personnaliser > CSS additionnel.
   ============================================ */

/* Encadrés « Bon à savoir » et « Erreur à éviter » :
   le libellé passe au-dessus du texte (il formait une colonne étroite) */
.alert-warning,
.alert-info { display: block; }
.alert-warning > strong,
.alert-info > strong { display: block; margin-bottom: .35rem; }

/* Étapes numérotées : numéro à gauche, titre puis texte en dessous
   (au lieu de trois colonnes serrées sur téléphone) */
.aides-list li { display: grid; grid-template-columns: 2rem 1fr; column-gap: .75rem; }
.aides-list li::before { grid-column: 1; grid-row: 1 / span 3; }
.aides-list li > * { grid-column: 2; }
.aides-list li > br { display: none; }

@media (max-width: 768px) {
  /* Bandeau de tête et conclusion : marge intérieure sur les côtés */
  .hero-banner { padding: 2rem 1.25rem 1.75rem; }
  .conclusion-block { padding: 1.75rem 1.25rem; }
  /* Tableau : défile seul au lieu d'être coupé */
  .table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Pages Pro (landing_b2b) : titre et libellés du formulaire de contact sur fond blanc (A06, 06/11/2026) */
.single-landing_b2b .contact-form,
.single-landing_b2b .contact-form h3, .single-landing_b2b .contact-form label { color: var(--noir, #0f1317); }
