/* ============================================================
   RFD — detail.css
   Editorial layouts for PARTNER + PRODUCT detail pages.
   Bolder than the marketing pages, but strictly on-brand:
   one red accent, sentence-case headings, 8px grid, real
   photos, weights <= 700. Loads after kit.css.
   ============================================================ */

/* ── shared section scaffolding ─────────────────────────── */
.dwrap { background:var(--color-white); }
.dsec { padding:var(--section-pad) 0; }
.dsec--tight { padding:3.5rem 0; }
.dsec--alt { background:var(--color-grey-bg); }
.dsec--dark { background:var(--color-black); color:#fff; }

/* editorial section label: "01 — Notre histoire" */
.dlabel { display:flex; align-items:baseline; gap:1rem; margin-bottom:2.25rem; }
.dlabel-no { font-family:var(--font-display); font-weight:700; font-size:.8125rem;
  letter-spacing:.04em; color:var(--color-rfd-red); font-variant-numeric:tabular-nums; }
.dlabel-line { flex:0 0 36px; height:2px; background:var(--color-rfd-red); align-self:center; }
.dlabel-txt { font-family:var(--font-display); font-weight:600; font-size:.8125rem;
  text-transform:uppercase; letter-spacing:.1em; color:var(--color-text-muted); }
.dsec--dark .dlabel-txt { color:rgb(255 255 255 / .55); }
.dsec--dark .dlabel-no { color:#ff6b6b; }

.dh2 { font-family:var(--font-display); font-weight:700; font-size:clamp(1.75rem,3vw,2.5rem);
  letter-spacing:var(--ls-h2); line-height:1.12; color:var(--color-black); max-width:20ch; }
.dsec--dark .dh2 { color:#fff; }
.dlede { font-size:1.0625rem; color:var(--color-text-muted); line-height:1.75; max-width:62ch; }
.dsec--dark .dlede { color:rgb(255 255 255 / .72); }

/* ════════════════════════════════════════════════════════
   DETAIL HERO — full-bleed editorial
   ════════════════════════════════════════════════════════ */
.dhero { position:relative; background:var(--color-black); color:#fff; overflow:hidden;
  min-height:78vh; display:flex; flex-direction:column; justify-content:flex-end;
  padding:calc(var(--header-h) + 3rem) 0 0; }
.dhero-bg { position:absolute; inset:0; z-index:0; }
.dhero-bg .ph, .dhero-bg img { width:100%; height:100%; object-fit:cover; }
.dhero-bg::after { content:""; position:absolute; inset:0; background:
  linear-gradient(180deg, rgb(10 10 10 / .55) 0%, rgb(10 10 10 / .35) 35%, rgb(10 10 10 / .8) 100%),
  linear-gradient(90deg, rgb(10 10 10 / .65) 0%, rgb(10 10 10 / .1) 70%); }
.dhero .container { position:relative; z-index:2; width:100%; }
.dhero-crumb { display:inline-flex; align-items:center; gap:.5rem; font-size:.8125rem;
  font-weight:600; color:rgb(255 255 255 / .7); cursor:pointer; transition:color .2s;
  font-family:var(--font-display); }
.dhero-crumb:hover { color:#fff; }
.dhero-top { display:flex; align-items:center; gap:1.25rem; margin:1.75rem 0 1.5rem; flex-wrap:wrap; }
.dhero-chip { background:#fff; display:inline-flex; align-items:center; justify-content:center;
  padding:1rem 1.5rem; border-radius:4px; box-shadow:0 8px 28px rgb(0 0 0 / .35); }
.dhero-chip img { height:46px; width:auto; max-width:180px; object-fit:contain; }
.dhero-eyebrow { font-family:var(--font-display); font-weight:600; font-size:.75rem;
  text-transform:uppercase; letter-spacing:.12em; color:#ff8a8a; }
.dhero h1 { font-family:var(--font-display); font-weight:700;
  font-size:clamp(2.25rem,5.5vw,4rem); letter-spacing:-.03em; line-height:1.04;
  max-width:18ch; margin-bottom:1rem; text-shadow:0 2px 30px rgb(0 0 0 / .5); }
.dhero-tag { font-size:1.125rem; color:rgb(255 255 255 / .88); max-width:44ch; line-height:1.55;
  margin-bottom:2.5rem; }
/* facts strip pinned to hero bottom */
.dhero-facts { display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgb(255 255 255 / .16); }
.dfact { padding:1.5rem 1.5rem 1.75rem; border-right:1px solid rgb(255 255 255 / .1); }
.dfact:last-child { border-right:none; }
.dfact-k { font-family:var(--font-display); font-size:.6875rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em; color:rgb(255 255 255 / .5); margin-bottom:.5rem; }
.dfact-v { font-family:var(--font-display); font-weight:700; font-size:1.0625rem;
  letter-spacing:-.01em; color:#fff; line-height:1.25; }
@media (max-width:760px){
  .dhero-facts { grid-template-columns:repeat(2,1fr); }
  .dfact:nth-child(2n){ border-right:none; }
  .dfact:nth-child(-n+2){ border-bottom:1px solid rgb(255 255 255 / .1); }
}
@media (max-width:480px){ .dhero-facts{ grid-template-columns:1fr } .dfact{ border-right:none } }

/* ════════════════════════════════════════════════════════
   STORY split + image collage  (partner)
   ════════════════════════════════════════════════════════ */
.dstory { display:grid; grid-template-columns:1.05fr .95fr; gap:4rem; align-items:center; }
@media (max-width:920px){ .dstory{ grid-template-columns:1fr; gap:2.5rem } }
.dstory-body p { color:var(--color-text-muted); line-height:1.8; font-size:1.0625rem; margin-bottom:1.25rem; }
.dstory-body p:last-child { margin-bottom:0; }
.dcollage { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto;
  gap:12px; }
.dcollage .ph, .dcollage img { width:100%; height:100%; object-fit:cover; display:block; }
.dcollage .c-main { grid-row:span 2; aspect-ratio:3/4; border-radius:var(--radius-img); overflow:hidden; }
.dcollage .c-sub { aspect-ratio:4/3; border-radius:var(--radius-img); overflow:hidden; }
@media (max-width:920px){ .dcollage .c-main{ aspect-ratio:4/3 } }
.dcollage-cap { font-family:var(--font-display); font-size:.75rem; font-weight:500; letter-spacing:.02em;
  color:var(--color-text-muted); margin-top:.875rem; }

/* ════════════════════════════════════════════════════════
   WHY — editorial pull quote band  (partner)
   ════════════════════════════════════════════════════════ */
.dwhy { position:relative; }
.dwhy-inner { max-width:60rem; }
.dwhy-mark { font-family:var(--font-display); font-weight:700; font-size:6rem; line-height:.7;
  color:var(--color-rfd-red); display:block; margin-bottom:.5rem; }
.dwhy-q { font-family:var(--font-display); font-weight:600; font-size:clamp(1.375rem,2.6vw,2rem);
  line-height:1.35; color:#fff; letter-spacing:-.015em; }
.dwhy-by { display:flex; align-items:center; gap:.75rem; margin-top:2rem;
  font-family:var(--font-display); font-size:.875rem; color:rgb(255 255 255 / .65);
  flex-wrap:nowrap; white-space:nowrap; }
.dwhy-by span { flex:0 0 32px; height:2px; background:var(--color-rfd-red); }

/* ════════════════════════════════════════════════════════
   RANGE grid (offerings)
   ════════════════════════════════════════════════════════ */
.drange { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border:1px solid var(--color-grey-border); }
@media (max-width:680px){ .drange{ grid-template-columns:1fr } }
.drange-item { padding:2.25rem 2rem; border-right:1px solid var(--color-grey-border);
  border-bottom:1px solid var(--color-grey-border); transition:background .3s; position:relative; }
.drange-item:nth-child(2n){ border-right:none; }
.drange-item:nth-last-child(-n+2){ border-bottom:none; }
@media (max-width:680px){
  .drange-item{ border-right:none; }
  .drange-item:last-child{ border-bottom:none; }
  .drange-item:nth-last-child(2){ border-bottom:1px solid var(--color-grey-border); }
}
.drange-item:hover { background:var(--color-grey-bg); }
.drange-item::before { content:""; position:absolute; top:0; left:0; width:0; height:3px;
  background:var(--color-rfd-red); transition:width .35s var(--ease-out); }
.drange-item:hover::before { width:100%; }
.drange-no { font-family:var(--font-display); font-weight:700; font-size:.75rem;
  color:var(--color-rfd-red); letter-spacing:.04em; margin-bottom:.875rem; display:block; }
.drange-item h4 { font-family:var(--font-display); font-weight:700; font-size:1.1875rem;
  letter-spacing:-.02em; margin-bottom:.625rem; color:var(--color-black); }
.drange-item p { font-size:.9375rem; color:var(--color-text-muted); line-height:1.65; }

/* ════════════════════════════════════════════════════════
   FEATURED items (catalogue highlights)
   ════════════════════════════════════════════════════════ */
.dfeat { display:grid; gap:1.25rem; }
.dfeat--4 { grid-template-columns:repeat(4,1fr); }
.dfeat--3 { grid-template-columns:repeat(3,1fr); }
@media (max-width:880px){ .dfeat--4,.dfeat--3{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:520px){ .dfeat--4,.dfeat--3{ grid-template-columns:1fr } }
.dfeat-card { background:#fff; border:1px solid var(--color-grey-border); border-radius:var(--radius-card);
  overflow:hidden; display:flex; flex-direction:column; transition:transform .4s var(--ease-out), box-shadow .4s; }
.dfeat-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-card-hover); }
.dfeat-img { aspect-ratio:4/3; overflow:hidden; background:var(--color-grey-bg); }
.dfeat-img .ph, .dfeat-img img { width:100%; height:100%; object-fit:cover; }
.dfeat-body { padding:1.125rem 1.25rem 1.375rem; }
.dfeat-body h4 { font-family:var(--font-display); font-weight:700; font-size:1rem;
  letter-spacing:-.01em; color:var(--color-black); margin-bottom:.35rem; line-height:1.3; }
.dfeat-meta { font-family:var(--font-body); font-size:.8125rem; color:var(--color-text-muted); }
.dfeat-note { display:flex; align-items:center; gap:.625rem; margin-top:1.5rem;
  font-size:.875rem; color:var(--color-text-muted); }
.dfeat-note svg { width:16px; height:16px; stroke:var(--color-rfd-red); fill:none; stroke-width:2; flex-shrink:0; }

/* ════════════════════════════════════════════════════════
   GALLERY — asymmetric placeholders
   ════════════════════════════════════════════════════════ */
.dgallery { display:grid; grid-template-columns:2fr 1fr 1fr; grid-auto-rows:200px; gap:12px; }
.dgallery > *:first-child { grid-row:span 2; }
.dgallery .ph, .dgallery img { width:100%; height:100%; object-fit:cover; border-radius:var(--radius-img); }
.dgallery > * { border-radius:var(--radius-img); overflow:hidden; }
@media (max-width:760px){
  .dgallery{ grid-template-columns:1fr 1fr; grid-auto-rows:160px }
  .dgallery > *:first-child{ grid-column:span 2; grid-row:span 1 }
}

/* ════════════════════════════════════════════════════════
   BRANDS row (compatible brands — product page)
   ════════════════════════════════════════════════════════ */
.dbrands { display:flex; flex-wrap:wrap; gap:.75rem; }
.dbrand-chip { font-family:var(--font-display); font-weight:600; font-size:.9375rem;
  color:var(--color-black); padding:.75rem 1.375rem; border:1px solid var(--color-grey-border);
  border-radius:var(--radius-pill); background:#fff; transition:border-color .25s, color .25s; }
.dbrand-chip:hover { border-color:var(--color-rfd-red); color:var(--color-rfd-red); }
.dsec--dark .dbrand-chip { background:transparent; color:#fff; border-color:rgb(255 255 255 / .2); }
.dsec--dark .dbrand-chip:hover { border-color:#fff; }

/* ════════════════════════════════════════════════════════
   COVERS — what's covered (product page)
   ════════════════════════════════════════════════════════ */
.dcovers { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
@media (max-width:760px){ .dcovers{ grid-template-columns:1fr } }
.dcover { display:flex; gap:1.25rem; padding:1.75rem; background:#fff;
  border:1px solid var(--color-grey-border); border-radius:var(--radius-card); transition:box-shadow .35s, transform .35s var(--ease-out); }
.dcover:hover { transform:translateY(-4px); box-shadow:var(--shadow-card); }
.dcover-mark { flex:0 0 auto; width:14px; height:14px; margin-top:.45rem; border-radius:50%;
  background:var(--color-rfd-red-light); position:relative; }
.dcover-mark::after { content:""; position:absolute; inset:4px; border-radius:50%; background:var(--color-rfd-red); }
.dcover h4 { font-family:var(--font-display); font-weight:700; font-size:1.0625rem; letter-spacing:-.01em;
  color:var(--color-black); margin-bottom:.4rem; }
.dcover p { font-size:.9375rem; color:var(--color-text-muted); line-height:1.6; }

/* ════════════════════════════════════════════════════════
   SPECS table (product page)
   ════════════════════════════════════════════════════════ */
.dspec-panel { background:var(--color-black); color:#fff; border-radius:var(--radius-card); overflow:hidden; }
.dspec-head { padding:1.75rem 2rem; border-bottom:1px solid rgb(255 255 255 / .1); display:flex; align-items:center; gap:.875rem; }
.dspec-head h3 { font-family:var(--font-display); font-weight:700; font-size:1.1875rem; color:#fff; letter-spacing:-.01em; }
.dspec-row { display:grid; grid-template-columns:1fr 1.1fr; gap:1rem; padding:1.125rem 2rem;
  border-bottom:1px solid rgb(255 255 255 / .07); }
.dspec-row:last-child { border-bottom:none; }
.dspec-k { font-size:.875rem; color:rgb(255 255 255 / .55); }
.dspec-v { font-family:var(--font-display); font-weight:600; font-size:.9375rem; color:#fff; text-align:right; }
@media (max-width:480px){ .dspec-row{ grid-template-columns:1fr } .dspec-v{ text-align:left } }

.dspec-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
@media (max-width:880px){ .dspec-grid{ grid-template-columns:1fr; gap:2rem } }

/* ════════════════════════════════════════════════════════
   FAQ accordion (product page)
   ════════════════════════════════════════════════════════ */
.dfaq { max-width:60rem; }
.dfaq-item { border-bottom:1px solid var(--color-grey-border); }
.dfaq-item:first-child { border-top:1px solid var(--color-grey-border); }
.dfaq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:1.5rem 0; background:transparent; border:none; cursor:pointer; text-align:left;
  font-family:var(--font-display); font-weight:700; font-size:1.0625rem; letter-spacing:-.01em;
  color:var(--color-black); }
.dfaq-q:hover { color:var(--color-rfd-red); }
.dfaq-ico { flex:0 0 auto; width:28px; height:28px; border-radius:50%; border:1.5px solid var(--color-grey-border);
  display:flex; align-items:center; justify-content:center; position:relative; transition:border-color .25s, background .25s; }
.dfaq-q:hover .dfaq-ico { border-color:var(--color-rfd-red); }
.dfaq-ico::before, .dfaq-ico::after { content:""; position:absolute; background:var(--color-rfd-red);
  border-radius:1px; transition:transform .3s var(--ease-out), opacity .3s; }
.dfaq-ico::before { width:12px; height:2px; }
.dfaq-ico::after { width:2px; height:12px; }
.dfaq-item.open .dfaq-ico { background:var(--color-rfd-red); border-color:var(--color-rfd-red); }
.dfaq-item.open .dfaq-ico::before, .dfaq-item.open .dfaq-ico::after { background:#fff; }
.dfaq-item.open .dfaq-ico::after { transform:scaleY(0); opacity:0; }
.dfaq-a { overflow:hidden; max-height:0; transition:max-height .35s var(--ease-out); }
.dfaq-item.open .dfaq-a { max-height:320px; }
.dfaq-a p { padding-bottom:1.5rem; font-size:.9375rem; color:var(--color-text-muted); line-height:1.75; max-width:70ch; }

/* ════════════════════════════════════════════════════════
   RELATED cards (cross-links partner <-> product)
   ════════════════════════════════════════════════════════ */
.drelated { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.25rem; }
.drel-card { display:flex; flex-direction:column; gap:.875rem; padding:1.75rem; background:#fff;
  border:1px solid var(--color-grey-border); border-radius:var(--radius-card); cursor:pointer;
  transition:transform .35s var(--ease-out), box-shadow .35s, border-color .35s; }
.drel-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-card-hover); border-color:transparent; }
.drel-eyebrow { font-family:var(--font-display); font-weight:600; font-size:.6875rem;
  text-transform:uppercase; letter-spacing:.1em; color:var(--color-rfd-red); }
.drel-card h4 { font-family:var(--font-display); font-weight:700; font-size:1.125rem; letter-spacing:-.02em;
  color:var(--color-black); }
.drel-card p { font-size:.875rem; color:var(--color-text-muted); line-height:1.6; flex:1; }
.drel-go { display:flex; align-items:center; justify-content:space-between; padding-top:.875rem;
  border-top:1px solid var(--color-grey-border); margin-top:auto;
  font-family:var(--font-display); font-weight:600; font-size:.8125rem; color:var(--color-black); }
.drel-go .arr { width:28px; height:28px; border-radius:50%; background:var(--color-rfd-red);
  display:inline-flex; align-items:center; justify-content:center; transition:transform .35s var(--ease-out); }
.drel-card:hover .drel-go .arr { transform:rotate(45deg); }
.drel-go .arr svg { width:12px; height:12px; stroke:#fff; fill:none; stroke-width:2.5; }
.drel-logo { height:40px; display:flex; align-items:center; }
.drel-logo img { max-height:36px; width:auto; max-width:140px; object-fit:contain; }

/* big intro number for product hero stat */
.dstat-big { font-family:var(--font-display); font-weight:700; font-size:clamp(3rem,7vw,5rem);
  letter-spacing:-.04em; line-height:.9; color:var(--color-rfd-red); }
.dstat-l { font-family:var(--font-display); font-size:.9375rem; font-weight:500; color:var(--color-text-muted);
  margin-top:.5rem; }
.dsec--dark .dstat-l { color:rgb(255 255 255 / .6); }

/* two-column intro block (product) */
.dintro { display:grid; grid-template-columns:1.4fr 1fr; gap:3.5rem; align-items:center; }
@media (max-width:880px){ .dintro{ grid-template-columns:1fr; gap:2rem } }
.dintro-stat { padding:2.5rem; background:var(--color-grey-bg); border-left:3px solid var(--color-rfd-red); }

/* ── catalog cards become links to product pages ───────── */
.cat-card { position:relative; }
.cat-card--link { cursor:pointer; }
.cat-card--link .service-link { margin-top:auto; }
.cat-card--link:hover h3 { color:var(--color-rfd-red); }
.cat-card--link h3 { transition:color .25s; }
/* cat-no now lives inside .cat-card-media overlay */
.cat-no { position:absolute; bottom:.875rem; left:1rem; z-index:2;
  font-family:var(--font-display); font-weight:700; font-size:.6875rem;
  letter-spacing:.08em; color:rgba(255,255,255,.92);
  background:rgba(0,0,0,.45); padding:.2rem .5rem; border-radius:2px; }
.cat-card--link:hover .cat-no { background:var(--color-rfd-red); color:#fff; }
.cat-card .service-link .arr { width:34px; height:34px; border-radius:50%; background:var(--color-rfd-red);
  display:inline-flex; align-items:center; justify-content:center; transition:transform .35s var(--ease-out); }
.cat-card--link:hover .service-link .arr { transform:rotate(45deg); }
.cat-card .service-link .arr svg { width:13px; height:13px; stroke:#fff; fill:none; stroke-width:2.5; }

/* partner listing card: surface country */
.pc-country { font-family:var(--font-display); font-weight:600; font-size:.6875rem;
  text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-muted); }
