/* ==========================================================================
   Iris — Agence Marketing · styles pour la page construite avec Elementor
   --------------------------------------------------------------------------
   Principe : ces règles donnent le style par défaut (charte Iris). Tout
   réglage fait dans l'éditeur Elementor (couleur, typo, marges, fond…) est
   plus prioritaire et le remplace. Les sélecteurs restent donc volontairement
   peu spécifiques.
   ========================================================================== */

:root {
	--iris-indigo: #302f80;
	--iris-violet: #503b8f;
	--iris-blue: #46509e;
	--iris-ink: #1d1d1b;
	--iris-ink-soft: #5b5871;
	--iris-paper: #eae9f4;
	--iris-paper-soft: #f4f3fa;
	--iris-line: rgba(29, 29, 27, 0.14);
	--iris-font: 'Hanken Grotesk', system-ui, sans-serif;
	--iris-mono: 'JetBrains Mono', monospace;
	--iris-maxw: 1180px;
}

body.iris-page {
	margin: 0;
	background: var(--iris-paper);
	color: var(--iris-ink);
	font-family: var(--iris-font);
	overflow-x: clip;
}

/* Pages simples (non Elementor) */
.iris-basic { max-width: 760px; margin: 60px auto; padding: 0 24px; line-height: 1.6; }

/* --------------------------------------------------------------------------
   Remise à zéro des styles Elementor par défaut sur les widgets Iris
   ----------------------------------------------------------------------- */
.iris-page .elementor-widget-heading .elementor-heading-title {
	font-family: var(--iris-font);
	font-weight: 800;
	letter-spacing: -0.01em;
	text-wrap: balance;
	color: inherit;
}
.iris-page .elementor-widget-text-editor {
	font-family: var(--iris-font);
	color: inherit;
}
.iris-page .elementor-widget-text-editor p { margin: 0; }
.iris-page .elementor-widget-text-editor a { color: inherit; }

/* Conteneurs : pas de marge interne ni d'espacement par défaut
   (les valeurs réelles sont dans les réglages Elementor de chaque bloc). */
.e-con.iris-c {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
}

/* Largeur de contenu (équivalent de .wrap) */
.e-con.iris-wrap {
	--width: 100%;
	max-width: var(--iris-maxw);
	margin-inline: auto;
	--padding-left: 32px;
	--padding-right: 32px;
}
@media (max-width: 767px) {
	.e-con.iris-wrap { --padding-left: 18px; --padding-right: 18px; }
}

/* --------------------------------------------------------------------------
   Éléments communs
   ----------------------------------------------------------------------- */

/* Pastille « eyebrow » */
.iris-page .iris-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--iris-mono);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--iris-ink-soft);
	border: 1px solid var(--iris-line);
	border-radius: 999px;
	padding: 6px 14px;
}
.iris-page .iris-eyebrow .elementor-heading-title::before {
	content: "●";
	color: var(--iris-violet);
	font-size: 8px;
}

/* Titre de section */
.iris-page .iris-h2 .elementor-heading-title {
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.06;
}
.iris-page .iris-lede {
	max-width: 600px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--iris-ink-soft);
}
.e-con.iris-section-head { max-width: 720px; }
.e-con.iris-section-head.is-center { margin-inline: auto; text-align: center; }

/* Boutons */
.iris-page .iris-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--iris-ink);
	color: var(--iris-paper);
	border: 1px solid var(--iris-ink);
	border-radius: 999px;
	padding: 13px 22px 13px 24px;
	font-family: var(--iris-font);
	font-weight: 700;
	font-size: 14.5px;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.iris-page .iris-btn .elementor-button:hover,
.iris-page .iris-btn .elementor-button:focus {
	background: var(--iris-indigo);
	border-color: var(--iris-indigo);
	color: #fff;
}
.iris-page .iris-btn .elementor-button-content-wrapper { align-items: center; gap: 10px; }
.iris-page .iris-btn .elementor-button-text::after { content: " ↗"; }
.iris-page .iris-btn-lg .elementor-button { padding: 16px 28px 16px 30px; font-size: 16px; }
/* Flèche dans un rond */
.iris-page .iris-btn-circle .elementor-button-text::after {
	content: "↗";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-left: 10px;
	border-radius: 50%;
	background: var(--iris-paper);
	color: var(--iris-ink);
	font-size: 13px;
	vertical-align: middle;
}
.iris-page .iris-btn-circle .elementor-button-text { display: inline-flex; align-items: center; }

/* --------------------------------------------------------------------------
   Menu
   ----------------------------------------------------------------------- */
.e-con.iris-nav {
	--position: sticky;
	top: 0;
	--z-index: 50;
	background: color-mix(in srgb, var(--iris-paper) 90%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--iris-line);
}
.admin-bar .e-con.iris-nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .e-con.iris-nav { top: 0; } }

