/*! Refontia Core — feuille de composants v1.0.0-rc1
   Jetons --rf-* : valeurs par defaut ici, surchargees par la feuille d'identite du projet.
   Genere par build.py depuis demo-couvreur ; ne pas editer les sections generees a la main. */
/* ===== Polices auto-hebergees (WOFF2 variables, sous-ensemble latin, OFL-1.1) — M12.9 : aucun appel a Google ===== */
@font-face { font-family: 'RF Inter'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/inter-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'RF Inter'; font-style: italic; font-display: swap; font-weight: 100 900; src: url(../fonts/inter-latin-wght-italic.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'RF Playfair'; font-style: normal; font-display: swap; font-weight: 400 900; src: url(../fonts/playfair-display-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'RF Playfair'; font-style: italic; font-display: swap; font-weight: 400 900; src: url(../fonts/playfair-display-latin-wght-italic.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
/* Alias : le contenu existant cite 'Playfair Display' et 'Inter' en style en ligne ; memes fichiers locaux, zero appel externe */
@font-face { font-family: 'Inter'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/inter-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Inter'; font-style: italic; font-display: swap; font-weight: 100 900; src: url(../fonts/inter-latin-wght-italic.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-display: swap; font-weight: 400 900; src: url(../fonts/playfair-display-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-display: swap; font-weight: 400 900; src: url(../fonts/playfair-display-latin-wght-italic.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ===== Jetons par defaut =====
   Roles, pas des teintes : la feuille d'identite du projet redefinit les valeurs, jamais les noms.
   Regle M11bis : -ink = texte sur fond clair, -on-dark = texte sur fond sombre, le reste = remplissages.
   Chaque couple texte/fond ci-dessous est verifie >= 4,5:1 (voir README). */
:root {
  --rf-ink: #1F2933;            --rf-ink-rgb: 31 41 51;
  --rf-ink-2: #2B3642;
  --rf-ink-3: #3E4C59;
  --rf-muted: #5A6572;          /* palette neutre par defaut : un site sans identite ne ressemble a aucun client */
  --rf-surface: #FFFFFF;
  --rf-surface-soft: #F8F8F6;
  --rf-surface-alt: #EFEFEB;
  --rf-accent: #3E5C76;         --rf-accent-rgb: 62 92 118;   /* remplissage (boutons, filets) */
  --rf-accent-hover: #324B61;   /* survol */
  --rf-accent-ink: #3E5C76;     /* accent en texte sur fond clair */
  --rf-accent-on-dark: #A9C3D9; /* accent en texte sur fond sombre */
  --rf-highlight: #D8C9A3;      /* italiques d accent sur fond sombre */
  --rf-highlight-fill: #B8A67A; --rf-highlight-rgb: 184 166 122;
  --rf-highlight-ink: #6B5B32;  /* texte dore sur fond clair */
  --rf-on-dark: #FFFFFF;
  --rf-on-dark-muted: #B9C0C8;  /* texte attenue sur fond sombre */
  --rf-font-display: 'RF Playfair', Georgia, serif;
  --rf-font-body: 'RF Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --rf-r1: 8px; --rf-r2: 16px; --rf-r3: 24px; --rf-r4: 32px; --rf-r5: 48px; --rf-r6: 64px; --rf-r-pill: 999px;
  --rf-sh1: 0 1px 4px rgb(var(--rf-ink-rgb) / .06);
  --rf-sh2: 0 4px 20px rgb(var(--rf-ink-rgb) / .10);
  --rf-sh3: 0 12px 48px rgb(var(--rf-ink-rgb) / .16);
  --rf-sh4: 0 24px 80px rgb(var(--rf-ink-rgb) / .22);
  --rf-tap: 44px;               /* standard Refontia, au-dessus du plancher WCAG 2.5.8 (24px) */
  --rf-hero-image: none;
}

/* ===== Integration Kadence (reprise du CSS additionnel, sans selecteur d'attribut) ===== */
.footer-html-inner, #colophon .site-info { display: none !important; }
header.entry-header, .entry-title { display: none !important; }
.entry-content-wrap, .page .entry-content-wrap { padding: 0 !important; margin: 0 !important; }
.entry-content.single-content { margin: 0 !important; padding: 0 !important; }
#inner-wrap, .content-bg { padding-top: 0 !important; }
.content-area { margin-top: 0 !important; margin-bottom: 0 !important; }
.site-header-row-container-inner .site-container { max-width: 100% !important; padding-left: clamp(24px, 4vw, 64px) !important; padding-right: clamp(24px, 4vw, 64px) !important; }
.site-main-header-inner-wrap { width: 100% !important; }
#primary-navigation > ul, .main-navigation > ul { flex-wrap: nowrap !important; }
#primary-navigation a, .main-navigation a { font-family: var(--rf-font-body) !important; font-size: 13px !important; white-space: nowrap !important; min-height: var(--rf-tap) !important; display: inline-flex !important; align-items: center !important; }
.site-branding .site-title, .site-branding .site-title a { font-family: var(--rf-font-body) !important; font-weight: 700 !important; font-size: 15px !important; color: var(--rf-ink) !important; text-decoration: none !important; }
.site-branding a { min-height: var(--rf-tap); display: inline-flex; align-items: center; }
.site-branding .site-title a:hover { color: var(--rf-accent-ink) !important; }
body { font-family: var(--rf-font-body); }
*, *::before, *::after { box-sizing: border-box; }

/* ===== Composants (generes) ===== */
 .rf-hero { position:relative; min-height:100vh; display:flex; align-items:stretch; overflow:hidden; background:var(--rf-ink); }
.rf-hero-bg { position:absolute; inset:0; background-image:var(--rf-hero-image); background-size:cover; background-position:center 30%; opacity:.22; filter:saturate(.6); transition:opacity 1s; }
.rf-hero-overlay { position:absolute; inset:0; background:linear-gradient(105deg, rgb(var(--rf-ink-rgb) / .97) 0%, rgb(var(--rf-ink-rgb) / .85) 50%, rgb(var(--rf-ink-rgb) / .4) 100%); }
.rf-hero-inner { position:relative; z-index:2; width:100%; max-width:1280px; margin:0 auto; padding:clamp(100px, 14vh, 160px) clamp(24px, 6vw, 96px) clamp(80px, 10vh, 120px); display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.rf-hero-left { }
.rf-eyebrow { display:inline-flex; align-items:center; gap:10px; margin-bottom:28px; }
.rf-eyebrow-dot { width:8px; height:8px; border-radius:50%; background:var(--rf-accent); flex-shrink:0; animation:rf-blink 2.5s ease-in-out infinite; }
@keyframes rf-blink { 0%,100% { opacity:1 }
50% { opacity:.3 }
 }
.rf-eyebrow-text { font-family:var(--rf-font-body); font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--rf-accent-on-dark); }
.rf-h1 { font-family:var(--rf-font-display); font-size:clamp(40px, 5.5vw, 76px); font-weight:600; color:var(--rf-on-dark); line-height:1.05; letter-spacing:-.025em; margin:0 0 28px; }
.rf-h1 em { font-style:italic; font-weight:400; color:var(--rf-highlight); display:block; }
.rf-hero-desc { font-family:var(--rf-font-body); font-size:17px; font-weight:300; color:var(--rf-on-dark-muted); line-height:1.8; max-width:480px; margin:0 0 44px; }
.rf-ctas { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:56px; }
.rf-btn { display:inline-flex; align-items:center; gap:10px; font-family:var(--rf-font-body); font-size:14px; font-weight:600; padding:16px 32px; border-radius:var(--rf-r-pill); text-decoration:none !important; transition:all .25s; cursor:pointer; }
.rf-btn-primary { background:var(--rf-accent); color:var(--rf-on-dark) !important; box-shadow:0 8px 32px rgb(var(--rf-accent-rgb) / .45); }
.rf-btn-primary:hover { background:var(--rf-accent-hover); transform:translateY(-2px); box-shadow:0 14px 40px rgb(var(--rf-accent-rgb) / .55); }
.rf-btn-outline { background:transparent; color:var(--rf-on-dark-muted) !important; border:1.5px solid rgba(255,255,255,.2); }
.rf-btn-outline:hover { border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.06); }
.rf-hero-stats { display:flex; gap:32px; padding-top:32px; border-top:1px solid rgba(255,255,255,.08); }
.rf-stat { display:flex; flex-direction:column; gap:4px; }
.rf-stat-val { font-family:var(--rf-font-display); font-size:28px; font-weight:600; color:var(--rf-on-dark); line-height:1; }
.rf-stat-label { font-family:var(--rf-font-body); font-size:12px; color:var(--rf-on-dark-muted); font-weight:400; }
.rf-hero-right { display:flex; flex-direction:column; gap:16px; }
.rf-hero-img-main { border-radius:var(--rf-r5); overflow:hidden; box-shadow:var(--rf-sh4); position:relative; }
.rf-hero-img-main img { width:100%; height:340px; object-fit:cover; display:block; transition:transform .6s ease; }
.rf-hero-img-main:hover img { transform:scale(1.03); }
.rf-hero-img-caption { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top, rgb(var(--rf-ink-rgb) / .95), transparent); padding:36px 24px 20px; display:flex; align-items:flex-end; justify-content:space-between; }
.rf-caption-text { font-family:var(--rf-font-body); font-size:13px; color:var(--rf-on-dark-muted); }
.rf-caption-badge { background:var(--rf-accent); color:var(--rf-on-dark); font-family:var(--rf-font-body); font-size:11px; font-weight:600; padding:6px 12px; border-radius:var(--rf-r-pill); }
.rf-hero-img-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rf-hero-img-sm { border-radius:var(--rf-r4); overflow:hidden; box-shadow:var(--rf-sh2); height:160px; }
.rf-hero-img-sm img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.rf-hero-img-sm:hover img { transform:scale(1.05); }
.rf-reassurance { background:var(--rf-accent); padding:20px clamp(24px, 5vw, 80px); }
.rf-reassurance-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.rf-reass-item { display:flex; align-items:center; gap:10px; font-family:var(--rf-font-body); font-size:13px; font-weight:500; color:rgba(255,255,255,.9); }
.rf-reass-item svg { flex-shrink:0; }
.rf-reass-sep { width:1px; height:24px; background:rgba(255,255,255,.25); }
.rf-section { padding:clamp(64px, 8vw, 120px) clamp(24px, 5vw, 80px); }
.rf-container { max-width:1280px; margin:0 auto; }
.rf-label { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.rf-label-line { width:36px; height:2px; background:var(--rf-accent); border-radius:2px; }
.rf-label-text { font-family:var(--rf-font-body); font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--rf-accent-ink); }
.rf-h2 { font-family:var(--rf-font-display); font-size:clamp(30px, 4vw, 56px); font-weight:600; color:var(--rf-ink); line-height:1.08; letter-spacing:-.02em; margin:0 0 16px; }
.rf-h2 em { font-style:italic; font-weight:400; color:var(--rf-accent-ink); }
.rf-lead { font-family:var(--rf-font-body); font-size:16px; color:var(--rf-muted); line-height:1.8; max-width:560px; margin:0; }
.rf-engage { background:var(--rf-surface-soft); }
.rf-engage-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin-top:56px; }
.rf-engage-card { background:var(--rf-surface); border-radius:var(--rf-r4); padding:36px 28px; border:1px solid rgb(var(--rf-ink-rgb) / .06); box-shadow:var(--rf-sh1); transition:all .3s; position:relative; overflow:hidden; }
.rf-engage-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--rf-accent); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.rf-engage-card:hover { box-shadow:var(--rf-sh3); transform:translateY(-5px); }
.rf-engage-card:hover::after { transform:scaleX(1); }
.rf-engage-icon { width:60px; height:60px; background:rgb(var(--rf-accent-rgb) / .08); border-radius:var(--rf-r3); display:flex; align-items:center; justify-content:center; margin-bottom:24px; font-size:26px; }
.rf-engage-num { font-family:var(--rf-font-display); font-size:48px; font-weight:300; font-style:italic; color:var(--rf-muted); position:absolute; top:16px; right:24px; line-height:1; }
.rf-engage-title { font-family:var(--rf-font-body); font-size:16px; font-weight:600; color:var(--rf-ink); margin:0 0 10px; }
.rf-engage-text { font-family:var(--rf-font-body); font-size:14px; color:var(--rf-muted); line-height:1.7; margin:0; }
.rf-presta-bg { background:var(--rf-surface); }
.rf-presta-header { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:56px; }
.rf-presta-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.rf-presta-card { border-radius:var(--rf-r5); overflow:hidden; box-shadow:var(--rf-sh2); transition:all .3s; position:relative; background:var(--rf-surface); border:1px solid rgb(var(--rf-ink-rgb) / .06); }
.rf-presta-card:hover { box-shadow:var(--rf-sh4); transform:translateY(-6px); }
.rf-presta-img { position:relative; height:200px; overflow:hidden; }
.rf-presta-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.rf-presta-card:hover .rf-presta-img img { transform:scale(1.08); }
.rf-presta-img-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, transparent 40%, rgb(var(--rf-ink-rgb) / .7)); }
.rf-presta-tag { position:absolute; top:16px; left:16px; background:var(--rf-accent); color:var(--rf-on-dark); font-family:var(--rf-font-body); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 12px; border-radius:var(--rf-r-pill); }
.rf-presta-body { padding:28px; }
.rf-presta-title { font-family:var(--rf-font-display); font-size:20px; font-weight:600; color:var(--rf-ink); margin:0 0 10px; line-height:1.25; }
.rf-presta-text { font-family:var(--rf-font-body); font-size:14px; color:var(--rf-muted); line-height:1.7; margin:0 0 20px; }
.rf-presta-link { display:inline-flex; align-items:center; gap:8px; font-family:var(--rf-font-body); font-size:13px; font-weight:600; color:var(--rf-accent-ink) !important; text-decoration:none !important; transition:gap .2s; }
.rf-presta-link:hover { gap:14px; }
.rf-presta-link-icon { width:28px; height:28px; background:rgb(var(--rf-accent-rgb) / .1); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; transition:background .2s; }
.rf-presta-link:hover .rf-presta-link-icon { background:var(--rf-accent); color:var(--rf-on-dark); }
.rf-photobande { position:relative; height:480px; overflow:hidden; }
.rf-photobande img { width:100%; height:100%; object-fit:cover; object-position:center 40%; display:block; }
.rf-photobande-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgb(var(--rf-ink-rgb) / .9) 0%, rgb(var(--rf-ink-rgb) / .6) 50%, rgb(var(--rf-ink-rgb) / .2) 100%); display:flex; align-items:center; }
.rf-photobande-content { max-width:1280px; width:100%; margin:0 auto; padding:0 clamp(24px, 5vw, 80px); }
.rf-photobande-content h2 { font-family:var(--rf-font-display); font-size:clamp(32px, 4.5vw, 60px); font-weight:600; color:var(--rf-on-dark); line-height:1.1; margin:0 0 20px; max-width:600px; }
.rf-photobande-content h2 em { font-style:italic; font-weight:400; color:var(--rf-highlight); }
.rf-photobande-content p { font-family:var(--rf-font-body); font-size:16px; color:var(--rf-on-dark-muted); line-height:1.75; max-width:480px; margin:0 0 36px; }
.rf-process-bg { background:var(--rf-ink); }
.rf-process-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:0; margin-top:64px; position:relative; }
.rf-process-grid::before { content:''; position:absolute; top:36px; left:calc(12.5% + 36px); right:calc(12.5% + 36px); height:1px; background:linear-gradient(90deg, var(--rf-accent), rgb(var(--rf-accent-rgb) / .1)); }
.rf-process-step { padding:0 28px; text-align:center; position:relative; z-index:1; }
.rf-process-num { width:72px; height:72px; border-radius:50%; background:rgb(var(--rf-accent-rgb) / .12); border:2px solid rgb(var(--rf-accent-rgb) / .3); display:flex; align-items:center; justify-content:center; margin:0 auto 28px; font-family:var(--rf-font-display); font-size:26px; font-weight:600; font-style:italic; color:var(--rf-accent-on-dark); position:relative; transition:all .3s; }
.rf-process-step:hover .rf-process-num { background:var(--rf-accent); border-color:var(--rf-accent); color:var(--rf-on-dark); box-shadow:0 8px 32px rgb(var(--rf-accent-rgb) / .5); }
.rf-process-title { font-family:var(--rf-font-body); font-size:15px; font-weight:600; color:var(--rf-on-dark); margin:0 0 12px; }
.rf-process-text { font-family:var(--rf-font-body); font-size:13px; color:var(--rf-on-dark-muted); line-height:1.7; margin:0; }
.rf-zones-bg { background:var(--rf-surface-alt); }
.rf-zones-inner { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.rf-zones-img { border-radius:var(--rf-r5); overflow:hidden; box-shadow:var(--rf-sh3); position:relative; }
.rf-zones-img img { width:100%; height:480px; object-fit:cover; display:block; }
.rf-zones-img-tag { position:absolute; bottom:24px; left:24px; background:rgb(var(--rf-ink-rgb) / .92); backdrop-filter:blur(12px); border-radius:var(--rf-r3); padding:14px 20px; display:flex; align-items:center; gap:12px; }
.rf-zones-tags { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 36px; }
.rf-zone-pill { background:rgb(var(--rf-ink-rgb) / .07); border:1.5px solid rgb(var(--rf-ink-rgb) / .12); border-radius:var(--rf-r-pill); padding:8px 16px; font-family:var(--rf-font-body); font-size:13px; font-weight:500; color:var(--rf-ink-3); transition:all .2s; }
.rf-zone-pill:hover { background:var(--rf-accent); border-color:var(--rf-accent); color:var(--rf-on-dark); }
.rf-btn-dark { display:inline-flex; align-items:center; gap:10px; background:var(--rf-ink); color:var(--rf-on-dark) !important; font-family:var(--rf-font-body); font-size:14px; font-weight:600; padding:16px 32px; border-radius:var(--rf-r-pill); text-decoration:none !important; box-shadow:var(--rf-sh2); transition:all .25s; }
.rf-btn-dark:hover { background:var(--rf-ink-3); transform:translateY(-2px); }
.rf-contact-card-container { background:var(--rf-surface); border-radius:var(--rf-r5); padding:44px; box-shadow:var(--rf-sh3); border:1px solid rgb(var(--rf-ink-rgb) / .05); }
.rf-contact-card-container h3 { font-family:var(--rf-font-display); font-size:30px; font-weight:600; color:var(--rf-ink); margin:0 0 14px; }
.rf-contact-card-container p { font-family:var(--rf-font-body); font-size:15px; color:var(--rf-muted); line-height:1.75; margin:0 0 28px; }
.rf-contact-card-list { display:grid; gap:14px; margin-bottom:32px; }
.rf-contact-card-item { display:flex; align-items:center; gap:14px; padding:14px 18px; background:var(--rf-surface-alt); border-radius:var(--rf-r2); }
.rf-contact-card-item-icon { width:36px; height:36px; background:rgb(var(--rf-accent-rgb) / .1); border-radius:var(--rf-r1); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.rf-contact-card-item-text { font-family:var(--rf-font-body); font-size:13px; color:var(--rf-ink-3); }
.rf-btn-full { display:block; width:100%; text-align:center; background:var(--rf-accent); color:var(--rf-on-dark) !important; font-family:var(--rf-font-body); font-size:15px; font-weight:600; padding:18px 24px; border-radius:var(--rf-r3); text-decoration:none !important; box-shadow:0 8px 32px rgb(var(--rf-accent-rgb) / .35); transition:all .25s; }
.rf-btn-full:hover { background:var(--rf-accent-hover); transform:translateY(-2px); }
.rf-demo-note { font-family:var(--rf-font-body); font-size:12px; color:var(--rf-muted); text-align:center; margin:14px 0 0; }
.rf-real-bg { background:var(--rf-surface-soft); }
.rf-real-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px; margin-top:56px; }
.rf-real-card { border-radius:var(--rf-r5); overflow:hidden; box-shadow:var(--rf-sh2); position:relative; transition:all .3s; cursor:pointer; }
.rf-real-card:hover { box-shadow:var(--rf-sh4); transform:translateY(-4px); }
.rf-real-img { height:260px; overflow:hidden; }
.rf-real-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.rf-real-card:hover .rf-real-img img { transform:scale(1.06); }
.rf-real-body { background:var(--rf-surface); padding:24px 28px; border:1px solid rgb(var(--rf-ink-rgb) / .05); border-top:none; }
.rf-real-tag { display:inline-block; background:rgb(var(--rf-accent-rgb) / .08); color:var(--rf-accent-ink); font-family:var(--rf-font-body); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:4px 12px; border-radius:var(--rf-r-pill); margin-bottom:10px; }
.rf-real-title { font-family:var(--rf-font-display); font-size:20px; font-weight:600; color:var(--rf-ink); margin:0 0 8px; }
.rf-real-desc { font-family:var(--rf-font-body); font-size:14px; color:var(--rf-muted); line-height:1.65; margin:0; }
.rf-real-note { background:rgb(var(--rf-highlight-rgb) / .1); border:1px solid rgb(var(--rf-highlight-rgb) / .25); border-radius:var(--rf-r3); padding:16px 24px; font-family:var(--rf-font-body); font-size:13px; color:var(--rf-highlight-ink); margin-top:32px; text-align:center; }
.rf-faq-bg { background:var(--rf-surface); }
.rf-faq-inner { display:grid; grid-template-columns:1fr 1.6fr; gap:80px; align-items:start; }
.rf-faq-img { position:sticky; top:100px; }
.rf-faq-img img { width:100%; border-radius:var(--rf-r5); box-shadow:var(--rf-sh3); aspect-ratio:3/4; object-fit:cover; }
.rf-faq-list { display:grid; gap:16px; }
.rf-faq-item { background:var(--rf-surface-soft); border-radius:var(--rf-r3); padding:28px 32px; border:1px solid rgb(var(--rf-ink-rgb) / .06); transition:all .25s; }
.rf-faq-item:hover { border-color:rgb(var(--rf-accent-rgb) / .2); box-shadow:var(--rf-sh2); }
.rf-faq-q { font-family:var(--rf-font-body); font-size:15px; font-weight:600; color:var(--rf-ink); margin:0 0 10px; display:flex; align-items:flex-start; gap:12px; }
.rf-faq-q::before { content:'?'; display:flex; align-items:center; justify-content:center; width:22px; height:22px; background:var(--rf-accent); color:var(--rf-on-dark); border-radius:50%; font-size:12px; font-weight:700; flex-shrink:0; margin-top:1px; }
.rf-faq-a { font-family:var(--rf-font-body); font-size:14px; color:var(--rf-muted); line-height:1.75; margin:0; padding-left:34px; }
.rf-cta-final { position:relative; overflow:hidden; padding:clamp(80px, 10vw, 140px) clamp(24px, 5vw, 80px); background:var(--rf-ink); }
.rf-cta-bg { position:absolute; inset:0; background-image:var(--rf-hero-image); background-size:cover; background-position:center; opacity:.15; }
.rf-cta-overlay { position:absolute; inset:0; background:linear-gradient(135deg, rgb(var(--rf-ink-rgb) / .98) 0%, rgb(var(--rf-ink-rgb) / .85) 100%); }
.rf-cta-inner { position:relative; z-index:1; max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.rf-cta-inner h2 { font-family:var(--rf-font-display); font-size:clamp(36px, 4.5vw, 60px); font-weight:600; color:var(--rf-on-dark); line-height:1.1; margin:0 0 16px; }
.rf-cta-inner h2 em { font-style:italic; font-weight:400; color:var(--rf-highlight); }
.rf-cta-inner p { font-family:var(--rf-font-body); font-size:16px; color:var(--rf-on-dark-muted); line-height:1.8; margin:0 0 40px; }
.rf-cta-btns { display:flex; gap:14px; flex-wrap:wrap; }
.rf-cta-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); border-radius:var(--rf-r5); padding:44px; }
.rf-cta-card h3 { font-family:var(--rf-font-display); font-size:26px; font-style:italic; color:var(--rf-on-dark); margin:0 0 20px; }
.rf-cta-reasons { display:grid; gap:14px; margin-bottom:32px; }
.rf-cta-reason { display:flex; align-items:center; gap:12px; font-family:var(--rf-font-body); font-size:14px; color:var(--rf-on-dark-muted); }
.rf-cta-reason-check { width:20px; height:20px; background:rgb(var(--rf-accent-rgb) / .2); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:10px; color:var(--rf-accent-on-dark); }
@media (max-width:1024px) { .rf-hero-inner { grid-template-columns:1fr; }
.rf-hero-right { display:none; }
.rf-engage-grid { grid-template-columns:1fr 1fr; }
.rf-presta-grid { grid-template-columns:1fr 1fr; }
.rf-process-grid { grid-template-columns:1fr 1fr; gap:40px; }
.rf-process-grid::before { display:none; }
.rf-zones-inner { grid-template-columns:1fr; }
.rf-faq-inner { grid-template-columns:1fr; }
.rf-faq-img { display:none; }
.rf-cta-inner { grid-template-columns:1fr; }
 }
