/**
 * RNF Articles Showcase — Single v2.2
 * Architecture : .rnf-single est un flex column 100%.
 * .rnf-single__container = 80% centré (hero, body, TOC, related).
 * .rnf-single__fullbleed = 100% largeur (sections, banners, CTA).
 */

/* ═══════════════════════════════════════════
   BASE — flex column, 100% width
   ═══════════════════════════════════════════ */
.rnf-single {
    --rp: #F9F1EE;
    --rp-rose: #F3E1E1;
    --rp-burg: #F0DDE3;
    --bg: #8B2252;
    --bg-d: #6B2D5B;
    --rs: #C1526E;
    --rs-s: #b87a8f;
    --gd: #B8956A;
    --gd-l: #D4B896;
    --wh: #FFFFFF;
    --dk: #2D1F2D;
    --mt: #6B5A6B;
    --bd: rgba(139,34,82,0.08);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    font-family: 'DM Sans', 'Nunito Sans', sans-serif;
    color: var(--dk);
    line-height: 1.8;
    padding-bottom: 60px;
}

/* Container paddé = 80% centré */
.rnf-single__container {
    width: 80%;
    max-width: 880px;
}

/* Full-bleed = 100% */
.rnf-single__fullbleed {
    width: 100%;
}

/* ═══════════════════════════════════════════
   BREADCRUMB
   ═══════════════════════════════════════════ */
.rnf-single__breadcrumb { padding: 24px 0 18px; font-size: 12px; color: var(--mt); }
.rnf-single__breadcrumb a { color: var(--rs-s); text-decoration: none; }
.rnf-single__breadcrumb a:hover { color: var(--bg); }
.rnf-single__breadcrumb-sep { margin: 0 6px; opacity: 0.35; }
.rnf-single__breadcrumb-current { color: var(--dk); font-weight: 500; }

/* ═══════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════ */
.rnf-single__hero {
    background: var(--wh);
    border-radius: 16px 16px 0 0;
    padding: 52px 56px 44px;
    text-align: center;
    position: relative;
    box-shadow: 0 1px 8px rgba(139,34,82,0.04);
}
.rnf-single__hero-accent {
    position: absolute; top: 0; left: 0; right: 0; height: 4px;
    border-radius: 16px 16px 0 0;
}
[data-accent="burgundy"] .rnf-single__hero-accent { background: var(--bg); }
[data-accent="rose"] .rnf-single__hero-accent { background: var(--rs); }
[data-accent="gold"] .rnf-single__hero-accent { background: var(--gd); }

.rnf-single__hero-meta {
    display: flex; align-items: center; justify-content: center;
    gap: 16px; flex-wrap: wrap; margin-bottom: 22px;
}
.rnf-single__badge {
    font-size: 10px; font-weight: 600; letter-spacing: 2px;
    text-transform: uppercase; padding: 5px 16px; border-radius: 20px;
}
.rnf-single__badge[data-cat="guide"] { background: rgba(139,34,82,.06); color: var(--bg); }
.rnf-single__badge[data-cat="conseil-sexo"] { background: rgba(193,82,110,.06); color: var(--rs); }
.rnf-single__badge[data-cat="lifestyle"] { background: rgba(184,149,106,.08); color: var(--gd); }
.rnf-single__badge[data-cat="selection"] { background: rgba(107,45,91,.06); color: var(--bg-d); }

.rnf-single__reading,
.rnf-single__date {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12px; font-weight: 500; color: var(--rs-s);
}
.rnf-single__reading svg, .rnf-single__date svg { opacity: 0.5; }

.rnf-single__title {
    font-family: 'Playfair Display', serif;
    font-size: 36px; font-weight: 600; color: var(--dk);
    line-height: 1.18; margin: 0 0 18px; padding: 0;
}
.rnf-single__chapeau {
    font-family: 'Cormorant Garamond', serif;
    font-size: 19px; font-style: italic; color: var(--mt);
    line-height: 1.55; max-width: 600px; margin: 0 auto; padding: 0;
}
.rnf-single__hero-img { margin-top: 28px; border-radius: 12px; overflow: hidden; }
.rnf-single__featured-img { width: 100%; height: auto; display: block; border-radius: 12px; }

/* ═══════════════════════════════════════════
   TOC — pills, dans le container 80%
   ═══════════════════════════════════════════ */