.iris-page .iris-nav-brand img { height: 26px; width: auto; }
.iris-page .iris-nav-links .elementor-icon-list-items { gap: 28px; flex-wrap: wrap; }
.iris-page .iris-nav-links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.iris-page .iris-nav-links .elementor-icon-list-item::after { display: none; }
.iris-page .iris-nav-links .elementor-icon-list-text {
	font-family: var(--iris-font);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--iris-ink);
	opacity: .8;
	padding: 0 !important;
	transition: opacity .15s ease, color .15s ease;
}
.iris-page .iris-nav-links a:hover .elementor-icon-list-text { opacity: 1; color: var(--iris-violet); }
@media (max-width: 900px) {
	.iris-page .iris-nav-links {
		order: 3;
		width: 100%;
		--container-widget-width: 100%;
		padding: 10px 0 14px;
		border-top: 1px solid var(--iris-line);
	}
	.iris-page .iris-nav-links .elementor-icon-list-items { justify-content: center; }
}

/* --------------------------------------------------------------------------
   Hero
   ----------------------------------------------------------------------- */
.iris-page .iris-h1 .elementor-heading-title {
	font-size: clamp(36px, 5vw, 60px);
	line-height: 1.05;
}
.iris-page .iris-h1 .elementor-heading-title em { font-style: normal; color: var(--iris-violet); }
.iris-page .iris-hero-sub {
	max-width: 520px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--iris-ink-soft);
}
.iris-page .iris-trust { font-size: 13px; color: var(--iris-ink-soft); }
.iris-page .iris-trust b { color: var(--iris-ink); font-weight: 700; }

.e-con.iris-hero-visual { overflow: hidden; }
.iris-page .iris-hero-visual .elementor-widget-image,
.iris-page .iris-hero-visual .elementor-widget-image .elementor-widget-container { height: 100%; }
.iris-page .iris-hero-visual .elementor-widget-image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 14px;
}
.iris-page .iris-hero-visual .iris-hero-big { grid-row: span 2; }
.iris-page .iris-hero-visual .iris-hero-big img { aspect-ratio: auto; }

/* --------------------------------------------------------------------------
   Bande de marques
   ----------------------------------------------------------------------- */
.e-con.iris-marq { overflow: hidden; background: var(--iris-paper); }
.e-con.iris-marq-mask {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
}
.e-con.iris-marq-track {
	--width: max-content;
	width: max-content;
	max-width: none;
}
.e-con.iris-marq-track.is-running { animation: iris-marq-scroll 28s linear infinite; }
.e-con.iris-marq:hover .iris-marq-track { animation-play-state: paused; }
@keyframes iris-marq-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 36px)); } }
@media (prefers-reduced-motion: reduce) { .e-con.iris-marq-track.is-running { animation: none; } }

.iris-page .iris-marq-item { --container-widget-width: auto; width: auto; flex: none; }
.iris-page .iris-marq-item img {
	height: 38px;
	width: auto;
	max-width: none;
	opacity: .75;
	filter: grayscale(100%);
	transition: opacity .2s ease, filter .2s ease;
}
.iris-page .iris-marq-item img:hover { opacity: 1; filter: grayscale(0%); }

/* --------------------------------------------------------------------------
   Services
   ----------------------------------------------------------------------- */
.e-con.iris-svc-card { color: #fff; }
.e-con.iris-svc-card.iris-on-ink { color: var(--iris-paper); }
.iris-page .iris-num .elementor-heading-title {
	font-family: var(--iris-mono);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
	opacity: .8;
}
.iris-page .iris-svc-title .elementor-heading-title { font-size: 21px; line-height: 1.2; }
.iris-page .iris-svc-text { font-size: 14.5px; line-height: 1.55; opacity: .9; }
.iris-page .iris-svc-list .elementor-icon-list-items { display: flex; flex-direction: column; gap: 7px; }
.iris-page .iris-svc-list .elementor-icon-list-item { padding: 0 !important; margin: 0 !important; align-items: flex-start; }
.iris-page .iris-svc-list .elementor-icon-list-text {
	font-family: var(--iris-font);
	font-size: 13.5px;
	line-height: 1.25;
	color: inherit;
	opacity: .92;
	padding-left: 8px;
}
.iris-page .iris-svc-list .elementor-icon-list-icon { --e-icon-list-icon-size: 11px; padding-top: 2px; }
.iris-page .iris-svc-list .elementor-icon-list-icon i { color: currentColor; }
.iris-page .iris-svc-list .elementor-icon-list-icon svg { fill: currentColor; }

.iris-page .iris-note-mark .elementor-heading-title {
	font-family: var(--iris-mono);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.6;
	color: var(--iris-violet);
}
.iris-page .iris-note-mark { flex: none; --container-widget-width: auto; width: auto; }
.iris-page .iris-note-text { font-size: 15px; line-height: 1.6; color: var(--iris-ink-soft); }
.iris-page .iris-note-text b { color: var(--iris-ink); }

/* --------------------------------------------------------------------------
   Méthode
   ----------------------------------------------------------------------- */
.iris-page .iris-step .elementor-heading-title {
	font-family: var(--iris-mono);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--iris-violet);
}
.iris-page .iris-m-title .elementor-heading-title { font-size: 18px; font-weight: 700; line-height: 1.25; }
.iris-page .iris-m-text { font-size: 14px; line-height: 1.55; color: var(--iris-ink-soft); }