@media (max-width:640px) { .rf-engage-grid { grid-template-columns:1fr; }
.rf-presta-grid { grid-template-columns:1fr; }
.rf-process-grid { grid-template-columns:1fr; }
.rf-real-grid { grid-template-columns:1fr; }
.rf-hero-stats { flex-wrap:wrap; gap:20px; }
.rf-reassurance-inner { justify-content:center; }
.rf-reass-sep { display:none; }
 }
.rf-p-hero { position:relative; min-height:60vh; display:flex; align-items:center; overflow:hidden; background:var(--rf-ink); }
.rf-p-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.2; filter:saturate(.5); }
.rf-p-hero-overlay { position:absolute; inset:0; background:linear-gradient(120deg,rgb(var(--rf-ink-rgb) / .96) 0%,rgb(var(--rf-ink-rgb) / .8) 60%,rgb(var(--rf-ink-rgb) / .4) 100%); }
.rf-p-hero-content { position:relative; z-index:2; max-width:1280px; width:100%; margin:0 auto; padding:clamp(100px,13vh,150px) clamp(24px,5vw,80px) clamp(72px,9vh,100px); }
.rf-p-badge { display:inline-flex; align-items:center; gap:10px; background:rgb(var(--rf-accent-rgb) / .15); border:1px solid rgb(var(--rf-accent-rgb) / .3); border-radius:var(--rf-r-pill); padding:7px 20px; margin-bottom:24px; }
.rf-p-badge span { font-family:var(--rf-font-body); font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--rf-accent-on-dark); }
.rf-p-h1 { font-family:var(--rf-font-display); font-size:clamp(34px,5vw,68px); font-weight:600; color:var(--rf-on-dark); margin:0 0 22px; line-height:1.06; letter-spacing:-.025em; }
.rf-p-h1 em { font-style:italic; font-weight:400; color:var(--rf-highlight); }
.rf-p-hero-sub { font-family:var(--rf-font-body); font-size:17px; color:var(--rf-on-dark-muted); line-height:1.8; max-width:560px; margin:0 0 40px; }
.rf-p-cta { display:inline-flex; align-items:center; gap:10px; background:var(--rf-accent); color:var(--rf-on-dark)!important; font-family:var(--rf-font-body); font-size:14px; font-weight:600; padding:16px 32px; border-radius:var(--rf-r-pill); text-decoration:none!important; box-shadow:0 8px 32px rgb(var(--rf-accent-rgb) / .4); transition:all .25s; }
.rf-p-cta:hover { background:var(--rf-accent-hover); transform:translateY(-2px); }
.rf-p-cta-outline { display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--rf-on-dark-muted)!important; font-family:var(--rf-font-body); font-size:14px; font-weight:500; padding:15px 28px; border-radius:var(--rf-r-pill); border:1.5px solid rgba(255,255,255,.2); text-decoration:none!important; transition:all .25s; margin-left:12px; }
.rf-p-body { background:var(--rf-surface-soft); padding:clamp(60px,8vw,100px) clamp(24px,5vw,80px); }
.rf-p-body-white { background:var(--rf-surface); }
.rf-p-body-dark { background:var(--rf-ink); }
.rf-p-container { max-width:1280px; margin:0 auto; }
.rf-p-2col { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.rf-p-3col { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.rf-p-label { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.rf-p-label-line { width:32px; height:2px; background:var(--rf-accent); border-radius:2px; }
.rf-p-label-text { font-family:var(--rf-font-body); font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--rf-accent-ink); }
.rf-p-h2 { font-family:var(--rf-font-display); font-size:clamp(26px,3.5vw,48px); font-weight:600; color:var(--rf-ink); line-height:1.1; letter-spacing:-.02em; margin:0 0 16px; }
.rf-p-h2 em { font-style:italic; font-weight:400; color:var(--rf-accent-ink); }
.rf-p-h2-white { color:var(--rf-on-dark); }
.rf-p-lead { font-family:var(--rf-font-body); font-size:15px; color:var(--rf-muted); line-height:1.8; margin:0 0 32px; }
.rf-p-card { background:var(--rf-surface); border-radius:var(--rf-r5); padding:32px; border:1px solid rgb(var(--rf-ink-rgb) / .06); box-shadow:var(--rf-sh1); transition:all .3s; overflow:hidden; position:relative; }
.rf-p-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--rf-accent); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.rf-p-card:hover { box-shadow:var(--rf-sh3); transform:translateY(-4px); }
.rf-p-card:hover::after { transform:scaleX(1); }
.rf-p-card-icon { width:56px; height:56px; background:rgb(var(--rf-accent-rgb) / .08); border-radius:var(--rf-r3); display:flex; align-items:center; justify-content:center; margin-bottom:20px; font-size:24px; }
.rf-p-card-title { font-family:var(--rf-font-body); font-size:15px; font-weight:600; color:var(--rf-ink); margin:0 0 10px; }
.rf-p-card-text { font-family:var(--rf-font-body); font-size:14px; color:var(--rf-muted); line-height:1.7; margin:0; }
.rf-p-info-list { display:grid; gap:16px; }
.rf-p-info-item { display:flex; gap:16px; align-items:start; padding:20px 24px; background:var(--rf-surface); border-radius:var(--rf-r3); border:1px solid rgb(var(--rf-ink-rgb) / .06); box-shadow:var(--rf-sh1); }
.rf-p-info-icon { width:44px; height:44px; background:rgb(var(--rf-accent-rgb) / .08); border-radius:var(--rf-r2); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.rf-p-info-title { font-family:var(--rf-font-body); font-size:14px; font-weight:600; color:var(--rf-ink); margin:0 0 5px; }
.rf-p-info-text { font-family:var(--rf-font-body); font-size:13px; color:var(--rf-muted); line-height:1.65; margin:0; }
.rf-p-img-rounded { border-radius:var(--rf-r5); overflow:hidden; box-shadow:var(--rf-sh3); }
.rf-p-img-rounded img { width:100%; display:block; object-fit:cover; }
.rf-p-pills { display:flex; flex-wrap:wrap; gap:10px; }
.rf-p-pill { background:rgb(var(--rf-accent-rgb) / .07); border:1.5px solid rgb(var(--rf-accent-rgb) / .18); border-radius:var(--rf-r-pill); padding:8px 18px; font-family:var(--rf-font-body); font-size:13px; font-weight:500; color:var(--rf-accent-ink)!important; text-decoration:none!important; transition:all .2s; }
.rf-p-pill:hover { background:var(--rf-accent); color:var(--rf-on-dark)!important; }
.rf-p-pill::before { content:'→ '; }
.rf-p-note { background:rgb(var(--rf-highlight-rgb) / .08); border:1px solid rgb(var(--rf-highlight-rgb) / .22); border-radius:var(--rf-r3); padding:16px 24px; font-family:var(--rf-font-body); font-size:13px; color:var(--rf-highlight-ink); text-align:center; margin-top:32px; }
.rf-p-note-blue { background:rgb(var(--rf-accent-rgb) / .06); border-color:rgb(var(--rf-accent-rgb) / .18); color:var(--rf-accent-ink); }
@media(max-width:768px) { .rf-p-2col { grid-template-columns:1fr!important; gap:40px; }
.rf-p-3col { grid-template-columns:1fr!important; }
 }
.rf-p-section { padding:clamp(56px,7vw,96px) clamp(24px,5vw,80px); }
.rf-p-img-rd { border-radius:var(--rf-r5); overflow:hidden; box-shadow:var(--rf-sh3); }
.rf-p-img-rd img { width:100%; display:block; object-fit:cover; }
.rf-p-card-grid { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); }
.rf-p-faq-item { background:var(--rf-surface); border-radius:var(--rf-r3); padding:26px 30px; border:1px solid rgb(var(--rf-ink-rgb) / .06); margin-bottom:14px; transition:all .25s; }
.rf-p-faq-item:hover { border-color:rgb(var(--rf-accent-rgb) / .2); box-shadow:var(--rf-sh2); }
.rf-p-faq-q { font-family:var(--rf-font-body); font-size:15px; font-weight:600; color:var(--rf-ink); margin:0 0 10px; display:flex; align-items:flex-start; gap:12px; }
.rf-p-faq-q::before { content:'?'; display:flex; align-items:center; justify-content:center; width:22px; height:22px; background:var(--rf-accent); color:var(--rf-on-dark); border-radius:50%; font-size:12px; font-weight:700; flex-shrink:0; margin-top:1px; }
.rf-p-faq-a { font-family:var(--rf-font-body); font-size:14px; color:var(--rf-muted); line-height:1.75; margin:0; padding-left:34px; }
.rf-p-zone-pill { background:rgb(var(--rf-ink-rgb) / .07); border:1.5px solid rgb(var(--rf-ink-rgb) / .12); border-radius:999px; padding:8px 16px; font-family:var(--rf-font-body); font-size:13px; font-weight:500; color:var(--rf-ink-3); display:inline-block; margin:4px; transition:all .2s; }
.rf-p-zone-pill:hover { background:var(--rf-accent); border-color:var(--rf-accent); color:var(--rf-on-dark); }
.rf-p-btn-full { display:block; width:100%; text-align:center; background:var(--rf-accent); color:var(--rf-on-dark)!important; font-family:var(--rf-font-body); font-size:15px; font-weight:600; padding:18px 24px; border-radius:var(--rf-r3); text-decoration:none!important; box-shadow:0 8px 32px rgb(var(--rf-accent-rgb) / .35); transition:all .25s; margin-top:24px; }
.rf-p-btn-full:hover { background:var(--rf-accent-hover); transform:translateY(-2px); }

/* ===== Fluent Forms (M9bis) — champs reels, cibles >= 44px, libelles lisibles ===== */
.frm-fluent-form { font-family: var(--rf-font-body); }
.frm-fluent-form .ff-el-input--label label { font-size: 13px; font-weight: 600; color: var(--rf-ink); }
.fluentform .frm-fluent-form .ff-el-input--label.ff-el-is-required.asterisk-right label::after, .frm-fluent-form .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--rf-accent-ink) !important; }
.frm-fluent-form .ff-el-form-control { min-height: var(--rf-tap); padding: 12px 16px; border: 1.5px solid rgb(var(--rf-ink-rgb) / .22); border-radius: 10px; font-family: var(--rf-font-body); font-size: 15px; color: var(--rf-ink); background: var(--rf-surface); transition: border-color .2s; }
.frm-fluent-form .ff-el-form-control::placeholder { color: var(--rf-muted); opacity: 1; }
.frm-fluent-form .ff-el-form-control:focus { border-color: var(--rf-accent); box-shadow: 0 0 0 3px rgb(var(--rf-accent-rgb) / .15); outline: none; }
.frm-fluent-form textarea.ff-el-form-control { min-height: 140px; }
.frm-fluent-form .ff-btn-submit { display: block; width: 100%; min-height: 52px; background: var(--rf-accent) !important; color: var(--rf-on-dark) !important; font-family: var(--rf-font-body); font-size: 15px; font-weight: 600; padding: 16px 24px; border: 0; border-radius: var(--rf-r3); box-shadow: 0 8px 32px rgb(var(--rf-accent-rgb) / .35); cursor: pointer; transition: background .25s, transform .25s; }
.frm-fluent-form .ff-btn-submit:hover { background: var(--rf-accent-hover) !important; transform: translateY(-2px); }
.frm-fluent-form .error, .frm-fluent-form .ff-el-is-error .text-danger { color: var(--rf-accent-ink); font-size: 13px; }
.ff-message-success { border: 1px solid rgb(var(--rf-ink-rgb) / .12); border-radius: var(--rf-r3); padding: 20px 24px; color: var(--rf-ink); background: var(--rf-surface-soft); }