.rnf-single__toc {
    background: var(--rp); border-radius: 14px;
    padding: 22px 28px; margin-top: 0; margin-bottom: 0;
}
.rnf-single__toc-header {
    display: flex; align-items: center; gap: 8px;
    font-family: 'Playfair Display', serif;
    font-size: 14px; font-weight: 600; color: var(--bg);
    margin-bottom: 14px;
}
.rnf-single__toc-header svg { color: var(--rs-s); }
.rnf-single__toc-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-wrap: wrap; gap: 8px;
}
.rnf-single__toc-item a {
    display: inline-block; font-size: 13px; font-weight: 500;
    color: var(--dk); text-decoration: none;
    padding: 7px 18px; border-radius: 22px;
    background: var(--wh); border: 1px solid var(--bd);
    transition: all 0.25s;
}
.rnf-single__toc-item a:hover,
.rnf-single__toc-item--active a {
    background: var(--bg); color: var(--wh); border-color: var(--bg);
}

/* ═══════════════════════════════════════════
   BODY — container paddé, fond blanc
   ═══════════════════════════════════════════ */
.rnf-single__body {
    background: var(--wh);
    padding: 44px 56px;
}

/* Kill wpautop artefacts */
.rnf-single__content > p:empty,
.rnf-single__content > br { display: none; }

/* ═══════════════════════════════════════════
   CONTENT — texte courant
   ═══════════════════════════════════════════ */
.rnf-single__content h2 {
    font-family: 'Playfair Display', serif;
    font-size: 24px; font-weight: 600; color: var(--bg);
    margin: 44px 0 18px; padding-bottom: 10px;
    border-bottom: 2px solid var(--bd); scroll-margin-top: 100px;
}
.rnf-single__content h2:first-child { margin-top: 0; }
.rnf-single__content h3 {
    font-family: 'Playfair Display', serif;
    font-size: 19px; font-weight: 600; color: var(--bg-d);
    margin: 32px 0 12px; scroll-margin-top: 100px;
}
.rnf-single__content p {
    font-size: 15.5px; color: var(--dk); line-height: 1.85; margin-bottom: 20px;
}
.rnf-single__content strong { color: var(--bg); font-weight: 600; }
.rnf-single__content em { color: var(--rs); }
.rnf-single__content a { color: var(--bg); text-decoration: underline; text-underline-offset: 3px; }
.rnf-single__content a:hover { color: var(--rs); }
.rnf-single__content ul, .rnf-single__content ol { padding-left: 24px; margin-bottom: 20px; }
.rnf-single__content li { font-size: 15.5px; margin-bottom: 10px; line-height: 1.7; }
.rnf-single__content img { max-width: 100%; height: auto; border-radius: 12px; margin: 24px 0; display: block; }
.rnf-single__content blockquote {
    border-left: 4px solid var(--bg); margin: 28px 0; padding: 18px 28px;
    background: var(--rp); border-radius: 0 14px 14px 0;
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px; font-style: italic; color: var(--mt);
}

/* ═══════════════════════════════════════════
   [rosy_tip]
   ═══════════════════════════════════════════ */
.rnf-rosy-tip {
    background: var(--rp); border-left: 4px solid var(--gd);
    border-radius: 0 14px 14px 0;
    padding: 24px 28px; margin: 32px 0;
    display: flex; gap: 18px; align-items: flex-start;
}
.rnf-rosy-tip__avatar {
    width: 68px; height: 68px; border-radius: 50%;
    object-fit: contain; flex-shrink: 0;
    background: var(--wh); padding: 4px;
    border: 2px solid rgba(184,149,106,0.25);
}
.rnf-rosy-tip__label {
    font-family: 'Playfair Display', serif;
    font-size: 14px; font-weight: 600; color: var(--gd); margin-bottom: 6px;
}
.rnf-rosy-tip__content p {
    font-size: 14px; color: var(--mt); line-height: 1.75; margin: 0 0 6px;
}
.rnf-rosy-tip__content p:last-child { margin-bottom: 0; }

/* ═══════════════════════════════════════════
   [product_push]
   ═══════════════════════════════════════════ */
.rnf-product-push {
    background: var(--rp); border-radius: 14px;
    padding: 20px 24px; margin: 28px 0;
    border: 1.5px dashed rgba(184,149,106,0.3);
}
.rnf-product-push__label {
    font-size: 11px; font-weight: 600; letter-spacing: 2px;
    text-transform: uppercase; color: var(--gd); margin-bottom: 8px;
}
.rnf-product-push__content p { font-size: 14px; color: var(--mt); margin: 0; line-height: 1.7; }
.rnf-product-push__content strong { color: var(--bg); }
.rnf-product-push__content a { color: var(--bg); }