/* --------------------------------------------------------------------------
   Bandeau résultat
   ----------------------------------------------------------------------- */
.e-con.iris-result-band { color: var(--iris-paper); text-align: center; }
.iris-page .iris-result-band .iris-eyebrow .elementor-heading-title {
	border-color: rgba(255, 255, 255, 0.25);
	color: rgba(234, 233, 244, 0.8);
}
.iris-page .iris-rb-title .elementor-heading-title { max-width: 760px; margin-inline: auto; }
.iris-page .iris-rb-title .elementor-heading-title { font-size: clamp(28px, 3.6vw, 42px); line-height: 1.1; }
.iris-page .iris-rb-text {
	max-width: 640px;
	font-size: 16px;
	line-height: 1.65;
	color: rgba(234, 233, 244, 0.78);
}

/* --------------------------------------------------------------------------
   Études de cas
   ----------------------------------------------------------------------- */
.e-con.iris-cases .iris-section-head { max-width: none; }
.iris-page .iris-cases .iris-h2 .elementor-heading-title { font-size: clamp(28px, 3.6vw, 38px); line-height: 1.1; }
.iris-page .iris-case-shot {
	height: 230px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-bottom: 1px solid var(--iris-line);
}
.iris-page .iris-case-shot .elementor-widget-container { height: 100%; display: flex; align-items: center; justify-content: center; }
.iris-page .iris-case-shot img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.iris-page .iris-case-shot:not(:has(.elementor-widget-container)) { text-align: center; }
.iris-page .iris-case-shot img { max-height: 230px; }
.iris-page .iris-case-cat .elementor-heading-title {
	font-family: var(--iris-mono);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--iris-violet);
}
.iris-page .iris-case-title .elementor-heading-title { font-size: 21px; line-height: 1.15; }
.iris-page .iris-case-result .elementor-heading-title {
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0;
	color: var(--iris-indigo);
}
.iris-page .iris-case-text { font-size: 14.5px; line-height: 1.55; color: var(--iris-ink-soft); }

/* --------------------------------------------------------------------------
   Équipe
   ----------------------------------------------------------------------- */
.e-con.iris-t-card { text-align: center; }
.iris-page .iris-avatar { --container-widget-width: auto; width: auto; }
.iris-page .iris-avatar .elementor-heading-title {
	width: 56px;
	height: 56px;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	line-height: 1;
	letter-spacing: 0;
	color: #fff;
	background: var(--iris-indigo);
}
.iris-page .iris-bg-violet .elementor-heading-title { background: var(--iris-violet); }
.iris-page .iris-bg-blue .elementor-heading-title { background: var(--iris-blue); }
.iris-page .iris-bg-ink .elementor-heading-title { background: var(--iris-ink); }
.iris-page .iris-t-title .elementor-heading-title { font-size: 16px; font-weight: 700; line-height: 1.25; }
.iris-page .iris-t-text { font-size: 13.5px; line-height: 1.5; color: var(--iris-ink-soft); }

/* --------------------------------------------------------------------------
   Contact & pied de page
   ----------------------------------------------------------------------- */
.e-con.iris-cta-block { color: #fff; text-align: center; }
.iris-page .iris-cta-title .elementor-heading-title { max-width: 640px; margin-inline: auto; }
.iris-page .iris-cta-title .elementor-heading-title { font-size: clamp(28px, 3.6vw, 44px); line-height: 1.1; }
.iris-page .iris-cta-text { font-size: 16px; opacity: .9; }
.iris-page .iris-rdv-form { max-width: 640px; width: 100%; }

.iris-page .iris-foot-bottom .elementor-widget { --container-widget-width: auto; width: auto; }
.iris-page .iris-foot-logo img { height: 22px; width: auto; }
.iris-page .iris-foot-copy,
.iris-page .iris-foot-mail { font-size: 13px; color: var(--iris-ink-soft); }
.iris-page .iris-foot-mail a { text-decoration: underline; }

/* --------------------------------------------------------------------------
   Accessibilité : mouvement réduit
   ----------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.iris-page .elementor * { transition: none !important; }
}

/* Largeurs maximales des textes (appliquées au texte lui-même pour rester
   compatibles avec les réglages de largeur des widgets Elementor). */
.iris-page .iris-hero-sub p { max-width: 520px; }
.iris-page .iris-lede p { max-width: 600px; }
.iris-page .iris-rb-text p { max-width: 640px; margin-inline: auto; }
.iris-page .iris-rdv-form .elementor-shortcode { max-width: 640px; margin-inline: auto; }