/* ===== Contextes sombres (M11bis) =====
   Les memes composants servent sur fond clair et sur fond sombre : les classes de section sombre
   (ou .rf-dark sur tout nouveau bloc) basculent les textes sur leurs variantes -on-dark. */
:is(.rf-hero, .rf-process-bg, .rf-cta-final, .rf-photobande, .rf-p-hero, .rf-p-body-dark, .rf-dark) :is(.rf-label-text, .rf-p-label-text, .rf-eyebrow-text) { color: var(--rf-accent-on-dark); }
:is(.rf-hero, .rf-process-bg, .rf-cta-final, .rf-photobande, .rf-p-hero, .rf-p-body-dark, .rf-dark) :is(.rf-h2, .rf-p-h2) { color: var(--rf-on-dark); }
:is(.rf-hero, .rf-process-bg, .rf-cta-final, .rf-photobande, .rf-p-hero, .rf-p-body-dark, .rf-dark) :is(.rf-h2, .rf-p-h2) em { color: var(--rf-highlight); }
:is(.rf-hero, .rf-process-bg, .rf-cta-final, .rf-photobande, .rf-p-hero, .rf-p-body-dark, .rf-dark) :is(.rf-lead, .rf-p-lead, p) { color: var(--rf-on-dark-muted); }
.rf-reassurance .rf-reass-item { opacity: 1 !important; color: var(--rf-on-dark); }
.rf-stat-label { color: var(--rf-on-dark-muted); }