/* ═══════════════════════════════════════════
   [rnf_steps_grid] + [guide_step]
   ═══════════════════════════════════════════ */
.rnf-steps-grid {
    display: grid; gap: 20px; margin: 28px 0;
}
.rnf-steps-grid[data-cols="2"] { grid-template-columns: 1fr 1fr; }
.rnf-steps-grid[data-cols="3"] { grid-template-columns: 1fr 1fr 1fr; }
.rnf-steps-grid[data-cols="1"] { grid-template-columns: 1fr; }

/* Kill wpautop in grid */
.rnf-steps-grid > p, .rnf-steps-grid > br { display: none; }

.rnf-step {
    background: var(--wh); border: 1px solid var(--bd);
    border-radius: 14px; padding: 22px 24px;
    display: flex; flex-direction: column;
    transition: box-shadow 0.3s, transform 0.3s;
}
.rnf-step:hover {
    box-shadow: 0 6px 24px rgba(139,34,82,0.06);
    transform: translateY(-2px);
}
.rnf-step__header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.rnf-step__num {
    width: 34px; height: 34px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Playfair Display', serif;
    font-size: 15px; font-weight: 700; color: var(--wh); flex-shrink: 0;
}
[data-accent="burgundy"] .rnf-step__num { background: var(--bg); }
[data-accent="rose"] .rnf-step__num { background: var(--rs); }
[data-accent="gold"] .rnf-step__num { background: var(--gd); }

.rnf-step__title {
    font-family: 'Playfair Display', serif;
    font-size: 15px; font-weight: 600; color: var(--dk);
    margin: 0; padding: 0; border: none; line-height: 1.3;
}
.rnf-step__img { margin-bottom: 10px; border-radius: 10px; overflow: hidden; }
.rnf-step__img img { width: 100%; height: auto; display: block; border-radius: 10px; margin: 0; }
.rnf-step__content { flex: 1; }
.rnf-step__content p { font-size: 13.5px; color: var(--mt); line-height: 1.7; margin: 0 0 6px; }
.rnf-step__content p:last-child { margin-bottom: 0; }

/* ═══════════════════════════════════════════
   [rnf_highlight]
   ═══════════════════════════════════════════ */
.rnf-highlight {
    background: linear-gradient(135deg, var(--bg), var(--bg-d));
    border-radius: 14px; padding: 36px 40px; margin: 36px 0;
    text-align: center;
}
.rnf-highlight p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 21px; font-style: italic; color: var(--wh);
    margin: 0; line-height: 1.5;
}
.rnf-highlight strong { color: var(--gd-l); }

/* ═══════════════════════════════════════════
   [rnf_columns]
   ═══════════════════════════════════════════ */
.rnf-columns {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 36px; align-items: center; margin: 36px 0;
}
.rnf-columns--img-left .rnf-columns__img { order: -1; }
.rnf-columns__img img { width: 100%; height: auto; border-radius: 14px; display: block; }
.rnf-columns__text h3 {
    font-family: 'Playfair Display', serif;
    font-size: 20px; font-weight: 600; color: var(--bg);
    margin: 0 0 12px; padding: 0; border: none;
}
.rnf-columns__text p { font-size: 14.5px; color: var(--dk); line-height: 1.8; margin-bottom: 14px; }
.rnf-columns__text p:last-child { margin-bottom: 0; }

/* Reduce gap between consecutive columns */
.rnf-columns + .rnf-columns { margin-top: -12px; }

/* ═══════════════════════════════════════════
   [rnf_section] — FULL-BLEED (rendu hors container par le template)
   ═══════════════════════════════════════════ */
.rnf-section {
    width: 100%;
    padding: 52px 10%;
}
.rnf-section__inner {
    max-width: 880px;
    margin: 0 auto;
}

.rnf-section--white { background: var(--wh); }
.rnf-section--nude { background: var(--rp-rose); }
.rnf-section--rose { background: var(--rp-burg); }
.rnf-section--burgundy { background: linear-gradient(135deg, var(--bg), var(--bg-d)); color: var(--wh); }
.rnf-section--burgundy h2, .rnf-section--burgundy h3 { color: var(--wh); border-color: rgba(255,255,255,0.15); }
.rnf-section--burgundy p { color: rgba(255,255,255,0.85); }
.rnf-section--burgundy strong { color: var(--gd-l); }
.rnf-section--burgundy a { color: var(--gd-l); }

