/* =====================================================================
   Espace RDI Nova — couche de style (charge après base.css)
   ===================================================================== */
:root {
	--nv-mag: #E6007E;
	--nv-mag-2: #C8046F;
	--nv-mag-grad: linear-gradient(135deg, #F0168C 0%, #E6007E 45%, #C8046F 100%);
	--nv-slate: #2C4253;
	--nv-slate-2: #22343F;
	--nv-ink-dark: #16212A;
	--nv-grey: #F6F7F9;
	--nv-foot: #2C4253;
	--nv-foot-2: #1C2C39;
	--nv-serif: var(--wp--preset--font-family--serif);
	--nv-head: var(--wp--preset--font-family--heading);
	--nv-shadow: 0 30px 60px -20px rgba(16, 24, 32, .35);
	--nv-card-shadow: 0 12px 34px -14px rgba(16, 24, 32, .28);
	--brand-stripe: var(--nv-mag-grad);
}

body { font-size: 15.5px; color: var(--c-ink); }
h1, h2, h3, h4 { font-family: var(--nv-head); letter-spacing: -0.035em; }
.wp-element-button, .wp-block-button__link {
	border-radius: 3px !important; font-family: var(--nv-head); font-weight: 600; font-size: .78rem !important;
	text-transform: uppercase; letter-spacing: .08em; padding: .95rem 1.6rem !important;
	background: var(--nv-mag); box-shadow: 0 14px 28px -14px rgba(230, 0, 126, .7);
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.wp-block-button__link:hover { background: var(--nv-mag-2); transform: translateY(-2px); }

/* ---------- En-tête ---------- */
.nova-site-header, .rdi-site-header { position: sticky; top: 0; z-index: 50; }
.nova-header { background: #fff; transition: box-shadow .3s ease; }
.nova-header.is-scrolled { box-shadow: 0 6px 24px -12px rgba(0, 0, 0, .25); }
.nova-header__inner { min-height: 76px; gap: 2rem; padding-inline: clamp(1rem, 2.5vw, 2.25rem); }
.nova-header .rdi-logo img { height: 46px; width: auto; display: block; }
.nova-header__right { gap: 1.6rem; }
.nova-nav { font-family: var(--nv-head); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .09em; }
.nova-nav .wp-block-navigation-item__content { color: #3c4650; padding: .4rem 0; position: relative; text-decoration: none; }
.nova-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--nv-mag); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.nova-nav .wp-block-navigation-item__content:hover::after, .nova-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.nova-nav .current-menu-item > .wp-block-navigation-item__content { color: #9aa3ab; }
.nova-nav .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: var(--nv-card-shadow); padding: .5rem 0; min-width: 240px !important; }
.nova-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1.1rem; font-size: .68rem; }
.nova-social { display: flex; gap: .8rem; align-items: center; }
.nova-social a { color: #3c4650; display: inline-flex; transition: color .2s; }
.nova-social a:hover { color: var(--nv-mag); }
@media (max-width: 900px) { .nova-header__right .nova-social { display: none; } }

/* ---------- Hero réseau ---------- */
.nova-hero { margin-top: 0 !important; margin-bottom: 0 !important; }
.nova-hero__stage {
	position: relative; min-height: clamp(560px, 86vh, 820px); display: grid; place-items: center; overflow: hidden;
	background: radial-gradient(120% 90% at 50% 20%, #3A5468 0%, #2C4253 45%, #1C2C39 100%); color: #fff;
}
.nova-net { position: absolute; inset: 0; width: 100%; height: 100%; }
.nova-hero__inner { position: relative; z-index: 2; text-align: center; padding: 6rem 1.25rem 8rem; display: flex; flex-direction: column; align-items: center; }
.nova-hero__logo { width: clamp(220px, 30vw, 380px); height: auto; filter: drop-shadow(0 18px 40px rgba(0, 0, 0, .35)); }
.nova-brush { width: clamp(210px, 28vw, 360px); height: 22px; color: var(--nv-mag); margin-top: .4rem; }
.nova-hero__title { margin: 1.6rem 0 0; font-size: clamp(1.35rem, 2.4vw, 2rem); font-weight: 600; letter-spacing: -0.02em; max-width: 24ch; color: #fff; text-wrap: balance; }
.nova-hero__scroll { margin-top: 2.6rem; width: 26px; height: 42px; border: 2px solid rgba(255, 255, 255, .55); border-radius: 14px; display: block; position: relative; }
.nova-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: nova-wheel 1.8s infinite; }
@keyframes nova-wheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(12px); } }
.nova-hero__curve { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: clamp(40px, 6vw, 90px); color: #fff; z-index: 3; }
.nova-hero__curve path { fill: #fff; }
.nova-hero__stage::after { content: ""; position: absolute; left: 0; right: 0; bottom: clamp(30px, 4.6vw, 68px); height: 18px; background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .08)); z-index: 2; }

/* ---------- Carte « Qui sommes-nous » (chevauche le hero) ---------- */
.nova-intro { position: relative; z-index: 5; padding: 0 1.25rem 5.5rem; margin-top: calc(-1 * clamp(110px, 12vw, 170px)) !important; background: transparent; }
.nova-intro__card {
	max-width: 900px !important; margin-inline: auto !important; background: var(--nv-mag-grad); color: #fff; border-radius: 4px;
	padding: clamp(2rem, 4vw, 3.4rem) clamp(1.5rem, 4.5vw, 4rem) clamp(2.2rem, 4vw, 3.6rem); box-shadow: var(--nv-shadow);
}
.nova-intro__cols { gap: clamp(1.5rem, 4vw, 3.5rem) !important; margin: 0 !important; }
.nova-intro__title { color: #fff; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.05em; text-align: right; margin: 0; }
.nova-serif { font-family: var(--nv-serif); font-size: clamp(1.02rem, 1.3vw, 1.18rem); line-height: 1.6; }
.nova-intro .nova-serif { color: #fff; margin: 0; }
.nova-rule { border: 0; border-top: 1px solid rgba(255, 255, 255, .5); margin: 1.6rem 0 0; }
@media (max-width: 781px) { .nova-intro__title { text-align: left; } }

/* ---------- Surtitres espacés ---------- */
.nova-kicker {
	font-family: var(--nv-head) !important; font-size: .72rem !important; font-weight: 600 !important; text-transform: uppercase;
	letter-spacing: .5em !important; text-align: center; margin: 0 auto 2.6rem !important; color: var(--c-ink); line-height: 1.6;
}
.nova-kicker--light { color: #fff; }
.nova-kicker--accent { color: var(--nv-mag); }
.nova-kicker--strong { color: #fff; letter-spacing: .03em !important; font-size: .82rem !important; font-weight: 700 !important; max-width: 60ch; }

/* ---------- Section sombre : piliers ---------- */
.nova-dark { background: var(--nv-ink-dark); color: #C9D3DB; padding: clamp(4.5rem, 8vw, 7rem) 1.25rem clamp(9rem, 14vw, 12rem); }
.nova-pillars { max-width: 1140px !important; margin-inline: auto !important; gap: clamp(2rem, 4vw, 3.5rem) !important; }
.nova-pillar { text-align: center; padding: 0 .5rem; }
.nova-ico { width: 64px; height: 64px; fill: none; stroke: var(--nv-mag); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; margin: 0 auto 1.1rem; display: block; }
.nova-ico circle { fill: var(--nv-mag); stroke: none; }
.nova-pillar__title { color: #fff; text-transform: uppercase; font-size: 1.25rem !important; font-weight: 700; letter-spacing: -0.01em !important; margin: 0 0 .9rem; }
.nova-pillar p { margin: 0 auto; max-width: 42ch; font-size: .92rem; line-height: 1.75; }

/* ---------- Découvrir (panneau magenta à cheval sur deux sections) ---------- */
.nova-discover { background: linear-gradient(180deg, var(--nv-ink-dark) 0, var(--nv-ink-dark) 110px, var(--nv-grey) 110px); padding: 0 1.25rem clamp(4rem, 7vw, 6rem); margin-top: -6.5rem !important; position: relative; z-index: 4; }
.nova-discover__panel { max-width: 1060px !important; margin: 0 auto 2.8rem !important; background: var(--nv-mag-grad); border-radius: 4px; padding: 2.6rem 0 1.8rem; box-shadow: var(--nv-shadow); overflow: hidden; }
.nova-carousel { position: relative; }
.nova-carousel__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 31%); gap: 1.2rem; overflow-x: auto; scroll-snap-type: x mandatory;
	padding: .4rem clamp(1.2rem, 4vw, 2.6rem) 1.4rem; scrollbar-width: none; scroll-padding-inline: clamp(1.2rem, 4vw, 2.6rem);
}
.nova-carousel__track::-webkit-scrollbar { display: none; }
.nova-slide { scroll-snap-align: start; display: block; position: relative; aspect-ratio: 4 / 5; border-radius: 3px; overflow: hidden; text-decoration: none; color: #fff; background: #1C2C39; box-shadow: 0 18px 30px -18px rgba(0, 0, 0, .6); }
.nova-slide__visual, .nova-slide__visual img, .nova-illus { position: absolute; inset: 0; width: 100%; height: 100%; }
.nova-slide__visual img { object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.nova-slide:hover .nova-slide__visual img, .nova-slide:hover .nova-illus svg { transform: scale(1.06); }
.nova-illus { display: grid; place-items: center; }
.nova-illus svg { width: 46%; fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; transition: transform .8s cubic-bezier(.2, .7, .2, 1); opacity: .95; }
.nova-illus--dc { background: radial-gradient(90% 80% at 30% 20%, #3A5468, #1C2C39); }
.nova-illus--ms { background: radial-gradient(90% 80% at 30% 20%, #19595B, #0F3D3E); }
.nova-illus--ms svg { stroke: #3FD0AE; }
.nova-illus--tel { background: radial-gradient(90% 80% at 30% 20%, #4A6276, #2C4253); }
.nova-illus--tel svg { stroke: #FF7CC0; }
.nova-illus--exp { background: radial-gradient(90% 80% at 30% 20%, #F0168C, #9E0458); }
.nova-slide__label { position: absolute; left: 0; right: 0; bottom: 0; padding: 3.5rem 1.2rem 1.1rem; background: linear-gradient(180deg, transparent, rgba(10, 16, 22, .85)); display: flex; flex-direction: column; gap: .2rem; }
.nova-slide__label strong { font-family: var(--nv-head); font-size: 1.12rem; letter-spacing: -0.02em; }
.nova-slide__label em { font-style: normal; font-size: .82rem; opacity: .85; }
.nova-carousel__dots { display: flex; justify-content: center; gap: .55rem; margin-top: .4rem; }
.nova-carousel__dots button { width: 7px; height: 7px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, .5); cursor: pointer; transition: transform .2s, background .2s; }
.nova-carousel__dots button.is-active { background: #fff; transform: scale(1.35); }
.nova-center { justify-content: center; }
@media (max-width: 700px) { .nova-carousel__track { grid-auto-columns: 78%; } }

/* ---------- Actualités ---------- */
.nova-news { background: #fff; padding: clamp(4.5rem, 8vw, 6.5rem) 1.25rem clamp(3.5rem, 6vw, 5rem); }
.nova-news > * { max-width: 1060px !important; margin-inline: auto !important; }
.nova-post { background: #fff; box-shadow: var(--nv-card-shadow); border-radius: 3px; overflow: hidden; height: 100%; transition: transform .35s ease, box-shadow .35s ease; }
.nova-post:hover { transform: translateY(-6px); box-shadow: 0 26px 44px -18px rgba(16, 24, 32, .35); }
.nova-post__media { position: relative; aspect-ratio: 16 / 10; background: radial-gradient(110% 100% at 20% 10%, #3A5468, #1C2C39); overflow: hidden; }
.nova-post__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--nv-mag-grad); }
.nova-news__grid > li:nth-child(3n+2) .nova-post__media { background: var(--nv-mag-grad); }
.nova-news__grid > li:nth-child(3n) .nova-post__media { background: radial-gradient(110% 100% at 80% 0%, #E9EDF1, #CBD3DA); }
.nova-news__grid > li:nth-child(3n) .nova-post__media::before { background-image: url("../img/logo-rdi.svg"); opacity: .3; }
.nova-post__media::before { content: ""; position: absolute; inset: 0; background: url("../img/logo-rdi-blanc.svg") center / 38% no-repeat; opacity: .28; }
.nova-post__media .wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.nova-post__media .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.nova-post__tags { position: absolute; top: .9rem; right: .9rem; z-index: 2; display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; margin: 0; font-size: 0; }
.nova-post__tags a { font: 600 .6rem/1 var(--nv-head); text-transform: uppercase; letter-spacing: .06em; color: #fff; background: var(--nv-slate); padding: .4rem .5rem; border-radius: 2px; text-decoration: none; }
.nova-post__tags .wp-block-post-terms__separator { display: none; }
.nova-post__body { padding: 1.3rem 1.4rem 1.6rem; }
.nova-post__date { font-size: .74rem; color: var(--c-muted); margin: 0 0 .5rem; }
.nova-post__title { font-size: 1.02rem !important; line-height: 1.3; letter-spacing: -0.02em; margin: 0 0 .6rem; }
.nova-post__title a { color: var(--c-ink); text-decoration: none; }
.nova-post__title a:hover { color: var(--nv-mag); }
.nova-post__excerpt { font-size: .86rem; color: var(--c-muted); line-height: 1.65; margin: 0; }
.nova-post__excerpt .wp-block-post-excerpt__more-text { display: none; }
.nova-pager { margin: 2.4rem 0 2rem !important; align-items: center; font-family: var(--nv-head); font-size: .78rem; }
.nova-pager .page-numbers, .nova-pager a { color: var(--c-ink); text-decoration: none; padding: .35rem .7rem; border-radius: 50%; }
.nova-pager .page-numbers.current { background: #EEF0F2; }
.nova-sep { border: 0; border-top: 1px solid var(--c-line); margin: 3rem auto !important; max-width: 860px !important; }
.nova-partners { list-style: none; padding: 0; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.nova-partners li {
	width: 150px; height: 84px; display: grid; place-items: center; border: 1px solid var(--c-line); border-radius: 3px; background: #fff;
	font: 700 1.05rem/1 var(--nv-head); letter-spacing: -0.02em; color: #5B6670; filter: grayscale(1); transition: color .25s, border-color .25s, transform .25s;
}
.nova-partners li:hover { color: var(--nv-mag); border-color: var(--nv-mag); transform: translateY(-3px); }

/* ---------- Contact sombre ---------- */
.nova-contact { background: var(--nv-ink-dark); color: #C9D3DB; padding: clamp(4.5rem, 8vw, 6.5rem) 1.25rem; border-top: 6px solid var(--nv-mag); }
.nova-contact__inner { max-width: 820px !important; margin-inline: auto !important; text-align: center; }
.nova-contact__title { color: #fff; font-size: clamp(1.8rem, 3vw, 2.3rem); margin: -1.2rem 0 1rem; letter-spacing: -0.05em; }
.nova-contact__intro { color: #9FAAB4; max-width: 52ch; margin: 0 auto 2.4rem; }
.nova-contact__intro a { color: #fff; }
.nova-contact .rdi-form { text-align: left; gap: .9rem; background: transparent; padding: 0; border: 0; box-shadow: none; }
.nova-contact .rdi-form label { color: #9FAAB4; font-size: .78rem; }
.nova-contact .rdi-form input[type=text], .nova-contact .rdi-form input[type=email], .nova-contact .rdi-form input[type=tel],
.nova-contact .rdi-form select, .nova-contact .rdi-form textarea {
	background: #fff; border: 0; border-radius: 2px; color: var(--c-ink); font-family: var(--nv-serif); font-size: .92rem; padding: .7rem .8rem;
}
.nova-contact .rdi-form textarea { min-height: 120px; }
.nova-contact .rdi-form__consent label { font-size: .76rem; color: #7F8B95; }
.nova-contact .rdi-form button[type=submit] {
	display: block; margin: .6rem auto 0; background: var(--nv-mag); color: #fff; border: 0; border-radius: 3px; font: 600 .74rem/1 var(--nv-head);
	text-transform: uppercase; letter-spacing: .08em; padding: 1rem 1.8rem; cursor: pointer; box-shadow: 0 14px 28px -14px rgba(230, 0, 126, .8);
}
.nova-contact .rdi-form button[type=submit]:hover { background: var(--nv-mag-2); }

/* ---------- Pied de page ---------- */
.nova-footer { background: var(--nv-foot); color: #E4EAF0; }
.nova-footer__main { padding: 4rem 1.25rem 3rem; }
.nova-footer__cols { gap: 2.5rem !important; }
.nova-footer .rdi-logo img { height: 64px; width: auto; }
.nova-footer__pitch { font-size: .86rem; line-height: 1.6; margin-top: 1.2rem; color: #E4EAF0; font-weight: 500; }
.nova-footer__title { color: #fff; font-family: var(--nv-head); font-weight: 400 !important; font-size: 1.35rem !important; letter-spacing: -0.02em; margin: .4rem 0 1rem; }
.nova-footer__list { list-style: none; padding: 0; margin: 0; font-size: .84rem; line-height: 2; }
.nova-footer__list li::before { content: "▸"; color: #fff; font-size: .7em; margin-right: .5rem; }
.nova-footer a { color: #E4EAF0; text-decoration: none; }
.nova-footer a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--nv-mag); text-underline-offset: 3px; }
.nova-footer__links, .nova-footer__contact { font-size: .84rem; line-height: 2; margin: 0; }
.nova-footer__bottom { background: var(--nv-foot-2); padding: 1.1rem 1.25rem; }
.nova-footer__bar { font-size: .76rem; color: #B9C5CF; }
.nova-footer__bar p { margin: 0; }
.nova-footer .nova-social a { color: #E4EAF0; }

/* ---------- Navigation latérale par points ---------- */
.nova-dots { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 40; display: flex; flex-direction: column; gap: .7rem; }
.nova-dots a { width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid #9aa3ab; display: block; position: relative; transition: background .2s, border-color .2s, transform .2s; }
.nova-dots a.is-active { background: var(--nv-mag); border-color: var(--nv-mag); transform: scale(1.2); }
.nova-dots a span { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); white-space: nowrap; font: 600 .65rem/1 var(--nv-head); text-transform: uppercase; letter-spacing: .08em; background: var(--nv-slate); color: #fff; padding: .35rem .5rem; border-radius: 2px; opacity: 0; pointer-events: none; transition: opacity .2s; }
.nova-dots a:hover span { opacity: 1; }
.nova-dots.is-dark a { border-color: rgba(255, 255, 255, .7); }
@media (max-width: 900px) { .nova-dots { display: none; } }

/* ---------- Apparition au défilement ---------- */
.has-js .nova-reveal { opacity: 0; transform: translateY(40px); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.has-js .nova-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.has-js .nova-reveal { opacity: 1; transform: none; transition: none; }
	.nova-hero__scroll span { animation: none; }
}

/* ---------- Pages intérieures : bandeau de titre façon Nova ---------- */
.rdi-pagehead { background: radial-gradient(120% 120% at 50% 0%, #3A5468, #2C4253 55%, #1C2C39) !important; color: #fff; padding-block: 4.5rem 4rem !important; }
.rdi-pagehead__title { color: #fff !important; font-weight: 700; letter-spacing: -0.04em; }
.rdi-pagehead__title::after { content: ""; display: block; width: 120px; height: 6px; margin: 1rem 0 0; border-radius: 6px; background: var(--nv-mag); }
.rdi-pagehead p, .rdi-pagehead .rdi-pagehead__lede, .rdi-pagehead .wp-block-post-excerpt__excerpt, .rdi-pagehead .rdi-breadcrumbs, .rdi-pagehead .rdi-breadcrumbs a { color: #C9D3DB !important; }
.rdi-pagehead .is-style-outline .wp-block-button__link { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255, 255, 255, .6) !important; box-shadow: none; }
.rdi-pagehead .is-style-outline .wp-block-button__link:hover { border-color: #fff !important; }
.rdi-section--dark, .rdi-section--deep { background: var(--nv-ink-dark) !important; }
.rdi-card { border-radius: 3px !important; box-shadow: var(--nv-card-shadow); border: 0 !important; }
.rdi-kicker { font-family: var(--nv-head); letter-spacing: .3em; text-transform: uppercase; font-size: .72rem; color: var(--nv-mag); }
