.irve-real-grid,
.irve-real-single {
  --navy:#102449;
  --navy-dark:#07152d;
  --teal:#43b8be;
  --teal-dark:#2999a2;
  --text:#18233a;
  --muted:#667085;
  --line:#dce6ed;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--text);
}
.irve-real-grid *,.irve-real-single * { box-sizing:border-box; }

.irve-real-grid {
  max-width:1240px;
  margin:40px auto;
  padding:0 20px;
}
.irve-real-grid__header {
  max-width:850px;
  margin:0 auto 34px;
  text-align:center;
}
.irve-real-grid__eyebrow {
  display:block;
  margin-bottom:10px;
  color:var(--teal-dark);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.irve-real-grid__header h2 {
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(30px,4vw,48px);
  line-height:1.1;
}
.irve-real-grid__header p {
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
}

.irve-real-grid__filters {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:12px;
  margin-bottom:26px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f7fafc;
}
.irve-real-grid__filters select,
.irve-real-grid__filters button {
  min-height:48px;
  border:1px solid var(--line);
  border-radius:11px;
  padding:10px 12px;
  background:#fff;
  color:var(--navy);
  font:inherit;
}
.irve-real-grid__filters button {
  cursor:pointer;
  color:#fff;
  background:var(--navy);
  font-weight:800;
}

.irve-real-grid__items {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.irve-real-card {
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(16,36,73,.08);
  transition:transform .22s ease,box-shadow .22s ease;
}
.irve-real-card:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 42px rgba(16,36,73,.13);
}
.irve-real-card[hidden] { display:none!important; }

.irve-real-card__image {
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#eaf0f5;
}
.irve-real-card__image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.irve-real-card:hover .irve-real-card__image img { transform:scale(1.035); }
.irve-real-card__image>span {
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:var(--muted);
}

.irve-real-card__body { padding:22px; }
.irve-real-card__meta {
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
  color:var(--teal-dark);
  font-size:13px;
  font-weight:800;
}
.irve-real-card h3 {
  margin:0 0 13px;
  color:var(--navy);
  font-size:22px;
  line-height:1.25;
}
.irve-real-card h3 a { color:inherit;text-decoration:none; }
.irve-real-card__details {
  display:grid;
  gap:6px;
  margin-bottom:14px;
  color:var(--muted);
  font-size:14px;
}
.irve-real-card__details strong { color:var(--navy); }
.irve-real-card p {
  color:var(--muted);
  line-height:1.55;
}
.irve-real-card__link {
  color:var(--teal-dark);
  font-weight:900;
  text-decoration:none;
}
.irve-real-grid__empty {
  margin-top:20px;
  padding:18px;
  border-radius:12px;
  color:var(--muted);
  background:#f5f8fb;
  text-align:center;
}

/* Fiche réalisation */
.irve-real-single { margin:24px 0; }
.irve-real-single__summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 30px;
}
.irve-real-single__summary div,
.irve-real-single__technical-grid div {
  padding:18px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#f8fbfd;
}
.irve-real-single__summary span,
.irve-real-single__technical-grid span {
  display:block;
  margin-bottom:6px;
  color:var(--muted);
  font-size:13px;
}
.irve-real-single__summary strong,
.irve-real-single__technical-grid strong { color:var(--navy); }

.irve-real-single__technical,
.irve-real-single__gallery { margin-top:42px; }
.irve-real-single__technical h2,
.irve-real-single__gallery h2,
.irve-real-single__story h2,
.irve-real-single__cta h2 {
  color:var(--navy);
}
.irve-real-single__technical-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.irve-real-single__story {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:42px;
}
.irve-real-single__story article {
  padding:24px;
  border-radius:18px;
  background:#f5f9fb;
}
.irve-real-single__story article>span {
  color:var(--teal-dark);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}
.irve-real-single__story p {
  color:var(--muted);
  line-height:1.65;
}
.irve-real-single__gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.irve-real-single__gallery-grid a {
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:14px;
}
.irve-real-single__gallery-grid img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.irve-real-single__review {
  margin:42px 0;
  padding:26px;
  border-left:5px solid var(--teal);
  border-radius:16px;
  background:#f0fbfb;
}
.irve-real-single__review span {
  color:#f4a900;
  font-size:22px;
}
.irve-real-single__review p {
  margin:10px 0 0;
  color:var(--navy);
  font-size:18px;
  line-height:1.6;
}
.irve-real-single__cta {
  display:flex;
  justify-content:space-between;
  gap:26px;
  align-items:center;
  margin-top:46px;
  padding:30px;
  border-radius:20px;
  color:#fff;
  background:linear-gradient(135deg,var(--teal-dark),var(--navy));
}
.irve-real-single__cta h2 { margin:5px 0 8px;color:#fff; }
.irve-real-single__cta p { margin:0;color:#e4eef3; }
.irve-real-single__cta>div:last-child {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.irve-real-single__cta a {
  display:inline-flex;
  padding:13px 17px;
  border-radius:11px;
  color:var(--navy);
  background:#fff;
  text-decoration:none;
  font-weight:900;
}
.irve-real-single__cta a:last-child {
  color:#fff;
  border:1px solid rgba(255,255,255,.45);
  background:transparent;
}
.irve-real-single__facebook {
  margin-top:18px;
  text-align:center;
}
.irve-real-single__facebook a { color:var(--teal-dark);font-weight:800; }

@media(max-width:900px) {
  .irve-real-grid__items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .irve-real-grid__filters { grid-template-columns:1fr 1fr; }
  .irve-real-single__summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .irve-real-single__technical-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
  .irve-real-grid__items,
  .irve-real-grid__filters,
  .irve-real-single__summary,
  .irve-real-single__technical-grid,
  .irve-real-single__story,
  .irve-real-single__gallery-grid {
    grid-template-columns:1fr;
  }
  .irve-real-grid__header { text-align:left; }
  .irve-real-single__cta {
    flex-direction:column;
    align-items:flex-start;
  }
  .irve-real-single__cta>div:last-child,
  .irve-real-single__cta a { width:100%; }
}