.rnf-section--image {
    background-size: cover; background-position: center;
    color: var(--wh); position: relative;
}
.rnf-section--image::before {
    content: ''; position: absolute; inset: 0;
    background: rgba(45,31,45,0.6);
}
.rnf-section--image .rnf-section__inner { position: relative; z-index: 1; }
.rnf-section--image h2, .rnf-section--image h3 { color: var(--wh); border-color: rgba(255,255,255,0.2); }
.rnf-section--image p { color: rgba(255,255,255,0.9); }
.rnf-section--image strong { color: var(--gd-l); }

/* ═══════════════════════════════════════════
   [rnf_banner] — FULL-BLEED
   ═══════════════════════════════════════════ */
.rnf-banner {
    width: 100%;
    padding: 72px 10%;
    text-align: center;
}
.rnf-banner--burgundy { background: linear-gradient(135deg, var(--bg), var(--bg-d)); }
.rnf-banner--nude { background: var(--rp-rose); }
.rnf-banner--rose { background: var(--rp-burg); }
.rnf-banner--image {
    background-size: cover; background-position: center; position: relative;
}
.rnf-banner--image::before {
    content: ''; position: absolute; inset: 0; background: rgba(45,31,45,0.55);
}
.rnf-banner__inner { position: relative; z-index: 1; max-width: 880px; margin: 0 auto; }
.rnf-banner__text {
    font-family: 'Playfair Display', serif;
    font-size: 48px; font-weight: 700; line-height: 1.1;
    display: block; margin-bottom: 8px;
}
.rnf-banner--burgundy .rnf-banner__text,
.rnf-banner--image .rnf-banner__text { color: var(--wh); }
.rnf-banner--nude .rnf-banner__text,
.rnf-banner--rose .rnf-banner__text { color: var(--bg); }

.rnf-banner__sub {
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px; font-style: italic; margin: 0;
}
.rnf-banner--burgundy .rnf-banner__sub,
.rnf-banner--image .rnf-banner__sub { color: var(--gd-l); }
.rnf-banner--nude .rnf-banner__sub,
.rnf-banner--rose .rnf-banner__sub { color: var(--mt); }

/* ═══════════════════════════════════════════
   [rnf_product_grid] + [rnf_product]
   ═══════════════════════════════════════════ */
.rnf-product-grid { margin: 36px 0; }
.rnf-product-grid__title {
    font-family: 'Playfair Display', serif;
    font-size: 20px; font-weight: 600; color: var(--bg);
    text-align: center; margin: 0 0 20px;
}
.rnf-product-grid__row {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}
/* Kill wpautop in grid */
.rnf-product-grid__row > p, .rnf-product-grid__row > br { display: none; }

.rnf-product-card {
    border: 1px solid var(--bd); border-radius: 14px;
    overflow: hidden; background: var(--wh);
    transition: transform 0.3s, box-shadow 0.3s;
    flex: 0 1 200px;
    max-width: 220px;
}
.rnf-product-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(139,34,82,0.08);
}
.rnf-product-card__link {
    display: flex; flex-direction: column;
    align-items: center; text-decoration: none;
    padding: 20px 16px; text-align: center; height: 100%;
}
.rnf-product-card__img-wrap {
    width: 120px; height: 120px; margin-bottom: 14px;
    display: flex; align-items: center; justify-content: center;
}
.rnf-product-card__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; }
.rnf-product-card__name {
    font-size: 13px; font-weight: 600; color: var(--dk);
    display: block; line-height: 1.3; margin-bottom: 6px;
}
.rnf-product-card__price {
    font-size: 15px; font-weight: 700; color: var(--bg);
    display: block; margin-bottom: 12px;
}
.rnf-product-card__cta {
    font-size: 12px; font-weight: 600; color: var(--bg);
    padding: 7px 18px; border-radius: 20px;
    border: 1.5px solid var(--bg); margin-top: auto;
    transition: all 0.25s;
}
.rnf-product-card:hover .rnf-product-card__cta { background: var(--bg); color: var(--wh); }

/* ═══════════════════════════════════════════
   CTA BAND (full-bleed via template)
   ═══════════════════════════════════════════ */