/* ===== Cibles tactiles (standard Refontia 44px) ===== */
.rf-presta-link, .rf-p-pill, .rf-zone-pill, .rf-btn, .rf-btn-dark, .rf-p-cta, .rf-p-cta-outline { min-height: var(--rf-tap); }
.rf-presta-link { display: inline-flex; align-items: center; }

/* ===== Focus visible inconditionnel ===== */
body.hide-focus-outline :focus-visible,
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--rf-ink) !important; outline-offset: 3px !important; }
:is(.rf-hero, .rf-process-bg, .rf-cta-final, .rf-photobande, .rf-p-hero, .rf-p-body-dark, .rf-dark, .rf-reassurance) :focus-visible { outline-color: var(--rf-on-dark) !important; }

/* ===== Mouvement reduit ===== */
@media (prefers-reduced-motion: reduce) {
  .rf-eyebrow-dot { animation: none; }
  [class^="rf-"], [class*=" rf-"] { transition: none !important; }
  [class^="rf-"]:hover, [class*=" rf-"]:hover { transform: none !important; }
}

/* ===== Correctif mobile (defaut present sur le site en ligne) =====
   L'en-tete de la section prestations est en flex horizontal : a 390px, le titre et le libelle
   sont ecrases sur une colonne de quelques caracteres (« Toit / ure »). */
@media (max-width: 768px) {
  .rf-presta-header { flex-direction: column; align-items: flex-start; gap: 20px; }
  .rf-presta-header > * { max-width: 100%; }
}
