/* ADF Réalisations V2 — prototype
   Identité : vert accent #163F3D, tons naturels, typographie sobre. */

.adf-r2 { --adf-accent:#163F3D; --adf-bg:#F7F6F3; --adf-text:#1c1c1a; --adf-muted:#5b5f5c; box-sizing:border-box; }
.adf-r2 *, .adf-r2 *::before, .adf-r2 *::after { box-sizing:inherit; }
.adf-r2 img { max-width:100%; display:block; }
.adf-r2 h1, .adf-r2 h2, .adf-r2 h3 { font-family: Georgia, 'Times New Roman', serif; color: var(--adf-accent); margin:0 0 .5em; }
.adf-r2 p { line-height:1.7; color:var(--adf-text); }

.adf-r2-btn { display:inline-block; padding:14px 28px; border-radius:4px; text-decoration:none; font-weight:600; font-size:15px; transition:transform .15s ease, background .15s ease; }
.adf-r2-btn-primary { background:var(--adf-accent); color:#fff; }
.adf-r2-btn-primary:hover { transform:translateY(-2px); background:#0e2b29; }
.adf-r2-btn-outline { border:1px solid var(--adf-accent); color:var(--adf-accent); background:transparent; }
.adf-r2-btn-outline:hover { background:var(--adf-accent); color:#fff; }
.adf-r2-btn-ghost { border:1px solid rgba(255,255,255,.7); color:#fff; padding:8px 16px; font-size:13px; }

/* ---------- Hero archive ---------- */
.adf-r2-hero { position:relative; height:520px; display:flex; align-items:flex-end; overflow:hidden; }
.adf-r2-hero-media, .adf-r2-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.adf-r2-hero-veil { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,20,18,.15) 0%, rgba(10,20,18,.75) 100%); }
.adf-r2-hero-content { position:relative; z-index:2; color:#fff; padding:48px 56px; max-width:720px; }
.adf-r2-hero-content h1 { color:#fff; font-size:44px; }
.adf-r2-hero-content p { color:rgba(255,255,255,.9); font-size:17px; margin-bottom:24px; }

/* ---------- Filtres ---------- */
.adf-r2-filters { display:flex; flex-wrap:wrap; gap:10px; padding:32px 56px 8px; }
.adf-r2-filter { border:1px solid #d8d6cf; background:#fff; color:var(--adf-text); padding:9px 18px; border-radius:999px; font-size:14px; cursor:pointer; transition:all .15s ease; }
.adf-r2-filter:hover { border-color:var(--adf-accent); }
.adf-r2-filter.is-active { background:var(--adf-accent); border-color:var(--adf-accent); color:#fff; }

/* ---------- Grille de cartes ---------- */
.adf-r2-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:32px; padding:32px 56px; }
.adf-r2-card { position:relative; grid-column:span 1; border-radius:8px; overflow:hidden; text-decoration:none; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.06); transition:box-shadow .2s ease; display:flex; flex-direction:column; }
.adf-r2-card:hover { box-shadow:0 12px 28px rgba(0,0,0,.12); }
.adf-r2-card-big { grid-column:span 2; }
.adf-r2-card-media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e5e3dc; }
.adf-r2-card-big .adf-r2-card-media { aspect-ratio:16/9; }
.adf-r2-card-img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.adf-r2-card:hover .adf-r2-card-img { transform:scale(1.06); }
.adf-r2-card-noimg { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#9a9a92; font-size:13px; }
.adf-r2-card-info { padding:18px 20px 22px; }
.adf-r2-card-tag { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--adf-muted); margin-bottom:6px; }
.adf-r2-card-title { font-size:20px; margin-bottom:8px; }
.adf-r2-card-meta { list-style:none; margin:0 0 10px; padding:0; display:flex; flex-wrap:wrap; gap:10px; font-size:13px; color:var(--adf-muted); }
.adf-r2-card-meta li::after { content:''; }
.adf-r2-card-impact { font-size:13px; color:var(--adf-accent); font-weight:600; margin-bottom:10px; }
.adf-r2-card .adf-r2-btn-ghost { border-color:var(--adf-accent); color:var(--adf-accent); padding:0; border:none; font-weight:600; font-size:14px; }
.adf-r2-card.adf-r2-hidden { display:none; }

.adf-r2-loadmore-wrap { text-align:center; padding:8px 0 40px; }

.adf-r2-empty { padding:40px 56px; color:var(--adf-muted); }

/* ---------- Reassurance + CTA (archive & single) ---------- */
.adf-r2-reassurance { display:flex; justify-content:center; gap:64px; padding:40px 56px; background:var(--adf-bg); flex-wrap:wrap; }
.adf-r2-reassurance-item { text-align:center; }
.adf-r2-reassurance-item strong { display:block; color:var(--adf-accent); font-size:17px; }
.adf-r2-reassurance-item span { font-size:13px; color:var(--adf-muted); }

.adf-r2-cta { text-align:center; padding:64px 24px; background:#fff; }
.adf-r2-cta h2 { font-size:28px; }
.adf-r2-cta p { max-width:520px; margin:0 auto 24px; color:var(--adf-muted); }
.adf-r2-cta .adf-r2-btn { margin:0 6px; }

/* ---------- Fiche projet (single) ---------- */
.adf-r2-p-hero { position:relative; height:70vh; min-height:460px; display:flex; align-items:flex-end; overflow:hidden; }
.adf-r2-p-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--focal-desktop, 50% 50%); }
.adf-r2-p-hero-veil { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,20,18,.05) 40%, rgba(10,20,18,.8) 100%); }
.adf-r2-p-hero-content { position:relative; z-index:2; color:#fff; padding:48px 56px; }
.adf-r2-p-hero-content h1 { color:#fff; font-size:40px; }
.adf-r2-p-hero-loc { color:rgba(255,255,255,.9); font-size:15px; }
.adf-r2-label { display:inline-block; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.5); color:#fff; padding:5px 14px; border-radius:999px; font-size:12px; margin-bottom:14px; }

.adf-r2-breadcrumb { padding:16px 56px; font-size:13px; color:var(--adf-muted); }
.adf-r2-breadcrumb a { color:var(--adf-muted); text-decoration:none; }
.adf-r2-breadcrumb a:hover { color:var(--adf-accent); }
.adf-r2-breadcrumb span[aria-current] { color:var(--adf-text); }

.adf-r2-cartouches { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:1px; background:#e5e3dc; margin:0 56px 40px; border-radius:8px; overflow:hidden; }
.adf-r2-cartouche { background:#fff; padding:22px 20px; text-align:center; }
.adf-r2-cartouche strong { display:block; font-size:20px; color:var(--adf-accent); }
.adf-r2-cartouche span { font-size:12px; color:var(--adf-muted); text-transform:uppercase; letter-spacing:.05em; }

.adf-r2-section { max-width:920px; margin:0 auto; padding:48px 24px; }
.adf-r2-editorial-body p { font-size:16px; }

.adf-r2-photo-row, .adf-r2-photo-editorial { display:flex; flex-direction:column; gap:24px; margin-top:20px; }
.adf-r2-photo-row img, .adf-r2-photo-editorial img { width:100%; height:auto; border-radius:6px; cursor:zoom-in; }

.adf-r2-travaux-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:24px; margin-top:20px; }
.adf-r2-travaux-item h3 { font-size:16px; margin-bottom:6px; }
.adf-r2-travaux-item p { font-size:14px; color:var(--adf-muted); }

.adf-r2-expertise-list { list-style:none; padding:0; margin:16px 0 0; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.adf-r2-expertise-list li { padding-left:22px; position:relative; font-size:14px; }
.adf-r2-expertise-list li::before { content:'✓'; position:absolute; left:0; color:var(--adf-accent); font-weight:700; }

.adf-r2-energie-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-top:20px; }
.adf-r2-energie-item { background:var(--adf-bg); border-radius:6px; padding:16px; }
.adf-r2-energie-item span { display:block; font-size:12px; color:var(--adf-muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
.adf-r2-energie-item strong { color:var(--adf-accent); font-size:16px; }

.adf-r2-masonry { columns:3 260px; column-gap:20px; margin-top:20px; }
.adf-r2-masonry img { width:100%; height:auto; margin-bottom:20px; border-radius:6px; break-inside:avoid; cursor:zoom-in; }

.adf-r2-similaires-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:24px; margin-top:20px; }
.adf-r2-similaire-card { text-decoration:none; color:inherit; display:block; }
.adf-r2-similaire-img { border-radius:6px; aspect-ratio:4/3; object-fit:cover; margin-bottom:10px; }
.adf-r2-similaire-card strong { display:block; color:var(--adf-text); }
.adf-r2-similaire-card span { font-size:13px; color:var(--adf-muted); }

/* ---------- Lightbox ---------- */
.adf-r2-lightbox { position:fixed; inset:0; background:rgba(10,10,10,.92); z-index:9999; display:flex; align-items:center; justify-content:center; }
.adf-r2-lightbox[hidden] { display:none; }
.adf-r2-lightbox-image { max-width:90vw; max-height:88vh; border-radius:4px; }
.adf-r2-lightbox-close, .adf-r2-lightbox-prev, .adf-r2-lightbox-next { position:absolute; background:none; border:none; color:#fff; font-size:32px; cursor:pointer; padding:12px; }
.adf-r2-lightbox-close { top:16px; right:24px; }
.adf-r2-lightbox-prev { left:16px; top:50%; transform:translateY(-50%); }
.adf-r2-lightbox-next { right:16px; top:50%; transform:translateY(-50%); }

/* ---------- Mobile ---------- */
@media (max-width: 820px) {
  .adf-r2-hero { height:420px; }
  .adf-r2-hero-content, .adf-r2-p-hero-content, .adf-r2-filters, .adf-r2-grid, .adf-r2-breadcrumb, .adf-r2-cartouches, .adf-r2-section { padding-left:20px; padding-right:20px; }
  .adf-r2-grid { grid-template-columns:1fr; gap:24px; }
  .adf-r2-card-big { grid-column:span 1; }
  .adf-r2-card-big .adf-r2-card-media { aspect-ratio:4/3; }
  .adf-r2-p-hero { height:56vh; min-height:360px; }
  .adf-r2-p-hero-img { object-position:var(--focal-mobile, 50% 50%); }
  .adf-r2-cartouches { margin-left:20px; margin-right:20px; grid-template-columns:repeat(2,1fr); }
  .adf-r2-masonry { columns:1; }
  .adf-r2-reassurance { gap:32px; padding:32px 20px; }
}