.rnf-single__cta {
    background: linear-gradient(135deg, var(--bg), var(--bg-d));
    padding: 32px 10%;
    display: flex; align-items: center; justify-content: center;
    gap: 24px; flex-wrap: wrap;
}
.rnf-single__cta-label {
    font-family: 'Playfair Display', serif;
    font-size: 18px; font-weight: 500; color: var(--wh); margin: 0;
}
.rnf-single__cta-btn {
    font-size: 13px; font-weight: 600; color: var(--bg-d);
    background: var(--gd-l); padding: 12px 28px; border-radius: 24px;
    text-decoration: none; white-space: nowrap; transition: all 0.25s;
}
.rnf-single__cta-btn:hover { background: var(--wh); color: var(--bg); }

/* ═══════════════════════════════════════════
   RELATED
   ═══════════════════════════════════════════ */
.rnf-single__related { margin-top: 48px; }
.rnf-single__related-title {
    font-family: 'Playfair Display', serif;
    font-size: 22px; font-weight: 600; color: var(--bg);
    margin-bottom: 24px; text-align: center;
}
.rnf-single__related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.rnf-single__related-card {
    background: var(--wh); border-radius: 14px;
    border: 1px solid var(--bd); overflow: hidden;
    text-decoration: none; transition: all 0.3s;
}
.rnf-single__related-card:hover {
    transform: translateY(-3px); box-shadow: 0 8px 28px rgba(139,34,82,0.07);
}
.rnf-single__related-thumb { aspect-ratio: 4/3; overflow: hidden; }
.rnf-single__related-thumb img {
    width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s;
}
.rnf-single__related-card:hover .rnf-single__related-thumb img { transform: scale(1.05); }
.rnf-single__related-body { padding: 18px 20px; }
.rnf-single__related-body h3 {
    font-family: 'Playfair Display', serif;
    font-size: 14px; font-weight: 600; color: var(--dk);
    margin: 0 0 6px; line-height: 1.35; border: none; padding: 0;
}
.rnf-single__related-body p { font-size: 12.5px; color: var(--mt); margin: 0; line-height: 1.6; }

/* ═══════════════════════════════════════════
   [rnf_separator] — Ligne pointillée + cœur
   ═══════════════════════════════════════════ */
.rnf-separator {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 40px 0;
    padding: 0;
}
.rnf-separator__line {
    flex: 1;
    height: 0;
    border-top: 2px dotted var(--rs-s);
    opacity: 0.4;
}
.rnf-separator__icon {
    font-size: 18px;
    color: var(--rs);
    flex-shrink: 0;
    line-height: 1;
}

/* ═══════════════════════════════════════════
   [rnf_box] — Encadré avec cœur en haut
   ═══════════════════════════════════════════ */
.rnf-box {
    position: relative;
    border: 1.5px solid var(--bd);
    border-radius: 16px;
    padding: 32px 28px 24px;
    margin: 36px 0;
    text-align: center;
}
.rnf-box--white { background: var(--wh); }
.rnf-box--nude { background: var(--rp-rose); border-color: rgba(193,82,110,0.12); }
.rnf-box--rose { background: var(--rp-burg); border-color: rgba(193,82,110,0.12); }

.rnf-box__icon {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rs);
    color: var(--wh);
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(193,82,110,0.2);
}
.rnf-box__content p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-style: italic;
    color: var(--dk);
    line-height: 1.55;
    margin: 0;
}
.rnf-box__content strong {
    color: var(--bg);
    font-style: normal;
}

/* ═══════════════════════════════════════════
   [rnf_price_list] + [rnf_price_item] — Tableau style menu
   ═══════════════════════════════════════════ */
.rnf-price-list {
    margin: 32px 0;
    padding: 0;
}
.rnf-price-list__title {
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--bg);
    margin: 0 0 16px;
    padding: 0;
    border: none;
}
.rnf-price-list__items {
    display: flex;
    flex-direction: column;
    gap: 0;
}
/* Kill wpautop */
.rnf-price-list__items > p,
.rnf-price-list__items > br { display: none; }

.rnf-price-item {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px dotted rgba(139,34,82,0.12);
}
.rnf-price-item:last-child {
    border-bottom: none;
}
.rnf-price-item__badge {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--wh);
    background: var(--rs);
    padding: 2px 8px;
    border-radius: 10px;
    flex-shrink: 0;
    line-height: 1.4;
}
.rnf-price-item__name {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--dk);
    text-decoration: none;
    flex-shrink: 0;
}
a.rnf-price-item__name {
    color: var(--bg);
}
a {text-decoration : none !important; font-weight: 800!important;}
a.rnf-price-item__name:hover {
    color: var(--rs);
}
.rnf-price-item__dots {
    flex: 1;
    border-bottom: 2px dotted rgba(139,34,82,0.15);
    min-width: 20px;
    margin-bottom: 4px;
}
.rnf-price-item__price {
    font-size: 15px;
    font-weight: 700;
    color: var(--bg);
    flex-shrink: 0;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════
   [rnf_editorial] — Colonnes asymétriques image débordante
   ═══════════════════════════════════════════ */
.rnf-editorial {
    display: grid;
    gap: 0;
    margin: 44px 0;
    align-items: stretch;
    grid-template-columns: var(--rnf-ed-txt) var(--rnf-ed-img);
    min-height: 360px;
}
.rnf-editorial--img-left {
    grid-template-columns: var(--rnf-ed-img) var(--rnf-ed-txt);
}
.rnf-editorial--img-left .rnf-editorial__img {
    order: -1;
}

.rnf-editorial__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 36px 40px;
    background: var(--wh);
}
.rnf-editorial__text h3 {
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    font-weight: 600;
    color: var(--bg);
    margin: 0 0 14px;
    padding: 0;
    border: none;
    line-height: 1.25;
}
.rnf-editorial__text p {
    font-size: 14.5px;
    color: var(--dk);
    line-height: 1.8;
    margin-bottom: 14px;
}
.rnf-editorial__text p:last-child { margin-bottom: 0; }

.rnf-editorial__img {
    position: relative;
    overflow: hidden;
    border-radius: 0;
}
.rnf-editorial__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    margin: 0;
    border-radius: 0;
}

/* Coins arrondis côté intérieur seulement */
.rnf-editorial--img-right .rnf-editorial__img {
    border-radius: 0 20px 20px 0;
}
.rnf-editorial--img-left .rnf-editorial__img {
    border-radius: 20px 0 0 20px;
}

/* ═══════════════════════════════════════════
   SIGNATURE
   ═══════════════════════════════════════════ */
.rnf-single__signature {
    margin-top: 40px; padding-top: 28px;
    border-top: 1px solid var(--bd); text-align: center;
}
.rnf-single__signature p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 17px; font-style: italic; color: var(--rs-s); margin: 0;
}
.rnf-single__signature span {
    display: block; margin-top: 8px;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px; font-weight: 600;
    letter-spacing: 2.5px; text-transform: uppercase; color: var(--bg);
}

/* ═══════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════ */
@media (max-width: 1024px) {
    .rnf-single__container { width: 90%; }
}

@media (max-width: 768px) {
    .rnf-single__container { width: 95%; }
    .rnf-single__hero { padding: 32px 28px 28px; }
    .rnf-single__title { font-size: 26px; }
    .rnf-single__body { padding: 32px 28px; }

    .rnf-steps-grid[data-cols="2"],
    .rnf-steps-grid[data-cols="3"] { grid-template-columns: 1fr; }

    .rnf-columns { grid-template-columns: 1fr; gap: 20px; }
    .rnf-columns--img-left .rnf-columns__img { order: 0; }

    .rnf-section { padding: 36px 5%; }
    .rnf-banner { padding: 52px 5%; }
    .rnf-banner__text { font-size: 32px; }

    .rnf-rosy-tip { flex-direction: column; align-items: center; text-align: center; gap: 12px; }
    .rnf-rosy-tip__avatar { width: 56px; height: 56px; }

    .rnf-single__cta { padding: 24px 5%; flex-direction: column; text-align: center; }
    .rnf-single__related-grid { grid-template-columns: 1fr; }

    /* Editorial columns → stack */
    .rnf-editorial {
        grid-template-columns: 1fr !important;
        min-height: auto;
    }
    .rnf-editorial--img-left .rnf-editorial__img { order: 0; }
    .rnf-editorial__img {
        border-radius: 14px !important;
        max-height: 280px;
    }
    .rnf-editorial__text { padding: 24px 0; }
}

@media (max-width: 480px) {
    .rnf-single__hero { padding: 24px 20px 22px; }
    .rnf-single__title { font-size: 22px; }
    .rnf-single__body { padding: 24px 20px; }
    .rnf-banner__text { font-size: 26px; }
}
